agent-webui 1.1.0__tar.gz → 2.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agent_webui-1.1.0 → agent_webui-2.2.0}/LICENSE +0 -0
- {agent_webui-1.1.0/agent/agent_webui.egg-info → agent_webui-2.2.0}/PKG-INFO +207 -29
- agent_webui-1.1.0/PKG-INFO → agent_webui-2.2.0/README.md +183 -43
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/__init__.py +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/__tests__/conftest.py +0 -0
- agent_webui-2.2.0/agent/agent_webui/__tests__/test_agent_library_endpoints.py +373 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/__tests__/test_api_extensions.py +0 -25
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/__tests__/test_canonical_gateway_mount.py +26 -0
- agent_webui-2.2.0/agent/agent_webui/__tests__/test_engine_construction_wiring.py +114 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/__tests__/test_files_endpoints.py +58 -0
- agent_webui-2.2.0/agent/agent_webui/__tests__/test_graph_identity.py +165 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/__tests__/test_graph_kb_endpoints.py +0 -0
- agent_webui-2.2.0/agent/agent_webui/__tests__/test_identity_middleware_boundary.py +269 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/__tests__/test_integration.py +1 -1
- agent_webui-2.2.0/agent/agent_webui/__tests__/test_mcp_delegation_routes.py +241 -0
- agent_webui-2.2.0/agent/agent_webui/__tests__/test_mcp_server_inventory.py +222 -0
- agent_webui-2.2.0/agent/agent_webui/__tests__/test_observability.py +705 -0
- agent_webui-2.2.0/agent/agent_webui/__tests__/test_oidc_session.py +565 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/__tests__/test_ontology_endpoints.py +25 -23
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/__tests__/test_parity_contract.py +26 -1
- agent_webui-2.2.0/agent/agent_webui/__tests__/test_pydantic_ai_compat.py +59 -0
- agent_webui-2.2.0/agent/agent_webui/__tests__/test_rbac.py +88 -0
- agent_webui-2.2.0/agent/agent_webui/__tests__/test_security_boundaries.py +1352 -0
- agent_webui-2.2.0/agent/agent_webui/__tests__/test_skill_kg_classification.py +241 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/__tests__/test_workflow_endpoints.py +3 -2
- agent_webui-2.2.0/agent/agent_webui/__tests__/test_workspace_helpers_chokepoint.py +185 -0
- agent_webui-2.2.0/agent/agent_webui/__tests__/test_ws_dashboard_denial_diagnostics.py +402 -0
- agent_webui-2.2.0/agent/agent_webui/api_extensions.py +9990 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/apple-touch-icon.png +0 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/AdminView-BoPQbgL-.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/AgentLibraryView-CGjC7raC.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/BrokerView-vR0lvxdI.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/CapabilityWorkbench-Y2CVYnpu.js +4 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/CatalogueView-C6Vj7S8I.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/CodeGraphView-DeJaeSnX.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/ConfigurationView-_zuzsaoc.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/CypherReplView-CQ0JowvA.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/DashboardView-CEVI-BO5.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/DataAnalystView-DuyC_7IO.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/EcosystemView-BZQzZw0o.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/ExtractionView-BNiRbb4O.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/FilesView--qqeR2-6.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/FleetView-SKJMl4dK.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/GoalsView-GI5hexq-.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/GraphCanvas-DCRZaLc0.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/GraphView-DMuEwdYU.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/ImportExportModal-BMSlKSDJ.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/KnowledgeBaseView-MME12Rpi.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/KnowledgeView-Dlk8Udoq.js +7 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/LLMTemplatesView-BRrLxeh-.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/LearnView-DF_Zjucl.js +236 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/LiveDashboardsView-D8Xq4fNb.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/MagmaView-DXlVkthD.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/MemoryView-D_UZLCRW.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/ObjectExplorerView-BBqerMIg.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/ObjectView-4kkBxzhA.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/ObservabilityView-CyQjjdV3.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/OpsPanelView-BYs3EYhg.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/PromptsView-BaIvihki.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/SDDView-CmY6_loH.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/SchedulingView-BIYIXmhD.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/SchemaView-DFLXzBzI.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/SessionExpiredNotice-BuEU0kEv.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/SessionsView-C7Peouw0.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/SkillsView-DHgt0J4F.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/SparqlView-DGYuVnlI.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/SystemStatusView-De0q3UI5.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/TemporalGraphView-BioupZo9.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/UsageView-DhiU3aZI.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/VertexView-DzfCLEk3.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/VizDemoView-DH_wV8ee.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/WorkflowEditorView-BnuhLJ6X.css +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/WorkflowEditorView-CZDweAjr.js +7 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/WorkspaceIDEView-e2SoQH5v.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/abnfDiagram-VRR7QNED-3TEv1zsc.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/arc-GJ_Vi1QI.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/architectureDiagram-ZJ3FMSHR-GMBWd-VO.js +36 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/blockDiagram-677ZJIJ3-pjA0Y0-8.js +132 -0
- agent_webui-1.1.0/agent/agent_webui/dist/assets/c4Diagram-AAUBKEIU-B2x_qzTV.js → agent_webui-2.2.0/agent/agent_webui/dist/assets/c4Diagram-LMCZKHZV-BcoB9t6Q.js +2 -2
- agent_webui-2.2.0/agent/agent_webui/dist/assets/card-jA_uRyRo.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/channel-DPg-zdes.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/chevron-left-DbMjdPv6.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/chevron-right-DxomHGl9.js +1 -0
- agent_webui-1.1.0/agent/agent_webui/dist/assets/chunk-QZHKN3VN-BiTyBdAE.js → agent_webui-2.2.0/agent/agent_webui/dist/assets/chunk-2Q5K7J3B-CqPW6Rdz.js +1 -1
- agent_webui-2.2.0/agent/agent_webui/dist/assets/chunk-32BRIVSS--I6oESLC.js +1 -0
- agent_webui-1.1.0/agent/agent_webui/dist/assets/chunk-FMBD7UC4-DIm1R7-t.js → agent_webui-2.2.0/agent/agent_webui/dist/assets/chunk-5VM5RSS4-B6fUpg4Y.js +1 -1
- agent_webui-2.2.0/agent/agent_webui/dist/assets/chunk-EX3LRPZG-BFMjpYVq.js +231 -0
- agent_webui-1.1.0/agent/agent_webui/dist/assets/chunk-4BX2VUAB-BotpHg_J.js → agent_webui-2.2.0/agent/agent_webui/dist/assets/chunk-JWPE2WC7-79AlCAVu.js +1 -1
- agent_webui-2.2.0/agent/agent_webui/dist/assets/chunk-MOJQB5TN-DlsoJRZ4.js +88 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/chunk-RYQCIY6F-E6KibJz4.js +1 -0
- agent_webui-1.1.0/agent/agent_webui/dist/assets/chunk-727SXJPM-rycnwA9c.js → agent_webui-2.2.0/agent/agent_webui/dist/assets/chunk-V7JOEXUC-BuVZTkjM.js +5 -5
- agent_webui-1.1.0/agent/agent_webui/dist/assets/chunk-2J33WTMH-ffQmcven.js → agent_webui-2.2.0/agent/agent_webui/dist/assets/chunk-VR4S4FIN-YOxEBC9s.js +1 -1
- agent_webui-2.2.0/agent/agent_webui/dist/assets/chunk-XXDRQBXY-vL6oqeFy.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/circle-alert-CPLBudeH.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/classDiagram-OUVF2IWQ-B2EpMKtb.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/classDiagram-v2-EOCWNBFH-B2EpMKtb.js +1 -0
- agent_webui-1.1.0/agent/agent_webui/dist/assets/code-block-IT6T5CEO-4kvWrFaE.js → agent_webui-2.2.0/agent/agent_webui/dist/assets/code-block-IT6T5CEO-CDKiy4tN.js +1 -1
- agent_webui-2.2.0/agent/agent_webui/dist/assets/cose-bilkent-JH36ORCC-HZMFN04k.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/cynefin-VYW2F7L2-BekMfbT7.js +166 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/cynefinDiagram-TSTJHNR4-D6aroQKr.js +62 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/dagre-VKFMJZFB-D8qo4zpo.js +4 -0
- agent_webui-1.1.0/agent/agent_webui/dist/assets/diagram-KO2AKTUF-BQXEm4fk.js → agent_webui-2.2.0/agent/agent_webui/dist/assets/diagram-FQU43EPY-Fuc4aNv0.js +3 -3
- agent_webui-2.2.0/agent/agent_webui/dist/assets/diagram-G47NLZAW-N0UdMXoP.js +24 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/diagram-NH7WQ7WH-BhJhvkhN.js +24 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/diagram-OA4YK3LP-DJRxh-8V.js +30 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/diagram-WEI45ONY-DCsIsNLl.js +41 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/ebnfDiagram-CCIWWBDH-BSCnchkI.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/erDiagram-Q63AITRT-WwX18LRl.js +85 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/external-link-YPQMSrZp.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/eye-DKU_Vxqu.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/file-text-0-ZYk3PT.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/flowDiagram-23GEKE2U-B6zzZZMZ.js +156 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/folder-open-h3hDBh4O.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/ganttDiagram-NO4QXBWP-D0RtDz18.js +292 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/gateway-C8WFquVE.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/git-fork-B0gGRpXI.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/gitGraphDiagram-IHSO6WYX-D3NlU05q.js +106 -0
- agent_webui-1.1.0/agent/agent_webui/dist/assets/graph--OzhPTMs.js → agent_webui-2.2.0/agent/agent_webui/dist/assets/graph-DOmOIIwC.js +1 -1
- agent_webui-2.2.0/agent/agent_webui/dist/assets/hard-drive-NUWTCMBa.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/index-3scWiDq2.js +558 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/index-BcmMgPFv.js +312 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/index-gYfOaG28.css +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/infoDiagram-FWYZ7A6U-B-zirRQA.js +2 -0
- agent_webui-1.1.0/agent/agent_webui/dist/assets/ishikawaDiagram-YF4QCWOH-RNtsxs2C.js → agent_webui-2.2.0/agent/agent_webui/dist/assets/ishikawaDiagram-FXEZZL3T-D8q0QUEo.js +4 -4
- agent_webui-1.1.0/agent/agent_webui/dist/assets/journeyDiagram-JHISSGLW-DVxW_BkU.js → agent_webui-2.2.0/agent/agent_webui/dist/assets/journeyDiagram-5HDEW3XC-Ct8z5Tfv.js +2 -2
- agent_webui-1.1.0/agent/agent_webui/dist/assets/kanban-definition-UN3LZRKU-BMIRENeo.js → agent_webui-2.2.0/agent/agent_webui/dist/assets/kanban-definition-HUTT4EX6-DNwtWpKz.js +7 -7
- agent_webui-2.2.0/agent/agent_webui/dist/assets/layers-aPODrU0l.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/layout-D-LzfAck.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/layout-grid-DtHbnzSQ.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/linear-D1g5s_fh.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/link-2-B2qYw4JB.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/map-DxJ2ADlA.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/mermaid.core-DKdh7Zm3.js +249 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/mindmap-definition-LN4V7U3C-DDU8prGg.js +96 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/pegDiagram-2B236MQR-C4QIRbO3.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/pieDiagram-ENE6RG2P-1SnqMuF5.js +39 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/play-BPB0BcIT.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/plus-Brq5VcI1.js +1 -0
- agent_webui-1.1.0/agent/agent_webui/dist/assets/quadrantDiagram-W4KKPZXB-BAOchQVo.js → agent_webui-2.2.0/agent/agent_webui/dist/assets/quadrantDiagram-ABIIQ3AL-Cfyw_s6s.js +3 -3
- agent_webui-2.2.0/agent/agent_webui/dist/assets/railroadDiagram-RFXS5EU6-DK49Lnoj.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/refresh-cw-s6crI3ZZ.js +1 -0
- agent_webui-1.1.0/agent/agent_webui/dist/assets/requirementDiagram-4Y6WPE33-DWozeLmX.js → agent_webui-2.2.0/agent/agent_webui/dist/assets/requirementDiagram-TGXJPOKE-v1mZ5FHi.js +2 -2
- agent_webui-2.2.0/agent/agent_webui/dist/assets/sankeyDiagram-HTMAVEWB-lHuuywyR.js +40 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/save-74UDVfFR.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/scroll-area-DQ8wpa4y.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/separator-B8MH7879.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/sequenceDiagram-DBY2YBRQ-Cr_oZUPF.js +162 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/server-CBht6nOR.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/shield-BR-971Wy.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/sizeCapture-X5ZJPWSS-CrE7CuZ_.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/slider-BfRr_Tq4.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/sliders-vertical-lF2NtKX3.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/stateDiagram-2N3HPSRC-BZZOM04a.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/stateDiagram-v2-6OUMAXLB-CfpHxN4T.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/swimlanes-5IMT3BWC-CU05g8Np.js +2 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/swimlanesDiagram-G3AALYLV-BX1Z5A4e.js +8 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/tabs-EB-_lbXY.js +1 -0
- agent_webui-1.1.0/agent/agent_webui/dist/assets/timeline-definition-PNZ67QCA-DQFNVhY6.js → agent_webui-2.2.0/agent/agent_webui/dist/assets/timeline-definition-FHXFAJF6-C3uNZaAQ.js +5 -5
- agent_webui-2.2.0/agent/agent_webui/dist/assets/transform-CpIVI4vC.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/trash-2-DbeLRKY6.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/upload-CGgEKIDN.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/useMutation-DveurLYM.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/users-D5E5Tsnq.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/v4-Dnyct6Ft.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/value-DIujSiJ7.js +1 -0
- agent_webui-2.2.0/agent/agent_webui/dist/assets/vennDiagram-L72KCM5P-CxKKCC7j.js +34 -0
- agent_webui-1.1.0/agent/agent_webui/dist/assets/wardleyDiagram-YWT4CUSO-DaAV8Ex5.js → agent_webui-2.2.0/agent/agent_webui/dist/assets/wardleyDiagram-EHGQE667-DlhPQHCp.js +4 -4
- agent_webui-2.2.0/agent/agent_webui/dist/assets/xychartDiagram-FW5EYKEG-DqYg6bWZ.js +7 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/favicon.ico +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/favicon.png +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/favicon.svg +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/index.html +2 -2
- agent_webui-2.2.0/agent/agent_webui/graph_identity.py +138 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/icon.png +0 -0
- agent_webui-2.2.0/agent/agent_webui/observability.py +245 -0
- agent_webui-2.2.0/agent/agent_webui/oidc_session.py +850 -0
- agent_webui-2.2.0/agent/agent_webui/orchestrator_model.py +178 -0
- agent_webui-2.2.0/agent/agent_webui/rbac.py +114 -0
- agent_webui-2.2.0/agent/agent_webui/server.py +1967 -0
- agent_webui-2.2.0/agent/agent_webui/skills/__init__.py +9 -0
- agent_webui-2.2.0/agent/agent_webui/skills/kg-webui-admin/SKILL.md +47 -0
- agent_webui-2.2.0/agent/agent_webui/skills/kg-webui-dashboards/SKILL.md +45 -0
- agent_webui-2.2.0/agent/agent_webui/skills/kg-webui-extraction/SKILL.md +45 -0
- agent_webui-2.2.0/agent/agent_webui/skills/kg-webui-graphviz/SKILL.md +47 -0
- agent_webui-2.2.0/agent/agent_webui/skills/kg-webui-ontology-operator/SKILL.md +53 -0
- agent_webui-2.2.0/agent/agent_webui/skills/kg-webui-swe/SKILL.md +48 -0
- agent_webui-1.1.0/README.md → agent_webui-2.2.0/agent/agent_webui.egg-info/PKG-INFO +221 -7
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui.egg-info/SOURCES.txt +167 -50
- agent_webui-2.2.0/agent/agent_webui.egg-info/entry_points.txt +2 -0
- agent_webui-2.2.0/agent/agent_webui.egg-info/requires.txt +23 -0
- agent_webui-2.2.0/pyproject.toml +156 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/tests/test_destubbed_endpoints.py +133 -24
- {agent_webui-1.1.0 → agent_webui-2.2.0}/tests/test_graph_visualization.py +1 -1
- {agent_webui-1.1.0 → agent_webui-2.2.0}/tests/test_init.py +0 -0
- agent_webui-2.2.0/tests/test_privacy_boundaries.py +47 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/tests/test_startup.py +0 -0
- agent_webui-1.1.0/agent/agent_webui/api_extensions.py +0 -6750
- agent_webui-1.1.0/agent/agent_webui/dist/assets/arc-CTlQv9SP.js +0 -1
- agent_webui-1.1.0/agent/agent_webui/dist/assets/architectureDiagram-3BPJPVTR-SUh8hjts.js +0 -36
- agent_webui-1.1.0/agent/agent_webui/dist/assets/blockDiagram-GPEHLZMM-Cbq-HHdN.js +0 -132
- agent_webui-1.1.0/agent/agent_webui/dist/assets/channel-JcQtHxqh.js +0 -1
- agent_webui-1.1.0/agent/agent_webui/dist/assets/chunk-55IACEB6-BK2f-dU2.js +0 -1
- agent_webui-1.1.0/agent/agent_webui/dist/assets/chunk-AQP2D5EJ-DsjwQxG-.js +0 -231
- agent_webui-1.1.0/agent/agent_webui/dist/assets/chunk-ND2GUHAM-D9gjiot5.js +0 -1
- agent_webui-1.1.0/agent/agent_webui/dist/assets/classDiagram-4FO5ZUOK-DEERZd5H.js +0 -1
- agent_webui-1.1.0/agent/agent_webui/dist/assets/classDiagram-v2-Q7XG4LA2-DEERZd5H.js +0 -1
- agent_webui-1.1.0/agent/agent_webui/dist/assets/cose-bilkent-S5V4N54A-gKUJE9p6.js +0 -1
- agent_webui-1.1.0/agent/agent_webui/dist/assets/dagre-BM42HDAG-2qou2O33.js +0 -4
- agent_webui-1.1.0/agent/agent_webui/dist/assets/diagram-2AECGRRQ-Bfs_tsxb.js +0 -43
- agent_webui-1.1.0/agent/agent_webui/dist/assets/diagram-5GNKFQAL-C55ks2vO.js +0 -10
- agent_webui-1.1.0/agent/agent_webui/dist/assets/diagram-LMA3HP47-DEGL8v4R.js +0 -24
- agent_webui-1.1.0/agent/agent_webui/dist/assets/diagram-OG6HWLK6-CP_76Sed.js +0 -24
- agent_webui-1.1.0/agent/agent_webui/dist/assets/erDiagram-TEJ5UH35-Bl2PxwVR.js +0 -85
- agent_webui-1.1.0/agent/agent_webui/dist/assets/flowDiagram-I6XJVG4X-BCPOFHCm.js +0 -162
- agent_webui-1.1.0/agent/agent_webui/dist/assets/ganttDiagram-6RSMTGT7-t1k99OHS.js +0 -292
- agent_webui-1.1.0/agent/agent_webui/dist/assets/gitGraphDiagram-PVQCEYII-Dnp08CGf.js +0 -106
- agent_webui-1.1.0/agent/agent_webui/dist/assets/index-Byql2v_B.css +0 -1
- agent_webui-1.1.0/agent/agent_webui/dist/assets/index-CVQ5gD07.js +0 -868
- agent_webui-1.1.0/agent/agent_webui/dist/assets/infoDiagram-5YYISTIA-C5uuiRTQ.js +0 -2
- agent_webui-1.1.0/agent/agent_webui/dist/assets/layout-SsrduOYp.js +0 -1
- agent_webui-1.1.0/agent/agent_webui/dist/assets/linear-DLnj3tUK.js +0 -1
- agent_webui-1.1.0/agent/agent_webui/dist/assets/mermaid.core-f5t4NAx7.js +0 -244
- agent_webui-1.1.0/agent/agent_webui/dist/assets/mindmap-definition-RKZ34NQL-D8AQT1NL.js +0 -96
- agent_webui-1.1.0/agent/agent_webui/dist/assets/pieDiagram-4H26LBE5-C5PE2oE_.js +0 -30
- agent_webui-1.1.0/agent/agent_webui/dist/assets/sankeyDiagram-5OEKKPKP-CW9pDuN7.js +0 -40
- agent_webui-1.1.0/agent/agent_webui/dist/assets/sequenceDiagram-3UESZ5HK-DU6G4uIZ.js +0 -162
- agent_webui-1.1.0/agent/agent_webui/dist/assets/stateDiagram-AJRCARHV-_TT-2N8R.js +0 -1
- agent_webui-1.1.0/agent/agent_webui/dist/assets/stateDiagram-v2-BHNVJYJU-DeB4cwCs.js +0 -1
- agent_webui-1.1.0/agent/agent_webui/dist/assets/vennDiagram-CIIHVFJN-Daag0AsR.js +0 -34
- agent_webui-1.1.0/agent/agent_webui/dist/assets/wardley-L42UT6IY-TqOQuOPH.js +0 -161
- agent_webui-1.1.0/agent/agent_webui/dist/assets/xychartDiagram-2RQKCTM6-CtS5bfJf.js +0 -7
- agent_webui-1.1.0/agent/agent_webui/server.py +0 -237
- agent_webui-1.1.0/agent/agent_webui.egg-info/requires.txt +0 -21
- agent_webui-1.1.0/pyproject.toml +0 -73
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/abap-BdImnpbu.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/actionscript-3-CoDkCxhg.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/ada-bCR0ucgS.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/andromeeda-C4gqWexZ.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/angular-html-CU67Zn6k.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/angular-ts-BwZT4LLn.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/apache-Pmp26Uib.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/apex-D8_7TLub.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/apl-dKokRX4l.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/applescript-Co6uUVPk.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/ara-BRHolxvo.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/asciidoc-Ve4PFQV2.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/asm-D_Q5rh1f.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/astro-CbQHKStN.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/aurora-x-D-2ljcwZ.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/awk-DMzUqQB5.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/ayu-dark-DYE7WIF3.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/ayu-light-BA47KaF1.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/ayu-mirage-32ctXXKs.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/ballerina-BFfxhgS-.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/bat-BkioyH1T.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/beancount-k_qm7-4y.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/berry-uYugtg8r.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/bibtex-CHM0blh-.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/bicep-Bmn6On1c.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/bird2-DPOp833l.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/blade-D4QpJJKB.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/bsl-BO_Y6i37.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/c-BIGW1oBm.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/c3-eo99z4R2.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/cadence-Bv_4Rxtq.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/cairo-KRGpt6FW.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/catppuccin-frappe-DFWUc33u.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/catppuccin-latte-C9dUb6Cb.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/catppuccin-macchiato-DQyhUUbL.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/catppuccin-mocha-D87Tk5Gz.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/clarity-D53aC0YG.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/clojure-P80f7IUj.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/cmake-D1j8_8rp.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/cobol-nwyudZeR.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/codeowners-Bp6g37R7.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/codeql-DsOJ9woJ.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/coffee-Ch7k5sss.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/common-lisp-Cg-RD9OK.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/coq-DkFqJrB1.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/cpp-CofmeUqb.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/crystal-tKQVLTB8.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/csharp-COcwbKMJ.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/css-DPfMkruS.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/csv-fuZLfV_i.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/cue-D82EKSYY.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/cypher-COkxafJQ.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/cytoscape.esm-D3_iZ_3b.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/d-85-TOEBH.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/dark-plus-C3mMm8J8.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/dart-CF10PKvl.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/dax-CEL-wOlO.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/defaultLocale-DX6XiGOO.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/desktop-BmXAJ9_W.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/diff-D97Zzqfu.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/docker-BcOcwvcX.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/dotenv-Da5cRb03.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/dracula-BzJJZx-M.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/dracula-soft-BXkSAIEj.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/dream-maker-BtqSS_iP.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/edge-BkV0erSs.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/elixir-CDX3lj18.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/elm-DbKCFpqz.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/emacs-lisp-C9XAeP06.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/erb-B12qg9BL.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/erlang-DsQrWhSR.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/everforest-dark-BgDCqdQA.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/everforest-light-C8M2exoo.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/fennel-BYunw83y.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/fish-BvzEVeQv.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/fluent-C4IJs8-o.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/fortran-fixed-form-CkoXwp7k.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/fortran-free-form-BxgE0vQu.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/fsharp-CXgrBDvD.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/gdresource-BOOCDP_w.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/gdscript-C5YyOfLZ.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/gdshader-DkwncUOv.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/genie-D0YGMca9.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/gherkin-DyxjwDmM.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/git-commit-F4YmCXRG.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/git-rebase-r7XF79zn.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/github-dark-DHJKELXO.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/github-dark-default-Cuk6v7N8.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/github-dark-dimmed-DH5Ifo-i.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/github-dark-high-contrast-E3gJ1_iC.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/github-light-DAi9KRSo.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/github-light-default-D7oLnXFd.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/github-light-high-contrast-BfjtVDDH.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/gleam-BspZqrRM.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/glimmer-js-Rg0-pVw9.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/glimmer-ts-U6CK756n.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/glsl-DplSGwfg.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/gn-n2N0HUVH.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/gnuplot-DdkO51Og.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/go-CxLEBnE3.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/graphql-ChdNCCLP.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/groovy-gcz8RCvz.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/gruvbox-dark-hard-CFHQjOhq.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/gruvbox-dark-medium-GsRaNv29.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/gruvbox-dark-soft-CVdnzihN.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/gruvbox-light-hard-CH1njM8p.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/gruvbox-light-medium-DRw_LuNl.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/gruvbox-light-soft-hJgmCMqR.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/hack-CaT9iCJl.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/haml-B8DHNrY2.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/handlebars-BL8al0AC.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/haskell-Df6bDoY_.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/haxe-CzTSHFRz.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/hcl-BWvSN4gD.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/hjson-D5-asLiD.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/hlsl-D3lLCCz7.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/horizon-BUw7H-hv.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/horizon-bright-Cn-bp-IR.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/houston-DnULxvSX.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/html-GMplVEZG.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/html-derivative-BFtXZ54Q.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/http-jrhK8wxY.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/hurl-irOxFIW8.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/hxml-Bvhsp5Yf.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/hy-DFXneXwc.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/imba-DGztddWO.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/ini-BEwlwnbL.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/init-Gi6I4Gst.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/java-CylS5w8V.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/javascript-wDzz0qaB.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/jinja-4LBKfQ-Z.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/jison-wvAkD_A8.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/json-Cp-IABpG.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/json5-C9tS-k6U.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/jsonc-Des-eS-w.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/jsonl-DcaNXYhu.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/jsonnet-DFQXde-d.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/jssm-C2t-YnRu.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/jsx-g9-lgVsj.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/julia-CxzCAyBv.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/just-Cw27pwNe.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/kanagawa-dragon-CkXjmgJE.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/kanagawa-lotus-CfQXZHmo.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/kanagawa-wave-DWedfzmr.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/katex-DLVrwanO.css +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/kdl-DV7GczEv.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/kotlin-BdnUsdx6.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/kusto-DZf3V79B.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/laserwave-DUszq2jm.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/latex-CWtU0Tv5.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/lean-BZvkOJ9d.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/less-B1dDrJ26.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/light-plus-B7mTdjB0.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/liquid-DYVedYrR.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/llvm-DjAJT7YJ.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/log-2UxHyX5q.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/logo-BtOb2qkB.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/lua-BaeVxFsk.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/luau-C-HG3fhB.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/make-CHLpvVh8.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/markdown-Cvjx9yec.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/marko-CnJfTvn9.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/material-theme-D5KoaKCx.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/material-theme-darker-BfHTSMKl.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/material-theme-lighter-B0m2ddpp.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/material-theme-ocean-CyktbL80.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/material-theme-palenight-Csfq5Kiy.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/matlab-D7o27uSR.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/mdc-BMNejdWA.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/mdx-Cmh6b_Ma.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/mermaid-mWjccvbQ.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/min-dark-CafNBF8u.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/min-light-CTRr51gU.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/mipsasm-CKIfxQSi.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/mojo-rZm6bMo-.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/monokai-D4h5O-jR.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/moonbit-_H4v1dQx.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/move-IF9eRakj.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/narrat-DRg8JJMk.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/nextflow-Zz6hmt5N.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/nextflow-groovy-BeH2EWoN.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/nginx-BpAMiNFr.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/night-owl-C39BiMTA.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/night-owl-light-CMTm3GFP.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/nim-CVrawwO9.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/nix-CwoSXNpI.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/nord-Ddv68eIx.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/nushell-Cz2AlsmD.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/objective-c-DXmwc3jG.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/objective-cpp-CLxacb5B.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/ocaml-C0hk2d4L.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/odin-BBf5iR-q.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/one-dark-pro-DVMEJ2y_.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/one-light-C3Wv6jpd.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/openscad-C4EeE6gA.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/ordinal-Cboi1Yqb.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/pascal-D93ZcfNL.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/perl-C0TMdlhV.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/php-Dhbhpdrm.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/pkl-u5AG7uiY.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/plastic-3e1v2bzS.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/plsql-ChMvpjG-.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/po-BTJTHyun.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/poimandres-CS3Unz2-.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/polar-C0HS_06l.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/postcss-CXtECtnM.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/powerquery-CEu0bR-o.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/powershell-Dpen1YoG.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/prisma-Dd19v3D-.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/prolog-CbFg5uaA.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/proto-C7zT0LnQ.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/pug-CGlum2m_.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/puppet-BMWR74SV.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/purescript-CklMAg4u.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/python-B6aJPvgy.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/qml-3beO22l8.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/qmldir-C8lEn-DE.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/qss-IeuSbFQv.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/r-Dspwwk_N.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/racket-BqYA7rlc.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/raku-DXvB9xmW.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/razor-Uh8Bk_45.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/red-bN70gL4F.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/reg-C-SQnVFl.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/regexp-CDVJQ6XC.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/rel-C3B-1QV4.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/riscv-BM1_JUlF.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/ron-D8l8udqQ.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/rose-pine-dawn-DHQR4-dF.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/rose-pine-moon-D4_iv3hh.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/rose-pine-qdsjHGoJ.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/rosmsg-BJDFO7_C.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/rst-BrH8l1NY.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/ruby-Dw2BHqvy.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/rust-B1yitclQ.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/sas-cz2c8ADy.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/sass-Cj5Yp3dK.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/scala-C151Ov-r.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/scheme-C98Dy4si.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/scss-OYdSNvt2.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/sdbl-DVxCFoDh.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/shaderlab-Dg9Lc6iA.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/shellscript-Yzrsuije.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/shellsession-BADoaaVG.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/slack-dark-BthQWCQV.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/slack-ochin-DqwNpetd.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/smalltalk-BERRCDM3.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/snazzy-light-Bw305WKR.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/solarized-dark-DXbdFlpD.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/solarized-light-L9t79GZl.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/solidity-rGO070M0.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/soy-Brmx7dQM.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/sparql-rVzFXLq3.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/splunk-BtCnVYZw.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/sql-BLtJtn59.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/ssh-config-_ykCGR6B.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/stata-BH5u7GGu.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/stylus-BEDo0Tqx.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/surrealql-Bq5Q-fJD.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/svelte-C_ipcX3V.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/swift-D82vCrfD.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/synthwave-84-CbfX1IO0.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/system-verilog-CnnmHF94.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/systemd-4A_iFExJ.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/talonscript-CkByrt1z.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/tasl-QIJgUcNo.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/tcl-dwOrl1Do.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/templ-P3uqSqPl.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/terraform-BETggiCN.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/tex-idrVyKtj.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/tokyo-night-hegEt444.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/toml-vGWfd6FD.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/ts-tags-zn1MmPIZ.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/tsv-B_m7g4N7.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/tsx-COt5Ahok.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/turtle-BsS91CYL.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/twig-DNn4PbVi.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/typescript-BPQ3VLAy.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/typespec-BGHnOYBU.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/typst-DHCkPAjA.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/v-BcVCzyr7.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/vala-CsfeWuGM.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/vb-D17OF-Vu.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/verilog-BQ8w6xss.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/vesper-DU1UobuO.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/vhdl-CeAyd5Ju.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/viml-CJc9bBzg.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/vitesse-black-Bkuqu6BP.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/vitesse-dark-D0r3Knsf.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/vitesse-light-CVO1_9PV.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/vue-DN_0RTcg.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/vue-html-AaS7Mt5G.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/vue-vine-CQOfvN7w.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/vyper-CDx5xZoG.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/wasm-CG6Dc4jp.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/wasm-MzD3tlZU.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/wenyan-BV7otONQ.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/wgsl-Dx-B1_4e.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/wikitext-BhOHFoWU.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/wit-5i3qLPDT.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/wolfram-lXgVvXCa.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/xml-sdJ4AIDG.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/xsl-CtQFsRM5.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/yaml-Buea-lGh.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/zenscript-DVFEvuxE.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/zig-VOosw3JB.js +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui.egg-info/dependency_links.txt +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui.egg-info/top_level.txt +0 -0
- {agent_webui-1.1.0 → agent_webui-2.2.0}/setup.cfg +0 -0
|
File without changes
|
|
@@ -1,37 +1,39 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-webui
|
|
3
|
-
Version:
|
|
3
|
+
Version: 2.2.0
|
|
4
4
|
Summary: Agent Web Interface for Pydantic AI Agents
|
|
5
|
-
Author-email:
|
|
5
|
+
Author-email: Project Maintainers <maintainers@users.noreply.github.com>
|
|
6
6
|
License: MIT
|
|
7
7
|
Classifier: Development Status :: 4 - Beta
|
|
8
8
|
Classifier: License :: OSI Approved :: MIT License
|
|
9
9
|
Classifier: Environment :: Console
|
|
10
10
|
Classifier: Operating System :: POSIX :: Linux
|
|
11
11
|
Classifier: Programming Language :: Python :: 3
|
|
12
|
-
Requires-Python: <3.15,>=3.
|
|
12
|
+
Requires-Python: <3.15,>=3.12
|
|
13
13
|
Description-Content-Type: text/markdown
|
|
14
14
|
License-File: LICENSE
|
|
15
|
-
Requires-Dist: fastapi>=0.
|
|
16
|
-
Requires-Dist: langfuse>=4.
|
|
17
|
-
Requires-Dist: pydantic-ai-slim[ui]
|
|
18
|
-
Requires-Dist:
|
|
19
|
-
Requires-Dist: starlette>=
|
|
20
|
-
Requires-Dist:
|
|
21
|
-
Requires-Dist:
|
|
22
|
-
Requires-Dist:
|
|
15
|
+
Requires-Dist: fastapi>=0.139.2
|
|
16
|
+
Requires-Dist: langfuse>=4.14.1
|
|
17
|
+
Requires-Dist: pydantic-ai-slim[ui]>=2.14.1
|
|
18
|
+
Requires-Dist: python-multipart>=0.0.20
|
|
19
|
+
Requires-Dist: sse-starlette>=3.4.6
|
|
20
|
+
Requires-Dist: starlette>=1.3.1
|
|
21
|
+
Requires-Dist: uvicorn>=0.51.0
|
|
22
|
+
Requires-Dist: watchfiles>=1.2.0
|
|
23
|
+
Requires-Dist: logfire[fastapi,starlette]>=4.38.0
|
|
24
|
+
Requires-Dist: joserfc>=1.7.4
|
|
23
25
|
Provides-Extra: test
|
|
24
|
-
Requires-Dist: pytest-xdist>=3.
|
|
25
|
-
Requires-Dist: pytest; extra == "test"
|
|
26
|
-
Requires-Dist: pytest-asyncio; extra == "test"
|
|
27
|
-
Requires-Dist: pytest-cov; extra == "test"
|
|
28
|
-
Requires-Dist: pytest-env; extra == "test"
|
|
29
|
-
Requires-Dist: pytest-timeout; extra == "test"
|
|
30
|
-
Requires-Dist: networkx; extra == "test"
|
|
31
|
-
Requires-Dist: opentelemetry-instrumentation-starlette; extra == "test"
|
|
32
|
-
Requires-Dist: opentelemetry-instrumentation-fastapi; extra == "test"
|
|
33
|
-
Requires-Dist: opentelemetry-instrumentation-asgi; extra == "test"
|
|
34
|
-
Requires-Dist: agent-utilities[agent,graph]; extra == "test"
|
|
26
|
+
Requires-Dist: pytest-xdist>=3.8.0; extra == "test"
|
|
27
|
+
Requires-Dist: pytest>=9.1.1; extra == "test"
|
|
28
|
+
Requires-Dist: pytest-asyncio>=1.4.0; extra == "test"
|
|
29
|
+
Requires-Dist: pytest-cov>=7.1.0; extra == "test"
|
|
30
|
+
Requires-Dist: pytest-env>=1.7.0; extra == "test"
|
|
31
|
+
Requires-Dist: pytest-timeout>=2.4.0; extra == "test"
|
|
32
|
+
Requires-Dist: networkx>=3.6.1; extra == "test"
|
|
33
|
+
Requires-Dist: opentelemetry-instrumentation-starlette>=0.65b0; extra == "test"
|
|
34
|
+
Requires-Dist: opentelemetry-instrumentation-fastapi>=0.65b0; extra == "test"
|
|
35
|
+
Requires-Dist: opentelemetry-instrumentation-asgi>=0.65b0; extra == "test"
|
|
36
|
+
Requires-Dist: agent-utilities[agent-runtime,graph,metrics]>=2.0.0; extra == "test"
|
|
35
37
|
Dynamic: license-file
|
|
36
38
|
|
|
37
39
|
# Agent WebUI
|
|
@@ -56,7 +58,7 @@ Dynamic: license-file
|
|
|
56
58
|

