@datalayer/agent-runtimes 1.0.9 → 1.0.17
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/README.md +82 -1
- package/lib/{AgentLexical.d.ts → AgentDocument.d.ts} +5 -5
- package/lib/{AgentLexical.js → AgentDocument.js} +156 -26
- package/lib/AgentNode.js +32 -31
- package/lib/AgentNotebook.js +172 -17
- package/lib/AppExamples2.css +47 -0
- package/lib/AppExamples2.d.ts +3 -0
- package/lib/AppExamples2.js +21 -0
- package/lib/{agent-lexical-main.js → agent-document-main.js} +2 -2
- package/lib/agents/AgentRuntimeChat.d.ts +73 -0
- package/lib/agents/AgentRuntimeChat.js +198 -0
- package/lib/api/index.d.ts +12 -0
- package/lib/api/index.js +46 -0
- package/lib/api/runtimes/checkpoints.d.ts +122 -0
- package/lib/api/runtimes/checkpoints.js +118 -0
- package/lib/api/runtimes/environments.d.ts +9 -0
- package/lib/api/runtimes/environments.js +29 -0
- package/lib/api/runtimes/healthz.d.ts +15 -0
- package/lib/api/runtimes/healthz.js +44 -0
- package/lib/api/runtimes/index.d.ts +12 -0
- package/lib/api/runtimes/index.js +16 -0
- package/lib/api/runtimes/runtimes.d.ts +138 -0
- package/lib/api/runtimes/runtimes.js +230 -0
- package/lib/api/runtimes/snapshots.d.ts +38 -0
- package/lib/api/runtimes/snapshots.js +82 -0
- package/lib/api/scheduler/index.d.ts +6 -0
- package/lib/api/scheduler/index.js +10 -0
- package/lib/api/scheduler/schedules.d.ts +85 -0
- package/lib/api/scheduler/schedules.js +78 -0
- package/lib/api/spacer/documents.d.ts +12 -0
- package/lib/api/spacer/documents.js +43 -0
- package/lib/api/spacer/healthz.d.ts +15 -0
- package/lib/api/spacer/healthz.js +44 -0
- package/lib/api/spacer/index.d.ts +15 -0
- package/lib/api/spacer/index.js +19 -0
- package/lib/api/spacer/items.d.ts +25 -0
- package/lib/api/spacer/items.js +55 -0
- package/lib/api/spacer/lexicals.d.ts +34 -0
- package/lib/api/spacer/lexicals.js +89 -0
- package/lib/api/spacer/notebooks.d.ts +34 -0
- package/lib/api/spacer/notebooks.js +89 -0
- package/lib/api/spacer/spaces.d.ts +84 -0
- package/lib/api/spacer/spaces.js +170 -0
- package/lib/api/spacer/users.d.ts +9 -0
- package/lib/api/spacer/users.js +29 -0
- package/lib/chat/Chat.d.ts +1 -1
- package/lib/chat/Chat.js +54 -54
- package/lib/chat/ChatFloating.d.ts +2 -2
- package/lib/chat/ChatFloating.js +136 -25
- package/lib/chat/ChatSidebar.js +20 -22
- package/lib/chat/base/ChatBase.js +468 -40
- package/lib/chat/display/EmptyState.js +21 -21
- package/lib/chat/document/EphemeralDocument.d.ts +23 -0
- package/lib/chat/document/EphemeralDocument.js +270 -0
- package/lib/chat/header/ChatHeaderBase.d.ts +12 -2
- package/lib/chat/header/ChatHeaderBase.js +78 -23
- package/lib/chat/index.d.ts +1 -0
- package/lib/chat/index.js +2 -0
- package/lib/chat/notebook/EphemeralNotebook.d.ts +24 -0
- package/lib/chat/notebook/EphemeralNotebook.js +252 -0
- package/lib/chat/prompt/InputFooter.js +4 -1
- package/lib/client/AgentRuntimesClient.d.ts +127 -0
- package/lib/client/AgentRuntimesClient.js +36 -0
- package/lib/client/AgentsMixin.d.ts +4 -4
- package/lib/client/AgentsMixin.js +35 -35
- package/lib/client/SdkAgentRuntimesClient.d.ts +1 -1
- package/lib/client/SdkAgentRuntimesClient.js +1 -1
- package/lib/client/mixins/RuntimesMixin.d.ts +93 -0
- package/lib/client/mixins/RuntimesMixin.js +229 -0
- package/lib/client/mixins/SpacerMixin.d.ts +210 -0
- package/lib/client/mixins/SpacerMixin.js +615 -0
- package/lib/client/utils/spacerUtils.d.ts +18 -0
- package/lib/client/utils/spacerUtils.js +32 -0
- package/lib/collaboration/DatalayerCollaboration.d.ts +13 -0
- package/lib/collaboration/DatalayerCollaboration.js +28 -0
- package/lib/collaboration/DatalayerCollaborationProvider.d.ts +58 -0
- package/lib/collaboration/DatalayerCollaborationProvider.js +148 -0
- package/lib/collaboration/index.d.ts +2 -0
- package/lib/collaboration/index.js +6 -0
- package/lib/components/AgentSummary.d.ts +19 -0
- package/lib/components/AgentSummary.js +89 -0
- package/lib/components/ToolApprovalCard.js +13 -3
- package/lib/components/a2ui/A2uiSurfaceComposed.d.ts +13 -0
- package/lib/components/a2ui/A2uiSurfaceComposed.js +110 -0
- package/lib/components/a2ui/index.d.ts +2 -0
- package/lib/components/a2ui/index.js +6 -0
- package/lib/components/a2ui/styles.d.ts +14 -0
- package/lib/components/a2ui/styles.js +142 -0
- package/lib/components/context/SpaceSelect.d.ts +2 -0
- package/lib/components/context/SpaceSelect.js +42 -0
- package/lib/components/flashes/FlashDisclaimer.d.ts +2 -0
- package/lib/components/flashes/FlashDisclaimer.js +17 -0
- package/lib/components/icons/ArtifactIcon.d.ts +10 -0
- package/lib/components/icons/ArtifactIcon.js +58 -0
- package/lib/components/icons/index.d.ts +1 -0
- package/lib/components/icons/index.js +5 -0
- package/lib/components/index.d.ts +5 -0
- package/lib/components/index.js +5 -0
- package/lib/components/nbgrader/NbGradesDetails.d.ts +5 -0
- package/lib/components/nbgrader/NbGradesDetails.js +19 -0
- package/lib/components/nbgrader/index.d.ts +1 -0
- package/lib/components/nbgrader/index.js +5 -0
- package/lib/components/progress/CreditsIndicator.d.ts +33 -0
- package/lib/components/progress/CreditsIndicator.js +23 -0
- package/lib/components/progress/index.d.ts +2 -0
- package/lib/components/progress/index.js +6 -0
- package/lib/components/runtimes/RuntimeCellVariables.d.ts +39 -0
- package/lib/components/runtimes/RuntimeCellVariables.js +172 -0
- package/lib/components/runtimes/RuntimeCellVariablesDialog.d.ts +37 -0
- package/lib/components/runtimes/RuntimeCellVariablesDialog.js +101 -0
- package/lib/components/runtimes/RuntimeLauncherDialog.d.ts +57 -0
- package/lib/components/runtimes/RuntimeLauncherDialog.js +275 -0
- package/lib/components/runtimes/RuntimePickerBase.d.ts +69 -0
- package/lib/components/runtimes/RuntimePickerBase.js +122 -0
- package/lib/components/runtimes/RuntimePickerCell.d.ts +34 -0
- package/lib/components/runtimes/RuntimePickerCell.js +104 -0
- package/lib/components/runtimes/RuntimePickerNotebook.d.ts +42 -0
- package/lib/components/runtimes/RuntimePickerNotebook.js +232 -0
- package/lib/components/runtimes/RuntimeReservationControl.d.ts +47 -0
- package/lib/components/runtimes/RuntimeReservationControl.js +42 -0
- package/lib/components/runtimes/RuntimeSimplePicker.d.ts +38 -0
- package/lib/components/runtimes/RuntimeSimplePicker.js +155 -0
- package/lib/components/runtimes/RuntimeTransfer.d.ts +16 -0
- package/lib/components/runtimes/RuntimeTransfer.js +5 -0
- package/lib/components/runtimes/RuntimeUtils.d.ts +17 -0
- package/lib/components/runtimes/RuntimeUtils.js +178 -0
- package/lib/components/runtimes/RuntimeVariables.d.ts +38 -0
- package/lib/components/runtimes/RuntimeVariables.js +75 -0
- package/lib/components/runtimes/index.d.ts +11 -0
- package/lib/components/runtimes/index.js +15 -0
- package/lib/components/scheduler/ScheduleMenu.d.ts +54 -0
- package/lib/components/scheduler/ScheduleMenu.js +154 -0
- package/lib/components/scheduler/index.d.ts +1 -0
- package/lib/components/scheduler/index.js +5 -0
- package/lib/components/snapshots/SandboxSnapshotMenu.d.ts +33 -0
- package/lib/components/snapshots/SandboxSnapshotMenu.js +169 -0
- package/lib/components/snapshots/index.d.ts +1 -0
- package/lib/components/snapshots/index.js +5 -0
- package/lib/components/snippets/SnippetDialog.d.ts +42 -0
- package/lib/components/snippets/SnippetDialog.js +42 -0
- package/lib/components/students/StudentItemStatus.d.ts +7 -0
- package/lib/components/students/StudentItemStatus.js +68 -0
- package/lib/components/students/index.d.ts +1 -0
- package/lib/components/students/index.js +5 -0
- package/lib/components/tokens/SpaceVariantToken.d.ts +5 -0
- package/lib/components/tokens/SpaceVariantToken.js +23 -0
- package/lib/components/tokens/index.d.ts +1 -0
- package/lib/components/tokens/index.js +5 -0
- package/lib/components/toolbars/AssignmentEditorToolbar.d.ts +4 -0
- package/lib/components/toolbars/AssignmentEditorToolbar.js +18 -0
- package/lib/components/toolbars/DocumentEditorToolbar.d.ts +2 -0
- package/lib/components/toolbars/DocumentEditorToolbar.js +12 -0
- package/lib/components/toolbars/NotebookEditorToolbar.d.ts +29 -0
- package/lib/components/toolbars/NotebookEditorToolbar.js +30 -0
- package/lib/config/AgentConfiguration.d.ts +2 -2
- package/lib/config/index.d.ts +1 -1
- package/lib/context/ContextInspector.d.ts +1 -14
- package/lib/context/ContextInspector.js +3 -73
- package/lib/context/CostUsageChart.d.ts +4 -3
- package/lib/context/CostUsageChart.js +236 -35
- package/lib/context/MessageHistory.d.ts +30 -0
- package/lib/context/MessageHistory.js +129 -0
- package/lib/context/TokenUsageChart.d.ts +4 -3
- package/lib/context/TokenUsageChart.js +180 -30
- package/lib/context/TurnGraphChart.d.ts +1 -1
- package/lib/context/TurnGraphChart.js +6 -6
- package/lib/examples/A2UiAgentExample.d.ts +22 -0
- package/lib/examples/A2UiAgentExample.js +442 -0
- package/lib/examples/A2UiComponentsGalleryExample.d.ts +3 -0
- package/lib/examples/A2UiComponentsGalleryExample.js +863 -0
- package/lib/examples/A2UiContactCardExample.js +9 -5
- package/lib/examples/A2UiRestaurantExample.js +23 -8
- package/lib/examples/A2UiViewerExample.js +75 -3
- package/lib/examples/AgUiAgenticExample.d.ts +1 -12
- package/lib/examples/AgUiAgenticExample.js +52 -8
- package/lib/examples/AgUiBackendToolRenderingExample.d.ts +1 -16
- package/lib/examples/AgUiBackendToolRenderingExample.js +32 -17
- package/lib/examples/AgUiHaikuGenUiExample.d.ts +1 -17
- package/lib/examples/AgUiHaikuGenUiExample.js +49 -33
- package/lib/examples/AgUiHumanInTheLoopExample.d.ts +1 -12
- package/lib/examples/AgUiHumanInTheLoopExample.js +21 -6
- package/lib/examples/AgUiSharedStateExample.d.ts +1 -14
- package/lib/examples/AgUiSharedStateExample.js +21 -6
- package/lib/examples/AgUiToolsBasedGenUiExample.d.ts +1 -14
- package/lib/examples/AgUiToolsBasedGenUiExample.js +21 -6
- package/lib/examples/AgentCheckpointsExample.d.ts +1 -1
- package/lib/examples/AgentCheckpointsExample.js +21 -22
- package/lib/examples/AgentCodemodeExample.js +3 -3
- package/lib/examples/AgentEvalsExample.js +8 -8
- package/lib/examples/AgentGuardrailsExample.js +22 -17
- package/lib/examples/AgentHooksExample.js +16 -57
- package/lib/examples/AgentInferenceProviderExample.js +8 -8
- package/lib/examples/AgentLoopExample.d.ts +10 -0
- package/lib/examples/AgentLoopExample.js +304 -0
- package/lib/examples/AgentMCPExample.js +9 -9
- package/lib/examples/AgentMemoryExample.js +6 -6
- package/lib/examples/AgentMonitoringExample.js +116 -46
- package/lib/examples/AgentNotificationsExample.js +6 -6
- package/lib/examples/AgentOtelExample.d.ts +3 -3
- package/lib/examples/AgentOtelExample.js +20 -15
- package/lib/examples/AgentOutputsExample.js +8 -8
- package/lib/examples/AgentParametersExample.js +24 -36
- package/lib/examples/AgentSandboxExample.js +7 -7
- package/lib/examples/AgentSkillsExample.js +9 -9
- package/lib/examples/AgentSubagentsExample.js +6 -6
- package/lib/examples/AgentToolApprovalsExample.js +37 -11
- package/lib/examples/AgentTriggersExample.js +12 -12
- package/lib/examples/AgentspecsExample.js +63 -41
- package/lib/examples/ChatCustomExample.js +23 -77
- package/lib/examples/ChatExample.js +15 -46
- package/lib/examples/LexicalAgentExample.js +43 -91
- package/lib/examples/LexicalAgentSidebarExample.js +45 -73
- package/lib/examples/NotebookAgentExample.js +52 -81
- package/lib/examples/NotebookAgentSidebarExample.js +43 -71
- package/lib/examples/NotebookCollaborationExample.js +11 -9
- package/lib/examples/NotebookExample.js +5 -2
- package/lib/examples/components/AuthRequiredView.js +1 -1
- package/lib/examples/components/ExampleErrorBoundary.d.ts +46 -0
- package/lib/examples/components/ExampleErrorBoundary.js +67 -0
- package/lib/examples/components/haiku/haiku-card.css +11 -0
- package/lib/examples/components/weather/weather-card.css +11 -0
- package/lib/examples/example-selector.js +3 -1
- package/lib/examples/hooks/useExampleAgentRuntime.d.ts +35 -0
- package/lib/examples/hooks/useExampleAgentRuntime.js +82 -0
- package/lib/examples/hooks/useSpecRenderToolResult.d.ts +30 -0
- package/lib/examples/hooks/useSpecRenderToolResult.js +61 -0
- package/lib/examples/index.d.ts +3 -1
- package/lib/examples/index.js +3 -1
- package/lib/examples/main.js +340 -93
- package/lib/examples/utils/a2ui.d.ts +2 -0
- package/lib/examples/utils/a2ui.js +97 -2
- package/lib/examples/utils/agentSummaryStore.d.ts +21 -0
- package/lib/examples/utils/agentSummaryStore.js +23 -0
- package/lib/examples/utils/notebooks/Empty.ipynb.json +30 -30
- package/lib/examples/utils/runtimeTargetStore.d.ts +9 -0
- package/lib/examples/utils/runtimeTargetStore.js +27 -0
- package/lib/examples/utils/teardownAgents.d.ts +13 -0
- package/lib/examples/utils/teardownAgents.js +78 -0
- package/lib/examples/utils/useExampleAgentRuntimesUrl.d.ts +2 -0
- package/lib/examples/utils/useExampleAgentRuntimesUrl.js +26 -7
- package/lib/examples2/CellExample.d.ts +6 -0
- package/lib/examples2/CellExample.js +20 -0
- package/lib/examples2/DatalayerNotebookExample.d.ts +16 -0
- package/lib/examples2/DatalayerNotebookExample.js +109 -0
- package/lib/examples2/NativeNavigationExample.d.ts +8 -0
- package/lib/examples2/NativeNavigationExample.js +97 -0
- package/lib/examples2/NotebookExample.d.ts +6 -0
- package/lib/examples2/NotebookExample.js +19 -0
- package/lib/examples2/NotebookMutationsKernel.d.ts +2 -0
- package/lib/examples2/NotebookMutationsKernel.js +105 -0
- package/lib/examples2/NotebookMutationsServiceManager.d.ts +2 -0
- package/lib/examples2/NotebookMutationsServiceManager.js +109 -0
- package/lib/examples2/ReactRouterExample.d.ts +6 -0
- package/lib/examples2/ReactRouterExample.js +175 -0
- package/lib/examples2/example-selector.d.ts +22 -0
- package/lib/examples2/example-selector.js +45 -0
- package/lib/examples2/index.d.ts +2 -0
- package/lib/examples2/index.js +6 -0
- package/lib/examples2/lexical-theme.css +436 -0
- package/lib/examples2/main.d.ts +2 -0
- package/lib/examples2/main.js +330 -0
- package/lib/examples2/notebooks/IPyWidgetsExample.ipynb.json +101 -0
- package/lib/examples2/notebooks/IPyWidgetsExampleWithState.ipynb.json +112 -0
- package/lib/examples2/notebooks/Lite.ipynb.json +128 -0
- package/lib/examples2/notebooks/Matplotlib.ipynb.json +137 -0
- package/lib/examples2/notebooks/NotebookExample1.ipynb.json +126 -0
- package/lib/examples2/notebooks/NotebookExample2.ipynb.json +48 -0
- package/lib/examples2/notebooks/NotebookOutputs.ipynb.json +49 -0
- package/lib/examples2/notebooks/NotebookToCExample.ipynb.json +102 -0
- package/lib/examples2/notebooks/OutputIPyWidgetsExample.d.ts +145 -0
- package/lib/examples2/notebooks/OutputIPyWidgetsExample.js +153 -0
- package/lib/examples2/notebooks/PyGWalker.ipynb.json +55 -0
- package/lib/hooks/index.d.ts +9 -1
- package/lib/hooks/index.js +13 -1
- package/lib/hooks/useAIAgentsWebSocket.d.ts +1 -1
- package/lib/hooks/useAIAgentsWebSocket.js +39 -3
- package/lib/hooks/useAgentRuntimes.d.ts +15 -3
- package/lib/hooks/useAgentRuntimes.js +188 -29
- package/lib/hooks/useAgentsCatalog.d.ts +3 -3
- package/lib/hooks/useAgentsCatalog.js +4 -4
- package/lib/hooks/useAgentsService.js +5 -5
- package/lib/hooks/useCellOutputshot.d.ts +4 -0
- package/lib/hooks/useCellOutputshot.js +25 -0
- package/lib/hooks/useCheckpoints.d.ts +8 -8
- package/lib/hooks/useCheckpoints.js +38 -28
- package/lib/hooks/useConfig.d.ts +1 -1
- package/lib/hooks/useMonitoring.d.ts +7 -5
- package/lib/hooks/useMonitoring.js +16 -10
- package/lib/hooks/useNotifications.d.ts +11 -11
- package/lib/hooks/useNotifications.js +1 -1
- package/lib/hooks/useProgressStore.d.ts +25 -0
- package/lib/hooks/useProgressStore.js +58 -0
- package/lib/hooks/useProgressTask.d.ts +9 -0
- package/lib/hooks/useProgressTask.js +41 -0
- package/lib/hooks/useProjects.d.ts +628 -0
- package/lib/hooks/useProjects.js +190 -0
- package/lib/hooks/useRuntimes.d.ts +5 -0
- package/lib/hooks/useRuntimes.js +34 -0
- package/lib/hooks/useToolApprovals.d.ts +14 -6
- package/lib/hooks/useToolApprovals.js +20 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.js +1 -0
- package/lib/jupyter/exec/Python.d.ts +5 -0
- package/lib/jupyter/exec/Python.js +100 -0
- package/lib/jupyter/exec/Snippets.d.ts +105 -0
- package/lib/jupyter/exec/Snippets.js +101 -0
- package/lib/jupyter/exec/index.d.ts +2 -0
- package/lib/jupyter/exec/index.js +6 -0
- package/lib/jupyter/index.d.ts +2 -0
- package/lib/jupyter/index.js +6 -0
- package/lib/jupyter/kernelsHandler.d.ts +8 -0
- package/lib/jupyter/kernelsHandler.js +39 -0
- package/lib/mocks/models/CourseMock.d.ts +6 -0
- package/lib/mocks/models/CourseMock.js +29 -0
- package/lib/mocks/models/SpaceMock.d.ts +6 -0
- package/lib/mocks/models/SpaceMock.js +25 -0
- package/lib/models/Assignment.d.ts +7 -0
- package/lib/models/Assignment.js +5 -0
- package/lib/models/Cell.d.ts +8 -0
- package/lib/models/Cell.js +5 -0
- package/lib/models/CodeBlock.d.ts +10 -0
- package/lib/models/CodeBlock.js +5 -0
- package/lib/models/CodeSandboxSnapshot.d.ts +92 -0
- package/lib/models/CodeSandboxSnapshot.js +13 -0
- package/lib/models/CodeSandboxSnapshotDTO.d.ts +173 -0
- package/lib/models/CodeSandboxSnapshotDTO.js +139 -0
- package/lib/models/CodefeedBlocks.d.ts +7 -0
- package/lib/models/CodefeedBlocks.js +5 -0
- package/lib/models/Content.d.ts +5 -0
- package/lib/models/Content.js +5 -0
- package/lib/models/Course.d.ts +17 -0
- package/lib/models/Course.js +5 -0
- package/lib/models/Dataset.d.ts +16 -0
- package/lib/models/Dataset.js +5 -0
- package/lib/models/Document.d.ts +8 -0
- package/lib/models/Document.js +5 -0
- package/lib/models/Environment.d.ts +86 -0
- package/lib/models/Environment.js +5 -0
- package/lib/models/EnvironmentDTO.d.ts +125 -0
- package/lib/models/EnvironmentDTO.js +88 -0
- package/lib/models/Exercise.d.ts +16 -0
- package/lib/models/Exercise.js +5 -0
- package/lib/models/Item.d.ts +20 -0
- package/lib/models/Item.js +5 -0
- package/lib/models/ItemDTO.d.ts +74 -0
- package/lib/models/ItemDTO.js +186 -0
- package/lib/models/ItemType.d.ts +2 -0
- package/lib/models/ItemType.js +5 -0
- package/lib/models/Lesson.d.ts +5 -0
- package/lib/models/Lesson.js +5 -0
- package/lib/models/LexicalDTO.d.ts +155 -0
- package/lib/models/LexicalDTO.js +157 -0
- package/lib/models/Library.d.ts +10 -0
- package/lib/models/Library.js +5 -0
- package/lib/models/Notebook.d.ts +11 -0
- package/lib/models/Notebook.js +5 -0
- package/lib/models/NotebookDTO.d.ts +96 -0
- package/lib/models/NotebookDTO.js +153 -0
- package/lib/models/Page.d.ts +41 -0
- package/lib/models/Page.js +25 -0
- package/lib/models/PageTag.d.ts +19 -0
- package/lib/models/PageTag.js +94 -0
- package/lib/models/ProjectDTO.d.ts +89 -0
- package/lib/models/ProjectDTO.js +131 -0
- package/lib/models/Runtime.d.ts +160 -0
- package/lib/models/Runtime.js +18 -0
- package/lib/models/RuntimeDTO.d.ts +172 -0
- package/lib/models/RuntimeDTO.js +204 -0
- package/lib/models/Space.d.ts +35 -0
- package/lib/models/Space.js +66 -0
- package/lib/models/SpaceDTO.d.ts +334 -0
- package/lib/models/SpaceDTO.js +244 -0
- package/lib/models/SpaceItem.d.ts +10 -0
- package/lib/models/SpaceItem.js +5 -0
- package/lib/models/SpaceMember.d.ts +6 -0
- package/lib/models/SpaceMember.js +5 -0
- package/lib/models/StudentItem.d.ts +21 -0
- package/lib/models/StudentItem.js +5 -0
- package/lib/models/index.d.ts +32 -0
- package/lib/models/index.js +39 -0
- package/lib/protocols/AGUIAdapter.js +1 -1
- package/lib/runtimes/actions.d.ts +102 -0
- package/lib/runtimes/actions.js +249 -0
- package/lib/runtimes/apis.d.ts +273 -0
- package/lib/runtimes/apis.js +5 -0
- package/lib/runtimes/index.d.ts +5 -0
- package/lib/runtimes/index.js +9 -0
- package/lib/runtimes/settings.d.ts +15 -0
- package/lib/runtimes/settings.js +31 -0
- package/lib/runtimes/snapshots.d.ts +25 -0
- package/lib/runtimes/snapshots.js +150 -0
- package/lib/runtimes/utils.d.ts +7 -0
- package/lib/runtimes/utils.js +14 -0
- package/lib/services/DatalayerServiceManager.d.ts +23 -0
- package/lib/services/DatalayerServiceManager.js +90 -0
- package/lib/services/reconnectToRuntime.d.ts +32 -0
- package/lib/services/reconnectToRuntime.js +59 -0
- package/lib/services/sandboxServiceManagers.d.ts +31 -0
- package/lib/services/sandboxServiceManagers.js +57 -0
- package/lib/specs/agents/agents.d.ts +95 -50
- package/lib/specs/agents/agents.js +4037 -1669
- package/lib/specs/agents/index.d.ts +5 -5
- package/lib/specs/agents/index.js +9 -9
- package/lib/specs/index.d.ts +1 -0
- package/lib/specs/index.js +1 -0
- package/lib/specs/loops.d.ts +34 -0
- package/lib/specs/loops.js +188 -0
- package/lib/specs/mcpServers.d.ts +1 -0
- package/lib/specs/mcpServers.js +17 -0
- package/lib/specs/models.d.ts +4 -0
- package/lib/specs/models.js +30 -0
- package/lib/specs/skills.d.ts +1 -0
- package/lib/specs/skills.js +18 -0
- package/lib/specs/tools.d.ts +15 -0
- package/lib/specs/tools.js +285 -0
- package/lib/state/index.d.ts +4 -0
- package/lib/state/index.js +10 -0
- package/lib/state/substates/CellState.d.ts +12 -0
- package/lib/state/substates/CellState.js +22 -0
- package/lib/state/substates/DocumentState.d.ts +10 -0
- package/lib/state/substates/DocumentState.js +14 -0
- package/lib/state/substates/GradeState.d.ts +10 -0
- package/lib/state/substates/GradeState.js +14 -0
- package/lib/state/substates/JupyterLabState.d.ts +16 -0
- package/lib/state/substates/JupyterLabState.js +17 -0
- package/lib/state/substates/NbformatState.d.ts +13 -0
- package/lib/state/substates/NbformatState.js +16 -0
- package/lib/state/substates/RuntimesState.d.ts +87 -0
- package/lib/state/substates/RuntimesState.js +192 -0
- package/lib/state/substates/SpaceState.d.ts +11 -0
- package/lib/state/substates/SpaceState.js +16 -0
- package/lib/state/substates/index.d.ts +8 -0
- package/lib/state/substates/index.js +14 -0
- package/lib/stores/agentRuntimeStore.d.ts +25 -2
- package/lib/stores/agentRuntimeStore.js +114 -19
- package/lib/stories/Button.stories.d.ts +1 -1
- package/lib/stories/Header.stories.d.ts +3 -3
- package/lib/test-setup.js +10 -0
- package/lib/types/agents-lifecycle.d.ts +5 -5
- package/lib/types/agents.d.ts +6 -6
- package/lib/types/agentspecs.d.ts +8 -4
- package/lib/types/chat.d.ts +135 -3
- package/lib/types/config.d.ts +19 -1
- package/lib/types/index.d.ts +1 -0
- package/lib/types/index.js +1 -0
- package/lib/types/loops.d.ts +64 -0
- package/lib/types/loops.js +5 -0
- package/lib/types/teams.d.ts +2 -2
- package/lib/types/tools.d.ts +16 -0
- package/lib/utils/Cells.d.ts +2 -0
- package/lib/utils/Cells.js +28 -0
- package/package.json +24 -18
- package/scripts/codegen/generate_agents.py +96 -61
- package/scripts/codegen/generate_loops.py +443 -0
- package/scripts/codegen/generate_teams.py +4 -4
- package/lib/examples/A2UiComponentGalleryExample.d.ts +0 -3
- package/lib/examples/A2UiComponentGalleryExample.js +0 -361
- package/scripts/codegen/__pycache__/generate_agents.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_benchmarks.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_evals.cpython-313.pyc +0 -0
- package/scripts/codegen/__pycache__/generate_events.cpython-313.pyc +0 -0
- /package/lib/{agent-lexical-main.d.ts → agent-document-main.d.ts} +0 -0
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
4
|
+
* Distributed under the terms of the Modified BSD License.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* EphemeralNotebook — an in-memory Jupyter notebook rendered next to the chat.
|
|
8
|
+
*
|
|
9
|
+
* The notebook model lives purely in memory (the `nbformat` content below is
|
|
10
|
+
* never persisted to a file) and is backed by a sandbox kernel obtained via
|
|
11
|
+
* `useJupyter`. This mirrors the pattern used by the notebook editor and the
|
|
12
|
+
* `NotebookNbformat` example, so the agent can drive the notebook through the
|
|
13
|
+
* registered notebook frontend tools while nothing is written to disk.
|
|
14
|
+
*
|
|
15
|
+
* The container structure (relative wrapper + absolutely positioned inner box
|
|
16
|
+
* + `#dla-Jupyter-Notebook` overrides) is copied from the notebook editor
|
|
17
|
+
* (`NotebookEditorPanel`) so the cells get a resolved height and actually
|
|
18
|
+
* render — a plain `height: 100%` collapses to zero inside a flex parent.
|
|
19
|
+
*
|
|
20
|
+
* @module chat/notebook/EphemeralNotebook
|
|
21
|
+
*/
|
|
22
|
+
import { useEffect, useMemo, useRef, useState } from 'react';
|
|
23
|
+
import { ServerConnection, ServiceManager } from '@jupyterlab/services';
|
|
24
|
+
import { Box, DatalayerThemeProvider, getThemeConfig, useSystemColorMode, useThemeStore, } from '@datalayer/primer-addons';
|
|
25
|
+
import { Notebook, NotebookToolbar, CellSidebarExtension, CellSidebarButton, JupyterReactTheme, notebookStore, disposeServiceManager, } from '@datalayer/jupyter-react';
|
|
26
|
+
import { useAgentsRuntimes } from '../../hooks/useAgentRuntimes';
|
|
27
|
+
import { registerSandboxServiceManager } from '../../services/sandboxServiceManagers';
|
|
28
|
+
import { useProgressTask } from '../../hooks/useProgressTask';
|
|
29
|
+
/**
|
|
30
|
+
* Minimal in-memory notebook content. A single empty code cell is provided so
|
|
31
|
+
* the notebook renders immediately and the agent can insert/update cells.
|
|
32
|
+
*/
|
|
33
|
+
const EPHEMERAL_NOTEBOOK_CONTENT = {
|
|
34
|
+
cells: [
|
|
35
|
+
{
|
|
36
|
+
cell_type: 'code',
|
|
37
|
+
source: [''],
|
|
38
|
+
metadata: {},
|
|
39
|
+
outputs: [],
|
|
40
|
+
execution_count: null,
|
|
41
|
+
},
|
|
42
|
+
],
|
|
43
|
+
metadata: {
|
|
44
|
+
kernelspec: {
|
|
45
|
+
display_name: 'Python 3',
|
|
46
|
+
language: 'python',
|
|
47
|
+
name: 'python3',
|
|
48
|
+
},
|
|
49
|
+
language_info: { name: 'python' },
|
|
50
|
+
},
|
|
51
|
+
nbformat: 4,
|
|
52
|
+
nbformat_minor: 5,
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Renders an in-memory notebook backed by a sandbox kernel.
|
|
56
|
+
*/
|
|
57
|
+
export function EphemeralNotebook({ notebookId, runtimePodName, cellSidebarMargin = 120, nbformat, onNbformatChange, toolbarComponent, }) {
|
|
58
|
+
// The `nbformat` passed to the `Notebook` component MUST stay a stable
|
|
59
|
+
// reference for the lifetime of a given `notebookId`: the underlying
|
|
60
|
+
// `useNotebookModel` hook rebuilds the notebook model (and its context /
|
|
61
|
+
// adapter) every time the `nbformat` reference changes. Feeding the live
|
|
62
|
+
// model back into this prop would thrash the notebook and can persist
|
|
63
|
+
// transient/empty content. So we capture the initial/restore content ONCE
|
|
64
|
+
// per `notebookId` and never mutate it from the live model.
|
|
65
|
+
const initialNbformatRef = useRef(nbformat ?? EPHEMERAL_NOTEBOOK_CONTENT);
|
|
66
|
+
const initialNotebookIdRef = useRef(notebookId);
|
|
67
|
+
if (initialNotebookIdRef.current !== notebookId) {
|
|
68
|
+
// Notebook scope changed (e.g. switching agents) — reset the restore seed.
|
|
69
|
+
initialNotebookIdRef.current = notebookId;
|
|
70
|
+
initialNbformatRef.current = nbformat ?? EPHEMERAL_NOTEBOOK_CONTENT;
|
|
71
|
+
}
|
|
72
|
+
const initialNbformat = initialNbformatRef.current;
|
|
73
|
+
// Hash of the last content we persisted, so the poll only writes on change.
|
|
74
|
+
const lastSavedHashRef = useRef(JSON.stringify(initialNbformat));
|
|
75
|
+
// Resolve the runtime sandbox strictly by its assigned pod name. There is
|
|
76
|
+
// deliberately NO fallback to "first running" or `runtimes[0]`: the ephemeral
|
|
77
|
+
// notebook must bind to exactly the runtime assigned to this agent, or to
|
|
78
|
+
// none at all (straight path).
|
|
79
|
+
const { runtimes, refetchRuntimes } = useAgentsRuntimes();
|
|
80
|
+
const selectedRuntime = useMemo(() => {
|
|
81
|
+
const preferredPod = String(runtimePodName || '').trim();
|
|
82
|
+
if (!preferredPod) {
|
|
83
|
+
return undefined;
|
|
84
|
+
}
|
|
85
|
+
return runtimes.find(rt => String(rt?.pod_name || '') === preferredPod);
|
|
86
|
+
}, [runtimePodName, runtimes]);
|
|
87
|
+
// While the assigned pod has not yet appeared in the runtimes list, poll the
|
|
88
|
+
// list quickly instead of waiting for the default (10s) refresh interval.
|
|
89
|
+
// This is what makes the "Starting notebook…" state clear promptly once the
|
|
90
|
+
// agent runtime is ready, rather than lingering for several seconds.
|
|
91
|
+
const needsRuntimeLookup = Boolean(String(runtimePodName || '').trim() && !selectedRuntime);
|
|
92
|
+
useEffect(() => {
|
|
93
|
+
if (!needsRuntimeLookup) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
void refetchRuntimes();
|
|
97
|
+
const intervalId = window.setInterval(() => {
|
|
98
|
+
void refetchRuntimes();
|
|
99
|
+
}, 1000);
|
|
100
|
+
return () => {
|
|
101
|
+
window.clearInterval(intervalId);
|
|
102
|
+
};
|
|
103
|
+
}, [needsRuntimeLookup, refetchRuntimes]);
|
|
104
|
+
const [runtimeServiceManager, setRuntimeServiceManager] = useState(null);
|
|
105
|
+
const [runtimeKernelId, setRuntimeKernelId] = useState(undefined);
|
|
106
|
+
const [runtimeStartDefaultKernel, setRuntimeStartDefaultKernel] = useState(false);
|
|
107
|
+
useEffect(() => {
|
|
108
|
+
let cancelled = false;
|
|
109
|
+
let manager = null;
|
|
110
|
+
let unregisterManager = null;
|
|
111
|
+
const connectRuntime = async () => {
|
|
112
|
+
const baseUrl = String(selectedRuntime?.url || '').trim();
|
|
113
|
+
if (!baseUrl) {
|
|
114
|
+
if (!cancelled) {
|
|
115
|
+
setRuntimeServiceManager(null);
|
|
116
|
+
setRuntimeKernelId(undefined);
|
|
117
|
+
setRuntimeStartDefaultKernel(false);
|
|
118
|
+
}
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
try {
|
|
122
|
+
const token = String(selectedRuntime?.token || '').trim();
|
|
123
|
+
const serverSettings = ServerConnection.makeSettings({
|
|
124
|
+
baseUrl,
|
|
125
|
+
wsUrl: baseUrl.replace(/^http/, 'ws'),
|
|
126
|
+
token,
|
|
127
|
+
appendToken: true,
|
|
128
|
+
});
|
|
129
|
+
manager = new ServiceManager({ serverSettings });
|
|
130
|
+
// Central sandbox registry: runtime terminate/pause disposes this
|
|
131
|
+
// manager immediately so its pollers cannot hit the dead pod ingress.
|
|
132
|
+
unregisterManager = registerSandboxServiceManager(String(selectedRuntime?.pod_name || ''), manager);
|
|
133
|
+
await manager.ready;
|
|
134
|
+
await manager.kernels.refreshRunning();
|
|
135
|
+
const runningKernel = [...manager.kernels.running()][0];
|
|
136
|
+
if (!cancelled) {
|
|
137
|
+
setRuntimeServiceManager(manager);
|
|
138
|
+
setRuntimeKernelId(runningKernel?.id);
|
|
139
|
+
setRuntimeStartDefaultKernel(!runningKernel);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
catch {
|
|
143
|
+
if (!cancelled) {
|
|
144
|
+
setRuntimeServiceManager(null);
|
|
145
|
+
setRuntimeKernelId(undefined);
|
|
146
|
+
setRuntimeStartDefaultKernel(false);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
connectRuntime();
|
|
151
|
+
return () => {
|
|
152
|
+
cancelled = true;
|
|
153
|
+
unregisterManager?.();
|
|
154
|
+
if (manager) {
|
|
155
|
+
disposeServiceManager(manager);
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
}, [selectedRuntime?.pod_name, selectedRuntime?.url, selectedRuntime?.token]);
|
|
159
|
+
// Bind strictly to the agent runtime sandbox; there is NO local fallback
|
|
160
|
+
// kernel. The notebook executes on the agent's runtime or shows a waiting
|
|
161
|
+
// state until the runtime is ready.
|
|
162
|
+
const activeServiceManager = runtimeServiceManager;
|
|
163
|
+
const activeKernelId = runtimeKernelId;
|
|
164
|
+
const activeStartDefaultKernel = runtimeStartDefaultKernel;
|
|
165
|
+
const ToolbarComponent = toolbarComponent || NotebookToolbar;
|
|
166
|
+
const isRuntimeStarting = Boolean(String(runtimePodName || '').trim() && !activeServiceManager);
|
|
167
|
+
useProgressTask(`ephemeral-notebook-start-${notebookId}`, isRuntimeStarting);
|
|
168
|
+
useEffect(() => {
|
|
169
|
+
// Read the CURRENT live notebook model straight from the notebook store.
|
|
170
|
+
// The `NotebookAdapter` exposes `notebook` (the widget, whose `.model` is
|
|
171
|
+
// the `INotebookModel`) and `panel` (`panel.content.model`). There is NO
|
|
172
|
+
// `notebookPanel` getter, so we read through those real accessors.
|
|
173
|
+
const readLiveModel = () => {
|
|
174
|
+
const notebook = notebookStore.getState().selectNotebook(notebookId);
|
|
175
|
+
const adapter = notebook?.adapter;
|
|
176
|
+
const model = adapter?.notebook?.model ?? adapter?.panel?.content?.model ?? null;
|
|
177
|
+
const modelJson = model?.toJSON?.();
|
|
178
|
+
return modelJson ?? null;
|
|
179
|
+
};
|
|
180
|
+
// Persist the current model to the store, but only when it actually
|
|
181
|
+
// changed. This never feeds back into the `nbformat` prop, so the live
|
|
182
|
+
// notebook is not rebuilt.
|
|
183
|
+
const persistLiveModel = () => {
|
|
184
|
+
const model = readLiveModel();
|
|
185
|
+
if (!model || !Array.isArray(model.cells)) {
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
const nextHash = JSON.stringify(model);
|
|
189
|
+
if (nextHash === lastSavedHashRef.current) {
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
lastSavedHashRef.current = nextHash;
|
|
193
|
+
onNbformatChange?.(model);
|
|
194
|
+
};
|
|
195
|
+
const intervalId = window.setInterval(persistLiveModel, 500);
|
|
196
|
+
return () => {
|
|
197
|
+
window.clearInterval(intervalId);
|
|
198
|
+
// Capture the final model on unmount (navigating away) so the very last
|
|
199
|
+
// edits are persisted before the notebook adapter is disposed.
|
|
200
|
+
persistLiveModel();
|
|
201
|
+
};
|
|
202
|
+
}, [activeServiceManager, notebookId, onNbformatChange]);
|
|
203
|
+
// Resolve the active theme/color-mode exactly like the notebook editor
|
|
204
|
+
// (NotebookEditorPanel) so the notebook honours dark / branded themes
|
|
205
|
+
// instead of always rendering light.
|
|
206
|
+
const { colorMode, theme: themeVariant } = useThemeStore();
|
|
207
|
+
const systemMode = useSystemColorMode();
|
|
208
|
+
const themeConfig = getThemeConfig(themeVariant);
|
|
209
|
+
const resolvedMode = colorMode === 'auto' ? systemMode : colorMode;
|
|
210
|
+
const modeStyles = resolvedMode === 'dark'
|
|
211
|
+
? themeConfig.themeStyles.dark
|
|
212
|
+
: themeConfig.themeStyles.light;
|
|
213
|
+
const themeBackground = modeStyles.backgroundColor ?? '';
|
|
214
|
+
const extensions = useMemo(() => [new CellSidebarExtension({ factory: CellSidebarButton })], []);
|
|
215
|
+
return (_jsx(Box, { sx: {
|
|
216
|
+
flex: 1,
|
|
217
|
+
minHeight: 0,
|
|
218
|
+
height: '100%',
|
|
219
|
+
position: 'relative',
|
|
220
|
+
overflow: 'hidden',
|
|
221
|
+
bg: 'canvas.default',
|
|
222
|
+
}, children: activeServiceManager ? (_jsx(DatalayerThemeProvider, { colorMode: colorMode, theme: themeConfig.primerTheme, themeStyles: themeConfig.themeStyles, children: _jsx(JupyterReactTheme, { colormode: resolvedMode, backgroundColor: themeBackground, children: _jsx(Box, { sx: {
|
|
223
|
+
position: 'absolute',
|
|
224
|
+
inset: 0,
|
|
225
|
+
display: 'flex',
|
|
226
|
+
flexDirection: 'column',
|
|
227
|
+
overflow: 'hidden',
|
|
228
|
+
overscrollBehaviorY: 'contain',
|
|
229
|
+
overflowAnchor: 'none',
|
|
230
|
+
padding: 2,
|
|
231
|
+
// Give the notebook a resolved height so cells render. The
|
|
232
|
+
// Jupyter Notebook component renders its outer container with
|
|
233
|
+
// id "dla-Jupyter-Notebook"; pin its toolbar and let the cell
|
|
234
|
+
// area grow to fill the remaining space.
|
|
235
|
+
'& #dla-Jupyter-Notebook': {
|
|
236
|
+
display: 'flex',
|
|
237
|
+
flexDirection: 'column',
|
|
238
|
+
},
|
|
239
|
+
'& #dla-Jupyter-Notebook > :first-of-type': {
|
|
240
|
+
position: 'sticky',
|
|
241
|
+
top: 0,
|
|
242
|
+
zIndex: 2,
|
|
243
|
+
flex: '0 0 auto',
|
|
244
|
+
background: 'var(--jp-layout-color0, transparent)',
|
|
245
|
+
},
|
|
246
|
+
'& #dla-Jupyter-Notebook > .dla-Box-Notebook': {
|
|
247
|
+
flex: '1 1 auto',
|
|
248
|
+
minHeight: 0,
|
|
249
|
+
},
|
|
250
|
+
}, children: _jsx(Notebook, { nbformat: initialNbformat, id: notebookId, serviceManager: activeServiceManager, startDefaultKernel: activeStartDefaultKernel, kernelId: activeKernelId, height: "100%", cellSidebarMargin: cellSidebarMargin, extensions: extensions, Toolbar: ToolbarComponent }) }) }) })) : null }));
|
|
251
|
+
}
|
|
252
|
+
export default EphemeralNotebook;
|
|
@@ -27,7 +27,7 @@ export function InputToolbar({ input, setInput, isLoading, kernelStatus, connect
|
|
|
27
27
|
const hasSelectorsContent = hasConfigData || hasSkillsData;
|
|
28
28
|
// Show token usage when we have valid context data
|
|
29
29
|
const hasContext = Boolean(agentUsage && !agentUsage.error && agentUsage.totalTokens > 0);
|
|
30
|
-
return (_jsxs(Box, { children: [_jsx(InputPrompt, { placeholder: placeholder || 'Type a message...', isLoading: isLoading, isKernelBusy: isKernelBusy, disabled: disableInputPrompt, readOnly: !connectionConfirmed, onSend: onSend, onStop: onStop, autoFocus: autoFocus, focusTrigger: focusTrigger, padding: padding, value: input, onChange: setInput, footerRightContent: _jsxs(_Fragment, { children: [_jsx(McpStatusIndicator, { apiBase: apiBase, authToken: authToken, data: mcpStatusData }), _jsx(SkillsStatusIndicator, { skillsCount: skills.length, enabledCount: enabledSkills.size, loading: skillsLoading })] }) }), showTokenUsage && (_jsx(Box, { sx: { minHeight: hasContext && agentUsage ? 28 : 8 }, children: hasContext && agentUsage ? (_jsx(TokenUsageBar, { agentUsage: agentUsage, padding: padding })) : null })), showSelectorsBar && (_jsx(Box, { sx: {
|
|
30
|
+
return (_jsxs(Box, { children: [_jsx(InputPrompt, { placeholder: placeholder || 'Type a message...', isLoading: isLoading, isKernelBusy: isKernelBusy, disabled: disableInputPrompt, readOnly: !connectionConfirmed, onSend: onSend, onStop: onStop, autoFocus: autoFocus, focusTrigger: focusTrigger, padding: padding, value: input, onChange: setInput, footerRightContent: _jsxs(_Fragment, { children: [_jsx(McpStatusIndicator, { apiBase: apiBase, authToken: authToken, data: mcpStatusData }), _jsx(SkillsStatusIndicator, { skillsCount: skills.length, enabledCount: enabledSkills.size, loading: skillsLoading })] }) }), showTokenUsage && (_jsx(Box, { sx: { minHeight: hasContext && agentUsage ? 28 : 8 }, children: hasContext && agentUsage ? (_jsx(TokenUsageBar, { agentUsage: agentUsage, padding: padding })) : null })), showSelectorsBar && (_jsx(Box, { "aria-disabled": disableInputPrompt || undefined, sx: {
|
|
31
31
|
display: 'flex',
|
|
32
32
|
gap: 2,
|
|
33
33
|
px: padding,
|
|
@@ -37,6 +37,9 @@ export function InputToolbar({ input, setInput, isLoading, kernelStatus, connect
|
|
|
37
37
|
borderColor: 'border.default',
|
|
38
38
|
alignItems: 'center',
|
|
39
39
|
bg: 'canvas.subtle',
|
|
40
|
+
...(disableInputPrompt
|
|
41
|
+
? { opacity: 0.5, pointerEvents: 'none', filter: 'grayscale(1)' }
|
|
42
|
+
: null),
|
|
40
43
|
}, children: hasSelectorsContent ? (_jsxs(_Fragment, { children: [showToolsMenu && (_jsx(ToolsMenu, { codemodeEnabled: codemodeEnabled, onToggleCodemode: onToggleCodemode, mcpServers: mcpServers, enabledMcpTools: enabledMcpTools, enabledMcpToolCount: enabledMcpToolCount, onToggleMcpTool: onToggleMcpTool, onToggleAllMcpServerTools: onToggleAllMcpServerTools, approvedMcpTools: approvedMcpTools, onToggleMcpToolApproval: onToggleMcpToolApproval, availableTools: availableTools })), showSkillsMenu && (_jsx(SkillsMenu, { skills: skills, skillsLoading: skillsLoading, enabledSkills: enabledSkills, onToggleSkill: onToggleSkill, onToggleAllSkills: onToggleAllSkills, approvedSkills: approvedSkills, onToggleSkillApproval: onToggleSkillApproval })), showModelSelector && models.length > 0 && selectedModel && (_jsx(ModelSelector, { models: models, selectedModel: selectedModel, onModelSelect: onModelSelect, isA2AProtocol: isA2AProtocol }))] })) : (_jsx(Text, { sx: { fontSize: 0, color: 'fg.muted' }, children: "Loading controls..." })) }))] }));
|
|
41
44
|
}
|
|
42
45
|
// ---------------------------------------------------------------------------
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Runtimes client: extends the core Datalayer client (IAM / plans) with
|
|
3
|
+
* runtime and workspace/content (Spacer) capabilities.
|
|
4
|
+
*
|
|
5
|
+
* @module client/AgentRuntimesClient
|
|
6
|
+
*/
|
|
7
|
+
import { DatalayerCoreClient, type DatalayerClientConfig } from '@datalayer/core/lib/client';
|
|
8
|
+
import type { HealthCheck } from '@datalayer/core/lib/models/HealthCheck';
|
|
9
|
+
import type { RuntimeDTO } from '../models/RuntimeDTO';
|
|
10
|
+
import type { EnvironmentDTO } from '../models/EnvironmentDTO';
|
|
11
|
+
import type { CodeSandboxSnapshotDTO } from '../models/CodeSandboxSnapshotDTO';
|
|
12
|
+
import type { SpaceDTO, UpdateSpaceRequest } from '../models/SpaceDTO';
|
|
13
|
+
import type { NotebookDTO } from '../models/NotebookDTO';
|
|
14
|
+
import type { LexicalDTO } from '../models/LexicalDTO';
|
|
15
|
+
import type { ProjectDTO, ProjectDefaultItems } from '../models/ProjectDTO';
|
|
16
|
+
declare const AgentRuntimesClientWithMixins: {
|
|
17
|
+
new (...args: any[]): {
|
|
18
|
+
getMySpaces(): Promise<SpaceDTO[]>;
|
|
19
|
+
createSpace(name: string, description: string, variant: string, spaceHandle: string, organizationId: string, seedSpaceId: string, isPublic: boolean): Promise<SpaceDTO>;
|
|
20
|
+
createNotebook(spaceId: string, name: string, description: string, file?: File | Blob): Promise<NotebookDTO>;
|
|
21
|
+
getNotebook(id: string): Promise<NotebookDTO>;
|
|
22
|
+
updateNotebook(id: string, name?: string, description?: string): Promise<NotebookDTO>;
|
|
23
|
+
createLexical(spaceId: string, name: string, description: string, file?: File | Blob): Promise<LexicalDTO>;
|
|
24
|
+
getLexical(id: string): Promise<LexicalDTO>;
|
|
25
|
+
updateLexical(id: string, name?: string, description?: string): Promise<LexicalDTO>;
|
|
26
|
+
getSpaceItems(spaceId: string): Promise<(NotebookDTO | LexicalDTO)[]>;
|
|
27
|
+
getSpaceItem(itemId: string): Promise<NotebookDTO | LexicalDTO>;
|
|
28
|
+
deleteSpaceItem(itemId: string): Promise<void>;
|
|
29
|
+
getContent(itemId: string): Promise<any>;
|
|
30
|
+
checkSpacerHealth(): Promise<HealthCheck>;
|
|
31
|
+
getCollaborationSessionId(documentId: string): Promise<string>;
|
|
32
|
+
getSpace(uid: string): Promise<SpaceDTO>;
|
|
33
|
+
updateSpace(uid: string, data: UpdateSpaceRequest): Promise<SpaceDTO>;
|
|
34
|
+
updateUserSpace(uid: string, userId: string, data: UpdateSpaceRequest): Promise<SpaceDTO>;
|
|
35
|
+
deleteSpace(uid: string): Promise<void>;
|
|
36
|
+
makeSpacePublic(uid: string): Promise<SpaceDTO>;
|
|
37
|
+
makeSpacePrivate(uid: string): Promise<SpaceDTO>;
|
|
38
|
+
exportSpace(uid: string): Promise<any>;
|
|
39
|
+
cloneNotebook(id: string): Promise<NotebookDTO>;
|
|
40
|
+
cloneLexical(id: string): Promise<LexicalDTO>;
|
|
41
|
+
getProjects(): Promise<ProjectDTO[]>;
|
|
42
|
+
getProject(uid: string): Promise<ProjectDTO>;
|
|
43
|
+
createProject(name: string, description?: string): Promise<ProjectDTO>;
|
|
44
|
+
updateProject(uid: string, data: UpdateSpaceRequest): Promise<ProjectDTO>;
|
|
45
|
+
renameProject(uid: string, newName: string, description?: string): Promise<ProjectDTO>;
|
|
46
|
+
getProjectDefaultItems(uid: string): Promise<ProjectDefaultItems>;
|
|
47
|
+
};
|
|
48
|
+
} & {
|
|
49
|
+
new (...args: any[]): {
|
|
50
|
+
_extractRuntimePodName(runtimePodNameOrInstance: string | RuntimeDTO): string;
|
|
51
|
+
_extractSnapshotId(snapshotIdOrInstance: string | CodeSandboxSnapshotDTO): string;
|
|
52
|
+
listEnvironments(): Promise<EnvironmentDTO[]>;
|
|
53
|
+
createRuntime(environmentName: string, type: "notebook" | "terminal" | "job", givenName: string, minutesLimit: number, fromSnapshotId?: string): Promise<RuntimeDTO>;
|
|
54
|
+
listRuntimes(): Promise<RuntimeDTO[]>;
|
|
55
|
+
getRuntime(podName: string): Promise<RuntimeDTO>;
|
|
56
|
+
deleteRuntime(podName: string): Promise<void>;
|
|
57
|
+
terminateAllRuntimes(): Promise<PromiseSettledResult<void>[]>;
|
|
58
|
+
createSnapshot(podName: string, name: string, description: string, stop?: boolean): Promise<CodeSandboxSnapshotDTO>;
|
|
59
|
+
listSnapshots(): Promise<CodeSandboxSnapshotDTO[]>;
|
|
60
|
+
getSnapshot(id: string): Promise<CodeSandboxSnapshotDTO>;
|
|
61
|
+
deleteSnapshot(id: string): Promise<void>;
|
|
62
|
+
checkRuntimesHealth(): Promise<HealthCheck>;
|
|
63
|
+
};
|
|
64
|
+
} & typeof DatalayerCoreClient;
|
|
65
|
+
/**
|
|
66
|
+
* Full Datalayer client for agent runtimes: identity/plans (from core) plus
|
|
67
|
+
* runtime and workspace/content operations.
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```typescript
|
|
71
|
+
* const client = new AgentRuntimesClient({ token: 'your-token' });
|
|
72
|
+
* const user = await client.whoami();
|
|
73
|
+
* const runtime = await client.createRuntime('env', 'notebook', 'name', 10);
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
export declare class AgentRuntimesClient extends AgentRuntimesClientWithMixins {
|
|
77
|
+
/**
|
|
78
|
+
* Create an AgentRuntimesClient instance.
|
|
79
|
+
*
|
|
80
|
+
* @param config - Client configuration options.
|
|
81
|
+
*/
|
|
82
|
+
constructor(config: DatalayerClientConfig);
|
|
83
|
+
}
|
|
84
|
+
export interface AgentRuntimesClient extends DatalayerCoreClient {
|
|
85
|
+
listEnvironments(): Promise<EnvironmentDTO[]>;
|
|
86
|
+
ensureRuntime(environmentName?: string, creditsLimit?: number, waitForReady?: boolean, maxWaitTime?: number, reuseExisting?: boolean, snapshotId?: string): Promise<RuntimeDTO>;
|
|
87
|
+
createRuntime(environmentName: string, type: 'notebook' | 'terminal' | 'job', givenName: string, minutesLimit: number, fromSnapshotId?: string): Promise<RuntimeDTO>;
|
|
88
|
+
listRuntimes(): Promise<RuntimeDTO[]>;
|
|
89
|
+
getRuntime(podName: string): Promise<RuntimeDTO>;
|
|
90
|
+
deleteRuntime(podName: string): Promise<void>;
|
|
91
|
+
terminateAllRuntimes(): Promise<PromiseSettledResult<void>[]>;
|
|
92
|
+
createSnapshot(podName: string, name: string, description: string, stop?: boolean): Promise<CodeSandboxSnapshotDTO>;
|
|
93
|
+
listSnapshots(): Promise<CodeSandboxSnapshotDTO[]>;
|
|
94
|
+
getSnapshot(id: string): Promise<CodeSandboxSnapshotDTO>;
|
|
95
|
+
deleteSnapshot(id: string): Promise<void>;
|
|
96
|
+
checkRuntimesHealth(): Promise<HealthCheck>;
|
|
97
|
+
getMySpaces(): Promise<SpaceDTO[]>;
|
|
98
|
+
createSpace(name: string, description: string, variant: string, spaceHandle: string, organizationId: string, seedSpaceId: string, isPublic: boolean): Promise<SpaceDTO>;
|
|
99
|
+
createNotebook(spaceId: string, name: string, description: string, file?: File | Blob): Promise<NotebookDTO>;
|
|
100
|
+
getNotebook(id: string): Promise<NotebookDTO>;
|
|
101
|
+
updateNotebook(id: string, name?: string, description?: string): Promise<NotebookDTO>;
|
|
102
|
+
createLexical(spaceId: string, name: string, description: string, file?: File | Blob): Promise<LexicalDTO>;
|
|
103
|
+
getLexical(id: string): Promise<LexicalDTO>;
|
|
104
|
+
updateLexical(id: string, name?: string, description?: string): Promise<LexicalDTO>;
|
|
105
|
+
getSpaceItems(spaceId: string): Promise<(NotebookDTO | LexicalDTO)[]>;
|
|
106
|
+
getSpaceItem(itemId: string): Promise<NotebookDTO | LexicalDTO>;
|
|
107
|
+
deleteSpaceItem(itemId: string): Promise<void>;
|
|
108
|
+
getCollaborationSessionId(documentId: string): Promise<string>;
|
|
109
|
+
getContent(itemId: string): Promise<any>;
|
|
110
|
+
checkSpacerHealth(): Promise<HealthCheck>;
|
|
111
|
+
getSpace(uid: string): Promise<SpaceDTO>;
|
|
112
|
+
updateSpace(uid: string, data: UpdateSpaceRequest): Promise<SpaceDTO>;
|
|
113
|
+
updateUserSpace(uid: string, userId: string, data: UpdateSpaceRequest): Promise<SpaceDTO>;
|
|
114
|
+
deleteSpace(uid: string): Promise<void>;
|
|
115
|
+
makeSpacePublic(uid: string): Promise<SpaceDTO>;
|
|
116
|
+
makeSpacePrivate(uid: string): Promise<SpaceDTO>;
|
|
117
|
+
exportSpace(uid: string): Promise<any>;
|
|
118
|
+
cloneNotebook(id: string): Promise<NotebookDTO>;
|
|
119
|
+
cloneLexical(id: string): Promise<LexicalDTO>;
|
|
120
|
+
getProjects(): Promise<ProjectDTO[]>;
|
|
121
|
+
getProject(uid: string): Promise<ProjectDTO>;
|
|
122
|
+
createProject(name: string, description?: string): Promise<ProjectDTO>;
|
|
123
|
+
updateProject(uid: string, data: UpdateSpaceRequest): Promise<ProjectDTO>;
|
|
124
|
+
renameProject(uid: string, newName: string, description?: string): Promise<ProjectDTO>;
|
|
125
|
+
getProjectDefaultItems(uid: string): Promise<ProjectDefaultItems>;
|
|
126
|
+
}
|
|
127
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Agent Runtimes client: extends the core Datalayer client (IAM / plans) with
|
|
7
|
+
* runtime and workspace/content (Spacer) capabilities.
|
|
8
|
+
*
|
|
9
|
+
* @module client/AgentRuntimesClient
|
|
10
|
+
*/
|
|
11
|
+
import { DatalayerCoreClient, } from '@datalayer/core/lib/client';
|
|
12
|
+
import { RuntimesMixin } from './mixins/RuntimesMixin';
|
|
13
|
+
import { SpacerMixin } from './mixins/SpacerMixin';
|
|
14
|
+
// Apply the runtime + content mixins on top of the core client.
|
|
15
|
+
const AgentRuntimesClientWithMixins = SpacerMixin(RuntimesMixin(DatalayerCoreClient));
|
|
16
|
+
/**
|
|
17
|
+
* Full Datalayer client for agent runtimes: identity/plans (from core) plus
|
|
18
|
+
* runtime and workspace/content operations.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* const client = new AgentRuntimesClient({ token: 'your-token' });
|
|
23
|
+
* const user = await client.whoami();
|
|
24
|
+
* const runtime = await client.createRuntime('env', 'notebook', 'name', 10);
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export class AgentRuntimesClient extends AgentRuntimesClientWithMixins {
|
|
28
|
+
/**
|
|
29
|
+
* Create an AgentRuntimesClient instance.
|
|
30
|
+
*
|
|
31
|
+
* @param config - Client configuration options.
|
|
32
|
+
*/
|
|
33
|
+
constructor(config) {
|
|
34
|
+
super(config);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* @module client/AgentsMixin
|
|
12
12
|
*/
|
|
13
13
|
import type { Constructor } from '@datalayer/core/lib/client/utils/mixins';
|
|
14
|
-
import type { AgentEvent, CreateAgentEventRequest, GetAgentEventResponse, ListAgentEventsParams, ListAgentEventsResponse, UpdateAgentEventRequest, RunningAgent, AgentUsageSummary, ConversationCheckpoint, AgentNotification, NotificationFilters, OutputArtifact, EvalReport, RunEvalsRequest, ContextUsage, CostUsage,
|
|
14
|
+
import type { AgentEvent, CreateAgentEventRequest, GetAgentEventResponse, ListAgentEventsParams, ListAgentEventsResponse, UpdateAgentEventRequest, RunningAgent, AgentUsageSummary, ConversationCheckpoint, AgentNotification, NotificationFilters, OutputArtifact, EvalReport, RunEvalsRequest, ContextUsage, CostUsage, Agentspec } from '../types';
|
|
15
15
|
import type { CreateAgentRuntimeRequest, CreateRuntimeApiResponse } from '../types/agents-lifecycle';
|
|
16
16
|
/** Agents mixin providing durable agent management. */
|
|
17
17
|
export declare function AgentsMixin<TBase extends Constructor>(Base: TBase): {
|
|
@@ -153,19 +153,19 @@ export declare function AgentsMixin<TBase extends Constructor>(Base: TBase): {
|
|
|
153
153
|
* @param agentSpecId - Agent spec identifier.
|
|
154
154
|
* @returns The agent spec, or undefined if not found.
|
|
155
155
|
*/
|
|
156
|
-
|
|
156
|
+
getAgentspec(agentSpecId: string): Agentspec | undefined;
|
|
157
157
|
/**
|
|
158
158
|
* List all available agent specifications.
|
|
159
159
|
* @param prefix - If provided, only return specs whose ID starts with this prefix.
|
|
160
160
|
* @returns Array of agent specifications.
|
|
161
161
|
*/
|
|
162
|
-
|
|
162
|
+
listAgentspecs(prefix?: string): Agentspec[];
|
|
163
163
|
/**
|
|
164
164
|
* Get required environment variables for an agent spec.
|
|
165
165
|
* @param spec - The agent specification.
|
|
166
166
|
* @returns Deduplicated array of required environment variable names.
|
|
167
167
|
*/
|
|
168
|
-
|
|
168
|
+
getAgentspecRequiredEnvVars(spec: Agentspec): string[];
|
|
169
169
|
/**
|
|
170
170
|
* Assign an agent runtime to a project.
|
|
171
171
|
* @param projectUid - Project UID.
|