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.
Files changed (602) hide show
  1. {agent_webui-1.1.0 → agent_webui-2.2.0}/LICENSE +0 -0
  2. {agent_webui-1.1.0/agent/agent_webui.egg-info → agent_webui-2.2.0}/PKG-INFO +207 -29
  3. agent_webui-1.1.0/PKG-INFO → agent_webui-2.2.0/README.md +183 -43
  4. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/__init__.py +0 -0
  5. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/__tests__/conftest.py +0 -0
  6. agent_webui-2.2.0/agent/agent_webui/__tests__/test_agent_library_endpoints.py +373 -0
  7. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/__tests__/test_api_extensions.py +0 -25
  8. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/__tests__/test_canonical_gateway_mount.py +26 -0
  9. agent_webui-2.2.0/agent/agent_webui/__tests__/test_engine_construction_wiring.py +114 -0
  10. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/__tests__/test_files_endpoints.py +58 -0
  11. agent_webui-2.2.0/agent/agent_webui/__tests__/test_graph_identity.py +165 -0
  12. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/__tests__/test_graph_kb_endpoints.py +0 -0
  13. agent_webui-2.2.0/agent/agent_webui/__tests__/test_identity_middleware_boundary.py +269 -0
  14. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/__tests__/test_integration.py +1 -1
  15. agent_webui-2.2.0/agent/agent_webui/__tests__/test_mcp_delegation_routes.py +241 -0
  16. agent_webui-2.2.0/agent/agent_webui/__tests__/test_mcp_server_inventory.py +222 -0
  17. agent_webui-2.2.0/agent/agent_webui/__tests__/test_observability.py +705 -0
  18. agent_webui-2.2.0/agent/agent_webui/__tests__/test_oidc_session.py +565 -0
  19. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/__tests__/test_ontology_endpoints.py +25 -23
  20. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/__tests__/test_parity_contract.py +26 -1
  21. agent_webui-2.2.0/agent/agent_webui/__tests__/test_pydantic_ai_compat.py +59 -0
  22. agent_webui-2.2.0/agent/agent_webui/__tests__/test_rbac.py +88 -0
  23. agent_webui-2.2.0/agent/agent_webui/__tests__/test_security_boundaries.py +1352 -0
  24. agent_webui-2.2.0/agent/agent_webui/__tests__/test_skill_kg_classification.py +241 -0
  25. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/__tests__/test_workflow_endpoints.py +3 -2
  26. agent_webui-2.2.0/agent/agent_webui/__tests__/test_workspace_helpers_chokepoint.py +185 -0
  27. agent_webui-2.2.0/agent/agent_webui/__tests__/test_ws_dashboard_denial_diagnostics.py +402 -0
  28. agent_webui-2.2.0/agent/agent_webui/api_extensions.py +9990 -0
  29. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/apple-touch-icon.png +0 -0
  30. agent_webui-2.2.0/agent/agent_webui/dist/assets/AdminView-BoPQbgL-.js +1 -0
  31. agent_webui-2.2.0/agent/agent_webui/dist/assets/AgentLibraryView-CGjC7raC.js +1 -0
  32. agent_webui-2.2.0/agent/agent_webui/dist/assets/BrokerView-vR0lvxdI.js +1 -0
  33. agent_webui-2.2.0/agent/agent_webui/dist/assets/CapabilityWorkbench-Y2CVYnpu.js +4 -0
  34. agent_webui-2.2.0/agent/agent_webui/dist/assets/CatalogueView-C6Vj7S8I.js +1 -0
  35. agent_webui-2.2.0/agent/agent_webui/dist/assets/CodeGraphView-DeJaeSnX.js +1 -0
  36. agent_webui-2.2.0/agent/agent_webui/dist/assets/ConfigurationView-_zuzsaoc.js +1 -0
  37. agent_webui-2.2.0/agent/agent_webui/dist/assets/CypherReplView-CQ0JowvA.js +1 -0
  38. agent_webui-2.2.0/agent/agent_webui/dist/assets/DashboardView-CEVI-BO5.js +1 -0
  39. agent_webui-2.2.0/agent/agent_webui/dist/assets/DataAnalystView-DuyC_7IO.js +1 -0
  40. agent_webui-2.2.0/agent/agent_webui/dist/assets/EcosystemView-BZQzZw0o.js +1 -0
  41. agent_webui-2.2.0/agent/agent_webui/dist/assets/ExtractionView-BNiRbb4O.js +1 -0
  42. agent_webui-2.2.0/agent/agent_webui/dist/assets/FilesView--qqeR2-6.js +1 -0
  43. agent_webui-2.2.0/agent/agent_webui/dist/assets/FleetView-SKJMl4dK.js +1 -0
  44. agent_webui-2.2.0/agent/agent_webui/dist/assets/GoalsView-GI5hexq-.js +1 -0
  45. agent_webui-2.2.0/agent/agent_webui/dist/assets/GraphCanvas-DCRZaLc0.js +1 -0
  46. agent_webui-2.2.0/agent/agent_webui/dist/assets/GraphView-DMuEwdYU.js +1 -0
  47. agent_webui-2.2.0/agent/agent_webui/dist/assets/ImportExportModal-BMSlKSDJ.js +1 -0
  48. agent_webui-2.2.0/agent/agent_webui/dist/assets/KnowledgeBaseView-MME12Rpi.js +1 -0
  49. agent_webui-2.2.0/agent/agent_webui/dist/assets/KnowledgeView-Dlk8Udoq.js +7 -0
  50. agent_webui-2.2.0/agent/agent_webui/dist/assets/LLMTemplatesView-BRrLxeh-.js +1 -0
  51. agent_webui-2.2.0/agent/agent_webui/dist/assets/LearnView-DF_Zjucl.js +236 -0
  52. agent_webui-2.2.0/agent/agent_webui/dist/assets/LiveDashboardsView-D8Xq4fNb.js +1 -0
  53. agent_webui-2.2.0/agent/agent_webui/dist/assets/MagmaView-DXlVkthD.js +1 -0
  54. agent_webui-2.2.0/agent/agent_webui/dist/assets/MemoryView-D_UZLCRW.js +1 -0
  55. agent_webui-2.2.0/agent/agent_webui/dist/assets/ObjectExplorerView-BBqerMIg.js +1 -0
  56. agent_webui-2.2.0/agent/agent_webui/dist/assets/ObjectView-4kkBxzhA.js +1 -0
  57. agent_webui-2.2.0/agent/agent_webui/dist/assets/ObservabilityView-CyQjjdV3.js +1 -0
  58. agent_webui-2.2.0/agent/agent_webui/dist/assets/OpsPanelView-BYs3EYhg.js +1 -0
  59. agent_webui-2.2.0/agent/agent_webui/dist/assets/PromptsView-BaIvihki.js +1 -0
  60. agent_webui-2.2.0/agent/agent_webui/dist/assets/SDDView-CmY6_loH.js +1 -0
  61. agent_webui-2.2.0/agent/agent_webui/dist/assets/SchedulingView-BIYIXmhD.js +1 -0
  62. agent_webui-2.2.0/agent/agent_webui/dist/assets/SchemaView-DFLXzBzI.js +1 -0
  63. agent_webui-2.2.0/agent/agent_webui/dist/assets/SessionExpiredNotice-BuEU0kEv.js +1 -0
  64. agent_webui-2.2.0/agent/agent_webui/dist/assets/SessionsView-C7Peouw0.js +1 -0
  65. agent_webui-2.2.0/agent/agent_webui/dist/assets/SkillsView-DHgt0J4F.js +1 -0
  66. agent_webui-2.2.0/agent/agent_webui/dist/assets/SparqlView-DGYuVnlI.js +1 -0
  67. agent_webui-2.2.0/agent/agent_webui/dist/assets/SystemStatusView-De0q3UI5.js +1 -0
  68. agent_webui-2.2.0/agent/agent_webui/dist/assets/TemporalGraphView-BioupZo9.js +1 -0
  69. agent_webui-2.2.0/agent/agent_webui/dist/assets/UsageView-DhiU3aZI.js +1 -0
  70. agent_webui-2.2.0/agent/agent_webui/dist/assets/VertexView-DzfCLEk3.js +1 -0
  71. agent_webui-2.2.0/agent/agent_webui/dist/assets/VizDemoView-DH_wV8ee.js +1 -0
  72. agent_webui-2.2.0/agent/agent_webui/dist/assets/WorkflowEditorView-BnuhLJ6X.css +1 -0
  73. agent_webui-2.2.0/agent/agent_webui/dist/assets/WorkflowEditorView-CZDweAjr.js +7 -0
  74. agent_webui-2.2.0/agent/agent_webui/dist/assets/WorkspaceIDEView-e2SoQH5v.js +1 -0
  75. agent_webui-2.2.0/agent/agent_webui/dist/assets/abnfDiagram-VRR7QNED-3TEv1zsc.js +1 -0
  76. agent_webui-2.2.0/agent/agent_webui/dist/assets/arc-GJ_Vi1QI.js +1 -0
  77. agent_webui-2.2.0/agent/agent_webui/dist/assets/architectureDiagram-ZJ3FMSHR-GMBWd-VO.js +36 -0
  78. agent_webui-2.2.0/agent/agent_webui/dist/assets/blockDiagram-677ZJIJ3-pjA0Y0-8.js +132 -0
  79. 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
  80. agent_webui-2.2.0/agent/agent_webui/dist/assets/card-jA_uRyRo.js +1 -0
  81. agent_webui-2.2.0/agent/agent_webui/dist/assets/channel-DPg-zdes.js +1 -0
  82. agent_webui-2.2.0/agent/agent_webui/dist/assets/chevron-left-DbMjdPv6.js +1 -0
  83. agent_webui-2.2.0/agent/agent_webui/dist/assets/chevron-right-DxomHGl9.js +1 -0
  84. 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
  85. agent_webui-2.2.0/agent/agent_webui/dist/assets/chunk-32BRIVSS--I6oESLC.js +1 -0
  86. 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
  87. agent_webui-2.2.0/agent/agent_webui/dist/assets/chunk-EX3LRPZG-BFMjpYVq.js +231 -0
  88. 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
  89. agent_webui-2.2.0/agent/agent_webui/dist/assets/chunk-MOJQB5TN-DlsoJRZ4.js +88 -0
  90. agent_webui-2.2.0/agent/agent_webui/dist/assets/chunk-RYQCIY6F-E6KibJz4.js +1 -0
  91. 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
  92. 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
  93. agent_webui-2.2.0/agent/agent_webui/dist/assets/chunk-XXDRQBXY-vL6oqeFy.js +1 -0
  94. agent_webui-2.2.0/agent/agent_webui/dist/assets/circle-alert-CPLBudeH.js +1 -0
  95. agent_webui-2.2.0/agent/agent_webui/dist/assets/classDiagram-OUVF2IWQ-B2EpMKtb.js +1 -0
  96. agent_webui-2.2.0/agent/agent_webui/dist/assets/classDiagram-v2-EOCWNBFH-B2EpMKtb.js +1 -0
  97. 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
  98. agent_webui-2.2.0/agent/agent_webui/dist/assets/cose-bilkent-JH36ORCC-HZMFN04k.js +1 -0
  99. agent_webui-2.2.0/agent/agent_webui/dist/assets/cynefin-VYW2F7L2-BekMfbT7.js +166 -0
  100. agent_webui-2.2.0/agent/agent_webui/dist/assets/cynefinDiagram-TSTJHNR4-D6aroQKr.js +62 -0
  101. agent_webui-2.2.0/agent/agent_webui/dist/assets/dagre-VKFMJZFB-D8qo4zpo.js +4 -0
  102. 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
  103. agent_webui-2.2.0/agent/agent_webui/dist/assets/diagram-G47NLZAW-N0UdMXoP.js +24 -0
  104. agent_webui-2.2.0/agent/agent_webui/dist/assets/diagram-NH7WQ7WH-BhJhvkhN.js +24 -0
  105. agent_webui-2.2.0/agent/agent_webui/dist/assets/diagram-OA4YK3LP-DJRxh-8V.js +30 -0
  106. agent_webui-2.2.0/agent/agent_webui/dist/assets/diagram-WEI45ONY-DCsIsNLl.js +41 -0
  107. agent_webui-2.2.0/agent/agent_webui/dist/assets/ebnfDiagram-CCIWWBDH-BSCnchkI.js +1 -0
  108. agent_webui-2.2.0/agent/agent_webui/dist/assets/erDiagram-Q63AITRT-WwX18LRl.js +85 -0
  109. agent_webui-2.2.0/agent/agent_webui/dist/assets/external-link-YPQMSrZp.js +1 -0
  110. agent_webui-2.2.0/agent/agent_webui/dist/assets/eye-DKU_Vxqu.js +1 -0
  111. agent_webui-2.2.0/agent/agent_webui/dist/assets/file-text-0-ZYk3PT.js +1 -0
  112. agent_webui-2.2.0/agent/agent_webui/dist/assets/flowDiagram-23GEKE2U-B6zzZZMZ.js +156 -0
  113. agent_webui-2.2.0/agent/agent_webui/dist/assets/folder-open-h3hDBh4O.js +1 -0
  114. agent_webui-2.2.0/agent/agent_webui/dist/assets/ganttDiagram-NO4QXBWP-D0RtDz18.js +292 -0
  115. agent_webui-2.2.0/agent/agent_webui/dist/assets/gateway-C8WFquVE.js +1 -0
  116. agent_webui-2.2.0/agent/agent_webui/dist/assets/git-fork-B0gGRpXI.js +1 -0
  117. agent_webui-2.2.0/agent/agent_webui/dist/assets/gitGraphDiagram-IHSO6WYX-D3NlU05q.js +106 -0
  118. 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
  119. agent_webui-2.2.0/agent/agent_webui/dist/assets/hard-drive-NUWTCMBa.js +1 -0
  120. agent_webui-2.2.0/agent/agent_webui/dist/assets/index-3scWiDq2.js +558 -0
  121. agent_webui-2.2.0/agent/agent_webui/dist/assets/index-BcmMgPFv.js +312 -0
  122. agent_webui-2.2.0/agent/agent_webui/dist/assets/index-gYfOaG28.css +1 -0
  123. agent_webui-2.2.0/agent/agent_webui/dist/assets/infoDiagram-FWYZ7A6U-B-zirRQA.js +2 -0
  124. 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
  125. 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
  126. 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
  127. agent_webui-2.2.0/agent/agent_webui/dist/assets/layers-aPODrU0l.js +1 -0
  128. agent_webui-2.2.0/agent/agent_webui/dist/assets/layout-D-LzfAck.js +1 -0
  129. agent_webui-2.2.0/agent/agent_webui/dist/assets/layout-grid-DtHbnzSQ.js +1 -0
  130. agent_webui-2.2.0/agent/agent_webui/dist/assets/linear-D1g5s_fh.js +1 -0
  131. agent_webui-2.2.0/agent/agent_webui/dist/assets/link-2-B2qYw4JB.js +1 -0
  132. agent_webui-2.2.0/agent/agent_webui/dist/assets/map-DxJ2ADlA.js +1 -0
  133. agent_webui-2.2.0/agent/agent_webui/dist/assets/mermaid.core-DKdh7Zm3.js +249 -0
  134. agent_webui-2.2.0/agent/agent_webui/dist/assets/mindmap-definition-LN4V7U3C-DDU8prGg.js +96 -0
  135. agent_webui-2.2.0/agent/agent_webui/dist/assets/pegDiagram-2B236MQR-C4QIRbO3.js +1 -0
  136. agent_webui-2.2.0/agent/agent_webui/dist/assets/pieDiagram-ENE6RG2P-1SnqMuF5.js +39 -0
  137. agent_webui-2.2.0/agent/agent_webui/dist/assets/play-BPB0BcIT.js +1 -0
  138. agent_webui-2.2.0/agent/agent_webui/dist/assets/plus-Brq5VcI1.js +1 -0
  139. 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
  140. agent_webui-2.2.0/agent/agent_webui/dist/assets/railroadDiagram-RFXS5EU6-DK49Lnoj.js +1 -0
  141. agent_webui-2.2.0/agent/agent_webui/dist/assets/refresh-cw-s6crI3ZZ.js +1 -0
  142. 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
  143. agent_webui-2.2.0/agent/agent_webui/dist/assets/sankeyDiagram-HTMAVEWB-lHuuywyR.js +40 -0
  144. agent_webui-2.2.0/agent/agent_webui/dist/assets/save-74UDVfFR.js +1 -0
  145. agent_webui-2.2.0/agent/agent_webui/dist/assets/scroll-area-DQ8wpa4y.js +1 -0
  146. agent_webui-2.2.0/agent/agent_webui/dist/assets/separator-B8MH7879.js +1 -0
  147. agent_webui-2.2.0/agent/agent_webui/dist/assets/sequenceDiagram-DBY2YBRQ-Cr_oZUPF.js +162 -0
  148. agent_webui-2.2.0/agent/agent_webui/dist/assets/server-CBht6nOR.js +1 -0
  149. agent_webui-2.2.0/agent/agent_webui/dist/assets/shield-BR-971Wy.js +1 -0
  150. agent_webui-2.2.0/agent/agent_webui/dist/assets/sizeCapture-X5ZJPWSS-CrE7CuZ_.js +1 -0
  151. agent_webui-2.2.0/agent/agent_webui/dist/assets/slider-BfRr_Tq4.js +1 -0
  152. agent_webui-2.2.0/agent/agent_webui/dist/assets/sliders-vertical-lF2NtKX3.js +1 -0
  153. agent_webui-2.2.0/agent/agent_webui/dist/assets/stateDiagram-2N3HPSRC-BZZOM04a.js +1 -0
  154. agent_webui-2.2.0/agent/agent_webui/dist/assets/stateDiagram-v2-6OUMAXLB-CfpHxN4T.js +1 -0
  155. agent_webui-2.2.0/agent/agent_webui/dist/assets/swimlanes-5IMT3BWC-CU05g8Np.js +2 -0
  156. agent_webui-2.2.0/agent/agent_webui/dist/assets/swimlanesDiagram-G3AALYLV-BX1Z5A4e.js +8 -0
  157. agent_webui-2.2.0/agent/agent_webui/dist/assets/tabs-EB-_lbXY.js +1 -0
  158. 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
  159. agent_webui-2.2.0/agent/agent_webui/dist/assets/transform-CpIVI4vC.js +1 -0
  160. agent_webui-2.2.0/agent/agent_webui/dist/assets/trash-2-DbeLRKY6.js +1 -0
  161. agent_webui-2.2.0/agent/agent_webui/dist/assets/upload-CGgEKIDN.js +1 -0
  162. agent_webui-2.2.0/agent/agent_webui/dist/assets/useMutation-DveurLYM.js +1 -0
  163. agent_webui-2.2.0/agent/agent_webui/dist/assets/users-D5E5Tsnq.js +1 -0
  164. agent_webui-2.2.0/agent/agent_webui/dist/assets/v4-Dnyct6Ft.js +1 -0
  165. agent_webui-2.2.0/agent/agent_webui/dist/assets/value-DIujSiJ7.js +1 -0
  166. agent_webui-2.2.0/agent/agent_webui/dist/assets/vennDiagram-L72KCM5P-CxKKCC7j.js +34 -0
  167. 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
  168. agent_webui-2.2.0/agent/agent_webui/dist/assets/xychartDiagram-FW5EYKEG-DqYg6bWZ.js +7 -0
  169. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/favicon.ico +0 -0
  170. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/favicon.png +0 -0
  171. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/favicon.svg +0 -0
  172. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/index.html +2 -2
  173. agent_webui-2.2.0/agent/agent_webui/graph_identity.py +138 -0
  174. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/icon.png +0 -0
  175. agent_webui-2.2.0/agent/agent_webui/observability.py +245 -0
  176. agent_webui-2.2.0/agent/agent_webui/oidc_session.py +850 -0
  177. agent_webui-2.2.0/agent/agent_webui/orchestrator_model.py +178 -0
  178. agent_webui-2.2.0/agent/agent_webui/rbac.py +114 -0
  179. agent_webui-2.2.0/agent/agent_webui/server.py +1967 -0
  180. agent_webui-2.2.0/agent/agent_webui/skills/__init__.py +9 -0
  181. agent_webui-2.2.0/agent/agent_webui/skills/kg-webui-admin/SKILL.md +47 -0
  182. agent_webui-2.2.0/agent/agent_webui/skills/kg-webui-dashboards/SKILL.md +45 -0
  183. agent_webui-2.2.0/agent/agent_webui/skills/kg-webui-extraction/SKILL.md +45 -0
  184. agent_webui-2.2.0/agent/agent_webui/skills/kg-webui-graphviz/SKILL.md +47 -0
  185. agent_webui-2.2.0/agent/agent_webui/skills/kg-webui-ontology-operator/SKILL.md +53 -0
  186. agent_webui-2.2.0/agent/agent_webui/skills/kg-webui-swe/SKILL.md +48 -0
  187. agent_webui-1.1.0/README.md → agent_webui-2.2.0/agent/agent_webui.egg-info/PKG-INFO +221 -7
  188. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui.egg-info/SOURCES.txt +167 -50
  189. agent_webui-2.2.0/agent/agent_webui.egg-info/entry_points.txt +2 -0
  190. agent_webui-2.2.0/agent/agent_webui.egg-info/requires.txt +23 -0
  191. agent_webui-2.2.0/pyproject.toml +156 -0
  192. {agent_webui-1.1.0 → agent_webui-2.2.0}/tests/test_destubbed_endpoints.py +133 -24
  193. {agent_webui-1.1.0 → agent_webui-2.2.0}/tests/test_graph_visualization.py +1 -1
  194. {agent_webui-1.1.0 → agent_webui-2.2.0}/tests/test_init.py +0 -0
  195. agent_webui-2.2.0/tests/test_privacy_boundaries.py +47 -0
  196. {agent_webui-1.1.0 → agent_webui-2.2.0}/tests/test_startup.py +0 -0
  197. agent_webui-1.1.0/agent/agent_webui/api_extensions.py +0 -6750
  198. agent_webui-1.1.0/agent/agent_webui/dist/assets/arc-CTlQv9SP.js +0 -1
  199. agent_webui-1.1.0/agent/agent_webui/dist/assets/architectureDiagram-3BPJPVTR-SUh8hjts.js +0 -36
  200. agent_webui-1.1.0/agent/agent_webui/dist/assets/blockDiagram-GPEHLZMM-Cbq-HHdN.js +0 -132
  201. agent_webui-1.1.0/agent/agent_webui/dist/assets/channel-JcQtHxqh.js +0 -1
  202. agent_webui-1.1.0/agent/agent_webui/dist/assets/chunk-55IACEB6-BK2f-dU2.js +0 -1
  203. agent_webui-1.1.0/agent/agent_webui/dist/assets/chunk-AQP2D5EJ-DsjwQxG-.js +0 -231
  204. agent_webui-1.1.0/agent/agent_webui/dist/assets/chunk-ND2GUHAM-D9gjiot5.js +0 -1
  205. agent_webui-1.1.0/agent/agent_webui/dist/assets/classDiagram-4FO5ZUOK-DEERZd5H.js +0 -1
  206. agent_webui-1.1.0/agent/agent_webui/dist/assets/classDiagram-v2-Q7XG4LA2-DEERZd5H.js +0 -1
  207. agent_webui-1.1.0/agent/agent_webui/dist/assets/cose-bilkent-S5V4N54A-gKUJE9p6.js +0 -1
  208. agent_webui-1.1.0/agent/agent_webui/dist/assets/dagre-BM42HDAG-2qou2O33.js +0 -4
  209. agent_webui-1.1.0/agent/agent_webui/dist/assets/diagram-2AECGRRQ-Bfs_tsxb.js +0 -43
  210. agent_webui-1.1.0/agent/agent_webui/dist/assets/diagram-5GNKFQAL-C55ks2vO.js +0 -10
  211. agent_webui-1.1.0/agent/agent_webui/dist/assets/diagram-LMA3HP47-DEGL8v4R.js +0 -24
  212. agent_webui-1.1.0/agent/agent_webui/dist/assets/diagram-OG6HWLK6-CP_76Sed.js +0 -24
  213. agent_webui-1.1.0/agent/agent_webui/dist/assets/erDiagram-TEJ5UH35-Bl2PxwVR.js +0 -85
  214. agent_webui-1.1.0/agent/agent_webui/dist/assets/flowDiagram-I6XJVG4X-BCPOFHCm.js +0 -162
  215. agent_webui-1.1.0/agent/agent_webui/dist/assets/ganttDiagram-6RSMTGT7-t1k99OHS.js +0 -292
  216. agent_webui-1.1.0/agent/agent_webui/dist/assets/gitGraphDiagram-PVQCEYII-Dnp08CGf.js +0 -106
  217. agent_webui-1.1.0/agent/agent_webui/dist/assets/index-Byql2v_B.css +0 -1
  218. agent_webui-1.1.0/agent/agent_webui/dist/assets/index-CVQ5gD07.js +0 -868
  219. agent_webui-1.1.0/agent/agent_webui/dist/assets/infoDiagram-5YYISTIA-C5uuiRTQ.js +0 -2
  220. agent_webui-1.1.0/agent/agent_webui/dist/assets/layout-SsrduOYp.js +0 -1
  221. agent_webui-1.1.0/agent/agent_webui/dist/assets/linear-DLnj3tUK.js +0 -1
  222. agent_webui-1.1.0/agent/agent_webui/dist/assets/mermaid.core-f5t4NAx7.js +0 -244
  223. agent_webui-1.1.0/agent/agent_webui/dist/assets/mindmap-definition-RKZ34NQL-D8AQT1NL.js +0 -96
  224. agent_webui-1.1.0/agent/agent_webui/dist/assets/pieDiagram-4H26LBE5-C5PE2oE_.js +0 -30
  225. agent_webui-1.1.0/agent/agent_webui/dist/assets/sankeyDiagram-5OEKKPKP-CW9pDuN7.js +0 -40
  226. agent_webui-1.1.0/agent/agent_webui/dist/assets/sequenceDiagram-3UESZ5HK-DU6G4uIZ.js +0 -162
  227. agent_webui-1.1.0/agent/agent_webui/dist/assets/stateDiagram-AJRCARHV-_TT-2N8R.js +0 -1
  228. agent_webui-1.1.0/agent/agent_webui/dist/assets/stateDiagram-v2-BHNVJYJU-DeB4cwCs.js +0 -1
  229. agent_webui-1.1.0/agent/agent_webui/dist/assets/vennDiagram-CIIHVFJN-Daag0AsR.js +0 -34
  230. agent_webui-1.1.0/agent/agent_webui/dist/assets/wardley-L42UT6IY-TqOQuOPH.js +0 -161
  231. agent_webui-1.1.0/agent/agent_webui/dist/assets/xychartDiagram-2RQKCTM6-CtS5bfJf.js +0 -7
  232. agent_webui-1.1.0/agent/agent_webui/server.py +0 -237
  233. agent_webui-1.1.0/agent/agent_webui.egg-info/requires.txt +0 -21
  234. agent_webui-1.1.0/pyproject.toml +0 -73
  235. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  236. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  237. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  238. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  239. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  240. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  241. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  242. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  243. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  244. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  245. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  246. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  247. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  248. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  249. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  250. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  251. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  252. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  253. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  254. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  255. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  256. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  257. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  258. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  259. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  260. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  261. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  262. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  263. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  264. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  265. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  266. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  267. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  268. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  269. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  270. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  271. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  272. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  273. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  274. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  275. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  276. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  277. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  278. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  279. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  280. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  281. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  282. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  283. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  284. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  285. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  286. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  287. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  288. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  289. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  290. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  291. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  292. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  293. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  294. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/abap-BdImnpbu.js +0 -0
  295. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/actionscript-3-CoDkCxhg.js +0 -0
  296. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/ada-bCR0ucgS.js +0 -0
  297. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/andromeeda-C4gqWexZ.js +0 -0
  298. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/angular-html-CU67Zn6k.js +0 -0
  299. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/angular-ts-BwZT4LLn.js +0 -0
  300. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/apache-Pmp26Uib.js +0 -0
  301. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/apex-D8_7TLub.js +0 -0
  302. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/apl-dKokRX4l.js +0 -0
  303. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/applescript-Co6uUVPk.js +0 -0
  304. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/ara-BRHolxvo.js +0 -0
  305. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/asciidoc-Ve4PFQV2.js +0 -0
  306. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/asm-D_Q5rh1f.js +0 -0
  307. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/astro-CbQHKStN.js +0 -0
  308. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/aurora-x-D-2ljcwZ.js +0 -0
  309. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/awk-DMzUqQB5.js +0 -0
  310. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/ayu-dark-DYE7WIF3.js +0 -0
  311. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/ayu-light-BA47KaF1.js +0 -0
  312. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/ayu-mirage-32ctXXKs.js +0 -0
  313. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/ballerina-BFfxhgS-.js +0 -0
  314. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/bat-BkioyH1T.js +0 -0
  315. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/beancount-k_qm7-4y.js +0 -0
  316. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/berry-uYugtg8r.js +0 -0
  317. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/bibtex-CHM0blh-.js +0 -0
  318. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/bicep-Bmn6On1c.js +0 -0
  319. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/bird2-DPOp833l.js +0 -0
  320. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/blade-D4QpJJKB.js +0 -0
  321. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/bsl-BO_Y6i37.js +0 -0
  322. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/c-BIGW1oBm.js +0 -0
  323. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/c3-eo99z4R2.js +0 -0
  324. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/cadence-Bv_4Rxtq.js +0 -0
  325. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/cairo-KRGpt6FW.js +0 -0
  326. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/catppuccin-frappe-DFWUc33u.js +0 -0
  327. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/catppuccin-latte-C9dUb6Cb.js +0 -0
  328. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/catppuccin-macchiato-DQyhUUbL.js +0 -0
  329. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/catppuccin-mocha-D87Tk5Gz.js +0 -0
  330. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/clarity-D53aC0YG.js +0 -0
  331. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/clojure-P80f7IUj.js +0 -0
  332. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/cmake-D1j8_8rp.js +0 -0
  333. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/cobol-nwyudZeR.js +0 -0
  334. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/codeowners-Bp6g37R7.js +0 -0
  335. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/codeql-DsOJ9woJ.js +0 -0
  336. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/coffee-Ch7k5sss.js +0 -0
  337. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/common-lisp-Cg-RD9OK.js +0 -0
  338. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/coq-DkFqJrB1.js +0 -0
  339. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/cpp-CofmeUqb.js +0 -0
  340. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/crystal-tKQVLTB8.js +0 -0
  341. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/csharp-COcwbKMJ.js +0 -0
  342. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/css-DPfMkruS.js +0 -0
  343. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/csv-fuZLfV_i.js +0 -0
  344. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/cue-D82EKSYY.js +0 -0
  345. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/cypher-COkxafJQ.js +0 -0
  346. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/cytoscape.esm-D3_iZ_3b.js +0 -0
  347. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/d-85-TOEBH.js +0 -0
  348. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/dark-plus-C3mMm8J8.js +0 -0
  349. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/dart-CF10PKvl.js +0 -0
  350. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/dax-CEL-wOlO.js +0 -0
  351. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/defaultLocale-DX6XiGOO.js +0 -0
  352. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/desktop-BmXAJ9_W.js +0 -0
  353. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/diff-D97Zzqfu.js +0 -0
  354. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/docker-BcOcwvcX.js +0 -0
  355. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/dotenv-Da5cRb03.js +0 -0
  356. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/dracula-BzJJZx-M.js +0 -0
  357. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/dracula-soft-BXkSAIEj.js +0 -0
  358. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/dream-maker-BtqSS_iP.js +0 -0
  359. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/edge-BkV0erSs.js +0 -0
  360. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/elixir-CDX3lj18.js +0 -0
  361. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/elm-DbKCFpqz.js +0 -0
  362. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/emacs-lisp-C9XAeP06.js +0 -0
  363. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/erb-B12qg9BL.js +0 -0
  364. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/erlang-DsQrWhSR.js +0 -0
  365. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/everforest-dark-BgDCqdQA.js +0 -0
  366. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/everforest-light-C8M2exoo.js +0 -0
  367. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/fennel-BYunw83y.js +0 -0
  368. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/fish-BvzEVeQv.js +0 -0
  369. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/fluent-C4IJs8-o.js +0 -0
  370. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/fortran-fixed-form-CkoXwp7k.js +0 -0
  371. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/fortran-free-form-BxgE0vQu.js +0 -0
  372. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/fsharp-CXgrBDvD.js +0 -0
  373. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/gdresource-BOOCDP_w.js +0 -0
  374. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/gdscript-C5YyOfLZ.js +0 -0
  375. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/gdshader-DkwncUOv.js +0 -0
  376. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/genie-D0YGMca9.js +0 -0
  377. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/gherkin-DyxjwDmM.js +0 -0
  378. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/git-commit-F4YmCXRG.js +0 -0
  379. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/git-rebase-r7XF79zn.js +0 -0
  380. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/github-dark-DHJKELXO.js +0 -0
  381. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/github-dark-default-Cuk6v7N8.js +0 -0
  382. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/github-dark-dimmed-DH5Ifo-i.js +0 -0
  383. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/github-dark-high-contrast-E3gJ1_iC.js +0 -0
  384. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/github-light-DAi9KRSo.js +0 -0
  385. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/github-light-default-D7oLnXFd.js +0 -0
  386. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/github-light-high-contrast-BfjtVDDH.js +0 -0
  387. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/gleam-BspZqrRM.js +0 -0
  388. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/glimmer-js-Rg0-pVw9.js +0 -0
  389. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/glimmer-ts-U6CK756n.js +0 -0
  390. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/glsl-DplSGwfg.js +0 -0
  391. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/gn-n2N0HUVH.js +0 -0
  392. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/gnuplot-DdkO51Og.js +0 -0
  393. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/go-CxLEBnE3.js +0 -0
  394. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/graphql-ChdNCCLP.js +0 -0
  395. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/groovy-gcz8RCvz.js +0 -0
  396. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/gruvbox-dark-hard-CFHQjOhq.js +0 -0
  397. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/gruvbox-dark-medium-GsRaNv29.js +0 -0
  398. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/gruvbox-dark-soft-CVdnzihN.js +0 -0
  399. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/gruvbox-light-hard-CH1njM8p.js +0 -0
  400. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/gruvbox-light-medium-DRw_LuNl.js +0 -0
  401. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/gruvbox-light-soft-hJgmCMqR.js +0 -0
  402. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/hack-CaT9iCJl.js +0 -0
  403. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/haml-B8DHNrY2.js +0 -0
  404. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/handlebars-BL8al0AC.js +0 -0
  405. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/haskell-Df6bDoY_.js +0 -0
  406. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/haxe-CzTSHFRz.js +0 -0
  407. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/hcl-BWvSN4gD.js +0 -0
  408. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/hjson-D5-asLiD.js +0 -0
  409. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/hlsl-D3lLCCz7.js +0 -0
  410. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/horizon-BUw7H-hv.js +0 -0
  411. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/horizon-bright-Cn-bp-IR.js +0 -0
  412. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/houston-DnULxvSX.js +0 -0
  413. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/html-GMplVEZG.js +0 -0
  414. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/html-derivative-BFtXZ54Q.js +0 -0
  415. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/http-jrhK8wxY.js +0 -0
  416. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/hurl-irOxFIW8.js +0 -0
  417. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/hxml-Bvhsp5Yf.js +0 -0
  418. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/hy-DFXneXwc.js +0 -0
  419. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/imba-DGztddWO.js +0 -0
  420. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/ini-BEwlwnbL.js +0 -0
  421. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/init-Gi6I4Gst.js +0 -0
  422. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/java-CylS5w8V.js +0 -0
  423. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/javascript-wDzz0qaB.js +0 -0
  424. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/jinja-4LBKfQ-Z.js +0 -0
  425. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/jison-wvAkD_A8.js +0 -0
  426. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/json-Cp-IABpG.js +0 -0
  427. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/json5-C9tS-k6U.js +0 -0
  428. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/jsonc-Des-eS-w.js +0 -0
  429. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/jsonl-DcaNXYhu.js +0 -0
  430. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/jsonnet-DFQXde-d.js +0 -0
  431. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/jssm-C2t-YnRu.js +0 -0
  432. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/jsx-g9-lgVsj.js +0 -0
  433. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/julia-CxzCAyBv.js +0 -0
  434. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/just-Cw27pwNe.js +0 -0
  435. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/kanagawa-dragon-CkXjmgJE.js +0 -0
  436. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/kanagawa-lotus-CfQXZHmo.js +0 -0
  437. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/kanagawa-wave-DWedfzmr.js +0 -0
  438. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/katex-DLVrwanO.css +0 -0
  439. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/kdl-DV7GczEv.js +0 -0
  440. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/kotlin-BdnUsdx6.js +0 -0
  441. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/kusto-DZf3V79B.js +0 -0
  442. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/laserwave-DUszq2jm.js +0 -0
  443. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/latex-CWtU0Tv5.js +0 -0
  444. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/lean-BZvkOJ9d.js +0 -0
  445. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/less-B1dDrJ26.js +0 -0
  446. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/light-plus-B7mTdjB0.js +0 -0
  447. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/liquid-DYVedYrR.js +0 -0
  448. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/llvm-DjAJT7YJ.js +0 -0
  449. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/log-2UxHyX5q.js +0 -0
  450. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/logo-BtOb2qkB.js +0 -0
  451. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/lua-BaeVxFsk.js +0 -0
  452. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/luau-C-HG3fhB.js +0 -0
  453. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/make-CHLpvVh8.js +0 -0
  454. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/markdown-Cvjx9yec.js +0 -0
  455. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/marko-CnJfTvn9.js +0 -0
  456. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/material-theme-D5KoaKCx.js +0 -0
  457. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/material-theme-darker-BfHTSMKl.js +0 -0
  458. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/material-theme-lighter-B0m2ddpp.js +0 -0
  459. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/material-theme-ocean-CyktbL80.js +0 -0
  460. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/material-theme-palenight-Csfq5Kiy.js +0 -0
  461. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/matlab-D7o27uSR.js +0 -0
  462. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/mdc-BMNejdWA.js +0 -0
  463. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/mdx-Cmh6b_Ma.js +0 -0
  464. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/mermaid-mWjccvbQ.js +0 -0
  465. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/min-dark-CafNBF8u.js +0 -0
  466. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/min-light-CTRr51gU.js +0 -0
  467. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/mipsasm-CKIfxQSi.js +0 -0
  468. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/mojo-rZm6bMo-.js +0 -0
  469. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/monokai-D4h5O-jR.js +0 -0
  470. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/moonbit-_H4v1dQx.js +0 -0
  471. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/move-IF9eRakj.js +0 -0
  472. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/narrat-DRg8JJMk.js +0 -0
  473. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/nextflow-Zz6hmt5N.js +0 -0
  474. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/nextflow-groovy-BeH2EWoN.js +0 -0
  475. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/nginx-BpAMiNFr.js +0 -0
  476. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/night-owl-C39BiMTA.js +0 -0
  477. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/night-owl-light-CMTm3GFP.js +0 -0
  478. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/nim-CVrawwO9.js +0 -0
  479. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/nix-CwoSXNpI.js +0 -0
  480. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/nord-Ddv68eIx.js +0 -0
  481. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/nushell-Cz2AlsmD.js +0 -0
  482. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/objective-c-DXmwc3jG.js +0 -0
  483. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/objective-cpp-CLxacb5B.js +0 -0
  484. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/ocaml-C0hk2d4L.js +0 -0
  485. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/odin-BBf5iR-q.js +0 -0
  486. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/one-dark-pro-DVMEJ2y_.js +0 -0
  487. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/one-light-C3Wv6jpd.js +0 -0
  488. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/openscad-C4EeE6gA.js +0 -0
  489. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/ordinal-Cboi1Yqb.js +0 -0
  490. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/pascal-D93ZcfNL.js +0 -0
  491. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/perl-C0TMdlhV.js +0 -0
  492. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/php-Dhbhpdrm.js +0 -0
  493. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/pkl-u5AG7uiY.js +0 -0
  494. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/plastic-3e1v2bzS.js +0 -0
  495. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/plsql-ChMvpjG-.js +0 -0
  496. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/po-BTJTHyun.js +0 -0
  497. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/poimandres-CS3Unz2-.js +0 -0
  498. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/polar-C0HS_06l.js +0 -0
  499. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/postcss-CXtECtnM.js +0 -0
  500. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/powerquery-CEu0bR-o.js +0 -0
  501. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/powershell-Dpen1YoG.js +0 -0
  502. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/prisma-Dd19v3D-.js +0 -0
  503. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/prolog-CbFg5uaA.js +0 -0
  504. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/proto-C7zT0LnQ.js +0 -0
  505. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/pug-CGlum2m_.js +0 -0
  506. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/puppet-BMWR74SV.js +0 -0
  507. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/purescript-CklMAg4u.js +0 -0
  508. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/python-B6aJPvgy.js +0 -0
  509. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/qml-3beO22l8.js +0 -0
  510. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/qmldir-C8lEn-DE.js +0 -0
  511. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/qss-IeuSbFQv.js +0 -0
  512. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/r-Dspwwk_N.js +0 -0
  513. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/racket-BqYA7rlc.js +0 -0
  514. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/raku-DXvB9xmW.js +0 -0
  515. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/razor-Uh8Bk_45.js +0 -0
  516. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/red-bN70gL4F.js +0 -0
  517. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/reg-C-SQnVFl.js +0 -0
  518. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/regexp-CDVJQ6XC.js +0 -0
  519. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/rel-C3B-1QV4.js +0 -0
  520. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/riscv-BM1_JUlF.js +0 -0
  521. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/ron-D8l8udqQ.js +0 -0
  522. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/rose-pine-dawn-DHQR4-dF.js +0 -0
  523. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/rose-pine-moon-D4_iv3hh.js +0 -0
  524. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/rose-pine-qdsjHGoJ.js +0 -0
  525. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/rosmsg-BJDFO7_C.js +0 -0
  526. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/rst-BrH8l1NY.js +0 -0
  527. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/ruby-Dw2BHqvy.js +0 -0
  528. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/rust-B1yitclQ.js +0 -0
  529. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/sas-cz2c8ADy.js +0 -0
  530. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/sass-Cj5Yp3dK.js +0 -0
  531. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/scala-C151Ov-r.js +0 -0
  532. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/scheme-C98Dy4si.js +0 -0
  533. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/scss-OYdSNvt2.js +0 -0
  534. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/sdbl-DVxCFoDh.js +0 -0
  535. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/shaderlab-Dg9Lc6iA.js +0 -0
  536. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/shellscript-Yzrsuije.js +0 -0
  537. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/shellsession-BADoaaVG.js +0 -0
  538. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/slack-dark-BthQWCQV.js +0 -0
  539. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/slack-ochin-DqwNpetd.js +0 -0
  540. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/smalltalk-BERRCDM3.js +0 -0
  541. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/snazzy-light-Bw305WKR.js +0 -0
  542. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/solarized-dark-DXbdFlpD.js +0 -0
  543. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/solarized-light-L9t79GZl.js +0 -0
  544. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/solidity-rGO070M0.js +0 -0
  545. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/soy-Brmx7dQM.js +0 -0
  546. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/sparql-rVzFXLq3.js +0 -0
  547. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/splunk-BtCnVYZw.js +0 -0
  548. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/sql-BLtJtn59.js +0 -0
  549. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/ssh-config-_ykCGR6B.js +0 -0
  550. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/stata-BH5u7GGu.js +0 -0
  551. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/stylus-BEDo0Tqx.js +0 -0
  552. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/surrealql-Bq5Q-fJD.js +0 -0
  553. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/svelte-C_ipcX3V.js +0 -0
  554. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/swift-D82vCrfD.js +0 -0
  555. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/synthwave-84-CbfX1IO0.js +0 -0
  556. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/system-verilog-CnnmHF94.js +0 -0
  557. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/systemd-4A_iFExJ.js +0 -0
  558. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/talonscript-CkByrt1z.js +0 -0
  559. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/tasl-QIJgUcNo.js +0 -0
  560. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/tcl-dwOrl1Do.js +0 -0
  561. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/templ-P3uqSqPl.js +0 -0
  562. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/terraform-BETggiCN.js +0 -0
  563. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/tex-idrVyKtj.js +0 -0
  564. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/tokyo-night-hegEt444.js +0 -0
  565. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/toml-vGWfd6FD.js +0 -0
  566. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/ts-tags-zn1MmPIZ.js +0 -0
  567. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/tsv-B_m7g4N7.js +0 -0
  568. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/tsx-COt5Ahok.js +0 -0
  569. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/turtle-BsS91CYL.js +0 -0
  570. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/twig-DNn4PbVi.js +0 -0
  571. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/typescript-BPQ3VLAy.js +0 -0
  572. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/typespec-BGHnOYBU.js +0 -0
  573. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/typst-DHCkPAjA.js +0 -0
  574. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/v-BcVCzyr7.js +0 -0
  575. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/vala-CsfeWuGM.js +0 -0
  576. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/vb-D17OF-Vu.js +0 -0
  577. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/verilog-BQ8w6xss.js +0 -0
  578. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/vesper-DU1UobuO.js +0 -0
  579. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/vhdl-CeAyd5Ju.js +0 -0
  580. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/viml-CJc9bBzg.js +0 -0
  581. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/vitesse-black-Bkuqu6BP.js +0 -0
  582. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/vitesse-dark-D0r3Knsf.js +0 -0
  583. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/vitesse-light-CVO1_9PV.js +0 -0
  584. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/vue-DN_0RTcg.js +0 -0
  585. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/vue-html-AaS7Mt5G.js +0 -0
  586. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/vue-vine-CQOfvN7w.js +0 -0
  587. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/vyper-CDx5xZoG.js +0 -0
  588. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/wasm-CG6Dc4jp.js +0 -0
  589. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/wasm-MzD3tlZU.js +0 -0
  590. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/wenyan-BV7otONQ.js +0 -0
  591. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/wgsl-Dx-B1_4e.js +0 -0
  592. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/wikitext-BhOHFoWU.js +0 -0
  593. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/wit-5i3qLPDT.js +0 -0
  594. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/wolfram-lXgVvXCa.js +0 -0
  595. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/xml-sdJ4AIDG.js +0 -0
  596. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/xsl-CtQFsRM5.js +0 -0
  597. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/yaml-Buea-lGh.js +0 -0
  598. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/zenscript-DVFEvuxE.js +0 -0
  599. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui/dist/assets/zig-VOosw3JB.js +0 -0
  600. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui.egg-info/dependency_links.txt +0 -0
  601. {agent_webui-1.1.0 → agent_webui-2.2.0}/agent/agent_webui.egg-info/top_level.txt +0 -0
  602. {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: 1.1.0
3
+ Version: 2.2.0
4
4
  Summary: Agent Web Interface for Pydantic AI Agents
5
- Author-email: Audel Rouhi <knucklessg1@gmail.com>
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.11
12
+ Requires-Python: <3.15,>=3.12
13
13
  Description-Content-Type: text/markdown
14
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]
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.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"
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
  ![PyPI - Wheel](https://img.shields.io/pypi/wheel/agent-webui)
57
59
  ![PyPI - Implementation](https://img.shields.io/pypi/implementation/agent-webui)
58
60
 
59
- _Version: 1.0.0_
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-2.9g) -- navigate the
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 multiple sources (PDF, DOCX, EPUB, Markdown, URLs)
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-2.41) |
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 tunnels drawer, remote terminal commands, CPU/RAM/Disk dials, active process trees, and Docker registry boards.
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 | Default | Description |
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
  ![PyPI - Version](https://img.shields.io/pypi/v/agent-webui)
@@ -56,7 +20,7 @@ Dynamic: license-file
56
20
  ![PyPI - Wheel](https://img.shields.io/pypi/wheel/agent-webui)
57
21
  ![PyPI - Implementation](https://img.shields.io/pypi/implementation/agent-webui)
58
22
 
59
- _Version: 1.0.0_
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-2.9g) -- navigate the
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 multiple sources (PDF, DOCX, EPUB, Markdown, URLs)
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-2.41) |
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 tunnels drawer, remote terminal commands, CPU/RAM/Disk dials, active process trees, and Docker registry boards.
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 | Default | Description |
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