|
|
57
59
|

|
|
58
60
|
|
|
59
|
-
_Version:
|
|
61
|
+
_Version: 2.2.0_
|
|
60
62
|
|
|
61
63
|
> **Documentation** — The architecture, graph-activity event model, feature surface,
|
|
62
64
|
> and ecosystem integration of Agent WebUI are maintained in the
|
|
@@ -79,6 +81,7 @@ Agent WebUI is a highly interactive, responsive chat interface designed specific
|
|
|
79
81
|
- [Installation](#installation)
|
|
80
82
|
- [Usage](#usage)
|
|
81
83
|
- [Development](#development)
|
|
84
|
+
- [Build & Deploy](#build--deploy)
|
|
82
85
|
- [Detailed Documentation](#detailed-documentation)
|
|
83
86
|
- [Documentation](#documentation)
|
|
84
87
|
- [License](#license)
|
|
@@ -109,7 +112,7 @@ Agent WebUI is a highly interactive, responsive chat interface designed specific
|
|
|
109
112
|
- Zoom/pan controls and PNG export
|
|
110
113
|
- Node type filtering and detailed node inspection
|
|
111
114
|
- Real-time graph statistics and relationship explorer
|
|
112
|
-
- **Code Graph Navigator** (`CodeGraphView.tsx`, CONCEPT:KG-
|
|
115
|
+
- **Code Graph Navigator** (`CodeGraphView.tsx`, CONCEPT:AU-KG.backend.declared-columns-so-schema) -- navigate the
|
|
113
116
|
resolved code-symbol graph built from your indexed GitLab instances: find a
|
|
114
117
|
symbol's **definition**, its **references** (callers), trace the transitive
|
|
115
118
|
**call graph**, or compute the **impact** (blast radius) of a change — scoped to
|
|
@@ -119,7 +122,7 @@ Agent WebUI is a highly interactive, responsive chat interface designed specific
|
|
|
119
122
|
|
|
120
123
|
### Knowledge Management
|
|
121
124
|
- **Knowledge Base Management** -- comprehensive KB system with:
|
|
122
|
-
- Document ingestion from
|
|
125
|
+
- Document ingestion from workspace-confined sources; remote URLs require a governed ingestion connector
|
|
123
126
|
- Article CRUD with concept extraction and fact indexing
|
|
124
127
|
- Health check monitoring with contradiction detection
|
|
125
128
|
- Hybrid search across knowledge bases
|
|
@@ -163,7 +166,7 @@ Defined in `agent/agent_webui/api_extensions.py`:
|
|
|
163
166
|
| `GET /ontology/object/{object_id}` | Full object view: properties, links, derived, markings, history, layout |
|
|
164
167
|
| `POST /ontology/object/{object_id}/edit` | Record a durable edit (property_set / link_add / link_remove) |
|
|
165
168
|
| `POST /ontology/object/{object_id}/revert` | Revert an edit via a compensating edit |
|
|
166
|
-
| `POST /ontology/function/invoke` | Invoke a typed, versioned ontology function (audited runtime, KG-
|
|
169
|
+
| `POST /ontology/function/invoke` | Invoke a typed, versioned ontology function (audited runtime, AU-KG.ontology.default-runtime-bound-import) |
|
|
167
170
|
| `POST /ontology/derive` | Compute a single derived property for an object (KG-2.40) |
|
|
168
171
|
| `POST /ontology/document/process` | Process a document into Document + Chunk objects (KG-2.48) |
|
|
169
172
|
| `GET /ontology/object-view/{object_type}` | Get a type's ObjectView: stored (configured) else standard (schema) |
|
|
@@ -174,7 +177,7 @@ Defined in `agent/agent_webui/api_extensions.py`:
|
|
|
174
177
|
- **5-Domain Navigation Layout**:
|
|
175
178
|
- **DevOps & Workspace**: Workspace Matrix code status, branch operations, and git pulling.
|
|
176
179
|
- **Brain & Knowledge**: Visual SVG graph nodes, Cypher console, scientific literature papers explorer, and Prompts visual configurator.
|
|
177
|
-
- **Infrastructure Hub**: SSH
|
|
180
|
+
- **Infrastructure Hub**: governed SSH/container inventory, CPU/RAM/Disk dials, opaque process utilization, and delegated infrastructure actions.
|
|
178
181
|
- **Lifestyle & Automation**: SmartHome device dimmers, Calendar tasks, qBittorrent torrent speedometers, and MealieScaled grocery trackers.
|
|
179
182
|
- **System Config**: Scheduled crons timeline and Global settings configurator forms.
|
|
180
183
|
|
|
@@ -232,6 +235,31 @@ The WebUI backend (`agent/agent_webui/server.py`) integrates with a **Centralize
|
|
|
232
235
|
|
|
233
236
|
All communication is fully traceable, logging session parameters, agent identities, and provenance for complete ecosystem visibility.
|
|
234
237
|
|
|
238
|
+
### MCP client & MCP Apps host
|
|
239
|
+
|
|
240
|
+
The browser never opens an MCP connection itself. graph-os rejects any request whose `Host`
|
|
241
|
+
authority is outside `MCP_ALLOWED_HOSTS` (which a browser cannot set) and authenticates children
|
|
242
|
+
with a service bearer no page may hold, so `src/lib/mcp-client.ts` calls the WebUI's own backend
|
|
243
|
+
same-origin instead:
|
|
244
|
+
|
|
245
|
+
| Route | Purpose |
|
|
246
|
+
|-------|---------|
|
|
247
|
+
| `POST /api/enhanced/mcp/tools/call` | one MCP `tools/call` through the governed delegation seam |
|
|
248
|
+
| `POST /api/enhanced/mcp/apps/resource` | one MCP `resources/read` for a `ui://` MCP App |
|
|
249
|
+
|
|
250
|
+
Both require `kg:admin` (invoking an arbitrary fleet tool is an admin mutation), and both delegate to
|
|
251
|
+
the host-injected `call_mcp_tool` / `read_mcp_resource` workspace helpers — supplied by
|
|
252
|
+
`agent_utilities.server.webui_mcp_delegation` — which own the allow-list, credentials and audit
|
|
253
|
+
envelope. With no host injection they answer `501` rather than building a client of their own.
|
|
254
|
+
|
|
255
|
+
`McpAppHost` (`src/components/mcp/McpAppHost.tsx`) fetches a `ui://` app's HTML and renders it in
|
|
256
|
+
`McpAppFrame`. **Tool-returned HTML is untrusted**: the frame is `sandbox="allow-scripts"` with no
|
|
257
|
+
`allow-same-origin` (so the app can never read this origin's document, cookies, storage, or issue a
|
|
258
|
+
credentialed request of its own), gets a `no-referrer` policy, and carries a CSP built by
|
|
259
|
+
intersecting the server-declared `_meta.ui.csp` against the host's own `allowedDomains` ceiling. Its
|
|
260
|
+
tool-call channel is host-mediated `postMessage` only, gated by an `allowedTools` allow-list that
|
|
261
|
+
`McpAppHost` requires explicitly — there is no permissive default.
|
|
262
|
+
|
|
235
263
|
### Unified Discovery Architecture
|
|
236
264
|
|
|
237
265
|
```mermaid
|
|
@@ -330,6 +358,61 @@ pnpm run dev
|
|
|
330
358
|
|
|
331
359
|
Navigate to `http://localhost:5173` to interact with the agent.
|
|
332
360
|
|
|
361
|
+
### Served security boundary
|
|
362
|
+
|
|
363
|
+
The backend defaults to a loopback-only development boundary. A non-loopback
|
|
364
|
+
listener fails closed unless JWT verification has a JWKS URI, issuer, and
|
|
365
|
+
audience, and an explicit `ALLOWED_HOSTS` allowlist is configured. Browser
|
|
366
|
+
origins are exact `http`/`https` origins; wildcard origins are rejected.
|
|
367
|
+
|
|
368
|
+
All authenticated routes enforce `kg:read`, `kg:write`, or `kg:admin` from the
|
|
369
|
+
server-minted graph session. State-changing tool and skill configuration
|
|
370
|
+
requires `kg:admin`; the enhanced raw graph, code, KB, agent, and supervisory
|
|
371
|
+
dashboard surfaces are admin-only. API responses are non-cacheable, WebSocket messages and
|
|
372
|
+
HTTP request bodies are bounded, and remote KB URLs are not fetched directly
|
|
373
|
+
by the WebUI. Route remote ingestion through a host connector that enforces its
|
|
374
|
+
own URL, DNS, redirect, credential, timeout, and response-size policy.
|
|
375
|
+
|
|
376
|
+
Startup also requires a callable
|
|
377
|
+
`agent_utilities.security.request_identity.mint_graph_session`; the server will
|
|
378
|
+
not fall back to an unscoped identity. Synchronous graph/backend adapters share
|
|
379
|
+
a fixed four-worker, eight-slot budget. A request deadline does not release a
|
|
380
|
+
slot while an underlying Python call is still running, so repeated timeouts
|
|
381
|
+
cannot create unbounded threads or queued work. Saturated and timed-out calls
|
|
382
|
+
return `503`; each worker receives the server-minted request identity context.
|
|
383
|
+
A backend that can hang indefinitely must additionally enforce a
|
|
384
|
+
native operation/socket timeout: its charged slot intentionally remains
|
|
385
|
+
unavailable until that backend call exits.
|
|
386
|
+
|
|
387
|
+
The browser policy defaults to `default-src 'none'`, self-hosted scripts and
|
|
388
|
+
styles, no script attributes, no frames, and exact source lists. The only
|
|
389
|
+
built-in exceptions are inline React **style attributes** and local
|
|
390
|
+
`data:`/`blob:` image sources; the security doctor reports
|
|
391
|
+
these explicitly. External previews are disabled until their exact origins are
|
|
392
|
+
listed in `AGENT_WEBUI_CSP_FRAME_SOURCES`. Other exact-origin additions use the
|
|
393
|
+
corresponding `AGENT_WEBUI_CSP_*_SOURCES` variables below. Wildcards, paths,
|
|
394
|
+
credentials, and directive injection are rejected. Custom `html_source`
|
|
395
|
+
rendering fails startup unless `AGENT_WEBUI_CSP_CUSTOM_RENDERING=1`; inline
|
|
396
|
+
script/style keywords must then be separately and explicitly configured.
|
|
397
|
+
|
|
398
|
+
The bundled CLI disables Uvicorn access logging because raw query strings can
|
|
399
|
+
contain searches, graph symbols, or other sensitive text. A non-loopback app
|
|
400
|
+
factory deployment must set `AGENT_WEBUI_ACCESS_LOG_POLICY=disabled` or
|
|
401
|
+
`redacted`. `redacted` is an operator attestation, not a logger implementation:
|
|
402
|
+
the embedding ASGI server or proxy must remove raw query strings and credentials
|
|
403
|
+
before writing access records. Check the active contract with
|
|
404
|
+
`python -m agent_webui.server --security-doctor` or the admin-only
|
|
405
|
+
`GET /api/enhanced/security/doctor` endpoint. The latter also exposes bounded
|
|
406
|
+
sync-work utilization and reports `degraded` while timed-out work still occupies
|
|
407
|
+
capacity.
|
|
408
|
+
|
|
409
|
+
The bundled browser client does not store bearer credentials and the native
|
|
410
|
+
WebSocket API cannot attach an `Authorization` header. A remote deployment
|
|
411
|
+
therefore needs an authentication-aware same-origin proxy that injects the
|
|
412
|
+
verified upstream identity for page, API, and WebSocket requests. Configured
|
|
413
|
+
allowed origins authorize request origins; they do not enable CORS response
|
|
414
|
+
headers for a separately hosted frontend.
|
|
415
|
+
|
|
333
416
|
## Development
|
|
334
417
|
|
|
335
418
|
```sh
|
|
@@ -354,9 +437,104 @@ pytest agent/agent_webui/__tests__/ --cov # With coverage
|
|
|
354
437
|
|
|
355
438
|
### Environment Variables
|
|
356
439
|
|
|
357
|
-
| Variable
|
|
358
|
-
|
|
|
440
|
+
| Variable | Default | Description |
|
|
441
|
+
| --- | --- | --- |
|
|
359
442
|
| `VITE_ENABLE_ACP` | `false` | Enable ACP protocol support alongside AG-UI |
|
|
443
|
+
| `PERSISTENCE_IDENTITY_HMAC_KEY_REF` | — | Runtime secret reference used for stable, opaque durable identities |
|
|
444
|
+
| `AGENT_WEBUI_ACCESS_LOG_POLICY` | loopback-only | Required as `disabled` or `redacted` for a non-loopback listener |
|
|
445
|
+
| `AGENT_WEBUI_CSP_CUSTOM_RENDERING` | `false` | Explicitly acknowledge use of a custom `html_source` |
|
|
446
|
+
| `AGENT_WEBUI_CSP_SCRIPT_SOURCES` | — | Extra exact script origins or CSP hashes; unsafe keywords also require the custom-rendering acknowledgement |
|
|
447
|
+
| `AGENT_WEBUI_CSP_STYLE_SOURCES` | — | Extra exact style origins or CSP hashes, applied to both the fallback and element directives |
|
|
448
|
+
| `AGENT_WEBUI_CSP_IMAGE_SOURCES` | — | Extra exact image origins |
|
|
449
|
+
| `AGENT_WEBUI_CSP_FONT_SOURCES` | — | Extra exact font origins |
|
|
450
|
+
| `AGENT_WEBUI_CSP_CONNECT_SOURCES` | — | Extra exact HTTP(S) or WebSocket API origins |
|
|
451
|
+
| `AGENT_WEBUI_CSP_MEDIA_SOURCES` | — | Extra exact media origins |
|
|
452
|
+
| `AGENT_WEBUI_CSP_WORKER_SOURCES` | — | Extra exact worker origins |
|
|
453
|
+
| `AGENT_WEBUI_CSP_FRAME_SOURCES` | — | Exact origins allowed in the Web Preview iframe; frames are denied when unset |
|
|
454
|
+
|
|
455
|
+
## Build & Deploy
|
|
456
|
+
|
|
457
|
+
There is **one** way to build and ship this app's container image, and **one** way
|
|
458
|
+
to deploy it. Both are scripts, not manual steps, precisely because manual/ad-hoc
|
|
459
|
+
builds shipped stale code to production three separate ways in one day
|
|
460
|
+
(2026-08-07) before this section existed:
|
|
461
|
+
|
|
462
|
+
1. A digest-pinned Deployment + `imagePullPolicy: Always` looks safe, but the
|
|
463
|
+
pull policy is irrelevant under a digest pin -- `kubectl rollout restart`
|
|
464
|
+
re-pulls the identical bits forever. Deploying a NEW image always requires
|
|
465
|
+
`kubectl set image deploy/agent-webui agent-webui=<image>@sha256:<new-digest>`.
|
|
466
|
+
2. `uv pip install agent-utilities[...]` can silently resolve from stale PyPI
|
|
467
|
+
instead of a locally built wheel -- PyPI's newest `agent-utilities` doesn't
|
|
468
|
+
have modules this app imports at startup, and the mismatch only surfaces as a
|
|
469
|
+
`ModuleNotFoundError` crash-loop in production, not at build time.
|
|
470
|
+
3. The served frontend `dist/` can go stale **independently of the backend**.
|
|
471
|
+
apps/agent-webui's k8s Deployment NFS-mounts this repo's `agent/` directory
|
|
472
|
+
at `/webui-src` ahead of site-packages (so a Python edit + pod restart goes
|
|
473
|
+
live with no image rebuild) -- but that mount also shadows
|
|
474
|
+
`Path(__file__).parent / 'dist'`, so the served frontend bundle is whatever
|
|
475
|
+
`pnpm build` last produced on the **canonical checkout's disk**, independent
|
|
476
|
+
of which Docker image is running. Rolling the Deployment alone does not ship
|
|
477
|
+
a frontend change.
|
|
478
|
+
|
|
479
|
+
### Local build + deploy (one command)
|
|
480
|
+
|
|
481
|
+
```sh
|
|
482
|
+
docker/deploy.sh
|
|
483
|
+
```
|
|
484
|
+
|
|
485
|
+
Builds the image on the r820 buildhost (always -- see the script's header for
|
|
486
|
+
why, and why it never silently falls back to whatever daemon happens to be
|
|
487
|
+
local), verifies the served bundle carries today's commit **before** pushing
|
|
488
|
+
anything, pushes to Docker Hub by digest, deploys by that digest, waits out a
|
|
489
|
+
60-second availability soak before Kubernetes will retire the old pod
|
|
490
|
+
(`minReadySeconds: 60` on the Deployment), verifies the running pod's `imageID`
|
|
491
|
+
actually changed, rebuilds the live-mounted frontend bundle on the canonical
|
|
492
|
+
checkout, and verifies (via `kubectl exec`, not an HTTP guess) that the live pod
|
|
493
|
+
is actually serving it. It prints the rollback digest **first**, before doing
|
|
494
|
+
anything else, and again at the end alongside the exact rollback command.
|
|
495
|
+
|
|
496
|
+
```sh
|
|
497
|
+
docker/deploy.sh --build-only # local build + verify only; no push, no deploy
|
|
498
|
+
docker/deploy.sh --skip-deploy # build + verify + push; does NOT touch the cluster
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
`docker/build_and_push.sh` (called internally by `deploy.sh`) is the build-only
|
|
502
|
+
half, kept as its own file for a standalone build-only smoke test. Do not
|
|
503
|
+
hand-roll a `docker build`/`kubectl set image` sequence outside these two
|
|
504
|
+
scripts -- see their headers for the full contract, including every env var
|
|
505
|
+
override (`AU_SRC_PATH`, `WHEELHOUSE_PATH`, `CANONICAL_CHECKOUT`, etc.).
|
|
506
|
+
|
|
507
|
+
#### Coordinating concurrent deploys
|
|
508
|
+
|
|
509
|
+
Only one apps/agent-webui Deployment exists. If another lane/session is
|
|
510
|
+
actively deploying to it, use `docker/deploy.sh --skip-deploy` to build and
|
|
511
|
+
push without touching the cluster, coordinate an order (message the other
|
|
512
|
+
lane), and run a bare `docker/deploy.sh` (or `kubectl set image` with the
|
|
513
|
+
digest `--skip-deploy` just printed) once it's clear.
|
|
514
|
+
|
|
515
|
+
### Production image (GitHub CI)
|
|
516
|
+
|
|
517
|
+
Pushing a `v*` tag (or a manual `workflow_dispatch`) runs
|
|
518
|
+
`.github/workflows/docker-publish.yml`, which builds and publishes
|
|
519
|
+
`knucklessg1/agent-webui` from the same `docker/Dockerfile` -- no second,
|
|
520
|
+
divergent CI-only build definition. It builds `epistemic-graph` from source on
|
|
521
|
+
a GitHub-hosted runner (no self-hosted runner is registered for this org today,
|
|
522
|
+
and PyPI's `epistemic-graph` is still behind agent-utilities' floor), checks
|
|
523
|
+
out `agent-utilities` from source as the `au-src` build-context (never PyPI,
|
|
524
|
+
same rule as the local script), and runs the identical served-bundle
|
|
525
|
+
verification before the job is considered successful. See that workflow file's
|
|
526
|
+
header comments for why it can't simply call the fleet's shared
|
|
527
|
+
`container_pipeline.yml` reusable workflow (that workflow's interface has no
|
|
528
|
+
way to pass this Dockerfile's extra build-contexts).
|
|
529
|
+
|
|
530
|
+
### k8s manifest
|
|
531
|
+
|
|
532
|
+
`inventory/k8s-migration/cutover/apptier/agent-webui.yaml` (in the `inventory`
|
|
533
|
+
repo) describes the Deployment's shape (env, mounts, probes, `minReadySeconds`).
|
|
534
|
+
Its `image:` field is a point-in-time snapshot, **not** the source of truth --
|
|
535
|
+
re-applying that file does not update the running image, and hand-editing that
|
|
536
|
+
field back to a mutable tag would reopen trap #1 above. See the file's own
|
|
537
|
+
header warning for the full reasoning.
|
|
360
538
|
|
|
361
539
|
## Documentation
|
|
362
540
|
|
|
@@ -1,39 +1,3 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: agent-webui
|
|
3
|
-
Version: 1.1.0
|
|
4
|
-
Summary: Agent Web Interface for Pydantic AI Agents
|
|
5
|
-
Author-email: Audel Rouhi <knucklessg1@gmail.com>
|
|
6
|
-
License: MIT
|
|
7
|
-
Classifier: Development Status :: 4 - Beta
|
|
8
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
9
|
-
Classifier: Environment :: Console
|
|
10
|
-
Classifier: Operating System :: POSIX :: Linux
|
|
11
|
-
Classifier: Programming Language :: Python :: 3
|
|
12
|
-
Requires-Python: <3.15,>=3.11
|
|
13
|
-
Description-Content-Type: text/markdown
|
|
14
|
-
License-File: LICENSE
|
|
15
|
-
Requires-Dist: fastapi>=0.117.1
|
|
16
|
-
Requires-Dist: langfuse>=4.5.1
|
|
17
|
-
Requires-Dist: pydantic-ai-slim[ui]<3.0.0,>=2.0.0
|
|
18
|
-
Requires-Dist: sse-starlette>=3.4.1
|
|
19
|
-
Requires-Dist: starlette>=1.0.0
|
|
20
|
-
Requires-Dist: uvicorn>=0.46.0
|
|
21
|
-
Requires-Dist: watchfiles>=1.1.0
|
|
22
|
-
Requires-Dist: logfire[fastapi,starlette]
|
|
23
|
-
Provides-Extra: test
|
|
24
|
-
Requires-Dist: pytest-xdist>=3.6.0; extra == "test"
|
|
25
|
-
Requires-Dist: pytest; extra == "test"
|
|
26
|
-
Requires-Dist: pytest-asyncio; extra == "test"
|
|
27
|
-
Requires-Dist: pytest-cov; extra == "test"
|
|
28
|
-
Requires-Dist: pytest-env; extra == "test"
|
|
29
|
-
Requires-Dist: pytest-timeout; extra == "test"
|
|
30
|
-
Requires-Dist: networkx; extra == "test"
|
|
31
|
-
Requires-Dist: opentelemetry-instrumentation-starlette; extra == "test"
|
|
32
|
-
Requires-Dist: opentelemetry-instrumentation-fastapi; extra == "test"
|
|
33
|
-
Requires-Dist: opentelemetry-instrumentation-asgi; extra == "test"
|
|
34
|
-
Requires-Dist: agent-utilities[agent,graph]; extra == "test"
|
|
35
|
-
Dynamic: license-file
|
|
36
|
-
|
|
37
1
|
# Agent WebUI
|
|
38
2
|
|
|
39
3
|

|
|
@@ -56,7 +20,7 @@ Dynamic: license-file
|
|
|
56
20
|

|
|
57
21
|

|
|
58
22
|
|
|
59
|
-
_Version:
|
|
23
|
+
_Version: 2.2.0_
|
|
60
24
|
|
|
61
25
|
> **Documentation** — The architecture, graph-activity event model, feature surface,
|
|
62
26
|
> and ecosystem integration of Agent WebUI are maintained in the
|
|
@@ -79,6 +43,7 @@ Agent WebUI is a highly interactive, responsive chat interface designed specific
|
|
|
79
43
|
- [Installation](#installation)
|
|
80
44
|
- [Usage](#usage)
|
|
81
45
|
- [Development](#development)
|
|
46
|
+
- [Build & Deploy](#build--deploy)
|
|
82
47
|
- [Detailed Documentation](#detailed-documentation)
|
|
83
48
|
- [Documentation](#documentation)
|
|
84
49
|
- [License](#license)
|
|
@@ -109,7 +74,7 @@ Agent WebUI is a highly interactive, responsive chat interface designed specific
|
|
|
109
74
|
- Zoom/pan controls and PNG export
|
|
110
75
|
- Node type filtering and detailed node inspection
|
|
111
76
|
- Real-time graph statistics and relationship explorer
|
|
112
|
-
- **Code Graph Navigator** (`CodeGraphView.tsx`, CONCEPT:KG-
|
|
77
|
+
- **Code Graph Navigator** (`CodeGraphView.tsx`, CONCEPT:AU-KG.backend.declared-columns-so-schema) -- navigate the
|
|
113
78
|
resolved code-symbol graph built from your indexed GitLab instances: find a
|
|
114
79
|
symbol's **definition**, its **references** (callers), trace the transitive
|
|
115
80
|
**call graph**, or compute the **impact** (blast radius) of a change — scoped to
|
|
@@ -119,7 +84,7 @@ Agent WebUI is a highly interactive, responsive chat interface designed specific
|
|
|
119
84
|
|
|
120
85
|
### Knowledge Management
|
|
121
86
|
- **Knowledge Base Management** -- comprehensive KB system with:
|
|
122
|
-
- Document ingestion from
|
|
87
|
+
- Document ingestion from workspace-confined sources; remote URLs require a governed ingestion connector
|
|
123
88
|
- Article CRUD with concept extraction and fact indexing
|
|
124
89
|
- Health check monitoring with contradiction detection
|
|
125
90
|
- Hybrid search across knowledge bases
|
|
@@ -163,7 +128,7 @@ Defined in `agent/agent_webui/api_extensions.py`:
|
|
|
163
128
|
| `GET /ontology/object/{object_id}` | Full object view: properties, links, derived, markings, history, layout |
|
|
164
129
|
| `POST /ontology/object/{object_id}/edit` | Record a durable edit (property_set / link_add / link_remove) |
|
|
165
130
|
| `POST /ontology/object/{object_id}/revert` | Revert an edit via a compensating edit |
|
|
166
|
-
| `POST /ontology/function/invoke` | Invoke a typed, versioned ontology function (audited runtime, KG-
|
|
131
|
+
| `POST /ontology/function/invoke` | Invoke a typed, versioned ontology function (audited runtime, AU-KG.ontology.default-runtime-bound-import) |
|
|
167
132
|
| `POST /ontology/derive` | Compute a single derived property for an object (KG-2.40) |
|
|
168
133
|
| `POST /ontology/document/process` | Process a document into Document + Chunk objects (KG-2.48) |
|
|
169
134
|
| `GET /ontology/object-view/{object_type}` | Get a type's ObjectView: stored (configured) else standard (schema) |
|
|
@@ -174,7 +139,7 @@ Defined in `agent/agent_webui/api_extensions.py`:
|
|
|
174
139
|
- **5-Domain Navigation Layout**:
|
|
175
140
|
- **DevOps & Workspace**: Workspace Matrix code status, branch operations, and git pulling.
|
|
176
141
|
- **Brain & Knowledge**: Visual SVG graph nodes, Cypher console, scientific literature papers explorer, and Prompts visual configurator.
|
|
177
|
-
- **Infrastructure Hub**: SSH
|
|
142
|
+
- **Infrastructure Hub**: governed SSH/container inventory, CPU/RAM/Disk dials, opaque process utilization, and delegated infrastructure actions.
|
|
178
143
|
- **Lifestyle & Automation**: SmartHome device dimmers, Calendar tasks, qBittorrent torrent speedometers, and MealieScaled grocery trackers.
|
|
179
144
|
- **System Config**: Scheduled crons timeline and Global settings configurator forms.
|
|
180
145
|
|
|
@@ -232,6 +197,31 @@ The WebUI backend (`agent/agent_webui/server.py`) integrates with a **Centralize
|
|
|
232
197
|
|
|
233
198
|
All communication is fully traceable, logging session parameters, agent identities, and provenance for complete ecosystem visibility.
|
|
234
199
|
|
|
200
|
+
### MCP client & MCP Apps host
|
|
201
|
+
|
|
202
|
+
The browser never opens an MCP connection itself. graph-os rejects any request whose `Host`
|
|
203
|
+
authority is outside `MCP_ALLOWED_HOSTS` (which a browser cannot set) and authenticates children
|
|
204
|
+
with a service bearer no page may hold, so `src/lib/mcp-client.ts` calls the WebUI's own backend
|
|
205
|
+
same-origin instead:
|
|
206
|
+
|
|
207
|
+
| Route | Purpose |
|
|
208
|
+
|-------|---------|
|
|
209
|
+
| `POST /api/enhanced/mcp/tools/call` | one MCP `tools/call` through the governed delegation seam |
|
|
210
|
+
| `POST /api/enhanced/mcp/apps/resource` | one MCP `resources/read` for a `ui://` MCP App |
|
|
211
|
+
|
|
212
|
+
Both require `kg:admin` (invoking an arbitrary fleet tool is an admin mutation), and both delegate to
|
|
213
|
+
the host-injected `call_mcp_tool` / `read_mcp_resource` workspace helpers — supplied by
|
|
214
|
+
`agent_utilities.server.webui_mcp_delegation` — which own the allow-list, credentials and audit
|
|
215
|
+
envelope. With no host injection they answer `501` rather than building a client of their own.
|
|
216
|
+
|
|
217
|
+
`McpAppHost` (`src/components/mcp/McpAppHost.tsx`) fetches a `ui://` app's HTML and renders it in
|
|
218
|
+
`McpAppFrame`. **Tool-returned HTML is untrusted**: the frame is `sandbox="allow-scripts"` with no
|
|
219
|
+
`allow-same-origin` (so the app can never read this origin's document, cookies, storage, or issue a
|
|
220
|
+
credentialed request of its own), gets a `no-referrer` policy, and carries a CSP built by
|
|
221
|
+
intersecting the server-declared `_meta.ui.csp` against the host's own `allowedDomains` ceiling. Its
|
|
222
|
+
tool-call channel is host-mediated `postMessage` only, gated by an `allowedTools` allow-list that
|
|
223
|
+
`McpAppHost` requires explicitly — there is no permissive default.
|
|
224
|
+
|
|
235
225
|
### Unified Discovery Architecture
|
|
236
226
|
|
|
237
227
|
```mermaid
|
|
@@ -330,6 +320,61 @@ pnpm run dev
|
|
|
330
320
|
|
|
331
321
|
Navigate to `http://localhost:5173` to interact with the agent.
|
|
332
322
|
|
|
323
|
+
### Served security boundary
|
|
324
|
+
|
|
325
|
+
The backend defaults to a loopback-only development boundary. A non-loopback
|
|
326
|
+
listener fails closed unless JWT verification has a JWKS URI, issuer, and
|
|
327
|
+
audience, and an explicit `ALLOWED_HOSTS` allowlist is configured. Browser
|
|
328
|
+
origins are exact `http`/`https` origins; wildcard origins are rejected.
|
|
329
|
+
|
|
330
|
+
All authenticated routes enforce `kg:read`, `kg:write`, or `kg:admin` from the
|
|
331
|
+
server-minted graph session. State-changing tool and skill configuration
|
|
332
|
+
requires `kg:admin`; the enhanced raw graph, code, KB, agent, and supervisory
|
|
333
|
+
dashboard surfaces are admin-only. API responses are non-cacheable, WebSocket messages and
|
|
334
|
+
HTTP request bodies are bounded, and remote KB URLs are not fetched directly
|
|
335
|
+
by the WebUI. Route remote ingestion through a host connector that enforces its
|
|
336
|
+
own URL, DNS, redirect, credential, timeout, and response-size policy.
|
|
337
|
+
|
|
338
|
+
Startup also requires a callable
|
|
339
|
+
`agent_utilities.security.request_identity.mint_graph_session`; the server will
|
|
340
|
+
not fall back to an unscoped identity. Synchronous graph/backend adapters share
|
|
341
|
+
a fixed four-worker, eight-slot budget. A request deadline does not release a
|
|
342
|
+
slot while an underlying Python call is still running, so repeated timeouts
|
|
343
|
+
cannot create unbounded threads or queued work. Saturated and timed-out calls
|
|
344
|
+
return `503`; each worker receives the server-minted request identity context.
|
|
345
|
+
A backend that can hang indefinitely must additionally enforce a
|
|
346
|
+
native operation/socket timeout: its charged slot intentionally remains
|
|
347
|
+
unavailable until that backend call exits.
|
|
348
|
+
|
|
349
|
+
The browser policy defaults to `default-src 'none'`, self-hosted scripts and
|
|
350
|
+
styles, no script attributes, no frames, and exact source lists. The only
|
|
351
|
+
built-in exceptions are inline React **style attributes** and local
|
|
352
|
+
`data:`/`blob:` image sources; the security doctor reports
|
|
353
|
+
these explicitly. External previews are disabled until their exact origins are
|
|
354
|
+
listed in `AGENT_WEBUI_CSP_FRAME_SOURCES`. Other exact-origin additions use the
|
|
355
|
+
corresponding `AGENT_WEBUI_CSP_*_SOURCES` variables below. Wildcards, paths,
|
|
356
|
+
credentials, and directive injection are rejected. Custom `html_source`
|
|
357
|
+
rendering fails startup unless `AGENT_WEBUI_CSP_CUSTOM_RENDERING=1`; inline
|
|
358
|
+
script/style keywords must then be separately and explicitly configured.
|
|
359
|
+
|
|
360
|
+
The bundled CLI disables Uvicorn access logging because raw query strings can
|
|
361
|
+
contain searches, graph symbols, or other sensitive text. A non-loopback app
|
|
362
|
+
factory deployment must set `AGENT_WEBUI_ACCESS_LOG_POLICY=disabled` or
|
|
363
|
+
`redacted`. `redacted` is an operator attestation, not a logger implementation:
|
|
364
|
+
the embedding ASGI server or proxy must remove raw query strings and credentials
|
|
365
|
+
before writing access records. Check the active contract with
|
|
366
|
+
`python -m agent_webui.server --security-doctor` or the admin-only
|
|
367
|
+
`GET /api/enhanced/security/doctor` endpoint. The latter also exposes bounded
|
|
368
|
+
sync-work utilization and reports `degraded` while timed-out work still occupies
|
|
369
|
+
capacity.
|
|
370
|
+
|
|
371
|
+
The bundled browser client does not store bearer credentials and the native
|
|
372
|
+
WebSocket API cannot attach an `Authorization` header. A remote deployment
|
|
373
|
+
therefore needs an authentication-aware same-origin proxy that injects the
|
|
374
|
+
verified upstream identity for page, API, and WebSocket requests. Configured
|
|
375
|
+
allowed origins authorize request origins; they do not enable CORS response
|
|
376
|
+
headers for a separately hosted frontend.
|
|
377
|
+
|
|
333
378
|
## Development
|
|
334
379
|
|
|
335
380
|
```sh
|
|
@@ -354,9 +399,104 @@ pytest agent/agent_webui/__tests__/ --cov # With coverage
|
|
|
354
399
|
|
|
355
400
|
### Environment Variables
|
|
356
401
|
|
|
357
|
-
| Variable
|
|
358
|
-
|
|
|
402
|
+
| Variable | Default | Description |
|
|
403
|
+
| --- | --- | --- |
|
|
359
404
|
| `VITE_ENABLE_ACP` | `false` | Enable ACP protocol support alongside AG-UI |
|
|
405
|
+
| `PERSISTENCE_IDENTITY_HMAC_KEY_REF` | — | Runtime secret reference used for stable, opaque durable identities |
|
|
406
|
+
| `AGENT_WEBUI_ACCESS_LOG_POLICY` | loopback-only | Required as `disabled` or `redacted` for a non-loopback listener |
|
|
407
|
+
| `AGENT_WEBUI_CSP_CUSTOM_RENDERING` | `false` | Explicitly acknowledge use of a custom `html_source` |
|
|
408
|
+
| `AGENT_WEBUI_CSP_SCRIPT_SOURCES` | — | Extra exact script origins or CSP hashes; unsafe keywords also require the custom-rendering acknowledgement |
|
|
409
|
+
| `AGENT_WEBUI_CSP_STYLE_SOURCES` | — | Extra exact style origins or CSP hashes, applied to both the fallback and element directives |
|
|
410
|
+
| `AGENT_WEBUI_CSP_IMAGE_SOURCES` | — | Extra exact image origins |
|
|
411
|
+
| `AGENT_WEBUI_CSP_FONT_SOURCES` | — | Extra exact font origins |
|
|
412
|
+
| `AGENT_WEBUI_CSP_CONNECT_SOURCES` | — | Extra exact HTTP(S) or WebSocket API origins |
|
|
413
|
+
| `AGENT_WEBUI_CSP_MEDIA_SOURCES` | — | Extra exact media origins |
|
|
414
|
+
| `AGENT_WEBUI_CSP_WORKER_SOURCES` | — | Extra exact worker origins |
|
|
415
|
+
| `AGENT_WEBUI_CSP_FRAME_SOURCES` | — | Exact origins allowed in the Web Preview iframe; frames are denied when unset |
|
|
416
|
+
|
|
417
|
+
## Build & Deploy
|
|
418
|
+
|
|
419
|
+
There is **one** way to build and ship this app's container image, and **one** way
|
|
420
|
+
to deploy it. Both are scripts, not manual steps, precisely because manual/ad-hoc
|
|
421
|
+
builds shipped stale code to production three separate ways in one day
|
|
422
|
+
(2026-08-07) before this section existed:
|
|
423
|
+
|
|
424
|
+
1. A digest-pinned Deployment + `imagePullPolicy: Always` looks safe, but the
|
|
425
|
+
pull policy is irrelevant under a digest pin -- `kubectl rollout restart`
|
|
426
|
+
re-pulls the identical bits forever. Deploying a NEW image always requires
|
|
427
|
+
`kubectl set image deploy/agent-webui agent-webui=<image>@sha256:<new-digest>`.
|
|
428
|
+
2. `uv pip install agent-utilities[...]` can silently resolve from stale PyPI
|
|
429
|
+
instead of a locally built wheel -- PyPI's newest `agent-utilities` doesn't
|
|
430
|
+
have modules this app imports at startup, and the mismatch only surfaces as a
|
|
431
|
+
`ModuleNotFoundError` crash-loop in production, not at build time.
|
|
432
|
+
3. The served frontend `dist/` can go stale **independently of the backend**.
|
|
433
|
+
apps/agent-webui's k8s Deployment NFS-mounts this repo's `agent/` directory
|
|
434
|
+
at `/webui-src` ahead of site-packages (so a Python edit + pod restart goes
|
|
435
|
+
live with no image rebuild) -- but that mount also shadows
|
|
436
|
+
`Path(__file__).parent / 'dist'`, so the served frontend bundle is whatever
|
|
437
|
+
`pnpm build` last produced on the **canonical checkout's disk**, independent
|
|
438
|
+
of which Docker image is running. Rolling the Deployment alone does not ship
|
|
439
|
+
a frontend change.
|
|
440
|
+
|
|
441
|
+
### Local build + deploy (one command)
|
|
442
|
+
|
|
443
|
+
```sh
|
|
444
|
+
docker/deploy.sh
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
Builds the image on the r820 buildhost (always -- see the script's header for
|
|
448
|
+
why, and why it never silently falls back to whatever daemon happens to be
|
|
449
|
+
local), verifies the served bundle carries today's commit **before** pushing
|
|
450
|
+
anything, pushes to Docker Hub by digest, deploys by that digest, waits out a
|
|
451
|
+
60-second availability soak before Kubernetes will retire the old pod
|
|
452
|
+
(`minReadySeconds: 60` on the Deployment), verifies the running pod's `imageID`
|
|
453
|
+
actually changed, rebuilds the live-mounted frontend bundle on the canonical
|
|
454
|
+
checkout, and verifies (via `kubectl exec`, not an HTTP guess) that the live pod
|
|
455
|
+
is actually serving it. It prints the rollback digest **first**, before doing
|
|
456
|
+
anything else, and again at the end alongside the exact rollback command.
|
|
457
|
+
|
|
458
|
+
```sh
|
|
459
|
+
docker/deploy.sh --build-only # local build + verify only; no push, no deploy
|
|
460
|
+
docker/deploy.sh --skip-deploy # build + verify + push; does NOT touch the cluster
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
`docker/build_and_push.sh` (called internally by `deploy.sh`) is the build-only
|
|
464
|
+
half, kept as its own file for a standalone build-only smoke test. Do not
|
|
465
|
+
hand-roll a `docker build`/`kubectl set image` sequence outside these two
|
|
466
|
+
scripts -- see their headers for the full contract, including every env var
|
|
467
|
+
override (`AU_SRC_PATH`, `WHEELHOUSE_PATH`, `CANONICAL_CHECKOUT`, etc.).
|
|
468
|
+
|
|
469
|
+
#### Coordinating concurrent deploys
|
|
470
|
+
|
|
471
|
+
Only one apps/agent-webui Deployment exists. If another lane/session is
|
|
472
|
+
actively deploying to it, use `docker/deploy.sh --skip-deploy` to build and
|
|
473
|
+
push without touching the cluster, coordinate an order (message the other
|
|
474
|
+
lane), and run a bare `docker/deploy.sh` (or `kubectl set image` with the
|
|
475
|
+
digest `--skip-deploy` just printed) once it's clear.
|
|
476
|
+
|
|
477
|
+
### Production image (GitHub CI)
|
|
478
|
+
|
|
479
|
+
Pushing a `v*` tag (or a manual `workflow_dispatch`) runs
|
|
480
|
+
`.github/workflows/docker-publish.yml`, which builds and publishes
|
|
481
|
+
`knucklessg1/agent-webui` from the same `docker/Dockerfile` -- no second,
|
|
482
|
+
divergent CI-only build definition. It builds `epistemic-graph` from source on
|
|
483
|
+
a GitHub-hosted runner (no self-hosted runner is registered for this org today,
|
|
484
|
+
and PyPI's `epistemic-graph` is still behind agent-utilities' floor), checks
|
|
485
|
+
out `agent-utilities` from source as the `au-src` build-context (never PyPI,
|
|
486
|
+
same rule as the local script), and runs the identical served-bundle
|
|
487
|
+
verification before the job is considered successful. See that workflow file's
|
|
488
|
+
header comments for why it can't simply call the fleet's shared
|
|
489
|
+
`container_pipeline.yml` reusable workflow (that workflow's interface has no
|
|
490
|
+
way to pass this Dockerfile's extra build-contexts).
|
|
491
|
+
|
|
492
|
+
### k8s manifest
|
|
493
|
+
|
|
494
|
+
`inventory/k8s-migration/cutover/apptier/agent-webui.yaml` (in the `inventory`
|
|
495
|
+
repo) describes the Deployment's shape (env, mounts, probes, `minReadySeconds`).
|
|
496
|
+
Its `image:` field is a point-in-time snapshot, **not** the source of truth --
|
|
497
|
+
re-applying that file does not update the running image, and hand-editing that
|
|
498
|
+
field back to a mutable tag would reopen trap #1 above. See the file's own
|
|
499
|
+
header warning for the full reasoning.
|
|
360
500
|
|
|
361
501
|
## Documentation
|
|
362
502
|
|
|
File without changes
|
|
File without changes
|