@datalayer/core 1.1.60 → 1.2.10

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 (496) hide show
  1. package/README.md +41 -18
  2. package/lib/api/DatalayerApi.d.ts +42 -1
  3. package/lib/api/DatalayerApi.js +90 -3
  4. package/lib/api/constants.d.ts +19 -1
  5. package/lib/api/constants.js +19 -1
  6. package/lib/api/contents/attachments.d.ts +9 -0
  7. package/lib/api/contents/attachments.js +39 -0
  8. package/lib/api/contents/bridges.d.ts +22 -0
  9. package/lib/api/contents/bridges.js +79 -0
  10. package/lib/api/contents/capabilities.d.ts +11 -0
  11. package/lib/api/contents/capabilities.js +21 -0
  12. package/lib/api/contents/cloudStorage.d.ts +31 -0
  13. package/lib/api/contents/cloudStorage.js +89 -0
  14. package/lib/api/contents/dataservers.d.ts +37 -0
  15. package/lib/api/contents/dataservers.js +121 -0
  16. package/lib/api/contents/datasets.d.ts +63 -0
  17. package/lib/api/contents/datasets.js +82 -0
  18. package/lib/api/contents/datasources.d.ts +70 -0
  19. package/lib/api/contents/datasources.js +149 -0
  20. package/lib/api/contents/generated.d.ts +1070 -0
  21. package/lib/api/contents/index.d.ts +16 -0
  22. package/lib/api/contents/index.js +20 -0
  23. package/lib/api/contents/mcp.d.ts +46 -0
  24. package/lib/api/contents/mcp.js +157 -0
  25. package/lib/api/contents/objects.d.ts +31 -0
  26. package/lib/api/contents/objects.js +88 -0
  27. package/lib/api/contents/operations.d.ts +3 -0
  28. package/lib/api/contents/operations.js +19 -0
  29. package/lib/api/contents/runtimeMounts.d.ts +40 -0
  30. package/lib/api/contents/runtimeMounts.js +59 -0
  31. package/lib/api/contents/sandboxUid.d.ts +21 -0
  32. package/lib/api/contents/sandboxUid.js +27 -0
  33. package/lib/api/contents/sources.d.ts +19 -0
  34. package/lib/api/contents/sources.js +119 -0
  35. package/lib/api/contents/sync.d.ts +18 -0
  36. package/lib/api/contents/sync.js +69 -0
  37. package/lib/api/contents/transfers.d.ts +38 -0
  38. package/lib/api/contents/transfers.js +123 -0
  39. package/lib/api/evals/client.d.ts +402 -0
  40. package/lib/api/evals/client.js +359 -0
  41. package/lib/api/evals/index.d.ts +10 -0
  42. package/lib/api/evals/index.js +18 -0
  43. package/lib/api/evals/request.d.ts +43 -0
  44. package/lib/api/evals/request.js +67 -0
  45. package/lib/api/evals/status.d.ts +27 -0
  46. package/lib/api/evals/status.js +122 -0
  47. package/lib/api/evals/types.d.ts +1335 -0
  48. package/lib/api/evals/types.js +5 -0
  49. package/lib/api/iam/connectedAgents.d.ts +68 -0
  50. package/lib/api/iam/connectedAgents.js +87 -0
  51. package/lib/api/iam/identityProviders.d.ts +76 -0
  52. package/lib/api/iam/identityProviders.js +187 -0
  53. package/lib/api/iam/index.d.ts +3 -1
  54. package/lib/api/iam/index.js +3 -1
  55. package/lib/api/iam/mcpAlertRules.d.ts +51 -0
  56. package/lib/api/iam/mcpAlertRules.js +198 -0
  57. package/lib/api/iam/mcpAuditSettings.d.ts +46 -0
  58. package/lib/api/iam/mcpAuditSettings.js +120 -0
  59. package/lib/api/iam/mcpPolicy.d.ts +181 -0
  60. package/lib/api/iam/mcpPolicy.js +168 -0
  61. package/lib/api/iam/organizationTeams.d.ts +13 -0
  62. package/lib/api/iam/organizationTeams.js +43 -0
  63. package/lib/api/iam/profile.d.ts +17 -1
  64. package/lib/api/iam/profile.js +27 -0
  65. package/lib/api/iam/scimTokens.d.ts +79 -0
  66. package/lib/api/iam/scimTokens.js +141 -0
  67. package/lib/api/iam/secrets.js +9 -21
  68. package/lib/api/iam/serviceAgents.d.ts +68 -0
  69. package/lib/api/iam/serviceAgents.js +119 -0
  70. package/lib/api/iam/trials.d.ts +38 -0
  71. package/lib/api/iam/trials.js +66 -0
  72. package/lib/api/index.d.ts +8 -1
  73. package/lib/api/index.js +7 -1
  74. package/lib/api/mcp/activity.d.ts +37 -0
  75. package/lib/api/mcp/activity.js +26 -0
  76. package/lib/api/mcp/alerts.d.ts +25 -0
  77. package/lib/api/mcp/alerts.js +51 -0
  78. package/lib/api/mcp/audit.d.ts +29 -0
  79. package/lib/api/mcp/audit.js +55 -0
  80. package/lib/api/mcp/bindings.d.ts +18 -0
  81. package/lib/api/mcp/bindings.js +42 -0
  82. package/lib/api/mcp/forwarding.d.ts +25 -0
  83. package/lib/api/mcp/forwarding.js +46 -0
  84. package/lib/api/mcp/gateway.d.ts +16 -0
  85. package/lib/api/mcp/gateway.js +70 -0
  86. package/lib/api/mcp/generated.d.ts +22 -0
  87. package/lib/api/mcp/generated.js +213 -0
  88. package/lib/api/mcp/index.d.ts +17 -0
  89. package/lib/api/mcp/index.js +25 -0
  90. package/lib/api/mcp/observability.d.ts +141 -0
  91. package/lib/api/mcp/observability.js +267 -0
  92. package/lib/api/mcp/operations.d.ts +83 -0
  93. package/lib/api/mcp/operations.js +50 -0
  94. package/lib/api/mcp/organizations.d.ts +102 -0
  95. package/lib/api/mcp/organizations.js +46 -0
  96. package/lib/api/mcp/policy.d.ts +9 -0
  97. package/lib/api/mcp/policy.js +23 -0
  98. package/lib/api/mcp/tasks.d.ts +49 -0
  99. package/lib/api/mcp/tasks.js +147 -0
  100. package/lib/api/orchestration/client.d.ts +53 -0
  101. package/lib/api/orchestration/client.js +105 -0
  102. package/lib/api/orchestration/events.d.ts +88 -0
  103. package/lib/api/orchestration/events.js +245 -0
  104. package/lib/api/orchestration/generated.d.ts +693 -0
  105. package/lib/api/orchestration/generated.js +687 -0
  106. package/lib/api/orchestration/index.d.ts +30 -0
  107. package/lib/api/orchestration/index.js +34 -0
  108. package/lib/api/orchestration/lifecycle.d.ts +39 -0
  109. package/lib/api/orchestration/lifecycle.js +57 -0
  110. package/lib/api/orchestration/measures.d.ts +55 -0
  111. package/lib/api/orchestration/measures.js +99 -0
  112. package/lib/api/otel/dashboards.d.ts +56 -0
  113. package/lib/api/otel/dashboards.js +50 -0
  114. package/lib/api/otel/index.d.ts +1 -0
  115. package/lib/api/otel/index.js +1 -0
  116. package/lib/api/otel/metrics.d.ts +16 -0
  117. package/lib/api/otel/metrics.js +15 -0
  118. package/lib/api/scheduler/client.d.ts +32 -0
  119. package/lib/api/scheduler/client.js +42 -0
  120. package/lib/api/scheduler/index.d.ts +8 -0
  121. package/lib/api/scheduler/index.js +16 -0
  122. package/lib/api/scheduler/request.d.ts +28 -0
  123. package/lib/api/scheduler/request.js +50 -0
  124. package/lib/api/scheduler/types.d.ts +88 -0
  125. package/lib/api/scheduler/types.js +5 -0
  126. package/lib/api/spacer/comments.d.ts +97 -0
  127. package/lib/api/spacer/comments.js +45 -0
  128. package/lib/api/spacer/index.d.ts +9 -0
  129. package/lib/api/spacer/index.js +17 -0
  130. package/lib/api/spacer/notebooks.d.ts +33 -0
  131. package/lib/api/spacer/notebooks.js +39 -0
  132. package/lib/api/spacer/request.d.ts +25 -0
  133. package/lib/api/spacer/request.js +46 -0
  134. package/lib/api/spacer/spaces.d.ts +68 -0
  135. package/lib/api/spacer/spaces.js +45 -0
  136. package/lib/api/utils/validation.d.ts +4 -4
  137. package/lib/api/utils/validation.js +10 -7
  138. package/lib/client/auth/index.js +0 -5
  139. package/lib/client/auth/storage.js +0 -5
  140. package/lib/client/auth/strategies.js +0 -5
  141. package/lib/client/base.d.ts +6 -0
  142. package/lib/client/base.js +8 -0
  143. package/lib/client/constants.d.ts +1 -0
  144. package/lib/client/constants.js +1 -0
  145. package/lib/client/index.d.ts +0 -10
  146. package/lib/client/index.js +2 -2
  147. package/lib/client/mixins/ContentsMixin.d.ts +71 -0
  148. package/lib/client/mixins/ContentsMixin.js +157 -0
  149. package/lib/client/mixins/IAMMixin.d.ts +0 -31
  150. package/lib/client/mixins/IAMMixin.js +0 -58
  151. package/lib/components/animation/AnimatedText.d.ts +2 -44
  152. package/lib/components/animation/AnimatedText.js +6 -126
  153. package/lib/components/anonymous/AnonymousKeyExpired.d.ts +56 -0
  154. package/lib/components/anonymous/AnonymousKeyExpired.js +96 -0
  155. package/lib/components/anonymous/AnonymousKeyTimer.d.ts +63 -0
  156. package/lib/components/anonymous/AnonymousKeyTimer.js +140 -0
  157. package/lib/components/anonymous/index.d.ts +7 -0
  158. package/lib/components/anonymous/index.js +15 -0
  159. package/lib/components/auth/SigInAPIKey.d.ts +1 -0
  160. package/lib/components/auth/SigInAPIKey.js +0 -6
  161. package/lib/components/auth/SignIn.d.ts +1 -0
  162. package/lib/components/auth/SignIn.js +0 -4
  163. package/lib/components/auth/SignIn.stories.d.ts +2 -2
  164. package/lib/components/avatars/BoringAvatar.d.ts +1 -1
  165. package/lib/components/avatars/BoringAvatar.stories.d.ts +1 -1
  166. package/lib/components/avatars/DLAvatar.d.ts +1 -1
  167. package/lib/components/avatars/DLAvatar.js +0 -4
  168. package/lib/components/avatars/UserAvatar.d.ts +16 -1
  169. package/lib/components/avatars/UserAvatar.js +15 -13
  170. package/lib/components/avatars/UserProfileAvatar.d.ts +1 -1
  171. package/lib/components/banners/NoAutomationBanner.d.ts +1 -1
  172. package/lib/components/billing/BillingEntitySelect.d.ts +16 -0
  173. package/lib/components/billing/BillingEntitySelect.js +49 -27
  174. package/lib/components/billing/eligibility.d.ts +22 -0
  175. package/lib/components/billing/eligibility.js +27 -0
  176. package/lib/components/billing/index.d.ts +1 -0
  177. package/lib/components/billing/index.js +1 -4
  178. package/lib/components/buttons/DownloadCSVButton.d.ts +1 -1
  179. package/lib/components/buttons/DownloadJsonButton.d.ts +1 -1
  180. package/lib/components/buttons/LongActionButton.d.ts +1 -0
  181. package/lib/components/buttons/LongActionButton.js +0 -4
  182. package/lib/components/buttons/UploadButton.d.ts +1 -0
  183. package/lib/components/buttons/UploadButton.js +0 -4
  184. package/lib/components/checkout/StripeCheckout.d.ts +1 -1
  185. package/lib/components/collaboration/LiveEditorCollaborators.d.ts +36 -0
  186. package/lib/components/collaboration/LiveEditorCollaborators.js +88 -53
  187. package/lib/components/collaboration/index.js +0 -4
  188. package/lib/components/confetti/ConfettiSuccess.d.ts +1 -1
  189. package/lib/components/contents/ContentSourceCard.d.ts +8 -0
  190. package/lib/components/contents/ContentSourceCard.js +23 -0
  191. package/lib/components/contents/HomeFolderObjectsBrowser.d.ts +10 -0
  192. package/lib/components/contents/HomeFolderObjectsBrowser.js +148 -0
  193. package/lib/components/contents/index.d.ts +2 -0
  194. package/lib/components/contents/index.js +6 -0
  195. package/lib/components/context/OrganizationSelect.d.ts +1 -1
  196. package/lib/components/display/AvatarSkeleton.d.ts +1 -1
  197. package/lib/components/display/BusyDots.d.ts +1 -1
  198. package/lib/components/display/CenteredSpinner.d.ts +1 -1
  199. package/lib/components/display/CodePreview.d.ts +1 -1
  200. package/lib/components/display/DatalayerBox.d.ts +7 -3
  201. package/lib/components/display/DatalayerBox.js +7 -7
  202. package/lib/components/display/HorizontalCenter.d.ts +1 -1
  203. package/lib/components/display/JupyterDialog.d.ts +1 -0
  204. package/lib/components/display/JupyterDialog.js +1 -7
  205. package/lib/components/display/Markdown.d.ts +1 -0
  206. package/lib/components/display/NavLink.js +3 -2
  207. package/lib/components/display/NotebookSkeleton.d.ts +1 -1
  208. package/lib/components/display/Placeholder.d.ts +1 -1
  209. package/lib/components/display/ToTopBranded.d.ts +1 -1
  210. package/lib/components/echarts/EChartsReact.d.ts +1 -1
  211. package/lib/components/flashes/FlashClosable.d.ts +1 -0
  212. package/lib/components/flashes/FlashClosable.js +0 -4
  213. package/lib/components/flashes/FlashGuest.d.ts +1 -1
  214. package/lib/components/flashes/FlashSurveys.d.ts +1 -1
  215. package/lib/components/flashes/FlashUnauthorized.d.ts +1 -0
  216. package/lib/components/flashes/FlashUnauthorized.js +0 -6
  217. package/lib/components/flashes/surveys/Survey2025_1.d.ts +1 -1
  218. package/lib/components/iam/ExternalTokenSilentLogin.d.ts +1 -1
  219. package/lib/components/index.d.ts +2 -0
  220. package/lib/components/index.js +2 -0
  221. package/lib/components/labels/StatusLabels.d.ts +2 -9
  222. package/lib/components/labels/StatusLabels.js +2 -26
  223. package/lib/components/labels/VisibilityLabel.d.ts +1 -1
  224. package/lib/components/landings/StepBlock.d.ts +1 -1
  225. package/lib/components/mcp/ClientBadge.d.ts +41 -0
  226. package/lib/components/mcp/ClientBadge.js +33 -0
  227. package/lib/components/mcp/McpErrorBlankslate.d.ts +21 -0
  228. package/lib/components/mcp/McpErrorBlankslate.js +17 -0
  229. package/lib/components/mcp/ScopeList.d.ts +28 -0
  230. package/lib/components/mcp/ScopeList.js +14 -0
  231. package/lib/components/mcp/index.d.ts +10 -0
  232. package/lib/components/mcp/index.js +18 -0
  233. package/lib/components/navbar/NavigationVisbilityObserver.d.ts +2 -1
  234. package/lib/components/navbar/SubdomainNavBar.d.ts +10 -5
  235. package/lib/components/navbar/SubdomainNavBar.js +2 -1
  236. package/lib/components/notebooks/JupyterNotebook.d.ts +1 -1
  237. package/lib/components/notebooks/JupyterNotebookToolbar.d.ts +1 -1
  238. package/lib/components/principal/PrincipalAppearance.d.ts +22 -42
  239. package/lib/components/principal/PrincipalAppearance.js +232 -182
  240. package/lib/components/principal/PrincipalAvatar.d.ts +9 -1
  241. package/lib/components/principal/PrincipalAvatar.js +18 -10
  242. package/lib/components/principal/PrincipalBadge.d.ts +1 -1
  243. package/lib/components/principal/PrincipalBanner.d.ts +1 -1
  244. package/lib/components/principal/PrincipalDetailsOverlay.d.ts +38 -1
  245. package/lib/components/principal/PrincipalDetailsOverlay.js +64 -33
  246. package/lib/components/principal/PrincipalHoverCard.d.ts +31 -0
  247. package/lib/components/principal/PrincipalHoverCard.js +52 -0
  248. package/lib/components/principal/PrincipalSwitcherMenu.d.ts +1 -0
  249. package/lib/components/principal/PrincipalSwitcherMenu.js +5 -14
  250. package/lib/components/principal/index.d.ts +2 -1
  251. package/lib/components/principal/index.js +2 -1
  252. package/lib/components/progress/ConsumptionBar.d.ts +1 -0
  253. package/lib/components/progress/ConsumptionBar.js +0 -4
  254. package/lib/components/progress/ProgressRing.d.ts +1 -0
  255. package/lib/components/progress/SpinnerBar.d.ts +1 -1
  256. package/lib/components/progress/Timer.d.ts +1 -0
  257. package/lib/components/progress/Timer.js +0 -4
  258. package/lib/components/screencapture/Screencapture.js +46 -3
  259. package/lib/components/screencapture/ScreencaptureButton.d.ts +1 -1
  260. package/lib/components/sharing/ShareAccessComponent.d.ts +58 -3
  261. package/lib/components/sharing/ShareAccessComponent.js +143 -98
  262. package/lib/components/sharing/SharingEditor.d.ts +21 -0
  263. package/lib/components/sharing/SharingEditor.js +9 -28
  264. package/lib/components/sharing/index.d.ts +1 -0
  265. package/lib/components/sharing/index.js +1 -0
  266. package/lib/components/sharing/sandboxSharing.d.ts +26 -0
  267. package/lib/components/sharing/sandboxSharing.js +41 -0
  268. package/lib/components/spaces/SpaceDetailsOverlay.d.ts +39 -0
  269. package/lib/components/spaces/SpaceDetailsOverlay.js +80 -0
  270. package/lib/components/spaces/SpaceDisplay.d.ts +38 -0
  271. package/lib/components/spaces/SpaceDisplay.js +92 -0
  272. package/lib/components/spaces/index.d.ts +4 -0
  273. package/lib/components/spaces/index.js +7 -0
  274. package/lib/components/spaces/spaceDisplayModel.d.ts +93 -0
  275. package/lib/components/spaces/spaceDisplayModel.js +170 -0
  276. package/lib/components/sparklines/Sparklines.js +3 -4
  277. package/lib/components/sparklines/index.js +0 -4
  278. package/lib/components/storage/ContentsBrowser.d.ts +25 -1
  279. package/lib/components/storage/ContentsBrowser.js +145 -52
  280. package/lib/components/storage/ContentsBrowserMock.d.ts +3 -0
  281. package/lib/components/storage/ContentsBrowserMock.js +75 -0
  282. package/lib/components/storage/ContentsItems.d.ts +2 -1
  283. package/lib/components/storage/ContentsItems.js +0 -4
  284. package/lib/components/storage/ContentsTable.d.ts +50 -0
  285. package/lib/components/storage/ContentsTable.js +134 -0
  286. package/lib/components/storage/HomeFolderDrive.d.ts +71 -0
  287. package/lib/components/storage/HomeFolderDrive.js +248 -0
  288. package/lib/components/storage/index.d.ts +2 -0
  289. package/lib/components/storage/index.js +2 -0
  290. package/lib/components/students/StudentItemStatus.d.ts +1 -1
  291. package/lib/components/students/StudentResultCircle.d.ts +1 -1
  292. package/lib/components/subnav/SubNav.d.ts +5 -5
  293. package/lib/components/subnav/SubNav.js +11 -9
  294. package/lib/components/tables/DataTable.d.ts +1 -1
  295. package/lib/components/text-reveal/TextRevealAnimation.d.ts +2 -2
  296. package/lib/components/text-reveal/useTextRevealAnimationLines.d.ts +1 -1
  297. package/lib/components/time/LiveRelativeTime.d.ts +1 -0
  298. package/lib/components/time/LiveRelativeTime.js +0 -8
  299. package/lib/components/time/index.js +0 -4
  300. package/lib/components/timeline/Timeline.d.ts +1 -1
  301. package/lib/components/timeline/index.js +0 -4
  302. package/lib/components/users/PeerIndicator.d.ts +1 -0
  303. package/lib/components/users/PeerIndicator.js +0 -4
  304. package/lib/config/Configuration.d.ts +15 -17
  305. package/lib/config/Configuration.js +7 -0
  306. package/lib/hooks/cacheConverters.d.ts +0 -7
  307. package/lib/hooks/cacheConverters.js +0 -25
  308. package/lib/hooks/index.d.ts +3 -0
  309. package/lib/hooks/index.js +3 -0
  310. package/lib/hooks/layouts/LayoutBackdrop.d.ts +1 -1
  311. package/lib/hooks/layouts/LayoutScreencapture.d.ts +1 -1
  312. package/lib/hooks/useBackdrop.d.ts +1 -1
  313. package/lib/hooks/useBackdropJupyterLab.d.ts +3 -2
  314. package/lib/hooks/useBackdropJupyterLab.js +0 -4
  315. package/lib/hooks/useBillingEntityStore.js +3 -0
  316. package/lib/hooks/useCache.d.ts +478 -130
  317. package/lib/hooks/useCache.js +1580 -676
  318. package/lib/hooks/useContainsFocus.d.ts +1 -1
  319. package/lib/hooks/useContents.d.ts +334 -0
  320. package/lib/hooks/useContents.js +1033 -0
  321. package/lib/hooks/useFocusTrap.d.ts +4 -4
  322. package/lib/hooks/useFocusTrap.js +1 -1
  323. package/lib/hooks/useMcp.d.ts +315 -0
  324. package/lib/hooks/useMcp.js +891 -0
  325. package/lib/hooks/useMobile.js +0 -5
  326. package/lib/hooks/useNavigate.d.ts +41 -3
  327. package/lib/hooks/useNavigate.js +106 -52
  328. package/lib/hooks/usePrincipalCacheStore.js +3 -0
  329. package/lib/hooks/usePrincipalStore.js +3 -0
  330. package/lib/hooks/useProjectStore.d.ts +3 -3
  331. package/lib/hooks/useProjectStore.js +4 -4
  332. package/lib/hooks/useRef.d.ts +1 -1
  333. package/lib/hooks/useRef.js +3 -0
  334. package/lib/hooks/useScreencapture.d.ts +2 -1
  335. package/lib/hooks/useScreencapture.js +0 -4
  336. package/lib/hooks/useSpaceCacheStore.d.ts +50 -0
  337. package/lib/hooks/useSpaceCacheStore.js +85 -0
  338. package/lib/hooks/useToast.js +0 -4
  339. package/lib/hooks/useVisibilityObserver.d.ts +1 -1
  340. package/lib/index.d.ts +4 -1
  341. package/lib/index.js +3 -1
  342. package/lib/mocks/components/FlashMock.d.ts +1 -1
  343. package/lib/mocks/views/ActionMenuMock.d.ts +1 -1
  344. package/lib/mocks/views/ChartMock.d.ts +1 -1
  345. package/lib/mocks/views/DashboardMock.d.ts +1 -1
  346. package/lib/mocks/views/FormMock.d.ts +1 -1
  347. package/lib/mocks/views/TableMock.d.ts +1 -1
  348. package/lib/mocks/views/WipMock.d.ts +1 -1
  349. package/lib/models/Credits.d.ts +16 -0
  350. package/lib/models/Credits.js +22 -0
  351. package/lib/models/CreditsDTO.d.ts +6 -5
  352. package/lib/models/CreditsDTO.js +7 -5
  353. package/lib/models/McpAuditEvent.d.ts +52 -0
  354. package/lib/models/McpAuditEvent.js +5 -0
  355. package/lib/models/McpBinding.d.ts +57 -0
  356. package/lib/models/McpBinding.js +5 -0
  357. package/lib/models/McpPolicy.d.ts +77 -0
  358. package/lib/models/McpPolicy.js +5 -0
  359. package/lib/models/McpTask.d.ts +94 -0
  360. package/lib/models/McpTask.js +7 -0
  361. package/lib/models/Organization.d.ts +69 -0
  362. package/lib/models/Organization.js +96 -0
  363. package/lib/models/Secret.d.ts +1 -2
  364. package/lib/models/Secret.js +2 -18
  365. package/lib/models/StartedBy.d.ts +91 -0
  366. package/lib/models/StartedBy.js +117 -0
  367. package/lib/models/Team.d.ts +2 -0
  368. package/lib/models/Team.js +2 -0
  369. package/lib/models/User.d.ts +4 -0
  370. package/lib/models/User.js +3 -0
  371. package/lib/models/UserDTO.js +4 -2
  372. package/lib/models/UserSettings.d.ts +13 -0
  373. package/lib/models/UserSettings.js +9 -0
  374. package/lib/models/contents/__fixtures__/solr-codec.json +57 -0
  375. package/lib/models/contents/__fixtures__/v1-contracts.json +194 -0
  376. package/lib/models/contents/fieldCase.d.ts +8 -0
  377. package/lib/models/contents/fieldCase.js +37 -0
  378. package/lib/models/contents/index.d.ts +2 -0
  379. package/lib/models/contents/index.js +6 -0
  380. package/lib/models/contents/permissions.d.ts +16 -0
  381. package/lib/models/contents/permissions.js +34 -0
  382. package/lib/models/index.d.ts +5 -1
  383. package/lib/models/index.js +5 -1
  384. package/lib/navigation/components.js +2 -3
  385. package/lib/routes/publicPaths.js +4 -0
  386. package/lib/state/index.d.ts +1 -0
  387. package/lib/state/index.js +1 -0
  388. package/lib/state/sessionEnd.d.ts +55 -0
  389. package/lib/state/sessionEnd.js +162 -0
  390. package/lib/state/substates/CoreState.d.ts +15 -7
  391. package/lib/state/substates/CoreState.js +21 -17
  392. package/lib/state/substates/IAMState.d.ts +1 -1
  393. package/lib/state/substates/IAMState.js +12 -5
  394. package/lib/state/substates/LayoutState.js +12 -0
  395. package/lib/state/substates/ProfileState.d.ts +1 -0
  396. package/lib/state/substates/ProfileState.js +1 -4
  397. package/lib/state/substates/index.d.ts +0 -1
  398. package/lib/state/substates/index.js +0 -1
  399. package/lib/utils/Jwt.d.ts +26 -0
  400. package/lib/utils/Jwt.js +37 -0
  401. package/lib/utils/Lazy.d.ts +20 -0
  402. package/lib/utils/Lazy.js +32 -6
  403. package/lib/utils/Screencapture.js +3 -0
  404. package/lib/utils/WithSuspense.d.ts +11 -1
  405. package/lib/utils/WithSuspense.js +11 -1
  406. package/lib/views/api-keys/APIKeyEdit.d.ts +1 -1
  407. package/lib/views/api-keys/APIKeyNew.d.ts +1 -1
  408. package/lib/views/api-keys/APIKeys.d.ts +1 -1
  409. package/lib/views/api-keys/APIKeys.js +30 -4
  410. package/lib/views/api-keys/APIKeysStandalone.d.ts +5 -1
  411. package/lib/views/api-keys/APIKeysStandalone.js +2 -2
  412. package/lib/views/datasources/DatasourceDetail.d.ts +12 -5
  413. package/lib/views/datasources/DatasourceDetail.js +80 -110
  414. package/lib/views/datasources/DatasourceNew.d.ts +14 -8
  415. package/lib/views/datasources/DatasourceNew.js +129 -118
  416. package/lib/views/datasources/Datasources.d.ts +39 -7
  417. package/lib/views/datasources/Datasources.js +95 -40
  418. package/lib/views/datasources/DatasourcesMock.d.ts +3 -0
  419. package/lib/views/datasources/DatasourcesMock.js +57 -0
  420. package/lib/views/iam/SignInSimple.d.ts +12 -0
  421. package/lib/views/iam/SignInSimple.js +4 -4
  422. package/lib/views/index.d.ts +1 -0
  423. package/lib/views/index.js +1 -0
  424. package/lib/views/mcp/AdmittedClients.d.ts +44 -0
  425. package/lib/views/mcp/AdmittedClients.js +59 -0
  426. package/lib/views/mcp/AlertDestinations.d.ts +34 -0
  427. package/lib/views/mcp/AlertDestinations.js +75 -0
  428. package/lib/views/mcp/AlertRules.d.ts +32 -0
  429. package/lib/views/mcp/AlertRules.js +245 -0
  430. package/lib/views/mcp/ApprovalQueue.d.ts +66 -0
  431. package/lib/views/mcp/ApprovalQueue.js +95 -0
  432. package/lib/views/mcp/AuditLog.d.ts +42 -0
  433. package/lib/views/mcp/AuditLog.js +144 -0
  434. package/lib/views/mcp/ConnectedAgents.d.ts +34 -0
  435. package/lib/views/mcp/ConnectedAgents.js +135 -0
  436. package/lib/views/mcp/EnterpriseConsole.d.ts +74 -0
  437. package/lib/views/mcp/EnterpriseConsole.js +195 -0
  438. package/lib/views/mcp/IdentityProviders.d.ts +33 -0
  439. package/lib/views/mcp/IdentityProviders.js +299 -0
  440. package/lib/views/mcp/McpDashboard.d.ts +50 -0
  441. package/lib/views/mcp/McpDashboard.js +430 -0
  442. package/lib/views/mcp/McpHome.d.ts +92 -0
  443. package/lib/views/mcp/McpHome.js +153 -0
  444. package/lib/views/mcp/McpObservability.d.ts +79 -0
  445. package/lib/views/mcp/McpObservability.js +236 -0
  446. package/lib/views/mcp/NotebookRuns.d.ts +39 -0
  447. package/lib/views/mcp/NotebookRuns.js +44 -0
  448. package/lib/views/mcp/OrganizationPolicy.d.ts +45 -0
  449. package/lib/views/mcp/OrganizationPolicy.js +108 -0
  450. package/lib/views/mcp/OrganizationUsage.d.ts +69 -0
  451. package/lib/views/mcp/OrganizationUsage.js +113 -0
  452. package/lib/views/mcp/PersonalPolicy.d.ts +54 -0
  453. package/lib/views/mcp/PersonalPolicy.js +126 -0
  454. package/lib/views/mcp/Policies.d.ts +53 -0
  455. package/lib/views/mcp/Policies.js +210 -0
  456. package/lib/views/mcp/PolicyForm.d.ts +83 -0
  457. package/lib/views/mcp/PolicyForm.js +113 -0
  458. package/lib/views/mcp/PolicyHistory.d.ts +58 -0
  459. package/lib/views/mcp/PolicyHistory.js +75 -0
  460. package/lib/views/mcp/RunDetail.d.ts +87 -0
  461. package/lib/views/mcp/RunDetail.js +186 -0
  462. package/lib/views/mcp/ScimProvisioning.d.ts +54 -0
  463. package/lib/views/mcp/ScimProvisioning.js +173 -0
  464. package/lib/views/mcp/ServiceAgents.d.ts +46 -0
  465. package/lib/views/mcp/ServiceAgents.js +194 -0
  466. package/lib/views/mcp/TeamPolicies.d.ts +33 -0
  467. package/lib/views/mcp/TeamPolicies.js +159 -0
  468. package/lib/views/mcp/ToolAccess.d.ts +60 -0
  469. package/lib/views/mcp/ToolAccess.js +101 -0
  470. package/lib/views/mcp/TraceTimeline.d.ts +81 -0
  471. package/lib/views/mcp/TraceTimeline.js +132 -0
  472. package/lib/views/mcp/format.d.ts +25 -0
  473. package/lib/views/mcp/format.js +77 -0
  474. package/lib/views/mcp/index.d.ts +34 -0
  475. package/lib/views/mcp/index.js +42 -0
  476. package/lib/views/mcp/types.d.ts +66 -0
  477. package/lib/views/mcp/types.js +5 -0
  478. package/lib/views/otel/simpleAuthStore.js +3 -0
  479. package/lib/views/secrets/SecretEdit.d.ts +5 -1
  480. package/lib/views/secrets/SecretEdit.js +5 -4
  481. package/lib/views/secrets/SecretNew.d.ts +11 -1
  482. package/lib/views/secrets/SecretNew.js +7 -3
  483. package/lib/views/secrets/Secrets.d.ts +12 -1
  484. package/lib/views/secrets/Secrets.js +2 -2
  485. package/package.json +269 -260
  486. package/scripts/generate-contents-types.py +169 -0
  487. package/scripts/generate-mcp-types.py +233 -0
  488. package/scripts/generate-orchestration-types.py +920 -0
  489. package/lib/api/iam/datasources.d.ts +0 -86
  490. package/lib/api/iam/datasources.js +0 -185
  491. package/lib/components/toolbars/index.d.ts +0 -1
  492. package/lib/models/Datasource.d.ts +0 -181
  493. package/lib/models/Datasource.js +0 -154
  494. package/lib/state/substates/DatasourceState.d.ts +0 -11
  495. package/lib/state/substates/DatasourceState.js +0 -16
  496. /package/lib/{components/toolbars/index.js → api/contents/generated.js} +0 -0
