@datalayer/agent-runtimes 1.3.90 → 1.3.93

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 (421) hide show
  1. package/dist-embed/assets/coincident.worker-Dd47v4fq.js +9 -0
  2. package/dist-embed/assets/comlink.worker-DmOp1QjG.js +9 -0
  3. package/dist-embed/datalayer-app.css +1 -0
  4. package/dist-embed/datalayer-app.js +4 -0
  5. package/dist-embed/lite-service-worker.js +91 -0
  6. package/lib/{loop → apps}/apps/AppComposer.d.ts +1 -1
  7. package/lib/{loop → apps}/apps/AppComposer.js +1 -1
  8. package/lib/{loop → apps}/apps/AppFeedback.d.ts +1 -1
  9. package/lib/{loop → apps}/apps/AppFeedback.js +12 -3
  10. package/lib/{loop → apps}/apps/AppKept.d.ts +1 -1
  11. package/lib/{loop → apps}/apps/AppRenderer.d.ts +1 -1
  12. package/lib/{loop → apps}/apps/AppRenderer.js +2 -2
  13. package/lib/{loop → apps}/apps/AppRuntimePlugins.js +1 -1
  14. package/lib/{loop → apps}/apps/agent.js +1 -1
  15. package/lib/{loop → apps}/apps/appspec.d.ts +1 -1
  16. package/lib/{loop → apps}/apps/checks.js +1 -1
  17. package/lib/{loop → apps}/apps/composer.d.ts +1 -1
  18. package/lib/{loop → apps}/apps/computer.d.ts +1 -1
  19. package/lib/{loop → apps}/apps/customComponents.js +1 -1
  20. package/lib/{loop → apps}/apps/feedback.d.ts +4 -3
  21. package/lib/{loop → apps}/apps/feedback.js +4 -2
  22. package/lib/{loop → apps}/apps/hostTools.d.ts +1 -1
  23. package/lib/{loop → apps}/apps/index.d.ts +1 -1
  24. package/lib/{loop → apps}/apps/index.js +1 -1
  25. package/lib/{loop → apps}/apps/kept.d.ts +1 -1
  26. package/lib/{loop → apps}/apps/language.d.ts +1 -1
  27. package/lib/{loop → apps}/apps/pluginPair.d.ts +1 -1
  28. package/lib/{loop → apps}/apps/records.d.ts +1 -1
  29. package/lib/{loop → apps}/apps/rules.js +1 -1
  30. package/lib/{loop → apps}/apps/saved.d.ts +1 -1
  31. package/lib/{loop → apps}/apps/saved.js +1 -1
  32. package/lib/{loop → apps}/apps/settingsInputs.d.ts +1 -1
  33. package/lib/{loop → apps}/apps/settingsInputs.js +1 -1
  34. package/lib/{loop → apps}/apps/threads.d.ts +1 -1
  35. package/lib/{loop → apps}/apps/uploads.d.ts +1 -1
  36. package/lib/{loop → apps}/apps/visitorToken.js +1 -1
  37. package/lib/{loop → apps}/apps/yaml.js +1 -1
  38. package/lib/{loop → apps}/core/a2uiComponents.js +2 -2
  39. package/lib/{loop → apps}/core/canvasBlocks.js +2 -2
  40. package/lib/{loop → apps}/core/focusRequests.js +1 -1
  41. package/lib/{loop → apps}/core/index.d.ts +19 -0
  42. package/lib/{loop → apps}/core/index.js +28 -1
  43. package/lib/{loop → apps}/core/promptStore.js +1 -1
  44. package/lib/{loop → apps}/core/surfaceRequests.d.ts +1 -1
  45. package/lib/{loop → apps}/core/toolbar.js +1 -1
  46. package/lib/{loop → apps}/embed/AppEmbed.js +1 -1
  47. package/lib/{loop → apps}/embed/LoopEmbed.d.ts +1 -1
  48. package/lib/{loop → apps}/embed/LoopEmbed.js +1 -1
  49. package/lib/{loop → apps}/embed/datalayer-app.js +1 -1
  50. package/lib/{loop → apps}/embed/element.js +1 -1
  51. package/lib/{loop → apps}/embed/embedConfig.d.ts +1 -1
  52. package/lib/{loop → apps}/embed/embedSession.d.ts +1 -1
  53. package/lib/{loop → apps}/embed/hostBridge.d.ts +1 -1
  54. package/lib/{loop → apps}/extensions.js +1 -1
  55. package/lib/{loop → apps}/index.d.ts +1 -1
  56. package/lib/{loop → apps}/index.js +1 -1
  57. package/lib/{loop → apps}/plugins/a2a-sidebar/A2ASidebar.d.ts +1 -1
  58. package/lib/{loop → apps}/plugins/a2a-sidebar/A2ASidebar.js +1 -1
  59. package/lib/{loop → apps}/plugins/a2a-sidebar/index.js +1 -1
  60. package/lib/{loop → apps}/plugins/a2ui/A2uiView.d.ts +1 -1
  61. package/lib/{loop → apps}/plugins/a2ui/index.js +1 -1
  62. package/lib/{loop → apps}/plugins/a2ui-scene/index.d.ts +1 -1
  63. package/lib/{loop → apps}/plugins/a2ui-surface/InlineSurface.d.ts +2 -2
  64. package/lib/{loop → apps}/plugins/a2ui-surface/SurfaceToolResult.d.ts +1 -1
  65. package/lib/{loop → apps}/plugins/a2ui-surface/ownComponents.js +1 -1
  66. package/lib/{loop → apps}/plugins/a2ui-surface/toolResult.d.ts +1 -1
  67. package/lib/{loop → apps}/plugins/agent-a2a/index.js +2 -2
  68. package/lib/{loop → apps}/plugins/agent-a2ui/index.js +1 -1
  69. package/lib/{loop → apps}/plugins/agent-a2ui-jupyter-output/index.js +1 -1
  70. package/lib/{loop → apps}/plugins/agent-capacity/index.d.ts +2 -2
  71. package/lib/{loop → apps}/plugins/agent-capacity/index.js +2 -2
  72. package/lib/{loop → apps}/plugins/agent-checkpoints/index.js +1 -1
  73. package/lib/{loop → apps}/plugins/agent-code-sandbox/index.js +1 -1
  74. package/lib/{loop → apps}/plugins/agent-code-sandboxes/index.js +1 -1
  75. package/lib/{loop → apps}/plugins/agent-codemode/index.js +1 -1
  76. package/lib/{loop → apps}/plugins/agent-compaction/index.js +1 -1
  77. package/lib/{loop → apps}/plugins/agent-evals/index.js +2 -2
  78. package/lib/{loop → apps}/plugins/agent-guardrails/index.js +2 -2
  79. package/lib/{loop → apps}/plugins/agent-hooks/index.js +1 -1
  80. package/lib/{loop → apps}/plugins/agent-inference/index.js +1 -1
  81. package/lib/{loop → apps}/plugins/agent-mcp/index.js +2 -2
  82. package/lib/{loop → apps}/plugins/agent-memory/index.js +2 -2
  83. package/lib/{loop → apps}/plugins/agent-monitoring/index.js +2 -2
  84. package/lib/{loop → apps}/plugins/agent-notifications/index.js +2 -2
  85. package/lib/{loop → apps}/plugins/agent-otel/index.js +1 -1
  86. package/lib/{loop → apps}/plugins/agent-outputs/index.js +1 -1
  87. package/lib/{loop → apps}/plugins/agent-parameters/index.js +2 -2
  88. package/lib/{loop → apps}/plugins/agent-skills/index.js +2 -2
  89. package/lib/{loop → apps}/plugins/agent-subagents/index.js +2 -2
  90. package/lib/{loop → apps}/plugins/agent-tool-approvals/index.js +1 -1
  91. package/lib/{loop → apps}/plugins/agent-triggers/index.js +1 -1
  92. package/lib/{loop → apps}/plugins/agents/AgentSummaryPanel.d.ts +1 -1
  93. package/lib/{loop → apps}/plugins/agents/AnonymousKeyBadge.d.ts +1 -1
  94. package/lib/{loop → apps}/plugins/agents/DatalayerAgentBridge.d.ts +1 -1
  95. package/lib/{loop → apps}/plugins/agents/DatalayerAgentMount.d.ts +1 -1
  96. package/lib/{loop → apps}/plugins/agents/SandboxSelector.d.ts +1 -1
  97. package/lib/{loop → apps}/plugins/agents/SandboxStatusBridge.d.ts +1 -1
  98. package/lib/{loop → apps}/plugins/agents/SandboxView.d.ts +1 -1
  99. package/lib/{loop → apps}/plugins/agents/TeamMemberPicker.d.ts +1 -1
  100. package/lib/{loop → apps}/plugins/agents/agentIcons.d.ts +1 -1
  101. package/lib/{loop → apps}/plugins/agents/agentIcons.js +1 -1
  102. package/lib/{loop → apps}/plugins/agents/appLaunch.d.ts +1 -1
  103. package/lib/{loop → apps}/plugins/agents/browserService.js +1 -1
  104. package/lib/{loop → apps}/plugins/agents/index.d.ts +1 -1
  105. package/lib/{loop → apps}/plugins/agents/index.js +1 -1
  106. package/lib/{loop → apps}/plugins/agents/plugin.d.ts +1 -1
  107. package/lib/{loop → apps}/plugins/agents/service.d.ts +1 -1
  108. package/lib/{loop → apps}/plugins/agents/service.js +1 -1
  109. package/lib/{loop → apps}/plugins/agents/specSubagents.d.ts +1 -1
  110. package/lib/{loop → apps}/plugins/agents/switchable.d.ts +1 -1
  111. package/lib/{loop → apps}/plugins/agents/switchable.js +1 -1
  112. package/lib/{loop → apps}/plugins/agents/team.d.ts +1 -1
  113. package/lib/{loop → apps}/plugins/agents/team.js +1 -1
  114. package/lib/{loop → apps}/plugins/agents/useSandboxService.js +1 -1
  115. package/lib/{loop → apps}/plugins/agents/useTeamSelection.js +1 -1
  116. package/lib/{loop → apps}/plugins/agentspecs/AgentspecPicker.d.ts +1 -1
  117. package/lib/{loop → apps}/plugins/agentspecs/index.js +1 -1
  118. package/lib/{loop → apps}/plugins/app-activity/AppActivity.d.ts +1 -1
  119. package/lib/{loop → apps}/plugins/app-components/index.d.ts +1 -1
  120. package/lib/{loop → apps}/plugins/app-components/index.js +1 -1
  121. package/lib/{loop → apps}/plugins/app-computer/AppComputer.d.ts +1 -1
  122. package/lib/{loop → apps}/plugins/app-computer/AppComputer.js +31 -8
  123. package/lib/{loop → apps}/plugins/app-elements/AppElements.d.ts +1 -1
  124. package/lib/{loop → apps}/plugins/app-elements/index.d.ts +1 -1
  125. package/lib/{loop → apps}/plugins/app-elements/index.js +1 -1
  126. package/lib/{loop → apps}/plugins/app-page/AppPage.d.ts +1 -1
  127. package/lib/{loop → apps}/plugins/app-page/AppPage.js +25 -7
  128. package/lib/{loop → apps}/plugins/app-page/appPageModel.d.ts +1 -1
  129. package/lib/{loop → apps}/plugins/app-page/index.d.ts +1 -1
  130. package/lib/{loop → apps}/plugins/app-page/pageRun.d.ts +1 -1
  131. package/lib/{loop → apps}/plugins/app-page/pageRun.js +1 -1
  132. package/lib/{loop → apps}/plugins/app-rules/AppRulesCard.d.ts +1 -1
  133. package/lib/{loop → apps}/plugins/assistant/index.d.ts +1 -1
  134. package/lib/{loop → apps}/plugins/assistant-characters/index.d.ts +1 -1
  135. package/lib/{loop → apps}/plugins/assistant-characters/index.js +1 -1
  136. package/lib/{loop → apps}/plugins/canvas-blocks/index.d.ts +1 -1
  137. package/lib/{loop → apps}/plugins/canvas-blocks/index.js +1 -1
  138. package/lib/{loop → apps}/plugins/chat/ChatView.d.ts +1 -1
  139. package/lib/{loop → apps}/plugins/chat/ChatView.js +49 -24
  140. package/lib/{loop → apps}/plugins/chat/chatViewTools.js +1 -1
  141. package/lib/{loop → apps}/plugins/chat/index.js +1 -1
  142. package/lib/{loop → apps}/plugins/chat/turnState.d.ts +1 -1
  143. package/lib/{loop → apps}/plugins/chat/turnState.js +1 -1
  144. package/lib/{loop → apps}/plugins/chat-extras/index.js +1 -1
  145. package/lib/{loop → apps}/plugins/chat-header/HeaderView.d.ts +1 -1
  146. package/lib/{loop → apps}/plugins/chat-view/index.js +1 -1
  147. package/lib/{loop → apps}/plugins/checkpoints-sidebar/CheckpointsSidebar.d.ts +1 -1
  148. package/lib/{loop → apps}/plugins/checkpoints-sidebar/CheckpointsSidebar.js +1 -1
  149. package/lib/{loop → apps}/plugins/checkpoints-sidebar/index.js +1 -1
  150. package/lib/{loop → apps}/plugins/commands/index.js +1 -1
  151. package/lib/{loop → apps}/plugins/decks/index.js +1 -1
  152. package/lib/{loop → apps}/plugins/decks/surface.d.ts +1 -1
  153. package/lib/{loop → apps}/plugins/decks/surface.js +1 -1
  154. package/lib/{loop → apps}/plugins/document/DocumentView.d.ts +1 -1
  155. package/lib/{loop → apps}/plugins/document/index.js +1 -1
  156. package/lib/{loop → apps}/plugins/document/openingDocument.d.ts +1 -1
  157. package/lib/{loop → apps}/plugins/document-toolbar/SandboxStatusItem.d.ts +1 -1
  158. package/lib/{loop → apps}/plugins/document-toolbar/index.js +1 -1
  159. package/lib/{loop → apps}/plugins/document-toolbar/names.d.ts +1 -1
  160. package/lib/{loop → apps}/plugins/document-toolbar/names.js +1 -1
  161. package/lib/{loop → apps}/plugins/document-toolbar/plugin.js +1 -1
  162. package/lib/{loop → apps}/plugins/document-view/index.js +1 -1
  163. package/lib/{loop → apps}/plugins/graph/GraphToggle.d.ts +1 -1
  164. package/lib/{loop → apps}/plugins/graph/GraphView.d.ts +1 -1
  165. package/lib/{loop → apps}/plugins/graph/index.js +1 -1
  166. package/lib/{loop → apps}/plugins/graph/viewType.d.ts +1 -1
  167. package/lib/{loop → apps}/plugins/graph/viewType.js +1 -1
  168. package/lib/{loop → apps}/plugins/input-prompt/ComposerView.d.ts +1 -1
  169. package/lib/{loop → apps}/plugins/models/index.js +1 -1
  170. package/lib/{loop → apps}/plugins/notebook/NotebookView.d.ts +1 -1
  171. package/lib/{loop → apps}/plugins/notebook/index.js +1 -1
  172. package/lib/{loop → apps}/plugins/notebook/openingNotebook.d.ts +1 -1
  173. package/lib/{loop → apps}/plugins/notebook-toolbar/index.js +1 -1
  174. package/lib/{loop → apps}/plugins/notebook-toolbar/names.d.ts +1 -1
  175. package/lib/{loop → apps}/plugins/notebook-toolbar/names.js +1 -1
  176. package/lib/{loop → apps}/plugins/notebook-toolbar/plugin.js +1 -1
  177. package/lib/{loop → apps}/plugins/notebook-view/index.js +1 -1
  178. package/lib/{loop → apps}/plugins/page-layout/SplitLayout.d.ts +1 -1
  179. package/lib/{loop → apps}/plugins/page-layout/SplitLayout.js +1 -1
  180. package/lib/{loop → apps}/plugins/page-layout/TurnPanel.d.ts +1 -1
  181. package/lib/{loop → apps}/plugins/page-layout/TurnPanel.js +2 -1
  182. package/lib/{loop → apps}/plugins/plugins-panel/index.js +1 -1
  183. package/lib/{loop → apps}/plugins/prompt/NewChatAction.d.ts +1 -1
  184. package/lib/{loop → apps}/plugins/prompt/index.js +1 -1
  185. package/lib/{loop → apps}/plugins/shell/editorChoice.d.ts +1 -1
  186. package/lib/{loop → apps}/plugins/shell/editorChoice.js +1 -1
  187. package/lib/{loop → apps}/plugins/shell/index.d.ts +1 -1
  188. package/lib/{loop → apps}/plugins/shell/useEditorPreviews.d.ts +1 -1
  189. package/lib/{loop → apps}/plugins/subagent-activity/SubagentPulse.d.ts +1 -1
  190. package/lib/{loop → apps}/plugins/subagent-activity/index.js +1 -1
  191. package/lib/{loop → apps}/plugins/view-switch/index.d.ts +1 -1
  192. package/lib/{loop → apps}/plugins/window-frame/WindowFrame.d.ts +1 -1
  193. package/lib/{loop → apps}/plugins/window-frame/index.js +1 -1
  194. package/lib/{loop → apps}/plugins/window-frame/slots.d.ts +1 -1
  195. package/lib/{loop → apps}/plugins/window-frame/slots.js +1 -1
  196. package/lib/{loop → apps}/presets.d.ts +1 -1
  197. package/lib/{loop → apps}/presets.js +1 -1
  198. package/lib/{loop → apps}/shell/LoopWorkspace.d.ts +1 -1
  199. package/lib/{loop → apps}/shell/PluginToggles.d.ts +1 -1
  200. package/lib/{loop → apps}/shell/SidebarRail.d.ts +1 -1
  201. package/lib/{loop → apps}/shell/ViewSwitcher.d.ts +1 -1
  202. package/lib/{loop → apps}/shell/WorkspaceFullScreenAction.d.ts +1 -1
  203. package/lib/{loop → apps}/shell/index.d.ts +1 -1
  204. package/lib/{loop → apps}/shell/index.js +1 -1
  205. package/lib/{loop → apps}/shell/paneMotion.d.ts +1 -1
  206. package/lib/{loop → apps}/shell/paneMotion.js +1 -1
  207. package/lib/{loop → apps}/shell/useWorkspaceFullScreen.d.ts +1 -1
  208. package/lib/chat/ChatLanguage.js +1 -1
  209. package/lib/chat/messages/ChatMarkdown.js +2 -1
  210. package/lib/chat/messages/markdownWithoutHtml.d.ts +34 -0
  211. package/lib/chat/messages/markdownWithoutHtml.js +53 -0
  212. package/lib/chat/parts/ReasoningPart.js +2 -1
  213. package/lib/chat/parts/TextPart.js +2 -1
  214. package/lib/chat/words.d.ts +7 -0
  215. package/lib/chat/words.js +14 -2
  216. package/lib/components/a2ui/custom/index.js +1 -3
  217. package/lib/components/a2ui/datalayer/FileUpload.js +1 -1
  218. package/lib/components/a2ui/styles.js +16 -5
  219. package/lib/components/cards/NotificationEventCard.js +2 -1
  220. package/lib/components/cards/OutputCard.js +2 -1
  221. package/lib/components/teams/AnswerSurfaces.js +1 -1
  222. package/lib/components/teams/AnswerSurfacesView.js +2 -2
  223. package/lib/components/teams/TeamNotebookView.d.ts +1 -1
  224. package/lib/components/teams/TeamNotebookView.js +1 -1
  225. package/lib/components/teams/sceneTranscript.d.ts +1 -1
  226. package/lib/examples/A2UiAgentExample.js +3 -3
  227. package/lib/examples/A2UiComponentsGalleryExample.js +2 -2
  228. package/lib/examples/A2UiContactCardExample.js +2 -2
  229. package/lib/examples/A2UiJupyterOutputExample.js +3 -3
  230. package/lib/examples/A2UiRestaurantExample.js +2 -2
  231. package/lib/examples/A2UiViewerExample.js +2 -2
  232. package/lib/examples/AgentA2AExample.js +3 -3
  233. package/lib/examples/AgentCheckpointsExample.js +3 -3
  234. package/lib/examples/AgentCodeSandboxExample.js +2 -2
  235. package/lib/examples/AgentCodeSandboxesExample.js +2 -2
  236. package/lib/examples/AgentCodemodeExample.js +3 -3
  237. package/lib/examples/AgentCompactionExample.js +2 -2
  238. package/lib/examples/AgentDecideExample.js +3 -3
  239. package/lib/examples/AgentEvalsExample.js +2 -2
  240. package/lib/examples/AgentGuardrailsExample.js +3 -3
  241. package/lib/examples/AgentHooksExample.js +2 -2
  242. package/lib/examples/AgentInferenceProviderExample.js +2 -2
  243. package/lib/examples/AgentMCPExample.js +3 -3
  244. package/lib/examples/AgentMemoryExample.js +2 -2
  245. package/lib/examples/AgentMonitoringExample.js +3 -3
  246. package/lib/examples/AgentNotificationsExample.js +2 -2
  247. package/lib/examples/AgentOtelExample.js +2 -2
  248. package/lib/examples/AgentOutputsExample.js +2 -2
  249. package/lib/examples/AgentParametersExample.js +2 -2
  250. package/lib/examples/AgentSkillsExample.js +2 -2
  251. package/lib/examples/AgentSubagentsExample.js +2 -2
  252. package/lib/examples/AgentToolApprovalsExample.js +2 -2
  253. package/lib/examples/AgentTriggersExample.js +2 -2
  254. package/lib/examples/AssistantExample.js +1 -1
  255. package/lib/examples/DecksAgent.js +2 -2
  256. package/lib/examples/DocumentPageAgent.js +1 -1
  257. package/lib/examples/LoopAppComputerExample.js +1 -1
  258. package/lib/examples/LoopShellExample.js +3 -3
  259. package/lib/examples/LoopWorkspaceExample.d.ts +1 -1
  260. package/lib/examples/LoopWorkspaceExample.js +5 -5
  261. package/lib/examples/NotebookPageAgent.js +1 -1
  262. package/lib/examples/utils/AssistantGalleryGrid.js +1 -1
  263. package/lib/examples/utils/owlCharacterPlugin.js +1 -1
  264. package/lib/index.d.ts +1 -1
  265. package/lib/index.js +1 -1
  266. package/lib/loop-example-main.js +1 -1
  267. package/lib/loop-main.js +9 -9
  268. package/lib/stories/loop/ReferenceScreens.js +1 -1
  269. package/lib/ui-plugins/MCPUIPlugin.d.ts +14 -0
  270. package/lib/ui-plugins/MCPUIPlugin.js +17 -48
  271. package/lib/ui-plugins/index.d.ts +1 -1
  272. package/lib/ui-plugins/index.js +1 -1
  273. package/package.json +3 -2
  274. /package/lib/{loop → apps}/apps/AppKept.js +0 -0
  275. /package/lib/{loop → apps}/apps/AppRuntimePlugins.d.ts +0 -0
  276. /package/lib/{loop → apps}/apps/agent.d.ts +0 -0
  277. /package/lib/{loop → apps}/apps/appspec.js +0 -0
  278. /package/lib/{loop → apps}/apps/checks.d.ts +0 -0
  279. /package/lib/{loop → apps}/apps/composer.js +0 -0
  280. /package/lib/{loop → apps}/apps/computer.js +0 -0
  281. /package/lib/{loop → apps}/apps/customComponents.d.ts +0 -0
  282. /package/lib/{loop → apps}/apps/hostTools.js +0 -0
  283. /package/lib/{loop → apps}/apps/kept.js +0 -0
  284. /package/lib/{loop → apps}/apps/language.js +0 -0
  285. /package/lib/{loop → apps}/apps/pluginPair.js +0 -0
  286. /package/lib/{loop → apps}/apps/records.js +0 -0
  287. /package/lib/{loop → apps}/apps/rules.d.ts +0 -0
  288. /package/lib/{loop → apps}/apps/threads.js +0 -0
  289. /package/lib/{loop → apps}/apps/uploads.js +0 -0
  290. /package/lib/{loop → apps}/apps/visitorToken.d.ts +0 -0
  291. /package/lib/{loop → apps}/apps/yaml.d.ts +0 -0
  292. /package/lib/{loop → apps}/core/a2uiComponents.d.ts +0 -0
  293. /package/lib/{loop → apps}/core/canvasBlocks.d.ts +0 -0
  294. /package/lib/{loop → apps}/core/focusRequests.d.ts +0 -0
  295. /package/lib/{loop → apps}/core/promptStore.d.ts +0 -0
  296. /package/lib/{loop → apps}/core/surfaceRequests.js +0 -0
  297. /package/lib/{loop → apps}/core/toolbar.d.ts +0 -0
  298. /package/lib/{loop → apps}/embed/AppEmbed.d.ts +0 -0
  299. /package/lib/{loop → apps}/embed/datalayer-app.d.ts +0 -0
  300. /package/lib/{loop → apps}/embed/element.d.ts +0 -0
  301. /package/lib/{loop → apps}/embed/embedConfig.js +0 -0
  302. /package/lib/{loop → apps}/embed/embedSession.js +0 -0
  303. /package/lib/{loop → apps}/embed/embedTheme.d.ts +0 -0
  304. /package/lib/{loop → apps}/embed/embedTheme.js +0 -0
  305. /package/lib/{loop → apps}/embed/hostBridge.js +0 -0
  306. /package/lib/{loop → apps}/extensions.d.ts +0 -0
  307. /package/lib/{loop → apps}/plugins/a2a-sidebar/index.d.ts +0 -0
  308. /package/lib/{loop → apps}/plugins/a2ui/A2uiView.js +0 -0
  309. /package/lib/{loop → apps}/plugins/a2ui/index.d.ts +0 -0
  310. /package/lib/{loop → apps}/plugins/a2ui-scene/index.js +0 -0
  311. /package/lib/{loop → apps}/plugins/a2ui-surface/InlineSurface.js +0 -0
  312. /package/lib/{loop → apps}/plugins/a2ui-surface/SurfaceToolResult.js +0 -0
  313. /package/lib/{loop → apps}/plugins/a2ui-surface/index.d.ts +0 -0
  314. /package/lib/{loop → apps}/plugins/a2ui-surface/index.js +0 -0
  315. /package/lib/{loop → apps}/plugins/a2ui-surface/ownComponents.d.ts +0 -0
  316. /package/lib/{loop → apps}/plugins/a2ui-surface/toolResult.js +0 -0
  317. /package/lib/{loop → apps}/plugins/agent-a2a/index.d.ts +0 -0
  318. /package/lib/{loop → apps}/plugins/agent-a2ui/index.d.ts +0 -0
  319. /package/lib/{loop → apps}/plugins/agent-a2ui-jupyter-output/index.d.ts +0 -0
  320. /package/lib/{loop → apps}/plugins/agent-checkpoints/index.d.ts +0 -0
  321. /package/lib/{loop → apps}/plugins/agent-code-sandbox/index.d.ts +0 -0
  322. /package/lib/{loop → apps}/plugins/agent-code-sandboxes/index.d.ts +0 -0
  323. /package/lib/{loop → apps}/plugins/agent-codemode/index.d.ts +0 -0
  324. /package/lib/{loop → apps}/plugins/agent-compaction/index.d.ts +0 -0
  325. /package/lib/{loop → apps}/plugins/agent-evals/index.d.ts +0 -0
  326. /package/lib/{loop → apps}/plugins/agent-guardrails/index.d.ts +0 -0
  327. /package/lib/{loop → apps}/plugins/agent-hooks/index.d.ts +0 -0
  328. /package/lib/{loop → apps}/plugins/agent-inference/index.d.ts +0 -0
  329. /package/lib/{loop → apps}/plugins/agent-mcp/index.d.ts +0 -0
  330. /package/lib/{loop → apps}/plugins/agent-memory/index.d.ts +0 -0
  331. /package/lib/{loop → apps}/plugins/agent-monitoring/index.d.ts +0 -0
  332. /package/lib/{loop → apps}/plugins/agent-notifications/index.d.ts +0 -0
  333. /package/lib/{loop → apps}/plugins/agent-otel/index.d.ts +0 -0
  334. /package/lib/{loop → apps}/plugins/agent-outputs/index.d.ts +0 -0
  335. /package/lib/{loop → apps}/plugins/agent-parameters/index.d.ts +0 -0
  336. /package/lib/{loop → apps}/plugins/agent-skills/index.d.ts +0 -0
  337. /package/lib/{loop → apps}/plugins/agent-subagents/index.d.ts +0 -0
  338. /package/lib/{loop → apps}/plugins/agent-tool-approvals/index.d.ts +0 -0
  339. /package/lib/{loop → apps}/plugins/agent-triggers/index.d.ts +0 -0
  340. /package/lib/{loop → apps}/plugins/agents/AgentSummaryPanel.js +0 -0
  341. /package/lib/{loop → apps}/plugins/agents/AnonymousKeyBadge.js +0 -0
  342. /package/lib/{loop → apps}/plugins/agents/DatalayerAgentBridge.js +0 -0
  343. /package/lib/{loop → apps}/plugins/agents/DatalayerAgentMount.js +0 -0
  344. /package/lib/{loop → apps}/plugins/agents/SandboxSelector.js +0 -0
  345. /package/lib/{loop → apps}/plugins/agents/SandboxStatusBridge.js +0 -0
  346. /package/lib/{loop → apps}/plugins/agents/SandboxView.js +0 -0
  347. /package/lib/{loop → apps}/plugins/agents/TeamMemberPicker.js +0 -0
  348. /package/lib/{loop → apps}/plugins/agents/appLaunch.js +0 -0
  349. /package/lib/{loop → apps}/plugins/agents/browserService.d.ts +0 -0
  350. /package/lib/{loop → apps}/plugins/agents/plugin.js +0 -0
  351. /package/lib/{loop → apps}/plugins/agents/specSubagents.js +0 -0
  352. /package/lib/{loop → apps}/plugins/agents/useSandboxService.d.ts +0 -0
  353. /package/lib/{loop → apps}/plugins/agents/useTeamSelection.d.ts +0 -0
  354. /package/lib/{loop → apps}/plugins/agentspecs/AgentspecPicker.js +0 -0
  355. /package/lib/{loop → apps}/plugins/agentspecs/index.d.ts +0 -0
  356. /package/lib/{loop → apps}/plugins/app-activity/AppActivity.js +0 -0
  357. /package/lib/{loop → apps}/plugins/app-activity/index.d.ts +0 -0
  358. /package/lib/{loop → apps}/plugins/app-activity/index.js +0 -0
  359. /package/lib/{loop → apps}/plugins/app-computer/index.d.ts +0 -0
  360. /package/lib/{loop → apps}/plugins/app-computer/index.js +0 -0
  361. /package/lib/{loop → apps}/plugins/app-elements/AppElements.js +0 -0
  362. /package/lib/{loop → apps}/plugins/app-page/appPageModel.js +0 -0
  363. /package/lib/{loop → apps}/plugins/app-page/index.js +0 -0
  364. /package/lib/{loop → apps}/plugins/app-rules/AppRulesCard.js +0 -0
  365. /package/lib/{loop → apps}/plugins/app-rules/index.d.ts +0 -0
  366. /package/lib/{loop → apps}/plugins/app-rules/index.js +0 -0
  367. /package/lib/{loop → apps}/plugins/assistant/index.js +0 -0
  368. /package/lib/{loop → apps}/plugins/chat/chatViewTools.d.ts +0 -0
  369. /package/lib/{loop → apps}/plugins/chat/index.d.ts +0 -0
  370. /package/lib/{loop → apps}/plugins/chat-extras/index.d.ts +0 -0
  371. /package/lib/{loop → apps}/plugins/chat-header/HeaderView.js +0 -0
  372. /package/lib/{loop → apps}/plugins/chat-header/index.d.ts +0 -0
  373. /package/lib/{loop → apps}/plugins/chat-header/index.js +0 -0
  374. /package/lib/{loop → apps}/plugins/chat-view/index.d.ts +0 -0
  375. /package/lib/{loop → apps}/plugins/checkpoints-sidebar/index.d.ts +0 -0
  376. /package/lib/{loop → apps}/plugins/commands/index.d.ts +0 -0
  377. /package/lib/{loop → apps}/plugins/decks/DeckSurface.d.ts +0 -0
  378. /package/lib/{loop → apps}/plugins/decks/DeckSurface.js +0 -0
  379. /package/lib/{loop → apps}/plugins/decks/DecksMenu.d.ts +0 -0
  380. /package/lib/{loop → apps}/plugins/decks/DecksMenu.js +0 -0
  381. /package/lib/{loop → apps}/plugins/decks/index.d.ts +0 -0
  382. /package/lib/{loop → apps}/plugins/document/DocumentView.js +0 -0
  383. /package/lib/{loop → apps}/plugins/document/index.d.ts +0 -0
  384. /package/lib/{loop → apps}/plugins/document/openingDocument.js +0 -0
  385. /package/lib/{loop → apps}/plugins/document-toolbar/SandboxStatusItem.js +0 -0
  386. /package/lib/{loop → apps}/plugins/document-toolbar/index.d.ts +0 -0
  387. /package/lib/{loop → apps}/plugins/document-toolbar/plugin.d.ts +0 -0
  388. /package/lib/{loop → apps}/plugins/document-view/index.d.ts +0 -0
  389. /package/lib/{loop → apps}/plugins/graph/GraphToggle.js +0 -0
  390. /package/lib/{loop → apps}/plugins/graph/GraphView.js +0 -0
  391. /package/lib/{loop → apps}/plugins/graph/index.d.ts +0 -0
  392. /package/lib/{loop → apps}/plugins/input-prompt/ComposerView.js +0 -0
  393. /package/lib/{loop → apps}/plugins/input-prompt/index.d.ts +0 -0
  394. /package/lib/{loop → apps}/plugins/input-prompt/index.js +0 -0
  395. /package/lib/{loop → apps}/plugins/models/index.d.ts +0 -0
  396. /package/lib/{loop → apps}/plugins/notebook/NotebookView.js +0 -0
  397. /package/lib/{loop → apps}/plugins/notebook/index.d.ts +0 -0
  398. /package/lib/{loop → apps}/plugins/notebook/openingNotebook.js +0 -0
  399. /package/lib/{loop → apps}/plugins/notebook-toolbar/index.d.ts +0 -0
  400. /package/lib/{loop → apps}/plugins/notebook-toolbar/items.d.ts +0 -0
  401. /package/lib/{loop → apps}/plugins/notebook-toolbar/items.js +0 -0
  402. /package/lib/{loop → apps}/plugins/notebook-toolbar/plugin.d.ts +0 -0
  403. /package/lib/{loop → apps}/plugins/notebook-view/index.d.ts +0 -0
  404. /package/lib/{loop → apps}/plugins/page-layout/index.d.ts +0 -0
  405. /package/lib/{loop → apps}/plugins/page-layout/index.js +0 -0
  406. /package/lib/{loop → apps}/plugins/plugins-panel/index.d.ts +0 -0
  407. /package/lib/{loop → apps}/plugins/prompt/NewChatAction.js +0 -0
  408. /package/lib/{loop → apps}/plugins/prompt/index.d.ts +0 -0
  409. /package/lib/{loop → apps}/plugins/shell/index.js +0 -0
  410. /package/lib/{loop → apps}/plugins/shell/useEditorPreviews.js +0 -0
  411. /package/lib/{loop → apps}/plugins/subagent-activity/SubagentPulse.js +0 -0
  412. /package/lib/{loop → apps}/plugins/subagent-activity/index.d.ts +0 -0
  413. /package/lib/{loop → apps}/plugins/view-switch/index.js +0 -0
  414. /package/lib/{loop → apps}/plugins/window-frame/WindowFrame.js +0 -0
  415. /package/lib/{loop → apps}/plugins/window-frame/index.d.ts +0 -0
  416. /package/lib/{loop → apps}/shell/LoopWorkspace.js +0 -0
  417. /package/lib/{loop → apps}/shell/PluginToggles.js +0 -0
  418. /package/lib/{loop → apps}/shell/SidebarRail.js +0 -0
  419. /package/lib/{loop → apps}/shell/ViewSwitcher.js +0 -0
  420. /package/lib/{loop → apps}/shell/WorkspaceFullScreenAction.js +0 -0
  421. /package/lib/{loop → apps}/shell/useWorkspaceFullScreen.js +0 -0
