@datalayer/agent-runtimes 1.5.52 → 1.5.53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (463) hide show
  1. package/dist-embed/chunks/{ChatView-Dy-IgGFL.js → ChatView-CRp8Mt57.js} +4 -4
  2. package/dist-embed/datalayer-app-main.js +86 -86
  3. package/lib/api/runtimes/environments.d.ts +2 -2
  4. package/lib/api/runtimes/environments.js +5 -5
  5. package/lib/api/runtimes/runtimes.d.ts +7 -7
  6. package/lib/api/runtimes/runtimes.js +5 -5
  7. package/lib/apps/__tests__/fixtures/sceneCheckCases.json +1 -1
  8. package/lib/apps/apps/AppBrowserSandbox.js +1 -1
  9. package/lib/apps/apps/AppComposer.d.ts +3 -3
  10. package/lib/apps/apps/AppComposer.js +3 -3
  11. package/lib/apps/apps/AppFeedback.d.ts +1 -1
  12. package/lib/apps/apps/AppKept.d.ts +1 -1
  13. package/lib/apps/apps/AppKept.js +1 -1
  14. package/lib/apps/apps/AppRenderer.d.ts +14 -14
  15. package/lib/apps/apps/AppRenderer.js +18 -20
  16. package/lib/apps/apps/AppRuntimePlugins.js +2 -3
  17. package/lib/apps/apps/agent.js +1 -1
  18. package/lib/apps/apps/appspec.d.ts +10 -10
  19. package/lib/apps/apps/appspec.js +35 -35
  20. package/lib/apps/apps/browserSandbox.d.ts +1 -1
  21. package/lib/apps/apps/checks.d.ts +16 -7
  22. package/lib/apps/apps/checks.js +65 -21
  23. package/lib/apps/apps/composer.d.ts +2 -2
  24. package/lib/apps/apps/composer.js +1 -1
  25. package/lib/apps/apps/computer.d.ts +3 -3
  26. package/lib/apps/apps/computer.js +1 -1
  27. package/lib/apps/apps/customComponents.d.ts +2 -2
  28. package/lib/apps/apps/customComponents.js +3 -3
  29. package/lib/apps/apps/feedback.d.ts +2 -2
  30. package/lib/apps/apps/hostTools.d.ts +3 -3
  31. package/lib/apps/apps/hostTools.js +2 -2
  32. package/lib/apps/apps/kept.d.ts +1 -1
  33. package/lib/apps/apps/language.d.ts +1 -1
  34. package/lib/apps/apps/pluginPair.d.ts +1 -1
  35. package/lib/apps/apps/records.js +1 -1
  36. package/lib/apps/apps/rules.d.ts +2 -2
  37. package/lib/apps/apps/rules.js +2 -2
  38. package/lib/apps/apps/saved.d.ts +1 -1
  39. package/lib/apps/apps/saved.js +1 -1
  40. package/lib/apps/apps/sceneChecks.js +3 -3
  41. package/lib/apps/apps/sceneYaml.js +1 -1
  42. package/lib/apps/apps/sessionRules.d.ts +7 -8
  43. package/lib/apps/apps/sessionRules.js +6 -7
  44. package/lib/apps/apps/settingsInputs.d.ts +1 -1
  45. package/lib/apps/apps/settingsInputs.js +1 -1
  46. package/lib/apps/apps/threads.d.ts +2 -2
  47. package/lib/apps/apps/threads.js +1 -1
  48. package/lib/apps/apps/uploads.d.ts +1 -1
  49. package/lib/apps/apps/visitorToken.d.ts +1 -1
  50. package/lib/apps/apps/visitorToken.js +2 -2
  51. package/lib/apps/core/a2uiComponents.js +1 -2
  52. package/lib/apps/core/appFiles.js +1 -1
  53. package/lib/apps/core/canvasBlocks.d.ts +1 -1
  54. package/lib/apps/core/canvasBlocks.js +1 -1
  55. package/lib/apps/core/canvasParts.d.ts +3 -3
  56. package/lib/apps/core/canvasParts.js +1 -1
  57. package/lib/apps/core/index.d.ts +12 -13
  58. package/lib/apps/core/index.js +5 -6
  59. package/lib/apps/embed/AppEmbed.d.ts +9 -9
  60. package/lib/apps/embed/AppEmbed.js +9 -10
  61. package/lib/apps/embed/LoopEmbed.d.ts +2 -3
  62. package/lib/apps/embed/datalayer-app.js +1 -1
  63. package/lib/apps/embed/element.js +11 -11
  64. package/lib/apps/embed/embedConfig.d.ts +8 -10
  65. package/lib/apps/embed/embedConfig.js +6 -7
  66. package/lib/apps/embed/embedSession.d.ts +3 -3
  67. package/lib/apps/embed/embedSession.js +2 -2
  68. package/lib/apps/embed/embeddedSecrets.d.ts +1 -1
  69. package/lib/apps/embed/embeddedSecrets.js +1 -1
  70. package/lib/apps/embed/hostBridge.d.ts +14 -14
  71. package/lib/apps/embed/hostBridge.js +9 -9
  72. package/lib/apps/embed/loader.js +2 -2
  73. package/lib/apps/embed/visitorApp.d.ts +1 -1
  74. package/lib/apps/index.d.ts +1 -1
  75. package/lib/apps/index.js +3 -3
  76. package/lib/apps/plugins/a2ui/A2uiView.js +1 -1
  77. package/lib/apps/plugins/a2ui-surface/AnswerShows.d.ts +2 -2
  78. package/lib/apps/plugins/a2ui-surface/AnswerShows.js +1 -1
  79. package/lib/apps/plugins/a2ui-surface/InlineSurface.d.ts +1 -1
  80. package/lib/apps/plugins/a2ui-surface/SurfaceToolResult.js +2 -2
  81. package/lib/apps/plugins/a2ui-surface/index.js +1 -1
  82. package/lib/apps/plugins/a2ui-surface/ownComponents.js +1 -1
  83. package/lib/apps/plugins/a2ui-surface/toolResult.d.ts +2 -2
  84. package/lib/apps/plugins/a2ui-surface/toolResult.js +2 -2
  85. package/lib/apps/plugins/agent-capacity/index.d.ts +2 -2
  86. package/lib/apps/plugins/agents/DatalayerAgentBridge.js +4 -4
  87. package/lib/apps/plugins/agents/appLaunch.d.ts +1 -1
  88. package/lib/apps/plugins/agents/plugin.d.ts +4 -4
  89. package/lib/apps/plugins/agents/switchable.js +1 -1
  90. package/lib/apps/plugins/app-activity/AppActivity.d.ts +1 -1
  91. package/lib/apps/plugins/app-components/index.d.ts +1 -2
  92. package/lib/apps/plugins/app-components/index.js +1 -2
  93. package/lib/apps/plugins/app-computer/AppComputer.d.ts +1 -1
  94. package/lib/apps/plugins/app-computer/AppComputer.js +2 -2
  95. package/lib/apps/plugins/app-elements/AppElements.d.ts +1 -2
  96. package/lib/apps/plugins/app-elements/AppElements.js +1 -1
  97. package/lib/apps/plugins/app-elements/QuestionView.d.ts +1 -2
  98. package/lib/apps/plugins/app-elements/QuestionView.js +1 -1
  99. package/lib/apps/plugins/app-elements/index.d.ts +2 -2
  100. package/lib/apps/plugins/app-elements/index.js +2 -2
  101. package/lib/apps/plugins/app-page/AppPage.d.ts +3 -3
  102. package/lib/apps/plugins/app-page/appPageModel.d.ts +5 -5
  103. package/lib/apps/plugins/app-page/appPageModel.js +1 -1
  104. package/lib/apps/plugins/app-page/index.d.ts +3 -3
  105. package/lib/apps/plugins/app-page/index.js +1 -1
  106. package/lib/apps/plugins/app-page/pageRun.d.ts +2 -2
  107. package/lib/apps/plugins/app-page/pageRun.js +2 -2
  108. package/lib/apps/plugins/app-rules/AppRulesCard.d.ts +5 -5
  109. package/lib/apps/plugins/app-rules/AppRulesCard.js +4 -4
  110. package/lib/apps/plugins/assistant/index.d.ts +2 -2
  111. package/lib/apps/plugins/assistant-characters/index.d.ts +2 -2
  112. package/lib/apps/plugins/assistant-characters/index.js +2 -2
  113. package/lib/apps/plugins/canvas-blocks/index.d.ts +1 -1
  114. package/lib/apps/plugins/canvas-blocks/index.js +1 -1
  115. package/lib/apps/plugins/canvas-parts/index.d.ts +5 -5
  116. package/lib/apps/plugins/canvas-parts/index.js +5 -5
  117. package/lib/apps/plugins/chat/ChatView.js +36 -34
  118. package/lib/apps/plugins/chat/index.d.ts +8 -8
  119. package/lib/apps/plugins/document/DocumentView.js +2 -2
  120. package/lib/apps/plugins/notebook/NotebookView.js +1 -1
  121. package/lib/apps/plugins/page-layout/SplitLayout.d.ts +1 -1
  122. package/lib/apps/plugins/pap-sign-in/PapSignInCard.d.ts +1 -1
  123. package/lib/apps/plugins/pap-sign-in/PapSignInCard.js +1 -1
  124. package/lib/apps/plugins/pap-sign-in/index.js +1 -1
  125. package/lib/apps/plugins/pap-sign-in/signIn.d.ts +1 -1
  126. package/lib/apps/plugins/pap-sign-in/signIn.js +1 -1
  127. package/lib/apps/plugins/plugins-panel/index.d.ts +1 -1
  128. package/lib/apps/plugins/plugins-panel/index.js +1 -1
  129. package/lib/apps/plugins/shield-displays/DiffCard.d.ts +2 -2
  130. package/lib/apps/plugins/shield-displays/TerminalCard.d.ts +1 -1
  131. package/lib/apps/plugins/shield-displays/index.js +3 -3
  132. package/lib/apps/presets.d.ts +9 -9
  133. package/lib/apps/presets.js +3 -3
  134. package/lib/apps/shell/LoopWorkspace.d.ts +1 -1
  135. package/lib/apps/shell/LoopWorkspace.js +1 -1
  136. package/lib/apps/shell/PluginToggles.d.ts +1 -1
  137. package/lib/apps/shell/SidebarRail.d.ts +1 -1
  138. package/lib/apps/shell/paneMotion.d.ts +1 -1
  139. package/lib/apps/shell/paneMotion.js +1 -1
  140. package/lib/chat/ChatFloating.d.ts +8 -9
  141. package/lib/chat/ChatFloating.js +4 -4
  142. package/lib/chat/ChatInline.js +1 -1
  143. package/lib/chat/ChatLanguage.d.ts +1 -1
  144. package/lib/chat/ChatLanguage.js +1 -1
  145. package/lib/chat/assistant/AssistantContextMenu.d.ts +1 -1
  146. package/lib/chat/assistant/AssistantStage.d.ts +4 -4
  147. package/lib/chat/assistant/AssistantStage.js +1 -1
  148. package/lib/chat/assistant/BalloonParts.d.ts +1 -1
  149. package/lib/chat/assistant/BalloonVisual.d.ts +1 -1
  150. package/lib/chat/assistant/SpeechBalloon.d.ts +2 -2
  151. package/lib/chat/assistant/SpriteCharacter.d.ts +1 -1
  152. package/lib/chat/assistant/characters.d.ts +2 -2
  153. package/lib/chat/assistant/formats/acf.js +1 -1
  154. package/lib/chat/assistant/formats/files.js +1 -1
  155. package/lib/chat/assistant/formats/index.d.ts +1 -1
  156. package/lib/chat/assistant/formats/index.js +1 -1
  157. package/lib/chat/assistant/formats/types.d.ts +1 -1
  158. package/lib/chat/assistant/state.d.ts +2 -2
  159. package/lib/chat/assistant/toolLine.js +1 -1
  160. package/lib/chat/base/ChatBase.js +28 -20
  161. package/lib/chat/base/conversationItems.d.ts +3 -3
  162. package/lib/chat/base/loopElement.d.ts +2 -2
  163. package/lib/chat/base/loopStep.d.ts +3 -3
  164. package/lib/chat/base/loopStep.js +1 -1
  165. package/lib/chat/base/loopWindow.d.ts +3 -3
  166. package/lib/chat/base/loopWindow.js +3 -3
  167. package/lib/chat/base/uiFiles.d.ts +1 -1
  168. package/lib/chat/base/uiFiles.js +1 -1
  169. package/lib/chat/base/uiOps.d.ts +1 -1
  170. package/lib/chat/base/uiOps.js +1 -1
  171. package/lib/chat/index.js +1 -1
  172. package/lib/chat/indicators/McpStatusIndicator.js +1 -1
  173. package/lib/chat/indicators/SkillsStatusIndicator.js +1 -1
  174. package/lib/chat/messages/ChatMessageList.d.ts +3 -4
  175. package/lib/chat/messages/ChatMessageList.js +2 -2
  176. package/lib/chat/messages/markdownWithoutHtml.d.ts +1 -1
  177. package/lib/chat/messages/markdownWithoutHtml.js +1 -1
  178. package/lib/chat/presence/Presence.d.ts +2 -2
  179. package/lib/chat/presence/Presence.js +1 -1
  180. package/lib/chat/presence/presenceStatus.d.ts +2 -2
  181. package/lib/chat/presence/presenceStatus.js +2 -2
  182. package/lib/chat/prompt/InputPrompt.d.ts +3 -3
  183. package/lib/chat/prompt/InputPromptBase.d.ts +1 -1
  184. package/lib/chat/prompt/InputPromptBase.js +1 -1
  185. package/lib/chat/prompt/InputPromptLexical.d.ts +1 -1
  186. package/lib/chat/styles/streamdownStyles.js +1 -1
  187. package/lib/chat/useViewportDrag.d.ts +1 -1
  188. package/lib/chat/viewModes.d.ts +1 -1
  189. package/lib/chat/viewModes.js +2 -2
  190. package/lib/chat/words.js +1 -1
  191. package/lib/client/mixins/RuntimesMixin.d.ts +3 -3
  192. package/lib/client/mixins/RuntimesMixin.js +3 -3
  193. package/lib/components/a2ui/custom/index.d.ts +3 -3
  194. package/lib/components/a2ui/custom/index.js +1 -1
  195. package/lib/components/a2ui/custom/sandbox.d.ts +2 -2
  196. package/lib/components/a2ui/custom/sandbox.js +2 -2
  197. package/lib/components/a2ui/datalayer/Chart.js +2 -2
  198. package/lib/components/a2ui/datalayer/Chat.js +1 -1
  199. package/lib/components/a2ui/datalayer/Download.js +1 -1
  200. package/lib/components/a2ui/datalayer/Evidence.js +1 -1
  201. package/lib/components/a2ui/datalayer/FileUpload.d.ts +1 -1
  202. package/lib/components/a2ui/datalayer/FileUpload.js +2 -2
  203. package/lib/components/a2ui/datalayer/Form.js +2 -2
  204. package/lib/components/a2ui/datalayer/SchemaForm.d.ts +1 -1
  205. package/lib/components/a2ui/datalayer/Table.js +1 -1
  206. package/lib/components/a2ui/datalayer/drawn.d.ts +1 -1
  207. package/lib/components/a2ui/datalayer/drawn.js +1 -1
  208. package/lib/components/a2ui/datalayer/formWidgets.js +1 -1
  209. package/lib/components/a2ui/datalayer/index.d.ts +1 -1
  210. package/lib/components/a2ui/datalayer/schema.d.ts +2 -2
  211. package/lib/components/a2ui/datalayer/schema.js +2 -2
  212. package/lib/components/a2ui/styles.js +1 -1
  213. package/lib/components/a2ui/visibleWhen.d.ts +3 -3
  214. package/lib/components/a2ui/visibleWhen.js +3 -3
  215. package/lib/components/code-sandboxes/CodeSandboxEnvironmentSelect.d.ts +1 -1
  216. package/lib/components/code-sandboxes/CodeSandboxLauncher.js +1 -1
  217. package/lib/components/code-sandboxes/CodeSandboxUtils.d.ts +1 -1
  218. package/lib/components/code-sandboxes/codeSandboxEnvironments.d.ts +2 -2
  219. package/lib/components/inspector/a2aSpans.d.ts +1 -1
  220. package/lib/components/inspector/a2aSpans.js +1 -1
  221. package/lib/components/teams/A2ATeamGraph.d.ts +3 -3
  222. package/lib/components/teams/A2ATeamGraph.js +1 -3
  223. package/lib/components/teams/AnswerSurfaces.d.ts +1 -1
  224. package/lib/components/teams/NotebookPreview.d.ts +1 -1
  225. package/lib/components/teams/SceneTranscript.d.ts +1 -1
  226. package/lib/components/teams/SceneView.d.ts +1 -1
  227. package/lib/components/teams/a2aTeamFlow.d.ts +1 -1
  228. package/lib/components/teams/a2aTeamFlow.js +1 -1
  229. package/lib/components/teams/sceneStage.d.ts +1 -1
  230. package/lib/components/teams/sceneTranscript.d.ts +1 -1
  231. package/lib/components/teams/useA2ATeam.d.ts +5 -5
  232. package/lib/components/teams/useA2ATeam.js +3 -3
  233. package/lib/config/AgentConfiguration.d.ts +1 -1
  234. package/lib/examples/AssistantExample.d.ts +1 -1
  235. package/lib/examples/AssistantExample.js +1 -1
  236. package/lib/examples/AssistantGalleryExample.d.ts +1 -1
  237. package/lib/examples/AssistantGalleryExample.js +1 -1
  238. package/lib/examples/LoopAppComputerExample.d.ts +1 -1
  239. package/lib/examples/LoopAppComputerExample.js +1 -1
  240. package/lib/examples/ProtocolSignedRequestsExample.d.ts +1 -1
  241. package/lib/examples/ProtocolSignedRequestsExample.js +1 -1
  242. package/lib/examples/ProtocolUcpCheckoutExample.d.ts +1 -1
  243. package/lib/examples/ProtocolUcpCheckoutExample.js +1 -1
  244. package/lib/examples/ScenesExample.d.ts +1 -1
  245. package/lib/examples/ScenesExample.js +1 -1
  246. package/lib/examples/ShieldHarnessExample.d.ts +1 -1
  247. package/lib/examples/ShieldHarnessExample.js +1 -1
  248. package/lib/examples/ShieldPolicyExample.d.ts +1 -1
  249. package/lib/examples/ShieldPolicyExample.js +1 -1
  250. package/lib/examples/VoiceChatExample.d.ts +1 -1
  251. package/lib/examples/VoiceChatExample.js +1 -1
  252. package/lib/examples/example-selector.js +3 -3
  253. package/lib/examples/exampleGroups.js +3 -3
  254. package/lib/examples/pap/PapSignInDisplayView.d.ts +1 -1
  255. package/lib/examples/pap/PapSignInDisplayView.js +1 -1
  256. package/lib/examples/pap/papSignInCases.js +1 -1
  257. package/lib/examples/protocols/signedRequestsDemo.d.ts +1 -1
  258. package/lib/examples/protocols/signedRequestsDemo.js +1 -1
  259. package/lib/examples/protocols/ucpCheckoutDemo.d.ts +1 -1
  260. package/lib/examples/protocols/ucpCheckoutDemo.js +1 -1
  261. package/lib/examples/shield/shieldHarness.d.ts +1 -1
  262. package/lib/examples/shield/shieldPolicyDemo.d.ts +2 -2
  263. package/lib/examples/shield/shieldPolicyDemo.js +1 -1
  264. package/lib/examples/utils/assistantGallery.d.ts +1 -1
  265. package/lib/examples/utils/clippyJsCharacters.js +2 -2
  266. package/lib/examples/utils/testSpriteCharacter.js +2 -2
  267. package/lib/hooks/ownRoutes.d.ts +1 -1
  268. package/lib/hooks/useAgentRuntimes.d.ts +1 -1
  269. package/lib/hooks/useChat.js +1 -1
  270. package/lib/index.js +1 -1
  271. package/lib/loop-example-main.js +1 -1
  272. package/lib/models/Environment.d.ts +11 -11
  273. package/lib/models/Environment.js +1 -1
  274. package/lib/models/RuntimeDTO.d.ts +1 -1
  275. package/lib/portable/activity.d.ts +2 -2
  276. package/lib/portable/activity.js +3 -3
  277. package/lib/portable/adapterEvents.d.ts +1 -1
  278. package/lib/portable/agUiRefusal.d.ts +1 -1
  279. package/lib/portable/agUiRefusal.js +1 -1
  280. package/lib/portable/agui.d.ts +2 -2
  281. package/lib/portable/agui.js +2 -2
  282. package/lib/portable/approvalCard.d.ts +1 -1
  283. package/lib/portable/approvalCard.js +1 -1
  284. package/lib/portable/approvals.d.ts +2 -2
  285. package/lib/portable/approvals.js +1 -1
  286. package/lib/portable/conversation.d.ts +2 -2
  287. package/lib/portable/conversation.js +1 -1
  288. package/lib/portable/direct.d.ts +2 -2
  289. package/lib/portable/displays.d.ts +2 -2
  290. package/lib/portable/displays.js +3 -3
  291. package/lib/portable/fixtures.d.ts +4 -5
  292. package/lib/portable/fixtures.js +4 -5
  293. package/lib/portable/hosts/agentClient.d.ts +5 -6
  294. package/lib/portable/hosts/agentClient.js +7 -7
  295. package/lib/portable/hosts/approvalRenderers.d.ts +6 -7
  296. package/lib/portable/hosts/approvalRenderers.js +2 -3
  297. package/lib/portable/hosts/client.d.ts +9 -6
  298. package/lib/portable/hosts/client.js +9 -8
  299. package/lib/portable/hosts/contracts.d.ts +2 -4
  300. package/lib/portable/hosts/contracts.js +2 -4
  301. package/lib/portable/hosts/contracts.json +2 -2
  302. package/lib/portable/hosts/deadLetters.js +2 -2
  303. package/lib/portable/hosts/deliveries.d.ts +2 -3
  304. package/lib/portable/hosts/forbiddenGraph.d.ts +4 -4
  305. package/lib/portable/hosts/forbiddenGraph.js +4 -4
  306. package/lib/portable/hosts/health.d.ts +3 -4
  307. package/lib/portable/hosts/health.js +3 -4
  308. package/lib/portable/hosts/index.d.ts +1 -1
  309. package/lib/portable/hosts/index.js +1 -1
  310. package/lib/portable/hosts/observability.d.ts +1 -1
  311. package/lib/portable/hosts/observability.js +3 -4
  312. package/lib/portable/hosts/postgresQueue.d.ts +2 -2
  313. package/lib/portable/hosts/postgresQueue.js +3 -3
  314. package/lib/portable/hosts/queue.d.ts +1 -1
  315. package/lib/portable/hosts/quotas.d.ts +2 -2
  316. package/lib/portable/hosts/quotas.js +2 -2
  317. package/lib/portable/hosts/rateLimit.d.ts +1 -1
  318. package/lib/portable/hosts/resolution.d.ts +2 -2
  319. package/lib/portable/hosts/schema.d.ts +1 -1
  320. package/lib/portable/hosts/schema.js +1 -1
  321. package/lib/portable/hosts/secretCipher.d.ts +2 -2
  322. package/lib/portable/hosts/sessionUid.js +1 -2
  323. package/lib/portable/hosts/turnState.d.ts +1 -1
  324. package/lib/portable/index.js +12 -12
  325. package/lib/portable/lifecycle.d.ts +3 -3
  326. package/lib/portable/presence.d.ts +3 -3
  327. package/lib/portable/protectedInput.d.ts +1 -1
  328. package/lib/portable/records.d.ts +2 -2
  329. package/lib/portable/records.js +2 -2
  330. package/lib/portable/runMeasures.d.ts +1 -1
  331. package/lib/portable/runMeasures.js +1 -1
  332. package/lib/portable/runtimes.d.ts +1 -1
  333. package/lib/portable/semantic-events.json +1 -1
  334. package/lib/portable/semantic.d.ts +1 -1
  335. package/lib/portable/semantic.js +1 -1
  336. package/lib/portable/semanticOfAgUi.d.ts +2 -2
  337. package/lib/portable/semanticOfAgUi.js +1 -1
  338. package/lib/portable/signIn.d.ts +5 -5
  339. package/lib/portable/signIn.js +1 -1
  340. package/lib/portable/signInStatus.d.ts +1 -2
  341. package/lib/portable/signInStatus.js +1 -2
  342. package/lib/portable/thread.d.ts +2 -2
  343. package/lib/portable/thread.js +2 -2
  344. package/lib/portable/views.d.ts +5 -5
  345. package/lib/protocols/A2AAdapter.d.ts +1 -1
  346. package/lib/protocols/A2AAdapter.js +3 -3
  347. package/lib/protocols/AGUIAdapter.d.ts +1 -1
  348. package/lib/protocols/AGUIAdapter.js +2 -2
  349. package/lib/protocols/BrowserAgentAdapter.d.ts +2 -2
  350. package/lib/protocols/BrowserAgentAdapter.js +1 -1
  351. package/lib/protocols/VercelAIAdapter.js +2 -2
  352. package/lib/protocols/a2a/index.d.ts +1 -1
  353. package/lib/protocols/a2a/index.js +1 -1
  354. package/lib/protocols/agentProtocols.d.ts +1 -1
  355. package/lib/protocols/agentProtocols.js +1 -1
  356. package/lib/protocols/agentic-commerce/index.d.ts +2 -2
  357. package/lib/protocols/agentic-commerce/index.js +2 -2
  358. package/lib/protocols/commerce.d.ts +1 -1
  359. package/lib/protocols/commerce.js +3 -3
  360. package/lib/protocols/core.d.ts +3 -3
  361. package/lib/protocols/core.js +2 -2
  362. package/lib/protocols/mcp/client.js +1 -1
  363. package/lib/protocols/mcp/index.js +1 -1
  364. package/lib/protocols/pact/index.d.ts +6 -6
  365. package/lib/protocols/pact/index.js +6 -6
  366. package/lib/protocols/ucp/index.d.ts +2 -2
  367. package/lib/protocols/ucp/index.js +2 -2
  368. package/lib/protocols/ucp/merchant.js +1 -2
  369. package/lib/protocols/web-bot-auth/index.d.ts +1 -1
  370. package/lib/protocols/web-bot-auth/index.js +1 -1
  371. package/lib/protocols/web-bot-auth/tap.js +1 -1
  372. package/lib/runtimes/actions.js +2 -2
  373. package/lib/runtimes/apis.d.ts +3 -4
  374. package/lib/runtimes/browser/a2aPeer.d.ts +1 -1
  375. package/lib/runtimes/browser/a2aPeer.js +1 -1
  376. package/lib/runtimes/browser/protocol.d.ts +1 -1
  377. package/lib/runtimes/variants.d.ts +3 -3
  378. package/lib/runtimes/variants.js +4 -4
  379. package/lib/specs/agents/agents.js +2 -2
  380. package/lib/specs/apps.js +28 -28
  381. package/lib/specs/appspecSchema.js +62 -62
  382. package/lib/specs/harnesses.d.ts +1 -1
  383. package/lib/specs/harnesses.js +1 -1
  384. package/lib/specs/policies.d.ts +1 -1
  385. package/lib/specs/policies.js +2 -2
  386. package/lib/specs/protocols.d.ts +1 -1
  387. package/lib/specs/sceneSchema.js +4 -4
  388. package/lib/specs/scenes.js +4 -4
  389. package/lib/specs/standards.d.ts +1 -1
  390. package/lib/specs/ui.d.ts +2 -2
  391. package/lib/specs/ui.js +1 -1
  392. package/lib/specs/uiRenderers.d.ts +1 -1
  393. package/lib/specs/voices.d.ts +2 -2
  394. package/lib/specs/voices.js +2 -2
  395. package/lib/stories/loop/ReferenceScreens.js +1 -1
  396. package/lib/stories/loop/pictures-main.js +2 -2
  397. package/lib/test-setup.js +1 -1
  398. package/lib/types/agentspecs.d.ts +81 -85
  399. package/lib/types/chat.d.ts +26 -13
  400. package/lib/types/messages.d.ts +1 -1
  401. package/lib/types/protocol.d.ts +3 -3
  402. package/lib/types/scenes.d.ts +6 -6
  403. package/lib/types/teams.d.ts +3 -3
  404. package/lib/ui-plugins/MCPUIPlugin.d.ts +2 -2
  405. package/lib/ui-plugins/MCPUIPlugin.js +1 -1
  406. package/lib/voice/ComposerVoice.d.ts +5 -3
  407. package/lib/voice/ComposerVoice.js +4 -4
  408. package/lib/voice/HandsFree.d.ts +9 -3
  409. package/lib/voice/HandsFree.js +8 -3
  410. package/lib/voice/ReadAloud.d.ts +1 -1
  411. package/lib/voice/VoiceInput.d.ts +1 -2
  412. package/lib/voice/VoiceMenu.d.ts +1 -1
  413. package/lib/voice/captions.d.ts +1 -1
  414. package/lib/voice/captions.js +1 -1
  415. package/lib/voice/capture.d.ts +1 -1
  416. package/lib/voice/capture.js +1 -1
  417. package/lib/voice/chatVoice.d.ts +1 -1
  418. package/lib/voice/chatVoice.js +3 -3
  419. package/lib/voice/choices.d.ts +2 -2
  420. package/lib/voice/choices.js +2 -2
  421. package/lib/voice/consent.js +1 -1
  422. package/lib/voice/handsFree.d.ts +29 -4
  423. package/lib/voice/handsFree.js +32 -4
  424. package/lib/voice/hearing.d.ts +1 -1
  425. package/lib/voice/hearing.js +1 -1
  426. package/lib/voice/index.d.ts +2 -2
  427. package/lib/voice/pinned.d.ts +2 -2
  428. package/lib/voice/pinned.js +2 -2
  429. package/lib/voice/sayAloud.d.ts +2 -2
  430. package/lib/voice/sayAloud.js +2 -2
  431. package/lib/voice/sentences.d.ts +1 -1
  432. package/lib/voice/sentences.js +1 -1
  433. package/lib/voice/serverHearing.d.ts +8 -2
  434. package/lib/voice/serverHearing.js +37 -6
  435. package/lib/voice/settings.d.ts +2 -2
  436. package/lib/voice/settings.js +2 -2
  437. package/lib/voice/speaker.d.ts +10 -4
  438. package/lib/voice/speaker.js +5 -2
  439. package/lib/voice/types.d.ts +1 -1
  440. package/lib/voice/useSpokenAnswers.js +2 -2
  441. package/lib/voice/useVoiceSettings.js +1 -1
  442. package/lib/voice/useVoiceSpeaker.js +1 -1
  443. package/package.json +2 -2
  444. package/scripts/codegen/generate_agentic_commerce.sh +1 -1
  445. package/scripts/codegen/generate_agents.py +5 -5
  446. package/scripts/codegen/generate_apps.py +3 -3
  447. package/scripts/codegen/generate_harnesses.py +4 -4
  448. package/scripts/codegen/generate_mcp_servers.py +2 -2
  449. package/scripts/codegen/generate_policies.py +3 -3
  450. package/scripts/codegen/generate_protocols.py +3 -4
  451. package/scripts/codegen/generate_scenes.py +4 -4
  452. package/scripts/codegen/generate_standards.py +3 -3
  453. package/scripts/codegen/generate_teams.py +1 -1
  454. package/scripts/codegen/generate_ui.py +8 -8
  455. package/scripts/codegen/generate_ui_renderers.py +3 -3
  456. package/scripts/codegen/generate_voices.py +4 -4
  457. package/scripts/dist-embed.mjs +1 -1
  458. package/scripts/generate-environments-types.py +1 -1
  459. package/scripts/record-scene-checks.py +2 -2
  460. package/scripts/voice/measure.py +3 -3
  461. package/scripts/voice/pin_store.py +1 -1
  462. package/scripts/voice/serve_store.py +1 -1
  463. package/scripts/voice/transcribe.mjs +1 -1