@@ -0,0 +1,16 @@
1
+ export * from './generated';
2
+ export * from './attachments';
3
+ export * from './bridges';
4
+ export * from './sandboxUid';
5
+ export * from './capabilities';
6
+ export * from './cloudStorage';
7
+ export * from './datasets';
8
+ export * from './datasources';
9
+ export * from './dataservers';
10
+ export * from './mcp';
11
+ export * from './objects';
12
+ export * from './runtimeMounts';
13
+ export * from './operations';
14
+ export * from './sources';
15
+ export * from './sync';
16
+ export * from './transfers';
@@ -0,0 +1,20 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ export * from './generated.js';
6
+ export * from './attachments.js';
7
+ export * from './bridges.js';
8
+ export * from './sandboxUid.js';
9
+ export * from './capabilities.js';
10
+ export * from './cloudStorage.js';
11
+ export * from './datasets.js';
12
+ export * from './datasources.js';
13
+ export * from './dataservers.js';
14
+ export * from './mcp.js';
15
+ export * from './objects.js';
16
+ export * from './runtimeMounts.js';
17
+ export * from './operations.js';
18
+ export * from './sources.js';
19
+ export * from './sync.js';
20
+ export * from './transfers.js';
@@ -0,0 +1,46 @@
1
+ import type { McpApproval, McpApprovalList, McpCall, McpCallCreate, McpCallList, McpHealth, McpSession, McpSessionCreate, McpSessionList, McpToolManifest } from './generated';
2
+ export type McpCallStatus = McpCall['status'];
3
+ export type McpApprovalStatus = McpApproval['status'];
4
+ export type McpSessionStatus = McpSession['status'];
5
+ /** A call the service has finished with, one way or another. */
6
+ export declare const MCP_TERMINAL_CALL_STATUSES: ReadonlySet<McpCallStatus>;
7
+ export declare const isMcpCallTerminal: (status: McpCallStatus) => boolean;
8
+ /** The tools and resources the server behind a source offers. */
9
+ export declare const discoverMcpTools: (token: string, sourceUid: string, baseUrl?: string) => Promise<McpToolManifest>;
10
+ /** Does the server answer through this source, right now? */
11
+ export declare const testMcpSource: (token: string, sourceUid: string, baseUrl?: string) => Promise<McpHealth>;
12
+ /**
13
+ * Open a scoped connection to an MCP source on the caller's behalf.
14
+ *
15
+ * The session's allowlists are the source's, narrowed by `tools` when given.
16
+ */
17
+ export declare const createMcpSession: (token: string, request: McpSessionCreate, idempotencyKey: string, baseUrl?: string) => Promise<McpSession>;
18
+ export declare const getMcpSession: (token: string, sessionUid: string, baseUrl?: string) => Promise<McpSession>;
19
+ /** Every session the caller opened. The contract lists them whole; a reader narrows. */
20
+ export declare const listMcpSessions: (token: string, baseUrl?: string) => Promise<McpSessionList>;
21
+ export declare const revokeMcpSession: (token: string, sessionUid: string, baseUrl?: string) => Promise<McpSession>;
22
+ /**
23
+ * Invoke one tool through a session.
24
+ *
25
+ * The answer is the call record, not necessarily the result: under an
26
+ * `explicit` approval policy it comes back `pending-approval` with the
27
+ * approval to decide, and a bulk acquisition ends in artifacts that name a
28
+ * Transfer rather than carrying bytes. The arguments are the tool's own and
29
+ * go over as typed; only the envelope is converted.
30
+ */
31
+ export declare const callMcpTool: (token: string, sessionUid: string, request: McpCallCreate, baseUrl?: string) => Promise<McpCall>;
32
+ export declare const getMcpCall: (token: string, sessionUid: string, callUid: string, baseUrl?: string) => Promise<McpCall>;
33
+ /**
34
+ * The calls made through a session, newest first.
35
+ *
36
+ * This is where provenance lives: a call whose result carries artifacts is
37
+ * an acquisition, and the artifact names the Transfer, object and version it
38
+ * became.
39
+ */
40
+ export declare const listMcpCalls: (token: string, sessionUid: string, baseUrl?: string) => Promise<McpCallList>;
41
+ /** The caller's approvals, in one status; the contract filters on nothing else. */
42
+ export declare const listMcpApprovals: (token: string, options?: {
43
+ status?: McpApprovalStatus;
44
+ }, baseUrl?: string) => Promise<McpApprovalList>;
45
+ /** Approve or reject a pending call; the note travels with the decision. */
46
+ export declare const decideMcpApproval: (token: string, approvalUid: string, decision: "approve" | "reject", note?: string, baseUrl?: string) => Promise<McpApproval>;
@@ -0,0 +1,157 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /*
6
+ * Copyright (c) 2023-2026 Datalayer, Inc.
7
+ * Distributed under the terms of the Modified BSD License.
8
+ */
9
+ /**
10
+ * An MCP source through the service: discovered, tested, used.
11
+ *
12
+ * Nothing here talks to the MCP server. Contents does, with the credential
13
+ * it holds, through a session it opens for the caller and narrows to the
14
+ * source's allowlists. What a browser gets back is tool definitions, call
15
+ * records and approvals — and for a call that moved bytes, the Transfer or
16
+ * object that holds them rather than the bytes.
17
+ *
18
+ * The wire types are the generated ones; what is declared here is what the
19
+ * contract does not name — the status unions as standalone types, and which
20
+ * of them are terminal.
21
+ */
22
+ import { requestDatalayerAPI } from '../DatalayerApi.js';
23
+ import { API_BASE_PATHS, DEFAULT_SERVICE_URLS } from '../constants.js';
24
+ import { contentsToCamelCase, contentsToSnakeCase } from '../../models/contents/index.js';
25
+ /** A call the service has finished with, one way or another. */
26
+ export const MCP_TERMINAL_CALL_STATUSES = new Set([
27
+ 'denied',
28
+ 'succeeded',
29
+ 'failed',
30
+ 'refused',
31
+ ]);
32
+ export const isMcpCallTerminal = (status) => MCP_TERMINAL_CALL_STATUSES.has(status);
33
+ const convertRequest = (value) => contentsToSnakeCase(value);
34
+ const convertResponse = (value) => contentsToCamelCase(value);
35
+ /**
36
+ * A tool's input schema is JSON Schema: its property names are the tool's
37
+ * argument names and must survive as typed, so the discovery answer is
38
+ * converted around them rather than through them.
39
+ */
40
+ const convertDiscovery = (value) => {
41
+ const raw = (value ?? {});
42
+ const tools = (raw.tools ?? []).map(tool => ({
43
+ name: String(tool.name ?? ''),
44
+ description: tool.description ?? null,
45
+ inputSchema: tool.input_schema ??
46
+ tool.inputSchema ??
47
+ {},
48
+ }));
49
+ const resources = (raw.resources ?? []).map(resource => ({
50
+ uri: String(resource.uri ?? ''),
51
+ name: resource.name ?? null,
52
+ mediaType: resource.media_type ?? null,
53
+ }));
54
+ return { tools, resources, discoveredAt: raw.discovered_at ?? '' };
55
+ };
56
+ const contentsUrl = (baseUrl, suffix) => `${baseUrl}${API_BASE_PATHS.CONTENTS}${suffix}`;
57
+ const sourceMcpUrl = (baseUrl, sourceUid, suffix = '') => contentsUrl(baseUrl, `/sources/${encodeURIComponent(sourceUid)}/mcp${suffix}`);
58
+ const sessionUrl = (baseUrl, sessionUid, suffix = '') => contentsUrl(baseUrl, `/mcp-sessions/${encodeURIComponent(sessionUid)}${suffix}`);
59
+ /** The tools and resources the server behind a source offers. */
60
+ export const discoverMcpTools = async (token, sourceUid, baseUrl = DEFAULT_SERVICE_URLS.CONTENTS) => convertDiscovery(await requestDatalayerAPI({
61
+ url: sourceMcpUrl(baseUrl, sourceUid, '/tools'),
62
+ method: 'GET',
63
+ token,
64
+ }));
65
+ /** Does the server answer through this source, right now? */
66
+ export const testMcpSource = async (token, sourceUid, baseUrl = DEFAULT_SERVICE_URLS.CONTENTS) => convertResponse(await requestDatalayerAPI({
67
+ url: sourceMcpUrl(baseUrl, sourceUid, '/health'),
68
+ method: 'POST',
69
+ token,
70
+ }));
71
+ /**
72
+ * Open a scoped connection to an MCP source on the caller's behalf.
73
+ *
74
+ * The session's allowlists are the source's, narrowed by `tools` when given.
75
+ */
76
+ export const createMcpSession = async (token, request, idempotencyKey, baseUrl = DEFAULT_SERVICE_URLS.CONTENTS) => convertResponse(await requestDatalayerAPI({
77
+ url: contentsUrl(baseUrl, '/mcp-sessions'),
78
+ method: 'POST',
79
+ token,
80
+ headers: { 'Idempotency-Key': idempotencyKey },
81
+ body: convertRequest(request),
82
+ }));
83
+ export const getMcpSession = async (token, sessionUid, baseUrl = DEFAULT_SERVICE_URLS.CONTENTS) => convertResponse(await requestDatalayerAPI({
84
+ url: sessionUrl(baseUrl, sessionUid),
85
+ method: 'GET',
86
+ token,
87
+ }));
88
+ /** Every session the caller opened. The contract lists them whole; a reader narrows. */
89
+ export const listMcpSessions = async (token, baseUrl = DEFAULT_SERVICE_URLS.CONTENTS) => convertResponse(await requestDatalayerAPI({
90
+ url: contentsUrl(baseUrl, '/mcp-sessions'),
91
+ method: 'GET',
92
+ token,
93
+ }));
94
+ export const revokeMcpSession = async (token, sessionUid, baseUrl = DEFAULT_SERVICE_URLS.CONTENTS) => convertResponse(await requestDatalayerAPI({
95
+ url: sessionUrl(baseUrl, sessionUid),
96
+ method: 'DELETE',
97
+ token,
98
+ }));
99
+ /**
100
+ * Invoke one tool through a session.
101
+ *
102
+ * The answer is the call record, not necessarily the result: under an
103
+ * `explicit` approval policy it comes back `pending-approval` with the
104
+ * approval to decide, and a bulk acquisition ends in artifacts that name a
105
+ * Transfer rather than carrying bytes. The arguments are the tool's own and
106
+ * go over as typed; only the envelope is converted.
107
+ */
108
+ export const callMcpTool = async (token, sessionUid, request, baseUrl = DEFAULT_SERVICE_URLS.CONTENTS) => convertResponse(await requestDatalayerAPI({
109
+ url: sessionUrl(baseUrl, sessionUid, '/calls'),
110
+ method: 'POST',
111
+ token,
112
+ body: {
113
+ tool: request.tool,
114
+ arguments: request.arguments ?? {},
115
+ ...(request.destinationUri ? { destination_uri: request.destinationUri } : {}),
116
+ },
117
+ }));
118
+ export const getMcpCall = async (token, sessionUid, callUid, baseUrl = DEFAULT_SERVICE_URLS.CONTENTS) => convertResponse(await requestDatalayerAPI({
119
+ url: sessionUrl(baseUrl, sessionUid, `/calls/${encodeURIComponent(callUid)}`),
120
+ method: 'GET',
121
+ token,
122
+ }));
123
+ /**
124
+ * The calls made through a session, newest first.
125
+ *
126
+ * This is where provenance lives: a call whose result carries artifacts is
127
+ * an acquisition, and the artifact names the Transfer, object and version it
128
+ * became.
129
+ */
130
+ export const listMcpCalls = async (token, sessionUid, baseUrl = DEFAULT_SERVICE_URLS.CONTENTS) => convertResponse(await requestDatalayerAPI({
131
+ url: sessionUrl(baseUrl, sessionUid, '/calls'),
132
+ method: 'GET',
133
+ token,
134
+ }));
135
+ /** The caller's approvals, in one status; the contract filters on nothing else. */
136
+ export const listMcpApprovals = async (token, options = {}, baseUrl = DEFAULT_SERVICE_URLS.CONTENTS) => {
137
+ const parameters = new URLSearchParams();
138
+ if (options.status) {
139
+ parameters.set('status', options.status);
140
+ }
141
+ const query = parameters.toString();
142
+ return convertResponse(await requestDatalayerAPI({
143
+ url: `${contentsUrl(baseUrl, '/mcp-approvals')}${query ? `?${query}` : ''}`,
144
+ method: 'GET',
145
+ token,
146
+ }));
147
+ };
148
+ /** Approve or reject a pending call; the note travels with the decision. */
149
+ export const decideMcpApproval = async (token, approvalUid, decision, note, baseUrl = DEFAULT_SERVICE_URLS.CONTENTS) => {
150
+ const body = note ? { note } : {};
151
+ return convertResponse(await requestDatalayerAPI({
152
+ url: contentsUrl(baseUrl, `/mcp-approvals/${encodeURIComponent(approvalUid)}/${decision}`),
153
+ method: 'POST',
154
+ token,
155
+ body,
156
+ }));
157
+ };
@@ -0,0 +1,31 @@
1
+ import type { HomeFolderFileList, ContentObject, ObjectList, RestoreRequest, HomeFolderQuota, VersionList } from './generated';
2
+ export type HomeFolderObjectListOptions = {
3
+ prefix?: string;
4
+ cursor?: string;
5
+ limit?: number;
6
+ order?: 'path' | 'updated';
7
+ };
8
+ export declare const getHomeFolderQuota: (token: string, baseUrl?: string) => Promise<HomeFolderQuota>;
9
+ export declare const listHomeFolderObjects: (token: string, options?: HomeFolderObjectListOptions, baseUrl?: string) => Promise<ObjectList>;
10
+ export declare const statHomeFolderObject: (token: string, path: string, baseUrl?: string) => Promise<ContentObject>;
11
+ export declare const listHomeFolderObjectVersions: (token: string, objectUid: string, options?: {
12
+ cursor?: string;
13
+ limit?: number;
14
+ }, baseUrl?: string) => Promise<VersionList>;
15
+ export declare const deleteHomeFolderObject: (token: string, objectUid: string, idempotencyKey: string, baseUrl?: string) => Promise<ContentObject>;
16
+ export declare const restoreHomeFolderObject: (token: string, objectUid: string, request: RestoreRequest, idempotencyKey: string, baseUrl?: string) => Promise<ContentObject>;
17
+ /**
18
+ * The files under a path of the caller's Home Folders — what a sandbox
19
+ * wrote as well as what was uploaded — as the shared filesystem holds them.
20
+ * The root lists the folders the caller reaches: their own, and one per
21
+ * organization and team.
22
+ */
23
+ export declare const listHomeFolderFiles: (token: string, path?: string, baseUrl?: string) => Promise<HomeFolderFileList>;
24
+ /** The bytes of one Home Folder file, or a range of them, from the shared filesystem. */
25
+ export declare const readHomeFolderFile: (token: string, path: string, options?: {
26
+ range?: string;
27
+ }, baseUrl?: string) => Promise<{
28
+ body: ArrayBuffer;
29
+ status: number;
30
+ headers: Record<string, string>;
31
+ }>;
@@ -0,0 +1,88 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ import { requestDatalayerAPI, requestDatalayerAPIWithResponse, } from '../DatalayerApi.js';
6
+ import { API_BASE_PATHS, DEFAULT_SERVICE_URLS } from '../constants.js';
7
+ import { contentsToCamelCase, contentsToSnakeCase } from '../../models/contents/index.js';
8
+ const homeFolderUrl = (baseUrl, suffix = '') => `${baseUrl}${API_BASE_PATHS.CONTENTS}/sources/home-folder${suffix}`;
9
+ const convertResponse = (value) => contentsToCamelCase(value);
10
+ const homeFolderObjectsUrl = (baseUrl, suffix = '') => `${baseUrl}${API_BASE_PATHS.CONTENTS}/sources/home-folder/objects${suffix}`;
11
+ export const getHomeFolderQuota = async (token, baseUrl = DEFAULT_SERVICE_URLS.CONTENTS) => convertResponse(await requestDatalayerAPI({
12
+ url: `${baseUrl}${API_BASE_PATHS.CONTENTS}/sources/home-folder/quota`,
13
+ method: 'GET',
14
+ token,
15
+ }));
16
+ export const listHomeFolderObjects = async (token, options = {}, baseUrl = DEFAULT_SERVICE_URLS.CONTENTS) => {
17
+ const parameters = new URLSearchParams();
18
+ parameters.set('limit', String(options.limit ?? 100));
19
+ if (options.prefix) {
20
+ parameters.set('prefix', options.prefix);
21
+ }
22
+ if (options.cursor) {
23
+ parameters.set('cursor', options.cursor);
24
+ }
25
+ if (options.order) {
26
+ parameters.set('order', options.order);
27
+ }
28
+ return convertResponse(await requestDatalayerAPI({
29
+ url: `${homeFolderObjectsUrl(baseUrl)}?${parameters.toString()}`,
30
+ method: 'GET',
31
+ token,
32
+ }));
33
+ };
34
+ export const statHomeFolderObject = async (token, path, baseUrl = DEFAULT_SERVICE_URLS.CONTENTS) => {
35
+ const parameters = new URLSearchParams({ path });
36
+ return convertResponse(await requestDatalayerAPI({
37
+ url: `${homeFolderObjectsUrl(baseUrl, '/stat')}?${parameters.toString()}`,
38
+ method: 'GET',
39
+ token,
40
+ }));
41
+ };
42
+ export const listHomeFolderObjectVersions = async (token, objectUid, options = {}, baseUrl = DEFAULT_SERVICE_URLS.CONTENTS) => {
43
+ const parameters = new URLSearchParams();
44
+ parameters.set('limit', String(options.limit ?? 100));
45
+ if (options.cursor) {
46
+ parameters.set('cursor', options.cursor);
47
+ }
48
+ return convertResponse(await requestDatalayerAPI({
49
+ url: `${homeFolderObjectsUrl(baseUrl, `/${encodeURIComponent(objectUid)}/versions`)}?${parameters.toString()}`,
50
+ method: 'GET',
51
+ token,
52
+ }));
53
+ };
54
+ export const deleteHomeFolderObject = async (token, objectUid, idempotencyKey, baseUrl = DEFAULT_SERVICE_URLS.CONTENTS) => convertResponse(await requestDatalayerAPI({
55
+ url: homeFolderObjectsUrl(baseUrl, `/${encodeURIComponent(objectUid)}`),
56
+ method: 'DELETE',
57
+ token,
58
+ headers: { 'Idempotency-Key': idempotencyKey },
59
+ }));
60
+ export const restoreHomeFolderObject = async (token, objectUid, request, idempotencyKey, baseUrl = DEFAULT_SERVICE_URLS.CONTENTS) => convertResponse(await requestDatalayerAPI({
61
+ url: homeFolderObjectsUrl(baseUrl, `/${encodeURIComponent(objectUid)}/restore`),
62
+ method: 'POST',
63
+ token,
64
+ headers: { 'Idempotency-Key': idempotencyKey },
65
+ body: contentsToSnakeCase(request),
66
+ }));
67
+ /**
68
+ * The files under a path of the caller's Home Folders — what a sandbox
69
+ * wrote as well as what was uploaded — as the shared filesystem holds them.
70
+ * The root lists the folders the caller reaches: their own, and one per
71
+ * organization and team.
72
+ */
73
+ export const listHomeFolderFiles = async (token, path = '', baseUrl = DEFAULT_SERVICE_URLS.CONTENTS) => convertResponse(await requestDatalayerAPI({
74
+ url: `${homeFolderUrl(baseUrl, '/files')}?path=${encodeURIComponent(path)}`,
75
+ method: 'GET',
76
+ token,
77
+ }));
78
+ /** The bytes of one Home Folder file, or a range of them, from the shared filesystem. */
79
+ export const readHomeFolderFile = async (token, path, options = {}, baseUrl = DEFAULT_SERVICE_URLS.CONTENTS) => {
80
+ const response = await requestDatalayerAPIWithResponse({
81
+ url: `${homeFolderUrl(baseUrl, '/files/content')}?path=${encodeURIComponent(path)}`,
82
+ method: 'GET',
83
+ token,
84
+ headers: options.range ? { Range: options.range } : undefined,
85
+ responseType: 'arraybuffer',
86
+ });
87
+ return { body: response.data, status: response.status, headers: response.headers };
88
+ };
@@ -0,0 +1,3 @@
1
+ import type { OperationView } from './generated';
2
+ export declare const getOperation: (token: string, operationUid: string, baseUrl?: string) => Promise<OperationView>;
3
+ export declare const cancelOperation: (token: string, operationUid: string, baseUrl?: string) => Promise<OperationView>;
@@ -0,0 +1,19 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ import { requestDatalayerAPI } from '../DatalayerApi.js';
6
+ import { API_BASE_PATHS, DEFAULT_SERVICE_URLS } from '../constants.js';
7
+ import { contentsToCamelCase } from '../../models/contents/index.js';
8
+ const operationUrl = (baseUrl, operationUid) => `${baseUrl}${API_BASE_PATHS.CONTENTS}/operations/${encodeURIComponent(operationUid)}`;
9
+ const convertResponse = (value) => contentsToCamelCase(value);
10
+ export const getOperation = async (token, operationUid, baseUrl = DEFAULT_SERVICE_URLS.CONTENTS) => convertResponse(await requestDatalayerAPI({
11
+ url: operationUrl(baseUrl, operationUid),
12
+ method: 'GET',
13
+ token,
14
+ }));
15
+ export const cancelOperation = async (token, operationUid, baseUrl = DEFAULT_SERVICE_URLS.CONTENTS) => convertResponse(await requestDatalayerAPI({
16
+ url: `${operationUrl(baseUrl, operationUid)}/cancel`,
17
+ method: 'POST',
18
+ token,
19
+ }));
@@ -0,0 +1,40 @@
1
+ /** One folder bound into a running Runtime. */
2
+ export type RuntimeMount = {
3
+ /** The single path segment it appears under, and the account's handle. */
4
+ target: string;
5
+ /** Where it comes from on the shared filesystem. Informational. */
6
+ source: string;
7
+ mode: 'ro' | 'rw';
8
+ allowExec: boolean;
9
+ uid?: string;
10
+ kind?: string;
11
+ };
12
+ /** What the platform reports about a Runtime's mounts. */
13
+ export type RuntimeMounts = {
14
+ success: boolean;
15
+ message: string;
16
+ /**
17
+ * `ready` when everything asked for is mounted, `degraded` when some of it
18
+ * is, `failed` or `GATEWAY_NOT_READY` when none of it is yet.
19
+ */
20
+ state: string;
21
+ /** What has been granted. */
22
+ mounts: RuntimeMount[];
23
+ /** Of those, what has actually arrived in the sandbox. */
24
+ mounted: string[];
25
+ /** Those that could not be mounted, by target, with the reason. */
26
+ failed: Record<string, string>;
27
+ };
28
+ /** What this Runtime is granted, and what has arrived. */
29
+ export declare const getRuntimeMounts: (token: string, runtimeName: string, baseUrl?: string) => Promise<RuntimeMounts>;
30
+ /**
31
+ * Mount the caller's home folders into a Runtime that is already running.
32
+ *
33
+ * Which folders is not a parameter: the platform resolves the caller's own
34
+ * memberships and mounts those.
35
+ */
36
+ export declare const attachRuntimeMounts: (token: string, runtimeName: string, baseUrl?: string) => Promise<RuntimeMounts>;
37
+ /** Take one folder out of a running Runtime, by the name it appears under. */
38
+ export declare const detachRuntimeMount: (token: string, runtimeName: string, target: string, baseUrl?: string) => Promise<RuntimeMounts>;
39
+ /** Whether the platform has finished applying what was asked for. */
40
+ export declare const isRuntimeMountsSettled: (mounts?: RuntimeMounts) => boolean;
@@ -0,0 +1,59 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /**
6
+ * The folders mounted into a Runtime that is already running.
7
+ *
8
+ * A Pod's volumes are fixed when it is created, so for most of a sandbox's
9
+ * life its mounts were decided before it existed. The mount gateway lifts
10
+ * that for the Home Folder: the platform binds a folder into a running pod
11
+ * and the sandbox sees it at `/home/datalayer/{handle}` within a second or two,
12
+ * with no restart.
13
+ *
14
+ * Not every Runtime can take one — a pod created before the gateway cannot,
15
+ * and neither can a sandbox at an external provider — which is why a Runtime
16
+ * carries `mountGateway` and why attaching answers with a reason rather than
17
+ * appearing to work. The folders themselves are never named here: they are
18
+ * resolved from the caller's memberships by the platform, and a client naming
19
+ * one is not a way to mount it.
20
+ */
21
+ import { requestDatalayerAPI } from '../DatalayerApi.js';
22
+ import { API_BASE_PATHS, DEFAULT_SERVICE_URLS } from '../constants.js';
23
+ import { contentsToCamelCase } from '../../models/contents/index.js';
24
+ const convert = (value) => {
25
+ const converted = contentsToCamelCase(value);
26
+ return {
27
+ ...converted,
28
+ mounts: converted.mounts ?? [],
29
+ mounted: converted.mounted ?? [],
30
+ failed: converted.failed ?? {},
31
+ };
32
+ };
33
+ const runtimesUrl = (baseUrl, suffix) => `${baseUrl}${API_BASE_PATHS.RUNTIMES}${suffix}`;
34
+ /** What this Runtime is granted, and what has arrived. */
35
+ export const getRuntimeMounts = async (token, runtimeName, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => convert(await requestDatalayerAPI({
36
+ url: runtimesUrl(baseUrl, `/runtimes/${encodeURIComponent(runtimeName)}/mounts`),
37
+ method: 'GET',
38
+ token,
39
+ }));
40
+ /**
41
+ * Mount the caller's home folders into a Runtime that is already running.
42
+ *
43
+ * Which folders is not a parameter: the platform resolves the caller's own
44
+ * memberships and mounts those.
45
+ */
46
+ export const attachRuntimeMounts = async (token, runtimeName, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => convert(await requestDatalayerAPI({
47
+ url: runtimesUrl(baseUrl, `/runtimes/${encodeURIComponent(runtimeName)}/mounts`),
48
+ method: 'POST',
49
+ token,
50
+ body: {},
51
+ }));
52
+ /** Take one folder out of a running Runtime, by the name it appears under. */
53
+ export const detachRuntimeMount = async (token, runtimeName, target, baseUrl = DEFAULT_SERVICE_URLS.RUNTIMES) => convert(await requestDatalayerAPI({
54
+ url: runtimesUrl(baseUrl, `/runtimes/${encodeURIComponent(runtimeName)}/mounts/${encodeURIComponent(target)}`),
55
+ method: 'DELETE',
56
+ token,
57
+ }));
58
+ /** Whether the platform has finished applying what was asked for. */
59
+ export const isRuntimeMountsSettled = (mounts) => mounts ? mounts.state === 'ready' || mounts.state === 'degraded' : false;
@@ -0,0 +1,21 @@
1
+ /**
2
+ * A sandbox is identified by its uid, a ULID.
3
+ *
4
+ * A Datalayer runtime has one name: its uid. The Pod is called by it, the
5
+ * `runtime_name` field and every `/runtimes/{uid}` route carry it, and
6
+ * Contents keys an attachment on it. There used to be a second spelling — a
7
+ * Pod name `runtime-<ulid>` — and every place the two met needed a
8
+ * converter; the converters went with the prefix.
9
+ *
10
+ * The server half of this is `datalayer_common.runtime_names`.
11
+ */
12
+ /** Crockford base32, 26 characters — a ULID, in either case. */
13
+ export declare const SANDBOX_UID_PATTERN: RegExp;
14
+ /**
15
+ * Whether a value is a sandbox uid.
16
+ *
17
+ * What tells a runtime apart from anything else that can stand in a route:
18
+ * an agentspec id, a word the listing itself addresses. A sandbox at an
19
+ * external provider is named `external-<provider>-<uid>` and is not one.
20
+ */
21
+ export declare function isSandboxUid(value: string | undefined | null): boolean;
@@ -0,0 +1,27 @@
1
+ /*
2
+ * Copyright (c) 2023-2025 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ /**
6
+ * A sandbox is identified by its uid, a ULID.
7
+ *
8
+ * A Datalayer runtime has one name: its uid. The Pod is called by it, the
9
+ * `runtime_name` field and every `/runtimes/{uid}` route carry it, and
10
+ * Contents keys an attachment on it. There used to be a second spelling — a
11
+ * Pod name `runtime-<ulid>` — and every place the two met needed a
12
+ * converter; the converters went with the prefix.
13
+ *
14
+ * The server half of this is `datalayer_common.runtime_names`.
15
+ */
16
+ /** Crockford base32, 26 characters — a ULID, in either case. */
17
+ export const SANDBOX_UID_PATTERN = /^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/;
18
+ /**
19
+ * Whether a value is a sandbox uid.
20
+ *
21
+ * What tells a runtime apart from anything else that can stand in a route:
22
+ * an agentspec id, a word the listing itself addresses. A sandbox at an
23
+ * external provider is named `external-<provider>-<uid>` and is not one.
24
+ */
25
+ export function isSandboxUid(value) {
26
+ return !!value && SANDBOX_UID_PATTERN.test(value);
27
+ }
@@ -0,0 +1,19 @@
1
+ import type { CatalogSource, ContentSourceCreate, ContentSourceUpdate, EffectivePermissions, Sharing, SourceList } from './generated';
2
+ export interface ConditionalCatalogSource {
3
+ value: CatalogSource;
4
+ etag: string;
5
+ }
6
+ export declare const listSources: (token: string, options?: {
7
+ kind?: string;
8
+ spaceUid?: string;
9
+ cursor?: string;
10
+ limit?: number;
11
+ }, baseUrl?: string) => Promise<SourceList>;
12
+ export declare const createSource: (token: string, source: ContentSourceCreate, idempotencyKey: string, baseUrl?: string) => Promise<ConditionalCatalogSource>;
13
+ export declare const getSource: (token: string, sourceUid: string, baseUrl?: string) => Promise<ConditionalCatalogSource>;
14
+ export declare const getHomeFolder: (token: string, baseUrl?: string) => Promise<ConditionalCatalogSource>;
15
+ export declare const updateSource: (token: string, sourceUid: string, update: ContentSourceUpdate, etag: string, baseUrl?: string) => Promise<ConditionalCatalogSource>;
16
+ export declare const archiveSource: (token: string, sourceUid: string, etag: string, baseUrl?: string) => Promise<ConditionalCatalogSource>;
17
+ export declare const getSourcePermissions: (token: string, sourceUid: string, baseUrl?: string) => Promise<EffectivePermissions>;
18
+ export declare const getSourceSharing: (token: string, sourceUid: string, baseUrl?: string) => Promise<Sharing>;
19
+ export declare const replaceSourceSharing: (token: string, sourceUid: string, sharing: Sharing, etag: string, baseUrl?: string) => Promise<ConditionalCatalogSource>;