@datalayer/agent-runtimes 1.0.2 → 1.0.3

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 (615) hide show
  1. package/README.md +1 -1
  2. package/lib/Agent.js +2 -2
  3. package/lib/AgentLexical.d.ts +1 -12
  4. package/lib/AgentLexical.js +3 -14
  5. package/lib/AgentNotebook.js +3 -3
  6. package/lib/App.js +2 -2
  7. package/lib/{components/chat/components → agents}/AgentDetails.d.ts +13 -2
  8. package/lib/{components/chat/components → agents}/AgentDetails.js +6 -12
  9. package/lib/api/agents.d.ts +47 -0
  10. package/lib/api/agents.js +106 -0
  11. package/lib/api/context.d.ts +17 -0
  12. package/lib/api/context.js +45 -0
  13. package/lib/api/evals.d.ts +27 -0
  14. package/lib/api/evals.js +63 -0
  15. package/lib/api/events.d.ts +17 -0
  16. package/lib/api/events.js +93 -0
  17. package/lib/{components/chat → api}/handler.js +1 -1
  18. package/lib/api/index.d.ts +15 -0
  19. package/lib/api/index.js +20 -0
  20. package/lib/api/notifications.d.ts +39 -0
  21. package/lib/api/notifications.js +103 -0
  22. package/lib/api/output.d.ts +28 -0
  23. package/lib/api/output.js +64 -0
  24. package/lib/api/tool-approvals.d.ts +62 -0
  25. package/lib/api/tool-approvals.js +145 -0
  26. package/lib/{components/chat/components → chat}/Chat.d.ts +24 -15
  27. package/lib/{components/chat/components → chat}/Chat.js +16 -16
  28. package/lib/{components/chat/components → chat}/ChatFloating.d.ts +17 -9
  29. package/lib/{components/chat/components → chat}/ChatFloating.js +17 -9
  30. package/lib/{components/chat/components → chat}/ChatInline.d.ts +2 -2
  31. package/lib/{components/chat/components → chat}/ChatInline.js +8 -6
  32. package/lib/{components/chat/components → chat}/ChatPopupStandalone.d.ts +3 -4
  33. package/lib/{components/chat/components → chat}/ChatPopupStandalone.js +6 -6
  34. package/lib/{components/chat/components → chat}/ChatSidebar.d.ts +14 -5
  35. package/lib/{components/chat/components → chat}/ChatSidebar.js +48 -26
  36. package/lib/{components/chat/components → chat}/ChatStandalone.d.ts +3 -4
  37. package/lib/{components/chat/components → chat}/ChatStandalone.js +5 -5
  38. package/lib/chat/base/ChatBase.d.ts +6 -0
  39. package/lib/chat/base/ChatBase.js +1287 -0
  40. package/lib/chat/display/EmptyState.d.ts +27 -0
  41. package/lib/chat/display/EmptyState.js +41 -0
  42. package/lib/{components/chat/components/elements → chat/display}/FloatingBrandButton.d.ts +1 -1
  43. package/lib/{components/chat/components/elements → chat/display}/FloatingBrandButton.js +1 -1
  44. package/lib/{components/chat/components/elements → chat/display}/PoweredByTag.d.ts +1 -1
  45. package/lib/{components/chat/components/elements → chat/header}/ChatHeader.d.ts +1 -4
  46. package/lib/{components/chat/components/elements → chat/header}/ChatHeader.js +1 -1
  47. package/lib/chat/header/ChatHeaderBase.d.ts +38 -0
  48. package/lib/chat/header/ChatHeaderBase.js +83 -0
  49. package/lib/chat/index.d.ts +66 -0
  50. package/lib/chat/index.js +74 -0
  51. package/lib/chat/indicators/McpStatusIndicator.d.ts +9 -0
  52. package/lib/chat/indicators/McpStatusIndicator.js +128 -0
  53. package/lib/chat/indicators/SandboxStatusIndicator.d.ts +10 -0
  54. package/lib/chat/indicators/SandboxStatusIndicator.js +175 -0
  55. package/lib/chat/indicators/index.d.ts +17 -0
  56. package/lib/chat/indicators/index.js +19 -0
  57. package/lib/chat/messages/ChatMessageList.d.ts +49 -0
  58. package/lib/chat/messages/ChatMessageList.js +319 -0
  59. package/lib/{components/chat/components/elements → chat/messages}/ChatMessages.d.ts +2 -2
  60. package/lib/{components/chat/components/elements → chat/messages}/ChatMessages.js +6 -4
  61. package/lib/{components/chat/components → chat}/parts/DynamicToolPart.d.ts +1 -1
  62. package/lib/{components/chat/components/elements → chat/parts}/MessagePart.d.ts +1 -1
  63. package/lib/{components/chat/components/elements → chat/parts}/MessagePart.js +4 -4
  64. package/lib/{components/chat/components → chat}/parts/ReasoningPart.js +1 -1
  65. package/lib/{components/chat/components → chat}/parts/TextPart.d.ts +1 -1
  66. package/lib/{components/chat/components → chat}/parts/ToolPart.js +1 -1
  67. package/lib/{components/chat/components → chat}/parts/index.d.ts +2 -1
  68. package/lib/{components/chat/components → chat}/parts/index.js +2 -1
  69. package/lib/chat/prompt/InputFooter.d.ts +43 -0
  70. package/lib/chat/prompt/InputFooter.js +135 -0
  71. package/lib/chat/prompt/InputPrompt.d.ts +60 -0
  72. package/lib/chat/prompt/InputPrompt.js +83 -0
  73. package/lib/chat/prompt/InputPromptFooter.d.ts +25 -0
  74. package/lib/chat/prompt/InputPromptFooter.js +15 -0
  75. package/lib/chat/prompt/InputPromptHeader.d.ts +15 -0
  76. package/lib/chat/prompt/InputPromptHeader.js +15 -0
  77. package/lib/chat/prompt/InputPromptLexical.d.ts +16 -0
  78. package/lib/chat/prompt/InputPromptLexical.js +122 -0
  79. package/lib/chat/prompt/InputPromptText.d.ts +24 -0
  80. package/lib/chat/prompt/InputPromptText.js +66 -0
  81. package/lib/chat/prompt/index.d.ts +11 -0
  82. package/lib/chat/prompt/index.js +15 -0
  83. package/lib/{components/chat/components → chat}/styles/streamdownStyles.d.ts +1 -1
  84. package/lib/chat/tools/ToolApprovalBanner.d.ts +31 -0
  85. package/lib/chat/tools/ToolApprovalBanner.js +62 -0
  86. package/lib/{components/chat/components/elements → chat/tools}/ToolApprovalDialog.js +1 -1
  87. package/lib/{components/chat/components/display → chat/tools}/ToolCallDisplay.d.ts +13 -4
  88. package/lib/{components/chat/components/display → chat/tools}/ToolCallDisplay.js +18 -8
  89. package/lib/chat/tools/index.d.ts +8 -0
  90. package/lib/{components/chat/components/display → chat/tools}/index.js +3 -1
  91. package/lib/chat/usage/TokenUsageBar.d.ts +8 -0
  92. package/lib/chat/usage/TokenUsageBar.js +213 -0
  93. package/lib/client/AgentsMixin.d.ts +169 -0
  94. package/lib/client/AgentsMixin.js +279 -0
  95. package/lib/client/index.d.ts +6 -0
  96. package/lib/client/index.js +10 -0
  97. package/lib/components/NotificationEventCard.d.ts +8 -0
  98. package/lib/components/NotificationEventCard.js +152 -0
  99. package/lib/components/OutputCard.d.ts +8 -0
  100. package/lib/components/OutputCard.js +80 -0
  101. package/lib/components/ToolApprovalCard.d.ts +33 -0
  102. package/lib/components/ToolApprovalCard.js +60 -0
  103. package/lib/components/index.d.ts +3 -7
  104. package/lib/components/index.js +3 -4
  105. package/lib/{components → config}/AgentConfiguration.d.ts +43 -21
  106. package/lib/{components → config}/AgentConfiguration.js +48 -28
  107. package/lib/config/index.d.ts +2 -0
  108. package/lib/config/index.js +1 -0
  109. package/lib/{components/chat/components → context}/ContextInspector.js +38 -8
  110. package/lib/{components/chat/components → context}/ContextPanel.js +27 -6
  111. package/lib/context/CostTracker.d.ts +37 -0
  112. package/lib/context/CostTracker.js +124 -0
  113. package/lib/context/TokenUsageChart.d.ts +10 -0
  114. package/lib/context/TokenUsageChart.js +288 -0
  115. package/lib/examples/A2UiComponentGalleryExample.d.ts +20 -0
  116. package/lib/examples/A2UiComponentGalleryExample.js +568 -0
  117. package/lib/examples/A2UiContactCardExample.d.ts +21 -0
  118. package/lib/examples/A2UiContactCardExample.js +432 -0
  119. package/lib/examples/A2UiRestaurantExample.d.ts +11 -3
  120. package/lib/examples/A2UiRestaurantExample.js +63 -98
  121. package/lib/examples/A2UiViewerExample.d.ts +21 -0
  122. package/lib/examples/A2UiViewerExample.js +563 -0
  123. package/lib/examples/AgUiAgenticExample.js +3 -3
  124. package/lib/examples/AgUiBackendToolRenderingExample.js +3 -3
  125. package/lib/examples/{AgUiHaikuGenUIExample.d.ts → AgUiHaikuGenUiExample.d.ts} +4 -4
  126. package/lib/examples/{AgUiHaikuGenUIExample.js → AgUiHaikuGenUiExample.js} +7 -7
  127. package/lib/examples/AgUiHumanInTheLoopExample.js +3 -3
  128. package/lib/examples/AgUiSharedStateExample.js +3 -3
  129. package/lib/examples/{AgUiToolsBasedGenUIExample.d.ts → AgUiToolsBasedGenUiExample.d.ts} +4 -4
  130. package/lib/examples/{AgUiToolsBasedGenUIExample.js → AgUiToolsBasedGenUiExample.js} +7 -7
  131. package/lib/examples/AgentCheckpointsExample.d.ts +19 -0
  132. package/lib/examples/AgentCheckpointsExample.js +506 -0
  133. package/lib/examples/AgentCodemodeExample.d.ts +14 -0
  134. package/lib/examples/AgentCodemodeExample.js +262 -0
  135. package/lib/examples/AgentEvalsExample.d.ts +14 -0
  136. package/lib/examples/AgentEvalsExample.js +216 -0
  137. package/lib/examples/AgentGuardrailsExample.d.ts +14 -0
  138. package/lib/examples/AgentGuardrailsExample.js +218 -0
  139. package/lib/examples/AgentMemoryExample.d.ts +14 -0
  140. package/lib/examples/AgentMemoryExample.js +234 -0
  141. package/lib/examples/AgentMonitoringExample.d.ts +13 -0
  142. package/lib/examples/AgentMonitoringExample.js +311 -0
  143. package/lib/examples/AgentNotificationsExample.d.ts +14 -0
  144. package/lib/examples/AgentNotificationsExample.js +273 -0
  145. package/lib/examples/AgentOtelExample.d.ts +25 -0
  146. package/lib/examples/AgentOtelExample.js +281 -0
  147. package/lib/examples/AgentOutputsExample.d.ts +14 -0
  148. package/lib/examples/AgentOutputsExample.js +211 -0
  149. package/lib/examples/AgentSandboxExample.d.ts +17 -0
  150. package/lib/examples/AgentSandboxExample.js +496 -0
  151. package/lib/examples/AgentSkillsExample.d.ts +3 -0
  152. package/lib/examples/AgentSkillsExample.js +290 -0
  153. package/lib/examples/AgentToolApprovalsExample.d.ts +3 -0
  154. package/lib/examples/AgentToolApprovalsExample.js +672 -0
  155. package/lib/examples/AgentTriggersExample.d.ts +14 -0
  156. package/lib/examples/AgentTriggersExample.js +523 -0
  157. package/lib/examples/{AgentRuntimeFormExample.d.ts → AgentspecExample.d.ts} +3 -4
  158. package/lib/examples/{AgentRuntimeFormExample.js → AgentspecExample.js} +92 -34
  159. package/lib/examples/{JupyterCellExample.js → CellSimpleExample.js} +1 -1
  160. package/lib/examples/{AgentRuntimeCustomExample.js → ChatCustomExample.js} +3 -3
  161. package/lib/examples/{AgentRuntimeChatExample.js → ChatExample.js} +4 -4
  162. package/lib/examples/{AgentRuntimeStandaloneExample.js → ChatStandaloneExample.js} +2 -2
  163. package/lib/examples/CopilotKitLexicalExample.d.ts +3 -14
  164. package/lib/examples/CopilotKitLexicalExample.js +4 -15
  165. package/lib/examples/CopilotKitNotebookExample.js +4 -6
  166. package/lib/examples/DatalayerNotebookExample.js +2 -2
  167. package/lib/examples/{AgentRuntimeLexical2Example.d.ts → Lexical2Example.d.ts} +2 -13
  168. package/lib/examples/{AgentRuntimeLexical2Example.js → Lexical2Example.js} +8 -17
  169. package/lib/examples/{AgentRuntimeLexicalExample.d.ts → LexicalExample.d.ts} +1 -12
  170. package/lib/examples/{AgentRuntimeLexicalExample.js → LexicalExample.js} +28 -27
  171. package/lib/examples/{AgentRuntimeLexicalSidebarExample.d.ts → LexicalSidebarExample.d.ts} +2 -13
  172. package/lib/examples/{AgentRuntimeLexicalSidebarExample.js → LexicalSidebarExample.js} +6 -18
  173. package/lib/examples/{AgentRuntimeNotebookExample.js → NotebookExample.js} +14 -10
  174. package/lib/examples/{AgentRuntimeNotebookSidebarExample.js → NotebookSidebarExample.js} +5 -8
  175. package/lib/examples/{JupyterNotebookExample.js → NotebookSimpleExample.js} +2 -2
  176. package/lib/examples/ag-ui/weather/InlineWeatherCard.js +1 -1
  177. package/lib/examples/components/ExampleWrapper.d.ts +12 -0
  178. package/lib/examples/components/ExampleWrapper.js +16 -0
  179. package/lib/examples/components/Header.d.ts +2 -2
  180. package/lib/examples/components/HeaderControls.js +1 -1
  181. package/lib/examples/components/LexicalEditor.d.ts +1 -12
  182. package/lib/examples/components/LexicalEditor.js +1 -12
  183. package/lib/examples/components/MainContent.d.ts +4 -11
  184. package/lib/examples/components/MainContent.js +6 -60
  185. package/lib/examples/components/index.d.ts +1 -0
  186. package/lib/examples/components/index.js +1 -0
  187. package/lib/examples/example-selector.d.ts +1 -1
  188. package/lib/examples/example-selector.js +35 -22
  189. package/lib/examples/index.d.ts +26 -13
  190. package/lib/examples/index.js +26 -12
  191. package/lib/examples/main.d.ts +6 -0
  192. package/lib/examples/main.js +20 -43
  193. package/lib/examples/utils/examplesStore.d.ts +4 -0
  194. package/lib/examples/{stores → utils}/examplesStore.js +1 -1
  195. package/lib/examples/utils/notebooks/Empty.ipynb.json +33 -0
  196. package/lib/examples/utils/notebooks/NotebookExample2.ipynb.json +48 -0
  197. package/lib/examples/utils/themeStore.d.ts +8 -0
  198. package/lib/examples/utils/themeStore.js +14 -0
  199. package/lib/extensions/A2UIExtension.d.ts +65 -0
  200. package/lib/extensions/A2UIExtension.js +202 -0
  201. package/lib/{components/chat/extensions → extensions}/ExtensionRegistry.d.ts +2 -3
  202. package/lib/{components/chat/extensions → extensions}/ExtensionRegistry.js +0 -2
  203. package/lib/{components/chat/extensions → extensions}/MCPUIExtension.d.ts +2 -2
  204. package/lib/{components/chat/extensions → extensions}/MCPUIExtension.js +1 -1
  205. package/lib/extensions/index.d.ts +9 -0
  206. package/lib/{components/chat/extensions → extensions}/index.js +2 -2
  207. package/lib/hooks/index.d.ts +33 -16
  208. package/lib/hooks/index.js +33 -16
  209. package/lib/hooks/useAIAgentsWebSocket.d.ts +29 -0
  210. package/lib/hooks/useAIAgentsWebSocket.js +136 -0
  211. package/lib/hooks/{useAGUI.d.ts → useAgUi.d.ts} +2 -2
  212. package/lib/hooks/{useAGUI.js → useAgUi.js} +2 -2
  213. package/lib/hooks/useAgents.d.ts +150 -11
  214. package/lib/hooks/useAgents.js +623 -61
  215. package/lib/hooks/{useAgentStore.d.ts → useAgentsCatalog.d.ts} +3 -8
  216. package/lib/hooks/{useAgentStore.js → useAgentsCatalog.js} +9 -3
  217. package/lib/hooks/useAgentsRegistry.d.ts +10 -0
  218. package/lib/hooks/useAgentsRegistry.js +20 -0
  219. package/lib/hooks/useAgentsService.d.ts +22 -0
  220. package/lib/hooks/useAgentsService.js +146 -0
  221. package/lib/hooks/useChat.d.ts +2 -2
  222. package/lib/hooks/useChat.js +14 -8
  223. package/lib/hooks/useCheckpoints.d.ts +176 -0
  224. package/lib/hooks/useCheckpoints.js +466 -0
  225. package/lib/hooks/useConfig.d.ts +11 -0
  226. package/lib/hooks/useConfig.js +46 -0
  227. package/lib/hooks/useContextSnapshot.d.ts +11 -0
  228. package/lib/hooks/useContextSnapshot.js +44 -0
  229. package/lib/hooks/useMonitoring.d.ts +24 -0
  230. package/lib/hooks/useMonitoring.js +111 -0
  231. package/lib/hooks/useNotifications.d.ts +67 -0
  232. package/lib/hooks/useNotifications.js +208 -0
  233. package/lib/hooks/useSandbox.d.ts +12 -0
  234. package/lib/hooks/useSandbox.js +49 -0
  235. package/lib/hooks/useSkills.d.ts +13 -0
  236. package/lib/hooks/useSkills.js +46 -0
  237. package/lib/hooks/useToolApprovals.d.ts +45 -0
  238. package/lib/hooks/useToolApprovals.js +126 -0
  239. package/lib/hooks/useTools.d.ts +4 -4
  240. package/lib/hooks/useTools.js +2 -2
  241. package/lib/hooks/{useVercelChat.d.ts → useVercelAI.d.ts} +3 -3
  242. package/lib/hooks/{useVercelChat.js → useVercelAI.js} +2 -2
  243. package/lib/{components/chat/components → identity}/AgentIdentity.d.ts +1 -1
  244. package/lib/{components/chat/components → identity}/AgentIdentity.js +4 -3
  245. package/lib/identity/index.d.ts +1 -0
  246. package/lib/identity/index.js +2 -0
  247. package/lib/index.d.ts +4 -3
  248. package/lib/index.js +3 -2
  249. package/lib/{components/chat/inference → inference}/BaseInferenceProvider.d.ts +3 -3
  250. package/lib/{components/chat/inference → inference}/DatalayerInferenceProvider.d.ts +3 -3
  251. package/lib/{components/chat/inference → inference}/DatalayerInferenceProvider.js +1 -1
  252. package/lib/{components/chat/inference → inference}/SelfHostedInferenceProvider.d.ts +2 -2
  253. package/lib/{components/chat/inference → inference}/SelfHostedInferenceProvider.js +1 -1
  254. package/lib/{components/chat/inference → inference}/index.d.ts +1 -1
  255. package/lib/{components/chat/inference → inference}/index.js +1 -1
  256. package/lib/lexical/ChatInlinePlugin.d.ts +1 -1
  257. package/lib/lexical/ChatInlinePlugin.js +1 -1
  258. package/lib/{components → mcp}/McpServerManager.d.ts +1 -2
  259. package/lib/mcp/index.d.ts +1 -0
  260. package/lib/{specs/agents/codeai → mcp}/index.js +1 -1
  261. package/lib/{components/chat/middleware → middleware}/MiddlewarePipeline.d.ts +3 -3
  262. package/lib/{components/chat/middleware → middleware}/index.d.ts +1 -1
  263. package/lib/{components/chat/middleware → middleware}/index.js +1 -1
  264. package/lib/{components/chat/protocols → protocols}/A2AAdapter.d.ts +6 -6
  265. package/lib/{components/chat/protocols → protocols}/A2AAdapter.js +3 -3
  266. package/lib/{components/chat/protocols → protocols}/ACPAdapter.d.ts +6 -6
  267. package/lib/{components/chat/protocols → protocols}/ACPAdapter.js +4 -4
  268. package/lib/{components/chat/protocols → protocols}/AGUIAdapter.d.ts +14 -6
  269. package/lib/{components/chat/protocols → protocols}/AGUIAdapter.js +72 -10
  270. package/lib/{components/chat/protocols → protocols}/BaseProtocolAdapter.d.ts +6 -6
  271. package/lib/{components/chat/protocols → protocols}/BaseProtocolAdapter.js +1 -1
  272. package/lib/{components/chat/protocols → protocols}/VercelAIAdapter.d.ts +31 -7
  273. package/lib/protocols/VercelAIAdapter.js +682 -0
  274. package/lib/{components/chat/protocols → protocols}/index.d.ts +1 -2
  275. package/lib/{components/chat/protocols → protocols}/index.js +1 -1
  276. package/lib/specs/agents/agents.d.ts +54 -0
  277. package/lib/specs/agents/{mocks/agents.js → agents.js} +1144 -799
  278. package/lib/specs/agents/index.js +14 -9
  279. package/lib/specs/envvars.d.ts +11 -19
  280. package/lib/specs/envvars.js +42 -21
  281. package/lib/specs/evals.d.ts +20 -0
  282. package/lib/specs/evals.js +133 -0
  283. package/lib/specs/events.d.ts +18 -0
  284. package/lib/specs/events.js +182 -0
  285. package/lib/specs/frontendTools.d.ts +14 -0
  286. package/lib/specs/frontendTools.js +53 -0
  287. package/lib/specs/guardrails.d.ts +22 -0
  288. package/lib/specs/guardrails.js +391 -0
  289. package/lib/specs/index.d.ts +15 -2
  290. package/lib/specs/index.js +15 -2
  291. package/lib/specs/mcpServers.d.ts +13 -11
  292. package/lib/specs/mcpServers.js +82 -28
  293. package/lib/specs/memory.d.ts +34 -0
  294. package/lib/specs/memory.js +99 -0
  295. package/lib/specs/models.d.ts +21 -34
  296. package/lib/specs/models.js +61 -41
  297. package/lib/specs/notifications.d.ts +17 -0
  298. package/lib/specs/notifications.js +187 -0
  299. package/lib/specs/outputs.d.ts +19 -0
  300. package/lib/specs/outputs.js +112 -0
  301. package/lib/specs/skills.d.ts +7 -16
  302. package/lib/specs/skills.js +89 -12
  303. package/lib/specs/teams/index.d.ts +17 -0
  304. package/lib/specs/teams/index.js +37 -0
  305. package/lib/specs/teams/teams.d.ts +27 -0
  306. package/lib/specs/teams/teams.js +1120 -0
  307. package/lib/specs/tools.d.ts +15 -0
  308. package/lib/specs/tools.js +83 -0
  309. package/lib/specs/triggers.d.ts +15 -0
  310. package/lib/specs/triggers.js +117 -0
  311. package/lib/stores/agentsStore.d.ts +123 -0
  312. package/lib/stores/agentsStore.js +270 -0
  313. package/lib/{components/chat/store → stores}/chatStore.d.ts +3 -2
  314. package/lib/{components/chat/store → stores}/chatStore.js +2 -2
  315. package/lib/{components/chat/store → stores}/conversationStore.d.ts +1 -1
  316. package/lib/{components/chat/store → stores}/conversationStore.js +1 -1
  317. package/lib/{components/chat/store → stores}/index.d.ts +3 -2
  318. package/lib/{components/chat/store → stores}/index.js +3 -2
  319. package/lib/{components/chat/tools → tools}/ToolExecutor.d.ts +2 -2
  320. package/lib/{components/chat/tools → tools}/ToolExecutor.js +1 -1
  321. package/lib/tools/adapters/agent-runtimes/AgentRuntimesToolAdapter.d.ts +1 -1
  322. package/lib/tools/adapters/agent-runtimes/lexicalHooks.d.ts +14 -10
  323. package/lib/tools/adapters/agent-runtimes/lexicalHooks.js +31 -21
  324. package/lib/tools/adapters/agent-runtimes/notebookHooks.d.ts +1 -1
  325. package/lib/tools/index.d.ts +3 -0
  326. package/lib/tools/index.js +3 -7
  327. package/lib/types/a2a.d.ts +39 -0
  328. package/lib/types/acp.d.ts +21 -0
  329. package/lib/types/ag-ui.d.ts +25 -0
  330. package/lib/types/agents-lifecycle.d.ts +36 -0
  331. package/lib/types/agents.d.ts +80 -0
  332. package/lib/types/agents.js +22 -0
  333. package/lib/types/agentspecs.d.ts +90 -0
  334. package/lib/{components/chat/components/base/ChatBase.d.ts → types/chat.d.ts} +59 -99
  335. package/lib/types/checkpoints.d.ts +32 -0
  336. package/lib/types/checkpoints.js +5 -0
  337. package/lib/types/config.d.ts +67 -0
  338. package/lib/{runtime/types.js → types/config.js} +2 -2
  339. package/lib/types/connection.d.ts +31 -0
  340. package/lib/types/connection.js +5 -0
  341. package/lib/types/context.d.ts +67 -0
  342. package/lib/types/context.js +5 -0
  343. package/lib/types/cost.d.ts +42 -0
  344. package/lib/types/cost.js +5 -0
  345. package/lib/types/envvars.d.ts +21 -0
  346. package/lib/types/envvars.js +5 -0
  347. package/lib/types/evals.d.ts +66 -0
  348. package/lib/types/evals.js +5 -0
  349. package/lib/types/events.d.ts +49 -0
  350. package/lib/types/events.js +5 -0
  351. package/lib/types/eventspecs.d.ts +39 -0
  352. package/lib/types/eventspecs.js +5 -0
  353. package/lib/types/examples.d.ts +31 -0
  354. package/lib/types/examples.js +5 -0
  355. package/lib/{components/chat/types → types}/execution.d.ts +10 -1
  356. package/lib/{components/chat/types/extension.d.ts → types/extensions.d.ts} +3 -3
  357. package/lib/types/guardrails.d.ts +106 -0
  358. package/lib/types/guardrails.js +5 -0
  359. package/lib/types/index.d.ts +36 -2
  360. package/lib/types/index.js +35 -2
  361. package/lib/{components/chat/types → types}/inference.d.ts +3 -3
  362. package/lib/types/inference.js +5 -0
  363. package/lib/types/mcp.d.ts +117 -0
  364. package/lib/types/mcp.js +27 -0
  365. package/lib/types/memory.d.ts +23 -0
  366. package/lib/types/memory.js +5 -0
  367. package/lib/{components/chat/types/message.d.ts → types/messages.d.ts} +20 -1
  368. package/lib/{components/chat/types → types}/middleware.d.ts +3 -3
  369. package/lib/types/models.d.ts +63 -0
  370. package/lib/types/models.js +5 -0
  371. package/lib/types/notifications.d.ts +85 -0
  372. package/lib/types/notifications.js +5 -0
  373. package/lib/types/outputs.d.ts +51 -0
  374. package/lib/types/outputs.js +5 -0
  375. package/lib/{components/chat/types → types}/protocol.d.ts +37 -99
  376. package/lib/types/protocol.js +5 -0
  377. package/lib/types/sandbox.d.ts +27 -0
  378. package/lib/types/sandbox.js +24 -0
  379. package/lib/types/skills.d.ts +74 -0
  380. package/lib/types/skills.js +5 -0
  381. package/lib/types/teams.d.ts +133 -0
  382. package/lib/types/teams.js +5 -0
  383. package/lib/types/tool-approvals.d.ts +39 -0
  384. package/lib/types/tool-approvals.js +5 -0
  385. package/lib/{components/chat/types/tool.d.ts → types/tools.d.ts} +59 -4
  386. package/lib/types/triggers.d.ts +48 -0
  387. package/lib/types/triggers.js +5 -0
  388. package/lib/types/usage.d.ts +36 -0
  389. package/lib/types/usage.js +5 -0
  390. package/lib/utils/index.d.ts +1 -0
  391. package/lib/utils/index.js +5 -0
  392. package/lib/utils/utils.d.ts +60 -0
  393. package/lib/utils/utils.js +205 -0
  394. package/package.json +13 -14
  395. package/scripts/codegen/__pycache__/generate_agents.cpython-313.pyc +0 -0
  396. package/scripts/codegen/__pycache__/generate_envvars.cpython-313.pyc +0 -0
  397. package/scripts/codegen/__pycache__/generate_evals.cpython-313.pyc +0 -0
  398. package/scripts/codegen/__pycache__/generate_guardrails.cpython-313.pyc +0 -0
  399. package/scripts/codegen/__pycache__/generate_mcp_servers.cpython-313.pyc +0 -0
  400. package/scripts/codegen/__pycache__/generate_memory.cpython-313.pyc +0 -0
  401. package/scripts/codegen/__pycache__/generate_models.cpython-313.pyc +0 -0
  402. package/scripts/codegen/__pycache__/generate_notifications.cpython-313.pyc +0 -0
  403. package/scripts/codegen/__pycache__/generate_outputs.cpython-313.pyc +0 -0
  404. package/scripts/codegen/__pycache__/generate_skills.cpython-313.pyc +0 -0
  405. package/scripts/codegen/__pycache__/generate_teams.cpython-313.pyc +0 -0
  406. package/scripts/codegen/__pycache__/generate_tools.cpython-313.pyc +0 -0
  407. package/scripts/codegen/__pycache__/generate_triggers.cpython-313.pyc +0 -0
  408. package/scripts/codegen/__pycache__/versioning.cpython-313.pyc +0 -0
  409. package/scripts/codegen/generate_agents.py +373 -60
  410. package/scripts/codegen/generate_envvars.py +36 -35
  411. package/scripts/codegen/generate_evals.py +279 -0
  412. package/scripts/codegen/generate_events.py +312 -0
  413. package/scripts/codegen/generate_frontend_tools.py +266 -0
  414. package/scripts/codegen/generate_guardrails.py +475 -0
  415. package/scripts/codegen/generate_mcp_servers.py +36 -9
  416. package/scripts/codegen/generate_memory.py +468 -0
  417. package/scripts/codegen/generate_models.py +22 -46
  418. package/scripts/codegen/generate_notifications.py +309 -0
  419. package/scripts/codegen/generate_outputs.py +267 -0
  420. package/scripts/codegen/generate_skills.py +108 -51
  421. package/scripts/codegen/generate_teams.py +922 -0
  422. package/scripts/codegen/generate_tools.py +326 -0
  423. package/scripts/codegen/generate_triggers.py +295 -0
  424. package/scripts/codegen/versioning.py +53 -0
  425. package/lib/components/chat/components/base/ChatBase.js +0 -2242
  426. package/lib/components/chat/components/base/InputPrompt.d.ts +0 -42
  427. package/lib/components/chat/components/base/InputPrompt.js +0 -131
  428. package/lib/components/chat/components/display/index.d.ts +0 -6
  429. package/lib/components/chat/components/index.d.ts +0 -26
  430. package/lib/components/chat/components/index.js +0 -39
  431. package/lib/components/chat/extensions/A2UIExtension.d.ts +0 -87
  432. package/lib/components/chat/extensions/A2UIExtension.js +0 -312
  433. package/lib/components/chat/extensions/index.d.ts +0 -10
  434. package/lib/components/chat/index.d.ts +0 -61
  435. package/lib/components/chat/index.js +0 -76
  436. package/lib/components/chat/protocols/VercelAIAdapter.js +0 -315
  437. package/lib/components/chat/tools/index.d.ts +0 -8
  438. package/lib/components/chat/tools/index.js +0 -11
  439. package/lib/components/chat/types/index.d.ts +0 -12
  440. package/lib/components/chat/types/index.js +0 -17
  441. package/lib/components/sparklines/Sparklines.d.ts +0 -16
  442. package/lib/components/sparklines/Sparklines.js +0 -65
  443. package/lib/components/sparklines/SparklinesLine.d.ts +0 -8
  444. package/lib/components/sparklines/SparklinesLine.js +0 -37
  445. package/lib/components/sparklines/dataProcessing.d.ts +0 -25
  446. package/lib/components/sparklines/dataProcessing.js +0 -35
  447. package/lib/components/sparklines/index.d.ts +0 -4
  448. package/lib/components/sparklines/index.js +0 -7
  449. package/lib/components/sparklines/types.d.ts +0 -36
  450. package/lib/examples/stores/examplesStore.d.ts +0 -5
  451. package/lib/examples/stores/notebooks/Empty.ipynb.json +0 -33
  452. package/lib/examples/stores/notebooks/NotebookExample2.ipynb.json +0 -48
  453. package/lib/examples/stores/themeStore.d.ts +0 -33
  454. package/lib/examples/stores/themeStore.js +0 -38
  455. package/lib/hooks/useAgentRuntimes.d.ts +0 -350
  456. package/lib/hooks/useAgentRuntimes.js +0 -78
  457. package/lib/hooks/useKeyboardShortcuts.d.ts +0 -47
  458. package/lib/hooks/useKeyboardShortcuts.js +0 -153
  459. package/lib/hooks/useMobile.d.ts +0 -1
  460. package/lib/hooks/useMobile.js +0 -19
  461. package/lib/hooks/useNotebookAIAgent.d.ts +0 -8
  462. package/lib/hooks/useNotebookAIAgent.js +0 -73
  463. package/lib/renderers/a2ui/components/A2UIRenderer.d.ts +0 -7
  464. package/lib/renderers/a2ui/components/A2UIRenderer.js +0 -102
  465. package/lib/renderers/a2ui/components/SurfaceRenderer.d.ts +0 -7
  466. package/lib/renderers/a2ui/components/SurfaceRenderer.js +0 -101
  467. package/lib/renderers/a2ui/components/content/AudioPlayer.d.ts +0 -9
  468. package/lib/renderers/a2ui/components/content/AudioPlayer.js +0 -38
  469. package/lib/renderers/a2ui/components/content/Divider.d.ts +0 -9
  470. package/lib/renderers/a2ui/components/content/Divider.js +0 -35
  471. package/lib/renderers/a2ui/components/content/Icon.d.ts +0 -9
  472. package/lib/renderers/a2ui/components/content/Icon.js +0 -110
  473. package/lib/renderers/a2ui/components/content/Image.d.ts +0 -9
  474. package/lib/renderers/a2ui/components/content/Image.js +0 -61
  475. package/lib/renderers/a2ui/components/content/Text.d.ts +0 -9
  476. package/lib/renderers/a2ui/components/content/Text.js +0 -64
  477. package/lib/renderers/a2ui/components/content/Video.d.ts +0 -9
  478. package/lib/renderers/a2ui/components/content/Video.js +0 -37
  479. package/lib/renderers/a2ui/components/content/index.d.ts +0 -6
  480. package/lib/renderers/a2ui/components/content/index.js +0 -25
  481. package/lib/renderers/a2ui/components/index.d.ts +0 -5
  482. package/lib/renderers/a2ui/components/index.js +0 -24
  483. package/lib/renderers/a2ui/components/interactive/Button.d.ts +0 -11
  484. package/lib/renderers/a2ui/components/interactive/Button.js +0 -71
  485. package/lib/renderers/a2ui/components/interactive/CheckBox.d.ts +0 -9
  486. package/lib/renderers/a2ui/components/interactive/CheckBox.js +0 -48
  487. package/lib/renderers/a2ui/components/interactive/DateTimeInput.d.ts +0 -9
  488. package/lib/renderers/a2ui/components/interactive/DateTimeInput.js +0 -62
  489. package/lib/renderers/a2ui/components/interactive/MultipleChoice.d.ts +0 -9
  490. package/lib/renderers/a2ui/components/interactive/MultipleChoice.js +0 -73
  491. package/lib/renderers/a2ui/components/interactive/Slider.d.ts +0 -9
  492. package/lib/renderers/a2ui/components/interactive/Slider.js +0 -53
  493. package/lib/renderers/a2ui/components/interactive/TextField.d.ts +0 -9
  494. package/lib/renderers/a2ui/components/interactive/TextField.js +0 -72
  495. package/lib/renderers/a2ui/components/interactive/index.d.ts +0 -6
  496. package/lib/renderers/a2ui/components/interactive/index.js +0 -25
  497. package/lib/renderers/a2ui/components/layout/Card.d.ts +0 -11
  498. package/lib/renderers/a2ui/components/layout/Card.js +0 -30
  499. package/lib/renderers/a2ui/components/layout/Column.d.ts +0 -11
  500. package/lib/renderers/a2ui/components/layout/Column.js +0 -65
  501. package/lib/renderers/a2ui/components/layout/List.d.ts +0 -11
  502. package/lib/renderers/a2ui/components/layout/List.js +0 -55
  503. package/lib/renderers/a2ui/components/layout/Modal.d.ts +0 -11
  504. package/lib/renderers/a2ui/components/layout/Modal.js +0 -58
  505. package/lib/renderers/a2ui/components/layout/Row.d.ts +0 -11
  506. package/lib/renderers/a2ui/components/layout/Row.js +0 -65
  507. package/lib/renderers/a2ui/components/layout/Tabs.d.ts +0 -11
  508. package/lib/renderers/a2ui/components/layout/Tabs.js +0 -48
  509. package/lib/renderers/a2ui/components/layout/index.d.ts +0 -6
  510. package/lib/renderers/a2ui/components/layout/index.js +0 -25
  511. package/lib/renderers/a2ui/context/A2UIContext.d.ts +0 -17
  512. package/lib/renderers/a2ui/context/A2UIContext.js +0 -54
  513. package/lib/renderers/a2ui/context/ThemeContext.d.ts +0 -20
  514. package/lib/renderers/a2ui/context/ThemeContext.js +0 -333
  515. package/lib/renderers/a2ui/hooks/useA2UI.d.ts +0 -36
  516. package/lib/renderers/a2ui/hooks/useA2UI.js +0 -62
  517. package/lib/renderers/a2ui/hooks/useDataBinding.d.ts +0 -8
  518. package/lib/renderers/a2ui/hooks/useDataBinding.js +0 -83
  519. package/lib/renderers/a2ui/index.d.ts +0 -9
  520. package/lib/renderers/a2ui/index.js +0 -28
  521. package/lib/renderers/a2ui/lib/utils.d.ts +0 -11
  522. package/lib/renderers/a2ui/lib/utils.js +0 -38
  523. package/lib/renderers/a2ui/types/index.d.ts +0 -17
  524. package/lib/runtime/index.d.ts +0 -38
  525. package/lib/runtime/index.js +0 -40
  526. package/lib/runtime/runtimeStore.d.ts +0 -76
  527. package/lib/runtime/runtimeStore.js +0 -184
  528. package/lib/runtime/types.d.ts +0 -84
  529. package/lib/runtime/useAgentConnection.d.ts +0 -45
  530. package/lib/runtime/useAgentConnection.js +0 -112
  531. package/lib/runtime/useAgentRuntime.d.ts +0 -93
  532. package/lib/runtime/useAgentRuntime.js +0 -125
  533. package/lib/specs/agents/codeai/agents.d.ts +0 -28
  534. package/lib/specs/agents/codeai/agents.js +0 -179
  535. package/lib/specs/agents/codeai/index.d.ts +0 -1
  536. package/lib/specs/agents/codemode-paper/agents.d.ts +0 -31
  537. package/lib/specs/agents/codemode-paper/agents.js +0 -378
  538. package/lib/specs/agents/codemode-paper/index.d.ts +0 -1
  539. package/lib/specs/agents/codemode-paper/index.js +0 -5
  540. package/lib/specs/agents/datalayer-ai/agents.d.ts +0 -31
  541. package/lib/specs/agents/datalayer-ai/agents.js +0 -352
  542. package/lib/specs/agents/datalayer-ai/index.d.ts +0 -1
  543. package/lib/specs/agents/datalayer-ai/index.js +0 -5
  544. package/lib/specs/agents/mocks/agents.d.ts +0 -43
  545. package/lib/specs/agents/mocks/index.d.ts +0 -1
  546. package/lib/specs/agents/mocks/index.js +0 -5
  547. package/lib/state/index.d.ts +0 -1
  548. package/lib/state/index.js +0 -5
  549. package/lib/state/substates/AIAgentState.d.ts +0 -80
  550. package/lib/state/substates/AIAgentState.js +0 -108
  551. package/lib/state/substates/index.d.ts +0 -1
  552. package/lib/state/substates/index.js +0 -5
  553. package/lib/types/AIAgent.d.ts +0 -17
  554. package/lib/types/Types.d.ts +0 -217
  555. /package/lib/{components/chat → api}/handler.d.ts +0 -0
  556. /package/lib/{renderers/index.d.ts → api/utils.d.ts} +0 -0
  557. /package/lib/{renderers/index.js → api/utils.js} +0 -0
  558. /package/lib/{components/chat/components/elements → chat/display}/PoweredByTag.js +0 -0
  559. /package/lib/{components/chat/components → chat}/parts/DynamicToolPart.js +0 -0
  560. /package/lib/{components/chat/components → chat}/parts/ReasoningPart.d.ts +0 -0
  561. /package/lib/{components/chat/components → chat}/parts/TextPart.js +0 -0
  562. /package/lib/{components/chat/components → chat}/parts/ToolPart.d.ts +0 -0
  563. /package/lib/{components/chat/components → chat}/styles/streamdownStyles.js +0 -0
  564. /package/lib/{components/chat/components/elements → chat/tools}/ToolApprovalDialog.d.ts +0 -0
  565. /package/lib/{components/chat/components → context}/ContextDistribution.d.ts +0 -0
  566. /package/lib/{components/chat/components → context}/ContextDistribution.js +0 -0
  567. /package/lib/{components/chat/components → context}/ContextInspector.d.ts +0 -0
  568. /package/lib/{components/chat/components → context}/ContextPanel.d.ts +0 -0
  569. /package/lib/{components/chat/components → context}/ContextUsage.d.ts +0 -0
  570. /package/lib/{components/chat/components → context}/ContextUsage.js +0 -0
  571. /package/lib/examples/{JupyterCellExample.d.ts → CellSimpleExample.d.ts} +0 -0
  572. /package/lib/examples/{AgentRuntimeCustomExample.d.ts → ChatCustomExample.d.ts} +0 -0
  573. /package/lib/examples/{AgentRuntimeChatExample.d.ts → ChatExample.d.ts} +0 -0
  574. /package/lib/examples/{AgentRuntimeStandaloneExample.d.ts → ChatStandaloneExample.d.ts} +0 -0
  575. /package/lib/examples/{AgentRuntimeNotebookExample.d.ts → NotebookExample.d.ts} +0 -0
  576. /package/lib/examples/{AgentRuntimeNotebookSidebarExample.d.ts → NotebookSidebarExample.d.ts} +0 -0
  577. /package/lib/examples/{JupyterNotebookExample.d.ts → NotebookSimpleExample.d.ts} +0 -0
  578. /package/lib/examples/{stores → utils}/agents/earthquake-detector.ipynb.json +0 -0
  579. /package/lib/examples/{stores → utils}/agents/earthquake-detector.json +0 -0
  580. /package/lib/examples/{stores → utils}/agents/earthquake-detector.lexical.json +0 -0
  581. /package/lib/examples/{stores → utils}/agents/sales-forecaster.ipynb.json +0 -0
  582. /package/lib/examples/{stores → utils}/agents/sales-forecaster.json +0 -0
  583. /package/lib/examples/{stores → utils}/agents/sales-forecaster.lexical.json +0 -0
  584. /package/lib/examples/{stores → utils}/agents/social-post-generator.ipynb.json +0 -0
  585. /package/lib/examples/{stores → utils}/agents/social-post-generator.json +0 -0
  586. /package/lib/examples/{stores → utils}/agents/social-post-generator.lexical.json +0 -0
  587. /package/lib/examples/{stores → utils}/agents/stock-market.ipynb.json +0 -0
  588. /package/lib/examples/{stores → utils}/agents/stock-market.json +0 -0
  589. /package/lib/examples/{stores → utils}/agents/stock-market.lexical.json +0 -0
  590. /package/lib/examples/{stores → utils}/notebooks/IPyWidgetsExample.ipynb.json +0 -0
  591. /package/lib/examples/{stores → utils}/notebooks/IPyWidgetsExampleWithState.ipynb.json +0 -0
  592. /package/lib/examples/{stores → utils}/notebooks/Lite.ipynb.json +0 -0
  593. /package/lib/examples/{stores → utils}/notebooks/Matplotlib.ipynb.json +0 -0
  594. /package/lib/examples/{stores → utils}/notebooks/NotebookExample1.ipynb.json +0 -0
  595. /package/lib/examples/{stores → utils}/notebooks/NotebookOutputs.ipynb.json +0 -0
  596. /package/lib/examples/{stores → utils}/notebooks/NotebookToCExample.ipynb.json +0 -0
  597. /package/lib/examples/{stores → utils}/notebooks/OutputIPyWidgetsExample.d.ts +0 -0
  598. /package/lib/examples/{stores → utils}/notebooks/OutputIPyWidgetsExample.js +0 -0
  599. /package/lib/examples/{stores → utils}/notebooks/PyGWalker.ipynb.json +0 -0
  600. /package/lib/examples/{stores → utils}/themedProvider.d.ts +0 -0
  601. /package/lib/examples/{stores → utils}/themedProvider.js +0 -0
  602. /package/lib/{components/chat/inference → inference}/BaseInferenceProvider.js +0 -0
  603. /package/lib/{components → mcp}/McpServerManager.js +0 -0
  604. /package/lib/{components/chat/middleware → middleware}/MiddlewarePipeline.js +0 -0
  605. /package/lib/{components/chat/types/inference.js → types/a2a.js} +0 -0
  606. /package/lib/{components/chat/types/protocol.js → types/acp.js} +0 -0
  607. /package/lib/{components/sparklines/types.js → types/ag-ui.js} +0 -0
  608. /package/lib/{renderers/a2ui/types/index.js → types/agents-lifecycle.js} +0 -0
  609. /package/lib/types/{AIAgent.js → agentspecs.js} +0 -0
  610. /package/lib/types/{Types.js → chat.js} +0 -0
  611. /package/lib/{components/chat/types → types}/execution.js +0 -0
  612. /package/lib/{components/chat/types/extension.js → types/extensions.js} +0 -0
  613. /package/lib/{components/chat/types/message.js → types/messages.js} +0 -0
  614. /package/lib/{components/chat/types → types}/middleware.js +0 -0
  615. /package/lib/{components/chat/types/tool.js → types/tools.js} +0 -0
