@datalayer/agent-runtimes 1.0.10 → 1.0.18

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 (452) 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/AgentCodeSandboxesExample.d.ts +3 -0
  185. package/lib/examples/AgentCodeSandboxesExample.js +192 -0
  186. package/lib/examples/AgentCodemodeExample.js +3 -3
  187. package/lib/examples/AgentEvalsExample.js +5 -5
  188. package/lib/examples/AgentGuardrailsExample.js +17 -12
  189. package/lib/examples/AgentHooksExample.js +14 -55
  190. package/lib/examples/AgentInferenceProviderExample.js +4 -4
  191. package/lib/examples/AgentLoopExample.d.ts +10 -0
  192. package/lib/examples/AgentLoopExample.js +304 -0
  193. package/lib/examples/AgentMCPExample.js +7 -7
  194. package/lib/examples/AgentMemoryExample.js +4 -4
  195. package/lib/examples/AgentMonitoringExample.js +114 -44
  196. package/lib/examples/AgentNotificationsExample.js +4 -4
  197. package/lib/examples/AgentOtelExample.d.ts +3 -3
  198. package/lib/examples/AgentOtelExample.js +15 -10
  199. package/lib/examples/AgentOutputsExample.js +6 -6
  200. package/lib/examples/AgentParametersExample.js +21 -33
  201. package/lib/examples/AgentSandboxExample.js +5 -5
  202. package/lib/examples/AgentSkillsExample.js +7 -7
  203. package/lib/examples/AgentSubagentsExample.js +4 -4
  204. package/lib/examples/AgentToolApprovalsExample.js +5 -5
  205. package/lib/examples/AgentTriggersExample.js +9 -9
  206. package/lib/examples/AgentspecsExample.js +63 -41
  207. package/lib/examples/ChatCustomExample.js +23 -77
  208. package/lib/examples/ChatExample.js +13 -44
  209. package/lib/examples/LexicalAgentExample.js +43 -91
  210. package/lib/examples/LexicalAgentSidebarExample.js +45 -73
  211. package/lib/examples/NotebookAgentExample.js +52 -81
  212. package/lib/examples/NotebookAgentSidebarExample.js +43 -71
  213. package/lib/examples/NotebookCollaborationExample.js +11 -9
  214. package/lib/examples/NotebookExample.js +5 -2
  215. package/lib/examples/components/AuthRequiredView.js +1 -1
  216. package/lib/examples/components/ExampleErrorBoundary.d.ts +46 -0
  217. package/lib/examples/components/ExampleErrorBoundary.js +67 -0
  218. package/lib/examples/components/haiku/haiku-card.css +11 -0
  219. package/lib/examples/components/weather/weather-card.css +11 -0
  220. package/lib/examples/example-selector.js +4 -1
  221. package/lib/examples/hooks/useExampleAgentRuntime.d.ts +35 -0
  222. package/lib/examples/hooks/useExampleAgentRuntime.js +82 -0
  223. package/lib/examples/hooks/useSpecRenderToolResult.d.ts +30 -0
  224. package/lib/examples/hooks/useSpecRenderToolResult.js +61 -0
  225. package/lib/examples/index.d.ts +4 -1
  226. package/lib/examples/index.js +4 -1
  227. package/lib/examples/main.js +340 -93
  228. package/lib/examples/utils/a2ui.d.ts +2 -0
  229. package/lib/examples/utils/a2ui.js +97 -2
  230. package/lib/examples/utils/agentSummaryStore.d.ts +21 -0
  231. package/lib/examples/utils/agentSummaryStore.js +23 -0
  232. package/lib/examples/utils/notebooks/Empty.ipynb.json +30 -30
  233. package/lib/examples/utils/runtimeTargetStore.d.ts +9 -0
  234. package/lib/examples/utils/runtimeTargetStore.js +27 -0
  235. package/lib/examples/utils/teardownAgents.d.ts +13 -0
  236. package/lib/examples/utils/teardownAgents.js +78 -0
  237. package/lib/examples/utils/useExampleAgentRuntimesUrl.d.ts +2 -0
  238. package/lib/examples/utils/useExampleAgentRuntimesUrl.js +26 -7
  239. package/lib/examples2/CellExample.d.ts +6 -0
  240. package/lib/examples2/CellExample.js +20 -0
  241. package/lib/examples2/DatalayerNotebookExample.d.ts +16 -0
  242. package/lib/examples2/DatalayerNotebookExample.js +109 -0
  243. package/lib/examples2/NativeNavigationExample.d.ts +8 -0
  244. package/lib/examples2/NativeNavigationExample.js +97 -0
  245. package/lib/examples2/NotebookExample.d.ts +6 -0
  246. package/lib/examples2/NotebookExample.js +19 -0
  247. package/lib/examples2/NotebookMutationsKernel.d.ts +2 -0
  248. package/lib/examples2/NotebookMutationsKernel.js +105 -0
  249. package/lib/examples2/NotebookMutationsServiceManager.d.ts +2 -0
  250. package/lib/examples2/NotebookMutationsServiceManager.js +109 -0
  251. package/lib/examples2/ReactRouterExample.d.ts +6 -0
  252. package/lib/examples2/ReactRouterExample.js +175 -0
  253. package/lib/examples2/example-selector.d.ts +22 -0
  254. package/lib/examples2/example-selector.js +45 -0
  255. package/lib/examples2/index.d.ts +2 -0
  256. package/lib/examples2/index.js +6 -0
  257. package/lib/examples2/lexical-theme.css +436 -0
  258. package/lib/examples2/main.d.ts +2 -0
  259. package/lib/examples2/main.js +330 -0
  260. package/lib/examples2/notebooks/IPyWidgetsExample.ipynb.json +101 -0
  261. package/lib/examples2/notebooks/IPyWidgetsExampleWithState.ipynb.json +112 -0
  262. package/lib/examples2/notebooks/Lite.ipynb.json +128 -0
  263. package/lib/examples2/notebooks/Matplotlib.ipynb.json +137 -0
  264. package/lib/examples2/notebooks/NotebookExample1.ipynb.json +126 -0
  265. package/lib/examples2/notebooks/NotebookExample2.ipynb.json +48 -0
  266. package/lib/examples2/notebooks/NotebookOutputs.ipynb.json +49 -0
  267. package/lib/examples2/notebooks/NotebookToCExample.ipynb.json +102 -0
  268. package/lib/examples2/notebooks/OutputIPyWidgetsExample.d.ts +145 -0
  269. package/lib/examples2/notebooks/OutputIPyWidgetsExample.js +153 -0
  270. package/lib/examples2/notebooks/PyGWalker.ipynb.json +55 -0
  271. package/lib/hooks/index.d.ts +9 -1
  272. package/lib/hooks/index.js +13 -1
  273. package/lib/hooks/useAIAgentsWebSocket.d.ts +1 -1
  274. package/lib/hooks/useAIAgentsWebSocket.js +39 -3
  275. package/lib/hooks/useAgentRuntimes.d.ts +15 -3
  276. package/lib/hooks/useAgentRuntimes.js +186 -27
  277. package/lib/hooks/useAgentsService.js +5 -5
  278. package/lib/hooks/useCellOutputshot.d.ts +4 -0
  279. package/lib/hooks/useCellOutputshot.js +25 -0
  280. package/lib/hooks/useCheckpoints.d.ts +8 -8
  281. package/lib/hooks/useCheckpoints.js +36 -26
  282. package/lib/hooks/useConfig.d.ts +1 -1
  283. package/lib/hooks/useMonitoring.d.ts +7 -5
  284. package/lib/hooks/useMonitoring.js +16 -10
  285. package/lib/hooks/useNotifications.d.ts +11 -11
  286. package/lib/hooks/useNotifications.js +1 -1
  287. package/lib/hooks/useProgressStore.d.ts +25 -0
  288. package/lib/hooks/useProgressStore.js +58 -0
  289. package/lib/hooks/useProgressTask.d.ts +9 -0
  290. package/lib/hooks/useProgressTask.js +41 -0
  291. package/lib/hooks/useProjects.d.ts +628 -0
  292. package/lib/hooks/useProjects.js +190 -0
  293. package/lib/hooks/useRuntimes.d.ts +5 -0
  294. package/lib/hooks/useRuntimes.js +34 -0
  295. package/lib/hooks/useToolApprovals.d.ts +6 -6
  296. package/lib/index.d.ts +1 -0
  297. package/lib/index.js +1 -0
  298. package/lib/jupyter/exec/Python.d.ts +5 -0
  299. package/lib/jupyter/exec/Python.js +100 -0
  300. package/lib/jupyter/exec/Snippets.d.ts +105 -0
  301. package/lib/jupyter/exec/Snippets.js +101 -0
  302. package/lib/jupyter/exec/index.d.ts +2 -0
  303. package/lib/jupyter/exec/index.js +6 -0
  304. package/lib/jupyter/index.d.ts +2 -0
  305. package/lib/jupyter/index.js +6 -0
  306. package/lib/jupyter/kernelsHandler.d.ts +8 -0
  307. package/lib/jupyter/kernelsHandler.js +39 -0
  308. package/lib/mocks/models/CourseMock.d.ts +6 -0
  309. package/lib/mocks/models/CourseMock.js +29 -0
  310. package/lib/mocks/models/SpaceMock.d.ts +6 -0
  311. package/lib/mocks/models/SpaceMock.js +25 -0
  312. package/lib/models/Assignment.d.ts +7 -0
  313. package/lib/models/Assignment.js +5 -0
  314. package/lib/models/Cell.d.ts +8 -0
  315. package/lib/models/Cell.js +5 -0
  316. package/lib/models/CodeBlock.d.ts +10 -0
  317. package/lib/models/CodeBlock.js +5 -0
  318. package/lib/models/CodeSandboxSnapshot.d.ts +92 -0
  319. package/lib/models/CodeSandboxSnapshot.js +13 -0
  320. package/lib/models/CodeSandboxSnapshotDTO.d.ts +173 -0
  321. package/lib/models/CodeSandboxSnapshotDTO.js +139 -0
  322. package/lib/models/CodefeedBlocks.d.ts +7 -0
  323. package/lib/models/CodefeedBlocks.js +5 -0
  324. package/lib/models/Content.d.ts +5 -0
  325. package/lib/models/Content.js +5 -0
  326. package/lib/models/Course.d.ts +17 -0
  327. package/lib/models/Course.js +5 -0
  328. package/lib/models/Dataset.d.ts +16 -0
  329. package/lib/models/Dataset.js +5 -0
  330. package/lib/models/Document.d.ts +8 -0
  331. package/lib/models/Document.js +5 -0
  332. package/lib/models/Environment.d.ts +86 -0
  333. package/lib/models/Environment.js +5 -0
  334. package/lib/models/EnvironmentDTO.d.ts +125 -0
  335. package/lib/models/EnvironmentDTO.js +88 -0
  336. package/lib/models/Exercise.d.ts +16 -0
  337. package/lib/models/Exercise.js +5 -0
  338. package/lib/models/Item.d.ts +20 -0
  339. package/lib/models/Item.js +5 -0
  340. package/lib/models/ItemDTO.d.ts +74 -0
  341. package/lib/models/ItemDTO.js +186 -0
  342. package/lib/models/ItemType.d.ts +2 -0
  343. package/lib/models/ItemType.js +5 -0
  344. package/lib/models/Lesson.d.ts +5 -0
  345. package/lib/models/Lesson.js +5 -0
  346. package/lib/models/LexicalDTO.d.ts +155 -0
  347. package/lib/models/LexicalDTO.js +157 -0
  348. package/lib/models/Library.d.ts +10 -0
  349. package/lib/models/Library.js +5 -0
  350. package/lib/models/Notebook.d.ts +11 -0
  351. package/lib/models/Notebook.js +5 -0
  352. package/lib/models/NotebookDTO.d.ts +96 -0
  353. package/lib/models/NotebookDTO.js +153 -0
  354. package/lib/models/Page.d.ts +41 -0
  355. package/lib/models/Page.js +25 -0
  356. package/lib/models/PageTag.d.ts +19 -0
  357. package/lib/models/PageTag.js +94 -0
  358. package/lib/models/ProjectDTO.d.ts +89 -0
  359. package/lib/models/ProjectDTO.js +131 -0
  360. package/lib/models/Runtime.d.ts +160 -0
  361. package/lib/models/Runtime.js +18 -0
  362. package/lib/models/RuntimeDTO.d.ts +172 -0
  363. package/lib/models/RuntimeDTO.js +204 -0
  364. package/lib/models/Space.d.ts +35 -0
  365. package/lib/models/Space.js +66 -0
  366. package/lib/models/SpaceDTO.d.ts +334 -0
  367. package/lib/models/SpaceDTO.js +244 -0
  368. package/lib/models/SpaceItem.d.ts +10 -0
  369. package/lib/models/SpaceItem.js +5 -0
  370. package/lib/models/SpaceMember.d.ts +6 -0
  371. package/lib/models/SpaceMember.js +5 -0
  372. package/lib/models/StudentItem.d.ts +21 -0
  373. package/lib/models/StudentItem.js +5 -0
  374. package/lib/models/index.d.ts +32 -0
  375. package/lib/models/index.js +39 -0
  376. package/lib/protocols/AGUIAdapter.js +1 -1
  377. package/lib/runtimes/actions.d.ts +102 -0
  378. package/lib/runtimes/actions.js +249 -0
  379. package/lib/runtimes/apis.d.ts +273 -0
  380. package/lib/runtimes/apis.js +5 -0
  381. package/lib/runtimes/index.d.ts +5 -0
  382. package/lib/runtimes/index.js +9 -0
  383. package/lib/runtimes/settings.d.ts +15 -0
  384. package/lib/runtimes/settings.js +31 -0
  385. package/lib/runtimes/snapshots.d.ts +25 -0
  386. package/lib/runtimes/snapshots.js +150 -0
  387. package/lib/runtimes/utils.d.ts +7 -0
  388. package/lib/runtimes/utils.js +14 -0
  389. package/lib/services/DatalayerServiceManager.d.ts +23 -0
  390. package/lib/services/DatalayerServiceManager.js +90 -0
  391. package/lib/services/reconnectToRuntime.d.ts +32 -0
  392. package/lib/services/reconnectToRuntime.js +59 -0
  393. package/lib/services/sandboxServiceManagers.d.ts +31 -0
  394. package/lib/services/sandboxServiceManagers.js +57 -0
  395. package/lib/specs/agents/agents.d.ts +78 -26
  396. package/lib/specs/agents/agents.js +4434 -1639
  397. package/lib/specs/index.d.ts +1 -0
  398. package/lib/specs/index.js +1 -0
  399. package/lib/specs/loops.d.ts +34 -0
  400. package/lib/specs/loops.js +188 -0
  401. package/lib/specs/mcpServers.d.ts +1 -0
  402. package/lib/specs/mcpServers.js +17 -0
  403. package/lib/specs/models.d.ts +4 -0
  404. package/lib/specs/models.js +30 -0
  405. package/lib/specs/skills.d.ts +1 -0
  406. package/lib/specs/skills.js +18 -0
  407. package/lib/specs/tools.d.ts +15 -0
  408. package/lib/specs/tools.js +285 -0
  409. package/lib/state/index.d.ts +4 -0
  410. package/lib/state/index.js +10 -0
  411. package/lib/state/substates/CellState.d.ts +12 -0
  412. package/lib/state/substates/CellState.js +22 -0
  413. package/lib/state/substates/DocumentState.d.ts +10 -0
  414. package/lib/state/substates/DocumentState.js +14 -0
  415. package/lib/state/substates/GradeState.d.ts +10 -0
  416. package/lib/state/substates/GradeState.js +14 -0
  417. package/lib/state/substates/JupyterLabState.d.ts +16 -0
  418. package/lib/state/substates/JupyterLabState.js +17 -0
  419. package/lib/state/substates/NbformatState.d.ts +13 -0
  420. package/lib/state/substates/NbformatState.js +16 -0
  421. package/lib/state/substates/RuntimesState.d.ts +87 -0
  422. package/lib/state/substates/RuntimesState.js +192 -0
  423. package/lib/state/substates/SpaceState.d.ts +11 -0
  424. package/lib/state/substates/SpaceState.js +16 -0
  425. package/lib/state/substates/index.d.ts +8 -0
  426. package/lib/state/substates/index.js +14 -0
  427. package/lib/stores/agentRuntimeStore.d.ts +25 -2
  428. package/lib/stores/agentRuntimeStore.js +114 -19
  429. package/lib/stories/Button.stories.d.ts +1 -1
  430. package/lib/stories/Header.stories.d.ts +3 -3
  431. package/lib/test-setup.js +10 -0
  432. package/lib/types/agents-lifecycle.d.ts +5 -5
  433. package/lib/types/agents.d.ts +3 -3
  434. package/lib/types/agentspecs.d.ts +4 -2
  435. package/lib/types/chat.d.ts +135 -3
  436. package/lib/types/config.d.ts +19 -1
  437. package/lib/types/index.d.ts +1 -0
  438. package/lib/types/index.js +1 -0
  439. package/lib/types/loops.d.ts +64 -0
  440. package/lib/types/loops.js +5 -0
  441. package/lib/types/tools.d.ts +16 -0
  442. package/lib/utils/Cells.d.ts +2 -0
  443. package/lib/utils/Cells.js +28 -0
  444. package/package.json +24 -18
  445. package/scripts/codegen/__pycache__/generate_sandbox_agents.cpython-313.pyc +0 -0
  446. package/scripts/codegen/__pycache__/versioning.cpython-313.pyc +0 -0
  447. package/scripts/codegen/generate_agents.py +21 -4
  448. package/scripts/codegen/generate_loops.py +443 -0
  449. package/scripts/codegen/generate_sandbox_agents.py +145 -0
  450. package/lib/examples/A2UiComponentGalleryExample.d.ts +0 -3
  451. package/lib/examples/A2UiComponentGalleryExample.js +0 -361
  452. /package/lib/{agent-lexical-main.d.ts → agent-document-main.d.ts} +0 -0