@@ -72,7 +72,7 @@ const EphemeralDocument = React.lazy(() => import('../document/EphemeralDocument
72
72
  // The agent's details (its context charts draw with ECharts) and the
73
73
  // companion notebook (JupyterLab's notebook) are opened by a click, not drawn
74
74
  // with the conversation: each is its own chunk, fetched when first shown, so
75
- // a chat — and an embedded application (STUDIO D-08) — loads without them.
75
+ // a chat — and an embedded application (D-08) — loads without them.
76
76
  // A chunk that cannot load says so where the view would be.
77
77
  const loadAgentDetails = () => import('../../agents/AgentDetails').then(m => ({ default: m.AgentDetails }));
78
78
  const loadEphemeralNotebook = () => import('../notebook/EphemeralNotebook').then(m => ({
@@ -426,7 +426,7 @@ function ChatBaseInner({ title, subtitle, showHeader = false, showTokenUsage = t
426
426
  // Mode selection
427
427
  useStore: useStoreMode = true, protocol: protocolRaw, onSendMessage, onSendReady, onLoadingChange, onSpeakingChange, onContextSnapshot, enableStreaming = false,
428
428
  // Extended props
429
- brandIcon, avatarConfig, headerButtons, showPoweredBy = false, poweredByProps, emptyState, renderHeader, showTurnFooter = true, notebookToolSurfacesId, footerContent, welcome, trailingContent, voice, voiceSpeaking = false, voiceSentence, onStopSpeaking, onReadAloud, showInformation = false, onInformationClick, headerContent, children, borderRadius, backgroundColor, border, boxShadow, compact = false, placeholder, description = 'Start a conversation with the AI agent.', onStateUpdate, onNewChat, onClear, onMessagesChange, onItemsChange, onDisplayItemsChange, autoFocus = false, suggestions, submitOnSuggestionClick = true, hideMessagesAfterToolUI = false, focusTrigger, frontendTools: frontendToolsProp, enableEphemeralNotebook = false, initialEphemeralNotebookOpen = true, onEphemeralNotebookOpenChange, enableEphemeralDocument = false, initialEphemeralSurfaceMode, onEphemeralSurfaceModeChange, collapsed = false, onExpandFromCollapsed, ephemeralNotebookToolbar, ephemeralNotebookToolbarExtraItems, ephemeralDocumentToolbarExtraItems, ephemeralNotebookCollaborationProvider, ephemeralNotebookCollaborationDocumentId, ephemeralDocumentCollaboration, ephemeralRuntimeOverride,
429
+ brandIcon, avatarConfig, headerButtons, showPoweredBy = false, poweredByProps, emptyState, renderHeader, showTurnFooter = true, notebookToolSurfacesId, footerContent, welcome, trailingContent, voice, voiceSpeaking = false, voiceSentence, onStopSpeaking, voiceLevel, onReadAloud, showInformation = false, onInformationClick, headerContent, children, borderRadius, backgroundColor, border, boxShadow, compact = false, placeholder, description = 'Start a conversation with the AI agent.', onStateUpdate, onNewChat, onClear, onMessagesChange, onItemsChange, onDisplayItemsChange, autoFocus = false, suggestions, submitOnSuggestionClick = true, hideMessagesAfterToolUI = false, focusTrigger, frontendTools: frontendToolsProp, enableEphemeralNotebook = false, initialEphemeralNotebookOpen = true, onEphemeralNotebookOpenChange, enableEphemeralDocument = false, initialEphemeralSurfaceMode, onEphemeralSurfaceModeChange, collapsed = false, onExpandFromCollapsed, ephemeralNotebookToolbar, ephemeralNotebookToolbarExtraItems, ephemeralDocumentToolbarExtraItems, ephemeralNotebookCollaborationProvider, ephemeralNotebookCollaborationDocumentId, ephemeralDocumentCollaboration, ephemeralRuntimeOverride,
430
430
  // Tool invocation hooks
431
431
  onToolCallStart, onToolCallComplete, inspector: inspectorGiven,
432
432
  // Identity/Authorization props
@@ -1083,7 +1083,7 @@ showToolApprovalBanner = true, pendingApprovals: pendingApprovalsProp, onApprove
1083
1083
  const isA2AProtocol = protocol?.type === 'a2a';
1084
1084
  // ---- Component state ----
1085
1085
  /*
1086
- * The conversation (MOBILE M-030): `reduceConversation`'s, as on the phone,
1086
+ * The conversation (M-030): `reduceConversation`'s, as on the phone,
1087
1087
  * whatever protocol the agent speaks — its adapter's events normalised by
1088
1088
  * `conversationEventsOf`. Kept in a ref as each change lands, so the events
1089
1089
  * of one network chunk each read the last, and drawn on the next render
@@ -1186,7 +1186,7 @@ showToolApprovalBanner = true, pendingApprovals: pendingApprovalsProp, onApprove
1186
1186
  const [historyRefreshTick, setHistoryRefreshTick] = useState(0);
1187
1187
  const historyRetryAttemptsRef = useRef(new Map());
1188
1188
  // The steps of an application's code shown so far, as displays (patched
1189
- // as they stream), and the elements it showed (REACTOR_UI RU-3).
1189
+ // as they stream), and the elements it showed (RU-3).
1190
1190
  const uiStepsRef = useRef(emptyUiModel());
1191
1191
  const uiElementsRef = useRef(new Set());
1192
1192
  // Adapter-ready flag — flipped to true once the protocol adapter is initialised
@@ -1559,7 +1559,7 @@ showToolApprovalBanner = true, pendingApprovals: pendingApprovalsProp, onApprove
1559
1559
  hideMessagesAfterToolUIRef.current = hideMessagesAfterToolUI;
1560
1560
  const threadIdRef = useRef(thread?.id || generateMessageId());
1561
1561
  /*
1562
- * The thread a host gave, kept as it was given at mount (LOOP D-13), and
1562
+ * The thread a host gave, kept as it was given at mount (D-13), and
1563
1563
  * told when a message is first sent on a thread: the host keeps it.
1564
1564
  */
1565
1565
  const threadGivenRef = useRef(thread);
@@ -1572,7 +1572,7 @@ showToolApprovalBanner = true, pendingApprovals: pendingApprovalsProp, onApprove
1572
1572
  }
1573
1573
  }, []);
1574
1574
  /*
1575
- * The conversation's ui channel (REACTOR_UI RU-W): one WebSocket per
1575
+ * The conversation's ui channel (RU-W): one WebSocket per
1576
1576
  * conversation, its thread the scope, opened once its session is there
1577
1577
  * (the first event of its first run, or a thread reopened). What its
1578
1578
  * messages show, its steps, its elements, its authors and its window
@@ -1587,7 +1587,7 @@ showToolApprovalBanner = true, pendingApprovals: pendingApprovalsProp, onApprove
1587
1587
  const uiSocketTokenRef = useRef(protocol?.authToken);
1588
1588
  uiSocketTokenRef.current = protocol?.authToken;
1589
1589
  /*
1590
- * Its files (REACTOR_UI RU-6): uploaded to its runtime before the run or
1590
+ * Its files (RU-6): uploaded to its runtime before the run or
1591
1591
  * the press that names them, the conversation's thread their scope; the
1592
1592
  * run carries the ref, never the bytes.
1593
1593
  */
@@ -1678,11 +1678,11 @@ showToolApprovalBanner = true, pendingApprovals: pendingApprovalsProp, onApprove
1678
1678
  uiStepsRef.current = next.steps;
1679
1679
  const routed = next.routed;
1680
1680
  if (routed.to === 'window') {
1681
- // For the page it sits in, outside the conversation (LOOP P-25).
1681
+ // For the page it sits in, outside the conversation (P-25).
1682
1682
  tellLoopWindow(routed.data);
1683
1683
  }
1684
1684
  else if (routed.to === 'step') {
1685
- // A step of its code, drawn as it runs (LOOP P-16).
1685
+ // A step of its code, drawn as it runs (P-16).
1686
1686
  const step = routed.step;
1687
1687
  changeLayer(kept => {
1688
1688
  const anchors = new Map(kept.steps.map(row => [row.item.id, row.after]));
@@ -1700,7 +1700,7 @@ showToolApprovalBanner = true, pendingApprovals: pendingApprovalsProp, onApprove
1700
1700
  });
1701
1701
  }
1702
1702
  else if (routed.to === 'element') {
1703
- // In a side panel or on a page of its own (LOOP P-18).
1703
+ // In a side panel or on a page of its own (P-18).
1704
1704
  uiElementsRef.current.add(routed.change.id);
1705
1705
  applyLoopElement(routed.change);
1706
1706
  }
@@ -1822,7 +1822,7 @@ showToolApprovalBanner = true, pendingApprovals: pendingApprovalsProp, onApprove
1822
1822
  recorderRef.current = null;
1823
1823
  }
1824
1824
  const inspectAnswerRef = useRef('');
1825
- // A line the agent says aloud, from a run's `voice.say` (VOICE.md VO-35).
1825
+ // A line the agent says aloud, from a run's `voice.say` (VO-35).
1826
1826
  const voiceSayRef = useRef(undefined);
1827
1827
  const handleRespondRef = useRef(null);
1828
1828
  // A decision made outside the chat — a host page's own approval banner —
@@ -2367,7 +2367,7 @@ showToolApprovalBanner = true, pendingApprovals: pendingApprovalsProp, onApprove
2367
2367
  if (!historyScopeId)
2368
2368
  return;
2369
2369
  /*
2370
- * A thread the host gave (LOOP D-13): its session's conversation, drawn
2370
+ * A thread the host gave (D-13): its session's conversation, drawn
2371
2371
  * once, and never replaced by the runtime's snapshot, which is its
2372
2372
  * agent's — every session's — not this one's.
2373
2373
  */
@@ -2804,7 +2804,7 @@ showToolApprovalBanner = true, pendingApprovals: pendingApprovalsProp, onApprove
2804
2804
  break;
2805
2805
  case 'activity':
2806
2806
  // What the server says besides the conversation's text comes on
2807
- // the ui socket (REACTOR_UI RU-W); the run's own — `loop.session`
2807
+ // the ui socket (RU-W); the run's own — `loop.session`
2808
2808
  // among them — are the conversation's.
2809
2809
  if (event.activity) {
2810
2810
  voiceSayRef.current?.(event.activity);
@@ -2958,7 +2958,7 @@ showToolApprovalBanner = true, pendingApprovals: pendingApprovalsProp, onApprove
2958
2958
  // ========================================================================
2959
2959
  // handleSend
2960
2960
  // ========================================================================
2961
- // Voice (VOICE.md V1): what was said and put in the composer, until sent.
2961
+ // Voice (V1): what was said and put in the composer, until sent.
2962
2962
  const spokenRef = useRef(undefined);
2963
2963
  // Its voice with what it leaves unsaid filled in: Datalayer's models and packages.
2964
2964
  // The person's own settings, followed as the voice menu changes them (VO-30).
@@ -3005,7 +3005,7 @@ showToolApprovalBanner = true, pendingApprovals: pendingApprovalsProp, onApprove
3005
3005
  setVoiceSaid('');
3006
3006
  }
3007
3007
  }, [isLoading]);
3008
- // Answers spoken over, hands-free (VOICE.md VO-13): marked *interrupted*.
3008
+ // Answers spoken over, hands-free (VO-13): marked *interrupted*.
3009
3009
  const [interruptedIds, setInterruptedIds] = useState(() => new Set());
3010
3010
  // The conversation as shown, read when the person speaks over an answer.
3011
3011
  const shownItemsRef = useRef([]);
@@ -3016,12 +3016,14 @@ showToolApprovalBanner = true, pendingApprovals: pendingApprovalsProp, onApprove
3016
3016
  }
