@datalayer/core 1.0.25 → 1.1.41

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.
Files changed (339) hide show
  1. package/README.md +14 -26
  2. package/lib/api/index.d.ts +0 -9
  3. package/lib/api/index.js +0 -9
  4. package/lib/cli-login.js +167 -0
  5. package/lib/client/base.d.ts +0 -3
  6. package/lib/client/base.js +0 -2
  7. package/lib/client/index.d.ts +10 -98
  8. package/lib/client/index.js +12 -21
  9. package/lib/components/avatars/UserAvatar.d.ts +16 -0
  10. package/lib/components/avatars/UserAvatar.js +47 -0
  11. package/lib/components/avatars/index.d.ts +1 -0
  12. package/lib/components/avatars/index.js +1 -0
  13. package/lib/components/billing/BillableAccountSelect.js +4 -0
  14. package/lib/components/billing/index.js +4 -0
  15. package/lib/components/context/index.d.ts +0 -1
  16. package/lib/components/context/index.js +0 -1
  17. package/lib/components/display/DisplayHandle.d.ts +12 -0
  18. package/lib/components/display/DisplayHandle.js +11 -0
  19. package/lib/components/display/LiveRelativeTime.js +4 -0
  20. package/lib/components/display/index.d.ts +1 -0
  21. package/lib/components/display/index.js +1 -0
  22. package/lib/components/flashes/index.d.ts +0 -1
  23. package/lib/components/flashes/index.js +0 -1
  24. package/lib/components/index.d.ts +0 -1
  25. package/lib/components/index.js +0 -1
  26. package/lib/components/principal/Principal.d.ts +7 -0
  27. package/lib/components/principal/Principal.js +153 -16
  28. package/lib/components/principal/PrincipalAvatar.d.ts +1 -1
  29. package/lib/components/principal/PrincipalAvatar.js +4 -28
  30. package/lib/components/principal/PrincipalBadge.js +4 -4
  31. package/lib/components/principal/PrincipalDetailsOverlay.d.ts +4 -2
  32. package/lib/components/principal/PrincipalDetailsOverlay.js +27 -7
  33. package/lib/components/principal/PrincipalSwitcherMenu.js +76 -39
  34. package/lib/components/progress/index.d.ts +0 -1
  35. package/lib/components/progress/index.js +0 -1
  36. package/lib/components/sharing/ShareAccessComponent.d.ts +3 -2
  37. package/lib/components/sharing/ShareAccessComponent.js +180 -133
  38. package/lib/components/sharing/SharingEditor.js +4 -0
  39. package/lib/components/snippets/index.d.ts +1 -1
  40. package/lib/components/snippets/index.js +1 -1
  41. package/lib/components/students/StudentResultCircle.d.ts +21 -0
  42. package/lib/components/students/StudentResultCircle.js +59 -0
  43. package/lib/components/students/index.d.ts +1 -1
  44. package/lib/components/students/index.js +1 -1
  45. package/lib/components/time/LiveRelativeTime.js +4 -0
  46. package/lib/components/time/index.js +4 -0
  47. package/lib/components/timeline/index.js +4 -0
  48. package/lib/components/tokens/index.d.ts +1 -1
  49. package/lib/components/tokens/index.js +1 -1
  50. package/lib/components/toolbars/index.d.ts +1 -3
  51. package/lib/components/toolbars/index.js +1 -3
  52. package/lib/hooks/cacheConverters.d.ts +21 -0
  53. package/lib/hooks/cacheConverters.js +110 -0
  54. package/lib/hooks/index.d.ts +0 -2
  55. package/lib/hooks/index.js +0 -2
  56. package/lib/hooks/useCache.d.ts +64 -35
  57. package/lib/hooks/useCache.js +407 -52
  58. package/lib/hooks/useDatalayer.js +3 -1
  59. package/lib/hooks/useIAM.js +1 -3
  60. package/lib/hooks/useLocationHandles.d.ts +3 -1
  61. package/lib/hooks/useLocationHandles.js +2 -1
  62. package/lib/hooks/usePrincipalStore.d.ts +2 -2
  63. package/lib/hooks/usePrincipalStore.js +97 -14
  64. package/lib/hooks/useSelectedPrincipal.js +1 -1
  65. package/lib/hooks/useUser.js +19 -2
  66. package/lib/index.d.ts +1 -6
  67. package/lib/index.js +1 -13
  68. package/lib/main.js +3 -3
  69. package/lib/mocks/index.js +1 -1
  70. package/lib/mocks/models/index.d.ts +0 -1
  71. package/lib/mocks/models/index.js +0 -1
  72. package/lib/models/Datasource.d.ts +2 -2
  73. package/lib/models/IAM.d.ts +1 -1
  74. package/lib/models/School.d.ts +12 -3
  75. package/lib/models/Secret.d.ts +2 -2
  76. package/lib/models/Student.d.ts +13 -3
  77. package/lib/models/Usage.d.ts +11 -1
  78. package/lib/models/UserDTO.d.ts +2 -2
  79. package/lib/models/index.d.ts +0 -30
  80. package/lib/models/index.js +0 -30
  81. package/lib/routes/index.d.ts +1 -0
  82. package/lib/routes/index.js +1 -0
  83. package/lib/routes/publicPaths.d.ts +23 -0
  84. package/lib/routes/publicPaths.js +74 -0
  85. package/lib/state/State.d.ts +0 -12
  86. package/lib/state/State.js +0 -12
  87. package/lib/state/substates/LayoutState.d.ts +12 -1
  88. package/lib/state/substates/index.d.ts +0 -7
  89. package/lib/state/substates/index.js +0 -7
  90. package/lib/utils/Handles.js +3 -1
  91. package/lib/utils/index.d.ts +0 -1
  92. package/lib/utils/index.js +0 -1
  93. package/lib/views/api-keys/APIKeys.js +12 -3
  94. package/lib/views/datasources/DatasourceDetail.d.ts +1 -1
  95. package/lib/views/datasources/DatasourceNew.d.ts +1 -1
  96. package/lib/views/datasources/Datasources.d.ts +1 -1
  97. package/lib/views/datasources/Datasources.js +12 -3
  98. package/lib/views/iam/SignInSimple.d.ts +37 -1
  99. package/lib/views/iam/SignInSimple.js +110 -12
  100. package/package.json +5 -3
  101. package/lib/App.css +0 -47
  102. package/lib/App.d.ts +0 -3
  103. package/lib/App.js +0 -21
  104. package/lib/api/runtimes/checkpoints.d.ts +0 -122
  105. package/lib/api/runtimes/checkpoints.js +0 -118
  106. package/lib/api/runtimes/environments.d.ts +0 -9
  107. package/lib/api/runtimes/environments.js +0 -29
  108. package/lib/api/runtimes/healthz.d.ts +0 -15
  109. package/lib/api/runtimes/healthz.js +0 -44
  110. package/lib/api/runtimes/index.d.ts +0 -12
  111. package/lib/api/runtimes/index.js +0 -16
  112. package/lib/api/runtimes/runtimes.d.ts +0 -138
  113. package/lib/api/runtimes/runtimes.js +0 -230
  114. package/lib/api/runtimes/snapshots.d.ts +0 -38
  115. package/lib/api/runtimes/snapshots.js +0 -82
  116. package/lib/api/scheduler/index.d.ts +0 -6
  117. package/lib/api/scheduler/index.js +0 -10
  118. package/lib/api/scheduler/schedules.d.ts +0 -85
  119. package/lib/api/scheduler/schedules.js +0 -78
  120. package/lib/api/spacer/documents.d.ts +0 -12
  121. package/lib/api/spacer/documents.js +0 -43
  122. package/lib/api/spacer/healthz.d.ts +0 -15
  123. package/lib/api/spacer/healthz.js +0 -44
  124. package/lib/api/spacer/index.d.ts +0 -15
  125. package/lib/api/spacer/index.js +0 -19
  126. package/lib/api/spacer/items.d.ts +0 -25
  127. package/lib/api/spacer/items.js +0 -55
  128. package/lib/api/spacer/lexicals.d.ts +0 -34
  129. package/lib/api/spacer/lexicals.js +0 -89
  130. package/lib/api/spacer/notebooks.d.ts +0 -34
  131. package/lib/api/spacer/notebooks.js +0 -89
  132. package/lib/api/spacer/spaces.d.ts +0 -84
  133. package/lib/api/spacer/spaces.js +0 -170
  134. package/lib/api/spacer/users.d.ts +0 -9
  135. package/lib/api/spacer/users.js +0 -29
  136. package/lib/client/mixins/RuntimesMixin.d.ts +0 -93
  137. package/lib/client/mixins/RuntimesMixin.js +0 -229
  138. package/lib/client/mixins/SpacerMixin.d.ts +0 -210
  139. package/lib/client/mixins/SpacerMixin.js +0 -615
  140. package/lib/client/utils/spacerUtils.d.ts +0 -18
  141. package/lib/client/utils/spacerUtils.js +0 -32
  142. package/lib/collaboration/DatalayerCollaboration.d.ts +0 -13
  143. package/lib/collaboration/DatalayerCollaboration.js +0 -28
  144. package/lib/collaboration/DatalayerCollaborationProvider.d.ts +0 -60
  145. package/lib/collaboration/DatalayerCollaborationProvider.js +0 -163
  146. package/lib/collaboration/index.d.ts +0 -2
  147. package/lib/collaboration/index.js +0 -6
  148. package/lib/components/context/SpaceSelect.d.ts +0 -2
  149. package/lib/components/context/SpaceSelect.js +0 -42
  150. package/lib/components/flashes/FlashDisclaimer.d.ts +0 -2
  151. package/lib/components/flashes/FlashDisclaimer.js +0 -17
  152. package/lib/components/icons/ArtifactIcon.d.ts +0 -10
  153. package/lib/components/icons/ArtifactIcon.js +0 -58
  154. package/lib/components/icons/index.d.ts +0 -1
  155. package/lib/components/icons/index.js +0 -5
  156. package/lib/components/nbgrader/NbGradesDetails.d.ts +0 -5
  157. package/lib/components/nbgrader/NbGradesDetails.js +0 -14
  158. package/lib/components/nbgrader/index.d.ts +0 -1
  159. package/lib/components/nbgrader/index.js +0 -5
  160. package/lib/components/progress/CreditsIndicator.d.ts +0 -33
  161. package/lib/components/progress/CreditsIndicator.js +0 -23
  162. package/lib/components/runtimes/RuntimeCellVariables.d.ts +0 -39
  163. package/lib/components/runtimes/RuntimeCellVariables.js +0 -172
  164. package/lib/components/runtimes/RuntimeCellVariablesDialog.d.ts +0 -37
  165. package/lib/components/runtimes/RuntimeCellVariablesDialog.js +0 -101
  166. package/lib/components/runtimes/RuntimeLauncherDialog.d.ts +0 -57
  167. package/lib/components/runtimes/RuntimeLauncherDialog.js +0 -275
  168. package/lib/components/runtimes/RuntimePickerBase.d.ts +0 -69
  169. package/lib/components/runtimes/RuntimePickerBase.js +0 -122
  170. package/lib/components/runtimes/RuntimePickerCell.d.ts +0 -34
  171. package/lib/components/runtimes/RuntimePickerCell.js +0 -104
  172. package/lib/components/runtimes/RuntimePickerNotebook.d.ts +0 -42
  173. package/lib/components/runtimes/RuntimePickerNotebook.js +0 -232
  174. package/lib/components/runtimes/RuntimeReservationControl.d.ts +0 -47
  175. package/lib/components/runtimes/RuntimeReservationControl.js +0 -42
  176. package/lib/components/runtimes/RuntimeSimplePicker.d.ts +0 -38
  177. package/lib/components/runtimes/RuntimeSimplePicker.js +0 -155
  178. package/lib/components/runtimes/RuntimeTransfer.d.ts +0 -16
  179. package/lib/components/runtimes/RuntimeTransfer.js +0 -5
  180. package/lib/components/runtimes/RuntimeUtils.d.ts +0 -17
  181. package/lib/components/runtimes/RuntimeUtils.js +0 -178
  182. package/lib/components/runtimes/RuntimeVariables.d.ts +0 -38
  183. package/lib/components/runtimes/RuntimeVariables.js +0 -75
  184. package/lib/components/runtimes/index.d.ts +0 -11
  185. package/lib/components/runtimes/index.js +0 -15
  186. package/lib/components/scheduler/ScheduleMenu.d.ts +0 -54
  187. package/lib/components/scheduler/ScheduleMenu.js +0 -154
  188. package/lib/components/scheduler/index.d.ts +0 -1
  189. package/lib/components/scheduler/index.js +0 -5
  190. package/lib/components/snapshots/SandboxSnapshotMenu.d.ts +0 -33
  191. package/lib/components/snapshots/SandboxSnapshotMenu.js +0 -169
  192. package/lib/components/snapshots/index.d.ts +0 -1
  193. package/lib/components/snapshots/index.js +0 -5
  194. package/lib/components/snippets/SnippetDialog.d.ts +0 -42
  195. package/lib/components/snippets/SnippetDialog.js +0 -42
  196. package/lib/components/students/StudentItemStatus.d.ts +0 -7
  197. package/lib/components/students/StudentItemStatus.js +0 -66
  198. package/lib/components/tokens/SpaceVariantToken.d.ts +0 -5
  199. package/lib/components/tokens/SpaceVariantToken.js +0 -23
  200. package/lib/components/toolbars/AssignmentEditorToolbar.d.ts +0 -4
  201. package/lib/components/toolbars/AssignmentEditorToolbar.js +0 -18
  202. package/lib/components/toolbars/DocumentEditorToolbar.d.ts +0 -2
  203. package/lib/components/toolbars/DocumentEditorToolbar.js +0 -12
  204. package/lib/components/toolbars/NotebookEditorToolbar.d.ts +0 -29
  205. package/lib/components/toolbars/NotebookEditorToolbar.js +0 -30
  206. package/lib/examples/CellExample.d.ts +0 -6
  207. package/lib/examples/CellExample.js +0 -20
  208. package/lib/examples/NotebookExample.d.ts +0 -6
  209. package/lib/examples/NotebookExample.js +0 -19
  210. package/lib/examples/lexical-theme.css +0 -436
  211. package/lib/examples/notebooks/IPyWidgetsExample.ipynb.json +0 -101
  212. package/lib/examples/notebooks/IPyWidgetsExampleWithState.ipynb.json +0 -112
  213. package/lib/examples/notebooks/Lite.ipynb.json +0 -128
  214. package/lib/examples/notebooks/Matplotlib.ipynb.json +0 -137
  215. package/lib/examples/notebooks/NotebookExample1.ipynb.json +0 -126
  216. package/lib/examples/notebooks/NotebookExample2.ipynb.json +0 -48
  217. package/lib/examples/notebooks/NotebookOutputs.ipynb.json +0 -49
  218. package/lib/examples/notebooks/NotebookToCExample.ipynb.json +0 -102
  219. package/lib/examples/notebooks/PyGWalker.ipynb.json +0 -55
  220. package/lib/hooks/useCellOutputshot.d.ts +0 -4
  221. package/lib/hooks/useCellOutputshot.js +0 -25
  222. package/lib/hooks/useProjects.d.ts +0 -628
  223. package/lib/hooks/useProjects.js +0 -190
  224. package/lib/hooks/useRuntimes.d.ts +0 -5
  225. package/lib/hooks/useRuntimes.js +0 -34
  226. package/lib/mocks/jupyter/index.js +0 -5
  227. package/lib/mocks/models/CourseMock.d.ts +0 -6
  228. package/lib/mocks/models/CourseMock.js +0 -29
  229. package/lib/mocks/models/SpaceMock.d.ts +0 -6
  230. package/lib/mocks/models/SpaceMock.js +0 -25
  231. package/lib/models/Assignment.d.ts +0 -7
  232. package/lib/models/Assignment.js +0 -5
  233. package/lib/models/Cell.d.ts +0 -8
  234. package/lib/models/Cell.js +0 -5
  235. package/lib/models/CodeBlock.d.ts +0 -10
  236. package/lib/models/CodeBlock.js +0 -5
  237. package/lib/models/CodeSandboxSnapshot.d.ts +0 -92
  238. package/lib/models/CodeSandboxSnapshot.js +0 -13
  239. package/lib/models/CodeSandboxSnapshotDTO.d.ts +0 -173
  240. package/lib/models/CodeSandboxSnapshotDTO.js +0 -139
  241. package/lib/models/CodefeedBlocks.d.ts +0 -7
  242. package/lib/models/CodefeedBlocks.js +0 -5
  243. package/lib/models/Content.d.ts +0 -5
  244. package/lib/models/Content.js +0 -5
  245. package/lib/models/Course.d.ts +0 -17
  246. package/lib/models/Course.js +0 -5
  247. package/lib/models/Dataset.d.ts +0 -16
  248. package/lib/models/Dataset.js +0 -5
  249. package/lib/models/Document.d.ts +0 -8
  250. package/lib/models/Document.js +0 -5
  251. package/lib/models/Environment.d.ts +0 -86
  252. package/lib/models/Environment.js +0 -5
  253. package/lib/models/EnvironmentDTO.d.ts +0 -125
  254. package/lib/models/EnvironmentDTO.js +0 -88
  255. package/lib/models/Exercise.d.ts +0 -16
  256. package/lib/models/Exercise.js +0 -5
  257. package/lib/models/Item.d.ts +0 -20
  258. package/lib/models/Item.js +0 -5
  259. package/lib/models/ItemDTO.d.ts +0 -74
  260. package/lib/models/ItemDTO.js +0 -186
  261. package/lib/models/ItemType.d.ts +0 -2
  262. package/lib/models/ItemType.js +0 -5
  263. package/lib/models/Lesson.d.ts +0 -5
  264. package/lib/models/Lesson.js +0 -5
  265. package/lib/models/LexicalDTO.d.ts +0 -155
  266. package/lib/models/LexicalDTO.js +0 -157
  267. package/lib/models/Library.d.ts +0 -10
  268. package/lib/models/Library.js +0 -5
  269. package/lib/models/Notebook.d.ts +0 -11
  270. package/lib/models/Notebook.js +0 -5
  271. package/lib/models/NotebookDTO.d.ts +0 -96
  272. package/lib/models/NotebookDTO.js +0 -153
  273. package/lib/models/Page.d.ts +0 -41
  274. package/lib/models/Page.js +0 -25
  275. package/lib/models/PageTag.d.ts +0 -19
  276. package/lib/models/PageTag.js +0 -94
  277. package/lib/models/ProjectDTO.d.ts +0 -89
  278. package/lib/models/ProjectDTO.js +0 -131
  279. package/lib/models/Runtime.d.ts +0 -123
  280. package/lib/models/Runtime.js +0 -18
  281. package/lib/models/RuntimeDTO.d.ts +0 -191
  282. package/lib/models/RuntimeDTO.js +0 -204
  283. package/lib/models/Space.d.ts +0 -35
  284. package/lib/models/Space.js +0 -66
  285. package/lib/models/SpaceDTO.d.ts +0 -334
  286. package/lib/models/SpaceDTO.js +0 -244
  287. package/lib/models/SpaceItem.d.ts +0 -10
  288. package/lib/models/SpaceItem.js +0 -5
  289. package/lib/models/SpaceMember.d.ts +0 -6
  290. package/lib/models/SpaceMember.js +0 -5
  291. package/lib/models/StudentItem.d.ts +0 -21
  292. package/lib/models/StudentItem.js +0 -5
  293. package/lib/services/DatalayerServiceManager.d.ts +0 -22
  294. package/lib/services/DatalayerServiceManager.js +0 -69
  295. package/lib/services/index.d.ts +0 -4
  296. package/lib/services/index.js +0 -7
  297. package/lib/services/reconnectToRuntime.d.ts +0 -32
  298. package/lib/services/reconnectToRuntime.js +0 -59
  299. package/lib/state/substates/CellState.d.ts +0 -12
  300. package/lib/state/substates/CellState.js +0 -22
  301. package/lib/state/substates/DocumentState.d.ts +0 -10
  302. package/lib/state/substates/DocumentState.js +0 -14
  303. package/lib/state/substates/GradeState.d.ts +0 -10
  304. package/lib/state/substates/GradeState.js +0 -14
  305. package/lib/state/substates/JupyterLabState.d.ts +0 -16
  306. package/lib/state/substates/JupyterLabState.js +0 -17
  307. package/lib/state/substates/NbformatState.d.ts +0 -13
  308. package/lib/state/substates/NbformatState.js +0 -16
  309. package/lib/state/substates/RuntimesState.d.ts +0 -79
  310. package/lib/state/substates/RuntimesState.js +0 -180
  311. package/lib/state/substates/SpaceState.d.ts +0 -11
  312. package/lib/state/substates/SpaceState.js +0 -16
  313. package/lib/stateful/index.d.ts +0 -2
  314. package/lib/stateful/index.js +0 -6
  315. package/lib/stateful/jupyter/exec/Python.d.ts +0 -5
  316. package/lib/stateful/jupyter/exec/Python.js +0 -100
  317. package/lib/stateful/jupyter/exec/Snippets.d.ts +0 -105
  318. package/lib/stateful/jupyter/exec/Snippets.js +0 -101
  319. package/lib/stateful/jupyter/exec/index.d.ts +0 -2
  320. package/lib/stateful/jupyter/exec/index.js +0 -6
  321. package/lib/stateful/jupyter/index.d.ts +0 -2
  322. package/lib/stateful/jupyter/index.js +0 -6
  323. package/lib/stateful/jupyter/kernelsHandler.d.ts +0 -8
  324. package/lib/stateful/jupyter/kernelsHandler.js +0 -39
  325. package/lib/stateful/runtimes/actions.d.ts +0 -102
  326. package/lib/stateful/runtimes/actions.js +0 -249
  327. package/lib/stateful/runtimes/apis.d.ts +0 -273
  328. package/lib/stateful/runtimes/apis.js +0 -5
  329. package/lib/stateful/runtimes/index.d.ts +0 -5
  330. package/lib/stateful/runtimes/index.js +0 -9
  331. package/lib/stateful/runtimes/settings.d.ts +0 -15
  332. package/lib/stateful/runtimes/settings.js +0 -31
  333. package/lib/stateful/runtimes/snapshots.d.ts +0 -25
  334. package/lib/stateful/runtimes/snapshots.js +0 -150
  335. package/lib/stateful/runtimes/utils.d.ts +0 -7
  336. package/lib/stateful/runtimes/utils.js +0 -14
  337. package/lib/utils/Cells.d.ts +0 -2
  338. package/lib/utils/Cells.js +0 -28
  339. /package/lib/{mocks/jupyter/index.d.ts → cli-login.d.ts} +0 -0
