@datalayer/agent-runtimes 1.0.3 → 1.0.5

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 (275) hide show
  1. package/README.md +35 -119
  2. package/lib/App.js +1 -1
  3. package/lib/agents/AgentDetails.d.ts +22 -1
  4. package/lib/agents/AgentDetails.js +34 -47
  5. package/lib/api/index.d.ts +0 -1
  6. package/lib/api/index.js +4 -2
  7. package/lib/chat/Chat.d.ts +5 -104
  8. package/lib/chat/Chat.js +4 -4
  9. package/lib/chat/ChatFloating.d.ts +7 -140
  10. package/lib/chat/ChatFloating.js +2 -2
  11. package/lib/chat/ChatPopupStandalone.d.ts +8 -47
  12. package/lib/chat/ChatPopupStandalone.js +3 -3
  13. package/lib/chat/ChatSidebar.d.ts +4 -69
  14. package/lib/chat/ChatSidebar.js +2 -2
  15. package/lib/chat/ChatStandalone.d.ts +4 -54
  16. package/lib/chat/ChatStandalone.js +3 -3
  17. package/lib/chat/base/ChatBase.js +1118 -141
  18. package/lib/chat/header/ChatHeaderBase.d.ts +11 -6
  19. package/lib/chat/header/ChatHeaderBase.js +18 -16
  20. package/lib/chat/indicators/McpStatusIndicator.d.ts +7 -4
  21. package/lib/chat/indicators/McpStatusIndicator.js +7 -32
  22. package/lib/chat/indicators/SandboxStatusIndicator.d.ts +4 -1
  23. package/lib/chat/indicators/SandboxStatusIndicator.js +9 -9
  24. package/lib/chat/indicators/SkillsStatusIndicator.d.ts +7 -0
  25. package/lib/chat/indicators/SkillsStatusIndicator.js +88 -0
  26. package/lib/chat/indicators/index.d.ts +1 -0
  27. package/lib/chat/indicators/index.js +1 -0
  28. package/lib/chat/messages/ChatMessageList.d.ts +1 -1
  29. package/lib/chat/messages/ChatMessageList.js +110 -102
  30. package/lib/chat/prompt/InputFooter.d.ts +19 -6
  31. package/lib/chat/prompt/InputFooter.js +71 -18
  32. package/lib/chat/prompt/InputPrompt.d.ts +3 -1
  33. package/lib/chat/prompt/InputPrompt.js +4 -4
  34. package/lib/chat/prompt/InputPromptFooter.js +1 -1
  35. package/lib/chat/prompt/InputPromptLexical.d.ts +3 -1
  36. package/lib/chat/prompt/InputPromptLexical.js +12 -5
  37. package/lib/chat/prompt/InputPromptText.d.ts +3 -1
  38. package/lib/chat/prompt/InputPromptText.js +2 -2
  39. package/lib/chat/tools/ToolApprovalBanner.js +1 -1
  40. package/lib/chat/tools/ToolCallDisplay.d.ts +3 -1
  41. package/lib/chat/tools/ToolCallDisplay.js +2 -2
  42. package/lib/chat/usage/TokenUsageBar.js +20 -2
  43. package/lib/client/AgentRuntimesClientContext.d.ts +53 -0
  44. package/lib/client/AgentRuntimesClientContext.js +55 -0
  45. package/lib/client/AgentsMixin.d.ts +48 -19
  46. package/lib/client/AgentsMixin.js +115 -30
  47. package/lib/client/IAgentRuntimesClient.d.ts +215 -0
  48. package/lib/client/IAgentRuntimesClient.js +5 -0
  49. package/lib/client/SdkAgentRuntimesClient.d.ts +151 -0
  50. package/lib/client/SdkAgentRuntimesClient.js +134 -0
  51. package/lib/client/index.d.ts +4 -1
  52. package/lib/client/index.js +3 -1
  53. package/lib/components/NotificationEventCard.js +55 -26
  54. package/lib/components/OutputCard.js +21 -7
  55. package/lib/components/ToolApprovalCard.js +20 -2
  56. package/lib/config/AgentConfiguration.js +3 -3
  57. package/lib/context/ContextDistribution.d.ts +3 -1
  58. package/lib/context/ContextDistribution.js +8 -27
  59. package/lib/context/ContextInspector.d.ts +3 -1
  60. package/lib/context/ContextInspector.js +19 -67
  61. package/lib/context/ContextPanel.d.ts +3 -1
  62. package/lib/context/ContextPanel.js +104 -64
  63. package/lib/context/ContextUsage.d.ts +3 -1
  64. package/lib/context/ContextUsage.js +3 -3
  65. package/lib/context/CostTracker.d.ts +9 -3
  66. package/lib/context/CostTracker.js +26 -47
  67. package/lib/context/CostUsageChart.d.ts +12 -0
  68. package/lib/context/CostUsageChart.js +378 -0
  69. package/lib/context/GraphFlowChart.d.ts +16 -0
  70. package/lib/context/GraphFlowChart.js +182 -0
  71. package/lib/context/TokenUsageChart.d.ts +8 -1
  72. package/lib/context/TokenUsageChart.js +349 -211
  73. package/lib/context/TurnGraphChart.d.ts +39 -0
  74. package/lib/context/TurnGraphChart.js +538 -0
  75. package/lib/context/otelWsPool.d.ts +20 -0
  76. package/lib/context/otelWsPool.js +69 -0
  77. package/lib/examples/A2UiComponentGalleryExample.d.ts +0 -17
  78. package/lib/examples/A2UiComponentGalleryExample.js +315 -522
  79. package/lib/examples/A2UiContactCardExample.d.ts +0 -18
  80. package/lib/examples/A2UiContactCardExample.js +154 -411
  81. package/lib/examples/A2UiRestaurantExample.d.ts +0 -30
  82. package/lib/examples/A2UiRestaurantExample.js +114 -212
  83. package/lib/examples/A2UiViewerExample.d.ts +0 -18
  84. package/lib/examples/A2UiViewerExample.js +283 -532
  85. package/lib/examples/AgUiBackendToolRenderingExample.js +1 -1
  86. package/lib/examples/AgUiHaikuGenUiExample.d.ts +1 -1
  87. package/lib/examples/AgUiHaikuGenUiExample.js +1 -1
  88. package/lib/examples/AgentCheckpointsExample.js +14 -34
  89. package/lib/examples/AgentCodemodeExample.d.ts +4 -6
  90. package/lib/examples/AgentCodemodeExample.js +591 -175
  91. package/lib/examples/AgentEvalsExample.js +13 -23
  92. package/lib/examples/AgentGuardrailsExample.js +371 -71
  93. package/lib/examples/AgentHooksExample.d.ts +3 -0
  94. package/lib/examples/AgentHooksExample.js +104 -0
  95. package/lib/examples/AgentMCPExample.d.ts +3 -0
  96. package/lib/examples/AgentMCPExample.js +480 -0
  97. package/lib/examples/AgentMemoryExample.js +14 -24
  98. package/lib/examples/AgentMonitoringExample.js +261 -206
  99. package/lib/examples/AgentNotificationsExample.js +50 -24
  100. package/lib/examples/AgentOtelExample.js +2 -3
  101. package/lib/examples/AgentOutputsExample.d.ts +11 -6
  102. package/lib/examples/AgentOutputsExample.js +383 -88
  103. package/lib/examples/AgentParametersExample.d.ts +3 -0
  104. package/lib/examples/AgentParametersExample.js +246 -0
  105. package/lib/examples/AgentSandboxExample.d.ts +2 -2
  106. package/lib/examples/AgentSandboxExample.js +69 -47
  107. package/lib/examples/AgentSkillsExample.js +92 -106
  108. package/lib/examples/{AgentspecExample.js → AgentSpecsExample.js} +10 -21
  109. package/lib/examples/AgentSubagentsExample.d.ts +14 -0
  110. package/lib/examples/AgentSubagentsExample.js +228 -0
  111. package/lib/examples/AgentToolApprovalsExample.js +30 -493
  112. package/lib/examples/AgentTriggersExample.js +1067 -246
  113. package/lib/examples/ChatCustomExample.js +11 -24
  114. package/lib/examples/ChatExample.js +9 -34
  115. package/lib/examples/CopilotKitLexicalExample.js +2 -1
  116. package/lib/examples/CopilotKitNotebookExample.js +2 -1
  117. package/lib/examples/HomeExample.d.ts +15 -0
  118. package/lib/examples/HomeExample.js +77 -0
  119. package/lib/examples/Lexical2Example.js +4 -2
  120. package/lib/examples/{LexicalExample.d.ts → LexicalAgentExample.d.ts} +4 -4
  121. package/lib/examples/{LexicalExample.js → LexicalAgentExample.js} +65 -16
  122. package/lib/examples/{LexicalSidebarExample.d.ts → LexicalAgentSidebarExample.d.ts} +5 -5
  123. package/lib/examples/LexicalAgentSidebarExample.js +261 -0
  124. package/lib/examples/NotebookAgentExample.d.ts +9 -0
  125. package/lib/examples/NotebookAgentExample.js +192 -0
  126. package/lib/examples/{NotebookSidebarExample.d.ts → NotebookAgentSidebarExample.d.ts} +2 -2
  127. package/lib/examples/NotebookAgentSidebarExample.js +221 -0
  128. package/lib/examples/{DatalayerNotebookExample.d.ts → NotebookCollaborationExample.d.ts} +4 -4
  129. package/lib/examples/{DatalayerNotebookExample.js → NotebookCollaborationExample.js} +3 -3
  130. package/lib/examples/NotebookExample.d.ts +4 -7
  131. package/lib/examples/NotebookExample.js +14 -146
  132. package/lib/examples/components/AuthRequiredView.d.ts +6 -0
  133. package/lib/examples/components/AuthRequiredView.js +33 -0
  134. package/lib/examples/components/ErrorView.d.ts +14 -0
  135. package/lib/examples/components/ErrorView.js +20 -0
  136. package/lib/examples/components/ExampleWrapper.d.ts +7 -0
  137. package/lib/examples/components/ExampleWrapper.js +25 -6
  138. package/lib/examples/{ag-ui → components}/haiku/HaikuDisplay.js +1 -1
  139. package/lib/examples/{ag-ui → components}/haiku/InlineHaikuCard.js +1 -1
  140. package/lib/examples/{ag-ui → components}/haiku/index.d.ts +1 -1
  141. package/lib/examples/{ag-ui → components}/haiku/index.js +1 -1
  142. package/lib/examples/components/index.d.ts +5 -0
  143. package/lib/examples/components/index.js +5 -0
  144. package/lib/examples/{ag-ui → components}/weather/index.d.ts +1 -1
  145. package/lib/examples/{ag-ui → components}/weather/index.js +1 -1
  146. package/lib/examples/example-selector.d.ts +17 -4
  147. package/lib/examples/example-selector.js +107 -41
  148. package/lib/examples/index.d.ts +9 -6
  149. package/lib/examples/index.js +9 -6
  150. package/lib/examples/main.d.ts +1 -0
  151. package/lib/examples/main.js +218 -27
  152. package/lib/examples/utils/a2ui.d.ts +18 -0
  153. package/lib/examples/utils/a2ui.js +69 -0
  154. package/lib/examples/utils/a2uiMarkdownProvider.d.ts +7 -0
  155. package/lib/examples/utils/a2uiMarkdownProvider.js +9 -0
  156. package/lib/examples/utils/agentId.d.ts +18 -0
  157. package/lib/examples/utils/agentId.js +54 -0
  158. package/lib/examples/utils/agents/earthquake-detector.json +11 -11
  159. package/lib/examples/utils/agents/sales-forecaster.json +11 -11
  160. package/lib/examples/utils/agents/social-post-generator.json +11 -11
  161. package/lib/examples/utils/agents/stock-market.json +11 -11
  162. package/lib/examples/utils/examplesStore.js +82 -27
  163. package/lib/hooks/index.d.ts +8 -8
  164. package/lib/hooks/index.js +7 -7
  165. package/lib/hooks/useA2A.d.ts +2 -3
  166. package/lib/hooks/useAIAgentsWebSocket.d.ts +43 -4
  167. package/lib/hooks/useAIAgentsWebSocket.js +118 -12
  168. package/lib/hooks/useAcp.d.ts +1 -2
  169. package/lib/hooks/useAgUi.d.ts +1 -1
  170. package/lib/hooks/{useAgents.d.ts → useAgentRuntimes.d.ts} +39 -2
  171. package/lib/hooks/{useAgents.js → useAgentRuntimes.js} +125 -15
  172. package/lib/hooks/useAgentsCatalog.js +1 -1
  173. package/lib/hooks/useAgentsService.d.ts +2 -2
  174. package/lib/hooks/useAgentsService.js +7 -7
  175. package/lib/hooks/useCheckpoints.js +1 -1
  176. package/lib/hooks/useConfig.d.ts +4 -1
  177. package/lib/hooks/useConfig.js +10 -3
  178. package/lib/hooks/useContextSnapshot.d.ts +9 -4
  179. package/lib/hooks/useContextSnapshot.js +9 -37
  180. package/lib/hooks/useMonitoring.js +3 -0
  181. package/lib/hooks/useSandbox.d.ts +20 -8
  182. package/lib/hooks/useSandbox.js +105 -40
  183. package/lib/hooks/useSkills.d.ts +23 -5
  184. package/lib/hooks/useSkills.js +94 -39
  185. package/lib/hooks/useToolApprovals.d.ts +60 -36
  186. package/lib/hooks/useToolApprovals.js +318 -69
  187. package/lib/hooks/useVercelAI.d.ts +1 -1
  188. package/lib/index.d.ts +2 -1
  189. package/lib/index.js +1 -0
  190. package/lib/inference/index.d.ts +0 -1
  191. package/lib/middleware/index.d.ts +0 -1
  192. package/lib/protocols/AGUIAdapter.js +6 -0
  193. package/lib/protocols/VercelAIAdapter.d.ts +9 -0
  194. package/lib/protocols/VercelAIAdapter.js +144 -26
  195. package/lib/shims/json5.d.ts +4 -0
  196. package/lib/shims/json5.js +8 -0
  197. package/lib/specs/agents/agents.d.ts +10 -0
  198. package/lib/specs/agents/agents.js +752 -24
  199. package/lib/specs/envvars.d.ts +1 -0
  200. package/lib/specs/envvars.js +11 -0
  201. package/lib/specs/events.d.ts +1 -0
  202. package/lib/specs/events.js +1 -0
  203. package/lib/specs/index.d.ts +1 -0
  204. package/lib/specs/index.js +1 -0
  205. package/lib/specs/personas.d.ts +41 -0
  206. package/lib/specs/personas.js +168 -0
  207. package/lib/specs/skills.d.ts +2 -1
  208. package/lib/specs/skills.js +23 -5
  209. package/lib/specs/tools.js +3 -0
  210. package/lib/stores/agentRuntimeStore.d.ts +204 -0
  211. package/lib/stores/agentRuntimeStore.js +636 -0
  212. package/lib/stores/index.d.ts +1 -1
  213. package/lib/stores/index.js +1 -1
  214. package/lib/tools/adapters/copilotkit/lexicalHooks.d.ts +1 -2
  215. package/lib/tools/adapters/copilotkit/lexicalHooks.js +1 -3
  216. package/lib/tools/adapters/copilotkit/notebookHooks.d.ts +1 -2
  217. package/lib/tools/adapters/copilotkit/notebookHooks.js +1 -3
  218. package/lib/tools/index.d.ts +0 -2
  219. package/lib/tools/index.js +0 -1
  220. package/lib/types/agentspecs.d.ts +50 -1
  221. package/lib/types/chat.d.ts +309 -8
  222. package/lib/types/context.d.ts +27 -0
  223. package/lib/types/cost.d.ts +2 -2
  224. package/lib/types/index.d.ts +2 -0
  225. package/lib/types/index.js +2 -0
  226. package/lib/types/mcp.d.ts +8 -0
  227. package/lib/types/models.d.ts +2 -2
  228. package/lib/types/personas.d.ts +25 -0
  229. package/lib/types/personas.js +5 -0
  230. package/lib/types/skills.d.ts +43 -1
  231. package/lib/types/stream.d.ts +110 -0
  232. package/lib/types/stream.js +36 -0
  233. package/lib/types/tools.d.ts +2 -0
  234. package/lib/utils/utils.d.ts +9 -5
  235. package/lib/utils/utils.js +9 -5
  236. package/package.json +13 -9
  237. package/scripts/codegen/__pycache__/generate_agents.cpython-313.pyc +0 -0
  238. package/scripts/codegen/__pycache__/generate_events.cpython-313.pyc +0 -0
  239. package/scripts/codegen/__pycache__/versioning.cpython-313.pyc +0 -0
  240. package/scripts/codegen/generate_agents.py +106 -7
  241. package/scripts/codegen/generate_events.py +47 -17
  242. package/scripts/codegen/generate_personas.py +319 -0
  243. package/scripts/codegen/generate_skills.py +9 -9
  244. package/scripts/codegen/generate_tools.py +20 -0
  245. package/scripts/sync-jupyter.sh +26 -7
  246. package/style/primer-primitives.css +1 -6
  247. package/lib/api/tool-approvals.d.ts +0 -62
  248. package/lib/api/tool-approvals.js +0 -145
  249. package/lib/examples/LexicalSidebarExample.js +0 -163
  250. package/lib/examples/NotebookSidebarExample.js +0 -119
  251. package/lib/examples/NotebookSimpleExample.d.ts +0 -6
  252. package/lib/examples/NotebookSimpleExample.js +0 -22
  253. package/lib/examples/ag-ui/index.d.ts +0 -10
  254. package/lib/examples/ag-ui/index.js +0 -16
  255. package/lib/hooks/useAgentsRegistry.d.ts +0 -10
  256. package/lib/hooks/useAgentsRegistry.js +0 -20
  257. package/lib/stores/agentsStore.d.ts +0 -123
  258. package/lib/stores/agentsStore.js +0 -270
  259. package/scripts/codegen/__pycache__/generate_envvars.cpython-313.pyc +0 -0
  260. package/scripts/codegen/__pycache__/generate_evals.cpython-313.pyc +0 -0
  261. package/scripts/codegen/__pycache__/generate_guardrails.cpython-313.pyc +0 -0
  262. package/scripts/codegen/__pycache__/generate_mcp_servers.cpython-313.pyc +0 -0
  263. package/scripts/codegen/__pycache__/generate_memory.cpython-313.pyc +0 -0
  264. package/scripts/codegen/__pycache__/generate_models.cpython-313.pyc +0 -0
  265. package/scripts/codegen/__pycache__/generate_notifications.cpython-313.pyc +0 -0
  266. package/scripts/codegen/__pycache__/generate_outputs.cpython-313.pyc +0 -0
  267. package/scripts/codegen/__pycache__/generate_skills.cpython-313.pyc +0 -0
  268. package/scripts/codegen/__pycache__/generate_teams.cpython-313.pyc +0 -0
  269. package/scripts/codegen/__pycache__/generate_tools.cpython-313.pyc +0 -0
  270. package/scripts/codegen/__pycache__/generate_triggers.cpython-313.pyc +0 -0
  271. /package/lib/examples/{AgentspecExample.d.ts → AgentSpecsExample.d.ts} +0 -0
  272. /package/lib/examples/{ag-ui → components}/haiku/HaikuDisplay.d.ts +0 -0
  273. /package/lib/examples/{ag-ui → components}/haiku/InlineHaikuCard.d.ts +0 -0
  274. /package/lib/examples/{ag-ui → components}/weather/InlineWeatherCard.d.ts +0 -0
  275. /package/lib/examples/{ag-ui → components}/weather/InlineWeatherCard.js +0 -0