3017
3017
  }, []);
3018
3018
  const stopSpeaking = onStopSpeaking ?? (ownVoice.speaker ? ownVoice.stop : undefined);
3019
+ // How loud the answer plays: the host's speaker's, or the chat's own (VO-13).
3020
+ const playbackLevel = hostSpeaks ? voiceLevel : ownVoice.level;
3019
3021
  const readAnswerAloud = onReadAloud ?? (ownVoice.speaker ? ownVoice.read : undefined);
3020
3022
  const handleSend = useCallback(async (messageOverride,
3021
3023
  // AG-UI's: what goes with the run besides the conversation — an
3022
- // application's page says there what it did (LOOP R-04).
3024
+ // application's page says there what it did (R-04).
3023
3025
  forwardedPropsGiven,
3024
- // How the message was heard, when it was said (VOICE.md VO-27).
3026
+ // How the message was heard, when it was said (VO-27).
3025
3027
  spokenGiven) => {
3026
3028
  const messageContent = (messageOverride ?? input).trim();
3027
3029
  if (!messageContent || isLoading)
@@ -3039,7 +3041,7 @@ showToolApprovalBanner = true, pendingApprovals: pendingApprovalsProp, onApprove
3039
3041
  }
3040
3042
  }
3041
3043
  // A press of what a display offered goes up the ui socket, checked
