@datalayer/agent-runtimes 1.0.10 → 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 +429 -39
- 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.js +28 -28
- 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/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/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 +9 -10
- package/lib/examples/AgentCodemodeExample.js +3 -3
- package/lib/examples/AgentEvalsExample.js +5 -5
- package/lib/examples/AgentGuardrailsExample.js +17 -12
- package/lib/examples/AgentHooksExample.js +14 -55
- package/lib/examples/AgentInferenceProviderExample.js +4 -4
- package/lib/examples/AgentLoopExample.d.ts +10 -0
- package/lib/examples/AgentLoopExample.js +304 -0
- package/lib/examples/AgentMCPExample.js +7 -7
- package/lib/examples/AgentMemoryExample.js +4 -4
- package/lib/examples/AgentMonitoringExample.js +114 -44
- package/lib/examples/AgentNotificationsExample.js +4 -4
- package/lib/examples/AgentOtelExample.d.ts +3 -3
- package/lib/examples/AgentOtelExample.js +15 -10
- package/lib/examples/AgentOutputsExample.js +6 -6
- package/lib/examples/AgentParametersExample.js +21 -33
- package/lib/examples/AgentSandboxExample.js +5 -5
- package/lib/examples/AgentSkillsExample.js +7 -7
- package/lib/examples/AgentSubagentsExample.js +4 -4
- package/lib/examples/AgentToolApprovalsExample.js +5 -5
- package/lib/examples/AgentTriggersExample.js +9 -9
- package/lib/examples/AgentspecsExample.js +63 -41
- package/lib/examples/ChatCustomExample.js +23 -77
- package/lib/examples/ChatExample.js +13 -44
- 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 +186 -27
- 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 +36 -26
- 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 +6 -6
- package/lib/index.d.ts +1 -0
- 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 +70 -26
- package/lib/specs/agents/agents.js +3994 -1639
- 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 +3 -3
- package/lib/types/agentspecs.d.ts +3 -1
- 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/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/__pycache__/versioning.cpython-313.pyc +0 -0
- package/scripts/codegen/generate_agents.py +21 -4
- package/scripts/codegen/generate_loops.py +443 -0
- package/lib/examples/A2UiComponentGalleryExample.d.ts +0 -3
- package/lib/examples/A2UiComponentGalleryExample.js +0 -361
- /package/lib/{agent-lexical-main.d.ts → agent-document-main.d.ts} +0 -0
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Hook for fetching and managing projects.
|
|
7
|
+
*
|
|
8
|
+
* Projects are backed by the Spacer service as spaces with type_s="project".
|
|
9
|
+
* Projects persist forever — only agents can terminate.
|
|
10
|
+
*
|
|
11
|
+
* Free tier limits: max 3 projects per user.
|
|
12
|
+
*
|
|
13
|
+
* @module hooks/useProjects
|
|
14
|
+
*/
|
|
15
|
+
import { useMemo, useCallback } from 'react';
|
|
16
|
+
import { useCache } from '@datalayer/core/lib/hooks/useCache';
|
|
17
|
+
/** The space type value used to identify project spaces in Solr */
|
|
18
|
+
export const PROJECT_SPACE_VARIANT = 'project';
|
|
19
|
+
const normalizeProjectItems = (items) => {
|
|
20
|
+
if (Array.isArray(items)) {
|
|
21
|
+
return items;
|
|
22
|
+
}
|
|
23
|
+
if (items && typeof items === 'object') {
|
|
24
|
+
return [items];
|
|
25
|
+
}
|
|
26
|
+
return [];
|
|
27
|
+
};
|
|
28
|
+
const isProjectSpace = (space) => {
|
|
29
|
+
const variant = space?.variant ?? space?.variant_s;
|
|
30
|
+
if (variant !== PROJECT_SPACE_VARIANT) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
const items = normalizeProjectItems(space?.items);
|
|
34
|
+
if (items.length === 0) {
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
const hasNotebook = items.some(item => (item?.type_s ?? item?.type) === 'notebook');
|
|
38
|
+
const hasDocument = items.some(item => {
|
|
39
|
+
const type = item?.type_s ?? item?.type;
|
|
40
|
+
return type === 'document' || type === 'lexical';
|
|
41
|
+
});
|
|
42
|
+
return hasNotebook && hasDocument;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Hook to fetch user's projects (spaces with type "project").
|
|
46
|
+
*
|
|
47
|
+
* Uses the spacer service's spaces endpoint filtered by type.
|
|
48
|
+
*/
|
|
49
|
+
export function useProjects() {
|
|
50
|
+
const { useUserSpaces } = useCache();
|
|
51
|
+
const { data: allSpaces, ...rest } = useUserSpaces();
|
|
52
|
+
// Filter to only project-type spaces
|
|
53
|
+
const projects = useMemo(() => {
|
|
54
|
+
if (!allSpaces)
|
|
55
|
+
return [];
|
|
56
|
+
return allSpaces
|
|
57
|
+
.filter((space) => isProjectSpace(space))
|
|
58
|
+
.map((space) => ({
|
|
59
|
+
uid: space.uid,
|
|
60
|
+
id: space.id ?? space.uid,
|
|
61
|
+
handle: space.handle ?? space.handle_s,
|
|
62
|
+
name: space.name ?? space.name_t,
|
|
63
|
+
description: space.description ?? space.description_t ?? '',
|
|
64
|
+
createdAt: space.created_at ? new Date(space.created_at) : new Date(),
|
|
65
|
+
isPublic: space.public ?? space.public_b ?? false,
|
|
66
|
+
attachedAgentPodName: space.attached_agent_pod_name_s || undefined,
|
|
67
|
+
attachedAgentSpecId: space.attached_agent_spec_id_s || undefined,
|
|
68
|
+
}));
|
|
69
|
+
}, [allSpaces]);
|
|
70
|
+
return { data: projects, ...rest };
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Hook to fetch a single project by UID.
|
|
74
|
+
*/
|
|
75
|
+
export function useProject(uid) {
|
|
76
|
+
const { useSpace } = useCache();
|
|
77
|
+
// useSpace requires a string – pass empty string when uid is undefined
|
|
78
|
+
// (the query is disabled when spaceId is falsy inside useCache)
|
|
79
|
+
const { data: space, ...rest } = useSpace(uid ?? '');
|
|
80
|
+
const project = useMemo(() => {
|
|
81
|
+
if (!space)
|
|
82
|
+
return undefined;
|
|
83
|
+
const s = space;
|
|
84
|
+
return {
|
|
85
|
+
uid: s.uid,
|
|
86
|
+
id: s.id ?? s.uid,
|
|
87
|
+
handle: s.handle ?? s.handle_s,
|
|
88
|
+
name: s.name ?? s.name_t,
|
|
89
|
+
description: s.description ?? s.description_t ?? '',
|
|
90
|
+
createdAt: s.created_at ? new Date(s.created_at) : new Date(),
|
|
91
|
+
isPublic: s.public ?? s.public_b ?? false,
|
|
92
|
+
attachedAgentPodName: s.attached_agent_pod_name_s || undefined,
|
|
93
|
+
attachedAgentSpecId: s.attached_agent_spec_id_s || undefined,
|
|
94
|
+
};
|
|
95
|
+
}, [space]);
|
|
96
|
+
return { data: project, ...rest };
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Hook to create a new project.
|
|
100
|
+
* Creates a space with type "project" via the spacer service.
|
|
101
|
+
*/
|
|
102
|
+
export function useCreateProject() {
|
|
103
|
+
const { useCreateSpace } = useCache();
|
|
104
|
+
const createSpaceMutation = useCreateSpace();
|
|
105
|
+
const createProject = useCallback(async (request) => {
|
|
106
|
+
const spaceHandle = request.name
|
|
107
|
+
.toLowerCase()
|
|
108
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
109
|
+
.replace(/^-|-$/g, '');
|
|
110
|
+
return createSpaceMutation.mutateAsync({
|
|
111
|
+
space: {
|
|
112
|
+
name: request.name,
|
|
113
|
+
description: request.description || '',
|
|
114
|
+
handle: spaceHandle || `project-${Date.now()}`,
|
|
115
|
+
variant: PROJECT_SPACE_VARIANT,
|
|
116
|
+
public: false,
|
|
117
|
+
},
|
|
118
|
+
});
|
|
119
|
+
}, [createSpaceMutation]);
|
|
120
|
+
return {
|
|
121
|
+
...createSpaceMutation,
|
|
122
|
+
createProject,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Hook to update a project (e.g. persist the attached agent pod name).
|
|
127
|
+
* Uses the spacer PUT endpoint via useUpdateSpace.
|
|
128
|
+
*/
|
|
129
|
+
export function useUpdateProject() {
|
|
130
|
+
const { useUpdateSpace } = useCache();
|
|
131
|
+
const updateSpaceMutation = useUpdateSpace();
|
|
132
|
+
/** Assign an agent runtime to the project */
|
|
133
|
+
const assignAgent = useCallback(async (project, agentPodName, agentSpecId) => {
|
|
134
|
+
return updateSpaceMutation.mutateAsync({
|
|
135
|
+
id: project.id,
|
|
136
|
+
name: project.name,
|
|
137
|
+
description: project.description,
|
|
138
|
+
attached_agent_pod_name_s: agentPodName,
|
|
139
|
+
attached_agent_spec_id_s: agentSpecId || '',
|
|
140
|
+
});
|
|
141
|
+
}, [updateSpaceMutation]);
|
|
142
|
+
/** Rename a project */
|
|
143
|
+
const renameProject = useCallback(async (project, newName) => {
|
|
144
|
+
return updateSpaceMutation.mutateAsync({
|
|
145
|
+
id: project.id,
|
|
146
|
+
name: newName,
|
|
147
|
+
description: project.description,
|
|
148
|
+
});
|
|
149
|
+
}, [updateSpaceMutation]);
|
|
150
|
+
/** Remove the agent assignment from the project */
|
|
151
|
+
const unassignAgent = useCallback(async (project) => {
|
|
152
|
+
return updateSpaceMutation.mutateAsync({
|
|
153
|
+
id: project.id,
|
|
154
|
+
name: project.name,
|
|
155
|
+
description: project.description,
|
|
156
|
+
attached_agent_pod_name_s: '',
|
|
157
|
+
attached_agent_spec_id_s: '',
|
|
158
|
+
});
|
|
159
|
+
}, [updateSpaceMutation]);
|
|
160
|
+
return {
|
|
161
|
+
...updateSpaceMutation,
|
|
162
|
+
assignAgent,
|
|
163
|
+
unassignAgent,
|
|
164
|
+
renameProject,
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Hook to refresh the projects list.
|
|
169
|
+
*/
|
|
170
|
+
export function useRefreshProjects() {
|
|
171
|
+
const { useRefreshUserSpaces } = useCache();
|
|
172
|
+
return useRefreshUserSpaces();
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Hook to delete a project (space) and all its contents.
|
|
176
|
+
*/
|
|
177
|
+
export function useDeleteProject() {
|
|
178
|
+
const { useDeleteSpace } = useCache();
|
|
179
|
+
return useDeleteSpace();
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Hook to fetch the default notebook and document UIDs for a project.
|
|
183
|
+
*
|
|
184
|
+
* This calls the spacer `GET /spaces/:uid/default-items` endpoint which
|
|
185
|
+
* returns the UID of the first notebook and first document in the space.
|
|
186
|
+
*/
|
|
187
|
+
export function useProjectDefaultItems(projectUid) {
|
|
188
|
+
const { useSpaceDefaultItems } = useCache();
|
|
189
|
+
return useSpaceDefaultItems(projectUid);
|
|
190
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
import { requestJupyterKernelsExtension } from '../jupyter/kernelsHandler';
|
|
6
|
+
export const useRuntimes = () => {
|
|
7
|
+
// Folder Mounting ----------------------------------------------------------
|
|
8
|
+
const mountLocalFolder = (kernelId) => {
|
|
9
|
+
requestJupyterKernelsExtension(`jump/${kernelId}`)
|
|
10
|
+
.then(data => {
|
|
11
|
+
// console.log('--- Mount Local Folder', data);
|
|
12
|
+
})
|
|
13
|
+
.catch(reason => {
|
|
14
|
+
console.error(`Error while accessing the jupyter server jupyter_kernels extension.\n${reason}`);
|
|
15
|
+
});
|
|
16
|
+
};
|
|
17
|
+
const unmountLocalFolder = (kernelId) => {
|
|
18
|
+
requestJupyterKernelsExtension(`jump/${kernelId}`, {
|
|
19
|
+
method: 'DELETE',
|
|
20
|
+
})
|
|
21
|
+
.then(data => {
|
|
22
|
+
// console.log('--- Unmount Local Folder', data);
|
|
23
|
+
})
|
|
24
|
+
.catch(reason => {
|
|
25
|
+
console.error(`Error while accessing the jupyter server jupyter_kernels extension.\n${reason}`);
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
// --------------------------------------------------------------------------
|
|
29
|
+
return {
|
|
30
|
+
mountLocalFolder,
|
|
31
|
+
unmountLocalFolder,
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
export default useRuntimes;
|
|
@@ -47,10 +47,10 @@ interface MutationResult {
|
|
|
47
47
|
note?: string;
|
|
48
48
|
}) => Promise<void>;
|
|
49
49
|
}
|
|
50
|
-
export declare function useToolApprovalsQuery(filters?: ToolApprovalFilters): import("@tanstack/react-query").UseQueryResult<ApprovalsQueryData
|
|
51
|
-
export declare function usePendingApprovalCount(): import("@tanstack/react-query").UseQueryResult<{
|
|
50
|
+
export declare function useToolApprovalsQuery(filters?: ToolApprovalFilters): import("@tanstack/react-query").UseQueryResult<NoInfer<ApprovalsQueryData>, Error>;
|
|
51
|
+
export declare function usePendingApprovalCount(): import("@tanstack/react-query").UseQueryResult<NoInfer<{
|
|
52
52
|
count: number;
|
|
53
|
-
}
|
|
53
|
+
}>, Error>;
|
|
54
54
|
export declare function useApproveToolRequest(): MutationResult;
|
|
55
55
|
export declare function useRejectToolRequest(): MutationResult;
|
|
56
56
|
export declare function useMarkToolApprovalRead(): MutationResult;
|
|
@@ -64,10 +64,10 @@ export declare function useMarkToolApprovalUnread(): MutationResult;
|
|
|
64
64
|
*/
|
|
65
65
|
export declare function useDeleteToolApproval(): MutationResult;
|
|
66
66
|
export declare function useToolApprovals(filters?: ToolApprovalFilters): {
|
|
67
|
-
approvalsQuery: import("@tanstack/react-query").UseQueryResult<ApprovalsQueryData
|
|
68
|
-
pendingCountQuery: import("@tanstack/react-query").UseQueryResult<{
|
|
67
|
+
approvalsQuery: import("@tanstack/react-query").UseQueryResult<NoInfer<ApprovalsQueryData>, Error>;
|
|
68
|
+
pendingCountQuery: import("@tanstack/react-query").UseQueryResult<NoInfer<{
|
|
69
69
|
count: number;
|
|
70
|
-
}
|
|
70
|
+
}>, Error>;
|
|
71
71
|
approve: MutationResult;
|
|
72
72
|
reject: MutationResult;
|
|
73
73
|
markRead: MutationResult;
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function listVariables(): string;
|
|
2
|
+
export declare function saveVariables(variables: string[]): string;
|
|
3
|
+
export declare function loadVariables(variables: string): string;
|
|
4
|
+
export declare function changeCurrentWorkingDirectory(path: string): string;
|
|
5
|
+
export declare function getOutputCandidates(code: string): string[];
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
export function listVariables() {
|
|
6
|
+
return `
|
|
7
|
+
def _list_variables():
|
|
8
|
+
import json
|
|
9
|
+
from types import BuiltinFunctionType, BuiltinMethodType, FunctionType, MethodType, MethodWrapperType, ModuleType, TracebackType
|
|
10
|
+
|
|
11
|
+
_FORBIDDEN_TYPES = [type, BuiltinFunctionType, BuiltinMethodType, FunctionType, MethodType, MethodWrapperType, ModuleType, TracebackType]
|
|
12
|
+
try:
|
|
13
|
+
from IPython.core.autocall import ExitAutocall
|
|
14
|
+
_FORBIDDEN_TYPES.append(ExitAutocall)
|
|
15
|
+
except ImportError:
|
|
16
|
+
pass
|
|
17
|
+
_exclude = tuple(_FORBIDDEN_TYPES)
|
|
18
|
+
|
|
19
|
+
_all = frozenset(globals())
|
|
20
|
+
_vars = {}
|
|
21
|
+
for _n in _all:
|
|
22
|
+
_v = globals()[_n]
|
|
23
|
+
|
|
24
|
+
if not (
|
|
25
|
+
_n.startswith('_') or
|
|
26
|
+
isinstance(_v, _exclude) or
|
|
27
|
+
# Special IPython variables
|
|
28
|
+
(_n == 'In' and isinstance(_v, list)) or
|
|
29
|
+
(_n == 'Out' and isinstance(_v, dict))
|
|
30
|
+
):
|
|
31
|
+
_vars[_n] = type(_v).__qualname__
|
|
32
|
+
|
|
33
|
+
return json.dumps(_vars)
|
|
34
|
+
|
|
35
|
+
_list_variables()`;
|
|
36
|
+
}
|
|
37
|
+
export function saveVariables(variables) {
|
|
38
|
+
return `
|
|
39
|
+
def _pickle_variables():
|
|
40
|
+
from base64 import encodebytes
|
|
41
|
+
import json
|
|
42
|
+
import pickle
|
|
43
|
+
_names = {${variables.map(v => `"${v}"`).join(',')}}
|
|
44
|
+
_data = {}
|
|
45
|
+
for _n in _names:
|
|
46
|
+
try:
|
|
47
|
+
_v = globals()[_n]
|
|
48
|
+
dump = pickle.dumps(_v)
|
|
49
|
+
_data[_n] = encodebytes(dump).decode("ascii")
|
|
50
|
+
except:
|
|
51
|
+
...
|
|
52
|
+
|
|
53
|
+
return json.dumps(_data)
|
|
54
|
+
|
|
55
|
+
_pickle_variables()
|
|
56
|
+
`;
|
|
57
|
+
}
|
|
58
|
+
export function loadVariables(variables) {
|
|
59
|
+
return `
|
|
60
|
+
def _load_variables():
|
|
61
|
+
from base64 import decodebytes
|
|
62
|
+
import json
|
|
63
|
+
import pickle
|
|
64
|
+
_data = json.loads(${variables})
|
|
65
|
+
_loaded = []
|
|
66
|
+
for _n, _v in _data.items():
|
|
67
|
+
try:
|
|
68
|
+
dump = decodebytes(_v.encode("ascii"))
|
|
69
|
+
globals()[_n] = pickle.loads(dump)
|
|
70
|
+
_loaded.append(_n)
|
|
71
|
+
except:
|
|
72
|
+
...
|
|
73
|
+
return json.dumps(_loaded)
|
|
74
|
+
|
|
75
|
+
_load_variables()
|
|
76
|
+
`;
|
|
77
|
+
}
|
|
78
|
+
export function changeCurrentWorkingDirectory(path) {
|
|
79
|
+
const formattedPath = path
|
|
80
|
+
.split('/')
|
|
81
|
+
.map(seg => `"${seg}"`)
|
|
82
|
+
.join(' / ');
|
|
83
|
+
return `
|
|
84
|
+
def _change_current_directory():
|
|
85
|
+
import os
|
|
86
|
+
from pathlib import Path
|
|
87
|
+
_local_content_mount_point = Path(Path.home() / ${formattedPath})
|
|
88
|
+
_local_content_mount_point.mkdir(parents=True, exist_ok=True)
|
|
89
|
+
os.chdir(_local_content_mount_point)
|
|
90
|
+
|
|
91
|
+
assert Path.cwd() == _local_content_mount_point
|
|
92
|
+
|
|
93
|
+
_change_current_directory()
|
|
94
|
+
`;
|
|
95
|
+
}
|
|
96
|
+
export function getOutputCandidates(code) {
|
|
97
|
+
return Array.from(code.matchAll(/^((?<output>[A-z][\w]*)\s*=[^=]|\((?<walrus>[A-z][\w]*)\s*:=[^=)]+\))/gm))
|
|
98
|
+
.map(match => match.groups?.output ?? match.groups?.walrus ?? '')
|
|
99
|
+
.filter(n => !!n);
|
|
100
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime snippets.
|
|
3
|
+
*/
|
|
4
|
+
export interface IRuntimeSnippets {
|
|
5
|
+
/**
|
|
6
|
+
* Code snippet to change the current working directory.
|
|
7
|
+
*
|
|
8
|
+
* @param path New current directory
|
|
9
|
+
* @returns The code snippet
|
|
10
|
+
*/
|
|
11
|
+
changeCurrentWorkingDirectory(path: string): string;
|
|
12
|
+
/**
|
|
13
|
+
* Code snippet to list the transferable kernel variables.
|
|
14
|
+
*
|
|
15
|
+
* @returns The code snippet
|
|
16
|
+
*/
|
|
17
|
+
listVariables(): string;
|
|
18
|
+
/**
|
|
19
|
+
* Code snippet to load kernel variables.
|
|
20
|
+
*
|
|
21
|
+
* @param variables Serialized-JSON dictionary (<variable name>, <variable value blob>)
|
|
22
|
+
* @returns The code snippet
|
|
23
|
+
*/
|
|
24
|
+
loadVariables(variables: string): string;
|
|
25
|
+
/**
|
|
26
|
+
* Code snippet to save kernel variables.
|
|
27
|
+
*
|
|
28
|
+
* @param variables Variable names.
|
|
29
|
+
* @returns The code snippet
|
|
30
|
+
*/
|
|
31
|
+
saveVariables(variables: string[]): string;
|
|
32
|
+
/**
|
|
33
|
+
* Extract output variables candidates by parsing the cell content.
|
|
34
|
+
*
|
|
35
|
+
* @param code Cell code source
|
|
36
|
+
* @returns The output variable candidates
|
|
37
|
+
*/
|
|
38
|
+
getOutputCandidates(code: string): string[];
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Facade to interact with kernels by requesting code execution.
|
|
42
|
+
*/
|
|
43
|
+
export declare class RuntimeSnippetsFacade {
|
|
44
|
+
private static $language;
|
|
45
|
+
/**
|
|
46
|
+
* Register a facade for a given language
|
|
47
|
+
*
|
|
48
|
+
* @param language Kernel language
|
|
49
|
+
* @param API Kernel API
|
|
50
|
+
*/
|
|
51
|
+
static register(language: string, API: IRuntimeSnippets): void;
|
|
52
|
+
/**
|
|
53
|
+
* Whether there is an API for the given kernel language
|
|
54
|
+
*
|
|
55
|
+
* @param language Kernel language
|
|
56
|
+
*/
|
|
57
|
+
static supports(language: string): boolean;
|
|
58
|
+
private _language;
|
|
59
|
+
/**
|
|
60
|
+
* Create a kernel snippet generator for a given kernel language.
|
|
61
|
+
*
|
|
62
|
+
* @param language Kernel language
|
|
63
|
+
*/
|
|
64
|
+
constructor(language: string);
|
|
65
|
+
/**
|
|
66
|
+
* Kernel language
|
|
67
|
+
*/
|
|
68
|
+
get language(): string;
|
|
69
|
+
/**
|
|
70
|
+
* Code snippet to change the current working directory.
|
|
71
|
+
*
|
|
72
|
+
* The code snippet has no returned value.
|
|
73
|
+
*
|
|
74
|
+
* @param path New current directory
|
|
75
|
+
* @returns The code snippet
|
|
76
|
+
*/
|
|
77
|
+
changeCurrentWorkingDirectory(path: string): string;
|
|
78
|
+
/**
|
|
79
|
+
* Code snippet to list the transferable kernel variables.
|
|
80
|
+
*
|
|
81
|
+
* @returns The code snippet
|
|
82
|
+
*/
|
|
83
|
+
listVariables(): string;
|
|
84
|
+
/**
|
|
85
|
+
* Code snippet to load kernel variables.
|
|
86
|
+
*
|
|
87
|
+
* @param variables Serialized-JSON dictionary (<variable name>, <variable value blob>)
|
|
88
|
+
* @returns The code snippet
|
|
89
|
+
*/
|
|
90
|
+
loadVariables(variables: string): string;
|
|
91
|
+
/**
|
|
92
|
+
* Code snippet to save kernel variables.
|
|
93
|
+
*
|
|
94
|
+
* @param variables Variable names.
|
|
95
|
+
* @returns The code snippet
|
|
96
|
+
*/
|
|
97
|
+
saveVariables(variables: string[]): string;
|
|
98
|
+
/**
|
|
99
|
+
* Extract output variables candidates by parsing the cell content.
|
|
100
|
+
*
|
|
101
|
+
* @param code Cell code source
|
|
102
|
+
* @returns The output variable candidates
|
|
103
|
+
*/
|
|
104
|
+
getOutputCandidates(code: string): string[];
|
|
105
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
import * as Python from './Python';
|
|
6
|
+
/**
|
|
7
|
+
* Facade to interact with kernels by requesting code execution.
|
|
8
|
+
*/
|
|
9
|
+
export class RuntimeSnippetsFacade {
|
|
10
|
+
static $language = new Map();
|
|
11
|
+
/**
|
|
12
|
+
* Register a facade for a given language
|
|
13
|
+
*
|
|
14
|
+
* @param language Kernel language
|
|
15
|
+
* @param API Kernel API
|
|
16
|
+
*/
|
|
17
|
+
static register(language, API) {
|
|
18
|
+
this.$language.set(language, API);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Whether there is an API for the given kernel language
|
|
22
|
+
*
|
|
23
|
+
* @param language Kernel language
|
|
24
|
+
*/
|
|
25
|
+
static supports(language) {
|
|
26
|
+
return this.$language.has(language);
|
|
27
|
+
}
|
|
28
|
+
_language;
|
|
29
|
+
/**
|
|
30
|
+
* Create a kernel snippet generator for a given kernel language.
|
|
31
|
+
*
|
|
32
|
+
* @param language Kernel language
|
|
33
|
+
*/
|
|
34
|
+
constructor(language) {
|
|
35
|
+
if (!RuntimeSnippetsFacade.$language.has(language)) {
|
|
36
|
+
throw new Error(`${language} is not supported.`);
|
|
37
|
+
}
|
|
38
|
+
this._language = language;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Kernel language
|
|
42
|
+
*/
|
|
43
|
+
get language() {
|
|
44
|
+
return this._language;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Code snippet to change the current working directory.
|
|
48
|
+
*
|
|
49
|
+
* The code snippet has no returned value.
|
|
50
|
+
*
|
|
51
|
+
* @param path New current directory
|
|
52
|
+
* @returns The code snippet
|
|
53
|
+
*/
|
|
54
|
+
changeCurrentWorkingDirectory(path) {
|
|
55
|
+
return RuntimeSnippetsFacade.$language
|
|
56
|
+
.get(this.language)
|
|
57
|
+
.changeCurrentWorkingDirectory(path);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Code snippet to list the transferable kernel variables.
|
|
61
|
+
*
|
|
62
|
+
* @returns The code snippet
|
|
63
|
+
*/
|
|
64
|
+
listVariables() {
|
|
65
|
+
return RuntimeSnippetsFacade.$language.get(this.language).listVariables();
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Code snippet to load kernel variables.
|
|
69
|
+
*
|
|
70
|
+
* @param variables Serialized-JSON dictionary (<variable name>, <variable value blob>)
|
|
71
|
+
* @returns The code snippet
|
|
72
|
+
*/
|
|
73
|
+
loadVariables(variables) {
|
|
74
|
+
return RuntimeSnippetsFacade.$language
|
|
75
|
+
.get(this.language)
|
|
76
|
+
.loadVariables(variables);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Code snippet to save kernel variables.
|
|
80
|
+
*
|
|
81
|
+
* @param variables Variable names.
|
|
82
|
+
* @returns The code snippet
|
|
83
|
+
*/
|
|
84
|
+
saveVariables(variables) {
|
|
85
|
+
return RuntimeSnippetsFacade.$language
|
|
86
|
+
.get(this.language)
|
|
87
|
+
.saveVariables(variables);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Extract output variables candidates by parsing the cell content.
|
|
91
|
+
*
|
|
92
|
+
* @param code Cell code source
|
|
93
|
+
* @returns The output variable candidates
|
|
94
|
+
*/
|
|
95
|
+
getOutputCandidates(code) {
|
|
96
|
+
return RuntimeSnippetsFacade.$language
|
|
97
|
+
.get(this.language)
|
|
98
|
+
.getOutputCandidates(code);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
RuntimeSnippetsFacade.register('python', Python);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Call the jupyter_kernels extension
|
|
3
|
+
*
|
|
4
|
+
* @param endPoint API REST end point for the extension
|
|
5
|
+
* @param init Initial values for the request
|
|
6
|
+
* @returns The response body interpreted as JSON
|
|
7
|
+
*/
|
|
8
|
+
export declare function requestJupyterKernelsExtension<T>(endPoint?: string, init?: RequestInit): Promise<T>;
|
|
@@ -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[];
|