@datalayer/agent-runtimes 1.3.90 → 1.3.93
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-embed/assets/coincident.worker-Dd47v4fq.js +9 -0
- package/dist-embed/assets/comlink.worker-DmOp1QjG.js +9 -0
- package/dist-embed/datalayer-app.css +1 -0
- package/dist-embed/datalayer-app.js +4 -0
- package/dist-embed/lite-service-worker.js +91 -0
- package/lib/{loop → apps}/apps/AppComposer.d.ts +1 -1
- package/lib/{loop → apps}/apps/AppComposer.js +1 -1
- package/lib/{loop → apps}/apps/AppFeedback.d.ts +1 -1
- package/lib/{loop → apps}/apps/AppFeedback.js +12 -3
- package/lib/{loop → apps}/apps/AppKept.d.ts +1 -1
- package/lib/{loop → apps}/apps/AppRenderer.d.ts +1 -1
- package/lib/{loop → apps}/apps/AppRenderer.js +2 -2
- package/lib/{loop → apps}/apps/AppRuntimePlugins.js +1 -1
- package/lib/{loop → apps}/apps/agent.js +1 -1
- package/lib/{loop → apps}/apps/appspec.d.ts +1 -1
- package/lib/{loop → apps}/apps/checks.js +1 -1
- package/lib/{loop → apps}/apps/composer.d.ts +1 -1
- package/lib/{loop → apps}/apps/computer.d.ts +1 -1
- package/lib/{loop → apps}/apps/customComponents.js +1 -1
- package/lib/{loop → apps}/apps/feedback.d.ts +4 -3
- package/lib/{loop → apps}/apps/feedback.js +4 -2
- package/lib/{loop → apps}/apps/hostTools.d.ts +1 -1
- package/lib/{loop → apps}/apps/index.d.ts +1 -1
- package/lib/{loop → apps}/apps/index.js +1 -1
- package/lib/{loop → apps}/apps/kept.d.ts +1 -1
- package/lib/{loop → apps}/apps/language.d.ts +1 -1
- package/lib/{loop → apps}/apps/pluginPair.d.ts +1 -1
- package/lib/{loop → apps}/apps/records.d.ts +1 -1
- package/lib/{loop → apps}/apps/rules.js +1 -1
- package/lib/{loop → apps}/apps/saved.d.ts +1 -1
- package/lib/{loop → apps}/apps/saved.js +1 -1
- package/lib/{loop → apps}/apps/settingsInputs.d.ts +1 -1
- package/lib/{loop → apps}/apps/settingsInputs.js +1 -1
- package/lib/{loop → apps}/apps/threads.d.ts +1 -1
- package/lib/{loop → apps}/apps/uploads.d.ts +1 -1
- package/lib/{loop → apps}/apps/visitorToken.js +1 -1
- package/lib/{loop → apps}/apps/yaml.js +1 -1
- package/lib/{loop → apps}/core/a2uiComponents.js +2 -2
- package/lib/{loop → apps}/core/canvasBlocks.js +2 -2
- package/lib/{loop → apps}/core/focusRequests.js +1 -1
- package/lib/{loop → apps}/core/index.d.ts +19 -0
- package/lib/{loop → apps}/core/index.js +28 -1
- package/lib/{loop → apps}/core/promptStore.js +1 -1
- package/lib/{loop → apps}/core/surfaceRequests.d.ts +1 -1
- package/lib/{loop → apps}/core/toolbar.js +1 -1
- package/lib/{loop → apps}/embed/AppEmbed.js +1 -1
- package/lib/{loop → apps}/embed/LoopEmbed.d.ts +1 -1
- package/lib/{loop → apps}/embed/LoopEmbed.js +1 -1
- package/lib/{loop → apps}/embed/datalayer-app.js +1 -1
- package/lib/{loop → apps}/embed/element.js +1 -1
- package/lib/{loop → apps}/embed/embedConfig.d.ts +1 -1
- package/lib/{loop → apps}/embed/embedSession.d.ts +1 -1
- package/lib/{loop → apps}/embed/hostBridge.d.ts +1 -1
- package/lib/{loop → apps}/extensions.js +1 -1
- package/lib/{loop → apps}/index.d.ts +1 -1
- package/lib/{loop → apps}/index.js +1 -1
- package/lib/{loop → apps}/plugins/a2a-sidebar/A2ASidebar.d.ts +1 -1
- package/lib/{loop → apps}/plugins/a2a-sidebar/A2ASidebar.js +1 -1
- package/lib/{loop → apps}/plugins/a2a-sidebar/index.js +1 -1
- package/lib/{loop → apps}/plugins/a2ui/A2uiView.d.ts +1 -1
- package/lib/{loop → apps}/plugins/a2ui/index.js +1 -1
- package/lib/{loop → apps}/plugins/a2ui-scene/index.d.ts +1 -1
- package/lib/{loop → apps}/plugins/a2ui-surface/InlineSurface.d.ts +2 -2
- package/lib/{loop → apps}/plugins/a2ui-surface/SurfaceToolResult.d.ts +1 -1
- package/lib/{loop → apps}/plugins/a2ui-surface/ownComponents.js +1 -1
- package/lib/{loop → apps}/plugins/a2ui-surface/toolResult.d.ts +1 -1
- package/lib/{loop → apps}/plugins/agent-a2a/index.js +2 -2
- package/lib/{loop → apps}/plugins/agent-a2ui/index.js +1 -1
- package/lib/{loop → apps}/plugins/agent-a2ui-jupyter-output/index.js +1 -1
- package/lib/{loop → apps}/plugins/agent-capacity/index.d.ts +2 -2
- package/lib/{loop → apps}/plugins/agent-capacity/index.js +2 -2
- package/lib/{loop → apps}/plugins/agent-checkpoints/index.js +1 -1
- package/lib/{loop → apps}/plugins/agent-code-sandbox/index.js +1 -1
- package/lib/{loop → apps}/plugins/agent-code-sandboxes/index.js +1 -1
- package/lib/{loop → apps}/plugins/agent-codemode/index.js +1 -1
- package/lib/{loop → apps}/plugins/agent-compaction/index.js +1 -1
- package/lib/{loop → apps}/plugins/agent-evals/index.js +2 -2
- package/lib/{loop → apps}/plugins/agent-guardrails/index.js +2 -2
- package/lib/{loop → apps}/plugins/agent-hooks/index.js +1 -1
- package/lib/{loop → apps}/plugins/agent-inference/index.js +1 -1
- package/lib/{loop → apps}/plugins/agent-mcp/index.js +2 -2
- package/lib/{loop → apps}/plugins/agent-memory/index.js +2 -2
- package/lib/{loop → apps}/plugins/agent-monitoring/index.js +2 -2
- package/lib/{loop → apps}/plugins/agent-notifications/index.js +2 -2
- package/lib/{loop → apps}/plugins/agent-otel/index.js +1 -1
- package/lib/{loop → apps}/plugins/agent-outputs/index.js +1 -1
- package/lib/{loop → apps}/plugins/agent-parameters/index.js +2 -2
- package/lib/{loop → apps}/plugins/agent-skills/index.js +2 -2
- package/lib/{loop → apps}/plugins/agent-subagents/index.js +2 -2
- package/lib/{loop → apps}/plugins/agent-tool-approvals/index.js +1 -1
- package/lib/{loop → apps}/plugins/agent-triggers/index.js +1 -1
- package/lib/{loop → apps}/plugins/agents/AgentSummaryPanel.d.ts +1 -1
- package/lib/{loop → apps}/plugins/agents/AnonymousKeyBadge.d.ts +1 -1
- package/lib/{loop → apps}/plugins/agents/DatalayerAgentBridge.d.ts +1 -1
- package/lib/{loop → apps}/plugins/agents/DatalayerAgentMount.d.ts +1 -1
- package/lib/{loop → apps}/plugins/agents/SandboxSelector.d.ts +1 -1
- package/lib/{loop → apps}/plugins/agents/SandboxStatusBridge.d.ts +1 -1
- package/lib/{loop → apps}/plugins/agents/SandboxView.d.ts +1 -1
- package/lib/{loop → apps}/plugins/agents/TeamMemberPicker.d.ts +1 -1
- package/lib/{loop → apps}/plugins/agents/agentIcons.d.ts +1 -1
- package/lib/{loop → apps}/plugins/agents/agentIcons.js +1 -1
- package/lib/{loop → apps}/plugins/agents/appLaunch.d.ts +1 -1
- package/lib/{loop → apps}/plugins/agents/browserService.js +1 -1
- package/lib/{loop → apps}/plugins/agents/index.d.ts +1 -1
- package/lib/{loop → apps}/plugins/agents/index.js +1 -1
- package/lib/{loop → apps}/plugins/agents/plugin.d.ts +1 -1
- package/lib/{loop → apps}/plugins/agents/service.d.ts +1 -1
- package/lib/{loop → apps}/plugins/agents/service.js +1 -1
- package/lib/{loop → apps}/plugins/agents/specSubagents.d.ts +1 -1
- package/lib/{loop → apps}/plugins/agents/switchable.d.ts +1 -1
- package/lib/{loop → apps}/plugins/agents/switchable.js +1 -1
- package/lib/{loop → apps}/plugins/agents/team.d.ts +1 -1
- package/lib/{loop → apps}/plugins/agents/team.js +1 -1
- package/lib/{loop → apps}/plugins/agents/useSandboxService.js +1 -1
- package/lib/{loop → apps}/plugins/agents/useTeamSelection.js +1 -1
- package/lib/{loop → apps}/plugins/agentspecs/AgentspecPicker.d.ts +1 -1
- package/lib/{loop → apps}/plugins/agentspecs/index.js +1 -1
- package/lib/{loop → apps}/plugins/app-activity/AppActivity.d.ts +1 -1
- package/lib/{loop → apps}/plugins/app-components/index.d.ts +1 -1
- package/lib/{loop → apps}/plugins/app-components/index.js +1 -1
- package/lib/{loop → apps}/plugins/app-computer/AppComputer.d.ts +1 -1
- package/lib/{loop → apps}/plugins/app-computer/AppComputer.js +31 -8
- package/lib/{loop → apps}/plugins/app-elements/AppElements.d.ts +1 -1
- package/lib/{loop → apps}/plugins/app-elements/index.d.ts +1 -1
- package/lib/{loop → apps}/plugins/app-elements/index.js +1 -1
- package/lib/{loop → apps}/plugins/app-page/AppPage.d.ts +1 -1
- package/lib/{loop → apps}/plugins/app-page/AppPage.js +25 -7
- package/lib/{loop → apps}/plugins/app-page/appPageModel.d.ts +1 -1
- package/lib/{loop → apps}/plugins/app-page/index.d.ts +1 -1
- package/lib/{loop → apps}/plugins/app-page/pageRun.d.ts +1 -1
- package/lib/{loop → apps}/plugins/app-page/pageRun.js +1 -1
- package/lib/{loop → apps}/plugins/app-rules/AppRulesCard.d.ts +1 -1
- package/lib/{loop → apps}/plugins/assistant/index.d.ts +1 -1
- package/lib/{loop → apps}/plugins/assistant-characters/index.d.ts +1 -1
- package/lib/{loop → apps}/plugins/assistant-characters/index.js +1 -1
- package/lib/{loop → apps}/plugins/canvas-blocks/index.d.ts +1 -1
- package/lib/{loop → apps}/plugins/canvas-blocks/index.js +1 -1
- package/lib/{loop → apps}/plugins/chat/ChatView.d.ts +1 -1
- package/lib/{loop → apps}/plugins/chat/ChatView.js +49 -24
- package/lib/{loop → apps}/plugins/chat/chatViewTools.js +1 -1
- package/lib/{loop → apps}/plugins/chat/index.js +1 -1
- package/lib/{loop → apps}/plugins/chat/turnState.d.ts +1 -1
- package/lib/{loop → apps}/plugins/chat/turnState.js +1 -1
- package/lib/{loop → apps}/plugins/chat-extras/index.js +1 -1
- package/lib/{loop → apps}/plugins/chat-header/HeaderView.d.ts +1 -1
- package/lib/{loop → apps}/plugins/chat-view/index.js +1 -1
- package/lib/{loop → apps}/plugins/checkpoints-sidebar/CheckpointsSidebar.d.ts +1 -1
- package/lib/{loop → apps}/plugins/checkpoints-sidebar/CheckpointsSidebar.js +1 -1
- package/lib/{loop → apps}/plugins/checkpoints-sidebar/index.js +1 -1
- package/lib/{loop → apps}/plugins/commands/index.js +1 -1
- package/lib/{loop → apps}/plugins/decks/index.js +1 -1
- package/lib/{loop → apps}/plugins/decks/surface.d.ts +1 -1
- package/lib/{loop → apps}/plugins/decks/surface.js +1 -1
- package/lib/{loop → apps}/plugins/document/DocumentView.d.ts +1 -1
- package/lib/{loop → apps}/plugins/document/index.js +1 -1
- package/lib/{loop → apps}/plugins/document/openingDocument.d.ts +1 -1
- package/lib/{loop → apps}/plugins/document-toolbar/SandboxStatusItem.d.ts +1 -1
- package/lib/{loop → apps}/plugins/document-toolbar/index.js +1 -1
- package/lib/{loop → apps}/plugins/document-toolbar/names.d.ts +1 -1
- package/lib/{loop → apps}/plugins/document-toolbar/names.js +1 -1
- package/lib/{loop → apps}/plugins/document-toolbar/plugin.js +1 -1
- package/lib/{loop → apps}/plugins/document-view/index.js +1 -1
- package/lib/{loop → apps}/plugins/graph/GraphToggle.d.ts +1 -1
- package/lib/{loop → apps}/plugins/graph/GraphView.d.ts +1 -1
- package/lib/{loop → apps}/plugins/graph/index.js +1 -1
- package/lib/{loop → apps}/plugins/graph/viewType.d.ts +1 -1
- package/lib/{loop → apps}/plugins/graph/viewType.js +1 -1
- package/lib/{loop → apps}/plugins/input-prompt/ComposerView.d.ts +1 -1
- package/lib/{loop → apps}/plugins/models/index.js +1 -1
- package/lib/{loop → apps}/plugins/notebook/NotebookView.d.ts +1 -1
- package/lib/{loop → apps}/plugins/notebook/index.js +1 -1
- package/lib/{loop → apps}/plugins/notebook/openingNotebook.d.ts +1 -1
- package/lib/{loop → apps}/plugins/notebook-toolbar/index.js +1 -1
- package/lib/{loop → apps}/plugins/notebook-toolbar/names.d.ts +1 -1
- package/lib/{loop → apps}/plugins/notebook-toolbar/names.js +1 -1
- package/lib/{loop → apps}/plugins/notebook-toolbar/plugin.js +1 -1
- package/lib/{loop → apps}/plugins/notebook-view/index.js +1 -1
- package/lib/{loop → apps}/plugins/page-layout/SplitLayout.d.ts +1 -1
- package/lib/{loop → apps}/plugins/page-layout/SplitLayout.js +1 -1
- package/lib/{loop → apps}/plugins/page-layout/TurnPanel.d.ts +1 -1
- package/lib/{loop → apps}/plugins/page-layout/TurnPanel.js +2 -1
- package/lib/{loop → apps}/plugins/plugins-panel/index.js +1 -1
- package/lib/{loop → apps}/plugins/prompt/NewChatAction.d.ts +1 -1
- package/lib/{loop → apps}/plugins/prompt/index.js +1 -1
- package/lib/{loop → apps}/plugins/shell/editorChoice.d.ts +1 -1
- package/lib/{loop → apps}/plugins/shell/editorChoice.js +1 -1
- package/lib/{loop → apps}/plugins/shell/index.d.ts +1 -1
- package/lib/{loop → apps}/plugins/shell/useEditorPreviews.d.ts +1 -1
- package/lib/{loop → apps}/plugins/subagent-activity/SubagentPulse.d.ts +1 -1
- package/lib/{loop → apps}/plugins/subagent-activity/index.js +1 -1
- package/lib/{loop → apps}/plugins/view-switch/index.d.ts +1 -1
- package/lib/{loop → apps}/plugins/window-frame/WindowFrame.d.ts +1 -1
- package/lib/{loop → apps}/plugins/window-frame/index.js +1 -1
- package/lib/{loop → apps}/plugins/window-frame/slots.d.ts +1 -1
- package/lib/{loop → apps}/plugins/window-frame/slots.js +1 -1
- package/lib/{loop → apps}/presets.d.ts +1 -1
- package/lib/{loop → apps}/presets.js +1 -1
- package/lib/{loop → apps}/shell/LoopWorkspace.d.ts +1 -1
- package/lib/{loop → apps}/shell/PluginToggles.d.ts +1 -1
- package/lib/{loop → apps}/shell/SidebarRail.d.ts +1 -1
- package/lib/{loop → apps}/shell/ViewSwitcher.d.ts +1 -1
- package/lib/{loop → apps}/shell/WorkspaceFullScreenAction.d.ts +1 -1
- package/lib/{loop → apps}/shell/index.d.ts +1 -1
- package/lib/{loop → apps}/shell/index.js +1 -1
- package/lib/{loop → apps}/shell/paneMotion.d.ts +1 -1
- package/lib/{loop → apps}/shell/paneMotion.js +1 -1
- package/lib/{loop → apps}/shell/useWorkspaceFullScreen.d.ts +1 -1
- package/lib/chat/ChatLanguage.js +1 -1
- package/lib/chat/messages/ChatMarkdown.js +2 -1
- package/lib/chat/messages/markdownWithoutHtml.d.ts +34 -0
- package/lib/chat/messages/markdownWithoutHtml.js +53 -0
- package/lib/chat/parts/ReasoningPart.js +2 -1
- package/lib/chat/parts/TextPart.js +2 -1
- package/lib/chat/words.d.ts +7 -0
- package/lib/chat/words.js +14 -2
- package/lib/components/a2ui/custom/index.js +1 -3
- package/lib/components/a2ui/datalayer/FileUpload.js +1 -1
- package/lib/components/a2ui/styles.js +16 -5
- package/lib/components/cards/NotificationEventCard.js +2 -1
- package/lib/components/cards/OutputCard.js +2 -1
- package/lib/components/teams/AnswerSurfaces.js +1 -1
- package/lib/components/teams/AnswerSurfacesView.js +2 -2
- package/lib/components/teams/TeamNotebookView.d.ts +1 -1
- package/lib/components/teams/TeamNotebookView.js +1 -1
- package/lib/components/teams/sceneTranscript.d.ts +1 -1
- package/lib/examples/A2UiAgentExample.js +3 -3
- package/lib/examples/A2UiComponentsGalleryExample.js +2 -2
- package/lib/examples/A2UiContactCardExample.js +2 -2
- package/lib/examples/A2UiJupyterOutputExample.js +3 -3
- package/lib/examples/A2UiRestaurantExample.js +2 -2
- package/lib/examples/A2UiViewerExample.js +2 -2
- package/lib/examples/AgentA2AExample.js +3 -3
- package/lib/examples/AgentCheckpointsExample.js +3 -3
- package/lib/examples/AgentCodeSandboxExample.js +2 -2
- package/lib/examples/AgentCodeSandboxesExample.js +2 -2
- package/lib/examples/AgentCodemodeExample.js +3 -3
- package/lib/examples/AgentCompactionExample.js +2 -2
- package/lib/examples/AgentDecideExample.js +3 -3
- package/lib/examples/AgentEvalsExample.js +2 -2
- package/lib/examples/AgentGuardrailsExample.js +3 -3
- package/lib/examples/AgentHooksExample.js +2 -2
- package/lib/examples/AgentInferenceProviderExample.js +2 -2
- package/lib/examples/AgentMCPExample.js +3 -3
- package/lib/examples/AgentMemoryExample.js +2 -2
- package/lib/examples/AgentMonitoringExample.js +3 -3
- package/lib/examples/AgentNotificationsExample.js +2 -2
- package/lib/examples/AgentOtelExample.js +2 -2
- package/lib/examples/AgentOutputsExample.js +2 -2
- package/lib/examples/AgentParametersExample.js +2 -2
- package/lib/examples/AgentSkillsExample.js +2 -2
- package/lib/examples/AgentSubagentsExample.js +2 -2
- package/lib/examples/AgentToolApprovalsExample.js +2 -2
- package/lib/examples/AgentTriggersExample.js +2 -2
- package/lib/examples/AssistantExample.js +1 -1
- package/lib/examples/DecksAgent.js +2 -2
- package/lib/examples/DocumentPageAgent.js +1 -1
- package/lib/examples/LoopAppComputerExample.js +1 -1
- package/lib/examples/LoopShellExample.js +3 -3
- package/lib/examples/LoopWorkspaceExample.d.ts +1 -1
- package/lib/examples/LoopWorkspaceExample.js +5 -5
- package/lib/examples/NotebookPageAgent.js +1 -1
- package/lib/examples/utils/AssistantGalleryGrid.js +1 -1
- package/lib/examples/utils/owlCharacterPlugin.js +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/loop-example-main.js +1 -1
- package/lib/loop-main.js +9 -9
- package/lib/stories/loop/ReferenceScreens.js +1 -1
- package/lib/ui-plugins/MCPUIPlugin.d.ts +14 -0
- package/lib/ui-plugins/MCPUIPlugin.js +17 -48
- package/lib/ui-plugins/index.d.ts +1 -1
- package/lib/ui-plugins/index.js +1 -1
- package/package.json +3 -2
- /package/lib/{loop → apps}/apps/AppKept.js +0 -0
- /package/lib/{loop → apps}/apps/AppRuntimePlugins.d.ts +0 -0
- /package/lib/{loop → apps}/apps/agent.d.ts +0 -0
- /package/lib/{loop → apps}/apps/appspec.js +0 -0
- /package/lib/{loop → apps}/apps/checks.d.ts +0 -0
- /package/lib/{loop → apps}/apps/composer.js +0 -0
- /package/lib/{loop → apps}/apps/computer.js +0 -0
- /package/lib/{loop → apps}/apps/customComponents.d.ts +0 -0
- /package/lib/{loop → apps}/apps/hostTools.js +0 -0
- /package/lib/{loop → apps}/apps/kept.js +0 -0
- /package/lib/{loop → apps}/apps/language.js +0 -0
- /package/lib/{loop → apps}/apps/pluginPair.js +0 -0
- /package/lib/{loop → apps}/apps/records.js +0 -0
- /package/lib/{loop → apps}/apps/rules.d.ts +0 -0
- /package/lib/{loop → apps}/apps/threads.js +0 -0
- /package/lib/{loop → apps}/apps/uploads.js +0 -0
- /package/lib/{loop → apps}/apps/visitorToken.d.ts +0 -0
- /package/lib/{loop → apps}/apps/yaml.d.ts +0 -0
- /package/lib/{loop → apps}/core/a2uiComponents.d.ts +0 -0
- /package/lib/{loop → apps}/core/canvasBlocks.d.ts +0 -0
- /package/lib/{loop → apps}/core/focusRequests.d.ts +0 -0
- /package/lib/{loop → apps}/core/promptStore.d.ts +0 -0
- /package/lib/{loop → apps}/core/surfaceRequests.js +0 -0
- /package/lib/{loop → apps}/core/toolbar.d.ts +0 -0
- /package/lib/{loop → apps}/embed/AppEmbed.d.ts +0 -0
- /package/lib/{loop → apps}/embed/datalayer-app.d.ts +0 -0
- /package/lib/{loop → apps}/embed/element.d.ts +0 -0
- /package/lib/{loop → apps}/embed/embedConfig.js +0 -0
- /package/lib/{loop → apps}/embed/embedSession.js +0 -0
- /package/lib/{loop → apps}/embed/embedTheme.d.ts +0 -0
- /package/lib/{loop → apps}/embed/embedTheme.js +0 -0
- /package/lib/{loop → apps}/embed/hostBridge.js +0 -0
- /package/lib/{loop → apps}/extensions.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/a2a-sidebar/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/a2ui/A2uiView.js +0 -0
- /package/lib/{loop → apps}/plugins/a2ui/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/a2ui-scene/index.js +0 -0
- /package/lib/{loop → apps}/plugins/a2ui-surface/InlineSurface.js +0 -0
- /package/lib/{loop → apps}/plugins/a2ui-surface/SurfaceToolResult.js +0 -0
- /package/lib/{loop → apps}/plugins/a2ui-surface/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/a2ui-surface/index.js +0 -0
- /package/lib/{loop → apps}/plugins/a2ui-surface/ownComponents.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/a2ui-surface/toolResult.js +0 -0
- /package/lib/{loop → apps}/plugins/agent-a2a/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/agent-a2ui/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/agent-a2ui-jupyter-output/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/agent-checkpoints/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/agent-code-sandbox/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/agent-code-sandboxes/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/agent-codemode/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/agent-compaction/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/agent-evals/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/agent-guardrails/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/agent-hooks/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/agent-inference/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/agent-mcp/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/agent-memory/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/agent-monitoring/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/agent-notifications/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/agent-otel/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/agent-outputs/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/agent-parameters/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/agent-skills/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/agent-subagents/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/agent-tool-approvals/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/agent-triggers/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/agents/AgentSummaryPanel.js +0 -0
- /package/lib/{loop → apps}/plugins/agents/AnonymousKeyBadge.js +0 -0
- /package/lib/{loop → apps}/plugins/agents/DatalayerAgentBridge.js +0 -0
- /package/lib/{loop → apps}/plugins/agents/DatalayerAgentMount.js +0 -0
- /package/lib/{loop → apps}/plugins/agents/SandboxSelector.js +0 -0
- /package/lib/{loop → apps}/plugins/agents/SandboxStatusBridge.js +0 -0
- /package/lib/{loop → apps}/plugins/agents/SandboxView.js +0 -0
- /package/lib/{loop → apps}/plugins/agents/TeamMemberPicker.js +0 -0
- /package/lib/{loop → apps}/plugins/agents/appLaunch.js +0 -0
- /package/lib/{loop → apps}/plugins/agents/browserService.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/agents/plugin.js +0 -0
- /package/lib/{loop → apps}/plugins/agents/specSubagents.js +0 -0
- /package/lib/{loop → apps}/plugins/agents/useSandboxService.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/agents/useTeamSelection.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/agentspecs/AgentspecPicker.js +0 -0
- /package/lib/{loop → apps}/plugins/agentspecs/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/app-activity/AppActivity.js +0 -0
- /package/lib/{loop → apps}/plugins/app-activity/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/app-activity/index.js +0 -0
- /package/lib/{loop → apps}/plugins/app-computer/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/app-computer/index.js +0 -0
- /package/lib/{loop → apps}/plugins/app-elements/AppElements.js +0 -0
- /package/lib/{loop → apps}/plugins/app-page/appPageModel.js +0 -0
- /package/lib/{loop → apps}/plugins/app-page/index.js +0 -0
- /package/lib/{loop → apps}/plugins/app-rules/AppRulesCard.js +0 -0
- /package/lib/{loop → apps}/plugins/app-rules/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/app-rules/index.js +0 -0
- /package/lib/{loop → apps}/plugins/assistant/index.js +0 -0
- /package/lib/{loop → apps}/plugins/chat/chatViewTools.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/chat/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/chat-extras/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/chat-header/HeaderView.js +0 -0
- /package/lib/{loop → apps}/plugins/chat-header/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/chat-header/index.js +0 -0
- /package/lib/{loop → apps}/plugins/chat-view/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/checkpoints-sidebar/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/commands/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/decks/DeckSurface.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/decks/DeckSurface.js +0 -0
- /package/lib/{loop → apps}/plugins/decks/DecksMenu.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/decks/DecksMenu.js +0 -0
- /package/lib/{loop → apps}/plugins/decks/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/document/DocumentView.js +0 -0
- /package/lib/{loop → apps}/plugins/document/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/document/openingDocument.js +0 -0
- /package/lib/{loop → apps}/plugins/document-toolbar/SandboxStatusItem.js +0 -0
- /package/lib/{loop → apps}/plugins/document-toolbar/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/document-toolbar/plugin.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/document-view/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/graph/GraphToggle.js +0 -0
- /package/lib/{loop → apps}/plugins/graph/GraphView.js +0 -0
- /package/lib/{loop → apps}/plugins/graph/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/input-prompt/ComposerView.js +0 -0
- /package/lib/{loop → apps}/plugins/input-prompt/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/input-prompt/index.js +0 -0
- /package/lib/{loop → apps}/plugins/models/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/notebook/NotebookView.js +0 -0
- /package/lib/{loop → apps}/plugins/notebook/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/notebook/openingNotebook.js +0 -0
- /package/lib/{loop → apps}/plugins/notebook-toolbar/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/notebook-toolbar/items.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/notebook-toolbar/items.js +0 -0
- /package/lib/{loop → apps}/plugins/notebook-toolbar/plugin.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/notebook-view/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/page-layout/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/page-layout/index.js +0 -0
- /package/lib/{loop → apps}/plugins/plugins-panel/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/prompt/NewChatAction.js +0 -0
- /package/lib/{loop → apps}/plugins/prompt/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/shell/index.js +0 -0
- /package/lib/{loop → apps}/plugins/shell/useEditorPreviews.js +0 -0
- /package/lib/{loop → apps}/plugins/subagent-activity/SubagentPulse.js +0 -0
- /package/lib/{loop → apps}/plugins/subagent-activity/index.d.ts +0 -0
- /package/lib/{loop → apps}/plugins/view-switch/index.js +0 -0
- /package/lib/{loop → apps}/plugins/window-frame/WindowFrame.js +0 -0
- /package/lib/{loop → apps}/plugins/window-frame/index.d.ts +0 -0
- /package/lib/{loop → apps}/shell/LoopWorkspace.js +0 -0
- /package/lib/{loop → apps}/shell/PluginToggles.js +0 -0
- /package/lib/{loop → apps}/shell/SidebarRail.js +0 -0
- /package/lib/{loop → apps}/shell/ViewSwitcher.js +0 -0
- /package/lib/{loop → apps}/shell/WorkspaceFullScreenAction.js +0 -0
- /package/lib/{loop → apps}/shell/useWorkspaceFullScreen.js +0 -0
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* with it, which a landing page that lazy-loads this workspace pays for on
|
|
11
11
|
* every visit. These are the names the catalogue actually uses.
|
|
12
12
|
*
|
|
13
|
-
* @module
|
|
13
|
+
* @module apps/plugins/agents/agentIcons
|
|
14
14
|
*/
|
|
15
15
|
import { type Icon } from '@primer/octicons-react';
|
|
16
16
|
/**
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* with it, which a landing page that lazy-loads this workspace pays for on
|
|
15
15
|
* every visit. These are the names the catalogue actually uses.
|
|
16
16
|
*
|
|
17
|
-
* @module
|
|
17
|
+
* @module apps/plugins/agents/agentIcons
|
|
18
18
|
*/
|
|
19
19
|
import { BeakerIcon, BellIcon, BookIcon, BriefcaseIcon, BrowserIcon, BugIcon, ChecklistIcon, CodeReviewIcon, ClockIcon, CodeIcon, CommentDiscussionIcon, CpuIcon, CreditCardIcon, DatabaseIcon, FileIcon, FoldIcon, GitBranchIcon, GlobeIcon, GraphIcon, HeartIcon, IssueOpenedIcon, LightBulbIcon, ListUnorderedIcon, MailIcon, MegaphoneIcon, MortarBoardIcon, NoteIcon, OrganizationIcon, PackageIcon, PencilIcon, PeopleIcon, PlayIcon, PulseIcon, RssIcon, SearchIcon, ShareAndroidIcon, ShieldCheckIcon, ShieldIcon, SlidersIcon, SunIcon, SyncIcon, TableIcon, TagIcon, TasklistIcon, TelescopeIcon, ToolsIcon, RocketIcon, ZapIcon, } from '@primer/octicons-react';
|
|
20
20
|
import { AiAgentIcon } from '@datalayer/icons-react';
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* dynamic `import()` inside `connect()`, so a workspace that never starts a
|
|
17
17
|
* browser sandbox never downloads one.
|
|
18
18
|
*
|
|
19
|
-
* @module
|
|
19
|
+
* @module apps/plugins/agents/browserService
|
|
20
20
|
*/
|
|
21
21
|
import { computed, signal } from '@datalayer/reactor';
|
|
22
22
|
import { PageConfig } from '@jupyterlab/coreutils';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `@datalayer/loop-plugin-agents` — the sandbox, owned in one place.
|
|
3
3
|
*
|
|
4
|
-
* @module
|
|
4
|
+
* @module apps/plugins/agents
|
|
5
5
|
*/
|
|
6
6
|
export { AGENTS_PLUGIN_NAME, AgentsPlugin, type AgentsConfig, type AgentsOutput, } from './plugin';
|
|
7
7
|
export { AgentsPlugin as default } from './plugin';
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
/**
|
|
6
6
|
* `@datalayer/loop-plugin-agents` — the sandbox, owned in one place.
|
|
7
7
|
*
|
|
8
|
-
* @module
|
|
8
|
+
* @module apps/plugins/agents
|
|
9
9
|
*/
|
|
10
10
|
export { AGENTS_PLUGIN_NAME, AgentsPlugin, } from './plugin';
|
|
11
11
|
export { AgentsPlugin as default } from './plugin';
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* Which agentspec the session runs is a different question, and belongs to
|
|
14
14
|
* `@datalayer/loop-plugin-agentspecs`.
|
|
15
15
|
*
|
|
16
|
-
* @module
|
|
16
|
+
* @module apps/plugins/agents/plugin
|
|
17
17
|
*/
|
|
18
18
|
import type { DatalayerVisitors } from '../../apps/visitorToken';
|
|
19
19
|
import type { ReactorSlotComponent } from '@datalayer/reactor/react';
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* an extension and not a component — a view can unmount without the sandbox
|
|
12
12
|
* forgetting what it is doing.
|
|
13
13
|
*
|
|
14
|
-
* @module
|
|
14
|
+
* @module apps/plugins/agents/service
|
|
15
15
|
*/
|
|
16
16
|
import { type ReadonlySignal } from '@datalayer/reactor';
|
|
17
17
|
import type { SandboxSnapshot, SandboxState } from '../../core';
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* an extension and not a component — a view can unmount without the sandbox
|
|
16
16
|
* forgetting what it is doing.
|
|
17
17
|
*
|
|
18
|
-
* @module
|
|
18
|
+
* @module apps/plugins/agents/service
|
|
19
19
|
*/
|
|
20
20
|
import { computed, signal, } from '@datalayer/reactor';
|
|
21
21
|
/**
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* showed none. This is the spec's list in the shape the browser runtime wants,
|
|
10
10
|
* with a general-purpose helper when the spec asks for one.
|
|
11
11
|
*
|
|
12
|
-
* @module
|
|
12
|
+
* @module apps/plugins/agents/specSubagents
|
|
13
13
|
*/
|
|
14
14
|
import type { BrowserSubagent } from '../../../runtimes/browser';
|
|
15
15
|
import type { Agentspec } from '../../../types';
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* switching is a real swap rather than a flag: the old backing is disconnected
|
|
16
16
|
* before the new one starts, and every signal a view reads follows across.
|
|
17
17
|
*
|
|
18
|
-
* @module
|
|
18
|
+
* @module apps/plugins/agents/switchable
|
|
19
19
|
*/
|
|
20
20
|
import { type ReadonlySignal } from '@datalayer/reactor';
|
|
21
21
|
import type { Kernel } from '@jupyterlab/services';
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
* switching is a real swap rather than a flag: the old backing is disconnected
|
|
20
20
|
* before the new one starts, and every signal a view reads follows across.
|
|
21
21
|
*
|
|
22
|
-
* @module
|
|
22
|
+
* @module apps/plugins/agents/switchable
|
|
23
23
|
*/
|
|
24
24
|
import { computed, signal, } from '@datalayer/reactor';
|
|
25
25
|
import { browserSource, createBrowserSandboxService, } from './browserService';
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* is: a supervisor team routing between a tutor and a compactor needs one
|
|
16
16
|
* thread both can read, and a delegation team needs the opposite.
|
|
17
17
|
*
|
|
18
|
-
* @module
|
|
18
|
+
* @module apps/plugins/agents/team
|
|
19
19
|
*/
|
|
20
20
|
import { type ReadonlySignal } from '@datalayer/reactor';
|
|
21
21
|
import type { TeamContextSharing, TeamSpec } from '../../../types/teams';
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
* is: a supervisor team routing between a tutor and a compactor needs one
|
|
20
20
|
* thread both can read, and a delegation team needs the opposite.
|
|
21
21
|
*
|
|
22
|
-
* @module
|
|
22
|
+
* @module apps/plugins/agents/team
|
|
23
23
|
*/
|
|
24
24
|
import { computed, signal, } from '@datalayer/reactor';
|
|
25
25
|
import { TEAM_SPECS } from '../../../specs/teams/teams';
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* extension graph and what lets a host swap the implementation — a JupyterLab
|
|
11
11
|
* front-end backed by the running server instead of a cloud runtime.
|
|
12
12
|
*
|
|
13
|
-
* @module
|
|
13
|
+
* @module apps/plugins/agents/useSandboxService
|
|
14
14
|
*/
|
|
15
15
|
import { useReactorPlatform } from '@datalayer/reactor/react';
|
|
16
16
|
import { AGENTS_PLUGIN_NAME } from './plugin';
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* and whoever needs it asks the reactor rather than being handed it down a
|
|
10
10
|
* prop chain that would have to pass through views that do not care.
|
|
11
11
|
*
|
|
12
|
-
* @module
|
|
12
|
+
* @module apps/plugins/agents/useTeamSelection
|
|
13
13
|
*/
|
|
14
14
|
import { useReactorPlatform } from '@datalayer/reactor/react';
|
|
15
15
|
import { AGENTS_PLUGIN_NAME } from './plugin';
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* goes through `configure-from-spec` — one way to reconfigure a running agent
|
|
6
6
|
* rather than two that can disagree.
|
|
7
7
|
*
|
|
8
|
-
* @module
|
|
8
|
+
* @module apps/plugins/agents/AgentspecPicker
|
|
9
9
|
*/
|
|
10
10
|
import type { JSX } from 'react';
|
|
11
11
|
import type { LoopWorkspaceContext } from '../../core';
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* The other half of the question `@datalayer/loop-plugin-agents` answers: that
|
|
9
9
|
* one says *where* the agent runs, this one says *what* it is.
|
|
10
10
|
*
|
|
11
|
-
* @module
|
|
11
|
+
* @module apps/plugins/agents
|
|
12
12
|
*/
|
|
13
13
|
import { contribution, definePlugin } from '@datalayer/reactor';
|
|
14
14
|
import { LoopCommand, LoopSlots } from '../../core';
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* the approvals, the answer. Read from the record ai-agents keeps (R-07),
|
|
6
6
|
* again each time a turn of the conversation ends.
|
|
7
7
|
*
|
|
8
|
-
* @module
|
|
8
|
+
* @module apps/plugins/app-activity/AppActivity
|
|
9
9
|
*/
|
|
10
10
|
import type { JSX } from 'react';
|
|
11
11
|
/** What the feed says. */
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* an invalid declaration — and drawn in a sandboxed frame of no origin
|
|
11
11
|
* (`components/a2ui/custom`).
|
|
12
12
|
*
|
|
13
|
-
* @module
|
|
13
|
+
* @module apps/plugins/app-components
|
|
14
14
|
*/
|
|
15
15
|
import { type ReactorPlugin } from '@datalayer/reactor';
|
|
16
16
|
import type { AppSpec } from '../../../types/agentspecs';
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* an invalid declaration — and drawn in a sandboxed frame of no origin
|
|
15
15
|
* (`components/a2ui/custom`).
|
|
16
16
|
*
|
|
17
|
-
* @module
|
|
17
|
+
* @module apps/plugins/app-components
|
|
18
18
|
*/
|
|
19
19
|
import { contribution, definePlugin, } from '@datalayer/reactor';
|
|
20
20
|
import { customImplementation } from '../../../components/a2ui/custom';
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* wait while the person runs code on it themselves; **Hand back** lets its
|
|
14
14
|
* agent go on.
|
|
15
15
|
*
|
|
16
|
-
* @module
|
|
16
|
+
* @module apps/plugins/app-computer/AppComputer
|
|
17
17
|
*/
|
|
18
18
|
import type { JSX } from 'react';
|
|
19
19
|
import type { AppSpec } from '../../../types/agentspecs';
|
|
@@ -5,7 +5,8 @@ import { Box } from '@datalayer/primer-addons';
|
|
|
5
5
|
import { signal } from '@datalayer/reactor';
|
|
6
6
|
import { useContributions, useSignalValue } from '@datalayer/reactor/react';
|
|
7
7
|
import { useIAMStore } from '@datalayer/core/lib/state/substates/IAMState';
|
|
8
|
-
import {
|
|
8
|
+
import { useChatWords } from '../../../chat/ChatLanguage';
|
|
9
|
+
import { LoopChatTurn, agentServerOf, noRuntimeSaid, IDLE_SANDBOX_SNAPSHOT, } from '../../core';
|
|
9
10
|
import { COMPUTER_PARTS, COMPUTER_WORDS, computerParts, downloadComputerFile, handBackComputer, hasComputer, listComputerFiles, parentOf, partsOff, readComputer, runOnComputer, takeOverComputer, terminalEntries, } from '../../apps/computer';
|
|
10
11
|
const NO_TURN = signal({ id: 0, status: 'idle' });
|
|
11
12
|
const NO_CONVERSATION = signal([]);
|
|
@@ -27,7 +28,9 @@ function Terminal({ conversation, }) {
|
|
|
27
28
|
return (_jsxs(Box, { "data-testid": "computer-terminal", children: [_jsx(Heading, { as: "h4", sx: { fontSize: 1, mt: 3, mb: 1 }, children: COMPUTER_WORDS.terminal }), entries.length === 0 ? (_jsx(Text, { as: "p", sx: { fontSize: 1, color: 'fg.muted', m: 0 }, children: COMPUTER_WORDS.nothingRan })) : (_jsx(Box, { bg: "canvas.inset", border: "1px solid", borderColor: "border.muted", borderRadius: 2, p: 2, maxHeight: 320, overflow: "auto", children: entries.map((entry, index) => (_jsxs(Box, { mb: 2, children: [_jsx(Text, { as: "p", sx: { ...MONO, fontWeight: 'semibold' }, children: `$ ${entry.tool}${entry.command ? `: ${entry.command}` : ''}` }), entry.output === undefined ? (_jsx(Spinner, { size: "small" })) : (_jsx(Text, { as: "pre", sx: { ...MONO, color: 'fg.muted' }, children: entry.output }))] }, index))) }))] }));
|
|
28
29
|
}
|
|
29
30
|
function save(blob, name) {
|
|
30
|
-
|
|
31
|
+
// A file of its computer is saved, never opened: its address on this page's
|
|
32
|
+
// origin carries no type a browser would draw (STUDIO D-22).
|
|
33
|
+
const url = URL.createObjectURL(new Blob([blob], { type: 'application/octet-stream' }));
|
|
31
34
|
const anchor = document.createElement('a');
|
|
32
35
|
anchor.href = url;
|
|
33
36
|
anchor.download = name;
|
|
@@ -109,9 +112,23 @@ export function AppComputer({ app, workspace, }) {
|
|
|
109
112
|
setEnded(turn.id);
|
|
110
113
|
}
|
|
111
114
|
}, [settled, turn.id]);
|
|
112
|
-
const
|
|
115
|
+
const chatText = useChatWords();
|
|
116
|
+
/*
|
|
117
|
+
* The runtime its agent is on, or nothing while none is assigned: then the
|
|
118
|
+
* computer is asked nothing and says why, rather than asking the host's
|
|
119
|
+
* server (on a hosted page, the page's own origin). Outside a workspace
|
|
120
|
+
* there is none either.
|
|
121
|
+
*/
|
|
122
|
+
const serverUrl = workspace
|
|
123
|
+
? agentServerOf(workspace.sandbox, workspace.serverUrl)
|
|
124
|
+
: undefined;
|
|
125
|
+
const noRuntime = serverUrl === undefined
|
|
126
|
+
? noRuntimeSaid(workspace?.sandbox ?? IDLE_SANDBOX_SNAPSHOT, chatText)
|
|
127
|
+
: undefined;
|
|
113
128
|
const agentId = workspace?.agentId || app.id;
|
|
114
|
-
const context = useMemo(() =>
|
|
129
|
+
const context = useMemo(() => serverUrl === undefined
|
|
130
|
+
? undefined
|
|
131
|
+
: { serverUrl, agentId, token: token || undefined }, [serverUrl, agentId, token]);
|
|
115
132
|
const parts = computerParts(app);
|
|
116
133
|
const [state, setState] = useState();
|
|
117
134
|
const [error, setError] = useState('');
|
|
@@ -125,6 +142,9 @@ export function AppComputer({ app, workspace, }) {
|
|
|
125
142
|
};
|
|
126
143
|
}, []);
|
|
127
144
|
const read = useCallback(() => {
|
|
145
|
+
if (!context) {
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
128
148
|
readComputer(context).then(found => {
|
|
129
149
|
if (alive.current) {
|
|
130
150
|
setState(found);
|
|
@@ -135,11 +155,14 @@ export function AppComputer({ app, workspace, }) {
|
|
|
135
155
|
}, [context]);
|
|
136
156
|
const used = hasComputer(parts);
|
|
137
157
|
useEffect(() => {
|
|
138
|
-
if (used &&
|
|
158
|
+
if (used && context) {
|
|
139
159
|
read();
|
|
140
160
|
}
|
|
141
|
-
}, [used,
|
|
161
|
+
}, [used, context, read, ended]);
|
|
142
162
|
const act = (step) => {
|
|
163
|
+
if (!context) {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
143
166
|
setBusy(true);
|
|
144
167
|
step(context).then(() => {
|
|
145
168
|
if (alive.current) {
|
|
@@ -154,10 +177,10 @@ export function AppComputer({ app, workspace, }) {
|
|
|
154
177
|
});
|
|
155
178
|
};
|
|
156
179
|
const me = Boolean(state?.yours);
|
|
157
|
-
return (_jsxs(Box, { "data-testid": "app-computer", children: [_jsx(Heading, { as: "h3", sx: { fontSize: 2, mb: 2 }, children: COMPUTER_WORDS.title }), _jsx(Parts, { app: app }), !used ? (_jsx(Text, { as: "p", sx: { fontSize: 1, color: 'fg.muted', m: 0, mt: 1 }, children: COMPUTER_WORDS.none })) : (_jsxs(_Fragment, { children: [_jsx(Text, { as: "p", sx: { fontSize: 0, color: 'fg.muted', m: 0, mt: 1 }, children: COMPUTER_WORDS.noBrowser }), error ? (_jsx(Text, { as: "p", sx: { fontSize: 1, color: 'danger.fg', m: 0, mt: 2 }, children: error })) : null, state ? (_jsxs(Box, { mt: 2, "data-testid": "computer-holder", children: [_jsx(Text, { as: "p", sx: { fontSize: 1, m: 0, mb: 1 }, children: !state.held
|
|
180
|
+
return (_jsxs(Box, { "data-testid": "app-computer", children: [_jsx(Heading, { as: "h3", sx: { fontSize: 2, mb: 2 }, children: COMPUTER_WORDS.title }), _jsx(Parts, { app: app }), !used ? (_jsx(Text, { as: "p", sx: { fontSize: 1, color: 'fg.muted', m: 0, mt: 1 }, children: COMPUTER_WORDS.none })) : (_jsxs(_Fragment, { children: [_jsx(Text, { as: "p", sx: { fontSize: 0, color: 'fg.muted', m: 0, mt: 1 }, children: COMPUTER_WORDS.noBrowser }), noRuntime ? (_jsx(Text, { as: "p", role: "status", sx: { fontSize: 1, color: 'fg.default', m: 0, mt: 2 }, children: noRuntime })) : null, error ? (_jsx(Text, { as: "p", sx: { fontSize: 1, color: 'danger.fg', m: 0, mt: 2 }, children: error })) : null, state && context ? (_jsxs(Box, { mt: 2, "data-testid": "computer-holder", children: [_jsx(Text, { as: "p", sx: { fontSize: 1, m: 0, mb: 1 }, children: !state.held
|
|
158
181
|
? COMPUTER_WORDS.agentHas
|
|
159
182
|
: me
|
|
160
183
|
? COMPUTER_WORDS.youHave
|
|
161
|
-
: COMPUTER_WORDS.someoneHas }), !state.held ? (_jsx(Button, { size: "small", disabled: busy, onClick: () => act(takeOverComputer), children: COMPUTER_WORDS.takeOver })) : me ? (_jsxs(_Fragment, { children: [_jsx(Button, { size: "small", variant: "primary", disabled: busy, onClick: () => act(handBackComputer), children: COMPUTER_WORDS.handBack }), _jsx(YourTerminal, { context: context })] })) : null] })) : null, _jsx(Terminal, { conversation: conversation }), state ? (_jsx(Files, { context: context, state: state, ended: ended })) : null] }))] }));
|
|
184
|
+
: COMPUTER_WORDS.someoneHas }), !state.held ? (_jsx(Button, { size: "small", disabled: busy, onClick: () => act(takeOverComputer), children: COMPUTER_WORDS.takeOver })) : me ? (_jsxs(_Fragment, { children: [_jsx(Button, { size: "small", variant: "primary", disabled: busy, onClick: () => act(handBackComputer), children: COMPUTER_WORDS.handBack }), _jsx(YourTerminal, { context: context })] })) : null] })) : null, _jsx(Terminal, { conversation: conversation }), state && context ? (_jsx(Files, { context: context, state: state, ended: ended })) : null] }))] }));
|
|
162
185
|
}
|
|
163
186
|
export default AppComputer;
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* Drawn from the workspace's root slot, positioned against the workspace:
|
|
9
9
|
* nothing is drawn, and nothing is laid out, while nothing is open.
|
|
10
10
|
*
|
|
11
|
-
* @module
|
|
11
|
+
* @module apps/plugins/app-elements/AppElements
|
|
12
12
|
*/
|
|
13
13
|
import type { JSX } from 'react';
|
|
14
14
|
import { type LoopElement } from '../../../chat/base/loopElement';
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* root slot, positioned against the workspace, so that nothing is laid out
|
|
11
11
|
* while nothing is open.
|
|
12
12
|
*
|
|
13
|
-
* @module
|
|
13
|
+
* @module apps/plugins/app-elements
|
|
14
14
|
*/
|
|
15
15
|
import { type ReactorPlugin } from '@datalayer/reactor';
|
|
16
16
|
export declare const APP_ELEMENTS_PLUGIN_NAME = "@datalayer/loop-plugin-app-elements";
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* root slot, positioned against the workspace, so that nothing is laid out
|
|
15
15
|
* while nothing is open.
|
|
16
16
|
*
|
|
17
|
-
* @module
|
|
17
|
+
* @module apps/plugins/app-elements
|
|
18
18
|
*/
|
|
19
19
|
import { definePlugin } from '@datalayer/reactor';
|
|
20
20
|
import { clearLoopElements } from '../../../chat/base/loopElement';
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
* to the session's `page` action and shows what its code answered at
|
|
18
18
|
* `/outputs/<name>`, in place — no message is sent (`./pageRun`).
|
|
19
19
|
*
|
|
20
|
-
* @module
|
|
20
|
+
* @module apps/plugins/app-page/AppPage
|
|
21
21
|
*/
|
|
22
22
|
import type { JSX } from 'react';
|
|
23
23
|
import type { AppSpec } from '../../../types/agentspecs';
|
|
@@ -5,7 +5,8 @@ import { Box } from '@datalayer/primer-addons';
|
|
|
5
5
|
import { signal } from '@datalayer/reactor';
|
|
6
6
|
import { useContributions, useSignalValue } from '@datalayer/reactor/react';
|
|
7
7
|
import { catalogOfBlocks } from '../../../components/a2ui';
|
|
8
|
-
import {
|
|
8
|
+
import { useChatWords } from '../../../chat/ChatLanguage';
|
|
9
|
+
import { LoopCanvasBlock, LoopChatTurn, agentServerOf, noRuntimeSaid, } from '../../core';
|
|
9
10
|
import { InlineSurface, SURFACE_CATALOG_ID, } from '../a2ui-surface/InlineSurface';
|
|
10
11
|
import { useOwnComponents } from '../a2ui-surface/ownComponents';
|
|
11
12
|
import { appPageAction, appPageData, appPageMessages, pageInputsOf, pageOf, } from './appPageModel';
|
|
@@ -73,12 +74,25 @@ export function AppPage({ app, workspace }) {
|
|
|
73
74
|
...outputsData(outputs),
|
|
74
75
|
}), [app, turn, conversation, outputs]);
|
|
75
76
|
const token = useIAMStore(state => state.token) ?? '';
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
77
|
+
const chatText = useChatWords();
|
|
78
|
+
/*
|
|
79
|
+
* Where its page runs: the runtime its agent is on, or nothing while none
|
|
80
|
+
* is assigned — then a run is not sent and the page says why, rather than
|
|
81
|
+
* reaching for the host's server (on a hosted page, the page's own origin).
|
|
82
|
+
*/
|
|
83
|
+
const pageServer = agentServerOf(workspace.sandbox, workspace.serverUrl);
|
|
84
|
+
const pageContext = useRef(null);
|
|
85
|
+
pageContext.current =
|
|
86
|
+
pageServer === undefined
|
|
87
|
+
? null
|
|
88
|
+
: {
|
|
89
|
+
serverUrl: pageServer,
|
|
90
|
+
agentId: workspace.agentId || app.id,
|
|
91
|
+
token: token || undefined,
|
|
92
|
+
};
|
|
93
|
+
const noRuntime = useRef('');
|
|
94
|
+
noRuntime.current =
|
|
95
|
+
pageServer === undefined ? noRuntimeSaid(workspace.sandbox, chatText) : '';
|
|
82
96
|
const pageSession = useRef(null);
|
|
83
97
|
const pageRunning = useRef(false);
|
|
84
98
|
const pageNext = useRef(null);
|
|
@@ -96,6 +110,10 @@ export function AppPage({ app, workspace }) {
|
|
|
96
110
|
const next = pageNext.current;
|
|
97
111
|
pageNext.current = null;
|
|
98
112
|
const context = pageContext.current;
|
|
113
|
+
if (!context) {
|
|
114
|
+
setRefusal(noRuntime.current);
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
99
117
|
try {
|
|
100
118
|
pageSession.current ??= openPageSession(context);
|
|
101
119
|
const turn = await runPageIn(context, await pageSession.current, next);
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
*
|
|
22
22
|
* Pure: the plugin (`./index`) and its view (`./AppPage`) do the drawing.
|
|
23
23
|
*
|
|
24
|
-
* @module
|
|
24
|
+
* @module apps/plugins/app-page/appPageModel
|
|
25
25
|
*/
|
|
26
26
|
import type { AppFormField, AppFormSchema, AppPageSpec, AppSpec } from '../../../types/agentspecs';
|
|
27
27
|
import type { ChatTurnSnapshot, ConversationEntry } from '../../core';
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* workspace's one view (`LoopViewType`), in a workspace without a
|
|
17
17
|
* conversation (LOOP R-02).
|
|
18
18
|
*
|
|
19
|
-
* @module
|
|
19
|
+
* @module apps/plugins/app-page
|
|
20
20
|
*/
|
|
21
21
|
import type { ComponentType } from 'react';
|
|
22
22
|
import { type ReactorPlugin } from '@datalayer/reactor';
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* `loop.page`, `{inputs, outputs}`, which the page shows in place. Nothing is
|
|
11
11
|
* said in the conversation.
|
|
12
12
|
*
|
|
13
|
-
* @module
|
|
13
|
+
* @module apps/plugins/app-page/pageRun
|
|
14
14
|
*/
|
|
15
15
|
/** The `CUSTOM` event that says what a page shows. */
|
|
16
16
|
export declare const LOOP_PAGE = "loop.page";
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* `loop.page`, `{inputs, outputs}`, which the page shows in place. Nothing is
|
|
15
15
|
* said in the conversation.
|
|
16
16
|
*
|
|
17
|
-
* @module
|
|
17
|
+
* @module apps/plugins/app-page/pageRun
|
|
18
18
|
*/
|
|
19
19
|
/** The `CUSTOM` event that says what a page shows. */
|
|
20
20
|
export const LOOP_PAGE = 'loop.page';
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* ai-agents `/ws` stream, the Tool Approvals page's), answered here with
|
|
9
9
|
* *Approve* or *Reject* over the same socket.
|
|
10
10
|
*
|
|
11
|
-
* @module
|
|
11
|
+
* @module apps/plugins/app-rules/AppRulesCard
|
|
12
12
|
*/
|
|
13
13
|
import type { JSX } from 'react';
|
|
14
14
|
import type { AppRuleSpec, AppSpec } from '../../../types/agentspecs';
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
* is opened and closed; where the conversation is always on screen, a click
|
|
24
24
|
* takes the person to its composer.
|
|
25
25
|
*
|
|
26
|
-
* @module
|
|
26
|
+
* @module apps/plugins/assistant
|
|
27
27
|
*/
|
|
28
28
|
import type { JSX } from 'react';
|
|
29
29
|
import { type AssistantState } from '../../../chat/assistant/state';
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* (LOOP 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
|
-
* @module
|
|
6
|
+
* @module apps/plugins/assistant-characters
|
|
7
7
|
*/
|
|
8
8
|
import { type PluginRef, type ReactorPlugin } from '@datalayer/reactor';
|
|
9
9
|
import { type AssistantCharacter } from '../../../chat/assistant/characters';
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* (LOOP 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
|
-
* @module
|
|
10
|
+
* @module apps/plugins/assistant-characters
|
|
11
11
|
*/
|
|
12
12
|
import { buildReactorFromPlugins, contribution, definePlugin, } from '@datalayer/reactor';
|
|
13
13
|
import { ASSISTANT_CHARACTERS, DEFAULT_ASSISTANT_CHARACTER, } from '../../../chat/assistant/characters';
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* A new kind of block arrives as a plugin contributing to the point, never as
|
|
10
10
|
* a change to the Canvas.
|
|
11
11
|
*
|
|
12
|
-
* @module
|
|
12
|
+
* @module apps/plugins/canvas-blocks
|
|
13
13
|
*/
|
|
14
14
|
import { type ReactorPlatform, type ReactorPlugin } from '@datalayer/reactor';
|
|
15
15
|
import type { AppSpec, ComponentSpec, UIPluginSpec } from '../../../types/agentspecs';
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* A new kind of block arrives as a plugin contributing to the point, never as
|
|
14
14
|
* a change to the Canvas.
|
|
15
15
|
*
|
|
16
|
-
* @module
|
|
16
|
+
* @module apps/plugins/canvas-blocks
|
|
17
17
|
*/
|
|
18
18
|
import { buildReactorFromPlugins, contribution, definePlugin, } from '@datalayer/reactor';
|
|
19
19
|
import { listUIPlugins } from '../../../specs/uiPlugins';
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* the reply rather than one tab away — and this view holds the point they
|
|
14
14
|
* arrive through without knowing what either of them is.
|
|
15
15
|
*
|
|
16
|
-
* @module
|
|
16
|
+
* @module apps/plugins/chat/ChatView
|
|
17
17
|
*/
|
|
18
18
|
import type { JSX } from 'react';
|
|
19
19
|
import { type LoopViewProps } from '../../core';
|