@@ -41,7 +41,7 @@ import { AGENTS_PLUGIN_NAME } from '../agents/plugin';
41
41
  import { useConfig } from '../../../hooks/useConfig';
42
42
  import { useSkills, useSkillActions } from '../../../hooks/useSkills';
43
43
  import { AI_MODEL_CATALOGUE, isChatModel } from '../../../specs/models';
44
- import { LoopAgentBlueprint, LoopAgentGate, LoopChatComposer, LoopChatExtras, LoopChatHeader, LoopChatLayout, LoopChatSuggestion, LoopChatSurface, LoopChatTurn, LoopCommand, LoopFrontendTool, LoopRunProps, LoopSlots, canOpenView, runForwardedProps, onPromptFocusRequest, onSurfaceRequest, useLoopPromptStore, } from '../../core';
44
+ import { LoopAgentBlueprint, LoopAgentGate, LoopChatComposer, LoopChatExtras, LoopChatHeader, LoopChatLayout, LoopChatSuggestion, LoopChatSurface, LoopChatTurn, LoopCommand, LoopFrontendTool, LoopRunProps, LoopSlots, agentServerOf, noRuntimeSaid, canOpenView, runForwardedProps, onPromptFocusRequest, onSurfaceRequest, useLoopPromptStore, } from '../../core';
45
45
  import { messageText, turnWritersOf } from './turnState';
