@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
@@ -0,0 +1,4 @@
1
+ [diffend] Oversized file quarantined before diffing.
2
+ name: package/dist-embed/datalayer-app.js
3
+ size: 61290574 bytes
4
+ sha256: 6c6e8ca337bfb08e2a5bdb0bd38aff8df124448d068ffd8f39af80975686a273
@@ -0,0 +1,91 @@
1
+ const CACHE = "precache";
2
+ const broadcast = new BroadcastChannel("/api/drive.v1");
3
+ let enableCache = false;
4
+ self.addEventListener("install", onInstall);
5
+ self.addEventListener("activate", onActivate);
6
+ self.addEventListener("fetch", onFetch);
7
+ function onInstall(event) {
8
+ void self.skipWaiting();
9
+ event.waitUntil(cacheAll());
10
+ }
11
+ function onActivate(event) {
12
+ const searchParams = new URL(location.href).searchParams;
13
+ enableCache = searchParams.get("enableCache") === "true";
14
+ event.waitUntil(self.clients.claim());
15
+ }
16
+ async function onFetch(event) {
17
+ const {
18
+ request
19
+ } = event;
20
+ const url = new URL(event.request.url);
21
+ if (url.pathname === "/api/service-worker-heartbeat") {
22
+ event.respondWith(new Response("ok"));
23
+ return;
24
+ }
25
+ let responsePromise = null;
26
+ if (shouldBroadcast(url)) {
27
+ responsePromise = broadcastOne(request);
28
+ } else if (!shouldDrop(request, url)) {
29
+ responsePromise = maybeFromCache(event);
30
+ }
31
+ if (responsePromise) {
32
+ event.respondWith(responsePromise);
33
+ }
34
+ }
35
+ async function maybeFromCache(event) {
36
+ const {
37
+ request
38
+ } = event;
39
+ if (!enableCache) {
40
+ return await fetch(request);
41
+ }
42
+ let response = await fromCache(request);
43
+ if (response) {
44
+ event.waitUntil(refetch(request));
45
+ } else {
46
+ response = await fetch(request);
47
+ event.waitUntil(updateCache(request, response.clone()));
48
+ }
49
+ return response;
50
+ }
51
+ async function fromCache(request) {
52
+ const cache = await openCache();
53
+ const response = await cache.match(request);
54
+ if (!response || response.status === 404) {
55
+ return null;
56
+ }
57
+ return response;
58
+ }
59
+ async function refetch(request) {
60
+ const fromServer = await fetch(request);
61
+ await updateCache(request, fromServer);
62
+ return fromServer;
63
+ }
64
+ function shouldBroadcast(url) {
65
+ return url.origin === location.origin && url.pathname.includes("/api/drive");
66
+ }
67
+ function shouldDrop(request, url) {
68
+ return request.method !== "GET" || url.origin.match(/^http/) === null || url.pathname.includes("/api/");
69
+ }
70
+ async function broadcastOne(request) {
71
+ const promise = new Promise((resolve) => {
72
+ broadcast.onmessage = (event) => {
73
+ resolve(new Response(JSON.stringify(event.data)));
74
+ };
75
+ });
76
+ const message = await request.json();
77
+ message.receiver = "broadcast.ts";
78
+ broadcast.postMessage(message);
79
+ return await promise;
80
+ }
81
+ async function openCache() {
82
+ return await caches.open(CACHE);
83
+ }
84
+ async function updateCache(request, response) {
85
+ const cache = await openCache();
86
+ return cache.put(request, response);
87
+ }
88
+ async function cacheAll() {
89
+ const cache = await openCache();
90
+ return await cache.addAll([]);
91
+ }
@@ -26,7 +26,7 @@
26
26
  * P-26), its words are theirs; the composer's own, the chat's language's
27
27
  * (`useChatLanguage`).
28
28
  *
29
- * @module loop/apps/AppComposer
29
+ * @module apps/apps/AppComposer
30
30
  */
31
31
  import { type JSX } from 'react';
32
32
  import type { AppSpec, AppStarterSpec } from '../../types/agentspecs';
@@ -31,7 +31,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
31
31
  * P-26), its words are theirs; the composer's own, the chat's language's
32
32
  * (`useChatLanguage`).
33
33
  *
34
- * @module loop/apps/AppComposer
34
+ * @module apps/apps/AppComposer
35
35
  */
