agent-webui 2.8.2__tar.gz → 2.8.3__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 (463) hide show
  1. {agent_webui-2.8.2 → agent_webui-2.8.3}/PKG-INFO +65 -54
  2. agent_webui-2.8.3/README.md +135 -0
  3. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/__tests__/test_browser_control.py +114 -3
  4. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/__tests__/test_oidc_session.py +78 -0
  5. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/__tests__/test_run_identity.py +111 -1
  6. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/__tests__/test_security_boundaries.py +155 -0
  7. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/__tests__/test_workspace_helpers_chokepoint.py +20 -1
  8. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/browser_control.py +50 -2
  9. agent_webui-2.8.3/agent/agent_webui/dist/assets/AdminView-Cr-K2QMy.js +1 -0
  10. agent_webui-2.8.3/agent/agent_webui/dist/assets/AgentLibraryView-Dy527WTZ.js +1 -0
  11. agent_webui-2.8.3/agent/agent_webui/dist/assets/ArboraReadinessView-Ck11bobs.js +1 -0
  12. agent_webui-2.8.3/agent/agent_webui/dist/assets/AtlasView-xc-KWBhz.js +5 -0
  13. agent_webui-2.8.3/agent/agent_webui/dist/assets/Availability-6sZvWPY8.js +1 -0
  14. agent_webui-2.8.3/agent/agent_webui/dist/assets/BrokerView-DHPqPg8t.js +1 -0
  15. agent_webui-2.8.3/agent/agent_webui/dist/assets/CatalogueView-BAoRHToO.js +1 -0
  16. agent_webui-2.8.3/agent/agent_webui/dist/assets/ChartPage-MBkSENf4.js +1 -0
  17. agent_webui-2.8.3/agent/agent_webui/dist/assets/ChartPanel-ByG-AwHr.js +1 -0
  18. agent_webui-2.8.3/agent/agent_webui/dist/assets/CodeGraphView-BqeA8P80.js +1 -0
  19. agent_webui-2.8.3/agent/agent_webui/dist/assets/ConfigurationView-CnUXSXDA.js +1 -0
  20. agent_webui-2.8.3/agent/agent_webui/dist/assets/ConsoleConfirmView-CJO3Fn9C.js +1 -0
  21. agent_webui-2.8.3/agent/agent_webui/dist/assets/ContactPage-D1wMd6dJ.js +1 -0
  22. agent_webui-2.8.3/agent/agent_webui/dist/assets/CypherReplView-Cf4P4Beg.js +1 -0
  23. agent_webui-2.8.3/agent/agent_webui/dist/assets/DashboardView-07o5xP8n.js +1 -0
  24. agent_webui-2.8.3/agent/agent_webui/dist/assets/DashboardsView-CzrRymM0.js +1 -0
  25. agent_webui-2.8.3/agent/agent_webui/dist/assets/DataAnalystView-zmxf0LeM.js +1 -0
  26. agent_webui-2.8.3/agent/agent_webui/dist/assets/EcosystemView-CAQdeuWm.js +1 -0
  27. agent_webui-2.8.3/agent/agent_webui/dist/assets/ExploreQueryWorkspace-BJ26pzMo.css +1 -0
  28. agent_webui-2.8.3/agent/agent_webui/dist/assets/ExploreQueryWorkspace-pTN3wIt1.js +1 -0
  29. agent_webui-2.8.3/agent/agent_webui/dist/assets/ExtractionView-DBZo9RzB.js +1 -0
  30. agent_webui-2.8.3/agent/agent_webui/dist/assets/FilesView-BOaBDQrc.js +1 -0
  31. agent_webui-2.8.3/agent/agent_webui/dist/assets/FleetView-BIf39emL.js +1 -0
  32. agent_webui-2.8.3/agent/agent_webui/dist/assets/GoalsView-CSBNseRR.js +1 -0
  33. agent_webui-2.8.3/agent/agent_webui/dist/assets/Graph3DLodView-DRdKV-UK.js +1 -0
  34. agent_webui-2.8.3/agent/agent_webui/dist/assets/Graph3DView-CKvr12_O.js +1 -0
  35. agent_webui-2.8.3/agent/agent_webui/dist/assets/GraphCanvas-B7n5FC0f.js +1 -0
  36. agent_webui-2.8.3/agent/agent_webui/dist/assets/GraphView-CJiqwtSR.js +1 -0
  37. agent_webui-2.8.3/agent/agent_webui/dist/assets/ImportExportModal-DG2LArjK.js +1 -0
  38. agent_webui-2.8.3/agent/agent_webui/dist/assets/IntegrationsView-Dbzh_WYX.js +2 -0
  39. agent_webui-2.8.3/agent/agent_webui/dist/assets/KnowledgeBaseView-DpAJYfqR.js +1 -0
  40. agent_webui-2.8.3/agent/agent_webui/dist/assets/KnowledgeView-Drb0WUc-.js +1 -0
  41. agent_webui-2.8.3/agent/agent_webui/dist/assets/LLMTemplatesView-BT5Rd_ez.js +1 -0
  42. agent_webui-2.8.2/agent/agent_webui/dist/assets/LearnView-CwniIN2x.js → agent_webui-2.8.3/agent/agent_webui/dist/assets/LearnView-CML6XpcP.js +2 -2
  43. agent_webui-2.8.3/agent/agent_webui/dist/assets/LegalPageContent-Bm_CBUGE.js +1 -0
  44. agent_webui-2.8.3/agent/agent_webui/dist/assets/LiveDashboardsView-C1dGr12m.js +1 -0
  45. agent_webui-2.8.3/agent/agent_webui/dist/assets/MagmaView-CEfvw6kO.js +1 -0
  46. agent_webui-2.8.3/agent/agent_webui/dist/assets/MarketsCalendar-Fton5_7h.js +1 -0
  47. agent_webui-2.8.3/agent/agent_webui/dist/assets/MarketsHome-Dn9nH7XL.js +1 -0
  48. agent_webui-2.8.3/agent/agent_webui/dist/assets/MarketsMenu-dagQnbiy.js +1 -0
  49. agent_webui-2.8.3/agent/agent_webui/dist/assets/MarketsNews-KMxwr5q6.js +1 -0
  50. agent_webui-2.8.3/agent/agent_webui/dist/assets/MarketsPortfolio-Pg4gF-Jr.js +1 -0
  51. agent_webui-2.8.3/agent/agent_webui/dist/assets/MarketsShell-vfOQzaYr.js +1 -0
  52. agent_webui-2.8.3/agent/agent_webui/dist/assets/McpAppsView-BY7WiRUp.js +1 -0
  53. agent_webui-2.8.3/agent/agent_webui/dist/assets/MemoryView-BWguya_c.js +1 -0
  54. agent_webui-2.8.3/agent/agent_webui/dist/assets/NodeTypeBreakdown-C_hdpGrL.js +1 -0
  55. agent_webui-2.8.3/agent/agent_webui/dist/assets/NotFoundPage-CIzsJJ-z.js +1 -0
  56. agent_webui-2.8.2/agent/agent_webui/dist/assets/Notices-BMgxi7sA.js → agent_webui-2.8.3/agent/agent_webui/dist/assets/Notices-jXTJAa7a.js +1 -1
  57. agent_webui-2.8.3/agent/agent_webui/dist/assets/ObjectExplorerView-BU_OUMW_.js +1 -0
  58. agent_webui-2.8.3/agent/agent_webui/dist/assets/ObjectView-ErFXylGv.js +1 -0
  59. agent_webui-2.8.3/agent/agent_webui/dist/assets/ObservabilityView-CWF8HbP6.js +1 -0
  60. agent_webui-2.8.3/agent/agent_webui/dist/assets/OperateWorkspace-Dk36newj.css +1 -0
  61. agent_webui-2.8.3/agent/agent_webui/dist/assets/OperateWorkspace-OyVFI3A0.js +1 -0
  62. agent_webui-2.8.3/agent/agent_webui/dist/assets/OpsPanelView-t8KKflmu.js +1 -0
  63. agent_webui-2.8.3/agent/agent_webui/dist/assets/PrivacyPage-DxysQLTX.js +1 -0
  64. agent_webui-2.8.3/agent/agent_webui/dist/assets/PromptsView-kb7bJ9bo.js +1 -0
  65. agent_webui-2.8.3/agent/agent_webui/dist/assets/PublicPageLayout-Ue-pLK8W.js +1 -0
  66. agent_webui-2.8.3/agent/agent_webui/dist/assets/SDDView-CWkLtDkZ.js +1 -0
  67. agent_webui-2.8.3/agent/agent_webui/dist/assets/SchedulingView-YOf2WX_h.js +1 -0
  68. agent_webui-2.8.3/agent/agent_webui/dist/assets/SchemaView-T2X3SMsb.js +1 -0
  69. agent_webui-2.8.3/agent/agent_webui/dist/assets/SessionExpiredNotice-CmOpwgL0.js +1 -0
  70. agent_webui-2.8.3/agent/agent_webui/dist/assets/SessionsView-CRVJfECu.js +1 -0
  71. agent_webui-2.8.2/agent/agent_webui/dist/assets/SharePage-DUJXSbfY.js → agent_webui-2.8.3/agent/agent_webui/dist/assets/SharePage-Bq9Akv3R.js +1 -1
  72. agent_webui-2.8.3/agent/agent_webui/dist/assets/SkillsView-C2a1AtcW.js +1 -0
  73. agent_webui-2.8.3/agent/agent_webui/dist/assets/SparqlView-D4TN2exF.js +1 -0
  74. agent_webui-2.8.3/agent/agent_webui/dist/assets/SystemStatusView-ceUFxi3A.js +1 -0
  75. agent_webui-2.8.3/agent/agent_webui/dist/assets/TableExplorerView-D0LTHSGV.js +1 -0
  76. agent_webui-2.8.3/agent/agent_webui/dist/assets/TemporalGraphView-Bej-2oHX.js +1 -0
  77. agent_webui-2.8.3/agent/agent_webui/dist/assets/TermsPage-kQCR0E2Q.js +1 -0
  78. agent_webui-2.8.3/agent/agent_webui/dist/assets/ThankYouPage-C8B3L_nM.js +1 -0
  79. agent_webui-2.8.3/agent/agent_webui/dist/assets/TrendBadge-Uz9XP-FT.js +1 -0
  80. agent_webui-2.8.3/agent/agent_webui/dist/assets/UsageAnalytics-Byb-C2Mf.js +1 -0
  81. agent_webui-2.8.3/agent/agent_webui/dist/assets/UsageView-BntJWZjM.js +1 -0
  82. agent_webui-2.8.3/agent/agent_webui/dist/assets/UserManagementView-B0sVWQ8U.js +1 -0
  83. agent_webui-2.8.3/agent/agent_webui/dist/assets/VertexView-C1t2-FBv.js +1 -0
  84. agent_webui-2.8.3/agent/agent_webui/dist/assets/VizDemoView-aTcthAUj.js +1 -0
  85. agent_webui-2.8.3/agent/agent_webui/dist/assets/WorkWorkspace-e84JW5Nx.js +1 -0
  86. agent_webui-2.8.2/agent/agent_webui/dist/assets/WorkflowEditorView-DLioOiRN.css → agent_webui-2.8.3/agent/agent_webui/dist/assets/WorkflowEditor-BBi0xqfA.css +1 -1
  87. agent_webui-2.8.3/agent/agent_webui/dist/assets/WorkflowEditor-vqFhHucI.js +7 -0
  88. agent_webui-2.8.3/agent/agent_webui/dist/assets/WorkflowEditorView-DlgHpFDV.js +1 -0
  89. agent_webui-2.8.3/agent/agent_webui/dist/assets/WorkspaceEntry-BFu89uhg.js +1 -0
  90. agent_webui-2.8.3/agent/agent_webui/dist/assets/WorkspaceIDEView-xi7J6mPj.js +1 -0
  91. agent_webui-2.8.3/agent/agent_webui/dist/assets/activity-wxK2oia9.js +1 -0
  92. agent_webui-2.8.3/agent/agent_webui/dist/assets/agent-webui-logo-v1-VWdN6xka.png +0 -0
  93. agent_webui-2.8.3/agent/agent_webui/dist/assets/api-BagsM1RI.js +1 -0
  94. agent_webui-2.8.3/agent/agent_webui/dist/assets/api-validation-NpkvZISL.js +55 -0
  95. agent_webui-2.8.3/agent/agent_webui/dist/assets/app-window-CbIjaWcA.js +1 -0
  96. agent_webui-2.8.3/agent/agent_webui/dist/assets/arbora-canopy-wallpaper-DNkGKAAT.webp +0 -0
  97. agent_webui-2.8.3/agent/agent_webui/dist/assets/arrow-right-B6o8ih31.js +1 -0
  98. agent_webui-2.8.3/agent/agent_webui/dist/assets/arrow-up-pAvlwflr.js +1 -0
  99. agent_webui-2.8.3/agent/agent_webui/dist/assets/badge-DgRsOs_B.js +1 -0
  100. agent_webui-2.8.3/agent/agent_webui/dist/assets/ban-CntMVRjX.js +1 -0
  101. agent_webui-2.8.3/agent/agent_webui/dist/assets/book-CZOS2z52.js +1 -0
  102. agent_webui-2.8.3/agent/agent_webui/dist/assets/bot-DJubVMbb.js +1 -0
  103. agent_webui-2.8.3/agent/agent_webui/dist/assets/boxes-DjGrU3EE.js +1 -0
  104. agent_webui-2.8.3/agent/agent_webui/dist/assets/braces-LlpoK2cB.js +1 -0
  105. agent_webui-2.8.3/agent/agent_webui/dist/assets/brain-CMWtd-dG.js +1 -0
  106. agent_webui-2.8.3/agent/agent_webui/dist/assets/bundle-mjs-BrzRq6pJ.js +1 -0
  107. agent_webui-2.8.3/agent/agent_webui/dist/assets/button-FiWvpk0-.js +1 -0
  108. agent_webui-2.8.3/agent/agent_webui/dist/assets/calendar-Dn_su29R.js +1 -0
  109. agent_webui-2.8.3/agent/agent_webui/dist/assets/check-CeqQMSxo.js +1 -0
  110. agent_webui-2.8.3/agent/agent_webui/dist/assets/chevron-down-GCd0KYkz.js +1 -0
  111. agent_webui-2.8.3/agent/agent_webui/dist/assets/chevron-left-BU-gzZmi.js +1 -0
  112. agent_webui-2.8.3/agent/agent_webui/dist/assets/chevron-right-DG5uuC3t.js +1 -0
  113. agent_webui-2.8.3/agent/agent_webui/dist/assets/chevron-up-D5LHzLPe.js +1 -0
  114. agent_webui-2.8.2/agent/agent_webui/dist/assets/chunk-D32TOXHM-DlmBzSI9.js → agent_webui-2.8.3/agent/agent_webui/dist/assets/chunk-D32TOXHM-USeHa1y6.js +8 -8
  115. agent_webui-2.8.3/agent/agent_webui/dist/assets/circle-alert-Dh5nOe-b.js +1 -0
  116. agent_webui-2.8.3/agent/agent_webui/dist/assets/circle-check-big-C6wDMbX1.js +1 -0
  117. agent_webui-2.8.3/agent/agent_webui/dist/assets/circle-dot-DCiCuTUk.js +1 -0
  118. agent_webui-2.8.3/agent/agent_webui/dist/assets/circle-x-CuJysPOj.js +1 -0
  119. agent_webui-2.8.3/agent/agent_webui/dist/assets/clock-BmTGvU7y.js +1 -0
  120. agent_webui-2.8.3/agent/agent_webui/dist/assets/code-CG6BKKdO.js +1 -0
  121. agent_webui-2.8.3/agent/agent_webui/dist/assets/collapsible-DrQehFiG.js +1 -0
  122. agent_webui-2.8.3/agent/agent_webui/dist/assets/compass-DwUxHGlu.js +1 -0
  123. agent_webui-2.8.3/agent/agent_webui/dist/assets/consent-wR2n6tPB.js +1 -0
  124. agent_webui-2.8.2/agent/agent_webui/dist/assets/contact-C94LhKRg.js → agent_webui-2.8.3/agent/agent_webui/dist/assets/contact-BsP_1Kh_.js +1 -1
  125. agent_webui-2.8.3/agent/agent_webui/dist/assets/cpu-IYheat0H.js +1 -0
  126. agent_webui-2.8.3/agent/agent_webui/dist/assets/database-D_ZttHD3.js +1 -0
  127. agent_webui-2.8.3/agent/agent_webui/dist/assets/dialog-C3M4cCWP.js +1 -0
  128. agent_webui-2.8.3/agent/agent_webui/dist/assets/dist-B9MWMbbp.js +1 -0
  129. agent_webui-2.8.3/agent/agent_webui/dist/assets/dist-B9T39wqA.js +1 -0
  130. agent_webui-2.8.3/agent/agent_webui/dist/assets/dist-B9it-s2D.js +1 -0
  131. agent_webui-2.8.3/agent/agent_webui/dist/assets/dist-BoWlX7Of.js +1 -0
  132. agent_webui-2.8.3/agent/agent_webui/dist/assets/dist-Cq_kZFns.js +1 -0
  133. agent_webui-2.8.3/agent/agent_webui/dist/assets/dist-GVDnsA1_.js +1 -0
  134. agent_webui-2.8.3/agent/agent_webui/dist/assets/dist-RgA-h0i1.js +1 -0
  135. agent_webui-2.8.3/agent/agent_webui/dist/assets/dist-_usKwZhw.js +1 -0
  136. agent_webui-2.8.3/agent/agent_webui/dist/assets/dist-cloPsfHP.js +1 -0
  137. agent_webui-2.8.3/agent/agent_webui/dist/assets/download-DDm8WZfp.js +1 -0
  138. agent_webui-2.8.2/agent/agent_webui/dist/assets/es2015-CgZynitj.js → agent_webui-2.8.3/agent/agent_webui/dist/assets/es2015-93DYJMMo.js +1 -1
  139. agent_webui-2.8.3/agent/agent_webui/dist/assets/external-link-BEYSemmH.js +1 -0
  140. agent_webui-2.8.3/agent/agent_webui/dist/assets/eye-DZ8zkkBt.js +1 -0
  141. agent_webui-2.8.3/agent/agent_webui/dist/assets/file-text-ohb7m22K.js +1 -0
  142. agent_webui-2.8.3/agent/agent_webui/dist/assets/funnel-BysCvpUj.js +1 -0
  143. agent_webui-2.8.3/agent/agent_webui/dist/assets/gateway-d57Ii4vf.js +1 -0
  144. agent_webui-2.8.3/agent/agent_webui/dist/assets/gauge-Doo-Y0cP.js +1 -0
  145. agent_webui-2.8.3/agent/agent_webui/dist/assets/git-branch-Dz6e7QKj.js +1 -0
  146. agent_webui-2.8.3/agent/agent_webui/dist/assets/globe-CC6xr668.js +1 -0
  147. agent_webui-2.8.3/agent/agent_webui/dist/assets/graduation-cap-suZkOdGm.js +1 -0
  148. agent_webui-2.8.3/agent/agent_webui/dist/assets/graph-read-MhXhOTws.js +1 -0
  149. agent_webui-2.8.2/agent/agent_webui/dist/assets/graphology-layout-forceatlas2-CF_uOjtN.js → agent_webui-2.8.3/agent/agent_webui/dist/assets/graphology-layout-forceatlas2-C9kVFb6Q.js +3 -3
  150. agent_webui-2.8.3/agent/agent_webui/dist/assets/hard-drive-FQarD2TZ.js +1 -0
  151. agent_webui-2.8.3/agent/agent_webui/dist/assets/highlighted-body-KQOG7T2V-4Cs5B11g.js +1 -0
  152. agent_webui-2.8.3/agent/agent_webui/dist/assets/hourglass-Ca2eYKO-.js +1 -0
  153. agent_webui-2.8.3/agent/agent_webui/dist/assets/identity-CsWtEhpA.js +1 -0
  154. agent_webui-2.8.3/agent/agent_webui/dist/assets/image-BsluAxxt.js +1 -0
  155. agent_webui-2.8.3/agent/agent_webui/dist/assets/inbox-C1dzKQk5.js +1 -0
  156. agent_webui-2.8.3/agent/agent_webui/dist/assets/index-By339qhL.css +2 -0
  157. agent_webui-2.8.3/agent/agent_webui/dist/assets/index-p_B93mfq.js +16 -0
  158. agent_webui-2.8.3/agent/agent_webui/dist/assets/index.browser-GOpg5kdt.js +1 -0
  159. agent_webui-2.8.3/agent/agent_webui/dist/assets/jsx-runtime-EIAPxkjE.js +1 -0
  160. agent_webui-2.8.3/agent/agent_webui/dist/assets/layers-B7z2_C1d.js +1 -0
  161. agent_webui-2.8.3/agent/agent_webui/dist/assets/layout-grid-DrflND0U.js +1 -0
  162. agent_webui-2.8.3/agent/agent_webui/dist/assets/link-2-BIhrKCW0.js +1 -0
  163. agent_webui-2.8.3/agent/agent_webui/dist/assets/loaded-workspace-commands-Bkw62-xT.js +1 -0
  164. agent_webui-2.8.3/agent/agent_webui/dist/assets/loader-circle-C6dXhor8.js +1 -0
  165. agent_webui-2.8.3/agent/agent_webui/dist/assets/mermaid-MCJ5UELQ-BDf1kS1X.js +1 -0
  166. agent_webui-2.8.2/agent/agent_webui/dist/assets/model-BPtIOW9U.js → agent_webui-2.8.3/agent/agent_webui/dist/assets/model-CfRgAerm.js +2 -2
  167. agent_webui-2.8.3/agent/agent_webui/dist/assets/network-B8biYPFN.js +1 -0
  168. agent_webui-2.8.3/agent/agent_webui/dist/assets/operate-compatibility-BI5DYA0I.js +1 -0
  169. agent_webui-2.8.3/agent/agent_webui/dist/assets/package-DbqJfmpB.js +1 -0
  170. agent_webui-2.8.3/agent/agent_webui/dist/assets/page-context-yj_FdVFS.js +2 -0
  171. agent_webui-2.8.3/agent/agent_webui/dist/assets/play-BbqKXliZ.js +1 -0
  172. agent_webui-2.8.3/agent/agent_webui/dist/assets/plus-DkkwBcr8.js +1 -0
  173. agent_webui-2.8.3/agent/agent_webui/dist/assets/queries-BjluSJ_Z.js +1 -0
  174. agent_webui-2.8.3/agent/agent_webui/dist/assets/react-dom-Bmqbd4fh.js +1 -0
  175. agent_webui-2.8.3/agent/agent_webui/dist/assets/refresh-cw-C2inm5h6.js +1 -0
  176. agent_webui-2.8.3/agent/agent_webui/dist/assets/response-CwJPC4rU.js +1 -0
  177. agent_webui-2.8.3/agent/agent_webui/dist/assets/rotate-ccw-clock-XB6OIEbP.js +1 -0
  178. agent_webui-2.8.3/agent/agent_webui/dist/assets/safe-url-C7XOIHnu.js +1 -0
  179. agent_webui-2.8.3/agent/agent_webui/dist/assets/save-9e_SXAQN.js +1 -0
  180. agent_webui-2.8.3/agent/agent_webui/dist/assets/scan-search-DXSdHF8a.js +1 -0
  181. agent_webui-2.8.3/agent/agent_webui/dist/assets/scroll-area-DtbNJ7K7.js +1 -0
  182. agent_webui-2.8.3/agent/agent_webui/dist/assets/search-Baccawhn.js +1 -0
  183. agent_webui-2.8.3/agent/agent_webui/dist/assets/select-DMICaw4O.js +1 -0
  184. agent_webui-2.8.3/agent/agent_webui/dist/assets/send-kQ1twOSu.js +1 -0
  185. agent_webui-2.8.3/agent/agent_webui/dist/assets/server-DFqSs-ao.js +1 -0
  186. agent_webui-2.8.3/agent/agent_webui/dist/assets/settings-2-3T7XPfF0.js +1 -0
  187. agent_webui-2.8.3/agent/agent_webui/dist/assets/settings-BKuH_tfP.js +1 -0
  188. agent_webui-2.8.3/agent/agent_webui/dist/assets/share-2-Bvud2MTX.js +1 -0
  189. agent_webui-2.8.3/agent/agent_webui/dist/assets/shield-alert-eylgu0XC.js +1 -0
  190. agent_webui-2.8.3/agent/agent_webui/dist/assets/shield-check-DjYPuGYF.js +1 -0
  191. agent_webui-2.8.3/agent/agent_webui/dist/assets/shield-question-mark-B3zHwcr5.js +1 -0
  192. agent_webui-2.8.3/agent/agent_webui/dist/assets/sliders-vertical-DRiOgkZe.js +1 -0
  193. agent_webui-2.8.3/agent/agent_webui/dist/assets/sparkles-BT04vi9E.js +1 -0
  194. agent_webui-2.8.3/agent/agent_webui/dist/assets/status-message-B032XQ9h.js +1 -0
  195. agent_webui-2.8.3/agent/agent_webui/dist/assets/switch-CXJT2aVa.js +1 -0
  196. agent_webui-2.8.3/agent/agent_webui/dist/assets/table-2-D_o4NMrW.js +1 -0
  197. agent_webui-2.8.3/agent/agent_webui/dist/assets/tabs-B_IKOhlf.js +1 -0
  198. agent_webui-2.8.3/agent/agent_webui/dist/assets/tag-DqYtL7Of.js +1 -0
  199. agent_webui-2.8.3/agent/agent_webui/dist/assets/terminal-DplDmRLk.js +1 -0
  200. agent_webui-2.8.3/agent/agent_webui/dist/assets/textarea-BIj9GK42.js +1 -0
  201. agent_webui-2.8.3/agent/agent_webui/dist/assets/theme-colors-DxWt_FzQ.js +1 -0
  202. agent_webui-2.8.3/agent/agent_webui/dist/assets/tooltip-9HcvWpVw.js +1 -0
  203. agent_webui-2.8.2/agent/agent_webui/dist/assets/transport-Din6U5N9.js → agent_webui-2.8.3/agent/agent_webui/dist/assets/transport-C19qbzVc.js +1 -1
  204. agent_webui-2.8.3/agent/agent_webui/dist/assets/trending-up-Di2w79Fh.js +1 -0
  205. agent_webui-2.8.3/agent/agent_webui/dist/assets/triangle-alert-DWaRrWWw.js +1 -0
  206. agent_webui-2.8.3/agent/agent_webui/dist/assets/unavailable-notice-Co6u2AUq.js +1 -0
  207. agent_webui-2.8.3/agent/agent_webui/dist/assets/undo-2-DiHLbKTR.js +1 -0
  208. agent_webui-2.8.3/agent/agent_webui/dist/assets/upload-BT-awznv.js +1 -0
  209. agent_webui-2.8.3/agent/agent_webui/dist/assets/uql-BEW3dWVd.js +1 -0
  210. agent_webui-2.8.3/agent/agent_webui/dist/assets/useConversationIdFromUrl-BXmIOzca.css +1 -0
  211. agent_webui-2.8.3/agent/agent_webui/dist/assets/useConversationIdFromUrl-pT7QYKB7.js +35 -0
  212. agent_webui-2.8.3/agent/agent_webui/dist/assets/useMutation-CpT5O_Zp.js +1 -0
  213. agent_webui-2.8.3/agent/agent_webui/dist/assets/useQuery-BQzVeXO6.js +1 -0
  214. agent_webui-2.8.3/agent/agent_webui/dist/assets/useWorkspaceAdmission-sHF3mnnG.js +1 -0
  215. agent_webui-2.8.3/agent/agent_webui/dist/assets/utils-De6WF9ua.js +1 -0
  216. agent_webui-2.8.3/agent/agent_webui/dist/assets/wallet-DP5mac_p.js +1 -0
  217. agent_webui-2.8.3/agent/agent_webui/dist/assets/waypoints-Cg1JEUr1.js +1 -0
  218. agent_webui-2.8.3/agent/agent_webui/dist/assets/wifi-off-CpiBqL-3.js +1 -0
  219. agent_webui-2.8.3/agent/agent_webui/dist/assets/workflow-DpYfp5ES.js +1 -0
  220. agent_webui-2.8.3/agent/agent_webui/dist/assets/wrench-BswmnjxE.js +1 -0
  221. agent_webui-2.8.3/agent/agent_webui/dist/assets/x-UdLPE6b2.js +1 -0
  222. agent_webui-2.8.3/agent/agent_webui/dist/assets/zap-DpOOMBfX.js +1 -0
  223. agent_webui-2.8.3/agent/agent_webui/dist/index.html +129 -0
  224. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/dist/site.webmanifest +2 -2
  225. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/dist/spa-routes.json +2 -1
  226. agent_webui-2.8.3/agent/agent_webui/local_browser_boundary.py +39 -0
  227. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/oidc_session.py +33 -11
  228. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/orchestrator_model.py +20 -2
  229. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/server.py +23 -2
  230. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/skills/agent-webui-development/SKILL.md +1 -1
  231. agent_webui-2.8.3/agent/agent_webui/turn_usage.py +44 -0
  232. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui.egg-info/PKG-INFO +65 -54
  233. agent_webui-2.8.3/agent/agent_webui.egg-info/SOURCES.txt +319 -0
  234. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui.egg-info/requires.txt +3 -3
  235. {agent_webui-2.8.2 → agent_webui-2.8.3}/pyproject.toml +5 -5
  236. agent_webui-2.8.3/tests/test_ci_browser_gate.py +115 -0
  237. agent_webui-2.8.3/tests/test_ci_python_scope.py +165 -0
  238. {agent_webui-2.8.2 → agent_webui-2.8.3}/tests/test_explicit_auth_modes.py +16 -14
  239. agent_webui-2.8.3/tests/test_gate_wrappers.py +136 -0
  240. agent_webui-2.8.3/tests/test_local_browser_boundary.py +92 -0
  241. agent_webui-2.8.3/tests/test_logfire_host_console.py +70 -0
  242. agent_webui-2.8.3/tests/test_oidc_configuration_intent.py +110 -0
  243. {agent_webui-2.8.2 → agent_webui-2.8.3}/tests/test_release_concurrency.py +7 -1
  244. {agent_webui-2.8.2 → agent_webui-2.8.3}/tests/test_release_publication.py +28 -1
  245. agent_webui-2.8.2/README.md +0 -124
  246. agent_webui-2.8.2/agent/agent_webui/dist/assets/AdminView-BIFRCbto.js +0 -1
  247. agent_webui-2.8.2/agent/agent_webui/dist/assets/AgentLibraryView-aNq65894.js +0 -1
  248. agent_webui-2.8.2/agent/agent_webui/dist/assets/ArboraReadinessView-BmWLG_D9.js +0 -1
  249. agent_webui-2.8.2/agent/agent_webui/dist/assets/AtlasView-bOHeqjzz.js +0 -5
  250. agent_webui-2.8.2/agent/agent_webui/dist/assets/Availability-DcNRbzdy.js +0 -1
  251. agent_webui-2.8.2/agent/agent_webui/dist/assets/BrokerView-B3w_c03n.js +0 -1
  252. agent_webui-2.8.2/agent/agent_webui/dist/assets/CatalogueView-B0iAT03z.js +0 -1
  253. agent_webui-2.8.2/agent/agent_webui/dist/assets/ChartPage-CRAD2z1k.js +0 -1
  254. agent_webui-2.8.2/agent/agent_webui/dist/assets/ChartPanel-Cxpkw3a6.js +0 -1
  255. agent_webui-2.8.2/agent/agent_webui/dist/assets/CodeGraphView-BeQf4kUO.js +0 -1
  256. agent_webui-2.8.2/agent/agent_webui/dist/assets/ConfigurationView-B7myL6KX.js +0 -1
  257. agent_webui-2.8.2/agent/agent_webui/dist/assets/ConsoleConfirmView-DC8vQRT4.js +0 -1
  258. agent_webui-2.8.2/agent/agent_webui/dist/assets/ContactPage-CrUMpT6z.js +0 -1
  259. agent_webui-2.8.2/agent/agent_webui/dist/assets/CypherReplView-B_Gps99Z.js +0 -1
  260. agent_webui-2.8.2/agent/agent_webui/dist/assets/DashboardView-Dxfr5-0-.js +0 -1
  261. agent_webui-2.8.2/agent/agent_webui/dist/assets/DashboardsView-DAhfgrRe.js +0 -1
  262. agent_webui-2.8.2/agent/agent_webui/dist/assets/DataAnalystView-DTZm34Nz.js +0 -1
  263. agent_webui-2.8.2/agent/agent_webui/dist/assets/EcosystemView-KfiSPiGs.js +0 -1
  264. agent_webui-2.8.2/agent/agent_webui/dist/assets/ExploreQueryWorkspace-Dd3_FYVu.js +0 -1
  265. agent_webui-2.8.2/agent/agent_webui/dist/assets/ExtractionView-VASGV56_.js +0 -1
  266. agent_webui-2.8.2/agent/agent_webui/dist/assets/FilesView-DLrYatRc.js +0 -1
  267. agent_webui-2.8.2/agent/agent_webui/dist/assets/FleetView-C99Ga-hI.js +0 -1
  268. agent_webui-2.8.2/agent/agent_webui/dist/assets/GoalsView-DAu9qK9a.js +0 -1
  269. agent_webui-2.8.2/agent/agent_webui/dist/assets/Graph3DLodView-Bsfy0liY.js +0 -1
  270. agent_webui-2.8.2/agent/agent_webui/dist/assets/Graph3DView-DwJKaNXc.js +0 -1
  271. agent_webui-2.8.2/agent/agent_webui/dist/assets/GraphCanvas-D615Ydp_.js +0 -1
  272. agent_webui-2.8.2/agent/agent_webui/dist/assets/GraphView-BPbJ01X-.js +0 -1
  273. agent_webui-2.8.2/agent/agent_webui/dist/assets/ImportExportModal-B3fBFl0t.js +0 -1
  274. agent_webui-2.8.2/agent/agent_webui/dist/assets/IntegrationsView-BoP-b04a.js +0 -2
  275. agent_webui-2.8.2/agent/agent_webui/dist/assets/KnowledgeBaseView-jMCJn12P.js +0 -1
  276. agent_webui-2.8.2/agent/agent_webui/dist/assets/KnowledgeView-C08lo1OX.js +0 -1
  277. agent_webui-2.8.2/agent/agent_webui/dist/assets/LLMTemplatesView-DPgr4JMg.js +0 -1
  278. agent_webui-2.8.2/agent/agent_webui/dist/assets/LegalPageContent-BmhwYoKV.js +0 -1
  279. agent_webui-2.8.2/agent/agent_webui/dist/assets/LiveDashboardsView-BVlEIber.js +0 -1
  280. agent_webui-2.8.2/agent/agent_webui/dist/assets/MagmaView-Btqs3FEc.js +0 -1
  281. agent_webui-2.8.2/agent/agent_webui/dist/assets/MarketsCalendar-CzDpujKF.js +0 -1
  282. agent_webui-2.8.2/agent/agent_webui/dist/assets/MarketsHome-CDlfVGyj.js +0 -1
  283. agent_webui-2.8.2/agent/agent_webui/dist/assets/MarketsMenu-B1bHhcpg.js +0 -1
  284. agent_webui-2.8.2/agent/agent_webui/dist/assets/MarketsNews-DLO5rNe6.js +0 -1
  285. agent_webui-2.8.2/agent/agent_webui/dist/assets/MarketsPortfolio-CFPLxeNB.js +0 -1
  286. agent_webui-2.8.2/agent/agent_webui/dist/assets/MarketsShell-NPgz5G8J.js +0 -1
  287. agent_webui-2.8.2/agent/agent_webui/dist/assets/McpAppsView-w7Dr4bvn.js +0 -1
  288. agent_webui-2.8.2/agent/agent_webui/dist/assets/MemoryView-aQG3zHCd.js +0 -1
  289. agent_webui-2.8.2/agent/agent_webui/dist/assets/NodeTypeBreakdown-BOMv1ZeK.js +0 -1
  290. agent_webui-2.8.2/agent/agent_webui/dist/assets/NotFoundPage-C2ECSjyN.js +0 -1
  291. agent_webui-2.8.2/agent/agent_webui/dist/assets/ObjectExplorerView--g4BJ5dV.js +0 -1
  292. agent_webui-2.8.2/agent/agent_webui/dist/assets/ObjectView-CbIoH6sb.js +0 -1
  293. agent_webui-2.8.2/agent/agent_webui/dist/assets/ObservabilityView-CfalBbSz.js +0 -1
  294. agent_webui-2.8.2/agent/agent_webui/dist/assets/OperateWorkspace-D400qwDi.js +0 -1
  295. agent_webui-2.8.2/agent/agent_webui/dist/assets/OpsPanelView-BVKeYxwT.js +0 -1
  296. agent_webui-2.8.2/agent/agent_webui/dist/assets/PrivacyPage-B5f2BGOV.js +0 -1
  297. agent_webui-2.8.2/agent/agent_webui/dist/assets/PromptsView-loJvVKRN.js +0 -1
  298. agent_webui-2.8.2/agent/agent_webui/dist/assets/PublicPageLayout-_LKXfe3w.js +0 -1
  299. agent_webui-2.8.2/agent/agent_webui/dist/assets/SDDView-Zjr9UcvP.js +0 -1
  300. agent_webui-2.8.2/agent/agent_webui/dist/assets/SchedulingView-DR8FPiLA.js +0 -1
  301. agent_webui-2.8.2/agent/agent_webui/dist/assets/SchemaView-ChSQqt9G.js +0 -1
  302. agent_webui-2.8.2/agent/agent_webui/dist/assets/SessionExpiredNotice-CMttDxWl.js +0 -1
  303. agent_webui-2.8.2/agent/agent_webui/dist/assets/SessionsView-BwsQSk7r.js +0 -1
  304. agent_webui-2.8.2/agent/agent_webui/dist/assets/SkillsView-01A_BKpo.js +0 -1
  305. agent_webui-2.8.2/agent/agent_webui/dist/assets/SparqlView-CaTSeagP.js +0 -1
  306. agent_webui-2.8.2/agent/agent_webui/dist/assets/SystemStatusView-CzjDdbH1.js +0 -1
  307. agent_webui-2.8.2/agent/agent_webui/dist/assets/TableExplorerView-Ctnjs49l.js +0 -1
  308. agent_webui-2.8.2/agent/agent_webui/dist/assets/TemporalGraphView-DmNuWXin.js +0 -1
  309. agent_webui-2.8.2/agent/agent_webui/dist/assets/TermsPage-Dq5ZQToT.js +0 -1
  310. agent_webui-2.8.2/agent/agent_webui/dist/assets/ThankYouPage-CRs3DWs5.js +0 -1
  311. agent_webui-2.8.2/agent/agent_webui/dist/assets/TrendBadge-DwOOOIwz.js +0 -1
  312. agent_webui-2.8.2/agent/agent_webui/dist/assets/UsageView-DekU27sG.js +0 -1
  313. agent_webui-2.8.2/agent/agent_webui/dist/assets/UserManagementView-DzKgnC7G.js +0 -1
  314. agent_webui-2.8.2/agent/agent_webui/dist/assets/VertexView-COILYrFt.js +0 -1
  315. agent_webui-2.8.2/agent/agent_webui/dist/assets/VizDemoView-DmUb9Zv5.js +0 -1
  316. agent_webui-2.8.2/agent/agent_webui/dist/assets/WorkWorkspace-DOjWpb5z.js +0 -1
  317. agent_webui-2.8.2/agent/agent_webui/dist/assets/WorkflowEditorView-Bx4xegQ5.js +0 -7
  318. agent_webui-2.8.2/agent/agent_webui/dist/assets/WorkspaceIDEView-CXBs7DX5.js +0 -1
  319. agent_webui-2.8.2/agent/agent_webui/dist/assets/activity-DupAOJCR.js +0 -1
  320. agent_webui-2.8.2/agent/agent_webui/dist/assets/api-jtHn_WxH.js +0 -1
  321. agent_webui-2.8.2/agent/agent_webui/dist/assets/api-validation-CCoR_LRu.js +0 -55
  322. agent_webui-2.8.2/agent/agent_webui/dist/assets/app-window-KMAPJoaW.js +0 -1
  323. agent_webui-2.8.2/agent/agent_webui/dist/assets/arrow-up-DpBEFU1W.js +0 -1
  324. agent_webui-2.8.2/agent/agent_webui/dist/assets/badge-nQZ87mVE.js +0 -1
  325. agent_webui-2.8.2/agent/agent_webui/dist/assets/braces-BNz2iAeD.js +0 -1
  326. agent_webui-2.8.2/agent/agent_webui/dist/assets/bundle-mjs-DIyOrgL5.js +0 -1
  327. agent_webui-2.8.2/agent/agent_webui/dist/assets/check-CPVKKX8l.js +0 -1
  328. agent_webui-2.8.2/agent/agent_webui/dist/assets/chevron-down-DYWnPQti.js +0 -1
  329. agent_webui-2.8.2/agent/agent_webui/dist/assets/chevron-left-BaGXvfgm.js +0 -1
  330. agent_webui-2.8.2/agent/agent_webui/dist/assets/chevron-right-gs8WU8XT.js +0 -1
  331. agent_webui-2.8.2/agent/agent_webui/dist/assets/chevron-up-C-rjGU5C.js +0 -1
  332. agent_webui-2.8.2/agent/agent_webui/dist/assets/circle-alert-ByZ-1ERr.js +0 -1
  333. agent_webui-2.8.2/agent/agent_webui/dist/assets/circle-dot-In4UilqT.js +0 -1
  334. agent_webui-2.8.2/agent/agent_webui/dist/assets/createLucideIcon-DTQSidPf.js +0 -1
  335. agent_webui-2.8.2/agent/agent_webui/dist/assets/dist-2txhAIHO.js +0 -1
  336. agent_webui-2.8.2/agent/agent_webui/dist/assets/dist-BHmo3Yb6.js +0 -1
  337. agent_webui-2.8.2/agent/agent_webui/dist/assets/dist-BKkt828_.js +0 -1
  338. agent_webui-2.8.2/agent/agent_webui/dist/assets/dist-BLRfKgTy.js +0 -1
  339. agent_webui-2.8.2/agent/agent_webui/dist/assets/dist-BjAObXUn.js +0 -1
  340. agent_webui-2.8.2/agent/agent_webui/dist/assets/dist-Bq6o2UDR.js +0 -1
  341. agent_webui-2.8.2/agent/agent_webui/dist/assets/dist-DMVqwVuR.js +0 -1
  342. agent_webui-2.8.2/agent/agent_webui/dist/assets/dist-DcreYulP.js +0 -1
  343. agent_webui-2.8.2/agent/agent_webui/dist/assets/dist-mp1aFJDC.js +0 -1
  344. agent_webui-2.8.2/agent/agent_webui/dist/assets/external-link-Dyd5OsGm.js +0 -1
  345. agent_webui-2.8.2/agent/agent_webui/dist/assets/eye-D0gCj30e.js +0 -1
  346. agent_webui-2.8.2/agent/agent_webui/dist/assets/file-text-DqorJKDA.js +0 -1
  347. agent_webui-2.8.2/agent/agent_webui/dist/assets/folder-open-BrzeUmMg.js +0 -1
  348. agent_webui-2.8.2/agent/agent_webui/dist/assets/funnel-Y4IuN8Q7.js +0 -1
  349. agent_webui-2.8.2/agent/agent_webui/dist/assets/hard-drive-9fR5RFS9.js +0 -1
  350. agent_webui-2.8.2/agent/agent_webui/dist/assets/highlighted-body-KQOG7T2V-rcYJ5xue.js +0 -1
  351. agent_webui-2.8.2/agent/agent_webui/dist/assets/hourglass-1ui486hR.js +0 -1
  352. agent_webui-2.8.2/agent/agent_webui/dist/assets/identity-Ba52P5P-.js +0 -1
  353. agent_webui-2.8.2/agent/agent_webui/dist/assets/index-CdIjHcNl.css +0 -2
  354. agent_webui-2.8.2/agent/agent_webui/dist/assets/index-GCzCgfSc.js +0 -46
  355. agent_webui-2.8.2/agent/agent_webui/dist/assets/layout-grid-B4IFpzLD.js +0 -1
  356. agent_webui-2.8.2/agent/agent_webui/dist/assets/link-2-a9RZxW2S.js +0 -1
  357. agent_webui-2.8.2/agent/agent_webui/dist/assets/loaded-workspace-commands-BAiOXoYc.js +0 -1
  358. agent_webui-2.8.2/agent/agent_webui/dist/assets/mermaid-MCJ5UELQ-B2-BBYrw.js +0 -1
  359. agent_webui-2.8.2/agent/agent_webui/dist/assets/play-D3mjq--Q.js +0 -1
  360. agent_webui-2.8.2/agent/agent_webui/dist/assets/plus-s20KYBeu.js +0 -1
  361. agent_webui-2.8.2/agent/agent_webui/dist/assets/queries-Bn_hp_Ib.js +0 -1
  362. agent_webui-2.8.2/agent/agent_webui/dist/assets/react-dom-DAxA-E-a.js +0 -1
  363. agent_webui-2.8.2/agent/agent_webui/dist/assets/refresh-cw-BVhl5aJX.js +0 -1
  364. agent_webui-2.8.2/agent/agent_webui/dist/assets/save-CuEdPPgC.js +0 -1
  365. agent_webui-2.8.2/agent/agent_webui/dist/assets/scan-search-GrqJngl3.js +0 -1
  366. agent_webui-2.8.2/agent/agent_webui/dist/assets/scroll-area-srEWz9Q3.js +0 -1
  367. agent_webui-2.8.2/agent/agent_webui/dist/assets/server-CE-xbAAj.js +0 -1
  368. agent_webui-2.8.2/agent/agent_webui/dist/assets/sliders-vertical-Cr4E50uY.js +0 -1
  369. agent_webui-2.8.2/agent/agent_webui/dist/assets/sparkles-Bae0tRI0.js +0 -1
  370. agent_webui-2.8.2/agent/agent_webui/dist/assets/status-message-4rJx-ibz.js +0 -1
  371. agent_webui-2.8.2/agent/agent_webui/dist/assets/switch-B9Yml2pU.js +0 -1
  372. agent_webui-2.8.2/agent/agent_webui/dist/assets/tabs-Bzz5t0iB.js +0 -1
  373. agent_webui-2.8.2/agent/agent_webui/dist/assets/tag-D1RiwxuF.js +0 -1
  374. agent_webui-2.8.2/agent/agent_webui/dist/assets/theme-colors-DKGWsgC0.js +0 -1
  375. agent_webui-2.8.2/agent/agent_webui/dist/assets/unavailable-notice-B7WdWNor.js +0 -1
  376. agent_webui-2.8.2/agent/agent_webui/dist/assets/undo-2-D4EYZLW8.js +0 -1
  377. agent_webui-2.8.2/agent/agent_webui/dist/assets/upload-DcybBZCN.js +0 -1
  378. agent_webui-2.8.2/agent/agent_webui/dist/assets/uql-H85wtqTc.js +0 -1
  379. agent_webui-2.8.2/agent/agent_webui/dist/assets/useMutation-Bw3sL9K4.js +0 -1
  380. agent_webui-2.8.2/agent/agent_webui/dist/assets/useQuery-BCV_z3lS.js +0 -1
  381. agent_webui-2.8.2/agent/agent_webui/dist/assets/utils-C0okervd.js +0 -1
  382. agent_webui-2.8.2/agent/agent_webui/dist/assets/wifi-off-Dz91unNp.js +0 -1
  383. agent_webui-2.8.2/agent/agent_webui/dist/assets/x-BdA_yxUR.js +0 -1
  384. agent_webui-2.8.2/agent/agent_webui/dist/index.html +0 -71
  385. agent_webui-2.8.2/agent/agent_webui.egg-info/SOURCES.txt +0 -246
  386. agent_webui-2.8.2/tests/test_gate_wrappers.py +0 -69
  387. {agent_webui-2.8.2 → agent_webui-2.8.3}/LICENSE +0 -0
  388. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/__init__.py +0 -0
  389. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/__tests__/conftest.py +0 -0
  390. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/__tests__/test_api_extensions.py +0 -0
  391. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/__tests__/test_bound_sweep_regressions.py +0 -0
  392. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/__tests__/test_bug_012_github_gitlab_contract.py +0 -0
  393. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/__tests__/test_chat_resource_routes.py +0 -0
  394. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/__tests__/test_contact_delivery.py +0 -0
  395. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/__tests__/test_files_endpoints.py +0 -0
  396. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/__tests__/test_host.py +0 -0
  397. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/__tests__/test_markets_app.py +0 -0
  398. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/__tests__/test_observability.py +0 -0
  399. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/__tests__/test_parity_contract.py +0 -0
  400. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/__tests__/test_pydantic_ai_compat.py +0 -0
  401. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/__tests__/test_rbac.py +0 -0
  402. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/__tests__/test_served_operations.py +0 -0
  403. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/__tests__/test_spa_http_status.py +0 -0
  404. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/api_extensions.py +0 -0
  405. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/apps/__init__.py +0 -0
  406. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/apps/markets/__init__.py +0 -0
  407. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/apps/markets/catalog.py +0 -0
  408. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/apps/markets/chart.py +0 -0
  409. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/apps/markets/gateway.py +0 -0
  410. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/apps/markets/router.py +0 -0
  411. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/apps/markets/scanner.py +0 -0
  412. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/apps/markets/series.py +0 -0
  413. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/apps/markets/session.py +0 -0
  414. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/apps/markets/snapshots.py +0 -0
  415. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/apps/markets/timeframes.py +0 -0
  416. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/auth_policy.py +0 -0
  417. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/browser_control_canonical.py +0 -0
  418. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/contact_delivery.py +0 -0
  419. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/dist/apple-touch-icon.png +0 -0
  420. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/dist/assets/InterVariable-DiVDrmQJ.woff2 +0 -0
  421. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/dist/assets/dist-CWmwEm73.js +0 -0
  422. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/dist/assets/format-DHsGNrOH.js +0 -0
  423. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/dist/assets/layout.worker-CnC9u5pP.js +0 -0
  424. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/dist/assets/preload-helper-BLdHbfdN.js +0 -0
  425. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/dist/favicon-16x16.png +0 -0
  426. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/dist/favicon-32x32.png +0 -0
  427. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/dist/favicon-48x48.png +0 -0
  428. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/dist/favicon.ico +0 -0
  429. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/dist/favicon.png +0 -0
  430. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/dist/favicon.svg +0 -0
  431. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/dist/icon-192x192.png +0 -0
  432. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/dist/icon-512x512.png +0 -0
  433. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/dist/og-image-v1.png +0 -0
  434. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/dist/og-image-v1.svg +0 -0
  435. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/dist/robots.txt +0 -0
  436. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/dist/sitemap.xml +0 -0
  437. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/host.py +0 -0
  438. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/icon.png +0 -0
  439. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/observability.py +0 -0
  440. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/public_shell.py +0 -0
  441. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/rbac.py +0 -0
  442. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/skills/__init__.py +0 -0
  443. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/skills/kg-webui-admin/SKILL.md +0 -0
  444. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/skills/kg-webui-dashboards/SKILL.md +0 -0
  445. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/skills/kg-webui-extraction/SKILL.md +0 -0
  446. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/skills/kg-webui-graphviz/SKILL.md +0 -0
  447. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/skills/kg-webui-ontology-operator/SKILL.md +0 -0
  448. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui/skills/kg-webui-swe/SKILL.md +0 -0
  449. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui.egg-info/dependency_links.txt +0 -0
  450. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui.egg-info/entry_points.txt +0 -0
  451. {agent_webui-2.8.2 → agent_webui-2.8.3}/agent/agent_webui.egg-info/top_level.txt +0 -0
  452. {agent_webui-2.8.2 → agent_webui-2.8.3}/setup.cfg +0 -0
  453. {agent_webui-2.8.2 → agent_webui-2.8.3}/tests/test_dashboard_entrypoint.py +0 -0
  454. {agent_webui-2.8.2 → agent_webui-2.8.3}/tests/test_eslint_hook_contract.py +0 -0
  455. {agent_webui-2.8.2 → agent_webui-2.8.3}/tests/test_graph_visualization.py +0 -0
  456. {agent_webui-2.8.2 → agent_webui-2.8.3}/tests/test_health_liveness_endpoint.py +0 -0
  457. {agent_webui-2.8.2 → agent_webui-2.8.3}/tests/test_identity_boundary.py +0 -0
  458. {agent_webui-2.8.2 → agent_webui-2.8.3}/tests/test_init.py +0 -0
  459. {agent_webui-2.8.2 → agent_webui-2.8.3}/tests/test_log_failure_error_code.py +0 -0
  460. {agent_webui-2.8.2 → agent_webui-2.8.3}/tests/test_package_author_privacy.py +0 -0
  461. {agent_webui-2.8.2 → agent_webui-2.8.3}/tests/test_privacy_boundaries.py +0 -0
  462. {agent_webui-2.8.2 → agent_webui-2.8.3}/tests/test_release_gate_order.py +0 -0
  463. {agent_webui-2.8.2 → agent_webui-2.8.3}/tests/test_startup.py +0 -0
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-webui
3
- Version: 2.8.2
4
- Summary: Agent Web Interface for Pydantic AI Agents
3
+ Version: 2.8.3
4
+ Summary: Overstory: the browser workspace for Arbora
5
5
  Author-email: Repository Maintainers <maintainers@knuckles.team>