3042
- // there; the run that answers it names it only (REACTOR_UI RU-W).
3044
+ // there; the run that answers it names it only (RU-W).
3043
3045
  const pressed = displayPressOf(forwardedPropsGiven);
3044
3046
  if (pressed && forwardedPropsGiven) {
3045
3047
  const socket = uiSocketRef.current?.socket;
@@ -3313,7 +3315,7 @@ showToolApprovalBanner = true, pendingApprovals: pendingApprovalsProp, onApprove
3313
3315
  protocol?.agentId,
3314
3316
  ]);
3315
3317
  /*
3316
- * How a message's display presses what it offered (REACTOR_UI RU-4,
3318
+ * How a message's display presses what it offered (RU-4,
3317
3319
  * RU-W): with the token of the offer, as the run's press — which
3318
3320
  * `handleSend` sends up the ui socket before the run, the run naming it
3319
3321
  * only. An answer is the person's words in the conversation; any other
@@ -3384,6 +3386,8 @@ showToolApprovalBanner = true, pendingApprovals: pendingApprovalsProp, onApprove
3384
3386
  thread: () => threadIdRef.current,
3385
3387
  // Its speaker, for a host whose composer holds the microphone (VO-10).
3386
3388
  stopSpeaking,
3389
+ // How loud it plays, for a host's hands-free barge-in (VO-13).
3390
+ voiceLevel: playbackLevel,
3387
3391
  // The answer spoken over, marked for a host's own composer (VO-13).
3388
3392
  markInterrupted,
3389
3393
  });
@@ -3398,6 +3402,7 @@ showToolApprovalBanner = true, pendingApprovals: pendingApprovalsProp, onApprove
3398
3402
  handleStop,
3399
3403
  handleNewChat,
3400
3404
  stopSpeaking,
3405
+ playbackLevel,
3401
3406
  markInterrupted,
3402
3407
  ]);
3403
3408
  // Streaming state, for a host that draws the prompt.
@@ -3768,7 +3773,7 @@ showToolApprovalBanner = true, pendingApprovals: pendingApprovalsProp, onApprove
3768
3773
  shownItemsRef.current = welcomedItems;
3769
3774
  const saidId = saidMessageId(welcomedItems, sentenceSaid);
3770
3775
  /*
3771
- * *Read aloud* under each answer the agent has finished (VOICE.md VO-21),
3776
+ * *Read aloud* under each answer the agent has finished (VO-21),
3772
3777
  * when the host reads answers aloud on request.
3773
3778
  */
