@datalayer/agent-runtimes 1.0.29 → 1.3.11
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/lib/AgentDocument.js +5 -22
- package/lib/AgentNode.d.ts +1 -1
- package/lib/AgentNode.js +193 -23
- package/lib/AgentNotebook.js +1 -1
- package/lib/App.d.ts +1 -1
- package/lib/AppExamples2.d.ts +1 -1
- package/lib/agent-node/AgentNodeGallery.d.ts +14 -1
- package/lib/agent-node/AgentNodeGallery.js +19 -15
- package/lib/agent-node/themeStore.js +7 -6
- package/lib/agents/AgentDetails.d.ts +8 -2
- package/lib/agents/AgentDetails.js +41 -11
- package/lib/agents/AgentRuntimeChat.d.ts +3 -3
- package/lib/agents/AgentRuntimeChat.js +15 -15
- package/lib/api/agents.d.ts +10 -10
- package/lib/api/agents.js +15 -15
- package/lib/api/checkpoints.d.ts +40 -0
- package/lib/api/checkpoints.js +75 -0
- package/lib/api/index.d.ts +1 -0
- package/lib/api/index.js +2 -1
- package/lib/api/notifications.d.ts +21 -6
- package/lib/api/notifications.js +32 -14
- package/lib/api/runtimes/environments.d.ts +406 -4
- package/lib/api/runtimes/environments.js +641 -9
- package/lib/api/runtimes/runtimes.d.ts +19 -19
- package/lib/api/runtimes/runtimes.js +47 -46
- package/lib/api/spacer/notebooks.js +1 -1
- package/lib/chat/Chat.d.ts +16 -4
- package/lib/chat/Chat.js +18 -5
- package/lib/chat/ChatFloating.d.ts +20 -2
- package/lib/chat/ChatFloating.js +196 -118
- package/lib/chat/ChatInline.d.ts +15 -0
- package/lib/chat/ChatInline.js +0 -18
- package/lib/chat/ChatPopupStandalone.d.ts +1 -1
- package/lib/chat/ChatSidebar.d.ts +14 -2
- package/lib/chat/ChatSidebar.js +1 -1
- package/lib/chat/ChatStandalone.d.ts +1 -1
- package/lib/chat/EphemeralSurfaceControl.d.ts +30 -0
- package/lib/chat/EphemeralSurfaceControl.js +55 -0
- package/lib/chat/base/ChatAvailability.d.ts +34 -0
- package/lib/chat/base/ChatAvailability.js +18 -0
- package/lib/chat/base/ChatBase.d.ts +2 -1
- package/lib/chat/base/ChatBase.js +657 -28
- package/lib/chat/display/ButtonGlow.d.ts +9 -0
- package/lib/chat/display/ButtonGlow.js +60 -0
- package/lib/chat/display/EmptyState.d.ts +15 -1
- package/lib/chat/display/EmptyState.js +81 -12
- package/lib/chat/display/FloatingBrandButton.d.ts +1 -1
- package/lib/chat/display/PoweredByTag.d.ts +1 -1
- package/lib/chat/display/groupSuggestions.d.ts +21 -0
- package/lib/chat/display/groupSuggestions.js +18 -0
- package/lib/chat/document/EphemeralDocument.d.ts +70 -6
- package/lib/chat/document/EphemeralDocument.js +154 -52
- package/lib/chat/header/ChatHeader.d.ts +1 -1
- package/lib/chat/header/ChatHeaderBase.d.ts +10 -1
- package/lib/chat/header/ChatHeaderBase.js +21 -102
- package/lib/chat/header/ChatViewModeToggle.d.ts +29 -0
- package/lib/chat/header/ChatViewModeToggle.js +55 -0
- package/lib/chat/index.d.ts +5 -1
- package/lib/chat/index.js +9 -1
- package/lib/chat/indicators/McpStatusIndicator.d.ts +1 -1
- package/lib/chat/indicators/SandboxStatusIndicator.d.ts +1 -1
- package/lib/chat/indicators/SandboxStatusIndicator.js +1 -1
- package/lib/chat/indicators/SkillsStatusIndicator.d.ts +1 -1
- package/lib/chat/messages/ChatMessageList.d.ts +22 -1
- package/lib/chat/messages/ChatMessageList.js +370 -166
- package/lib/chat/messages/ChatMessages.d.ts +1 -1
- package/lib/chat/messages/NotebookToolSurfaces.d.ts +68 -0
- package/lib/chat/messages/NotebookToolSurfaces.js +302 -0
- package/lib/chat/messages/TurnFooter.d.ts +42 -0
- package/lib/chat/messages/TurnFooter.js +75 -0
- package/lib/chat/messages/assistantMarkdown.d.ts +22 -0
- package/lib/chat/messages/assistantMarkdown.js +56 -0
- package/lib/chat/notebook/EphemeralNotebook.d.ts +67 -6
- package/lib/chat/notebook/EphemeralNotebook.js +194 -61
- package/lib/chat/parts/DynamicToolPart.d.ts +1 -1
- package/lib/chat/parts/MessagePart.d.ts +1 -1
- package/lib/chat/parts/ReasoningPart.d.ts +8 -1
- package/lib/chat/parts/TextPart.d.ts +1 -1
- package/lib/chat/parts/ToolPart.d.ts +8 -1
- package/lib/chat/prompt/FloatingCard.d.ts +26 -0
- package/lib/chat/prompt/FloatingCard.js +80 -0
- package/lib/chat/prompt/InputPrompt.d.ts +206 -53
- package/lib/chat/prompt/InputPrompt.js +161 -80
- package/lib/chat/prompt/InputPromptBase.d.ts +112 -0
- package/lib/chat/prompt/InputPromptBase.js +225 -0
- package/lib/chat/prompt/InputPromptLexical.d.ts +18 -1
- package/lib/chat/prompt/InputPromptLexical.js +227 -30
- package/lib/chat/prompt/InputPromptText.d.ts +10 -2
- package/lib/chat/prompt/InputPromptText.js +35 -3
- package/lib/chat/prompt/footer/BelowPromptFooter.d.ts +25 -0
- package/lib/chat/prompt/footer/BelowPromptFooter.js +12 -0
- package/lib/chat/prompt/footer/InPromptFooter.d.ts +35 -0
- package/lib/chat/prompt/footer/InPromptFooter.js +16 -0
- package/lib/chat/prompt/footer/index.d.ts +7 -0
- package/lib/chat/prompt/footer/index.js +11 -0
- package/lib/chat/prompt/header/BelowPromptHeader.d.ts +23 -0
- package/lib/chat/prompt/header/BelowPromptHeader.js +12 -0
- package/lib/chat/prompt/header/InPromptHeader.d.ts +31 -0
- package/lib/chat/prompt/header/InPromptHeader.js +14 -0
- package/lib/chat/prompt/header/index.d.ts +7 -0
- package/lib/chat/prompt/header/index.js +11 -0
- package/lib/chat/prompt/index.d.ts +8 -4
- package/lib/chat/prompt/index.js +15 -3
- package/lib/chat/prompt/menus/AgentsMenu.d.ts +14 -0
- package/lib/chat/prompt/menus/AgentsMenu.js +42 -0
- package/lib/chat/prompt/menus/InlineAgentsMenu.d.ts +22 -0
- package/lib/chat/prompt/menus/InlineAgentsMenu.js +24 -0
- package/lib/chat/prompt/menus/ModelSelector.d.ts +7 -0
- package/lib/chat/prompt/menus/ModelSelector.js +27 -0
- package/lib/chat/prompt/menus/SkillsMenu.d.ts +10 -0
- package/lib/chat/prompt/menus/SkillsMenu.js +75 -0
- package/lib/chat/prompt/menus/SuggestionsMenu.d.ts +13 -0
- package/lib/chat/prompt/menus/SuggestionsMenu.js +31 -0
- package/lib/chat/prompt/menus/ToolsMenu.d.ts +13 -0
- package/lib/chat/prompt/menus/ToolsMenu.js +103 -0
- package/lib/chat/prompt/menus/index.d.ts +15 -0
- package/lib/chat/prompt/menus/index.js +19 -0
- package/lib/chat/prompt/plugins/AgentMentionPlugin.d.ts +54 -0
- package/lib/chat/prompt/plugins/AgentMentionPlugin.js +370 -0
- package/lib/chat/prompt/plugins/CommandPlugin.d.ts +52 -0
- package/lib/chat/prompt/plugins/CommandPlugin.js +359 -0
- package/lib/chat/prompt/plugins/MentionChip.d.ts +15 -0
- package/lib/chat/prompt/plugins/MentionChip.js +24 -0
- package/lib/chat/prompt/plugins/MentionNode.d.ts +66 -0
- package/lib/chat/prompt/plugins/MentionNode.js +77 -0
- package/lib/chat/prompt/promptHistory.d.ts +52 -0
- package/lib/chat/prompt/promptHistory.js +123 -0
- package/lib/chat/prompt/stack.d.ts +81 -0
- package/lib/chat/prompt/stack.js +41 -0
- package/lib/chat/prompt/useTypingPlaceholder.d.ts +52 -0
- package/lib/chat/prompt/useTypingPlaceholder.js +180 -0
- package/lib/chat/tools/A2AAgentDialog.d.ts +60 -0
- package/lib/chat/tools/A2AAgentDialog.js +265 -0
- package/lib/chat/tools/ToolApprovalBanner.d.ts +1 -1
- package/lib/chat/tools/ToolApprovalDialog.d.ts +1 -1
- package/lib/chat/tools/ToolCallDisplay.d.ts +8 -1
- package/lib/chat/tools/index.d.ts +1 -0
- package/lib/chat/tools/index.js +1 -0
- package/lib/chat/usage/ContextPie.d.ts +17 -0
- package/lib/chat/usage/{TokenUsageBar.js → ContextPie.js} +20 -14
- package/lib/chat/useViewportDrag.d.ts +11 -0
- package/lib/chat/useViewportDrag.js +61 -0
- package/lib/chat/viewModes.d.ts +51 -0
- package/lib/chat/viewModes.js +57 -0
- package/lib/client/AgentRuntimesClient.d.ts +10 -9
- package/lib/client/AgentRuntimesClient.js +1 -1
- package/lib/client/AgentRuntimesClientContext.d.ts +1 -0
- package/lib/client/AgentsMixin.d.ts +12 -12
- package/lib/client/AgentsMixin.js +31 -31
- package/lib/client/IAgentRuntimesClient.d.ts +10 -10
- package/lib/client/SdkAgentRuntimesClient.d.ts +10 -10
- package/lib/client/SdkAgentRuntimesClient.js +10 -10
- package/lib/client/mixins/RuntimesMixin.d.ts +37 -10
- package/lib/client/mixins/RuntimesMixin.js +54 -21
- package/lib/components/a2ui/A2uiSurfaceComposed.d.ts +1 -1
- package/lib/components/agents/AgentSummary.d.ts +13 -0
- package/lib/components/agents/AgentSummary.js +21 -4
- package/lib/components/cards/NotificationEventCard.d.ts +1 -1
- package/lib/components/cards/OutputCard.d.ts +1 -1
- package/lib/components/cards/ToolApprovalCard.d.ts +2 -2
- package/lib/components/cards/ToolApprovalCard.js +1 -0
- package/lib/components/code-sandboxes/CodeSandboxCellVariables.d.ts +1 -0
- package/lib/components/code-sandboxes/CodeSandboxCellVariables.js +0 -4
- package/lib/components/code-sandboxes/CodeSandboxCellVariablesDialog.d.ts +1 -0
- package/lib/components/code-sandboxes/CodeSandboxCellVariablesDialog.js +0 -4
- package/lib/components/code-sandboxes/CodeSandboxEnvironmentSelect.d.ts +35 -0
- package/lib/components/code-sandboxes/CodeSandboxEnvironmentSelect.js +27 -29
- package/lib/components/code-sandboxes/CodeSandboxLauncher.d.ts +9 -0
- package/lib/components/code-sandboxes/CodeSandboxLauncher.js +95 -23
- package/lib/components/code-sandboxes/CodeSandboxNames.js +7 -6
- package/lib/components/code-sandboxes/CodeSandboxPicker.js +89 -42
- package/lib/components/code-sandboxes/CodeSandboxPickerCell.d.ts +1 -0
- package/lib/components/code-sandboxes/CodeSandboxPickerCell.js +0 -4
- package/lib/components/code-sandboxes/CodeSandboxReservationControl.d.ts +1 -0
- package/lib/components/code-sandboxes/CodeSandboxReservationControl.js +5 -7
- package/lib/components/code-sandboxes/CodeSandboxTransfer.d.ts +5 -0
- package/lib/components/code-sandboxes/CodeSandboxUtils.d.ts +13 -1
- package/lib/components/code-sandboxes/CodeSandboxUtils.js +10 -4
- package/lib/components/code-sandboxes/NewCodeSandboxControls.d.ts +21 -15
- package/lib/components/code-sandboxes/NewCodeSandboxControls.js +28 -51
- package/lib/components/code-sandboxes/codeSandboxAllowance.d.ts +33 -0
- package/lib/components/code-sandboxes/codeSandboxAllowance.js +37 -0
- package/lib/components/code-sandboxes/codeSandboxEnvironments.d.ts +97 -0
- package/lib/components/code-sandboxes/codeSandboxEnvironments.js +184 -0
- package/lib/components/code-sandboxes/codeSandboxProviders.js +14 -5
- package/lib/components/code-sandboxes/index.d.ts +1 -0
- package/lib/components/code-sandboxes/index.js +1 -0
- package/lib/components/context/SpaceSelect.d.ts +1 -1
- package/lib/components/flashes/FlashDisclaimer.d.ts +1 -1
- package/lib/components/icons/ArtifactIcon.d.ts +1 -0
- package/lib/components/icons/ArtifactIcon.js +2 -1
- package/lib/components/nbgrader/NbGradesDetails.d.ts +1 -1
- package/lib/components/progress/CreditsIndicator.d.ts +1 -0
- package/lib/components/progress/CreditsIndicator.js +0 -4
- package/lib/components/scheduler/ScheduleMenu.d.ts +1 -1
- package/lib/components/snapshots/SandboxSnapshotMenu.d.ts +3 -2
- package/lib/components/snapshots/SandboxSnapshotMenu.js +11 -15
- package/lib/components/snippets/SnippetDialog.d.ts +1 -0
- package/lib/components/snippets/SnippetDialog.js +0 -4
- package/lib/components/specs/SpecPayloadPreview.d.ts +34 -0
- package/lib/components/specs/SpecPayloadPreview.js +102 -0
- package/lib/components/tokens/SpaceVariantToken.d.ts +1 -1
- package/lib/context/ContextDistribution.d.ts +1 -1
- package/lib/context/ContextInspector.d.ts +2 -1
- package/lib/context/ContextPanel.d.ts +1 -1
- package/lib/context/ContextUsage.d.ts +1 -1
- package/lib/context/CostTracker.d.ts +1 -1
- package/lib/context/CostUsageChart.d.ts +1 -1
- package/lib/context/CostUsageChart.js +4 -4
- package/lib/context/MessageHistory.d.ts +3 -2
- package/lib/context/TokenUsageChart.d.ts +1 -1
- package/lib/context/TokenUsageChart.js +4 -4
- package/lib/examples/A2UiAgentExample.js +15 -6
- package/lib/examples/A2UiComponentsGalleryExample.d.ts +10 -0
- package/lib/examples/A2UiComponentsGalleryExample.js +24 -855
- package/lib/examples/A2UiContactCardExample.d.ts +10 -0
- package/lib/examples/A2UiContactCardExample.js +23 -170
- package/lib/examples/A2UiJupyterOutputExample.d.ts +3 -0
- package/lib/examples/A2UiJupyterOutputExample.js +792 -0
- package/lib/examples/A2UiRestaurantExample.d.ts +10 -0
- package/lib/examples/A2UiRestaurantExample.js +24 -179
- package/lib/examples/A2UiViewerExample.d.ts +10 -0
- package/lib/examples/A2UiViewerExample.js +24 -378
- package/lib/examples/AgUiAgenticExample.js +2 -4
- package/lib/examples/AgUiBackendToolRenderingExample.js +3 -5
- package/lib/examples/AgUiHaikuGenUiExample.js +2 -4
- package/lib/examples/AgUiHumanInTheLoopExample.js +2 -4
- package/lib/examples/AgUiSharedStateExample.js +2 -4
- package/lib/examples/AgUiToolsBasedGenUiExample.js +2 -4
- package/lib/examples/AgentA2AExample.d.ts +17 -0
- package/lib/examples/AgentA2AExample.js +56 -0
- package/lib/examples/AgentCheckpointsExample.d.ts +9 -10
- package/lib/examples/AgentCheckpointsExample.js +72 -54
- package/lib/examples/AgentCodeSandboxExample.d.ts +7 -7
- package/lib/examples/AgentCodeSandboxExample.js +93 -303
- package/lib/examples/AgentCodeSandboxesExample.d.ts +10 -0
- package/lib/examples/AgentCodeSandboxesExample.js +56 -162
- package/lib/examples/AgentCodemodeExample.d.ts +7 -2
- package/lib/examples/AgentCodemodeExample.js +60 -125
- package/lib/examples/AgentCompactionExample.js +19 -135
- package/lib/examples/AgentEvalsExample.js +34 -66
- package/lib/examples/AgentGuardrailsExample.js +64 -112
- package/lib/examples/AgentHooksExample.d.ts +11 -0
- package/lib/examples/AgentHooksExample.js +30 -67
- package/lib/examples/AgentInferenceProviderExample.js +8 -32
- package/lib/examples/AgentLoopExample.d.ts +4 -2
- package/lib/examples/AgentLoopExample.js +45 -93
- package/lib/examples/AgentMCPExample.js +30 -79
- package/lib/examples/AgentMemoryExample.js +21 -64
- package/lib/examples/AgentMonitoringExample.js +33 -94
- package/lib/examples/AgentNotificationsExample.js +56 -95
- package/lib/examples/AgentOtelExample.js +35 -88
- package/lib/examples/AgentOutputsExample.d.ts +2 -1
- package/lib/examples/AgentOutputsExample.js +16 -137
- package/lib/examples/AgentParametersExample.js +7 -17
- package/lib/examples/AgentSkillsExample.js +40 -154
- package/lib/examples/AgentSubagentsExample.d.ts +7 -6
- package/lib/examples/AgentSubagentsExample.js +80 -191
- package/lib/examples/AgentToolApprovalsExample.js +35 -91
- package/lib/examples/AgentTriggersExample.js +43 -59
- package/lib/examples/AgentspecsExample.js +4 -4
- package/lib/examples/CellExample.d.ts +1 -1
- package/lib/examples/ChatExample.d.ts +12 -5
- package/lib/examples/ChatExample.js +38 -13
- package/lib/examples/CopilotKitLexicalExample.d.ts +1 -0
- package/lib/examples/CopilotKitLexicalExample.js +4 -41
- package/lib/examples/CopilotKitNotebookExample.d.ts +10 -0
- package/lib/examples/CopilotKitNotebookExample.js +2 -14
- package/lib/examples/DecksAgent.d.ts +21 -0
- package/lib/examples/DecksAgent.js +23 -0
- package/lib/examples/DocumentPageAgent.d.ts +19 -0
- package/lib/examples/DocumentPageAgent.js +15 -0
- package/lib/examples/Lexical2Example.d.ts +2 -2
- package/lib/examples/Lexical2Example.js +17 -38
- package/lib/examples/LexicalAgentExample.d.ts +2 -1
- package/lib/examples/LexicalAgentExample.js +29 -102
- package/lib/examples/LexicalAgentSidebarExample.d.ts +16 -5
- package/lib/examples/LexicalAgentSidebarExample.js +99 -131
- package/lib/examples/LoopShellExample.d.ts +38 -0
- package/lib/examples/LoopShellExample.js +68 -0
- package/lib/examples/LoopWorkspaceEmbed.d.ts +50 -0
- package/lib/examples/LoopWorkspaceEmbed.js +73 -0
- package/lib/examples/LoopWorkspaceExample.d.ts +150 -0
- package/lib/examples/LoopWorkspaceExample.js +151 -0
- package/lib/examples/NotebookAgentExample.d.ts +13 -0
- package/lib/examples/NotebookAgentExample.js +36 -86
- package/lib/examples/NotebookAgentSidebarExample.d.ts +10 -4
- package/lib/examples/NotebookAgentSidebarExample.js +39 -83
- package/lib/examples/NotebookCollaborationExample.d.ts +1 -1
- package/lib/examples/NotebookCollaborationExample.js +108 -20
- package/lib/examples/NotebookExample.d.ts +1 -1
- package/lib/examples/NotebookExample.js +20 -10
- package/lib/examples/NotebookPageAgent.d.ts +23 -0
- package/lib/examples/NotebookPageAgent.js +17 -0
- package/lib/examples/components/ExampleWrapper.d.ts +5 -0
- package/lib/examples/components/ExampleWrapper.js +36 -28
- package/lib/examples/components/LexicalEditor.d.ts +1 -1
- package/lib/examples/components/LexicalEditor.js +4 -24
- package/lib/examples/components/haiku/HaikuDisplay.d.ts +1 -1
- package/lib/examples/components/haiku/InlineHaikuCard.d.ts +1 -1
- package/lib/examples/components/weather/InlineWeatherCard.d.ts +1 -1
- package/lib/examples/example-selector.js +26 -6
- package/lib/examples/hooks/useCreateAgentOnce.d.ts +41 -0
- package/lib/examples/hooks/useCreateAgentOnce.js +51 -0
- package/lib/examples/hooks/useExampleAgentProtocol.d.ts +35 -0
- package/lib/examples/hooks/useExampleAgentProtocol.js +63 -0
- package/lib/examples/hooks/useExampleAgentRuntime.d.ts +16 -16
- package/lib/examples/hooks/useExampleAgentRuntime.js +26 -25
- package/lib/examples/hooks/useExampleAgentRuntimes.js +45 -61
- package/lib/examples/hooks/useExampleJupyterAgent.d.ts +91 -0
- package/lib/examples/hooks/useExampleJupyterAgent.js +151 -0
- package/lib/examples/index.d.ts +4 -0
- package/lib/examples/index.js +6 -0
- package/lib/examples/lexical/editorConfig.d.ts +2 -75
- package/lib/examples/lexical/editorConfig.js +26 -48
- package/lib/examples/lexical/lexical-theme.css +65 -47
- package/lib/examples/main.js +450 -322
- package/lib/examples/scenes/A2UiComponentsGalleryScene.d.ts +3 -0
- package/lib/examples/scenes/A2UiComponentsGalleryScene.js +872 -0
- package/lib/examples/scenes/A2UiContactCardScene.d.ts +3 -0
- package/lib/examples/scenes/A2UiContactCardScene.js +188 -0
- package/lib/examples/scenes/A2UiRestaurantScene.d.ts +3 -0
- package/lib/examples/scenes/A2UiRestaurantScene.js +196 -0
- package/lib/examples/scenes/A2UiViewerScene.d.ts +3 -0
- package/lib/examples/scenes/A2UiViewerScene.js +395 -0
- package/lib/examples/utils/agentSummaryStore.d.ts +7 -1
- package/lib/examples/utils/agents/earthquake-detector.ipynb.json +1 -1
- package/lib/examples/utils/agents/earthquake-detector.lexical.json +1 -1
- package/lib/examples/utils/agents/sales-forecaster.ipynb.json +1 -1
- package/lib/examples/utils/agents/sales-forecaster.lexical.json +1 -1
- package/lib/examples/utils/agents/social-post-generator.ipynb.json +1 -1
- package/lib/examples/utils/agents/social-post-generator.lexical.json +1 -1
- package/lib/examples/utils/exampleSurfaces.d.ts +31 -0
- package/lib/examples/utils/exampleSurfaces.js +38 -0
- package/lib/examples/utils/jupyterSandboxUrl.d.ts +27 -0
- package/lib/examples/utils/jupyterSandboxUrl.js +55 -0
- package/lib/examples/utils/localUrl.d.ts +2 -0
- package/lib/examples/utils/localUrl.js +49 -0
- package/lib/examples/utils/notebookToolbarItems.d.ts +46 -0
- package/lib/examples/utils/notebookToolbarItems.js +129 -0
- package/lib/examples/utils/runtimeTargetStore.d.ts +40 -1
- package/lib/examples/utils/runtimeTargetStore.js +82 -1
- package/lib/examples/utils/themedProvider.d.ts +7 -0
- package/lib/examples/utils/themedProvider.js +57 -4
- package/lib/examples/utils/useExampleAgentRuntimesUrl.js +30 -5
- package/lib/examples/utils/waitForAgent.d.ts +23 -0
- package/lib/examples/utils/waitForAgent.js +24 -0
- package/lib/examples2/CellExample.d.ts +1 -1
- package/lib/examples2/DatalayerNotebookExample.d.ts +1 -1
- package/lib/examples2/NotebookExample.d.ts +1 -1
- package/lib/examples2/NotebookMutationsKernel.d.ts +1 -1
- package/lib/examples2/NotebookMutationsServiceManager.d.ts +1 -1
- package/lib/examples2/main.js +24 -4
- package/lib/extensions/A2UIExtension.d.ts +1 -1
- package/lib/hooks/index.d.ts +8 -5
- package/lib/hooks/index.js +20 -5
- package/lib/hooks/useAgentRuntimes.d.ts +49 -22
- package/lib/hooks/useAgentRuntimes.js +214 -90
- package/lib/hooks/useAgentsCatalog.js +32 -4
- package/lib/hooks/useBrowserAgent.d.ts +26 -0
- package/lib/hooks/useBrowserAgent.js +75 -0
- package/lib/hooks/useBrowserInference.d.ts +27 -0
- package/lib/hooks/useBrowserInference.js +67 -0
- package/lib/hooks/useCheckpoints.d.ts +8 -17
- package/lib/hooks/useCheckpoints.js +25 -59
- package/lib/hooks/useConfig.d.ts +1 -1
- package/lib/hooks/useConfig.js +5 -1
- package/lib/hooks/useContextSnapshot.d.ts +18 -7
- package/lib/hooks/useContextSnapshot.js +14 -10
- package/lib/hooks/useNotifications.d.ts +11 -11
- package/lib/hooks/useNotifications.js +1 -1
- package/lib/hooks/useProjects.d.ts +7 -19
- package/lib/hooks/useProjects.js +5 -5
- package/lib/hooks/useSkills.d.ts +0 -1
- package/lib/hooks/useSkills.js +6 -2
- package/lib/hooks/useToolApprovals.d.ts +8 -8
- package/lib/hooks/useToolApprovals.js +3 -3
- package/lib/identity/AgentIdentity.d.ts +9 -2
- package/lib/index.d.ts +1 -0
- package/lib/index.js +4 -0
- package/lib/jupyter/index.d.ts +2 -1
- package/lib/jupyter/index.js +2 -1
- package/lib/jupyter/serverExecution.d.ts +78 -0
- package/lib/jupyter/serverExecution.js +258 -0
- package/lib/jupyter/useResumeServerExecutions.d.ts +11 -0
- package/lib/jupyter/useResumeServerExecutions.js +64 -0
- package/lib/lexical/ChatInlinePlugin.d.ts +33 -0
- package/lib/lexical/ChatInlinePlugin.js +0 -36
- package/lib/loop/core/focusRequests.d.ts +10 -0
- package/lib/loop/core/focusRequests.js +46 -0
- package/lib/loop/core/index.d.ts +903 -0
- package/lib/loop/core/index.js +264 -0
- package/lib/loop/core/promptStore.d.ts +44 -0
- package/lib/loop/core/promptStore.js +63 -0
- package/lib/loop/core/surfaceRequests.d.ts +33 -0
- package/lib/loop/core/surfaceRequests.js +29 -0
- package/lib/loop/core/toolbar.d.ts +28 -0
- package/lib/loop/core/toolbar.js +59 -0
- package/lib/loop/embed/LoopEmbed.d.ts +57 -0
- package/lib/loop/embed/LoopEmbed.js +124 -0
- package/lib/loop/extensions.d.ts +10 -0
- package/lib/loop/extensions.js +49 -0
- package/lib/loop/index.d.ts +68 -0
- package/lib/loop/index.js +87 -0
- package/lib/loop/plugins/a2a-sidebar/A2ASidebar.d.ts +48 -0
- package/lib/loop/plugins/a2a-sidebar/A2ASidebar.js +190 -0
- package/lib/loop/plugins/a2a-sidebar/index.d.ts +5 -0
- package/lib/loop/plugins/a2a-sidebar/index.js +39 -0
- package/lib/loop/plugins/a2ui/A2uiView.d.ts +12 -0
- package/lib/loop/plugins/a2ui/A2uiView.js +97 -0
- package/lib/loop/plugins/a2ui/index.d.ts +3 -0
- package/lib/loop/plugins/a2ui/index.js +50 -0
- package/lib/loop/plugins/a2ui-scene/index.d.ts +36 -0
- package/lib/loop/plugins/a2ui-scene/index.js +28 -0
- package/lib/loop/plugins/agent-a2a/index.d.ts +3 -0
- package/lib/loop/plugins/agent-a2a/index.js +26 -0
- package/lib/loop/plugins/agent-a2ui/index.d.ts +3 -0
- package/lib/loop/plugins/agent-a2ui/index.js +42 -0
- package/lib/loop/plugins/agent-a2ui-jupyter-output/index.d.ts +3 -0
- package/lib/loop/plugins/agent-a2ui-jupyter-output/index.js +53 -0
- package/lib/loop/plugins/agent-capacity/index.d.ts +39 -0
- package/lib/loop/plugins/agent-capacity/index.js +52 -0
- package/lib/loop/plugins/agent-checkpoints/index.d.ts +3 -0
- package/lib/loop/plugins/agent-checkpoints/index.js +26 -0
- package/lib/loop/plugins/agent-code-sandbox/index.d.ts +3 -0
- package/lib/loop/plugins/agent-code-sandbox/index.js +24 -0
- package/lib/loop/plugins/agent-code-sandboxes/index.d.ts +13 -0
- package/lib/loop/plugins/agent-code-sandboxes/index.js +85 -0
- package/lib/loop/plugins/agent-codemode/index.d.ts +5 -0
- package/lib/loop/plugins/agent-codemode/index.js +41 -0
- package/lib/loop/plugins/agent-compaction/index.d.ts +10 -0
- package/lib/loop/plugins/agent-compaction/index.js +34 -0
- package/lib/loop/plugins/agent-evals/index.d.ts +3 -0
- package/lib/loop/plugins/agent-evals/index.js +25 -0
- package/lib/loop/plugins/agent-guardrails/index.d.ts +3 -0
- package/lib/loop/plugins/agent-guardrails/index.js +25 -0
- package/lib/loop/plugins/agent-hooks/index.d.ts +3 -0
- package/lib/loop/plugins/agent-hooks/index.js +28 -0
- package/lib/loop/plugins/agent-inference/index.d.ts +7 -0
- package/lib/loop/plugins/agent-inference/index.js +29 -0
- package/lib/loop/plugins/agent-mcp/index.d.ts +3 -0
- package/lib/loop/plugins/agent-mcp/index.js +25 -0
- package/lib/loop/plugins/agent-memory/index.d.ts +3 -0
- package/lib/loop/plugins/agent-memory/index.js +25 -0
- package/lib/loop/plugins/agent-monitoring/index.d.ts +3 -0
- package/lib/loop/plugins/agent-monitoring/index.js +25 -0
- package/lib/loop/plugins/agent-notifications/index.d.ts +3 -0
- package/lib/loop/plugins/agent-notifications/index.js +25 -0
- package/lib/loop/plugins/agent-otel/index.d.ts +3 -0
- package/lib/loop/plugins/agent-otel/index.js +25 -0
- package/lib/loop/plugins/agent-outputs/index.d.ts +3 -0
- package/lib/loop/plugins/agent-outputs/index.js +25 -0
- package/lib/loop/plugins/agent-parameters/index.d.ts +3 -0
- package/lib/loop/plugins/agent-parameters/index.js +25 -0
- package/lib/loop/plugins/agent-skills/index.d.ts +3 -0
- package/lib/loop/plugins/agent-skills/index.js +25 -0
- package/lib/loop/plugins/agent-subagents/index.d.ts +3 -0
- package/lib/loop/plugins/agent-subagents/index.js +25 -0
- package/lib/loop/plugins/agent-tool-approvals/index.d.ts +11 -0
- package/lib/loop/plugins/agent-tool-approvals/index.js +38 -0
- package/lib/loop/plugins/agent-triggers/index.d.ts +3 -0
- package/lib/loop/plugins/agent-triggers/index.js +26 -0
- package/lib/loop/plugins/agents/AgentSummaryPanel.d.ts +20 -0
- package/lib/loop/plugins/agents/AgentSummaryPanel.js +50 -0
- package/lib/loop/plugins/agents/AnonymousKeyBadge.d.ts +35 -0
- package/lib/loop/plugins/agents/AnonymousKeyBadge.js +53 -0
- package/lib/loop/plugins/agents/DatalayerAgentBridge.d.ts +24 -0
- package/lib/loop/plugins/agents/DatalayerAgentBridge.js +102 -0
- package/lib/loop/plugins/agents/DatalayerAgentMount.d.ts +18 -0
- package/lib/loop/plugins/agents/DatalayerAgentMount.js +12 -0
- package/lib/loop/plugins/agents/SandboxSelector.d.ts +18 -0
- package/lib/loop/plugins/agents/SandboxSelector.js +99 -0
- package/lib/loop/plugins/agents/SandboxStatusBridge.d.ts +19 -0
- package/lib/loop/plugins/agents/SandboxStatusBridge.js +23 -0
- package/lib/loop/plugins/agents/SandboxView.d.ts +11 -0
- package/lib/loop/plugins/agents/SandboxView.js +43 -0
- package/lib/loop/plugins/agents/TeamMemberPicker.d.ts +17 -0
- package/lib/loop/plugins/agents/TeamMemberPicker.js +60 -0
- package/lib/loop/plugins/agents/agentIcons.d.ts +23 -0
- package/lib/loop/plugins/agents/agentIcons.js +88 -0
- package/lib/loop/plugins/agents/browserService.d.ts +50 -0
- package/lib/loop/plugins/agents/browserService.js +233 -0
- package/lib/loop/plugins/agents/index.d.ts +13 -0
- package/lib/loop/plugins/agents/index.js +17 -0
- package/lib/loop/plugins/agents/plugin.d.ts +91 -0
- package/lib/loop/plugins/agents/plugin.js +201 -0
- package/lib/loop/plugins/agents/service.d.ts +99 -0
- package/lib/loop/plugins/agents/service.js +167 -0
- package/lib/loop/plugins/agents/specSubagents.d.ts +18 -0
- package/lib/loop/plugins/agents/specSubagents.js +33 -0
- package/lib/loop/plugins/agents/switchable.d.ts +107 -0
- package/lib/loop/plugins/agents/switchable.js +405 -0
- package/lib/loop/plugins/agents/team.d.ts +87 -0
- package/lib/loop/plugins/agents/team.js +143 -0
- package/lib/loop/plugins/agents/useSandboxService.d.ts +11 -0
- package/lib/loop/plugins/agents/useSandboxService.js +36 -0
- package/lib/loop/plugins/agents/useTeamSelection.d.ts +10 -0
- package/lib/loop/plugins/agents/useTeamSelection.js +27 -0
- package/lib/loop/plugins/agentspecs/AgentspecPicker.d.ts +15 -0
- package/lib/loop/plugins/agentspecs/AgentspecPicker.js +90 -0
- package/lib/loop/plugins/agentspecs/index.d.ts +6 -0
- package/lib/loop/plugins/agentspecs/index.js +63 -0
- package/lib/loop/plugins/chat/ChatView.d.ts +20 -0
- package/lib/loop/plugins/chat/ChatView.js +1679 -0
- package/lib/loop/plugins/chat/chatViewTools.d.ts +41 -0
- package/lib/loop/plugins/chat/chatViewTools.js +92 -0
- package/lib/loop/plugins/chat/index.d.ts +111 -0
- package/lib/loop/plugins/chat/index.js +143 -0
- package/lib/loop/plugins/chat/turnState.d.ts +41 -0
- package/lib/loop/plugins/chat/turnState.js +90 -0
- package/lib/loop/plugins/chat-extras/index.d.ts +14 -0
- package/lib/loop/plugins/chat-extras/index.js +51 -0
- package/lib/loop/plugins/chat-header/HeaderView.d.ts +13 -0
- package/lib/loop/plugins/chat-header/HeaderView.js +6 -0
- package/lib/loop/plugins/chat-header/index.d.ts +3 -0
- package/lib/loop/plugins/chat-header/index.js +21 -0
- package/lib/loop/plugins/chat-view/index.d.ts +10 -0
- package/lib/loop/plugins/chat-view/index.js +29 -0
- package/lib/loop/plugins/checkpoints-sidebar/CheckpointsSidebar.d.ts +27 -0
- package/lib/loop/plugins/checkpoints-sidebar/CheckpointsSidebar.js +174 -0
- package/lib/loop/plugins/checkpoints-sidebar/index.d.ts +5 -0
- package/lib/loop/plugins/checkpoints-sidebar/index.js +39 -0
- package/lib/loop/plugins/commands/index.d.ts +20 -0
- package/lib/loop/plugins/commands/index.js +148 -0
- package/lib/loop/plugins/decks/DeckSurface.d.ts +10 -0
- package/lib/loop/plugins/decks/DeckSurface.js +6 -0
- package/lib/loop/plugins/decks/DecksMenu.d.ts +11 -0
- package/lib/loop/plugins/decks/DecksMenu.js +42 -0
- package/lib/loop/plugins/decks/index.d.ts +19 -0
- package/lib/loop/plugins/decks/index.js +133 -0
- package/lib/loop/plugins/decks/surface.d.ts +7 -0
- package/lib/loop/plugins/decks/surface.js +11 -0
- package/lib/loop/plugins/document/DocumentView.d.ts +12 -0
- package/lib/loop/plugins/document/DocumentView.js +68 -0
- package/lib/loop/plugins/document/index.d.ts +3 -0
- package/lib/loop/plugins/document/index.js +86 -0
- package/lib/loop/plugins/document/openingDocument.d.ts +28 -0
- package/lib/loop/plugins/document/openingDocument.js +122 -0
- package/lib/loop/plugins/document-toolbar/SandboxStatusItem.d.ts +16 -0
- package/lib/loop/plugins/document-toolbar/SandboxStatusItem.js +31 -0
- package/lib/loop/plugins/document-toolbar/index.d.ts +4 -0
- package/lib/loop/plugins/document-toolbar/index.js +35 -0
- package/lib/loop/plugins/document-toolbar/names.d.ts +6 -0
- package/lib/loop/plugins/document-toolbar/names.js +10 -0
- package/lib/loop/plugins/document-toolbar/plugin.d.ts +2 -0
- package/lib/loop/plugins/document-toolbar/plugin.js +38 -0
- package/lib/loop/plugins/document-view/index.d.ts +10 -0
- package/lib/loop/plugins/document-view/index.js +28 -0
- package/lib/loop/plugins/graph/GraphToggle.d.ts +17 -0
- package/lib/loop/plugins/graph/GraphToggle.js +22 -0
- package/lib/loop/plugins/graph/GraphView.d.ts +16 -0
- package/lib/loop/plugins/graph/GraphView.js +6 -0
- package/lib/loop/plugins/graph/index.d.ts +5 -0
- package/lib/loop/plugins/graph/index.js +80 -0
- package/lib/loop/plugins/graph/viewType.d.ts +10 -0
- package/lib/loop/plugins/graph/viewType.js +14 -0
- package/lib/loop/plugins/input-prompt/ComposerView.d.ts +15 -0
- package/lib/loop/plugins/input-prompt/ComposerView.js +25 -0
- package/lib/loop/plugins/input-prompt/index.d.ts +25 -0
- package/lib/loop/plugins/input-prompt/index.js +26 -0
- package/lib/loop/plugins/models/index.d.ts +3 -0
- package/lib/loop/plugins/models/index.js +49 -0
- package/lib/loop/plugins/notebook/NotebookView.d.ts +9 -0
- package/lib/loop/plugins/notebook/NotebookView.js +189 -0
- package/lib/loop/plugins/notebook/index.d.ts +3 -0
- package/lib/loop/plugins/notebook/index.js +91 -0
- package/lib/loop/plugins/notebook/openingNotebook.d.ts +72 -0
- package/lib/loop/plugins/notebook/openingNotebook.js +90 -0
- package/lib/loop/plugins/notebook-toolbar/index.d.ts +4 -0
- package/lib/loop/plugins/notebook-toolbar/index.js +45 -0
- package/lib/loop/plugins/notebook-toolbar/items.d.ts +10 -0
- package/lib/loop/plugins/notebook-toolbar/items.js +45 -0
- package/lib/loop/plugins/notebook-toolbar/names.d.ts +9 -0
- package/lib/loop/plugins/notebook-toolbar/names.js +13 -0
- package/lib/loop/plugins/notebook-toolbar/plugin.d.ts +2 -0
- package/lib/loop/plugins/notebook-toolbar/plugin.js +24 -0
- package/lib/loop/plugins/notebook-view/index.d.ts +10 -0
- package/lib/loop/plugins/notebook-view/index.js +30 -0
- package/lib/loop/plugins/page-layout/TurnPanel.d.ts +25 -0
- package/lib/loop/plugins/page-layout/TurnPanel.js +126 -0
- package/lib/loop/plugins/page-layout/index.d.ts +71 -0
- package/lib/loop/plugins/page-layout/index.js +160 -0
- package/lib/loop/plugins/plugins-panel/index.d.ts +14 -0
- package/lib/loop/plugins/plugins-panel/index.js +74 -0
- package/lib/loop/plugins/prompt/NewChatAction.d.ts +19 -0
- package/lib/loop/plugins/prompt/NewChatAction.js +10 -0
- package/lib/loop/plugins/prompt/index.d.ts +11 -0
- package/lib/loop/plugins/prompt/index.js +73 -0
- package/lib/loop/plugins/shell/editorChoice.d.ts +31 -0
- package/lib/loop/plugins/shell/editorChoice.js +58 -0
- package/lib/loop/plugins/shell/index.d.ts +47 -0
- package/lib/loop/plugins/shell/index.js +142 -0
- package/lib/loop/plugins/shell/useEditorPreviews.d.ts +32 -0
- package/lib/loop/plugins/shell/useEditorPreviews.js +217 -0
- package/lib/loop/plugins/subagent-activity/SubagentPulse.d.ts +16 -0
- package/lib/loop/plugins/subagent-activity/SubagentPulse.js +45 -0
- package/lib/loop/plugins/subagent-activity/index.d.ts +12 -0
- package/lib/loop/plugins/subagent-activity/index.js +42 -0
- package/lib/loop/plugins/view-switch/index.d.ts +46 -0
- package/lib/loop/plugins/view-switch/index.js +68 -0
- package/lib/loop/plugins/window-frame/WindowFrame.d.ts +48 -0
- package/lib/loop/plugins/window-frame/WindowFrame.js +63 -0
- package/lib/loop/plugins/window-frame/index.d.ts +6 -0
- package/lib/loop/plugins/window-frame/index.js +79 -0
- package/lib/loop/plugins/window-frame/slots.d.ts +26 -0
- package/lib/loop/plugins/window-frame/slots.js +30 -0
- package/lib/loop/presets.d.ts +181 -0
- package/lib/loop/presets.js +141 -0
- package/lib/loop/shell/LoopWorkspace.d.ts +109 -0
- package/lib/loop/shell/LoopWorkspace.js +231 -0
- package/lib/loop/shell/PluginToggles.d.ts +21 -0
- package/lib/loop/shell/PluginToggles.js +41 -0
- package/lib/loop/shell/ViewSwitcher.d.ts +24 -0
- package/lib/loop/shell/ViewSwitcher.js +43 -0
- package/lib/loop/shell/WorkspaceFullScreenAction.d.ts +25 -0
- package/lib/loop/shell/WorkspaceFullScreenAction.js +24 -0
- package/lib/loop/shell/index.d.ts +10 -0
- package/lib/loop/shell/index.js +14 -0
- package/lib/loop/shell/useWorkspaceFullScreen.d.ts +93 -0
- package/lib/loop/shell/useWorkspaceFullScreen.js +167 -0
- package/lib/loop-example-main.d.ts +1 -0
- package/lib/loop-example-main.js +42 -0
- package/lib/loop-main.d.ts +1 -0
- package/lib/loop-main.js +138 -0
- package/lib/mcp/McpServerManager.d.ts +1 -1
- package/lib/models/CodeSandboxSnapshotDTO.d.ts +1 -1
- package/lib/models/CodeSandboxVariant.d.ts +13 -5
- package/lib/models/CodeSandboxVariant.js +17 -5
- package/lib/models/Content.d.ts +26 -0
- package/lib/models/Deck.d.ts +14 -0
- package/lib/models/Environment.d.ts +678 -5
- package/lib/models/Environment.js +12 -1
- package/lib/models/EnvironmentDTO.d.ts +24 -6
- package/lib/models/EnvironmentDTO.js +13 -2
- package/lib/models/Exercise.d.ts +0 -2
- package/lib/models/ItemType.d.ts +1 -1
- package/lib/models/Library.d.ts +0 -2
- package/lib/models/Notebook.d.ts +0 -2
- package/lib/models/ProjectDTO.d.ts +2 -2
- package/lib/models/ProjectDTO.js +4 -4
- package/lib/models/Runtime.d.ts +17 -11
- package/lib/models/RuntimeDTO.d.ts +16 -7
- package/lib/models/RuntimeDTO.js +9 -9
- package/lib/models/Space.d.ts +10 -0
- package/lib/models/Space.js +1 -1
- package/lib/models/SpaceDTO.d.ts +1 -1
- package/lib/models/SpaceItem.d.ts +2 -2
- package/lib/models/environments.generated.d.ts +141 -0
- package/lib/models/environments.generated.js +13 -0
- package/lib/models/index.d.ts +1 -1
- package/lib/models/index.js +1 -1
- package/lib/protocols/A2AAdapter.d.ts +39 -6
- package/lib/protocols/A2AAdapter.js +180 -11
- package/lib/protocols/ACPAdapter.js +40 -37
- package/lib/protocols/AGUIAdapter.d.ts +14 -0
- package/lib/protocols/AGUIAdapter.js +34 -9
- package/lib/protocols/BrowserAgentAdapter.d.ts +125 -0
- package/lib/protocols/BrowserAgentAdapter.js +317 -0
- package/lib/protocols/VercelAIAdapter.d.ts +10 -0
- package/lib/protocols/VercelAIAdapter.js +27 -7
- package/lib/protocols/index.d.ts +1 -0
- package/lib/protocols/index.js +1 -0
- package/lib/runtimes/actions.d.ts +8 -3
- package/lib/runtimes/actions.js +46 -14
- package/lib/runtimes/apis.d.ts +13 -4
- package/lib/runtimes/browser/agent.d.ts +54 -0
- package/lib/runtimes/browser/agent.js +63 -0
- package/lib/runtimes/browser/anonymousToken.d.ts +121 -0
- package/lib/runtimes/browser/anonymousToken.js +300 -0
- package/lib/runtimes/browser/frontendTools.d.ts +61 -0
- package/lib/runtimes/browser/frontendTools.js +152 -0
- package/lib/runtimes/browser/index.d.ts +11 -0
- package/lib/runtimes/browser/index.js +20 -0
- package/lib/runtimes/browser/model.d.ts +52 -0
- package/lib/runtimes/browser/model.js +110 -0
- package/lib/runtimes/browser/protocol.d.ts +54 -0
- package/lib/runtimes/browser/protocol.js +35 -0
- package/lib/runtimes/browser/subagents.d.ts +131 -0
- package/lib/runtimes/browser/subagents.js +241 -0
- package/lib/runtimes/index.d.ts +3 -0
- package/lib/runtimes/index.js +3 -0
- package/lib/runtimes/lifecycle.d.ts +76 -0
- package/lib/runtimes/lifecycle.js +99 -0
- package/lib/runtimes/variants.d.ts +172 -0
- package/lib/runtimes/variants.js +187 -0
- package/lib/services/reconnectToRuntime.d.ts +2 -2
- package/lib/services/reconnectToRuntime.js +3 -3
- package/lib/services/sandboxServiceManagers.d.ts +2 -2
- package/lib/services/sandboxServiceManagers.js +11 -11
- package/lib/specs/agents/agents.d.ts +129 -112
- package/lib/specs/agents/agents.js +8200 -5044
- package/lib/specs/evals.js +9 -0
- package/lib/specs/frontendTools.d.ts +4 -0
- package/lib/specs/frontendTools.js +77 -3
- package/lib/specs/mcpServers.d.ts +1 -0
- package/lib/specs/mcpServers.js +38 -15
- package/lib/specs/models.d.ts +18 -0
- package/lib/specs/models.js +154 -0
- package/lib/specs/outputs.d.ts +2 -0
- package/lib/specs/outputs.js +31 -0
- package/lib/specs/personas.js +1 -1
- package/lib/specs/skills.js +7 -7
- package/lib/specs/teams/teams.d.ts +2 -0
- package/lib/specs/teams/teams.js +628 -111
- package/lib/state/index.d.ts +1 -1
- package/lib/state/index.js +1 -1
- package/lib/state/substates/RuntimesState.d.ts +5 -5
- package/lib/state/substates/RuntimesState.js +14 -14
- package/lib/state/substates/index.d.ts +1 -1
- package/lib/state/substates/index.js +1 -1
- package/lib/stores/agentRuntimeStore.d.ts +43 -1
- package/lib/stores/agentRuntimeStore.js +100 -11
- package/lib/stores/index.d.ts +1 -1
- package/lib/stores/index.js +1 -1
- package/lib/stories/Button.d.ts +1 -1
- package/lib/stories/Button.stories.d.ts +1 -1
- package/lib/stories/Header.d.ts +1 -1
- package/lib/stories/Header.stories.d.ts +1 -1
- package/lib/test-setup.js +66 -0
- package/lib/tools/adapters/agent-runtimes/lexicalHooks.d.ts +15 -0
- package/lib/tools/adapters/agent-runtimes/lexicalHooks.js +43 -2
- package/lib/tools/adapters/agent-runtimes/notebookHooks.d.ts +9 -0
- package/lib/tools/adapters/agent-runtimes/notebookHooks.js +12 -0
- package/lib/tools/adapters/commands/frontendCommandTools.d.ts +11 -0
- package/lib/tools/adapters/commands/frontendCommandTools.js +60 -0
- package/lib/tools/adapters/commands/index.d.ts +1 -0
- package/lib/tools/adapters/commands/index.js +5 -0
- package/lib/tools/adapters/copilotkit/lexicalHooks.js +7 -3
- package/lib/tools/index.d.ts +1 -0
- package/lib/tools/index.js +1 -0
- package/lib/types/a2a.d.ts +15 -1
- package/lib/types/agents-lifecycle.d.ts +11 -6
- package/lib/types/agents.d.ts +31 -6
- package/lib/types/agentspecs.d.ts +120 -4
- package/lib/types/chat.d.ts +251 -3
- package/lib/types/checkpoints.d.ts +20 -0
- package/lib/types/config.d.ts +13 -1
- package/lib/types/connection.d.ts +1 -1
- package/lib/types/evals.d.ts +2 -0
- package/lib/types/messages.d.ts +60 -0
- package/lib/types/models.d.ts +26 -0
- package/lib/types/notifications.d.ts +15 -6
- package/lib/types/outputs.d.ts +2 -0
- package/lib/types/protocol.d.ts +7 -2
- package/lib/types/stream.d.ts +48 -3
- package/lib/types/stream.js +5 -0
- package/lib/types/teams.d.ts +102 -4
- package/lib/types/tool-approvals.d.ts +1 -1
- package/lib/types/tools.d.ts +8 -2
- package/lib/utils/utils.js +7 -1
- package/package.json +376 -361
- package/scripts/codegen/compose.py +208 -0
- package/scripts/codegen/generate_agents.py +202 -31
- package/scripts/codegen/generate_evals.py +2 -0
- package/scripts/codegen/generate_frontend_tools.py +35 -6
- package/scripts/codegen/generate_mcp_servers.py +2 -2
- package/scripts/codegen/generate_models.py +40 -15
- package/scripts/codegen/generate_outputs.py +2 -0
- package/scripts/codegen/generate_sandbox_agents.py +76 -62
- package/scripts/codegen/generate_skills.py +2 -2
- package/scripts/codegen/generate_teams.py +178 -4
- package/scripts/codegen/generate_tools.py +6 -4
- package/scripts/gen_workers.py +278 -110
- package/scripts/generate-environments-types.py +404 -0
- package/lib/chat/prompt/InputFooter.d.ts +0 -58
- package/lib/chat/prompt/InputFooter.js +0 -194
- package/lib/chat/prompt/InputPromptFooter.d.ts +0 -27
- package/lib/chat/prompt/InputPromptFooter.js +0 -15
- package/lib/chat/prompt/InputPromptHeader.d.ts +0 -15
- package/lib/chat/prompt/InputPromptHeader.js +0 -15
- package/lib/chat/usage/TokenUsageBar.d.ts +0 -8
- package/lib/hooks/useRuntimes.d.ts +0 -5
- package/lib/hooks/useRuntimes.js +0 -34
- package/lib/jupyter/kernelsHandler.d.ts +0 -8
- package/lib/jupyter/kernelsHandler.js +0 -39
- package/lib/models/Dataset.d.ts +0 -16
- package/lib/utils/Cells.d.ts +0 -2
- package/lib/utils/Cells.js +0 -28
- /package/lib/models/{Dataset.js → Deck.js} +0 -0
package/lib/runtimes/actions.js
CHANGED
|
@@ -9,6 +9,7 @@ import { URLExt } from '@jupyterlab/coreutils';
|
|
|
9
9
|
import { PromiseDelegate } from '@lumino/coreutils';
|
|
10
10
|
import { Upload } from 'tus-js-client';
|
|
11
11
|
import { requestDatalayerAPI } from '@datalayer/core/lib/api';
|
|
12
|
+
import { runtimeUrl, runtimesUrl, sandboxSnapshotUrl, sandboxSnapshotsUrl, } from './lifecycle';
|
|
12
13
|
import { asCodeSandboxSnapshot } from '../models';
|
|
13
14
|
import { iamStore, runtimesStore } from '../state/substates';
|
|
14
15
|
/**
|
|
@@ -48,10 +49,22 @@ export async function createRuntime(options) {
|
|
|
48
49
|
throw new Error(`Invalid runtime creditsLimit for environment ${options.environmentName}. ` +
|
|
49
50
|
'A number of zero or more is required.');
|
|
50
51
|
}
|
|
52
|
+
/*
|
|
53
|
+
* `environment: {name, version}` — and the version is ADDITIVE.
|
|
54
|
+
*
|
|
55
|
+
* Without one this is, byte for byte, the request every runtime has been
|
|
56
|
+
* launched with since before user environments existed, and the platform
|
|
57
|
+
* resolves the promoted version itself (PLAN_ENV.md, §7.6, D-2, E1-11).
|
|
58
|
+
*/
|
|
59
|
+
const environment = {
|
|
60
|
+
name: options.environmentName,
|
|
61
|
+
};
|
|
62
|
+
if (options.environmentVersion !== undefined &&
|
|
63
|
+
options.environmentVersion !== '') {
|
|
64
|
+
environment['version'] = options.environmentVersion;
|
|
65
|
+
}
|
|
51
66
|
const body = {
|
|
52
|
-
environment
|
|
53
|
-
name: options.environmentName,
|
|
54
|
-
},
|
|
67
|
+
environment,
|
|
55
68
|
type: options.type ?? 'notebook',
|
|
56
69
|
given_name: options.givenName,
|
|
57
70
|
credits_limit: options.creditsLimit,
|
|
@@ -63,7 +76,7 @@ export async function createRuntime(options) {
|
|
|
63
76
|
body['from'] = options.snapshot;
|
|
64
77
|
}
|
|
65
78
|
const data = await requestDatalayerAPI({
|
|
66
|
-
url:
|
|
79
|
+
url: runtimesUrl(runtimesStore.getState().runtimesUrl),
|
|
67
80
|
method: 'POST',
|
|
68
81
|
body,
|
|
69
82
|
token: token,
|
|
@@ -86,7 +99,7 @@ export async function createRuntime(options) {
|
|
|
86
99
|
*/
|
|
87
100
|
export async function getRuntimes() {
|
|
88
101
|
const data = await requestDatalayerAPI({
|
|
89
|
-
url:
|
|
102
|
+
url: runtimesUrl(runtimesStore.getState().runtimesUrl),
|
|
90
103
|
token: iamStore.getState().token,
|
|
91
104
|
});
|
|
92
105
|
if (!data.success) {
|
|
@@ -96,13 +109,32 @@ export async function getRuntimes() {
|
|
|
96
109
|
}
|
|
97
110
|
return data.runtimes ?? [];
|
|
98
111
|
}
|
|
112
|
+
/**
|
|
113
|
+
* One runtime as the platform answers it now — why its pod waits included —
|
|
114
|
+
* or `null` when there is none by that uid (E2-19).
|
|
115
|
+
*/
|
|
116
|
+
export async function getRuntimeRecord(id) {
|
|
117
|
+
try {
|
|
118
|
+
const data = await requestDatalayerAPI({
|
|
119
|
+
url: runtimeUrl(runtimesStore.getState().runtimesUrl, id),
|
|
120
|
+
token: iamStore.getState().token,
|
|
121
|
+
});
|
|
122
|
+
return data.runtime ?? null;
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
if (error.response?.status === 404) {
|
|
126
|
+
return null;
|
|
127
|
+
}
|
|
128
|
+
throw error;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
99
131
|
/**
|
|
100
132
|
* Delete a Runtime
|
|
101
133
|
*/
|
|
102
134
|
export async function deleteRuntime(options) {
|
|
103
135
|
const externalToken = iamStore.getState().externalToken;
|
|
104
136
|
await requestDatalayerAPI({
|
|
105
|
-
url:
|
|
137
|
+
url: runtimeUrl(runtimesStore.getState().runtimesUrl, options.id) +
|
|
106
138
|
URLExt.objectToQueryString(options.reason ? { reason: options.reason } : {}),
|
|
107
139
|
method: 'DELETE',
|
|
108
140
|
token: iamStore.getState().token,
|
|
@@ -119,10 +151,10 @@ export async function deleteRuntime(options) {
|
|
|
119
151
|
*/
|
|
120
152
|
export async function snapshotRuntime(options) {
|
|
121
153
|
const data = await requestDatalayerAPI({
|
|
122
|
-
url:
|
|
154
|
+
url: sandboxSnapshotsUrl(runtimesStore.getState().runtimesUrl),
|
|
123
155
|
method: 'POST',
|
|
124
156
|
body: {
|
|
125
|
-
|
|
157
|
+
runtime_name: options.id,
|
|
126
158
|
name: options.name,
|
|
127
159
|
description: options.description,
|
|
128
160
|
stop: options.stop,
|
|
@@ -144,7 +176,7 @@ export async function snapshotRuntime(options) {
|
|
|
144
176
|
*/
|
|
145
177
|
export async function getSandboxSnapshots() {
|
|
146
178
|
const data = await requestDatalayerAPI({
|
|
147
|
-
url:
|
|
179
|
+
url: sandboxSnapshotsUrl(runtimesStore.getState().runtimesUrl),
|
|
148
180
|
token: iamStore.getState().token,
|
|
149
181
|
});
|
|
150
182
|
if (!data.success) {
|
|
@@ -158,7 +190,7 @@ export async function getSandboxSnapshots() {
|
|
|
158
190
|
*/
|
|
159
191
|
export async function loadSandboxSnapshot(options) {
|
|
160
192
|
const data = await requestDatalayerAPI({
|
|
161
|
-
url:
|
|
193
|
+
url: runtimeUrl(runtimesStore.getState().runtimesUrl, options.id),
|
|
162
194
|
method: 'PUT',
|
|
163
195
|
body: {
|
|
164
196
|
from: options.from,
|
|
@@ -176,7 +208,7 @@ export async function loadSandboxSnapshot(options) {
|
|
|
176
208
|
* @returns The download URL
|
|
177
209
|
*/
|
|
178
210
|
export function createSandboxSnapshotDownloadURL(id) {
|
|
179
|
-
return (
|
|
211
|
+
return (sandboxSnapshotUrl(runtimesStore.getState().runtimesUrl, id) +
|
|
180
212
|
URLExt.objectToQueryString({
|
|
181
213
|
download: '1',
|
|
182
214
|
token: iamStore.getState().token ?? '',
|
|
@@ -201,7 +233,7 @@ export function exportCodeSandboxSnapshot(id) {
|
|
|
201
233
|
*/
|
|
202
234
|
export async function deleteCodeSandboxSnapshot(id) {
|
|
203
235
|
await requestDatalayerAPI({
|
|
204
|
-
url:
|
|
236
|
+
url: sandboxSnapshotUrl(runtimesStore.getState().runtimesUrl, id),
|
|
205
237
|
method: 'DELETE',
|
|
206
238
|
token: iamStore.getState().token,
|
|
207
239
|
});
|
|
@@ -212,7 +244,7 @@ export async function deleteCodeSandboxSnapshot(id) {
|
|
|
212
244
|
export async function updateCodeSandboxSnapshot(id, metadata) {
|
|
213
245
|
if (metadata.name || metadata.description) {
|
|
214
246
|
await requestDatalayerAPI({
|
|
215
|
-
url:
|
|
247
|
+
url: sandboxSnapshotUrl(runtimesStore.getState().runtimesUrl, id),
|
|
216
248
|
method: 'PATCH',
|
|
217
249
|
body: { ...metadata },
|
|
218
250
|
token: iamStore.getState().token,
|
|
@@ -232,7 +264,7 @@ export async function uploadCodeSandboxSnapshot(options) {
|
|
|
232
264
|
// Create a new tus upload.
|
|
233
265
|
const upload = new Upload(options.file, {
|
|
234
266
|
// Endpoint is the upload creation URL from your tus server.
|
|
235
|
-
endpoint: `${runtimesStore.getState().runtimesUrl}/
|
|
267
|
+
endpoint: `${sandboxSnapshotsUrl(runtimesStore.getState().runtimesUrl)}/upload`,
|
|
236
268
|
headers: { Authorization: `Bearer ${iamStore.getState().token}` },
|
|
237
269
|
// Retry delays will enable tus-js-client to automatically retry on errors.
|
|
238
270
|
// retryDelays: [0, 3000, 5000, 10000, 20000],
|
package/lib/runtimes/apis.d.ts
CHANGED
|
@@ -20,8 +20,17 @@ export interface IDatalayerSessionContext extends ISessionContext {
|
|
|
20
20
|
export interface IRuntimeOptions {
|
|
21
21
|
/**
|
|
22
22
|
* Environment name
|
|
23
|
+
*
|
|
24
|
+
* A platform environment by its name, or an environment somebody built,
|
|
25
|
+
* named `<account-handle>/<name>` or by its uid (PLAN_ENV.md, D-2).
|
|
23
26
|
*/
|
|
24
27
|
environmentName: string;
|
|
28
|
+
/**
|
|
29
|
+
* Which version of a user environment to launch: its number, or a version
|
|
30
|
+
* uid. Absent means the version its owner promoted, which is what a platform
|
|
31
|
+
* environment always runs (E1-19).
|
|
32
|
+
*/
|
|
33
|
+
environmentVersion?: number | string;
|
|
25
34
|
/**
|
|
26
35
|
* Credits limit to be consumed by the kernel
|
|
27
36
|
*/
|
|
@@ -169,7 +178,7 @@ export interface IRemoteRuntimesManager extends IDisposable {
|
|
|
169
178
|
/**
|
|
170
179
|
* Snapshot a runtime
|
|
171
180
|
*
|
|
172
|
-
* The runtime may be given by its `id` or `
|
|
181
|
+
* The runtime may be given by its `id` or `runtimeName`.
|
|
173
182
|
* A custom description for the snapshot can be provided.
|
|
174
183
|
*
|
|
175
184
|
* @returns The snapshot description
|
|
@@ -182,7 +191,7 @@ export interface IRemoteRuntimesManager extends IDisposable {
|
|
|
182
191
|
/**
|
|
183
192
|
* The kernel pod name to snapshot
|
|
184
193
|
*/
|
|
185
|
-
|
|
194
|
+
runtimeName?: string;
|
|
186
195
|
/**
|
|
187
196
|
* The snapshot name
|
|
188
197
|
*/
|
|
@@ -199,7 +208,7 @@ export interface IRemoteRuntimesManager extends IDisposable {
|
|
|
199
208
|
/**
|
|
200
209
|
* Load a snapshot within a runtim
|
|
201
210
|
*
|
|
202
|
-
* The runtime may be given by its `id` or `
|
|
211
|
+
* The runtime may be given by its `id` or `runtimeName`.
|
|
203
212
|
*/
|
|
204
213
|
loadSandboxSnapshot(options: {
|
|
205
214
|
/**
|
|
@@ -209,7 +218,7 @@ export interface IRemoteRuntimesManager extends IDisposable {
|
|
|
209
218
|
/**
|
|
210
219
|
* The kernel pod name
|
|
211
220
|
*/
|
|
212
|
-
|
|
221
|
+
runtimeName?: string;
|
|
213
222
|
/**
|
|
214
223
|
* The snapshot UID
|
|
215
224
|
*/
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An agent loop that turns in the page.
|
|
3
|
+
*
|
|
4
|
+
* The server-side harness reads a spec and builds a pydantic-ai agent from it.
|
|
5
|
+
* This reads the same spec and builds a Vercel AI SDK agent from it — same
|
|
6
|
+
* prompt, same model name, same tools, different thing turning the loop.
|
|
7
|
+
*
|
|
8
|
+
* What a browser agent does *not* get comes from the spec too, and it is not a
|
|
9
|
+
* limitation this module has to enforce: a spec written for this harness
|
|
10
|
+
* declares no MCP servers, no sandbox and no codemode, because none of them
|
|
11
|
+
* exist without a server. All that is left is the frontend tools, and those
|
|
12
|
+
* were always the ones that ran here anyway.
|
|
13
|
+
*
|
|
14
|
+
* @module runtimes/browser/agent
|
|
15
|
+
*/
|
|
16
|
+
import { ToolLoopAgent, type LanguageModel } from 'ai';
|
|
17
|
+
import type { Agentspec } from '../../types/agentspecs';
|
|
18
|
+
import type { FrontendToolDefinition } from '../../types/tools';
|
|
19
|
+
import { type FrontendToolsToVercelAIOptions } from './frontendTools';
|
|
20
|
+
import { type BrowserModelOptions } from './model';
|
|
21
|
+
/**
|
|
22
|
+
* How many model turns one request may take.
|
|
23
|
+
*
|
|
24
|
+
* A compaction reads a notebook cell by cell and then edits it, so the loop
|
|
25
|
+
* needs room — but it is running against a person's own page with nothing
|
|
26
|
+
* between it and a bill, so it needs a ceiling too.
|
|
27
|
+
*/
|
|
28
|
+
export declare const DEFAULT_BROWSER_MAX_STEPS = 24;
|
|
29
|
+
export type CreateBrowserAgentOptions = FrontendToolsToVercelAIOptions & {
|
|
30
|
+
/** The spec to run. Its prompt, model and identity are used as written. */
|
|
31
|
+
spec: Pick<Agentspec, 'id' | 'model' | 'systemPrompt'>;
|
|
32
|
+
/**
|
|
33
|
+
* The tools the agent can call, in this page.
|
|
34
|
+
*
|
|
35
|
+
* The same array a host passes to `<Chat frontendTools={...}>` — from
|
|
36
|
+
* `useNotebookTools`, `useLexicalTools`, or hand-written.
|
|
37
|
+
*/
|
|
38
|
+
frontendTools: FrontendToolDefinition[];
|
|
39
|
+
/** Where to reach the model, unless one is supplied outright. */
|
|
40
|
+
inference?: Omit<BrowserModelOptions, 'model'>;
|
|
41
|
+
/** A ready-made model, for a host that resolves models its own way. */
|
|
42
|
+
model?: LanguageModel;
|
|
43
|
+
/** Turn ceiling for one request. @see DEFAULT_BROWSER_MAX_STEPS */
|
|
44
|
+
maxSteps?: number;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Build the agent a browser variant runs.
|
|
48
|
+
*
|
|
49
|
+
* The result is an SDK agent, so it drops straight into `DirectChatTransport`
|
|
50
|
+
* and from there into the same `useChat` the rest of the chat UI is built on
|
|
51
|
+
* — which is why nothing downstream of the transport has to know which
|
|
52
|
+
* harness produced its messages.
|
|
53
|
+
*/
|
|
54
|
+
export declare function createBrowserAgent(options: CreateBrowserAgentOptions): ToolLoopAgent;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
/*
|
|
6
|
+
* Copyright (c) 2023-2026 Datalayer, Inc.
|
|
7
|
+
*
|
|
8
|
+
* MIT License
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* An agent loop that turns in the page.
|
|
12
|
+
*
|
|
13
|
+
* The server-side harness reads a spec and builds a pydantic-ai agent from it.
|
|
14
|
+
* This reads the same spec and builds a Vercel AI SDK agent from it — same
|
|
15
|
+
* prompt, same model name, same tools, different thing turning the loop.
|
|
16
|
+
*
|
|
17
|
+
* What a browser agent does *not* get comes from the spec too, and it is not a
|
|
18
|
+
* limitation this module has to enforce: a spec written for this harness
|
|
19
|
+
* declares no MCP servers, no sandbox and no codemode, because none of them
|
|
20
|
+
* exist without a server. All that is left is the frontend tools, and those
|
|
21
|
+
* were always the ones that ran here anyway.
|
|
22
|
+
*
|
|
23
|
+
* @module runtimes/browser/agent
|
|
24
|
+
*/
|
|
25
|
+
import { ToolLoopAgent, stepCountIs } from 'ai';
|
|
26
|
+
import { frontendToolsToVercelAI, } from './frontendTools';
|
|
27
|
+
import { createBrowserModel } from './model';
|
|
28
|
+
/**
|
|
29
|
+
* How many model turns one request may take.
|
|
30
|
+
*
|
|
31
|
+
* A compaction reads a notebook cell by cell and then edits it, so the loop
|
|
32
|
+
* needs room — but it is running against a person's own page with nothing
|
|
33
|
+
* between it and a bill, so it needs a ceiling too.
|
|
34
|
+
*/
|
|
35
|
+
export const DEFAULT_BROWSER_MAX_STEPS = 24;
|
|
36
|
+
/**
|
|
37
|
+
* Build the agent a browser variant runs.
|
|
38
|
+
*
|
|
39
|
+
* The result is an SDK agent, so it drops straight into `DirectChatTransport`
|
|
40
|
+
* and from there into the same `useChat` the rest of the chat UI is built on
|
|
41
|
+
* — which is why nothing downstream of the transport has to know which
|
|
42
|
+
* harness produced its messages.
|
|
43
|
+
*/
|
|
44
|
+
export function createBrowserAgent(options) {
|
|
45
|
+
const { spec, frontendTools, inference, model, maxSteps = DEFAULT_BROWSER_MAX_STEPS, onHitlRequired, onStatusChange, } = options;
|
|
46
|
+
if (!model && !inference) {
|
|
47
|
+
throw new Error('A browser agent needs either a `model` or an `inference` endpoint to reach one.');
|
|
48
|
+
}
|
|
49
|
+
return new ToolLoopAgent({
|
|
50
|
+
id: spec.id,
|
|
51
|
+
model: model ??
|
|
52
|
+
createBrowserModel({
|
|
53
|
+
...inference,
|
|
54
|
+
model: spec.model,
|
|
55
|
+
}),
|
|
56
|
+
instructions: spec.systemPrompt,
|
|
57
|
+
tools: frontendToolsToVercelAI(frontendTools, {
|
|
58
|
+
onHitlRequired,
|
|
59
|
+
onStatusChange,
|
|
60
|
+
}),
|
|
61
|
+
stopWhen: stepCountIs(maxSteps),
|
|
62
|
+
});
|
|
63
|
+
}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/** A minted token and the moment it stops being worth sending. */
|
|
2
|
+
export type AnonymousToken = {
|
|
3
|
+
token: string;
|
|
4
|
+
/** Epoch milliseconds, from the token's own lifetime plus the local clock. */
|
|
5
|
+
expiresAt: number;
|
|
6
|
+
/** How long the service signed it for, as the token itself declares. */
|
|
7
|
+
lifetimeMs: number;
|
|
8
|
+
};
|
|
9
|
+
/** Where an anonymous visitor's access has got to. */
|
|
10
|
+
export type AnonymousSessionStatus =
|
|
11
|
+
/** Nobody has asked for a key — the usual case, because somebody is signed in. */
|
|
12
|
+
'idle'
|
|
13
|
+
/** Asked for, not yet answered. */
|
|
14
|
+
| 'minting'
|
|
15
|
+
/** Held, and still worth sending. */
|
|
16
|
+
| 'active'
|
|
17
|
+
/** Spent. The agent will be refused from here on. */
|
|
18
|
+
| 'expired'
|
|
19
|
+
/** The service would not issue one. */
|
|
20
|
+
| 'failed';
|
|
21
|
+
export type AnonymousSession = {
|
|
22
|
+
status: AnonymousSessionStatus;
|
|
23
|
+
/** The key, while it is worth sending. */
|
|
24
|
+
token?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Epoch milliseconds at which the key stops being honoured.
|
|
27
|
+
*
|
|
28
|
+
* Read out of the token — see {@link tokenLifetimeMs} — rather than assumed,
|
|
29
|
+
* so a service that signs keys for five minutes is counted for five minutes
|
|
30
|
+
* without anything here being changed.
|
|
31
|
+
*/
|
|
32
|
+
expiresAt?: number;
|
|
33
|
+
/** How long the key was signed for, so a countdown can draw a proportion. */
|
|
34
|
+
grantedMs?: number;
|
|
35
|
+
/** Why there is no key, when the service refused. */
|
|
36
|
+
error?: string;
|
|
37
|
+
};
|
|
38
|
+
type AnonymousSessionStore = AnonymousSession & {
|
|
39
|
+
/** Whether the one retry has been spent, so a refusal cannot loop. */
|
|
40
|
+
retried?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Get a key, if this visitor has not had one.
|
|
43
|
+
*
|
|
44
|
+
* Idempotent by design: every consumer may call it, and a session already
|
|
45
|
+
* under way — or already spent — is left exactly as it is. Spent in
|
|
46
|
+
* particular: minting again on the next render is how a trial that is
|
|
47
|
+
* supposed to end becomes one that never does.
|
|
48
|
+
*/
|
|
49
|
+
start: (inferenceUrl: string) => void;
|
|
50
|
+
/**
|
|
51
|
+
* Declare the key spent, now.
|
|
52
|
+
*
|
|
53
|
+
* Called by the store's own timer, and by anything that can see the clock
|
|
54
|
+
* has passed — a countdown on screen recomputes from the wall clock every
|
|
55
|
+
* tick, where a `setTimeout` in a background tab is only ever late.
|
|
56
|
+
*/
|
|
57
|
+
expire: () => void;
|
|
58
|
+
/** Give the key up. Called when a member signs in, whose token is better. */
|
|
59
|
+
clear: () => void;
|
|
60
|
+
};
|
|
61
|
+
/** The claims this module reads. Everything else in the token is the service's. */
|
|
62
|
+
type JwtClaims = {
|
|
63
|
+
/** Seconds since the epoch, issuer's clock. */
|
|
64
|
+
exp?: number;
|
|
65
|
+
iat?: number;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Read a JWT's claims without verifying it.
|
|
69
|
+
*
|
|
70
|
+
* Deliberately unverified, and safe to be: this is the page reading the
|
|
71
|
+
* expiry off a key it was just handed, so it can draw a countdown. Nothing is
|
|
72
|
+
* authorised on the strength of it — the service verifies the signature on
|
|
73
|
+
* every request, and a visitor who forged a longer `exp` would only be lying
|
|
74
|
+
* to their own clock.
|
|
75
|
+
*
|
|
76
|
+
* Returns nothing for anything that is not a three-part JWT with a JSON
|
|
77
|
+
* payload, so an opaque token degrades to the `expires_in` beside it rather
|
|
78
|
+
* than throwing in a header.
|
|
79
|
+
*/
|
|
80
|
+
export declare function readJwtClaims(token: string): JwtClaims | undefined;
|
|
81
|
+
/**
|
|
82
|
+
* How long a freshly issued token is good for, in milliseconds.
|
|
83
|
+
*
|
|
84
|
+
* `exp - iat` first: both claims come from the issuer, at the same instant, so
|
|
85
|
+
* their difference is a duration that no clock anywhere can distort. It is
|
|
86
|
+
* also the only source that is certainly the truth, because `exp` is the claim
|
|
87
|
+
* the service enforces.
|
|
88
|
+
*
|
|
89
|
+
* `expires_in` is the fallback, for a token that is not a JWT or carries no
|
|
90
|
+
* `iat`. An absolute `exp` against the local clock is deliberately *not* in
|
|
91
|
+
* this chain: on a machine whose clock is minutes out it produces a key that
|
|
92
|
+
* appears to expire before it was issued, which is worse than either.
|
|
93
|
+
*/
|
|
94
|
+
export declare function tokenLifetimeMs(token: string, expiresInSeconds?: number): number;
|
|
95
|
+
/**
|
|
96
|
+
* Mint one. Throws if the service refuses.
|
|
97
|
+
*
|
|
98
|
+
* The moment it dies is read off the token itself; see {@link tokenLifetimeMs}.
|
|
99
|
+
*/
|
|
100
|
+
export declare function fetchAnonymousToken(inferenceUrl: string, signal?: AbortSignal): Promise<AnonymousToken>;
|
|
101
|
+
export declare const useAnonymousSessionStore: import("zustand").UseBoundStore<import("zustand").StoreApi<AnonymousSessionStore>>;
|
|
102
|
+
/** Read the shared session without touching it. For anything that only draws it. */
|
|
103
|
+
export declare function useAnonymousSession(): AnonymousSession;
|
|
104
|
+
/**
|
|
105
|
+
* Hold an anonymous key for as long as one is wanted.
|
|
106
|
+
*
|
|
107
|
+
* The driving half: exactly one component in a tree should call this — the
|
|
108
|
+
* chat that would send the token — and everything else that needs to know
|
|
109
|
+
* reads {@link useAnonymousSession}.
|
|
110
|
+
*
|
|
111
|
+
* @param inferenceUrl Where the service is.
|
|
112
|
+
* @param enabled False when there is a signed-in member, whose own token is
|
|
113
|
+
* better in every way — it names them, it is metered to them, and it does
|
|
114
|
+
* not expire. Also false where no in-page agent will ask for inference at
|
|
115
|
+
* all, so a workspace on a server-backed agent does not burn a trial nobody
|
|
116
|
+
* is using.
|
|
117
|
+
*/
|
|
118
|
+
export declare function useAnonymousInferenceSession(inferenceUrl: string, enabled: boolean): AnonymousSession;
|
|
119
|
+
/** How much of the key's life is left, in milliseconds. Never negative. */
|
|
120
|
+
export declare function anonymousTimeLeft(session: Pick<AnonymousSession, 'expiresAt'>, now?: number): number;
|
|
121
|
+
export default useAnonymousInferenceSession;
|