@@ -0,0 +1,443 @@
1
+ #!/usr/bin/env python3
2
+ # Copyright (c) 2025-2026 Datalayer, Inc.
3
+ # Distributed under the terms of the Modified BSD License.
4
+
5
+ """
6
+ Generate Python and TypeScript code from YAML loop specifications.
7
+
8
+ A *loop* describes how an agent progresses from one decision to the next: the
9
+ control cycle (observe/think/act/evaluate), the objective it works toward, the
10
+ constraints and success criteria that bound it, where state lives between
11
+ iterations, how the human participates, and when the loop terminates.
12
+
13
+ Usage:
14
+ python generate_loops.py \\
15
+ --specs-dir agentspecs/agentspecs/loops \\
16
+ --python-output agent_runtimes/specs/loops.py \\
17
+ --typescript-output src/specs/loops.ts
18
+ """
19
+
20
+ import argparse
21
+ import sys
22
+ from pathlib import Path
23
+ from typing import Any
24
+
25
+ import yaml
26
+ from versioning import ensure_spec_version, version_suffix
27
+
28
+
29
+ def _make_const_name(loop_id: str) -> str:
30
+ """Convert a loop ID to a constant name (e.g., 'ooda' -> 'OODA_LOOP')."""
31
+ return f"{loop_id.upper().replace('-', '_')}_LOOP"
32
+
33
+
34
+ def _make_enum_name(loop_id: str) -> str:
35
+ """Convert a loop ID to an enum member name (e.g., 'data-analysis' -> 'DATA_ANALYSIS')."""
36
+ return loop_id.upper().replace("-", "_")
37
+
38
+
39
+ def _clean(text: str) -> str:
40
+ """Collapse whitespace in a multi-line YAML string."""
41
+ return " ".join(str(text or "").split()).strip()
42
+
43
+
44
+ def _py_str(text: str) -> str:
45
+ """Format a Python double-quoted string literal."""
46
+ return '"' + _clean(text).replace("\\", "\\\\").replace('"', '\\"') + '"'
47
+
48
+
49
+ def _py_list(items: list) -> str:
50
+ """Format a Python list of strings."""
51
+ if not items:
52
+ return "[]"
53
+ return "[" + ", ".join(_py_str(item) for item in items) + "]"
54
+
55
+
56
+ def _ts_str(text: str) -> str:
57
+ """Format a TypeScript single-quoted string literal."""
58
+ return "'" + _clean(text).replace("\\", "\\\\").replace("'", "\\'") + "'"
59
+
60
+
61
+ def _ts_list(items: list) -> str:
62
+ """Format a TypeScript list of strings."""
63
+ if not items:
64
+ return "[]"
65
+ return "[" + ", ".join(_ts_str(item) for item in items) + "]"
66
+
67
+
68
+ def load_loop_specs(specs_dir: Path) -> list[dict[str, Any]]:
69
+ """Load all loop YAML specifications from a directory."""
70
+ specs = []
71
+ for yaml_file in sorted(specs_dir.glob("*.yaml")):
72
+ with open(yaml_file) as f:
73
+ spec = yaml.safe_load(f)
74
+ ensure_spec_version(spec)
75
+ specs.append(spec)
76
+ return specs
77
+
78
+
79
+ def generate_python_code(specs: list[dict[str, Any]]) -> str:
80
+ """Generate Python code from loop specifications."""
81
+ lines = [
82
+ "# Copyright (c) 2025-2026 Datalayer, Inc.",
83
+ "# Distributed under the terms of the Modified BSD License.",
84
+ '"""',
85
+ "Loop Catalog.",
86
+ "",
87
+ "Predefined agent execution-loop specifications that can be used by agents.",
88
+ "",
89
+ "This file is AUTO-GENERATED from YAML specifications.",
90
+ "DO NOT EDIT MANUALLY - run 'make specs' to regenerate.",
91
+ '"""',
92
+ "",
93
+ "from enum import Enum",
94
+ "from typing import Optional",
95
+ "",
96
+ "from agent_runtimes.types import LoopHuman, LoopSpec, LoopTermination",
97
+ "",
98
+ "",
99
+ "# " + "=" * 76,
100
+ "# Loops Enum",
101
+ "# " + "=" * 76,
102
+ "",
103
+ "",
104
+ "class Loops(str, Enum):",
105
+ ' """Enumeration of available agent execution loops."""',
106
+ "",
107
+ ]
108
+
109
+ for spec in specs:
110
+ lines.append(f' {_make_enum_name(spec["id"])} = "{spec["id"]}"')
111
+
112
+ lines.extend(
113
+ [
114
+ "",
115
+ "",
116
+ "# " + "=" * 76,
117
+ "# Loop Definitions",
118
+ "# " + "=" * 76,
119
+ "",
120
+ ]
121
+ )
122
+
123
+ for spec in specs:
124
+ version = spec["version"]
125
+ const_name = _make_const_name(spec["id"]) + version_suffix(version)
126
+
127
+ lines.append(f"{const_name} = LoopSpec(")
128
+ lines.append(f' id="{spec["id"]}",')
129
+ lines.append(f' version="{version}",')
130
+ lines.append(f' name="{spec["name"]}",')
131
+ lines.append(f" description={_py_str(spec.get('description', ''))},")
132
+ lines.append(f" objective={_py_str(spec.get('objective', ''))},")
133
+ lines.append(
134
+ f" strategy={_py_str(spec.get('strategy', 'observe-think-act-evaluate'))},"
135
+ )
136
+ lines.append(f" phases={_py_list(spec.get('phases', []))},")
137
+ lines.append(f" constraints={_py_list(spec.get('constraints', []))},")
138
+
139
+ term = spec.get("termination")
140
+ if term:
141
+ lines.append(" termination=LoopTermination(")
142
+ lines.append(
143
+ f" max_iterations={int(term.get('max_iterations', 10))},"
144
+ )
145
+ lines.append(
146
+ f" success_criteria={_py_list(term.get('success_criteria', []))},"
147
+ )
148
+ lines.append(
149
+ f" failure_criteria={_py_list(term.get('failure_criteria', []))},"
150
+ )
151
+ lines.append(
152
+ f" on_blocked={_py_str(term.get('on_blocked', 'ask-human'))},"
153
+ )
154
+ lines.append(" ),")
155
+
156
+ human = spec.get("human")
157
+ if human:
158
+ lines.append(" human=LoopHuman(")
159
+ lines.append(f" mode={_py_str(human.get('mode', 'initiate'))},")
160
+ lines.append(
161
+ f" approval_required={bool(human.get('approval_required', False))},"
162
+ )
163
+ lines.append(
164
+ f" approval_for={_py_list(human.get('approval_for', []))},"
165
+ )
166
+ lines.append(
167
+ f" description={_py_str(human.get('description', ''))},"
168
+ )
169
+ lines.append(" ),")
170
+
171
+ lines.append(f" state_backends={_py_list(spec.get('state_backends', []))},")
172
+ lines.append(f" tags={_py_list(spec.get('tags', []))},")
173
+ lines.append(f" icon={_py_str(spec.get('icon', 'sync'))},")
174
+ lines.append(f" emoji={_py_str(spec.get('emoji', '🔄'))},")
175
+ lines.append(")")
176
+ lines.append("")
177
+
178
+ lines.extend(
179
+ [
180
+ "",
181
+ "# " + "=" * 76,
182
+ "# Loop Catalog",
183
+ "# " + "=" * 76,
184
+ "",
185
+ "LOOP_CATALOGUE: dict[str, LoopSpec] = {",
186
+ ]
187
+ )
188
+
189
+ for spec in specs:
190
+ const_name = _make_const_name(spec["id"]) + version_suffix(spec["version"])
191
+ lines.append(f' "{spec["id"]}": {const_name},')
192
+
193
+ lines.extend(
194
+ [
195
+ "}",
196
+ "",
197
+ "",
198
+ 'DEFAULT_LOOP: str = "data-analysis"',
199
+ "",
200
+ "",
201
+ "def get_loop(loop_id: str) -> Optional[LoopSpec]:",
202
+ ' """',
203
+ " Get a loop specification by ID (accepts both bare and versioned refs).",
204
+ "",
205
+ " Args:",
206
+ " loop_id: The unique identifier of the loop.",
207
+ "",
208
+ " Returns:",
209
+ " The LoopSpec, or None if not found.",
210
+ ' """',
211
+ " loop = LOOP_CATALOGUE.get(loop_id)",
212
+ " if loop is not None:",
213
+ " return loop",
214
+ " base, _, ver = loop_id.rpartition(':')",
215
+ " if base and '.' in ver:",
216
+ " return LOOP_CATALOGUE.get(base)",
217
+ " return None",
218
+ "",
219
+ "",
220
+ "def get_default_loop() -> Optional[LoopSpec]:",
221
+ ' """',
222
+ " Get the default loop.",
223
+ "",
224
+ " Returns:",
225
+ " The default LoopSpec, or None if no default is set.",
226
+ ' """',
227
+ " return LOOP_CATALOGUE.get(DEFAULT_LOOP)",
228
+ "",
229
+ "",
230
+ "def list_loops() -> list[LoopSpec]:",
231
+ ' """',
232
+ " List all available loops.",
233
+ "",
234
+ " Returns:",
235
+ " List of all LoopSpec specifications.",
236
+ ' """',
237
+ " return list(LOOP_CATALOGUE.values())",
238
+ "",
239
+ ]
240
+ )
241
+
242
+ return "\n".join(lines)
243
+
244
+
245
+ def generate_typescript_code(specs: list[dict[str, Any]]) -> str:
246
+ """Generate TypeScript code from loop specifications."""
247
+ lines = [
248
+ "/*",
249
+ " * Copyright (c) 2025-2026 Datalayer, Inc.",
250
+ " * Distributed under the terms of the Modified BSD License.",
251
+ " */",
252
+ "",
253
+ "/**",
254
+ " * Loop Catalog",
255
+ " *",
256
+ " * Predefined agent execution-loop specifications.",
257
+ " *",
258
+ " * This file is AUTO-GENERATED from YAML specifications.",
259
+ " * DO NOT EDIT MANUALLY - run 'make specs' to regenerate.",
260
+ " */",
261
+ "",
262
+ "import type { LoopSpec } from '../types';",
263
+ "",
264
+ "// " + "=" * 76,
265
+ "// Loops Enum",
266
+ "// " + "=" * 76,
267
+ "",
268
+ "export const Loops = {",
269
+ ]
270
+
271
+ for spec in specs:
272
+ lines.append(f" {_make_enum_name(spec['id'])}: '{spec['id']}',")
273
+
274
+ lines.extend(
275
+ [
276
+ "} as const;",
277
+ "",
278
+ "export type LoopId = (typeof Loops)[keyof typeof Loops];",
279
+ "",
280
+ "// " + "=" * 76,
281
+ "// Loop Definitions",
282
+ "// " + "=" * 76,
283
+ "",
284
+ ]
285
+ )
286
+
287
+ for spec in specs:
288
+ version = spec["version"]
289
+ const_name = _make_const_name(spec["id"]) + version_suffix(version)
290
+
291
+ lines.append(f"export const {const_name}: LoopSpec = {{")
292
+ lines.append(f" id: '{spec['id']}',")
293
+ lines.append(f" version: '{version}',")
294
+ lines.append(f" name: {_ts_str(spec['name'])},")
295
+ lines.append(f" description: {_ts_str(spec.get('description', ''))},")
296
+ lines.append(f" objective: {_ts_str(spec.get('objective', ''))},")
297
+ lines.append(
298
+ f" strategy: {_ts_str(spec.get('strategy', 'observe-think-act-evaluate'))},"
299
+ )
300
+ lines.append(f" phases: {_ts_list(spec.get('phases', []))},")
301
+ lines.append(f" constraints: {_ts_list(spec.get('constraints', []))},")
302
+
303
+ term = spec.get("termination")
304
+ if term:
305
+ lines.append(" termination: {")
306
+ lines.append(f" maxIterations: {int(term.get('max_iterations', 10))},")
307
+ lines.append(
308
+ f" successCriteria: {_ts_list(term.get('success_criteria', []))},"
309
+ )
310
+ lines.append(
311
+ f" failureCriteria: {_ts_list(term.get('failure_criteria', []))},"
312
+ )
313
+ lines.append(
314
+ f" onBlocked: {_ts_str(term.get('on_blocked', 'ask-human'))},"
315
+ )
316
+ lines.append(" },")
317
+
318
+ human = spec.get("human")
319
+ if human:
320
+ lines.append(" human: {")
321
+ lines.append(f" mode: {_ts_str(human.get('mode', 'initiate'))},")
322
+ lines.append(
323
+ f" approvalRequired: {str(bool(human.get('approval_required', False))).lower()},"
324
+ )
325
+ lines.append(f" approvalFor: {_ts_list(human.get('approval_for', []))},")
326
+ lines.append(f" description: {_ts_str(human.get('description', ''))},")
327
+ lines.append(" },")
328
+
329
+ lines.append(f" stateBackends: {_ts_list(spec.get('state_backends', []))},")
330
+ lines.append(f" tags: {_ts_list(spec.get('tags', []))},")
331
+ lines.append(f" icon: {_ts_str(spec.get('icon', 'sync'))},")
332
+ lines.append(f" emoji: {_ts_str(spec.get('emoji', '🔄'))},")
333
+ lines.append("};")
334
+ lines.append("")
335
+
336
+ lines.extend(
337
+ [
338
+ "// " + "=" * 76,
339
+ "// Loop Catalog",
340
+ "// " + "=" * 76,
341
+ "",
342
+ "export const LOOP_CATALOGUE: Record<string, LoopSpec> = {",
343
+ ]
344
+ )
345
+
346
+ for spec in specs:
347
+ const_name = _make_const_name(spec["id"]) + version_suffix(spec["version"])
348
+ lines.append(f" '{spec['id']}': {const_name},")
349
+
350
+ lines.extend(
351
+ [
352
+ "};",
353
+ "",
354
+ "export const DEFAULT_LOOP: LoopId = Loops.DATA_ANALYSIS;",
355
+ "",
356
+ "function resolveLoopId(loopId: string): string {",
357
+ " if (loopId in LOOP_CATALOGUE) return loopId;",
358
+ " const idx = loopId.lastIndexOf(':');",
359
+ " if (idx > 0) {",
360
+ " const base = loopId.slice(0, idx);",
361
+ " if (base in LOOP_CATALOGUE) return base;",
362
+ " }",
363
+ " return loopId;",
364
+ "}",
365
+ "",
366
+ "/**",
367
+ " * Get a loop specification by ID.",
368
+ " */",
369
+ "export function getLoop(loopId: string): LoopSpec | undefined {",
370
+ " return LOOP_CATALOGUE[resolveLoopId(loopId)];",
371
+ "}",
372
+ "",
373
+ "/**",
374
+ " * Get the default loop.",
375
+ " */",
376
+ "export function getDefaultLoop(): LoopSpec | undefined {",
377
+ " return LOOP_CATALOGUE[DEFAULT_LOOP];",
378
+ "}",
379
+ "",
380
+ "/**",
381
+ " * List all available loops.",
382
+ " */",
383
+ "export function listLoops(): LoopSpec[] {",
384
+ " return Object.values(LOOP_CATALOGUE);",
385
+ "}",
386
+ "",
387
+ ]
388
+ )
389
+
390
+ return "\n".join(lines)
391
+
392
+
393
+ def main():
394
+ """Main entry point."""
395
+ parser = argparse.ArgumentParser(
396
+ description="Generate Python and TypeScript code from YAML loop specifications"
397
+ )
398
+ parser.add_argument(
399
+ "--specs-dir",
400
+ type=Path,
401
+ required=True,
402
+ help="Directory containing YAML loop specification files",
403
+ )
404
+ parser.add_argument(
405
+ "--python-output",
406
+ type=Path,
407
+ required=True,
408
+ help="Output path for generated Python file",
409
+ )
410
+ parser.add_argument(
411
+ "--typescript-output",
412
+ type=Path,
413
+ required=True,
414
+ help="Output path for generated TypeScript file",
415
+ )
416
+
417
+ args = parser.parse_args()
418
+
419
+ if not args.specs_dir.exists():
420
+ print(f"Error: Specs directory does not exist: {args.specs_dir}")
421
+ sys.exit(1)
422
+
423
+ print(f"Loading loop specs from {args.specs_dir}...")
424
+ specs = load_loop_specs(args.specs_dir)
425
+ print(f"Loaded {len(specs)} loop specifications")
426
+
427
+ print("Generating Python code...")
428
+ python_code = generate_python_code(specs)
429
+ args.python_output.parent.mkdir(parents=True, exist_ok=True)
430
+ args.python_output.write_text(python_code)
431
+ print(f"✓ Generated {args.python_output}")
432
+
433
+ print("Generating TypeScript code...")
434
+ typescript_code = generate_typescript_code(specs)
435
+ args.typescript_output.parent.mkdir(parents=True, exist_ok=True)
436
+ args.typescript_output.write_text(typescript_code)
437
+ print(f"✓ Generated {args.typescript_output}")
438
+
439
+ print(f"\n✓ Successfully generated code from {len(specs)} loop specs")
440
+
441
+
442
+ if __name__ == "__main__":
443
+ main()
@@ -0,0 +1,145 @@
1
+ #!/usr/bin/env python3
2
+ # Copyright (c) 2025-2026 Datalayer, Inc.
3
+ # Distributed under the terms of the Modified BSD License.
4
+
5
+ """Generate example sandbox agent specs for each sandbox variant.
6
+
7
+ This keeps sandbox demonstration specs aligned with supported sandbox variants
8
+ so examples can offer a consistent variant picker.
9
+ """
10
+
11
+ from __future__ import annotations
12
+
13
+ import argparse
14
+ from pathlib import Path
15
+
16
+ VARIANTS: tuple[str, ...] = (
17
+ "eval",
18
+ "jupyter",
19
+ "docker",
20
+ "datalayer",
21
+ "colab",
22
+ "kaggle",
23
+ "monty",
24
+ "modal",
25
+ )
26
+
27
+
28
+ def _emoji_for_variant(variant: str) -> str:
29
+ mapping = {
30
+ "eval": "A",
31
+ "jupyter": "B",
32
+ "docker": "C",
33
+ "datalayer": "D",
34
+ "colab": "E",
35
+ "kaggle": "H",
36
+ "monty": "F",
37
+ "modal": "G",
38
+ }
39
+ return mapping.get(variant, "A")
40
+
41
+
42
+ def _content_for_variant(variant: str) -> str:
43
+ variant_title = variant.capitalize()
44
+ spec_id = f"example-sandbox-{variant}"
45
+ emoji = _emoji_for_variant(variant)
46
+
47
+ return f"""# Copyright (c) 2025-2026 Datalayer, Inc.
48
+ # Distributed under the terms of the Modified BSD License.
49
+
50
+ # Agent Specification: Sandbox Variant ({variant})
51
+
52
+ id: {spec_id}
53
+ version: 0.0.1
54
+ name: Example Sandbox {variant_title} Agent
55
+ description: >-
56
+ Demonstration agent configured to run codemode code execution with the
57
+ '{variant}' sandbox variant.
58
+
59
+ tags:
60
+ - sandbox
61
+ - codemode
62
+ - {variant}
63
+
64
+ enabled: true
65
+ model: "bedrock:us.anthropic.claude-opus-4-8"
66
+
67
+ sandbox_variant: {variant}
68
+ memory: ephemeral
69
+
70
+ mcp_servers:
71
+ - tavily:0.0.1
72
+
73
+ skills:
74
+ - events:0.0.1
75
+
76
+ tools:
77
+ - runtime-echo:0.0.1
78
+
79
+ frontend_tools:
80
+ - jupyter-notebook:0.0.1
81
+ - lexical-document:0.0.1
82
+
83
+ environment_name: ai-agents-env
84
+
85
+ icon: package
86
+ emoji: "{emoji}"
87
+ color: "#1F6FEB"
88
+
89
+ suggestions:
90
+ - "Use execute_code to print('sandbox variant: {variant}')"
91
+ - "Use execute_code to compute sum(i*i for i in range(20))"
92
+ - "Use execute_code to load pandas and build a small DataFrame"
93
+
94
+ welcome_message: >-
95
+ You're connected to the {variant} sandbox variant demo. Ask me to run
96
+ Python code and I will use execute_code in codemode.
97
+
98
+ system_prompt: >-
99
+ You are a sandbox-variant demonstration assistant. Prefer executing
100
+ Python code via execute_code for computations, data checks, and quick
101
+ experiments, then summarize results clearly.
102
+
103
+ system_prompt_codemode_addons: >-
104
+ Always use execute_code when the user requests calculations, scripts,
105
+ DataFrame operations, package checks, or shell-style diagnostics.
106
+
107
+ codemode:
108
+ enabled: true
109
+ token_reduction: "~80%"
110
+ speedup: "~1.5x"
111
+
112
+ welcome_notebook: null
113
+ welcome_document: null
114
+ trigger: null
115
+ """
116
+
117
+
118
+ def generate_specs(agents_dir: Path) -> int:
119
+ agents_dir.mkdir(parents=True, exist_ok=True)
120
+ count = 0
121
+ for variant in VARIANTS:
122
+ path = agents_dir / f"example-sandbox-{variant}.yaml"
123
+ path.write_text(_content_for_variant(variant), encoding="utf-8")
124
+ count += 1
125
+ return count
126
+
127
+
128
+ def main() -> None:
129
+ parser = argparse.ArgumentParser(
130
+ description="Generate example sandbox agentspec files by sandbox variant."
131
+ )
132
+ parser.add_argument(
133
+ "--agents-dir",
134
+ type=Path,
135
+ required=True,
136
+ help="Path to agentspecs/agents directory.",
137
+ )
138
+ args = parser.parse_args()
139
+
140
+ generated = generate_specs(args.agents_dir)
141
+ print(f"Generated {generated} sandbox variant agentspec files in {args.agents_dir}")
142
+
143
+
144
+ if __name__ == "__main__":
145
+ main()
@@ -1,3 +0,0 @@
1
- import React from 'react';
2
- declare const A2UiComponentGalleryExample: React.FC;
3
- export default A2UiComponentGalleryExample;