3774
3779
  const writingId = isLoading || isStreaming
@@ -3798,6 +3803,9 @@ showToolApprovalBanner = true, pendingApprovals: pendingApprovalsProp, onApprove
3798
3803
  notebookToolSurfacesId: notebookToolSurfacesId, approvalConfig: approvalConfig, messagesEndRef: messagesEndRef, onRespond: handleRespond, showTurnFooters: showTurnFooter, renderMessageFooter: readAloudFooter, saidMessageId: saidId, agentUsage: agentUsage, onRemoveItems: handleRemoveItems, mcpServers: filteredMcpServers, emptyContent: launching ? null : (_jsx(ChatEmptyState, { emptyState: emptyState, brandIcon: brandIcon, description: resolvedDescription, suggestions: resolvedSuggestions, submitOnSuggestionClick: submitOnSuggestionClick, onSuggestionSubmit: handleSuggestionSubmit, onSuggestionFill: handleSuggestionFill })) }), trailingContent] }));
3799
3804
  // The microphone, in the composer's footer (VO-10, VO-11).
3800
3805
  const voiceControl = settled && settled.input !== 'off' ? (_jsx(ComposerVoice, { voice: settled, input: input, setInput: setInput, disabled: disabled || launching, speaking: speakingNow, onStopSpeaking: stopSpeaking,
3806
+ // Barge-in gated on how loud the answer plays (VO-13): the host's
3807
+ // speaker, or the chat's own.
3808
+ playbackLevel: playbackLevel,
3801
3809
  // Hands-free (VO-12, VO-13): the run in progress, stopped when the
3802
3810
  // person speaks over it, and the answer marked interrupted.
3803
3811
  running: isLoading, onStopRun: handleStop, onInterrupted: markInterrupted, onInterimChange: setVoiceInterim,
@@ -1,9 +1,9 @@
1
1
  /**
2
- * What the web chat draws of its conversation (MOBILE M-030): the rows of
2
+ * What the web chat draws of its conversation (M-030): the rows of
3
3
  * `reduceConversation`'s state as the `DisplayItem`s `ChatMessageList`
4
4
  * renders, with what only the web holds beside them — what a message showed
5
- * and who said it (Reactor UI ops, REACTOR_UI RU-W), the steps of an
6
- * application's code (LOOP P-16), and what a message carried that the
5
+ * and who said it (Reactor UI ops, RU-W), the steps of an
6
+ * application's code (P-16), and what a message carried that the
7
7
  * conversation does not keep (when it was said, a voice's metadata).
8
8
  *
9
9
  * The conversation is the reducer's; this only draws it. A turn that ended
@@ -1,11 +1,11 @@
1
1
  /**
2
- * Where an element of an application's code shows (LOOP P-18): in a side
2
+ * Where an element of an application's code shows (P-18): in a side
3
3
  * panel beside the conversation, or on a page of its own over it. Inline,
4
4
  * an element is a message, and the chat draws it as one (P-04).
5
5
  *
6
6
  * The session API shows it as a `reactor.ui` display that says where it
7
7
  * shows in its data (`where: "panel" | "page"`, with its `title`) — an
8
- * answer's display (REACTOR_UI RU-2) — and closes it with a `remove` of its
8
+ * answer's display (RU-2) — and closes it with a `remove` of its
9
9
  * id (RU-3). The chat does not draw it: it keeps what is open here, and
10
10
  * whoever draws panels and pages (the `app-elements` plugin) listens. One
11
11
  * store per page, as there is one chat per application on it.
@@ -1,13 +1,13 @@
1
1
  /**
2
2
  * A step of an application's code, shown in the conversation as it runs
3
- * (LOOP P-16): the chain of thought.
3
+ * (P-16): the chain of thought.
4
4
  *
5
5
  * AG-UI's `STEP_STARTED` and `STEP_FINISHED` carry a step's name only; the
6
6
  * session API shows the step whole beside them as a `reactor.ui` display of
7
- * type `application/vnd.datalayer.loop.step+json` (REACTOR_UI RU-3) — its
7
+ * type `application/vnd.datalayer.loop.step+json` (RU-3) — its
8
8
  * data `{name, kind, parent_id, input, output, error, started_at,
9
9
  * ended_at}`, its id the step's — shown as it starts and again as it ends,
10
- * its output patched in as it streams (LOOP P-31). A step is drawn as the
10
+ * its output patched in as it streams (P-31). A step is drawn as the
11
11
  * chat draws a tool call: one row, collapsed, its input and output inside,
12
12
  * running until it ends; a nested step says the step it is in.
13
13
  */
@@ -40,7 +40,7 @@ export function stepItem(step, inside) {
40
40
  kind: step.kind,
41
41
  ...(step.input !== null ? { input: step.input } : {}),
42
42
  },
43
- // Running, what it wrote so far — a step that streams (LOOP P-31).
43
+ // Running, what it wrote so far — a step that streams (P-31).
44
44
  ...(!step.error && step.output !== null ? { result: step.output } : {}),
45
45
  status: !step.ended ? 'executing' : step.error ? 'error' : 'complete',
46
46
  ...(step.error ? { error: step.error } : {}),
@@ -1,9 +1,9 @@
1
1
  /**
2
- * Window messages (LOOP P-25): what an application's code tells the page it
2
+ * Window messages (P-25): what an application's code tells the page it
3
3
  * sits in, outside the conversation — ``session.send_window_message(data)``.
4
4
  *
5
5
  * The session says it with a `reactor.ui` `window` op named `message`, its
6
- * `args` `{data}` (REACTOR_UI RU-3), on the conversation's ui socket (RU-W). The chat does not draw it: it hands
6
+ * `args` `{data}` (RU-3), on the conversation's ui socket (RU-W). The chat does not draw it: it hands
7
7
  * it to whoever listens here — the embed's host bridge, which raises it on
8
8
  * the element as its `window-message` event. A window op of another name is
9
9
  * not one this page acts on: refused, it throws.
@@ -20,7 +20,7 @@ export declare function onLoopWindowMessage(listener: (data: unknown) => void):
20
20
  /**
21
21
  * Why the turn a window message posted by the page ran failed — its
22
22
  * `RUN_ERROR`'s sentence — or `null`. What its code tells the page back comes
23
- * on the conversation's ui socket (REACTOR_UI RU-W), never on this stream: a
23
+ * on the conversation's ui socket (RU-W), never on this stream: a
24
24
  * `reactor.ui` event here is refused.
25
25
  */
26
26
  export declare function windowTurnErrorOf(stream: string): string | null;
@@ -3,11 +3,11 @@
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
5
  /**
6
- * Window messages (LOOP P-25): what an application's code tells the page it
6
+ * Window messages (P-25): what an application's code tells the page it
7
7
  * sits in, outside the conversation — ``session.send_window_message(data)``.
8
8
  *
9
9
  * The session says it with a `reactor.ui` `window` op named `message`, its
10
- * `args` `{data}` (REACTOR_UI RU-3), on the conversation's ui socket (RU-W). The chat does not draw it: it hands
10
+ * `args` `{data}` (RU-3), on the conversation's ui socket (RU-W). The chat does not draw it: it hands
11
11
  * it to whoever listens here — the embed's host bridge, which raises it on
12
12
  * the element as its `window-message` event. A window op of another name is
13
13
  * not one this page acts on: refused, it throws.
@@ -42,7 +42,7 @@ export function onLoopWindowMessage(listener) {
42
42
  /**
43
43
  * Why the turn a window message posted by the page ran failed — its
44
44
  * `RUN_ERROR`'s sentence — or `null`. What its code tells the page back comes
45
- * on the conversation's ui socket (REACTOR_UI RU-W), never on this stream: a
45
+ * on the conversation's ui socket (RU-W), never on this stream: a
46
46
  * `reactor.ui` event here is refused.
47
47
  */
48
48
  export function windowTurnErrorOf(stream) {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * A conversation's files as references (REACTOR_UI RU-6).
2
+ * A conversation's files as references (RU-6).
3
3
  *
4
4
  * What the page holds of a file it was given — File upload and the composer
5
5
  * read it as `{name, type, data_url}` — is uploaded to the application's
@@ -3,7 +3,7 @@
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
5
  /**
6
- * A conversation's files as references (REACTOR_UI RU-6).
6
+ * A conversation's files as references (RU-6).
7
7
  *
8
8
  * What the page holds of a file it was given — File upload and the composer
9
9
  * read it as `{name, type, data_url}` — is uploaded to the application's
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * What a server says to a conversation's page, as `reactor.ui` ops
3
- * (REACTOR_UI RU-2, RU-3), and what the page presses back (RU-W).
3
+ * (RU-2, RU-3), and what the page presses back (RU-W).
4
4
  *
5
5
  * The ops arrive on the conversation's ui socket (Reactor's `UiSocket`,
6
6
  * one per session, beside the run stream that carries the conversation's
@@ -4,7 +4,7 @@
4
4
  */
5
5
  /**
6
6
  * What a server says to a conversation's page, as `reactor.ui` ops
7
- * (REACTOR_UI RU-2, RU-3), and what the page presses back (RU-W).
7
+ * (RU-2, RU-3), and what the page presses back (RU-W).
8
8
  *
9
9
  * The ops arrive on the conversation's ui socket (Reactor's `UiSocket`,
10
10
  * one per session, beside the run stream that carries the conversation's
package/lib/chat/index.js CHANGED
@@ -85,6 +85,6 @@ export { ChatInline, } from './ChatInline';
85
85
  // Generic full-page chat surface for a live agent runtime (with launching state)
86
86
  export { AgentRuntimeChat, } from '../agents/AgentRuntimeChat';
87
87
  export * from './EphemeralSurfaceControl';
88
- // The chat's own words in the person's language (LOOP P-26)
88
+ // The chat's own words in the person's language (P-26)
89
89
  export { ChatLanguage, useChatLanguage, useChatWords } from './ChatLanguage';
90
90
  export { CHAT_WORDS, ENGLISH_CHAT_WORDS, chatLanguage, chatWords, } from './words';
@@ -74,7 +74,7 @@ export function McpStatusIndicator({ data: wsData, apiBase, authToken, }) {
74
74
  const aggregate = useMemo(() => deriveAggregate(servers), [servers]);
75
75
  const tooltipText = useMemo(() => buildTooltipText(aggregate, servers), [aggregate, servers]);
76
76
  /*
77
- * Nothing drawn when the agent has no MCP server (LOOP H-21): a control
77
+ * Nothing drawn when the agent has no MCP server (H-21): a control
78
78
  * that only says so was read out as *No MCP Server defined* in every
79
79
  * composer, an in-page agent's and an application's alike. When there are
80
80
  * some, it is named by their state, and the tooltip — its description —
@@ -60,7 +60,7 @@ export function SkillsStatusIndicator({ skillsCount, enabledCount, loading = fal
60
60
  useInjectKeyframes();
61
61
  const aggregate = useMemo(() => deriveAggregate(skillsCount, enabledCount, loading), [skillsCount, enabledCount, loading]);
62
62
  const tooltipText = useMemo(() => buildTooltip(aggregate, skillsCount, enabledCount), [aggregate, skillsCount, enabledCount]);
63
- // Nothing drawn when the agent has no skill (LOOP H-21): a control that
63
+ // Nothing drawn when the agent has no skill (H-21): a control that
64
64
  // only says so was read out as *No Skills defined* in every composer.
65
65
  if (aggregate === 'none') {
66
66
  return null;
@@ -15,14 +15,13 @@ export interface ChatMessageListProps {
15
15
  /** All display items (messages + tool calls) */
16
16
  displayItems: DisplayItem[];
17
17
  /**
18
- * How a message's display presses what it offered (REACTOR_UI RU-4, RU-W):
18
+ * How a message's display presses what it offered (RU-4, RU-W):
19
19
  * the chat sends it up the conversation's ui socket. Absent, its
20
20
  * displays offer nothing to press.
21
21
  */
22
22
  actOn?: (display: Display) => UiAct;
23
23
  /**
24
- * How a message's display uploads a file the person chose (REACTOR_UI
25
- * RU-6): its ref, to press with. Absent, nothing is uploaded.
24
+ * How a message's display uploads a file the person chose (RU-6): its ref, to press with. Absent, nothing is uploaded.
26
25
  */
27
26
  upload?: UiUpload;
28
27
  /** Whether the agent is loading */
@@ -79,7 +78,7 @@ export interface ChatMessageListProps {
79
78
  */
80
79
  renderMessageFooter?: (message: ChatMessage) => ReactNode;
81
80
  /**
82
- * The answer a sentence is being said from (VOICE.md VO-65): its row is
81
+ * The answer a sentence is being said from (VO-65): its row is
83
82
  * marked `aria-current` and `data-voice-saying`, with a bar beside it —
84
83
  * the sentence itself is underlined by `useSaidSentence`.
85
84
  */
@@ -588,9 +588,9 @@ export function ChatMessageList({ displayItems, actOn, upload, isLoading, isStre
588
588
  fontSize: 1,
589
589
  color: toneColorsOf(message.directedTo.tone).fg,
590
590
  }, children: message.directedTo.name })] })) : speaker.role ? (_jsx(Label, { size: "small", children: speaker.role })) : null, message.createdAt ? (_jsx(RelativeTime, { datetime: message.createdAt.toISOString(), sx: { fontSize: 0, color: 'fg.muted' } })) : null] })) : null, _jsxs(Box, { p: compact ? 1 : 2, px: compact ? 2 : 2, overflowX: "auto",
591
- // The theme's bubble (LOOP T-03, T-06): today's 6px elsewhere.
591
+ // The theme's bubble (T-03, T-06): today's 6px elsewhere.
592
592
  borderRadius: "bubble",
593
- // A message arriving, at the theme's pace (LOOP T-10): no
593
+ // A message arriving, at the theme's pace (T-10): no
594
594
  // motion in a theme that sets none, nor when motion is reduced.
595
595
  animation: "chatMessageArrive var(--theme-motion-message) var(--theme-motion-easing) both", reducedMotion: { animation: 'none' }, backgroundColor: isUser
596
596
  ? 'accent.emphasis'
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Markdown without markup (STUDIO D-22): what every renderer of an agent's
2
+ * Markdown without markup (D-22): what every renderer of an agent's
3
3
  * words hands Streamdown, so that no markup a model or an application writes
4
4
  * reaches the page.
5
5
  *
@@ -3,7 +3,7 @@
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
5
  /**
6
- * Markdown without markup (STUDIO D-22): what every renderer of an agent's
6
+ * Markdown without markup (D-22): what every renderer of an agent's
7
7
  * words hands Streamdown, so that no markup a model or an application writes
8
8
  * reaches the page.
9
9
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * An application's presence in its chat (LOOP T-08): its face, with a quiet
2
+ * An application's presence in its chat (T-08): its face, with a quiet
3
3
  * motion around it while it thinks or works, and one line saying what it is
4
4
  * doing. The face is never redrawn; the motion is a soft ring in the accent,
5
5
  * still under `prefers-reduced-motion`, and the line changes at the theme's
@@ -13,7 +13,7 @@ import { type PresenceLineProps } from '../../portable/views';
13
13
  import type { PresenceState } from './presenceStatus';
14
14
  /**
15
15
  * A face at `size`: an emoji drawn in Fluent Emoji, the same on every
16
- * platform (LOOP T-20) — the system's, as text, only for one Datalayer ships
16
+ * platform (T-20) — the system's, as text, only for one Datalayer ships
17
17
  * no drawing of — or a host's own drawing, left as it is.
18
18
  */
19
19
  export declare function FaceDrawing({ face, size }: {
@@ -6,7 +6,7 @@ import { presenceLine } from '../../portable/views';
6
6
  const ACCENT = 'var(--theme-accent)';
7
7
  /**
8
8
  * A face at `size`: an emoji drawn in Fluent Emoji, the same on every
9
- * platform (LOOP T-20) — the system's, as text, only for one Datalayer ships
9
+ * platform (T-20) — the system's, as text, only for one Datalayer ships
10
10
  * no drawing of — or a host's own drawing, left as it is.
11
11
  */
12
12
  export function FaceDrawing({ face, size }) {
@@ -1,6 +1,6 @@
1
1
  /**
2
- * What an application is doing, in plain words (LOOP T-08): kept in
3
- * `portable/presence`, which Datalayer Mobile reads too (MOBILE M-030).
2
+ * What an application is doing, in plain words (T-08): kept in
3
+ * `portable/presence`, which Datalayer Mobile reads too (M-030).
4
4
  *
5
5
  * @module chat/presence/presenceStatus
6
6
  */
@@ -3,8 +3,8 @@
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
5
  /**
6
- * What an application is doing, in plain words (LOOP T-08): kept in
7
- * `portable/presence`, which Datalayer Mobile reads too (MOBILE M-030).
6
+ * What an application is doing, in plain words (T-08): kept in
7
+ * `portable/presence`, which Datalayer Mobile reads too (M-030).
8
8
  *
9
9
  * @module chat/presence/presenceStatus
10
10
  */
@@ -51,8 +51,8 @@ export interface InputPromptProps {
51
51
  */
52
52
  footerExtras?: ReactNode;
53
53
  /**
54
- * The words in the box are still being heard by the microphone (VOICE.md
55
- * VO-11): shown greyed, in italics, until they are final.
54
+ * The words in the box are still being heard by the microphone (VO-11):
55
+ * shown greyed, in italics, until they are final.
56
56
  */
57
57
  interim?: boolean;
58
58
  /**
@@ -117,7 +117,7 @@ export interface InputPromptProps {
117
117
  promptVariant?: InputPromptVariant;
118
118
  /** Agents the prompt may address by typing `@`. Lexical only. */
119
119
  mentionableAgents?: MentionableAgent[];
120
- /** Commands listed while `/` is typed, before the prompt's own (LOOP P-19). Lexical only. */
120
+ /** Commands listed while `/` is typed, before the prompt's own (P-19). Lexical only. */
121
121
  promptCommands?: PromptCommand[];
122
122
  /**
123
123
  * What was sent to this agent before this page loaded, oldest first.
@@ -76,7 +76,7 @@ export interface InputPromptBaseProps {
76
76
  * suggestion a person cannot see is worse than none.
77
77
  */
78
78
  mentionableAgents?: MentionableAgent[];
79
- /** Commands listed while `/` is typed, before the prompt's own (LOOP P-19). Lexical only. */
79
+ /** Commands listed while `/` is typed, before the prompt's own (P-19). Lexical only. */
80
80
  promptCommands?: PromptCommand[];
81
81
  /**
82
82
  * What was sent to this agent before this composer mounted, oldest first.
@@ -201,7 +201,7 @@ export function InputPromptBase({ variant = 'lexical', placeholder = 'Ask anythi
201
201
  setFocused(false);
202
202
  }
203
203
  }, border: "1px solid",
204
- // The theme's card (LOOP T-03, T-06): today's 6px elsewhere.
204
+ // The theme's card (T-03, T-06): today's 6px elsewhere.
205
205
  borderRadius: "var(--theme-radius-card, 6px)", bg: "canvas.default", overflow: "hidden", transition: "border-color 0.2s ease", sx: {
206
206
  borderColor: 'border.default',
207
207
  '&:focus-within': {
@@ -33,7 +33,7 @@ export interface InputPromptLexicalProps {
33
33
  mentionableAgents?: MentionableAgent[];
34
34
  /**
35
35
  * Commands listed while `/` is typed, before the prompt's own: an
36
- * application's (LOOP P-19).
36
+ * application's (P-19).
37
37
  */
38
38
  promptCommands?: PromptCommand[];
39
39
  }
@@ -215,7 +215,7 @@ export const streamdownMarkdownStyles = {
215
215
  marginRight: 0,
216
216
  color: 'fg.muted',
217
217
  },
218
- // A link reads as its theme says (LOOP T-06): in the accent, or plain —
218
+ // A link reads as its theme says (T-06): in the accent, or plain —
219
219
  // the colour of the words around it — and underlined in every theme.
220
220
  '& a': {
221
221
  color: 'var(--theme-message-link, var(--fgColor-accent, #0969da))',
@@ -7,7 +7,7 @@ export interface ViewportDragOptions {
7
7
  /**
8
8
  * Keep the whole box inside the viewport, not only a margin of it: the
9
9
  * floating assistant's character, whose balloon and conversation open
10
- * from where it stands (LOOP T-23).
10
+ * from where it stands (T-23).
11
11
  */
12
12
  whole?: boolean;
13
13
  }
@@ -26,7 +26,7 @@ export declare const CHAT_VIEW_MODES: readonly ChatViewModeOption[];
26
26
  /**
27
27
  * Why the assistant is greyed out, for its tooltip: it is drawn by the
28
28
  * floating chat (`ChatFloating`); a layout that places the chat itself, as
29
- * the page layout does, has no character to show (LOOP T-21).
29
+ * the page layout does, has no character to show (T-21).
30
30
  */
31
31
  export declare const ASSISTANT_NEEDS_A_FLOATING_CHAT = "The assistant is drawn by the floating chat, not by this layout";
32
32
  /** Why the sidebar option is greyed out, for its tooltip. */
@@ -7,14 +7,14 @@ export const CHAT_VIEW_MODES = [
7
7
  { mode: 'floating', label: 'Full-height popup' },
8
8
  { mode: 'floating-small', label: 'Floating popup' },
9
9
  { mode: 'floating-draggable', label: 'Floating draggable' },
10
- // A character on the page that speaks in a balloon (LOOP T-21).
10
+ // A character on the page that speaks in a balloon (T-21).
11
11
  { mode: 'assistant', label: 'Floating assistant' },
12
12
  { mode: 'sidebar', label: 'Sidebar panel' },
13
13
  ];
14
14
  /**
15
15
  * Why the assistant is greyed out, for its tooltip: it is drawn by the
16
16
  * floating chat (`ChatFloating`); a layout that places the chat itself, as
17
- * the page layout does, has no character to show (LOOP T-21).
17
+ * the page layout does, has no character to show (T-21).
18
18
  */
19
19
  export const ASSISTANT_NEEDS_A_FLOATING_CHAT = 'The assistant is drawn by the floating chat, not by this layout';
20
20
  /** Why the sidebar option is greyed out, for its tooltip. */
package/lib/chat/words.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
5
  /**
6
- * The chat's own words in the person's language (LOOP P-26): the composer's
6
+ * The chat's own words in the person's language (P-26): the composer's
7
7
  * placeholder and buttons, its error sentences, the tool lines and the tool
8
8
  * cards, the approvals, and the assistant's balloon — said in the six
9
9
  * languages the application's composer is said in (`interfaceWords`).
@@ -8,7 +8,7 @@ import { HealthCheck } from '@datalayer/core/lib/models/HealthCheck';
8
8
  export interface CreateRuntimeOptions {
9
9
  /**
10
10
  * A platform environment by its name, or an environment somebody built,
11
- * named `<account-handle>/<name>` or by its uid (PLAN_ENV.md, D-2).
11
+ * named `<account-handle>/<name>` or by its uid (D-2).
12
12
  */
13
13
  environmentName: string;
14
14
  /**
@@ -97,7 +97,7 @@ export declare function RuntimesMixin<TBase extends Constructor>(Base: TBase): {
97
97
  */
98
98
  forgetRuntimeMemory(memoryId: string): Promise<number>;
99
99
  /**
100
- * Correct one of the caller's own memories in place (LOOP R-34): its
100
+ * Correct one of the caller's own memories in place (R-34): its
101
101
  * words become `text`, kept with who corrected it and when.
102
102
  */
103
103
  correctRuntimeMemory(memoryId: string, text: string): Promise<RuntimeMemory>;
@@ -108,7 +108,7 @@ export declare function RuntimesMixin<TBase extends Constructor>(Base: TBase): {
108
108
  forgetRuntimeMemories(agentId: string, count: number): Promise<number>;
109
109
  /**
110
110
  * The caller's allowances to share what an application remembers of
111
- * them with another (LOOP R-35), by `source` or by `reader`.
111
+ * them with another (R-35), by `source` or by `reader`.
112
112
  */
113
113
  listRuntimeMemoryShares(filter: {
114
114
  source?: string;