6
6
  License: MIT
7
7
  Classifier: Development Status :: 4 - Beta
@@ -15,13 +15,13 @@ Classifier: Programming Language :: Python :: 3.14
15
15
  Requires-Python: >=3.12
16
16
  Description-Content-Type: text/markdown
17
17
  License-File: LICENSE
18
- Requires-Dist: agent-utilities<4.0.0,>=3.0.0
19
- Requires-Dist: agent-connector-sdk<1.0.0,>=0.2.0
18
+ Requires-Dist: meristem<5,>=4.0.1
19
+ Requires-Dist: scion-sdk<1.0.0,>=0.5.6
20
20
  Requires-Dist: httpx>=0.28.1
21
21
  Requires-Dist: msgpack>=1.1.0
22
22
  Requires-Dist: fastapi>=0.143.3
23
23
  Requires-Dist: langfuse>=5.0.2
24
- Requires-Dist: pydantic-ai-slim[ui]==2.57.0
24
+ Requires-Dist: pydantic-ai-slim[ui]==2.63.0
25
25
  Requires-Dist: python-multipart>=0.0.32
26
26
  Requires-Dist: sse-starlette>=3.5.0
27
27
  Requires-Dist: starlette>=1.8.0
@@ -44,110 +44,117 @@ Requires-Dist: opentelemetry-instrumentation-fastapi>=0.65b0; extra == "test"
44
44
  Requires-Dist: opentelemetry-instrumentation-asgi>=0.65b0; extra == "test"