@@ -3,7 +3,7 @@
3
3
  * Distributed under the terms of the Modified BSD License.
4
4
  */
5
5
  import { ALPHAVANTAGE_MCP_SERVER_0_0_1, CHART_MCP_SERVER_0_0_1, EARTHDATA_MCP_SERVER_0_0_1, EURUS_MCP_SERVER_0_0_1, FILESYSTEM_MCP_SERVER_0_0_1, GITHUB_MCP_SERVER_0_0_1, GOOGLE_WORKSPACE_MCP_SERVER_0_0_1, KAGGLE_MCP_SERVER_0_0_1, SALESFORCE_MCP_SERVER_0_0_1, SLACK_MCP_SERVER_0_0_1, TAVILY_MCP_SERVER_0_0_1, } from '../mcpServers';
6
- import { CRAWL_SKILL_SPEC_0_0_1, EVENTS_SKILL_SPEC_0_0_1, GITHUB_SKILL_SPEC_0_0_1, JOKES_SKILL_SPEC_0_0_1, PDF_SKILL_SPEC_0_0_1, TEXT_SUMMARIZER_SKILL_SPEC_0_0_1, } from '../skills';
6
+ import { CRAWL_SKILL_SPEC_0_0_1, DATALAYER_WHOAMI_SKILL_SPEC_0_0_1, EVENTS_SKILL_SPEC_0_0_1, GITHUB_SKILL_SPEC_0_0_1, JOKES_SKILL_SPEC_0_0_1, PDF_SKILL_SPEC_0_0_1, TEXT_SUMMARIZER_SKILL_SPEC_0_0_1, } from '../skills';
7
7
  import { RUNTIME_ECHO_TOOL_SPEC_0_0_1, RUNTIME_SEND_MAIL_TOOL_SPEC_0_0_1, RUNTIME_SENSITIVE_ECHO_TOOL_SPEC_0_0_1, } from '../tools';
8
8
  import { JUPYTER_NOTEBOOK_FRONTEND_TOOL_SPEC_0_0_1, LEXICAL_DOCUMENT_FRONTEND_TOOL_SPEC_0_0_1, } from '../frontendTools';
9
9
  // ============================================================================