46
46
  import { isInactiveSurfaceContribution, orderToolContributions, toolsForChatView, } from './chatViewTools';
47
47
  import { useAgentCommandTools } from '../../../tools/adapters/commands';
@@ -946,8 +946,12 @@ export default function ChatView({ workspace }) {
946
946
  * opened against. Addressing the latter would be talking to a machine that
947
947
  * has never heard of it. The same value for every other target, where the
948
948
  * two are the same server.
949
+ *
950
+ * Nothing while a Datalayer runtime is not assigned (the pool had none, or
951
+ * it is still being given): the chat is off and says so below, rather than
952
+ * sending to the host's server — on a hosted page, the page's own origin.
949
953
  */
950
- const agentServerUrl = workspace.sandbox.agentBaseUrl || workspace.serverUrl;
954
+ const agentServerUrl = agentServerOf(workspace.sandbox, workspace.serverUrl);
951
955
  /*
952
956
  * Who a single request may be addressed to.
953
957
  *
@@ -1041,12 +1045,25 @@ export default function ChatView({ workspace }) {
1041
1045
  * Studio's Preview and the hosted page, rather than left unanswered.
1042
1046
  */
1043
1047
  const ambient = useChatAvailability();
1044
- const chatDisabled = gateBlocked || keyExpired || Boolean(inPageRefusal) || ambient.disabled;
1048
+ /*
1049
+ * No agent to talk to: a Datalayer runtime not assigned (STUDIO P-24,
1050
+ * round 9). Said in a sentence — why, when its launch was refused — and
1051
+ * nothing is sent; the header does not say *Ready*.
1052
+ */
1053
+ const noRuntime = agentServerUrl === undefined
1054
+ ? noRuntimeSaid(workspace.sandbox, chatText)
1055
+ : undefined;
1056
+ const chatDisabled = gateBlocked ||
1057
+ keyExpired ||
1058
+ Boolean(inPageRefusal) ||
1059
+ Boolean(noRuntime) ||
1060
+ ambient.disabled;
1045
1061
  const disabledReason = keyExpired
1046
1062
  ? expiredKeyIsTemporary
1047
1063
  ? chatText.demoKeyExpired
1048
1064
  : chatText.keyExpired
1049
1065
  : (inPageRefusal ??
1066
+ noRuntime ??
1050
1067
  gateReason ??
1051
1068
  (ambient.disabled ? ambient.disableReason : undefined));
1052
1069
  /*
@@ -1250,6 +1267,10 @@ export default function ChatView({ workspace }) {
1250
1267
  ? openedThread.thread
1251
1268
  : undefined
1252
1269
  : givenThread;
1270
+ /*
1271
+ * None without a server (`noRuntime`): the chat is off and connects to
1272
+ * nothing — no address is made up for it.
1273
+ */
1253
1274
  const protocol = useMemo(() => inPage
1254
1275
  ? browserProtocolConfig({
1255
1276
  agentId: member?.specId ?? agentId,
@@ -1280,23 +1301,25 @@ export default function ChatView({ workspace }) {
1280
1301
  // its session API does on a runtime.
1281
1302
  modeEffect: blueprintTurn?.modeEffect,
1282
1303
  })
1283
- : {
1284
- type: 'ag-ui',
1285
- // An application's agent is spoken to through its session API
1286
- // (LOOP R-04): each thread a session, recorded under its uid,
1287
- // run in the name the application runs in, and taking what the
1288
- // page did besides the message — the same AG-UI events back.
1289
- endpoint: runsApp
1290
- ? `${agentServerUrl}/api/v1/apps/agents/${encodeURIComponent(agentId)}/ag-ui/`
1291
- : `${agentServerUrl}/api/v1/ag-ui/${agentId}/`,
1292
- ...(runsApp && iamToken ? { authToken: iamToken } : {}),
1293
- agentId,
1294
- // `/api/v1/configure`, not `/api/v1/configure/config`: the hooks
1295
- // strip one trailing `config`/`configure` segment to find the API
1296
- // base, so the longer form doubles it.
1297
- configEndpoint: `${agentServerUrl}/api/v1/configure`,
1298
- enableConfigQuery: true,
1299
- }, [
1304
+ : agentServerUrl !== undefined
1305
+ ? {
1306
+ type: 'ag-ui',
1307
+ // An application's agent is spoken to through its session API
1308
+ // (LOOP R-04): each thread a session, recorded under its uid,
1309
+ // run in the name the application runs in, and taking what the
1310
+ // page did besides the message — the same AG-UI events back.
1311
+ endpoint: runsApp
1312
+ ? `${agentServerUrl}/api/v1/apps/agents/${encodeURIComponent(agentId)}/ag-ui/`
1313
+ : `${agentServerUrl}/api/v1/ag-ui/${agentId}/`,
1314
+ ...(runsApp && iamToken ? { authToken: iamToken } : {}),
1315
+ agentId,
1316
+ // `/api/v1/configure`, not `/api/v1/configure/config`: the hooks
1317
+ // strip one trailing `config`/`configure` segment to find the API
1318
+ // base, so the longer form doubles it.
1319
+ configEndpoint: `${agentServerUrl}/api/v1/configure`,
1320
+ enableConfigQuery: true,
1321
+ }
1322
+ : undefined, [
1300
1323
  agentId,
1301
1324
  inPage,
1302
1325
  inference,
@@ -1321,7 +1344,7 @@ export default function ChatView({ workspace }) {
1321
1344
  * need one, and a browser agent has none — hence the menus below being
1322
1345
  * gated on the data rather than switched on unconditionally.
1323
1346
  */
1324
- const configQuery = useConfig(!inPage, protocol.type === 'ag-ui' ? protocol.configEndpoint : undefined, undefined, agentId);
1347
+ const configQuery = useConfig(!inPage, protocol?.type === 'ag-ui' ? protocol.configEndpoint : undefined, undefined, agentId);
1325
1348
  const skillsQuery = useSkills(true);
1326
1349
  const skillActions = useSkillActions(agentId);
1327
1350
  // `undefined` until the runtime answers: its answer is then the list.
@@ -1338,7 +1361,7 @@ export default function ChatView({ workspace }) {
1338
1361
  * catalogue that was never going to arrive. The agentspecs catalogue below
1339
1362
  * is the answer for this case and needs no request at all.
1340
1363
  */
1341
- if (inPage) {
1364
+ if (inPage || agentServerUrl === undefined) {
1342
1365
  return undefined;
1343
1366
  }
1344
1367
  let cancelled = false;
@@ -1424,7 +1447,7 @@ export default function ChatView({ workspace }) {
1424
1447
  */
1425
1448
  const selectModel = useCallback(async (model) => {
1426
1449
  setPickedModel(model);
1427
- if (inPage) {
1450
+ if (inPage || agentServerUrl === undefined) {
1428
1451
  return;
1429
1452
  }
1430
1453
  await fetch(`${agentServerUrl}/api/v1/configure/inference/provider`, {
@@ -1663,7 +1686,9 @@ export default function ChatView({ workspace }) {
1663
1686
  brandIcon: presence?.face ? (_jsx(PresenceFace, { face: presence.face, size: 20, state: presenceNow })) : (_jsx(BrandIcon, { size: 20 })),
1664
1687
  // An application says what it is doing, in plain words, beside
1665
1688
  // its name (T-08); an agent's chat keeps its header as it is.
1666
- headerContent: presence ? _jsx(PresenceLine, { state: presenceNow }) : undefined, emptyState: {
1689
+ headerContent:
1690
+ // Not *Ready* with no runtime: the header says why instead.
1691
+ presence && !noRuntime ? (_jsx(PresenceLine, { state: presenceNow })) : undefined, emptyState: {
1667
1692
  // An application's own face, at the page's size of the three
1668
1693
  // (LOOP T-08, T-19): the thing a person's eye lands on first.
1669
1694
  icon: presence?.face ? (_jsx("span", { "aria-hidden": true, style: { fontSize: FACE_LARGE, lineHeight: 1 }, children: _jsx(FaceDrawing, { face: presence.face, size: FACE_LARGE }) })) : (_jsx(BrandIcon, { size: 48 })),
@@ -26,7 +26,7 @@
26
26
  * Names are matched by their reference form and their raw `datalayer_` form
27
27
  * alike, since the adapter registers whichever the definition carries.
28
28
  *
29
- * @module loop/plugins/chat/chatViewTools
29
+ * @module apps/plugins/chat/chatViewTools
30
30
  */
31
31
  /** The reference name, with the adapter's prefix and the editor suffix off. */
32
32
  function bareName(name) {
@@ -5,7 +5,7 @@
5
5
  /**
6
6
  * The chat plugin: the first view, and the proof that chat is not special.
7
7
  *
8
- * @module loop/plugins/chat
8
+ * @module apps/plugins/chat
9
9
  */
10
10
  import { CommentDiscussionIcon, FoldIcon, SparkleFillIcon, SyncIcon, } from '@primer/octicons-react';
11
11
  import { contribution, definePlugin } from '@datalayer/reactor';
@@ -11,7 +11,7 @@
11
11
  * shows it as the Chat component does: the chat view hands it every change
12
12
  * of its items, streaming included.
13
13
  *
14
- * @module loop/plugins/chat/turnState
14
+ * @module apps/plugins/chat/turnState
15
15
  */
16
16
  import { type ReadonlySignal } from '@datalayer/reactor';
17
17
  import type { ContextSnapshotData } from '../../../types';
@@ -15,7 +15,7 @@
15
15
  * shows it as the Chat component does: the chat view hands it every change
16
16
  * of its items, streaming included.
17
17
  *
18
- * @module loop/plugins/chat/turnState
18
+ * @module apps/plugins/chat/turnState
19
19
  */
20
20
  import { signal } from '@datalayer/reactor';
21
21
  /** A message's words, whether its content is a string or parts. */
@@ -20,7 +20,7 @@
20
20
  * <LoopEmbed plugins={[capacityPlugin, plugin]} … />
21
21
  * ```
22
22
  *
23
- * @module loop/plugins/chat-extras
23
+ * @module apps/plugins/chat-extras
24
24
  */
25
25
  import { contribution, definePlugin, signal } from '@datalayer/reactor';
26
26
  import { LoopChatExtras } from '../../core';
@@ -5,7 +5,7 @@
5
5
  * pulls the kernel indicator and its friends, and the plugin's module
6
6
  * should stay a manifest.
7
7
  *
8
- * @module loop/plugins/chat-header/HeaderView
8
+ * @module apps/plugins/chat-header/HeaderView
9
9
  */
10
10
  import type { JSX } from 'react';
11
11
  import type { LoopChatHeaderProps } from '../../core';
@@ -9,7 +9,7 @@
9
9
  * to call "None", renamed to what it actually is. Requires the input-prompt
10
10
  * plugin, whose footer the icon sits in.
11
11
  *
12
- * @module loop/plugins/chat-view
12
+ * @module apps/plugins/chat-view
13
13
  */
14
14
  import { CommentDiscussionIcon } from '@primer/octicons-react';
15
15
  import { NONE_EDITOR } from '../shell/editorChoice';
@@ -8,7 +8,7 @@
8
8
  * once the server's fresh snapshot has arrived, so what is on screen is what
9
9
  * the agent now remembers.
10
10
  *
11
- * @module loop/plugins/checkpoints-sidebar/CheckpointsSidebar
11
+ * @module apps/plugins/checkpoints-sidebar/CheckpointsSidebar
12
12
  */
13
13
  import React from 'react';
14
14
  import type { LoopWorkspaceContext } from '../../core';
@@ -13,7 +13,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
13
  * once the server's fresh snapshot has arrived, so what is on screen is what
14
14
  * the agent now remembers.
15
15
  *
16
- * @module loop/plugins/checkpoints-sidebar/CheckpointsSidebar
16
+ * @module apps/plugins/checkpoints-sidebar/CheckpointsSidebar
17
17
  */
18
18
  import { useCallback, useEffect, useMemo, useRef, useState, } from 'react';
19
19
  import { Button, Heading, IconButton, Label, Text, TextInput, Timeline, } from '@primer/react';
@@ -11,7 +11,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
11
11
  * with how they were taken, lets a person save one between turns, rewind
12
12
  * the conversation to one — the chat reloads its transcript — and drop one.
13
13
  *
14
- * @module loop/plugins/checkpoints-sidebar
14
+ * @module apps/plugins/checkpoints-sidebar
15
15
  */
16
16
  import { definePlugin } from '@datalayer/reactor';
17
17
  import { LoopSlots } from '../../core';
@@ -23,7 +23,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
23
23
  * component: it reads the contributions and the workspace it was handed, and
24
24
  * re-registers when either changes.
25
25
  *
26
- * @module loop/plugins/commands
26
+ * @module apps/plugins/commands
27
27
  */
28
28
  import { useEffect } from 'react';
29
29
  import { definePlugin } from '@datalayer/reactor';
@@ -26,7 +26,7 @@
26
26
  * `DeckViewPlugin` is the footer icon that switches to the deck, like the
27
27
  * notebook's and the document's.
28
28
  *
29
- * @module loop/plugins/decks
29
+ * @module apps/plugins/decks
30
30
  */
31
31
  import { ProjectIcon } from '@primer/octicons-react';
32
32
  import { configurePlugin, contribution, definePlugin, } from '@datalayer/reactor';
@@ -2,6 +2,6 @@
2
2
  * The editor surface the deck is shown on: what the selector, the footer
3
3
  * icon, the composer menu and the store's "reveal" all point at.
4
4
  *
5
- * @module loop/plugins/decks/surface
5
+ * @module apps/plugins/decks/surface
6
6
  */
7
7
  export declare const DECK_SURFACE_ID = "deck";
@@ -6,6 +6,6 @@
6
6
  * The editor surface the deck is shown on: what the selector, the footer
7
7
  * icon, the composer menu and the store's "reveal" all point at.
8
8
  *
9
- * @module loop/plugins/decks/surface
9
+ * @module apps/plugins/decks/surface
10
10
  */
11
11
  export const DECK_SURFACE_ID = 'deck';
@@ -5,7 +5,7 @@
5
5
  * what keeps `@datalayer/jupyter-lexical` — and the Lumino nodes it initialises
6
6
  * on import — out of the shell's bundle until someone opens a document.
7
7
  *
8
- * @module loop/plugins/document/DocumentView
8
+ * @module apps/plugins/document/DocumentView
9
9
  */
10
10
  import type { JSX } from 'react';
11
11
  import { type ChatSurfaceProps } from '../../core';
@@ -8,7 +8,7 @@
8
8
  * The same shape as the notebook plugin, contributed to the same point: an
9
9
  * editor the conversation is about, not an alternative to it.
10
10
  *
11
- * @module loop/plugins/document
11
+ * @module apps/plugins/document
12
12
  */
13
13
  import { FileIcon } from '@primer/octicons-react';
14
14
  import { contribution, definePlugin } from '@datalayer/reactor';
@@ -17,7 +17,7 @@
17
17
  * The output is what this code prints, from a real run: a fabricated output
18
18
  * on a page asking to be trusted is a lie told at the worst possible moment.
19
19
  *
20
- * @module loop/plugins/document/openingDocument
20
+ * @module apps/plugins/document/openingDocument
21
21
  */
22
22
  import type { SerializedEditorState } from 'lexical';
23
23
  import 'prismjs/components/prism-python';
@@ -9,7 +9,7 @@
9
9
  * Read through the sandbox service's signal rather than the workspace snapshot
10
10
  * so it tracks the sandbox itself, including while it is starting.
11
11
  *
12
- * @module loop/plugins/document-toolbar/SandboxStatusItem
12
+ * @module apps/plugins/document-toolbar/SandboxStatusItem
13
13
  */
14
14
  import type { JSX } from 'react';
15
15
  export declare function SandboxStatusItem(): JSX.Element | null;
@@ -15,7 +15,7 @@
15
15
  * Lazy, waiting on the document toolbar point — a workspace where nobody opens
16
16
  * a document never fetches it.
17
17
  *
18
- * @module loop/plugins/document-toolbar
18
+ * @module apps/plugins/document-toolbar
19
19
  */
20
20
  import { defineLazyPlugin, onContributionPoint } from '@datalayer/reactor';
21
21
  import { LoopDocumentToolbar, LoopDocumentToolbarItem } from '../../core';
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * The plugin's name, on its own — see the notebook toolbar's `names` module.
3
3
  *
4
- * @module loop/plugins/document-toolbar/names
4
+ * @module apps/plugins/document-toolbar/names
5
5
  */
6
6
  export declare const DOCUMENT_TOOLBAR_PLUGIN_NAME = "@datalayer/loop-plugin-document-toolbar";
@@ -5,6 +5,6 @@
5
5
  /**
6
6
  * The plugin's name, on its own — see the notebook toolbar's `names` module.
7
7
  *
8
- * @module loop/plugins/document-toolbar/names
8
+ * @module apps/plugins/document-toolbar/names
9
9
  */
10
10
  export const DOCUMENT_TOOLBAR_PLUGIN_NAME = '@datalayer/loop-plugin-document-toolbar';
@@ -6,7 +6,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
6
6
  /**
7
7
  * The document toolbar plugin's module.
8
8
  *
9
- * @module loop/plugins/document-toolbar/plugin
9
+ * @module apps/plugins/document-toolbar/plugin
10
10
  */
11
11
  import { contribution, definePlugin } from '@datalayer/reactor';
12
12
  import { LoopDocumentToolbar } from '../../core';
@@ -9,7 +9,7 @@
9
9
  * only while a document is actually contributed, and requires the
10
10
  * input-prompt plugin, whose footer the icon sits in.
11
11
  *
12
- * @module loop/plugins/document-view
12
+ * @module apps/plugins/document-view
13
13
  */
14
14
  import { FileIcon } from '@primer/octicons-react';
15
15
  import { defineViewPlugin } from '../view-switch';
@@ -6,7 +6,7 @@
6
6
  * was mounted before showing it — which is a panel knowing about a plugin.
7
7
  * Contributed here, the button simply goes when the plugin does.
8
8
  *
9
- * @module loop/plugins/graph/GraphToggle
9
+ * @module apps/plugins/graph/GraphToggle
10
10
  */
11
11
  import type { JSX } from 'react';
12
12
  import type { LoopWorkspaceContext } from '../../core';
@@ -10,7 +10,7 @@
10
10
  * graph cannot; a workspace whose server plugins are not tracked here is better
11
11
  * drawn as the frontend platform alone than as a frontend plus a guess.
12
12
  *
13
- * @module loop/plugins/graph/GraphView
13
+ * @module apps/plugins/graph/GraphView
14
14
  */
15
15
  import type { JSX } from 'react';
16
16
  export default function GraphView(): JSX.Element;
@@ -11,7 +11,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
11
11
  * the workspace. Keeping them apart is what lets the graph stay generic — it
12
12
  * is drawn the same way in a music store and in an agent workspace.
13
13
  *
14
- * @module loop/plugins/graph
14
+ * @module apps/plugins/graph
15
15
  */
16
16
  import { WorkflowIcon } from '@primer/octicons-react';
17
17
  import { configurePlugin, contribution, definePlugin, } from '@datalayer/reactor';
@@ -4,7 +4,7 @@
4
4
  * Split out so the button can name the view without importing the plugin that
5
5
  * declares it — which would be a cycle, since the plugin imports the button.
6
6
  *
7
- * @module loop/plugins/graph/viewType
7
+ * @module apps/plugins/graph/viewType
8
8
  */
9
9
  /** The view the graph plugin contributes. */
10
10
  export declare const GRAPH_VIEW_TYPE = "graph";
@@ -8,7 +8,7 @@
8
8
  * Split out so the button can name the view without importing the plugin that
9
9
  * declares it — which would be a cycle, since the plugin imports the button.
10
10
  *
11
- * @module loop/plugins/graph/viewType
11
+ * @module apps/plugins/graph/viewType
12
12
  */
13
13
  /** The view the graph plugin contributes. */
14
14
  export const GRAPH_VIEW_TYPE = 'graph';
@@ -7,7 +7,7 @@
7
7
  * layout's current-turn panel is the first of these; the point is open to any
8
8
  * plugin.
9
9
  *
10
- * @module loop/plugins/input-prompt/ComposerView
10
+ * @module apps/plugins/input-prompt/ComposerView
11
11
  */
12
12
  import type { JSX } from 'react';
13
13
  import { type LoopChatComposerProps } from '../../core';
@@ -5,7 +5,7 @@
5
5
  /**
6
6
  * `@datalayer/loop-plugin-models` — which model is answering.
7
7
  *
8
- * @module loop/plugins/models
8
+ * @module apps/plugins/models
9
9
  */
10
10
  import { contribution, definePlugin } from '@datalayer/reactor';
11
11
  import { LoopCommand } from '../../core';
@@ -2,7 +2,7 @@
2
2
  * The notebook view: the ephemeral notebook, bound to the sandbox the base
3
3
  * plugin owns.
4
4
  *
5
- * @module loop/plugins/notebook/NotebookView
5
+ * @module apps/plugins/notebook/NotebookView
6
6
  */
7
7
  import type { JSX } from 'react';
8
8
  import { type ChatSurfaceProps } from '../../core';
@@ -13,7 +13,7 @@
13
13
  * relationship is in the extension graph rather than in prose, and the reactor
14
14
  * pulls the base plugin in whether or not the host remembered to mount it.
15
15
  *
16
- * @module loop/plugins/notebook
16
+ * @module apps/plugins/notebook
17
17
  */
18
18
  import { RowsIcon } from '@primer/octicons-react';
19
19
  import { contribution, definePlugin } from '@datalayer/reactor';
@@ -32,7 +32,7 @@
32
32
  * kernel that will run the next cell; the moment anyone runs anything, real
33
33
  * output replaces this.
34
34
  *
35
- * @module loop/plugins/notebook/openingNotebook
35
+ * @module apps/plugins/notebook/openingNotebook
36
36
  */
37
37
  import type { INotebookContent } from '@jupyterlab/nbformat';
38
38
  /**
@@ -22,7 +22,7 @@
22
22
  * notebook never fetches it at all — which is the whole reason its manifest
23
23
  * lives here and its code does not.
24
24
  *
25
- * @module loop/plugins/notebook-toolbar
25
+ * @module apps/plugins/notebook-toolbar
26
26
  */
27
27
  import { defineLazyPlugin, onContributionPoint } from '@datalayer/reactor';
28
28
  import { LoopNotebookToolbar, LoopNotebookToolbarItem } from '../../core';
@@ -4,6 +4,6 @@
4
4
  * Imported by both the manifest and the module it loads, and by hosts that
5
5
  * want to name the plugin without pulling either in.
6
6
  *
7
- * @module loop/plugins/notebook-toolbar/names
7
+ * @module apps/plugins/notebook-toolbar/names
8
8
  */
9
9
  export declare const NOTEBOOK_TOOLBAR_PLUGIN_NAME = "@datalayer/loop-plugin-notebook-toolbar";
@@ -8,6 +8,6 @@
8
8
  * Imported by both the manifest and the module it loads, and by hosts that
9
9
  * want to name the plugin without pulling either in.
10
10
  *
11
- * @module loop/plugins/notebook-toolbar/names
11
+ * @module apps/plugins/notebook-toolbar/names
12
12
  */
13
13
  export const NOTEBOOK_TOOLBAR_PLUGIN_NAME = '@datalayer/loop-plugin-notebook-toolbar';
@@ -9,7 +9,7 @@
9
9
  * kernel indicator reaches for, is fetched when a notebook toolbar is first
10
10
  * read rather than with the shell.
11
11
  *
12
- * @module loop/plugins/notebook-toolbar/plugin
12
+ * @module apps/plugins/notebook-toolbar/plugin
13
13
  */
14
14
  import { contribution, definePlugin } from '@datalayer/reactor';
15
15
  import { LoopNotebookToolbar } from '../../core';
@@ -9,7 +9,7 @@
9
9
  * only while a notebook is actually contributed, and requires the
10
10
  * input-prompt plugin, whose footer the icon sits in.
11
11
  *
12
- * @module loop/plugins/notebook-view
12
+ * @module apps/plugins/notebook-view
13
13
  */
14
14
  // The same icon the notebook's own editor view declares, so the footer
15
15
  // button and the selector entry read as one thing.
@@ -13,7 +13,7 @@
13
13
  * leaves the conversation is kept while the workspace is mounted. The page
14
14
  * opens at the theme's pace (T-10, `paneOpening`).
15
15
  *
16
- * @module loop/plugins/page-layout/SplitLayout
16
+ * @module apps/plugins/page-layout/SplitLayout
17
17
  */
18
18
  import type { JSX } from 'react';
19
19
  import type { ChatLayoutParts } from '../../core';
@@ -87,7 +87,7 @@ export function SplitLayout({ editors, hasEditor, transcript, prompt, chips, pic
87
87
  '&:hover::before, &:focus-visible::before': {
88
88
  width: '3px',
89
89
  bg: 'accent.emphasis',
90
- }
90
+ },
91
91
  } })) : null, _jsx(Box, { "data-testid": "loop-split-page", sx: hasEditor
92
92
  ? {
93
93
  flex: '1 1 0',
@@ -15,7 +15,7 @@
15
15
  * the panel is not is a second transcript: one turn, compact, and the whole
16
16
  * conversation one click away.
17
17
  *
18
- * @module loop/plugins/page-layout/TurnPanel
18
+ * @module apps/plugins/page-layout/TurnPanel
19
19
  */
20
20
  import type { JSX } from 'react';
21
21
  export type TurnPanelFooter = 'full' | 'actions' | 'none';
@@ -8,6 +8,7 @@ import { signal } from '@datalayer/reactor';
8
8
  import { TurnFooter } from '../../../chat/messages/TurnFooter';
9
9
  import { LoopChatTurn } from '../../core';
10
10
  import { Streamdown } from 'streamdown';
11
+ import { REHYPE_PLUGINS_WITHOUT_HTML } from '../../../chat/messages/markdownWithoutHtml';
11
12
  import { streamdownMarkdownStyles } from '../../../chat/styles/streamdownStyles';
12
13
  import { normalizeAssistantMarkdown } from '../../../chat/messages/assistantMarkdown';
13
14
  import { openPagePanel, pageLayoutSheet, } from '@datalayer/primer-addons/lib/reactor';
@@ -89,7 +90,7 @@ export function TurnPanel({ footer = 'full', }) {
89
90
  }, children: turn.user }) }), _jsxs(Box, { display: "flex", gap: 2, alignItems: "flex-start", children: [_jsx(Box, { ref: replyRef, flex: "1 1 auto", minWidth: 0, maxHeight: MAX_HEIGHT, overflowY: "auto", fontSize: 0, lineHeight: 1.5, color: turn.assistant ? 'fg.default' : 'fg.muted',
90
91
  // Rendered markdown brings its own flow; the plain fallbacks
91
92
  // below keep their line breaks.
92
- whiteSpace: turn.assistant ? 'normal' : 'pre-wrap', overflowWrap: "anywhere", children: turn.assistant ? (_jsx(Box, { sx: { ...streamdownMarkdownStyles, fontSize: 0 }, children: _jsx(Streamdown, { children: normalizeAssistantMarkdown(turn.assistant) }) })) : turn.activity ? (_jsx(Text, { sx: { color: 'fg.muted', fontStyle: 'italic' }, children: turn.activity })) : working ? (_jsx(Thinking, {})) : turn.status === 'error' ? ('The agent could not answer.') : ('Done — the result is in the page.') }), _jsx(IconButton, { icon: CommentDiscussionIcon, size: "small", variant: "invisible", "aria-label": "Open the conversation", onClick: openPagePanel, sx: { color: 'fg.muted', flexShrink: 0 } })] }), turn.assistant && turn.activity ? (_jsx(Text, { sx: { fontSize: 0, color: 'fg.muted', fontStyle: 'italic' }, children: turn.activity })) : null, footer === 'full' ? (
93
+ whiteSpace: turn.assistant ? 'normal' : 'pre-wrap', overflowWrap: "anywhere", children: turn.assistant ? (_jsx(Box, { sx: { ...streamdownMarkdownStyles, fontSize: 0 }, children: _jsx(Streamdown, { rehypePlugins: REHYPE_PLUGINS_WITHOUT_HTML, children: normalizeAssistantMarkdown(turn.assistant) }) })) : turn.activity ? (_jsx(Text, { sx: { color: 'fg.muted', fontStyle: 'italic' }, children: turn.activity })) : working ? (_jsx(Thinking, {})) : turn.status === 'error' ? ('The agent could not answer.') : ('Done — the result is in the page.') }), _jsx(IconButton, { icon: CommentDiscussionIcon, size: "small", variant: "invisible", "aria-label": "Open the conversation", onClick: openPagePanel, sx: { color: 'fg.muted', flexShrink: 0 } })] }), turn.assistant && turn.activity ? (_jsx(Text, { sx: { fontSize: 0, color: 'fg.muted', fontStyle: 'italic' }, children: turn.activity })) : null, footer === 'full' ? (
93
94
  // The same footer the transcript draws under a turn: the window's
94
95
  // fill, this turn's tokens in and out, copy, and dismiss.
95
96
  _jsx(TurnFooter, { usage: turn.usage, live: working, latest: true, padding: 0, onCopy: copyTurn, onRemove: () => setDismissedId(turn.id) })) : footer === 'actions' ? (
@@ -21,7 +21,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
21
21
  * plugin contributes it to the manager's action slot now, so it appears and
22
22
  * disappears with the thing it opens.
23
23
  *
24
- * @module loop/plugins/plugins-panel
24
+ * @module apps/plugins/plugins-panel
25
25
  */
26
26
  import { definePlugin } from '@datalayer/reactor';
27
27
  import { GraphPlugin } from '@datalayer/reactor-graph';
@@ -9,7 +9,7 @@
9
9
  * button and the slash command cannot drift: one intent, one path, and the
10
10
  * command's own error shows when no conversation is on screen.
11
11
  *
12
- * @module loop/plugins/prompt/NewChatAction
12
+ * @module apps/plugins/prompt/NewChatAction
13
13
  */
14
14
  import type { JSX } from 'react';
15
15
  import type { LoopWorkspaceContext } from '../../core';
@@ -20,7 +20,7 @@
20
20
  * `loopPlugins({ floatingPrompt: true })` mounts this plugin and asks the
21
21
  * chat for the floating placement together.
22
22
  *
23
- * @module loop/plugins/prompt
23
+ * @module apps/plugins/prompt
24
24
  */
25
25
  import { contribution, definePlugin } from '@datalayer/reactor';
26
26
  import { LoopCommand, LoopSlots, focusPrompt } from '../../core';
@@ -14,7 +14,7 @@
14
14
  * whether the choice came from the selector, `/editor`, or the generic
15
15
  * cycle command.
16
16
  *
17
- * @module loop/plugins/shell/editorChoice
17
+ * @module apps/plugins/shell/editorChoice
18
18
  */
19
19
  import { chooseView, nextView, seedViewChoice, setViewOptions, subscribeViewChoice } from '@datalayer/reactor-shell';
20
20
  /** The choice that means "just the conversation". */