45
45
  Dynamic: license-file
46
46
 
47
- # Arbora web UI
47
+ # Overstory
48
48
 
49
49
  <p align="center">
50
- <img src="docs/assets/brands/agent-webui-logo-v1.png" alt="Arbora Agent Web UI logo" width="160" />
50
+ <img src="docs/assets/brands/agent-webui-logo-v1.png" alt="Overstory logo" width="160" />
51
51
  </p>
52
52
 
53
+ Overstory is the browser workspace for Arbora. The repository is `overstory`;
54
+ the package remains `agent-webui`. Existing gallery images retain their original capture provenance.
55
+
53
56
  <p align="center">
54
57
  <strong>The browser workspace for governed agents, workflows, and knowledge in Arbora.</strong><br>
55
- <sub>Conversations · approvals · workflows · fleet activity · Atlas knowledge views</sub>
58
+ <sub>Conversations · approvals · workflows · fleet activity · Understory knowledge views</sub>
56
59
  </p>
57
60
 
58
61
  <p align="center">
59
62
 
60
63
  [![PyPI - Version](https://img.shields.io/pypi/v/agent-webui)](https://pypi.org/project/agent-webui/)
61
- [![Build](https://github.com/Knuckles-Team/agent-webui/actions/workflows/release.yml/badge.svg)](https://github.com/Knuckles-Team/agent-webui/actions/workflows/release.yml)
62
- [![Documentation](https://img.shields.io/badge/docs-GitHub%20Pages-526cfe)](https://knuckles-team.github.io/agent-webui/)
63
- [![GitHub license](https://img.shields.io/github/license/Knuckles-Team/agent-webui)](LICENSE)
64
- [![Docs build](https://github.com/Knuckles-Team/agent-webui/actions/workflows/pages.yml/badge.svg?branch=main)](https://github.com/Knuckles-Team/agent-webui/actions/workflows/pages.yml)
64
+ [![Build](https://github.com/Knuckles-Team/overstory/actions/workflows/release.yml/badge.svg)](https://github.com/Knuckles-Team/overstory/actions/workflows/release.yml)
65
+ [![Documentation](https://img.shields.io/badge/docs-GitHub%20Pages-526cfe)](https://knuckles-team.github.io/overstory/)
66
+ [![GitHub license](https://img.shields.io/github/license/Knuckles-Team/overstory)](LICENSE)
67
+ [![Docs build](https://github.com/Knuckles-Team/overstory/actions/workflows/pages.yml/badge.svg?branch=main)](https://github.com/Knuckles-Team/overstory/actions/workflows/pages.yml)
65
68
  [![PyPI - Downloads](https://img.shields.io/pypi/dd/agent-webui)](https://pypi.org/project/agent-webui/)
66
69
  [![PyPI - License](https://img.shields.io/pypi/l/agent-webui)](https://pypi.org/project/agent-webui/)
67
70
  [![PyPI - Wheel](https://img.shields.io/pypi/wheel/agent-webui)](https://pypi.org/project/agent-webui/)
68
71
  [![PyPI - Implementation](https://img.shields.io/pypi/implementation/agent-webui)](https://pypi.org/project/agent-webui/)
69
- [![GitHub Repo stars](https://img.shields.io/github/stars/Knuckles-Team/agent-webui)](https://github.com/Knuckles-Team/agent-webui/stargazers)
70
- [![GitHub forks](https://img.shields.io/github/forks/Knuckles-Team/agent-webui)](https://github.com/Knuckles-Team/agent-webui/forks)
71
- [![GitHub contributors](https://img.shields.io/github/contributors/Knuckles-Team/agent-webui)](https://github.com/Knuckles-Team/agent-webui/graphs/contributors)
72
- [![GitHub last commit (by committer)](https://img.shields.io/github/last-commit/Knuckles-Team/agent-webui)](https://github.com/Knuckles-Team/agent-webui/commits/main)
73
- [![GitHub pull requests](https://img.shields.io/github/issues-pr/Knuckles-Team/agent-webui)](https://github.com/Knuckles-Team/agent-webui/pulls)
74
- [![GitHub closed pull requests](https://img.shields.io/github/issues-pr-closed/Knuckles-Team/agent-webui)](https://github.com/Knuckles-Team/agent-webui/pulls?q=is%3Apr+is%3Aclosed)
75
- [![GitHub issues](https://img.shields.io/github/issues/Knuckles-Team/agent-webui)](https://github.com/Knuckles-Team/agent-webui/issues)
76
- [![GitHub top language](https://img.shields.io/github/languages/top/Knuckles-Team/agent-webui)](https://github.com/Knuckles-Team/agent-webui)
77
- [![GitHub language count](https://img.shields.io/github/languages/count/Knuckles-Team/agent-webui)](https://github.com/Knuckles-Team/agent-webui)
78
- [![GitHub repo size](https://img.shields.io/github/repo-size/Knuckles-Team/agent-webui)](https://github.com/Knuckles-Team/agent-webui)
79
- [![GitHub repo file count (file type)](https://img.shields.io/github/directory-file-count/Knuckles-Team/agent-webui)](https://github.com/Knuckles-Team/agent-webui)
72
+ [![GitHub Repo stars](https://img.shields.io/github/stars/Knuckles-Team/overstory)](https://github.com/Knuckles-Team/overstory/stargazers)
73
+ [![GitHub forks](https://img.shields.io/github/forks/Knuckles-Team/overstory)](https://github.com/Knuckles-Team/overstory/forks)
74
+ [![GitHub contributors](https://img.shields.io/github/contributors/Knuckles-Team/overstory)](https://github.com/Knuckles-Team/overstory/graphs/contributors)
75
+ [![GitHub last commit (by committer)](https://img.shields.io/github/last-commit/Knuckles-Team/overstory)](https://github.com/Knuckles-Team/overstory/commits/main)
76
+ [![GitHub pull requests](https://img.shields.io/github/issues-pr/Knuckles-Team/overstory)](https://github.com/Knuckles-Team/overstory/pulls)
77
+ [![GitHub closed pull requests](https://img.shields.io/github/issues-pr-closed/Knuckles-Team/overstory)](https://github.com/Knuckles-Team/overstory/pulls?q=is%3Apr+is%3Aclosed)
78
+ [![GitHub issues](https://img.shields.io/github/issues/Knuckles-Team/overstory)](https://github.com/Knuckles-Team/overstory/issues)
79
+ [![GitHub top language](https://img.shields.io/github/languages/top/Knuckles-Team/overstory)](https://github.com/Knuckles-Team/overstory)
80
+ [![GitHub language count](https://img.shields.io/github/languages/count/Knuckles-Team/overstory)](https://github.com/Knuckles-Team/overstory)
81
+ [![GitHub repo size](https://img.shields.io/github/repo-size/Knuckles-Team/overstory)](https://github.com/Knuckles-Team/overstory)
82
+ [![GitHub repo file count (file type)](https://img.shields.io/github/directory-file-count/Knuckles-Team/overstory)](https://github.com/Knuckles-Team/overstory)
80
83
 
81
84
  </p>
82
85
 
83
86
  <p align="center">
84
- <a href="https://knuckles-team.github.io/agent-webui/">Documentation</a> ·
85
- <a href="https://knuckles-team.github.io/agent-webui/features/">Capabilities</a> ·
86
- <a href="https://knuckles-team.github.io/agent-webui/architecture/">Interfaces</a> ·
87
- <a href="https://knuckles-team.github.io/agent-webui/status/">Status</a>
87
+ <a href="https://knuckles-team.github.io/overstory/">Documentation</a> ·
88
+ <a href="https://knuckles-team.github.io/overstory/features/">Capabilities</a> ·
89
+ <a href="https://knuckles-team.github.io/overstory/architecture/">Interfaces</a> ·
90
+ <a href="https://knuckles-team.github.io/overstory/status/">Status</a>
88
91
  </p>
89
92
 
90
- ![The Agent Web UI Atlas workspace presents graph, object, schema, data, document, and memory entry points in one browser surface.](docs/assets/screenshots/atlas-workspace.png)
93
+ ![Chat and tasks in the accepted green glass theme, with an unsent synthetic project draft.](docs/assets/screenshots/work-wide.png)
94
+
95
+ The conversation-first workspace uses synthetic demo data, not a live account.
96
+ Open **Settings** for theme, surface and privacy choices.
97
+ See the [workspace gallery and screenshot refresh guide](docs/screenshots.md).
91
98
 
92
99
  ## Overview
93
100
 
94
- Arbora Agent Web UI is the browser workspace composed by Arbora. It brings agent
95
- conversations, approvals, workflows, fleet activity, and Epistemic Graph
101
+ Overstory is the browser workspace composed by Arbora. It brings agent
102
+ conversations, approvals, workflows, fleet activity, and Medulla
96
103
  exploration into one React application. Its FastAPI host keeps privileged
97
104
  credentials and gateway delegation on the server side.
98
105
 
99
- | Agent Web UI owns | Other components own |
106
+ | Overstory owns | Other components own |
100
107
  |---|---|
101
- | Browser presentation, local interaction state, accessible route composition, and the FastAPI boundary | Arbora owns public routing, identity, policy, and fleet supervision; Agent Utilities owns agent behavior; Epistemic Graph owns durable knowledge; connector services own external-system effects |
108
+ | Browser presentation, local interaction state, accessible route composition, and the FastAPI boundary | Arbora owns public routing, identity, policy, and fleet supervision; Meristem applies supplied plans; Medulla owns durable knowledge; connector services own external-system effects |
102
109
 
103
- Current package Version: 2.8.2.
110
+ Current package Version: 2.8.3.
104
111
 
105
112
  ## Key capabilities
106
113
 
107
114
  - Stream agent responses with sources, governed tool activity, and approval prompts.
108
115
  - Build and run workflows while observing sessions, goals, schedules, and fleet health.
109
- - Explore property graphs, RDF, schemas, objects, tables, documents, code, and memories through Atlas and Epistemic Graph.
116
+ - Explore property graphs, RDF, schemas, objects, tables, documents, code, and memories through Understory and Medulla.
110
117
  - Discover MCP Apps and connector capabilities without exposing service credentials to the browser.
111
118
  - Apply one role-aware navigation and server authorization model across the complete workspace.
112
119
  - Run as the Arbora-hosted browser co-service or as an independently deployed ASGI application.
113
120
 
114
121
  ## Documentation
115
122
 
116
- Start with the [Agent Web UI documentation](https://knuckles-team.github.io/agent-webui/),
123
+ Start with the [Overstory documentation](https://knuckles-team.github.io/overstory/),
117
124
  then use the shared platform map to move between components:
118
125
 
119
126
  | Component | Role | Documentation |
120
127
  |---|---|---|
121
- | Agent Web UI | Browser operator workspace and Atlas knowledge views | [Docs](https://knuckles-team.github.io/agent-webui/) |
122
- | Agent Terminal UI | Terminal and headless client; REST operations are available, with no ACP conversational path | [Docs](https://knuckles-team.github.io/agent-terminal-ui/) |
123
- | Geniusbot | Desktop cockpit for chat, graph, fleet, health, and operator workflows | [Docs](https://knuckles-team.github.io/geniusbot/) |
124
- | Arbora messaging | Hosts chat and voice entrypoints; Agent Utilities supplies adapter and routing behavior | [Docs](https://knuckles-team.github.io/arbora/) |
128
+ | Overstory | Browser operator workspace and Understory knowledge views | [Docs](https://knuckles-team.github.io/overstory/) |
129
+ | Tuig | Terminal and headless client; central A2A/REST and experimental headless local ACP; full session parity remains unqualified | [Docs](https://knuckles-team.github.io/tuig/) |
130
+ | Axil | Desktop cockpit for chat, graph, fleet, health, and operator workflows | [Docs](https://knuckles-team.github.io/axil/) |
131
+ | Arbora messaging | Chat and voice entrypoints hosted by Arbora | [Docs](https://knuckles-team.github.io/arbora/) |
125
132
  | Arbora | Public MCP, REST, A2A, identity, policy, and runtime composition | [Docs](https://knuckles-team.github.io/arbora/) |
126
- | Agent Utilities | Agent decisions, workflows, evaluation, and skills | [Docs](https://knuckles-team.github.io/agent-utilities/) |
127
- | Epistemic Graph | Durable multimodal data, reasoning, provenance, and transactions | [Docs](https://knuckles-team.github.io/epistemic-graph/) |
128
- | Agent Connector SDK | Typed source adapters, connector serving, and write-back contracts | [Docs](https://knuckles-team.github.io/agent-connector-sdk/) |
133
+ | Meristem | In-run harness that applies supplied plans | [Docs](https://knuckles-team.github.io/meristem/) |
134
+ | Medulla | Durable multimodal data, reasoning, provenance, and transactions | [Docs](https://knuckles-team.github.io/medulla/) |
135
+ | Scion SDK | Typed source adapters, connector serving, and write-back contracts | [Docs](https://knuckles-team.github.io/scion-sdk/) |
129
136
 
130
137
  ## Architecture
131
138
 
132
- [![Runtime architecture: people use Agent Web UI, Agent Terminal UI, Geniusbot, and Arbora-hosted messaging. MCP, REST, and A2A clients enter through Arbora; source systems flow through Agent Connector SDK into Epistemic Graph.](https://raw.githubusercontent.com/Knuckles-Team/epistemic-graph/main/docs/assets/runtime-architecture.svg)](https://knuckles-team.github.io/.github/architecture/#webui)
139
+ [![Runtime architecture: people use Agent Web UI, Agent Terminal UI, Geniusbot, and Arbora-hosted messaging. MCP, REST, and A2A clients enter through Arbora; source systems flow through Agent Connector SDK into Epistemic Graph.](https://raw.githubusercontent.com/Knuckles-Team/medulla/main/docs/assets/runtime-architecture.svg)](https://knuckles-team.github.io/.github/architecture/#webui)
133
140
 
134
141
  [Explore the live architecture](https://knuckles-team.github.io/.github/architecture/#webui)
135
142
 
136
- People also enter through Agent Terminal UI and Geniusbot or Arbora-hosted
137
- messaging; Agent Terminal UI exposes REST operations, with no ACP conversational
138
- path. External applications connect over MCP, REST, or A2A. The browser talks
139
- only to its same-origin FastAPI host. Arbora injects gateway routes and
140
- verified request context, then delegates agent behavior to Agent Utilities and
141
- durable knowledge to Epistemic Graph. Source systems connect through Agent
142
- Connector SDK directly to Epistemic Graph. Agent Web UI renders typed results
143
+ People also enter through Tuig and Axil or Arbora-hosted
144
+ messaging. Tuig retains central A2A/REST and experimental headless local ACP;
145
+ full session parity remains unqualified. External applications connect over MCP,
146
+ REST, or A2A. The browser talks only to its same-origin FastAPI host. Arbora injects gateway routes and
147
+ verified request context. Meristem applies supplied plans; Medulla owns
148
+ durable knowledge. Source systems connect through Scion SDK
149
+ directly to Medulla. Overstory renders typed results
143
150
  and local presentation state while each service retains its own authority.
144
151
 
145
- See the [architecture guide](https://knuckles-team.github.io/agent-webui/architecture/)
152
+ See the [architecture guide](https://knuckles-team.github.io/overstory/architecture/)
146
153
  for the request flow and trust boundaries.
147
154
 
148
155
  ## Quick start
149
156
 
150
- Generate a local profile and start Arbora with Agent Web UI enabled:
157
+ Generate a local profile and start Arbora with Overstory enabled:
151
158
 
152
159
  ```bash
153
160
  uvx --from "arbora[webui]" setup-config generate --profile tiny
@@ -156,7 +163,7 @@ uvx --from "arbora[webui]" arbora --transport streamable-http --host 127.0.0.1 -
156
163
  ```
157
164
 
158
165
  Open <http://127.0.0.1:8080>. Arbora serves MCP on port `8000` and the Agent
159
- Web UI co-service on port `8080`. The [start guide](https://knuckles-team.github.io/agent-webui/start/)
166
+ Web UI co-service on port `8080`. The [start guide](https://knuckles-team.github.io/overstory/start/)
160
167
  covers local source development and deployment profiles.
161
168
 
162
169
  ## Contributing
@@ -165,6 +172,10 @@ Issues and pull requests are welcome. Read [AGENTS.md](AGENTS.md), keep browser
165
172
  and server authority boundaries intact, and run the repository validation suite
166
173
  before opening a pull request.
167
174
 
175
+ Refresh the documented workspace views with `pnpm screenshots:refresh`. See the
176
+ [screenshot guide](docs/screenshots.md) for synthetic fixtures, hosted capture,
177
+ provenance and review before committing refreshed images.
178
+
168
179
  ## License
169
180
 
170
- Arbora Agent Web UI is available under the [MIT License](LICENSE).
181
+ Overstory is available under the [MIT License](LICENSE).
@@ -0,0 +1,135 @@
1
+ # Overstory
2
+
3
+ <p align="center">
4
+ <img src="docs/assets/brands/agent-webui-logo-v1.png" alt="Overstory logo" width="160" />
5
+ </p>
6
+
7
+ Overstory is the browser workspace for Arbora. The repository is `overstory`;
8
+ the package remains `agent-webui`. Existing gallery images retain their original capture provenance.
9
+
10
+ <p align="center">
11
+ <strong>The browser workspace for governed agents, workflows, and knowledge in Arbora.</strong><br>
12
+ <sub>Conversations · approvals · workflows · fleet activity · Understory knowledge views</sub>
13
+ </p>
14
+
15
+ <p align="center">
16
+
17
+ [![PyPI - Version](https://img.shields.io/pypi/v/agent-webui)](https://pypi.org/project/agent-webui/)
18
+ [![Build](https://github.com/Knuckles-Team/overstory/actions/workflows/release.yml/badge.svg)](https://github.com/Knuckles-Team/overstory/actions/workflows/release.yml)
19
+ [![Documentation](https://img.shields.io/badge/docs-GitHub%20Pages-526cfe)](https://knuckles-team.github.io/overstory/)
20
+ [![GitHub license](https://img.shields.io/github/license/Knuckles-Team/overstory)](LICENSE)
21
+ [![Docs build](https://github.com/Knuckles-Team/overstory/actions/workflows/pages.yml/badge.svg?branch=main)](https://github.com/Knuckles-Team/overstory/actions/workflows/pages.yml)
22
+ [![PyPI - Downloads](https://img.shields.io/pypi/dd/agent-webui)](https://pypi.org/project/agent-webui/)
23
+ [![PyPI - License](https://img.shields.io/pypi/l/agent-webui)](https://pypi.org/project/agent-webui/)
24
+ [![PyPI - Wheel](https://img.shields.io/pypi/wheel/agent-webui)](https://pypi.org/project/agent-webui/)
25
+ [![PyPI - Implementation](https://img.shields.io/pypi/implementation/agent-webui)](https://pypi.org/project/agent-webui/)
26
+ [![GitHub Repo stars](https://img.shields.io/github/stars/Knuckles-Team/overstory)](https://github.com/Knuckles-Team/overstory/stargazers)
27
+ [![GitHub forks](https://img.shields.io/github/forks/Knuckles-Team/overstory)](https://github.com/Knuckles-Team/overstory/forks)
28
+ [![GitHub contributors](https://img.shields.io/github/contributors/Knuckles-Team/overstory)](https://github.com/Knuckles-Team/overstory/graphs/contributors)
29
+ [![GitHub last commit (by committer)](https://img.shields.io/github/last-commit/Knuckles-Team/overstory)](https://github.com/Knuckles-Team/overstory/commits/main)
30
+ [![GitHub pull requests](https://img.shields.io/github/issues-pr/Knuckles-Team/overstory)](https://github.com/Knuckles-Team/overstory/pulls)
31
+ [![GitHub closed pull requests](https://img.shields.io/github/issues-pr-closed/Knuckles-Team/overstory)](https://github.com/Knuckles-Team/overstory/pulls?q=is%3Apr+is%3Aclosed)
32
+ [![GitHub issues](https://img.shields.io/github/issues/Knuckles-Team/overstory)](https://github.com/Knuckles-Team/overstory/issues)
33
+ [![GitHub top language](https://img.shields.io/github/languages/top/Knuckles-Team/overstory)](https://github.com/Knuckles-Team/overstory)
34
+ [![GitHub language count](https://img.shields.io/github/languages/count/Knuckles-Team/overstory)](https://github.com/Knuckles-Team/overstory)
35
+ [![GitHub repo size](https://img.shields.io/github/repo-size/Knuckles-Team/overstory)](https://github.com/Knuckles-Team/overstory)
36
+ [![GitHub repo file count (file type)](https://img.shields.io/github/directory-file-count/Knuckles-Team/overstory)](https://github.com/Knuckles-Team/overstory)
37
+
38
+ </p>
39
+
40
+ <p align="center">
41
+ <a href="https://knuckles-team.github.io/overstory/">Documentation</a> ·
42
+ <a href="https://knuckles-team.github.io/overstory/features/">Capabilities</a> ·
43
+ <a href="https://knuckles-team.github.io/overstory/architecture/">Interfaces</a> ·
44
+ <a href="https://knuckles-team.github.io/overstory/status/">Status</a>
45
+ </p>
46
+
47
+ ![Chat and tasks in the accepted green glass theme, with an unsent synthetic project draft.](docs/assets/screenshots/work-wide.png)
48
+
49
+ The conversation-first workspace uses synthetic demo data, not a live account.
50
+ Open **Settings** for theme, surface and privacy choices.
51
+ See the [workspace gallery and screenshot refresh guide](docs/screenshots.md).
52
+
53
+ ## Overview
54
+
55
+ Overstory is the browser workspace composed by Arbora. It brings agent
56
+ conversations, approvals, workflows, fleet activity, and Medulla
57
+ exploration into one React application. Its FastAPI host keeps privileged
58
+ credentials and gateway delegation on the server side.
59
+
60
+ | Overstory owns | Other components own |
61
+ |---|---|
62
+ | Browser presentation, local interaction state, accessible route composition, and the FastAPI boundary | Arbora owns public routing, identity, policy, and fleet supervision; Meristem applies supplied plans; Medulla owns durable knowledge; connector services own external-system effects |
63
+
64
+ Current package Version: 2.8.3.
65
+
66
+ ## Key capabilities
67
+
68
+ - Stream agent responses with sources, governed tool activity, and approval prompts.
69
+ - Build and run workflows while observing sessions, goals, schedules, and fleet health.
70
+ - Explore property graphs, RDF, schemas, objects, tables, documents, code, and memories through Understory and Medulla.
71
+ - Discover MCP Apps and connector capabilities without exposing service credentials to the browser.
72
+ - Apply one role-aware navigation and server authorization model across the complete workspace.
73
+ - Run as the Arbora-hosted browser co-service or as an independently deployed ASGI application.
74
+
75
+ ## Documentation
76
+
77
+ Start with the [Overstory documentation](https://knuckles-team.github.io/overstory/),
78
+ then use the shared platform map to move between components:
79
+
80
+ | Component | Role | Documentation |
81
+ |---|---|---|
82
+ | Overstory | Browser operator workspace and Understory knowledge views | [Docs](https://knuckles-team.github.io/overstory/) |
83
+ | Tuig | Terminal and headless client; central A2A/REST and experimental headless local ACP; full session parity remains unqualified | [Docs](https://knuckles-team.github.io/tuig/) |
84
+ | Axil | Desktop cockpit for chat, graph, fleet, health, and operator workflows | [Docs](https://knuckles-team.github.io/axil/) |
85
+ | Arbora messaging | Chat and voice entrypoints hosted by Arbora | [Docs](https://knuckles-team.github.io/arbora/) |
86
+ | Arbora | Public MCP, REST, A2A, identity, policy, and runtime composition | [Docs](https://knuckles-team.github.io/arbora/) |
87
+ | Meristem | In-run harness that applies supplied plans | [Docs](https://knuckles-team.github.io/meristem/) |
88
+ | Medulla | Durable multimodal data, reasoning, provenance, and transactions | [Docs](https://knuckles-team.github.io/medulla/) |
89
+ | Scion SDK | Typed source adapters, connector serving, and write-back contracts | [Docs](https://knuckles-team.github.io/scion-sdk/) |
90
+
91
+ ## Architecture
92
+
93
+ [![Runtime architecture: people use Agent Web UI, Agent Terminal UI, Geniusbot, and Arbora-hosted messaging. MCP, REST, and A2A clients enter through Arbora; source systems flow through Agent Connector SDK into Epistemic Graph.](https://raw.githubusercontent.com/Knuckles-Team/medulla/main/docs/assets/runtime-architecture.svg)](https://knuckles-team.github.io/.github/architecture/#webui)
94
+
95
+ [Explore the live architecture](https://knuckles-team.github.io/.github/architecture/#webui)
96
+
97
+ People also enter through Tuig and Axil or Arbora-hosted
98
+ messaging. Tuig retains central A2A/REST and experimental headless local ACP;
99
+ full session parity remains unqualified. External applications connect over MCP,
100
+ REST, or A2A. The browser talks only to its same-origin FastAPI host. Arbora injects gateway routes and
101
+ verified request context. Meristem applies supplied plans; Medulla owns
102
+ durable knowledge. Source systems connect through Scion SDK
103
+ directly to Medulla. Overstory renders typed results
104
+ and local presentation state while each service retains its own authority.
105
+
106
+ See the [architecture guide](https://knuckles-team.github.io/overstory/architecture/)
107
+ for the request flow and trust boundaries.
108
+
109
+ ## Quick start
110
+
111
+ Generate a local profile and start Arbora with Overstory enabled:
112
+
113
+ ```bash
114
+ uvx --from "arbora[webui]" setup-config generate --profile tiny
115
+ export ENABLE_WEB_UI=true
116
+ uvx --from "arbora[webui]" arbora --transport streamable-http --host 127.0.0.1 --port 8000
117
+ ```
118
+
119
+ Open <http://127.0.0.1:8080>. Arbora serves MCP on port `8000` and the Agent
120
+ Web UI co-service on port `8080`. The [start guide](https://knuckles-team.github.io/overstory/start/)
121
+ covers local source development and deployment profiles.
122
+
123
+ ## Contributing
124
+
125
+ Issues and pull requests are welcome. Read [AGENTS.md](AGENTS.md), keep browser
126
+ and server authority boundaries intact, and run the repository validation suite
127
+ before opening a pull request.
128
+
129
+ Refresh the documented workspace views with `pnpm screenshots:refresh`. See the
130
+ [screenshot guide](docs/screenshots.md) for synthetic fixtures, hosted capture,
131
+ provenance and review before committing refreshed images.
132
+
133
+ ## License
134
+
135
+ Overstory is available under the [MIT License](LICENSE).
@@ -16,12 +16,13 @@ from agent_webui.browser_control import (
16
16
  BrowserControlBinding,
17
17
  BrowserMessage,
18
18
  ControlCancelled,
19
+ ServerMessage,
19
20
  )
20
21
  from agent_webui.browser_control_canonical import canonical_protocol_json
21
22
  from agent_webui.server import create_agent_web_app
22
23
  from cryptography.fernet import Fernet
23
24
  from fastapi.testclient import TestClient
24
- from pydantic import BaseModel, ConfigDict
25
+ from pydantic import BaseModel, ConfigDict, TypeAdapter, ValidationError
25
26
  from starlette.websockets import WebSocketDisconnect
26
27
 
27
28
  pytestmark = pytest.mark.integration
@@ -108,7 +109,10 @@ class MismatchedCatalogReceiptConnection(RecordingConnection):
108
109
  class AcknowledgingConnection(RecordingConnection):
109
110
  async def receive(self, message: BrowserMessage) -> Any:
110
111
  receipt = await super().receive(message)
111
- if message.type != 'catalog.register':
112
+ if (
113
+ message.type != 'catalog.register'
114
+ and message.type != 'control.proposal_response'
115
+ ):
112
116
  await self.outbound_send(
113
117
  _AuCancel(
114
118
  protocol='webmcp.control.v1',
@@ -277,7 +281,7 @@ def _browser_headers(*, origin: str = 'https://au.example') -> dict[str, str]:
277
281
  session = {
278
282
  'access_token': 'verified-human-access-token',
279
283
  'refresh_token': '',
280
- 'expires_at': time.time() + 300,
284
+ 'expires_at': int(time.time()) + 300,
281
285
  }
282
286
  packed = zlib.compress(json.dumps(session).encode('utf-8'), 9)
283
287
  sealed = Fernet(_SESSION_KEY.encode('ascii')).encrypt(packed).decode('ascii')
@@ -1002,3 +1006,110 @@ def test_unicode_result_uses_the_same_utf8_json_budget_as_the_browser(
1002
1006
  )
1003
1007
 
1004
1008
  assert port.connection.messages[-1].type == 'control.result'
1009
+
1010
+
1011
+ def _proposal_request() -> dict[str, Any]:
1012
+ return {
1013
+ 'protocol': 'webmcp.control.v1',
1014
+ 'type': 'control.proposal_request',
1015
+ 'proposal_id': 'proposal-1',
1016
+ 'proposal_digest': _DIGEST,
1017
+ 'registration_generation': 7,
1018
+ 'tool_id': 'webui.page.context',
1019
+ 'schema_digest': _DIGEST,
1020
+ 'arguments': {},
1021
+ 'requester_agent': 'web-agent',
1022
+ 'requester_run_ref': 'run-1',
1023
+ 'expires_at': int(time.time()) + 30,
1024
+ }
1025
+
1026
+
1027
+ def test_proposal_wire_round_trip_uses_existing_authority_connection(
1028
+ mock_agent: Any,
1029
+ monkeypatch: pytest.MonkeyPatch,
1030
+ ) -> None:
1031
+ _configure_identity(monkeypatch)
1032
+ port = RecordingPort()
1033
+ request = _proposal_request()
1034
+ withdrawn = {
1035
+ 'protocol': 'webmcp.control.v1',
1036
+ 'type': 'control.proposal_withdrawn',
1037
+ 'proposal_id': 'proposal-1',
1038
+ 'reason': 'declined',
1039
+ }
1040
+
1041
+ class ProposalConnection(RecordingConnection):
1042
+ async def receive(self, message: BrowserMessage) -> Any:
1043
+ receipt = await super().receive(message)
1044
+ if message.type == 'control.cancelled':
1045
+ await self.outbound_send(request)
1046
+ if message.type == 'control.proposal_response':
1047
+ await self.outbound_send(withdrawn)
1048
+ return receipt
1049
+
1050
+ port.connection = ProposalConnection()
1051
+ client = TestClient(_app(mock_agent, port))
1052
+ with client.websocket_connect(
1053
+ '/ws/browser-control', headers=_browser_headers()
1054
+ ) as websocket:
1055
+ websocket.send_json(_OPEN)
1056
+ websocket.send_json(_CATALOG)
1057
+ assert websocket.receive_json()['type'] == 'channel.ready'
1058
+ websocket.send_json(
1059
+ {
1060
+ 'protocol': 'webmcp.control.v1',
1061
+ 'type': 'control.cancelled',
1062
+ 'call_id': 'synthetic-trigger',
1063
+ 'effect': 'none',
1064
+ }
1065
+ )
1066
+ assert websocket.receive_json() == request
1067
+ websocket.send_json(
1068
+ {
1069
+ 'protocol': 'webmcp.control.v1',
1070
+ 'type': 'control.proposal_response',
1071
+ 'proposal_id': 'proposal-1',
1072
+ 'proposal_digest': _DIGEST,
1073
+ 'accepted': False,
1074
+ }
1075
+ )
1076
+ assert websocket.receive_json() == withdrawn
1077
+ assert port.connection.messages[-1].type == 'control.proposal_response'
1078
+ assert port.connection.messages[-1].accepted is False
1079
+ assert len(port.bindings) == 1
1080
+
1081
+
1082
+ @pytest.mark.parametrize(
1083
+ 'field,value',
1084
+ [
1085
+ ('registration_generation', True),
1086
+ ('registration_generation', 0),
1087
+ ('schema_digest', 'wrong'),
1088
+ ('requester_run_ref', '../run'),
1089
+ ('requester_agent', 'a' * 513),
1090
+ ('expires_at', float('inf')),
1091
+ ('arguments', {'bad': float('nan')}),
1092
+ ],
1093
+ )
1094
+ def test_proposal_server_wire_rejects_malformed_input(field: str, value: Any) -> None:
1095
+
1096
+ with pytest.raises((ValidationError, ValueError)):
1097
+ TypeAdapter(ServerMessage).validate_python(
1098
+ {**_proposal_request(), field: value}, strict=True
1099
+ )
1100
+
1101
+
1102
+ @pytest.mark.parametrize('accepted', ['true', 1, None])
1103
+ def test_proposal_response_requires_a_boolean_decision(accepted: Any) -> None:
1104
+
1105
+ with pytest.raises(ValidationError):
1106
+ TypeAdapter(BrowserMessage).validate_python(
1107
+ {
1108
+ 'protocol': 'webmcp.control.v1',
1109
+ 'type': 'control.proposal_response',
1110
+ 'proposal_id': 'proposal-1',
1111
+ 'proposal_digest': _DIGEST,
1112
+ 'accepted': accepted,
1113
+ },
1114
+ strict=True,
1115
+ )
@@ -1714,3 +1714,81 @@ async def test_verify_browser_session_rejects_a_principal_mismatch(
1714
1714
  await verify_browser_session(
1715
1715
  scope, session, authority=authority, console_origin=_EVIDENCE_ORIGIN
1716
1716
  )
1717
+
1718
+
1719
+ @pytest.mark.anyio
1720
+ @pytest.mark.parametrize('path', [SESSION_PATH, '/api/fixture'])
1721
+ @pytest.mark.parametrize('refresh', ['', 'rejected-refresh'])
1722
+ async def test_expired_http_session_clears_cookies_and_status(
1723
+ monkeypatch, path, refresh
1724
+ ):
1725
+ async def refuse_api(scope, receive, send):
1726
+ assert not any(key == b'authorization' for key, _ in scope['headers'])
1727
+ await OIDCBrowserSessionMiddleware._respond(send, 401)
1728
+
1729
+ middleware = OIDCBrowserSessionMiddleware(refuse_api, settings=_settings())
1730
+
1731
+ async def rejected(_form):
1732
+ return None
1733
+
1734
+ monkeypatch.setattr(middleware, '_token_request', rejected)
1735
+ sealed = middleware._seal(
1736
+ {
1737
+ 'access_token': 'expired-fixture',
1738
+ 'refresh_token': refresh,
1739
+ 'expires_at': time.time() - 1,
1740
+ }
1741
+ )
1742
+ cookie = '; '.join(
1743
+ raw.decode().split(';', 1)[0]
1744
+ for _, raw in _session_cookie_headers(sealed, secure=False)
1745
+ )
1746
+ send = _Recorder()
1747
+ await middleware(_scope(path, headers=[(b'cookie', cookie.encode())]), None, send)
1748
+ assert send.status == (200 if path == SESSION_PATH else 401)
1749
+ if path == SESSION_PATH:
1750
+ assert json.loads(send.body) == {'authenticated': False}
1751
+ assert send.headers(b'set-cookie') == [
1752
+ raw for _, raw in _clear_session_cookie_headers(secure=False)
1753
+ ]
1754
+
1755
+
1756
+ @pytest.mark.anyio
1757
+ async def test_session_status_renews_and_persists_cookie(monkeypatch):
1758
+ middleware = OIDCBrowserSessionMiddleware(_noop_app, settings=_settings())
1759
+
1760
+ async def renewed(form):
1761
+ assert form['refresh_token'] == 'refresh-fixture'
1762
+ return {
1763
+ 'access_token': 'new-fixture',
1764
+ 'expires_in': 300,
1765
+ 'refresh_token': 'renewed-refresh-fixture',
1766
+ }
1767
+
1768
+ monkeypatch.setattr(middleware, '_token_request', renewed)
1769
+ sealed = middleware._seal(
1770
+ {
1771
+ 'access_token': 'expired-fixture',
1772
+ 'refresh_token': 'refresh-fixture',
1773
+ 'expires_at': time.time() - 1,
1774
+ }
1775
+ )
1776
+ cookie = '; '.join(
1777
+ raw.decode().split(';', 1)[0]
1778
+ for _, raw in _session_cookie_headers(sealed, secure=False)
1779
+ )
1780
+ send = _Recorder()
1781
+ await middleware(
1782
+ _scope(SESSION_PATH, headers=[(b'cookie', cookie.encode())]), None, send
1783
+ )
1784
+ assert json.loads(send.body)['authenticated'] is True
1785
+ cookies = {
1786
+ raw.decode().split(';', 1)[0].split('=', 1)[0]: raw.decode()
1787
+ .split(';', 1)[0]
1788
+ .split('=', 1)[1]
1789
+ for raw in send.headers(b'set-cookie')
1790
+ }
1791
+ renewed_session = middleware._unseal(_read_session_cookie(cookies))
1792
+ assert renewed_session is not None
1793
+ assert renewed_session['access_token'] == 'new-fixture'
1794
+ assert renewed_session['refresh_token'] == 'renewed-refresh-fixture'