@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
|
@@ -14,7 +14,8 @@ import { useMemo, useState, useCallback } from 'react';
|
|
|
14
14
|
import { useQuery, useQueryClient, useMutation } from '@tanstack/react-query';
|
|
15
15
|
import { useIAMStore } from '@datalayer/core/lib/state';
|
|
16
16
|
import { useCoreStore, useDatalayer } from '@datalayer/core';
|
|
17
|
-
import { agentQueryKeys, AGENT_QUERY_OPTIONS } from './useAgentRuntimes';
|
|
17
|
+
import { agentQueryKeys, AGENT_QUERY_OPTIONS, clearRuntimePodDeleted, } from './useAgentRuntimes';
|
|
18
|
+
import { disposeSandboxServiceManagers } from '../services/sandboxServiceManagers';
|
|
18
19
|
// ═══════════════════════════════════════════════════════════════════════════
|
|
19
20
|
// Query hooks
|
|
20
21
|
// ═══════════════════════════════════════════════════════════════════════════
|
|
@@ -32,7 +33,7 @@ export function useCheckpointsQuery() {
|
|
|
32
33
|
queryKey: agentQueryKeys.checkpoints.lists(),
|
|
33
34
|
queryFn: async () => {
|
|
34
35
|
const resp = await requestDatalayer({
|
|
35
|
-
url: `${configuration.
|
|
36
|
+
url: `${configuration.runtimesUrl}/api/runtimes/v1/runtime-checkpoints`,
|
|
36
37
|
method: 'GET',
|
|
37
38
|
});
|
|
38
39
|
if (resp.success && resp.checkpoints) {
|
|
@@ -71,7 +72,7 @@ export function useDeletePausedAgentRuntime() {
|
|
|
71
72
|
return useMutation({
|
|
72
73
|
mutationFn: async (podName) => {
|
|
73
74
|
return requestDatalayer({
|
|
74
|
-
url: `${configuration.
|
|
75
|
+
url: `${configuration.runtimesUrl}/api/runtimes/v1/runtimes/${podName}/paused`,
|
|
75
76
|
method: 'DELETE',
|
|
76
77
|
});
|
|
77
78
|
},
|
|
@@ -101,11 +102,14 @@ export function useResumePausedAgentRuntime() {
|
|
|
101
102
|
return useMutation({
|
|
102
103
|
mutationFn: async (podName) => {
|
|
103
104
|
return requestDatalayer({
|
|
104
|
-
url: `${configuration.
|
|
105
|
+
url: `${configuration.runtimesUrl}/api/runtimes/v1/runtimes/${podName}/resume`,
|
|
105
106
|
method: 'POST',
|
|
106
107
|
});
|
|
107
108
|
},
|
|
108
|
-
onSuccess: () => {
|
|
109
|
+
onSuccess: (_data, podName) => {
|
|
110
|
+
// The pod can come back under the same name — drop any delete tombstone
|
|
111
|
+
// so the runtimes queries do not filter the resumed runtime out.
|
|
112
|
+
clearRuntimePodDeleted(podName);
|
|
109
113
|
queryClient.invalidateQueries({
|
|
110
114
|
queryKey: agentQueryKeys.agentRuntimes.all(),
|
|
111
115
|
});
|
|
@@ -131,10 +135,10 @@ export function usePauseAgent() {
|
|
|
131
135
|
mutationFn: async (params) => {
|
|
132
136
|
const { iamStore, coreStore } = await import('@datalayer/core/lib/state');
|
|
133
137
|
const token = iamStore.getState().token || '';
|
|
134
|
-
const
|
|
135
|
-
const { pauseRuntime } = await import('
|
|
138
|
+
const runtimesUrl = coreStore.getState().configuration?.runtimesUrl || '';
|
|
139
|
+
const { pauseRuntime } = await import('../api/runtimes/runtimes');
|
|
136
140
|
const mode = params.mode || 'light';
|
|
137
|
-
const resp = await pauseRuntime(token, params.podName,
|
|
141
|
+
const resp = await pauseRuntime(token, params.podName, runtimesUrl, {
|
|
138
142
|
agent_spec_id: params.agentSpecId,
|
|
139
143
|
checkpoint_mode: mode,
|
|
140
144
|
...(params.messages && mode === 'light'
|
|
@@ -143,15 +147,18 @@ export function usePauseAgent() {
|
|
|
143
147
|
...(params.agentSpec ? { agentspec: params.agentSpec } : {}),
|
|
144
148
|
});
|
|
145
149
|
if (resp.checkpoint_id) {
|
|
146
|
-
const { waitForCheckpointStatus } = await import('
|
|
147
|
-
const ckpt = await waitForCheckpointStatus(token, params.podName, resp.checkpoint_id, ['paused', 'failed'],
|
|
150
|
+
const { waitForCheckpointStatus } = await import('../api/runtimes/checkpoints');
|
|
151
|
+
const ckpt = await waitForCheckpointStatus(token, params.podName, resp.checkpoint_id, ['paused', 'failed'], runtimesUrl);
|
|
148
152
|
if (ckpt.status === 'failed') {
|
|
149
153
|
throw new Error(`Checkpoint ${resp.checkpoint_id} failed during ${mode.toUpperCase()} pause`);
|
|
150
154
|
}
|
|
151
155
|
}
|
|
152
156
|
return resp;
|
|
153
157
|
},
|
|
154
|
-
onSuccess: () => {
|
|
158
|
+
onSuccess: (_data, params) => {
|
|
159
|
+
// Pausing tears the pod down: dispose every ServiceManager any surface
|
|
160
|
+
// opened against the sandbox so their pollers stop immediately.
|
|
161
|
+
disposeSandboxServiceManagers(params.podName);
|
|
155
162
|
queryClient.invalidateQueries({
|
|
156
163
|
queryKey: agentQueryKeys.agentRuntimes.all(),
|
|
157
164
|
});
|
|
@@ -173,15 +180,18 @@ export function useResumeAgent() {
|
|
|
173
180
|
mutationFn: async (params) => {
|
|
174
181
|
const { iamStore, coreStore } = await import('@datalayer/core/lib/state');
|
|
175
182
|
const token = iamStore.getState().token || '';
|
|
176
|
-
const
|
|
177
|
-
const { resumeRuntime } = await import('
|
|
178
|
-
return resumeRuntime(token, params.podName,
|
|
183
|
+
const runtimesUrl = coreStore.getState().configuration?.runtimesUrl || '';
|
|
184
|
+
const { resumeRuntime } = await import('../api/runtimes/runtimes');
|
|
185
|
+
return resumeRuntime(token, params.podName, runtimesUrl, {
|
|
179
186
|
agent_spec_id: params.agentSpecId,
|
|
180
187
|
...(params.mode ? { checkpoint_mode: params.mode } : {}),
|
|
181
188
|
...(params.checkpointId ? { checkpoint_id: params.checkpointId } : {}),
|
|
182
189
|
});
|
|
183
190
|
},
|
|
184
|
-
onSuccess: () => {
|
|
191
|
+
onSuccess: (_data, params) => {
|
|
192
|
+
// The pod can come back under the same name — drop any delete tombstone
|
|
193
|
+
// so the runtimes queries do not filter the resumed runtime out.
|
|
194
|
+
clearRuntimePodDeleted(params.podName);
|
|
185
195
|
queryClient.invalidateQueries({
|
|
186
196
|
queryKey: agentQueryKeys.agentRuntimes.all(),
|
|
187
197
|
});
|
|
@@ -203,11 +213,11 @@ export function useCheckpointAgent() {
|
|
|
203
213
|
mutationFn: async (params) => {
|
|
204
214
|
const { iamStore, coreStore } = await import('@datalayer/core/lib/state');
|
|
205
215
|
const token = iamStore.getState().token || '';
|
|
206
|
-
const
|
|
207
|
-
const { pauseRuntime } = await import('
|
|
208
|
-
const { waitForCheckpointStatus } = await import('
|
|
216
|
+
const runtimesUrl = coreStore.getState().configuration?.runtimesUrl || '';
|
|
217
|
+
const { pauseRuntime } = await import('../api/runtimes/runtimes');
|
|
218
|
+
const { waitForCheckpointStatus } = await import('../api/runtimes/checkpoints');
|
|
209
219
|
const mode = params.mode || 'criu';
|
|
210
|
-
const pauseResp = await pauseRuntime(token, params.podName,
|
|
220
|
+
const pauseResp = await pauseRuntime(token, params.podName, runtimesUrl, {
|
|
211
221
|
name: params.name || `checkpoint-${Date.now()}`,
|
|
212
222
|
description: `${mode.toUpperCase()} checkpoint for ${params.agentSpecId}`,
|
|
213
223
|
checkpoint_mode: mode,
|
|
@@ -221,7 +231,7 @@ export function useCheckpointAgent() {
|
|
|
221
231
|
if (!checkpointId) {
|
|
222
232
|
throw new Error('Pause did not return a checkpoint_id');
|
|
223
233
|
}
|
|
224
|
-
const ckpt = await waitForCheckpointStatus(token, params.podName, checkpointId, ['paused', 'failed'],
|
|
234
|
+
const ckpt = await waitForCheckpointStatus(token, params.podName, checkpointId, ['paused', 'failed'], runtimesUrl);
|
|
225
235
|
if (ckpt.status === 'failed') {
|
|
226
236
|
throw new Error(`Checkpoint ${checkpointId} failed during ${mode.toUpperCase()} pause`);
|
|
227
237
|
}
|
|
@@ -249,9 +259,9 @@ export function useTerminateAgent() {
|
|
|
249
259
|
mutationFn: async (params) => {
|
|
250
260
|
const { iamStore, coreStore } = await import('@datalayer/core/lib/state');
|
|
251
261
|
const token = iamStore.getState().token || '';
|
|
252
|
-
const
|
|
253
|
-
const { deleteRuntime } = await import('
|
|
254
|
-
return deleteRuntime(token, params.podName,
|
|
262
|
+
const runtimesUrl = coreStore.getState().configuration?.runtimesUrl || '';
|
|
263
|
+
const { deleteRuntime } = await import('../api/runtimes/runtimes');
|
|
264
|
+
return deleteRuntime(token, params.podName, runtimesUrl);
|
|
255
265
|
},
|
|
256
266
|
onSuccess: () => {
|
|
257
267
|
queryClient.invalidateQueries({
|
|
@@ -330,9 +340,9 @@ export function useAgentLifecycle(options) {
|
|
|
330
340
|
try {
|
|
331
341
|
const { iamStore, coreStore } = await import('@datalayer/core/lib/state');
|
|
332
342
|
const token = iamStore.getState().token || '';
|
|
333
|
-
const
|
|
334
|
-
const { listRuntimes } = await import('
|
|
335
|
-
const runtimesResponse = await listRuntimes(token,
|
|
343
|
+
const runtimesUrl = coreStore.getState().configuration?.runtimesUrl || '';
|
|
344
|
+
const { listRuntimes } = await import('../api/runtimes/runtimes');
|
|
345
|
+
const runtimesResponse = await listRuntimes(token, runtimesUrl);
|
|
336
346
|
const runtimes = runtimesResponse.runtimes || [];
|
|
337
347
|
const aiAgentRuntimes = runtimes.filter(rt => {
|
|
338
348
|
if (rt.environment_name !== 'ai-agents-env') {
|
|
@@ -341,9 +351,9 @@ export function useAgentLifecycle(options) {
|
|
|
341
351
|
if (!agentSpecId) {
|
|
342
352
|
return true;
|
|
343
353
|
}
|
|
344
|
-
const
|
|
354
|
+
const runtimeAgentspecId = rt
|
|
345
355
|
.agent_spec_id;
|
|
346
|
-
return
|
|
356
|
+
return runtimeAgentspecId === agentSpecId;
|
|
347
357
|
});
|
|
348
358
|
const latestRuntime = aiAgentRuntimes.slice().sort((a, b) => {
|
|
349
359
|
const aTs = Number(a.started_at || 0);
|
package/lib/hooks/useConfig.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { RemoteConfig } from '../types/config';
|
|
|
3
3
|
* Hook to safely use query when QueryClient is available.
|
|
4
4
|
* Returns a mock result if no QueryClientProvider is present.
|
|
5
5
|
*/
|
|
6
|
-
export declare function useConfig(enabled: boolean, configEndpoint?: string, authToken?: string, agentId?: string): import("@tanstack/query-core").QueryObserverRefetchErrorResult<RemoteConfig
|
|
6
|
+
export declare function useConfig(enabled: boolean, configEndpoint?: string, authToken?: string, agentId?: string): import("@tanstack/query-core").QueryObserverRefetchErrorResult<NoInfer<RemoteConfig>, Error> | import("@tanstack/query-core").QueryObserverSuccessResult<NoInfer<RemoteConfig>, Error> | import("@tanstack/query-core").QueryObserverLoadingErrorResult<NoInfer<RemoteConfig>, Error> | import("@tanstack/query-core").QueryObserverPendingResult<NoInfer<RemoteConfig>, Error> | import("@tanstack/query-core").QueryObserverPlaceholderResult<NoInfer<RemoteConfig>, Error> | {
|
|
7
7
|
data: undefined;
|
|
8
8
|
isLoading: boolean;
|
|
9
9
|
isError: boolean;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
export interface OtelQueryOptions {
|
|
2
2
|
metric: string;
|
|
3
3
|
serviceName?: string;
|
|
4
|
-
|
|
4
|
+
datalayerUrl?: string;
|
|
5
5
|
apiKey?: string;
|
|
6
6
|
limit?: number;
|
|
7
|
+
accountUid?: string;
|
|
7
8
|
}
|
|
8
9
|
interface MetricValueRow {
|
|
9
10
|
value?: unknown;
|
|
@@ -11,14 +12,15 @@ interface MetricValueRow {
|
|
|
11
12
|
value_int?: unknown;
|
|
12
13
|
}
|
|
13
14
|
export declare function toMetricValue(row: MetricValueRow): number;
|
|
14
|
-
export declare function fetchOtelMetricRows({ metric, serviceName,
|
|
15
|
+
export declare function fetchOtelMetricRows({ metric, serviceName, datalayerUrl, apiKey, limit, accountUid, }: OtelQueryOptions): Promise<MetricValueRow[]>;
|
|
15
16
|
export declare function fetchOtelMetricTotal(options: OtelQueryOptions): Promise<number>;
|
|
16
17
|
export interface OtelTotalTokensOptions {
|
|
17
18
|
serviceName?: string;
|
|
18
|
-
|
|
19
|
+
datalayerUrl?: string;
|
|
19
20
|
apiKey?: string;
|
|
20
21
|
limit?: number;
|
|
22
|
+
accountUid?: string;
|
|
21
23
|
}
|
|
22
|
-
export declare function fetchOtelTotalTokens({ serviceName,
|
|
23
|
-
export declare function useOtelTotalTokens({ serviceName,
|
|
24
|
+
export declare function fetchOtelTotalTokens({ serviceName, datalayerUrl, apiKey, limit, accountUid, }: OtelTotalTokensOptions): Promise<number>;
|
|
25
|
+
export declare function useOtelTotalTokens({ serviceName, datalayerUrl, apiKey, limit, accountUid, }: OtelTotalTokensOptions): string;
|
|
24
26
|
export {};
|
|
@@ -24,18 +24,19 @@ export function toMetricValue(row) {
|
|
|
24
24
|
}
|
|
25
25
|
return 0;
|
|
26
26
|
}
|
|
27
|
-
export async function fetchOtelMetricRows({ metric, serviceName,
|
|
28
|
-
if (!
|
|
27
|
+
export async function fetchOtelMetricRows({ metric, serviceName, datalayerUrl, apiKey, limit = 500, accountUid, }) {
|
|
28
|
+
if (!datalayerUrl || !apiKey) {
|
|
29
29
|
return [];
|
|
30
30
|
}
|
|
31
31
|
const client = createOtelClient({
|
|
32
|
-
baseUrl:
|
|
32
|
+
baseUrl: datalayerUrl,
|
|
33
33
|
token: apiKey,
|
|
34
34
|
});
|
|
35
35
|
const filtered = await client.fetchMetrics({
|
|
36
36
|
metricName: metric,
|
|
37
37
|
serviceName,
|
|
38
38
|
limit,
|
|
39
|
+
accountUid,
|
|
39
40
|
});
|
|
40
41
|
if (filtered.data.length > 0 || !serviceName) {
|
|
41
42
|
return filtered.data;
|
|
@@ -43,6 +44,7 @@ export async function fetchOtelMetricRows({ metric, serviceName, runUrl, apiKey,
|
|
|
43
44
|
const fallback = await client.fetchMetrics({
|
|
44
45
|
metricName: metric,
|
|
45
46
|
limit,
|
|
47
|
+
accountUid,
|
|
46
48
|
});
|
|
47
49
|
return fallback.data;
|
|
48
50
|
}
|
|
@@ -50,13 +52,14 @@ export async function fetchOtelMetricTotal(options) {
|
|
|
50
52
|
const rows = await fetchOtelMetricRows(options);
|
|
51
53
|
return rows.reduce((sum, row) => sum + toMetricValue(row), 0);
|
|
52
54
|
}
|
|
53
|
-
export async function fetchOtelTotalTokens({ serviceName,
|
|
55
|
+
export async function fetchOtelTotalTokens({ serviceName, datalayerUrl, apiKey, limit = 500, accountUid, }) {
|
|
54
56
|
const total = await fetchOtelMetricTotal({
|
|
55
57
|
metric: 'agent_runtimes.prompt.turn.total_tokens',
|
|
56
58
|
serviceName,
|
|
57
|
-
|
|
59
|
+
datalayerUrl,
|
|
58
60
|
apiKey,
|
|
59
61
|
limit,
|
|
62
|
+
accountUid,
|
|
60
63
|
});
|
|
61
64
|
if (total > 0) {
|
|
62
65
|
return total;
|
|
@@ -64,20 +67,22 @@ export async function fetchOtelTotalTokens({ serviceName, runUrl, apiKey, limit
|
|
|
64
67
|
const prompt = await fetchOtelMetricTotal({
|
|
65
68
|
metric: 'agent_runtimes.prompt.turn.prompt_tokens',
|
|
66
69
|
serviceName,
|
|
67
|
-
|
|
70
|
+
datalayerUrl,
|
|
68
71
|
apiKey,
|
|
69
72
|
limit,
|
|
73
|
+
accountUid,
|
|
70
74
|
});
|
|
71
75
|
const completion = await fetchOtelMetricTotal({
|
|
72
76
|
metric: 'agent_runtimes.prompt.turn.completion_tokens',
|
|
73
77
|
serviceName,
|
|
74
|
-
|
|
78
|
+
datalayerUrl,
|
|
75
79
|
apiKey,
|
|
76
80
|
limit,
|
|
81
|
+
accountUid,
|
|
77
82
|
});
|
|
78
83
|
return prompt + completion;
|
|
79
84
|
}
|
|
80
|
-
export function useOtelTotalTokens({ serviceName,
|
|
85
|
+
export function useOtelTotalTokens({ serviceName, datalayerUrl, apiKey, limit = 500, accountUid, }) {
|
|
81
86
|
const [tokensLabel, setTokensLabel] = useState('-');
|
|
82
87
|
useEffect(() => {
|
|
83
88
|
let cancelled = false;
|
|
@@ -85,9 +90,10 @@ export function useOtelTotalTokens({ serviceName, runUrl, apiKey, limit = 500, }
|
|
|
85
90
|
try {
|
|
86
91
|
const total = await fetchOtelTotalTokens({
|
|
87
92
|
serviceName,
|
|
88
|
-
|
|
93
|
+
datalayerUrl,
|
|
89
94
|
apiKey,
|
|
90
95
|
limit,
|
|
96
|
+
accountUid,
|
|
91
97
|
});
|
|
92
98
|
if (cancelled) {
|
|
93
99
|
return;
|
|
@@ -109,6 +115,6 @@ export function useOtelTotalTokens({ serviceName, runUrl, apiKey, limit = 500, }
|
|
|
109
115
|
return () => {
|
|
110
116
|
cancelled = true;
|
|
111
117
|
};
|
|
112
|
-
}, [apiKey, limit,
|
|
118
|
+
}, [apiKey, limit, datalayerUrl, serviceName, accountUid]);
|
|
113
119
|
return tokensLabel;
|
|
114
120
|
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import type { NotificationFilters, ListAgentEventsParams, CreateAgentEventRequest, UpdateAgentEventRequest } from '../types';
|
|
2
|
-
export declare function useFilteredNotifications(filters?: NotificationFilters): import("@tanstack/react-query").UseQueryResult<import("../types").AgentNotification[]
|
|
3
|
-
export declare function useUnreadNotificationCount(): import("@tanstack/react-query").UseQueryResult<{
|
|
2
|
+
export declare function useFilteredNotifications(filters?: NotificationFilters): import("@tanstack/react-query").UseQueryResult<NoInfer<import("../types").AgentNotification[]>, Error>;
|
|
3
|
+
export declare function useUnreadNotificationCount(): import("@tanstack/react-query").UseQueryResult<NoInfer<{
|
|
4
4
|
count: number;
|
|
5
|
-
}
|
|
5
|
+
}>, Error>;
|
|
6
6
|
export declare function useMarkNotificationRead(): import("@tanstack/react-query").UseMutationResult<void, Error, string, unknown>;
|
|
7
7
|
export declare function useMarkAllNotificationsRead(): import("@tanstack/react-query").UseMutationResult<void, Error, void, unknown>;
|
|
8
8
|
/**
|
|
9
9
|
* List events across all agents for the authenticated user.
|
|
10
10
|
*/
|
|
11
|
-
export declare function useAllAgentEvents(params?: Omit<ListAgentEventsParams, 'agent_id'>, enabled?: boolean): import("@tanstack/react-query").UseQueryResult<import("../types").ListAgentEventsResponse
|
|
12
|
-
export declare function useAgentEvents(agentId: string, params?: Omit<ListAgentEventsParams, 'agent_id'>, enabled?: boolean): import("@tanstack/react-query").UseQueryResult<import("../types").ListAgentEventsResponse
|
|
13
|
-
export declare function useAgentEvent(agentId: string, eventId?: string): import("@tanstack/react-query").UseQueryResult<import("../types").GetAgentEventResponse
|
|
11
|
+
export declare function useAllAgentEvents(params?: Omit<ListAgentEventsParams, 'agent_id'>, enabled?: boolean): import("@tanstack/react-query").UseQueryResult<NoInfer<import("../types").ListAgentEventsResponse>, Error>;
|
|
12
|
+
export declare function useAgentEvents(agentId: string, params?: Omit<ListAgentEventsParams, 'agent_id'>, enabled?: boolean): import("@tanstack/react-query").UseQueryResult<NoInfer<import("../types").ListAgentEventsResponse>, Error>;
|
|
13
|
+
export declare function useAgentEvent(agentId: string, eventId?: string): import("@tanstack/react-query").UseQueryResult<NoInfer<import("../types").GetAgentEventResponse>, Error>;
|
|
14
14
|
export declare function useCreateAgentEvent(): import("@tanstack/react-query").UseMutationResult<{
|
|
15
15
|
success: boolean;
|
|
16
16
|
event: import("../types").AgentEvent;
|
|
@@ -34,14 +34,14 @@ export declare function useMarkEventUnread(agentId: string): import("@tanstack/r
|
|
|
34
34
|
eventAgentId?: string;
|
|
35
35
|
}, unknown>;
|
|
36
36
|
export declare function useNotifications(agentId: string, filters?: NotificationFilters, eventParams?: Omit<ListAgentEventsParams, 'agent_id'>, eventId?: string): {
|
|
37
|
-
notificationsQuery: import("@tanstack/react-query").UseQueryResult<import("../types").AgentNotification[]
|
|
38
|
-
unreadCountQuery: import("@tanstack/react-query").UseQueryResult<{
|
|
37
|
+
notificationsQuery: import("@tanstack/react-query").UseQueryResult<NoInfer<import("../types").AgentNotification[]>, Error>;
|
|
38
|
+
unreadCountQuery: import("@tanstack/react-query").UseQueryResult<NoInfer<{
|
|
39
39
|
count: number;
|
|
40
|
-
}
|
|
40
|
+
}>, Error>;
|
|
41
41
|
markRead: import("@tanstack/react-query").UseMutationResult<void, Error, string, unknown>;
|
|
42
42
|
markAllRead: import("@tanstack/react-query").UseMutationResult<void, Error, void, unknown>;
|
|
43
|
-
eventsQuery: import("@tanstack/react-query").UseQueryResult<import("../types").ListAgentEventsResponse
|
|
44
|
-
eventQuery: import("@tanstack/react-query").UseQueryResult<import("../types").GetAgentEventResponse
|
|
43
|
+
eventsQuery: import("@tanstack/react-query").UseQueryResult<NoInfer<import("../types").ListAgentEventsResponse>, Error>;
|
|
44
|
+
eventQuery: import("@tanstack/react-query").UseQueryResult<NoInfer<import("../types").GetAgentEventResponse>, Error>;
|
|
45
45
|
createEvent: import("@tanstack/react-query").UseMutationResult<{
|
|
46
46
|
success: boolean;
|
|
47
47
|
event: import("../types").AgentEvent;
|
|
@@ -19,7 +19,7 @@ function useAuthToken() {
|
|
|
19
19
|
}
|
|
20
20
|
function useBaseUrl() {
|
|
21
21
|
const config = useCoreStore((s) => s.configuration);
|
|
22
|
-
return config?.
|
|
22
|
+
return config?.aiAgentsUrl ?? DEFAULT_SERVICE_URLS.AI_AGENTS;
|
|
23
23
|
}
|
|
24
24
|
// ─── Base hooks ──────────────────────────────────────────────────────
|
|
25
25
|
export function useFilteredNotifications(filters) {
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State shape for the global top progress bar.
|
|
3
|
+
*/
|
|
4
|
+
export type ProgressState = {
|
|
5
|
+
/** Map of currently-active task ids. */
|
|
6
|
+
tasks: Record<string, true>;
|
|
7
|
+
/** True while at least one task is active. */
|
|
8
|
+
isActive: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Mark a task as active. Returns the task id so callers can stop it later.
|
|
11
|
+
* When no id is supplied a unique one is generated.
|
|
12
|
+
*/
|
|
13
|
+
startTask: (id?: string) => string;
|
|
14
|
+
/** Mark a task as no longer active. */
|
|
15
|
+
stopTask: (id: string) => void;
|
|
16
|
+
/**
|
|
17
|
+
* Bind the bar to a boolean loading flag for a given task id. Convenient
|
|
18
|
+
* inside effects: `setTaskActive('volumes', volumesLoading)`.
|
|
19
|
+
*/
|
|
20
|
+
setTaskActive: (id: string, active: boolean) => void;
|
|
21
|
+
/** Clear every active task (hides the bar). */
|
|
22
|
+
reset: () => void;
|
|
23
|
+
};
|
|
24
|
+
export declare const useProgressStore: import("zustand").UseBoundStore<import("zustand").StoreApi<ProgressState>>;
|
|
25
|
+
export default useProgressStore;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Global "top progress bar" store.
|
|
7
|
+
*
|
|
8
|
+
* Drives a single, app-wide GitHub-style indeterminate progress bar rendered
|
|
9
|
+
* at the bottom edge of a view header. Any UI component can signal that
|
|
10
|
+
* background work is happening without owning its own spinner.
|
|
11
|
+
*
|
|
12
|
+
* Concurrency is handled by reference-counting active tasks keyed by an
|
|
13
|
+
* arbitrary id, so multiple overlapping loads keep the bar visible until the
|
|
14
|
+
* last one finishes. Use {@link ProgressState.setTaskActive} to bind the bar
|
|
15
|
+
* to a boolean loading flag, or {@link ProgressState.startTask} /
|
|
16
|
+
* {@link ProgressState.stopTask} for imperative start/stop pairs. The
|
|
17
|
+
* {@link useProgressTask} hook wraps this store for the common effect-driven
|
|
18
|
+
* case.
|
|
19
|
+
*
|
|
20
|
+
* @module hooks/useProgressStore
|
|
21
|
+
*/
|
|
22
|
+
import { create } from 'zustand';
|
|
23
|
+
const computeActive = (tasks) => Object.keys(tasks).length > 0;
|
|
24
|
+
export const useProgressStore = create((set, get) => ({
|
|
25
|
+
tasks: {},
|
|
26
|
+
isActive: false,
|
|
27
|
+
startTask: id => {
|
|
28
|
+
const taskId = id || `progress-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
|
|
29
|
+
set(state => {
|
|
30
|
+
if (state.tasks[taskId]) {
|
|
31
|
+
return state;
|
|
32
|
+
}
|
|
33
|
+
const tasks = { ...state.tasks, [taskId]: true };
|
|
34
|
+
return { tasks, isActive: computeActive(tasks) };
|
|
35
|
+
});
|
|
36
|
+
return taskId;
|
|
37
|
+
},
|
|
38
|
+
stopTask: id => {
|
|
39
|
+
set(state => {
|
|
40
|
+
if (!state.tasks[id]) {
|
|
41
|
+
return state;
|
|
42
|
+
}
|
|
43
|
+
const tasks = { ...state.tasks };
|
|
44
|
+
delete tasks[id];
|
|
45
|
+
return { tasks, isActive: computeActive(tasks) };
|
|
46
|
+
});
|
|
47
|
+
},
|
|
48
|
+
setTaskActive: (id, active) => {
|
|
49
|
+
if (active) {
|
|
50
|
+
get().startTask(id);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
get().stopTask(id);
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
reset: () => set({ tasks: {}, isActive: false }),
|
|
57
|
+
}));
|
|
58
|
+
export default useProgressStore;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Drive the shared top progress bar from a boolean loading flag.
|
|
3
|
+
*
|
|
4
|
+
* @param id - Stable, unique task id (e.g. `'volumes'`). Distinct ids let
|
|
5
|
+
* concurrent loads coexist without prematurely hiding the bar.
|
|
6
|
+
* @param active - Whether the task is currently in progress.
|
|
7
|
+
*/
|
|
8
|
+
export declare function useProgressTask(id: string, active: boolean): void;
|
|
9
|
+
export default useProgressTask;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025-2026 Datalayer, Inc.
|
|
3
|
+
* Distributed under the terms of the Modified BSD License.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Reusable hook that binds a boolean loading flag to the global top progress
|
|
7
|
+
* bar ({@link useProgressStore}). While `active` is true the shared bar shows
|
|
8
|
+
* activity; it is automatically released when `active` turns false or the
|
|
9
|
+
* component unmounts.
|
|
10
|
+
*
|
|
11
|
+
* Because the bar reference-counts tasks by id, multiple overlapping loads
|
|
12
|
+
* (across any views) keep the single app-wide bar visible until the last one
|
|
13
|
+
* completes.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```tsx
|
|
17
|
+
* const { isPending } = useVolumes();
|
|
18
|
+
* useProgressTask('volumes', isPending);
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @module hooks/useProgressTask
|
|
22
|
+
*/
|
|
23
|
+
import { useEffect } from 'react';
|
|
24
|
+
import { useProgressStore } from './useProgressStore';
|
|
25
|
+
/**
|
|
26
|
+
* Drive the shared top progress bar from a boolean loading flag.
|
|
27
|
+
*
|
|
28
|
+
* @param id - Stable, unique task id (e.g. `'volumes'`). Distinct ids let
|
|
29
|
+
* concurrent loads coexist without prematurely hiding the bar.
|
|
30
|
+
* @param active - Whether the task is currently in progress.
|
|
31
|
+
*/
|
|
32
|
+
export function useProgressTask(id, active) {
|
|
33
|
+
const setTaskActive = useProgressStore(state => state.setTaskActive);
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
setTaskActive(id, active);
|
|
36
|
+
return () => {
|
|
37
|
+
setTaskActive(id, false);
|
|
38
|
+
};
|
|
39
|
+
}, [id, active, setTaskActive]);
|
|
40
|
+
}
|
|
41
|
+
export default useProgressTask;
|