@datalayer/agent-runtimes 1.5.51 → 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.
- package/dist-embed/chunks/{ChatView-Dy-IgGFL.js → ChatView-CRp8Mt57.js} +4 -4
- package/dist-embed/datalayer-app-main.js +86 -86
- package/lib/api/runtimes/environments.d.ts +2 -2
- package/lib/api/runtimes/environments.js +5 -5
- package/lib/api/runtimes/runtimes.d.ts +7 -7
- package/lib/api/runtimes/runtimes.js +5 -5
- package/lib/apps/__tests__/fixtures/sceneCheckCases.json +1 -1
- package/lib/apps/apps/AppBrowserSandbox.js +1 -1
- package/lib/apps/apps/AppComposer.d.ts +3 -3
- package/lib/apps/apps/AppComposer.js +3 -3
- package/lib/apps/apps/AppFeedback.d.ts +1 -1
- package/lib/apps/apps/AppKept.d.ts +1 -1
- package/lib/apps/apps/AppKept.js +1 -1
- package/lib/apps/apps/AppRenderer.d.ts +14 -14
- package/lib/apps/apps/AppRenderer.js +18 -20
- package/lib/apps/apps/AppRuntimePlugins.js +2 -3
- package/lib/apps/apps/agent.js +1 -1
- package/lib/apps/apps/appspec.d.ts +10 -10
- package/lib/apps/apps/appspec.js +35 -35
- package/lib/apps/apps/browserSandbox.d.ts +1 -1
- package/lib/apps/apps/checks.d.ts +16 -7
- package/lib/apps/apps/checks.js +65 -21
- package/lib/apps/apps/composer.d.ts +2 -2
- package/lib/apps/apps/composer.js +1 -1
- package/lib/apps/apps/computer.d.ts +3 -3
- package/lib/apps/apps/computer.js +1 -1
- package/lib/apps/apps/customComponents.d.ts +2 -2
- package/lib/apps/apps/customComponents.js +3 -3
- package/lib/apps/apps/feedback.d.ts +2 -2
- package/lib/apps/apps/hostTools.d.ts +3 -3
- package/lib/apps/apps/hostTools.js +2 -2
- package/lib/apps/apps/kept.d.ts +1 -1
- package/lib/apps/apps/language.d.ts +1 -1
- package/lib/apps/apps/pluginPair.d.ts +1 -1
- package/lib/apps/apps/records.js +1 -1
- package/lib/apps/apps/rules.d.ts +2 -2
- package/lib/apps/apps/rules.js +2 -2
- package/lib/apps/apps/saved.d.ts +1 -1
- package/lib/apps/apps/saved.js +1 -1
- package/lib/apps/apps/sceneChecks.js +3 -3
- package/lib/apps/apps/sceneYaml.js +1 -1
- package/lib/apps/apps/sessionRules.d.ts +7 -8
- package/lib/apps/apps/sessionRules.js +6 -7
- package/lib/apps/apps/settingsInputs.d.ts +1 -1
- package/lib/apps/apps/settingsInputs.js +1 -1
- package/lib/apps/apps/threads.d.ts +2 -2
- package/lib/apps/apps/threads.js +1 -1
- package/lib/apps/apps/uploads.d.ts +1 -1
- package/lib/apps/apps/visitorToken.d.ts +1 -1
- package/lib/apps/apps/visitorToken.js +2 -2
- package/lib/apps/core/a2uiComponents.js +1 -2
- package/lib/apps/core/appFiles.js +1 -1
- package/lib/apps/core/canvasBlocks.d.ts +1 -1
- package/lib/apps/core/canvasBlocks.js +1 -1
- package/lib/apps/core/canvasParts.d.ts +3 -3
- package/lib/apps/core/canvasParts.js +1 -1
- package/lib/apps/core/index.d.ts +12 -13
- package/lib/apps/core/index.js +5 -6
- package/lib/apps/embed/AppEmbed.d.ts +9 -9
- package/lib/apps/embed/AppEmbed.js +9 -10
- package/lib/apps/embed/LoopEmbed.d.ts +2 -3
- package/lib/apps/embed/datalayer-app.js +1 -1
- package/lib/apps/embed/element.js +11 -11
- package/lib/apps/embed/embedConfig.d.ts +8 -10
- package/lib/apps/embed/embedConfig.js +6 -7
- package/lib/apps/embed/embedSession.d.ts +3 -3
- package/lib/apps/embed/embedSession.js +2 -2
- package/lib/apps/embed/embeddedSecrets.d.ts +1 -1
- package/lib/apps/embed/embeddedSecrets.js +1 -1
- package/lib/apps/embed/hostBridge.d.ts +14 -14
- package/lib/apps/embed/hostBridge.js +9 -9
- package/lib/apps/embed/loader.js +2 -2
- package/lib/apps/embed/visitorApp.d.ts +1 -1
- package/lib/apps/index.d.ts +1 -1
- package/lib/apps/index.js +3 -3
- package/lib/apps/plugins/a2ui/A2uiView.js +1 -1
- package/lib/apps/plugins/a2ui-surface/AnswerShows.d.ts +2 -2
- package/lib/apps/plugins/a2ui-surface/AnswerShows.js +1 -1
- package/lib/apps/plugins/a2ui-surface/InlineSurface.d.ts +1 -1
- package/lib/apps/plugins/a2ui-surface/SurfaceToolResult.js +2 -2
- package/lib/apps/plugins/a2ui-surface/index.js +1 -1
- package/lib/apps/plugins/a2ui-surface/ownComponents.js +1 -1
- package/lib/apps/plugins/a2ui-surface/toolResult.d.ts +2 -2
- package/lib/apps/plugins/a2ui-surface/toolResult.js +2 -2
- package/lib/apps/plugins/agent-capacity/index.d.ts +2 -2
- package/lib/apps/plugins/agents/DatalayerAgentBridge.js +4 -4
- package/lib/apps/plugins/agents/appLaunch.d.ts +1 -1
- package/lib/apps/plugins/agents/plugin.d.ts +4 -4
- package/lib/apps/plugins/agents/switchable.js +1 -1
- package/lib/apps/plugins/app-activity/AppActivity.d.ts +1 -1
- package/lib/apps/plugins/app-components/index.d.ts +1 -2
- package/lib/apps/plugins/app-components/index.js +1 -2
- package/lib/apps/plugins/app-computer/AppComputer.d.ts +1 -1
- package/lib/apps/plugins/app-computer/AppComputer.js +2 -2
- package/lib/apps/plugins/app-elements/AppElements.d.ts +1 -2
- package/lib/apps/plugins/app-elements/AppElements.js +1 -1
- package/lib/apps/plugins/app-elements/QuestionView.d.ts +1 -2
- package/lib/apps/plugins/app-elements/QuestionView.js +1 -1
- package/lib/apps/plugins/app-elements/index.d.ts +2 -2
- package/lib/apps/plugins/app-elements/index.js +2 -2
- package/lib/apps/plugins/app-page/AppPage.d.ts +3 -3
- package/lib/apps/plugins/app-page/appPageModel.d.ts +5 -5
- package/lib/apps/plugins/app-page/appPageModel.js +1 -1
- package/lib/apps/plugins/app-page/index.d.ts +3 -3
- package/lib/apps/plugins/app-page/index.js +1 -1
- package/lib/apps/plugins/app-page/pageRun.d.ts +2 -2
- package/lib/apps/plugins/app-page/pageRun.js +2 -2
- package/lib/apps/plugins/app-rules/AppRulesCard.d.ts +5 -5
- package/lib/apps/plugins/app-rules/AppRulesCard.js +4 -4
- package/lib/apps/plugins/assistant/index.d.ts +2 -2
- package/lib/apps/plugins/assistant-characters/index.d.ts +2 -2
- package/lib/apps/plugins/assistant-characters/index.js +2 -2
- package/lib/apps/plugins/canvas-blocks/index.d.ts +1 -1
- package/lib/apps/plugins/canvas-blocks/index.js +1 -1
- package/lib/apps/plugins/canvas-parts/index.d.ts +5 -5
- package/lib/apps/plugins/canvas-parts/index.js +5 -5
- package/lib/apps/plugins/chat/ChatView.js +36 -34
- package/lib/apps/plugins/chat/index.d.ts +8 -8
- package/lib/apps/plugins/document/DocumentView.js +2 -2
- package/lib/apps/plugins/notebook/NotebookView.js +1 -1
- package/lib/apps/plugins/page-layout/SplitLayout.d.ts +1 -1
- package/lib/apps/plugins/pap-sign-in/PapSignInCard.d.ts +1 -1
- package/lib/apps/plugins/pap-sign-in/PapSignInCard.js +1 -1
- package/lib/apps/plugins/pap-sign-in/index.js +1 -1
- package/lib/apps/plugins/pap-sign-in/signIn.d.ts +1 -1
- package/lib/apps/plugins/pap-sign-in/signIn.js +1 -1
- package/lib/apps/plugins/plugins-panel/index.d.ts +1 -1
- package/lib/apps/plugins/plugins-panel/index.js +1 -1
- package/lib/apps/plugins/shield-displays/DiffCard.d.ts +2 -2
- package/lib/apps/plugins/shield-displays/TerminalCard.d.ts +1 -1
- package/lib/apps/plugins/shield-displays/index.js +3 -3
- package/lib/apps/presets.d.ts +9 -9
- package/lib/apps/presets.js +3 -3
- package/lib/apps/shell/LoopWorkspace.d.ts +1 -1
- package/lib/apps/shell/LoopWorkspace.js +1 -1
- package/lib/apps/shell/PluginToggles.d.ts +1 -1
- package/lib/apps/shell/SidebarRail.d.ts +1 -1
- package/lib/apps/shell/paneMotion.d.ts +1 -1
- package/lib/apps/shell/paneMotion.js +1 -1
- package/lib/chat/ChatFloating.d.ts +8 -9
- package/lib/chat/ChatFloating.js +4 -4
- package/lib/chat/ChatInline.js +1 -1
- package/lib/chat/ChatLanguage.d.ts +1 -1
- package/lib/chat/ChatLanguage.js +1 -1
- package/lib/chat/assistant/AssistantContextMenu.d.ts +1 -1
- package/lib/chat/assistant/AssistantStage.d.ts +4 -4
- package/lib/chat/assistant/AssistantStage.js +1 -1
- package/lib/chat/assistant/BalloonParts.d.ts +1 -1
- package/lib/chat/assistant/BalloonVisual.d.ts +1 -1
- package/lib/chat/assistant/SpeechBalloon.d.ts +2 -2
- package/lib/chat/assistant/SpriteCharacter.d.ts +1 -1
- package/lib/chat/assistant/characters.d.ts +2 -2
- package/lib/chat/assistant/formats/acf.js +1 -1
- package/lib/chat/assistant/formats/files.js +1 -1
- package/lib/chat/assistant/formats/index.d.ts +1 -1
- package/lib/chat/assistant/formats/index.js +1 -1
- package/lib/chat/assistant/formats/types.d.ts +1 -1
- package/lib/chat/assistant/state.d.ts +2 -2
- package/lib/chat/assistant/toolLine.js +1 -1
- package/lib/chat/base/ChatBase.js +28 -20
- package/lib/chat/base/conversationItems.d.ts +3 -3
- package/lib/chat/base/loopElement.d.ts +2 -2
- package/lib/chat/base/loopStep.d.ts +3 -3
- package/lib/chat/base/loopStep.js +1 -1
- package/lib/chat/base/loopWindow.d.ts +3 -3
- package/lib/chat/base/loopWindow.js +3 -3
- package/lib/chat/base/uiFiles.d.ts +1 -1
- package/lib/chat/base/uiFiles.js +1 -1
- package/lib/chat/base/uiOps.d.ts +1 -1
- package/lib/chat/base/uiOps.js +1 -1
- package/lib/chat/index.js +1 -1
- package/lib/chat/indicators/McpStatusIndicator.js +1 -1
- package/lib/chat/indicators/SkillsStatusIndicator.js +1 -1
- package/lib/chat/messages/ChatMessageList.d.ts +3 -4
- package/lib/chat/messages/ChatMessageList.js +2 -2
- package/lib/chat/messages/markdownWithoutHtml.d.ts +1 -1
- package/lib/chat/messages/markdownWithoutHtml.js +1 -1
- package/lib/chat/presence/Presence.d.ts +2 -2
- package/lib/chat/presence/Presence.js +1 -1
- package/lib/chat/presence/presenceStatus.d.ts +2 -2
- package/lib/chat/presence/presenceStatus.js +2 -2
- package/lib/chat/prompt/InputPrompt.d.ts +3 -3
- package/lib/chat/prompt/InputPromptBase.d.ts +1 -1
- package/lib/chat/prompt/InputPromptBase.js +1 -1
- package/lib/chat/prompt/InputPromptLexical.d.ts +1 -1
- package/lib/chat/styles/streamdownStyles.js +1 -1
- package/lib/chat/useViewportDrag.d.ts +1 -1
- package/lib/chat/viewModes.d.ts +1 -1
- package/lib/chat/viewModes.js +2 -2
- package/lib/chat/words.js +1 -1
- package/lib/client/mixins/RuntimesMixin.d.ts +3 -3
- package/lib/client/mixins/RuntimesMixin.js +3 -3
- package/lib/components/a2ui/custom/index.d.ts +3 -3
- package/lib/components/a2ui/custom/index.js +1 -1
- package/lib/components/a2ui/custom/sandbox.d.ts +2 -2
- package/lib/components/a2ui/custom/sandbox.js +2 -2
- package/lib/components/a2ui/datalayer/Chart.js +2 -2
- package/lib/components/a2ui/datalayer/Chat.js +1 -1
- package/lib/components/a2ui/datalayer/Download.js +1 -1
- package/lib/components/a2ui/datalayer/Evidence.js +1 -1
- package/lib/components/a2ui/datalayer/FileUpload.d.ts +1 -1
- package/lib/components/a2ui/datalayer/FileUpload.js +2 -2
- package/lib/components/a2ui/datalayer/Form.js +2 -2
- package/lib/components/a2ui/datalayer/SchemaForm.d.ts +1 -1
- package/lib/components/a2ui/datalayer/Table.js +1 -1
- package/lib/components/a2ui/datalayer/drawn.d.ts +1 -1
- package/lib/components/a2ui/datalayer/drawn.js +1 -1
- package/lib/components/a2ui/datalayer/formWidgets.js +1 -1
- package/lib/components/a2ui/datalayer/index.d.ts +1 -1
- package/lib/components/a2ui/datalayer/schema.d.ts +2 -2
- package/lib/components/a2ui/datalayer/schema.js +2 -2
- package/lib/components/a2ui/styles.js +1 -1
- package/lib/components/a2ui/visibleWhen.d.ts +3 -3
- package/lib/components/a2ui/visibleWhen.js +3 -3
- package/lib/components/code-sandboxes/CodeSandboxEnvironmentSelect.d.ts +1 -1
- package/lib/components/code-sandboxes/CodeSandboxLauncher.js +1 -1
- package/lib/components/code-sandboxes/CodeSandboxUtils.d.ts +1 -1
- package/lib/components/code-sandboxes/codeSandboxEnvironments.d.ts +2 -2
- package/lib/components/inspector/a2aSpans.d.ts +1 -1
- package/lib/components/inspector/a2aSpans.js +1 -1
- package/lib/components/teams/A2ATeamGraph.d.ts +3 -3
- package/lib/components/teams/A2ATeamGraph.js +1 -3
- package/lib/components/teams/AnswerSurfaces.d.ts +1 -1
- package/lib/components/teams/NotebookPreview.d.ts +1 -1
- package/lib/components/teams/SceneTranscript.d.ts +1 -1
- package/lib/components/teams/SceneView.d.ts +1 -1
- package/lib/components/teams/a2aTeamFlow.d.ts +1 -1
- package/lib/components/teams/a2aTeamFlow.js +1 -1
- package/lib/components/teams/sceneStage.d.ts +1 -1
- package/lib/components/teams/sceneTranscript.d.ts +1 -1
- package/lib/components/teams/useA2ATeam.d.ts +5 -5
- package/lib/components/teams/useA2ATeam.js +3 -3
- package/lib/config/AgentConfiguration.d.ts +1 -1
- package/lib/examples/AssistantExample.d.ts +1 -1
- package/lib/examples/AssistantExample.js +1 -1
- package/lib/examples/AssistantGalleryExample.d.ts +1 -1
- package/lib/examples/AssistantGalleryExample.js +1 -1
- package/lib/examples/LoopAppComputerExample.d.ts +1 -1
- package/lib/examples/LoopAppComputerExample.js +1 -1
- package/lib/examples/ProtocolSignedRequestsExample.d.ts +1 -1
- package/lib/examples/ProtocolSignedRequestsExample.js +1 -1
- package/lib/examples/ProtocolUcpCheckoutExample.d.ts +1 -1
- package/lib/examples/ProtocolUcpCheckoutExample.js +1 -1
- package/lib/examples/ScenesExample.d.ts +1 -1
- package/lib/examples/ScenesExample.js +1 -1
- package/lib/examples/ShieldHarnessExample.d.ts +1 -1
- package/lib/examples/ShieldHarnessExample.js +1 -1
- package/lib/examples/ShieldPolicyExample.d.ts +1 -1
- package/lib/examples/ShieldPolicyExample.js +1 -1
- package/lib/examples/VoiceChatExample.d.ts +1 -1
- package/lib/examples/VoiceChatExample.js +1 -1
- package/lib/examples/example-selector.js +3 -3
- package/lib/examples/exampleGroups.js +3 -3
- package/lib/examples/pap/PapSignInDisplayView.d.ts +1 -1
- package/lib/examples/pap/PapSignInDisplayView.js +1 -1
- package/lib/examples/pap/papSignInCases.js +1 -1
- package/lib/examples/protocols/signedRequestsDemo.d.ts +1 -1
- package/lib/examples/protocols/signedRequestsDemo.js +1 -1
- package/lib/examples/protocols/ucpCheckoutDemo.d.ts +1 -1
- package/lib/examples/protocols/ucpCheckoutDemo.js +1 -1
- package/lib/examples/shield/shieldHarness.d.ts +1 -1
- package/lib/examples/shield/shieldPolicyDemo.d.ts +2 -2
- package/lib/examples/shield/shieldPolicyDemo.js +1 -1
- package/lib/examples/utils/assistantGallery.d.ts +1 -1
- package/lib/examples/utils/clippyJsCharacters.js +2 -2
- package/lib/examples/utils/testSpriteCharacter.js +2 -2
- package/lib/hooks/ownRoutes.d.ts +1 -1
- package/lib/hooks/useAgentRuntimes.d.ts +1 -1
- package/lib/hooks/useChat.js +1 -1
- package/lib/index.js +1 -1
- package/lib/loop-example-main.js +1 -1
- package/lib/models/Environment.d.ts +11 -11
- package/lib/models/Environment.js +1 -1
- package/lib/models/RuntimeDTO.d.ts +1 -1
- package/lib/portable/activity.d.ts +2 -2
- package/lib/portable/activity.js +3 -3
- package/lib/portable/adapterEvents.d.ts +1 -1
- package/lib/portable/agUiRefusal.d.ts +1 -1
- package/lib/portable/agUiRefusal.js +1 -1
- package/lib/portable/agui.d.ts +2 -2
- package/lib/portable/agui.js +2 -2
- package/lib/portable/approvalCard.d.ts +1 -1
- package/lib/portable/approvalCard.js +1 -1
- package/lib/portable/approvals.d.ts +2 -2
- package/lib/portable/approvals.js +1 -1
- package/lib/portable/conversation.d.ts +2 -2
- package/lib/portable/conversation.js +1 -1
- package/lib/portable/direct.d.ts +2 -2
- package/lib/portable/displays.d.ts +2 -2
- package/lib/portable/displays.js +3 -3
- package/lib/portable/fixtures.d.ts +4 -5
- package/lib/portable/fixtures.js +4 -5
- package/lib/portable/hosts/agentClient.d.ts +5 -12
- package/lib/portable/hosts/agentClient.js +30 -10
- package/lib/portable/hosts/approvalRenderers.d.ts +6 -7
- package/lib/portable/hosts/approvalRenderers.js +2 -3
- package/lib/portable/hosts/client.d.ts +9 -6
- package/lib/portable/hosts/client.js +9 -8
- package/lib/portable/hosts/contracts.d.ts +2 -4
- package/lib/portable/hosts/contracts.js +2 -4
- package/lib/portable/hosts/contracts.json +2 -2
- package/lib/portable/hosts/deadLetters.js +2 -2
- package/lib/portable/hosts/deliveries.d.ts +2 -3
- package/lib/portable/hosts/forbiddenGraph.d.ts +4 -4
- package/lib/portable/hosts/forbiddenGraph.js +4 -4
- package/lib/portable/hosts/health.d.ts +3 -4
- package/lib/portable/hosts/health.js +3 -4
- package/lib/portable/hosts/index.d.ts +1 -1
- package/lib/portable/hosts/index.js +1 -1
- package/lib/portable/hosts/observability.d.ts +1 -1
- package/lib/portable/hosts/observability.js +3 -4
- package/lib/portable/hosts/postgresQueue.d.ts +2 -2
- package/lib/portable/hosts/postgresQueue.js +3 -3
- package/lib/portable/hosts/queue.d.ts +8 -1
- package/lib/portable/hosts/queue.js +17 -1
- package/lib/portable/hosts/quotas.d.ts +2 -2
- package/lib/portable/hosts/quotas.js +2 -2
- package/lib/portable/hosts/rateLimit.d.ts +1 -1
- package/lib/portable/hosts/resolution.d.ts +2 -2
- package/lib/portable/hosts/schema.d.ts +1 -1
- package/lib/portable/hosts/schema.js +1 -1
- package/lib/portable/hosts/secretCipher.d.ts +2 -2
- package/lib/portable/hosts/sessionUid.js +1 -2
- package/lib/portable/hosts/turnState.d.ts +1 -1
- package/lib/portable/index.js +12 -12
- package/lib/portable/lifecycle.d.ts +3 -3
- package/lib/portable/presence.d.ts +3 -3
- package/lib/portable/protectedInput.d.ts +1 -1
- package/lib/portable/records.d.ts +2 -2
- package/lib/portable/records.js +2 -2
- package/lib/portable/runMeasures.d.ts +1 -1
- package/lib/portable/runMeasures.js +1 -1
- package/lib/portable/runtimes.d.ts +1 -1
- package/lib/portable/semantic-events.json +1 -1
- package/lib/portable/semantic.d.ts +1 -1
- package/lib/portable/semantic.js +1 -1
- package/lib/portable/semanticOfAgUi.d.ts +2 -2
- package/lib/portable/semanticOfAgUi.js +1 -1
- package/lib/portable/signIn.d.ts +5 -5
- package/lib/portable/signIn.js +1 -1
- package/lib/portable/signInStatus.d.ts +1 -2
- package/lib/portable/signInStatus.js +1 -2
- package/lib/portable/thread.d.ts +2 -2
- package/lib/portable/thread.js +2 -2
- package/lib/portable/views.d.ts +5 -5
- package/lib/protocols/A2AAdapter.d.ts +1 -1
- package/lib/protocols/A2AAdapter.js +3 -3
- package/lib/protocols/AGUIAdapter.d.ts +1 -1
- package/lib/protocols/AGUIAdapter.js +2 -2
- package/lib/protocols/BrowserAgentAdapter.d.ts +2 -2
- package/lib/protocols/BrowserAgentAdapter.js +1 -1
- package/lib/protocols/VercelAIAdapter.js +2 -2
- package/lib/protocols/a2a/index.d.ts +1 -1
- package/lib/protocols/a2a/index.js +1 -1
- package/lib/protocols/agentProtocols.d.ts +1 -1
- package/lib/protocols/agentProtocols.js +1 -1
- package/lib/protocols/agentic-commerce/index.d.ts +2 -2
- package/lib/protocols/agentic-commerce/index.js +2 -2
- package/lib/protocols/commerce.d.ts +1 -1
- package/lib/protocols/commerce.js +3 -3
- package/lib/protocols/core.d.ts +3 -3
- package/lib/protocols/core.js +2 -2
- package/lib/protocols/mcp/client.js +1 -1
- package/lib/protocols/mcp/index.js +1 -1
- package/lib/protocols/pact/index.d.ts +6 -6
- package/lib/protocols/pact/index.js +6 -6
- package/lib/protocols/ucp/index.d.ts +2 -2
- package/lib/protocols/ucp/index.js +2 -2
- package/lib/protocols/ucp/merchant.js +1 -2
- package/lib/protocols/web-bot-auth/index.d.ts +1 -1
- package/lib/protocols/web-bot-auth/index.js +1 -1
- package/lib/protocols/web-bot-auth/tap.js +1 -1
- package/lib/runtimes/actions.js +2 -2
- package/lib/runtimes/apis.d.ts +3 -4
- package/lib/runtimes/browser/a2aPeer.d.ts +1 -1
- package/lib/runtimes/browser/a2aPeer.js +1 -1
- package/lib/runtimes/browser/protocol.d.ts +1 -1
- package/lib/runtimes/variants.d.ts +3 -3
- package/lib/runtimes/variants.js +4 -4
- package/lib/specs/agents/agents.js +2 -2
- package/lib/specs/apps.js +28 -28
- package/lib/specs/appspecSchema.js +62 -62
- package/lib/specs/harnesses.d.ts +1 -1
- package/lib/specs/harnesses.js +1 -1
- package/lib/specs/policies.d.ts +1 -1
- package/lib/specs/policies.js +2 -2
- package/lib/specs/protocols.d.ts +1 -1
- package/lib/specs/sceneSchema.js +4 -4
- package/lib/specs/scenes.js +4 -4
- package/lib/specs/standards.d.ts +1 -1
- package/lib/specs/ui.d.ts +2 -2
- package/lib/specs/ui.js +1 -1
- package/lib/specs/uiRenderers.d.ts +1 -1
- package/lib/specs/voices.d.ts +2 -2
- package/lib/specs/voices.js +2 -2
- package/lib/stories/loop/ReferenceScreens.js +1 -1
- package/lib/stories/loop/pictures-main.js +2 -2
- package/lib/test-setup.js +1 -1
- package/lib/types/agentspecs.d.ts +81 -85
- package/lib/types/chat.d.ts +26 -13
- package/lib/types/messages.d.ts +1 -1
- package/lib/types/protocol.d.ts +3 -3
- package/lib/types/scenes.d.ts +6 -6
- package/lib/types/teams.d.ts +3 -3
- package/lib/ui-plugins/MCPUIPlugin.d.ts +2 -2
- package/lib/ui-plugins/MCPUIPlugin.js +1 -1
- package/lib/voice/ComposerVoice.d.ts +5 -3
- package/lib/voice/ComposerVoice.js +4 -4
- package/lib/voice/HandsFree.d.ts +9 -3
- package/lib/voice/HandsFree.js +8 -3
- package/lib/voice/ReadAloud.d.ts +1 -1
- package/lib/voice/VoiceInput.d.ts +1 -2
- package/lib/voice/VoiceMenu.d.ts +1 -1
- package/lib/voice/captions.d.ts +1 -1
- package/lib/voice/captions.js +1 -1
- package/lib/voice/capture.d.ts +1 -1
- package/lib/voice/capture.js +1 -1
- package/lib/voice/chatVoice.d.ts +1 -1
- package/lib/voice/chatVoice.js +3 -3
- package/lib/voice/choices.d.ts +2 -2
- package/lib/voice/choices.js +2 -2
- package/lib/voice/consent.js +1 -1
- package/lib/voice/handsFree.d.ts +29 -4
- package/lib/voice/handsFree.js +32 -4
- package/lib/voice/hearing.d.ts +1 -1
- package/lib/voice/hearing.js +1 -1
- package/lib/voice/index.d.ts +2 -2
- package/lib/voice/pinned.d.ts +2 -2
- package/lib/voice/pinned.js +2 -2
- package/lib/voice/sayAloud.d.ts +2 -2
- package/lib/voice/sayAloud.js +2 -2
- package/lib/voice/sentences.d.ts +1 -1
- package/lib/voice/sentences.js +1 -1
- package/lib/voice/serverHearing.d.ts +8 -2
- package/lib/voice/serverHearing.js +37 -6
- package/lib/voice/settings.d.ts +2 -2
- package/lib/voice/settings.js +2 -2
- package/lib/voice/speaker.d.ts +10 -4
- package/lib/voice/speaker.js +5 -2
- package/lib/voice/types.d.ts +1 -1
- package/lib/voice/useSpokenAnswers.js +2 -2
- package/lib/voice/useVoiceSettings.js +1 -1
- package/lib/voice/useVoiceSpeaker.js +1 -1
- package/package.json +2 -2
- package/scripts/codegen/generate_agentic_commerce.sh +1 -1
- package/scripts/codegen/generate_agents.py +5 -5
- package/scripts/codegen/generate_apps.py +3 -3
- package/scripts/codegen/generate_harnesses.py +4 -4
- package/scripts/codegen/generate_mcp_servers.py +2 -2
- package/scripts/codegen/generate_policies.py +3 -3
- package/scripts/codegen/generate_protocols.py +3 -4
- package/scripts/codegen/generate_scenes.py +4 -4
- package/scripts/codegen/generate_standards.py +3 -3
- package/scripts/codegen/generate_teams.py +1 -1
- package/scripts/codegen/generate_ui.py +8 -8
- package/scripts/codegen/generate_ui_renderers.py +3 -3
- package/scripts/codegen/generate_voices.py +4 -4
- package/scripts/dist-embed.mjs +1 -1
- package/scripts/generate-environments-types.py +1 -1
- package/scripts/record-scene-checks.py +2 -2
- package/scripts/voice/measure.py +3 -3
- package/scripts/voice/pin_store.py +1 -1
- package/scripts/voice/serve_store.py +1 -1
- package/scripts/voice/transcribe.mjs +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Datalayer's own characters for the floating assistant, contributed
|
|
3
|
-
* (
|
|
3
|
+
* (T-24, T-25): the paper clip, the wizard, the cat and the L👀P eyes.
|
|
4
4
|
* Disabled, they leave the catalogue; another plugin may contribute others.
|
|
5
5
|
*
|
|
6
6
|
* @module apps/plugins/assistant-characters
|
|
@@ -18,7 +18,7 @@ type ContributionsReader = {
|
|
|
18
18
|
export declare const ASSISTANT_CHARACTERS_PLUGIN_NAME = "@datalayer/loop-plugin-assistant-characters";
|
|
19
19
|
export declare const AssistantCharactersPlugin: ReactorPlugin<Record<string, never>, unknown, unknown>;
|
|
20
20
|
/**
|
|
21
|
-
* A plugin contributing one character (
|
|
21
|
+
* A plugin contributing one character (T-24, T-26): a character a
|
|
22
22
|
* person brought — a `.acs` or a clippy.js character read in their page —
|
|
23
23
|
* offered beside the contributed ones under the id it is chosen by. The
|
|
24
24
|
* character stays in the page: the plugin only says it is there.
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
6
6
|
* Datalayer's own characters for the floating assistant, contributed
|
|
7
|
-
* (
|
|
7
|
+
* (T-24, T-25): the paper clip, the wizard, the cat and the L👀P eyes.
|
|
8
8
|
* Disabled, they leave the catalogue; another plugin may contribute others.
|
|
9
9
|
*
|
|
10
10
|
* @module apps/plugins/assistant-characters
|
|
@@ -21,7 +21,7 @@ export const AssistantCharactersPlugin = definePlugin({
|
|
|
21
21
|
contributes: ASSISTANT_CHARACTERS.map(character => contribution(LoopAssistantCharacter, { id: character.id, character }, { id: character.id })),
|
|
22
22
|
});
|
|
23
23
|
/**
|
|
24
|
-
* A plugin contributing one character (
|
|
24
|
+
* A plugin contributing one character (T-24, T-26): a character a
|
|
25
25
|
* person brought — a `.acs` or a clippy.js character read in their page —
|
|
26
26
|
* offered beside the contributed ones under the id it is chosen by. The
|
|
27
27
|
* character stays in the page: the plugin only says it is there.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The Canvas's palette as a Contribution Point (
|
|
2
|
+
* The Canvas's palette as a Contribution Point (C-12): each UI plugin
|
|
3
3
|
* of the catalogue that renders components (`agentspecs/ui`, C-13 — the
|
|
4
4
|
* A2UI surfaces, `a2ui-surface`) has its components contributed to
|
|
5
5
|
* `loop.canvas.block` by a Reactor plugin of its own, one per UI spec. The
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Distributed under the terms of the Modified BSD License.
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
6
|
-
* The Canvas's palette as a Contribution Point (
|
|
6
|
+
* The Canvas's palette as a Contribution Point (C-12): each UI plugin
|
|
7
7
|
* of the catalogue that renders components (`agentspecs/ui`, C-13 — the
|
|
8
8
|
* A2UI surfaces, `a2ui-surface`) has its components contributed to
|
|
9
9
|
* `loop.canvas.block` by a Reactor plugin of its own, one per UI spec. The
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The agent's toolbox, contributed (
|
|
2
|
+
* The agent's toolbox, contributed (C-20): one plugin per source of
|
|
3
3
|
* parts — the servers of the catalogue a connection reaches, its skills, its
|
|
4
4
|
* models, and the rules, tests and events an agent answers to — each
|
|
5
5
|
* contributing to `loop.canvas.part`. The toolbox is what the enabled
|
|
@@ -19,7 +19,7 @@ export declare const CANVAS_PART_SOURCES: readonly ["agents", "connections", "sk
|
|
|
19
19
|
export type CanvasPartSource = (typeof CANVAS_PART_SOURCES)[number];
|
|
20
20
|
export declare const canvasPartsPluginName: (source: CanvasPartSource) => string;
|
|
21
21
|
/**
|
|
22
|
-
* The catalogue's harnesses as the agent (
|
|
22
|
+
* The catalogue's harnesses as the agent (SH-43): each harness an
|
|
23
23
|
* agent program over ACP behind the Shield, offered by the catalogue agent
|
|
24
24
|
* that runs on it — dropped on the surface, it is the application's agent.
|
|
25
25
|
* A harness no agent of the catalogue runs yet is offered off, and says so;
|
|
@@ -38,14 +38,14 @@ export declare const RULE_PARTS: CanvasPartContribution[];
|
|
|
38
38
|
export declare const TEST_PARTS: CanvasPartContribution[];
|
|
39
39
|
/** The events an application answers (C-21): on a schedule, on an event, once. */
|
|
40
40
|
export declare const EVENT_PARTS: CanvasPartContribution[];
|
|
41
|
-
/** Each protocol of the catalogue (
|
|
41
|
+
/** Each protocol of the catalogue (PS-04): a planned one offered, not enabled. */
|
|
42
42
|
export declare const PROTOCOL_PARTS: CanvasPartContribution[];
|
|
43
43
|
/**
|
|
44
|
-
* Each UI plugin of the catalogue (
|
|
44
|
+
* Each UI plugin of the catalogue (R8): a part of the agent's
|
|
45
45
|
* interface, dropped on it, then exposed through a renderer it may be.
|
|
46
46
|
*/
|
|
47
47
|
export declare const UI_PARTS: CanvasPartContribution[];
|
|
48
|
-
/** Datalayer's characters for its floating assistant, dropped on the agent (
|
|
48
|
+
/** Datalayer's characters for its floating assistant, dropped on the agent (PS-05). */
|
|
49
49
|
export declare const CHARACTER_PARTS: CanvasPartContribution[];
|
|
50
50
|
export declare const CANVAS_PART_PLUGINS: ReactorPlugin<Record<string, never>, unknown, unknown>[];
|
|
51
51
|
/** The toolbox's reactor, its named plugins disabled; a name no plugin has is refused. */
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Distributed under the terms of the Modified BSD License.
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
6
|
-
* The agent's toolbox, contributed (
|
|
6
|
+
* The agent's toolbox, contributed (C-20): one plugin per source of
|
|
7
7
|
* parts — the servers of the catalogue a connection reaches, its skills, its
|
|
8
8
|
* models, and the rules, tests and events an agent answers to — each
|
|
9
9
|
* contributing to `loop.canvas.part`. The toolbox is what the enabled
|
|
@@ -43,7 +43,7 @@ const partsPlugin = (source, displayName, parts) => definePlugin({
|
|
|
43
43
|
contributes: parts.map(part => contribution(LoopCanvasPart, part, { id: part.id })),
|
|
44
44
|
});
|
|
45
45
|
/**
|
|
46
|
-
* The catalogue's harnesses as the agent (
|
|
46
|
+
* The catalogue's harnesses as the agent (SH-43): each harness an
|
|
47
47
|
* agent program over ACP behind the Shield, offered by the catalogue agent
|
|
48
48
|
* that runs on it — dropped on the surface, it is the application's agent.
|
|
49
49
|
* A harness no agent of the catalogue runs yet is offered off, and says so;
|
|
@@ -205,7 +205,7 @@ export const EVENT_PARTS = [
|
|
|
205
205
|
enabled: true,
|
|
206
206
|
},
|
|
207
207
|
];
|
|
208
|
-
/** Each protocol of the catalogue (
|
|
208
|
+
/** Each protocol of the catalogue (PS-04): a planned one offered, not enabled. */
|
|
209
209
|
export const PROTOCOL_PARTS = listProtocolSpecs().map(protocol => ({
|
|
210
210
|
id: `protocol:${protocol.id}`,
|
|
211
211
|
kind: 'protocol',
|
|
@@ -215,7 +215,7 @@ export const PROTOCOL_PARTS = listProtocolSpecs().map(protocol => ({
|
|
|
215
215
|
enabled: protocol.status === 'shipped',
|
|
216
216
|
}));
|
|
217
217
|
/**
|
|
218
|
-
* Each UI plugin of the catalogue (
|
|
218
|
+
* Each UI plugin of the catalogue (R8): a part of the agent's
|
|
219
219
|
* interface, dropped on it, then exposed through a renderer it may be.
|
|
220
220
|
*/
|
|
221
221
|
export const UI_PARTS = listUI().map(ui => ({
|
|
@@ -227,7 +227,7 @@ export const UI_PARTS = listUI().map(ui => ({
|
|
|
227
227
|
example: { plugin: ui.id },
|
|
228
228
|
enabled: true,
|
|
229
229
|
}));
|
|
230
|
-
/** Datalayer's characters for its floating assistant, dropped on the agent (
|
|
230
|
+
/** Datalayer's characters for its floating assistant, dropped on the agent (PS-05). */
|
|
231
231
|
export const CHARACTER_PARTS = ASSISTANT_CHARACTERS.map(character => ({
|
|
232
232
|
id: `character:${character.id}`,
|
|
233
233
|
kind: 'character',
|
|
@@ -69,7 +69,7 @@ const NO_SURFACE = '';
|
|
|
69
69
|
const FULLSCREEN_HINT_PERIOD_MS = 1400;
|
|
70
70
|
/**
|
|
71
71
|
* An application's face in the empty state: the page's size of the three a
|
|
72
|
-
* face is drawn at (
|
|
72
|
+
* face is drawn at (T-19, `--loop-face-large`, 72px).
|
|
73
73
|
*/
|
|
74
74
|
const FACE_LARGE = parseInt(loopShapeVars['--loop-face-large'], 10);
|
|
75
75
|
export default function ChatView({ workspace }) {
|
|
@@ -207,7 +207,7 @@ export default function ChatView({ workspace }) {
|
|
|
207
207
|
*/
|
|
208
208
|
const [busy, setBusy] = useState(false);
|
|
209
209
|
const [sendReady, setSendReady] = useState(false);
|
|
210
|
-
// The agent's voice speaks (
|
|
210
|
+
// The agent's voice speaks (VO-10): the composer's *Stop speaking*.
|
|
211
211
|
const [speaking, setSpeaking] = useState(false);
|
|
212
212
|
const [presenceTool, setPresenceTool] = useState({
|
|
213
213
|
open: false,
|
|
@@ -222,7 +222,7 @@ export default function ChatView({ workspace }) {
|
|
|
222
222
|
turnFeedRef.current?.setPresence(presenceNow);
|
|
223
223
|
}, [onPresence, presenceNow]);
|
|
224
224
|
// What it last said, for a host that says it outside the conversation —
|
|
225
|
-
// the embed's floating chrome (
|
|
225
|
+
// the embed's floating chrome (R-01): its balloon and its blink.
|
|
226
226
|
// Through a ref: the handler below is made once.
|
|
227
227
|
const onSayingRef = useRef(config?.presence?.onSaying);
|
|
228
228
|
onSayingRef.current = config?.presence?.onSaying;
|
|
@@ -367,7 +367,7 @@ export default function ChatView({ workspace }) {
|
|
|
367
367
|
const inPageRef = useRef(false);
|
|
368
368
|
/**
|
|
369
369
|
* The page's sandbox, when the agent turned in the page runs its code
|
|
370
|
-
* there (`execute_code`,
|
|
370
|
+
* there (`execute_code`, E-11): what a file given on the page is
|
|
371
371
|
* put in. Read by `sendNow`, set below.
|
|
372
372
|
*/
|
|
373
373
|
const pageSandboxRef = useRef(undefined);
|
|
@@ -377,7 +377,7 @@ export default function ChatView({ workspace }) {
|
|
|
377
377
|
* stopped deployment, a visitor's turns all taken. Set below.
|
|
378
378
|
*/
|
|
379
379
|
const hostClosedRef = useRef(undefined);
|
|
380
|
-
/** What goes with every run (an application's modes,
|
|
380
|
+
/** What goes with every run (an application's modes, P-19), read when it is sent. */
|
|
381
381
|
// How the words in the composer were heard, when they were said (VO-27).
|
|
382
382
|
const spokenRef = useRef(undefined);
|
|
383
383
|
const runProps = useContributions(LoopRunProps);
|
|
@@ -390,12 +390,12 @@ export default function ChatView({ workspace }) {
|
|
|
390
390
|
* begins its turn, and a page reading the turn sees it asked and answered.
|
|
391
391
|
*
|
|
392
392
|
* What the page did besides the message goes with it as AG-UI's
|
|
393
|
-
* `forwardedProps` (`loop`,
|
|
393
|
+
* `forwardedProps` (`loop`, R-04): the application's session takes a
|
|
394
394
|
* file there. An agent turned in this page has no session: one that runs
|
|
395
395
|
* its code in the page's sandbox has the files put there, and the message
|
|
396
|
-
* names them (
|
|
396
|
+
* names them (E-11); to any other no file is handed — said, rather
|
|
397
397
|
* than dropped. What the workspace's plugins send with every run
|
|
398
|
-
* (`LoopRunProps`: the modes the person is in,
|
|
398
|
+
* (`LoopRunProps`: the modes the person is in, P-19) goes under it —
|
|
399
399
|
* and an agent turned in this page applies the modes itself (`modeEffect`,
|
|
400
400
|
* `BrowserAgentAdapter`).
|
|
401
401
|
*/
|
|
@@ -404,11 +404,11 @@ export default function ChatView({ workspace }) {
|
|
|
404
404
|
return hostClosedRef.current;
|
|
405
405
|
}
|
|
406
406
|
// Said into the composer, then sent: how it was heard rides on the
|
|
407
|
-
// run, and the chat marks the message spoken (
|
|
407
|
+
// run, and the chat marks the message spoken (VO-27).
|
|
408
408
|
const spoken = spokenRef.current;
|
|
409
409
|
spokenRef.current = undefined;
|
|
410
410
|
const forwardedProps = runForwardedProps(runPropsRef.current.map(entry => entry.value), spoken ? { ...(given ?? {}), voice: spoken } : given);
|
|
411
|
-
// The page's files, or those attached in the composer (
|
|
411
|
+
// The page's files, or those attached in the composer (P-21).
|
|
412
412
|
const loop = forwardedProps?.loop;
|
|
413
413
|
if (inPageRef.current && loop?.files && loop.files.length > 0) {
|
|
414
414
|
const sandbox = pageSandboxRef.current;
|
|
@@ -501,7 +501,7 @@ export default function ChatView({ workspace }) {
|
|
|
501
501
|
*/
|
|
502
502
|
setTransient(null);
|
|
503
503
|
/*
|
|
504
|
-
* Words that go elsewhere than the agent (`sendInstead`,
|
|
504
|
+
* Words that go elsewhere than the agent (`sendInstead`,
|
|
505
505
|
* P-08): a Direct Conversation with a company, the person's own words
|
|
506
506
|
* sent as theirs. Neither a command nor a turn, and never the model's;
|
|
507
507
|
* refused, the words stay where they were typed and the reason is said.
|
|
@@ -789,7 +789,7 @@ export default function ChatView({ workspace }) {
|
|
|
789
789
|
/*
|
|
790
790
|
* An agent of the catalogue or a Cog's, as a runtime resolves it: an
|
|
791
791
|
* application on a Cog looked up among the agentspecs alone was turned in
|
|
792
|
-
* the page with no instructions at all (
|
|
792
|
+
* the page with no instructions at all (H-01).
|
|
793
793
|
*/
|
|
794
794
|
const spec = resolveAgentspec(member?.specId ?? agentId) ??
|
|
795
795
|
(blueprintSpecId ? resolveAgentspec(blueprintSpecId) : undefined);
|
|
@@ -840,7 +840,7 @@ export default function ChatView({ workspace }) {
|
|
|
840
840
|
const hidden = new Set(hiddenOpeners ?? []);
|
|
841
841
|
const offered = (items) => hidden.size === 0 ? items : items.filter(item => !hidden.has(item.text));
|
|
842
842
|
// What a plugin offers live (an application's profile's starters,
|
|
843
|
-
//
|
|
843
|
+
// P-20) wins over what was contributed when the reactor was built.
|
|
844
844
|
if (liveOpeners) {
|
|
845
845
|
return offered(liveOpeners);
|
|
846
846
|
}
|
|
@@ -1013,7 +1013,7 @@ export default function ChatView({ workspace }) {
|
|
|
1013
1013
|
}, [notebookTools, commandTools]);
|
|
1014
1014
|
/*
|
|
1015
1015
|
* The page's own tools for an agent on a server: a host example's, and
|
|
1016
|
-
* the tools of the `AgentTools` bundles its extras name (
|
|
1016
|
+
* the tools of the `AgentTools` bundles its extras name (RU-7:
|
|
1017
1017
|
* the host page's functions, `host_<name>`, each running its command on
|
|
1018
1018
|
* this reactor). An in-page agent has every bundle already (above).
|
|
1019
1019
|
*/
|
|
@@ -1057,7 +1057,7 @@ export default function ChatView({ workspace }) {
|
|
|
1057
1057
|
*/
|
|
1058
1058
|
/*
|
|
1059
1059
|
* The commands the composer lists while `/` is typed: those contributed for
|
|
1060
|
-
* it, an application's (
|
|
1060
|
+
* it, an application's (P-19). Picking one writes `/<name> `, and the
|
|
1061
1061
|
* workspace runs it when the message is sent.
|
|
1062
1062
|
*/
|
|
1063
1063
|
const commands = useContributions(LoopCommand);
|
|
@@ -1136,7 +1136,7 @@ export default function ChatView({ workspace }) {
|
|
|
1136
1136
|
/*
|
|
1137
1137
|
* What its host said of whether there is anything to talk to
|
|
1138
1138
|
* (`ChatAvailabilityProvider`): an application whose model is not offered
|
|
1139
|
-
* or not served (
|
|
1139
|
+
* or not served (R-27) is switched off with the reason, by the
|
|
1140
1140
|
* Studio's Preview and the hosted page, rather than left unanswered.
|
|
1141
1141
|
*/
|
|
1142
1142
|
const ambient = useChatAvailability();
|
|
@@ -1144,7 +1144,7 @@ export default function ChatView({ workspace }) {
|
|
|
1144
1144
|
? ambient.disableReason || 'This conversation is closed here.'
|
|
1145
1145
|
: undefined;
|
|
1146
1146
|
/*
|
|
1147
|
-
* No agent to talk to: a Datalayer runtime not assigned (
|
|
1147
|
+
* No agent to talk to: a Datalayer runtime not assigned (P-24,
|
|
1148
1148
|
* round 9). Said in a sentence — why, when its launch was refused — and
|
|
1149
1149
|
* nothing is sent; the header does not say *Ready*.
|
|
1150
1150
|
*/
|
|
@@ -1175,7 +1175,7 @@ export default function ChatView({ workspace }) {
|
|
|
1175
1175
|
*/
|
|
1176
1176
|
const [draft, setDraft] = useState('');
|
|
1177
1177
|
/*
|
|
1178
|
-
* Its voice (
|
|
1178
|
+
* Its voice (VO-10, VO-11, VO-49): the microphone in the
|
|
1179
1179
|
* workspace's composer, which this view holds — the words written in it as
|
|
1180
1180
|
* they are heard. The chat speaks its answers itself (`voice` below).
|
|
1181
1181
|
*/
|
|
@@ -1292,7 +1292,7 @@ export default function ChatView({ workspace }) {
|
|
|
1292
1292
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
1293
1293
|
}, [suggestion]);
|
|
1294
1294
|
/*
|
|
1295
|
-
* An application's session checks who is calling (
|
|
1295
|
+
* An application's session checks who is calling (R-32, R-04): its
|
|
1296
1296
|
* chat says so with the person's token. The embed hands its own.
|
|
1297
1297
|
*/
|
|
1298
1298
|
/*
|
|
@@ -1300,7 +1300,7 @@ export default function ChatView({ workspace }) {
|
|
|
1300
1300
|
* whether the application's plugin is up: while its runtime does not hold
|
|
1301
1301
|
* it, its page plugin stands down (F-15), and its chat is then never sent
|
|
1302
1302
|
* to the runtime's bare agent route — on the visitors' runtime one that is
|
|
1303
|
-
* not published (
|
|
1303
|
+
* not published (D-15). It speaks to the application's session API,
|
|
1304
1304
|
* whose refusal says why.
|
|
1305
1305
|
*/
|
|
1306
1306
|
const hostCreatePayload = reactor.getConfig(AGENTS_PLUGIN_NAME)?.datalayerCreatePayload;
|
|
@@ -1309,24 +1309,24 @@ export default function ChatView({ workspace }) {
|
|
|
1309
1309
|
const deploymentUid = deploymentOfPayload(hostCreatePayload);
|
|
1310
1310
|
const memberToken = useIAMStore(state => state.token);
|
|
1311
1311
|
/*
|
|
1312
|
-
* Without an account (
|
|
1312
|
+
* Without an account (R-30) the application runs on the visitors'
|
|
1313
1313
|
* runtime, which answers a visitor's token for it and nobody signed in.
|
|
1314
1314
|
*/
|
|
1315
1315
|
const visitors = reactor.getConfig(AGENTS_PLUGIN_NAME)?.datalayerVisitors;
|
|
1316
1316
|
const visitor = useVisitorToken(visitors);
|
|
1317
1317
|
// An embedded application's own token, for a visitor the platform does
|
|
1318
|
-
// not know (
|
|
1318
|
+
// not know (R-20): it runs a session of its deployment, and no more.
|
|
1319
1319
|
const embedToken = reactor.getConfig(AGENTS_PLUGIN_NAME)?.embedToken;
|
|
1320
1320
|
const iamToken = visitors ? visitor.token : embedToken || memberToken;
|
|
1321
1321
|
/*
|
|
1322
1322
|
* Its voice asked of the speech service as this chat speaks to its runtime
|
|
1323
|
-
* (
|
|
1324
|
-
* an embed's or the person's; an embed's names its deployment
|
|
1323
|
+
* (VO-37, VO-19): the host's token, else this one — a visitor's,
|
|
1324
|
+
* an embed's or the person's; an embed's names its deployment.
|
|
1325
1325
|
*/
|
|
1326
1326
|
const askedVoice = useMemo(() => voiceAskedAs(config?.voice, iamToken || undefined), [config?.voice, iamToken]);
|
|
1327
1327
|
/*
|
|
1328
1328
|
* A deployment's runtime, and the visitors', answer only the application's
|
|
1329
|
-
* own routes (OwnRoutesOnly,
|
|
1329
|
+
* own routes (OwnRoutesOnly, the release gates): its chat calls
|
|
1330
1330
|
* nothing else — Stop is its session's, no monitoring stream, no sandbox
|
|
1331
1331
|
* socket, no runtime-wide model switch. A Preview runs on the Maker's.
|
|
1332
1332
|
*/
|
|
@@ -1335,7 +1335,7 @@ export default function ChatView({ workspace }) {
|
|
|
1335
1335
|
throw new Error('A deployment’s page runs its application: its host gave no app_spec.');
|
|
1336
1336
|
}
|
|
1337
1337
|
/*
|
|
1338
|
-
* A thread opened from the person's history (
|
|
1338
|
+
* A thread opened from the person's history (P-24): its conversation
|
|
1339
1339
|
* read from the runtime once it answers — held there, else resumed from
|
|
1340
1340
|
* its record — then drawn and gone on with on the same thread. One that
|
|
1341
1341
|
* cannot be opened is said, and a new one starts.
|
|
@@ -1436,7 +1436,7 @@ export default function ChatView({ workspace }) {
|
|
|
1436
1436
|
// server's monitoring stream fills, so the side panel and the
|
|
1437
1437
|
// composer's pulse draw an in-page delegation like any other.
|
|
1438
1438
|
onSubagentEvent: event => agentRuntimeStore.getState().appendSubagentEvent(event),
|
|
1439
|
-
// An application's modes (
|
|
1439
|
+
// An application's modes (P-19): the options sent with a
|
|
1440
1440
|
// run tell it their instructions, on the model one names, as
|
|
1441
1441
|
// its session API does on a runtime.
|
|
1442
1442
|
modeEffect: blueprintTurn?.modeEffect,
|
|
@@ -1445,14 +1445,14 @@ export default function ChatView({ workspace }) {
|
|
|
1445
1445
|
? {
|
|
1446
1446
|
type: 'ag-ui',
|
|
1447
1447
|
// An application's agent is spoken to through its session API
|
|
1448
|
-
// (
|
|
1448
|
+
// (R-04): each thread a session, recorded under its uid,
|
|
1449
1449
|
// run in the name the application runs in, and taking what the
|
|
1450
1450
|
// page did besides the message — the same AG-UI events back.
|
|
1451
1451
|
endpoint: runsApp
|
|
1452
1452
|
? `${agentServerUrl}/api/v1/apps/agents/${encodeURIComponent(agentId)}/ag-ui/`
|
|
1453
1453
|
: `${agentServerUrl}/api/v1/ag-ui/${agentId}/`,
|
|
1454
1454
|
...(runsApp && iamToken ? { authToken: iamToken } : {}),
|
|
1455
|
-
// Its session's ui channel (
|
|
1455
|
+
// Its session's ui channel (RU-W): what its answers
|
|
1456
1456
|
// show, its steps and its elements, beside the run's text.
|
|
1457
1457
|
...(runsApp
|
|
1458
1458
|
? {
|
|
@@ -1701,6 +1701,8 @@ export default function ChatView({ workspace }) {
|
|
|
1701
1701
|
// The chat's own speaker, never a second one: the microphone
|
|
1702
1702
|
// opening stops it, and *Stop speaking* while it speaks.
|
|
1703
1703
|
speaking: speaking, onStopSpeaking: () => controlsRef.current?.stopSpeaking?.(),
|
|
1704
|
+
// Barge-in gated on how loud that speaker plays (VO-13).
|
|
1705
|
+
playbackLevel: () => controlsRef.current?.voiceLevel?.() ?? 0,
|
|
1704
1706
|
// Hands-free (VO-12, VO-13): the run in progress, stopped when
|
|
1705
1707
|
// the person speaks over it, and the answer marked interrupted.
|
|
1706
1708
|
running: busy, onStopRun: () => controlsRef.current?.stop?.(), onInterrupted: () => controlsRef.current?.markInterrupted(), onInterimChange: setVoiceInterim,
|
|
@@ -1717,7 +1719,7 @@ export default function ChatView({ workspace }) {
|
|
|
1717
1719
|
/*
|
|
1718
1720
|
An application's conversation keeps none of the session's controls
|
|
1719
1721
|
under its composer — the agents, the model, the tools and their servers,
|
|
1720
|
-
the skills (
|
|
1722
|
+
the skills (T-17, T-18): a person using an application is not
|
|
1721
1723
|
choosing them, and its builder chose them in its spec. An agent's chat
|
|
1722
1724
|
keeps them.
|
|
1723
1725
|
*/
|
|
@@ -1833,8 +1835,8 @@ export default function ChatView({ workspace }) {
|
|
|
1833
1835
|
, {
|
|
1834
1836
|
// The theme it wears, when the host names one (an application's).
|
|
1835
1837
|
themeVariant: config?.themeVariant, themeOverrides: config?.themeOverrides, colorMode: config?.colorMode, thread: chatThread,
|
|
1836
|
-
// Its voice, when its host gives one (an application's
|
|
1837
|
-
//
|
|
1838
|
+
// Its voice, when its host gives one (an application's `interface.voice`, VO-49):
|
|
1839
|
+
// the microphone in the
|
|
1838
1840
|
// composer, its answers heard.
|
|
1839
1841
|
voice: askedVoice,
|
|
1840
1842
|
// The header says why, beside the title, for the same reason the
|
|
@@ -1842,7 +1844,7 @@ export default function ChatView({ workspace }) {
|
|
|
1842
1844
|
// than an absent one.
|
|
1843
1845
|
disabled: chatDisabled, disableReason: disabledReason, protocol: protocol,
|
|
1844
1846
|
/*
|
|
1845
|
-
The page's own tools — a host page's functions (
|
|
1847
|
+
The page's own tools — a host page's functions (D-10), an
|
|
1846
1848
|
example's client tool — run by this chat when the agent is on a
|
|
1847
1849
|
server: sent with each run and executed here when it calls
|
|
1848
1850
|
one. An in-page agent is handed them in its protocol instead
|
|
@@ -1888,7 +1890,7 @@ export default function ChatView({ workspace }) {
|
|
|
1888
1890
|
// Not *Ready* with no runtime: the header says why instead.
|
|
1889
1891
|
presence && !noRuntime ? (_jsx(PresenceLine, { state: presenceNow })) : undefined, emptyState: {
|
|
1890
1892
|
// An application's own face, at the page's size of the three
|
|
1891
|
-
// (
|
|
1893
|
+
// (T-08, T-19): the thing a person's eye lands on first.
|
|
1892
1894
|
icon: presence?.face ? (_jsx("span", { "aria-hidden": true, style: { fontSize: FACE_LARGE, lineHeight: 1 }, children: _jsx(FaceDrawing, { face: presence.face, size: FACE_LARGE }) })) : (_jsx(BrandIcon, { size: 48 })),
|
|
1893
1895
|
// `ChatEmptyState` reads its heading from here and nowhere
|
|
1894
1896
|
// else — the `title` above reaches the header only — so
|
|
@@ -11,7 +11,7 @@ export interface ChatPresence {
|
|
|
11
11
|
/** What it says before anyone writes. */
|
|
12
12
|
welcome?: string;
|
|
13
13
|
/**
|
|
14
|
-
* Its deployment is paused (
|
|
14
|
+
* Its deployment is paused (R-17): it says so beside its face, and
|
|
15
15
|
* its assistant dozes (T-08, T-22), whatever its last turn left behind.
|
|
16
16
|
*/
|
|
17
17
|
paused?: boolean;
|
|
@@ -25,7 +25,7 @@ export interface ChatPresence {
|
|
|
25
25
|
/**
|
|
26
26
|
* Told what it last said, and whether its newest words are an answer, as
|
|
27
27
|
* they change — for a host that says them outside the conversation, as the
|
|
28
|
-
* embed's floating chrome does in its balloon and its blink (
|
|
28
|
+
* embed's floating chrome does in its balloon and its blink (R-01).
|
|
29
29
|
* Read once, when the workspace is built: pass a stable function, such as
|
|
30
30
|
* a state setter.
|
|
31
31
|
*/
|
|
@@ -41,12 +41,12 @@ export type ChatSaid = {
|
|
|
41
41
|
export type ChatPluginConfig = {
|
|
42
42
|
/**
|
|
43
43
|
* The theme the conversation wears, by name: the person's unless said. An
|
|
44
|
-
* application says `loop` (
|
|
44
|
+
* application says `loop` (T-06, T-12) — the conversation then takes
|
|
45
45
|
* the theme's bubbles, pills and colours whatever the page around it wears.
|
|
46
46
|
*/
|
|
47
47
|
themeVariant?: string;
|
|
48
48
|
/**
|
|
49
|
-
* Laid over that theme, by mode: an application's accent (
|
|
49
|
+
* Laid over that theme, by mode: an application's accent (T-05), so
|
|
50
50
|
* that its bubbles and its one button wear its colour and not the theme's.
|
|
51
51
|
*/
|
|
52
52
|
themeOverrides?: ThemeOverrides;
|
|
@@ -58,13 +58,13 @@ export type ChatPluginConfig = {
|
|
|
58
58
|
*/
|
|
59
59
|
colorMode?: 'light' | 'dark';
|
|
60
60
|
/**
|
|
61
|
-
* Who is answering, as the person meets them (
|
|
61
|
+
* Who is answering, as the person meets them (T-08): a name, a face
|
|
62
62
|
* and a welcome, in place of the agent's id and a generic icon. An
|
|
63
63
|
* application sets its own.
|
|
64
64
|
*/
|
|
65
65
|
presence?: ChatPresence;
|
|
66
66
|
/**
|
|
67
|
-
* The conversation to go on with (
|
|
67
|
+
* The conversation to go on with (D-13): an embedded application's
|
|
68
68
|
* session, reattached after its page reloaded, and what it holds.
|
|
69
69
|
*/
|
|
70
70
|
thread?: ResumedThread;
|
|
@@ -74,7 +74,7 @@ export type ChatPluginConfig = {
|
|
|
74
74
|
*/
|
|
75
75
|
showTokenUsage?: boolean;
|
|
76
76
|
/**
|
|
77
|
-
* Its voice (
|
|
77
|
+
* Its voice (VO-10, VO-20, VO-49): a microphone in the composer,
|
|
78
78
|
* the words written in it as they are heard, and the answers said by
|
|
79
79
|
* Datalayer's speech service — an application's `interface.voice`
|
|
80
80
|
* (`chatVoiceOf`). None unless said.
|
|
@@ -86,7 +86,7 @@ export type ChatPluginConfig = {
|
|
|
86
86
|
* Configured on the plugin rather than passed to the workspace: the prompt
|
|
87
87
|
* belongs to the chat, and a shell that has no chat plugin has no prompt to
|
|
88
88
|
* put a placeholder in. A host that wants different words says so where the
|
|
89
|
-
* words are. Empty, the chat's own, in the person's language (
|
|
89
|
+
* words are. Empty, the chat's own, in the person's language (P-26).
|
|
90
90
|
*/
|
|
91
91
|
placeholder: string;
|
|
92
92
|
/**
|
|
@@ -42,10 +42,10 @@ export default function DocumentView({ workspace, }) {
|
|
|
42
42
|
undefined;
|
|
43
43
|
return (_jsx(Box, { height: "100%", minHeight: 0, children: _jsx(EphemeralDocument
|
|
44
44
|
// The entry point owns the theme; a second provider here would fight
|
|
45
|
-
// it over BaseStyles and font tokens
|
|
45
|
+
// it over BaseStyles and font tokens.
|
|
46
46
|
, {
|
|
47
47
|
// The entry point owns the theme; a second provider here would fight
|
|
48
|
-
// it over BaseStyles and font tokens
|
|
48
|
+
// it over BaseStyles and font tokens.
|
|
49
49
|
inheritTheme: true, documentId: documentId, content: opening, autoFocus: autoFocus, serviceManager: browserManager, showToolbar: toolbar.present, toolbarExtraItems: toolbar.items,
|
|
50
50
|
// Join the sandbox's kernel rather than starting a rival one.
|
|
51
51
|
kernelId: browserManager ? snapshot.kernelId : undefined, runtimeOverride: !browserManager && snapshot.jupyterUrl
|
|
@@ -166,7 +166,7 @@ export default function NotebookView({ workspace, }) {
|
|
|
166
166
|
*/
|
|
167
167
|
nbformat: opening,
|
|
168
168
|
// The entry point owns the theme; a second provider here would fight
|
|
169
|
-
// it over BaseStyles and font tokens
|
|
169
|
+
// it over BaseStyles and font tokens.
|
|
170
170
|
inheritTheme: true, notebookId: notebookId, serviceManager: browserManager,
|
|
171
171
|
// Join the sandbox's kernel rather than starting a rival one.
|
|
172
172
|
kernelId: browserManager ? snapshot.kernelId : undefined, showToolbar: toolbar.present, toolbarExtraItems: toolbar.items, runtimeOverride: !browserManager && snapshot.jupyterUrl
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The split: the conversation and the work side by side, one hairline
|
|
3
|
-
* between them that a person drags (
|
|
3
|
+
* between them that a person drags (T-07, an Appspec's `layout: split`).
|
|
4
4
|
*
|
|
5
5
|
* The page layout's other arrangement. Where `page` puts the work on a sheet
|
|
6
6
|
* and the conversation in a panel that opens when wanted, `split` keeps both
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* *Sign in at a company*, in the chat (
|
|
2
|
+
* *Sign in at a company*, in the chat (PI-56): where the
|
|
3
3
|
* gateway's `pap_sign_in` answers, the company's page as a button opening a
|
|
4
4
|
* new tab, the code large and copyable with a code to scan for Device
|
|
5
5
|
* Sign-In, Datalayer's own page for Mediated Sign-In (where the person types
|
|
@@ -11,7 +11,7 @@ export function PapSignInCard({ context, send, }) {
|
|
|
11
11
|
const [returned, setReturned] = useState(null);
|
|
12
12
|
const read = context.status === 'complete' ? readPapSignIn(context.result) : null;
|
|
13
13
|
// A Direct Sign-In: Datalayer's `/pap/signed-in`, in the tab the company sent the person
|
|
14
|
-
// back to, says how it came back (
|
|
14
|
+
// back to, says how it came back (P-04); the conversation goes on here.
|
|
15
15
|
const company = read && !('refused' in read) && read.mode === 'direct'
|
|
16
16
|
? (read.company ?? '')
|
|
17
17
|
: '';
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
6
6
|
* `@datalayer/loop-plugin-pap-sign-in` — *Sign in at a company*, drawn where
|
|
7
|
-
* the gateway's `pap_sign_in` answers (
|
|
7
|
+
* the gateway's `pap_sign_in` answers (PI-56).
|
|
8
8
|
*
|
|
9
9
|
* Its own renderer, for its own display type
|
|
10
10
|
* (`application/vnd.datalayer.pap.sign-in+json`, typed in Python as
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
6
6
|
* What the gateway's `pap_sign_in` answers, read and checked: kept in
|
|
7
|
-
* `portable/signIn`, which Datalayer Mobile reads too (
|
|
7
|
+
* `portable/signIn`, which Datalayer Mobile reads too (M-037).
|
|
8
8
|
*
|
|
9
9
|
* @module apps/plugins/pap-sign-in/signIn
|
|
10
10
|
*/
|
|
@@ -13,7 +13,7 @@ export declare const SIDEBAR_WIDTH = 420;
|
|
|
13
13
|
* The generic graph plugin, which the loop's own adapter wraps: by its name
|
|
14
14
|
* (`GraphPlugin.name`), not its module — importing `@datalayer/reactor-graph`
|
|
15
15
|
* for a string would bring ECharts to every workspace with this panel, and
|
|
16
|
-
* to every one built by the preset, embedded applications too (
|
|
16
|
+
* to every one built by the preset, embedded applications too (D-08).
|
|
17
17
|
* `plugins-panel.test` holds it to the plugin's own name.
|
|
18
18
|
*/
|
|
19
19
|
export declare const REACTOR_GRAPH_PLUGIN_NAME = "@datalayer/reactor-graph";
|
|
@@ -40,7 +40,7 @@ export const SIDEBAR_WIDTH = 420;
|
|
|
40
40
|
* The generic graph plugin, which the loop's own adapter wraps: by its name
|
|
41
41
|
* (`GraphPlugin.name`), not its module — importing `@datalayer/reactor-graph`
|
|
42
42
|
* for a string would bring ECharts to every workspace with this panel, and
|
|
43
|
-
* to every one built by the preset, embedded applications too (
|
|
43
|
+
* to every one built by the preset, embedded applications too (D-08).
|
|
44
44
|
* `plugins-panel.test` holds it to the plugin's own name.
|
|
45
45
|
*/
|
|
46
46
|
export const REACTOR_GRAPH_PLUGIN_NAME = '@datalayer/reactor-graph';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* What a coding agent changed in one file, as a unified diff (
|
|
3
|
-
*
|
|
2
|
+
* What a coding agent changed in one file, as a unified diff (SH-16):
|
|
3
|
+
* the path and the count in the header, each line signed and
|
|
4
4
|
* coloured, the file's language on the block for a highlighter. What it
|
|
5
5
|
* reads is `portable/displays`' (`protocolDisplayOf`, `unifiedDiffLines`),
|
|
6
6
|
* so the phone draws the same thing from the same contract.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* What a coding agent ran (
|
|
2
|
+
* What a coding agent ran (SH-16): the command in the header,
|
|
3
3
|
* the output kept after the terminal was released, and how it ended — the
|
|
4
4
|
* exit code, or *running* while it runs. What it reads is
|
|
5
5
|
* `portable/displays`' (`protocolDisplayOf`), the phone's contract too.
|
|
@@ -4,17 +4,17 @@
|
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
6
6
|
* `@datalayer/loop-plugin-shield-displays` — a coding agent's *diff* and
|
|
7
|
-
* *terminal*, drawn where its tool results carry them (
|
|
7
|
+
* *terminal*, drawn where its tool results carry them (SH-16).
|
|
8
8
|
*
|
|
9
9
|
* The runtime sends each beside the tool's result in
|
|
10
10
|
* `_meta["reactor.ui/display"]`, as every protocol display travels
|
|
11
|
-
* (
|
|
11
|
+
* (RU-1): `application/vnd.datalayer.shield.diff+json` and
|
|
12
12
|
* `application/vnd.datalayer.shield.terminal+json`, typed in Python as
|
|
13
13
|
* `agent_runtimes.adapters.harness_displays`. This plugin contributes one
|
|
14
14
|
* renderer per type; it binds no tool, since a harness names its tools as it
|
|
15
15
|
* likes (*Edit hello.py*, *Run pytest*) and the display is what says what
|
|
16
16
|
* it is. The web chat and the embed mount it through the preset; the phone
|
|
17
|
-
* reads the same contract from `portable/displays` (
|
|
17
|
+
* reads the same contract from `portable/displays` (M-037).
|
|
18
18
|
*
|
|
19
19
|
* @module apps/plugins/shield-displays
|
|
20
20
|
*/
|