@@ -0,0 +1,1120 @@
1
+ /*
2
+ * Copyright (c) 2025-2026 Datalayer, Inc.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ // ============================================================================
6
+ // Team Definitions
7
+ // ============================================================================
8
+ export const ANALYZE_CAMPAIGN_PERFORMANCE_TEAM_SPEC_0_0_1 = {
9
+ id: 'analyze-campaign-performance',
10
+ version: '0.0.1',
11
+ name: 'Analyze Campaign Performance',
12
+ description: `A multi-agent team that unifies marketing data from Google Ads, Meta, TikTok, LinkedIn, GA4, CRM, and email platforms. Normalises metrics into a unified view, detects performance anomalies in real time, and generates budget reallocation recommendations to maximise ROAS.`,
13
+ tags: [
14
+ 'marketing',
15
+ 'media',
16
+ 'campaigns',
17
+ 'analytics',
18
+ 'advertising',
19
+ 'social-media',
20
+ ],
21
+ enabled: true,
22
+ icon: 'megaphone',
23
+ emoji: '📢',
24
+ color: '#8250df',
25
+ agentSpecId: 'analyze-campaign-performance:0.0.1',
26
+ orchestrationProtocol: 'datalayer',
27
+ executionMode: 'sequential',
28
+ supervisor: {
29
+ name: 'Campaign Analytics Orchestrator Agent',
30
+ model: 'openai-gpt-4-1',
31
+ },
32
+ routingInstructions: `Start with Platform Connector to pull data from all ad platforms, then Metrics Normaliser for unified KPIs, then Anomaly Detector for real-time performance monitoring, then Budget Optimiser for reallocation recommendations. Escalate CPA spikes above 50% immediately.`,
33
+ validation: { timeout: '300s', retryOnFailure: true, maxRetries: 2 },
34
+ agents: [
35
+ {
36
+ id: 'cp-1',
37
+ name: 'Platform Connector Agent',
38
+ role: 'Primary · Initiator',
39
+ goal: `Pull campaign data from Google Ads, Meta, TikTok, LinkedIn, GA4, and email platforms`,
40
+ model: 'openai-gpt-4-1',
41
+ mcpServer: 'Ad Platforms MCP',
42
+ tools: [
43
+ 'Google Ads Connector',
44
+ 'Meta Ads Connector',
45
+ 'TikTok Ads Connector',
46
+ 'LinkedIn Ads Connector',
47
+ 'GA4 Connector',
48
+ ],
49
+ trigger: 'Schedule: Every 4 hours',
50
+ approval: 'auto',
51
+ },
52
+ {
53
+ id: 'cp-2',
54
+ name: 'Metrics Normaliser Agent',
55
+ role: 'Secondary',
56
+ goal: `Normalise CPA, ROAS, CTR, and attribution across all platforms into unified view`,
57
+ model: 'openai-gpt-4-1',
58
+ mcpServer: 'Analytics MCP',
59
+ tools: [
60
+ 'Metric Unifier',
61
+ 'Currency Converter',
62
+ 'Attribution Mapper',
63
+ 'Naming Convention Resolver',
64
+ ],
65
+ trigger: 'On completion of Platform Connector Agent',
66
+ approval: 'auto',
67
+ },
68
+ {
69
+ id: 'cp-3',
70
+ name: 'Anomaly Detector Agent',
71
+ role: 'Secondary',
72
+ goal: `Monitor all KPIs for CTR drops, CPA spikes, and budget pacing issues`,
73
+ model: 'anthropic-claude-sonnet-4',
74
+ mcpServer: 'Monitoring MCP',
75
+ tools: [
76
+ 'Anomaly Scanner',
77
+ 'Budget Pacer',
78
+ 'Alert Generator',
79
+ 'Campaign Pauser',
80
+ ],
81
+ trigger: 'On completion of Metrics Normaliser Agent',
82
+ approval: 'manual',
83
+ },
84
+ {
85
+ id: 'cp-4',
86
+ name: 'Budget Optimiser Agent',
87
+ role: 'Final',
88
+ goal: `Generate budget reallocation recommendations to maximise ROAS across channels`,
89
+ model: 'openai-gpt-4-1',
90
+ mcpServer: 'Optimisation MCP',
91
+ tools: [
92
+ 'ROAS Calculator',
93
+ 'Budget Allocator',
94
+ 'Scenario Modeller',
95
+ 'Report Generator',
96
+ ],
97
+ trigger: 'On completion of Anomaly Detector Agent',
98
+ approval: 'manual',
99
+ },
100
+ ],
101
+ reactionRules: [
102
+ {
103
+ id: 'rr-camp-1',
104
+ trigger: 'budget_threshold_exceeded',
105
+ action: 'pause_and_notify',
106
+ auto: true,
107
+ maxRetries: 1,
108
+ escalateAfterRetries: 1,
109
+ priority: 'high',
110
+ },
111
+ {
112
+ id: 'rr-camp-2',
113
+ trigger: 'data_quality_low',
114
+ action: 'retry_collection',
115
+ auto: true,
116
+ maxRetries: 3,
117
+ escalateAfterRetries: 3,
118
+ priority: 'medium',
119
+ },
120
+ ],
121
+ healthMonitoring: {
122
+ heartbeatInterval: '30s',
123
+ staleThreshold: '120s',
124
+ unresponsiveThreshold: '300s',
125
+ stuckThreshold: '600s',
126
+ maxRestartAttempts: 3,
127
+ },
128
+ notifications: {
129
+ on_start: true,
130
+ on_completion: true,
131
+ on_failure: true,
132
+ on_escalation: true,
133
+ },
134
+ output: {
135
+ formats: ['pdf', 'csv', 'json'],
136
+ template: 'Campaign Performance Report',
137
+ storage: 's3://reports/campaign-analytics/',
138
+ },
139
+ };
140
+ export const ANALYZE_SUPPORT_TICKETS_TEAM_SPEC_0_0_1 = {
141
+ id: 'analyze-support-tickets',
142
+ version: '0.0.1',
143
+ name: 'Analyze Support Tickets',
144
+ 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.`,
145
+ tags: ['analytics', 'data', 'support', 'tickets'],
146
+ enabled: true,
147
+ icon: 'issue-opened',
148
+ emoji: '🎫',
149
+ color: '#bf8700',
150
+ agentSpecId: 'analyze-support-tickets:0.0.1',
151
+ orchestrationProtocol: 'datalayer',
152
+ executionMode: 'sequential',
153
+ supervisor: { name: 'Support Orchestrator Agent', model: 'openai-gpt-4-1' },
154
+ routingInstructions: `Route new tickets to the Triage Agent first, then to the Categorizer, then to the Pattern Analyzer. Escalate P1/critical tickets immediately to human support leads.`,
155
+ validation: { timeout: '180s', retryOnFailure: true, maxRetries: 2 },
156
+ agents: [
157
+ {
158
+ id: 'st-1',
159
+ name: 'Triage Agent',
160
+ role: 'Primary · Initiator',
161
+ goal: `Ingest new support tickets and assess urgency level (P1-P4)`,
162
+ model: 'openai-gpt-4-1',
163
+ mcpServer: 'Helpdesk MCP',
164
+ tools: ['Ticket Reader', 'Priority Classifier'],
165
+ trigger: 'Event: new ticket received',
166
+ approval: 'auto',
167
+ },
168
+ {
169
+ id: 'st-2',
170
+ name: 'Categorizer Agent',
171
+ role: 'Secondary',
172
+ goal: `Categorize tickets by topic, product area, and sentiment`,
173
+ model: 'openai-gpt-4-1',
174
+ mcpServer: 'NLP Pipeline MCP',
175
+ tools: ['Topic Classifier', 'Sentiment Analyzer', 'Product Tagger'],
176
+ trigger: 'On completion of Triage Agent',
177
+ approval: 'auto',
178
+ },
179
+ {
180
+ id: 'st-3',
181
+ name: 'Pattern Analyzer Agent',
182
+ role: 'Final',
183
+ goal: `Identify recurring issues and generate resolution recommendations`,
184
+ model: 'anthropic-claude-sonnet-4',
185
+ mcpServer: 'Analytics MCP',
186
+ tools: [
187
+ 'Pattern Detector',
188
+ 'Knowledge Base Search',
189
+ 'Resolution Generator',
190
+ ],
191
+ trigger: 'On completion of Categorizer Agent',
192
+ approval: 'manual',
193
+ },
194
+ ],
195
+ reactionRules: [
196
+ {
197
+ id: 'rr-supp-1',
198
+ trigger: 'ticket_surge_detected',
199
+ action: 'escalate_to_supervisor',
200
+ auto: true,
201
+ maxRetries: 2,
202
+ escalateAfterRetries: 2,
203
+ priority: 'high',
204
+ },
205
+ {
206
+ id: 'rr-supp-2',
207
+ trigger: 'classification_confidence_low',
208
+ action: 'request_human_review',
209
+ auto: false,
210
+ maxRetries: 1,
211
+ escalateAfterRetries: 1,
212
+ priority: 'medium',
213
+ },
214
+ ],
215
+ healthMonitoring: {
216
+ heartbeatInterval: '15s',
217
+ staleThreshold: '60s',
218
+ unresponsiveThreshold: '180s',
219
+ stuckThreshold: '300s',
220
+ maxRestartAttempts: 3,
221
+ },
222
+ notifications: {
223
+ on_start: false,
224
+ on_completion: true,
225
+ on_failure: true,
226
+ on_escalation: true,
227
+ },
228
+ output: {
229
+ formats: ['pdf', 'json'],
230
+ template: 'Support Ticket Analysis',
231
+ storage: 's3://reports/support-analytics/',
232
+ },
233
+ };
234
+ export const AUDIT_INVENTORY_LEVELS_TEAM_SPEC_0_0_1 = {
235
+ id: 'audit-inventory-levels',
236
+ version: '0.0.1',
237
+ name: 'Audit Inventory Levels',
238
+ 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.`,
239
+ tags: ['finance', 'automation', 'inventory', 'supply-chain'],
240
+ enabled: true,
241
+ icon: 'package',
242
+ emoji: '📦',
243
+ color: '#0969da',
244
+ agentSpecId: 'audit-inventory-levels:0.0.1',
245
+ orchestrationProtocol: 'datalayer',
246
+ executionMode: 'sequential',
247
+ supervisor: { name: 'Inventory Orchestrator Agent', model: 'openai-gpt-4-1' },
248
+ routingInstructions: `Start with the Scanner to pull current levels, then Auditor to check discrepancies, then Forecaster for demand predictions, then Planner for reorder recommendations, then Reporter for the final audit report. Escalate critical shortages immediately.`,
249
+ validation: { timeout: '600s', retryOnFailure: true, maxRetries: 3 },
250
+ agents: [
251
+ {
252
+ id: 'inv-1',
253
+ name: 'Inventory Scanner Agent',
254
+ role: 'Primary · Initiator',
255
+ goal: `Pull current inventory levels from all warehouse management systems`,
256
+ model: 'openai-gpt-4-1',
257
+ mcpServer: 'Warehouse MCP',
258
+ tools: ['WMS Connector', 'Barcode Scanner API'],
259
+ trigger: 'Schedule: Every 6 hours',
260
+ approval: 'auto',
261
+ },
262
+ {
263
+ id: 'inv-2',
264
+ name: 'Discrepancy Auditor Agent',
265
+ role: 'Secondary',
266
+ goal: `Compare system counts vs physical counts and flag discrepancies`,
267
+ model: 'openai-gpt-4-1',
268
+ mcpServer: 'Audit MCP',
269
+ tools: ['Count Comparator', 'Discrepancy Logger', 'Shrinkage Calculator'],
270
+ trigger: 'On completion of Inventory Scanner',
271
+ approval: 'auto',
272
+ },
273
+ {
274
+ id: 'inv-3',
275
+ name: 'Demand Forecaster Agent',
276
+ role: 'Secondary',
277
+ goal: `Forecast demand by SKU using historical sales and seasonal patterns`,
278
+ model: 'anthropic-claude-sonnet-4',
279
+ mcpServer: 'Analytics MCP',
280
+ tools: [
281
+ 'Time Series Model',
282
+ 'Seasonal Analyzer',
283
+ 'External Signals Fetcher',
284
+ ],
285
+ trigger: 'On completion of Discrepancy Auditor',
286
+ approval: 'auto',
287
+ },
288
+ {
289
+ id: 'inv-4',
290
+ name: 'Reorder Planner Agent',
291
+ role: 'Secondary',
292
+ goal: `Calculate optimal reorder points and generate purchase order recommendations`,
293
+ model: 'openai-gpt-4-1',
294
+ mcpServer: 'Procurement MCP',
295
+ tools: ['EOQ Calculator', 'Supplier Catalog', 'PO Generator'],
296
+ trigger: 'On completion of Demand Forecaster',
297
+ approval: 'manual',
298
+ },
299
+ {
300
+ id: 'inv-5',
301
+ name: 'Audit Report Agent',
302
+ role: 'Final',
303
+ goal: `Compile inventory audit report with discrepancies, forecasts, and reorder plan`,
304
+ model: 'openai-gpt-4-1',
305
+ mcpServer: 'Document Generation MCP',
306
+ tools: ['PDF Generator', 'Chart Builder', 'Email Sender'],
307
+ trigger: 'On completion of Reorder Planner',
308
+ approval: 'auto',
309
+ },
310
+ ],
311
+ reactionRules: [
312
+ {
313
+ id: 'rr-inv-1',
314
+ trigger: 'stockout_risk_detected',
315
+ action: 'escalate_to_supervisor',
316
+ auto: true,
317
+ maxRetries: 1,
318
+ escalateAfterRetries: 1,
319
+ priority: 'high',
320
+ },
321
+ {
322
+ id: 'rr-inv-2',
323
+ trigger: 'discrepancy_threshold_exceeded',
324
+ action: 'flag_for_manual_audit',
325
+ auto: false,
326
+ maxRetries: 2,
327
+ escalateAfterRetries: 2,
328
+ priority: 'high',
329
+ },
330
+ ],
331
+ healthMonitoring: {
332
+ heartbeatInterval: '30s',
333
+ staleThreshold: '120s',
334
+ unresponsiveThreshold: '300s',
335
+ stuckThreshold: '600s',
336
+ maxRestartAttempts: 3,
337
+ },
338
+ notifications: {
339
+ on_start: true,
340
+ on_completion: true,
341
+ on_failure: true,
342
+ on_escalation: true,
343
+ },
344
+ output: {
345
+ formats: ['pdf', 'xlsx', 'csv'],
346
+ template: 'Inventory Audit Report',
347
+ storage: 's3://reports/inventory-audits/',
348
+ },
349
+ };
350
+ export const AUTOMATE_REGULATORY_REPORTING_TEAM_SPEC_0_0_1 = {
351
+ id: 'automate-regulatory-reporting',
352
+ version: '0.0.1',
353
+ name: 'Automate Regulatory Reporting',
354
+ 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.`,
355
+ tags: ['finance', 'compliance', 'regulatory', 'risk', 'banking', 'audit'],
356
+ enabled: true,
357
+ icon: 'shield-check',
358
+ emoji: '🏦',
359
+ color: '#0969da',
360
+ agentSpecId: 'automate-regulatory-reporting:0.0.1',
361
+ orchestrationProtocol: 'datalayer',
362
+ executionMode: 'sequential',
363
+ supervisor: {
364
+ name: 'Compliance Orchestrator Agent',
365
+ model: 'openai-gpt-4-1',
366
+ },
367
+ routingInstructions: `Start with Data Ingestion to pull positions and transactions, then Risk Calculator for metric computation, then Reconciliation Agent to cross-check figures, then Validation Agent for regulatory rule checks, then Report Generator for submission-ready output. Escalate any reconciliation breaks above $10K immediately to the compliance team.`,
368
+ validation: { timeout: '900s', retryOnFailure: true, maxRetries: 2 },
369
+ agents: [
370
+ {
371
+ id: 'reg-1',
372
+ name: 'Data Ingestion Agent',
373
+ role: 'Primary · Initiator',
374
+ goal: `Extract positions, transactions, and P&L from trading and accounting systems`,
375
+ model: 'openai-gpt-4-1',
376
+ mcpServer: 'Trading Systems MCP',
377
+ tools: ['Position Reader', 'Transaction Fetcher', 'P&L Extractor'],
378
+ trigger: 'Schedule: Monthly on the 3rd business day',
379
+ approval: 'auto',
380
+ },
381
+ {
382
+ id: 'reg-2',
383
+ name: 'Risk Calculator Agent',
384
+ role: 'Secondary',
385
+ goal: `Compute Basel III/IV risk-weighted assets, capital ratios, and VaR metrics`,
386
+ model: 'anthropic-claude-sonnet-4',
387
+ mcpServer: 'Risk Engine MCP',
388
+ tools: [
389
+ 'RWA Calculator',
390
+ 'VaR Engine',
391
+ 'Capital Ratio Computer',
392
+ 'Stress Test Runner',
393
+ ],
394
+ trigger: 'On completion of Data Ingestion Agent',
395
+ approval: 'auto',
396
+ },
397
+ {
398
+ id: 'reg-3',
399
+ name: 'Reconciliation Agent',
400
+ role: 'Secondary',
401
+ goal: `Cross-check computed figures against source systems and flag discrepancies`,
402
+ model: 'openai-gpt-4-1',
403
+ mcpServer: 'Reconciliation MCP',
404
+ tools: ['Position Reconciler', 'Break Detector', 'Audit Logger'],
405
+ trigger: 'On completion of Risk Calculator Agent',
406
+ approval: 'auto',
407
+ },
408
+ {
409
+ id: 'reg-4',
410
+ name: 'Validation Agent',
411
+ role: 'Secondary',
412
+ goal: `Validate all metrics against Basel III/IV, MiFID II, and SOX regulatory rules`,
413
+ model: 'openai-gpt-4-1',
414
+ mcpServer: 'Compliance Rules MCP',
415
+ tools: [
416
+ 'Basel Rule Validator',
417
+ 'MiFID II Checker',
418
+ 'SOX Control Verifier',
419
+ ],
420
+ trigger: 'On completion of Reconciliation Agent',
421
+ approval: 'manual',
422
+ },
423
+ {
424
+ id: 'reg-5',
425
+ name: 'Report Generator Agent',
426
+ role: 'Final',
427
+ goal: `Generate submission-ready regulatory reports with full data lineage and audit trail`,
428
+ model: 'openai-gpt-4-1',
429
+ mcpServer: 'Document Generation MCP',
430
+ tools: ['PDF Generator', 'XBRL Formatter', 'Email Sender'],
431
+ trigger: 'On completion of Validation Agent',
432
+ approval: 'auto',
433
+ },
434
+ ],
435
+ reactionRules: [
436
+ {
437
+ id: 'rr-reg-1',
438
+ trigger: 'compliance_violation_detected',
439
+ action: 'halt_and_escalate',
440
+ auto: true,
441
+ maxRetries: 0,
442
+ escalateAfterRetries: 0,
443
+ priority: 'critical',
444
+ },
445
+ {
446
+ id: 'rr-reg-2',
447
+ trigger: 'data_validation_failure',
448
+ action: 'retry_with_fallback',
449
+ auto: true,
450
+ maxRetries: 3,
451
+ escalateAfterRetries: 3,
452
+ priority: 'high',
453
+ },
454
+ ],
455
+ healthMonitoring: {
456
+ heartbeatInterval: '15s',
457
+ staleThreshold: '60s',
458
+ unresponsiveThreshold: '120s',
459
+ stuckThreshold: '300s',
460
+ maxRestartAttempts: 2,
461
+ },
462
+ notifications: {
463
+ on_start: true,
464
+ on_completion: true,
465
+ on_failure: true,
466
+ on_escalation: true,
467
+ },
468
+ output: {
469
+ formats: ['pdf', 'xbrl', 'json'],
470
+ template: 'Regulatory Submission Report',
471
+ storage: 's3://reports/regulatory-submissions/',
472
+ },
473
+ };
474
+ export const COMPREHENSIVE_SALES_ANALYTICS_TEAM_SPEC_0_0_1 = {
475
+ id: 'comprehensive-sales-analytics',
476
+ version: '0.0.1',
477
+ name: 'Comprehensive Sales Analytics',
478
+ 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.`,
479
+ tags: ['sales', 'analytics', 'kpi', 'monitoring', 'horizontal'],
480
+ enabled: true,
481
+ icon: 'graph',
482
+ emoji: '📈',
483
+ color: '#1a7f37',
484
+ agentSpecId: 'comprehensive-sales-analytics:0.0.1',
485
+ orchestrationProtocol: 'datalayer',
486
+ executionMode: 'sequential',
487
+ supervisor: {
488
+ name: 'Sales Analytics Supervisor',
489
+ model: 'anthropic-claude-opus-4',
490
+ },
491
+ routingInstructions: `Route data collection to KPI Collector first, then pass raw metrics to Anomaly Detector and Trend Analyzer in parallel, then aggregate all outputs into the Report Generator. Escalate if anomalies exceed the critical threshold (>25% deviation from target).`,
492
+ validation: { timeout: '300s', retryOnFailure: true, maxRetries: 3 },
493
+ agents: [
494
+ {
495
+ id: 'sa-1',
496
+ name: 'KPI Data Collector',
497
+ role: 'Primary · Initiator',
498
+ goal: `Pull real-time sales metrics from CRM, ERP, and marketing platforms. Normalize data into a unified schema with timestamps, dimensions (region, product line, rep), and measures (revenue, pipeline, conversion).`,
499
+ model: 'openai-gpt-4-1',
500
+ mcpServer: 'CRM Data Server',
501
+ tools: ['get_sales_data', 'get_customer_list', 'API Connector'],
502
+ trigger: 'Schedule: Daily at 7:30 AM',
503
+ approval: 'auto',
504
+ },
505
+ {
506
+ id: 'sa-2',
507
+ name: 'Anomaly Detector',
508
+ role: 'Secondary',
509
+ goal: `Apply statistical anomaly detection (Z-score, IQR, moving average) to the collected KPIs. Flag any metric deviating more than 10% from its rolling 30-day average. Classify anomalies as info, warning, or critical.`,
510
+ model: 'anthropic-claude-sonnet-4',
511
+ mcpServer: 'Analytics Server',
512
+ tools: ['run_analysis', 'Statistical Analysis', 'ML Predictor'],
513
+ trigger: 'On completion of KPI Data Collector',
514
+ approval: 'auto',
515
+ },
516
+ {
517
+ id: 'sa-3',
518
+ name: 'Trend Analyzer',
519
+ role: 'Secondary',
520
+ goal: `Identify week-over-week, month-over-month, and quarter-over-quarter trends. Generate 30-day forecasts for each KPI using time-series models. Highlight the top 3 improving and top 3 declining metrics.`,
521
+ model: 'anthropic-claude-sonnet-4',
522
+ mcpServer: 'Analytics Server',
523
+ tools: ['run_analysis', 'generate_charts', 'Forecaster'],
524
+ trigger: 'On completion of KPI Data Collector',
525
+ approval: 'auto',
526
+ },
527
+ {
528
+ id: 'sa-4',
529
+ name: 'Executive Report Generator',
530
+ role: 'Final',
531
+ goal: `Compile all insights — raw KPIs, anomalies, trends, and forecasts — into a polished executive dashboard with charts, tables, and narrative commentary. Send the report via Slack and email. Highlight critical anomalies with a red-flag summary at the top.`,
532
+ model: 'openai-gpt-4-1',
533
+ mcpServer: 'Document Generation MCP',
534
+ tools: [
535
+ 'PDF Generator',
536
+ 'Chart Builder',
537
+ 'Email Sender',
538
+ 'Slack Notifier',
539
+ ],
540
+ trigger: 'On completion of Anomaly Detector & Trend Analyzer',
541
+ approval: 'manual',
542
+ },
543
+ ],
544
+ reactionRules: [
545
+ {
546
+ id: 'rr-sales-1',
547
+ trigger: 'anomaly_critical',
548
+ action: 'escalate_to_supervisor',
549
+ auto: true,
550
+ maxRetries: 2,
551
+ escalateAfterRetries: 2,
552
+ priority: 'high',
553
+ },
554
+ {
555
+ id: 'rr-sales-2',
556
+ trigger: 'data_stale',
557
+ action: 'retry_collection',
558
+ auto: true,
559
+ maxRetries: 3,
560
+ escalateAfterRetries: 3,
561
+ priority: 'medium',
562
+ },
563
+ ],
564
+ healthMonitoring: {
565
+ heartbeatInterval: '30s',
566
+ staleThreshold: '120s',
567
+ unresponsiveThreshold: '300s',
568
+ stuckThreshold: '600s',
569
+ maxRestartAttempts: 3,
570
+ },
571
+ notifications: {
572
+ on_start: true,
573
+ on_completion: true,
574
+ on_failure: true,
575
+ on_escalation: true,
576
+ },
577
+ output: {
578
+ formats: ['pdf', 'xlsx', 'json'],
579
+ template: 'Executive Sales Dashboard',
580
+ storage: 's3://reports/sales-analytics/',
581
+ },
582
+ };
583
+ export const OPTIMIZE_GRID_OPERATIONS_TEAM_SPEC_0_0_1 = {
584
+ id: 'optimize-grid-operations',
585
+ version: '0.0.1',
586
+ name: 'Optimize Grid Operations',
587
+ description: `A multi-agent team that processes millions of IoT sensor data points from smart meters, substations, and renewable generation assets. Predicts equipment failures 2–4 weeks in advance, optimises load balancing across the grid, and reduces unplanned downtime by 50%.`,
588
+ tags: [
589
+ 'energy',
590
+ 'utilities',
591
+ 'smart-grid',
592
+ 'iot',
593
+ 'predictive-maintenance',
594
+ 'sustainability',
595
+ ],
596
+ enabled: true,
597
+ icon: 'zap',
598
+ emoji: '⚡',
599
+ color: '#1a7f37',
600
+ agentSpecId: 'optimize-grid-operations:0.0.1',
601
+ orchestrationProtocol: 'datalayer',
602
+ executionMode: 'sequential',
603
+ supervisor: {
604
+ name: 'Grid Operations Orchestrator Agent',
605
+ model: 'openai-gpt-4-1',
606
+ },
607
+ routingInstructions: `Start with Sensor Ingestion to process real-time telemetry, then Anomaly Detector for pattern identification, then Failure Predictor for maintenance forecasting, then Grid Balancer for load optimisation. Escalate critical failure predictions (< 48h) immediately to operations dispatch.`,
608
+ validation: { timeout: '600s', retryOnFailure: true, maxRetries: 3 },
609
+ agents: [
610
+ {
611
+ id: 'grid-1',
612
+ name: 'Sensor Ingestion Agent',
613
+ role: 'Primary · Initiator',
614
+ goal: `Ingest and process real-time telemetry from SCADA, smart meters, and IoT gateways`,
615
+ model: 'openai-gpt-4-1',
616
+ mcpServer: 'SCADA MCP',
617
+ tools: [
618
+ 'SCADA Connector',
619
+ 'Smart Meter Reader',
620
+ 'IoT Gateway Adapter',
621
+ 'Time Series Processor',
622
+ ],
623
+ trigger: 'Schedule: Every 5 minutes',
624
+ approval: 'auto',
625
+ },
626
+ {
627
+ id: 'grid-2',
628
+ name: 'Anomaly Detector Agent',
629
+ role: 'Secondary',
630
+ goal: `Detect vibration, temperature, and voltage anomalies across all grid assets`,
631
+ model: 'openai-gpt-4-1',
632
+ mcpServer: 'Monitoring MCP',
633
+ tools: [
634
+ 'Vibration Analyzer',
635
+ 'Temperature Anomaly Detector',
636
+ 'Voltage Pattern Scanner',
637
+ 'Historical Comparator',
638
+ ],
639
+ trigger: 'On completion of Sensor Ingestion Agent',
640
+ approval: 'auto',
641
+ },
642
+ {
643
+ id: 'grid-3',
644
+ name: 'Failure Predictor Agent',
645
+ role: 'Secondary',
646
+ goal: `Predict equipment failures 2–4 weeks in advance using anomaly patterns and failure history`,
647
+ model: 'anthropic-claude-sonnet-4',
648
+ mcpServer: 'Predictive Analytics MCP',
649
+ tools: [
650
+ 'Failure Correlation Engine',
651
+ 'Risk Scorer',
652
+ 'Maintenance Scheduler',
653
+ 'Work Order Generator',
654
+ ],
655
+ trigger: 'On completion of Anomaly Detector Agent',
656
+ approval: 'manual',
657
+ },
658
+ {
659
+ id: 'grid-4',
660
+ name: 'Grid Balancer Agent',
661
+ role: 'Final',
662
+ goal: `Optimise real-time load balancing across renewable and conventional generation sources`,
663
+ model: 'openai-gpt-4-1',
664
+ mcpServer: 'Grid Control MCP',
665
+ tools: [
666
+ 'Load Forecaster',
667
+ 'Renewable Integration Model',
668
+ 'Dispatch Optimiser',
669
+ 'Grid Stability Checker',
670
+ ],
671
+ trigger: 'On completion of Failure Predictor Agent',
672
+ approval: 'auto',
673
+ },
674
+ ],
675
+ reactionRules: [
676
+ {
677
+ id: 'rr-grid-1',
678
+ trigger: 'grid_instability_detected',
679
+ action: 'emergency_rebalance',
680
+ auto: true,
681
+ maxRetries: 1,
682
+ escalateAfterRetries: 1,
683
+ priority: 'critical',
684
+ },
685
+ {
686
+ id: 'rr-grid-2',
687
+ trigger: 'forecast_deviation_high',
688
+ action: 'recalibrate_model',
689
+ auto: true,
690
+ maxRetries: 2,
691
+ escalateAfterRetries: 2,
692
+ priority: 'medium',
693
+ },
694
+ ],
695
+ healthMonitoring: {
696
+ heartbeatInterval: '10s',
697
+ staleThreshold: '30s',
698
+ unresponsiveThreshold: '60s',
699
+ stuckThreshold: '120s',
700
+ maxRestartAttempts: 5,
701
+ },
702
+ notifications: {
703
+ on_start: true,
704
+ on_completion: true,
705
+ on_failure: true,
706
+ on_escalation: true,
707
+ },
708
+ output: {
709
+ formats: ['json', 'csv', 'pdf'],
710
+ template: 'Grid Operations Dashboard',
711
+ storage: 's3://reports/grid-operations/',
712
+ },
713
+ };
714
+ export const PROCESS_CITIZEN_REQUESTS_TEAM_SPEC_0_0_1 = {
715
+ id: 'process-citizen-requests',
716
+ version: '0.0.1',
717
+ name: 'Process Citizen Requests',
718
+ description: `A multi-agent team that automates citizen request processing for government agencies. Classifies and triages permits, FOIA requests, and benefit claims from multiple channels. Models policy impacts across population datasets and ensures every automated decision is explainable, auditable, and compliant with transparency mandates.`,
719
+ tags: [
720
+ 'government',
721
+ 'public-sector',
722
+ 'civic',
723
+ 'policy',
724
+ 'compliance',
725
+ 'transparency',
726
+ ],
727
+ enabled: true,
728
+ icon: 'organization',
729
+ emoji: '🏛️',
730
+ color: '#0550ae',
731
+ agentSpecId: 'process-citizen-requests:0.0.1',
732
+ orchestrationProtocol: 'datalayer',
733
+ executionMode: 'sequential',
734
+ supervisor: {
735
+ name: 'Citizen Services Orchestrator Agent',
736
+ model: 'openai-gpt-4-1',
737
+ },
738
+ routingInstructions: `Route incoming citizen requests to the Intake Agent for classification and triage, then to the Case Processor for handling and routing, then to the Policy Analyst for impact assessment on relevant items, then to the Transparency Agent for audit trail and public documentation. Escalate urgent citizen safety issues immediately to supervisors.`,
739
+ validation: { timeout: '300s', retryOnFailure: true, maxRetries: 2 },
740
+ agents: [
741
+ {
742
+ id: 'cit-1',
743
+ name: 'Intake & Classification Agent',
744
+ role: 'Primary · Initiator',
745
+ goal: `Classify, triage, and route citizen submissions from web portals, email, and documents`,
746
+ model: 'openai-gpt-4-1',
747
+ mcpServer: 'Citizen Portal MCP',
748
+ tools: [
749
+ 'Request Classifier',
750
+ 'Urgency Assessor',
751
+ 'Jurisdiction Router',
752
+ 'OCR Scanner',
753
+ ],
754
+ trigger: 'Event: new citizen request received',
755
+ approval: 'auto',
756
+ },
757
+ {
758
+ id: 'cit-2',
759
+ name: 'Case Processor Agent',
760
+ role: 'Secondary',
761
+ goal: `Process and route requests to appropriate departments with required documentation`,
762
+ model: 'openai-gpt-4-1',
763
+ mcpServer: 'Case Management MCP',
764
+ tools: [
765
+ 'Case Creator',
766
+ 'Document Assembler',
767
+ 'Department Router',
768
+ 'Status Tracker',
769
+ ],
770
+ trigger: 'On completion of Intake Agent',
771
+ approval: 'auto',
772
+ },
773
+ {
774
+ id: 'cit-3',
775
+ name: 'Policy Impact Analyst Agent',
776
+ role: 'Secondary',
777
+ goal: `Model policy outcomes across population datasets with scenario simulation`,
778
+ model: 'anthropic-claude-sonnet-4',
779
+ mcpServer: 'Policy Analytics MCP',
780
+ tools: [
781
+ 'Monte Carlo Simulator',
782
+ 'Demographic Analyzer',
783
+ 'Budget Impact Model',
784
+ 'Scenario Comparator',
785
+ ],
786
+ trigger: 'On completion of Case Processor Agent',
787
+ approval: 'manual',
788
+ },
789
+ {
790
+ id: 'cit-4',
791
+ name: 'Transparency & Audit Agent',
792
+ role: 'Final',
793
+ goal: `Generate explainable decision documentation with full audit trail for public record`,
794
+ model: 'openai-gpt-4-1',
795
+ mcpServer: 'Compliance MCP',
796
+ tools: [
797
+ 'Decision Explainer',
798
+ 'Audit Trail Builder',
799
+ 'FOIA Compliance Checker',
800
+ 'Public Record Generator',
801
+ ],
802
+ trigger: 'On completion of Policy Impact Analyst Agent',
803
+ approval: 'auto',
804
+ },
805
+ ],
806
+ reactionRules: [
807
+ {
808
+ id: 'rr-cit-1',
809
+ trigger: 'priority_request_detected',
810
+ action: 'fast_track_processing',
811
+ auto: true,
812
+ maxRetries: 2,
813
+ escalateAfterRetries: 2,
814
+ priority: 'high',
815
+ },
816
+ {
817
+ id: 'rr-cit-2',
818
+ trigger: 'policy_ambiguity_detected',
819
+ action: 'request_human_review',
820
+ auto: false,
821
+ maxRetries: 1,
822
+ escalateAfterRetries: 1,
823
+ priority: 'medium',
824
+ },
825
+ ],
826
+ healthMonitoring: {
827
+ heartbeatInterval: '30s',
828
+ staleThreshold: '120s',
829
+ unresponsiveThreshold: '300s',
830
+ stuckThreshold: '600s',
831
+ maxRestartAttempts: 3,
832
+ },
833
+ notifications: {
834
+ on_start: false,
835
+ on_completion: true,
836
+ on_failure: true,
837
+ on_escalation: true,
838
+ },
839
+ output: {
840
+ formats: ['pdf', 'json'],
841
+ template: 'Citizen Request Processing Report',
842
+ storage: 's3://reports/citizen-requests/',
843
+ },
844
+ };
845
+ export const PROCESS_CLINICAL_TRIAL_DATA_TEAM_SPEC_0_0_1 = {
846
+ id: 'process-clinical-trial-data',
847
+ version: '0.0.1',
848
+ name: 'Process Clinical Trial Data',
849
+ description: `A multi-agent team that automates clinical trial data processing across dozens of trial sites. Harmonises patient records and lab results to CDISC SDTM format, detects safety signals and adverse events in real time, and prepares submission-ready datasets — all with strict HIPAA and GxP compliance guardrails.`,
850
+ tags: [
851
+ 'healthcare',
852
+ 'pharma',
853
+ 'clinical-trials',
854
+ 'patient-data',
855
+ 'compliance',
856
+ ],
857
+ enabled: true,
858
+ icon: 'heart',
859
+ emoji: '🏥',
860
+ color: '#cf222e',
861
+ agentSpecId: 'process-clinical-trial-data:0.0.1',
862
+ orchestrationProtocol: 'datalayer',
863
+ executionMode: 'sequential',
864
+ supervisor: {
865
+ name: 'Clinical Data Orchestrator Agent',
866
+ model: 'anthropic-claude-sonnet-4',
867
+ },
868
+ routingInstructions: `Route incoming data through the Ingestion Agent first for format detection and parsing, then to Harmonisation Agent for CDISC SDTM standardisation, then Safety Monitor for adverse event screening, then Submission Preparer for final dataset assembly. Escalate serious adverse events (SAEs) immediately to the medical officer.`,
869
+ validation: { timeout: '600s', retryOnFailure: true, maxRetries: 2 },
870
+ agents: [
871
+ {
872
+ id: 'ct-1',
873
+ name: 'Data Ingestion Agent',
874
+ role: 'Primary · Initiator',
875
+ goal: `Ingest patient records, lab results, and CRFs from clinical sites`,
876
+ model: 'openai-gpt-4-1',
877
+ mcpServer: 'Clinical EDC MCP',
878
+ tools: [
879
+ 'Medidata Connector',
880
+ 'Veeva Vault Reader',
881
+ 'Oracle Clinical Adapter',
882
+ 'Format Detector',
883
+ ],
884
+ trigger: 'Event: new data batch received from site',
885
+ approval: 'auto',
886
+ },
887
+ {
888
+ id: 'ct-2',
889
+ name: 'Harmonisation Agent',
890
+ role: 'Secondary',
891
+ goal: `Standardise all data to CDISC SDTM format with MedDRA coding`,
892
+ model: 'openai-gpt-4-1',
893
+ mcpServer: 'Data Standards MCP',
894
+ tools: [
895
+ 'SDTM Mapper',
896
+ 'MedDRA Coder',
897
+ 'Unit Converter',
898
+ 'Site Normaliser',
899
+ ],
900
+ trigger: 'On completion of Data Ingestion Agent',
901
+ approval: 'auto',
902
+ },
903
+ {
904
+ id: 'ct-3',
905
+ name: 'Safety Monitor Agent',
906
+ role: 'Secondary',
907
+ goal: `Screen every data point for adverse events and safety signals`,
908
+ model: 'anthropic-claude-sonnet-4',
909
+ mcpServer: 'Safety Database MCP',
910
+ tools: [
911
+ 'AE Classifier',
912
+ 'Signal Detector',
913
+ 'SAE Escalator',
914
+ 'Evidence Trail Builder',
915
+ ],
916
+ trigger: 'On completion of Harmonisation Agent',
917
+ approval: 'manual',
918
+ },
919
+ {
920
+ id: 'ct-4',
921
+ name: 'Submission Preparer Agent',
922
+ role: 'Final',
923
+ goal: `Assemble submission-ready SDTM datasets with validation and define.xml`,
924
+ model: 'openai-gpt-4-1',
925
+ mcpServer: 'Submission MCP',
926
+ tools: [
927
+ 'Dataset Validator',
928
+ 'Define.xml Generator',
929
+ 'PDF Report Builder',
930
+ 'Compliance Checker',
931
+ ],
932
+ trigger: 'On completion of Safety Monitor Agent',
933
+ approval: 'auto',
934
+ },
935
+ ],
936
+ reactionRules: [
937
+ {
938
+ id: 'rr-clin-1',
939
+ trigger: 'safety_signal_detected',
940
+ action: 'halt_and_escalate',
941
+ auto: true,
942
+ maxRetries: 0,
943
+ escalateAfterRetries: 0,
944
+ priority: 'critical',
945
+ },
946
+ {
947
+ id: 'rr-clin-2',
948
+ trigger: 'data_integrity_violation',
949
+ action: 'quarantine_and_notify',
950
+ auto: true,
951
+ maxRetries: 1,
952
+ escalateAfterRetries: 1,
953
+ priority: 'critical',
954
+ },
955
+ ],
956
+ healthMonitoring: {
957
+ heartbeatInterval: '10s',
958
+ staleThreshold: '45s',
959
+ unresponsiveThreshold: '90s',
960
+ stuckThreshold: '180s',
961
+ maxRestartAttempts: 2,
962
+ },
963
+ notifications: {
964
+ on_start: true,
965
+ on_completion: true,
966
+ on_failure: true,
967
+ on_escalation: true,
968
+ },
969
+ output: {
970
+ formats: ['pdf', 'json', 'xml'],
971
+ template: 'Clinical Trial Data Report',
972
+ storage: 's3://reports/clinical-trials/',
973
+ },
974
+ };
975
+ export const SYNC_CRM_CONTACTS_TEAM_SPEC_0_0_1 = {
976
+ id: 'sync-crm-contacts',
977
+ version: '0.0.1',
978
+ name: 'Sync CRM Contacts',
979
+ 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.`,
980
+ tags: ['sales', 'crm', 'data-sync', 'deduplication'],
981
+ enabled: true,
982
+ icon: 'people',
983
+ emoji: '🔄',
984
+ color: '#0969da',
985
+ agentSpecId: 'sync-crm-contacts:0.0.1',
986
+ orchestrationProtocol: 'datalayer',
987
+ executionMode: 'sequential',
988
+ supervisor: {
989
+ name: 'CRM Orchestrator Agent',
990
+ model: 'anthropic-claude-opus-4',
991
+ },
992
+ routingInstructions: `Route data collection tasks to the Data Collector first, then analysis, then sync, then reporting. Escalate to human if sync fails 3 times.`,
993
+ validation: { timeout: '300s', retryOnFailure: true, maxRetries: 3 },
994
+ agents: [
995
+ {
996
+ id: 'tm-1',
997
+ name: 'Data Collector Agent',
998
+ role: 'Primary · Initiator',
999
+ goal: `Collect and aggregate contact data from multiple CRM sources`,
1000
+ model: 'openai-gpt-4-1',
1001
+ mcpServer: 'Data Processing MCP',
1002
+ tools: ['API Connector', 'Data Parser'],
1003
+ trigger: 'Schedule: Daily at 2:00 AM',
1004
+ approval: 'auto',
1005
+ },
1006
+ {
1007
+ id: 'tm-2',
1008
+ name: 'Analyzer Agent',
1009
+ role: 'Secondary',
1010
+ goal: `Analyze collected data and identify patterns and duplicates`,
1011
+ model: 'anthropic-claude-opus-4',
1012
+ mcpServer: 'Analytics MCP',
1013
+ tools: ['Statistical Analysis', 'ML Predictor', 'Deduplicator'],
1014
+ trigger: 'On completion of Data Collector',
1015
+ approval: 'manual',
1016
+ },
1017
+ {
1018
+ id: 'tm-3',
1019
+ name: 'Sync Writer Agent',
1020
+ role: 'Secondary',
1021
+ goal: `Write cleaned and merged contacts back to the CRM systems`,
1022
+ model: 'openai-gpt-4-1',
1023
+ mcpServer: 'CRM Write MCP',
1024
+ tools: ['Salesforce Connector', 'HubSpot Connector'],
1025
+ trigger: 'On completion of Analyzer',
1026
+ approval: 'manual',
1027
+ },
1028
+ {
1029
+ id: 'tm-4',
1030
+ name: 'Report Generator Agent',
1031
+ role: 'Final',
1032
+ goal: `Generate sync summary reports and send notifications`,
1033
+ model: 'openai-gpt-4-1',
1034
+ mcpServer: 'Document Generation MCP',
1035
+ tools: ['PDF Generator', 'Chart Builder', 'Email Sender'],
1036
+ trigger: 'On completion of Sync Writer',
1037
+ approval: 'auto',
1038
+ },
1039
+ ],
1040
+ reactionRules: [
1041
+ {
1042
+ id: 'rr-crm-1',
1043
+ trigger: 'sync_conflict_detected',
1044
+ action: 'log_and_skip',
1045
+ auto: true,
1046
+ maxRetries: 3,
1047
+ escalateAfterRetries: 3,
1048
+ priority: 'medium',
1049
+ },
1050
+ {
1051
+ id: 'rr-crm-2',
1052
+ trigger: 'api_rate_limit_hit',
1053
+ action: 'backoff_and_retry',
1054
+ auto: true,
1055
+ maxRetries: 5,
1056
+ escalateAfterRetries: 5,
1057
+ priority: 'low',
1058
+ },
1059
+ ],
1060
+ healthMonitoring: {
1061
+ heartbeatInterval: '30s',
1062
+ staleThreshold: '120s',
1063
+ unresponsiveThreshold: '300s',
1064
+ stuckThreshold: '600s',
1065
+ maxRestartAttempts: 3,
1066
+ },
1067
+ notifications: {
1068
+ on_start: false,
1069
+ on_completion: true,
1070
+ on_failure: true,
1071
+ on_escalation: false,
1072
+ },
1073
+ output: {
1074
+ formats: ['json', 'csv'],
1075
+ template: 'CRM Sync Summary',
1076
+ storage: 's3://reports/crm-sync/',
1077
+ },
1078
+ };
1079
+ // ============================================================================
1080
+ // Team Specs Registry
1081
+ // ============================================================================
1082
+ export const TEAM_SPECS = {
1083
+ 'analyze-campaign-performance': ANALYZE_CAMPAIGN_PERFORMANCE_TEAM_SPEC_0_0_1,
1084
+ 'analyze-support-tickets': ANALYZE_SUPPORT_TICKETS_TEAM_SPEC_0_0_1,
1085
+ 'audit-inventory-levels': AUDIT_INVENTORY_LEVELS_TEAM_SPEC_0_0_1,
1086
+ 'automate-regulatory-reporting': AUTOMATE_REGULATORY_REPORTING_TEAM_SPEC_0_0_1,
1087
+ 'comprehensive-sales-analytics': COMPREHENSIVE_SALES_ANALYTICS_TEAM_SPEC_0_0_1,
1088
+ 'optimize-grid-operations': OPTIMIZE_GRID_OPERATIONS_TEAM_SPEC_0_0_1,
1089
+ 'process-citizen-requests': PROCESS_CITIZEN_REQUESTS_TEAM_SPEC_0_0_1,
1090
+ 'process-clinical-trial-data': PROCESS_CLINICAL_TRIAL_DATA_TEAM_SPEC_0_0_1,
1091
+ 'sync-crm-contacts': SYNC_CRM_CONTACTS_TEAM_SPEC_0_0_1,
1092
+ };
1093
+ function resolveTeamId(teamId) {
1094
+ if (teamId in TEAM_SPECS)
1095
+ return teamId;
1096
+ const idx = teamId.lastIndexOf(':');
1097
+ if (idx > 0) {
1098
+ const base = teamId.slice(0, idx);
1099
+ if (base in TEAM_SPECS)
1100
+ return base;
1101
+ }
1102
+ return teamId;
1103
+ }
1104
+ /**
1105
+ * Get a team specification by ID.
1106
+ */
1107
+ export function getTeamSpec(teamId) {
1108
+ return TEAM_SPECS[resolveTeamId(teamId)];
1109
+ }
1110
+ /**
1111
+ * List all available team specifications.
1112
+ *
1113
+ * @param prefix - If provided, only return specs whose ID starts with this prefix.
1114
+ */
1115
+ export function listTeamSpecs(prefix) {
1116
+ const specs = Object.values(TEAM_SPECS);
1117
+ return prefix !== undefined
1118
+ ? specs.filter(s => s.id.startsWith(prefix))
1119
+ : specs;
1120
+ }