@@ -1,69 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the Modified BSD License.
4
- */
5
- import { ServerConnection, ServiceManager } from '@jupyterlab/services';
6
- import { coreStore } from '../state/substates/CoreState.js';
7
- import { DEFAULT_DATALAYER_CONFIG } from '../config/Configuration.js';
8
- import { createRuntime } from '../stateful/runtimes/actions.js';
9
- /**
10
- * Creates a ServiceManager configured for Datalayer.
11
- *
12
- * This function requests a new kernel from Datalayer's platform and
13
- * returns a configured ServiceManager that connects to the allocated
14
- * Jupyter server instance.
15
- *
16
- * @param environmentName - The name of the Datalayer environment to use
17
- * @param credits - The credit limit for this kernel session
18
- * @returns A configured ServiceManager instance
19
- * @throws Error if the kernel request fails or configuration is missing
20
- *
21
- * @example
22
- * ```typescript
23
- * const serviceManager = await createDatalayerServiceManager('ai-agents-env', 100);
24
- * await serviceManager.ready;
25
- * // Use the service manager with notebooks
26
- * ```
27
- */
28
- export const createDatalayerServiceManager = async (environmentName, credits) => {
29
- const { configuration } = coreStore.getState();
30
- const token = configuration?.token || '';
31
- // Use provided values or fall back to config or defaults
32
- const actualEnvironmentName = environmentName ||
33
- configuration?.cpuEnvironment ||
34
- DEFAULT_DATALAYER_CONFIG.cpuEnvironment;
35
- const actualCredits = credits ?? configuration?.credits ?? DEFAULT_DATALAYER_CONFIG.credits;
36
- if (!token) {
37
- throw new Error('Datalayer API token is required to create a service manager');
38
- }
39
- try {
40
- // Use the existing createRuntime function which handles auth properly
41
- const runtime = await createRuntime({
42
- environmentName: actualEnvironmentName,
43
- type: 'notebook',
44
- givenName: `Jupyter React Kernel - ${new Date().toISOString()}`,
45
- creditsLimit: actualCredits,
46
- capabilities: [],
47
- });
48
- const serverSettings = ServerConnection.makeSettings({
49
- baseUrl: runtime.ingress,
50
- wsUrl: runtime.ingress.replace(/^http/, 'ws'),
51
- token: runtime.token,
52
- appendToken: true,
53
- });
54
- const serviceManager = new ServiceManager({ serverSettings });
55
- console.log('Created Datalayer service manager:', {
56
- environmentName: actualEnvironmentName,
57
- credits: actualCredits,
58
- reservationId: runtime.reservation_id,
59
- podName: runtime.pod_name,
60
- ingress: runtime.ingress,
61
- });
62
- return serviceManager;
63
- }
64
- catch (error) {
65
- console.error('Error creating Datalayer service manager:', error);
66
- throw error;
67
- }
68
- };
69
- export default createDatalayerServiceManager;
@@ -1,4 +0,0 @@
1
- export { createDatalayerServiceManager } from './DatalayerServiceManager';
2
- export { reconnectToRuntime } from './reconnectToRuntime';
3
- export type { RuntimeInfo } from './reconnectToRuntime';
4
- export { default as DatalayerServiceManager } from './DatalayerServiceManager';
@@ -1,7 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the Modified BSD License.
4
- */
5
- export { createDatalayerServiceManager } from './DatalayerServiceManager.js';
6
- export { reconnectToRuntime } from './reconnectToRuntime.js';
7
- export { default as DatalayerServiceManager } from './DatalayerServiceManager.js';
@@ -1,32 +0,0 @@
1
- import { ServiceManager } from '@jupyterlab/services';
2
- export interface RuntimeInfo {
3
- runtimeId: string;
4
- podName: string;
5
- ingress: string;
6
- token: string;
7
- environmentName?: string;
8
- }
9
- /**
10
- * Reconnects to an existing Datalayer runtime
11
- *
12
- * This function creates a ServiceManager that connects to an already
13
- * allocated Jupyter server instance using stored runtime information.
14
- *
15
- * @param runtimeInfo - The stored runtime information
16
- * @returns A configured ServiceManager instance
17
- * @throws Error if the reconnection fails
18
- *
19
- * @example
20
- * ```typescript
21
- * const runtimeInfo = {
22
- * runtimeId: 'abc123',
23
- * podName: 'jupyter-pod-xyz',
24
- * ingress: 'https://jupyter.example.com',
25
- * token: 'secret-token'
26
- * };
27
- * const serviceManager = await reconnectToRuntime(runtimeInfo);
28
- * await serviceManager.ready;
29
- * ```
30
- */
31
- export declare const reconnectToRuntime: (runtimeInfo: RuntimeInfo) => Promise<ServiceManager.IManager>;
32
- export default reconnectToRuntime;
@@ -1,59 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the Modified BSD License.
4
- */
5
- import { ServerConnection, ServiceManager } from '@jupyterlab/services';
6
- /**
7
- * Reconnects to an existing Datalayer runtime
8
- *
9
- * This function creates a ServiceManager that connects to an already
10
- * allocated Jupyter server instance using stored runtime information.
11
- *
12
- * @param runtimeInfo - The stored runtime information
13
- * @returns A configured ServiceManager instance
14
- * @throws Error if the reconnection fails
15
- *
16
- * @example
17
- * ```typescript
18
- * const runtimeInfo = {
19
- * runtimeId: 'abc123',
20
- * podName: 'jupyter-pod-xyz',
21
- * ingress: 'https://jupyter.example.com',
22
- * token: 'secret-token'
23
- * };
24
- * const serviceManager = await reconnectToRuntime(runtimeInfo);
25
- * await serviceManager.ready;
26
- * ```
27
- */
28
- export const reconnectToRuntime = async (runtimeInfo) => {
29
- try {
30
- const serverSettings = ServerConnection.makeSettings({
31
- baseUrl: runtimeInfo.ingress,
32
- wsUrl: runtimeInfo.ingress.replace(/^http/, 'ws'),
33
- token: runtimeInfo.token,
34
- appendToken: true,
35
- });
36
- const serviceManager = new ServiceManager({ serverSettings });
37
- // Store runtime info on the serviceManager instance for access
38
- serviceManager.__datalayerRuntime = {
39
- environmentName: runtimeInfo.environmentName || 'unknown',
40
- credits: 0,
41
- reservationId: runtimeInfo.runtimeId,
42
- podName: runtimeInfo.podName,
43
- ingress: runtimeInfo.ingress,
44
- token: runtimeInfo.token,
45
- createdAt: new Date().toISOString(),
46
- };
47
- console.log('Reconnected to existing runtime:', {
48
- runtimeId: runtimeInfo.runtimeId,
49
- podName: runtimeInfo.podName,
50
- ingress: runtimeInfo.ingress,
51
- });
52
- return serviceManager;
53
- }
54
- catch (error) {
55
- console.error('Error reconnecting to runtime:', error);
56
- throw error;
57
- }
58
- };
59
- export default reconnectToRuntime;
@@ -1,12 +0,0 @@
1
- import { ICell } from '../../models';
2
- export type ICellState = {
3
- cell?: ICell;
4
- };
5
- export type CellState = ICellState & {
6
- create: (cell: ICell) => void;
7
- update: (cell: Partial<ICell>) => void;
8
- };
9
- export declare const cellStore: import("zustand").StoreApi<CellState>;
10
- export declare function useCellStore(): CellState;
11
- export declare function useCellStore<T>(selector: (state: CellState) => T): T;
12
- export default useCellStore;
@@ -1,22 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the Modified BSD License.
4
- */
5
- import { createStore } from 'zustand/vanilla';
6
- import { useStore } from 'zustand';
7
- export const cellStore = createStore((set, get) => ({
8
- cell: undefined,
9
- create: (cell) => set((state) => ({ cell })),
10
- update: (cell) => set((state) => ({
11
- cell: cell
12
- ? {
13
- ...state.cell,
14
- ...cell,
15
- }
16
- : undefined,
17
- })),
18
- }));
19
- export function useCellStore(selector) {
20
- return useStore(cellStore, selector);
21
- }
22
- export default useCellStore;
@@ -1,10 +0,0 @@
1
- export interface IDocumentState {
2
- documentSaveRequest?: Date;
3
- }
4
- export type DocumentState = IDocumentState & {
5
- save: (documentSaveRequest: Date) => void;
6
- };
7
- export declare const documentStore: import("zustand").StoreApi<DocumentState>;
8
- export declare function useDocumentStore(): DocumentState;
9
- export declare function useDocumentStore<T>(selector: (state: DocumentState) => T): T;
10
- export default useDocumentStore;
@@ -1,14 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the Modified BSD License.
4
- */
5
- import { createStore } from 'zustand/vanilla';
6
- import { useStore } from 'zustand';
7
- export const documentStore = createStore((set, get) => ({
8
- documentSaveRequest: undefined,
9
- save: (documentSaveRequest) => set((state) => ({ documentSaveRequest })),
10
- }));
11
- export function useDocumentStore(selector) {
12
- return useStore(documentStore, selector);
13
- }
14
- export default useDocumentStore;
@@ -1,10 +0,0 @@
1
- export type IGradeState = {
2
- gradeRequest?: Date;
3
- };
4
- export type GradeState = IGradeState & {
5
- grade: (gradeRequest: Date) => void;
6
- };
7
- export declare const gradeStore: import("zustand").StoreApi<GradeState>;
8
- export declare function useGradeStore(): GradeState;
9
- export declare function useGradeStore<T>(selector: (state: GradeState) => T): T;
10
- export default useGradeStore;
@@ -1,14 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the Modified BSD License.
4
- */
5
- import { createStore } from 'zustand/vanilla';
6
- import { useStore } from 'zustand';
7
- export const gradeStore = createStore((set, get) => ({
8
- gradeRequest: undefined,
9
- grade: (gradeRequest) => set((state) => ({ gradeRequest })),
10
- }));
11
- export function useGradeStore(selector) {
12
- return useStore(gradeStore, selector);
13
- }
14
- export default useGradeStore;
@@ -1,16 +0,0 @@
1
- import { JupyterLabAppAdapter } from '@datalayer/jupyter-react';
2
- import { JupyterFrontEndPlugin } from '@jupyterlab/application';
3
- export type Plugin = JupyterFrontEndPlugin<any, any, any> & {
4
- service: any;
5
- };
6
- export type IJupyterLabState = {
7
- jupyterLabAdapter?: JupyterLabAppAdapter;
8
- };
9
- export type JupyterLabState = IJupyterLabState & {
10
- setJupyterLabAdapter: (jupyterLabAdapter?: JupyterLabAppAdapter) => void;
11
- plugin: (id: string) => Plugin | undefined;
12
- };
13
- export declare const jupyterLabStore: import("zustand").StoreApi<JupyterLabState>;
14
- export declare function useJupyterLabStore(): JupyterLabState;
15
- export declare function useJupyterLabStore<T>(selector: (state: JupyterLabState) => T): T;
16
- export default useJupyterLabStore;
@@ -1,17 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the Modified BSD License.
4
- */
5
- import { createStore } from 'zustand/vanilla';
6
- import { useStore } from 'zustand';
7
- export const jupyterLabStore = createStore((set, get) => ({
8
- jupyterLabAdapter: undefined,
9
- setJupyterLabAdapter: (jupyterLabAdapter) => set((state) => ({ jupyterLabAdapter })),
10
- plugin: (id) => {
11
- return get().jupyterLabAdapter?.plugin(id);
12
- },
13
- }));
14
- export function useJupyterLabStore(selector) {
15
- return useStore(jupyterLabStore, selector);
16
- }
17
- export default useJupyterLabStore;
@@ -1,13 +0,0 @@
1
- export type SaveRequest = {
2
- counter: number;
3
- };
4
- export type INbformatState = {
5
- saveRequest: SaveRequest;
6
- };
7
- export type NbformatState = INbformatState & {
8
- save: (saveRequest: SaveRequest) => void;
9
- };
10
- export declare const nbformatStore: import("zustand").StoreApi<NbformatState>;
11
- export declare function useNbformatStore(): NbformatState;
12
- export declare function useNbformatStore<T>(selector: (state: NbformatState) => T): T;
13
- export default useNbformatStore;
@@ -1,16 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the Modified BSD License.
4
- */
5
- import { createStore } from 'zustand/vanilla';
6
- import { useStore } from 'zustand';
7
- export const nbformatStore = createStore((set, get) => ({
8
- saveRequest: {
9
- counter: -1,
10
- },
11
- save: (saveRequest) => set((state) => ({ saveRequest })),
12
- }));
13
- export function useNbformatStore(selector) {
14
- return useStore(nbformatStore, selector);
15
- }
16
- export default useNbformatStore;
@@ -1,79 +0,0 @@
1
- import type { IMultiServiceManager } from '../../stateful/runtimes';
2
- import type { IRuntimesConfiguration } from '../../config';
3
- import type { IRuntimePod, ICodeSandboxSnapshot, IRuntimeModel } from '../../models';
4
- /**
5
- * Datalayer Runtimes state.
6
- */
7
- export type RuntimesState = {
8
- /**
9
- * Runtimes configuration
10
- */
11
- configuration: IRuntimesConfiguration;
12
- setConfiguration: (config: IRuntimesConfiguration) => void;
13
- /**
14
- * Runtimes RUN URL.
15
- */
16
- runtimesRunUrl: string;
17
- tab: number;
18
- getIntTab: () => number;
19
- setTab: (tab: number) => void;
20
- /**
21
- * Runtime pods.
22
- */
23
- runtimePods: IRuntimePod[];
24
- /**
25
- * Refresh the runtime pods.
26
- */
27
- refreshRuntimePods: () => Promise<void>;
28
- /**
29
- * Cached runtime models.
30
- */
31
- runtimeModels: readonly IRuntimeModel[];
32
- /**
33
- * Add a runtime model.
34
- */
35
- addRuntimeModel: (model: IRuntimeModel) => void;
36
- /**
37
- * Remove a runtime model by ID.
38
- */
39
- removeRuntimeModel: (id: string) => void;
40
- /**
41
- * Set the runtimes models list.
42
- */
43
- setRuntimeModels: (models: readonly IRuntimeModel[]) => void;
44
- /**
45
- * Jupyter service manager.
46
- */
47
- multiServiceManager?: IMultiServiceManager;
48
- setMultiServiceManager: (multiServiceManager: IMultiServiceManager) => void;
49
- showDisclaimer: boolean;
50
- setShowDisclaimer: (showDisclaimer: boolean) => void;
51
- /**
52
- * Code Sandbox snapshots.
53
- */
54
- runtimeSnapshots: readonly ICodeSandboxSnapshot[];
55
- /**
56
- * Add a code sandbox snapshot.
57
- */
58
- addSandboxSnapshot: (snapshot: ICodeSandboxSnapshot) => void;
59
- /**
60
- * Remove a Code Sandbox Snapshot.
61
- */
62
- removeSandboxSnapshot: (id: string) => void;
63
- /**
64
- * Set Code Sandbox Snapshots.
65
- */
66
- setSandboxSnapshots: (snapshots: ICodeSandboxSnapshot[]) => void;
67
- /**
68
- * Package version.
69
- */
70
- version: string;
71
- setVersion: (version: string) => void;
72
- };
73
- /**
74
- * Kernel store
75
- */
76
- export declare const runtimesStore: import("zustand").StoreApi<RuntimesState>;
77
- export declare function useRuntimesStore(): RuntimesState;
78
- export declare function useRuntimesStore<T>(selector: (state: RuntimesState) => T): T;
79
- export default useRuntimesStore;
@@ -1,180 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the Modified BSD License.
4
- */
5
- import { useStore } from 'zustand';
6
- import { createStore } from 'zustand/vanilla';
7
- import { JSONExt } from '@lumino/coreutils';
8
- import { Poll } from '@lumino/polling';
9
- import { getRuntimes } from '../../stateful/runtimes/index.js';
10
- import { coreStore } from './CoreState.js';
11
- import { iamStore } from './IAMState.js';
12
- /**
13
- * Kernel store
14
- */
15
- export const runtimesStore = createStore((set, get) => {
16
- return {
17
- configuration: {
18
- maxNotebookRuntimes: 5,
19
- maxCellRuntimes: 3,
20
- },
21
- setConfiguration: (configuration) => {
22
- set(state => JSONExt.deepEqual(state.configuration, configuration)
23
- ? {}
24
- : { configuration: { ...configuration } });
25
- },
26
- runtimesRunUrl: coreStore.getState().configuration?.runtimesRunUrl,
27
- tab: 0.0,
28
- getIntTab: () => Math.floor(get().tab),
29
- setTab: (tab) => set(state => ({ tab })),
30
- /**
31
- * Remote runtime pods.
32
- */
33
- runtimePods: [],
34
- /**
35
- * Refresh the runtime pods.
36
- */
37
- refreshRuntimePods: async () => {
38
- const servers = await getRuntimes();
39
- // Update the state with the Remote Kernels.
40
- if (!JSONExt.deepEqual(get().runtimePods, servers)) {
41
- set({ runtimePods: [...servers] });
42
- }
43
- },
44
- /**
45
- * Cached runtime models.
46
- */
47
- runtimeModels: [],
48
- /**
49
- * Add a runtime model
50
- */
51
- addRuntimeModel: (model) => {
52
- const kernels = get().runtimeModels;
53
- // TODO
54
- // We need to review the IRuntimeModel/IRuntimePod/Kernel.IModel and their id/uid handling.
55
- // The id is the kernel id, which is no more always present for some reasons.
56
- // So we need to also check the uid of the model.
57
- const index = kernels.findIndex(m => (model.id === m.id || model.uid === m.uid) ?? -1);
58
- if (index < 0) {
59
- set({ runtimeModels: [...kernels, model] });
60
- }
61
- },
62
- /**
63
- * Remove a runtime model by ID.
64
- */
65
- removeRuntimeModel: (id) => {
66
- const kernels = [...get().runtimeModels];
67
- const index = kernels?.findIndex(model => id === model.id) ?? -1;
68
- if (index >= 0) {
69
- kernels.splice(index, 1);
70
- set({ runtimeModels: kernels });
71
- }
72
- },
73
- setRuntimeModels: (models) => {
74
- if (!JSONExt.deepEqual(get().runtimeModels, models)) {
75
- set({ runtimeModels: [...models] });
76
- }
77
- },
78
- multiServiceManager: undefined,
79
- setMultiServiceManager: multiServiceManager => {
80
- set(state => ({ multiServiceManager }));
81
- },
82
- showDisclaimer: false,
83
- setShowDisclaimer: showDisclaimer => {
84
- set(state => ({ showDisclaimer }));
85
- },
86
- /**
87
- * Kernel Snapshots.
88
- */
89
- runtimeSnapshots: [],
90
- /**
91
- * Add a Kernel Snapshot
92
- */
93
- addSandboxSnapshot: (snapshot) => {
94
- const snapshots = get().runtimeSnapshots;
95
- const index = snapshots.findIndex(s => s.id === snapshot.id);
96
- if (index < 0) {
97
- const kernelSnapshots = [...snapshots, snapshot];
98
- set({ runtimeSnapshots: kernelSnapshots });
99
- }
100
- else if (!JSONExt.deepEqual(snapshots[index], snapshot)) {
101
- const kernelSnapshots = [...snapshots];
102
- kernelSnapshots.splice(index, 1, snapshot);
103
- set({ runtimeSnapshots: kernelSnapshots });
104
- }
105
- },
106
- /**
107
- * Remove a Kernel Snapshot.
108
- */
109
- removeSandboxSnapshot: (id) => {
110
- const snapshots = get().runtimeSnapshots;
111
- const index = snapshots.findIndex(s => s.id === id);
112
- if (index >= 0) {
113
- const kernelSnapshots = [...snapshots];
114
- kernelSnapshots.splice(index, 1);
115
- set({ runtimeSnapshots: kernelSnapshots });
116
- }
117
- },
118
- /**
119
- * Set Kernel Snapshots.
120
- */
121
- setSandboxSnapshots: (snapshots) => {
122
- if (!JSONExt.deepEqual(get().runtimeSnapshots, snapshots)) {
123
- set({ runtimeSnapshots: [...snapshots] });
124
- }
125
- },
126
- version: '',
127
- setVersion: version => {
128
- if (version && !get().version) {
129
- set(state => ({ version }));
130
- }
131
- },
132
- };
133
- });
134
- // Poll remote kernels
135
- const kernelsPoll = new Poll({
136
- auto: true,
137
- factory: () => runtimesStore.getState().refreshRuntimePods(),
138
- frequency: {
139
- interval: 61 * 1000,
140
- backoff: true,
141
- max: 300 * 1000,
142
- },
143
- name: '@datalayer/jupyter-kernels:KernelsManager#kernels',
144
- standby: () => iamStore.getState().token || runtimesStore.getState().runtimesRunUrl
145
- ? 'when-hidden'
146
- : true,
147
- });
148
- // Force refresh at expiration date if next tick is after it.
149
- runtimesStore.subscribe((state, prevState) => {
150
- if (!JSONExt.deepEqual(state.runtimePods, prevState.runtimePods)) {
151
- const now = Date.now();
152
- const minExpiredAt = Math.min(...state.runtimePods.map(kernel => kernel.expired_at ? parseFloat(kernel.expired_at) : Infinity)) * 1_000;
153
- // Refresh 2 sec after the closest expiration time
154
- // to let some times to the system to dispose the resources.
155
- if (now + kernelsPoll.frequency.interval > minExpiredAt + 2_000) {
156
- setTimeout(() => {
157
- kernelsPoll.refresh();
158
- }, minExpiredAt + 2_000 - now);
159
- }
160
- }
161
- });
162
- coreStore.subscribe((state, prevState) => {
163
- if (state.configuration.runtimesRunUrl &&
164
- state.configuration.runtimesRunUrl !==
165
- prevState.configuration.runtimesRunUrl) {
166
- const runtimesRunUrl = state.configuration.runtimesRunUrl;
167
- console.log(`Updating runtimesRunUrl with new value ${runtimesRunUrl}`);
168
- runtimesStore.setState({ runtimesRunUrl });
169
- kernelsPoll
170
- .refresh()
171
- .then(() => kernelsPoll.tick)
172
- .catch(reason => {
173
- console.error('Failed to refresh kernel servers list following service URL changed.', reason);
174
- });
175
- }
176
- });
177
- export function useRuntimesStore(selector) {
178
- return useStore(runtimesStore, selector);
179
- }
180
- export default useRuntimesStore;
@@ -1,11 +0,0 @@
1
- import { IBaseSpace } from '../../models';
2
- export type ISpaceState = {
3
- spaces: IBaseSpace[];
4
- };
5
- export type SpaceState = ISpaceState & {
6
- updateSpaces: (spaces: IBaseSpace[]) => void;
7
- };
8
- export declare const spaceStore: import("zustand").StoreApi<SpaceState>;
9
- export declare function useSpaceStore(): SpaceState;
10
- export declare function useSpaceStore<T>(selector: (state: SpaceState) => T): T;
11
- export default useSpaceStore;
@@ -1,16 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the Modified BSD License.
4
- */
5
- import { createStore } from 'zustand/vanilla';
6
- import { useStore } from 'zustand';
7
- export const spaceStore = createStore((set, get) => ({
8
- spaces: [],
9
- updateSpaces: (spaces) => set((state) => ({
10
- spaces,
11
- })),
12
- }));
13
- export function useSpaceStore(selector) {
14
- return useStore(spaceStore, selector);
15
- }
16
- export default useSpaceStore;
@@ -1,2 +0,0 @@
1
- export * from './jupyter';
2
- export * from './runtimes';
@@ -1,6 +0,0 @@
1
- /*
2
- * Copyright (c) 2023-2025 Datalayer, Inc.
3
- * Distributed under the terms of the Modified BSD License.
4
- */
5
- export * from './jupyter/index.js';
6
- export * from './runtimes/index.js';
@@ -1,5 +0,0 @@
1
- export declare function listVariables(): string;
2
- export declare function saveVariables(variables: string[]): string;
3
- export declare function loadVariables(variables: string): string;
4
- export declare function changeCurrentWorkingDirectory(path: string): string;
5
- export declare function getOutputCandidates(code: string): string[];