@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 { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
4
|
+
* Distributed under the terms of the Modified BSD License.
|
|
5
|
+
*/
|
|
6
|
+
import { useCallback, useEffect, useState } from 'react';
|
|
7
|
+
import { KernelIndicator, useJupyterReactStore, } from '@datalayer/jupyter-react';
|
|
8
|
+
import { ISanitizer } from '@jupyterlab/apputils';
|
|
9
|
+
import { IMarkdownParser } from '@jupyterlab/rendermime';
|
|
10
|
+
import { ActionList, ActionMenu, Box, Button, Tooltip } from '@primer/react';
|
|
11
|
+
import { CloudIcon, EyeIcon, UnfoldIcon } from '@primer/octicons-react';
|
|
12
|
+
import { BrowserIcon, PlusIcon } from '@datalayer/icons-react';
|
|
13
|
+
import { ArtifactIcon } from '../../components/icons';
|
|
14
|
+
import { RuntimeLauncherDialog } from '.';
|
|
15
|
+
import { useRuntimesStore } from '../../state/substates';
|
|
16
|
+
/**
|
|
17
|
+
* Cause to open the new runtime dialog.
|
|
18
|
+
*/
|
|
19
|
+
var RuntimeDialogCause;
|
|
20
|
+
(function (RuntimeDialogCause) {
|
|
21
|
+
/**
|
|
22
|
+
* Don't open.
|
|
23
|
+
*/
|
|
24
|
+
RuntimeDialogCause[RuntimeDialogCause["None"] = 0] = "None";
|
|
25
|
+
/**
|
|
26
|
+
* Launch a new runtime.
|
|
27
|
+
*/
|
|
28
|
+
RuntimeDialogCause[RuntimeDialogCause["New"] = 1] = "New";
|
|
29
|
+
/**
|
|
30
|
+
* Transfer the state from the current runtime to a new runtime.
|
|
31
|
+
*/
|
|
32
|
+
RuntimeDialogCause[RuntimeDialogCause["Transfer"] = 2] = "Transfer";
|
|
33
|
+
})(RuntimeDialogCause || (RuntimeDialogCause = {}));
|
|
34
|
+
/**
|
|
35
|
+
* Runtime simple picker component.
|
|
36
|
+
*/
|
|
37
|
+
export function RuntimeSimplePicker(props) {
|
|
38
|
+
const { assignRuntime, sessionConnection, browserRuntimeAvailable = true, } = props;
|
|
39
|
+
const { runtimeModels, multiServiceManager } = useRuntimesStore();
|
|
40
|
+
const jupyterReactStore = useJupyterReactStore();
|
|
41
|
+
const jupyterLabAdapter = jupyterReactStore.jupyterLabAdapter;
|
|
42
|
+
const [runtimeLocation, setRuntimeLocation] = useState();
|
|
43
|
+
const [luminoServices, setLuminoServices] = useState({});
|
|
44
|
+
const [dialogCause, setDialogCause] = useState(RuntimeDialogCause.None);
|
|
45
|
+
const [status, setStatus] = useState('');
|
|
46
|
+
useEffect(() => {
|
|
47
|
+
if (sessionConnection) {
|
|
48
|
+
function onStatusChanged(connection) {
|
|
49
|
+
setStatus(`Runtime ${connection.kernel?.connectionStatus} - Status: ${connection.kernel?.status}`);
|
|
50
|
+
}
|
|
51
|
+
onStatusChanged(sessionConnection);
|
|
52
|
+
sessionConnection?.statusChanged.connect(onStatusChanged);
|
|
53
|
+
sessionConnection?.connectionStatusChanged.connect(onStatusChanged);
|
|
54
|
+
return () => {
|
|
55
|
+
sessionConnection?.statusChanged.disconnect(onStatusChanged);
|
|
56
|
+
sessionConnection?.connectionStatusChanged.disconnect(onStatusChanged);
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
setStatus('No kernel');
|
|
61
|
+
}
|
|
62
|
+
}, [sessionConnection]);
|
|
63
|
+
const refreshRemoteKernels = useCallback(async () => {
|
|
64
|
+
if (multiServiceManager?.remote?.runtimesManager) {
|
|
65
|
+
await multiServiceManager.remote.runtimesManager.refresh();
|
|
66
|
+
}
|
|
67
|
+
}, [multiServiceManager?.remote?.runtimesManager]);
|
|
68
|
+
const handleLaunchRemoteKernel = useCallback(() => {
|
|
69
|
+
setDialogCause(RuntimeDialogCause.New);
|
|
70
|
+
}, []);
|
|
71
|
+
const handleCloseDialog = useCallback((runtimeDesc) => {
|
|
72
|
+
if (runtimeDesc) {
|
|
73
|
+
switch (dialogCause) {
|
|
74
|
+
case RuntimeDialogCause.New:
|
|
75
|
+
refreshRemoteKernels().then(() => {
|
|
76
|
+
setRuntimeLocation('remote');
|
|
77
|
+
assignRuntime({
|
|
78
|
+
runtimeDesc,
|
|
79
|
+
runtimeModel: multiServiceManager?.remote?.runtimesManager
|
|
80
|
+
.get()
|
|
81
|
+
.find(model => model.id === runtimeDesc.kernelId),
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
break;
|
|
85
|
+
case RuntimeDialogCause.Transfer:
|
|
86
|
+
setRuntimeLocation('remote');
|
|
87
|
+
assignRuntime({ runtimeDesc, transferState: true });
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
setDialogCause(RuntimeDialogCause.None);
|
|
92
|
+
}, [refreshRemoteKernels, multiServiceManager?.remote, dialogCause]);
|
|
93
|
+
useEffect(() => {
|
|
94
|
+
if (jupyterLabAdapter) {
|
|
95
|
+
Promise.all([
|
|
96
|
+
jupyterLabAdapter.jupyterLab.resolveOptionalService(IMarkdownParser),
|
|
97
|
+
jupyterLabAdapter.jupyterLab.resolveOptionalService(ISanitizer),
|
|
98
|
+
]).then(services => {
|
|
99
|
+
setLuminoServices({
|
|
100
|
+
[IMarkdownParser.name]: services[0],
|
|
101
|
+
[ISanitizer.name]: services[1],
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
setLuminoServices({});
|
|
107
|
+
}
|
|
108
|
+
}, [jupyterLabAdapter]);
|
|
109
|
+
return (_jsxs(_Fragment, { children: [_jsxs(ActionMenu, { children: [_jsx(ActionMenu.Button, { leadingVisual: () => {
|
|
110
|
+
switch (runtimeLocation) {
|
|
111
|
+
case 'browser':
|
|
112
|
+
return _jsx(BrowserIcon, {});
|
|
113
|
+
case 'remote':
|
|
114
|
+
return _jsx(CloudIcon, {});
|
|
115
|
+
case undefined:
|
|
116
|
+
return _jsx(EyeIcon, {});
|
|
117
|
+
}
|
|
118
|
+
return _jsx(ArtifactIcon, { type: "runtime" });
|
|
119
|
+
}, trailingVisual: () => sessionConnection ? (_jsx(Box, { sx: { paddingTop: '5px' }, children: _jsx(KernelIndicator, { kernel: sessionConnection.kernel }) })) : (_jsx(_Fragment, {})), size: "small", variant: "invisible", children: _jsx(Tooltip, { text: status, direction: "s", children: _jsx(Button, { variant: "invisible", size: "small", children: sessionConnection?.kernel?.name ?? 'Runtimes' }) }) }), _jsx(ActionMenu.Overlay, { width: "medium", children: _jsxs(ActionList, { selectionVariant: "single", showDividers: true, children: [_jsxs(ActionList.Group, { children: [_jsxs(ActionList.Item, { selected: runtimeLocation === undefined &&
|
|
120
|
+
sessionConnection === undefined, onSelect: () => {
|
|
121
|
+
setRuntimeLocation(undefined);
|
|
122
|
+
assignRuntime({ runtimeDesc: undefined });
|
|
123
|
+
}, children: [_jsx(ActionList.LeadingVisual, { children: _jsx(EyeIcon, {}) }), "Viewer", _jsx(ActionList.Description, { variant: "block", children: "A simple Notebook Viewer without Runtime." })] }), browserRuntimeAvailable && (_jsxs(ActionList.Item, { selected: runtimeLocation === 'browser', onSelect: () => {
|
|
124
|
+
setRuntimeLocation('browser');
|
|
125
|
+
assignRuntime({
|
|
126
|
+
runtimeDesc: {
|
|
127
|
+
name: 'pyodide',
|
|
128
|
+
location: 'browser',
|
|
129
|
+
language: 'python',
|
|
130
|
+
},
|
|
131
|
+
});
|
|
132
|
+
}, children: [_jsx(ActionList.LeadingVisual, { children: _jsx(BrowserIcon, {}) }), "Browser Runtime", _jsx(ActionList.Description, { variant: "block", children: "A Browser Runtime based on Pyodide." })] }))] }), runtimeModels.length > 0 && (_jsxs(ActionList.Group, { children: [_jsx(ActionList.GroupHeading, { children: "Cloud Runtimes" }), runtimeModels.map(kernelModel => {
|
|
133
|
+
return (_jsxs(ActionList.Item, { selected: sessionConnection?.kernel?.id === kernelModel.id, onSelect: () => {
|
|
134
|
+
setRuntimeLocation('remote');
|
|
135
|
+
assignRuntime({
|
|
136
|
+
runtimeDesc: {
|
|
137
|
+
name: kernelModel.environment_name,
|
|
138
|
+
language: '',
|
|
139
|
+
location: 'remote',
|
|
140
|
+
displayName: kernelModel.given_name,
|
|
141
|
+
kernelId: kernelModel.id,
|
|
142
|
+
burningRate: kernelModel.burning_rate,
|
|
143
|
+
podName: kernelModel.pod_name,
|
|
144
|
+
},
|
|
145
|
+
runtimeModel: kernelModel,
|
|
146
|
+
});
|
|
147
|
+
}, children: [_jsx(ActionList.LeadingVisual, { children: _jsx(ArtifactIcon, { type: "runtime" }) }), kernelModel.given_name, _jsx(ActionList.Description, { variant: "block", children: kernelModel.environment_name })] }, kernelModel.id));
|
|
148
|
+
})] })), _jsx(ActionList.Divider, {}), _jsxs(ActionList.Group, { children: [_jsxs(ActionList.Item, { selected: false, onSelect: handleLaunchRemoteKernel, children: [_jsx(ActionList.LeadingVisual, { children: _jsx(PlusIcon, {}) }), "Launch a new Runtime\u2026"] }), _jsxs(ActionList.Item, { disabled: runtimeLocation !== 'browser', selected: false, onSelect: () => {
|
|
149
|
+
setDialogCause(RuntimeDialogCause.Transfer);
|
|
150
|
+
}, title: "Transfer the state of the current Runtime to a new Remote Runtime.", children: [_jsx(ActionList.LeadingVisual, { children: _jsx(UnfoldIcon, {}) }), "Transfer state to a new Runtime\u2026"] })] })] }) })] }), multiServiceManager?.remote && dialogCause > 0 && (_jsx(RuntimeLauncherDialog, { dialogTitle: dialogCause === RuntimeDialogCause.Transfer
|
|
151
|
+
? 'Switch to a new Cloud Runtime'
|
|
152
|
+
: undefined, manager: multiServiceManager.remote, onSubmit: handleCloseDialog, markdownParser: luminoServices[IMarkdownParser.name], sanitizer: luminoServices[ISanitizer.name], startRuntime: dialogCause === RuntimeDialogCause.Transfer
|
|
153
|
+
? 'defer'
|
|
154
|
+
: dialogCause === RuntimeDialogCause.New }))] }));
|
|
155
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type IRuntimeOptions } from '../../runtimes';
|
|
2
|
+
export interface RuntimeTransfer {
|
|
3
|
+
/**
|
|
4
|
+
* Selected Kernel.
|
|
5
|
+
*/
|
|
6
|
+
runtime: Partial<Omit<IRuntimeOptions, 'kernelType'> & {
|
|
7
|
+
id: string;
|
|
8
|
+
}> | null;
|
|
9
|
+
/**
|
|
10
|
+
* List of selected variables
|
|
11
|
+
*
|
|
12
|
+
* It may differ with the serialized variables if
|
|
13
|
+
* some serialization failed.
|
|
14
|
+
*/
|
|
15
|
+
selectedVariables: string[];
|
|
16
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { SessionContext } from '@jupyterlab/apputils';
|
|
2
|
+
import { ITranslator } from '@jupyterlab/translation';
|
|
3
|
+
import { IMultiServiceManager } from '../../runtimes';
|
|
4
|
+
import { IRuntimeDesc } from '../../models';
|
|
5
|
+
export type IDatalayerRuntimeDesc = IRuntimeDesc & {
|
|
6
|
+
gpu?: string;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Create the grouped runtime descriptions.
|
|
10
|
+
*/
|
|
11
|
+
export declare function getGroupedRuntimeDescs(multiServiceManager: IMultiServiceManager, kernelId?: string, translator?: ITranslator, filterKernels?: (desc: IDatalayerRuntimeDesc) => boolean, variant?: 'document' | 'cell'): {
|
|
12
|
+
[g: string]: IDatalayerRuntimeDesc[];
|
|
13
|
+
} | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* Get the default kernel name given a selector.
|
|
16
|
+
*/
|
|
17
|
+
export declare function getDefaultKernelName(selector: SessionContext.IKernelSearch): string | null;
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
import { PathExt } from '@jupyterlab/coreutils';
|
|
6
|
+
import { nullTranslator } from '@jupyterlab/translation';
|
|
7
|
+
const ASSIGN_NEW_RUNTIME_LABEL = 'Assign a new Runtime';
|
|
8
|
+
const ASSIGN_EXISTING_REMOTE_RUNTIME_LABEL = 'Assign an existing Remote Runtime';
|
|
9
|
+
const ASSIGN_EXISTING_RUNTIME_LABEL = 'Assign an existing Runtime';
|
|
10
|
+
/**
|
|
11
|
+
* Create the grouped runtime descriptions.
|
|
12
|
+
*/
|
|
13
|
+
export function getGroupedRuntimeDescs(multiServiceManager, kernelId, translator, filterKernels = () => true, variant) {
|
|
14
|
+
translator = translator ?? nullTranslator;
|
|
15
|
+
const trans = translator.load('jupyterlab');
|
|
16
|
+
const specs = multiServiceManager.local.kernelspecs.specs;
|
|
17
|
+
const sessions = multiServiceManager.local.sessions.running();
|
|
18
|
+
const kernels = {};
|
|
19
|
+
// Add the sessions.
|
|
20
|
+
const runningSessions = Array.from(sessions)
|
|
21
|
+
.filter(session => session.kernel &&
|
|
22
|
+
session.kernel.id !== kernelId &&
|
|
23
|
+
specs.kernelspecs[session.kernel.name])
|
|
24
|
+
.map(session => {
|
|
25
|
+
const spec = specs.kernelspecs[session.kernel.name];
|
|
26
|
+
return {
|
|
27
|
+
kernelId: session.kernel.id,
|
|
28
|
+
name: spec.name,
|
|
29
|
+
language: spec.language,
|
|
30
|
+
displayName: session.name || PathExt.basename(session.path),
|
|
31
|
+
location: 'local',
|
|
32
|
+
};
|
|
33
|
+
})
|
|
34
|
+
.concat(Array.from(multiServiceManager.browser?.sessions.running() ?? [])
|
|
35
|
+
.filter(session => session.kernel && session.kernel.id !== kernelId)
|
|
36
|
+
.map(session => {
|
|
37
|
+
const spec = multiServiceManager.browser.kernelspecs.specs.kernelspecs[session.kernel.name];
|
|
38
|
+
return {
|
|
39
|
+
id: '', // TODO Assign a proper ID.
|
|
40
|
+
kernelId: session.kernel.id,
|
|
41
|
+
name: spec.name,
|
|
42
|
+
language: spec.language,
|
|
43
|
+
displayName: session.name || PathExt.basename(session.path),
|
|
44
|
+
location: 'browser',
|
|
45
|
+
};
|
|
46
|
+
}))
|
|
47
|
+
.filter(filterKernels);
|
|
48
|
+
// Add the running runtimes.
|
|
49
|
+
const listedAsSession = runningSessions.map(s => s.kernelId);
|
|
50
|
+
const runningKernels = Array.from(multiServiceManager.local.kernels.running())
|
|
51
|
+
.filter(k => !listedAsSession.includes(k.id))
|
|
52
|
+
.map(k => {
|
|
53
|
+
const spec = specs.kernelspecs[k.name];
|
|
54
|
+
return {
|
|
55
|
+
kernelId: k.id,
|
|
56
|
+
name: spec.name,
|
|
57
|
+
language: spec.language,
|
|
58
|
+
displayName: spec.display_name,
|
|
59
|
+
location: 'local',
|
|
60
|
+
};
|
|
61
|
+
})
|
|
62
|
+
.concat((multiServiceManager.remote?.runtimesManager.get() ?? [])
|
|
63
|
+
.filter(k => k.id && !listedAsSession.includes(k.id))
|
|
64
|
+
.map(runtime => {
|
|
65
|
+
const environment = multiServiceManager
|
|
66
|
+
.remote.environments.get()
|
|
67
|
+
.find(env => env.name === runtime.environment_name);
|
|
68
|
+
return {
|
|
69
|
+
kernelId: runtime.id,
|
|
70
|
+
name: environment.name,
|
|
71
|
+
language: environment.language,
|
|
72
|
+
displayName: runtime.given_name ?? environment.title,
|
|
73
|
+
location: 'remote',
|
|
74
|
+
podName: runtime.pod_name,
|
|
75
|
+
gpu: environment.resources?.['nvidia.com/gpu'],
|
|
76
|
+
};
|
|
77
|
+
}))
|
|
78
|
+
.concat(Array.from(multiServiceManager.browser?.kernels.running() ?? [])
|
|
79
|
+
.filter(k => !listedAsSession.includes(k.id))
|
|
80
|
+
.map(k => {
|
|
81
|
+
const spec = multiServiceManager.browser.kernelspecs.specs.kernelspecs[k.name];
|
|
82
|
+
return {
|
|
83
|
+
kernelId: k.id,
|
|
84
|
+
name: spec.name,
|
|
85
|
+
language: spec.language,
|
|
86
|
+
displayName: spec.display_name,
|
|
87
|
+
location: 'browser',
|
|
88
|
+
};
|
|
89
|
+
}))
|
|
90
|
+
.filter(filterKernels);
|
|
91
|
+
runningSessions.push(...runningKernels);
|
|
92
|
+
if (runningSessions.length) {
|
|
93
|
+
const key = variant === 'cell'
|
|
94
|
+
? ASSIGN_EXISTING_REMOTE_RUNTIME_LABEL
|
|
95
|
+
: ASSIGN_EXISTING_RUNTIME_LABEL;
|
|
96
|
+
kernels[key] = runningSessions;
|
|
97
|
+
}
|
|
98
|
+
// Environments.
|
|
99
|
+
const environments = Object.values(specs.kernelspecs)
|
|
100
|
+
.filter(spec => !!spec)
|
|
101
|
+
.map(spec => ({
|
|
102
|
+
name: spec.name,
|
|
103
|
+
language: spec.language,
|
|
104
|
+
displayName: spec.display_name,
|
|
105
|
+
gpu: spec.resources?.['nvidia.com/gpu'],
|
|
106
|
+
location: 'local',
|
|
107
|
+
}))
|
|
108
|
+
.filter(filterKernels);
|
|
109
|
+
environments.push(...(multiServiceManager.remote?.environments
|
|
110
|
+
.get()
|
|
111
|
+
.map(spec => ({
|
|
112
|
+
name: spec.name,
|
|
113
|
+
language: spec.language,
|
|
114
|
+
displayName: spec.title,
|
|
115
|
+
location: 'remote',
|
|
116
|
+
gpu: spec.resources?.['nvidia.com/gpu'],
|
|
117
|
+
burningRate: spec.burning_rate,
|
|
118
|
+
}))
|
|
119
|
+
.filter(filterKernels) ?? []));
|
|
120
|
+
environments.push(...Object.values(multiServiceManager.browser?.kernelspecs.specs?.kernelspecs ?? {})
|
|
121
|
+
.filter(spec => !!spec)
|
|
122
|
+
.map(spec => ({
|
|
123
|
+
name: spec.name,
|
|
124
|
+
language: spec.language,
|
|
125
|
+
displayName: spec.display_name,
|
|
126
|
+
location: 'browser',
|
|
127
|
+
}))
|
|
128
|
+
.filter(filterKernels));
|
|
129
|
+
if (environments.length) {
|
|
130
|
+
kernels[trans.__(ASSIGN_NEW_RUNTIME_LABEL)] = environments;
|
|
131
|
+
}
|
|
132
|
+
return kernels;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Get the default kernel name given a selector.
|
|
136
|
+
*/
|
|
137
|
+
export function getDefaultKernelName(selector) {
|
|
138
|
+
const { specs, preference } = selector;
|
|
139
|
+
const { name, language, canStart, autoStartDefault } = preference;
|
|
140
|
+
if (!specs || canStart === false) {
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
const defaultName = autoStartDefault ? specs.default : null;
|
|
144
|
+
if (!name && !language) {
|
|
145
|
+
return defaultName;
|
|
146
|
+
}
|
|
147
|
+
// Look for an exact match of a spec name.
|
|
148
|
+
for (const specName in specs.kernelspecs) {
|
|
149
|
+
if (specName === name) {
|
|
150
|
+
return name;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
// Bail if there is no language.
|
|
154
|
+
if (!language) {
|
|
155
|
+
return defaultName;
|
|
156
|
+
}
|
|
157
|
+
// Check for a single kernel matching the language.
|
|
158
|
+
const matches = [];
|
|
159
|
+
for (const specName in specs.kernelspecs) {
|
|
160
|
+
const kernelLanguage = specs.kernelspecs[specName]?.language;
|
|
161
|
+
if (language === kernelLanguage) {
|
|
162
|
+
matches.push(specName);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
if (matches.length === 1) {
|
|
166
|
+
const specName = matches[0];
|
|
167
|
+
console.warn('No exact match found for ' +
|
|
168
|
+
specName +
|
|
169
|
+
', using runtime ' +
|
|
170
|
+
specName +
|
|
171
|
+
' that matches ' +
|
|
172
|
+
'language=' +
|
|
173
|
+
language);
|
|
174
|
+
return specName;
|
|
175
|
+
}
|
|
176
|
+
// No matches found.
|
|
177
|
+
return defaultName;
|
|
178
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ReactElement } from 'react';
|
|
2
|
+
import { ITranslator } from '@jupyterlab/translation';
|
|
3
|
+
/**
|
|
4
|
+
* {@link RuntimeVariables} properties
|
|
5
|
+
*/
|
|
6
|
+
export interface IRuntimeVariablesProps {
|
|
7
|
+
/**
|
|
8
|
+
* Component class name
|
|
9
|
+
*/
|
|
10
|
+
className?: string;
|
|
11
|
+
/**
|
|
12
|
+
* Available kernel variables
|
|
13
|
+
*
|
|
14
|
+
* Mapping (variable name, variable type)
|
|
15
|
+
*/
|
|
16
|
+
kernelVariables?: {
|
|
17
|
+
[name: string]: string;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Kernel variables to be transferred.
|
|
21
|
+
*/
|
|
22
|
+
selectedVariables: string[];
|
|
23
|
+
setSelectVariable: (l: string[]) => void;
|
|
24
|
+
/**
|
|
25
|
+
* Whether to transfer the variable from the current
|
|
26
|
+
* to the selected kernel or not.
|
|
27
|
+
*/
|
|
28
|
+
transferVariables: boolean;
|
|
29
|
+
setTransferVariable: (v: boolean) => void;
|
|
30
|
+
/**
|
|
31
|
+
* Application translator
|
|
32
|
+
*/
|
|
33
|
+
translator?: ITranslator;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Runtime variables selector component.
|
|
37
|
+
*/
|
|
38
|
+
export declare function RuntimeVariables(props: IRuntimeVariablesProps): ReactElement;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
4
|
+
* Distributed under the terms of the Modified BSD License.
|
|
5
|
+
*/
|
|
6
|
+
import { useMemo } from 'react';
|
|
7
|
+
import { IconButton, ToggleSwitch, FormControl } from '@primer/react';
|
|
8
|
+
import { Box } from '@datalayer/primer-addons';
|
|
9
|
+
import { Blankslate, DataTable, Table } from '@primer/react/experimental';
|
|
10
|
+
import { nullTranslator } from '@jupyterlab/translation';
|
|
11
|
+
import { checkIcon } from '@jupyterlab/ui-components';
|
|
12
|
+
/**
|
|
13
|
+
* Runtime variables selector component.
|
|
14
|
+
*/
|
|
15
|
+
export function RuntimeVariables(props) {
|
|
16
|
+
const { className, translator, selectedVariables, setSelectVariable, transferVariables, setTransferVariable, kernelVariables, } = props;
|
|
17
|
+
const trans = useMemo(() => (translator ?? nullTranslator).load('jupyterlab'), [translator]);
|
|
18
|
+
const nRows = Object.keys(kernelVariables ?? {}).length;
|
|
19
|
+
// Sorting and actions does not play nice together :'(
|
|
20
|
+
const columns = [
|
|
21
|
+
{
|
|
22
|
+
header: trans.__('Name'),
|
|
23
|
+
field: 'name',
|
|
24
|
+
rowHeader: true,
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
header: trans.__('Type'),
|
|
28
|
+
field: 'type',
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
id: 'select',
|
|
32
|
+
maxWidth: '70px',
|
|
33
|
+
header: () => (_jsx(IconButton, { "aria-label": selectedVariables.length === nRows
|
|
34
|
+
? trans.__('Deselect all')
|
|
35
|
+
: trans.__('Select all'), title: selectedVariables.length === nRows
|
|
36
|
+
? trans.__('Deselect all')
|
|
37
|
+
: trans.__('Select all'), icon: selectedVariables.length === nRows
|
|
38
|
+
? checkIcon.react
|
|
39
|
+
: () => _jsx("span", {}), variant: "default", size: "small", onClick: e => {
|
|
40
|
+
e.preventDefault();
|
|
41
|
+
if (selectedVariables.length === nRows) {
|
|
42
|
+
setSelectVariable([]);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
setSelectVariable(Object.keys(kernelVariables ?? {}));
|
|
46
|
+
}
|
|
47
|
+
} })),
|
|
48
|
+
renderCell: (row) => {
|
|
49
|
+
const isSelected = selectedVariables.includes(row.name);
|
|
50
|
+
return (_jsx(IconButton, { "aria-label": isSelected
|
|
51
|
+
? trans.__('Deselect: %1', row.name)
|
|
52
|
+
: trans.__('Select: %1', row.name), title: isSelected
|
|
53
|
+
? trans.__('Deselect: %1', row.name)
|
|
54
|
+
: trans.__('Select: %1', row.name), icon: isSelected ? checkIcon.react : () => _jsx("span", {}), variant: "default", size: "small", onClick: e => {
|
|
55
|
+
e.preventDefault();
|
|
56
|
+
const index = selectedVariables.findIndex(v => v === row.name);
|
|
57
|
+
if (index >= 0) {
|
|
58
|
+
const copy = [...selectedVariables];
|
|
59
|
+
copy.splice(index, 1);
|
|
60
|
+
setSelectVariable(copy);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
setSelectVariable([...selectedVariables, row.name]);
|
|
64
|
+
}
|
|
65
|
+
} }));
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
];
|
|
69
|
+
return (_jsxs(Box, { className: className, sx: { paddingTop: '10px' }, children: [_jsxs(FormControl, { layout: "horizontal", children: [_jsx(FormControl.Label, { children: trans.__('Transfer variables') }), _jsx(ToggleSwitch, { checked: transferVariables, size: "small", onClick: e => {
|
|
70
|
+
e.preventDefault();
|
|
71
|
+
setTransferVariable(!transferVariables);
|
|
72
|
+
}, "aria-labelledby": "kernel-toggle-variables" })] }), transferVariables && (_jsxs(Table.Container, { sx: { flex: '1 1 auto', marginTop: 3 }, children: [_jsx(Table.Subtitle, { as: "p", id: "dla-kernel-variables-subtitle", children: trans.__('The list of transferable runtime variables.') }), kernelVariables ? (Object.keys(kernelVariables ?? {}).length ? (_jsx(DataTable, { "aria-labelledby": "dla-kernel-variables", "aria-describedby": "dla-kernel-variables-subtitle", data: Object.entries(kernelVariables ?? {})
|
|
73
|
+
.map(([name, type], id) => ({ id, name, type }))
|
|
74
|
+
.sort((a, b) => (a.name > b.name ? 1 : -1)), columns: columns, cellPadding: "condensed" })) : (_jsx(Box, { sx: { gridArea: 'table' }, children: _jsx(Blankslate, { border: true, children: _jsx(Blankslate.Heading, { children: trans.__('No eligible variables.') }) }) }))) : (_jsx(Table.Skeleton, { "aria-labelledby": "dla-kernel-variables", "aria-describedby": "dla-kernel-variables-subtitle", columns: columns, rows: 5 }))] }))] }));
|
|
75
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './RuntimeCellVariables';
|
|
2
|
+
export * from './RuntimeCellVariablesDialog';
|
|
3
|
+
export * from './RuntimeLauncherDialog';
|
|
4
|
+
export * from './RuntimePickerBase';
|
|
5
|
+
export * from './RuntimePickerCell';
|
|
6
|
+
export * from './RuntimePickerNotebook';
|
|
7
|
+
export * from './RuntimeReservationControl';
|
|
8
|
+
export * from './RuntimeSimplePicker';
|
|
9
|
+
export * from './RuntimeTransfer';
|
|
10
|
+
export * from './RuntimeUtils';
|
|
11
|
+
export * from './RuntimeVariables';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
export * from './RuntimeCellVariables';
|
|
6
|
+
export * from './RuntimeCellVariablesDialog';
|
|
7
|
+
export * from './RuntimeLauncherDialog';
|
|
8
|
+
export * from './RuntimePickerBase';
|
|
9
|
+
export * from './RuntimePickerCell';
|
|
10
|
+
export * from './RuntimePickerNotebook';
|
|
11
|
+
export * from './RuntimeReservationControl';
|
|
12
|
+
export * from './RuntimeSimplePicker';
|
|
13
|
+
export * from './RuntimeTransfer';
|
|
14
|
+
export * from './RuntimeUtils';
|
|
15
|
+
export * from './RuntimeVariables';
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { type Icon } from '@primer/octicons-react';
|
|
2
|
+
import { type ScheduleDoc } from '../../api/scheduler/schedules';
|
|
3
|
+
/**
|
|
4
|
+
* Supported schedule presets.
|
|
5
|
+
*/
|
|
6
|
+
export type SchedulePreset = 'every-minute' | 'hourly' | 'daily' | 'custom';
|
|
7
|
+
/**
|
|
8
|
+
* Props for the self-contained {@link ScheduleMenu} component.
|
|
9
|
+
*
|
|
10
|
+
* The component performs the scheduler service calls internally. Provide the
|
|
11
|
+
* `notebookUid`, an authentication `token`, and the scheduler service
|
|
12
|
+
* `baseUrl` (configurable via props) to enable scheduling.
|
|
13
|
+
*/
|
|
14
|
+
export type ScheduleMenuProps = {
|
|
15
|
+
/** Target notebook uid to schedule (used to create/update a schedule). */
|
|
16
|
+
notebookUid?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Existing schedule uid to update in place. When provided, changes are
|
|
19
|
+
* persisted with a PUT update instead of a notebook upsert.
|
|
20
|
+
*/
|
|
21
|
+
scheduleUid?: string;
|
|
22
|
+
/** Authentication token used for scheduler API calls. */
|
|
23
|
+
token?: string;
|
|
24
|
+
/** Base URL of the scheduler service. Defaults to the production service. */
|
|
25
|
+
baseUrl?: string;
|
|
26
|
+
/** Force-disable the menu. When omitted, the menu is enabled if a token and notebook uid are present. */
|
|
27
|
+
enabled?: boolean;
|
|
28
|
+
/** Icon shown on the anchor button (replaced by a spinner while saving). */
|
|
29
|
+
icon?: Icon;
|
|
30
|
+
/** Optional color for the anchor icon. */
|
|
31
|
+
iconColor?: string;
|
|
32
|
+
/** Accessible label for the anchor button. */
|
|
33
|
+
ariaLabel?: string;
|
|
34
|
+
/** Initial preset selection. */
|
|
35
|
+
initialPreset?: SchedulePreset;
|
|
36
|
+
/** Initial cron expression. */
|
|
37
|
+
initialCronExpression?: string;
|
|
38
|
+
/** Called after a schedule is successfully saved. */
|
|
39
|
+
onSaved?: (schedule: ScheduleDoc) => void;
|
|
40
|
+
/** Called after a schedule is successfully deleted/disabled. */
|
|
41
|
+
onDeleted?: (schedule: ScheduleDoc) => void;
|
|
42
|
+
/** Called when saving a schedule fails. */
|
|
43
|
+
onError?: (error: unknown) => void;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Self-contained schedule menu that lets a user pick a cron schedule for a
|
|
47
|
+
* notebook and persists it to the scheduler service.
|
|
48
|
+
*
|
|
49
|
+
* The component owns its loading state and renders a spinner in place of the
|
|
50
|
+
* anchor icon while a save request is in flight. The scheduler service URL is
|
|
51
|
+
* configurable through the `baseUrl` prop.
|
|
52
|
+
*/
|
|
53
|
+
export declare const ScheduleMenu: ({ notebookUid, scheduleUid, token, baseUrl, enabled, icon, iconColor, ariaLabel, initialPreset, initialCronExpression, onSaved, onDeleted, onError, }: ScheduleMenuProps) => import("react/jsx-runtime").JSX.Element;
|
|
54
|
+
export default ScheduleMenu;
|