@agimon-ai/po-web-dashboard 0.0.0-alpha.0

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 (924) hide show
  1. package/LICENSE +29 -0
  2. package/README.md +10 -0
  3. package/dist/_virtual/_rolldown/runtime.cjs +23 -0
  4. package/dist/core.cjs +222 -0
  5. package/dist/core.d.mts +21 -0
  6. package/dist/core.mjs +21 -0
  7. package/dist/index.cjs +546 -0
  8. package/dist/index.d.mts +81 -0
  9. package/dist/index.mjs +81 -0
  10. package/dist/testing.cjs +18 -0
  11. package/dist/testing.d.mts +6 -0
  12. package/dist/testing.mjs +6 -0
  13. package/dist/types/auth.cjs +20 -0
  14. package/dist/types/auth.cjs.map +1 -0
  15. package/dist/types/auth.d.mts +160 -0
  16. package/dist/types/auth.d.mts.map +1 -0
  17. package/dist/types/auth.mjs +19 -0
  18. package/dist/types/auth.mjs.map +1 -0
  19. package/dist/types/bridge.d.mts +18 -0
  20. package/dist/types/bridge.d.mts.map +1 -0
  21. package/dist/types/devProxy.cjs +41 -0
  22. package/dist/types/devProxy.cjs.map +1 -0
  23. package/dist/types/devProxy.d.mts +54 -0
  24. package/dist/types/devProxy.d.mts.map +1 -0
  25. package/dist/types/devProxy.mjs +39 -0
  26. package/dist/types/devProxy.mjs.map +1 -0
  27. package/dist/types/hub.cjs +220 -0
  28. package/dist/types/hub.cjs.map +1 -0
  29. package/dist/types/hub.d.mts +447 -0
  30. package/dist/types/hub.d.mts.map +1 -0
  31. package/dist/types/hub.mjs +179 -0
  32. package/dist/types/hub.mjs.map +1 -0
  33. package/dist/types/media.cjs +75 -0
  34. package/dist/types/media.cjs.map +1 -0
  35. package/dist/types/media.d.mts +22 -0
  36. package/dist/types/media.d.mts.map +1 -0
  37. package/dist/types/media.mjs +70 -0
  38. package/dist/types/media.mjs.map +1 -0
  39. package/dist/types/notification.cjs +19 -0
  40. package/dist/types/notification.cjs.map +1 -0
  41. package/dist/types/notification.d.mts +10 -0
  42. package/dist/types/notification.d.mts.map +1 -0
  43. package/dist/types/notification.mjs +19 -0
  44. package/dist/types/notification.mjs.map +1 -0
  45. package/dist/types/remoteAccess.cjs +92 -0
  46. package/dist/types/remoteAccess.cjs.map +1 -0
  47. package/dist/types/remoteAccess.d.mts +214 -0
  48. package/dist/types/remoteAccess.d.mts.map +1 -0
  49. package/dist/types/remoteAccess.mjs +68 -0
  50. package/dist/types/remoteAccess.mjs.map +1 -0
  51. package/dist/types/session.cjs +23 -0
  52. package/dist/types/session.cjs.map +1 -0
  53. package/dist/types/session.d.mts +29 -0
  54. package/dist/types/session.d.mts.map +1 -0
  55. package/dist/types/session.mjs +18 -0
  56. package/dist/types/session.mjs.map +1 -0
  57. package/dist/types/sessionMcp.d.mts +56 -0
  58. package/dist/types/sessionMcp.d.mts.map +1 -0
  59. package/dist/types/settings.cjs +18 -0
  60. package/dist/types/settings.cjs.map +1 -0
  61. package/dist/types/settings.d.mts +126 -0
  62. package/dist/types/settings.d.mts.map +1 -0
  63. package/dist/types/settings.mjs +12 -0
  64. package/dist/types/settings.mjs.map +1 -0
  65. package/dist/types.cjs +101 -0
  66. package/dist/types.d.mts +11 -0
  67. package/dist/types.mjs +9 -0
  68. package/dist/views.cjs +120 -0
  69. package/dist/views.d.mts +56 -0
  70. package/dist/views.mjs +56 -0
  71. package/dist/web/components/MascotMark.cjs +18 -0
  72. package/dist/web/components/MascotMark.cjs.map +1 -0
  73. package/dist/web/components/MascotMark.d.mts +9 -0
  74. package/dist/web/components/MascotMark.d.mts.map +1 -0
  75. package/dist/web/components/MascotMark.mjs +18 -0
  76. package/dist/web/components/MascotMark.mjs.map +1 -0
  77. package/dist/web/components/PluginSurface.cjs +15 -0
  78. package/dist/web/components/PluginSurface.cjs.map +1 -0
  79. package/dist/web/components/PluginSurface.d.mts +13 -0
  80. package/dist/web/components/PluginSurface.d.mts.map +1 -0
  81. package/dist/web/components/PluginSurface.mjs +15 -0
  82. package/dist/web/components/PluginSurface.mjs.map +1 -0
  83. package/dist/web/components/QrCode.cjs +37 -0
  84. package/dist/web/components/QrCode.cjs.map +1 -0
  85. package/dist/web/components/QrCode.d.mts +22 -0
  86. package/dist/web/components/QrCode.d.mts.map +1 -0
  87. package/dist/web/components/QrCode.mjs +37 -0
  88. package/dist/web/components/QrCode.mjs.map +1 -0
  89. package/dist/web/components/Remote.fixture.cjs +73 -0
  90. package/dist/web/components/Remote.fixture.cjs.map +1 -0
  91. package/dist/web/components/Remote.fixture.mjs +72 -0
  92. package/dist/web/components/Remote.fixture.mjs.map +1 -0
  93. package/dist/web/components/SessionMcp.cjs +279 -0
  94. package/dist/web/components/SessionMcp.cjs.map +1 -0
  95. package/dist/web/components/SessionMcp.d.mts +12 -0
  96. package/dist/web/components/SessionMcp.d.mts.map +1 -0
  97. package/dist/web/components/SessionMcp.mjs +278 -0
  98. package/dist/web/components/SessionMcp.mjs.map +1 -0
  99. package/dist/web/components/Story.fixture.cjs +124 -0
  100. package/dist/web/components/Story.fixture.cjs.map +1 -0
  101. package/dist/web/components/Story.fixture.d.mts +19 -0
  102. package/dist/web/components/Story.fixture.d.mts.map +1 -0
  103. package/dist/web/components/Story.fixture.mjs +119 -0
  104. package/dist/web/components/Story.fixture.mjs.map +1 -0
  105. package/dist/web/components/Template.fixture.cjs +67 -0
  106. package/dist/web/components/Template.fixture.cjs.map +1 -0
  107. package/dist/web/components/Template.fixture.d.mts +7 -0
  108. package/dist/web/components/Template.fixture.d.mts.map +1 -0
  109. package/dist/web/components/Template.fixture.mjs +65 -0
  110. package/dist/web/components/Template.fixture.mjs.map +1 -0
  111. package/dist/web/components/ToolRendererBoundary.cjs +23 -0
  112. package/dist/web/components/ToolRendererBoundary.cjs.map +1 -0
  113. package/dist/web/components/ToolRendererBoundary.d.mts +23 -0
  114. package/dist/web/components/ToolRendererBoundary.d.mts.map +1 -0
  115. package/dist/web/components/ToolRendererBoundary.mjs +23 -0
  116. package/dist/web/components/ToolRendererBoundary.mjs.map +1 -0
  117. package/dist/web/features/activity/ActivityDock.cjs +271 -0
  118. package/dist/web/features/activity/ActivityDock.cjs.map +1 -0
  119. package/dist/web/features/activity/ActivityDock.d.mts +22 -0
  120. package/dist/web/features/activity/ActivityDock.d.mts.map +1 -0
  121. package/dist/web/features/activity/ActivityDock.mjs +271 -0
  122. package/dist/web/features/activity/ActivityDock.mjs.map +1 -0
  123. package/dist/web/features/activity/ContextItemDialog.cjs +276 -0
  124. package/dist/web/features/activity/ContextItemDialog.cjs.map +1 -0
  125. package/dist/web/features/activity/ContextItemDialog.d.mts +16 -0
  126. package/dist/web/features/activity/ContextItemDialog.d.mts.map +1 -0
  127. package/dist/web/features/activity/ContextItemDialog.mjs +276 -0
  128. package/dist/web/features/activity/ContextItemDialog.mjs.map +1 -0
  129. package/dist/web/features/activity/ContextPanel.cjs +248 -0
  130. package/dist/web/features/activity/ContextPanel.cjs.map +1 -0
  131. package/dist/web/features/activity/ContextPanel.d.mts +4 -0
  132. package/dist/web/features/activity/ContextPanel.d.mts.map +1 -0
  133. package/dist/web/features/activity/ContextPanel.mjs +248 -0
  134. package/dist/web/features/activity/ContextPanel.mjs.map +1 -0
  135. package/dist/web/features/activity/DockTabs.cjs +47 -0
  136. package/dist/web/features/activity/DockTabs.cjs.map +1 -0
  137. package/dist/web/features/activity/DockTabs.d.mts +9 -0
  138. package/dist/web/features/activity/DockTabs.d.mts.map +1 -0
  139. package/dist/web/features/activity/DockTabs.mjs +47 -0
  140. package/dist/web/features/activity/DockTabs.mjs.map +1 -0
  141. package/dist/web/features/connection/RefusedCard.cjs +76 -0
  142. package/dist/web/features/connection/RefusedCard.cjs.map +1 -0
  143. package/dist/web/features/connection/RefusedCard.d.mts +5 -0
  144. package/dist/web/features/connection/RefusedCard.d.mts.map +1 -0
  145. package/dist/web/features/connection/RefusedCard.mjs +76 -0
  146. package/dist/web/features/connection/RefusedCard.mjs.map +1 -0
  147. package/dist/web/features/dialogs/DialogOverlay.cjs +164 -0
  148. package/dist/web/features/dialogs/DialogOverlay.cjs.map +1 -0
  149. package/dist/web/features/dialogs/DialogOverlay.d.mts +15 -0
  150. package/dist/web/features/dialogs/DialogOverlay.d.mts.map +1 -0
  151. package/dist/web/features/dialogs/DialogOverlay.mjs +164 -0
  152. package/dist/web/features/dialogs/DialogOverlay.mjs.map +1 -0
  153. package/dist/web/features/leader/CommandPalette.cjs +390 -0
  154. package/dist/web/features/leader/CommandPalette.cjs.map +1 -0
  155. package/dist/web/features/leader/CommandPalette.d.mts +14 -0
  156. package/dist/web/features/leader/CommandPalette.d.mts.map +1 -0
  157. package/dist/web/features/leader/CommandPalette.mjs +390 -0
  158. package/dist/web/features/leader/CommandPalette.mjs.map +1 -0
  159. package/dist/web/features/remote/DevProxyTargets.cjs +122 -0
  160. package/dist/web/features/remote/DevProxyTargets.cjs.map +1 -0
  161. package/dist/web/features/remote/DevProxyTargets.d.mts +15 -0
  162. package/dist/web/features/remote/DevProxyTargets.d.mts.map +1 -0
  163. package/dist/web/features/remote/DevProxyTargets.mjs +122 -0
  164. package/dist/web/features/remote/DevProxyTargets.mjs.map +1 -0
  165. package/dist/web/features/remote/HandoverProgress.cjs +28 -0
  166. package/dist/web/features/remote/HandoverProgress.cjs.map +1 -0
  167. package/dist/web/features/remote/HandoverProgress.d.mts +12 -0
  168. package/dist/web/features/remote/HandoverProgress.d.mts.map +1 -0
  169. package/dist/web/features/remote/HandoverProgress.mjs +28 -0
  170. package/dist/web/features/remote/HandoverProgress.mjs.map +1 -0
  171. package/dist/web/features/remote/PairedDeviceList.cjs +37 -0
  172. package/dist/web/features/remote/PairedDeviceList.cjs.map +1 -0
  173. package/dist/web/features/remote/PairedDeviceList.d.mts +5 -0
  174. package/dist/web/features/remote/PairedDeviceList.d.mts.map +1 -0
  175. package/dist/web/features/remote/PairedDeviceList.mjs +37 -0
  176. package/dist/web/features/remote/PairedDeviceList.mjs.map +1 -0
  177. package/dist/web/features/remote/PairingApprovalDialog.cjs +65 -0
  178. package/dist/web/features/remote/PairingApprovalDialog.cjs.map +1 -0
  179. package/dist/web/features/remote/PairingApprovalDialog.d.mts +11 -0
  180. package/dist/web/features/remote/PairingApprovalDialog.d.mts.map +1 -0
  181. package/dist/web/features/remote/PairingApprovalDialog.mjs +65 -0
  182. package/dist/web/features/remote/PairingApprovalDialog.mjs.map +1 -0
  183. package/dist/web/features/remote/RemoteAccessDialog.cjs +83 -0
  184. package/dist/web/features/remote/RemoteAccessDialog.cjs.map +1 -0
  185. package/dist/web/features/remote/RemoteAccessDialog.d.mts +11 -0
  186. package/dist/web/features/remote/RemoteAccessDialog.d.mts.map +1 -0
  187. package/dist/web/features/remote/RemoteAccessDialog.mjs +83 -0
  188. package/dist/web/features/remote/RemoteAccessDialog.mjs.map +1 -0
  189. package/dist/web/features/remote/RemoteAccessOptions.cjs +154 -0
  190. package/dist/web/features/remote/RemoteAccessOptions.cjs.map +1 -0
  191. package/dist/web/features/remote/RemoteAccessOptions.d.mts +11 -0
  192. package/dist/web/features/remote/RemoteAccessOptions.d.mts.map +1 -0
  193. package/dist/web/features/remote/RemoteAccessOptions.mjs +154 -0
  194. package/dist/web/features/remote/RemoteAccessOptions.mjs.map +1 -0
  195. package/dist/web/features/remote/RemoteAccessPairing.cjs +93 -0
  196. package/dist/web/features/remote/RemoteAccessPairing.cjs.map +1 -0
  197. package/dist/web/features/remote/RemoteAccessPairing.d.mts +5 -0
  198. package/dist/web/features/remote/RemoteAccessPairing.d.mts.map +1 -0
  199. package/dist/web/features/remote/RemoteAccessPairing.mjs +93 -0
  200. package/dist/web/features/remote/RemoteAccessPairing.mjs.map +1 -0
  201. package/dist/web/features/remote/SandboxWorkspaces.cjs +87 -0
  202. package/dist/web/features/remote/SandboxWorkspaces.cjs.map +1 -0
  203. package/dist/web/features/remote/SandboxWorkspaces.d.mts +7 -0
  204. package/dist/web/features/remote/SandboxWorkspaces.d.mts.map +1 -0
  205. package/dist/web/features/remote/SandboxWorkspaces.mjs +87 -0
  206. package/dist/web/features/remote/SandboxWorkspaces.mjs.map +1 -0
  207. package/dist/web/features/remote/TrustedDeviceList.cjs +65 -0
  208. package/dist/web/features/remote/TrustedDeviceList.cjs.map +1 -0
  209. package/dist/web/features/remote/TrustedDeviceList.d.mts +13 -0
  210. package/dist/web/features/remote/TrustedDeviceList.d.mts.map +1 -0
  211. package/dist/web/features/remote/TrustedDeviceList.mjs +64 -0
  212. package/dist/web/features/remote/TrustedDeviceList.mjs.map +1 -0
  213. package/dist/web/features/selection/SelectionBar.cjs +401 -0
  214. package/dist/web/features/selection/SelectionBar.cjs.map +1 -0
  215. package/dist/web/features/selection/SelectionBar.d.mts +14 -0
  216. package/dist/web/features/selection/SelectionBar.d.mts.map +1 -0
  217. package/dist/web/features/selection/SelectionBar.mjs +400 -0
  218. package/dist/web/features/selection/SelectionBar.mjs.map +1 -0
  219. package/dist/web/features/session/AgentLockPanel.cjs +31 -0
  220. package/dist/web/features/session/AgentLockPanel.cjs.map +1 -0
  221. package/dist/web/features/session/AgentLockPanel.mjs +31 -0
  222. package/dist/web/features/session/AgentLockPanel.mjs.map +1 -0
  223. package/dist/web/features/session/Composer.cjs +808 -0
  224. package/dist/web/features/session/Composer.cjs.map +1 -0
  225. package/dist/web/features/session/Composer.d.mts +21 -0
  226. package/dist/web/features/session/Composer.d.mts.map +1 -0
  227. package/dist/web/features/session/Composer.mjs +806 -0
  228. package/dist/web/features/session/Composer.mjs.map +1 -0
  229. package/dist/web/features/session/ComposerPrompt.cjs +47 -0
  230. package/dist/web/features/session/ComposerPrompt.cjs.map +1 -0
  231. package/dist/web/features/session/ComposerPrompt.d.mts +16 -0
  232. package/dist/web/features/session/ComposerPrompt.d.mts.map +1 -0
  233. package/dist/web/features/session/ComposerPrompt.mjs +47 -0
  234. package/dist/web/features/session/ComposerPrompt.mjs.map +1 -0
  235. package/dist/web/features/session/DormantPanel.cjs +61 -0
  236. package/dist/web/features/session/DormantPanel.cjs.map +1 -0
  237. package/dist/web/features/session/DormantPanel.d.mts +8 -0
  238. package/dist/web/features/session/DormantPanel.d.mts.map +1 -0
  239. package/dist/web/features/session/DormantPanel.mjs +61 -0
  240. package/dist/web/features/session/DormantPanel.mjs.map +1 -0
  241. package/dist/web/features/session/MentionPreviews.cjs +128 -0
  242. package/dist/web/features/session/MentionPreviews.cjs.map +1 -0
  243. package/dist/web/features/session/MentionPreviews.d.mts +17 -0
  244. package/dist/web/features/session/MentionPreviews.d.mts.map +1 -0
  245. package/dist/web/features/session/MentionPreviews.mjs +127 -0
  246. package/dist/web/features/session/MentionPreviews.mjs.map +1 -0
  247. package/dist/web/features/session/MessageMarkdown.cjs +20 -0
  248. package/dist/web/features/session/MessageMarkdown.cjs.map +1 -0
  249. package/dist/web/features/session/MessageMarkdown.d.mts +19 -0
  250. package/dist/web/features/session/MessageMarkdown.d.mts.map +1 -0
  251. package/dist/web/features/session/MessageMarkdown.mjs +20 -0
  252. package/dist/web/features/session/MessageMarkdown.mjs.map +1 -0
  253. package/dist/web/features/session/QueueSheet.cjs +189 -0
  254. package/dist/web/features/session/QueueSheet.cjs.map +1 -0
  255. package/dist/web/features/session/QueueSheet.d.mts +16 -0
  256. package/dist/web/features/session/QueueSheet.d.mts.map +1 -0
  257. package/dist/web/features/session/QueueSheet.mjs +189 -0
  258. package/dist/web/features/session/QueueSheet.mjs.map +1 -0
  259. package/dist/web/features/session/SessionActivity.cjs +88 -0
  260. package/dist/web/features/session/SessionActivity.cjs.map +1 -0
  261. package/dist/web/features/session/SessionActivity.d.mts +16 -0
  262. package/dist/web/features/session/SessionActivity.d.mts.map +1 -0
  263. package/dist/web/features/session/SessionActivity.mjs +87 -0
  264. package/dist/web/features/session/SessionActivity.mjs.map +1 -0
  265. package/dist/web/features/session/SessionTranscriptView.cjs +34 -0
  266. package/dist/web/features/session/SessionTranscriptView.cjs.map +1 -0
  267. package/dist/web/features/session/SessionTranscriptView.d.mts +16 -0
  268. package/dist/web/features/session/SessionTranscriptView.d.mts.map +1 -0
  269. package/dist/web/features/session/SessionTranscriptView.mjs +34 -0
  270. package/dist/web/features/session/SessionTranscriptView.mjs.map +1 -0
  271. package/dist/web/features/session/ThreadView.cjs +40 -0
  272. package/dist/web/features/session/ThreadView.cjs.map +1 -0
  273. package/dist/web/features/session/ThreadView.d.mts +18 -0
  274. package/dist/web/features/session/ThreadView.d.mts.map +1 -0
  275. package/dist/web/features/session/ThreadView.mjs +40 -0
  276. package/dist/web/features/session/ThreadView.mjs.map +1 -0
  277. package/dist/web/features/session/Timeline.cjs +620 -0
  278. package/dist/web/features/session/Timeline.cjs.map +1 -0
  279. package/dist/web/features/session/Timeline.d.mts +28 -0
  280. package/dist/web/features/session/Timeline.d.mts.map +1 -0
  281. package/dist/web/features/session/Timeline.mjs +619 -0
  282. package/dist/web/features/session/Timeline.mjs.map +1 -0
  283. package/dist/web/features/session/ToolCard.cjs +210 -0
  284. package/dist/web/features/session/ToolCard.cjs.map +1 -0
  285. package/dist/web/features/session/ToolCard.d.mts +16 -0
  286. package/dist/web/features/session/ToolCard.d.mts.map +1 -0
  287. package/dist/web/features/session/ToolCard.mjs +210 -0
  288. package/dist/web/features/session/ToolCard.mjs.map +1 -0
  289. package/dist/web/features/session/session.fixture.cjs +76 -0
  290. package/dist/web/features/session/session.fixture.cjs.map +1 -0
  291. package/dist/web/features/session/session.fixture.d.mts +6 -0
  292. package/dist/web/features/session/session.fixture.d.mts.map +1 -0
  293. package/dist/web/features/session/session.fixture.mjs +74 -0
  294. package/dist/web/features/session/session.fixture.mjs.map +1 -0
  295. package/dist/web/features/sessions/NewSessionDialog.cjs +70 -0
  296. package/dist/web/features/sessions/NewSessionDialog.cjs.map +1 -0
  297. package/dist/web/features/sessions/NewSessionDialog.d.mts +9 -0
  298. package/dist/web/features/sessions/NewSessionDialog.d.mts.map +1 -0
  299. package/dist/web/features/sessions/NewSessionDialog.mjs +70 -0
  300. package/dist/web/features/sessions/NewSessionDialog.mjs.map +1 -0
  301. package/dist/web/features/sessions/ResumeSessionDialog.cjs +131 -0
  302. package/dist/web/features/sessions/ResumeSessionDialog.cjs.map +1 -0
  303. package/dist/web/features/sessions/ResumeSessionDialog.d.mts +14 -0
  304. package/dist/web/features/sessions/ResumeSessionDialog.d.mts.map +1 -0
  305. package/dist/web/features/sessions/ResumeSessionDialog.mjs +131 -0
  306. package/dist/web/features/sessions/ResumeSessionDialog.mjs.map +1 -0
  307. package/dist/web/features/sessions/SessionRailDialogs.cjs +62 -0
  308. package/dist/web/features/sessions/SessionRailDialogs.cjs.map +1 -0
  309. package/dist/web/features/sessions/SessionRailDialogs.d.mts +10 -0
  310. package/dist/web/features/sessions/SessionRailDialogs.d.mts.map +1 -0
  311. package/dist/web/features/sessions/SessionRailDialogs.mjs +62 -0
  312. package/dist/web/features/sessions/SessionRailDialogs.mjs.map +1 -0
  313. package/dist/web/features/sessions/WelcomePanel.cjs +42 -0
  314. package/dist/web/features/sessions/WelcomePanel.cjs.map +1 -0
  315. package/dist/web/features/sessions/WelcomePanel.d.mts +16 -0
  316. package/dist/web/features/sessions/WelcomePanel.d.mts.map +1 -0
  317. package/dist/web/features/sessions/WelcomePanel.mjs +42 -0
  318. package/dist/web/features/sessions/WelcomePanel.mjs.map +1 -0
  319. package/dist/web/features/sessions/useNewSessionActions.cjs +38 -0
  320. package/dist/web/features/sessions/useNewSessionActions.cjs.map +1 -0
  321. package/dist/web/features/sessions/useNewSessionActions.d.mts +12 -0
  322. package/dist/web/features/sessions/useNewSessionActions.d.mts.map +1 -0
  323. package/dist/web/features/sessions/useNewSessionActions.mjs +38 -0
  324. package/dist/web/features/sessions/useNewSessionActions.mjs.map +1 -0
  325. package/dist/web/features/sessions/useSessionRail.cjs +302 -0
  326. package/dist/web/features/sessions/useSessionRail.cjs.map +1 -0
  327. package/dist/web/features/sessions/useSessionRail.d.mts +14 -0
  328. package/dist/web/features/sessions/useSessionRail.d.mts.map +1 -0
  329. package/dist/web/features/sessions/useSessionRail.mjs +302 -0
  330. package/dist/web/features/sessions/useSessionRail.mjs.map +1 -0
  331. package/dist/web/features/settings/AppearanceSettings.cjs +126 -0
  332. package/dist/web/features/settings/AppearanceSettings.cjs.map +1 -0
  333. package/dist/web/features/settings/AppearanceSettings.d.mts +12 -0
  334. package/dist/web/features/settings/AppearanceSettings.d.mts.map +1 -0
  335. package/dist/web/features/settings/AppearanceSettings.mjs +126 -0
  336. package/dist/web/features/settings/AppearanceSettings.mjs.map +1 -0
  337. package/dist/web/features/settings/ContributedSettings.cjs +257 -0
  338. package/dist/web/features/settings/ContributedSettings.cjs.map +1 -0
  339. package/dist/web/features/settings/ContributedSettings.d.mts +14 -0
  340. package/dist/web/features/settings/ContributedSettings.d.mts.map +1 -0
  341. package/dist/web/features/settings/ContributedSettings.mjs +257 -0
  342. package/dist/web/features/settings/ContributedSettings.mjs.map +1 -0
  343. package/dist/web/features/settings/ImageSettings.cjs +146 -0
  344. package/dist/web/features/settings/ImageSettings.cjs.map +1 -0
  345. package/dist/web/features/settings/ImageSettings.d.mts +12 -0
  346. package/dist/web/features/settings/ImageSettings.d.mts.map +1 -0
  347. package/dist/web/features/settings/ImageSettings.mjs +146 -0
  348. package/dist/web/features/settings/ImageSettings.mjs.map +1 -0
  349. package/dist/web/features/settings/LoginFlowDialog.cjs +226 -0
  350. package/dist/web/features/settings/LoginFlowDialog.cjs.map +1 -0
  351. package/dist/web/features/settings/LoginFlowDialog.d.mts +15 -0
  352. package/dist/web/features/settings/LoginFlowDialog.d.mts.map +1 -0
  353. package/dist/web/features/settings/LoginFlowDialog.mjs +225 -0
  354. package/dist/web/features/settings/LoginFlowDialog.mjs.map +1 -0
  355. package/dist/web/features/settings/NotificationSettings.cjs +69 -0
  356. package/dist/web/features/settings/NotificationSettings.cjs.map +1 -0
  357. package/dist/web/features/settings/NotificationSettings.d.mts +5 -0
  358. package/dist/web/features/settings/NotificationSettings.d.mts.map +1 -0
  359. package/dist/web/features/settings/NotificationSettings.mjs +69 -0
  360. package/dist/web/features/settings/NotificationSettings.mjs.map +1 -0
  361. package/dist/web/features/settings/PluginSettings.cjs +106 -0
  362. package/dist/web/features/settings/PluginSettings.cjs.map +1 -0
  363. package/dist/web/features/settings/PluginSettings.d.mts +10 -0
  364. package/dist/web/features/settings/PluginSettings.d.mts.map +1 -0
  365. package/dist/web/features/settings/PluginSettings.mjs +106 -0
  366. package/dist/web/features/settings/PluginSettings.mjs.map +1 -0
  367. package/dist/web/features/settings/ProviderSettings.cjs +323 -0
  368. package/dist/web/features/settings/ProviderSettings.cjs.map +1 -0
  369. package/dist/web/features/settings/ProviderSettings.d.mts +9 -0
  370. package/dist/web/features/settings/ProviderSettings.d.mts.map +1 -0
  371. package/dist/web/features/settings/ProviderSettings.mjs +323 -0
  372. package/dist/web/features/settings/ProviderSettings.mjs.map +1 -0
  373. package/dist/web/features/settings/RemoteControlSettings.cjs +50 -0
  374. package/dist/web/features/settings/RemoteControlSettings.cjs.map +1 -0
  375. package/dist/web/features/settings/RemoteControlSettings.d.mts +5 -0
  376. package/dist/web/features/settings/RemoteControlSettings.d.mts.map +1 -0
  377. package/dist/web/features/settings/RemoteControlSettings.mjs +50 -0
  378. package/dist/web/features/settings/RemoteControlSettings.mjs.map +1 -0
  379. package/dist/web/features/settings/RepositorySettings.cjs +318 -0
  380. package/dist/web/features/settings/RepositorySettings.cjs.map +1 -0
  381. package/dist/web/features/settings/RepositorySettings.d.mts +7 -0
  382. package/dist/web/features/settings/RepositorySettings.d.mts.map +1 -0
  383. package/dist/web/features/settings/RepositorySettings.mjs +318 -0
  384. package/dist/web/features/settings/RepositorySettings.mjs.map +1 -0
  385. package/dist/web/features/settings/RepositoryWorkspace.cjs +160 -0
  386. package/dist/web/features/settings/RepositoryWorkspace.cjs.map +1 -0
  387. package/dist/web/features/settings/RepositoryWorkspace.d.mts +10 -0
  388. package/dist/web/features/settings/RepositoryWorkspace.d.mts.map +1 -0
  389. package/dist/web/features/settings/RepositoryWorkspace.mjs +160 -0
  390. package/dist/web/features/settings/RepositoryWorkspace.mjs.map +1 -0
  391. package/dist/web/features/settings/SessionMcpSettings.cjs +488 -0
  392. package/dist/web/features/settings/SessionMcpSettings.cjs.map +1 -0
  393. package/dist/web/features/settings/SessionMcpSettings.d.mts +5 -0
  394. package/dist/web/features/settings/SessionMcpSettings.d.mts.map +1 -0
  395. package/dist/web/features/settings/SessionMcpSettings.mjs +488 -0
  396. package/dist/web/features/settings/SessionMcpSettings.mjs.map +1 -0
  397. package/dist/web/features/settings/SettingsMenu.cjs +135 -0
  398. package/dist/web/features/settings/SettingsMenu.cjs.map +1 -0
  399. package/dist/web/features/settings/SettingsMenu.d.mts +9 -0
  400. package/dist/web/features/settings/SettingsMenu.d.mts.map +1 -0
  401. package/dist/web/features/settings/SettingsMenu.mjs +135 -0
  402. package/dist/web/features/settings/SettingsMenu.mjs.map +1 -0
  403. package/dist/web/features/settings/SettingsPanelHost.cjs +32 -0
  404. package/dist/web/features/settings/SettingsPanelHost.cjs.map +1 -0
  405. package/dist/web/features/settings/SettingsPanelHost.d.mts +8 -0
  406. package/dist/web/features/settings/SettingsPanelHost.d.mts.map +1 -0
  407. package/dist/web/features/settings/SettingsPanelHost.mjs +32 -0
  408. package/dist/web/features/settings/SettingsPanelHost.mjs.map +1 -0
  409. package/dist/web/features/settings/TemplateSettings.cjs +177 -0
  410. package/dist/web/features/settings/TemplateSettings.cjs.map +1 -0
  411. package/dist/web/features/settings/TemplateSettings.d.mts +8 -0
  412. package/dist/web/features/settings/TemplateSettings.d.mts.map +1 -0
  413. package/dist/web/features/settings/TemplateSettings.mjs +177 -0
  414. package/dist/web/features/settings/TemplateSettings.mjs.map +1 -0
  415. package/dist/web/features/settings/TunnelSettings.cjs +182 -0
  416. package/dist/web/features/settings/TunnelSettings.cjs.map +1 -0
  417. package/dist/web/features/settings/TunnelSettings.d.mts +8 -0
  418. package/dist/web/features/settings/TunnelSettings.d.mts.map +1 -0
  419. package/dist/web/features/settings/TunnelSettings.mjs +182 -0
  420. package/dist/web/features/settings/TunnelSettings.mjs.map +1 -0
  421. package/dist/web/features/settings/settings.fixture.cjs +230 -0
  422. package/dist/web/features/settings/settings.fixture.cjs.map +1 -0
  423. package/dist/web/features/settings/settings.fixture.d.mts +6 -0
  424. package/dist/web/features/settings/settings.fixture.d.mts.map +1 -0
  425. package/dist/web/features/settings/settings.fixture.mjs +223 -0
  426. package/dist/web/features/settings/settings.fixture.mjs.map +1 -0
  427. package/dist/web/features/status/TopBar.cjs +200 -0
  428. package/dist/web/features/status/TopBar.cjs.map +1 -0
  429. package/dist/web/features/status/TopBar.d.mts +11 -0
  430. package/dist/web/features/status/TopBar.d.mts.map +1 -0
  431. package/dist/web/features/status/TopBar.mjs +200 -0
  432. package/dist/web/features/status/TopBar.mjs.map +1 -0
  433. package/dist/web/lib/authApi.cjs +77 -0
  434. package/dist/web/lib/authApi.cjs.map +1 -0
  435. package/dist/web/lib/authApi.d.mts +28 -0
  436. package/dist/web/lib/authApi.d.mts.map +1 -0
  437. package/dist/web/lib/authApi.mjs +72 -0
  438. package/dist/web/lib/authApi.mjs.map +1 -0
  439. package/dist/web/lib/browserNotifications.cjs +37 -0
  440. package/dist/web/lib/browserNotifications.cjs.map +1 -0
  441. package/dist/web/lib/browserNotifications.d.mts +12 -0
  442. package/dist/web/lib/browserNotifications.d.mts.map +1 -0
  443. package/dist/web/lib/browserNotifications.mjs +35 -0
  444. package/dist/web/lib/browserNotifications.mjs.map +1 -0
  445. package/dist/web/lib/browserTelemetry.cjs +158 -0
  446. package/dist/web/lib/browserTelemetry.cjs.map +1 -0
  447. package/dist/web/lib/browserTelemetry.d.mts +28 -0
  448. package/dist/web/lib/browserTelemetry.d.mts.map +1 -0
  449. package/dist/web/lib/browserTelemetry.mjs +154 -0
  450. package/dist/web/lib/browserTelemetry.mjs.map +1 -0
  451. package/dist/web/lib/commands.cjs +176 -0
  452. package/dist/web/lib/commands.cjs.map +1 -0
  453. package/dist/web/lib/commands.d.mts +53 -0
  454. package/dist/web/lib/commands.d.mts.map +1 -0
  455. package/dist/web/lib/commands.mjs +153 -0
  456. package/dist/web/lib/commands.mjs.map +1 -0
  457. package/dist/web/lib/composerSubmissions.cjs +20 -0
  458. package/dist/web/lib/composerSubmissions.cjs.map +1 -0
  459. package/dist/web/lib/composerSubmissions.d.mts +7 -0
  460. package/dist/web/lib/composerSubmissions.d.mts.map +1 -0
  461. package/dist/web/lib/composerSubmissions.mjs +19 -0
  462. package/dist/web/lib/composerSubmissions.mjs.map +1 -0
  463. package/dist/web/lib/composition.cjs +403 -0
  464. package/dist/web/lib/composition.cjs.map +1 -0
  465. package/dist/web/lib/composition.d.mts +137 -0
  466. package/dist/web/lib/composition.d.mts.map +1 -0
  467. package/dist/web/lib/composition.mjs +392 -0
  468. package/dist/web/lib/composition.mjs.map +1 -0
  469. package/dist/web/lib/contextComposition.cjs +132 -0
  470. package/dist/web/lib/contextComposition.cjs.map +1 -0
  471. package/dist/web/lib/contextComposition.d.mts +75 -0
  472. package/dist/web/lib/contextComposition.d.mts.map +1 -0
  473. package/dist/web/lib/contextComposition.mjs +127 -0
  474. package/dist/web/lib/contextComposition.mjs.map +1 -0
  475. package/dist/web/lib/contextDetailApi.cjs +61 -0
  476. package/dist/web/lib/contextDetailApi.cjs.map +1 -0
  477. package/dist/web/lib/contextDetailApi.d.mts +12 -0
  478. package/dist/web/lib/contextDetailApi.d.mts.map +1 -0
  479. package/dist/web/lib/contextDetailApi.mjs +61 -0
  480. package/dist/web/lib/contextDetailApi.mjs.map +1 -0
  481. package/dist/web/lib/dashboardRenderers.cjs +9 -0
  482. package/dist/web/lib/dashboardRenderers.cjs.map +1 -0
  483. package/dist/web/lib/dashboardRenderers.d.mts +12 -0
  484. package/dist/web/lib/dashboardRenderers.d.mts.map +1 -0
  485. package/dist/web/lib/dashboardRenderers.mjs +9 -0
  486. package/dist/web/lib/dashboardRenderers.mjs.map +1 -0
  487. package/dist/web/lib/dashboardRoute.cjs +27 -0
  488. package/dist/web/lib/dashboardRoute.cjs.map +1 -0
  489. package/dist/web/lib/dashboardRoute.d.mts +29 -0
  490. package/dist/web/lib/dashboardRoute.d.mts.map +1 -0
  491. package/dist/web/lib/dashboardRoute.mjs +26 -0
  492. package/dist/web/lib/dashboardRoute.mjs.map +1 -0
  493. package/dist/web/lib/dashboardTranscript.cjs +15 -0
  494. package/dist/web/lib/dashboardTranscript.cjs.map +1 -0
  495. package/dist/web/lib/dashboardTranscript.d.mts +6 -0
  496. package/dist/web/lib/dashboardTranscript.d.mts.map +1 -0
  497. package/dist/web/lib/dashboardTranscript.mjs +14 -0
  498. package/dist/web/lib/dashboardTranscript.mjs.map +1 -0
  499. package/dist/web/lib/devProxyApi.cjs +74 -0
  500. package/dist/web/lib/devProxyApi.cjs.map +1 -0
  501. package/dist/web/lib/devProxyApi.d.mts +21 -0
  502. package/dist/web/lib/devProxyApi.d.mts.map +1 -0
  503. package/dist/web/lib/devProxyApi.mjs +72 -0
  504. package/dist/web/lib/devProxyApi.mjs.map +1 -0
  505. package/dist/web/lib/fileMentions.cjs +30 -0
  506. package/dist/web/lib/fileMentions.cjs.map +1 -0
  507. package/dist/web/lib/fileMentions.d.mts +13 -0
  508. package/dist/web/lib/fileMentions.d.mts.map +1 -0
  509. package/dist/web/lib/fileMentions.mjs +29 -0
  510. package/dist/web/lib/fileMentions.mjs.map +1 -0
  511. package/dist/web/lib/hubApi.cjs +283 -0
  512. package/dist/web/lib/hubApi.cjs.map +1 -0
  513. package/dist/web/lib/hubApi.d.mts +109 -0
  514. package/dist/web/lib/hubApi.d.mts.map +1 -0
  515. package/dist/web/lib/hubApi.mjs +268 -0
  516. package/dist/web/lib/hubApi.mjs.map +1 -0
  517. package/dist/web/lib/leaderTree.cjs +150 -0
  518. package/dist/web/lib/leaderTree.cjs.map +1 -0
  519. package/dist/web/lib/leaderTree.d.mts +41 -0
  520. package/dist/web/lib/leaderTree.d.mts.map +1 -0
  521. package/dist/web/lib/leaderTree.mjs +149 -0
  522. package/dist/web/lib/leaderTree.mjs.map +1 -0
  523. package/dist/web/lib/livePush.cjs +97 -0
  524. package/dist/web/lib/livePush.cjs.map +1 -0
  525. package/dist/web/lib/livePush.d.mts +10 -0
  526. package/dist/web/lib/livePush.d.mts.map +1 -0
  527. package/dist/web/lib/livePush.mjs +94 -0
  528. package/dist/web/lib/livePush.mjs.map +1 -0
  529. package/dist/web/lib/modelContextAdapter.cjs +63 -0
  530. package/dist/web/lib/modelContextAdapter.cjs.map +1 -0
  531. package/dist/web/lib/modelContextAdapter.d.mts +11 -0
  532. package/dist/web/lib/modelContextAdapter.d.mts.map +1 -0
  533. package/dist/web/lib/modelContextAdapter.mjs +62 -0
  534. package/dist/web/lib/modelContextAdapter.mjs.map +1 -0
  535. package/dist/web/lib/piTransport.cjs +103 -0
  536. package/dist/web/lib/piTransport.cjs.map +1 -0
  537. package/dist/web/lib/piTransport.d.mts +8 -0
  538. package/dist/web/lib/piTransport.d.mts.map +1 -0
  539. package/dist/web/lib/piTransport.mjs +102 -0
  540. package/dist/web/lib/piTransport.mjs.map +1 -0
  541. package/dist/web/lib/pluginCompositions.cjs +57 -0
  542. package/dist/web/lib/pluginCompositions.cjs.map +1 -0
  543. package/dist/web/lib/pluginCompositions.d.mts +37 -0
  544. package/dist/web/lib/pluginCompositions.d.mts.map +1 -0
  545. package/dist/web/lib/pluginCompositions.mjs +52 -0
  546. package/dist/web/lib/pluginCompositions.mjs.map +1 -0
  547. package/dist/web/lib/pluginRegistry.cjs +675 -0
  548. package/dist/web/lib/pluginRegistry.cjs.map +1 -0
  549. package/dist/web/lib/pluginRegistry.d.mts +155 -0
  550. package/dist/web/lib/pluginRegistry.d.mts.map +1 -0
  551. package/dist/web/lib/pluginRegistry.mjs +633 -0
  552. package/dist/web/lib/pluginRegistry.mjs.map +1 -0
  553. package/dist/web/lib/pluginScopes.cjs +48 -0
  554. package/dist/web/lib/pluginScopes.cjs.map +1 -0
  555. package/dist/web/lib/pluginScopes.d.mts +8 -0
  556. package/dist/web/lib/pluginScopes.d.mts.map +1 -0
  557. package/dist/web/lib/pluginScopes.mjs +47 -0
  558. package/dist/web/lib/pluginScopes.mjs.map +1 -0
  559. package/dist/web/lib/pluginSlotProps.cjs +83 -0
  560. package/dist/web/lib/pluginSlotProps.cjs.map +1 -0
  561. package/dist/web/lib/pluginSlotProps.d.mts +21 -0
  562. package/dist/web/lib/pluginSlotProps.d.mts.map +1 -0
  563. package/dist/web/lib/pluginSlotProps.mjs +82 -0
  564. package/dist/web/lib/pluginSlotProps.mjs.map +1 -0
  565. package/dist/web/lib/promptFocus.cjs +30 -0
  566. package/dist/web/lib/promptFocus.cjs.map +1 -0
  567. package/dist/web/lib/promptFocus.d.mts +7 -0
  568. package/dist/web/lib/promptFocus.d.mts.map +1 -0
  569. package/dist/web/lib/promptFocus.mjs +29 -0
  570. package/dist/web/lib/promptFocus.mjs.map +1 -0
  571. package/dist/web/lib/protocolHubSocket.cjs +107 -0
  572. package/dist/web/lib/protocolHubSocket.cjs.map +1 -0
  573. package/dist/web/lib/protocolHubSocket.d.mts +18 -0
  574. package/dist/web/lib/protocolHubSocket.d.mts.map +1 -0
  575. package/dist/web/lib/protocolHubSocket.mjs +107 -0
  576. package/dist/web/lib/protocolHubSocket.mjs.map +1 -0
  577. package/dist/web/lib/protocolTimeline.cjs +86 -0
  578. package/dist/web/lib/protocolTimeline.cjs.map +1 -0
  579. package/dist/web/lib/protocolTimeline.d.mts +9 -0
  580. package/dist/web/lib/protocolTimeline.d.mts.map +1 -0
  581. package/dist/web/lib/protocolTimeline.mjs +85 -0
  582. package/dist/web/lib/protocolTimeline.mjs.map +1 -0
  583. package/dist/web/lib/qrMatrix.cjs +37 -0
  584. package/dist/web/lib/qrMatrix.cjs.map +1 -0
  585. package/dist/web/lib/qrMatrix.d.mts +5 -0
  586. package/dist/web/lib/qrMatrix.d.mts.map +1 -0
  587. package/dist/web/lib/qrMatrix.mjs +35 -0
  588. package/dist/web/lib/qrMatrix.mjs.map +1 -0
  589. package/dist/web/lib/remoteApi.cjs +100 -0
  590. package/dist/web/lib/remoteApi.cjs.map +1 -0
  591. package/dist/web/lib/remoteApi.d.mts +45 -0
  592. package/dist/web/lib/remoteApi.d.mts.map +1 -0
  593. package/dist/web/lib/remoteApi.mjs +92 -0
  594. package/dist/web/lib/remoteApi.mjs.map +1 -0
  595. package/dist/web/lib/sealedSession.cjs +81 -0
  596. package/dist/web/lib/sealedSession.cjs.map +1 -0
  597. package/dist/web/lib/sealedSession.d.mts +24 -0
  598. package/dist/web/lib/sealedSession.d.mts.map +1 -0
  599. package/dist/web/lib/sealedSession.mjs +75 -0
  600. package/dist/web/lib/sealedSession.mjs.map +1 -0
  601. package/dist/web/lib/sessionActivityRenderer.cjs +19 -0
  602. package/dist/web/lib/sessionActivityRenderer.cjs.map +1 -0
  603. package/dist/web/lib/sessionActivityRenderer.d.mts +10 -0
  604. package/dist/web/lib/sessionActivityRenderer.d.mts.map +1 -0
  605. package/dist/web/lib/sessionActivityRenderer.mjs +17 -0
  606. package/dist/web/lib/sessionActivityRenderer.mjs.map +1 -0
  607. package/dist/web/lib/sessionAsset.cjs +45 -0
  608. package/dist/web/lib/sessionAsset.cjs.map +1 -0
  609. package/dist/web/lib/sessionAsset.d.mts +17 -0
  610. package/dist/web/lib/sessionAsset.d.mts.map +1 -0
  611. package/dist/web/lib/sessionAsset.mjs +44 -0
  612. package/dist/web/lib/sessionAsset.mjs.map +1 -0
  613. package/dist/web/lib/sessionAvatar.cjs +18 -0
  614. package/dist/web/lib/sessionAvatar.cjs.map +1 -0
  615. package/dist/web/lib/sessionAvatar.d.mts +10 -0
  616. package/dist/web/lib/sessionAvatar.d.mts.map +1 -0
  617. package/dist/web/lib/sessionAvatar.mjs +18 -0
  618. package/dist/web/lib/sessionAvatar.mjs.map +1 -0
  619. package/dist/web/lib/sessionMcpApi.cjs +120 -0
  620. package/dist/web/lib/sessionMcpApi.cjs.map +1 -0
  621. package/dist/web/lib/sessionMcpApi.d.mts +27 -0
  622. package/dist/web/lib/sessionMcpApi.d.mts.map +1 -0
  623. package/dist/web/lib/sessionMcpApi.mjs +114 -0
  624. package/dist/web/lib/sessionMcpApi.mjs.map +1 -0
  625. package/dist/web/lib/sessionMcpPrompt.cjs +24 -0
  626. package/dist/web/lib/sessionMcpPrompt.cjs.map +1 -0
  627. package/dist/web/lib/sessionMcpPrompt.mjs +23 -0
  628. package/dist/web/lib/sessionMcpPrompt.mjs.map +1 -0
  629. package/dist/web/lib/sessionModel.cjs +970 -0
  630. package/dist/web/lib/sessionModel.cjs.map +1 -0
  631. package/dist/web/lib/sessionModel.d.mts +254 -0
  632. package/dist/web/lib/sessionModel.d.mts.map +1 -0
  633. package/dist/web/lib/sessionModel.mjs +958 -0
  634. package/dist/web/lib/sessionModel.mjs.map +1 -0
  635. package/dist/web/lib/sessionProtocolCommands.cjs +196 -0
  636. package/dist/web/lib/sessionProtocolCommands.cjs.map +1 -0
  637. package/dist/web/lib/sessionProtocolCommands.d.mts +15 -0
  638. package/dist/web/lib/sessionProtocolCommands.d.mts.map +1 -0
  639. package/dist/web/lib/sessionProtocolCommands.mjs +193 -0
  640. package/dist/web/lib/sessionProtocolCommands.mjs.map +1 -0
  641. package/dist/web/lib/sessionRailModel.cjs +107 -0
  642. package/dist/web/lib/sessionRailModel.cjs.map +1 -0
  643. package/dist/web/lib/sessionRailModel.d.mts +38 -0
  644. package/dist/web/lib/sessionRailModel.d.mts.map +1 -0
  645. package/dist/web/lib/sessionRailModel.mjs +104 -0
  646. package/dist/web/lib/sessionRailModel.mjs.map +1 -0
  647. package/dist/web/lib/sessionSummary.cjs +58 -0
  648. package/dist/web/lib/sessionSummary.cjs.map +1 -0
  649. package/dist/web/lib/sessionSummary.d.mts +39 -0
  650. package/dist/web/lib/sessionSummary.d.mts.map +1 -0
  651. package/dist/web/lib/sessionSummary.mjs +54 -0
  652. package/dist/web/lib/sessionSummary.mjs.map +1 -0
  653. package/dist/web/lib/sessionTranscriptRenderer.cjs +19 -0
  654. package/dist/web/lib/sessionTranscriptRenderer.cjs.map +1 -0
  655. package/dist/web/lib/sessionTranscriptRenderer.d.mts +11 -0
  656. package/dist/web/lib/sessionTranscriptRenderer.d.mts.map +1 -0
  657. package/dist/web/lib/sessionTranscriptRenderer.mjs +17 -0
  658. package/dist/web/lib/sessionTranscriptRenderer.mjs.map +1 -0
  659. package/dist/web/lib/settingsApi.cjs +237 -0
  660. package/dist/web/lib/settingsApi.cjs.map +1 -0
  661. package/dist/web/lib/settingsApi.d.mts +57 -0
  662. package/dist/web/lib/settingsApi.d.mts.map +1 -0
  663. package/dist/web/lib/settingsApi.mjs +230 -0
  664. package/dist/web/lib/settingsApi.mjs.map +1 -0
  665. package/dist/web/lib/settingsDraft.cjs +48 -0
  666. package/dist/web/lib/settingsDraft.cjs.map +1 -0
  667. package/dist/web/lib/settingsDraft.d.mts +28 -0
  668. package/dist/web/lib/settingsDraft.d.mts.map +1 -0
  669. package/dist/web/lib/settingsDraft.mjs +45 -0
  670. package/dist/web/lib/settingsDraft.mjs.map +1 -0
  671. package/dist/web/lib/settingsSections.cjs +108 -0
  672. package/dist/web/lib/settingsSections.cjs.map +1 -0
  673. package/dist/web/lib/settingsSections.d.mts +36 -0
  674. package/dist/web/lib/settingsSections.d.mts.map +1 -0
  675. package/dist/web/lib/settingsSections.mjs +105 -0
  676. package/dist/web/lib/settingsSections.mjs.map +1 -0
  677. package/dist/web/lib/statusLine.cjs +82 -0
  678. package/dist/web/lib/statusLine.cjs.map +1 -0
  679. package/dist/web/lib/statusLine.d.mts +27 -0
  680. package/dist/web/lib/statusLine.d.mts.map +1 -0
  681. package/dist/web/lib/statusLine.mjs +79 -0
  682. package/dist/web/lib/statusLine.mjs.map +1 -0
  683. package/dist/web/lib/stepUp.cjs +41 -0
  684. package/dist/web/lib/stepUp.cjs.map +1 -0
  685. package/dist/web/lib/stepUp.d.mts +18 -0
  686. package/dist/web/lib/stepUp.d.mts.map +1 -0
  687. package/dist/web/lib/stepUp.mjs +41 -0
  688. package/dist/web/lib/stepUp.mjs.map +1 -0
  689. package/dist/web/lib/templateCatalog.cjs +123 -0
  690. package/dist/web/lib/templateCatalog.cjs.map +1 -0
  691. package/dist/web/lib/templateCatalog.d.mts +38 -0
  692. package/dist/web/lib/templateCatalog.d.mts.map +1 -0
  693. package/dist/web/lib/templateCatalog.mjs +118 -0
  694. package/dist/web/lib/templateCatalog.mjs.map +1 -0
  695. package/dist/web/lib/threadRenderer.cjs +25 -0
  696. package/dist/web/lib/threadRenderer.cjs.map +1 -0
  697. package/dist/web/lib/threadRenderer.d.mts +17 -0
  698. package/dist/web/lib/threadRenderer.d.mts.map +1 -0
  699. package/dist/web/lib/threadRenderer.mjs +23 -0
  700. package/dist/web/lib/threadRenderer.mjs.map +1 -0
  701. package/dist/web/lib/timelineGroups.cjs +83 -0
  702. package/dist/web/lib/timelineGroups.cjs.map +1 -0
  703. package/dist/web/lib/timelineGroups.d.mts +36 -0
  704. package/dist/web/lib/timelineGroups.d.mts.map +1 -0
  705. package/dist/web/lib/timelineGroups.mjs +81 -0
  706. package/dist/web/lib/timelineGroups.mjs.map +1 -0
  707. package/dist/web/lib/toolCompletionTabs.cjs +98 -0
  708. package/dist/web/lib/toolCompletionTabs.cjs.map +1 -0
  709. package/dist/web/lib/toolCompletionTabs.d.mts +14 -0
  710. package/dist/web/lib/toolCompletionTabs.d.mts.map +1 -0
  711. package/dist/web/lib/toolCompletionTabs.mjs +98 -0
  712. package/dist/web/lib/toolCompletionTabs.mjs.map +1 -0
  713. package/dist/web/lib/toolMessageProps.cjs +19 -0
  714. package/dist/web/lib/toolMessageProps.cjs.map +1 -0
  715. package/dist/web/lib/toolMessageProps.d.mts +7 -0
  716. package/dist/web/lib/toolMessageProps.d.mts.map +1 -0
  717. package/dist/web/lib/toolMessageProps.mjs +19 -0
  718. package/dist/web/lib/toolMessageProps.mjs.map +1 -0
  719. package/dist/web/lib/toolPrompt.cjs +44 -0
  720. package/dist/web/lib/toolPrompt.cjs.map +1 -0
  721. package/dist/web/lib/toolPrompt.d.mts +34 -0
  722. package/dist/web/lib/toolPrompt.d.mts.map +1 -0
  723. package/dist/web/lib/toolPrompt.mjs +44 -0
  724. package/dist/web/lib/toolPrompt.mjs.map +1 -0
  725. package/dist/web/lib/transport.cjs +57 -0
  726. package/dist/web/lib/transport.cjs.map +1 -0
  727. package/dist/web/lib/transport.d.mts +40 -0
  728. package/dist/web/lib/transport.d.mts.map +1 -0
  729. package/dist/web/lib/transport.mjs +50 -0
  730. package/dist/web/lib/transport.mjs.map +1 -0
  731. package/dist/web/lib/useSessionMcp.cjs +65 -0
  732. package/dist/web/lib/useSessionMcp.cjs.map +1 -0
  733. package/dist/web/lib/useSessionMcp.d.mts +15 -0
  734. package/dist/web/lib/useSessionMcp.d.mts.map +1 -0
  735. package/dist/web/lib/useSessionMcp.mjs +65 -0
  736. package/dist/web/lib/useSessionMcp.mjs.map +1 -0
  737. package/dist/web/lib/webauthnClient.cjs +110 -0
  738. package/dist/web/lib/webauthnClient.cjs.map +1 -0
  739. package/dist/web/lib/webauthnClient.d.mts +32 -0
  740. package/dist/web/lib/webauthnClient.d.mts.map +1 -0
  741. package/dist/web/lib/webauthnClient.mjs +106 -0
  742. package/dist/web/lib/webauthnClient.mjs.map +1 -0
  743. package/dist/web/lib/webmcpSimulator.cjs +105 -0
  744. package/dist/web/lib/webmcpSimulator.cjs.map +1 -0
  745. package/dist/web/lib/webmcpSimulator.mjs +105 -0
  746. package/dist/web/lib/webmcpSimulator.mjs.map +1 -0
  747. package/dist/web/stores/captureStore.cjs +137 -0
  748. package/dist/web/stores/captureStore.cjs.map +1 -0
  749. package/dist/web/stores/captureStore.d.mts +13 -0
  750. package/dist/web/stores/captureStore.d.mts.map +1 -0
  751. package/dist/web/stores/captureStore.mjs +133 -0
  752. package/dist/web/stores/captureStore.mjs.map +1 -0
  753. package/dist/web/stores/composerStore.cjs +390 -0
  754. package/dist/web/stores/composerStore.cjs.map +1 -0
  755. package/dist/web/stores/composerStore.d.mts +101 -0
  756. package/dist/web/stores/composerStore.d.mts.map +1 -0
  757. package/dist/web/stores/composerStore.mjs +370 -0
  758. package/dist/web/stores/composerStore.mjs.map +1 -0
  759. package/dist/web/stores/composerSubmissionStore.cjs +88 -0
  760. package/dist/web/stores/composerSubmissionStore.cjs.map +1 -0
  761. package/dist/web/stores/composerSubmissionStore.d.mts +11 -0
  762. package/dist/web/stores/composerSubmissionStore.d.mts.map +1 -0
  763. package/dist/web/stores/composerSubmissionStore.mjs +87 -0
  764. package/dist/web/stores/composerSubmissionStore.mjs.map +1 -0
  765. package/dist/web/stores/dashboardStateStore.cjs +35 -0
  766. package/dist/web/stores/dashboardStateStore.cjs.map +1 -0
  767. package/dist/web/stores/dashboardStateStore.d.mts +11 -0
  768. package/dist/web/stores/dashboardStateStore.d.mts.map +1 -0
  769. package/dist/web/stores/dashboardStateStore.mjs +33 -0
  770. package/dist/web/stores/dashboardStateStore.mjs.map +1 -0
  771. package/dist/web/stores/devProxyStore.cjs +76 -0
  772. package/dist/web/stores/devProxyStore.cjs.map +1 -0
  773. package/dist/web/stores/devProxyStore.d.mts +25 -0
  774. package/dist/web/stores/devProxyStore.d.mts.map +1 -0
  775. package/dist/web/stores/devProxyStore.mjs +73 -0
  776. package/dist/web/stores/devProxyStore.mjs.map +1 -0
  777. package/dist/web/stores/dialogDraftStore.cjs +38 -0
  778. package/dist/web/stores/dialogDraftStore.cjs.map +1 -0
  779. package/dist/web/stores/dialogDraftStore.d.mts +13 -0
  780. package/dist/web/stores/dialogDraftStore.d.mts.map +1 -0
  781. package/dist/web/stores/dialogDraftStore.mjs +36 -0
  782. package/dist/web/stores/dialogDraftStore.mjs.map +1 -0
  783. package/dist/web/stores/fileLinkModesStore.cjs +20 -0
  784. package/dist/web/stores/fileLinkModesStore.cjs.map +1 -0
  785. package/dist/web/stores/fileLinkModesStore.d.mts +5 -0
  786. package/dist/web/stores/fileLinkModesStore.d.mts.map +1 -0
  787. package/dist/web/stores/fileLinkModesStore.mjs +20 -0
  788. package/dist/web/stores/fileLinkModesStore.mjs.map +1 -0
  789. package/dist/web/stores/menuStore.cjs +85 -0
  790. package/dist/web/stores/menuStore.cjs.map +1 -0
  791. package/dist/web/stores/menuStore.d.mts +42 -0
  792. package/dist/web/stores/menuStore.d.mts.map +1 -0
  793. package/dist/web/stores/menuStore.mjs +79 -0
  794. package/dist/web/stores/menuStore.mjs.map +1 -0
  795. package/dist/web/stores/newSessionStore.cjs +93 -0
  796. package/dist/web/stores/newSessionStore.cjs.map +1 -0
  797. package/dist/web/stores/newSessionStore.d.mts +30 -0
  798. package/dist/web/stores/newSessionStore.d.mts.map +1 -0
  799. package/dist/web/stores/newSessionStore.mjs +86 -0
  800. package/dist/web/stores/newSessionStore.mjs.map +1 -0
  801. package/dist/web/stores/pagedTranscriptStore.cjs +235 -0
  802. package/dist/web/stores/pagedTranscriptStore.cjs.map +1 -0
  803. package/dist/web/stores/pagedTranscriptStore.d.mts +12 -0
  804. package/dist/web/stores/pagedTranscriptStore.d.mts.map +1 -0
  805. package/dist/web/stores/pagedTranscriptStore.mjs +235 -0
  806. package/dist/web/stores/pagedTranscriptStore.mjs.map +1 -0
  807. package/dist/web/stores/paletteStore.cjs +37 -0
  808. package/dist/web/stores/paletteStore.cjs.map +1 -0
  809. package/dist/web/stores/paletteStore.d.mts +14 -0
  810. package/dist/web/stores/paletteStore.d.mts.map +1 -0
  811. package/dist/web/stores/paletteStore.mjs +34 -0
  812. package/dist/web/stores/paletteStore.mjs.map +1 -0
  813. package/dist/web/stores/railDialogStore.cjs +105 -0
  814. package/dist/web/stores/railDialogStore.cjs.map +1 -0
  815. package/dist/web/stores/railDialogStore.d.mts +32 -0
  816. package/dist/web/stores/railDialogStore.d.mts.map +1 -0
  817. package/dist/web/stores/railDialogStore.mjs +97 -0
  818. package/dist/web/stores/railDialogStore.mjs.map +1 -0
  819. package/dist/web/stores/remoteAccessStore.cjs +216 -0
  820. package/dist/web/stores/remoteAccessStore.cjs.map +1 -0
  821. package/dist/web/stores/remoteAccessStore.d.mts +48 -0
  822. package/dist/web/stores/remoteAccessStore.d.mts.map +1 -0
  823. package/dist/web/stores/remoteAccessStore.mjs +202 -0
  824. package/dist/web/stores/remoteAccessStore.mjs.map +1 -0
  825. package/dist/web/stores/sessionChannelHoldsStore.cjs +43 -0
  826. package/dist/web/stores/sessionChannelHoldsStore.cjs.map +1 -0
  827. package/dist/web/stores/sessionChannelHoldsStore.d.mts +9 -0
  828. package/dist/web/stores/sessionChannelHoldsStore.d.mts.map +1 -0
  829. package/dist/web/stores/sessionChannelHoldsStore.mjs +42 -0
  830. package/dist/web/stores/sessionChannelHoldsStore.mjs.map +1 -0
  831. package/dist/web/stores/sessionStore.cjs +610 -0
  832. package/dist/web/stores/sessionStore.cjs.map +1 -0
  833. package/dist/web/stores/sessionStore.d.mts +116 -0
  834. package/dist/web/stores/sessionStore.d.mts.map +1 -0
  835. package/dist/web/stores/sessionStore.mjs +568 -0
  836. package/dist/web/stores/sessionStore.mjs.map +1 -0
  837. package/dist/web/stores/sessionsStore.cjs +272 -0
  838. package/dist/web/stores/sessionsStore.cjs.map +1 -0
  839. package/dist/web/stores/sessionsStore.d.mts +74 -0
  840. package/dist/web/stores/sessionsStore.d.mts.map +1 -0
  841. package/dist/web/stores/sessionsStore.mjs +257 -0
  842. package/dist/web/stores/sessionsStore.mjs.map +1 -0
  843. package/dist/web/stores/settingsDraftStore.cjs +138 -0
  844. package/dist/web/stores/settingsDraftStore.cjs.map +1 -0
  845. package/dist/web/stores/settingsDraftStore.d.mts +27 -0
  846. package/dist/web/stores/settingsDraftStore.d.mts.map +1 -0
  847. package/dist/web/stores/settingsDraftStore.mjs +132 -0
  848. package/dist/web/stores/settingsDraftStore.mjs.map +1 -0
  849. package/dist/web/stores/templateStore.cjs +136 -0
  850. package/dist/web/stores/templateStore.cjs.map +1 -0
  851. package/dist/web/stores/templateStore.d.mts +20 -0
  852. package/dist/web/stores/templateStore.d.mts.map +1 -0
  853. package/dist/web/stores/templateStore.mjs +131 -0
  854. package/dist/web/stores/templateStore.mjs.map +1 -0
  855. package/dist/web/stores/themeStore.cjs +42 -0
  856. package/dist/web/stores/themeStore.cjs.map +1 -0
  857. package/dist/web/stores/themeStore.d.mts +20 -0
  858. package/dist/web/stores/themeStore.d.mts.map +1 -0
  859. package/dist/web/stores/themeStore.mjs +39 -0
  860. package/dist/web/stores/themeStore.mjs.map +1 -0
  861. package/dist/web/stores/threadStore.cjs +122 -0
  862. package/dist/web/stores/threadStore.cjs.map +1 -0
  863. package/dist/web/stores/threadStore.d.mts +24 -0
  864. package/dist/web/stores/threadStore.d.mts.map +1 -0
  865. package/dist/web/stores/threadStore.mjs +114 -0
  866. package/dist/web/stores/threadStore.mjs.map +1 -0
  867. package/dist/web/stores/toolPromptStore.cjs +15 -0
  868. package/dist/web/stores/toolPromptStore.cjs.map +1 -0
  869. package/dist/web/stores/toolPromptStore.d.mts +23 -0
  870. package/dist/web/stores/toolPromptStore.d.mts.map +1 -0
  871. package/dist/web/stores/toolPromptStore.mjs +14 -0
  872. package/dist/web/stores/toolPromptStore.mjs.map +1 -0
  873. package/dist/web/stores/transientTabsStore.cjs +66 -0
  874. package/dist/web/stores/transientTabsStore.cjs.map +1 -0
  875. package/dist/web/stores/transientTabsStore.d.mts +21 -0
  876. package/dist/web/stores/transientTabsStore.d.mts.map +1 -0
  877. package/dist/web/stores/transientTabsStore.mjs +59 -0
  878. package/dist/web/stores/transientTabsStore.mjs.map +1 -0
  879. package/dist/web/stores/uiStore.cjs +47 -0
  880. package/dist/web/stores/uiStore.cjs.map +1 -0
  881. package/dist/web/stores/uiStore.d.mts +18 -0
  882. package/dist/web/stores/uiStore.d.mts.map +1 -0
  883. package/dist/web/stores/uiStore.mjs +45 -0
  884. package/dist/web/stores/uiStore.mjs.map +1 -0
  885. package/dist/web/stores/useOpenTab.cjs +31 -0
  886. package/dist/web/stores/useOpenTab.cjs.map +1 -0
  887. package/dist/web/stores/useOpenTab.d.mts +9 -0
  888. package/dist/web/stores/useOpenTab.d.mts.map +1 -0
  889. package/dist/web/stores/useOpenTab.mjs +31 -0
  890. package/dist/web/stores/useOpenTab.mjs.map +1 -0
  891. package/dist/web/stores/usePluginSlotProps.cjs +115 -0
  892. package/dist/web/stores/usePluginSlotProps.cjs.map +1 -0
  893. package/dist/web/stores/usePluginSlotProps.d.mts +6 -0
  894. package/dist/web/stores/usePluginSlotProps.d.mts.map +1 -0
  895. package/dist/web/stores/usePluginSlotProps.mjs +115 -0
  896. package/dist/web/stores/usePluginSlotProps.mjs.map +1 -0
  897. package/dist/web/stores/useToolPrompt.cjs +42 -0
  898. package/dist/web/stores/useToolPrompt.cjs.map +1 -0
  899. package/dist/web/stores/useToolPrompt.d.mts +14 -0
  900. package/dist/web/stores/useToolPrompt.d.mts.map +1 -0
  901. package/dist/web/stores/useToolPrompt.mjs +42 -0
  902. package/dist/web/stores/useToolPrompt.mjs.map +1 -0
  903. package/dist/web/stores/useWebPluginRegistry.cjs +11 -0
  904. package/dist/web/stores/useWebPluginRegistry.cjs.map +1 -0
  905. package/dist/web/stores/useWebPluginRegistry.d.mts +5 -0
  906. package/dist/web/stores/useWebPluginRegistry.d.mts.map +1 -0
  907. package/dist/web/stores/useWebPluginRegistry.mjs +11 -0
  908. package/dist/web/stores/useWebPluginRegistry.mjs.map +1 -0
  909. package/dist/web/stores/workspaceAdmissionStore.cjs +67 -0
  910. package/dist/web/stores/workspaceAdmissionStore.cjs.map +1 -0
  911. package/dist/web/stores/workspaceAdmissionStore.d.mts +24 -0
  912. package/dist/web/stores/workspaceAdmissionStore.d.mts.map +1 -0
  913. package/dist/web/stores/workspaceAdmissionStore.mjs +64 -0
  914. package/dist/web/stores/workspaceAdmissionStore.mjs.map +1 -0
  915. package/dist/web/stores/workspacesStore.cjs +83 -0
  916. package/dist/web/stores/workspacesStore.cjs.map +1 -0
  917. package/dist/web/stores/workspacesStore.d.mts +17 -0
  918. package/dist/web/stores/workspacesStore.d.mts.map +1 -0
  919. package/dist/web/stores/workspacesStore.mjs +78 -0
  920. package/dist/web/stores/workspacesStore.mjs.map +1 -0
  921. package/llms.txt +3 -0
  922. package/package.json +107 -0
  923. package/styles/dashboard.css +2 -0
  924. package/styles/preview.css +3 -0
