@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,39 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
import { URLExt } from '@jupyterlab/coreutils';
|
|
6
|
+
import { ServerConnection } from '@jupyterlab/services';
|
|
7
|
+
/**
|
|
8
|
+
* Call the jupyter_kernels extension
|
|
9
|
+
*
|
|
10
|
+
* @param endPoint API REST end point for the extension
|
|
11
|
+
* @param init Initial values for the request
|
|
12
|
+
* @returns The response body interpreted as JSON
|
|
13
|
+
*/
|
|
14
|
+
export async function requestJupyterKernelsExtension(endPoint = '', init = {}) {
|
|
15
|
+
// Make request to Jupyter API
|
|
16
|
+
const settings = ServerConnection.makeSettings();
|
|
17
|
+
const requestUrl = URLExt.join(settings.baseUrl, 'jupyter_kernels', // API Namespace
|
|
18
|
+
endPoint);
|
|
19
|
+
let response;
|
|
20
|
+
try {
|
|
21
|
+
response = await ServerConnection.makeRequest(requestUrl, init, settings);
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
throw new ServerConnection.NetworkError(error);
|
|
25
|
+
}
|
|
26
|
+
let data = await response.text();
|
|
27
|
+
if (data.length > 0) {
|
|
28
|
+
try {
|
|
29
|
+
data = JSON.parse(data);
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
console.log('Not a JSON response body.', response);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
if (!response.ok) {
|
|
36
|
+
throw new ServerConnection.ResponseError(response, data.message || data);
|
|
37
|
+
}
|
|
38
|
+
return data;
|
|
39
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ICourse } from '../../models/Course';
|
|
2
|
+
export declare const newCourseMock: (name: string) => ICourse;
|
|
3
|
+
export declare const COURSE_1_MOCK: ICourse;
|
|
4
|
+
export declare const COURSE_2_MOCK: ICourse;
|
|
5
|
+
export declare const COURSE_3_MOCK: ICourse;
|
|
6
|
+
export declare const COURSES_MOCK: ICourse[];
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
import { uniqueNamesGenerator, names } from 'unique-names-generator';
|
|
6
|
+
import { newUlid } from '@datalayer/core/lib/utils';
|
|
7
|
+
import { newSpaceMock } from './SpaceMock';
|
|
8
|
+
import { newUserMock } from '@datalayer/core/lib/mocks/models/UserMock';
|
|
9
|
+
export const newCourseMock = (name) => {
|
|
10
|
+
const course = {
|
|
11
|
+
id: newUlid(),
|
|
12
|
+
owner: newUserMock(uniqueNamesGenerator({ dictionaries: [names] }), uniqueNamesGenerator({ dictionaries: [names] })),
|
|
13
|
+
handle: newUlid(),
|
|
14
|
+
type: 'space',
|
|
15
|
+
variant: 'course',
|
|
16
|
+
name: name,
|
|
17
|
+
description: name + ' description.',
|
|
18
|
+
public: false,
|
|
19
|
+
creationDate: new Date(),
|
|
20
|
+
items: [],
|
|
21
|
+
itemIds: [],
|
|
22
|
+
seedSpace: newSpaceMock('space content'),
|
|
23
|
+
};
|
|
24
|
+
return course;
|
|
25
|
+
};
|
|
26
|
+
export const COURSE_1_MOCK = newCourseMock('Course 1');
|
|
27
|
+
export const COURSE_2_MOCK = newCourseMock('Course 2');
|
|
28
|
+
export const COURSE_3_MOCK = newCourseMock('Course 3');
|
|
29
|
+
export const COURSES_MOCK = [COURSE_1_MOCK, COURSE_2_MOCK, COURSE_3_MOCK];
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ISpace } from '../../models/Space';
|
|
2
|
+
export declare const newSpaceMock: (name: string) => ISpace;
|
|
3
|
+
export declare const SPACE_1_MOCK: ISpace;
|
|
4
|
+
export declare const SPACE_2_MOCK: ISpace;
|
|
5
|
+
export declare const SPACE_3: ISpace;
|
|
6
|
+
export declare const SPACES_MOCK: ISpace[];
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
import { uniqueNamesGenerator, names } from 'unique-names-generator';
|
|
6
|
+
import { newUlid } from '@datalayer/core/lib/utils';
|
|
7
|
+
import { newUserMock } from '@datalayer/core/lib/mocks/models/UserMock';
|
|
8
|
+
export const newSpaceMock = (name) => {
|
|
9
|
+
const space = {
|
|
10
|
+
id: newUlid(),
|
|
11
|
+
owner: newUserMock(uniqueNamesGenerator({ dictionaries: [names] }), uniqueNamesGenerator({ dictionaries: [names] })),
|
|
12
|
+
handle: newUlid(),
|
|
13
|
+
type: 'space',
|
|
14
|
+
variant: 'default',
|
|
15
|
+
name: name,
|
|
16
|
+
description: name + ' description.',
|
|
17
|
+
public: false,
|
|
18
|
+
creationDate: new Date(),
|
|
19
|
+
};
|
|
20
|
+
return space;
|
|
21
|
+
};
|
|
22
|
+
export const SPACE_1_MOCK = newSpaceMock('Space 1');
|
|
23
|
+
export const SPACE_2_MOCK = newSpaceMock('Space 2');
|
|
24
|
+
export const SPACE_3 = newSpaceMock('Space 3');
|
|
25
|
+
export const SPACES_MOCK = [SPACE_1_MOCK, SPACE_2_MOCK, SPACE_3];
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Code Sandbox snapshot from API.
|
|
3
|
+
*/
|
|
4
|
+
export interface IAPICodeSandboxSnapshot {
|
|
5
|
+
/**
|
|
6
|
+
* Snapshot UID
|
|
7
|
+
*/
|
|
8
|
+
uid: string;
|
|
9
|
+
/**
|
|
10
|
+
* Snapshot name
|
|
11
|
+
*/
|
|
12
|
+
name: string;
|
|
13
|
+
/**
|
|
14
|
+
* Snapshot description
|
|
15
|
+
*/
|
|
16
|
+
description: string;
|
|
17
|
+
/**
|
|
18
|
+
* Snapshot environment
|
|
19
|
+
*/
|
|
20
|
+
environment: string;
|
|
21
|
+
/**
|
|
22
|
+
* Snapshot metadata
|
|
23
|
+
*/
|
|
24
|
+
metadata: Record<string, any>;
|
|
25
|
+
/**
|
|
26
|
+
* Snapshot size in bytes
|
|
27
|
+
*/
|
|
28
|
+
size: number;
|
|
29
|
+
/**
|
|
30
|
+
* Latest update time of the snapshot
|
|
31
|
+
*/
|
|
32
|
+
updated_at: string;
|
|
33
|
+
/**
|
|
34
|
+
* Snapshot format
|
|
35
|
+
*/
|
|
36
|
+
format: string;
|
|
37
|
+
/**
|
|
38
|
+
* Snapshot format version
|
|
39
|
+
*/
|
|
40
|
+
format_version: string;
|
|
41
|
+
/**
|
|
42
|
+
* Snapshot status
|
|
43
|
+
*/
|
|
44
|
+
status: string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Code Sandbox snapshot model.
|
|
48
|
+
*/
|
|
49
|
+
export interface ICodeSandboxSnapshot {
|
|
50
|
+
/**
|
|
51
|
+
* Snapshot UID
|
|
52
|
+
*/
|
|
53
|
+
id: string;
|
|
54
|
+
/**
|
|
55
|
+
* Snapshot name
|
|
56
|
+
*/
|
|
57
|
+
name: string;
|
|
58
|
+
/**
|
|
59
|
+
* Snapshot description
|
|
60
|
+
*/
|
|
61
|
+
description: string;
|
|
62
|
+
/**
|
|
63
|
+
* Snapshot environment
|
|
64
|
+
*/
|
|
65
|
+
environment: string;
|
|
66
|
+
/**
|
|
67
|
+
* Snapshot metadata
|
|
68
|
+
*/
|
|
69
|
+
metadata: Record<string, any>;
|
|
70
|
+
/**
|
|
71
|
+
* Snapshot size in bytes
|
|
72
|
+
*/
|
|
73
|
+
size: number;
|
|
74
|
+
/**
|
|
75
|
+
* Latest update time of the snapshot
|
|
76
|
+
*/
|
|
77
|
+
updatedAt: Date;
|
|
78
|
+
/**
|
|
79
|
+
* Snapshot format
|
|
80
|
+
*/
|
|
81
|
+
format: string;
|
|
82
|
+
/**
|
|
83
|
+
* Snapshot format version
|
|
84
|
+
*/
|
|
85
|
+
formatVersion: string;
|
|
86
|
+
/**
|
|
87
|
+
|
|
88
|
+
* Snapshot status
|
|
89
|
+
*/
|
|
90
|
+
status: string;
|
|
91
|
+
}
|
|
92
|
+
export declare function asCodeSandboxSnapshot(s: IAPICodeSandboxSnapshot): ICodeSandboxSnapshot;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
export function asCodeSandboxSnapshot(s) {
|
|
6
|
+
const { uid, updated_at, format_version, ...others } = s;
|
|
7
|
+
return {
|
|
8
|
+
...others,
|
|
9
|
+
id: uid,
|
|
10
|
+
updatedAt: new Date(updated_at),
|
|
11
|
+
formatVersion: format_version,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Snapshot domain model for the Datalayer Client.
|
|
3
|
+
*
|
|
4
|
+
* @module models/CodeSandboxSnapshotDTO
|
|
5
|
+
*/
|
|
6
|
+
import type { AgentRuntimesClient as DatalayerClient } from '../client/AgentRuntimesClient';
|
|
7
|
+
import { RuntimeDTO } from './RuntimeDTO';
|
|
8
|
+
/**
|
|
9
|
+
* Represents a runthime snapshot of a runtime's state and files.
|
|
10
|
+
* @interface CodeSandboxSnapshotData
|
|
11
|
+
*/
|
|
12
|
+
export interface CodeSandboxSnapshotData {
|
|
13
|
+
/** Unique identifier for the snapshot */
|
|
14
|
+
uid: string;
|
|
15
|
+
/** Name of the snapshot */
|
|
16
|
+
name: string;
|
|
17
|
+
/** Optional description of the snapshot */
|
|
18
|
+
description?: string;
|
|
19
|
+
/** Name of the environment used by the runtime */
|
|
20
|
+
environment: string;
|
|
21
|
+
/** Metadata associated with the snapshot */
|
|
22
|
+
metadata?: {
|
|
23
|
+
version?: string;
|
|
24
|
+
language_info?: any;
|
|
25
|
+
[key: string]: any;
|
|
26
|
+
};
|
|
27
|
+
/** Size of the snapshot in bytes */
|
|
28
|
+
size?: number;
|
|
29
|
+
/** Format of the snapshot */
|
|
30
|
+
format?: string;
|
|
31
|
+
/** Format version of the snapshot */
|
|
32
|
+
format_version?: string;
|
|
33
|
+
/** Status of the snapshot */
|
|
34
|
+
status?: string;
|
|
35
|
+
/** ISO 8601 timestamp when the snapshot was last updated */
|
|
36
|
+
updated_at: string;
|
|
37
|
+
/** List of files included in the snapshot */
|
|
38
|
+
files?: any[];
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Stable public interface for Snapshot data.
|
|
42
|
+
* This is the contract that Client consumers can rely on.
|
|
43
|
+
* The raw API may change, but this interface remains stable.
|
|
44
|
+
*/
|
|
45
|
+
export interface CodeSandboxSnapshotJSON {
|
|
46
|
+
/** Unique identifier for the snapshot */
|
|
47
|
+
uid: string;
|
|
48
|
+
/** Name of the snapshot */
|
|
49
|
+
name: string;
|
|
50
|
+
/** Optional description of the snapshot */
|
|
51
|
+
description?: string;
|
|
52
|
+
/** Name of the environment used by the runtime */
|
|
53
|
+
environment: string;
|
|
54
|
+
/** ISO 8601 timestamp when the snapshot was last updated */
|
|
55
|
+
updatedAt: string;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Request payload for creating a code sandbox snapshot
|
|
59
|
+
* @interface CreateCodeSandboxSnapshotRequest
|
|
60
|
+
*/
|
|
61
|
+
export interface CreateCodeSandboxSnapshotRequest {
|
|
62
|
+
/** Pod name of the runtime to snapshot */
|
|
63
|
+
pod_name: string;
|
|
64
|
+
/** Name for the snapshot */
|
|
65
|
+
name: string;
|
|
66
|
+
/** Description of the snapshot */
|
|
67
|
+
description: string;
|
|
68
|
+
/** Whether to stop the runtime after creating snapshot */
|
|
69
|
+
stop: boolean;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Response for getting a specific code snapshot snapshot
|
|
73
|
+
* @interface GetCodeSandboxSnapshotResponse
|
|
74
|
+
*/
|
|
75
|
+
export interface GetCodeSandboxSnapshotResponse {
|
|
76
|
+
/** Indicates if the request was successful */
|
|
77
|
+
success: boolean;
|
|
78
|
+
/** Response message */
|
|
79
|
+
message: string;
|
|
80
|
+
/** The snapshot details */
|
|
81
|
+
snapshot: CodeSandboxSnapshotData;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Response for creating a code sandbox snapshot
|
|
85
|
+
* @interface CreateCodeSandboxSnapshotResponse
|
|
86
|
+
*/
|
|
87
|
+
export interface CreateCodeSandboxSnapshotResponse {
|
|
88
|
+
/** Indicates if the request was successful */
|
|
89
|
+
success: boolean;
|
|
90
|
+
/** Response message */
|
|
91
|
+
message: string;
|
|
92
|
+
/** The created snapshot details */
|
|
93
|
+
snapshot: CodeSandboxSnapshotData;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Response from listing code sandbox snapshots
|
|
97
|
+
* @interface ListCodeSandboxSnapshotsResponse
|
|
98
|
+
*/
|
|
99
|
+
export interface ListCodeSandboxSnapshotsResponse {
|
|
100
|
+
/** Whether the request was successful */
|
|
101
|
+
success: boolean;
|
|
102
|
+
/** Response message from the server */
|
|
103
|
+
message: string;
|
|
104
|
+
/** Array of code sandbox snapshots */
|
|
105
|
+
snapshots: CodeSandboxSnapshotData[];
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Snapshot domain model that wraps API responses with convenient methods.
|
|
109
|
+
* Provides code sandbox snapshot management with data refresh and lifecycle operations.
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* ```typescript
|
|
113
|
+
* const snapshot = await runtime.createSnapshot('my-checkpoint');
|
|
114
|
+
* const runtime = await snapshot.restore();
|
|
115
|
+
* ```
|
|
116
|
+
*/
|
|
117
|
+
export declare class CodeSandboxSnapshotDTO {
|
|
118
|
+
protected _data: CodeSandboxSnapshotData;
|
|
119
|
+
private _client;
|
|
120
|
+
private _deleted;
|
|
121
|
+
/**
|
|
122
|
+
* Create a Code Sandbox Snapshot instance.
|
|
123
|
+
*
|
|
124
|
+
* @param data - Snapshot data from API
|
|
125
|
+
* @param client - Client instance
|
|
126
|
+
*/
|
|
127
|
+
constructor(data: CodeSandboxSnapshotData, client: DatalayerClient);
|
|
128
|
+
/**
|
|
129
|
+
* Check if this snapshot has been deleted and throw error if so.
|
|
130
|
+
* @throws Error if deleted
|
|
131
|
+
*/
|
|
132
|
+
private _checkDeleted;
|
|
133
|
+
/** Unique identifier for the snapshot. */
|
|
134
|
+
get uid(): string;
|
|
135
|
+
/** Name of the snapshot. */
|
|
136
|
+
get name(): string;
|
|
137
|
+
/** Description of the snapshot. */
|
|
138
|
+
get description(): string;
|
|
139
|
+
/** Name of the environment used by the runtime. */
|
|
140
|
+
get environment(): string;
|
|
141
|
+
/** When the snapshot was last updated. */
|
|
142
|
+
get updatedAt(): Date;
|
|
143
|
+
/**
|
|
144
|
+
* Delete this snapshot permanently.
|
|
145
|
+
* After deletion, subsequent calls to dynamic methods will throw errors.
|
|
146
|
+
*/
|
|
147
|
+
delete(): Promise<void>;
|
|
148
|
+
/**
|
|
149
|
+
* Create a code sandbox from this snapshot (restore functionality).
|
|
150
|
+
*
|
|
151
|
+
* @param minutesLimit - Time limit in minutes for the restored runtime
|
|
152
|
+
* @returns Created Runtime instance
|
|
153
|
+
*/
|
|
154
|
+
restore(minutesLimit: number): Promise<RuntimeDTO>;
|
|
155
|
+
/**
|
|
156
|
+
* Get code snapshot snapshot data in camelCase format.
|
|
157
|
+
* Returns only the core fields that consumers need.
|
|
158
|
+
* This provides a stable interface regardless of API changes.
|
|
159
|
+
* Note: Returns current cached state - call getStatus() first if you need fresh data.
|
|
160
|
+
*
|
|
161
|
+
* @returns Core code snapshot snapshot data with camelCase properties
|
|
162
|
+
*/
|
|
163
|
+
toJSON(): CodeSandboxSnapshotJSON;
|
|
164
|
+
/**
|
|
165
|
+
* Get the raw snapshot data exactly as received from the API.
|
|
166
|
+
* This preserves the original snake_case naming from the API response.
|
|
167
|
+
*
|
|
168
|
+
* @returns Raw snapshot data from API
|
|
169
|
+
*/
|
|
170
|
+
rawData(): CodeSandboxSnapshotData;
|
|
171
|
+
/** String representation of the snapshot. */
|
|
172
|
+
toString(): string;
|
|
173
|
+
}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
import { snapshots } from '../api/runtimes';
|
|
6
|
+
import { validateJSON } from '@datalayer/core/lib/api/utils/validation';
|
|
7
|
+
/**
|
|
8
|
+
* Snapshot domain model that wraps API responses with convenient methods.
|
|
9
|
+
* Provides code sandbox snapshot management with data refresh and lifecycle operations.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* const snapshot = await runtime.createSnapshot('my-checkpoint');
|
|
14
|
+
* const runtime = await snapshot.restore();
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export class CodeSandboxSnapshotDTO {
|
|
18
|
+
_data;
|
|
19
|
+
_client;
|
|
20
|
+
_deleted = false;
|
|
21
|
+
/**
|
|
22
|
+
* Create a Code Sandbox Snapshot instance.
|
|
23
|
+
*
|
|
24
|
+
* @param data - Snapshot data from API
|
|
25
|
+
* @param client - Client instance
|
|
26
|
+
*/
|
|
27
|
+
constructor(data, client) {
|
|
28
|
+
this._data = data;
|
|
29
|
+
this._client = client;
|
|
30
|
+
}
|
|
31
|
+
// ========================================================================
|
|
32
|
+
// Helper Methods
|
|
33
|
+
// ========================================================================
|
|
34
|
+
/**
|
|
35
|
+
* Check if this snapshot has been deleted and throw error if so.
|
|
36
|
+
* @throws Error if deleted
|
|
37
|
+
*/
|
|
38
|
+
_checkDeleted() {
|
|
39
|
+
if (this._deleted) {
|
|
40
|
+
throw new Error(`Snapshot ${this._data.uid} has been deleted and no longer exists`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// ========================================================================
|
|
44
|
+
// Static Properties (set at creation, never change)
|
|
45
|
+
// ========================================================================
|
|
46
|
+
/** Unique identifier for the snapshot. */
|
|
47
|
+
get uid() {
|
|
48
|
+
this._checkDeleted();
|
|
49
|
+
return this._data.uid;
|
|
50
|
+
}
|
|
51
|
+
/** Name of the snapshot. */
|
|
52
|
+
get name() {
|
|
53
|
+
this._checkDeleted();
|
|
54
|
+
return this._data.name;
|
|
55
|
+
}
|
|
56
|
+
/** Description of the snapshot. */
|
|
57
|
+
get description() {
|
|
58
|
+
this._checkDeleted();
|
|
59
|
+
return this._data.description || '';
|
|
60
|
+
}
|
|
61
|
+
/** Name of the environment used by the runtime. */
|
|
62
|
+
get environment() {
|
|
63
|
+
this._checkDeleted();
|
|
64
|
+
return this._data.environment;
|
|
65
|
+
}
|
|
66
|
+
/** When the snapshot was last updated. */
|
|
67
|
+
get updatedAt() {
|
|
68
|
+
this._checkDeleted();
|
|
69
|
+
return new Date(this._data.updated_at);
|
|
70
|
+
}
|
|
71
|
+
// ========================================================================
|
|
72
|
+
// Action Methods
|
|
73
|
+
// ========================================================================
|
|
74
|
+
/**
|
|
75
|
+
* Delete this snapshot permanently.
|
|
76
|
+
* After deletion, subsequent calls to dynamic methods will throw errors.
|
|
77
|
+
*/
|
|
78
|
+
async delete() {
|
|
79
|
+
this._checkDeleted();
|
|
80
|
+
const token = this._client.getToken();
|
|
81
|
+
const runtimesUrl = this._client.getRuntimesUrl();
|
|
82
|
+
await snapshots.deleteSnapshot(token, this.uid, runtimesUrl);
|
|
83
|
+
this._deleted = true;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Create a code sandbox from this snapshot (restore functionality).
|
|
87
|
+
*
|
|
88
|
+
* @param minutesLimit - Time limit in minutes for the restored runtime
|
|
89
|
+
* @returns Created Runtime instance
|
|
90
|
+
*/
|
|
91
|
+
async restore(minutesLimit) {
|
|
92
|
+
this._checkDeleted();
|
|
93
|
+
return await this._client.createRuntime({
|
|
94
|
+
environmentName: this.environment,
|
|
95
|
+
type: 'notebook',
|
|
96
|
+
givenName: `Restored from ${this.name}`,
|
|
97
|
+
minutesLimit: minutesLimit,
|
|
98
|
+
fromSnapshotId: this.uid,
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
// ========================================================================
|
|
102
|
+
// Utility Methods
|
|
103
|
+
// ========================================================================
|
|
104
|
+
/**
|
|
105
|
+
* Get code snapshot snapshot data in camelCase format.
|
|
106
|
+
* Returns only the core fields that consumers need.
|
|
107
|
+
* This provides a stable interface regardless of API changes.
|
|
108
|
+
* Note: Returns current cached state - call getStatus() first if you need fresh data.
|
|
109
|
+
*
|
|
110
|
+
* @returns Core code snapshot snapshot data with camelCase properties
|
|
111
|
+
*/
|
|
112
|
+
toJSON() {
|
|
113
|
+
this._checkDeleted();
|
|
114
|
+
const obj = {
|
|
115
|
+
uid: this.uid,
|
|
116
|
+
name: this.name,
|
|
117
|
+
description: this.description,
|
|
118
|
+
environment: this.environment,
|
|
119
|
+
updatedAt: this.updatedAt.toISOString(),
|
|
120
|
+
};
|
|
121
|
+
validateJSON(obj, 'Snapshot');
|
|
122
|
+
return obj;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Get the raw snapshot data exactly as received from the API.
|
|
126
|
+
* This preserves the original snake_case naming from the API response.
|
|
127
|
+
*
|
|
128
|
+
* @returns Raw snapshot data from API
|
|
129
|
+
*/
|
|
130
|
+
rawData() {
|
|
131
|
+
this._checkDeleted();
|
|
132
|
+
return this._data;
|
|
133
|
+
}
|
|
134
|
+
/** String representation of the snapshot. */
|
|
135
|
+
toString() {
|
|
136
|
+
this._checkDeleted();
|
|
137
|
+
return `Snapshot(${this.uid}, ${this.name})`;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { IBaseSpace } from './Space';
|
|
2
|
+
import { Instructor } from '@datalayer/core/lib/models/Instructor';
|
|
3
|
+
import { IStudent } from '@datalayer/core/lib/models/Student';
|
|
4
|
+
import { ISchool } from '@datalayer/core/lib/models/School';
|
|
5
|
+
import { ISpace } from './Space';
|
|
6
|
+
import { ISpaceItem } from './SpaceItem';
|
|
7
|
+
export type ICourse = IBaseSpace & {
|
|
8
|
+
type: 'space';
|
|
9
|
+
variant: 'course';
|
|
10
|
+
seedSpace?: ISpace;
|
|
11
|
+
school?: ISchool;
|
|
12
|
+
instructor?: Instructor;
|
|
13
|
+
students?: Map<string, IStudent>;
|
|
14
|
+
items: Array<ISpaceItem>;
|
|
15
|
+
itemIds: Array<string>;
|
|
16
|
+
};
|
|
17
|
+
export default ICourse;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { IItem } from './Item';
|
|
2
|
+
export type IDataset = IItem & {
|
|
3
|
+
type: 'dataset';
|
|
4
|
+
fileName: string;
|
|
5
|
+
datasetExtension: string;
|
|
6
|
+
contentLength: number;
|
|
7
|
+
contentType: string;
|
|
8
|
+
mimeType: string;
|
|
9
|
+
mimeTypeParams?: object;
|
|
10
|
+
bucketName?: string;
|
|
11
|
+
path?: string;
|
|
12
|
+
creationDate: Date;
|
|
13
|
+
lastPublicationDate?: Date;
|
|
14
|
+
cdnUrl: string;
|
|
15
|
+
};
|
|
16
|
+
export default IDataset;
|