@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
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Voice: agents that listen and speak (VOICE.md).
2
+ * Voice: agents that listen and speak.
3
3
  *
4
4
  * Push-to-talk heard on the device (Moonshine, Whisper, Silero VAD, from
5
5
  * Datalayer's origin and as pinned), answers spoken by Datalayer's speech
@@ -77,7 +77,7 @@ export interface ChatVoice {
77
77
  /** ai-agents, whose speech service says the answers, and hears where the browser does not. */
78
78
  speechUrl?: string;
79
79
  /**
80
- * Where what is said is heard (§5): `device`, the browser; `server`,
80
+ * Where what is said is heard: `device`, the browser; `server`,
81
81
  * Datalayer's speech service; `auto`, the default, the browser where a
82
82
  * model there hears the language, else the server. The Appspec's
83
83
  * `interface.voice.where`.
@@ -1,6 +1,6 @@
1
1
  /**
2
- * The browser's models, from Datalayer's origin and as pinned (VOICE.md
3
- * VO-49, VO-03): every file a model is made of is fetched from the models'
2
+ * The browser's models, from Datalayer's origin and as pinned (VO-49, VO-03):
3
+ * every file a model is made of is fetched from the models'
4
4
  * origin, laid out as the pinned store is (`<provider>/<model id>/<path>`), and its
5
5
  * SHA-256 checked against the catalogue before anything reads it. A file
6
6
  * that is not the one pinned is refused; nothing is asked of another origin.
@@ -3,8 +3,8 @@
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
5
  /**
6
- * The browser's models, from Datalayer's origin and as pinned (VOICE.md
7
- * VO-49, VO-03): every file a model is made of is fetched from the models'
6
+ * The browser's models, from Datalayer's origin and as pinned (VO-49, VO-03):
7
+ * every file a model is made of is fetched from the models'
8
8
  * origin, laid out as the pinned store is (`<provider>/<model id>/<path>`), and its
9
9
  * SHA-256 checked against the catalogue before anything reads it. A file
10
10
  * that is not the one pinned is refused; nothing is asked of another origin.
@@ -1,6 +1,6 @@
1
1
  /**
2
- * What only the runtime knows of voice, as it says it over AG-UI (VOICE.md
3
- * VO-35) and Vercel AI (VO-36): `voice.settings` — the running application's
2
+ * What only the runtime knows of voice, as it says it over AG-UI (VO-35)
3
+ * and Vercel AI (VO-36): `voice.settings` — the running application's
4
4
  * voice and language, at a run's start — and `voice.say` — a short line the
5
5
  * agent wants heard and not written (*One moment*), shown as a caption while
6
6
  * it is said. The chat reads `voice.say` from a run's custom events
@@ -3,8 +3,8 @@
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
5
  /**
6
- * What only the runtime knows of voice, as it says it over AG-UI (VOICE.md
7
- * VO-35) and Vercel AI (VO-36): `voice.settings` — the running application's
6
+ * What only the runtime knows of voice, as it says it over AG-UI (VO-35)
7
+ * and Vercel AI (VO-36): `voice.settings` — the running application's
8
8
  * voice and language, at a run's start — and `voice.say` — a short line the
9
9
  * agent wants heard and not written (*One moment*), shown as a caption while
10
10
  * it is said. The chat reads `voice.say` from a run's custom events
@@ -1,5 +1,5 @@
1
1
  /**
2
- * An answer as it is heard (VOICE.md VO-20): read as plain words, the way
2
+ * An answer as it is heard (VO-20): read as plain words, the way
3
3
  * the balloon reads it (T-23), and cut into sentences as it is written, so
4
4
  * that the first one is said before the answer is finished.
5
5
  *
@@ -3,7 +3,7 @@
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
5
  /**
6
- * An answer as it is heard (VOICE.md VO-20): read as plain words, the way
6
+ * An answer as it is heard (VO-20): read as plain words, the way
7
7
  * the balloon reads it (T-23), and cut into sentences as it is written, so
8
8
  * that the first one is said before the answer is finished.
9
9
  *
@@ -8,6 +8,12 @@ export declare const TRANSCRIPTION_STREAM_PATH = "/api/ai-agents/v1/speech/trans
8
8
  export declare const STREAM_IDLE_MS = 3000;
9
9
  /** How long the final words of a stream are waited for. */
10
10
  export declare const STREAM_FINAL_MS = 60000;
11
+ /**
12
+ * How much of the sound before a stream the service ended for its silence
13
+ * (with no words) is sent again to the next: a word begun at the cut is
14
+ * heard whole.
15
+ */
16
+ export declare const STREAM_LOOKBACK_SAMPLES: number;
11
17
  /** The model the speech service hears with (agentspecs' catalogue). */
12
18
  export declare const SERVER_HEARING_MODEL = "whisper-large-v3-turbo";
13
19
  /** Where a chat's voice hears: in the browser, or on Datalayer's servers. */
@@ -26,7 +32,7 @@ export interface HearingAsked {
26
32
  speechUrl?: string;
27
33
  }
28
34
  /**
29
- * Where a chat's voice hears (§5): in the browser unless the speech service
35
+ * Where a chat's voice hears: in the browser unless the speech service
30
36
  * is named and the person asked for detection, the application says
31
37
  * `server`, or it says `auto` and no model in the browser hears the language.
32
38
  */
@@ -94,7 +100,7 @@ export declare class ServerHearing implements Hearing {
94
100
  /** Said when the device's model did not load and the server will hear instead. */
95
101
  export declare const MOVED_TO_SERVER = "This device could not load its model: what you say will be heard on Datalayer's servers instead. Press the microphone again to agree.";
96
102
  /**
97
- * `where: auto` (§5): each press heard on the device when a model there
103
+ * `where: auto`: each press heard on the device when a model there
98
104
  * hears the language and loads, on the speech service otherwise.
99
105
  *
100
106
  * The device's model failing to load moves the hearing to the server, and
@@ -3,11 +3,11 @@
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
5
  /**
6
- * Hearing on Datalayer's servers (VOICE.md VO-34, VO-14, §5): what was said
6
+ * Hearing on Datalayer's servers (VO-34, VO-14): what was said
7
7
  * in one press, kept to its speech by Silero VAD in the page, then sent as a
8
8
  * WAV recording to the speech service's `POST /speech/transcriptions`, where
9
9
  * Whisper hears it — small for a spoken turn, large-v3-turbo past one
10
- * (decision 17) — in any language it knows, and finding
10
+ * — in any language it knows, and finding
11
11
  * the language itself when the person asks for that (detection, VO-14). The
12
12
  * sound is held in the request only: the service keeps neither it nor the
13
13
  * words (VO-60).
@@ -37,6 +37,12 @@ export const TRANSCRIPTION_STREAM_PATH = '/api/ai-agents/v1/speech/transcription
37
37
  export const STREAM_IDLE_MS = 3000;
38
38
  /** How long the final words of a stream are waited for. */
39
39
  export const STREAM_FINAL_MS = 60_000;
40
+ /**
41
+ * How much of the sound before a stream the service ended for its silence
42
+ * (with no words) is sent again to the next: a word begun at the cut is
43
+ * heard whole.
44
+ */
45
+ export const STREAM_LOOKBACK_SAMPLES = HEARING_RATE / 2;
40
46
  /** The model the speech service hears with (agentspecs' catalogue). */
41
47
  export const SERVER_HEARING_MODEL = 'whisper-large-v3-turbo';
42
48
  /** The shortest speech worth hearing, in samples: a word said alone. */
@@ -45,7 +51,7 @@ const SHORTEST = HEARING_RATE * 0.2;
45
51
  export class ServerRefused extends Error {
46
52
  }
47
53
  /**
48
- * Where a chat's voice hears (§5): in the browser unless the speech service
54
+ * Where a chat's voice hears: in the browser unless the speech service
49
55
  * is named and the person asked for detection, the application says
50
56
  * `server`, or it says `auto` and no model in the browser hears the language.
51
57
  */
@@ -121,7 +127,9 @@ class PressStream {
121
127
  waiting;
122
128
  closed = false;
123
129
  idle;
124
- constructor(open, speechUrl, first) {
130
+ constructor(open, speechUrl, first, from = 0) {
131
+ // The press's sound from `from` on: what came before was heard already.
132
+ this.sent = from;
125
133
  this.socket = open(streamUrlOf(speechUrl));
126
134
  this.socket.binaryType = 'arraybuffer';
127
135
  this.socket.onopen = () => {
@@ -152,6 +160,7 @@ class PressStream {
152
160
  this.final = {
153
161
  text: typeof said.text === 'string' ? said.text.trim() : '',
154
162
  language: typeof said.language === 'string' ? said.language : '',
163
+ why: typeof said.why === 'string' ? said.why : '',
155
164
  };
156
165
  this.settle();
157
166
  }
@@ -170,6 +179,16 @@ class PressStream {
170
179
  this.socket.onerror = () => undefined;
171
180
  this.touch();
172
181
  }
182
+ /**
183
+ * The service ended it for its silence, with no words, while the press
184
+ * goes on: a person who waits before speaking (hands-free's microphone
185
+ * stays open) is heard by the next stream.
186
+ */
187
+ get silencedEmpty() {
188
+ return (this.final !== undefined &&
189
+ this.final.why === 'silence' &&
190
+ !this.final.text);
191
+ }
173
192
  /** Send what the press added since the last call. */
174
193
  feed(audio) {
175
194
  this.touch();
@@ -272,15 +291,23 @@ export class ServerHearing {
272
291
  if (!open) {
273
292
  return undefined;
274
293
  }
294
+ let from = 0;
275
295
  if (this.press && audio.length < this.press.sent) {
276
296
  this.press.close();
277
297
  this.press = undefined;
278
298
  }
299
+ else if (this.press?.silencedEmpty) {
300
+ // Ended by the service for its silence, nothing said: a new stream
301
+ // hears the rest of the press, from just before the cut.
302
+ from = Math.max(0, this.press.sent - STREAM_LOOKBACK_SAMPLES);
303
+ this.press.close();
304
+ this.press = undefined;
305
+ }
279
306
  if (!this.press) {
280
307
  this.press = new PressStream(open, this.options.speechUrl, {
281
308
  token: this.options.token,
282
309
  language: this.options.detect ? '' : language,
283
- });
310
+ }, from);
284
311
  }
285
312
  return this.press;
286
313
  }
@@ -297,6 +324,10 @@ export class ServerHearing {
297
324
  }
298
325
  async hear(audio, language) {
299
326
  const started = performance.now();
327
+ if (this.press?.silencedEmpty && audio.length >= this.press.sent) {
328
+ // Cut for its silence before the person spoke: heard by a new stream.
329
+ this.streamFor(audio, language);
330
+ }
300
331
  const press = this.press && audio.length >= this.press.sent ? this.press : undefined;
301
332
  if (this.press && !press) {
302
333
  this.press.close();
@@ -368,7 +399,7 @@ export class ServerHearing {
368
399
  /** Said when the device's model did not load and the server will hear instead. */
369
400
  export const MOVED_TO_SERVER = "This device could not load its model: what you say will be heard on Datalayer's servers instead. Press the microphone again to agree.";
370
401
  /**
371
- * `where: auto` (§5): each press heard on the device when a model there
402
+ * `where: auto`: each press heard on the device when a model there
372
403
  * hears the language and loads, on the speech service otherwise.
373
404
  *
374
405
  * The device's model failing to load moves the hearing to the server, and
@@ -1,5 +1,5 @@
1
1
  /**
2
- * A person's own voice settings (VOICE.md VO-30), and what a chat's voice is
2
+ * A person's own voice settings (VO-30), and what a chat's voice is
3
3
  * once they are taken into account (VO-14, VO-25).
4
4
  *
5
5
  * An application says what voice it wants — `interface.voice` in its spec,
@@ -35,7 +35,7 @@ export declare const VOLUME_RANGE: {
35
35
  };
36
36
  /**
37
37
  * How much longer than usual the person pauses before they are done
38
- * (VOICE.md VO-69): the silence that stops a microphone clicked on, and the
38
+ * (VO-69): the silence that stops a microphone clicked on, and the
39
39
  * one that ends a hands-free turn, times this.
40
40
  */
41
41
  export declare const PAUSE_RANGE: {
@@ -9,7 +9,7 @@ export const RATE_RANGE = { min: 0.5, max: 2, default: 1 };
9
9
  export const VOLUME_RANGE = { min: 0, max: 1, default: 1 };
10
10
  /**
11
11
  * How much longer than usual the person pauses before they are done
12
- * (VOICE.md VO-69): the silence that stops a microphone clicked on, and the
12
+ * (VO-69): the silence that stops a microphone clicked on, and the
13
13
  * one that ends a hands-free turn, times this.
14
14
  */
15
15
  export const PAUSE_RANGE = { min: 1, max: 4, default: 1 };
@@ -191,7 +191,7 @@ export function voiceForPerson(voice, person = {}, browser = browserLanguage())
191
191
  }
192
192
  if (chosen.onDeviceOnly) {
193
193
  // Nothing is asked of the speech service: no token, no origin. Answers
194
- // are said by that service only (decision 1: no voice made in the
194
+ // are said by that service only (no voice made in the
195
195
  // browser), so they are not heard; listening stays on the device.
196
196
  next.speechUrl = undefined;
197
197
  next.token = undefined;
@@ -1,6 +1,6 @@
1
1
  /**
2
- * Answers heard, from Datalayer's speech service (VOICE.md VO-20, VO-33,
3
- * decision 1): each sentence is sent to ai-agents as soon as it is written
2
+ * Answers heard, from Datalayer's speech service (VO-20, VO-33):
3
+ * each sentence is sent to ai-agents as soon as it is written
4
4
  * and played as soon as its audio arrives, one after the other, while the
5
5
  * next ones are being made. The level of what plays moves the assistant's
6
6
  * mouth (VO-23). Nothing is kept: each sentence's audio is dropped once played.
@@ -11,7 +11,13 @@
11
11
  export declare const SYNTHESES_PATH = "/api/ai-agents/v1/speech/syntheses";
12
12
  /** What the speaker is doing, for the assistant and the controls. */
13
13
  export interface SpeakerState {
14
- /** Sound is playing. */
14
+ /**
15
+ * Sound is playing, or a sentence given is being made into sound to play
16
+ * next: from the moment there is something to say, so that hands-free
17
+ * reads speech in that moment as the person speaking over it (VO-12,
18
+ * VO-13). What moves the mouth is the sound's level, and the sentence
19
+ * marked is the one playing.
20
+ */
15
21
  speaking: boolean;
16
22
  /** The sentence being said, for the balloon (VO-26). */
17
23
  sentence?: string;
@@ -26,7 +32,7 @@ export interface SpeakerOptions {
26
32
  language: string;
27
33
  /**
28
34
  * The person's token, an application's principal's, a visitor's or an
29
- * embed's — whose deployment is the one it names (VO-19, decision 16).
35
+ * embed's — whose deployment is the one it names (VO-19).
30
36
  */
31
37
  token?: string;
32
38
  /**
@@ -3,8 +3,8 @@
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
5
  /**
6
- * Answers heard, from Datalayer's speech service (VOICE.md VO-20, VO-33,
7
- * decision 1): each sentence is sent to ai-agents as soon as it is written
6
+ * Answers heard, from Datalayer's speech service (VO-20, VO-33):
7
+ * each sentence is sent to ai-agents as soon as it is written
8
8
  * and played as soon as its audio arrives, one after the other, while the
9
9
  * next ones are being made. The level of what plays moves the assistant's
10
10
  * mouth (VO-23). Nothing is kept: each sentence's audio is dropped once played.
@@ -100,6 +100,9 @@ export class ServerSpeaker {
100
100
  return;
101
101
  }
102
102
  this.queue.push({ text: sentence, asked: performance.now() });
103
+ if (!this.state.speaking) {
104
+ this.set({ speaking: true });
105
+ }
103
106
  this.askAhead();
104
107
  if (!this.running) {
105
108
  void this.run(this.generation);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Voice in the page (VOICE.md §6): what the chat needs to listen and speak.
2
+ * Voice in the page: what the chat needs to listen and speak.
3
3
  *
4
4
  * The packages that hear — transformers.js for Moonshine and Whisper, and
5
5
  * vad-web for Silero VAD — are given by the host page (`VoiceEngines`), each
@@ -3,8 +3,8 @@
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
5
  /**
6
- * The answers of a conversation, heard as they are written (VOICE.md VO-20,
7
- * VO-21): the newest answer of the agent is cut into sentences as it grows,
6
+ * The answers of a conversation, heard as they are written (VO-20, VO-21):
7
+ * the newest answer of the agent is cut into sentences as it grows,
8
8
  * and each is given to the speaker as soon as it is complete. The answers
9
9
  * already there when voice was turned on are not read.
10
10
  *
@@ -4,7 +4,7 @@
4
4
  */
5
5
  /**
6
6
  * A person's voice settings, as a React state that follows every change —
7
- * the composer's menu, a settings page, another tab (VOICE.md VO-30).
7
+ * the composer's menu, a settings page, another tab (VO-30).
8
8
  *
9
9
  * @module voice/useVoiceSettings
10
10
  */
@@ -3,7 +3,7 @@
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
5
  /**
6
- * A chat's speaker (VOICE.md VO-20, VO-21, VO-33): its answers said by
6
+ * A chat's speaker (VO-20, VO-21, VO-33): its answers said by
7
7
  * Datalayer's speech service — `POST /api/ai-agents/v1/speech/syntheses` on
8
8
  * ai-agents, `datalayer-speech` — while its voice's `output` is not `off`.
9
9
  * One for `ChatFloating` and for `ChatBase` alone, so that a chat given a
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@datalayer/agent-runtimes",
3
- "version": "1.5.52",
3
+ "version": "1.5.53",
4
4
  "type": "module",
5
5
  "workspaces": [
6
6
  ".",
@@ -137,7 +137,7 @@
137
137
  "watch:lib:res": "gulp resources-to-lib-watch",
138
138
  "watch:lib:src": "tsc -b -w"
139
139
  },
140
- "//": "@datalayer/agent-shield (SHIELD SH-53: the policy types, the decisions' sentences, the diff and terminal displays, the report renderer) is not depended on yet: npm holds the scaffold's 1.1.3 as latest, which blocks the real 0.1.x until the user unpublishes it; add \"@datalayer/agent-shield\": \"^0.1.7\" here once it resolves.",
140
+ "//": "@datalayer/agent-shield (SH-53: the policy types, the decisions' sentences, the diff and terminal displays, the report renderer) is not depended on yet: npm holds the scaffold's 1.1.3 as latest, which blocks the real 0.1.x until the user unpublishes it; add \"@datalayer/agent-shield\": \"^0.1.7\" here once it resolves.",
141
141
  "dependencies": {
142
142
  "@a2a-js/sdk": "^1.3.0",
143
143
  "@a2ui/markdown-it": "0.2.0",
@@ -3,7 +3,7 @@
3
3
  # Distributed under the terms of the Modified BSD License.
4
4
  #
5
5
  # The Agentic Commerce Protocol's checkout models, generated from the
6
- # specification's JSON Schema (AGENT_PROTOCOLS PR-41), in both languages:
6
+ # specification's JSON Schema (PR-41), in both languages:
7
7
  # agent_runtimes/protocols/agentic_commerce/models.py (datamodel-code-generator 0.34.0)
8
8
  # src/protocols/agentic-commerce/models.ts (json-schema-to-typescript 15.0.4)
9
9
  #
@@ -236,7 +236,7 @@ def load_fragments(specs_dir: Path) -> List[Dict[str, Any]]:
236
236
 
237
237
  def refuse_tools_field(spec: Dict[str, Any], path: Path) -> None:
238
238
  """Refuse an agent spec that still says `tools` (it is `backend_tools` now) or
239
- `ui_plugin` (it is `ui` now, AGENT_PROTOCOLS PS-03).
239
+ `ui_plugin` (it is `ui` now, PS-03).
240
240
  """
241
241
  if "ui_plugin" in spec:
242
242
  raise SystemExit(
@@ -249,7 +249,7 @@ def refuse_tools_field(spec: Dict[str, Any], path: Path) -> None:
249
249
  ):
250
250
  raise SystemExit(
251
251
  f"Error: {path} says `ui: {ui!r}`: `ui` lists UI plugins, each "
252
- "`{plugin, renderer}` (AGENTIC_UI R8); a renderer is said as a plugin's `renderer`"
252
+ "`{plugin, renderer}` (R8); a renderer is said as a plugin's `renderer`"
253
253
  )
254
254
  if "tools" in spec:
255
255
  raise SystemExit(
@@ -310,7 +310,7 @@ def load_yaml_specs(specs_dir: Path) -> List[tuple[str, Dict[str, Any]]]:
310
310
 
311
311
 
312
312
  def check_voices(specs: List[tuple[str, Dict[str, Any]]]) -> None:
313
- """Refuse an agent whose `voice` is not an `interface.voice` block of the voice catalogue (VOICE.md VO-41)."""
313
+ """Refuse an agent whose `voice` is not an `interface.voice` block of the voice catalogue (VO-41)."""
314
314
  from agentspecs.apps import agent_voice_problems
315
315
 
316
316
  problems = [
@@ -333,7 +333,7 @@ def voice_of(spec: Dict[str, Any]) -> Dict[str, Any] | None:
333
333
 
334
334
 
335
335
  def load_protocol_ids(specs_dir: Path) -> set[str]:
336
- """Every id of the protocols catalogue (`agentspecs/protocols`, AGENT_PROTOCOLS PS-01)."""
336
+ """Every id of the protocols catalogue (`agentspecs/protocols`, PS-01)."""
337
337
  ids: set[str] = set()
338
338
  for yaml_file in sorted((specs_dir.parent / "protocols").glob("*.yaml")):
339
339
  protocol = yaml.safe_load(yaml_file.read_text()) or {}
@@ -369,7 +369,7 @@ BUILTIN_HARNESSES = ("pydantic-ai", "vercel-ai")
369
369
 
370
370
 
371
371
  def load_harnesses(specs_dir: Path) -> dict[str, dict[str, Any]]:
372
- """Every harness of the catalogue (`agentspecs/harnesses`, SHIELD.md SH-01), by id."""
372
+ """Every harness of the catalogue (`agentspecs/harnesses`, SH-01), by id."""
373
373
  harnesses: dict[str, dict[str, Any]] = {}
374
374
  for yaml_file in sorted((specs_dir.parent / "harnesses").glob("*.yaml")):
375
375
  if yaml_file.name == "register.yaml":
@@ -172,7 +172,7 @@ def load_specs(specs_dir: Path) -> tuple[list[dict[str, Any]], dict[str, Any]]:
172
172
  mode="json", by_alias=True
173
173
  ):
174
174
  spec.pop("pap")
175
- # PACT, commerce, signed fetch and A2A's extensions the same way (AGENT_PROTOCOLS PI-01, PR-02, EX-11).
175
+ # PACT, commerce, signed fetch and A2A's extensions the same way (PI-01, PR-02, EX-11).
176
176
  for block in ("pact", "commerce", "signed_fetch", "a2a"):
177
177
  if block in spec and spec[block] == type(getattr(app, block))().model_dump(
178
178
  mode="json", by_alias=True
@@ -222,7 +222,7 @@ def load_specs(specs_dir: Path) -> tuple[list[dict[str, Any]], dict[str, Any]]:
222
222
  if (signs := actions_module.server_tool_signs(server, name))
223
223
  },
224
224
  }
225
- # The agent protocols' tools (AGENT_PROTOCOLS PR-54): by protocol, the
225
+ # The agent protocols' tools (PR-54): by protocol, the
226
226
  # connection prefix its connections take and what each tool can do.
227
227
  protocols = {
228
228
  identity: {
@@ -569,7 +569,7 @@ def _drop_nulls(value: Any) -> Any:
569
569
 
570
570
 
571
571
  def generate_schema_typescript_code() -> str:
572
- """The Appspec's JSON Schema, for the editors of the page (LOOP S-01, S-02).
572
+ """The Appspec's JSON Schema, for the editors of the page (S-01, S-02).
573
573
 
574
574
  Taken from the agentspecs the catalogue is generated from, so that what
575
575
  an editor completes and explains is what the spec accepts.
@@ -5,10 +5,10 @@
5
5
  """
6
6
  Generate Python and TypeScript code from the YAML harness specifications.
7
7
 
8
- One YAML per harness under ``agentspecs/harnesses`` (SHIELD.md SH-01, §3.1):
8
+ One YAML per harness under ``agentspecs/harnesses`` (SH-01):
9
9
  an agent program driven over the Agent Client Protocol, how it is launched,
10
10
  what it needs, what it honours of an agent spec, and the terms it is served
11
- under. ``register.yaml`` beside them is the register (SH-04, §3.3): a harness
11
+ under. ``register.yaml`` beside them is the register (SH-04): a harness
12
12
  without an entry is refused here as it is in agentspecs.
13
13
 
14
14
  Usage:
@@ -104,7 +104,7 @@ def generate_python_code(specs: list[dict[str, Any]]) -> str:
104
104
  '"""',
105
105
  "Harness Catalog.",
106
106
  "",
107
- "An agent program driven over the Agent Client Protocol (SHIELD.md SH-01).",
107
+ "An agent program driven over the Agent Client Protocol (SH-01).",
108
108
  "",
109
109
  "This file is AUTO-GENERATED from YAML specifications.",
110
110
  "DO NOT EDIT MANUALLY - run 'make specs' to regenerate.",
@@ -234,7 +234,7 @@ def generate_typescript_code(
234
234
  "/**",
235
235
  " * Harness Catalog.",
236
236
  " *",
237
- " * An agent program driven over the Agent Client Protocol (SHIELD.md SH-01).",
237
+ " * An agent program driven over the Agent Client Protocol (SH-01).",
238
238
  " *",
239
239
  " * This file is AUTO-GENERATED from YAML specifications.",
240
240
  " * DO NOT EDIT MANUALLY - run 'make specs' to regenerate.",
@@ -122,7 +122,7 @@ def generate_python_code(specs: list[dict[str, Any]]) -> str:
122
122
  ]
123
123
  )
124
124
  # A server its command runs as a local HTTP process: where it is
125
- # reached (STUDIO W-02, `google-workspace`).
125
+ # reached (W-02, `google-workspace`).
126
126
  if spec.get("url"):
127
127
  lines.append(f' url="{spec["url"]}",')
128
128
 
@@ -132,7 +132,7 @@ def generate_python_code(specs: list[dict[str, Any]]) -> str:
132
132
 
133
133
  lines.append(f" required_env_vars={envvars_formatted},")
134
134
  # What the code its tools write reads in the code sandbox: given there
135
- # when the account has them, never required (LOOP R-19).
135
+ # when the account has them, never required (R-19).
136
136
  sandbox_envvars = spec.get("sandbox_envvars", [])
137
137
  if sandbox_envvars:
138
138
  lines.append(
@@ -5,7 +5,7 @@
5
5
  """
6
6
  Generate Python and TypeScript code from the YAML policy specifications.
7
7
 
8
- One YAML per policy under ``agentspecs/policies`` (SHIELD.md SH-50, §6.7):
8
+ One YAML per policy under ``agentspecs/policies`` (SH-50):
9
9
  the Shield's policy document under the catalogue's fields. The document's
10
10
  schema is the ``agent-shield`` package's, carried by agentspecs verbatim
11
11
  (``policies/shield-policy.schema.json``); each document is validated against
@@ -78,7 +78,7 @@ def generate_python_code(specs: list[dict[str, Any]]) -> str:
78
78
  '"""',
79
79
  "Policy Catalog.",
80
80
  "",
81
- "The Shield's policy documents the platform ships or shows (SHIELD.md SH-50):",
81
+ "The Shield's policy documents the platform ships or shows (SH-50):",
82
82
  "each a catalogue entry whose ``policy`` is a document of ``agent_shield.policy``.",
83
83
  "",
84
84
  "This file is AUTO-GENERATED from YAML specifications.",
@@ -150,7 +150,7 @@ def generate_typescript_code(specs: list[dict[str, Any]]) -> str:
150
150
  "/**",
151
151
  " * Policy Catalog.",
152
152
  " *",
153
- " * The Shield's policy documents the platform ships or shows (SHIELD.md SH-50).",
153
+ " * The Shield's policy documents the platform ships or shows (SH-50).",
154
154
  " *",
155
155
  " * This file is AUTO-GENERATED from YAML specifications.",
156
156
  " * DO NOT EDIT MANUALLY - run 'make specs' to regenerate.",
@@ -5,8 +5,7 @@
5
5
  """
6
6
  Generate Python and TypeScript code from the YAML protocol specifications.
7
7
 
8
- One YAML per agent protocol under ``agentspecs/protocols`` (AGENT_PROTOCOLS
9
- PS-01); an agent spec's or an application's ``protocols`` names the ones it
8
+ One YAML per agent protocol under ``agentspecs/protocols`` (PS-01); an agent spec's or an application's ``protocols`` names the ones it
10
9
  speaks (PS-02).
11
10
 
12
11
  Usage:
@@ -68,7 +67,7 @@ def generate_python_code(specs: list[dict[str, Any]]) -> str:
68
67
  '"""',
69
68
  "Protocol Catalog.",
70
69
  "",
71
- "The agent protocols Datalayer targets (AGENT_PROTOCOLS PS-01).",
70
+ "The agent protocols Datalayer targets (PS-01).",
72
71
  "",
73
72
  "This file is AUTO-GENERATED from YAML specifications.",
74
73
  "DO NOT EDIT MANUALLY - run 'make specs' to regenerate.",
@@ -137,7 +136,7 @@ def generate_typescript_code(specs: list[dict[str, Any]]) -> str:
137
136
  "/**",
138
137
  " * Protocol Catalog.",
139
138
  " *",
140
- " * The agent protocols Datalayer targets (AGENT_PROTOCOLS PS-01).",
139
+ " * The agent protocols Datalayer targets (PS-01).",
141
140
  " *",
142
141
  " * This file is AUTO-GENERATED from YAML specifications.",
143
142
  " * DO NOT EDIT MANUALLY - run 'make specs' to regenerate.",
@@ -5,7 +5,7 @@
5
5
  """
6
6
  Generate Python and TypeScript code from YAML scene specifications.
7
7
 
8
- A scene (agentspecs >= 0.0.61, LOOP A-11) stages a team: the team says who
8
+ A scene (agentspecs >= 0.0.61, A-11) stages a team: the team says who
9
9
  is on stage, the scene says what happens there — the setting, the script,
10
10
  the stage directions, the audience, the rehearsal and where it plays. One
11
11
  YAML per scene under ``agentspecs/scenes``.
@@ -19,7 +19,7 @@ Empty optional lists are dropped, as ``generate_apps.py`` drops them.
19
19
  The scene spec's JSON Schema is written beside the TypeScript catalogue as
20
20
  ``sceneSchema.ts`` (``agentspecs.scenes.json_schema``), the way
21
21
  ``generate_apps.py`` writes ``appspecSchema.ts``: what an editor of the text
22
- completes and explains is what the spec accepts (LOOP S-01, A-03).
22
+ completes and explains is what the spec accepts (S-01, A-03).
23
23
 
24
24
  Usage:
25
25
  python generate_scenes.py \\
@@ -88,7 +88,7 @@ def load_specs(specs_dir: Path) -> list[dict[str, Any]]:
88
88
  for identity in sorted(scenes):
89
89
  scene = scenes[identity]
90
90
  spec = scene.model_dump(mode="json", by_alias=True)
91
- # A scripted scene stages no team (PAP_DATALAYER X-02): no entry, no cast.
91
+ # A scripted scene stages no team (X-02): no entry, no cast.
92
92
  scripted = spec.get("kind") == "scripted"
93
93
  spec["entry"] = "" if scripted else scene.entry_of()
94
94
  spec["cast"] = (
@@ -291,7 +291,7 @@ def generate_typescript_code(specs: list[dict[str, Any]]) -> str:
291
291
 
292
292
 
293
293
  def generate_schema_typescript_code(specs_dir: Path) -> str:
294
- """The scene spec's JSON Schema, for the editor of its text (LOOP S-01, A-03).
294
+ """The scene spec's JSON Schema, for the editor of its text (S-01, A-03).
295
295
 
296
296
  Taken from the agentspecs the catalogue is generated from, so that what
297
297
  the editor completes and explains is what the spec accepts. The
@@ -5,7 +5,7 @@
5
5
  """
6
6
  Generate Python and TypeScript code from the YAML standard specifications.
7
7
 
8
- One YAML per standard under ``agentspecs/standards`` (SHIELD.md SH-60, §6.9):
8
+ One YAML per standard under ``agentspecs/standards`` (SH-60):
9
9
  its version, domains and controls, each control with its evidence items,
10
10
  cadence and crosswalks. The catalogue is carried whole: the Studio's
11
11
  conformance screens read a control's title, status words and crosswalks
@@ -73,7 +73,7 @@ def generate_python_code(specs: list[dict[str, Any]]) -> str:
73
73
  '"""',
74
74
  "Standard Catalog.",
75
75
  "",
76
- "The standards a conformance report answers (SHIELD.md SH-60, §6.9): each a",
76
+ "The standards a conformance report answers (SH-60): each a",
77
77
  "catalogue entry carrying the standard's domains and controls whole.",
78
78
  "",
79
79
  "This file is AUTO-GENERATED from YAML specifications.",
@@ -158,7 +158,7 @@ def generate_typescript_code(specs: list[dict[str, Any]]) -> str:
158
158
  "/**",
159
159
  " * Standard Catalog.",
160
160
  " *",
161
- " * The standards a conformance report answers (SHIELD.md SH-60, §6.9).",
161
+ " * The standards a conformance report answers (SH-60).",
162
162
  " *",
163
163
  " * This file is AUTO-GENERATED from YAML specifications.",
164
164
  " * DO NOT EDIT MANUALLY - run 'make specs' to regenerate.",
@@ -490,7 +490,7 @@ from agent_runtimes.types import (
490
490
  # `shared` by default: routing only makes sense if the member
491
491
  # receiving the work can see what was already said.
492
492
  context = spec.get("context") or {}
493
- # The Frames of its shared context (LOOP A-04): written only when
493
+ # The Frames of its shared context (A-04): written only when
494
494
  # it names some, as the parser reads it.
495
495
  frames = context.get("frames") or []
496
496
  code += (