@datalayer/agent-runtimes 1.0.10 → 1.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (448) hide show
  1. package/README.md +82 -1
  2. package/lib/{AgentLexical.d.ts → AgentDocument.d.ts} +5 -5
  3. package/lib/{AgentLexical.js → AgentDocument.js} +156 -26
  4. package/lib/AgentNode.js +32 -31
  5. package/lib/AgentNotebook.js +172 -17
  6. package/lib/AppExamples2.css +47 -0
  7. package/lib/AppExamples2.d.ts +3 -0
  8. package/lib/AppExamples2.js +21 -0
  9. package/lib/{agent-lexical-main.js → agent-document-main.js} +2 -2
  10. package/lib/agents/AgentRuntimeChat.d.ts +73 -0
  11. package/lib/agents/AgentRuntimeChat.js +198 -0
  12. package/lib/api/index.d.ts +12 -0
  13. package/lib/api/index.js +46 -0
  14. package/lib/api/runtimes/checkpoints.d.ts +122 -0
  15. package/lib/api/runtimes/checkpoints.js +118 -0
  16. package/lib/api/runtimes/environments.d.ts +9 -0
  17. package/lib/api/runtimes/environments.js +29 -0
  18. package/lib/api/runtimes/healthz.d.ts +15 -0
  19. package/lib/api/runtimes/healthz.js +44 -0
  20. package/lib/api/runtimes/index.d.ts +12 -0
  21. package/lib/api/runtimes/index.js +16 -0
  22. package/lib/api/runtimes/runtimes.d.ts +138 -0
  23. package/lib/api/runtimes/runtimes.js +230 -0
  24. package/lib/api/runtimes/snapshots.d.ts +38 -0
  25. package/lib/api/runtimes/snapshots.js +82 -0
  26. package/lib/api/scheduler/index.d.ts +6 -0
  27. package/lib/api/scheduler/index.js +10 -0
  28. package/lib/api/scheduler/schedules.d.ts +85 -0
  29. package/lib/api/scheduler/schedules.js +78 -0
  30. package/lib/api/spacer/documents.d.ts +12 -0
  31. package/lib/api/spacer/documents.js +43 -0
  32. package/lib/api/spacer/healthz.d.ts +15 -0
  33. package/lib/api/spacer/healthz.js +44 -0
  34. package/lib/api/spacer/index.d.ts +15 -0
  35. package/lib/api/spacer/index.js +19 -0
  36. package/lib/api/spacer/items.d.ts +25 -0
  37. package/lib/api/spacer/items.js +55 -0
  38. package/lib/api/spacer/lexicals.d.ts +34 -0
  39. package/lib/api/spacer/lexicals.js +89 -0
  40. package/lib/api/spacer/notebooks.d.ts +34 -0
  41. package/lib/api/spacer/notebooks.js +89 -0
  42. package/lib/api/spacer/spaces.d.ts +84 -0
  43. package/lib/api/spacer/spaces.js +170 -0
  44. package/lib/api/spacer/users.d.ts +9 -0
  45. package/lib/api/spacer/users.js +29 -0
  46. package/lib/chat/Chat.d.ts +1 -1
  47. package/lib/chat/Chat.js +54 -54
  48. package/lib/chat/ChatFloating.d.ts +2 -2
  49. package/lib/chat/ChatFloating.js +136 -25
  50. package/lib/chat/ChatSidebar.js +20 -22
  51. package/lib/chat/base/ChatBase.js +429 -39
  52. package/lib/chat/display/EmptyState.js +21 -21
  53. package/lib/chat/document/EphemeralDocument.d.ts +23 -0
  54. package/lib/chat/document/EphemeralDocument.js +270 -0
  55. package/lib/chat/header/ChatHeaderBase.d.ts +12 -2
  56. package/lib/chat/header/ChatHeaderBase.js +78 -23
  57. package/lib/chat/index.d.ts +1 -0
  58. package/lib/chat/index.js +2 -0
  59. package/lib/chat/notebook/EphemeralNotebook.d.ts +24 -0
  60. package/lib/chat/notebook/EphemeralNotebook.js +252 -0
  61. package/lib/chat/prompt/InputFooter.js +4 -1
  62. package/lib/client/AgentRuntimesClient.d.ts +127 -0
  63. package/lib/client/AgentRuntimesClient.js +36 -0
  64. package/lib/client/AgentsMixin.js +28 -28
  65. package/lib/client/SdkAgentRuntimesClient.d.ts +1 -1
  66. package/lib/client/SdkAgentRuntimesClient.js +1 -1
  67. package/lib/client/mixins/RuntimesMixin.d.ts +93 -0
  68. package/lib/client/mixins/RuntimesMixin.js +229 -0
  69. package/lib/client/mixins/SpacerMixin.d.ts +210 -0
  70. package/lib/client/mixins/SpacerMixin.js +615 -0
  71. package/lib/client/utils/spacerUtils.d.ts +18 -0
  72. package/lib/client/utils/spacerUtils.js +32 -0
  73. package/lib/collaboration/DatalayerCollaboration.d.ts +13 -0
  74. package/lib/collaboration/DatalayerCollaboration.js +28 -0
  75. package/lib/collaboration/DatalayerCollaborationProvider.d.ts +58 -0
  76. package/lib/collaboration/DatalayerCollaborationProvider.js +148 -0
  77. package/lib/collaboration/index.d.ts +2 -0
  78. package/lib/collaboration/index.js +6 -0
  79. package/lib/components/AgentSummary.d.ts +19 -0
  80. package/lib/components/AgentSummary.js +89 -0
  81. package/lib/components/a2ui/A2uiSurfaceComposed.d.ts +13 -0
  82. package/lib/components/a2ui/A2uiSurfaceComposed.js +110 -0
  83. package/lib/components/a2ui/index.d.ts +2 -0
  84. package/lib/components/a2ui/index.js +6 -0
  85. package/lib/components/a2ui/styles.d.ts +14 -0
  86. package/lib/components/a2ui/styles.js +142 -0
  87. package/lib/components/context/SpaceSelect.d.ts +2 -0
  88. package/lib/components/context/SpaceSelect.js +42 -0
  89. package/lib/components/flashes/FlashDisclaimer.d.ts +2 -0
  90. package/lib/components/flashes/FlashDisclaimer.js +17 -0
  91. package/lib/components/icons/ArtifactIcon.d.ts +10 -0
  92. package/lib/components/icons/ArtifactIcon.js +58 -0
  93. package/lib/components/icons/index.d.ts +1 -0
  94. package/lib/components/icons/index.js +5 -0
  95. package/lib/components/index.d.ts +5 -0
  96. package/lib/components/index.js +5 -0
  97. package/lib/components/nbgrader/NbGradesDetails.d.ts +5 -0
  98. package/lib/components/nbgrader/NbGradesDetails.js +19 -0
  99. package/lib/components/nbgrader/index.d.ts +1 -0
  100. package/lib/components/nbgrader/index.js +5 -0
  101. package/lib/components/progress/CreditsIndicator.d.ts +33 -0
  102. package/lib/components/progress/CreditsIndicator.js +23 -0
  103. package/lib/components/progress/index.d.ts +2 -0
  104. package/lib/components/progress/index.js +6 -0
  105. package/lib/components/runtimes/RuntimeCellVariables.d.ts +39 -0
  106. package/lib/components/runtimes/RuntimeCellVariables.js +172 -0
  107. package/lib/components/runtimes/RuntimeCellVariablesDialog.d.ts +37 -0
  108. package/lib/components/runtimes/RuntimeCellVariablesDialog.js +101 -0
  109. package/lib/components/runtimes/RuntimeLauncherDialog.d.ts +57 -0
  110. package/lib/components/runtimes/RuntimeLauncherDialog.js +275 -0
  111. package/lib/components/runtimes/RuntimePickerBase.d.ts +69 -0
  112. package/lib/components/runtimes/RuntimePickerBase.js +122 -0
  113. package/lib/components/runtimes/RuntimePickerCell.d.ts +34 -0
  114. package/lib/components/runtimes/RuntimePickerCell.js +104 -0
  115. package/lib/components/runtimes/RuntimePickerNotebook.d.ts +42 -0
  116. package/lib/components/runtimes/RuntimePickerNotebook.js +232 -0
  117. package/lib/components/runtimes/RuntimeReservationControl.d.ts +47 -0
  118. package/lib/components/runtimes/RuntimeReservationControl.js +42 -0
  119. package/lib/components/runtimes/RuntimeSimplePicker.d.ts +38 -0
  120. package/lib/components/runtimes/RuntimeSimplePicker.js +155 -0
  121. package/lib/components/runtimes/RuntimeTransfer.d.ts +16 -0
  122. package/lib/components/runtimes/RuntimeTransfer.js +5 -0
  123. package/lib/components/runtimes/RuntimeUtils.d.ts +17 -0
  124. package/lib/components/runtimes/RuntimeUtils.js +178 -0
  125. package/lib/components/runtimes/RuntimeVariables.d.ts +38 -0
  126. package/lib/components/runtimes/RuntimeVariables.js +75 -0
  127. package/lib/components/runtimes/index.d.ts +11 -0
  128. package/lib/components/runtimes/index.js +15 -0
  129. package/lib/components/scheduler/ScheduleMenu.d.ts +54 -0
  130. package/lib/components/scheduler/ScheduleMenu.js +154 -0
  131. package/lib/components/scheduler/index.d.ts +1 -0
  132. package/lib/components/scheduler/index.js +5 -0
  133. package/lib/components/snapshots/SandboxSnapshotMenu.d.ts +33 -0
  134. package/lib/components/snapshots/SandboxSnapshotMenu.js +169 -0
  135. package/lib/components/snapshots/index.d.ts +1 -0
  136. package/lib/components/snapshots/index.js +5 -0
  137. package/lib/components/snippets/SnippetDialog.d.ts +42 -0
  138. package/lib/components/snippets/SnippetDialog.js +42 -0
  139. package/lib/components/students/StudentItemStatus.d.ts +7 -0
  140. package/lib/components/students/StudentItemStatus.js +68 -0
  141. package/lib/components/students/index.d.ts +1 -0
  142. package/lib/components/students/index.js +5 -0
  143. package/lib/components/tokens/SpaceVariantToken.d.ts +5 -0
  144. package/lib/components/tokens/SpaceVariantToken.js +23 -0
  145. package/lib/components/tokens/index.d.ts +1 -0
  146. package/lib/components/tokens/index.js +5 -0
  147. package/lib/components/toolbars/AssignmentEditorToolbar.d.ts +4 -0
  148. package/lib/components/toolbars/AssignmentEditorToolbar.js +18 -0
  149. package/lib/components/toolbars/DocumentEditorToolbar.d.ts +2 -0
  150. package/lib/components/toolbars/DocumentEditorToolbar.js +12 -0
  151. package/lib/components/toolbars/NotebookEditorToolbar.d.ts +29 -0
  152. package/lib/components/toolbars/NotebookEditorToolbar.js +30 -0
  153. package/lib/context/ContextInspector.d.ts +1 -14
  154. package/lib/context/ContextInspector.js +3 -73
  155. package/lib/context/CostUsageChart.d.ts +4 -3
  156. package/lib/context/CostUsageChart.js +236 -35
  157. package/lib/context/MessageHistory.d.ts +30 -0
  158. package/lib/context/MessageHistory.js +129 -0
  159. package/lib/context/TokenUsageChart.d.ts +4 -3
  160. package/lib/context/TokenUsageChart.js +180 -30
  161. package/lib/context/TurnGraphChart.d.ts +1 -1
  162. package/lib/context/TurnGraphChart.js +6 -6
  163. package/lib/examples/A2UiAgentExample.d.ts +22 -0
  164. package/lib/examples/A2UiAgentExample.js +442 -0
  165. package/lib/examples/A2UiComponentsGalleryExample.d.ts +3 -0
  166. package/lib/examples/A2UiComponentsGalleryExample.js +863 -0
  167. package/lib/examples/A2UiContactCardExample.js +9 -5
  168. package/lib/examples/A2UiRestaurantExample.js +23 -8
  169. package/lib/examples/A2UiViewerExample.js +75 -3
  170. package/lib/examples/AgUiAgenticExample.d.ts +1 -12
  171. package/lib/examples/AgUiAgenticExample.js +52 -8
  172. package/lib/examples/AgUiBackendToolRenderingExample.d.ts +1 -16
  173. package/lib/examples/AgUiBackendToolRenderingExample.js +32 -17
  174. package/lib/examples/AgUiHaikuGenUiExample.d.ts +1 -17
  175. package/lib/examples/AgUiHaikuGenUiExample.js +49 -33
  176. package/lib/examples/AgUiHumanInTheLoopExample.d.ts +1 -12
  177. package/lib/examples/AgUiHumanInTheLoopExample.js +21 -6
  178. package/lib/examples/AgUiSharedStateExample.d.ts +1 -14
  179. package/lib/examples/AgUiSharedStateExample.js +21 -6
  180. package/lib/examples/AgUiToolsBasedGenUiExample.d.ts +1 -14
  181. package/lib/examples/AgUiToolsBasedGenUiExample.js +21 -6
  182. package/lib/examples/AgentCheckpointsExample.d.ts +1 -1
  183. package/lib/examples/AgentCheckpointsExample.js +9 -10
  184. package/lib/examples/AgentCodemodeExample.js +3 -3
  185. package/lib/examples/AgentEvalsExample.js +5 -5
  186. package/lib/examples/AgentGuardrailsExample.js +17 -12
  187. package/lib/examples/AgentHooksExample.js +14 -55
  188. package/lib/examples/AgentInferenceProviderExample.js +4 -4
  189. package/lib/examples/AgentLoopExample.d.ts +10 -0
  190. package/lib/examples/AgentLoopExample.js +304 -0
  191. package/lib/examples/AgentMCPExample.js +7 -7
  192. package/lib/examples/AgentMemoryExample.js +4 -4
  193. package/lib/examples/AgentMonitoringExample.js +114 -44
  194. package/lib/examples/AgentNotificationsExample.js +4 -4
  195. package/lib/examples/AgentOtelExample.d.ts +3 -3
  196. package/lib/examples/AgentOtelExample.js +15 -10
  197. package/lib/examples/AgentOutputsExample.js +6 -6
  198. package/lib/examples/AgentParametersExample.js +21 -33
  199. package/lib/examples/AgentSandboxExample.js +5 -5
  200. package/lib/examples/AgentSkillsExample.js +7 -7
  201. package/lib/examples/AgentSubagentsExample.js +4 -4
  202. package/lib/examples/AgentToolApprovalsExample.js +5 -5
  203. package/lib/examples/AgentTriggersExample.js +9 -9
  204. package/lib/examples/AgentspecsExample.js +63 -41
  205. package/lib/examples/ChatCustomExample.js +23 -77
  206. package/lib/examples/ChatExample.js +13 -44
  207. package/lib/examples/LexicalAgentExample.js +43 -91
  208. package/lib/examples/LexicalAgentSidebarExample.js +45 -73
  209. package/lib/examples/NotebookAgentExample.js +52 -81
  210. package/lib/examples/NotebookAgentSidebarExample.js +43 -71
  211. package/lib/examples/NotebookCollaborationExample.js +11 -9
  212. package/lib/examples/NotebookExample.js +5 -2
  213. package/lib/examples/components/AuthRequiredView.js +1 -1
  214. package/lib/examples/components/ExampleErrorBoundary.d.ts +46 -0
  215. package/lib/examples/components/ExampleErrorBoundary.js +67 -0
  216. package/lib/examples/components/haiku/haiku-card.css +11 -0
  217. package/lib/examples/components/weather/weather-card.css +11 -0
  218. package/lib/examples/example-selector.js +3 -1
  219. package/lib/examples/hooks/useExampleAgentRuntime.d.ts +35 -0
  220. package/lib/examples/hooks/useExampleAgentRuntime.js +82 -0
  221. package/lib/examples/hooks/useSpecRenderToolResult.d.ts +30 -0
  222. package/lib/examples/hooks/useSpecRenderToolResult.js +61 -0
  223. package/lib/examples/index.d.ts +3 -1
  224. package/lib/examples/index.js +3 -1
  225. package/lib/examples/main.js +340 -93
  226. package/lib/examples/utils/a2ui.d.ts +2 -0
  227. package/lib/examples/utils/a2ui.js +97 -2
  228. package/lib/examples/utils/agentSummaryStore.d.ts +21 -0
  229. package/lib/examples/utils/agentSummaryStore.js +23 -0
  230. package/lib/examples/utils/notebooks/Empty.ipynb.json +30 -30
  231. package/lib/examples/utils/runtimeTargetStore.d.ts +9 -0
  232. package/lib/examples/utils/runtimeTargetStore.js +27 -0
  233. package/lib/examples/utils/teardownAgents.d.ts +13 -0
  234. package/lib/examples/utils/teardownAgents.js +78 -0
  235. package/lib/examples/utils/useExampleAgentRuntimesUrl.d.ts +2 -0
  236. package/lib/examples/utils/useExampleAgentRuntimesUrl.js +26 -7
  237. package/lib/examples2/CellExample.d.ts +6 -0
  238. package/lib/examples2/CellExample.js +20 -0
  239. package/lib/examples2/DatalayerNotebookExample.d.ts +16 -0
  240. package/lib/examples2/DatalayerNotebookExample.js +109 -0
  241. package/lib/examples2/NativeNavigationExample.d.ts +8 -0
  242. package/lib/examples2/NativeNavigationExample.js +97 -0
  243. package/lib/examples2/NotebookExample.d.ts +6 -0
  244. package/lib/examples2/NotebookExample.js +19 -0
  245. package/lib/examples2/NotebookMutationsKernel.d.ts +2 -0
  246. package/lib/examples2/NotebookMutationsKernel.js +105 -0
  247. package/lib/examples2/NotebookMutationsServiceManager.d.ts +2 -0
  248. package/lib/examples2/NotebookMutationsServiceManager.js +109 -0
  249. package/lib/examples2/ReactRouterExample.d.ts +6 -0
  250. package/lib/examples2/ReactRouterExample.js +175 -0
  251. package/lib/examples2/example-selector.d.ts +22 -0
  252. package/lib/examples2/example-selector.js +45 -0
  253. package/lib/examples2/index.d.ts +2 -0
  254. package/lib/examples2/index.js +6 -0
  255. package/lib/examples2/lexical-theme.css +436 -0
  256. package/lib/examples2/main.d.ts +2 -0
  257. package/lib/examples2/main.js +330 -0
  258. package/lib/examples2/notebooks/IPyWidgetsExample.ipynb.json +101 -0
  259. package/lib/examples2/notebooks/IPyWidgetsExampleWithState.ipynb.json +112 -0
  260. package/lib/examples2/notebooks/Lite.ipynb.json +128 -0
  261. package/lib/examples2/notebooks/Matplotlib.ipynb.json +137 -0
  262. package/lib/examples2/notebooks/NotebookExample1.ipynb.json +126 -0
  263. package/lib/examples2/notebooks/NotebookExample2.ipynb.json +48 -0
  264. package/lib/examples2/notebooks/NotebookOutputs.ipynb.json +49 -0
  265. package/lib/examples2/notebooks/NotebookToCExample.ipynb.json +102 -0
  266. package/lib/examples2/notebooks/OutputIPyWidgetsExample.d.ts +145 -0
  267. package/lib/examples2/notebooks/OutputIPyWidgetsExample.js +153 -0
  268. package/lib/examples2/notebooks/PyGWalker.ipynb.json +55 -0
  269. package/lib/hooks/index.d.ts +9 -1
  270. package/lib/hooks/index.js +13 -1
  271. package/lib/hooks/useAIAgentsWebSocket.d.ts +1 -1
  272. package/lib/hooks/useAIAgentsWebSocket.js +39 -3
  273. package/lib/hooks/useAgentRuntimes.d.ts +15 -3
  274. package/lib/hooks/useAgentRuntimes.js +186 -27
  275. package/lib/hooks/useAgentsService.js +5 -5
  276. package/lib/hooks/useCellOutputshot.d.ts +4 -0
  277. package/lib/hooks/useCellOutputshot.js +25 -0
  278. package/lib/hooks/useCheckpoints.d.ts +8 -8
  279. package/lib/hooks/useCheckpoints.js +36 -26
  280. package/lib/hooks/useConfig.d.ts +1 -1
  281. package/lib/hooks/useMonitoring.d.ts +7 -5
  282. package/lib/hooks/useMonitoring.js +16 -10
  283. package/lib/hooks/useNotifications.d.ts +11 -11
  284. package/lib/hooks/useNotifications.js +1 -1
  285. package/lib/hooks/useProgressStore.d.ts +25 -0
  286. package/lib/hooks/useProgressStore.js +58 -0
  287. package/lib/hooks/useProgressTask.d.ts +9 -0
  288. package/lib/hooks/useProgressTask.js +41 -0
  289. package/lib/hooks/useProjects.d.ts +628 -0
  290. package/lib/hooks/useProjects.js +190 -0
  291. package/lib/hooks/useRuntimes.d.ts +5 -0
  292. package/lib/hooks/useRuntimes.js +34 -0
  293. package/lib/hooks/useToolApprovals.d.ts +6 -6
  294. package/lib/index.d.ts +1 -0
  295. package/lib/index.js +1 -0
  296. package/lib/jupyter/exec/Python.d.ts +5 -0
  297. package/lib/jupyter/exec/Python.js +100 -0
  298. package/lib/jupyter/exec/Snippets.d.ts +105 -0
  299. package/lib/jupyter/exec/Snippets.js +101 -0
  300. package/lib/jupyter/exec/index.d.ts +2 -0
  301. package/lib/jupyter/exec/index.js +6 -0
  302. package/lib/jupyter/index.d.ts +2 -0
  303. package/lib/jupyter/index.js +6 -0
  304. package/lib/jupyter/kernelsHandler.d.ts +8 -0
  305. package/lib/jupyter/kernelsHandler.js +39 -0
  306. package/lib/mocks/models/CourseMock.d.ts +6 -0
  307. package/lib/mocks/models/CourseMock.js +29 -0
  308. package/lib/mocks/models/SpaceMock.d.ts +6 -0
  309. package/lib/mocks/models/SpaceMock.js +25 -0
  310. package/lib/models/Assignment.d.ts +7 -0
  311. package/lib/models/Assignment.js +5 -0
  312. package/lib/models/Cell.d.ts +8 -0
  313. package/lib/models/Cell.js +5 -0
  314. package/lib/models/CodeBlock.d.ts +10 -0
  315. package/lib/models/CodeBlock.js +5 -0
  316. package/lib/models/CodeSandboxSnapshot.d.ts +92 -0
  317. package/lib/models/CodeSandboxSnapshot.js +13 -0
  318. package/lib/models/CodeSandboxSnapshotDTO.d.ts +173 -0
  319. package/lib/models/CodeSandboxSnapshotDTO.js +139 -0
  320. package/lib/models/CodefeedBlocks.d.ts +7 -0
  321. package/lib/models/CodefeedBlocks.js +5 -0
  322. package/lib/models/Content.d.ts +5 -0
  323. package/lib/models/Content.js +5 -0
  324. package/lib/models/Course.d.ts +17 -0
  325. package/lib/models/Course.js +5 -0
  326. package/lib/models/Dataset.d.ts +16 -0
  327. package/lib/models/Dataset.js +5 -0
  328. package/lib/models/Document.d.ts +8 -0
  329. package/lib/models/Document.js +5 -0
  330. package/lib/models/Environment.d.ts +86 -0
  331. package/lib/models/Environment.js +5 -0
  332. package/lib/models/EnvironmentDTO.d.ts +125 -0
  333. package/lib/models/EnvironmentDTO.js +88 -0
  334. package/lib/models/Exercise.d.ts +16 -0
  335. package/lib/models/Exercise.js +5 -0
  336. package/lib/models/Item.d.ts +20 -0
  337. package/lib/models/Item.js +5 -0
  338. package/lib/models/ItemDTO.d.ts +74 -0
  339. package/lib/models/ItemDTO.js +186 -0
  340. package/lib/models/ItemType.d.ts +2 -0
  341. package/lib/models/ItemType.js +5 -0
  342. package/lib/models/Lesson.d.ts +5 -0
  343. package/lib/models/Lesson.js +5 -0
  344. package/lib/models/LexicalDTO.d.ts +155 -0
  345. package/lib/models/LexicalDTO.js +157 -0
  346. package/lib/models/Library.d.ts +10 -0
  347. package/lib/models/Library.js +5 -0
  348. package/lib/models/Notebook.d.ts +11 -0
  349. package/lib/models/Notebook.js +5 -0
  350. package/lib/models/NotebookDTO.d.ts +96 -0
  351. package/lib/models/NotebookDTO.js +153 -0
  352. package/lib/models/Page.d.ts +41 -0
  353. package/lib/models/Page.js +25 -0
  354. package/lib/models/PageTag.d.ts +19 -0
  355. package/lib/models/PageTag.js +94 -0
  356. package/lib/models/ProjectDTO.d.ts +89 -0
  357. package/lib/models/ProjectDTO.js +131 -0
  358. package/lib/models/Runtime.d.ts +160 -0
  359. package/lib/models/Runtime.js +18 -0
  360. package/lib/models/RuntimeDTO.d.ts +172 -0
  361. package/lib/models/RuntimeDTO.js +204 -0
  362. package/lib/models/Space.d.ts +35 -0
  363. package/lib/models/Space.js +66 -0
  364. package/lib/models/SpaceDTO.d.ts +334 -0
  365. package/lib/models/SpaceDTO.js +244 -0
  366. package/lib/models/SpaceItem.d.ts +10 -0
  367. package/lib/models/SpaceItem.js +5 -0
  368. package/lib/models/SpaceMember.d.ts +6 -0
  369. package/lib/models/SpaceMember.js +5 -0
  370. package/lib/models/StudentItem.d.ts +21 -0
  371. package/lib/models/StudentItem.js +5 -0
  372. package/lib/models/index.d.ts +32 -0
  373. package/lib/models/index.js +39 -0
  374. package/lib/protocols/AGUIAdapter.js +1 -1
  375. package/lib/runtimes/actions.d.ts +102 -0
  376. package/lib/runtimes/actions.js +249 -0
  377. package/lib/runtimes/apis.d.ts +273 -0
  378. package/lib/runtimes/apis.js +5 -0
  379. package/lib/runtimes/index.d.ts +5 -0
  380. package/lib/runtimes/index.js +9 -0
  381. package/lib/runtimes/settings.d.ts +15 -0
  382. package/lib/runtimes/settings.js +31 -0
  383. package/lib/runtimes/snapshots.d.ts +25 -0
  384. package/lib/runtimes/snapshots.js +150 -0
  385. package/lib/runtimes/utils.d.ts +7 -0
  386. package/lib/runtimes/utils.js +14 -0
  387. package/lib/services/DatalayerServiceManager.d.ts +23 -0
  388. package/lib/services/DatalayerServiceManager.js +90 -0
  389. package/lib/services/reconnectToRuntime.d.ts +32 -0
  390. package/lib/services/reconnectToRuntime.js +59 -0
  391. package/lib/services/sandboxServiceManagers.d.ts +31 -0
  392. package/lib/services/sandboxServiceManagers.js +57 -0
  393. package/lib/specs/agents/agents.d.ts +70 -26
  394. package/lib/specs/agents/agents.js +3994 -1639
  395. package/lib/specs/index.d.ts +1 -0
  396. package/lib/specs/index.js +1 -0
  397. package/lib/specs/loops.d.ts +34 -0
  398. package/lib/specs/loops.js +188 -0
  399. package/lib/specs/mcpServers.d.ts +1 -0
  400. package/lib/specs/mcpServers.js +17 -0
  401. package/lib/specs/models.d.ts +4 -0
  402. package/lib/specs/models.js +30 -0
  403. package/lib/specs/skills.d.ts +1 -0
  404. package/lib/specs/skills.js +18 -0
  405. package/lib/specs/tools.d.ts +15 -0
  406. package/lib/specs/tools.js +285 -0
  407. package/lib/state/index.d.ts +4 -0
  408. package/lib/state/index.js +10 -0
  409. package/lib/state/substates/CellState.d.ts +12 -0
  410. package/lib/state/substates/CellState.js +22 -0
  411. package/lib/state/substates/DocumentState.d.ts +10 -0
  412. package/lib/state/substates/DocumentState.js +14 -0
  413. package/lib/state/substates/GradeState.d.ts +10 -0
  414. package/lib/state/substates/GradeState.js +14 -0
  415. package/lib/state/substates/JupyterLabState.d.ts +16 -0
  416. package/lib/state/substates/JupyterLabState.js +17 -0
  417. package/lib/state/substates/NbformatState.d.ts +13 -0
  418. package/lib/state/substates/NbformatState.js +16 -0
  419. package/lib/state/substates/RuntimesState.d.ts +87 -0
  420. package/lib/state/substates/RuntimesState.js +192 -0
  421. package/lib/state/substates/SpaceState.d.ts +11 -0
  422. package/lib/state/substates/SpaceState.js +16 -0
  423. package/lib/state/substates/index.d.ts +8 -0
  424. package/lib/state/substates/index.js +14 -0
  425. package/lib/stores/agentRuntimeStore.d.ts +25 -2
  426. package/lib/stores/agentRuntimeStore.js +114 -19
  427. package/lib/stories/Button.stories.d.ts +1 -1
  428. package/lib/stories/Header.stories.d.ts +3 -3
  429. package/lib/test-setup.js +10 -0
  430. package/lib/types/agents-lifecycle.d.ts +5 -5
  431. package/lib/types/agents.d.ts +3 -3
  432. package/lib/types/agentspecs.d.ts +3 -1
  433. package/lib/types/chat.d.ts +135 -3
  434. package/lib/types/config.d.ts +19 -1
  435. package/lib/types/index.d.ts +1 -0
  436. package/lib/types/index.js +1 -0
  437. package/lib/types/loops.d.ts +64 -0
  438. package/lib/types/loops.js +5 -0
  439. package/lib/types/tools.d.ts +16 -0
  440. package/lib/utils/Cells.d.ts +2 -0
  441. package/lib/utils/Cells.js +28 -0
  442. package/package.json +24 -18
  443. package/scripts/codegen/__pycache__/versioning.cpython-313.pyc +0 -0
  444. package/scripts/codegen/generate_agents.py +21 -4
  445. package/scripts/codegen/generate_loops.py +443 -0
  446. package/lib/examples/A2UiComponentGalleryExample.d.ts +0 -3
  447. package/lib/examples/A2UiComponentGalleryExample.js +0 -361
  448. /package/lib/{agent-lexical-main.d.ts → agent-document-main.d.ts} +0 -0