@@ -0,0 +1,75 @@
1
+ import { ContextProjection, MinorModeProjection } from "../../types/hub.mjs";
2
+ //#region src/web/lib/contextComposition.d.ts
3
+ /**
4
+ * What the session is composed of, as opposed to what it is doing.
5
+ *
6
+ * The activity dock answers "what is running"; this answers "what is loaded and
7
+ * what does carrying it cost". A group is a mode, because a mode is the thing a
8
+ * reader can actually switch off: grouping by source would name the mechanism
9
+ * rather than the decision. Rows inside a group are ordered by source kind so
10
+ * the session's own extensions read before anything a server or plugin added.
11
+ */
12
+ export type ContextGroupKind = 'major' | 'minor' | 'domain' | 'core';
13
+ export type ContextItemSource = 'extension' | 'mcp' | 'plugin' | 'core';
14
+ export interface ContextItem {
15
+ name: string;
16
+ itemKind: 'tool' | 'skill';
17
+ source: ContextItemSource;
18
+ /** The package or server that registered it. */
19
+ owner: string;
20
+ /** Estimated tokens, or null while the runtime has not reported a figure. */
21
+ tokens: number | null;
22
+ active: boolean;
23
+ }
24
+ export interface ContextGroup {
25
+ id: string;
26
+ label: string;
27
+ kind: ContextGroupKind;
28
+ /** A short qualifier shown beside the label, e.g. a pending switch. */
29
+ detail: string;
30
+ items: ContextItem[];
31
+ /** Subtotal across active items, or null when no item carries a figure. */
32
+ tokens: number | null;
33
+ /** What the group's gated items would add if switched on. */
34
+ inactiveTokens: number;
35
+ }
36
+ /**
37
+ * The composition the session is running under.
38
+ *
39
+ * Until the runtime publishes its inventory every group is empty, which is the
40
+ * honest reading: the modes are known from the footer the session already
41
+ * publishes, the tools they brought are not.
42
+ */
43
+ export declare function contextGroups(statuses: Record<string, string>, widgets: readonly string[], projection?: MinorModeProjection | null, items?: readonly ContextItem[], attribution?: Readonly<Record<string, string>>): ContextGroup[];
44
+ /**
45
+ * The runtime's own grouping, used as published.
46
+ *
47
+ * Once the session reports a composition it already knows which mode admitted
48
+ * each tool, which is a join the page cannot make for itself. Re-deriving it
49
+ * here from status strings would only be able to disagree.
50
+ */
51
+ export declare function projectedGroups(projection: ContextProjection): ContextGroup[];
52
+ /** The whole composition's estimate, or null while nothing is priced. */
53
+ export declare function totalTokens(groups: readonly ContextGroup[]): number | null;
54
+ /**
55
+ * One package, server, or plugin inside a mode, with what it costs.
56
+ *
57
+ * A mode can admit two dozen tools from a dozen packages, and a flat list of
58
+ * those names says nothing about which dependency to reconsider. The package is
59
+ * the unit that gets added or removed, so it is the unit worth totalling.
60
+ */
61
+ export interface ContextOwner {
62
+ owner: string;
63
+ /** Every tool a single owner registers shares one source kind. */
64
+ source: ContextItemSource;
65
+ items: ContextItem[];
66
+ tokens: number;
67
+ inactiveTokens: number;
68
+ }
69
+ /** The scope is noise once the rows beneath already name the package. */
70
+ export declare function ownerLabel(owner: string): string;
71
+ export declare function ownersOf(group: ContextGroup): ContextOwner[];
72
+ /** What every gated item across the composition would add if switched on. */
73
+ export declare function inactiveTotal(groups: readonly ContextGroup[]): number;
74
+ //#endregion
75
+ //# sourceMappingURL=contextComposition.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contextComposition.d.mts","names":[],"sources":["../../../src/web/lib/contextComposition.ts"],"mappings":";;;;;;;;;;;YAaY;YAEA;iBAOK;EACf;EACA;EACA,QAAQ;;EAER;;EAEA;EACA;;iBAGe;EACf;EACA;EACA,MAAM;;EAEN;EACA,OAAO;;EAEP;;EAEA;;;;;;;;;wBAyBc,cACd,UAAU,wBACV,4BACA,aAAY,4BACZ,iBAAgB,eAChB,cAAa,SAAS,0BACrB;;;;;;;;wBAkDa,gBAAgB,YAAY,oBAAoB;;wBAoBhD,YAAY,iBAAiB;;;;;;;;iBAY5B;EACf;;EAEA,QAAQ;EACR,OAAO;EACP;EACA;;;wBAIc,WAAW;wBAIX,SAAS,OAAO,eAAe;;wBA2B/B,cAAc,iBAAiB"}
@@ -0,0 +1,127 @@
1
+ import { parseSelection } from "./statusLine.mjs";
2
+ import { minorModes } from "./composition.mjs";
3
+ //#region src/web/lib/contextComposition.ts
4
+ /** Extensions first: they are the session's own, and the eye starts there. */
5
+ const SOURCE_ORDER = {
6
+ extension: 0,
7
+ mcp: 1,
8
+ plugin: 2,
9
+ core: 3
10
+ };
11
+ const KIND_ORDER = {
12
+ major: 0,
13
+ minor: 1,
14
+ domain: 2,
15
+ core: 3
16
+ };
17
+ function bySource(left, right) {
18
+ return SOURCE_ORDER[left.source] - SOURCE_ORDER[right.source] || left.name.localeCompare(right.name);
19
+ }
20
+ /** A group with nothing priced reports null rather than a confident zero. */
21
+ function subtotal(items) {
22
+ const priced = items.filter((item) => item.tokens !== null);
23
+ return priced.length === 0 ? null : priced.reduce((total, item) => total + (item.tokens ?? 0), 0);
24
+ }
25
+ function group(id, label, kind, detail, items) {
26
+ const sorted = [...items].sort(bySource);
27
+ return {
28
+ id,
29
+ label,
30
+ kind,
31
+ detail,
32
+ items: sorted,
33
+ tokens: subtotal(sorted),
34
+ inactiveTokens: 0
35
+ };
36
+ }
37
+ /**
38
+ * The composition the session is running under.
39
+ *
40
+ * Until the runtime publishes its inventory every group is empty, which is the
41
+ * honest reading: the modes are known from the footer the session already
42
+ * publishes, the tools they brought are not.
43
+ */
44
+ function contextGroups(statuses, widgets, projection = null, items = [], attribution = {}) {
45
+ const selection = parseSelection(statuses["doom-major-mode"] ?? "");
46
+ const byGroup = /* @__PURE__ */ new Map();
47
+ for (const item of items) {
48
+ const key = attribution[item.name] ?? "core";
49
+ const bucket = byGroup.get(key);
50
+ if (bucket) bucket.push(item);
51
+ else byGroup.set(key, [item]);
52
+ }
53
+ const take = (key) => byGroup.get(key) ?? [];
54
+ const groups = [];
55
+ if (selection.majorMode) groups.push(group(selection.majorMode, selection.majorMode, "major", selection.pending ? "switching" : "", take(selection.majorMode)));
56
+ for (const mode of minorModes(statuses, widgets, projection)) {
57
+ if (mode.availability !== "on") continue;
58
+ groups.push(group(mode.id, mode.name, "minor", mode.detail, take(mode.id)));
59
+ }
60
+ for (const domain of [...selection.domains].sort((left, right) => left.localeCompare(right))) groups.push(group(domain, domain, "domain", "", take(domain)));
61
+ const orphans = take("core");
62
+ if (orphans.length > 0) groups.push(group("core", "core", "core", "", orphans));
63
+ return groups.sort((left, right) => KIND_ORDER[left.kind] - KIND_ORDER[right.kind]);
64
+ }
65
+ /**
66
+ * The runtime's own grouping, used as published.
67
+ *
68
+ * Once the session reports a composition it already knows which mode admitted
69
+ * each tool, which is a join the page cannot make for itself. Re-deriving it
70
+ * here from status strings would only be able to disagree.
71
+ */
72
+ function projectedGroups(projection) {
73
+ return projection.groups.map((group) => ({
74
+ id: group.id,
75
+ label: group.label,
76
+ kind: group.kind,
77
+ detail: "",
78
+ inactiveTokens: group.inactiveTokens,
79
+ items: group.items.map((item) => ({
80
+ name: item.name,
81
+ itemKind: item.itemKind,
82
+ source: item.source,
83
+ owner: item.owner,
84
+ tokens: item.tokens,
85
+ active: item.active
86
+ })),
87
+ tokens: group.tokens
88
+ }));
89
+ }
90
+ /** The whole composition's estimate, or null while nothing is priced. */
91
+ function totalTokens(groups) {
92
+ const priced = groups.filter((entry) => entry.tokens !== null);
93
+ return priced.length === 0 ? null : priced.reduce((total, entry) => total + (entry.tokens ?? 0), 0);
94
+ }
95
+ /** The scope is noise once the rows beneath already name the package. */
96
+ function ownerLabel(owner) {
97
+ return owner.startsWith("@") ? owner.split("/").pop() ?? owner : owner;
98
+ }
99
+ function ownersOf(group) {
100
+ const byOwner = /* @__PURE__ */ new Map();
101
+ for (const item of group.items) {
102
+ const existing = byOwner.get(item.owner);
103
+ if (existing) {
104
+ existing.items.push(item);
105
+ existing.tokens += item.active ? item.tokens ?? 0 : 0;
106
+ existing.inactiveTokens += item.active ? 0 : item.tokens ?? 0;
107
+ continue;
108
+ }
109
+ byOwner.set(item.owner, {
110
+ owner: item.owner,
111
+ source: item.source,
112
+ items: [item],
113
+ tokens: item.active ? item.tokens ?? 0 : 0,
114
+ inactiveTokens: item.active ? 0 : item.tokens ?? 0
115
+ });
116
+ }
117
+ for (const entry of byOwner.values()) entry.items.sort((left, right) => left.name.localeCompare(right.name));
118
+ return [...byOwner.values()].sort((left, right) => SOURCE_ORDER[left.source] - SOURCE_ORDER[right.source] || ownerLabel(left.owner).localeCompare(ownerLabel(right.owner)));
119
+ }
120
+ /** What every gated item across the composition would add if switched on. */
121
+ function inactiveTotal(groups) {
122
+ return groups.reduce((total, entry) => total + entry.inactiveTokens, 0);
123
+ }
124
+ //#endregion
125
+ export { contextGroups, inactiveTotal, ownerLabel, ownersOf, projectedGroups, totalTokens };
126
+
127
+ //# sourceMappingURL=contextComposition.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contextComposition.mjs","names":[],"sources":["../../../src/web/lib/contextComposition.ts"],"sourcesContent":["import type { ContextProjection, MinorModeProjection } from '../../types/hub';\nimport { minorModes } from './composition';\nimport { parseSelection } from './statusLine';\n\n/**\n * What the session is composed of, as opposed to what it is doing.\n *\n * The activity dock answers \"what is running\"; this answers \"what is loaded and\n * what does carrying it cost\". A group is a mode, because a mode is the thing a\n * reader can actually switch off: grouping by source would name the mechanism\n * rather than the decision. Rows inside a group are ordered by source kind so\n * the session's own extensions read before anything a server or plugin added.\n */\nexport type ContextGroupKind = 'major' | 'minor' | 'domain' | 'core';\n\nexport type ContextItemSource = 'extension' | 'mcp' | 'plugin' | 'core';\n\n/** Extensions first: they are the session's own, and the eye starts there. */\nconst SOURCE_ORDER: Record<ContextItemSource, number> = { extension: 0, mcp: 1, plugin: 2, core: 3 };\n\nconst KIND_ORDER: Record<ContextGroupKind, number> = { major: 0, minor: 1, domain: 2, core: 3 };\n\nexport interface ContextItem {\n name: string;\n itemKind: 'tool' | 'skill';\n source: ContextItemSource;\n /** The package or server that registered it. */\n owner: string;\n /** Estimated tokens, or null while the runtime has not reported a figure. */\n tokens: number | null;\n active: boolean;\n}\n\nexport interface ContextGroup {\n id: string;\n label: string;\n kind: ContextGroupKind;\n /** A short qualifier shown beside the label, e.g. a pending switch. */\n detail: string;\n items: ContextItem[];\n /** Subtotal across active items, or null when no item carries a figure. */\n tokens: number | null;\n /** What the group's gated items would add if switched on. */\n inactiveTokens: number;\n}\n\nfunction bySource(left: ContextItem, right: ContextItem): number {\n return SOURCE_ORDER[left.source] - SOURCE_ORDER[right.source] || left.name.localeCompare(right.name);\n}\n\n/** A group with nothing priced reports null rather than a confident zero. */\nfunction subtotal(items: readonly ContextItem[]): number | null {\n const priced = items.filter((item) => item.tokens !== null);\n return priced.length === 0 ? null : priced.reduce((total, item) => total + (item.tokens ?? 0), 0);\n}\n\nfunction group(id: string, label: string, kind: ContextGroupKind, detail: string, items: ContextItem[]): ContextGroup {\n const sorted = [...items].sort(bySource);\n return { id, label, kind, detail, items: sorted, tokens: subtotal(sorted), inactiveTokens: 0 };\n}\n\n/**\n * The composition the session is running under.\n *\n * Until the runtime publishes its inventory every group is empty, which is the\n * honest reading: the modes are known from the footer the session already\n * publishes, the tools they brought are not.\n */\nexport function contextGroups(\n statuses: Record<string, string>,\n widgets: readonly string[],\n projection: MinorModeProjection | null = null,\n items: readonly ContextItem[] = [],\n attribution: Readonly<Record<string, string>> = {},\n): ContextGroup[] {\n const selection = parseSelection(statuses['doom-major-mode'] ?? '');\n const byGroup = new Map<string, ContextItem[]>();\n for (const item of items) {\n const key = attribution[item.name] ?? 'core';\n const bucket = byGroup.get(key);\n if (bucket) bucket.push(item);\n else byGroup.set(key, [item]);\n }\n const take = (key: string): ContextItem[] => byGroup.get(key) ?? [];\n\n const groups: ContextGroup[] = [];\n\n if (selection.majorMode) {\n groups.push(\n group(\n selection.majorMode,\n selection.majorMode,\n 'major',\n selection.pending ? 'switching' : '',\n take(selection.majorMode),\n ),\n );\n }\n\n for (const mode of minorModes(statuses, widgets, projection)) {\n if (mode.availability !== 'on') continue;\n groups.push(group(mode.id, mode.name, 'minor', mode.detail, take(mode.id)));\n }\n\n for (const domain of [...selection.domains].sort((left, right) => left.localeCompare(right))) {\n groups.push(group(domain, domain, 'domain', '', take(domain)));\n }\n\n // Pi's own tools, and anything the runtime could not attribute. An\n // unattributed tool is still costing context, so it is listed rather than\n // dropped for failing to name a sponsor.\n const orphans = take('core');\n if (orphans.length > 0) groups.push(group('core', 'core', 'core', '', orphans));\n\n return groups.sort((left, right) => KIND_ORDER[left.kind] - KIND_ORDER[right.kind]);\n}\n\n/**\n * The runtime's own grouping, used as published.\n *\n * Once the session reports a composition it already knows which mode admitted\n * each tool, which is a join the page cannot make for itself. Re-deriving it\n * here from status strings would only be able to disagree.\n */\nexport function projectedGroups(projection: ContextProjection): ContextGroup[] {\n return projection.groups.map((group) => ({\n id: group.id,\n label: group.label,\n kind: group.kind,\n detail: '',\n inactiveTokens: group.inactiveTokens,\n items: group.items.map((item) => ({\n name: item.name,\n itemKind: item.itemKind,\n source: item.source,\n owner: item.owner,\n tokens: item.tokens,\n active: item.active,\n })),\n tokens: group.tokens,\n }));\n}\n\n/** The whole composition's estimate, or null while nothing is priced. */\nexport function totalTokens(groups: readonly ContextGroup[]): number | null {\n const priced = groups.filter((entry) => entry.tokens !== null);\n return priced.length === 0 ? null : priced.reduce((total, entry) => total + (entry.tokens ?? 0), 0);\n}\n\n/**\n * One package, server, or plugin inside a mode, with what it costs.\n *\n * A mode can admit two dozen tools from a dozen packages, and a flat list of\n * those names says nothing about which dependency to reconsider. The package is\n * the unit that gets added or removed, so it is the unit worth totalling.\n */\nexport interface ContextOwner {\n owner: string;\n /** Every tool a single owner registers shares one source kind. */\n source: ContextItemSource;\n items: ContextItem[];\n tokens: number;\n inactiveTokens: number;\n}\n\n/** The scope is noise once the rows beneath already name the package. */\nexport function ownerLabel(owner: string): string {\n return owner.startsWith('@') ? (owner.split('/').pop() ?? owner) : owner;\n}\n\nexport function ownersOf(group: ContextGroup): ContextOwner[] {\n const byOwner = new Map<string, ContextOwner>();\n for (const item of group.items) {\n const existing = byOwner.get(item.owner);\n if (existing) {\n existing.items.push(item);\n existing.tokens += item.active ? (item.tokens ?? 0) : 0;\n existing.inactiveTokens += item.active ? 0 : (item.tokens ?? 0);\n continue;\n }\n byOwner.set(item.owner, {\n owner: item.owner,\n source: item.source,\n items: [item],\n tokens: item.active ? (item.tokens ?? 0) : 0,\n inactiveTokens: item.active ? 0 : (item.tokens ?? 0),\n });\n }\n for (const entry of byOwner.values()) entry.items.sort((left, right) => left.name.localeCompare(right.name));\n return [...byOwner.values()].sort(\n (left, right) =>\n SOURCE_ORDER[left.source] - SOURCE_ORDER[right.source] ||\n ownerLabel(left.owner).localeCompare(ownerLabel(right.owner)),\n );\n}\n\n/** What every gated item across the composition would add if switched on. */\nexport function inactiveTotal(groups: readonly ContextGroup[]): number {\n return groups.reduce((total, entry) => total + entry.inactiveTokens, 0);\n}\n"],"mappings":";;;;AAkBA,MAAM,eAAkD;CAAE,WAAW;CAAG,KAAK;CAAG,QAAQ;CAAG,MAAM;AAAE;AAEnG,MAAM,aAA+C;CAAE,OAAO;CAAG,OAAO;CAAG,QAAQ;CAAG,MAAM;AAAE;AA0B9F,SAAS,SAAS,MAAmB,OAA4B;CAC/D,OAAO,aAAa,KAAK,UAAU,aAAa,MAAM,WAAW,KAAK,KAAK,cAAc,MAAM,IAAI;AACrG;;AAGA,SAAS,SAAS,OAA8C;CAC9D,MAAM,SAAS,MAAM,QAAQ,SAAS,KAAK,WAAW,IAAI;CAC1D,OAAO,OAAO,WAAW,IAAI,OAAO,OAAO,QAAQ,OAAO,SAAS,SAAS,KAAK,UAAU,IAAI,CAAC;AAClG;AAEA,SAAS,MAAM,IAAY,OAAe,MAAwB,QAAgB,OAAoC;CACpH,MAAM,SAAS,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,QAAQ;CACvC,OAAO;EAAE;EAAI;EAAO;EAAM;EAAQ,OAAO;EAAQ,QAAQ,SAAS,MAAM;EAAG,gBAAgB;CAAE;AAC/F;;;;;;;;AASA,SAAgB,cACd,UACA,SACA,aAAyC,MACzC,QAAgC,CAAC,GACjC,cAAgD,CAAC,GACjC;CAChB,MAAM,YAAY,eAAe,SAAS,sBAAsB,EAAE;CAClE,MAAM,0BAAU,IAAI,IAA2B;CAC/C,KAAK,MAAM,QAAQ,OAAO;EACxB,MAAM,MAAM,YAAY,KAAK,SAAS;EACtC,MAAM,SAAS,QAAQ,IAAI,GAAG;EAC9B,IAAI,QAAQ,OAAO,KAAK,IAAI;OACvB,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC;CAC9B;CACA,MAAM,QAAQ,QAA+B,QAAQ,IAAI,GAAG,KAAK,CAAC;CAElE,MAAM,SAAyB,CAAC;CAEhC,IAAI,UAAU,WACZ,OAAO,KACL,MACE,UAAU,WACV,UAAU,WACV,SACA,UAAU,UAAU,cAAc,IAClC,KAAK,UAAU,SAAS,CAC1B,CACF;CAGF,KAAK,MAAM,QAAQ,WAAW,UAAU,SAAS,UAAU,GAAG;EAC5D,IAAI,KAAK,iBAAiB,MAAM;EAChC,OAAO,KAAK,MAAM,KAAK,IAAI,KAAK,MAAM,SAAS,KAAK,QAAQ,KAAK,KAAK,EAAE,CAAC,CAAC;CAC5E;CAEA,KAAK,MAAM,UAAU,CAAC,GAAG,UAAU,OAAO,CAAC,CAAC,MAAM,MAAM,UAAU,KAAK,cAAc,KAAK,CAAC,GACzF,OAAO,KAAK,MAAM,QAAQ,QAAQ,UAAU,IAAI,KAAK,MAAM,CAAC,CAAC;CAM/D,MAAM,UAAU,KAAK,MAAM;CAC3B,IAAI,QAAQ,SAAS,GAAG,OAAO,KAAK,MAAM,QAAQ,QAAQ,QAAQ,IAAI,OAAO,CAAC;CAE9E,OAAO,OAAO,MAAM,MAAM,UAAU,WAAW,KAAK,QAAQ,WAAW,MAAM,KAAK;AACpF;;;;;;;;AASA,SAAgB,gBAAgB,YAA+C;CAC7E,OAAO,WAAW,OAAO,KAAK,WAAW;EACvC,IAAI,MAAM;EACV,OAAO,MAAM;EACb,MAAM,MAAM;EACZ,QAAQ;EACR,gBAAgB,MAAM;EACtB,OAAO,MAAM,MAAM,KAAK,UAAU;GAChC,MAAM,KAAK;GACX,UAAU,KAAK;GACf,QAAQ,KAAK;GACb,OAAO,KAAK;GACZ,QAAQ,KAAK;GACb,QAAQ,KAAK;EACf,EAAE;EACF,QAAQ,MAAM;CAChB,EAAE;AACJ;;AAGA,SAAgB,YAAY,QAAgD;CAC1E,MAAM,SAAS,OAAO,QAAQ,UAAU,MAAM,WAAW,IAAI;CAC7D,OAAO,OAAO,WAAW,IAAI,OAAO,OAAO,QAAQ,OAAO,UAAU,SAAS,MAAM,UAAU,IAAI,CAAC;AACpG;;AAmBA,SAAgB,WAAW,OAAuB;CAChD,OAAO,MAAM,WAAW,GAAG,IAAK,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,QAAS;AACrE;AAEA,SAAgB,SAAS,OAAqC;CAC5D,MAAM,0BAAU,IAAI,IAA0B;CAC9C,KAAK,MAAM,QAAQ,MAAM,OAAO;EAC9B,MAAM,WAAW,QAAQ,IAAI,KAAK,KAAK;EACvC,IAAI,UAAU;GACZ,SAAS,MAAM,KAAK,IAAI;GACxB,SAAS,UAAU,KAAK,SAAU,KAAK,UAAU,IAAK;GACtD,SAAS,kBAAkB,KAAK,SAAS,IAAK,KAAK,UAAU;GAC7D;EACF;EACA,QAAQ,IAAI,KAAK,OAAO;GACtB,OAAO,KAAK;GACZ,QAAQ,KAAK;GACb,OAAO,CAAC,IAAI;GACZ,QAAQ,KAAK,SAAU,KAAK,UAAU,IAAK;GAC3C,gBAAgB,KAAK,SAAS,IAAK,KAAK,UAAU;EACpD,CAAC;CACH;CACA,KAAK,MAAM,SAAS,QAAQ,OAAO,GAAG,MAAM,MAAM,MAAM,MAAM,UAAU,KAAK,KAAK,cAAc,MAAM,IAAI,CAAC;CAC3G,OAAO,CAAC,GAAG,QAAQ,OAAO,CAAC,CAAC,CAAC,MAC1B,MAAM,UACL,aAAa,KAAK,UAAU,aAAa,MAAM,WAC/C,WAAW,KAAK,KAAK,CAAC,CAAC,cAAc,WAAW,MAAM,KAAK,CAAC,CAChE;AACF;;AAGA,SAAgB,cAAc,QAAyC;CACrE,OAAO,OAAO,QAAQ,OAAO,UAAU,QAAQ,MAAM,gBAAgB,CAAC;AACxE"}
@@ -0,0 +1,61 @@
1
+ let _agimon_ai_po_web_security_browser = require("@agimon-ai/po-web-security/browser");
2
+ let _agimon_ai_po_core_web = require("@agimon-ai/po-core/web");
3
+ let _agimon_ai_po_core_contextApi = require("@agimon-ai/po-core/contextApi");
4
+ //#region src/web/lib/contextDetailApi.ts
5
+ /**
6
+ * The page's half of the runtime's context API.
7
+ *
8
+ * The panel prices every tool and skill from a projection small enough to
9
+ * republish on every composition change. The prose and the schema behind a
10
+ * figure are neither small nor wanted in bulk, so they are asked for one row at
11
+ * a time, when a reader clicks the row.
12
+ *
13
+ * A session that has gone away, or one whose runtime predates this API, answers
14
+ * 404. That is reported as text in the dialog rather than swallowed: a reader
15
+ * who clicked deserves to know the session cannot say, instead of watching a
16
+ * spinner forever.
17
+ */
18
+ const UNREACHABLE = "The session did not answer.";
19
+ function isRecord(value) {
20
+ return typeof value === "object" && value !== null && !Array.isArray(value);
21
+ }
22
+ async function readBody(response) {
23
+ const text = await response.text();
24
+ if (text === "") return void 0;
25
+ try {
26
+ return JSON.parse(text);
27
+ } catch {
28
+ return;
29
+ }
30
+ }
31
+ function errorOf(body, fallback) {
32
+ return isRecord(body) && typeof body.error === "string" && body.error !== "" ? body.error : fallback;
33
+ }
34
+ async function fetchContextItemDetail(sessionId, itemKind, name) {
35
+ let response;
36
+ try {
37
+ response = await _agimon_ai_po_web_security_browser.sealedTransport.fetch((0, _agimon_ai_po_core_contextApi.itemDetailUrl)((0, _agimon_ai_po_core_web.sessionApiPath)(sessionId), itemKind, name));
38
+ } catch {
39
+ return {
40
+ ok: false,
41
+ error: UNREACHABLE
42
+ };
43
+ }
44
+ const body = await readBody(response);
45
+ if (!response.ok) return {
46
+ ok: false,
47
+ error: errorOf(body, `The session answered ${String(response.status)}.`)
48
+ };
49
+ if (!isRecord(body) || !isRecord(body.item)) return {
50
+ ok: false,
51
+ error: "The session answered with no detail."
52
+ };
53
+ return {
54
+ ok: true,
55
+ detail: body.item
56
+ };
57
+ }
58
+ //#endregion
59
+ exports.fetchContextItemDetail = fetchContextItemDetail;
60
+
61
+ //# sourceMappingURL=contextDetailApi.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contextDetailApi.cjs","names":["sealedTransport","itemDetailUrl","sessionApiPath"],"sources":["../../../src/web/lib/contextDetailApi.ts"],"sourcesContent":["import { type ContextItemDetail, type ContextItemKind, itemDetailUrl } from '@agimon-ai/po-core/contextApi';\nimport { sessionApiPath } from '@agimon-ai/po-core/web';\nimport { sealedTransport } from '@agimon-ai/po-web-security/browser';\n\n/**\n * The page's half of the runtime's context API.\n *\n * The panel prices every tool and skill from a projection small enough to\n * republish on every composition change. The prose and the schema behind a\n * figure are neither small nor wanted in bulk, so they are asked for one row at\n * a time, when a reader clicks the row.\n *\n * A session that has gone away, or one whose runtime predates this API, answers\n * 404. That is reported as text in the dialog rather than swallowed: a reader\n * who clicked deserves to know the session cannot say, instead of watching a\n * spinner forever.\n */\n\nconst UNREACHABLE = 'The session did not answer.';\n\nexport type FetchItemDetailResult = { ok: true; detail: ContextItemDetail } | { ok: false; error: string };\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nasync function readBody(response: Response): Promise<unknown> {\n const text = await response.text();\n if (text === '') return undefined;\n try {\n return JSON.parse(text) as unknown;\n } catch {\n return undefined;\n }\n}\n\nfunction errorOf(body: unknown, fallback: string): string {\n return isRecord(body) && typeof body.error === 'string' && body.error !== '' ? body.error : fallback;\n}\n\nexport async function fetchContextItemDetail(\n sessionId: string,\n itemKind: ContextItemKind,\n name: string,\n): Promise<FetchItemDetailResult> {\n let response: Response;\n try {\n response = await sealedTransport.fetch(itemDetailUrl(sessionApiPath(sessionId), itemKind, name));\n } catch {\n return { ok: false, error: UNREACHABLE };\n }\n const body = await readBody(response);\n if (!response.ok) return { ok: false, error: errorOf(body, `The session answered ${String(response.status)}.`) };\n if (!isRecord(body) || !isRecord(body.item)) return { ok: false, error: 'The session answered with no detail.' };\n return { ok: true, detail: body.item as unknown as ContextItemDetail };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAkBA,MAAM,cAAc;AAIpB,SAAS,SAAS,OAAkD;CAClE,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAC5E;AAEA,eAAe,SAAS,UAAsC;CAC5D,MAAM,OAAO,MAAM,SAAS,KAAK;CACjC,IAAI,SAAS,IAAI,OAAO,KAAA;CACxB,IAAI;EACF,OAAO,KAAK,MAAM,IAAI;CACxB,QAAQ;EACN;CACF;AACF;AAEA,SAAS,QAAQ,MAAe,UAA0B;CACxD,OAAO,SAAS,IAAI,KAAK,OAAO,KAAK,UAAU,YAAY,KAAK,UAAU,KAAK,KAAK,QAAQ;AAC9F;AAEA,eAAsB,uBACpB,WACA,UACA,MACgC;CAChC,IAAI;CACJ,IAAI;EACF,WAAW,MAAMA,mCAAAA,gBAAgB,OAAA,GAAMC,8BAAAA,cAAAA,EAAAA,GAAcC,uBAAAA,eAAAA,CAAe,SAAS,GAAG,UAAU,IAAI,CAAC;CACjG,QAAQ;EACN,OAAO;GAAE,IAAI;GAAO,OAAO;EAAY;CACzC;CACA,MAAM,OAAO,MAAM,SAAS,QAAQ;CACpC,IAAI,CAAC,SAAS,IAAI,OAAO;EAAE,IAAI;EAAO,OAAO,QAAQ,MAAM,wBAAwB,OAAO,SAAS,MAAM,EAAE,EAAE;CAAE;CAC/G,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,GAAG,OAAO;EAAE,IAAI;EAAO,OAAO;CAAuC;CAC/G,OAAO;EAAE,IAAI;EAAM,QAAQ,KAAK;CAAqC;AACvE"}
@@ -0,0 +1,12 @@
1
+ import { ContextItemDetail, ContextItemKind } from "@agimon-ai/po-core/contextApi";
2
+ //#region src/web/lib/contextDetailApi.d.ts
3
+ export type FetchItemDetailResult = {
4
+ ok: true;
5
+ detail: ContextItemDetail;
6
+ } | {
7
+ ok: false;
8
+ error: string;
9
+ };
10
+ export declare function fetchContextItemDetail(sessionId: string, itemKind: ContextItemKind, name: string): Promise<FetchItemDetailResult>;
11
+ //#endregion
12
+ //# sourceMappingURL=contextDetailApi.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contextDetailApi.d.mts","names":[],"sources":["../../../src/web/lib/contextDetailApi.ts"],"mappings":";;YAoBY;EAA0B;EAAU,QAAQ;;EAAwB;EAAW;;wBAoBrE,uBACpB,mBACA,UAAU,iBACV,eACC,QAAQ"}
@@ -0,0 +1,61 @@
1
+ import { sealedTransport } from "@agimon-ai/po-web-security/browser";
2
+ import { sessionApiPath } from "@agimon-ai/po-core/web";
3
+ import { itemDetailUrl } from "@agimon-ai/po-core/contextApi";
4
+ //#region src/web/lib/contextDetailApi.ts
5
+ /**
6
+ * The page's half of the runtime's context API.
7
+ *
8
+ * The panel prices every tool and skill from a projection small enough to
9
+ * republish on every composition change. The prose and the schema behind a
10
+ * figure are neither small nor wanted in bulk, so they are asked for one row at
11
+ * a time, when a reader clicks the row.
12
+ *
13
+ * A session that has gone away, or one whose runtime predates this API, answers
14
+ * 404. That is reported as text in the dialog rather than swallowed: a reader
15
+ * who clicked deserves to know the session cannot say, instead of watching a
16
+ * spinner forever.
17
+ */
18
+ const UNREACHABLE = "The session did not answer.";
19
+ function isRecord(value) {
20
+ return typeof value === "object" && value !== null && !Array.isArray(value);
21
+ }
22
+ async function readBody(response) {
23
+ const text = await response.text();
24
+ if (text === "") return void 0;
25
+ try {
26
+ return JSON.parse(text);
27
+ } catch {
28
+ return;
29
+ }
30
+ }
31
+ function errorOf(body, fallback) {
32
+ return isRecord(body) && typeof body.error === "string" && body.error !== "" ? body.error : fallback;
33
+ }
34
+ async function fetchContextItemDetail(sessionId, itemKind, name) {
35
+ let response;
36
+ try {
37
+ response = await sealedTransport.fetch(itemDetailUrl(sessionApiPath(sessionId), itemKind, name));
38
+ } catch {
39
+ return {
40
+ ok: false,
41
+ error: UNREACHABLE
42
+ };
43
+ }
44
+ const body = await readBody(response);
45
+ if (!response.ok) return {
46
+ ok: false,
47
+ error: errorOf(body, `The session answered ${String(response.status)}.`)
48
+ };
49
+ if (!isRecord(body) || !isRecord(body.item)) return {
50
+ ok: false,
51
+ error: "The session answered with no detail."
52
+ };
53
+ return {
54
+ ok: true,
55
+ detail: body.item
56
+ };
57
+ }
58
+ //#endregion
59
+ export { fetchContextItemDetail };
60
+
61
+ //# sourceMappingURL=contextDetailApi.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contextDetailApi.mjs","names":[],"sources":["../../../src/web/lib/contextDetailApi.ts"],"sourcesContent":["import { type ContextItemDetail, type ContextItemKind, itemDetailUrl } from '@agimon-ai/po-core/contextApi';\nimport { sessionApiPath } from '@agimon-ai/po-core/web';\nimport { sealedTransport } from '@agimon-ai/po-web-security/browser';\n\n/**\n * The page's half of the runtime's context API.\n *\n * The panel prices every tool and skill from a projection small enough to\n * republish on every composition change. The prose and the schema behind a\n * figure are neither small nor wanted in bulk, so they are asked for one row at\n * a time, when a reader clicks the row.\n *\n * A session that has gone away, or one whose runtime predates this API, answers\n * 404. That is reported as text in the dialog rather than swallowed: a reader\n * who clicked deserves to know the session cannot say, instead of watching a\n * spinner forever.\n */\n\nconst UNREACHABLE = 'The session did not answer.';\n\nexport type FetchItemDetailResult = { ok: true; detail: ContextItemDetail } | { ok: false; error: string };\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nasync function readBody(response: Response): Promise<unknown> {\n const text = await response.text();\n if (text === '') return undefined;\n try {\n return JSON.parse(text) as unknown;\n } catch {\n return undefined;\n }\n}\n\nfunction errorOf(body: unknown, fallback: string): string {\n return isRecord(body) && typeof body.error === 'string' && body.error !== '' ? body.error : fallback;\n}\n\nexport async function fetchContextItemDetail(\n sessionId: string,\n itemKind: ContextItemKind,\n name: string,\n): Promise<FetchItemDetailResult> {\n let response: Response;\n try {\n response = await sealedTransport.fetch(itemDetailUrl(sessionApiPath(sessionId), itemKind, name));\n } catch {\n return { ok: false, error: UNREACHABLE };\n }\n const body = await readBody(response);\n if (!response.ok) return { ok: false, error: errorOf(body, `The session answered ${String(response.status)}.`) };\n if (!isRecord(body) || !isRecord(body.item)) return { ok: false, error: 'The session answered with no detail.' };\n return { ok: true, detail: body.item as unknown as ContextItemDetail };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAkBA,MAAM,cAAc;AAIpB,SAAS,SAAS,OAAkD;CAClE,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAC5E;AAEA,eAAe,SAAS,UAAsC;CAC5D,MAAM,OAAO,MAAM,SAAS,KAAK;CACjC,IAAI,SAAS,IAAI,OAAO,KAAA;CACxB,IAAI;EACF,OAAO,KAAK,MAAM,IAAI;CACxB,QAAQ;EACN;CACF;AACF;AAEA,SAAS,QAAQ,MAAe,UAA0B;CACxD,OAAO,SAAS,IAAI,KAAK,OAAO,KAAK,UAAU,YAAY,KAAK,UAAU,KAAK,KAAK,QAAQ;AAC9F;AAEA,eAAsB,uBACpB,WACA,UACA,MACgC;CAChC,IAAI;CACJ,IAAI;EACF,WAAW,MAAM,gBAAgB,MAAM,cAAc,eAAe,SAAS,GAAG,UAAU,IAAI,CAAC;CACjG,QAAQ;EACN,OAAO;GAAE,IAAI;GAAO,OAAO;EAAY;CACzC;CACA,MAAM,OAAO,MAAM,SAAS,QAAQ;CACpC,IAAI,CAAC,SAAS,IAAI,OAAO;EAAE,IAAI;EAAO,OAAO,QAAQ,MAAM,wBAAwB,OAAO,SAAS,MAAM,EAAE,EAAE;CAAE;CAC/G,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,GAAG,OAAO;EAAE,IAAI;EAAO,OAAO;CAAuC;CAC/G,OAAO;EAAE,IAAI;EAAM,QAAQ,KAAK;CAAqC;AACvE"}
@@ -0,0 +1,9 @@
1
+ //#region src/web/lib/dashboardRenderers.ts
2
+ /** Renderers belong to an app tree, not the durable runtime or an abandoned React render. */
3
+ const DashboardRendererContext = (0, require("react").createContext)(null);
4
+ const DashboardRendererProvider = DashboardRendererContext.Provider;
5
+ //#endregion
6
+ exports.DashboardRendererContext = DashboardRendererContext;
7
+ exports.DashboardRendererProvider = DashboardRendererProvider;
8
+
9
+ //# sourceMappingURL=dashboardRenderers.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboardRenderers.cjs","names":["createContext"],"sources":["../../../src/web/lib/dashboardRenderers.ts"],"sourcesContent":["import { createContext } from 'react';\n\nimport type { bindSessionActivityRenderer } from './sessionActivityRenderer';\nimport type { bindSessionTranscriptRenderer } from './sessionTranscriptRenderer';\nimport type { bindThreadRenderer } from './threadRenderer';\n\nexport interface DashboardRenderers {\n thread: Parameters<typeof bindThreadRenderer>[0];\n activity: Parameters<typeof bindSessionActivityRenderer>[0];\n transcript: Parameters<typeof bindSessionTranscriptRenderer>[0];\n}\n\n/** Renderers belong to an app tree, not the durable runtime or an abandoned React render. */\nexport const DashboardRendererContext = createContext<DashboardRenderers | null>(null);\nexport const DashboardRendererProvider = DashboardRendererContext.Provider;\n"],"mappings":";;AAaA,MAAa,4BAAA,kBAA2BA,CAAAA,CAAAA,cAAAA,CAAyC,IAAI;AACrF,MAAa,4BAA4B,yBAAyB"}
@@ -0,0 +1,12 @@
1
+ import { bindSessionActivityRenderer } from "./sessionActivityRenderer.mjs";
2
+ import { bindSessionTranscriptRenderer } from "./sessionTranscriptRenderer.mjs";
3
+ import { bindThreadRenderer } from "./threadRenderer.mjs";
4
+ //#region src/web/lib/dashboardRenderers.d.ts
5
+ export interface DashboardRenderers {
6
+ thread: Parameters<typeof bindThreadRenderer>[0];
7
+ activity: Parameters<typeof bindSessionActivityRenderer>[0];
8
+ transcript: Parameters<typeof bindSessionTranscriptRenderer>[0];
9
+ }
10
+ export declare const DashboardRendererProvider: import("react").Provider<DashboardRenderers | null>;
11
+ //#endregion
12
+ //# sourceMappingURL=dashboardRenderers.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboardRenderers.d.mts","names":[],"sources":["../../../src/web/lib/dashboardRenderers.ts"],"mappings":";;;;iBAMiB;EACf,QAAQ,kBAAkB;EAC1B,UAAU,kBAAkB;EAC5B,YAAY,kBAAkB;;qBAKnB,2CAAyB,SAAA"}
@@ -0,0 +1,9 @@
1
+ import { createContext } from "react";
2
+ //#region src/web/lib/dashboardRenderers.ts
3
+ /** Renderers belong to an app tree, not the durable runtime or an abandoned React render. */
4
+ const DashboardRendererContext = createContext(null);
5
+ const DashboardRendererProvider = DashboardRendererContext.Provider;
6
+ //#endregion
7
+ export { DashboardRendererContext, DashboardRendererProvider };
8
+
9
+ //# sourceMappingURL=dashboardRenderers.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboardRenderers.mjs","names":[],"sources":["../../../src/web/lib/dashboardRenderers.ts"],"sourcesContent":["import { createContext } from 'react';\n\nimport type { bindSessionActivityRenderer } from './sessionActivityRenderer';\nimport type { bindSessionTranscriptRenderer } from './sessionTranscriptRenderer';\nimport type { bindThreadRenderer } from './threadRenderer';\n\nexport interface DashboardRenderers {\n thread: Parameters<typeof bindThreadRenderer>[0];\n activity: Parameters<typeof bindSessionActivityRenderer>[0];\n transcript: Parameters<typeof bindSessionTranscriptRenderer>[0];\n}\n\n/** Renderers belong to an app tree, not the durable runtime or an abandoned React render. */\nexport const DashboardRendererContext = createContext<DashboardRenderers | null>(null);\nexport const DashboardRendererProvider = DashboardRendererContext.Provider;\n"],"mappings":";;;AAaA,MAAa,2BAA2B,cAAyC,IAAI;AACrF,MAAa,4BAA4B,yBAAyB"}
@@ -0,0 +1,27 @@
1
+ let _tanstack_react_router = require("@tanstack/react-router");
2
+ //#region src/web/lib/dashboardRoute.ts
3
+ /**
4
+ * Every field comes from the leaf match. During a transition `location.pathname` already
5
+ * names the next route while the matches (and their params) still describe the current one,
6
+ * so mixing them yields impossible states such as a session route without a session id.
7
+ */
8
+ function dashboardRouteFrom(state) {
9
+ const match = state.matches.at(-1);
10
+ const params = match?.params ?? {};
11
+ const search = match?.search ?? {};
12
+ return {
13
+ kind: (match !== void 0 && match.routeId !== _tanstack_react_router.rootRouteId ? match.fullPath : state.location.pathname).startsWith("/settings") ? "settings" : "session",
14
+ sessionId: typeof params.sessionId === "string" ? params.sessionId : void 0,
15
+ tabId: typeof params.tabId === "string" ? params.tabId : void 0,
16
+ section: typeof params.section === "string" ? params.section : void 0,
17
+ workspaceId: typeof search.workspace === "string" ? search.workspace : void 0
18
+ };
19
+ }
20
+ function useDashboardRoute() {
21
+ return (0, _tanstack_react_router.useRouterState)({ select: dashboardRouteFrom });
22
+ }
23
+ //#endregion
24
+ exports.dashboardRouteFrom = dashboardRouteFrom;
25
+ exports.useDashboardRoute = useDashboardRoute;
26
+
27
+ //# sourceMappingURL=dashboardRoute.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboardRoute.cjs","names":["rootRouteId","useRouterState"],"sources":["../../../src/web/lib/dashboardRoute.ts"],"sourcesContent":["import { rootRouteId, useRouterState } from '@tanstack/react-router';\n\n/** Canonical URL state, available anywhere in a dashboard's application tree. */\nexport interface DashboardRoute {\n kind: 'session' | 'settings';\n sessionId?: string;\n tabId?: string;\n section?: string;\n workspaceId?: string;\n}\n\ninterface DashboardRouteMatch {\n routeId: string;\n fullPath: string;\n params?: unknown;\n search?: unknown;\n}\n\n/**\n * Every field comes from the leaf match. During a transition `location.pathname` already\n * names the next route while the matches (and their params) still describe the current one,\n * so mixing them yields impossible states such as a session route without a session id.\n */\nexport function dashboardRouteFrom(state: {\n location: { pathname: string };\n matches: readonly DashboardRouteMatch[];\n}): DashboardRoute {\n const match = state.matches.at(-1);\n const params = (match?.params ?? {}) as Record<string, unknown>;\n const search = (match?.search ?? {}) as Record<string, unknown>;\n const path = match !== undefined && match.routeId !== rootRouteId ? match.fullPath : state.location.pathname;\n return {\n kind: path.startsWith('/settings') ? 'settings' : 'session',\n sessionId: typeof params.sessionId === 'string' ? params.sessionId : undefined,\n tabId: typeof params.tabId === 'string' ? params.tabId : undefined,\n section: typeof params.section === 'string' ? params.section : undefined,\n workspaceId: typeof search.workspace === 'string' ? search.workspace : undefined,\n };\n}\n\nexport function useDashboardRoute(): DashboardRoute {\n return useRouterState({ select: dashboardRouteFrom });\n}\n"],"mappings":";;;;;;;AAuBA,SAAgB,mBAAmB,OAGhB;CACjB,MAAM,QAAQ,MAAM,QAAQ,GAAG,EAAE;CACjC,MAAM,SAAU,OAAO,UAAU,CAAC;CAClC,MAAM,SAAU,OAAO,UAAU,CAAC;CAElC,OAAO;EACL,OAFW,UAAU,KAAA,KAAa,MAAM,YAAYA,uBAAAA,cAAc,MAAM,WAAW,MAAM,SAAS,SAAA,CAEvF,WAAW,WAAW,IAAI,aAAa;EAClD,WAAW,OAAO,OAAO,cAAc,WAAW,OAAO,YAAY,KAAA;EACrE,OAAO,OAAO,OAAO,UAAU,WAAW,OAAO,QAAQ,KAAA;EACzD,SAAS,OAAO,OAAO,YAAY,WAAW,OAAO,UAAU,KAAA;EAC/D,aAAa,OAAO,OAAO,cAAc,WAAW,OAAO,YAAY,KAAA;CACzE;AACF;AAEA,SAAgB,oBAAoC;CAClD,QAAA,GAAOC,uBAAAA,eAAAA,CAAe,EAAE,QAAQ,mBAAmB,CAAC;AACtD"}
@@ -0,0 +1,29 @@
1
+ //#region src/web/lib/dashboardRoute.d.ts
2
+ /** Canonical URL state, available anywhere in a dashboard's application tree. */
3
+ export interface DashboardRoute {
4
+ kind: 'session' | 'settings';
5
+ sessionId?: string;
6
+ tabId?: string;
7
+ section?: string;
8
+ workspaceId?: string;
9
+ }
10
+ interface DashboardRouteMatch {
11
+ routeId: string;
12
+ fullPath: string;
13
+ params?: unknown;
14
+ search?: unknown;
15
+ }
16
+ /**
17
+ * Every field comes from the leaf match. During a transition `location.pathname` already
18
+ * names the next route while the matches (and their params) still describe the current one,
19
+ * so mixing them yields impossible states such as a session route without a session id.
20
+ */
21
+ export declare function dashboardRouteFrom(state: {
22
+ location: {
23
+ pathname: string;
24
+ };
25
+ matches: readonly DashboardRouteMatch[];
26
+ }): DashboardRoute;
27
+ export declare function useDashboardRoute(): DashboardRoute;
28
+ //#endregion
29
+ //# sourceMappingURL=dashboardRoute.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboardRoute.d.mts","names":[],"sources":["../../../src/web/lib/dashboardRoute.ts"],"mappings":";;iBAGiB;EACf;EACA;EACA;EACA;EACA;;UAGQ;EACR;EACA;EACA;EACA;;;;;;;wBAQc,mBAAmB;EACjC;IAAY;;EACZ,kBAAkB;IAChB;wBAcY,qBAAqB"}
@@ -0,0 +1,26 @@
1
+ import { rootRouteId, useRouterState } from "@tanstack/react-router";
2
+ //#region src/web/lib/dashboardRoute.ts
3
+ /**
4
+ * Every field comes from the leaf match. During a transition `location.pathname` already
5
+ * names the next route while the matches (and their params) still describe the current one,
6
+ * so mixing them yields impossible states such as a session route without a session id.
7
+ */
8
+ function dashboardRouteFrom(state) {
9
+ const match = state.matches.at(-1);
10
+ const params = match?.params ?? {};
11
+ const search = match?.search ?? {};
12
+ return {
13
+ kind: (match !== void 0 && match.routeId !== rootRouteId ? match.fullPath : state.location.pathname).startsWith("/settings") ? "settings" : "session",
14
+ sessionId: typeof params.sessionId === "string" ? params.sessionId : void 0,
15
+ tabId: typeof params.tabId === "string" ? params.tabId : void 0,
16
+ section: typeof params.section === "string" ? params.section : void 0,
17
+ workspaceId: typeof search.workspace === "string" ? search.workspace : void 0
18
+ };
19
+ }
20
+ function useDashboardRoute() {
21
+ return useRouterState({ select: dashboardRouteFrom });
22
+ }
23
+ //#endregion
24
+ export { dashboardRouteFrom, useDashboardRoute };
25
+
26
+ //# sourceMappingURL=dashboardRoute.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboardRoute.mjs","names":[],"sources":["../../../src/web/lib/dashboardRoute.ts"],"sourcesContent":["import { rootRouteId, useRouterState } from '@tanstack/react-router';\n\n/** Canonical URL state, available anywhere in a dashboard's application tree. */\nexport interface DashboardRoute {\n kind: 'session' | 'settings';\n sessionId?: string;\n tabId?: string;\n section?: string;\n workspaceId?: string;\n}\n\ninterface DashboardRouteMatch {\n routeId: string;\n fullPath: string;\n params?: unknown;\n search?: unknown;\n}\n\n/**\n * Every field comes from the leaf match. During a transition `location.pathname` already\n * names the next route while the matches (and their params) still describe the current one,\n * so mixing them yields impossible states such as a session route without a session id.\n */\nexport function dashboardRouteFrom(state: {\n location: { pathname: string };\n matches: readonly DashboardRouteMatch[];\n}): DashboardRoute {\n const match = state.matches.at(-1);\n const params = (match?.params ?? {}) as Record<string, unknown>;\n const search = (match?.search ?? {}) as Record<string, unknown>;\n const path = match !== undefined && match.routeId !== rootRouteId ? match.fullPath : state.location.pathname;\n return {\n kind: path.startsWith('/settings') ? 'settings' : 'session',\n sessionId: typeof params.sessionId === 'string' ? params.sessionId : undefined,\n tabId: typeof params.tabId === 'string' ? params.tabId : undefined,\n section: typeof params.section === 'string' ? params.section : undefined,\n workspaceId: typeof search.workspace === 'string' ? search.workspace : undefined,\n };\n}\n\nexport function useDashboardRoute(): DashboardRoute {\n return useRouterState({ select: dashboardRouteFrom });\n}\n"],"mappings":";;;;;;;AAuBA,SAAgB,mBAAmB,OAGhB;CACjB,MAAM,QAAQ,MAAM,QAAQ,GAAG,EAAE;CACjC,MAAM,SAAU,OAAO,UAAU,CAAC;CAClC,MAAM,SAAU,OAAO,UAAU,CAAC;CAElC,OAAO;EACL,OAFW,UAAU,KAAA,KAAa,MAAM,YAAY,cAAc,MAAM,WAAW,MAAM,SAAS,SAAA,CAEvF,WAAW,WAAW,IAAI,aAAa;EAClD,WAAW,OAAO,OAAO,cAAc,WAAW,OAAO,YAAY,KAAA;EACrE,OAAO,OAAO,OAAO,UAAU,WAAW,OAAO,QAAQ,KAAA;EACzD,SAAS,OAAO,OAAO,YAAY,WAAW,OAAO,UAAU,KAAA;EAC/D,aAAa,OAAO,OAAO,cAAc,WAAW,OAAO,YAAY,KAAA;CACzE;AACF;AAEA,SAAgB,oBAAoC;CAClD,OAAO,eAAe,EAAE,QAAQ,mBAAmB,CAAC;AACtD"}
@@ -0,0 +1,15 @@
1
+ //#region src/web/lib/dashboardTranscript.ts
2
+ let watch;
3
+ /** Live transcript transport is supplied by the host, not owned by a view. */
4
+ function bindDashboardTranscriptWatcher(watcher) {
5
+ watch = watcher;
6
+ }
7
+ function watchDashboardTranscript(sessionId) {
8
+ if (!watch) throw new Error("The dashboard transcript runtime has not started.");
9
+ return watch(sessionId);
10
+ }
11
+ //#endregion
12
+ exports.bindDashboardTranscriptWatcher = bindDashboardTranscriptWatcher;
13
+ exports.watchDashboardTranscript = watchDashboardTranscript;
14
+
15
+ //# sourceMappingURL=dashboardTranscript.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboardTranscript.cjs","names":[],"sources":["../../../src/web/lib/dashboardTranscript.ts"],"sourcesContent":["let watch: ((sessionId: string) => () => void) | undefined;\n\n/** Live transcript transport is supplied by the host, not owned by a view. */\nexport function bindDashboardTranscriptWatcher(watcher: (sessionId: string) => () => void): void {\n watch = watcher;\n}\n\nexport function watchDashboardTranscript(sessionId: string): () => void {\n if (!watch) throw new Error('The dashboard transcript runtime has not started.');\n return watch(sessionId);\n}\n"],"mappings":";AAAA,IAAI;;AAGJ,SAAgB,+BAA+B,SAAkD;CAC/F,QAAQ;AACV;AAEA,SAAgB,yBAAyB,WAA+B;CACtE,IAAI,CAAC,OAAO,MAAM,IAAI,MAAM,mDAAmD;CAC/E,OAAO,MAAM,SAAS;AACxB"}
@@ -0,0 +1,6 @@
1
+ //#region src/web/lib/dashboardTranscript.d.ts
2
+ /** Live transcript transport is supplied by the host, not owned by a view. */
3
+ export declare function bindDashboardTranscriptWatcher(watcher: (sessionId: string) => () => void): void;
4
+ export declare function watchDashboardTranscript(sessionId: string): () => void;
5
+ //#endregion
6
+ //# sourceMappingURL=dashboardTranscript.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboardTranscript.d.mts","names":[],"sources":["../../../src/web/lib/dashboardTranscript.ts"],"mappings":";;wBAGgB,+BAA+B,UAAU;wBAIzC,yBAAyB"}
@@ -0,0 +1,14 @@
1
+ //#region src/web/lib/dashboardTranscript.ts
2
+ let watch;
3
+ /** Live transcript transport is supplied by the host, not owned by a view. */
4
+ function bindDashboardTranscriptWatcher(watcher) {
5
+ watch = watcher;
6
+ }
7
+ function watchDashboardTranscript(sessionId) {
8
+ if (!watch) throw new Error("The dashboard transcript runtime has not started.");
9
+ return watch(sessionId);
10
+ }
11
+ //#endregion
12
+ export { bindDashboardTranscriptWatcher, watchDashboardTranscript };
13
+
14
+ //# sourceMappingURL=dashboardTranscript.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboardTranscript.mjs","names":[],"sources":["../../../src/web/lib/dashboardTranscript.ts"],"sourcesContent":["let watch: ((sessionId: string) => () => void) | undefined;\n\n/** Live transcript transport is supplied by the host, not owned by a view. */\nexport function bindDashboardTranscriptWatcher(watcher: (sessionId: string) => () => void): void {\n watch = watcher;\n}\n\nexport function watchDashboardTranscript(sessionId: string): () => void {\n if (!watch) throw new Error('The dashboard transcript runtime has not started.');\n return watch(sessionId);\n}\n"],"mappings":";AAAA,IAAI;;AAGJ,SAAgB,+BAA+B,SAAkD;CAC/F,QAAQ;AACV;AAEA,SAAgB,yBAAyB,WAA+B;CACtE,IAAI,CAAC,OAAO,MAAM,IAAI,MAAM,mDAAmD;CAC/E,OAAO,MAAM,SAAS;AACxB"}