@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
|
@@ -41,7 +41,7 @@ import { AGENTS_PLUGIN_NAME } from '../agents/plugin';
|
|
|
41
41
|
import { useConfig } from '../../../hooks/useConfig';
|
|
42
42
|
import { useSkills, useSkillActions } from '../../../hooks/useSkills';
|
|
43
43
|
import { AI_MODEL_CATALOGUE, isChatModel } from '../../../specs/models';
|
|
44
|
-
import { LoopAgentBlueprint, LoopAgentGate, LoopChatComposer, LoopChatExtras, LoopChatHeader, LoopChatLayout, LoopChatSuggestion, LoopChatSurface, LoopChatTurn, LoopCommand, LoopFrontendTool, LoopRunProps, LoopSlots, canOpenView, runForwardedProps, onPromptFocusRequest, onSurfaceRequest, useLoopPromptStore, } from '../../core';
|
|
44
|
+
import { LoopAgentBlueprint, LoopAgentGate, LoopChatComposer, LoopChatExtras, LoopChatHeader, LoopChatLayout, LoopChatSuggestion, LoopChatSurface, LoopChatTurn, LoopCommand, LoopFrontendTool, LoopRunProps, LoopSlots, agentServerOf, noRuntimeSaid, canOpenView, runForwardedProps, onPromptFocusRequest, onSurfaceRequest, useLoopPromptStore, } from '../../core';
|
|
45
45
|
import { messageText, turnWritersOf } from './turnState';
|
|
46
46
|
import { isInactiveSurfaceContribution, orderToolContributions, toolsForChatView, } from './chatViewTools';
|
|
47
47
|
import { useAgentCommandTools } from '../../../tools/adapters/commands';
|
|
@@ -946,8 +946,12 @@ export default function ChatView({ workspace }) {
|
|
|
946
946
|
* opened against. Addressing the latter would be talking to a machine that
|
|
947
947
|
* has never heard of it. The same value for every other target, where the
|
|
948
948
|
* two are the same server.
|
|
949
|
+
*
|
|
950
|
+
* Nothing while a Datalayer runtime is not assigned (the pool had none, or
|
|
951
|
+
* it is still being given): the chat is off and says so below, rather than
|
|
952
|
+
* sending to the host's server — on a hosted page, the page's own origin.
|
|
949
953
|
*/
|
|
950
|
-
const agentServerUrl = workspace.sandbox
|
|
954
|
+
const agentServerUrl = agentServerOf(workspace.sandbox, workspace.serverUrl);
|
|
951
955
|
/*
|
|
952
956
|
* Who a single request may be addressed to.
|
|
953
957
|
*
|
|
@@ -1041,12 +1045,25 @@ export default function ChatView({ workspace }) {
|
|
|
1041
1045
|
* Studio's Preview and the hosted page, rather than left unanswered.
|
|
1042
1046
|
*/
|
|
1043
1047
|
const ambient = useChatAvailability();
|
|
1044
|
-
|
|
1048
|
+
/*
|
|
1049
|
+
* No agent to talk to: a Datalayer runtime not assigned (STUDIO P-24,
|
|
1050
|
+
* round 9). Said in a sentence — why, when its launch was refused — and
|
|
1051
|
+
* nothing is sent; the header does not say *Ready*.
|
|
1052
|
+
*/
|
|
1053
|
+
const noRuntime = agentServerUrl === undefined
|
|
1054
|
+
? noRuntimeSaid(workspace.sandbox, chatText)
|
|
1055
|
+
: undefined;
|
|
1056
|
+
const chatDisabled = gateBlocked ||
|
|
1057
|
+
keyExpired ||
|
|
1058
|
+
Boolean(inPageRefusal) ||
|
|
1059
|
+
Boolean(noRuntime) ||
|
|
1060
|
+
ambient.disabled;
|
|
1045
1061
|
const disabledReason = keyExpired
|
|
1046
1062
|
? expiredKeyIsTemporary
|
|
1047
1063
|
? chatText.demoKeyExpired
|
|
1048
1064
|
: chatText.keyExpired
|
|
1049
1065
|
: (inPageRefusal ??
|
|
1066
|
+
noRuntime ??
|
|
1050
1067
|
gateReason ??
|
|
1051
1068
|
(ambient.disabled ? ambient.disableReason : undefined));
|
|
1052
1069
|
/*
|
|
@@ -1250,6 +1267,10 @@ export default function ChatView({ workspace }) {
|
|
|
1250
1267
|
? openedThread.thread
|
|
1251
1268
|
: undefined
|
|
1252
1269
|
: givenThread;
|
|
1270
|
+
/*
|
|
1271
|
+
* None without a server (`noRuntime`): the chat is off and connects to
|
|
1272
|
+
* nothing — no address is made up for it.
|
|
1273
|
+
*/
|
|
1253
1274
|
const protocol = useMemo(() => inPage
|
|
1254
1275
|
? browserProtocolConfig({
|
|
1255
1276
|
agentId: member?.specId ?? agentId,
|
|
@@ -1280,23 +1301,25 @@ export default function ChatView({ workspace }) {
|
|
|
1280
1301
|
// its session API does on a runtime.
|
|
1281
1302
|
modeEffect: blueprintTurn?.modeEffect,
|
|
1282
1303
|
})
|
|
1283
|
-
:
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1304
|
+
: agentServerUrl !== undefined
|
|
1305
|
+
? {
|
|
1306
|
+
type: 'ag-ui',
|
|
1307
|
+
// An application's agent is spoken to through its session API
|
|
1308
|
+
// (LOOP R-04): each thread a session, recorded under its uid,
|
|
1309
|
+
// run in the name the application runs in, and taking what the
|
|
1310
|
+
// page did besides the message — the same AG-UI events back.
|
|
1311
|
+
endpoint: runsApp
|
|
1312
|
+
? `${agentServerUrl}/api/v1/apps/agents/${encodeURIComponent(agentId)}/ag-ui/`
|
|
1313
|
+
: `${agentServerUrl}/api/v1/ag-ui/${agentId}/`,
|
|
1314
|
+
...(runsApp && iamToken ? { authToken: iamToken } : {}),
|
|
1315
|
+
agentId,
|
|
1316
|
+
// `/api/v1/configure`, not `/api/v1/configure/config`: the hooks
|
|
1317
|
+
// strip one trailing `config`/`configure` segment to find the API
|
|
1318
|
+
// base, so the longer form doubles it.
|
|
1319
|
+
configEndpoint: `${agentServerUrl}/api/v1/configure`,
|
|
1320
|
+
enableConfigQuery: true,
|
|
1321
|
+
}
|
|
1322
|
+
: undefined, [
|
|
1300
1323
|
agentId,
|
|
1301
1324
|
inPage,
|
|
1302
1325
|
inference,
|
|
@@ -1321,7 +1344,7 @@ export default function ChatView({ workspace }) {
|
|
|
1321
1344
|
* need one, and a browser agent has none — hence the menus below being
|
|
1322
1345
|
* gated on the data rather than switched on unconditionally.
|
|
1323
1346
|
*/
|
|
1324
|
-
const configQuery = useConfig(!inPage, protocol
|
|
1347
|
+
const configQuery = useConfig(!inPage, protocol?.type === 'ag-ui' ? protocol.configEndpoint : undefined, undefined, agentId);
|
|
1325
1348
|
const skillsQuery = useSkills(true);
|
|
1326
1349
|
const skillActions = useSkillActions(agentId);
|
|
1327
1350
|
// `undefined` until the runtime answers: its answer is then the list.
|
|
@@ -1338,7 +1361,7 @@ export default function ChatView({ workspace }) {
|
|
|
1338
1361
|
* catalogue that was never going to arrive. The agentspecs catalogue below
|
|
1339
1362
|
* is the answer for this case and needs no request at all.
|
|
1340
1363
|
*/
|
|
1341
|
-
if (inPage) {
|
|
1364
|
+
if (inPage || agentServerUrl === undefined) {
|
|
1342
1365
|
return undefined;
|
|
1343
1366
|
}
|
|
1344
1367
|
let cancelled = false;
|
|
@@ -1424,7 +1447,7 @@ export default function ChatView({ workspace }) {
|
|
|
1424
1447
|
*/
|
|
1425
1448
|
const selectModel = useCallback(async (model) => {
|
|
1426
1449
|
setPickedModel(model);
|
|
1427
|
-
if (inPage) {
|
|
1450
|
+
if (inPage || agentServerUrl === undefined) {
|
|
1428
1451
|
return;
|
|
1429
1452
|
}
|
|
1430
1453
|
await fetch(`${agentServerUrl}/api/v1/configure/inference/provider`, {
|
|
@@ -1663,7 +1686,9 @@ export default function ChatView({ workspace }) {
|
|
|
1663
1686
|
brandIcon: presence?.face ? (_jsx(PresenceFace, { face: presence.face, size: 20, state: presenceNow })) : (_jsx(BrandIcon, { size: 20 })),
|
|
1664
1687
|
// An application says what it is doing, in plain words, beside
|
|
1665
1688
|
// its name (T-08); an agent's chat keeps its header as it is.
|
|
1666
|
-
headerContent:
|
|
1689
|
+
headerContent:
|
|
1690
|
+
// Not *Ready* with no runtime: the header says why instead.
|
|
1691
|
+
presence && !noRuntime ? (_jsx(PresenceLine, { state: presenceNow })) : undefined, emptyState: {
|
|
1667
1692
|
// An application's own face, at the page's size of the three
|
|
1668
1693
|
// (LOOP T-08, T-19): the thing a person's eye lands on first.
|
|
1669
1694
|
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 })),
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
* Names are matched by their reference form and their raw `datalayer_` form
|
|
27
27
|
* alike, since the adapter registers whichever the definition carries.
|
|
28
28
|
*
|
|
29
|
-
* @module
|
|
29
|
+
* @module apps/plugins/chat/chatViewTools
|
|
30
30
|
*/
|
|
31
31
|
/** The reference name, with the adapter's prefix and the editor suffix off. */
|
|
32
32
|
function bareName(name) {
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
/**
|
|
6
6
|
* The chat plugin: the first view, and the proof that chat is not special.
|
|
7
7
|
*
|
|
8
|
-
* @module
|
|
8
|
+
* @module apps/plugins/chat
|
|
9
9
|
*/
|
|
10
10
|
import { CommentDiscussionIcon, FoldIcon, SparkleFillIcon, SyncIcon, } from '@primer/octicons-react';
|
|
11
11
|
import { contribution, definePlugin } from '@datalayer/reactor';
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* shows it as the Chat component does: the chat view hands it every change
|
|
12
12
|
* of its items, streaming included.
|
|
13
13
|
*
|
|
14
|
-
* @module
|
|
14
|
+
* @module apps/plugins/chat/turnState
|
|
15
15
|
*/
|
|
16
16
|
import { type ReadonlySignal } from '@datalayer/reactor';
|
|
17
17
|
import type { ContextSnapshotData } from '../../../types';
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* shows it as the Chat component does: the chat view hands it every change
|
|
16
16
|
* of its items, streaming included.
|
|
17
17
|
*
|
|
18
|
-
* @module
|
|
18
|
+
* @module apps/plugins/chat/turnState
|
|
19
19
|
*/
|
|
20
20
|
import { signal } from '@datalayer/reactor';
|
|
21
21
|
/** A message's words, whether its content is a string or parts. */
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* <LoopEmbed plugins={[capacityPlugin, plugin]} … />
|
|
21
21
|
* ```
|
|
22
22
|
*
|
|
23
|
-
* @module
|
|
23
|
+
* @module apps/plugins/chat-extras
|
|
24
24
|
*/
|
|
25
25
|
import { contribution, definePlugin, signal } from '@datalayer/reactor';
|
|
26
26
|
import { LoopChatExtras } from '../../core';
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* pulls the kernel indicator and its friends, and the plugin's module
|
|
6
6
|
* should stay a manifest.
|
|
7
7
|
*
|
|
8
|
-
* @module
|
|
8
|
+
* @module apps/plugins/chat-header/HeaderView
|
|
9
9
|
*/
|
|
10
10
|
import type { JSX } from 'react';
|
|
11
11
|
import type { LoopChatHeaderProps } from '../../core';
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* to call "None", renamed to what it actually is. Requires the input-prompt
|
|
10
10
|
* plugin, whose footer the icon sits in.
|
|
11
11
|
*
|
|
12
|
-
* @module
|
|
12
|
+
* @module apps/plugins/chat-view
|
|
13
13
|
*/
|
|
14
14
|
import { CommentDiscussionIcon } from '@primer/octicons-react';
|
|
15
15
|
import { NONE_EDITOR } from '../shell/editorChoice';
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* once the server's fresh snapshot has arrived, so what is on screen is what
|
|
9
9
|
* the agent now remembers.
|
|
10
10
|
*
|
|
11
|
-
* @module
|
|
11
|
+
* @module apps/plugins/checkpoints-sidebar/CheckpointsSidebar
|
|
12
12
|
*/
|
|
13
13
|
import React from 'react';
|
|
14
14
|
import type { LoopWorkspaceContext } from '../../core';
|
|
@@ -13,7 +13,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
13
13
|
* once the server's fresh snapshot has arrived, so what is on screen is what
|
|
14
14
|
* the agent now remembers.
|
|
15
15
|
*
|
|
16
|
-
* @module
|
|
16
|
+
* @module apps/plugins/checkpoints-sidebar/CheckpointsSidebar
|
|
17
17
|
*/
|
|
18
18
|
import { useCallback, useEffect, useMemo, useRef, useState, } from 'react';
|
|
19
19
|
import { Button, Heading, IconButton, Label, Text, TextInput, Timeline, } from '@primer/react';
|
|
@@ -11,7 +11,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
11
11
|
* with how they were taken, lets a person save one between turns, rewind
|
|
12
12
|
* the conversation to one — the chat reloads its transcript — and drop one.
|
|
13
13
|
*
|
|
14
|
-
* @module
|
|
14
|
+
* @module apps/plugins/checkpoints-sidebar
|
|
15
15
|
*/
|
|
16
16
|
import { definePlugin } from '@datalayer/reactor';
|
|
17
17
|
import { LoopSlots } from '../../core';
|
|
@@ -23,7 +23,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
23
23
|
* component: it reads the contributions and the workspace it was handed, and
|
|
24
24
|
* re-registers when either changes.
|
|
25
25
|
*
|
|
26
|
-
* @module
|
|
26
|
+
* @module apps/plugins/commands
|
|
27
27
|
*/
|
|
28
28
|
import { useEffect } from 'react';
|
|
29
29
|
import { definePlugin } from '@datalayer/reactor';
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
* `DeckViewPlugin` is the footer icon that switches to the deck, like the
|
|
27
27
|
* notebook's and the document's.
|
|
28
28
|
*
|
|
29
|
-
* @module
|
|
29
|
+
* @module apps/plugins/decks
|
|
30
30
|
*/
|
|
31
31
|
import { ProjectIcon } from '@primer/octicons-react';
|
|
32
32
|
import { configurePlugin, contribution, definePlugin, } from '@datalayer/reactor';
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
* The editor surface the deck is shown on: what the selector, the footer
|
|
3
3
|
* icon, the composer menu and the store's "reveal" all point at.
|
|
4
4
|
*
|
|
5
|
-
* @module
|
|
5
|
+
* @module apps/plugins/decks/surface
|
|
6
6
|
*/
|
|
7
7
|
export declare const DECK_SURFACE_ID = "deck";
|
|
@@ -6,6 +6,6 @@
|
|
|
6
6
|
* The editor surface the deck is shown on: what the selector, the footer
|
|
7
7
|
* icon, the composer menu and the store's "reveal" all point at.
|
|
8
8
|
*
|
|
9
|
-
* @module
|
|
9
|
+
* @module apps/plugins/decks/surface
|
|
10
10
|
*/
|
|
11
11
|
export const DECK_SURFACE_ID = 'deck';
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* what keeps `@datalayer/jupyter-lexical` — and the Lumino nodes it initialises
|
|
6
6
|
* on import — out of the shell's bundle until someone opens a document.
|
|
7
7
|
*
|
|
8
|
-
* @module
|
|
8
|
+
* @module apps/plugins/document/DocumentView
|
|
9
9
|
*/
|
|
10
10
|
import type { JSX } from 'react';
|
|
11
11
|
import { type ChatSurfaceProps } from '../../core';
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* The same shape as the notebook plugin, contributed to the same point: an
|
|
9
9
|
* editor the conversation is about, not an alternative to it.
|
|
10
10
|
*
|
|
11
|
-
* @module
|
|
11
|
+
* @module apps/plugins/document
|
|
12
12
|
*/
|
|
13
13
|
import { FileIcon } from '@primer/octicons-react';
|
|
14
14
|
import { contribution, definePlugin } from '@datalayer/reactor';
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
* The output is what this code prints, from a real run: a fabricated output
|
|
18
18
|
* on a page asking to be trusted is a lie told at the worst possible moment.
|
|
19
19
|
*
|
|
20
|
-
* @module
|
|
20
|
+
* @module apps/plugins/document/openingDocument
|
|
21
21
|
*/
|
|
22
22
|
import type { SerializedEditorState } from 'lexical';
|
|
23
23
|
import 'prismjs/components/prism-python';
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* Read through the sandbox service's signal rather than the workspace snapshot
|
|
10
10
|
* so it tracks the sandbox itself, including while it is starting.
|
|
11
11
|
*
|
|
12
|
-
* @module
|
|
12
|
+
* @module apps/plugins/document-toolbar/SandboxStatusItem
|
|
13
13
|
*/
|
|
14
14
|
import type { JSX } from 'react';
|
|
15
15
|
export declare function SandboxStatusItem(): JSX.Element | null;
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* Lazy, waiting on the document toolbar point — a workspace where nobody opens
|
|
16
16
|
* a document never fetches it.
|
|
17
17
|
*
|
|
18
|
-
* @module
|
|
18
|
+
* @module apps/plugins/document-toolbar
|
|
19
19
|
*/
|
|
20
20
|
import { defineLazyPlugin, onContributionPoint } from '@datalayer/reactor';
|
|
21
21
|
import { LoopDocumentToolbar, LoopDocumentToolbarItem } from '../../core';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The plugin's name, on its own — see the notebook toolbar's `names` module.
|
|
3
3
|
*
|
|
4
|
-
* @module
|
|
4
|
+
* @module apps/plugins/document-toolbar/names
|
|
5
5
|
*/
|
|
6
6
|
export declare const DOCUMENT_TOOLBAR_PLUGIN_NAME = "@datalayer/loop-plugin-document-toolbar";
|
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
/**
|
|
6
6
|
* The plugin's name, on its own — see the notebook toolbar's `names` module.
|
|
7
7
|
*
|
|
8
|
-
* @module
|
|
8
|
+
* @module apps/plugins/document-toolbar/names
|
|
9
9
|
*/
|
|
10
10
|
export const DOCUMENT_TOOLBAR_PLUGIN_NAME = '@datalayer/loop-plugin-document-toolbar';
|
|
@@ -6,7 +6,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
6
6
|
/**
|
|
7
7
|
* The document toolbar plugin's module.
|
|
8
8
|
*
|
|
9
|
-
* @module
|
|
9
|
+
* @module apps/plugins/document-toolbar/plugin
|
|
10
10
|
*/
|
|
11
11
|
import { contribution, definePlugin } from '@datalayer/reactor';
|
|
12
12
|
import { LoopDocumentToolbar } from '../../core';
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* only while a document is actually contributed, and requires the
|
|
10
10
|
* input-prompt plugin, whose footer the icon sits in.
|
|
11
11
|
*
|
|
12
|
-
* @module
|
|
12
|
+
* @module apps/plugins/document-view
|
|
13
13
|
*/
|
|
14
14
|
import { FileIcon } from '@primer/octicons-react';
|
|
15
15
|
import { defineViewPlugin } from '../view-switch';
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* was mounted before showing it — which is a panel knowing about a plugin.
|
|
7
7
|
* Contributed here, the button simply goes when the plugin does.
|
|
8
8
|
*
|
|
9
|
-
* @module
|
|
9
|
+
* @module apps/plugins/graph/GraphToggle
|
|
10
10
|
*/
|
|
11
11
|
import type { JSX } from 'react';
|
|
12
12
|
import type { LoopWorkspaceContext } from '../../core';
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* graph cannot; a workspace whose server plugins are not tracked here is better
|
|
11
11
|
* drawn as the frontend platform alone than as a frontend plus a guess.
|
|
12
12
|
*
|
|
13
|
-
* @module
|
|
13
|
+
* @module apps/plugins/graph/GraphView
|
|
14
14
|
*/
|
|
15
15
|
import type { JSX } from 'react';
|
|
16
16
|
export default function GraphView(): JSX.Element;
|
|
@@ -11,7 +11,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
11
11
|
* the workspace. Keeping them apart is what lets the graph stay generic — it
|
|
12
12
|
* is drawn the same way in a music store and in an agent workspace.
|
|
13
13
|
*
|
|
14
|
-
* @module
|
|
14
|
+
* @module apps/plugins/graph
|
|
15
15
|
*/
|
|
16
16
|
import { WorkflowIcon } from '@primer/octicons-react';
|
|
17
17
|
import { configurePlugin, contribution, definePlugin, } from '@datalayer/reactor';
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Split out so the button can name the view without importing the plugin that
|
|
5
5
|
* declares it — which would be a cycle, since the plugin imports the button.
|
|
6
6
|
*
|
|
7
|
-
* @module
|
|
7
|
+
* @module apps/plugins/graph/viewType
|
|
8
8
|
*/
|
|
9
9
|
/** The view the graph plugin contributes. */
|
|
10
10
|
export declare const GRAPH_VIEW_TYPE = "graph";
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* Split out so the button can name the view without importing the plugin that
|
|
9
9
|
* declares it — which would be a cycle, since the plugin imports the button.
|
|
10
10
|
*
|
|
11
|
-
* @module
|
|
11
|
+
* @module apps/plugins/graph/viewType
|
|
12
12
|
*/
|
|
13
13
|
/** The view the graph plugin contributes. */
|
|
14
14
|
export const GRAPH_VIEW_TYPE = 'graph';
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* layout's current-turn panel is the first of these; the point is open to any
|
|
8
8
|
* plugin.
|
|
9
9
|
*
|
|
10
|
-
* @module
|
|
10
|
+
* @module apps/plugins/input-prompt/ComposerView
|
|
11
11
|
*/
|
|
12
12
|
import type { JSX } from 'react';
|
|
13
13
|
import { type LoopChatComposerProps } from '../../core';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* The notebook view: the ephemeral notebook, bound to the sandbox the base
|
|
3
3
|
* plugin owns.
|
|
4
4
|
*
|
|
5
|
-
* @module
|
|
5
|
+
* @module apps/plugins/notebook/NotebookView
|
|
6
6
|
*/
|
|
7
7
|
import type { JSX } from 'react';
|
|
8
8
|
import { type ChatSurfaceProps } from '../../core';
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* relationship is in the extension graph rather than in prose, and the reactor
|
|
14
14
|
* pulls the base plugin in whether or not the host remembered to mount it.
|
|
15
15
|
*
|
|
16
|
-
* @module
|
|
16
|
+
* @module apps/plugins/notebook
|
|
17
17
|
*/
|
|
18
18
|
import { RowsIcon } from '@primer/octicons-react';
|
|
19
19
|
import { contribution, definePlugin } from '@datalayer/reactor';
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
* kernel that will run the next cell; the moment anyone runs anything, real
|
|
33
33
|
* output replaces this.
|
|
34
34
|
*
|
|
35
|
-
* @module
|
|
35
|
+
* @module apps/plugins/notebook/openingNotebook
|
|
36
36
|
*/
|
|
37
37
|
import type { INotebookContent } from '@jupyterlab/nbformat';
|
|
38
38
|
/**
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
* notebook never fetches it at all — which is the whole reason its manifest
|
|
23
23
|
* lives here and its code does not.
|
|
24
24
|
*
|
|
25
|
-
* @module
|
|
25
|
+
* @module apps/plugins/notebook-toolbar
|
|
26
26
|
*/
|
|
27
27
|
import { defineLazyPlugin, onContributionPoint } from '@datalayer/reactor';
|
|
28
28
|
import { LoopNotebookToolbar, LoopNotebookToolbarItem } from '../../core';
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
* Imported by both the manifest and the module it loads, and by hosts that
|
|
5
5
|
* want to name the plugin without pulling either in.
|
|
6
6
|
*
|
|
7
|
-
* @module
|
|
7
|
+
* @module apps/plugins/notebook-toolbar/names
|
|
8
8
|
*/
|
|
9
9
|
export declare const NOTEBOOK_TOOLBAR_PLUGIN_NAME = "@datalayer/loop-plugin-notebook-toolbar";
|
|
@@ -8,6 +8,6 @@
|
|
|
8
8
|
* Imported by both the manifest and the module it loads, and by hosts that
|
|
9
9
|
* want to name the plugin without pulling either in.
|
|
10
10
|
*
|
|
11
|
-
* @module
|
|
11
|
+
* @module apps/plugins/notebook-toolbar/names
|
|
12
12
|
*/
|
|
13
13
|
export const NOTEBOOK_TOOLBAR_PLUGIN_NAME = '@datalayer/loop-plugin-notebook-toolbar';
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* kernel indicator reaches for, is fetched when a notebook toolbar is first
|
|
10
10
|
* read rather than with the shell.
|
|
11
11
|
*
|
|
12
|
-
* @module
|
|
12
|
+
* @module apps/plugins/notebook-toolbar/plugin
|
|
13
13
|
*/
|
|
14
14
|
import { contribution, definePlugin } from '@datalayer/reactor';
|
|
15
15
|
import { LoopNotebookToolbar } from '../../core';
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* only while a notebook is actually contributed, and requires the
|
|
10
10
|
* input-prompt plugin, whose footer the icon sits in.
|
|
11
11
|
*
|
|
12
|
-
* @module
|
|
12
|
+
* @module apps/plugins/notebook-view
|
|
13
13
|
*/
|
|
14
14
|
// The same icon the notebook's own editor view declares, so the footer
|
|
15
15
|
// button and the selector entry read as one thing.
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* leaves the conversation is kept while the workspace is mounted. The page
|
|
14
14
|
* opens at the theme's pace (T-10, `paneOpening`).
|
|
15
15
|
*
|
|
16
|
-
* @module
|
|
16
|
+
* @module apps/plugins/page-layout/SplitLayout
|
|
17
17
|
*/
|
|
18
18
|
import type { JSX } from 'react';
|
|
19
19
|
import type { ChatLayoutParts } from '../../core';
|
|
@@ -87,7 +87,7 @@ export function SplitLayout({ editors, hasEditor, transcript, prompt, chips, pic
|
|
|
87
87
|
'&:hover::before, &:focus-visible::before': {
|
|
88
88
|
width: '3px',
|
|
89
89
|
bg: 'accent.emphasis',
|
|
90
|
-
}
|
|
90
|
+
},
|
|
91
91
|
} })) : null, _jsx(Box, { "data-testid": "loop-split-page", sx: hasEditor
|
|
92
92
|
? {
|
|
93
93
|
flex: '1 1 0',
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* the panel is not is a second transcript: one turn, compact, and the whole
|
|
16
16
|
* conversation one click away.
|
|
17
17
|
*
|
|
18
|
-
* @module
|
|
18
|
+
* @module apps/plugins/page-layout/TurnPanel
|
|
19
19
|
*/
|
|
20
20
|
import type { JSX } from 'react';
|
|
21
21
|
export type TurnPanelFooter = 'full' | 'actions' | 'none';
|
|
@@ -8,6 +8,7 @@ import { signal } from '@datalayer/reactor';
|
|
|
8
8
|
import { TurnFooter } from '../../../chat/messages/TurnFooter';
|
|
9
9
|
import { LoopChatTurn } from '../../core';
|
|
10
10
|
import { Streamdown } from 'streamdown';
|
|
11
|
+
import { REHYPE_PLUGINS_WITHOUT_HTML } from '../../../chat/messages/markdownWithoutHtml';
|
|
11
12
|
import { streamdownMarkdownStyles } from '../../../chat/styles/streamdownStyles';
|
|
12
13
|
import { normalizeAssistantMarkdown } from '../../../chat/messages/assistantMarkdown';
|
|
13
14
|
import { openPagePanel, pageLayoutSheet, } from '@datalayer/primer-addons/lib/reactor';
|
|
@@ -89,7 +90,7 @@ export function TurnPanel({ footer = 'full', }) {
|
|
|
89
90
|
}, children: turn.user }) }), _jsxs(Box, { display: "flex", gap: 2, alignItems: "flex-start", children: [_jsx(Box, { ref: replyRef, flex: "1 1 auto", minWidth: 0, maxHeight: MAX_HEIGHT, overflowY: "auto", fontSize: 0, lineHeight: 1.5, color: turn.assistant ? 'fg.default' : 'fg.muted',
|
|
90
91
|
// Rendered markdown brings its own flow; the plain fallbacks
|
|
91
92
|
// below keep their line breaks.
|
|
92
|
-
whiteSpace: turn.assistant ? 'normal' : 'pre-wrap', overflowWrap: "anywhere", children: turn.assistant ? (_jsx(Box, { sx: { ...streamdownMarkdownStyles, fontSize: 0 }, children: _jsx(Streamdown, { children: normalizeAssistantMarkdown(turn.assistant) }) })) : turn.activity ? (_jsx(Text, { sx: { color: 'fg.muted', fontStyle: 'italic' }, children: turn.activity })) : working ? (_jsx(Thinking, {})) : turn.status === 'error' ? ('The agent could not answer.') : ('Done — the result is in the page.') }), _jsx(IconButton, { icon: CommentDiscussionIcon, size: "small", variant: "invisible", "aria-label": "Open the conversation", onClick: openPagePanel, sx: { color: 'fg.muted', flexShrink: 0 } })] }), turn.assistant && turn.activity ? (_jsx(Text, { sx: { fontSize: 0, color: 'fg.muted', fontStyle: 'italic' }, children: turn.activity })) : null, footer === 'full' ? (
|
|
93
|
+
whiteSpace: turn.assistant ? 'normal' : 'pre-wrap', overflowWrap: "anywhere", children: turn.assistant ? (_jsx(Box, { sx: { ...streamdownMarkdownStyles, fontSize: 0 }, children: _jsx(Streamdown, { rehypePlugins: REHYPE_PLUGINS_WITHOUT_HTML, children: normalizeAssistantMarkdown(turn.assistant) }) })) : turn.activity ? (_jsx(Text, { sx: { color: 'fg.muted', fontStyle: 'italic' }, children: turn.activity })) : working ? (_jsx(Thinking, {})) : turn.status === 'error' ? ('The agent could not answer.') : ('Done — the result is in the page.') }), _jsx(IconButton, { icon: CommentDiscussionIcon, size: "small", variant: "invisible", "aria-label": "Open the conversation", onClick: openPagePanel, sx: { color: 'fg.muted', flexShrink: 0 } })] }), turn.assistant && turn.activity ? (_jsx(Text, { sx: { fontSize: 0, color: 'fg.muted', fontStyle: 'italic' }, children: turn.activity })) : null, footer === 'full' ? (
|
|
93
94
|
// The same footer the transcript draws under a turn: the window's
|
|
94
95
|
// fill, this turn's tokens in and out, copy, and dismiss.
|
|
95
96
|
_jsx(TurnFooter, { usage: turn.usage, live: working, latest: true, padding: 0, onCopy: copyTurn, onRemove: () => setDismissedId(turn.id) })) : footer === 'actions' ? (
|
|
@@ -21,7 +21,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
21
21
|
* plugin contributes it to the manager's action slot now, so it appears and
|
|
22
22
|
* disappears with the thing it opens.
|
|
23
23
|
*
|
|
24
|
-
* @module
|
|
24
|
+
* @module apps/plugins/plugins-panel
|
|
25
25
|
*/
|
|
26
26
|
import { definePlugin } from '@datalayer/reactor';
|
|
27
27
|
import { GraphPlugin } from '@datalayer/reactor-graph';
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* button and the slash command cannot drift: one intent, one path, and the
|
|
10
10
|
* command's own error shows when no conversation is on screen.
|
|
11
11
|
*
|
|
12
|
-
* @module
|
|
12
|
+
* @module apps/plugins/prompt/NewChatAction
|
|
13
13
|
*/
|
|
14
14
|
import type { JSX } from 'react';
|
|
15
15
|
import type { LoopWorkspaceContext } from '../../core';
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* `loopPlugins({ floatingPrompt: true })` mounts this plugin and asks the
|
|
21
21
|
* chat for the floating placement together.
|
|
22
22
|
*
|
|
23
|
-
* @module
|
|
23
|
+
* @module apps/plugins/prompt
|
|
24
24
|
*/
|
|
25
25
|
import { contribution, definePlugin } from '@datalayer/reactor';
|
|
26
26
|
import { LoopCommand, LoopSlots, focusPrompt } from '../../core';
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* whether the choice came from the selector, `/editor`, or the generic
|
|
15
15
|
* cycle command.
|
|
16
16
|
*
|
|
17
|
-
* @module
|
|
17
|
+
* @module apps/plugins/shell/editorChoice
|
|
18
18
|
*/
|
|
19
19
|
import { chooseView, nextView, seedViewChoice, setViewOptions, subscribeViewChoice } from '@datalayer/reactor-shell';
|
|
20
20
|
/** The choice that means "just the conversation". */
|