36
36
  import { useRef } from 'react';
37
37
  import { ActionList, ActionMenu, IconButton, Text, Token } from '@primer/react';
@@ -10,7 +10,7 @@
10
10
  * application whose record keeps feedback, in the Studio's Preview and on
11
11
  * the hosted page alike.
12
12
  *
13
- * @module loop/apps/AppFeedback
13
+ * @module apps/apps/AppFeedback
14
14
  */
15
15
  import type { JSX } from 'react';
16
16
  import type { AppSpec } from '../../types/agentspecs';
@@ -5,7 +5,7 @@ import { ThumbsdownIcon, ThumbsupIcon } from '@primer/octicons-react';
5
5
  import { contribution, definePlugin, signal } from '@datalayer/reactor';
6
6
  import { useContributions, useSignalValue } from '@datalayer/reactor/react';
7
7
  import { useIAMStore } from '../../state';
8
- import { LoopChatTurn, LoopPromptPanel, } from '../core';
8
+ import { LoopChatTurn, LoopPromptPanel, agentServerOf, } from '../core';
9
9
  import { answerIdOf, FEEDBACK_WORDS, sendFeedback } from './feedback';
10
10
  export const APP_FEEDBACK_PLUGIN_NAME = '@datalayer/loop-plugin-app-feedback';
11
11
  /* A signal to read when no chat contributed a turn: the hook needs one. */
@@ -28,11 +28,20 @@ export function AppFeedback({ app, workspace, }) {
28
28
  const thread = turn.thread;
29
29
  const choice = liked?.turn === turn.id ? liked.liked : null;
30
30
  const done = said?.turn === turn.id ? said : null;
31
- const agentBaseUrl = workspace.sandbox.agentBaseUrl || workspace.serverUrl || '';
31
+ // The runtime that answered: none, nothing is sent (no stand-in server).
32
+ const agentBaseUrl = agentServerOf(workspace.sandbox, workspace.serverUrl);
32
33
  const send = async () => {
33
34
  if (choice === null) {
34
35
  return;
35
36
  }
37
+ if (agentBaseUrl === undefined) {
38
+ setSaid({
39
+ turn: turn.id,
40
+ state: 'refused',
41
+ says: FEEDBACK_WORDS.noRuntime,
42
+ });
43
+ return;
44
+ }
36
45
  setSaid({ turn: turn.id, state: 'sending', says: '' });
37
46
  try {
38
47
  await sendFeedback({
@@ -64,7 +73,7 @@ export function AppFeedback({ app, workspace, }) {
64
73
  flexDirection: 'column',
65
74
  gap: 4,
66
75
  padding: '4px 8px',
67
- }, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 4 }, children: [_jsx(Text, { sx: { fontSize: 0, color: 'fg.muted' }, children: FEEDBACK_WORDS.ask }), _jsx(IconButton, { size: "small", variant: choice === true ? 'default' : 'invisible', icon: ThumbsupIcon, "aria-label": FEEDBACK_WORDS.liked, "aria-pressed": choice === true, onClick: () => setLiked({ turn: turn.id, liked: true }) }), _jsx(IconButton, { size: "small", variant: choice === false ? 'default' : 'invisible', icon: ThumbsdownIcon, "aria-label": FEEDBACK_WORDS.disliked, "aria-pressed": choice === false, onClick: () => setLiked({ turn: turn.id, liked: false }) })] }), choice !== null ? (_jsxs(_Fragment, { children: [_jsx(Textarea, { "aria-label": FEEDBACK_WORDS.comment, placeholder: FEEDBACK_WORDS.comment, value: comment, rows: 2, resize: "vertical", block: true, onChange: event => setComment(event.target.value) }), _jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 8 }, children: [_jsx(Button, { size: "small", variant: "default", disabled: done?.state === 'sending', onClick: () => void send(), children: FEEDBACK_WORDS.send }), _jsx(Text, { sx: { fontSize: 0, color: 'fg.muted' }, children: FEEDBACK_WORDS.where(app.name) })] })] })) : null, done?.state === 'refused' ? (
76
+ }, children: [_jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 4 }, children: [_jsx(Text, { sx: { fontSize: 0, color: 'fg.muted' }, children: FEEDBACK_WORDS.ask }), _jsx(IconButton, { size: "small", variant: choice === true ? 'default' : 'invisible', icon: ThumbsupIcon, "aria-label": FEEDBACK_WORDS.liked, "aria-pressed": choice === true, unsafeDisableTooltip: true, onClick: () => setLiked({ turn: turn.id, liked: true }) }), _jsx(IconButton, { size: "small", variant: choice === false ? 'default' : 'invisible', icon: ThumbsdownIcon, "aria-label": FEEDBACK_WORDS.disliked, "aria-pressed": choice === false, unsafeDisableTooltip: true, onClick: () => setLiked({ turn: turn.id, liked: false }) })] }), choice !== null ? (_jsxs(_Fragment, { children: [_jsx(Textarea, { "aria-label": FEEDBACK_WORDS.comment, placeholder: FEEDBACK_WORDS.comment, value: comment, rows: 2, resize: "vertical", block: true, onChange: event => setComment(event.target.value) }), _jsxs("div", { style: { display: 'flex', alignItems: 'center', gap: 8 }, children: [_jsx(Button, { size: "small", variant: "default", disabled: done?.state === 'sending', onClick: () => void send(), children: FEEDBACK_WORDS.send }), _jsx(Text, { sx: { fontSize: 0, color: 'fg.muted' }, children: FEEDBACK_WORDS.where(app.name) })] })] })) : null, done?.state === 'refused' ? (
68
77
  // Said in the ink, as an alert: not a verdict, so not its colour.
69
78
  _jsx(Text, { role: "alert", sx: { fontSize: 0, color: 'fg.default' }, children: done.says })) : null] }));
