== User stories == US1: Контекст с дашборда/датасета → /agent с URL params US2: Guardrails card — env badge, 7 risk tones, countdown, permission_denied US3: Tools optimization — retry, timeout, summarise, RBAC + context affinity == Backend == - _context.py (NEW): UIContext validation (7 checks) - _tool_filter.py (NEW): RBAC + context affinity pipeline - _confirmation.py: build_confirmation_contract_v2, permission_denied_payload - tools.py: superset_list_databases, retry/summarise/timeout wrappers - app.py: _inject_uicontext, _inject_env_id_into_tools, database prefetch в runtime context - _persistence.py: prefetch_databases() - agent_superset_explore.py: GET /databases endpoint - _llm_async_http.py, _persistence.py: fix double /v1 в LLM URL (LM Studio Unexpected endpoint) == Frontend == - AgentChatModel.svelte.ts: 5 atoms, 3 actions, countdown, context - AgentChat.svelte: production banner, process steps, debug panel - ConfirmationCard.svelte: 7 risk tones, permission_denied, countdown - ToolCallCard.svelte: retrying/timeout/cancelled states - StreamProcessor.svelte.ts: tool_retry, timeout, permission_denied - TopNavbar: sparkles icon + Ассистент - sidebarNavigation: AI section - DashboardHeader, datasets/+page: contextual AI buttons - Icon: sparkles, brain, cpu icons - tailwind: assistant category colors - i18n: en/ru nav keys == Tests == - 159 backend agent tests (+16 US3: retry, timeout, summarise, contracts) - 2544 frontend tests (+11 model + component tests) - 15 JSON fixtures (10 API + 5 model) == Specs == - specs/035-agent-chat-context/: spec, UX, plan, tasks, research, data-model, contracts, quickstart, traceability, fixtures, checklists Closes #035
21 lines
987 B
JSON
21 lines
987 B
JSON
{
|
|
"fixture_id": "FX_AgentChat.Handler.DashboardContext",
|
|
"verifies": "AgentChat.LangGraph.Handler",
|
|
"edge": "dashboard_context",
|
|
"input": {
|
|
"message": {"text": "Расскажи про этот дашборд"},
|
|
"history": [],
|
|
"conversation_id": "test-conv-002",
|
|
"uicontext_str": "{\"objectType\":\"dashboard\",\"objectId\":\"42\",\"objectName\":\"Отчёт по энергопотреблению\",\"envId\":\"ss-dev\",\"route\":\"/dashboards/42\",\"contextVersion\":1}",
|
|
"user_id": "user-001",
|
|
"user_jwt": "valid-jwt",
|
|
"env_id": "ss-dev"
|
|
},
|
|
"expected": {
|
|
"tool_count": 9,
|
|
"tool_names": ["search_dashboards", "get_health_summary", "deploy_dashboard", "run_llm_validation", "run_llm_documentation", "execute_migration", "create_branch", "commit_changes", "show_capabilities"],
|
|
"uicontext_injected": true,
|
|
"runtime_context_contains": ["[USER CONTEXT]", "Отчёт по энергопотреблению", "dashboards/42"]
|
|
}
|
|
}
|