@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,155 @@
|
|
|
1
|
+
import type { AgentRuntimesClient as DatalayerClient } from '../client/AgentRuntimesClient';
|
|
2
|
+
import { ItemDTO } from './ItemDTO';
|
|
3
|
+
/**
|
|
4
|
+
* Represents a Lexical document (rich text editor)
|
|
5
|
+
* @interface Lexical
|
|
6
|
+
*/
|
|
7
|
+
export interface LexicalData {
|
|
8
|
+
id: string;
|
|
9
|
+
uid: string;
|
|
10
|
+
name?: string;
|
|
11
|
+
name_t?: string;
|
|
12
|
+
content?: any;
|
|
13
|
+
space_id?: string;
|
|
14
|
+
owner_id?: string;
|
|
15
|
+
creator_uid?: string;
|
|
16
|
+
creator_handle_s?: string;
|
|
17
|
+
created_at?: string;
|
|
18
|
+
creation_ts_dt?: string;
|
|
19
|
+
updated_at?: string;
|
|
20
|
+
last_update_ts_dt?: string;
|
|
21
|
+
cdn_url_s: string;
|
|
22
|
+
type_s?: string;
|
|
23
|
+
public_b?: boolean;
|
|
24
|
+
description_t?: string;
|
|
25
|
+
document_name_s?: string;
|
|
26
|
+
document_extension_s: string;
|
|
27
|
+
document_format_s?: string;
|
|
28
|
+
content_length_i?: number;
|
|
29
|
+
content_type_s?: string;
|
|
30
|
+
mime_type_s?: string;
|
|
31
|
+
s3_path_s?: string;
|
|
32
|
+
s3_url_s?: string;
|
|
33
|
+
model_s?: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Request payload for creating a Lexical document
|
|
37
|
+
* @interface CreateLexicalRequest
|
|
38
|
+
*/
|
|
39
|
+
export interface CreateLexicalRequest {
|
|
40
|
+
spaceId: string;
|
|
41
|
+
documentType: string;
|
|
42
|
+
name: string;
|
|
43
|
+
description: string;
|
|
44
|
+
file?: File | Blob;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Response from creating a Lexical document
|
|
48
|
+
* @interface CreateLexicalResponse
|
|
49
|
+
*/
|
|
50
|
+
export interface CreateLexicalResponse {
|
|
51
|
+
success: boolean;
|
|
52
|
+
message: string;
|
|
53
|
+
document?: LexicalData;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Response from getting a Lexical document
|
|
57
|
+
* @interface GetLexicalResponse
|
|
58
|
+
*/
|
|
59
|
+
export interface GetLexicalResponse {
|
|
60
|
+
success: boolean;
|
|
61
|
+
message: string;
|
|
62
|
+
document?: LexicalData;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Request payload for updating a Lexical document
|
|
66
|
+
* @interface UpdateLexicalRequest
|
|
67
|
+
*/
|
|
68
|
+
export interface UpdateLexicalRequest {
|
|
69
|
+
name?: string;
|
|
70
|
+
description?: string;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Response from updating a Lexical document
|
|
74
|
+
* @interface UpdateLexicalResponse
|
|
75
|
+
*/
|
|
76
|
+
export interface UpdateLexicalResponse {
|
|
77
|
+
success: boolean;
|
|
78
|
+
message: string;
|
|
79
|
+
document: LexicalData;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Stable public interface for Lexical data.
|
|
83
|
+
* This is the contract that Client consumers can rely on.
|
|
84
|
+
* The raw API may change, but this interface remains stable.
|
|
85
|
+
*/
|
|
86
|
+
export interface LexicalJSON {
|
|
87
|
+
/** Unique identifier for the lexical document */
|
|
88
|
+
uid: string;
|
|
89
|
+
/** Unique identifier for the lexical document */
|
|
90
|
+
id: string;
|
|
91
|
+
/** Name of the lexical document */
|
|
92
|
+
name: string;
|
|
93
|
+
/** Description of the lexical document */
|
|
94
|
+
description: string;
|
|
95
|
+
/** Type of lexical document */
|
|
96
|
+
type: string;
|
|
97
|
+
/** File extension of the lexical document */
|
|
98
|
+
extension: string;
|
|
99
|
+
/** ISO 8601 timestamp when the document was created */
|
|
100
|
+
createdAt: string;
|
|
101
|
+
/** ISO 8601 timestamp when the document was last updated */
|
|
102
|
+
updatedAt: string;
|
|
103
|
+
/** CDN URL for accessing the document */
|
|
104
|
+
cdnUrl: string;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Lexical domain model that extends the base Item class.
|
|
108
|
+
* Provides lexical document functionality for managing rich text documents.
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* ```typescript
|
|
112
|
+
* const lexical = await client.createLexical(formData);
|
|
113
|
+
* await lexical.update({ name: 'Updated Documentation' });
|
|
114
|
+
* ```
|
|
115
|
+
*/
|
|
116
|
+
export declare class LexicalDTO extends ItemDTO<LexicalData> {
|
|
117
|
+
/**
|
|
118
|
+
* Create a Lexical instance.
|
|
119
|
+
*
|
|
120
|
+
* @param data - Lexical data from API
|
|
121
|
+
* @param client - Client instance
|
|
122
|
+
*/
|
|
123
|
+
constructor(data: LexicalData, client: DatalayerClient);
|
|
124
|
+
/** Document type identifier. */
|
|
125
|
+
get type(): string;
|
|
126
|
+
/** The cached name of the document. */
|
|
127
|
+
get name(): string;
|
|
128
|
+
/** Get the current name of the document from API. */
|
|
129
|
+
getName(): Promise<string>;
|
|
130
|
+
/** The cached content. */
|
|
131
|
+
get content(): any;
|
|
132
|
+
/** Description of the lexical document. */
|
|
133
|
+
get description(): string;
|
|
134
|
+
/** Get the document extension. */
|
|
135
|
+
get extension(): string;
|
|
136
|
+
/** Get when the document was last updated from API. */
|
|
137
|
+
getUpdatedAt(): Promise<Date>;
|
|
138
|
+
/** Update the document. */
|
|
139
|
+
update(name?: string, description?: string): Promise<this>;
|
|
140
|
+
/**
|
|
141
|
+
* Get lexical document data in camelCase format.
|
|
142
|
+
* Returns only the core fields that consumers need.
|
|
143
|
+
* This provides a stable interface regardless of API changes.
|
|
144
|
+
*
|
|
145
|
+
* @returns Core lexical data with camelCase properties
|
|
146
|
+
*/
|
|
147
|
+
toJSON(): LexicalJSON;
|
|
148
|
+
/**
|
|
149
|
+
* Get the raw lexical data exactly as received from the API.
|
|
150
|
+
* This preserves the original snake_case naming from the API response.
|
|
151
|
+
*
|
|
152
|
+
* @returns Raw lexical data from API
|
|
153
|
+
*/
|
|
154
|
+
rawData(): LexicalData;
|
|
155
|
+
}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Lexical domain model for the Datalayer Client.
|
|
7
|
+
*
|
|
8
|
+
* @module models/LexicalDTO
|
|
9
|
+
*/
|
|
10
|
+
import * as lexicals from '../api/spacer/lexicals';
|
|
11
|
+
import { ItemTypes } from '@datalayer/core/lib/client';
|
|
12
|
+
import { ItemDTO } from './ItemDTO';
|
|
13
|
+
import { validateJSON } from '@datalayer/core/lib/api/utils/validation';
|
|
14
|
+
/**
|
|
15
|
+
* Lexical domain model that extends the base Item class.
|
|
16
|
+
* Provides lexical document functionality for managing rich text documents.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* const lexical = await client.createLexical(formData);
|
|
21
|
+
* await lexical.update({ name: 'Updated Documentation' });
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export class LexicalDTO extends ItemDTO {
|
|
25
|
+
/**
|
|
26
|
+
* Create a Lexical instance.
|
|
27
|
+
*
|
|
28
|
+
* @param data - Lexical data from API
|
|
29
|
+
* @param client - Client instance
|
|
30
|
+
*/
|
|
31
|
+
constructor(data, client) {
|
|
32
|
+
super(data, client);
|
|
33
|
+
}
|
|
34
|
+
// ========================================================================
|
|
35
|
+
// Abstract Method Implementations
|
|
36
|
+
// ========================================================================
|
|
37
|
+
/** Document type identifier. */
|
|
38
|
+
get type() {
|
|
39
|
+
this._checkDeleted();
|
|
40
|
+
return ItemTypes.LEXICAL;
|
|
41
|
+
}
|
|
42
|
+
/** The cached name of the document. */
|
|
43
|
+
get name() {
|
|
44
|
+
this._checkDeleted();
|
|
45
|
+
return this._data.name_t || this._data.name || '';
|
|
46
|
+
}
|
|
47
|
+
/** Get the current name of the document from API. */
|
|
48
|
+
async getName() {
|
|
49
|
+
this._checkDeleted();
|
|
50
|
+
const token = this._getToken();
|
|
51
|
+
const spacerUrl = this._getSpacerUrl();
|
|
52
|
+
const response = await lexicals.getLexical(token, this.uid, spacerUrl);
|
|
53
|
+
if (response.document) {
|
|
54
|
+
this._updateData(response.document);
|
|
55
|
+
return response.document.name_t || response.document.name || '';
|
|
56
|
+
}
|
|
57
|
+
return this.name;
|
|
58
|
+
}
|
|
59
|
+
/** The cached content. */
|
|
60
|
+
get content() {
|
|
61
|
+
this._checkDeleted();
|
|
62
|
+
if (!this._data.content && this._data.model_s) {
|
|
63
|
+
try {
|
|
64
|
+
return JSON.parse(this._data.model_s);
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
return this._data.model_s;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return this._data.content;
|
|
71
|
+
}
|
|
72
|
+
/** Description of the lexical document. */
|
|
73
|
+
get description() {
|
|
74
|
+
this._checkDeleted();
|
|
75
|
+
return this._data.description_t || '';
|
|
76
|
+
}
|
|
77
|
+
/** Get the document extension. */
|
|
78
|
+
get extension() {
|
|
79
|
+
this._checkDeleted();
|
|
80
|
+
const ext = this._data.document_extension_s;
|
|
81
|
+
return ext ? (ext.startsWith('.') ? ext : `.${ext}`) : '.lexical';
|
|
82
|
+
}
|
|
83
|
+
/** Get when the document was last updated from API. */
|
|
84
|
+
async getUpdatedAt() {
|
|
85
|
+
this._checkDeleted();
|
|
86
|
+
const token = this._getToken();
|
|
87
|
+
const spacerUrl = this._getSpacerUrl();
|
|
88
|
+
const response = await lexicals.getLexical(token, this.uid, spacerUrl);
|
|
89
|
+
if (response.document) {
|
|
90
|
+
this._updateData(response.document);
|
|
91
|
+
const dateStr = response.document.last_update_ts_dt ||
|
|
92
|
+
response.document.updated_at ||
|
|
93
|
+
response.document.creation_ts_dt ||
|
|
94
|
+
response.document.created_at;
|
|
95
|
+
if (!dateStr) {
|
|
96
|
+
throw new Error('No timestamp available for lexical document');
|
|
97
|
+
}
|
|
98
|
+
return new Date(dateStr);
|
|
99
|
+
}
|
|
100
|
+
const dateStr = this._data.last_update_ts_dt ||
|
|
101
|
+
this._data.updated_at ||
|
|
102
|
+
this._data.creation_ts_dt ||
|
|
103
|
+
this._data.created_at;
|
|
104
|
+
if (!dateStr) {
|
|
105
|
+
throw new Error('No timestamp available for lexical document');
|
|
106
|
+
}
|
|
107
|
+
return new Date(dateStr);
|
|
108
|
+
}
|
|
109
|
+
/** Update the document. */
|
|
110
|
+
async update(name, description) {
|
|
111
|
+
// FIXME: check if both are needed, and use the existing values if only one provided
|
|
112
|
+
this._checkDeleted();
|
|
113
|
+
const token = this._getToken();
|
|
114
|
+
const spacerUrl = this._getSpacerUrl();
|
|
115
|
+
const updateData = {};
|
|
116
|
+
if (name !== undefined)
|
|
117
|
+
updateData.name = name;
|
|
118
|
+
if (description !== undefined)
|
|
119
|
+
updateData.description = description;
|
|
120
|
+
const response = await lexicals.updateLexical(token, this.uid, updateData, spacerUrl);
|
|
121
|
+
this._updateData(response.document);
|
|
122
|
+
return this;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Get lexical document data in camelCase format.
|
|
126
|
+
* Returns only the core fields that consumers need.
|
|
127
|
+
* This provides a stable interface regardless of API changes.
|
|
128
|
+
*
|
|
129
|
+
* @returns Core lexical data with camelCase properties
|
|
130
|
+
*/
|
|
131
|
+
toJSON() {
|
|
132
|
+
this._checkDeleted();
|
|
133
|
+
const obj = {
|
|
134
|
+
uid: this.uid,
|
|
135
|
+
id: this.id,
|
|
136
|
+
name: this.name,
|
|
137
|
+
description: this.description,
|
|
138
|
+
type: this.type,
|
|
139
|
+
extension: this.extension,
|
|
140
|
+
createdAt: this.createdAt.toDateString(),
|
|
141
|
+
updatedAt: this.updatedAt.toDateString(),
|
|
142
|
+
cdnUrl: this._data.cdn_url_s,
|
|
143
|
+
};
|
|
144
|
+
validateJSON(obj, 'Lexical');
|
|
145
|
+
return obj;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Get the raw lexical data exactly as received from the API.
|
|
149
|
+
* This preserves the original snake_case naming from the API response.
|
|
150
|
+
*
|
|
151
|
+
* @returns Raw lexical data from API
|
|
152
|
+
*/
|
|
153
|
+
rawData() {
|
|
154
|
+
this._checkDeleted();
|
|
155
|
+
return this._data;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IExercise } from './Exercise';
|
|
2
|
+
import { IDataset } from './Dataset';
|
|
3
|
+
export type LibraryType = 'public' | 'private';
|
|
4
|
+
export type Library = {
|
|
5
|
+
id: string;
|
|
6
|
+
type: LibraryType;
|
|
7
|
+
exercises: Array<IExercise>;
|
|
8
|
+
datasets: Array<IDataset>;
|
|
9
|
+
};
|
|
10
|
+
export default Library;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { INotebookContent } from '@jupyterlab/nbformat';
|
|
2
|
+
import { IItem } from './Item';
|
|
3
|
+
import { IDataset } from './Dataset';
|
|
4
|
+
export type IBaseNotebook = IItem & {
|
|
5
|
+
nbformat?: INotebookContent;
|
|
6
|
+
datasets: Array<IDataset>;
|
|
7
|
+
};
|
|
8
|
+
export type INotebook = IBaseNotebook & {
|
|
9
|
+
type: 'notebook';
|
|
10
|
+
};
|
|
11
|
+
export default INotebook;
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import type { AgentRuntimesClient as DatalayerClient } from '../client/AgentRuntimesClient';
|
|
2
|
+
import { ItemDTO } from './ItemDTO';
|
|
3
|
+
/**
|
|
4
|
+
* Represents a Jupyter notebook document
|
|
5
|
+
* @interface NotebookData
|
|
6
|
+
*/
|
|
7
|
+
export interface NotebookData {
|
|
8
|
+
id: string;
|
|
9
|
+
uid: string;
|
|
10
|
+
name_t: string;
|
|
11
|
+
description_t: string;
|
|
12
|
+
type_s: string;
|
|
13
|
+
notebook_extension_s: string;
|
|
14
|
+
s3_path_s: string;
|
|
15
|
+
s3_url_s: string;
|
|
16
|
+
cdn_url_s: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Stable public interface for Notebook data.
|
|
20
|
+
* This is the contract that Client consumers can rely on.
|
|
21
|
+
* The raw API may change, but this interface remains stable.
|
|
22
|
+
*/
|
|
23
|
+
export interface NotebookJSON {
|
|
24
|
+
/** uuid of the notebook */
|
|
25
|
+
id: string;
|
|
26
|
+
/** ulid for of the notebook */
|
|
27
|
+
uid: string;
|
|
28
|
+
/** Name of the notebook */
|
|
29
|
+
name: string;
|
|
30
|
+
/** Description of the notebook */
|
|
31
|
+
description: string;
|
|
32
|
+
/** Type of notebook */
|
|
33
|
+
type: string;
|
|
34
|
+
/** File extension of the notebook */
|
|
35
|
+
extension: string;
|
|
36
|
+
/** CDN URL for accessing the notebook */
|
|
37
|
+
cdnUrl: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Notebook domain model that extends the base Item class.
|
|
41
|
+
* Provides notebook-specific functionality for managing Jupyter notebooks.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```typescript
|
|
45
|
+
* const notebook = await client.createNotebook(formData);
|
|
46
|
+
* const kernelSpec = await notebook.getKernelSpec();
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export declare class NotebookDTO extends ItemDTO<NotebookData> {
|
|
50
|
+
/**
|
|
51
|
+
* Create a Notebook instance.
|
|
52
|
+
*
|
|
53
|
+
* @param data - Notebook data from API
|
|
54
|
+
* @param client - Client instance
|
|
55
|
+
*/
|
|
56
|
+
constructor(data: NotebookData, client: DatalayerClient);
|
|
57
|
+
/** Document type identifier. */
|
|
58
|
+
get type(): string;
|
|
59
|
+
/** The cached name of the notebook. */
|
|
60
|
+
get name(): string;
|
|
61
|
+
/** The cached content. */
|
|
62
|
+
get content(): any;
|
|
63
|
+
/** Get the current name from API. */
|
|
64
|
+
getName(): Promise<string>;
|
|
65
|
+
/** Get when the notebook was last updated from API. */
|
|
66
|
+
getUpdatedAt(): Promise<Date>;
|
|
67
|
+
/** Update the notebook. */
|
|
68
|
+
update(name?: string, description?: string): Promise<this>;
|
|
69
|
+
/** File path within the space. */
|
|
70
|
+
get path(): string;
|
|
71
|
+
/** Version number. */
|
|
72
|
+
get version(): number;
|
|
73
|
+
/** Notebook metadata. */
|
|
74
|
+
get metadata(): Record<string, any>;
|
|
75
|
+
/** Kernel specification (cached). */
|
|
76
|
+
get kernelSpec(): any;
|
|
77
|
+
/** Description of the notebook. */
|
|
78
|
+
get description(): string;
|
|
79
|
+
/** Get the notebook extension. */
|
|
80
|
+
get extension(): string;
|
|
81
|
+
/**
|
|
82
|
+
* Get notebook data in camelCase format.
|
|
83
|
+
* Returns only the core fields that consumers need.
|
|
84
|
+
* This provides a stable interface regardless of API changes.
|
|
85
|
+
*
|
|
86
|
+
* @returns Core notebook data with camelCase properties
|
|
87
|
+
*/
|
|
88
|
+
toJSON(): NotebookJSON;
|
|
89
|
+
/**
|
|
90
|
+
* Get the raw notebook data exactly as received from the API.
|
|
91
|
+
* This preserves the original snake_case naming from the API response.
|
|
92
|
+
*
|
|
93
|
+
* @returns Raw notebook data from API
|
|
94
|
+
*/
|
|
95
|
+
rawData(): NotebookData;
|
|
96
|
+
}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
import * as notebooks from '../api/spacer/notebooks';
|
|
6
|
+
import { ItemDTO } from './ItemDTO';
|
|
7
|
+
import { ItemTypes } from '@datalayer/core/lib/client/constants';
|
|
8
|
+
import { validateJSON } from '@datalayer/core/lib/api/utils/validation';
|
|
9
|
+
/**
|
|
10
|
+
* Notebook domain model that extends the base Item class.
|
|
11
|
+
* Provides notebook-specific functionality for managing Jupyter notebooks.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* const notebook = await client.createNotebook(formData);
|
|
16
|
+
* const kernelSpec = await notebook.getKernelSpec();
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export class NotebookDTO extends ItemDTO {
|
|
20
|
+
/**
|
|
21
|
+
* Create a Notebook instance.
|
|
22
|
+
*
|
|
23
|
+
* @param data - Notebook data from API
|
|
24
|
+
* @param client - Client instance
|
|
25
|
+
*/
|
|
26
|
+
constructor(data, client) {
|
|
27
|
+
super(data, client);
|
|
28
|
+
}
|
|
29
|
+
// ========================================================================
|
|
30
|
+
// Abstract Method Implementations
|
|
31
|
+
// ========================================================================
|
|
32
|
+
/** Document type identifier. */
|
|
33
|
+
get type() {
|
|
34
|
+
this._checkDeleted();
|
|
35
|
+
return ItemTypes.NOTEBOOK;
|
|
36
|
+
}
|
|
37
|
+
/** The cached name of the notebook. */
|
|
38
|
+
get name() {
|
|
39
|
+
this._checkDeleted();
|
|
40
|
+
return (this._data.name_t ||
|
|
41
|
+
this._data.notebook_name_s ||
|
|
42
|
+
this._data.name ||
|
|
43
|
+
'');
|
|
44
|
+
}
|
|
45
|
+
/** The cached content. */
|
|
46
|
+
get content() {
|
|
47
|
+
this._checkDeleted();
|
|
48
|
+
if (!this._data.content && this._data.model_s) {
|
|
49
|
+
try {
|
|
50
|
+
return JSON.parse(this._data.model_s);
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
return this._data.model_s;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return this._data.content;
|
|
57
|
+
}
|
|
58
|
+
/** Get the current name from API. */
|
|
59
|
+
async getName() {
|
|
60
|
+
this._checkDeleted();
|
|
61
|
+
// For now, return cached value - implement API call if needed
|
|
62
|
+
return this.name;
|
|
63
|
+
}
|
|
64
|
+
/** Get when the notebook was last updated from API. */
|
|
65
|
+
async getUpdatedAt() {
|
|
66
|
+
this._checkDeleted();
|
|
67
|
+
const dateStr = this._data.updated_at || this._data.update_ts_dt;
|
|
68
|
+
if (!dateStr) {
|
|
69
|
+
throw new Error('No update timestamp available for notebook');
|
|
70
|
+
}
|
|
71
|
+
return new Date(dateStr);
|
|
72
|
+
}
|
|
73
|
+
/** Update the notebook. */
|
|
74
|
+
async update(name, description) {
|
|
75
|
+
// FIXME: check if both are needed, and use the existing values if only one provided
|
|
76
|
+
this._checkDeleted();
|
|
77
|
+
const token = this._client.getToken();
|
|
78
|
+
const spacerUrl = this._client.getSpacerUrl();
|
|
79
|
+
const updateData = {};
|
|
80
|
+
if (name !== undefined)
|
|
81
|
+
updateData.name = name;
|
|
82
|
+
if (description !== undefined)
|
|
83
|
+
updateData.description = description;
|
|
84
|
+
await notebooks.updateNotebook(token, this.uid, updateData, spacerUrl);
|
|
85
|
+
// FIXME: handle partial updates
|
|
86
|
+
return this;
|
|
87
|
+
}
|
|
88
|
+
// ========================================================================
|
|
89
|
+
// Notebook-specific Properties
|
|
90
|
+
// ========================================================================
|
|
91
|
+
/** File path within the space. */
|
|
92
|
+
get path() {
|
|
93
|
+
this._checkDeleted();
|
|
94
|
+
return this._data.path || '';
|
|
95
|
+
}
|
|
96
|
+
/** Version number. */
|
|
97
|
+
get version() {
|
|
98
|
+
this._checkDeleted();
|
|
99
|
+
return this._data.version || 0;
|
|
100
|
+
}
|
|
101
|
+
/** Notebook metadata. */
|
|
102
|
+
get metadata() {
|
|
103
|
+
this._checkDeleted();
|
|
104
|
+
return this._data.metadata || {};
|
|
105
|
+
}
|
|
106
|
+
/** Kernel specification (cached). */
|
|
107
|
+
get kernelSpec() {
|
|
108
|
+
this._checkDeleted();
|
|
109
|
+
return this._data.kernel_spec;
|
|
110
|
+
}
|
|
111
|
+
/** Description of the notebook. */
|
|
112
|
+
get description() {
|
|
113
|
+
this._checkDeleted();
|
|
114
|
+
return this._data.description_t || '';
|
|
115
|
+
}
|
|
116
|
+
/** Get the notebook extension. */
|
|
117
|
+
get extension() {
|
|
118
|
+
this._checkDeleted();
|
|
119
|
+
const ext = this._data.notebook_extension_s;
|
|
120
|
+
return ext ? (ext.startsWith('.') ? ext : `.${ext}`) : '.ipynb';
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Get notebook data in camelCase format.
|
|
124
|
+
* Returns only the core fields that consumers need.
|
|
125
|
+
* This provides a stable interface regardless of API changes.
|
|
126
|
+
*
|
|
127
|
+
* @returns Core notebook data with camelCase properties
|
|
128
|
+
*/
|
|
129
|
+
toJSON() {
|
|
130
|
+
this._checkDeleted();
|
|
131
|
+
const obj = {
|
|
132
|
+
id: this.id,
|
|
133
|
+
uid: this.uid,
|
|
134
|
+
name: this.name,
|
|
135
|
+
description: this.description,
|
|
136
|
+
type: this.type,
|
|
137
|
+
extension: this.extension,
|
|
138
|
+
cdnUrl: this._data.cdn_url_s,
|
|
139
|
+
};
|
|
140
|
+
validateJSON(obj, 'Notebook');
|
|
141
|
+
return obj;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Get the raw notebook data exactly as received from the API.
|
|
145
|
+
* This preserves the original snake_case naming from the API response.
|
|
146
|
+
*
|
|
147
|
+
* @returns Raw notebook data from API
|
|
148
|
+
*/
|
|
149
|
+
rawData() {
|
|
150
|
+
this._checkDeleted();
|
|
151
|
+
return this._data;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { INotebookContent } from '@jupyterlab/nbformat';
|
|
2
|
+
import { IUser } from '@datalayer/core/lib/models/User';
|
|
3
|
+
import { PageTagName } from './PageTag';
|
|
4
|
+
import { ICodeSandboxSnapshot } from './CodeSandboxSnapshot';
|
|
5
|
+
export type PageTheme = 'default';
|
|
6
|
+
export type PageVariant = 'document' | 'cell' | 'notebook';
|
|
7
|
+
/**
|
|
8
|
+
* Page attributes.
|
|
9
|
+
*
|
|
10
|
+
* - Notebook
|
|
11
|
+
* - Screen Capture
|
|
12
|
+
* - Theme
|
|
13
|
+
* - Tags
|
|
14
|
+
* - Video Explainer
|
|
15
|
+
* - Kernel Launcher Button
|
|
16
|
+
* - Kernel Snapshot
|
|
17
|
+
* - Share Button
|
|
18
|
+
* - Stars Counter - 1 ⭐ -> 1 Credit
|
|
19
|
+
*/
|
|
20
|
+
export type IPage = {
|
|
21
|
+
id: string;
|
|
22
|
+
variant: PageVariant;
|
|
23
|
+
type: 'page';
|
|
24
|
+
name: string;
|
|
25
|
+
description: string;
|
|
26
|
+
theme: PageTheme;
|
|
27
|
+
tags: Array<PageTagName>;
|
|
28
|
+
nbformat: INotebookContent;
|
|
29
|
+
screenCapture?: string;
|
|
30
|
+
creator?: IUser;
|
|
31
|
+
creatorId?: string;
|
|
32
|
+
selectedPrincipalUid?: string;
|
|
33
|
+
selectedPrincipalKind?: 'personal' | 'organization' | 'team';
|
|
34
|
+
selectedOrganizationUid?: string;
|
|
35
|
+
kernelSnapshot?: ICodeSandboxSnapshot;
|
|
36
|
+
kernelSnapshotId?: string;
|
|
37
|
+
createdAt?: string;
|
|
38
|
+
updatedAt?: string;
|
|
39
|
+
};
|
|
40
|
+
export declare const asPage: (s: any) => IPage;
|
|
41
|
+
export default IPage;
|
|
@@ -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 { asUser } from '@datalayer/core/lib/models/User';
|
|
6
|
+
import { asCodeSandboxSnapshot, } from './CodeSandboxSnapshot';
|
|
7
|
+
export const asPage = (s) => {
|
|
8
|
+
return {
|
|
9
|
+
id: s.uid,
|
|
10
|
+
type: 'page',
|
|
11
|
+
variant: s.variant_s,
|
|
12
|
+
name: s.name_t,
|
|
13
|
+
description: s.description_t,
|
|
14
|
+
theme: s.theme_s,
|
|
15
|
+
nbformat: s.nbformat_s ? JSON.parse(s.nbformat_s) : undefined,
|
|
16
|
+
screenCapture: s.screen_capture_cdn_url_s || s.screen_capture_s,
|
|
17
|
+
tags: s.tags_ss ?? [],
|
|
18
|
+
creator: s.creator ? asUser(s.creator) : undefined,
|
|
19
|
+
creatorId: s.creator_uid,
|
|
20
|
+
kernelSnapshot: s.kernel_snapshot
|
|
21
|
+
? asCodeSandboxSnapshot(s.kernel_snapshot)
|
|
22
|
+
: undefined,
|
|
23
|
+
kernelSnapshotId: s.kernel_snapshot_uid,
|
|
24
|
+
};
|
|
25
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { CardIconColors } from '@primer/react-brand';
|
|
2
|
+
import { Icon } from '@primer/octicons-react';
|
|
3
|
+
type CardIconColorsType = (typeof CardIconColors)[number];
|
|
4
|
+
export type PageTagMetadata = {
|
|
5
|
+
fillColor: React.CSSProperties['backgroundColor'];
|
|
6
|
+
};
|
|
7
|
+
export type PageTagName = 'agent' | 'ai' | 'ai-agent' | 'deep-learning' | 'example' | 'llm' | 'notebook' | 'python' | 'pytorch' | 'spatial' | 'tutorial';
|
|
8
|
+
export type PageTag = {
|
|
9
|
+
id: string;
|
|
10
|
+
text?: PageTagName;
|
|
11
|
+
color: CardIconColorsType;
|
|
12
|
+
Icon: Icon;
|
|
13
|
+
metadata?: PageTagMetadata;
|
|
14
|
+
};
|
|
15
|
+
export declare const PAGE_TAGE_NONE: PageTag;
|
|
16
|
+
export declare const PAGE_TAGS: PageTag[];
|
|
17
|
+
export declare const PAGE_TAGS_BY_NAME_MAP: Map<PageTagName | undefined, PageTag>;
|
|
18
|
+
export declare const PAGE_TAGS_BY_COLOR_MAP: Map<"default" | "blue" | "coral" | "gray" | "green" | "indigo" | "lime" | "orange" | "pink" | "purple" | "red" | "teal" | "yellow" | "lemon", PageTag>;
|
|
19
|
+
export {};
|