@@ -0,0 +1,86 @@
1
+ import { IContent } from './Content';
2
+ import { IItem } from './Item';
3
+ export type IEnvironment = IItem & {
4
+ type: 'environment';
5
+ };
6
+ export interface IResources {
7
+ cpu: string;
8
+ memory: string;
9
+ 'nvidia.com/gpu'?: string;
10
+ }
11
+ /**
12
+ * Code snippet
13
+ */
14
+ export interface ISnippet {
15
+ /**
16
+ * Snippet summary
17
+ */
18
+ title: string;
19
+ /**
20
+ * Snippet long description
21
+ */
22
+ description?: string;
23
+ /**
24
+ * Code snippet
25
+ */
26
+ code: string;
27
+ }
28
+ /**
29
+ * Datalayer environment
30
+ */
31
+ export interface IDatalayerEnvironment {
32
+ /**
33
+ * Name
34
+ */
35
+ name: string;
36
+ /**
37
+ * Title
38
+ */
39
+ title: string;
40
+ /**
41
+ * Description
42
+ */
43
+ description: string;
44
+ /**
45
+ * Icon key (e.g. ai-agent -> AiAgentIcon)
46
+ */
47
+ icon?: string;
48
+ /**
49
+ * Execution language
50
+ */
51
+ language: string;
52
+ /**
53
+ * Docker image
54
+ */
55
+ dockerImage: string;
56
+ /**
57
+ * Example notebook URL
58
+ */
59
+ example?: string;
60
+ /**
61
+ * Example code snippets
62
+ */
63
+ snippets?: ISnippet[];
64
+ /**
65
+ * Associate kernel attributes
66
+ */
67
+ runtime?: {
68
+ /**
69
+ * Proposed display name
70
+ */
71
+ givenNameTemplate?: string;
72
+ };
73
+ /**
74
+ * Environment credits burning rate
75
+ */
76
+ burning_rate: number;
77
+ /**
78
+ * Environment server resources
79
+ */
80
+ resources?: IResources;
81
+ /**
82
+ * Environment contents.
83
+ */
84
+ contents?: IContent[];
85
+ }
86
+ export default IEnvironment;
@@ -0,0 +1,5 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ export {};
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Environment domain model for the Datalayer Client.
3
+ *
4
+ * @module models/EnvironmentDTO
5
+ */
6
+ import type { AgentRuntimesClient as DatalayerClient } from '../client/AgentRuntimesClient';
7
+ /**
8
+ * Represents a computing environment available in the Datalayer platform.
9
+ * @interface EnvironmentData
10
+ */
11
+ export interface EnvironmentData {
12
+ /** Human-readable title for the environment */
13
+ title: string;
14
+ /** Detailed description of the environment */
15
+ description: string;
16
+ /** Docker image used for this environment */
17
+ dockerImage: string;
18
+ /** Example usage or description */
19
+ example?: string;
20
+ /** Code snippets for this environment */
21
+ snippets?: any[];
22
+ /** Content mounts for this environment */
23
+ contents?: any[];
24
+ /** Kernel configuration */
25
+ runtime?: {
26
+ /** Template for kernel naming */
27
+ givenNameTemplate?: string;
28
+ };
29
+ /** Programming language (e.g., "python", "r") */
30
+ language: string;
31
+ /** Resource ranges configuration */
32
+ resourcesRanges?: any;
33
+ /** Credits consumed per hour when running */
34
+ burning_rate: number;
35
+ /** Simple resource specification */
36
+ resources?: any;
37
+ /** Name identifier for the environment */
38
+ name: string;
39
+ /** Docker registry for the image */
40
+ dockerRegistry?: string;
41
+ /** Icon or avatar URL for the environment */
42
+ icon?: string;
43
+ /** Whether the environment is enabled */
44
+ enabled?: boolean;
45
+ /** Tags associated with the environment */
46
+ tags?: string[];
47
+ }
48
+ /**
49
+ * Stable public interface for Environment data.
50
+ * This is the contract that Client consumers can rely on.
51
+ * The raw API may change, but this interface remains stable.
52
+ */
53
+ export interface EnvironmentJSON {
54
+ /** Human-readable title for the environment */
55
+ title: string;
56
+ /** Unique name identifier for the environment */
57
+ name: string;
58
+ /** Credits consumed per hour for this environment */
59
+ burningRate: number;
60
+ /** Description of the environment (contains HTML markup) */
61
+ description: string;
62
+ /** Rich description of the environment (contains HTML markup) */
63
+ richDescription: string;
64
+ }
65
+ /**
66
+ * Response from listing available environments
67
+ * @interface ListEnvironmentsResponse
68
+ */
69
+ export interface ListEnvironmentsResponse {
70
+ /** Whether the request was successful */
71
+ success: boolean;
72
+ /** Response message from the server */
73
+ message: string;
74
+ /** Array of available environments */
75
+ environments: EnvironmentData[];
76
+ }
77
+ /**
78
+ * Environment domain model that wraps API responses with convenient methods.
79
+ * Provides information about available computational environments.
80
+ *
81
+ * @example
82
+ * ```typescript
83
+ * const environments = await client.listEnvironments();
84
+ * const aiEnv = environments.find(env => env.name === 'ai-env');
85
+ * console.log(aiEnv.title); // "AI Environment"
86
+ * ```
87
+ */
88
+ export declare class EnvironmentDTO {
89
+ /** @internal */
90
+ _data: EnvironmentData;
91
+ /**
92
+ * Create an Environment instance.
93
+ *
94
+ * @param data - Environment data from API
95
+ * @param _client - Client instance (not currently used but kept for consistency)
96
+ */
97
+ constructor(data: EnvironmentData, _client: DatalayerClient);
98
+ /** Human-readable title for the environment (e.g., 'AI Environment', 'Python CPU Environment'). */
99
+ get title(): string;
100
+ /** Unique name identifier for the environment (e.g., 'ai-env', 'ai-agents-env'). */
101
+ get name(): string;
102
+ /** Credits consumed per hour for this environment. */
103
+ get burningRate(): number;
104
+ /** Rich description of the environment (contains HTML markup). */
105
+ get richDescription(): string;
106
+ /** Clean description without HTML tags. */
107
+ get description(): string;
108
+ /**
109
+ * Get environment data in camelCase format.
110
+ * Returns only the core fields that consumers need.
111
+ * This provides a stable interface regardless of API changes.
112
+ *
113
+ * @returns Core environment data with camelCase properties
114
+ */
115
+ toJSON(): EnvironmentJSON;
116
+ /**
117
+ * Get the raw environment data exactly as received from the API.
118
+ * This preserves the original snake_case naming from the API response.
119
+ *
120
+ * @returns Raw environment data from API
121
+ */
122
+ rawData(): EnvironmentData;
123
+ /** String representation of the environment. */
124
+ toString(): string;
125
+ }
@@ -0,0 +1,88 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ import { validateJSON } from '@datalayer/core/lib/api/utils/validation';
6
+ /**
7
+ * Environment domain model that wraps API responses with convenient methods.
8
+ * Provides information about available computational environments.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const environments = await client.listEnvironments();
13
+ * const aiEnv = environments.find(env => env.name === 'ai-env');
14
+ * console.log(aiEnv.title); // "AI Environment"
15
+ * ```
16
+ */
17
+ export class EnvironmentDTO {
18
+ /** @internal */
19
+ _data;
20
+ /**
21
+ * Create an Environment instance.
22
+ *
23
+ * @param data - Environment data from API
24
+ * @param _client - Client instance (not currently used but kept for consistency)
25
+ */
26
+ constructor(data, _client) {
27
+ this._data = data;
28
+ // Client instance not currently used but kept for future extensibility
29
+ }
30
+ // ========================================================================
31
+ // Properties
32
+ // ========================================================================
33
+ /** Human-readable title for the environment (e.g., 'AI Environment', 'Python CPU Environment'). */
34
+ get title() {
35
+ return this._data.title;
36
+ }
37
+ /** Unique name identifier for the environment (e.g., 'ai-env', 'ai-agents-env'). */
38
+ get name() {
39
+ return this._data.name;
40
+ }
41
+ /** Credits consumed per hour for this environment. */
42
+ get burningRate() {
43
+ return this._data.burning_rate;
44
+ }
45
+ /** Rich description of the environment (contains HTML markup). */
46
+ get richDescription() {
47
+ return this._data.description;
48
+ }
49
+ /** Clean description without HTML tags. */
50
+ get description() {
51
+ // Simple HTML tag removal
52
+ return this._data.description.replace(/<[^>]*>/g, '').trim();
53
+ }
54
+ // ========================================================================
55
+ // Utility Methods
56
+ // ========================================================================
57
+ /**
58
+ * Get environment data in camelCase format.
59
+ * Returns only the core fields that consumers need.
60
+ * This provides a stable interface regardless of API changes.
61
+ *
62
+ * @returns Core environment data with camelCase properties
63
+ */
64
+ toJSON() {
65
+ const obj = {
66
+ title: this.title,
67
+ name: this.name,
68
+ burningRate: this.burningRate,
69
+ description: this.description,
70
+ richDescription: this.richDescription,
71
+ };
72
+ validateJSON(obj, 'Environment');
73
+ return obj;
74
+ }
75
+ /**
76
+ * Get the raw environment data exactly as received from the API.
77
+ * This preserves the original snake_case naming from the API response.
78
+ *
79
+ * @returns Raw environment data from API
80
+ */
81
+ rawData() {
82
+ return this._data;
83
+ }
84
+ /** String representation of the environment. */
85
+ toString() {
86
+ return `Environment(${this.name}, ${this.title})`;
87
+ }
88
+ }
@@ -0,0 +1,16 @@
1
+ import { IDataset } from './Dataset';
2
+ import { IItem } from './Item';
3
+ export type ICode = string;
4
+ export type IHelp = string;
5
+ export type IExercise = IItem & {
6
+ type: 'exercise';
7
+ help: IHelp;
8
+ codePre: ICode;
9
+ codeSolution: ICode;
10
+ codeQuestion: ICode;
11
+ codeTest: ICode;
12
+ datasets: Array<IDataset>;
13
+ lastUpdateDate?: Date;
14
+ lastPublicationDate?: Date;
15
+ };
16
+ export default IExercise;
@@ -0,0 +1,5 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ export {};
@@ -0,0 +1,20 @@
1
+ import { ISpaceItem } from './SpaceItem';
2
+ import { IUser } from '@datalayer/core/lib/models/User';
3
+ import { IAnyOrganization } from '@datalayer/core/lib/models/Organization';
4
+ import { IAnySpace } from './Space';
5
+ import { IItemType } from './ItemType';
6
+ export type IAnyItem = ISpaceItem;
7
+ export type IItem = {
8
+ id: string;
9
+ type: IItemType;
10
+ name: string;
11
+ description: string;
12
+ public: boolean;
13
+ creationDate: Date;
14
+ lastUpdateDate?: Date;
15
+ lastPublicationDate?: Date;
16
+ owner: IUser;
17
+ space: Partial<IAnySpace>;
18
+ organization: Partial<IAnyOrganization>;
19
+ };
20
+ export default IItem;
@@ -0,0 +1,5 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ export {};
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Abstract base class for all Datalayer content items.
3
+ *
4
+ * @module models/ItemDTO
5
+ */
6
+ import type { AgentRuntimesClient as DatalayerClient } from '../client/AgentRuntimesClient';
7
+ /**
8
+ * Abstract base class for all Datalayer content items.
9
+ * Provides common functionality for content management including lifecycle tracking.
10
+ *
11
+ * @template TData - Raw data type from API
12
+ * @template TUpdateRequest - Update request type for API
13
+ */
14
+ export declare abstract class ItemDTO<TData> {
15
+ protected _data: TData;
16
+ private _client;
17
+ private _deleted;
18
+ /**
19
+ * Create an Item instance.
20
+ * @param data - Item data from API
21
+ * @param client - Client instance
22
+ */
23
+ constructor(data: TData, client: DatalayerClient);
24
+ /** Check if this item has been deleted. */
25
+ get isDeleted(): boolean;
26
+ /**
27
+ * Check if this item has been deleted and throw error if so.
28
+ * @throws Error if deleted
29
+ */
30
+ protected _checkDeleted(): void;
31
+ /** Item ID. */
32
+ get id(): string;
33
+ /** Unique identifier for the item. */
34
+ get uid(): string;
35
+ /** Parent space ID. */
36
+ get spaceId(): string;
37
+ /** Owner user ID. */
38
+ get ownerId(): string;
39
+ /** When the item was created. */
40
+ get createdAt(): Date;
41
+ /** The cached update time. */
42
+ get updatedAt(): Date;
43
+ /** Get the item type identifier. */
44
+ abstract get type(): string;
45
+ /** The cached name. */
46
+ abstract get name(): string;
47
+ /** Get the current name from API. */
48
+ abstract getName(): Promise<string>;
49
+ /** The cached content. */
50
+ abstract get content(): any;
51
+ /** Get when the item was last updated from API. */
52
+ abstract getUpdatedAt(): Promise<Date>;
53
+ /** Update the item. */
54
+ abstract update(...args: any[]): Promise<this>;
55
+ /**
56
+ * Delete this item permanently.
57
+ * After deletion, all subsequent method calls will throw errors.
58
+ */
59
+ delete(): Promise<void>;
60
+ /** Get the document content from API. */
61
+ getContent(): Promise<any>;
62
+ /** Get raw item data object. */
63
+ rawData(): TData;
64
+ /** Convert to JSON representation - must be implemented by subclasses. */
65
+ abstract toJSON(): any;
66
+ /** String representation of the item. */
67
+ toString(): string;
68
+ /** Get Client token for API calls. */
69
+ protected _getToken(): string;
70
+ /** Get spacer API URL for API calls. */
71
+ protected _getSpacerUrl(): string;
72
+ /** Update internal data after API call. */
73
+ protected _updateData(newData: TData): void;
74
+ }
@@ -0,0 +1,186 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ import * as items from '../api/spacer/items';
6
+ /**
7
+ * Abstract base class for all Datalayer content items.
8
+ * Provides common functionality for content management including lifecycle tracking.
9
+ *
10
+ * @template TData - Raw data type from API
11
+ * @template TUpdateRequest - Update request type for API
12
+ */
13
+ export class ItemDTO {
14
+ _data;
15
+ _client;
16
+ _deleted = false;
17
+ /**
18
+ * Create an Item instance.
19
+ * @param data - Item data from API
20
+ * @param client - Client instance
21
+ */
22
+ constructor(data, client) {
23
+ this._data = data;
24
+ this._client = client;
25
+ }
26
+ // ========================================================================
27
+ // Deletion State Management
28
+ // ========================================================================
29
+ /** Check if this item has been deleted. */
30
+ get isDeleted() {
31
+ return this._deleted;
32
+ }
33
+ /**
34
+ * Check if this item has been deleted and throw error if so.
35
+ * @throws Error if deleted
36
+ */
37
+ _checkDeleted() {
38
+ if (this._deleted) {
39
+ throw new Error(`${this.constructor.name} ${this._data.id} has been deleted and no longer exists`);
40
+ }
41
+ }
42
+ // ========================================================================
43
+ // Static Properties (set at creation, never change)
44
+ // ========================================================================
45
+ /** Item ID. */
46
+ get id() {
47
+ this._checkDeleted();
48
+ return this._data.id;
49
+ }
50
+ /** Unique identifier for the item. */
51
+ get uid() {
52
+ this._checkDeleted();
53
+ return this._data.uid;
54
+ }
55
+ /** Parent space ID. */
56
+ get spaceId() {
57
+ this._checkDeleted();
58
+ // Try the direct field first (if API provides it)
59
+ if (this._data.space_id) {
60
+ return this._data.space_id;
61
+ }
62
+ // Extract from s3_path_s if available: "datalayer.ai/SPACE_ID/..."
63
+ const s3Path = this._data.s3_path_s;
64
+ if (s3Path && typeof s3Path === 'string') {
65
+ const match = s3Path.match(/^datalayer\.app\/([^/]+)\//);
66
+ if (match) {
67
+ return match[1];
68
+ }
69
+ }
70
+ // Fallback to empty string if no space ID can be determined
71
+ return '';
72
+ }
73
+ /** Owner user ID. */
74
+ get ownerId() {
75
+ this._checkDeleted();
76
+ return (this._data.owner_id || this._data.creator_uid || '');
77
+ }
78
+ /** When the item was created. */
79
+ get createdAt() {
80
+ this._checkDeleted();
81
+ const dateStr = this._data.creation_ts_dt || this._data.created_at;
82
+ if (!dateStr) {
83
+ throw new Error(`No creation timestamp available for ${this.constructor.name.toLowerCase()}`);
84
+ }
85
+ return new Date(dateStr);
86
+ }
87
+ /** The cached update time. */
88
+ get updatedAt() {
89
+ this._checkDeleted();
90
+ const dateStr = this._data.last_update_ts_dt ||
91
+ this._data.updated_at ||
92
+ this._data.creation_ts_dt ||
93
+ this._data.created_at;
94
+ if (!dateStr) {
95
+ throw new Error(`No update timestamp available for ${this.constructor.name.toLowerCase()}`);
96
+ }
97
+ return new Date(dateStr);
98
+ }
99
+ // ========================================================================
100
+ // Action Methods
101
+ // ========================================================================
102
+ /**
103
+ * Delete this item permanently.
104
+ * After deletion, all subsequent method calls will throw errors.
105
+ */
106
+ async delete() {
107
+ this._checkDeleted();
108
+ const token = this._client.getToken();
109
+ const spacerUrl = this._client.getSpacerUrl();
110
+ await items.deleteItem(token, this.uid, spacerUrl);
111
+ this._deleted = true;
112
+ }
113
+ /** Get the document content from API. */
114
+ async getContent() {
115
+ this._checkDeleted();
116
+ // First try: CDN URL (fastest)
117
+ const cdnUrl = this._data.cdn_url_s;
118
+ if (cdnUrl) {
119
+ try {
120
+ const response = await fetch(cdnUrl);
121
+ if (!response.ok) {
122
+ throw new Error('Failed to fetch content from CDN');
123
+ }
124
+ const data = await response.json();
125
+ if (data.content !== undefined && data.content !== null) {
126
+ return data.content;
127
+ }
128
+ }
129
+ catch (error) {
130
+ console.error('Error fetching content from CDN:', error);
131
+ }
132
+ }
133
+ // Second try: Check if content is already loaded
134
+ const cachedContent = this.content;
135
+ if (cachedContent !== undefined && cachedContent !== null) {
136
+ return cachedContent;
137
+ }
138
+ // Third try: Fetch full item details from API
139
+ try {
140
+ const token = this._client.getToken();
141
+ const spacerUrl = this._client.getSpacerUrl();
142
+ const response = await items.getItem(token, this.uid, spacerUrl);
143
+ // Update internal data with full item details
144
+ if (response.success && response.item) {
145
+ this._data = response.item;
146
+ const freshContent = this.content;
147
+ if (freshContent !== undefined && freshContent !== null) {
148
+ return freshContent;
149
+ }
150
+ }
151
+ }
152
+ catch (error) {
153
+ console.error('Error fetching full item details:', error);
154
+ }
155
+ throw new Error(`Content is not available for item ${this.uid}. The item may not have been fully loaded or the content is not yet available.`);
156
+ }
157
+ // ========================================================================
158
+ // Utility Methods
159
+ // ========================================================================
160
+ /** Get raw item data object. */
161
+ rawData() {
162
+ this._checkDeleted();
163
+ return this._data;
164
+ }
165
+ /** String representation of the item. */
166
+ toString() {
167
+ this._checkDeleted();
168
+ const name = this.name || 'Unnamed';
169
+ return `${this.constructor.name}(${this.id}, ${name})`;
170
+ }
171
+ // ========================================================================
172
+ // Protected Helper Methods
173
+ // ========================================================================
174
+ /** Get Client token for API calls. */
175
+ _getToken() {
176
+ return this._client.getToken();
177
+ }
178
+ /** Get spacer API URL for API calls. */
179
+ _getSpacerUrl() {
180
+ return this._client.getSpacerUrl();
181
+ }
182
+ /** Update internal data after API call. */
183
+ _updateData(newData) {
184
+ this._data = newData;
185
+ }
186
+ }
@@ -0,0 +1,2 @@
1
+ export type IItemType = 'assignment' | 'authoring' | 'cell' | 'content' | 'credits' | 'dataset' | 'datasource' | 'document' | 'documentation' | 'environment' | 'exercise' | 'growth' | 'home' | 'invite' | 'lesson' | 'library' | 'mail' | 'management' | 'notebook' | 'onboarding' | 'organization' | 'page' | 'runtime' | 'runtime-snapshot' | 'settings' | 'share' | 'space' | 'storage' | 'success' | 'support' | 'tag' | 'team' | 'usage' | 'user' | 'undefined';
2
+ export default IItemType;
@@ -0,0 +1,5 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ export {};
@@ -0,0 +1,5 @@
1
+ import { IBaseNotebook } from './Notebook';
2
+ export type ILesson = IBaseNotebook & {
3
+ type: 'lesson';
4
+ };
5
+ export default ILesson;
@@ -0,0 +1,5 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ export {};