70
79
  }
@@ -7,7 +7,7 @@
7
7
  * `AppRenderer` adds the plugin for an application that runs as a
8
8
  * deployment — at its address, embedded — not for its builder's Preview.
9
9
  *
10
- * @module loop/apps/AppKept
10
+ * @module apps/apps/AppKept
11
11
  */
12
12
  import type { JSX } from 'react';
13
13
  import type { AppSpec } from '../../types/agentspecs';
@@ -42,7 +42,7 @@
42
42
  * function: `appPreset`, the preset per kind, as `loopPlugins` is for the
43
43
  * examples.
44
44
  *
45
- * @module loop/apps/AppRenderer
45
+ * @module apps/apps/AppRenderer
46
46
  */
47
47
  import { type ComponentType } from 'react';
48
48
  import { type PluginRef, type ReactorExtension, type ReactorPlugin } from '@datalayer/reactor';
@@ -47,7 +47,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
47
47
  * function: `appPreset`, the preset per kind, as `loopPlugins` is for the
48
48
  * examples.
49
49
  *
50
- * @module loop/apps/AppRenderer
50
+ * @module apps/apps/AppRenderer
51
51
  */
52
52
  import { useMemo } from 'react';
53
53
  import { defineExtension, } from '@datalayer/reactor';
@@ -125,7 +125,7 @@ export function defineAppPlugin(app, shown = app) {
125
125
  suggestions: startersAsOpeners(shown.interface.starters),
126
126
  // In the page, the agent is told what a runtime tells it: its own
127
127
  // spec's prompt, then the application's instructions; on the
128
- // application's model when it names one (`loop/apps/agent`).
128
+ // application's model when it names one (`apps/apps/agent`).
129
129
  instructions: app.instructions,
130
130
  model: app.model,
131
131
  // Its modes and its profiles (LOOP P-19, P-20), as the session API
@@ -26,7 +26,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
26
26
  * A plugin of its own, with no backend requirement, so that it keeps
27
27
  * listening while the application's plugin is stood down. It renders nothing.
28
28
  *
29
- * @module loop/apps/AppRuntimePlugins
29
+ * @module apps/apps/AppRuntimePlugins
30
30
  */
31
31
  import { useCallback, useEffect } from 'react';
32
32
  import { definePlugin } from '@datalayer/reactor';
@@ -13,7 +13,7 @@
13
13
  * browser, so it resolves it the same way: an application on a Cog that the
14
14
  * page looked up among the agentspecs alone ran with no instructions at all.
15
15
  *
16
- * @module loop/apps/agent
16
+ * @module apps/apps/agent
17
17
  */
18
18
  import { getAgentspecs } from '../../specs/agents';
19
19
  import { getCog } from '../../specs/cogs';
@@ -22,7 +22,7 @@
22
22
  *
23
23
  * Pure: nothing here calls a service or renders.
24
24
  *
25
- * @module loop/apps/appspec
25
+ * @module apps/apps/appspec
26
26
  */
27
27
  import type { AppAccent, AppThemeMode, AppThemeVariant, AppAssistantCharacter, AppEmbedMode, AppCustomComponentSpec, AppVoiceSpec, AppKind, AppLayout, AppPageOutputComponent, AppSpec } from '../../types/agentspecs';
28
28
  /** The version of the spec itself. */
@@ -22,7 +22,7 @@
22
22
  *
23
23
  * Pure: nothing here calls a service.
24
24
  *
25
- * @module loop/apps/checks
25
+ * @module apps/apps/checks
26
26
  */
27
27
  import { getAgentspecs } from '../../specs/agents';
28
28
  import { getCog } from '../../specs/cogs';
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * Pure: no React, no network.
9
9
  *
10
- * @module loop/apps/composer
10
+ * @module apps/apps/composer
11
11
  */
12
12
  import type { AppCommandSpec, AppModeEffect, AppProfileSpec, AppSpec, AppStarterSpec } from '../../types/agentspecs';
13
13
  /** Where a command's prompt takes the words typed after it. */
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * Pure but for `fetch`: no React.
9
9
  *
10
- * @module loop/apps/computer
10
+ * @module apps/apps/computer
11
11
  */
12
12
  import type { AppSpec } from '../../types/agentspecs';
13
13
  import type { ConversationEntry } from '../core';
@@ -14,7 +14,7 @@
14
14
  * does not open. How it is drawn, in a sandboxed frame of no origin, is
15
15
  * `components/a2ui/custom`.
16
16
  *
17
- * @module loop/apps/customComponents
17
+ * @module apps/apps/customComponents
18
18
  */
19
19
  import { getComponent } from '../../specs/uiPlugins';
20
20
  /** Its name: a word starting with a capital letter, as the catalog's are named. */
@@ -10,7 +10,7 @@
10
10
  *
11
11
  * Pure: no React; the network is the `fetch` it is handed.
12
12
  *
13
- * @module loop/apps/feedback
13
+ * @module apps/apps/feedback
14
14
  */
15
15
  import type { AppSpec } from '../../types/agentspecs';
16
16
  /** The longest comment kept, as the runtime holds it (`COMMENT_LIMIT`). */
@@ -32,13 +32,14 @@ export declare const answerIdOf: (answers: number) => string | undefined;
32
32
  /** What the feedback strip says, in a person's words. */
33
33
  export declare const FEEDBACK_WORDS: {
34
34
  readonly ask: "Was this answer useful?";
35
- readonly liked: "Useful";
36
- readonly disliked: "Not useful";
35
+ readonly liked: "This answer was useful";
36
+ readonly disliked: "This answer was not useful";
37
37
  readonly comment: "Anything to add? (optional)";
38
38
  readonly send: "Send";
39
39
  readonly kept: (app: string) => string;
40
40
  readonly where: (app: string) => string;
41
41
  readonly tooLong: "A comment is at most 2000 characters.";
42
+ readonly noRuntime: "No runtime is assigned to this conversation, so nothing can be sent.";
42
43
  readonly noSession: "This conversation has no name the application knows yet: send a message first.";
43
44
  };
44
45
  /** Whether an application keeps feedback: its record names it. */
@@ -9,13 +9,15 @@ export const answerIdOf = (answers) => answers > 0 ? `answer-${answers}` : undef
9
9
  /** What the feedback strip says, in a person's words. */
10
10
  export const FEEDBACK_WORDS = {
11
11
  ask: 'Was this answer useful?',
12
- liked: 'Useful',
13
- disliked: 'Not useful',
12
+ // The thumbs' names (P-24): what pressing one says of the answer.
13
+ liked: 'This answer was useful',
14
+ disliked: 'This answer was not useful',
14
15
  comment: 'Anything to add? (optional)',
15
16
  send: 'Send',
16
17
  kept: (app) => `Thank you. Kept in ${app}’s record.`,
17
18
  where: (app) => `What you say is kept with this conversation in ${app}’s record, for its builder to read.`,
18
19
  tooLong: `A comment is at most ${FEEDBACK_COMMENT_LIMIT} characters.`,
20
+ noRuntime: 'No runtime is assigned to this conversation, so nothing can be sent.',
19
21
  noSession: 'This conversation has no name the application knows yet: send a message first.',
20
22
  };
21
23
  /** Whether an application keeps feedback: its record names it. */
@@ -4,7 +4,7 @@
4
4
  * each function it offers. Apart from `embed/hostBridge`, which calls the
5
5
  * page, so that the checks read them as a pure module.
6
6
  *
7
- * @module loop/apps/hostTools
7
+ * @module apps/apps/hostTools
8
8
  */
9
9
  import type { AppHostBridgeSpec, AppHostUser } from '../../types/agentspecs';
10
10
  /** The tool its agent reads what the page passes it with. */
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Applications in LOOP: what an application does when its agent calls a tool.
3
3
  *
4
- * @module loop/apps
4
+ * @module apps/apps
5
5
  */
6
6
  export * from './agent';
7
7
  export * from './AppComposer';
@@ -5,7 +5,7 @@
5
5
  /**
6
6
  * Applications in LOOP: what an application does when its agent calls a tool.
7
7
  *
8
- * @module loop/apps
8
+ * @module apps/apps
9
9
  */
10
10
  export * from './agent';
11
11
  export * from './AppComposer';
@@ -10,7 +10,7 @@
10
10
  *
11
11
  * Pure: no React.
12
12
  *
13
- * @module loop/apps/kept
13
+ * @module apps/apps/kept
14
14
  */
15
15
  import type { AppSpec } from '../../types/agentspecs';
16
16
  import type { ChatTurnSnapshot } from '../core';
@@ -17,7 +17,7 @@
17
17
  *
18
18
  * Pure: no React, no network ({@link preferredLanguages} reads the browser's).
19
19
  *
20
- * @module loop/apps/language
20
+ * @module apps/apps/language
21
21
  */
22
22
  import type { AppInterfaceSpec, AppSpec } from '../../types/agentspecs';
23
23
  /**
@@ -13,7 +13,7 @@
13
13
  * The page follows what its runtime holds with Reactor's
14
14
  * `useBackendPluginStream`, on `appPluginsBase` (`AppRuntimePlugins`).
15
15
  *
16
- * @module loop/apps/pluginPair
16
+ * @module apps/apps/pluginPair
17
17
  */
18
18
  import type { SandboxSnapshot } from '../core';
19
19
  import type { SandboxTarget } from '../plugins/agents/switchable';
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * Pure but for `fetch`: no React.
8
8
  *
9
- * @module loop/apps/records
9
+ * @module apps/apps/records
10
10
  */
11
11
  /** What a record entry is. */
12
12
  export type RecordKind = 'session' | 'tool_call' | 'decision' | 'check' | 'approval' | 'output' | 'feedback'
@@ -32,7 +32,7 @@
32
32
  *
33
33
  * Pure: nothing here calls a tool or renders.
34
34
  *
35
- * @module loop/apps/rules
35
+ * @module apps/apps/rules
36
36
  */
37
37
  import { SERVER_ACTIONS, BACKEND_TOOL_ACTIONS } from '../../specs/actions';
38
38
  /** The four behaviours, from the freest to the most restricted. */
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * Pure: no React.
9
9
  *
10
- * @module loop/apps/saved
10
+ * @module apps/apps/saved
11
11
  */
12
12
  /** The runtime's tool that saves a result as a page of a Space. */
13
13
  export declare const SAVE_TOOL = "save_to_space";
@@ -11,7 +11,7 @@
11
11
  *
12
12
  * Pure: no React.
13
13
  *
14
- * @module loop/apps/saved
14
+ * @module apps/apps/saved
15
15
  */
16
16
  /** The runtime's tool that saves a result as a page of a Space. */
17
17
  export const SAVE_TOOL = 'save_to_space';
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * Pure: no React, no network.
9
9
  *
10
- * @module loop/apps/settingsInputs
10
+ * @module apps/apps/settingsInputs
11
11
  */
12
12
  /** The nine inputs: the field each is, and the widget it is drawn with. */
13
13
  export declare const SETTING_INPUTS: Record<string, {
@@ -11,7 +11,7 @@
11
11
  *
12
12
  * Pure: no React, no network.
13
13
  *
14
- * @module loop/apps/settingsInputs
14
+ * @module apps/apps/settingsInputs
15
15
  */
16
16
  /** The nine inputs: the field each is, and the widget it is drawn with. */
17
17
  export const SETTING_INPUTS = {
@@ -11,7 +11,7 @@
11
11
  *
12
12
  * Pure: the network is the `fetch` it is handed.
13
13
  *
14
- * @module loop/apps/threads
14
+ * @module apps/apps/threads
15
15
  */
16
16
  import type { ChatMessage } from '../../types/messages';
17
17
  /** What opening a thread says, in a person's words. */
@@ -8,7 +8,7 @@
8
8
  *
9
9
  * Pure: no React, no network.
10
10
  *
11
- * @module loop/apps/uploads
11
+ * @module apps/apps/uploads
12
12
  */
13
13
  import type { AppSpec, AppUploadsSpec } from '../../types/agentspecs';
14
14
  /** The largest file a person may send an application, in megabytes. */
@@ -14,7 +14,7 @@
14
14
  * visitor is on the servers (turns a day, a session's minutes, a rate and a
15
15
  * ceiling for the day), not the life of a key.
16
16
  *
17
- * @module loop/apps/visitorToken
17
+ * @module apps/apps/visitorToken
18
18
  */
19
19
  import { useEffect, useState } from 'react';
20
20
  /** The id this tab keeps for its visitor. */
@@ -25,7 +25,7 @@
25
25
  *
26
26
  * Pure: nothing here reads or writes a disk.
27
27
  *
28
- * @module loop/apps/yaml
28
+ * @module apps/apps/yaml
29
29
  */
30
30
  import { Document, isMap, isScalar, isSeq, parseDocument, } from 'yaml';
31
31
  import { dumpAppspec, parseAppspec } from './appspec';
@@ -4,12 +4,12 @@
4
4
  */
5
5
  /**
6
6
  * A component an application adds to the A2UI catalog it is drawn with (LOOP
7
- * P-17), as a contribution point, re-exported by `loop/core`: the components
7
+ * P-17), as a contribution point, re-exported by `apps/core`: the components
8
8
  * its developer wrote, contributed by the application's own plugin, so that
9
9
  * its page, the elements its code shows and its answers draw them — in that
10
10
  * application's workspace, and in no other.
11
11
  *
12
- * @module loop/core/a2uiComponents
12
+ * @module apps/core/a2uiComponents
13
13
  */
14
14
  import { defineContributionPoint } from '@datalayer/reactor';
15
15
  export const LoopA2uiComponent = defineContributionPoint('loop.a2ui.component');
@@ -4,10 +4,10 @@
4
4
  */
5
5
  /**
6
6
  * The Canvas's palette as a contribution point (LOOP C-12), re-exported by
7
- * `loop/core`: kept apart so that reading the palette loads the reactor and
7
+ * `apps/core`: kept apart so that reading the palette loads the reactor and
8
8
  * the catalogue, and nothing of the workspace.
9
9
  *
10
- * @module loop/core/canvasBlocks
10
+ * @module apps/core/canvasBlocks
11
11
  */
12
12
  import { defineContributionPoint } from '@datalayer/reactor';
13
13
  export const LoopCanvasBlock = defineContributionPoint('loop.canvas.block');
@@ -16,7 +16,7 @@
16
16
  * it renders the composer in every placement — docked, in-column, floating —
17
17
  * and the command should reach it wherever it is.
18
18
  *
19
- * @module loop/core/focusRequests
19
+ * @module apps/core/focusRequests
20
20
  */
21
21
  const listeners = new Set();
22
22
  /**
@@ -8,6 +8,7 @@ import type { ContextSnapshotData } from '../../types/context';
8
8
  import type { AssistantCharacter } from '../../chat/assistant/characters';
9
9
  import type { AssistantCharacterData } from '../../chat/assistant/formats/types';
10
10
  import type { PresenceState } from '../../chat/presence/presenceStatus';
11
+ import type { ChatWords } from '../../chat/words';
11
12
  /** Lifecycle of the sandbox a workspace is attached to. */
12
13
  export type SandboxState = 'idle' | 'starting' | 'running' | 'stopping' | 'error';
13
14
  /** What the workspace knows about the sandbox behind it. */
@@ -53,6 +54,24 @@ export type SandboxSnapshot = {
53
54
  */
54
55
  agentBaseUrl?: string;
55
56
  };
57
+ /**
58
+ * The agent-runtimes server a workspace's agent is on, or nothing while
59
+ * there is none.
60
+ *
61
+ * On Datalayer the agent is on its runtime and nowhere else: until one is
62
+ * assigned there is nothing to address, and the host's own server is not a
63
+ * stand-in — on a hosted page it is the page's own origin, which answered a
64
+ * question with a 404 while the pool had no runtime (STUDIO P-24, round 9).
65
+ * Every other target's agent is on the host's server, or on the one its
66
+ * sandbox names.
67
+ */
68
+ export declare function agentServerOf(sandbox: Pick<SandboxSnapshot, 'target' | 'agentBaseUrl'>, serverUrl: string): string | undefined;
69
+ /**
70
+ * What is said while {@link agentServerOf} names no server: the runtime is
71
+ * being assigned, or — its launch refused, the pool empty — none is, and
72
+ * why. One sentence for the chat, the page and the computer alike.
73
+ */
74
+ export declare function noRuntimeSaid(sandbox: Pick<SandboxSnapshot, 'state' | 'errorReason'>, words: Pick<ChatWords, 'noRuntime' | 'runtimeStarting'>): string;
56
75
  /**
57
76
  * What a view reads while the sandbox plugin is absent.
58
77
  *
@@ -11,9 +11,36 @@
11
11
  * never on the shell, so the shell can be replaced (a browser page, a JupyterLab
12
12
  * panel) without touching a single plugin.
13
13
  *
14
- * @module loop/core
14
+ * @module apps/core
15
15
  */
16
16
  import { defineContributionPoint, defineGate } from '@datalayer/reactor';
17
+ /**
18
+ * The agent-runtimes server a workspace's agent is on, or nothing while
19
+ * there is none.
20
+ *
21
+ * On Datalayer the agent is on its runtime and nowhere else: until one is
22
+ * assigned there is nothing to address, and the host's own server is not a
23
+ * stand-in — on a hosted page it is the page's own origin, which answered a
24
+ * question with a 404 while the pool had no runtime (STUDIO P-24, round 9).
25
+ * Every other target's agent is on the host's server, or on the one its
26
+ * sandbox names.
27
+ */
28
+ export function agentServerOf(sandbox, serverUrl) {
29
+ if (sandbox.target === 'datalayer') {
30
+ return sandbox.agentBaseUrl || undefined;
31
+ }
32
+ return sandbox.agentBaseUrl || serverUrl;
33
+ }
34
+ /**
35
+ * What is said while {@link agentServerOf} names no server: the runtime is
36
+ * being assigned, or — its launch refused, the pool empty — none is, and
37
+ * why. One sentence for the chat, the page and the computer alike.
38
+ */
39
+ export function noRuntimeSaid(sandbox, words) {
40
+ return sandbox.state === 'error'
41
+ ? words.noRuntime(sandbox.errorReason ?? '')
42
+ : words.runtimeStarting;
43
+ }
17
44
  /**
18
45
  * What a view reads while the sandbox plugin is absent.
19
46
  *
@@ -23,7 +23,7 @@
23
23
  * on their behalf — `submit` exists for the host that genuinely wants that,
24
24
  * and defaults to off.
25
25
  *
26
- * @module loop/core/promptStore
26
+ * @module apps/core/promptStore
27
27
  */
28
28
  import { create } from 'zustand';
29
29
  export const useLoopPromptStore = create((set, get) => ({
@@ -18,7 +18,7 @@
18
18
  * screen can say so rather than failing silently — which is how this went
19
19
  * unnoticed.
20
20
  *
21
- * @module loop/core/surfaceRequests
21
+ * @module apps/core/surfaceRequests
22
22
  */
23
23
  /** Told which surface somebody asked for. */
24
24
  export type SurfaceRequestListener = (surfaceId: string) => void;
@@ -9,7 +9,7 @@
9
9
  * provider, no toolbar, and no items either — has to be the same in both or
10
10
  * the two editors disagree about what switching a toolbar plugin off means.
11
11
  *
12
- * @module loop/core/toolbar
12
+ * @module apps/core/toolbar
13
13
  */
14
14
  import { useMemo } from 'react';
15
15
  import { useContributions } from '@datalayer/reactor/react';