@@ -39,6 +39,8 @@ const MCP_SERVER_MAP = {
39
39
  const SKILL_MAP = {
40
40
  'crawl:0.0.1': CRAWL_SKILL_SPEC_0_0_1,
41
41
  crawl: CRAWL_SKILL_SPEC_0_0_1,
42
+ 'datalayer-whoami:0.0.1': DATALAYER_WHOAMI_SKILL_SPEC_0_0_1,
43
+ 'datalayer-whoami': DATALAYER_WHOAMI_SKILL_SPEC_0_0_1,
42
44
  'events:0.0.1': EVENTS_SKILL_SPEC_0_0_1,
43
45
  events: EVENTS_SKILL_SPEC_0_0_1,
44
46
  'github:0.0.1': GITHUB_SKILL_SPEC_0_0_1,
@@ -98,7 +100,7 @@ export const ANALYZE_CAMPAIGN_PERFORMANCE_AGENT_SPEC_0_0_1 = {
98
100
  'social-media',
99
101
  ],
100
102
  enabled: false,
101
- model: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0',
103
+ model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
102
104
  mcpServers: [
103
105
  MCP_SERVER_MAP['filesystem:0.0.1'],
104
106
  MCP_SERVER_MAP['slack:0.0.1'],
@@ -202,6 +204,10 @@ export const ANALYZE_CAMPAIGN_PERFORMANCE_AGENT_SPEC_0_0_1 = {
202
204
  slack: '#campaign-analytics',
203
205
  },
204
206
  memory: 'ephemeral',
207
+ preHooks: undefined,
208
+ postHooks: undefined,
209
+ parameters: undefined,
210
+ subagents: undefined,
205
211
  };
206
212
  export const ANALYZE_SUPPORT_TICKETS_AGENT_SPEC_0_0_1 = {
207
213
  id: 'analyze-support-tickets',
@@ -210,7 +216,7 @@ export const ANALYZE_SUPPORT_TICKETS_AGENT_SPEC_0_0_1 = {
210
216
  description: `A multi-agent team that triages incoming support tickets, categorizes by urgency and topic, identifies recurring patterns, and generates resolution recommendations with escalation paths.`,
211
217
  tags: ['analytics', 'data', 'support', 'tickets'],
212
218
  enabled: false,
213
- model: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0',
219
+ model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
214
220
  mcpServers: [
215
221
  MCP_SERVER_MAP['filesystem:0.0.1'],
216
222
  MCP_SERVER_MAP['slack:0.0.1'],
@@ -291,6 +297,10 @@ export const ANALYZE_SUPPORT_TICKETS_AGENT_SPEC_0_0_1 = {
291
297
  slack: '#support-analysis',
292
298
  },
293
299
  memory: 'ephemeral',
300
+ preHooks: undefined,
301
+ postHooks: undefined,
302
+ parameters: undefined,
303
+ subagents: undefined,
294
304
  };
295
305
  export const AUDIT_INVENTORY_LEVELS_AGENT_SPEC_0_0_1 = {
296
306
  id: 'audit-inventory-levels',
@@ -299,7 +309,7 @@ export const AUDIT_INVENTORY_LEVELS_AGENT_SPEC_0_0_1 = {
299
309
  description: `A multi-agent team that monitors inventory levels across warehouses, detects discrepancies between physical and system counts, forecasts demand by SKU, and generates automated reorder recommendations.`,
300
310
  tags: ['finance', 'automation', 'inventory', 'supply-chain'],
301
311
  enabled: false,
302
- model: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0',
312
+ model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
303
313
  mcpServers: [
304
314
  MCP_SERVER_MAP['filesystem:0.0.1'],
305
315
  MCP_SERVER_MAP['slack:0.0.1'],
@@ -376,6 +386,10 @@ export const AUDIT_INVENTORY_LEVELS_AGENT_SPEC_0_0_1 = {
376
386
  authorizationPolicy: '',
377
387
  notifications: { email: 'linda.m@company.com', slack: '#inventory-ops' },
378
388
  memory: 'ephemeral',
389
+ preHooks: undefined,
390
+ postHooks: undefined,
391
+ parameters: undefined,
392
+ subagents: undefined,
379
393
  };
380
394
  export const AUTOMATE_REGULATORY_REPORTING_AGENT_SPEC_0_0_1 = {
381
395
  id: 'automate-regulatory-reporting',
@@ -384,7 +398,7 @@ export const AUTOMATE_REGULATORY_REPORTING_AGENT_SPEC_0_0_1 = {
384
398
  description: `A multi-agent team that automates end-to-end regulatory reporting for financial institutions. Ingests data from trading systems, risk engines, and accounting platforms, reconciles positions, computes risk metrics, validates against regulatory rules (Basel III/IV, MiFID II, SOX), and generates submission-ready compliance reports with full audit trails.`,
385
399
  tags: ['finance', 'compliance', 'regulatory', 'risk', 'banking', 'audit'],
386
400
  enabled: false,
387
- model: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0',
401
+ model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
388
402
  mcpServers: [
389
403
  MCP_SERVER_MAP['filesystem:0.0.1'],
390
404
  MCP_SERVER_MAP['slack:0.0.1'],
@@ -483,6 +497,10 @@ export const AUTOMATE_REGULATORY_REPORTING_AGENT_SPEC_0_0_1 = {
483
497
  slack: '#regulatory-reporting',
484
498
  },
485
499
  memory: 'ephemeral',
500
+ preHooks: undefined,
501
+ postHooks: undefined,
502
+ parameters: undefined,
503
+ subagents: undefined,
486
504
  };
487
505
  export const CLASSIFY_ROUTE_EMAILS_AGENT_SPEC_0_0_1 = {
488
506
  id: 'classify-route-emails',
@@ -491,7 +509,7 @@ export const CLASSIFY_ROUTE_EMAILS_AGENT_SPEC_0_0_1 = {
491
509
  description: `A generic email classification and routing agent. Analyzes incoming emails to determine intent (inquiry, complaint, order, support request), assigns priority (critical, high, medium, low), and routes to the appropriate department queue. Works across any industry with email-based workflows.`,
492
510
  tags: ['email', 'classification', 'routing', 'horizontal', 'automation'],
493
511
  enabled: false,
494
- model: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0',
512
+ model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
495
513
  mcpServers: [MCP_SERVER_MAP['slack:0.0.1']],
496
514
  skills: [
497
515
  toAgentSkillSpec(SKILL_MAP['github:0.0.1']),
@@ -573,6 +591,10 @@ export const CLASSIFY_ROUTE_EMAILS_AGENT_SPEC_0_0_1 = {
573
591
  authorizationPolicy: undefined,
574
592
  notifications: { slack: '#email-routing', email: 'ops@acme.com' },
575
593
  memory: 'ephemeral',
594
+ preHooks: undefined,
595
+ postHooks: undefined,
596
+ parameters: undefined,
597
+ subagents: undefined,
576
598
  };
577
599
  export const COMPREHENSIVE_SALES_ANALYTICS_AGENT_SPEC_0_0_1 = {
578
600
  id: 'comprehensive-sales-analytics',
@@ -581,7 +603,7 @@ export const COMPREHENSIVE_SALES_ANALYTICS_AGENT_SPEC_0_0_1 = {
581
603
  description: `A multi-agent team that replaces a single KPI monitor with four specialized agents: a Data Collector that pulls real-time CRM metrics, an Anomaly Detector that flags statistical outliers, a Trend Analyzer that identifies patterns and forecasts, and a Report Generator that compiles executive dashboards and sends alerts. Together they deliver deeper insights, faster detection, and richer reporting than any single agent could.`,
582
604
  tags: ['sales', 'analytics', 'kpi', 'monitoring', 'horizontal'],
583
605
  enabled: false,
584
- model: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0',
606
+ model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
585
607
  mcpServers: [
586
608
  MCP_SERVER_MAP['filesystem:0.0.1'],
587
609
  MCP_SERVER_MAP['slack:0.0.1'],
@@ -650,6 +672,10 @@ export const COMPREHENSIVE_SALES_ANALYTICS_AGENT_SPEC_0_0_1 = {
650
672
  authorizationPolicy: undefined,
651
673
  notifications: { slack: '#sales-analytics', email: 'leadership@acme.com' },
652
674
  memory: 'ephemeral',
675
+ preHooks: undefined,
676
+ postHooks: undefined,
677
+ parameters: undefined,
678
+ subagents: undefined,
653
679
  };
654
680
  export const CRAWLER_AGENT_SPEC_0_0_1 = {
655
681
  id: 'crawler',
@@ -718,6 +744,10 @@ export const CRAWLER_AGENT_SPEC_0_0_1 = {
718
744
  authorizationPolicy: undefined,
719
745
  notifications: undefined,
720
746
  memory: 'ephemeral',
747
+ preHooks: undefined,
748
+ postHooks: undefined,
749
+ parameters: undefined,
750
+ subagents: undefined,
721
751
  };
722
752
  export const DATA_ACQUISITION_AGENT_SPEC_0_0_1 = {
723
753
  id: 'data-acquisition',
@@ -790,18 +820,73 @@ export const DATA_ACQUISITION_AGENT_SPEC_0_0_1 = {
790
820
  authorizationPolicy: undefined,
791
821
  notifications: undefined,
792
822
  memory: 'ephemeral',
823
+ preHooks: undefined,
824
+ postHooks: undefined,
825
+ parameters: undefined,
826
+ subagents: undefined,
827
+ };
828
+ export const DATALAYER_AGENT_SPEC_0_0_1 = {
829
+ id: 'datalayer-agent',
830
+ version: '0.0.1',
831
+ name: 'Datalayer Agent',
832
+ description: `Datalayer-focused assistant that can inspect the authenticated user profile using datalayer-skills.`,
833
+ tags: ['datalayer', 'iam', 'profile', 'identity'],
834
+ enabled: false,
835
+ model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
836
+ mcpServers: [],
837
+ skills: [toAgentSkillSpec(SKILL_MAP['datalayer-whoami:0.0.1'])],
838
+ tools: [],
839
+ frontendTools: [
840
+ FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'],
841
+ FRONTEND_TOOL_MAP['lexical-document:0.0.1'],
842
+ ],
843
+ environmentName: 'ai-agents-env',
844
+ icon: 'person',
845
+ emoji: '👤',
846
+ color: '#14B8A6',
847
+ suggestions: [
848
+ 'Who am I on Datalayer?',
849
+ 'Show my Datalayer profile details',
850
+ 'What roles do I currently have in Datalayer?',
851
+ ],
852
+ welcomeMessage: "Hi! I'm the Datalayer Agent. I can help you retrieve and summarize your authenticated Datalayer profile.\n",
853
+ welcomeNotebook: undefined,
854
+ welcomeDocument: undefined,
855
+ sandboxVariant: 'jupyter',
856
+ systemPrompt: `You are a Datalayer assistant with access to the datalayer-whoami skill. Use it to retrieve the authenticated user's profile when requested. If DATALAYER_API_KEY is missing, clearly ask the user to configure it.
857
+ `,
858
+ systemPromptCodemodeAddons: undefined,
859
+ goal: undefined,
860
+ protocol: undefined,
861
+ uiExtension: undefined,
862
+ trigger: undefined,
863
+ modelConfig: undefined,
864
+ mcpServerTools: undefined,
865
+ guardrails: undefined,
866
+ evals: undefined,
867
+ codemode: undefined,
868
+ output: undefined,
869
+ advanced: undefined,
870
+ authorizationPolicy: undefined,
871
+ notifications: undefined,
872
+ memory: 'ephemeral',
873
+ preHooks: { packages: ['datalayer_skills>=0.1.0'] },
874
+ postHooks: undefined,
875
+ parameters: undefined,
876
+ subagents: undefined,
793
877
  };
794
878
  export const DEMO_FULL_AGENT_SPEC_0_0_1 = {
795
879
  id: 'demo-full',
796
880
  version: '0.0.1',
797
881
  name: 'Demo with MCP, Skills, Tool Approvals...',
798
- description: `A full-featured demonstration agent showcasing MCP servers (Tavily web search), skills (GitHub, PDF, crawl, events, text summarizer, jokes), human-in-the-loop tool approval, and frontend tools (Jupyter notebooks, Lexical documents).`,
882
+ description: `A full-featured demonstration agent showcasing MCP servers (Tavily web search), skills (GitHub, PDF, crawl, events, text summarizer, jokes, datalayer whoami), human-in-the-loop tool approval, and frontend tools (Jupyter notebooks, Lexical documents).`,
799
883
  tags: ['demo', 'approval', 'human-in-the-loop', 'utility'],
800
884
  enabled: true,
801
885
  model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
802
886
  mcpServers: [MCP_SERVER_MAP['tavily:0.0.1']],
803
887
  skills: [
804
888
  toAgentSkillSpec(SKILL_MAP['crawl:0.0.1']),
889
+ toAgentSkillSpec(SKILL_MAP['datalayer-whoami:0.0.1']),
805
890
  toAgentSkillSpec(SKILL_MAP['events:0.0.1']),
806
891
  toAgentSkillSpec(SKILL_MAP['github:0.0.1']),
807
892
  toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']),
@@ -824,13 +909,14 @@ export const DEMO_FULL_AGENT_SPEC_0_0_1 = {
824
909
  'list your tools',
825
910
  'Search the web for the latest news on AI agents using Tavily.',
826
911
  'List my public GitHub repositories and summarize the most active ones.',
912
+ 'Who am I on Datalayer? Summarize my profile.',
827
913
  "Echo with text 'hello' and reason 'audit', then share the result.",
828
914
  "Echo 'hello world' and share the result in a short sentence.",
829
915
  "Call the runtime_sensitive_echo tool with text 'hello' and reason 'audit', then reply with the tool result.",
830
916
  "Call the runtime_echo tool with text 'hello world', then reply with the tool result.",
831
917
  'Tell me a joke using your skills.',
832
918
  ],
833
- welcomeMessage: "Hi! I'm the Tool Approval Demo agent. I have two echo tools — one runs immediately, the other requires your approval before executing. I can also search the web with Tavily and tell jokes using my skills.\n",
919
+ welcomeMessage: "Hi! I'm the Tool Approval Demo agent. I have two echo tools — one runs immediately, the other requires your approval before executing. I can also search the web with Tavily, tell jokes, and retrieve your Datalayer profile.\n",
834
920
  welcomeNotebook: undefined,
835
921
  welcomeDocument: undefined,
836
922
  sandboxVariant: 'jupyter',
@@ -851,6 +937,260 @@ export const DEMO_FULL_AGENT_SPEC_0_0_1 = {
851
937
  authorizationPolicy: undefined,
852
938
  notifications: undefined,
853
939
  memory: 'ephemeral',
940
+ preHooks: { packages: ['datalayer_skills>=0.1.0'] },
941
+ postHooks: undefined,
942
+ parameters: undefined,
943
+ subagents: undefined,
944
+ };
945
+ export const DEMO_GUARDRAILS_AGENT_SPEC_0_0_1 = {
946
+ id: 'demo-guardrails',
947
+ version: '0.0.1',
948
+ name: 'Demo Guardrails (Cost + Approval)',
949
+ description: `Demonstration agent for guardrails with a strict per-run cost budget and human-in-the-loop approval on sensitive runtime tools.`,
950
+ tags: ['demo', 'guardrails', 'cost', 'approval'],
951
+ enabled: true,
952
+ model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
953
+ mcpServers: [],
954
+ skills: [
955
+ toAgentSkillSpec(SKILL_MAP['jokes:0.0.1']),
956
+ toAgentSkillSpec(SKILL_MAP['events:0.0.1']),
957
+ ],
958
+ tools: [
959
+ TOOL_MAP['runtime-echo:0.0.1'],
960
+ TOOL_MAP['runtime-sensitive-echo:0.0.1'],
961
+ ],
962
+ frontendTools: [
963
+ FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'],
964
+ FRONTEND_TOOL_MAP['lexical-document:0.0.1'],
965
+ ],
966
+ environmentName: 'ai-agents-env',
967
+ icon: 'shield-check',
968
+ emoji: '🛡️',
969
+ color: '#1F883D',
970
+ suggestions: [
971
+ "Call runtime_echo with text 'hello world' and summarize the result.",
972
+ "Call runtime_sensitive_echo with text 'audit me' and reason 'governance check'.",
973
+ 'Tell me a joke and keep the answer under 2 sentences.',
974
+ ],
975
+ welcomeMessage: 'Hi! I am the Guardrails demo agent. I enforce a strict per-run cost budget and require manual approval for sensitive tool calls.\n',
976
+ welcomeNotebook: undefined,
977
+ welcomeDocument: undefined,
978
+ sandboxVariant: 'jupyter',
979
+ systemPrompt: 'You are a guardrails demonstration assistant. You can call runtime_echo directly. You must request human approval before running runtime_sensitive_echo. Always provide a concise plain-text summary after each tool execution.\n',
980
+ systemPromptCodemodeAddons: undefined,
981
+ goal: undefined,
982
+ protocol: undefined,
983
+ uiExtension: undefined,
984
+ trigger: undefined,
985
+ modelConfig: undefined,
986
+ mcpServerTools: undefined,
987
+ guardrails: [
988
+ {
989
+ name: 'Guardrails Demo User',
990
+ identity_provider: 'datalayer',
991
+ identity_name: 'guardrails-demo@acme.com',
992
+ permissions: {
993
+ 'read:data': true,
994
+ 'write:data': false,
995
+ 'execute:code': true,
996
+ 'access:internet': false,
997
+ 'send:email': false,
998
+ 'deploy:production': false,
999
+ },
1000
+ token_limits: {
1001
+ per_run: '25K',
1002
+ per_day: '150K',
1003
+ per_month: '1M',
1004
+ },
1005
+ cost_budget: {
1006
+ per_run_usd: 0.01,
1007
+ on_budget_exceeded: 'stop',
1008
+ },
1009
+ tool_approval: {
1010
+ tools: ['runtime[-_]sensitive[-_]echo'],
1011
+ timeout: '0h5m0s',
1012
+ },
1013
+ },
1014
+ ],
1015
+ evals: undefined,
1016
+ codemode: undefined,
1017
+ output: undefined,
1018
+ advanced: undefined,
1019
+ authorizationPolicy: undefined,
1020
+ notifications: undefined,
1021
+ memory: 'ephemeral',
1022
+ preHooks: undefined,
1023
+ postHooks: undefined,
1024
+ parameters: undefined,
1025
+ subagents: undefined,
1026
+ };
1027
+ export const DEMO_HOOKS_AGENT_SPEC_0_0_1 = {
1028
+ id: 'demo-hooks',
1029
+ version: '0.0.1',
1030
+ name: 'Demo Hooks Agent',
1031
+ description: `Demonstrates pre-hooks and post-hooks executed in the sandbox lifecycle.`,
1032
+ tags: ['demo', 'hooks', 'lifecycle'],
1033
+ enabled: true,
1034
+ model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
1035
+ mcpServers: [],
1036
+ skills: [],
1037
+ tools: [TOOL_MAP['runtime-echo:0.0.1']],
1038
+ frontendTools: [],
1039
+ environmentName: 'ai-agents-env',
1040
+ icon: 'zap',
1041
+ emoji: '🪝',
1042
+ color: '#0E7490',
1043
+ suggestions: [
1044
+ 'Read the pre-hook marker file at /tmp/agent_runtimes_pre_hook_demo.txt using execute_code.',
1045
+ 'Print the hook_ran_at and hook_name variables that the pre-hook set in the sandbox.',
1046
+ "Run execute_code to verify that the 'rich' package was installed by the pre-hook.",
1047
+ 'Show me all variables that the pre-hook defined in the sandbox namespace.',
1048
+ ],
1049
+ welcomeMessage: "I ran a pre-hook before starting up. It installed the 'rich' package, wrote a marker file, and set several sandbox variables (hook_name, hook_ran_at, hook_env). Ask me to read the file or inspect those variables.\n",
1050
+ welcomeNotebook: undefined,
1051
+ welcomeDocument: undefined,
1052
+ sandboxVariant: 'eval',
1053
+ systemPrompt: `You are a demo assistant for lifecycle hooks.
1054
+ The sandbox pre-hook ran before this agent started and did three things:
1055
+ 1. Installed the Python package 'rich' (pip install). 2. Wrote a UTF-8 marker file to /tmp/agent_runtimes_pre_hook_demo.txt
1056
+ with the content: "pre-hook executed for demo-hooks at <timestamp>".
1057
+ 3. Defined these Python variables in the sandbox namespace:
1058
+ - hook_name (str) - "demo-hooks:pre"
1059
+ - hook_ran_at (str) - ISO-8601 timestamp of when the pre-hook ran
1060
+ - hook_env (dict) - subset of os.environ captured at hook time
1061
+
1062
+ A post-hook is also configured — it will write /tmp/agent_runtimes_post_hook_demo.txt when the agent shuts down.
1063
+ When the user asks about hooks, use execute_code to show concrete evidence: read the marker file, print the variables, or import rich to confirm it was installed.
1064
+ `,
1065
+ systemPromptCodemodeAddons: undefined,
1066
+ goal: undefined,
1067
+ protocol: undefined,
1068
+ uiExtension: undefined,
1069
+ trigger: undefined,
1070
+ modelConfig: undefined,
1071
+ mcpServerTools: undefined,
1072
+ guardrails: undefined,
1073
+ evals: undefined,
1074
+ codemode: undefined,
1075
+ output: undefined,
1076
+ advanced: undefined,
1077
+ authorizationPolicy: undefined,
1078
+ notifications: undefined,
1079
+ memory: 'ephemeral',
1080
+ preHooks: {
1081
+ packages: ['rich'],
1082
+ sandbox: [
1083
+ 'import datetime\nimport os\nfrom pathlib import Path\n\nhook_name = "demo-hooks:pre"\nhook_ran_at = datetime.datetime.now().isoformat()\nhook_env = {\n k: os.environ[k]\n for k in ("PATH", "HOME", "DATALAYER_CODE_SANDBOX_VARIANT")\n if k in os.environ\n}\n\nPath(\'/tmp/agent_runtimes_pre_hook_demo.txt\').write_text(\n f\'pre-hook executed for demo-hooks at {hook_ran_at}\\n\',\n encoding=\'utf-8\',\n)\nprint(f"[demo-hooks] pre-hook done: hook_ran_at={hook_ran_at!r}")\n',
1084
+ ],
1085
+ },
1086
+ postHooks: {
1087
+ sandbox: [
1088
+ "import datetime\nfrom pathlib import Path\n\npost_ran_at = datetime.datetime.now().isoformat()\nPath('/tmp/agent_runtimes_post_hook_demo.txt').write_text(\n f'post-hook executed for demo-hooks at {post_ran_at}\\n',\n encoding='utf-8',\n)\nprint(f\"[demo-hooks] post-hook done: post_ran_at={post_ran_at!r}\")\n",
1089
+ ],
1090
+ },
1091
+ parameters: undefined,
1092
+ subagents: undefined,
1093
+ };
1094
+ export const DEMO_MCP_AGENT_SPEC_0_0_1 = {
1095
+ id: 'demo-mcp',
1096
+ version: '0.0.1',
1097
+ name: 'Demo MCP',
1098
+ description: `Demo agent using MCP servers directly (without codemode conversion).`,
1099
+ tags: ['demo', 'mcp', 'tavily'],
1100
+ enabled: true,
1101
+ model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
1102
+ mcpServers: [MCP_SERVER_MAP['tavily:0.0.1']],
1103
+ skills: [toAgentSkillSpec(SKILL_MAP['jokes:0.0.1'])],
1104
+ tools: [],
1105
+ frontendTools: [
1106
+ FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'],
1107
+ FRONTEND_TOOL_MAP['lexical-document:0.0.1'],
1108
+ ],
1109
+ environmentName: 'ai-agents-env',
1110
+ icon: 'search',
1111
+ emoji: '🔍',
1112
+ color: '#0969DA',
1113
+ suggestions: [
1114
+ 'Search the web for recent updates about MCP and summarize key findings',
1115
+ ],
1116
+ welcomeMessage: "Hi! I'm the MCP demo agent. I use MCP tools directly without codemode.\n",
1117
+ welcomeNotebook: undefined,
1118
+ welcomeDocument: undefined,
1119
+ sandboxVariant: undefined,
1120
+ systemPrompt: `You are a helpful assistant with access to MCP tools. Use Tavily MCP tools to retrieve web information when needed. Do not claim codemode capabilities.
1121
+ `,
1122
+ systemPromptCodemodeAddons: undefined,
1123
+ goal: undefined,
1124
+ protocol: 'vercel-ai',
1125
+ uiExtension: 'a2ui',
1126
+ trigger: undefined,
1127
+ modelConfig: undefined,
1128
+ mcpServerTools: undefined,
1129
+ guardrails: undefined,
1130
+ evals: undefined,
1131
+ codemode: { enabled: false },
1132
+ output: undefined,
1133
+ advanced: undefined,
1134
+ authorizationPolicy: undefined,
1135
+ notifications: undefined,
1136
+ memory: 'ephemeral',
1137
+ preHooks: undefined,
1138
+ postHooks: undefined,
1139
+ parameters: undefined,
1140
+ subagents: undefined,
1141
+ };
1142
+ export const DEMO_MONITORING_AGENT_SPEC_0_0_1 = {
1143
+ id: 'demo-monitoring',
1144
+ version: '0.0.1',
1145
+ name: 'Demo Monitoring Agent',
1146
+ description: `Monitoring-focused demo agent with Tavily MCP tools and the datalayer-skills whoami capability for profile-aware assistance.`,
1147
+ tags: ['demo', 'monitoring', 'mcp', 'tavily', 'datalayer-skills'],
1148
+ enabled: true,
1149
+ model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
1150
+ mcpServers: [MCP_SERVER_MAP['tavily:0.0.1']],
1151
+ skills: [
1152
+ toAgentSkillSpec(SKILL_MAP['datalayer-whoami:0.0.1']),
1153
+ toAgentSkillSpec(SKILL_MAP['jokes:0.0.1']),
1154
+ ],
1155
+ tools: [],
1156
+ frontendTools: [
1157
+ FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'],
1158
+ FRONTEND_TOOL_MAP['lexical-document:0.0.1'],
1159
+ ],
1160
+ environmentName: 'ai-agents-env',
1161
+ icon: 'graph',
1162
+ emoji: '📈',
1163
+ color: '#0EA5E9',
1164
+ suggestions: [
1165
+ 'Search the web for recent AI observability updates using Tavily and summarize the highlights.',
1166
+ 'Who am I on Datalayer and what can I monitor in this session?',
1167
+ 'Explain my last turn token and cost behavior in a concise summary.',
1168
+ ],
1169
+ welcomeMessage: "Hi! I'm the Monitoring Demo agent. I can use Tavily for web context and datalayer-skills to inspect your authenticated Datalayer identity.\n",
1170
+ welcomeNotebook: undefined,
1171
+ welcomeDocument: undefined,
1172
+ sandboxVariant: 'jupyter',
1173
+ systemPrompt: `You are a monitoring-oriented assistant. Use Tavily MCP tools for current web information when useful. Use the datalayer-whoami skill when the user asks about identity, profile, or account context. Keep explanations concise and practical.
1174
+ `,
1175
+ systemPromptCodemodeAddons: undefined,
1176
+ goal: undefined,
1177
+ protocol: undefined,
1178
+ uiExtension: undefined,
1179
+ trigger: undefined,
1180
+ modelConfig: undefined,
1181
+ mcpServerTools: undefined,
1182
+ guardrails: undefined,
1183
+ evals: undefined,
1184
+ codemode: undefined,
1185
+ output: undefined,
1186
+ advanced: undefined,
1187
+ authorizationPolicy: undefined,
1188
+ notifications: undefined,
1189
+ memory: 'ephemeral',
1190
+ preHooks: { packages: ['datalayer_skills>=0.1.0'] },
1191
+ postHooks: undefined,
1192
+ parameters: undefined,
1193
+ subagents: undefined,
854
1194
  };
855
1195
  export const DEMO_ONE_TRIGGER_APPROVAL_AGENT_SPEC_0_0_1 = {
856
1196
  id: 'demo-one-trigger-approval',
@@ -872,27 +1212,31 @@ export const DEMO_ONE_TRIGGER_APPROVAL_AGENT_SPEC_0_0_1 = {
872
1212
  welcomeMessage: undefined,
873
1213
  welcomeNotebook: undefined,
874
1214
  welcomeDocument: undefined,
875
- sandboxVariant: 'jupyter',
1215
+ sandboxVariant: undefined,
876
1216
  systemPrompt: undefined,
877
1217
  systemPromptCodemodeAddons: undefined,
878
- goal: `Call runtime_sensitive_echo exactly once with message="Tool approval demo executed" and reason="audit". Do not call any other tool.`,
1218
+ goal: `Use the runtime_sensitive_echo tool once.`,
879
1219
  protocol: undefined,
880
1220
  uiExtension: undefined,
881
1221
  trigger: {
882
1222
  type: 'once',
883
1223
  description: 'Run once with approval and terminate',
884
- prompt: "Call runtime_sensitive_echo exactly once with message='Tool approval demo executed' and reason='audit'. Do not call any other tool.",
1224
+ prompt: 'Use the runtime_sensitive_echo tool once.',
885
1225
  },
886
1226
  modelConfig: undefined,
887
1227
  mcpServerTools: undefined,
888
1228
  guardrails: undefined,
889
1229
  evals: undefined,
890
- codemode: undefined,
1230
+ codemode: { enabled: false },
891
1231
  output: undefined,
892
1232
  advanced: undefined,
893
1233
  authorizationPolicy: undefined,
894
1234
  notifications: undefined,
895
1235
  memory: 'ephemeral',
1236
+ preHooks: undefined,
1237
+ postHooks: undefined,
1238
+ parameters: undefined,
1239
+ subagents: undefined,
896
1240
  };
897
1241
  export const DEMO_ONE_TRIGGER_AGENT_SPEC_0_0_1 = {
898
1242
  id: 'demo-one-trigger',
@@ -938,6 +1282,142 @@ export const DEMO_ONE_TRIGGER_AGENT_SPEC_0_0_1 = {
938
1282
  authorizationPolicy: undefined,
939
1283
  notifications: undefined,
940
1284
  memory: 'ephemeral',
1285
+ preHooks: undefined,
1286
+ postHooks: undefined,
1287
+ parameters: undefined,
1288
+ subagents: undefined,
1289
+ };
1290
+ export const DEMO_OUTPUTS_AGENT_SPEC_0_0_1 = {
1291
+ id: 'demo-outputs',
1292
+ version: '0.0.1',
1293
+ name: 'Outputs Demo Agent',
1294
+ description: `Demonstrates rich output rendering. Ask it to produce a Markdown table, a JSON payload, an ASCII/ECharts chart spec, or a downloadable file — the Outputs panel will auto-switch to the matching tab.`,
1295
+ tags: ['demo', 'outputs', 'rendering'],
1296
+ enabled: true,
1297
+ model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
1298
+ mcpServers: [],
1299
+ skills: [toAgentSkillSpec(SKILL_MAP['events:0.0.1'])],
1300
+ tools: [TOOL_MAP['runtime-echo:0.0.1']],
1301
+ frontendTools: [
1302
+ FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'],
1303
+ FRONTEND_TOOL_MAP['lexical-document:0.0.1'],
1304
+ ],
1305
+ environmentName: 'ai-agents-env',
1306
+ icon: 'graph',
1307
+ emoji: '📤',
1308
+ color: '#8B5CF6',
1309
+ suggestions: [
1310
+ 'Generate a Markdown table of the top 5 US cities by population, with columns City, State, Population.',
1311
+ 'Return a JSON object describing a fictitious product catalog with 3 items (id, name, price, tags).',
1312
+ 'Produce a bar chart ECharts spec (JSON) showing monthly sales for Jan–Jun.',
1313
+ 'Create a downloadable CSV file with sample sales data for the last 7 days and output it inside a ```csv fenced block named sales.csv.',
1314
+ ],
1315
+ welcomeMessage: 'Hi! I render rich outputs. Try one of the suggestions to produce a Markdown table, JSON, a chart spec, or a downloadable file — the side panel will switch to the matching tab automatically.\n',
1316
+ welcomeNotebook: undefined,
1317
+ welcomeDocument: undefined,
1318
+ sandboxVariant: 'jupyter',
1319
+ systemPrompt: `You are an Outputs Demo Agent. Your job is to showcase rich output rendering. For every user request, pick exactly ONE of the following output formats and produce the content inside a single fenced code block so the UI can detect and render it:
1320
+
1321
+ 1. TABLE — a GitHub-flavored Markdown table (pipe syntax). No fences.
1322
+ 2. JSON — a valid JSON object inside a \`\`\`json fenced block.
1323
+ 3. CHART — an ECharts \`option\` JSON spec inside a \`\`\`json fenced
1324
+ block whose first line is \`// chart\`. Must include
1325
+ \`xAxis\`, \`yAxis\`, and \`series\`.
1326
+ 4. FILE — a downloadable text artifact inside a fenced block whose
1327
+ info string is the file extension (e.g. \`\`\`csv,
1328
+ \`\`\`md, \`\`\`txt). Start the block with a comment line
1329
+ \`# filename: <name.ext>\` so the UI can label the file.
1330
+
1331
+ Always add a 1–2 sentence natural-language preamble before the fenced block (or before the Markdown table). Never mix two output types in a single response. Keep the payloads small (≤ 30 rows / ≤ 2 KB).
1332
+ `,
1333
+ systemPromptCodemodeAddons: undefined,
1334
+ goal: undefined,
1335
+ protocol: undefined,
1336
+ uiExtension: undefined,
1337
+ trigger: undefined,
1338
+ modelConfig: undefined,
1339
+ mcpServerTools: undefined,
1340
+ guardrails: undefined,
1341
+ evals: undefined,
1342
+ codemode: undefined,
1343
+ output: undefined,
1344
+ advanced: undefined,
1345
+ authorizationPolicy: undefined,
1346
+ notifications: undefined,
1347
+ memory: 'ephemeral',
1348
+ preHooks: undefined,
1349
+ postHooks: undefined,
1350
+ parameters: undefined,
1351
+ subagents: undefined,
1352
+ };
1353
+ export const DEMO_PARAMETERS_AGENT_SPEC_0_0_1 = {
1354
+ id: 'demo-parameters',
1355
+ version: '0.0.1',
1356
+ name: 'Demo Parameters Agent',
1357
+ description: `Demonstrates launch-time parameterization with JSON schema validation.`,
1358
+ tags: ['demo', 'parameters', 'schema'],
1359
+ enabled: true,
1360
+ model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
1361
+ mcpServers: [],
1362
+ skills: [],
1363
+ tools: [TOOL_MAP['runtime-echo:0.0.1']],
1364
+ frontendTools: [],
1365
+ environmentName: 'ai-agents-env',
1366
+ icon: 'sliders',
1367
+ emoji: '🎛️',
1368
+ color: '#0F766E',
1369
+ suggestions: [
1370
+ 'Use execute_code to print(demo_params) from the sandbox, then explain the value.',
1371
+ "Use execute_code to print('demo_params =', demo_params).",
1372
+ ],
1373
+ welcomeMessage: 'This runtime was launched for project {{project}} and role {{role}}.\n',
1374
+ welcomeNotebook: undefined,
1375
+ welcomeDocument: undefined,
1376
+ sandboxVariant: 'jupyter',
1377
+ systemPrompt: `You are an assistant dedicated to {{project}}. Assume the user is a {{role}} and answer in a {{tone}} style. A sandbox pre-hook set a Python variable named demo_params with value {{demo_params}}.
1378
+ `,
1379
+ systemPromptCodemodeAddons: undefined,
1380
+ goal: undefined,
1381
+ protocol: undefined,
1382
+ uiExtension: undefined,
1383
+ trigger: undefined,
1384
+ modelConfig: undefined,
1385
+ mcpServerTools: undefined,
1386
+ guardrails: undefined,
1387
+ evals: undefined,
1388
+ codemode: undefined,
1389
+ output: undefined,
1390
+ advanced: undefined,
1391
+ authorizationPolicy: undefined,
1392
+ notifications: undefined,
1393
+ memory: 'ephemeral',
1394
+ preHooks: {
1395
+ sandbox: [
1396
+ 'demo_params = """{{demo_params}}"""\nprint(f"[demo-parameters] demo_params initialized: {demo_params!r}")\n',
1397
+ ],
1398
+ },
1399
+ postHooks: undefined,
1400
+ parameters: {
1401
+ type: 'object',
1402
+ properties: {
1403
+ demo_params: { type: 'string', title: 'Demo Params', default: 'hello' },
1404
+ project: { type: 'string', title: 'Project', default: 'Orbit' },
1405
+ role: {
1406
+ type: 'string',
1407
+ title: 'Role',
1408
+ enum: ['product analyst', 'engineering lead', 'support specialist'],
1409
+ default: 'product analyst',
1410
+ },
1411
+ tone: {
1412
+ type: 'string',
1413
+ title: 'Tone',
1414
+ enum: ['concise', 'detailed'],
1415
+ default: 'concise',
1416
+ },
1417
+ },
1418
+ required: ['project'],
1419
+ },
1420
+ subagents: undefined,
941
1421
  };
942
1422
  export const DEMO_SIMPLE_AGENT_SPEC_0_0_1 = {
943
1423
  id: 'demo-simple',
@@ -985,6 +1465,180 @@ export const DEMO_SIMPLE_AGENT_SPEC_0_0_1 = {
985
1465
  authorizationPolicy: undefined,
986
1466
  notifications: undefined,
987
1467
  memory: 'ephemeral',
1468
+ preHooks: undefined,
1469
+ postHooks: undefined,
1470
+ parameters: undefined,
1471
+ subagents: undefined,
1472
+ };
1473
+ export const DEMO_SUBAGENTS_AGENT_SPEC_0_0_1 = {
1474
+ id: 'demo-subagents',
1475
+ version: '0.0.1',
1476
+ name: 'Subagents Demo',
1477
+ description: `A demonstration agent that delegates tasks to specialised subagents. It has a researcher subagent for gathering information and a writer subagent for composing clear, structured responses.`,
1478
+ tags: ['demo', 'subagents', 'multi-agent', 'delegation'],
1479
+ enabled: true,
1480
+ model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
1481
+ mcpServers: [],
1482
+ skills: [toAgentSkillSpec(SKILL_MAP['events:0.0.1'])],
1483
+ tools: [],
1484
+ frontendTools: [
1485
+ FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'],
1486
+ FRONTEND_TOOL_MAP['lexical-document:0.0.1'],
1487
+ ],
1488
+ environmentName: 'ai-agents-env',
1489
+ icon: 'people',
1490
+ emoji: '👥',
1491
+ color: '#8B5CF6',
1492
+ suggestions: [
1493
+ 'Research the pros and cons of Python async patterns and write a summary.',
1494
+ 'Find recent advances in LLM fine-tuning and create a brief report.',
1495
+ 'Investigate best practices for REST API design and draft a style guide.',
1496
+ 'Analyze the current state of WebAssembly and produce an executive summary.',
1497
+ ],
1498
+ welcomeMessage: "Hi! I'm the Subagents Demo agent. I coordinate a team of specialised helpers: a **Researcher** who gathers information and a **Writer** who turns findings into polished prose. Ask me anything and I'll delegate to the right expert!\n",
1499
+ welcomeNotebook: undefined,
1500
+ welcomeDocument: undefined,
1501
+ sandboxVariant: 'jupyter',
1502
+ systemPrompt: `You are a helpful orchestrator agent. You have access to specialised subagents that you can delegate tasks to. Use the 'task' tool to assign work: - Use the 'researcher' subagent for gathering facts, searching for information, and analysis. - Use the 'writer' subagent for composing text, formatting documents, and editing prose. You can run tasks synchronously (wait for result) or asynchronously (fire and forget, check later). Always summarise the delegated results for the user in a clear, helpful way.
1503
+ `,
1504
+ systemPromptCodemodeAddons: undefined,
1505
+ goal: undefined,
1506
+ protocol: undefined,
1507
+ uiExtension: undefined,
1508
+ trigger: undefined,
1509
+ modelConfig: undefined,
1510
+ mcpServerTools: undefined,
1511
+ guardrails: undefined,
1512
+ evals: undefined,
1513
+ codemode: undefined,
1514
+ output: undefined,
1515
+ advanced: undefined,
1516
+ authorizationPolicy: undefined,
1517
+ notifications: undefined,
1518
+ memory: 'ephemeral',
1519
+ preHooks: undefined,
1520
+ postHooks: undefined,
1521
+ parameters: undefined,
1522
+ subagents: {
1523
+ defaultModel: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
1524
+ includeGeneralPurpose: true,
1525
+ maxNestingDepth: 0,
1526
+ subagents: [
1527
+ {
1528
+ name: 'researcher',
1529
+ description: 'Researches topics, gathers facts, and provides detailed analysis',
1530
+ instructions: 'You are a thorough research assistant. When given a topic: 1. Break it down into key questions 2. Provide well-structured findings with evidence 3. Cite sources or reasoning for each claim 4. Highlight areas of uncertainty or debate Format your response with clear sections and bullet points.\n',
1531
+ preferredMode: 'sync',
1532
+ typicalComplexity: 'moderate',
1533
+ canAskQuestions: true,
1534
+ maxQuestions: 3,
1535
+ },
1536
+ {
1537
+ name: 'writer',
1538
+ description: 'Writes clear, structured content based on research or instructions',
1539
+ instructions: 'You are a skilled technical writer. When given content to write: 1. Organise information into a logical structure 2. Use clear, concise language appropriate for the audience 3. Include headings, bullet points, and formatting for readability 4. Maintain a professional yet approachable tone Always produce complete, publication-ready text.\n',
1540
+ preferredMode: 'sync',
1541
+ typicalComplexity: 'moderate',
1542
+ canAskQuestions: false,
1543
+ },
1544
+ ],
1545
+ },
1546
+ };
1547
+ export const DEMO_TAVILY_CODEMODE_AGENT_SPEC_0_0_1 = {
1548
+ id: 'demo-tavily-codemode',
1549
+ version: '0.0.1',
1550
+ name: 'Demo Tavily MCP (Codemode)',
1551
+ description: `Demo agent using the Tavily MCP server with codemode conversion enabled.`,
1552
+ tags: ['demo', 'mcp', 'tavily', 'codemode'],
1553
+ enabled: true,
1554
+ model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
1555
+ mcpServers: [MCP_SERVER_MAP['tavily:0.0.1']],
1556
+ skills: [],
1557
+ tools: [],
1558
+ frontendTools: [
1559
+ FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'],
1560
+ FRONTEND_TOOL_MAP['lexical-document:0.0.1'],
1561
+ ],
1562
+ environmentName: 'ai-agents-env',
1563
+ icon: 'code',
1564
+ emoji: '⚙️',
1565
+ color: '#8250DF',
1566
+ suggestions: [
1567
+ 'Extract information from the https://datalayer.ai website and use your sandbox to create a variable "about_datalayer" with that information',
1568
+ ],
1569
+ welcomeMessage: "Hi! I'm the Tavily MCP demo agent with codemode enabled. I can use programmatic MCP-converted tools and use the sandbox for follow-up processing.\n",
1570
+ welcomeNotebook: undefined,
1571
+ welcomeDocument: undefined,
1572
+ sandboxVariant: 'jupyter',
1573
+ systemPrompt: `You are a helpful assistant with access to Tavily web search tools converted to programmatic codemode tools. You MUST use the available Tavily tools (tavily_search, tavily_extract) to retrieve information from websites. NEVER try to use Python requests, urllib, or selenium to fetch web pages — always use your Tavily tools. After retrieving information with Tavily, use the sandbox (execute_code) to store results in variables.
1574
+ `,
1575
+ systemPromptCodemodeAddons: undefined,
1576
+ goal: undefined,
1577
+ protocol: 'vercel-ai',
1578
+ uiExtension: 'a2ui',
1579
+ trigger: undefined,
1580
+ modelConfig: undefined,
1581
+ mcpServerTools: undefined,
1582
+ guardrails: undefined,
1583
+ evals: undefined,
1584
+ codemode: { enabled: true, token_reduction: '~90%', speedup: '~2x faster' },
1585
+ output: undefined,
1586
+ advanced: undefined,
1587
+ authorizationPolicy: undefined,
1588
+ notifications: undefined,
1589
+ memory: 'ephemeral',
1590
+ preHooks: undefined,
1591
+ postHooks: undefined,
1592
+ parameters: undefined,
1593
+ subagents: undefined,
1594
+ };
1595
+ export const DEMO_TAVILY_NO_CODEMODE_AGENT_SPEC_0_0_1 = {
1596
+ id: 'demo-tavily-no-codemode',
1597
+ version: '0.0.1',
1598
+ name: 'Demo Tavily MCP (No Codemode)',
1599
+ description: `Demo agent using the Tavily MCP server directly without codemode conversion.`,
1600
+ tags: ['demo', 'mcp', 'tavily', 'codemode'],
1601
+ enabled: true,
1602
+ model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
1603
+ mcpServers: [MCP_SERVER_MAP['tavily:0.0.1']],
1604
+ skills: [],
1605
+ tools: [],
1606
+ frontendTools: [
1607
+ FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'],
1608
+ FRONTEND_TOOL_MAP['lexical-document:0.0.1'],
1609
+ ],
1610
+ environmentName: 'ai-agents-env',
1611
+ icon: 'globe',
1612
+ emoji: '🌐',
1613
+ color: '#0969DA',
1614
+ suggestions: [
1615
+ 'Extract information from the https://datalayer.ai website and use your sandbox to create a variable "about_datalayer" with that information',
1616
+ ],
1617
+ welcomeMessage: "Hi! I'm the Tavily MCP demo agent without codemode. I can use Tavily tools directly and use the sandbox for follow-up processing.\n",
1618
+ welcomeNotebook: undefined,
1619
+ welcomeDocument: undefined,
1620
+ sandboxVariant: 'jupyter',
1621
+ systemPrompt: `You are a helpful assistant with access to Tavily web search tools. You MUST use the tavily_search or tavily_extract MCP tools to retrieve information from websites. NEVER try to use Python requests, urllib, or selenium to fetch web pages — always use your Tavily tools. After retrieving information with Tavily, use the sandbox (execute_code) to store results in variables.
1622
+ `,
1623
+ systemPromptCodemodeAddons: undefined,
1624
+ goal: undefined,
1625
+ protocol: 'vercel-ai',
1626
+ uiExtension: 'a2ui',
1627
+ trigger: undefined,
1628
+ modelConfig: undefined,
1629
+ mcpServerTools: undefined,
1630
+ guardrails: undefined,
1631
+ evals: undefined,
1632
+ codemode: { enabled: false },
1633
+ output: undefined,
1634
+ advanced: undefined,
1635
+ authorizationPolicy: undefined,
1636
+ notifications: undefined,
1637
+ memory: 'ephemeral',
1638
+ preHooks: undefined,
1639
+ postHooks: undefined,
1640
+ parameters: undefined,
1641
+ subagents: undefined,
988
1642
  };
989
1643
  export const END_OF_MONTH_SALES_PERFORMANCE_AGENT_SPEC_0_0_1 = {
990
1644
  id: 'end-of-month-sales-performance',
@@ -1002,7 +1656,7 @@ export const END_OF_MONTH_SALES_PERFORMANCE_AGENT_SPEC_0_0_1 = {
1002
1656
  'sku',
1003
1657
  ],
1004
1658
  enabled: false,
1005
- model: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0',
1659
+ model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
1006
1660
  mcpServers: [MCP_SERVER_MAP['salesforce:0.0.1']],
1007
1661
  skills: [
1008
1662
  toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']),
@@ -1180,6 +1834,10 @@ export const END_OF_MONTH_SALES_PERFORMANCE_AGENT_SPEC_0_0_1 = {
1180
1834
  authorizationPolicy: '',
1181
1835
  notifications: { email: 'cro@company.com', slack: '#sales-performance' },
1182
1836
  memory: 'ephemeral',
1837
+ preHooks: undefined,
1838
+ postHooks: undefined,
1839
+ parameters: undefined,
1840
+ subagents: undefined,
1183
1841
  };
1184
1842
  export const EXTRACT_DATA_FROM_FILES_AGENT_SPEC_0_0_1 = {
1185
1843
  id: 'extract-data-from-files',
@@ -1188,7 +1846,7 @@ export const EXTRACT_DATA_FROM_FILES_AGENT_SPEC_0_0_1 = {
1188
1846
  description: `A generic data extraction agent that processes unstructured files (PDFs, scanned documents, spreadsheets, images with text) and extracts structured data — tables, key-value pairs, line items, totals. Outputs clean JSON or CSV ready for downstream systems. Applicable to invoices, receipts, forms, medical records, legal documents, and more.`,
1189
1847
  tags: ['extraction', 'data', 'horizontal', 'automation', 'documents'],
1190
1848
  enabled: false,
1191
- model: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0',
1849
+ model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
1192
1850
  mcpServers: [MCP_SERVER_MAP['filesystem:0.0.1']],
1193
1851
  skills: [
1194
1852
  toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']),
@@ -1271,6 +1929,10 @@ export const EXTRACT_DATA_FROM_FILES_AGENT_SPEC_0_0_1 = {
1271
1929
  authorizationPolicy: undefined,
1272
1930
  notifications: { slack: '#data-extraction', email: 'data-team@acme.com' },
1273
1931
  memory: 'ephemeral',
1932
+ preHooks: undefined,
1933
+ postHooks: undefined,
1934
+ parameters: undefined,
1935
+ subagents: undefined,
1274
1936
  };
1275
1937
  export const FINANCIAL_VIZ_AGENT_SPEC_0_0_1 = {
1276
1938
  id: 'financial-viz',
@@ -1339,6 +2001,10 @@ export const FINANCIAL_VIZ_AGENT_SPEC_0_0_1 = {
1339
2001
  authorizationPolicy: undefined,
1340
2002
  notifications: undefined,
1341
2003
  memory: 'ephemeral',
2004
+ preHooks: undefined,
2005
+ postHooks: undefined,
2006
+ parameters: undefined,
2007
+ subagents: undefined,
1342
2008
  };
1343
2009
  export const FINANCIAL_AGENT_SPEC_0_0_1 = {
1344
2010
  id: 'financial',
@@ -1404,6 +2070,10 @@ export const FINANCIAL_AGENT_SPEC_0_0_1 = {
1404
2070
  authorizationPolicy: undefined,
1405
2071
  notifications: undefined,
1406
2072
  memory: 'ephemeral',
2073
+ preHooks: undefined,
2074
+ postHooks: undefined,
2075
+ parameters: undefined,
2076
+ subagents: undefined,
1407
2077
  };
1408
2078
  export const GENERATE_WEEKLY_REPORTS_AGENT_SPEC_0_0_1 = {
1409
2079
  id: 'generate-weekly-reports',
@@ -1412,7 +2082,7 @@ export const GENERATE_WEEKLY_REPORTS_AGENT_SPEC_0_0_1 = {
1412
2082
  description: `Aggregates data across marketing, sales, and operations departments. Generates structured weekly reports with charts, KPI summaries, trend analysis, and executive-level takeaways.`,
1413
2083
  tags: ['marketing', 'reports', 'weekly', 'analytics', 'automation'],
1414
2084
  enabled: false,
1415
- model: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0',
2085
+ model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
1416
2086
  mcpServers: [
1417
2087
  MCP_SERVER_MAP['filesystem:0.0.1'],
1418
2088
  MCP_SERVER_MAP['slack:0.0.1'],
@@ -1508,6 +2178,10 @@ export const GENERATE_WEEKLY_REPORTS_AGENT_SPEC_0_0_1 = {
1508
2178
  authorizationPolicy: '',
1509
2179
  notifications: { email: 'robert.w@company.com', slack: '#weekly-reports' },
1510
2180
  memory: 'ephemeral',
2181
+ preHooks: undefined,
2182
+ postHooks: undefined,
2183
+ parameters: undefined,
2184
+ subagents: undefined,
1511
2185
  };
1512
2186
  export const GITHUB_AGENT_SPEC_0_0_1 = {
1513
2187
  id: 'github-agent',
@@ -1576,6 +2250,10 @@ export const GITHUB_AGENT_SPEC_0_0_1 = {
1576
2250
  authorizationPolicy: undefined,
1577
2251
  notifications: undefined,
1578
2252
  memory: 'ephemeral',
2253
+ preHooks: undefined,
2254
+ postHooks: undefined,
2255
+ parameters: undefined,
2256
+ subagents: undefined,
1579
2257
  };
1580
2258
  export const INFORMATION_ROUTING_AGENT_SPEC_0_0_1 = {
1581
2259
  id: 'information-routing',
@@ -1644,6 +2322,10 @@ export const INFORMATION_ROUTING_AGENT_SPEC_0_0_1 = {
1644
2322
  authorizationPolicy: undefined,
1645
2323
  notifications: undefined,
1646
2324
  memory: 'ephemeral',
2325
+ preHooks: undefined,
2326
+ postHooks: undefined,
2327
+ parameters: undefined,
2328
+ subagents: undefined,
1647
2329
  };
1648
2330
  export const MONITOR_SALES_KPIS_AGENT_SPEC_0_0_1 = {
1649
2331
  id: 'monitor-sales-kpis',
@@ -1652,7 +2334,7 @@ export const MONITOR_SALES_KPIS_AGENT_SPEC_0_0_1 = {
1652
2334
  description: `Monitor and analyze sales KPIs from the CRM system. Generate daily reports summarizing key performance metrics, identify trends, and flag anomalies. Send notifications when KPIs deviate more than 10% from targets.`,
1653
2335
  tags: ['support', 'chatbot', 'sales', 'kpi', 'monitoring'],
1654
2336
  enabled: false,
1655
- model: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0',
2337
+ model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
1656
2338
  mcpServers: [MCP_SERVER_MAP['filesystem:0.0.1']],
1657
2339
  skills: [
1658
2340
  toAgentSkillSpec(SKILL_MAP['github:0.0.1']),
@@ -1753,6 +2435,10 @@ export const MONITOR_SALES_KPIS_AGENT_SPEC_0_0_1 = {
1753
2435
  authorizationPolicy: '',
1754
2436
  notifications: { email: 'marcus.r@company.com', slack: '#sales-kpis' },
1755
2437
  memory: 'mem0',
2438
+ preHooks: undefined,
2439
+ postHooks: undefined,
2440
+ parameters: undefined,
2441
+ subagents: undefined,
1756
2442
  };
1757
2443
  export const OPTIMIZE_DYNAMIC_PRICING_AGENT_SPEC_0_0_1 = {
1758
2444
  id: 'optimize-dynamic-pricing',
@@ -1768,7 +2454,7 @@ export const OPTIMIZE_DYNAMIC_PRICING_AGENT_SPEC_0_0_1 = {
1768
2454
  'margins',
1769
2455
  ],
1770
2456
  enabled: false,
1771
- model: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0',
2457
+ model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
1772
2458
  mcpServers: [MCP_SERVER_MAP['filesystem:0.0.1']],
1773
2459
  skills: [
1774
2460
  toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']),
@@ -1874,6 +2560,10 @@ export const OPTIMIZE_DYNAMIC_PRICING_AGENT_SPEC_0_0_1 = {
1874
2560
  slack: '#pricing-intelligence',
1875
2561
  },
1876
2562
  memory: 'ephemeral',
2563
+ preHooks: undefined,
2564
+ postHooks: undefined,
2565
+ parameters: undefined,
2566
+ subagents: undefined,
1877
2567
  };
1878
2568
  export const OPTIMIZE_GRID_OPERATIONS_AGENT_SPEC_0_0_1 = {
1879
2569
  id: 'optimize-grid-operations',
@@ -1889,7 +2579,7 @@ export const OPTIMIZE_GRID_OPERATIONS_AGENT_SPEC_0_0_1 = {
1889
2579
  'sustainability',
1890
2580
  ],
1891
2581
  enabled: false,
1892
- model: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0',
2582
+ model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
1893
2583
  mcpServers: [MCP_SERVER_MAP['filesystem:0.0.1']],
1894
2584
  skills: [
1895
2585
  toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']),
@@ -1982,6 +2672,10 @@ export const OPTIMIZE_GRID_OPERATIONS_AGENT_SPEC_0_0_1 = {
1982
2672
  authorizationPolicy: '',
1983
2673
  notifications: { email: 'grid-ops@company.com', slack: '#grid-operations' },
1984
2674
  memory: 'ephemeral',
2675
+ preHooks: undefined,
2676
+ postHooks: undefined,
2677
+ parameters: undefined,
2678
+ subagents: undefined,
1985
2679
  };
1986
2680
  export const PROCESS_CITIZEN_REQUESTS_AGENT_SPEC_0_0_1 = {
1987
2681
  id: 'process-citizen-requests',
@@ -1997,7 +2691,7 @@ export const PROCESS_CITIZEN_REQUESTS_AGENT_SPEC_0_0_1 = {
1997
2691
  'transparency',
1998
2692
  ],
1999
2693
  enabled: false,
2000
- model: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0',
2694
+ model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
2001
2695
  mcpServers: [MCP_SERVER_MAP['filesystem:0.0.1']],
2002
2696
  skills: [
2003
2697
  toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']),
@@ -2100,6 +2794,10 @@ export const PROCESS_CITIZEN_REQUESTS_AGENT_SPEC_0_0_1 = {
2100
2794
  slack: '#citizen-services',
2101
2795
  },
2102
2796
  memory: 'ephemeral',
2797
+ preHooks: undefined,
2798
+ postHooks: undefined,
2799
+ parameters: undefined,
2800
+ subagents: undefined,
2103
2801
  };
2104
2802
  export const PROCESS_CLINICAL_TRIAL_DATA_AGENT_SPEC_0_0_1 = {
2105
2803
  id: 'process-clinical-trial-data',
@@ -2114,7 +2812,7 @@ export const PROCESS_CLINICAL_TRIAL_DATA_AGENT_SPEC_0_0_1 = {
2114
2812
  'compliance',
2115
2813
  ],
2116
2814
  enabled: false,
2117
- model: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0',
2815
+ model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
2118
2816
  mcpServers: [MCP_SERVER_MAP['filesystem:0.0.1']],
2119
2817
  skills: [
2120
2818
  toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']),
@@ -2219,6 +2917,10 @@ export const PROCESS_CLINICAL_TRIAL_DATA_AGENT_SPEC_0_0_1 = {
2219
2917
  authorizationPolicy: '',
2220
2918
  notifications: { email: 'clinical-ops@company.com', slack: '#clinical-data' },
2221
2919
  memory: 'ephemeral',
2920
+ preHooks: undefined,
2921
+ postHooks: undefined,
2922
+ parameters: undefined,
2923
+ subagents: undefined,
2222
2924
  };
2223
2925
  export const PROCESS_FINANCIAL_TRANSACTIONS_AGENT_SPEC_0_0_1 = {
2224
2926
  id: 'process-financial-transactions',
@@ -2233,7 +2935,7 @@ export const PROCESS_FINANCIAL_TRANSACTIONS_AGENT_SPEC_0_0_1 = {
2233
2935
  'reconciliation',
2234
2936
  ],
2235
2937
  enabled: false,
2236
- model: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0',
2938
+ model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
2237
2939
  mcpServers: [MCP_SERVER_MAP['filesystem:0.0.1']],
2238
2940
  skills: [
2239
2941
  toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']),
@@ -2319,6 +3021,10 @@ export const PROCESS_FINANCIAL_TRANSACTIONS_AGENT_SPEC_0_0_1 = {
2319
3021
  authorizationPolicy: '',
2320
3022
  notifications: { email: 'david.t@company.com', slack: '#finance-ops' },
2321
3023
  memory: 'ephemeral',
3024
+ preHooks: undefined,
3025
+ postHooks: undefined,
3026
+ parameters: undefined,
3027
+ subagents: undefined,
2322
3028
  };
2323
3029
  export const SPATIAL_DATA_ANALYSIS_AGENT_SPEC_0_0_1 = {
2324
3030
  id: 'spatial-data-analysis',
@@ -2373,6 +3079,10 @@ export const SPATIAL_DATA_ANALYSIS_AGENT_SPEC_0_0_1 = {
2373
3079
  authorizationPolicy: undefined,
2374
3080
  notifications: undefined,
2375
3081
  memory: 'ephemeral',
3082
+ preHooks: undefined,
3083
+ postHooks: undefined,
3084
+ parameters: undefined,
3085
+ subagents: undefined,
2376
3086
  };
2377
3087
  export const SUMMARIZE_DOCUMENTS_AGENT_SPEC_0_0_1 = {
2378
3088
  id: 'summarize-documents',
@@ -2387,7 +3097,7 @@ export const SUMMARIZE_DOCUMENTS_AGENT_SPEC_0_0_1 = {
2387
3097
  'productivity',
2388
3098
  ],
2389
3099
  enabled: false,
2390
- model: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0',
3100
+ model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
2391
3101
  mcpServers: [MCP_SERVER_MAP['filesystem:0.0.1']],
2392
3102
  skills: [
2393
3103
  toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']),
@@ -2468,6 +3178,10 @@ export const SUMMARIZE_DOCUMENTS_AGENT_SPEC_0_0_1 = {
2468
3178
  authorizationPolicy: undefined,
2469
3179
  notifications: { slack: '#document-summaries', email: 'team@acme.com' },
2470
3180
  memory: 'ephemeral',
3181
+ preHooks: undefined,
3182
+ postHooks: undefined,
3183
+ parameters: undefined,
3184
+ subagents: undefined,
2471
3185
  };
2472
3186
  export const SYNC_CRM_CONTACTS_AGENT_SPEC_0_0_1 = {
2473
3187
  id: 'sync-crm-contacts',
@@ -2476,7 +3190,7 @@ export const SYNC_CRM_CONTACTS_AGENT_SPEC_0_0_1 = {
2476
3190
  description: `A multi-agent team that collects and aggregates contact data from multiple CRM sources, analyzes and deduplicates records, writes cleaned data back, and generates sync summary reports.`,
2477
3191
  tags: ['sales', 'crm', 'data-sync', 'deduplication'],
2478
3192
  enabled: false,
2479
- model: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0',
3193
+ model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
2480
3194
  mcpServers: [
2481
3195
  MCP_SERVER_MAP['filesystem:0.0.1'],
2482
3196
  MCP_SERVER_MAP['slack:0.0.1'],
@@ -2553,6 +3267,10 @@ export const SYNC_CRM_CONTACTS_AGENT_SPEC_0_0_1 = {
2553
3267
  authorizationPolicy: '',
2554
3268
  notifications: { email: 'jennifer.c@company.com', slack: '#crm-sync' },
2555
3269
  memory: 'ephemeral',
3270
+ preHooks: undefined,
3271
+ postHooks: undefined,
3272
+ parameters: undefined,
3273
+ subagents: undefined,
2556
3274
  };
2557
3275
  // ============================================================================
2558
3276
  // Agent Specs Registry
@@ -2566,10 +3284,20 @@ export const AGENT_SPECS = {
2566
3284
  'comprehensive-sales-analytics': COMPREHENSIVE_SALES_ANALYTICS_AGENT_SPEC_0_0_1,
2567
3285
  crawler: CRAWLER_AGENT_SPEC_0_0_1,
2568
3286
  'data-acquisition': DATA_ACQUISITION_AGENT_SPEC_0_0_1,
3287
+ 'datalayer-agent': DATALAYER_AGENT_SPEC_0_0_1,
2569
3288
  'demo-full': DEMO_FULL_AGENT_SPEC_0_0_1,
3289
+ 'demo-guardrails': DEMO_GUARDRAILS_AGENT_SPEC_0_0_1,
3290
+ 'demo-hooks': DEMO_HOOKS_AGENT_SPEC_0_0_1,
3291
+ 'demo-mcp': DEMO_MCP_AGENT_SPEC_0_0_1,
3292
+ 'demo-monitoring': DEMO_MONITORING_AGENT_SPEC_0_0_1,
2570
3293
  'demo-one-trigger-approval': DEMO_ONE_TRIGGER_APPROVAL_AGENT_SPEC_0_0_1,
2571
3294
  'demo-one-trigger': DEMO_ONE_TRIGGER_AGENT_SPEC_0_0_1,
3295
+ 'demo-outputs': DEMO_OUTPUTS_AGENT_SPEC_0_0_1,
3296
+ 'demo-parameters': DEMO_PARAMETERS_AGENT_SPEC_0_0_1,
2572
3297
  'demo-simple': DEMO_SIMPLE_AGENT_SPEC_0_0_1,
3298
+ 'demo-subagents': DEMO_SUBAGENTS_AGENT_SPEC_0_0_1,
3299
+ 'demo-tavily-codemode': DEMO_TAVILY_CODEMODE_AGENT_SPEC_0_0_1,
3300
+ 'demo-tavily-no-codemode': DEMO_TAVILY_NO_CODEMODE_AGENT_SPEC_0_0_1,
2573
3301
  'end-of-month-sales-performance': END_OF_MONTH_SALES_PERFORMANCE_AGENT_SPEC_0_0_1,
2574
3302
  'extract-data-from-files': EXTRACT_DATA_FROM_FILES_AGENT_SPEC_0_0_1,
2575
3303
  'financial-viz': FINANCIAL_VIZ_AGENT_SPEC_0_0_1,