Add navi_ui form component with client-side validation
- Add Form UI component schema in navi/mcp/ui_server/components/form.py
- Support text, textarea, number, email, url, select, multiselect, checkbox, date fields
- Implement hidden user message mode for form submissions (is_display=False, is_context=True)
- Add WebSocket form_submit handling and _start_agent_run helper
- Render forms client-side with real-time JS validation in webclient
- Submit once guard via localStorage and replace form with read-only summary
- Provide wsSend via Vue provide/inject in ChatArea
- Add tests for backend form component, websocket form_submit, and frontend Form.vue
- Update docs/tools.md and docs/websocket.md
- Build production webclient dist

Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 3156354 commit fe43ad95105562a48da0429d908611b079400a00
@Eugene Sukhodolskiy Eugene Sukhodolskiy authored 8 days ago
Showing 44 changed files
View
docs/tools.md
View
docs/websocket.md
View
navi/api/websocket.py
View
navi/core/agent.py
View
navi/core/anti_stall.py
View
navi/core/context_builder.py
View
navi/core/orchestrator.py
View
navi/core/pg_session_store.py
View
navi/main.py
View
navi/mcp/tools.py
View
navi/mcp/ui_server.py
View
navi/mcp/ui_server/__init__.py 0 → 100644
View
navi/mcp/ui_server/components/__init__.py 0 → 100644
View
navi/mcp/ui_server/components/base.py 0 → 100644
View
navi/mcp/ui_server/components/card_grid.py 0 → 100644
View
navi/mcp/ui_server/components/form.py 0 → 100644
View
navi/mcp/ui_server/components/registry.py 0 → 100644
View
navi/mcp/ui_server/server.py 0 → 100644
View
navi/profiles/realtor/config.json
View
tests/conftest_factory.py
View
tests/unit/api/test_websocket.py
View
tests/unit/core/test_pg_session_store.py
View
tests/unit/mcp/test_ui_server.py
View
tests/unit/test_mcp.py
View
webclient/dist/assets/index-B-XArGgJ.js 100644 → 0
Not supported
View
webclient/dist/assets/index-B4D428gG.css 0 → 100644
View
webclient/dist/assets/index-B9MKY33g.css 100644 → 0
View
webclient/dist/assets/index-BWmM9yYP.js 0 → 100644
Not supported
View
webclient/dist/index.html
View
webclient/src/components/chat/ChatArea.vue
View
webclient/src/components/messages/AssistantMessage.vue
View
webclient/src/components/messages/CardGrid.vue 100644 → 0
View
webclient/src/components/messages/UiComponentCard.vue
View
webclient/src/components/ui/CardGrid.vue 0 → 100644
View
webclient/src/components/ui/Form.vue 0 → 100644
View
webclient/src/components/ui/registry.js 0 → 100644
View
webclient/src/composables/useWebSocket.js
View
webclient/src/stores/chat.js
View
webclient/tests/unit/components/CardGrid.test.js 100644 → 0
View
webclient/tests/unit/components/ui/CardGrid.test.js 0 → 100644
View
webclient/tests/unit/components/ui/Form.test.js 0 → 100644
View
webclient/tests/unit/components/ui/UiComponentCard.test.js 0 → 100644
View
webclient/tests/unit/components/ui/registry.test.js 0 → 100644
View
webclient/tests/unit/stores/chat.test.js