@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 @@
1
+ {"version":3,"file":"Timeline.cjs","names":["personaInitials","Avatar","AvatarImage","AvatarFallback","UserIcon","Button","RewindIcon","QuoteIcon","pluginToolRenderer","ToolCard","MessageItemGroup","groupTone","groupSummary","memo","useRef","appendComposerQuote","focusPrompt","MessageMarkdown","isSupportedImageMimeType","MentionPreviews","parseFileMentions","rewindToMessage","StreamCursor","Separator","AlertIcon","SparklesIcon","Fragment","useStore","useActiveSession","useFileLinks","useOpenTab","useWebPluginRegistry","usePluginSlotProps","useMemo","pluginUserMessageActions","useCallback","fileTabForPath","timelineUnits","useVirtualizer","useState","requestLatestHistory","requestOlderHistory","requestNewerHistory","ChevronDownIcon","sessionsStore","useActivityGroups","sessionStoreFor","EmptyState","submitMessageWithAck","ExternalLinkIcon"],"sources":["../../../../src/web/features/session/Timeline.tsx"],"sourcesContent":["import type { UserMessageActionRunContext, WebPluginSlotProps } from '@agimon-ai/po-core/web';\nimport {\n AlertIcon,\n Avatar,\n AvatarFallback,\n AvatarImage,\n Button,\n ChevronDownIcon,\n EmptyState,\n ExternalLinkIcon,\n MessageItemGroup,\n QuoteIcon,\n RewindIcon,\n Separator,\n SparklesIcon,\n StreamCursor,\n UserIcon,\n} from '@agimon-ai/po-web-components';\nimport { useStore } from '@tanstack/react-store';\nimport { useVirtualizer } from '@tanstack/react-virtual';\nimport type { Store } from '@tanstack/store';\nimport { Fragment, memo, type ReactNode, useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';\n\nimport { fileTabForPath, useActivityGroups, useFileLinks } from '../../lib/composition';\nimport { parseFileMentions } from '../../lib/fileMentions';\nimport { pluginToolRenderer, pluginUserMessageActions } from '../../lib/pluginRegistry';\nimport { focusPrompt } from '../../lib/promptFocus';\nimport {\n isSupportedImageMimeType,\n type ProfileIdentity,\n type SessionState,\n type TimelineEntry,\n type ToolEntry,\n} from '../../lib/sessionModel';\nimport { personaInitials } from '../../lib/sessionSummary';\nimport { groupSummary, groupTone, timelineUnits } from '../../lib/timelineGroups';\nimport { appendComposerQuote } from '../../stores/composerStore';\nimport { sessionsStore } from '../../stores/sessionsStore';\nimport {\n requestOlderHistory,\n requestNewerHistory,\n requestLatestHistory,\n rewindToMessage,\n sessionStoreFor,\n submitMessageWithAck,\n useActiveSession,\n} from '../../stores/sessionStore';\nimport { openTransientTab } from '../../stores/transientTabsStore';\nimport { useOpenTab } from '../../stores/useOpenTab';\nimport { usePluginSlotProps } from '../../stores/usePluginSlotProps';\nimport { useWebPluginRegistry } from '../../stores/useWebPluginRegistry';\nimport { MentionPreviews } from './MentionPreviews';\nimport { MessageMarkdown, type MessageFileLinkHandler } from './MessageMarkdown';\nimport { ToolCard } from './ToolCard';\n\nconst SUGGESTIONS = [\n 'Review the working tree and summarise the diff',\n 'Run the affected nx targets and report failures',\n 'Explain how the session socket handshake works',\n];\n\n/** Closer than this to the end counts as reading the latest, so new frames keep the view pinned. */\nconst PINNED_THRESHOLD_PX = 200;\n/** Closer than this to the top asks for the window above, before the reader hits the edge. */\nconst PAGE_BACK_THRESHOLD_PX = 400;\n/**\n * Entries at the end that are never skipped.\n *\n * Containment makes a skipped entry report its placeholder height, so a\n * transcript whose tail is contained has a scroll height that is only an\n * estimate, and following the newest line lands short of it. The tail is also\n * the part a reader is nearly always looking at, so there is nothing to skip\n * there; everything above it is what makes a long session slow.\n */\n\nfunction noticeHref(line: string): string | null {\n if (/\\s/u.test(line) || !/^https?:\\/\\//i.test(line)) return null;\n\n try {\n const url = new URL(line);\n if ((url.protocol !== 'http:' && url.protocol !== 'https:') || !url.host || url.username || url.password) {\n return null;\n }\n return url.href;\n } catch {\n return null;\n }\n}\n\n/** Two letters from a persona name, so a profile without an icon is still distinct. */\nfunction SpeakerAvatar({ speaker, identity }: { speaker: 'assistant' | 'user'; identity?: ProfileIdentity | null }) {\n if (speaker === 'assistant') {\n // The icon arrives as a bounded data URL on the journalled identity entry,\n // so a persona without one, or with one that failed to load, still renders.\n const label = identity?.name ?? identity?.profile ?? 'Po';\n const fallback = identity ? personaInitials(label) : 'PO';\n return (\n <Avatar aria-label={label} className=\"size-9 shrink-0 border border-doom-border-soft bg-doom-deep p-1\">\n <AvatarImage src={identity?.icon ?? '/favicon.svg'} alt=\"\" />\n <AvatarFallback className=\"text-doom-magenta\">{fallback}</AvatarFallback>\n </Avatar>\n );\n }\n\n return (\n <Avatar aria-label=\"You\" className=\"size-9 shrink-0 border border-doom-border bg-doom-panel\">\n <AvatarFallback className=\"bg-doom-panel text-doom-dim\">\n <UserIcon aria-hidden=\"true\" className=\"size-4\" />\n </AvatarFallback>\n </Avatar>\n );\n}\n\ntype UserMessageActions = ReturnType<typeof pluginUserMessageActions>;\n\nfunction MessageActions({\n actions,\n disabled,\n actionsDisabled,\n onQuote,\n onRewind,\n userMessage,\n}: {\n actions: UserMessageActions;\n disabled: boolean;\n actionsDisabled: boolean;\n onQuote: () => void;\n onRewind: () => void;\n userMessage?: UserMessageActionRunContext;\n}) {\n return (\n <div\n data-testid=\"entry-actions\"\n className=\"pointer-events-none absolute right-1 bottom-0 z-10 flex max-w-[calc(100%-0.5rem)] translate-y-1/2 flex-wrap justify-end gap-1 rounded-md border border-doom-border-soft bg-doom-panel p-0.5 opacity-0 shadow-sm transition-opacity group-hover/message:pointer-events-auto group-hover/message:opacity-100 group-focus-within/message:pointer-events-auto group-focus-within/message:opacity-100 [@media(hover:none)]:pointer-events-auto [@media(hover:none)]:opacity-100\"\n >\n {userMessage\n ? actions.map((action) => {\n const ActionIcon = action.icon;\n return (\n <Button\n key={`${action.pluginId}.${action.id}`}\n variant=\"subtle\"\n size={ActionIcon ? 'icon' : 'sm'}\n data-testid=\"entry-plugin-action\"\n aria-label={action.label}\n title={action.label}\n disabled={actionsDisabled}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => action.run(userMessage)}\n className={ActionIcon ? 'border-0 shadow-none' : 'h-6 border-0 px-2 shadow-none'}\n >\n {ActionIcon ? <ActionIcon aria-hidden={true} className=\"h-3 w-3\" /> : action.label}\n </Button>\n );\n })\n : null}\n <Button\n variant=\"subtle\"\n size=\"icon\"\n data-testid=\"entry-rewind\"\n aria-label=\"Rewind to message\"\n title={disabled ? 'Wait for the current response before rewinding' : 'Rewind to message'}\n disabled={disabled || actionsDisabled}\n onMouseDown={(event) => event.preventDefault()}\n onClick={onRewind}\n className=\"border-0 shadow-none\"\n >\n <RewindIcon aria-hidden=\"true\" className=\"h-3 w-3\" />\n </Button>\n <Button\n variant=\"subtle\"\n size=\"icon\"\n data-testid=\"entry-quote\"\n aria-label=\"Quote message\"\n title=\"Quote message\"\n disabled={actionsDisabled}\n onMouseDown={(event) => event.preventDefault()}\n onClick={onQuote}\n className=\"border-0 shadow-none\"\n >\n <QuoteIcon aria-hidden=\"true\" className=\"h-3 w-3\" />\n </Button>\n </div>\n );\n}\n\n/** The message's wall-clock time, quiet at the end of its first line; nothing when the entry carries none. */\nfunction MessageTime({ timestamp }: { timestamp: number | undefined }) {\n if (timestamp === undefined) return null;\n const at = new Date(timestamp);\n return (\n <time\n data-testid=\"entry-time\"\n dateTime={at.toISOString()}\n className=\"shrink-0 pt-0.5 text-sm text-doom-dim tabular-nums\"\n >\n {at.toLocaleTimeString([], { hour: 'numeric', minute: '2-digit' })}\n </time>\n );\n}\nfunction ToolEntryRow({\n entry,\n slotProps,\n statuses,\n}: {\n entry: Extract<TimelineEntry, { kind: 'tool' }>;\n slotProps: WebPluginSlotProps;\n statuses: Readonly<Record<string, string>>;\n}) {\n const presentation = pluginToolRenderer(entry.name, statuses)?.timelinePresentation ?? 'tool';\n return (\n <div\n data-testid=\"entry-tool-row\"\n data-tool-presentation={presentation}\n className={presentation === 'tool' ? 'min-w-0 sm:pl-12' : 'min-w-0'}\n >\n <ToolCard entry={entry} slotProps={slotProps} statuses={statuses} />\n </div>\n );\n}\n\n/**\n * A run of calls to one tool, under one frame, indented to the message column. The rows\n * inside are the same cards the tool renders on its own; the group only takes\n * their border, so each call still opens and closes by itself.\n */\nfunction ToolGroupRow({\n name,\n entries,\n slotProps,\n statuses,\n}: {\n name: string;\n entries: readonly ToolEntry[];\n slotProps: WebPluginSlotProps;\n statuses: Readonly<Record<string, string>>;\n}) {\n return (\n <div data-testid=\"entry-tool-row\" data-tool-presentation=\"tool\" className=\"min-w-0 sm:pl-12\">\n <MessageItemGroup\n data-testid=\"entry-tool-group\"\n data-tool-name={name}\n data-tool-count={entries.length}\n tone={groupTone(entries)}\n title={name}\n summary={`· ${groupSummary(entries)}`}\n className=\"min-w-0\"\n >\n {entries.map((entry) => (\n <ToolCard key={entry.id} entry={entry} slotProps={slotProps} statuses={statuses} />\n ))}\n </MessageItemGroup>\n </div>\n );\n}\ninterface EntryProps {\n entry: TimelineEntry;\n onFileLink: MessageFileLinkHandler;\n pluginActions: UserMessageActions;\n sessionId: string | null;\n sessionIdentity: ProfileIdentity | null;\n sessionStreaming: boolean;\n runtimeActionsDisabled: boolean;\n slotProps: WebPluginSlotProps;\n toolStatuses: Readonly<Record<string, string>>;\n /** A grid card or thread fold: prose drops from the conversation's 15px to 13px. */\n compact: boolean;\n}\n\nconst Entry = memo(function Entry({\n entry,\n onFileLink,\n pluginActions,\n sessionId,\n sessionIdentity,\n sessionStreaming,\n runtimeActionsDisabled,\n slotProps,\n toolStatuses,\n compact,\n}: EntryProps) {\n const quoteSource = useRef<HTMLDivElement>(null);\n const quoteMessage = (text: string): void => {\n const selection = window.getSelection();\n const source = quoteSource.current;\n const selected =\n source !== null &&\n selection !== null &&\n !selection.isCollapsed &&\n selection.anchorNode !== null &&\n selection.focusNode !== null &&\n source.contains(selection.anchorNode) &&\n source.contains(selection.focusNode)\n ? selection.toString()\n : text;\n const caret = appendComposerQuote(sessionId, selected);\n if (caret !== null) requestAnimationFrame(() => focusPrompt(caret));\n };\n\n if (entry.kind === 'user') {\n return (\n <div data-testid=\"entry-user\" className=\"group/message flex flex-row-reverse items-start gap-3\">\n <SpeakerAvatar speaker=\"user\" />\n {/* Mirrored and shrink-wrapped, so who spoke reads at a glance. */}\n <div className=\"relative min-w-0 max-w-4/5\">\n <div\n ref={quoteSource}\n className={`flex flex-col gap-2 rounded-lg bg-doom-rail px-4 py-3 leading-relaxed break-words text-doom-hi ${compact ? 'text-base' : 'text-lg'}`}\n >\n <div className=\"flex items-start gap-4\">\n <div className=\"min-w-0 flex-1\">\n <MessageMarkdown sessionId={sessionId} onFileLink={onFileLink} text={entry.text} />\n </div>\n <MessageTime timestamp={entry.timestamp} />\n </div>\n {entry.images && entry.images.length > 0 ? (\n <div data-testid=\"user-attachments\" className=\"flex flex-wrap gap-2\">\n {entry.images\n .filter((image) => isSupportedImageMimeType(image.mimeType))\n .map((image, index) => (\n <img\n key={`${image.mimeType}:${image.data.slice(0, 24)}:${String(index)}`}\n src={`data:${image.mimeType};base64,${image.data}`}\n alt={`Attachment ${String(index + 1)}`}\n data-testid=\"user-attached-image\"\n className=\"h-auto max-h-80 max-w-full rounded-md object-contain\"\n />\n ))}\n </div>\n ) : null}\n {sessionId ? (\n <MentionPreviews sessionId={sessionId} mentions={parseFileMentions(entry.text)} onFileLink={onFileLink} />\n ) : null}\n </div>\n <MessageActions\n actions={pluginActions}\n disabled={sessionStreaming}\n actionsDisabled={runtimeActionsDisabled}\n onQuote={() => quoteMessage(entry.text)}\n onRewind={() => rewindToMessage(entry.id, sessionId)}\n userMessage={\n sessionId !== null && entry.text.trim().length > 0\n ? { sessionId, messageId: entry.id, text: entry.text }\n : undefined\n }\n />\n </div>\n </div>\n );\n }\n\n if (entry.kind === 'assistant') {\n return (\n <div\n data-testid=\"entry-assistant\"\n data-streaming={entry.streaming}\n className=\"group/message flex items-start gap-3\"\n >\n <SpeakerAvatar speaker=\"assistant\" identity={entry.identity ?? sessionIdentity} />\n <div className=\"relative min-w-0 flex-1\">\n <div className=\"flex items-start gap-4 px-1 pt-1.5\">\n <div className=\"flex min-w-0 flex-1 flex-col gap-2\">\n {entry.thinking ? (\n <div\n data-testid=\"entry-thinking\"\n // Thinking stays quiet and neutral, even when its Markdown source\n // uses strong emphasis for status updates.\n className={`font-normal text-doom-dim [&_p]:whitespace-pre-wrap [&_strong]:font-normal [&_strong]:text-doom-dim ${compact ? 'text-sm' : 'text-base'}`}\n >\n <MessageMarkdown sessionId={sessionId} onFileLink={onFileLink} text={entry.thinking} />\n </div>\n ) : null}\n <div\n ref={quoteSource}\n data-testid=\"entry-text\"\n className={`leading-relaxed break-words text-doom-text ${compact ? 'text-base' : 'text-lg'}`}\n >\n <MessageMarkdown sessionId={sessionId} onFileLink={onFileLink} text={entry.text} />\n {entry.streaming ? <StreamCursor /> : null}\n </div>\n </div>\n {entry.streaming ? null : <MessageTime timestamp={entry.timestamp} />}\n </div>\n <MessageActions\n actions={pluginActions}\n disabled={sessionStreaming}\n actionsDisabled={runtimeActionsDisabled}\n onQuote={() => quoteMessage(entry.text)}\n onRewind={() => rewindToMessage(entry.id, sessionId)}\n />\n </div>\n </div>\n );\n }\n\n if (entry.kind === 'tool') return <ToolEntryRow entry={entry} slotProps={slotProps} statuses={toolStatuses} />;\n\n if (entry.kind === 'settled') {\n return (\n <div data-testid=\"entry-settled\" className=\"flex items-center gap-3 sm:pl-12\">\n <Separator className=\"flex-1\" />\n <span className=\"text-sm text-doom-dim\">\n Agent settled{entry.tools > 0 ? ` · ${entry.tools} tool${entry.tools === 1 ? '' : 's'}` : ''}\n </span>\n <Separator className=\"flex-1\" />\n </div>\n );\n }\n\n if (entry.kind === 'queued') return null;\n // A notice: the agent's own aside (a mode switch, a refusal). Only an error\n // shouts; an informational one reads as a quiet line in Po's voice.\n const isError = entry.tone === 'error';\n return (\n <div data-testid=\"entry-notice\" data-tone={entry.tone} className=\"flex items-start gap-2.5\">\n <span\n aria-hidden\n className={`grid size-5 shrink-0 place-items-center rounded-full ${\n isError ? 'bg-doom-tint-red text-doom-red' : 'bg-doom-tint-green text-doom-green'\n }`}\n >\n {isError ? <AlertIcon className=\"size-3.5\" /> : <SparklesIcon className=\"size-3\" />}\n </span>\n <p\n className={`min-w-0 flex-1 whitespace-pre-wrap break-words text-base ${isError ? 'text-doom-red' : 'text-doom-dim'}`}\n >\n {entry.text.split(/(\\s+)/u).map((part, index) => {\n const href = noticeHref(part);\n return (\n <Fragment key={index}>\n {href === null ? (\n part\n ) : (\n <a href={href} target=\"_blank\" rel=\"noopener noreferrer\" className=\"underline underline-offset-2\">\n {part}\n </a>\n )}\n </Fragment>\n );\n })}\n </p>\n </div>\n );\n}, entriesEqual);\n\nfunction entriesEqual(previous: EntryProps, next: EntryProps): boolean {\n if (previous.entry !== next.entry || previous.sessionId !== next.sessionId || previous.compact !== next.compact)\n return false;\n if (next.entry.kind === 'tool') {\n return previous.slotProps === next.slotProps && previous.toolStatuses === next.toolStatuses;\n }\n if (next.entry.kind === 'user') {\n return (\n previous.onFileLink === next.onFileLink &&\n previous.pluginActions === next.pluginActions &&\n previous.sessionStreaming === next.sessionStreaming &&\n previous.runtimeActionsDisabled === next.runtimeActionsDisabled\n );\n }\n if (next.entry.kind === 'assistant') {\n return (\n previous.onFileLink === next.onFileLink &&\n previous.sessionIdentity === next.sessionIdentity &&\n previous.sessionStreaming === next.sessionStreaming &&\n previous.runtimeActionsDisabled === next.runtimeActionsDisabled\n );\n }\n return true;\n}\n\nfunction BackgroundWorkNotice() {\n return (\n <output data-testid=\"background-work-notice\" className=\"mt-auto flex shrink-0 justify-center px-3 pt-2 pb-3\">\n <span className=\"max-w-lg rounded-md border border-doom-yellow/40 bg-doom-panel px-3 py-2 text-center text-sm leading-relaxed text-doom-yellow\">\n Background work is still running. The agent will resume when results are ready.\n </span>\n </output>\n );\n}\n\n/**\n * One transcript, whichever fold it reads: the focused session's own, or a\n * thread of it. Owns the scroll pinning; the caller owns the empty state and\n * the session the entries' tool cards act on.\n *\n * `limit` and `compact` are for a fold that is not a whole surface, such as a\n * grid card: only the newest entries, drawn tighter, with no history paging\n * and no jump control, because a card is a glance and not a place to read.\n */\nexport function Transcript({\n store,\n sessionId,\n historyKey = sessionId,\n empty,\n testId = 'timeline',\n backgroundWorkActive = false,\n runtimeActionsDisabled = false,\n limit,\n compact = false,\n}: {\n store: Store<SessionState>;\n sessionId: string | null;\n historyKey?: string | null;\n empty: ReactNode;\n testId?: string;\n backgroundWorkActive?: boolean;\n runtimeActionsDisabled?: boolean;\n limit?: number;\n compact?: boolean;\n}) {\n 'use no memo';\n const entries = useStore(store, (state) => state.entries);\n const hasNewerHistory = useStore(store, (state) => state.hasNewerHistory);\n // Pi's protocol transcript carries no persona, and a history window taken from\n // the middle of a session carries no identity entry either, so an entry from\n // those paths has no stamp of its own. The fold's current persona is the honest\n // answer for one of them, and it corrects itself when the identity lands late,\n // which a stamp written at merge time cannot do.\n const sessionIdentity = useStore(store, (state) => state.profileIdentity);\n const sessionStreaming = useActiveSession((state) => state.streaming);\n const toolStatuses = useActiveSession((state) => state.statuses);\n const resolveFileLink = useFileLinks(sessionId);\n const openTab = useOpenTab();\n const registryRevision = useWebPluginRegistry();\n const slotProps = usePluginSlotProps(sessionId);\n const pluginActions = useMemo(() => {\n void registryRevision;\n return pluginUserMessageActions();\n }, [registryRevision]);\n const onFileLink = useCallback<MessageFileLinkHandler>(\n (label, explicit = false) => {\n if (sessionId === null) return undefined;\n const tab = explicit ? fileTabForPath(sessionId, label) : resolveFileLink(label);\n if (tab === undefined) return undefined;\n return () => {\n openTransientTab(sessionId, tab);\n openTab(tab.id);\n };\n },\n [openTab, resolveFileLink, sessionId],\n );\n const visibleEntries = useMemo(() => {\n const shown = entries.filter((entry) => entry.kind !== 'queued');\n return limit === undefined ? shown : shown.slice(-limit);\n }, [entries, limit]);\n // A tool that presents itself as a message has no frame to share, so only\n // the card-shaped ones are gathered into runs.\n const units = useMemo(() => {\n void registryRevision;\n return timelineUnits(\n visibleEntries,\n (name) => (pluginToolRenderer(name, toolStatuses)?.timelinePresentation ?? 'tool') === 'tool',\n );\n }, [registryRevision, toolStatuses, visibleEntries]);\n const scroller = useRef<HTMLDivElement>(null);\n const unitKey = useCallback(\n (index: number): string => {\n const unit = units[index]!;\n return unit.kind === 'group' ? `group-${unit.entries[0]?.id ?? ''}` : unit.entry.id;\n },\n [units],\n );\n // This component opts out of compiler memoization because the virtualizer is mutable.\n // oxlint-disable-next-line react/incompatible-library\n const virtualizer = useVirtualizer({\n count: units.length,\n getScrollElement: () => scroller.current,\n estimateSize: () => 80,\n overscan: 8,\n getItemKey: unitKey,\n initialRect: { width: 0, height: 800 },\n });\n // Rows start at the 80px estimate and grow once measured. The layout effect\n // watches this so a measured row is followed like a new one.\n const totalSize = virtualizer.getTotalSize();\n // The transcript's height as of the last entry. Whether to follow the newest\n // line is decided against this rather than against a scroll event, because\n // an event fires after the fact and a fast run can grow the transcript\n // before the browser has reported the reader's scroll.\n const lastHeight = useRef(0);\n const lastLayoutEntries = useRef(visibleEntries);\n const following = useRef(true);\n const [unread, setUnread] = useState(false);\n // Where the bottom of the transcript sat before a window was prepended.\n // Restoring against this is what keeps the reader's place: prepending grows\n // the scroll height above them, and the browser would otherwise leave the\n // viewport where it was and the content would appear to jump.\n const anchor = useRef<{ key: string; offset: number } | null>(null);\n // The first entry's key. A window prepended above the reader changes it, and\n // nothing else does: an entry arriving at the bottom, or the streaming one\n // growing, leaves the top of the transcript alone. That is the difference\n // between holding the reader's place and refusing to follow a live run.\n const firstId = useRef<string | null>(null);\n\n const atBottom = (element: HTMLDivElement, height: number): boolean =>\n element.scrollTop + element.clientHeight >= height - PINNED_THRESHOLD_PX;\n\n const followLatest = (): void => {\n const element = scroller.current;\n if (!element || !following.current) return;\n element.scrollTop = Math.max(0, element.scrollHeight - element.clientHeight);\n setUnread(false);\n };\n\n const jumpToLatest = (): void => {\n following.current = true;\n setUnread(false);\n if (!requestLatestHistory(historyKey)) followLatest();\n };\n\n /** Reaching the bottom by hand is the same as never having left it. */\n const onScroll = (): void => {\n const element = scroller.current;\n if (!element) return;\n const bottom = atBottom(element, element.scrollHeight);\n following.current = bottom;\n if (bottom) setUnread(false);\n // A compact fold shows a fixed tail of a live thread; asking for the\n // window above it would page history nobody can read there.\n if (\n !compact &&\n ((element.scrollTop <= PAGE_BACK_THRESHOLD_PX && requestOlderHistory(historyKey)) ||\n (bottom && requestNewerHistory(historyKey)))\n ) {\n following.current = false;\n const item = virtualizer.getVirtualItems().find((candidate) => candidate.end > element.scrollTop);\n if (item) anchor.current = { key: String(item.key), offset: element.scrollTop - item.start };\n }\n };\n\n /** Wheel input is explicit intent to leave the live tail. */\n const onWheel = (): void => {\n following.current = false;\n };\n\n // A different fold starts at the bottom of its transcript. The unread badge\n // is cleared during render so the new fold never paints the old fold's badge;\n // the scroll bookkeeping stays in the layout effect, where refs belong.\n const [shownStore, setShownStore] = useState(store);\n if (shownStore !== store) {\n setShownStore(store);\n setUnread(false);\n }\n useLayoutEffect(() => {\n lastHeight.current = 0;\n firstId.current = null;\n anchor.current = null;\n following.current = true;\n }, [store]);\n\n useLayoutEffect(() => {\n const element = scroller.current;\n if (!element) return;\n const entriesChanged = lastLayoutEntries.current !== visibleEntries;\n lastLayoutEntries.current = visibleEntries;\n // Registry/status regrouping can resize unchanged entries. A no-op regroup\n // must not manufacture unread activity for someone reading older content.\n if (!entriesChanged && element.scrollHeight === lastHeight.current) return;\n // A prepended window grew the transcript upwards; hold the reader where\n // they were by moving down by exactly what appeared above them.\n const held = anchor.current;\n const prepended =\n visibleEntries.length > 0 && firstId.current !== null && visibleEntries[0]?.id !== firstId.current;\n firstId.current = visibleEntries[0]?.id ?? null;\n if (held !== null && prepended) {\n anchor.current = null;\n const index = units.findIndex((_unit, position) => unitKey(position) === held.key);\n if (index >= 0) {\n const offset = virtualizer.getOffsetForIndex(index, 'start')?.[0];\n if (offset !== undefined) element.scrollTop = offset + held.offset;\n lastHeight.current = element.scrollHeight;\n return;\n }\n }\n // The first layout and later streaming growth pin directly to the live tail.\n // Repeated easing fights the changing target and makes token streaming jitter.\n if (lastHeight.current === 0) {\n element.scrollTop = element.scrollHeight;\n lastHeight.current = element.scrollHeight;\n following.current = true;\n setUnread(false);\n return;\n }\n // Measuring a row the estimate got wrong grows the transcript with nothing\n // new in it. A reader sitting on the old bottom stays on the bottom, and\n // nobody else is told there is new activity, because there is none.\n if (!entriesChanged) {\n const pinned = element.scrollTop + element.clientHeight >= lastHeight.current - 1;\n lastHeight.current = element.scrollHeight;\n if (pinned) {\n following.current = true;\n followLatest();\n }\n return;\n }\n const shouldFollow = following.current || atBottom(element, lastHeight.current);\n lastHeight.current = element.scrollHeight;\n if (shouldFollow) {\n following.current = true;\n setUnread(false);\n followLatest();\n return;\n }\n setUnread(true);\n }, [units, visibleEntries, virtualizer, unitKey, totalSize]);\n\n if (visibleEntries.length === 0) {\n return (\n <div className=\"relative flex min-h-0 flex-1 flex-col overflow-y-auto\">\n {empty}\n {backgroundWorkActive ? <BackgroundWorkNotice /> : null}\n </div>\n );\n }\n\n return (\n <div className=\"relative flex min-h-0 flex-1 flex-col\">\n <div\n ref={scroller}\n onScroll={onScroll}\n onWheel={onWheel}\n data-testid={testId}\n className={compact ? 'flex-1 overflow-y-auto px-2.5 py-2' : 'flex-1 overflow-y-auto px-2 py-4 sm:py-5'}\n >\n <div style={{ height: totalSize, position: 'relative', width: '100%' }}>\n {virtualizer.getVirtualItems().map((row) => {\n const unit = units[row.index]!;\n return (\n <div\n key={row.key}\n data-index={row.index}\n ref={virtualizer.measureElement}\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n transform: `translateY(${row.start}px)`,\n paddingBottom: compact ? 8 : 20,\n }}\n >\n {unit.kind === 'group' ? (\n <ToolGroupRow name={unit.name} entries={unit.entries} slotProps={slotProps} statuses={toolStatuses} />\n ) : (\n <Entry\n entry={unit.entry}\n onFileLink={onFileLink}\n pluginActions={pluginActions}\n sessionId={sessionId}\n sessionIdentity={sessionIdentity}\n sessionStreaming={sessionStreaming}\n runtimeActionsDisabled={runtimeActionsDisabled}\n slotProps={slotProps}\n toolStatuses={toolStatuses}\n compact={compact}\n />\n )}\n </div>\n );\n })}\n </div>\n {backgroundWorkActive ? <BackgroundWorkNotice /> : null}\n </div>\n {(unread || hasNewerHistory) && !compact ? (\n <Button\n variant=\"subtle\"\n size=\"sm\"\n data-testid=\"timeline-jump\"\n onClick={jumpToLatest}\n className=\"absolute bottom-3 left-1/2 -translate-x-1/2 border border-doom-border shadow-lg animate-doom-rise\"\n >\n <ChevronDownIcon className=\"h-3 w-3\" />\n New activity below\n </Button>\n ) : null}\n </div>\n );\n}\n\n/** The focused session's conversation, with saved history readable before wake. */\nexport function Timeline() {\n const activeId = useStore(sessionsStore, (state) => state.activeId);\n const dormant = useStore(\n sessionsStore,\n (state) => state.activeId !== null && state.byId[state.activeId]?.summary.dormant === true,\n );\n const idle = useStore(\n sessionsStore,\n (state) => state.activeId !== null && state.byId[state.activeId]?.summary.phase === 'idle',\n );\n const statuses = useActiveSession((state) => state.statuses);\n const widgets = useActiveSession((state) => state.widgets);\n const settled = useActiveSession((state) => state.settled);\n // Only worth saying once the agent has stopped: while it is still running the\n // transcript already shows the work, and the notice would just be noise.\n const hasActiveWork = useActivityGroups(statuses, widgets, activeId).some((group) => group.active);\n const backgroundWorkActive = idle && settled && hasActiveWork;\n return (\n <Transcript\n store={sessionStoreFor(activeId)}\n sessionId={activeId}\n runtimeActionsDisabled={dormant}\n backgroundWorkActive={backgroundWorkActive}\n empty={\n <EmptyState\n data-testid=\"timeline\"\n title={<span className=\"text-xl\">No messages yet</span>}\n description={\n dormant\n ? 'There is no saved conversation to show yet. Waking starts the agent again when you are ready.'\n : 'This session is attached and waiting. Anything you send goes straight to the supervised agent.'\n }\n >\n {dormant ? null : (\n <div data-testid=\"timeline-empty\" className=\"mt-2 flex w-full flex-col gap-1.5\">\n {SUGGESTIONS.map((suggestion, index) => (\n <Button\n key={suggestion}\n variant=\"outline\"\n size=\"lg\"\n data-testid={`suggestion-${index}`}\n onClick={() => {\n void submitMessageWithAck(suggestion);\n }}\n className=\"h-auto justify-between bg-doom-panel px-3 py-2 text-left font-normal text-doom-text\"\n >\n <span className=\"flex-1 truncate\">{suggestion}</span>\n <ExternalLinkIcon className=\"h-3 w-3 shrink-0 text-doom-faint\" />\n </Button>\n ))}\n </div>\n )}\n </EmptyState>\n }\n />\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { SessionState } from "../../lib/sessionModel.mjs";
2
+ import { ReactNode } from "react";
3
+ import { Store } from "@tanstack/store";
4
+ //#region src/web/features/session/Timeline.d.ts
5
+ /**
6
+ * One transcript, whichever fold it reads: the focused session's own, or a
7
+ * thread of it. Owns the scroll pinning; the caller owns the empty state and
8
+ * the session the entries' tool cards act on.
9
+ *
10
+ * `limit` and `compact` are for a fold that is not a whole surface, such as a
11
+ * grid card: only the newest entries, drawn tighter, with no history paging
12
+ * and no jump control, because a card is a glance and not a place to read.
13
+ */
14
+ export declare function Transcript({ store, sessionId, historyKey, empty, testId, backgroundWorkActive, runtimeActionsDisabled, limit, compact }: {
15
+ store: Store<SessionState>;
16
+ sessionId: string | null;
17
+ historyKey?: string | null;
18
+ empty: ReactNode;
19
+ testId?: string;
20
+ backgroundWorkActive?: boolean;
21
+ runtimeActionsDisabled?: boolean;
22
+ limit?: number;
23
+ compact?: boolean;
24
+ }): import("react").JSX.Element;
25
+ /** The focused session's conversation, with saved history readable before wake. */
26
+ export declare function Timeline(): import("react").JSX.Element;
27
+ //#endregion
28
+ //# sourceMappingURL=Timeline.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Timeline.d.mts","names":[],"sources":["../../../../src/web/features/session/Timeline.tsx"],"mappings":";;;;;;;;;;;;;wBAyegB,aACd,OACA,WACA,YACA,OACA,QACA,sBACA,wBACA,OACA;EAEA,OAAO,MAAM;EACb;EACA;EACA,OAAO;EACP;EACA;EACA;EACA;EACA;oBACD,IAAA;;wBA+Qe,4BAAQ,IAAA"}