@datalayer/agent-runtimes 1.0.3 → 1.0.4

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 (73) hide show
  1. package/README.md +13 -131
  2. package/lib/chat/Chat.d.ts +3 -1
  3. package/lib/chat/Chat.js +2 -2
  4. package/lib/chat/base/ChatBase.js +52 -1
  5. package/lib/chat/messages/ChatMessageList.js +17 -4
  6. package/lib/client/AgentsMixin.d.ts +48 -1
  7. package/lib/client/AgentsMixin.js +109 -0
  8. package/lib/components/NotificationEventCard.js +51 -26
  9. package/lib/components/OutputCard.js +21 -7
  10. package/lib/components/ToolApprovalCard.js +20 -2
  11. package/lib/examples/AgentCheckpointsExample.js +2 -8
  12. package/lib/examples/AgentCodemodeExample.js +3 -9
  13. package/lib/examples/AgentEvalsExample.js +3 -9
  14. package/lib/examples/AgentGuardrailsExample.js +3 -9
  15. package/lib/examples/AgentMemoryExample.js +3 -9
  16. package/lib/examples/AgentMonitoringExample.js +3 -9
  17. package/lib/examples/AgentNotificationsExample.js +2 -8
  18. package/lib/examples/AgentOutputsExample.js +3 -9
  19. package/lib/examples/AgentSandboxExample.js +3 -9
  20. package/lib/examples/AgentSkillsExample.js +3 -9
  21. package/lib/examples/AgentToolApprovalsExample.js +89 -24
  22. package/lib/examples/AgentTriggersExample.js +604 -37
  23. package/lib/examples/ChatExample.js +2 -10
  24. package/lib/examples/components/ErrorView.d.ts +14 -0
  25. package/lib/examples/components/ErrorView.js +20 -0
  26. package/lib/examples/components/index.d.ts +2 -0
  27. package/lib/examples/components/index.js +1 -0
  28. package/lib/examples/main.d.ts +1 -0
  29. package/lib/examples/main.js +1 -0
  30. package/lib/protocols/VercelAIAdapter.d.ts +2 -0
  31. package/lib/protocols/VercelAIAdapter.js +86 -20
  32. package/lib/shims/json5.d.ts +4 -0
  33. package/lib/shims/json5.js +8 -0
  34. package/lib/specs/agents/agents.js +241 -1390
  35. package/lib/specs/agents/index.js +1 -3
  36. package/lib/specs/envvars.js +20 -27
  37. package/lib/specs/evals.js +6 -6
  38. package/lib/specs/events.d.ts +10 -2
  39. package/lib/specs/events.js +84 -126
  40. package/lib/specs/frontendTools.js +2 -2
  41. package/lib/specs/guardrails.d.ts +7 -0
  42. package/lib/specs/guardrails.js +159 -240
  43. package/lib/specs/mcpServers.js +6 -35
  44. package/lib/specs/memory.d.ts +2 -0
  45. package/lib/specs/memory.js +17 -4
  46. package/lib/specs/models.js +5 -25
  47. package/lib/specs/notifications.js +18 -102
  48. package/lib/specs/outputs.js +9 -15
  49. package/lib/specs/skills.js +18 -18
  50. package/lib/specs/teams/index.js +1 -3
  51. package/lib/specs/teams/teams.js +348 -468
  52. package/lib/specs/tools.js +6 -3
  53. package/lib/specs/triggers.js +11 -61
  54. package/lib/types/tools.d.ts +2 -0
  55. package/package.json +1 -1
  56. package/scripts/codegen/__pycache__/versioning.cpython-313.pyc +0 -0
  57. package/scripts/codegen/generate_agents.py +4 -1
  58. package/scripts/codegen/generate_events.py +12 -4
  59. package/scripts/codegen/generate_tools.py +20 -0
  60. package/style/primer-primitives.css +1 -6
  61. package/scripts/codegen/__pycache__/generate_agents.cpython-313.pyc +0 -0
  62. package/scripts/codegen/__pycache__/generate_envvars.cpython-313.pyc +0 -0
  63. package/scripts/codegen/__pycache__/generate_evals.cpython-313.pyc +0 -0
  64. package/scripts/codegen/__pycache__/generate_guardrails.cpython-313.pyc +0 -0
  65. package/scripts/codegen/__pycache__/generate_mcp_servers.cpython-313.pyc +0 -0
  66. package/scripts/codegen/__pycache__/generate_memory.cpython-313.pyc +0 -0
  67. package/scripts/codegen/__pycache__/generate_models.cpython-313.pyc +0 -0
  68. package/scripts/codegen/__pycache__/generate_notifications.cpython-313.pyc +0 -0
  69. package/scripts/codegen/__pycache__/generate_outputs.cpython-313.pyc +0 -0
  70. package/scripts/codegen/__pycache__/generate_skills.cpython-313.pyc +0 -0
  71. package/scripts/codegen/__pycache__/generate_teams.cpython-313.pyc +0 -0
  72. package/scripts/codegen/__pycache__/generate_tools.cpython-313.pyc +0 -0
  73. package/scripts/codegen/__pycache__/generate_triggers.cpython-313.pyc +0 -0
@@ -11,42 +11,42 @@ import { JUPYTER_NOTEBOOK_FRONTEND_TOOL_SPEC_0_0_1, LEXICAL_DOCUMENT_FRONTEND_TO
11
11
  // ============================================================================
12
12
  const MCP_SERVER_MAP = {
13
13
  'alphavantage:0.0.1': ALPHAVANTAGE_MCP_SERVER_0_0_1,
14
- alphavantage: ALPHAVANTAGE_MCP_SERVER_0_0_1,
14
+ 'alphavantage': ALPHAVANTAGE_MCP_SERVER_0_0_1,
15
15
  'chart:0.0.1': CHART_MCP_SERVER_0_0_1,
16
- chart: CHART_MCP_SERVER_0_0_1,
16
+ 'chart': CHART_MCP_SERVER_0_0_1,
17
17
  'earthdata:0.0.1': EARTHDATA_MCP_SERVER_0_0_1,
18
- earthdata: EARTHDATA_MCP_SERVER_0_0_1,
18
+ 'earthdata': EARTHDATA_MCP_SERVER_0_0_1,
19
19
  'eurus:0.0.1': EURUS_MCP_SERVER_0_0_1,
20
- eurus: EURUS_MCP_SERVER_0_0_1,
20
+ 'eurus': EURUS_MCP_SERVER_0_0_1,
21
21
  'filesystem:0.0.1': FILESYSTEM_MCP_SERVER_0_0_1,
22
- filesystem: FILESYSTEM_MCP_SERVER_0_0_1,
22
+ 'filesystem': FILESYSTEM_MCP_SERVER_0_0_1,
23
23
  'github:0.0.1': GITHUB_MCP_SERVER_0_0_1,
24
- github: GITHUB_MCP_SERVER_0_0_1,
24
+ 'github': GITHUB_MCP_SERVER_0_0_1,
25
25
  'google-workspace:0.0.1': GOOGLE_WORKSPACE_MCP_SERVER_0_0_1,
26
26
  'google-workspace': GOOGLE_WORKSPACE_MCP_SERVER_0_0_1,
27
27
  'kaggle:0.0.1': KAGGLE_MCP_SERVER_0_0_1,
28
- kaggle: KAGGLE_MCP_SERVER_0_0_1,
28
+ 'kaggle': KAGGLE_MCP_SERVER_0_0_1,
29
29
  'salesforce:0.0.1': SALESFORCE_MCP_SERVER_0_0_1,
30
- salesforce: SALESFORCE_MCP_SERVER_0_0_1,
30
+ 'salesforce': SALESFORCE_MCP_SERVER_0_0_1,
31
31
  'slack:0.0.1': SLACK_MCP_SERVER_0_0_1,
32
- slack: SLACK_MCP_SERVER_0_0_1,
32
+ 'slack': SLACK_MCP_SERVER_0_0_1,
33
33
  'tavily:0.0.1': TAVILY_MCP_SERVER_0_0_1,
34
- tavily: TAVILY_MCP_SERVER_0_0_1,
34
+ 'tavily': TAVILY_MCP_SERVER_0_0_1,
35
35
  };
36
36
  /**
37
37
  * Map skill IDs to SkillSpec objects, converting to AgentSkillSpec shape.
38
38
  */
39
39
  const SKILL_MAP = {
40
40
  'crawl:0.0.1': CRAWL_SKILL_SPEC_0_0_1,
41
- crawl: CRAWL_SKILL_SPEC_0_0_1,
41
+ 'crawl': CRAWL_SKILL_SPEC_0_0_1,
42
42
  'events:0.0.1': EVENTS_SKILL_SPEC_0_0_1,
43
- events: EVENTS_SKILL_SPEC_0_0_1,
43
+ 'events': EVENTS_SKILL_SPEC_0_0_1,
44
44
  'github:0.0.1': GITHUB_SKILL_SPEC_0_0_1,
45
- github: GITHUB_SKILL_SPEC_0_0_1,
45
+ 'github': GITHUB_SKILL_SPEC_0_0_1,
46
46
  'jokes:0.0.1': JOKES_SKILL_SPEC_0_0_1,
47
- jokes: JOKES_SKILL_SPEC_0_0_1,
47
+ 'jokes': JOKES_SKILL_SPEC_0_0_1,
48
48
  'pdf:0.0.1': PDF_SKILL_SPEC_0_0_1,
49
- pdf: PDF_SKILL_SPEC_0_0_1,
49
+ 'pdf': PDF_SKILL_SPEC_0_0_1,
50
50
  'text-summarizer:0.0.1': TEXT_SUMMARIZER_SKILL_SPEC_0_0_1,
51
51
  'text-summarizer': TEXT_SUMMARIZER_SKILL_SPEC_0_0_1,
52
52
  };
@@ -89,30 +89,13 @@ export const ANALYZE_CAMPAIGN_PERFORMANCE_AGENT_SPEC_0_0_1 = {
89
89
  version: '0.0.1',
90
90
  name: 'Analyze Campaign Performance',
91
91
  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.`,
92
- tags: [
93
- 'marketing',
94
- 'media',
95
- 'campaigns',
96
- 'analytics',
97
- 'advertising',
98
- 'social-media',
99
- ],
92
+ tags: ['marketing', 'media', 'campaigns', 'analytics', 'advertising', 'social-media'],
100
93
  enabled: false,
101
94
  model: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0',
102
- mcpServers: [
103
- MCP_SERVER_MAP['filesystem:0.0.1'],
104
- MCP_SERVER_MAP['slack:0.0.1'],
105
- ],
106
- skills: [
107
- toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']),
108
- toAgentSkillSpec(SKILL_MAP['crawl:0.0.1']),
109
- toAgentSkillSpec(SKILL_MAP['events:0.0.1']),
110
- ],
95
+ mcpServers: [MCP_SERVER_MAP['filesystem:0.0.1'], MCP_SERVER_MAP['slack:0.0.1']],
96
+ skills: [toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']), toAgentSkillSpec(SKILL_MAP['crawl:0.0.1']), toAgentSkillSpec(SKILL_MAP['events:0.0.1'])],
111
97
  tools: [],
112
- frontendTools: [
113
- FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'],
114
- FRONTEND_TOOL_MAP['lexical-document:0.0.1'],
115
- ],
98
+ frontendTools: [FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'], FRONTEND_TOOL_MAP['lexical-document:0.0.1']],
116
99
  environmentName: 'ai-agents-env',
117
100
  icon: 'megaphone',
118
101
  emoji: '📢',
@@ -122,7 +105,7 @@ export const ANALYZE_CAMPAIGN_PERFORMANCE_AGENT_SPEC_0_0_1 = {
122
105
  'Which campaigns have abnormal CPA trends?',
123
106
  'Generate a budget reallocation recommendation',
124
107
  'Compare ROAS across Google Ads vs Meta this month',
125
- "What's the projected impact of shifting 20% budget to TikTok?",
108
+ 'What\'s the projected impact of shifting 20% budget to TikTok?',
126
109
  ],
127
110
  welcomeMessage: "Hello! I'm the Campaign Performance Analytics team. We unify data from all your ad platforms, normalise metrics, detect anomalies in real time, and recommend budget reallocations to maximise your ROAS across channels.\n",
128
111
  welcomeNotebook: undefined,
@@ -134,73 +117,16 @@ export const ANALYZE_CAMPAIGN_PERFORMANCE_AGENT_SPEC_0_0_1 = {
134
117
  goal: `Unify marketing data from Google Ads, Meta, TikTok, LinkedIn, GA4, and email platforms. Normalise metrics into a single cross-channel view with unified CPA, ROAS, and CTR definitions. Detect performance anomalies in real time and generate budget reallocation recommendations to maximise ROAS.`,
135
118
  protocol: 'vercel-ai',
136
119
  uiExtension: 'a2ui',
137
- trigger: {
138
- type: 'schedule',
139
- cron: '0 */4 * * *',
140
- description: 'Every 4 hours for cross-platform campaign data sync and analysis',
141
- prompt: 'Run the scheduled workflow and produce the configured deliverable.',
142
- },
120
+ trigger: { "type": "schedule", "cron": "0 */4 * * *", "description": "Every 4 hours for cross-platform campaign data sync and analysis", "prompt": "Run the scheduled workflow and produce the configured deliverable." },
143
121
  modelConfig: undefined,
144
122
  mcpServerTools: undefined,
145
- guardrails: [
146
- {
147
- name: 'Marketing Analytics Agent',
148
- identity_provider: 'google',
149
- identity_name: 'marketing-bot@acme.com',
150
- permissions: {
151
- 'read:data': true,
152
- 'write:data': false,
153
- 'execute:code': true,
154
- 'access:internet': true,
155
- 'send:email': false,
156
- 'deploy:production': false,
157
- },
158
- data_handling: { pii_detection: true, pii_action: 'redact' },
159
- approval_policy: {
160
- require_manual_approval_for: [
161
- 'Pausing campaigns with daily spend above $1,000',
162
- 'Budget reallocation above 20% of channel spend',
163
- 'Any automated bid adjustments',
164
- ],
165
- auto_approved: [
166
- 'Data collection and metric normalisation',
167
- 'Anomaly detection and alerting',
168
- 'Report generation',
169
- ],
170
- },
171
- token_limits: { per_run: '50K', per_day: '400K', per_month: '5M' },
172
- },
173
- ],
174
- evals: [
175
- {
176
- name: 'Data Ingestion Completeness',
177
- category: 'coding',
178
- task_count: 400,
179
- },
180
- {
181
- name: 'Anomaly Detection Precision',
182
- category: 'reasoning',
183
- task_count: 300,
184
- },
185
- { name: 'ROAS Optimisation Impact', category: 'coding', task_count: 200 },
186
- ],
187
- codemode: { enabled: true, token_reduction: '~85%', speedup: '~2× faster' },
188
- output: {
189
- formats: ['Dashboard', 'PDF', 'Spreadsheet'],
190
- template: 'Campaign Performance Report',
191
- storage: '/outputs/campaign-analytics/',
192
- },
193
- advanced: {
194
- cost_limit: '$5.00 per run',
195
- time_limit: '600 seconds',
196
- max_iterations: 40,
197
- validation: 'All metrics must reconcile with platform-reported figures within 2%. Budget recommendations must not exceed total allocated budget.\n',
198
- },
123
+ guardrails: [{ "name": "Marketing Analytics Agent", "identity_provider": "google", "identity_name": "marketing-bot@acme.com", "permissions": { "read:data": true, "write:data": false, "execute:code": true, "access:internet": true, "send:email": false, "deploy:production": false }, "data_handling": { "pii_detection": true, "pii_action": "redact" }, "approval_policy": { "require_manual_approval_for": ["Pausing campaigns with daily spend above $1,000", "Budget reallocation above 20% of channel spend", "Any automated bid adjustments"], "auto_approved": ["Data collection and metric normalisation", "Anomaly detection and alerting", "Report generation"] }, "token_limits": { "per_run": "50K", "per_day": "400K", "per_month": "5M" } }],
124
+ evals: [{ "name": "Data Ingestion Completeness", "category": "coding", "task_count": 400 }, { "name": "Anomaly Detection Precision", "category": "reasoning", "task_count": 300 }, { "name": "ROAS Optimisation Impact", "category": "coding", "task_count": 200 }],
125
+ codemode: { "enabled": true, "token_reduction": "~85%", "speedup": "~2× faster" },
126
+ output: { "formats": ["Dashboard", "PDF", "Spreadsheet"], "template": "Campaign Performance Report", "storage": "/outputs/campaign-analytics/" },
127
+ advanced: { "cost_limit": "$5.00 per run", "time_limit": "600 seconds", "max_iterations": 40, "validation": "All metrics must reconcile with platform-reported figures within 2%. Budget recommendations must not exceed total allocated budget.\n" },
199
128
  authorizationPolicy: '',
200
- notifications: {
201
- email: 'marketing@company.com',
202
- slack: '#campaign-analytics',
203
- },
129
+ notifications: { "email": "marketing@company.com", "slack": "#campaign-analytics" },
204
130
  memory: 'ephemeral',
205
131
  };
206
132
  export const ANALYZE_SUPPORT_TICKETS_AGENT_SPEC_0_0_1 = {
@@ -211,20 +137,10 @@ export const ANALYZE_SUPPORT_TICKETS_AGENT_SPEC_0_0_1 = {
211
137
  tags: ['analytics', 'data', 'support', 'tickets'],
212
138
  enabled: false,
213
139
  model: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0',
214
- mcpServers: [
215
- MCP_SERVER_MAP['filesystem:0.0.1'],
216
- MCP_SERVER_MAP['slack:0.0.1'],
217
- ],
218
- skills: [
219
- toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']),
220
- toAgentSkillSpec(SKILL_MAP['crawl:0.0.1']),
221
- toAgentSkillSpec(SKILL_MAP['events:0.0.1']),
222
- ],
140
+ mcpServers: [MCP_SERVER_MAP['filesystem:0.0.1'], MCP_SERVER_MAP['slack:0.0.1']],
141
+ skills: [toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']), toAgentSkillSpec(SKILL_MAP['crawl:0.0.1']), toAgentSkillSpec(SKILL_MAP['events:0.0.1'])],
223
142
  tools: [],
224
- frontendTools: [
225
- FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'],
226
- FRONTEND_TOOL_MAP['lexical-document:0.0.1'],
227
- ],
143
+ frontendTools: [FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'], FRONTEND_TOOL_MAP['lexical-document:0.0.1']],
228
144
  environmentName: 'ai-agents-env',
229
145
  icon: 'issue-opened',
230
146
  emoji: '🎫',
@@ -245,51 +161,16 @@ export const ANALYZE_SUPPORT_TICKETS_AGENT_SPEC_0_0_1 = {
245
161
  goal: `Triage incoming support tickets by urgency, categorize by topic and sentiment, identify recurring patterns, and generate resolution recommendations with escalation paths for critical issues.`,
246
162
  protocol: 'vercel-ai',
247
163
  uiExtension: 'a2ui',
248
- trigger: {
249
- type: 'schedule',
250
- cron: '0 */2 * * *',
251
- description: 'Every 2 hours',
252
- prompt: 'Run the scheduled workflow and produce the configured deliverable.',
253
- },
164
+ trigger: { "type": "schedule", "cron": "0 */2 * * *", "description": "Every 2 hours", "prompt": "Run the scheduled workflow and produce the configured deliverable." },
254
165
  modelConfig: undefined,
255
166
  mcpServerTools: undefined,
256
- guardrails: [
257
- {
258
- name: 'Restricted Viewer',
259
- identity_provider: 'datalayer',
260
- identity_name: 'support-bot@acme.com',
261
- permissions: {
262
- 'read:data': true,
263
- 'write:data': false,
264
- 'execute:code': true,
265
- 'access:internet': true,
266
- 'send:email': false,
267
- 'deploy:production': false,
268
- },
269
- token_limits: { per_run: '40K', per_day: '400K', per_month: '4M' },
270
- },
271
- ],
272
- evals: [
273
- { name: 'Triage Accuracy', category: 'reasoning', task_count: 400 },
274
- { name: 'Pattern Detection', category: 'coding', task_count: 200 },
275
- ],
276
- codemode: { enabled: true, token_reduction: '~80%', speedup: '~1.5× faster' },
277
- output: {
278
- formats: ['JSON', 'Dashboard'],
279
- template: 'Support Ticket Analysis Report',
280
- storage: '/outputs/support-analysis/',
281
- },
282
- advanced: {
283
- cost_limit: '$4.00 per run',
284
- time_limit: '300 seconds',
285
- max_iterations: 40,
286
- validation: 'All tickets must receive a priority classification',
287
- },
167
+ guardrails: [{ "name": "Restricted Viewer", "identity_provider": "datalayer", "identity_name": "support-bot@acme.com", "permissions": { "read:data": true, "write:data": false, "execute:code": true, "access:internet": true, "send:email": false, "deploy:production": false }, "token_limits": { "per_run": "40K", "per_day": "400K", "per_month": "4M" } }],
168
+ evals: [{ "name": "Triage Accuracy", "category": "reasoning", "task_count": 400 }, { "name": "Pattern Detection", "category": "coding", "task_count": 200 }],
169
+ codemode: { "enabled": true, "token_reduction": "~80%", "speedup": "~1.5× faster" },
170
+ output: { "formats": ["JSON", "Dashboard"], "template": "Support Ticket Analysis Report", "storage": "/outputs/support-analysis/" },
171
+ advanced: { "cost_limit": "$4.00 per run", "time_limit": "300 seconds", "max_iterations": 40, "validation": "All tickets must receive a priority classification" },
288
172
  authorizationPolicy: '',
289
- notifications: {
290
- email: 'patricia.j@company.com',
291
- slack: '#support-analysis',
292
- },
173
+ notifications: { "email": "patricia.j@company.com", "slack": "#support-analysis" },
293
174
  memory: 'ephemeral',
294
175
  };
295
176
  export const AUDIT_INVENTORY_LEVELS_AGENT_SPEC_0_0_1 = {
@@ -300,19 +181,10 @@ export const AUDIT_INVENTORY_LEVELS_AGENT_SPEC_0_0_1 = {
300
181
  tags: ['finance', 'automation', 'inventory', 'supply-chain'],
301
182
  enabled: false,
302
183
  model: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0',
303
- mcpServers: [
304
- MCP_SERVER_MAP['filesystem:0.0.1'],
305
- MCP_SERVER_MAP['slack:0.0.1'],
306
- ],
307
- skills: [
308
- toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']),
309
- toAgentSkillSpec(SKILL_MAP['events:0.0.1']),
310
- ],
184
+ mcpServers: [MCP_SERVER_MAP['filesystem:0.0.1'], MCP_SERVER_MAP['slack:0.0.1']],
185
+ skills: [toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']), toAgentSkillSpec(SKILL_MAP['events:0.0.1'])],
311
186
  tools: [],
312
- frontendTools: [
313
- FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'],
314
- FRONTEND_TOOL_MAP['lexical-document:0.0.1'],
315
- ],
187
+ frontendTools: [FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'], FRONTEND_TOOL_MAP['lexical-document:0.0.1']],
316
188
  environmentName: 'ai-agents-env',
317
189
  icon: 'package',
318
190
  emoji: '📦',
@@ -333,48 +205,16 @@ export const AUDIT_INVENTORY_LEVELS_AGENT_SPEC_0_0_1 = {
333
205
  goal: `Monitor inventory levels across all warehouses every 6 hours. Detect discrepancies between system and physical counts, forecast demand by SKU, generate reorder recommendations, and compile audit reports with findings.`,
334
206
  protocol: 'vercel-ai',
335
207
  uiExtension: 'a2ui',
336
- trigger: {
337
- type: 'schedule',
338
- cron: '0 */6 * * *',
339
- description: 'Every 6 hours',
340
- prompt: 'Run the scheduled workflow and produce the configured deliverable.',
341
- },
208
+ trigger: { "type": "schedule", "cron": "0 */6 * * *", "description": "Every 6 hours", "prompt": "Run the scheduled workflow and produce the configured deliverable." },
342
209
  modelConfig: undefined,
343
210
  mcpServerTools: undefined,
344
- guardrails: [
345
- {
346
- name: 'Google Workspace Agent',
347
- identity_provider: 'google',
348
- identity_name: 'inventory-bot@acme.com',
349
- permissions: {
350
- 'read:data': true,
351
- 'write:data': true,
352
- 'execute:code': true,
353
- 'access:internet': true,
354
- 'send:email': true,
355
- 'deploy:production': false,
356
- },
357
- token_limits: { per_run: '100K', per_day: '800K', per_month: '8M' },
358
- },
359
- ],
360
- evals: [
361
- { name: 'Inventory Accuracy', category: 'coding', task_count: 500 },
362
- { name: 'Forecast Precision', category: 'reasoning', task_count: 300 },
363
- ],
364
- codemode: { enabled: true, token_reduction: '~90%', speedup: '~2× faster' },
365
- output: {
366
- formats: ['PDF', 'Spreadsheet', 'Dashboard'],
367
- template: 'Inventory Audit Report',
368
- storage: '/outputs/inventory-audit/',
369
- },
370
- advanced: {
371
- cost_limit: '$12.00 per run',
372
- time_limit: '900 seconds',
373
- max_iterations: 80,
374
- validation: 'All warehouse counts must reconcile within 2% tolerance',
375
- },
211
+ guardrails: [{ "name": "Google Workspace Agent", "identity_provider": "google", "identity_name": "inventory-bot@acme.com", "permissions": { "read:data": true, "write:data": true, "execute:code": true, "access:internet": true, "send:email": true, "deploy:production": false }, "token_limits": { "per_run": "100K", "per_day": "800K", "per_month": "8M" } }],
212
+ evals: [{ "name": "Inventory Accuracy", "category": "coding", "task_count": 500 }, { "name": "Forecast Precision", "category": "reasoning", "task_count": 300 }],
213
+ codemode: { "enabled": true, "token_reduction": "~90%", "speedup": "~2× faster" },
214
+ output: { "formats": ["PDF", "Spreadsheet", "Dashboard"], "template": "Inventory Audit Report", "storage": "/outputs/inventory-audit/" },
215
+ advanced: { "cost_limit": "$12.00 per run", "time_limit": "900 seconds", "max_iterations": 80, "validation": "All warehouse counts must reconcile within 2% tolerance" },
376
216
  authorizationPolicy: '',
377
- notifications: { email: 'linda.m@company.com', slack: '#inventory-ops' },
217
+ notifications: { "email": "linda.m@company.com", "slack": "#inventory-ops" },
378
218
  memory: 'ephemeral',
379
219
  };
380
220
  export const AUTOMATE_REGULATORY_REPORTING_AGENT_SPEC_0_0_1 = {
@@ -385,19 +225,10 @@ export const AUTOMATE_REGULATORY_REPORTING_AGENT_SPEC_0_0_1 = {
385
225
  tags: ['finance', 'compliance', 'regulatory', 'risk', 'banking', 'audit'],
386
226
  enabled: false,
387
227
  model: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0',
388
- mcpServers: [
389
- MCP_SERVER_MAP['filesystem:0.0.1'],
390
- MCP_SERVER_MAP['slack:0.0.1'],
391
- ],
392
- skills: [
393
- toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']),
394
- toAgentSkillSpec(SKILL_MAP['events:0.0.1']),
395
- ],
228
+ mcpServers: [MCP_SERVER_MAP['filesystem:0.0.1'], MCP_SERVER_MAP['slack:0.0.1']],
229
+ skills: [toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']), toAgentSkillSpec(SKILL_MAP['events:0.0.1'])],
396
230
  tools: [],
397
- frontendTools: [
398
- FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'],
399
- FRONTEND_TOOL_MAP['lexical-document:0.0.1'],
400
- ],
231
+ frontendTools: [FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'], FRONTEND_TOOL_MAP['lexical-document:0.0.1']],
401
232
  environmentName: 'ai-agents-env',
402
233
  icon: 'shield-check',
403
234
  emoji: '🏦',
@@ -419,69 +250,16 @@ export const AUTOMATE_REGULATORY_REPORTING_AGENT_SPEC_0_0_1 = {
419
250
  goal: `Automate end-to-end regulatory reporting: ingest data from trading and accounting systems, compute risk-weighted assets and capital ratios, reconcile positions, validate against Basel III/IV, MiFID II, and SOX rules, and generate submission-ready compliance reports with full audit trails.`,
420
251
  protocol: 'vercel-ai',
421
252
  uiExtension: 'a2ui',
422
- trigger: {
423
- type: 'schedule',
424
- cron: '0 6 3 * *',
425
- description: 'Monthly on the 3rd at 06:00 for regulatory reporting deadlines',
426
- prompt: 'Run the scheduled workflow and produce the configured deliverable.',
427
- },
253
+ trigger: { "type": "schedule", "cron": "0 6 3 * *", "description": "Monthly on the 3rd at 06:00 for regulatory reporting deadlines", "prompt": "Run the scheduled workflow and produce the configured deliverable." },
428
254
  modelConfig: undefined,
429
255
  mcpServerTools: undefined,
430
- guardrails: [
431
- {
432
- name: 'Compliance Data Handler',
433
- identity_provider: 'datalayer',
434
- identity_name: 'compliance-bot@acme.com',
435
- permissions: {
436
- 'read:data': true,
437
- 'write:data': false,
438
- 'execute:code': true,
439
- 'access:internet': false,
440
- 'send:email': false,
441
- 'deploy:production': false,
442
- },
443
- data_scope: {
444
- allowed_systems: [
445
- 'trading-platform',
446
- 'risk-engine',
447
- 'accounting-ledger',
448
- ],
449
- denied_fields: ['*SSN*', '*TaxId*', '*Password*'],
450
- },
451
- data_handling: { pii_detection: true, pii_action: 'redact' },
452
- token_limits: { per_run: '120K', per_day: '600K', per_month: '6M' },
453
- },
454
- ],
455
- evals: [
456
- { name: 'Risk Metric Accuracy', category: 'coding', task_count: 500 },
457
- {
458
- name: 'Regulatory Rule Compliance',
459
- category: 'reasoning',
460
- task_count: 300,
461
- },
462
- {
463
- name: 'Reconciliation Break Detection',
464
- category: 'coding',
465
- task_count: 200,
466
- },
467
- ],
468
- codemode: { enabled: true, token_reduction: '~90%', speedup: '~2× faster' },
469
- output: {
470
- formats: ['PDF', 'XBRL'],
471
- template: 'Regulatory Compliance Report',
472
- storage: '/outputs/regulatory-reporting/',
473
- },
474
- advanced: {
475
- cost_limit: '$15.00 per run',
476
- time_limit: '1200 seconds',
477
- max_iterations: 60,
478
- validation: 'All risk metrics must reconcile with source system totals within 0.01% tolerance. Capital ratios must pass Basel III/IV threshold checks.\n',
479
- },
256
+ guardrails: [{ "name": "Compliance Data Handler", "identity_provider": "datalayer", "identity_name": "compliance-bot@acme.com", "permissions": { "read:data": true, "write:data": false, "execute:code": true, "access:internet": false, "send:email": false, "deploy:production": false }, "data_scope": { "allowed_systems": ["trading-platform", "risk-engine", "accounting-ledger"], "denied_fields": ["*SSN*", "*TaxId*", "*Password*"] }, "data_handling": { "pii_detection": true, "pii_action": "redact" }, "token_limits": { "per_run": "120K", "per_day": "600K", "per_month": "6M" } }],
257
+ evals: [{ "name": "Risk Metric Accuracy", "category": "coding", "task_count": 500 }, { "name": "Regulatory Rule Compliance", "category": "reasoning", "task_count": 300 }, { "name": "Reconciliation Break Detection", "category": "coding", "task_count": 200 }],
258
+ codemode: { "enabled": true, "token_reduction": "~90%", "speedup": "~2× faster" },
259
+ output: { "formats": ["PDF", "XBRL"], "template": "Regulatory Compliance Report", "storage": "/outputs/regulatory-reporting/" },
260
+ advanced: { "cost_limit": "$15.00 per run", "time_limit": "1200 seconds", "max_iterations": 60, "validation": "All risk metrics must reconcile with source system totals within 0.01% tolerance. Capital ratios must pass Basel III/IV threshold checks.\n" },
480
261
  authorizationPolicy: '',
481
- notifications: {
482
- email: 'compliance@company.com',
483
- slack: '#regulatory-reporting',
484
- },
262
+ notifications: { "email": "compliance@company.com", "slack": "#regulatory-reporting" },
485
263
  memory: 'ephemeral',
486
264
  };
487
265
  export const CLASSIFY_ROUTE_EMAILS_AGENT_SPEC_0_0_1 = {
@@ -493,15 +271,9 @@ export const CLASSIFY_ROUTE_EMAILS_AGENT_SPEC_0_0_1 = {
493
271
  enabled: false,
494
272
  model: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0',
495
273
  mcpServers: [MCP_SERVER_MAP['slack:0.0.1']],
496
- skills: [
497
- toAgentSkillSpec(SKILL_MAP['github:0.0.1']),
498
- toAgentSkillSpec(SKILL_MAP['events:0.0.1']),
499
- ],
274
+ skills: [toAgentSkillSpec(SKILL_MAP['github:0.0.1']), toAgentSkillSpec(SKILL_MAP['events:0.0.1'])],
500
275
  tools: [],
501
- frontendTools: [
502
- FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'],
503
- FRONTEND_TOOL_MAP['lexical-document:0.0.1'],
504
- ],
276
+ frontendTools: [FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'], FRONTEND_TOOL_MAP['lexical-document:0.0.1']],
505
277
  environmentName: 'ai-agents-env',
506
278
  icon: 'mail',
507
279
  emoji: '📬',
@@ -516,62 +288,16 @@ export const CLASSIFY_ROUTE_EMAILS_AGENT_SPEC_0_0_1 = {
516
288
  goal: `Classify incoming emails by intent (inquiry, complaint, order, support), assign priority (critical/high/medium/low), extract key entities (sender, subject, account ID, product), and route to the correct department queue. Flag urgent items for immediate human review.`,
517
289
  protocol: 'vercel-ai',
518
290
  uiExtension: 'a2ui',
519
- trigger: {
520
- type: 'event',
521
- event: 'email_received',
522
- description: 'Triggered on each incoming email via webhook',
523
- prompt: "Handle the 'email_received' event and execute the workflow end-to-end.",
524
- },
525
- modelConfig: { temperature: 0.1, max_tokens: 2048 },
526
- mcpServerTools: [
527
- {
528
- server: 'Email Gateway',
529
- tools: [
530
- { name: 'fetch_email', approval: 'auto' },
531
- { name: 'parse_headers', approval: 'auto' },
532
- { name: 'extract_attachments', approval: 'auto' },
533
- ],
534
- },
535
- {
536
- server: 'Routing Engine',
537
- tools: [
538
- { name: 'assign_queue', approval: 'auto' },
539
- { name: 'set_priority', approval: 'auto' },
540
- { name: 'escalate_to_human', approval: 'manual' },
541
- ],
542
- },
543
- ],
544
- guardrails: [
545
- {
546
- name: 'Default Platform User',
547
- identity_provider: 'datalayer',
548
- identity_name: 'email-router@acme.com',
549
- permissions: {
550
- 'read:data': true,
551
- 'write:data': true,
552
- 'execute:code': false,
553
- 'access:internet': true,
554
- 'send:email': false,
555
- 'deploy:production': false,
556
- },
557
- token_limits: { per_run: '10K', per_day: '500K', per_month: '5M' },
558
- },
559
- ],
560
- evals: [
561
- { name: 'Classification Accuracy', category: 'reasoning', task_count: 500 },
562
- { name: 'Priority Detection', category: 'reasoning', task_count: 300 },
563
- { name: 'Entity Extraction', category: 'coding', task_count: 400 },
564
- ],
291
+ trigger: { "type": "event", "event": "email_received", "description": "Triggered on each incoming email via webhook", "prompt": "Handle the 'email_received' event and execute the workflow end-to-end." },
292
+ modelConfig: { "temperature": 0.1, "max_tokens": 2048 },
293
+ mcpServerTools: [{ "server": "Email Gateway", "tools": [{ "name": "fetch_email", "approval": "auto" }, { "name": "parse_headers", "approval": "auto" }, { "name": "extract_attachments", "approval": "auto" }] }, { "server": "Routing Engine", "tools": [{ "name": "assign_queue", "approval": "auto" }, { "name": "set_priority", "approval": "auto" }, { "name": "escalate_to_human", "approval": "manual" }] }],
294
+ guardrails: [{ "name": "Default Platform User", "identity_provider": "datalayer", "identity_name": "email-router@acme.com", "permissions": { "read:data": true, "write:data": true, "execute:code": false, "access:internet": true, "send:email": false, "deploy:production": false }, "token_limits": { "per_run": "10K", "per_day": "500K", "per_month": "5M" } }],
295
+ evals: [{ "name": "Classification Accuracy", "category": "reasoning", "task_count": 500 }, { "name": "Priority Detection", "category": "reasoning", "task_count": 300 }, { "name": "Entity Extraction", "category": "coding", "task_count": 400 }],
565
296
  codemode: undefined,
566
- output: {
567
- type: 'JSON',
568
- formats: ['JSON'],
569
- template: 'email-classification-v1',
570
- storage: 's3://acme-email-logs/',
571
- },
297
+ output: { "type": "JSON", "formats": ["JSON"], "template": "email-classification-v1", "storage": "s3://acme-email-logs/" },
572
298
  advanced: undefined,
573
299
  authorizationPolicy: undefined,
574
- notifications: { slack: '#email-routing', email: 'ops@acme.com' },
300
+ notifications: { "slack": "#email-routing", "email": "ops@acme.com" },
575
301
  memory: 'ephemeral',
576
302
  };
577
303
  export const COMPREHENSIVE_SALES_ANALYTICS_AGENT_SPEC_0_0_1 = {
@@ -582,20 +308,10 @@ export const COMPREHENSIVE_SALES_ANALYTICS_AGENT_SPEC_0_0_1 = {
582
308
  tags: ['sales', 'analytics', 'kpi', 'monitoring', 'horizontal'],
583
309
  enabled: false,
584
310
  model: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0',
585
- mcpServers: [
586
- MCP_SERVER_MAP['filesystem:0.0.1'],
587
- MCP_SERVER_MAP['slack:0.0.1'],
588
- ],
589
- skills: [
590
- toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']),
591
- toAgentSkillSpec(SKILL_MAP['github:0.0.1']),
592
- toAgentSkillSpec(SKILL_MAP['events:0.0.1']),
593
- ],
311
+ mcpServers: [MCP_SERVER_MAP['filesystem:0.0.1'], MCP_SERVER_MAP['slack:0.0.1']],
312
+ skills: [toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']), toAgentSkillSpec(SKILL_MAP['github:0.0.1']), toAgentSkillSpec(SKILL_MAP['events:0.0.1'])],
594
313
  tools: [],
595
- frontendTools: [
596
- FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'],
597
- FRONTEND_TOOL_MAP['lexical-document:0.0.1'],
598
- ],
314
+ frontendTools: [FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'], FRONTEND_TOOL_MAP['lexical-document:0.0.1']],
599
315
  environmentName: 'ai-agents-env',
600
316
  icon: 'graph',
601
317
  emoji: '📈',
@@ -613,42 +329,13 @@ export const COMPREHENSIVE_SALES_ANALYTICS_AGENT_SPEC_0_0_1 = {
613
329
  trigger: undefined,
614
330
  modelConfig: undefined,
615
331
  mcpServerTools: undefined,
616
- guardrails: [
617
- {
618
- name: 'Sales Analytics Team',
619
- identity_provider: 'datalayer',
620
- identity_name: 'sales-analytics@acme.com',
621
- permissions: {
622
- 'read:data': true,
623
- 'write:data': true,
624
- 'execute:code': true,
625
- 'access:internet': true,
626
- 'send:email': true,
627
- 'deploy:production': false,
628
- },
629
- token_limits: { per_run: '100K', per_day: '1M', per_month: '10M' },
630
- },
631
- ],
632
- evals: [
633
- { name: 'KPI Accuracy', category: 'coding', task_count: 500 },
634
- {
635
- name: 'Anomaly Detection Precision',
636
- category: 'reasoning',
637
- task_count: 350,
638
- },
639
- { name: 'Trend Forecast Accuracy', category: 'reasoning', task_count: 300 },
640
- { name: 'Report Quality', category: 'reasoning', task_count: 200 },
641
- ],
332
+ guardrails: [{ "name": "Sales Analytics Team", "identity_provider": "datalayer", "identity_name": "sales-analytics@acme.com", "permissions": { "read:data": true, "write:data": true, "execute:code": true, "access:internet": true, "send:email": true, "deploy:production": false }, "token_limits": { "per_run": "100K", "per_day": "1M", "per_month": "10M" } }],
333
+ evals: [{ "name": "KPI Accuracy", "category": "coding", "task_count": 500 }, { "name": "Anomaly Detection Precision", "category": "reasoning", "task_count": 350 }, { "name": "Trend Forecast Accuracy", "category": "reasoning", "task_count": 300 }, { "name": "Report Quality", "category": "reasoning", "task_count": 200 }],
642
334
  codemode: undefined,
643
- output: {
644
- type: 'PDF',
645
- formats: ['PDF', 'Dashboard', 'JSON'],
646
- template: 'executive-sales-dashboard-v2',
647
- storage: 's3://acme-sales-reports/',
648
- },
335
+ output: { "type": "PDF", "formats": ["PDF", "Dashboard", "JSON"], "template": "executive-sales-dashboard-v2", "storage": "s3://acme-sales-reports/" },
649
336
  advanced: undefined,
650
337
  authorizationPolicy: undefined,
651
- notifications: { slack: '#sales-analytics', email: 'leadership@acme.com' },
338
+ notifications: { "slack": "#sales-analytics", "email": "leadership@acme.com" },
652
339
  memory: 'ephemeral',
653
340
  };
654
341
  export const CRAWLER_AGENT_SPEC_0_0_1 = {
@@ -660,15 +347,9 @@ export const CRAWLER_AGENT_SPEC_0_0_1 = {
660
347
  enabled: true,
661
348
  model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
662
349
  mcpServers: [MCP_SERVER_MAP['tavily:0.0.1']],
663
- skills: [
664
- toAgentSkillSpec(SKILL_MAP['github:0.0.1']),
665
- toAgentSkillSpec(SKILL_MAP['events:0.0.1']),
666
- ],
350
+ skills: [toAgentSkillSpec(SKILL_MAP['github:0.0.1']), toAgentSkillSpec(SKILL_MAP['events:0.0.1'])],
667
351
  tools: [],
668
- frontendTools: [
669
- FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'],
670
- FRONTEND_TOOL_MAP['lexical-document:0.0.1'],
671
- ],
352
+ frontendTools: [FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'], FRONTEND_TOOL_MAP['lexical-document:0.0.1']],
672
353
  environmentName: 'ai-agents-env',
673
354
  icon: 'globe',
674
355
  emoji: '🌐',
@@ -705,7 +386,7 @@ export const CRAWLER_AGENT_SPEC_0_0_1 = {
705
386
  ## Token Efficiency When possible, chain multiple tool calls in a single execute_code block. This reduces output tokens by processing intermediate results in code rather than returning them. If you want to examine results, print subsets, preview (maximum 20 first characters) and/or counts instead of full data, this is really important.
706
387
  `,
707
388
  goal: undefined,
708
- protocol: undefined,
389
+ protocol: 'vercel-ai',
709
390
  uiExtension: undefined,
710
391
  trigger: undefined,
711
392
  modelConfig: undefined,
@@ -727,20 +408,10 @@ export const DATA_ACQUISITION_AGENT_SPEC_0_0_1 = {
727
408
  tags: ['data', 'acquisition', 'kaggle', 'filesystem'],
728
409
  enabled: true,
729
410
  model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
730
- mcpServers: [
731
- MCP_SERVER_MAP['kaggle:0.0.1'],
732
- MCP_SERVER_MAP['filesystem:0.0.1'],
733
- MCP_SERVER_MAP['tavily:0.0.1'],
734
- ],
735
- skills: [
736
- toAgentSkillSpec(SKILL_MAP['github:0.0.1']),
737
- toAgentSkillSpec(SKILL_MAP['events:0.0.1']),
738
- ],
411
+ mcpServers: [MCP_SERVER_MAP['kaggle:0.0.1'], MCP_SERVER_MAP['filesystem:0.0.1'], MCP_SERVER_MAP['tavily:0.0.1']],
412
+ skills: [toAgentSkillSpec(SKILL_MAP['github:0.0.1']), toAgentSkillSpec(SKILL_MAP['events:0.0.1'])],
739
413
  tools: [],
740
- frontendTools: [
741
- FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'],
742
- FRONTEND_TOOL_MAP['lexical-document:0.0.1'],
743
- ],
414
+ frontendTools: [FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'], FRONTEND_TOOL_MAP['lexical-document:0.0.1']],
744
415
  environmentName: 'ai-agents-env',
745
416
  icon: 'database',
746
417
  emoji: '📊',
@@ -777,7 +448,7 @@ export const DATA_ACQUISITION_AGENT_SPEC_0_0_1 = {
777
448
  ## Token Efficiency When possible, chain multiple tool calls in a single execute_code block. This reduces output tokens by processing intermediate results in code rather than returning them. If you want to examine results, print subsets, preview (maximum 20 first characters) and/or counts instead of full data, this is really important.
778
449
  `,
779
450
  goal: undefined,
780
- protocol: undefined,
451
+ protocol: 'vercel-ai',
781
452
  uiExtension: undefined,
782
453
  trigger: undefined,
783
454
  modelConfig: undefined,
@@ -800,22 +471,9 @@ export const DEMO_FULL_AGENT_SPEC_0_0_1 = {
800
471
  enabled: true,
801
472
  model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
802
473
  mcpServers: [MCP_SERVER_MAP['tavily:0.0.1']],
803
- skills: [
804
- toAgentSkillSpec(SKILL_MAP['crawl:0.0.1']),
805
- toAgentSkillSpec(SKILL_MAP['events:0.0.1']),
806
- toAgentSkillSpec(SKILL_MAP['github:0.0.1']),
807
- toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']),
808
- toAgentSkillSpec(SKILL_MAP['text-summarizer:0.0.1']),
809
- toAgentSkillSpec(SKILL_MAP['jokes:0.0.1']),
810
- ],
811
- tools: [
812
- TOOL_MAP['runtime-echo:0.0.1'],
813
- TOOL_MAP['runtime-sensitive-echo:0.0.1'],
814
- ],
815
- frontendTools: [
816
- FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'],
817
- FRONTEND_TOOL_MAP['lexical-document:0.0.1'],
818
- ],
474
+ skills: [toAgentSkillSpec(SKILL_MAP['crawl:0.0.1']), toAgentSkillSpec(SKILL_MAP['events:0.0.1']), toAgentSkillSpec(SKILL_MAP['github:0.0.1']), toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']), toAgentSkillSpec(SKILL_MAP['text-summarizer:0.0.1']), toAgentSkillSpec(SKILL_MAP['jokes:0.0.1'])],
475
+ tools: [TOOL_MAP['runtime-echo:0.0.1'], TOOL_MAP['runtime-sensitive-echo:0.0.1']],
476
+ frontendTools: [FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'], FRONTEND_TOOL_MAP['lexical-document:0.0.1']],
819
477
  environmentName: 'ai-agents-env',
820
478
  icon: 'shield',
821
479
  emoji: '🛡️',
@@ -824,10 +482,10 @@ export const DEMO_FULL_AGENT_SPEC_0_0_1 = {
824
482
  'list your tools',
825
483
  'Search the web for the latest news on AI agents using Tavily.',
826
484
  'List my public GitHub repositories and summarize the most active ones.',
827
- "Echo with text 'hello' and reason 'audit', then share the result.",
828
- "Echo 'hello world' and share the result in a short sentence.",
829
- "Call the runtime_sensitive_echo tool with text 'hello' and reason 'audit', then reply with the tool result.",
830
- "Call the runtime_echo tool with text 'hello world', then reply with the tool result.",
485
+ 'Echo with text \'hello\' and reason \'audit\', then share the result.',
486
+ 'Echo \'hello world\' and share the result in a short sentence.',
487
+ 'Call the runtime_sensitive_echo tool with text \'hello\' and reason \'audit\', then reply with the tool result.',
488
+ 'Call the runtime_echo tool with text \'hello world\', then reply with the tool result.',
831
489
  'Tell me a joke using your skills.',
832
490
  ],
833
491
  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",
@@ -838,7 +496,7 @@ export const DEMO_FULL_AGENT_SPEC_0_0_1 = {
838
496
  `,
839
497
  systemPromptCodemodeAddons: undefined,
840
498
  goal: undefined,
841
- protocol: undefined,
499
+ protocol: 'vercel-ai',
842
500
  uiExtension: undefined,
843
501
  trigger: undefined,
844
502
  modelConfig: undefined,
@@ -875,14 +533,10 @@ export const DEMO_ONE_TRIGGER_APPROVAL_AGENT_SPEC_0_0_1 = {
875
533
  sandboxVariant: 'jupyter',
876
534
  systemPrompt: undefined,
877
535
  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.`,
879
- protocol: undefined,
536
+ goal: `Call runtime_sensitive_echo exactly once with message='Tool approval demo executed' and reason='audit'. Do not call any other tool.`,
537
+ protocol: 'vercel-ai',
880
538
  uiExtension: undefined,
881
- trigger: {
882
- type: 'once',
883
- 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.",
885
- },
539
+ trigger: { "type": "once", "description": "Run once with approval and terminate", "prompt": "Call runtime_sensitive_echo exactly once with message='Tool approval demo executed' and reason='audit'. Do not call any other tool." },
886
540
  modelConfig: undefined,
887
541
  mcpServerTools: undefined,
888
542
  guardrails: undefined,
@@ -903,10 +557,7 @@ export const DEMO_ONE_TRIGGER_AGENT_SPEC_0_0_1 = {
903
557
  enabled: true,
904
558
  model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
905
559
  mcpServers: [],
906
- skills: [
907
- toAgentSkillSpec(SKILL_MAP['github:0.0.1']),
908
- toAgentSkillSpec(SKILL_MAP['events:0.0.1']),
909
- ],
560
+ skills: [toAgentSkillSpec(SKILL_MAP['github:0.0.1']), toAgentSkillSpec(SKILL_MAP['events:0.0.1'])],
910
561
  tools: [TOOL_MAP['runtime-echo:0.0.1']],
911
562
  frontendTools: [FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1']],
912
563
  environmentName: 'ai-agents-env',
@@ -921,13 +572,9 @@ export const DEMO_ONE_TRIGGER_AGENT_SPEC_0_0_1 = {
921
572
  systemPrompt: undefined,
922
573
  systemPromptCodemodeAddons: undefined,
923
574
  goal: `Run a one-shot task: list the user's top 3 public and top 3 private GitHub repositories, ranked by recent activity, and provide a brief summary of each.`,
924
- protocol: undefined,
575
+ protocol: 'vercel-ai',
925
576
  uiExtension: undefined,
926
- trigger: {
927
- type: 'once',
928
- description: 'Run once and terminate',
929
- prompt: "List the user's top 3 public and top 3 private GitHub repositories, ranked by recent activity, and provide a brief summary of each.",
930
- },
577
+ trigger: { "type": "once", "description": "Run once and terminate", "prompt": "List the user's top 3 public and top 3 private GitHub repositories, ranked by recent activity, and provide a brief summary of each." },
931
578
  modelConfig: undefined,
932
579
  mcpServerTools: undefined,
933
580
  guardrails: undefined,
@@ -950,10 +597,7 @@ export const DEMO_SIMPLE_AGENT_SPEC_0_0_1 = {
950
597
  mcpServers: [],
951
598
  skills: [toAgentSkillSpec(SKILL_MAP['events:0.0.1'])],
952
599
  tools: [TOOL_MAP['runtime-echo:0.0.1']],
953
- frontendTools: [
954
- FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'],
955
- FRONTEND_TOOL_MAP['lexical-document:0.0.1'],
956
- ],
600
+ frontendTools: [FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'], FRONTEND_TOOL_MAP['lexical-document:0.0.1']],
957
601
  environmentName: 'ai-agents-env',
958
602
  icon: 'agent',
959
603
  emoji: '🤖',
@@ -972,7 +616,7 @@ export const DEMO_SIMPLE_AGENT_SPEC_0_0_1 = {
972
616
  `,
973
617
  systemPromptCodemodeAddons: undefined,
974
618
  goal: undefined,
975
- protocol: undefined,
619
+ protocol: 'vercel-ai',
976
620
  uiExtension: undefined,
977
621
  trigger: undefined,
978
622
  modelConfig: undefined,
@@ -991,28 +635,13 @@ export const END_OF_MONTH_SALES_PERFORMANCE_AGENT_SPEC_0_0_1 = {
991
635
  version: '0.0.1',
992
636
  name: 'End of Month Sales Performance',
993
637
  description: `Consolidates and analyzes end-of-month retail sales data directly from Salesforce. Computes revenue performance vs targets by SKU, detects anomalies in bookings and discounting, explains variances by region/segment/product/SKU, and generates executive-ready sales performance reports with full data lineage.`,
994
- tags: [
995
- 'analytics',
996
- 'sales',
997
- 'revenue',
998
- 'performance',
999
- 'crm',
1000
- 'finance',
1001
- 'retail',
1002
- 'sku',
1003
- ],
638
+ tags: ['analytics', 'sales', 'revenue', 'performance', 'crm', 'finance', 'retail', 'sku'],
1004
639
  enabled: false,
1005
640
  model: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0',
1006
641
  mcpServers: [MCP_SERVER_MAP['salesforce:0.0.1']],
1007
- skills: [
1008
- toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']),
1009
- toAgentSkillSpec(SKILL_MAP['events:0.0.1']),
1010
- ],
642
+ skills: [toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']), toAgentSkillSpec(SKILL_MAP['events:0.0.1'])],
1011
643
  tools: [],
1012
- frontendTools: [
1013
- FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'],
1014
- FRONTEND_TOOL_MAP['lexical-document:0.0.1'],
1015
- ],
644
+ frontendTools: [FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'], FRONTEND_TOOL_MAP['lexical-document:0.0.1']],
1016
645
  environmentName: 'ai-agents-env',
1017
646
  icon: 'graph',
1018
647
  emoji: '📊',
@@ -1023,7 +652,7 @@ export const END_OF_MONTH_SALES_PERFORMANCE_AGENT_SPEC_0_0_1 = {
1023
652
  'Show top and bottom performing SKUs this month',
1024
653
  'Explain the top drivers of variance this month',
1025
654
  'Detect unusual discounting patterns by SKU',
1026
- "Compare this month's performance vs last month",
655
+ 'Compare this month\'s performance vs last month',
1027
656
  'Show aggregated performance by sales segment',
1028
657
  'Break down revenue by SKU category',
1029
658
  ],
@@ -1037,148 +666,16 @@ export const END_OF_MONTH_SALES_PERFORMANCE_AGENT_SPEC_0_0_1 = {
1037
666
  goal: `Consolidate, validate, and analyze end-of-month Salesforce retail sales data. Compute revenue performance vs targets by SKU, detect anomalies in bookings and discounting, explain variances by region/segment/product/SKU, and generate an executive-ready PDF performance report with full data lineage.`,
1038
667
  protocol: 'vercel-ai',
1039
668
  uiExtension: 'a2ui',
1040
- trigger: {
1041
- type: 'schedule',
1042
- cron: '0 6 1 * *',
1043
- description: 'Monthly on the 1st at 06:00 to process prior month Salesforce sales performance.\n',
1044
- prompt: 'Run the scheduled workflow and produce the configured deliverable.',
1045
- },
1046
- modelConfig: { temperature: 0.1, max_tokens: 4096 },
1047
- mcpServerTools: [
1048
- {
1049
- server: 'Salesforce MCP',
1050
- tools: [
1051
- { name: 'fetch_closed_won_opportunities', approval: 'auto' },
1052
- { name: 'fetch_pipeline_snapshot', approval: 'auto' },
1053
- { name: 'fetch_accounts', approval: 'auto' },
1054
- { name: 'fetch_sales_targets', approval: 'auto' },
1055
- { name: 'compute_kpis', approval: 'auto' },
1056
- { name: 'fetch_sku_performance', approval: 'auto' },
1057
- { name: 'detect_revenue_anomalies', approval: 'auto' },
1058
- { name: 'export_deal_level_details', approval: 'manual' },
1059
- { name: 'generate_sales_report', approval: 'auto' },
1060
- ],
1061
- },
1062
- ],
1063
- guardrails: [
1064
- {
1065
- name: 'Sales Performance Read-Only Analyst',
1066
- identity_provider: 'datalayer',
1067
- identity_name: 'sales-bot@acme.com',
1068
- permissions: {
1069
- 'read:data': true,
1070
- 'write:data': false,
1071
- 'execute:code': true,
1072
- 'access:internet': false,
1073
- 'send:email': false,
1074
- 'deploy:production': false,
1075
- },
1076
- data_scope: {
1077
- allowed_systems: ['salesforce'],
1078
- allowed_objects: [
1079
- 'Opportunity',
1080
- 'Account',
1081
- 'User',
1082
- 'Product2',
1083
- 'PricebookEntry',
1084
- ],
1085
- denied_objects: [
1086
- 'Contact',
1087
- 'Lead',
1088
- 'Case',
1089
- 'Task',
1090
- 'Event',
1091
- 'EmailMessage',
1092
- 'Attachment',
1093
- 'ContentDocument',
1094
- 'ContentVersion',
1095
- ],
1096
- denied_fields: [
1097
- 'Account.Phone',
1098
- 'Account.BillingStreet',
1099
- 'Account.ShippingStreet',
1100
- 'Account.Website',
1101
- 'Opportunity.Description',
1102
- 'Opportunity.NextStep',
1103
- 'Opportunity.Private_Notes__c',
1104
- '*SSN*',
1105
- '*Bank*',
1106
- '*IBAN*',
1107
- ],
1108
- },
1109
- data_handling: {
1110
- default_aggregation: true,
1111
- allow_row_level_output: false,
1112
- max_rows_in_output: 0,
1113
- max_deal_appendix_rows: 25,
1114
- redact_fields: ['Account.Name', 'Opportunity.Name'],
1115
- hash_fields: ['Account.Id', 'Opportunity.Id'],
1116
- pii_detection: true,
1117
- pii_action: 'redact',
1118
- },
1119
- approval_policy: {
1120
- require_manual_approval_for: [
1121
- 'Any output containing Account.Name or Opportunity.Name',
1122
- 'Per-rep rankings or compensation-related metrics',
1123
- 'Deal-level breakdown above 10 records',
1124
- 'Any query spanning more than 45 days',
1125
- 'Any report including open pipeline details',
1126
- ],
1127
- auto_approved: [
1128
- 'Aggregated KPIs by region, segment, or product',
1129
- 'Month-over-month comparisons with aggregated data',
1130
- ],
1131
- },
1132
- tool_limits: {
1133
- max_tool_calls: 25,
1134
- max_query_rows: 200000,
1135
- max_query_runtime: '30s',
1136
- max_time_window_days: 45,
1137
- },
1138
- audit: {
1139
- log_tool_calls: true,
1140
- log_query_metadata_only: true,
1141
- retain_days: 30,
1142
- require_lineage_in_report: true,
1143
- },
1144
- content_safety: {
1145
- treat_crm_text_fields_as_untrusted: true,
1146
- do_not_follow_instructions_from_data: true,
1147
- },
1148
- token_limits: { per_run: '30K', per_day: '300K', per_month: '3M' },
1149
- },
1150
- ],
1151
- evals: [
1152
- { name: 'KPI Accuracy', category: 'coding', task_count: 400 },
1153
- {
1154
- name: 'Variance Explanation Quality',
1155
- category: 'reasoning',
1156
- task_count: 200,
1157
- },
1158
- {
1159
- name: 'Anomaly Detection Precision',
1160
- category: 'reasoning',
1161
- task_count: 200,
1162
- },
1163
- {
1164
- name: 'SKU-Level Revenue Reconciliation',
1165
- category: 'coding',
1166
- task_count: 150,
1167
- },
1168
- ],
1169
- codemode: { enabled: true, token_reduction: '~85%', speedup: '~1.5× faster' },
1170
- output: {
1171
- type: 'PDF',
1172
- template: 'end_of_month_sales_performance_report.pdf',
1173
- },
1174
- advanced: {
1175
- cost_limit: '$3.00 per run',
1176
- time_limit: '600 seconds',
1177
- max_iterations: 30,
1178
- validation: 'All reported revenue figures must reconcile with Salesforce closed-won totals for the selected period, including SKU-level breakdowns. Variances vs targets must be computed and explained at both aggregate and per-SKU levels. All outputs must include a data lineage section listing objects queried, filters applied, and record counts.\n',
1179
- },
669
+ trigger: { "type": "schedule", "cron": "0 6 1 * *", "description": "Monthly on the 1st at 06:00 to process prior month Salesforce sales performance.\n", "prompt": "Run the scheduled workflow and produce the configured deliverable." },
670
+ modelConfig: { "temperature": 0.1, "max_tokens": 4096 },
671
+ mcpServerTools: [{ "server": "Salesforce MCP", "tools": [{ "name": "fetch_closed_won_opportunities", "approval": "auto" }, { "name": "fetch_pipeline_snapshot", "approval": "auto" }, { "name": "fetch_accounts", "approval": "auto" }, { "name": "fetch_sales_targets", "approval": "auto" }, { "name": "compute_kpis", "approval": "auto" }, { "name": "fetch_sku_performance", "approval": "auto" }, { "name": "detect_revenue_anomalies", "approval": "auto" }, { "name": "export_deal_level_details", "approval": "manual" }, { "name": "generate_sales_report", "approval": "auto" }] }],
672
+ guardrails: [{ "name": "Sales Performance Read-Only Analyst", "identity_provider": "datalayer", "identity_name": "sales-bot@acme.com", "permissions": { "read:data": true, "write:data": false, "execute:code": true, "access:internet": false, "send:email": false, "deploy:production": false }, "data_scope": { "allowed_systems": ["salesforce"], "allowed_objects": ["Opportunity", "Account", "User", "Product2", "PricebookEntry"], "denied_objects": ["Contact", "Lead", "Case", "Task", "Event", "EmailMessage", "Attachment", "ContentDocument", "ContentVersion"], "denied_fields": ["Account.Phone", "Account.BillingStreet", "Account.ShippingStreet", "Account.Website", "Opportunity.Description", "Opportunity.NextStep", "Opportunity.Private_Notes__c", "*SSN*", "*Bank*", "*IBAN*"] }, "data_handling": { "default_aggregation": true, "allow_row_level_output": false, "max_rows_in_output": 0, "max_deal_appendix_rows": 25, "redact_fields": ["Account.Name", "Opportunity.Name"], "hash_fields": ["Account.Id", "Opportunity.Id"], "pii_detection": true, "pii_action": "redact" }, "approval_policy": { "require_manual_approval_for": ["Any output containing Account.Name or Opportunity.Name", "Per-rep rankings or compensation-related metrics", "Deal-level breakdown above 10 records", "Any query spanning more than 45 days", "Any report including open pipeline details"], "auto_approved": ["Aggregated KPIs by region, segment, or product", "Month-over-month comparisons with aggregated data"] }, "tool_limits": { "max_tool_calls": 25, "max_query_rows": 200000, "max_query_runtime": "30s", "max_time_window_days": 45 }, "audit": { "log_tool_calls": true, "log_query_metadata_only": true, "retain_days": 30, "require_lineage_in_report": true }, "content_safety": { "treat_crm_text_fields_as_untrusted": true, "do_not_follow_instructions_from_data": true }, "token_limits": { "per_run": "30K", "per_day": "300K", "per_month": "3M" } }],
673
+ evals: [{ "name": "KPI Accuracy", "category": "coding", "task_count": 400 }, { "name": "Variance Explanation Quality", "category": "reasoning", "task_count": 200 }, { "name": "Anomaly Detection Precision", "category": "reasoning", "task_count": 200 }, { "name": "SKU-Level Revenue Reconciliation", "category": "coding", "task_count": 150 }],
674
+ codemode: { "enabled": true, "token_reduction": "~85%", "speedup": "~1.5× faster" },
675
+ output: { "type": "PDF", "template": "end_of_month_sales_performance_report.pdf" },
676
+ advanced: { "cost_limit": "$3.00 per run", "time_limit": "600 seconds", "max_iterations": 30, "validation": "All reported revenue figures must reconcile with Salesforce closed-won totals for the selected period, including SKU-level breakdowns. Variances vs targets must be computed and explained at both aggregate and per-SKU levels. All outputs must include a data lineage section listing objects queried, filters applied, and record counts.\n" },
1180
677
  authorizationPolicy: '',
1181
- notifications: { email: 'cro@company.com', slack: '#sales-performance' },
678
+ notifications: { "email": "cro@company.com", "slack": "#sales-performance" },
1182
679
  memory: 'ephemeral',
1183
680
  };
1184
681
  export const EXTRACT_DATA_FROM_FILES_AGENT_SPEC_0_0_1 = {
@@ -1190,16 +687,9 @@ export const EXTRACT_DATA_FROM_FILES_AGENT_SPEC_0_0_1 = {
1190
687
  enabled: false,
1191
688
  model: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0',
1192
689
  mcpServers: [MCP_SERVER_MAP['filesystem:0.0.1']],
1193
- skills: [
1194
- toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']),
1195
- toAgentSkillSpec(SKILL_MAP['github:0.0.1']),
1196
- toAgentSkillSpec(SKILL_MAP['events:0.0.1']),
1197
- ],
690
+ skills: [toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']), toAgentSkillSpec(SKILL_MAP['github:0.0.1']), toAgentSkillSpec(SKILL_MAP['events:0.0.1'])],
1198
691
  tools: [],
1199
- frontendTools: [
1200
- FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'],
1201
- FRONTEND_TOOL_MAP['lexical-document:0.0.1'],
1202
- ],
692
+ frontendTools: [FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'], FRONTEND_TOOL_MAP['lexical-document:0.0.1']],
1203
693
  environmentName: 'ai-agents-env',
1204
694
  icon: 'database',
1205
695
  emoji: '🗃️',
@@ -1214,62 +704,16 @@ export const EXTRACT_DATA_FROM_FILES_AGENT_SPEC_0_0_1 = {
1214
704
  goal: `Extract structured data from unstructured files. Parse tables, key-value pairs, line items, dates, amounts, and named entities from PDFs, images, spreadsheets, and scanned documents. Output clean JSON and CSV with confidence scores for each extracted field.`,
1215
705
  protocol: 'vercel-ai',
1216
706
  uiExtension: 'a2ui',
1217
- trigger: {
1218
- type: 'event',
1219
- event: 'file_uploaded',
1220
- description: 'Triggered when new files are dropped into the extraction folder',
1221
- prompt: "Handle the 'file_uploaded' event and execute the workflow end-to-end.",
1222
- },
1223
- modelConfig: { temperature: 0.1, max_tokens: 8192 },
1224
- mcpServerTools: [
1225
- {
1226
- server: 'File Processor',
1227
- tools: [
1228
- { name: 'read_pdf_tables', approval: 'auto' },
1229
- { name: 'ocr_image', approval: 'auto' },
1230
- { name: 'parse_spreadsheet', approval: 'auto' },
1231
- ],
1232
- },
1233
- {
1234
- server: 'Schema Mapper',
1235
- tools: [
1236
- { name: 'map_to_schema', approval: 'auto' },
1237
- { name: 'validate_output', approval: 'auto' },
1238
- { name: 'write_to_database', approval: 'manual' },
1239
- ],
1240
- },
1241
- ],
1242
- guardrails: [
1243
- {
1244
- name: 'Default Platform User',
1245
- identity_provider: 'datalayer',
1246
- identity_name: 'extraction-bot@acme.com',
1247
- permissions: {
1248
- 'read:data': true,
1249
- 'write:data': true,
1250
- 'execute:code': true,
1251
- 'access:internet': false,
1252
- 'send:email': false,
1253
- 'deploy:production': false,
1254
- },
1255
- token_limits: { per_run: '40K', per_day: '400K', per_month: '4M' },
1256
- },
1257
- ],
1258
- evals: [
1259
- { name: 'Table Extraction Accuracy', category: 'coding', task_count: 450 },
1260
- { name: 'Key-Value Pair Extraction', category: 'coding', task_count: 380 },
1261
- { name: 'Schema Mapping Quality', category: 'reasoning', task_count: 250 },
1262
- ],
707
+ trigger: { "type": "event", "event": "file_uploaded", "description": "Triggered when new files are dropped into the extraction folder", "prompt": "Handle the 'file_uploaded' event and execute the workflow end-to-end." },
708
+ modelConfig: { "temperature": 0.1, "max_tokens": 8192 },
709
+ mcpServerTools: [{ "server": "File Processor", "tools": [{ "name": "read_pdf_tables", "approval": "auto" }, { "name": "ocr_image", "approval": "auto" }, { "name": "parse_spreadsheet", "approval": "auto" }] }, { "server": "Schema Mapper", "tools": [{ "name": "map_to_schema", "approval": "auto" }, { "name": "validate_output", "approval": "auto" }, { "name": "write_to_database", "approval": "manual" }] }],
710
+ guardrails: [{ "name": "Default Platform User", "identity_provider": "datalayer", "identity_name": "extraction-bot@acme.com", "permissions": { "read:data": true, "write:data": true, "execute:code": true, "access:internet": false, "send:email": false, "deploy:production": false }, "token_limits": { "per_run": "40K", "per_day": "400K", "per_month": "4M" } }],
711
+ evals: [{ "name": "Table Extraction Accuracy", "category": "coding", "task_count": 450 }, { "name": "Key-Value Pair Extraction", "category": "coding", "task_count": 380 }, { "name": "Schema Mapping Quality", "category": "reasoning", "task_count": 250 }],
1263
712
  codemode: undefined,
1264
- output: {
1265
- type: 'JSON',
1266
- formats: ['JSON', 'CSV'],
1267
- template: 'extraction-output-v1',
1268
- storage: 's3://acme-extractions/',
1269
- },
713
+ output: { "type": "JSON", "formats": ["JSON", "CSV"], "template": "extraction-output-v1", "storage": "s3://acme-extractions/" },
1270
714
  advanced: undefined,
1271
715
  authorizationPolicy: undefined,
1272
- notifications: { slack: '#data-extraction', email: 'data-team@acme.com' },
716
+ notifications: { "slack": "#data-extraction", "email": "data-team@acme.com" },
1273
717
  memory: 'ephemeral',
1274
718
  };
1275
719
  export const FINANCIAL_VIZ_AGENT_SPEC_0_0_1 = {
@@ -1280,16 +724,10 @@ export const FINANCIAL_VIZ_AGENT_SPEC_0_0_1 = {
1280
724
  tags: ['finance', 'stocks', 'visualization', 'charts'],
1281
725
  enabled: false,
1282
726
  model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
1283
- mcpServers: [
1284
- MCP_SERVER_MAP['alphavantage:0.0.1'],
1285
- MCP_SERVER_MAP['chart:0.0.1'],
1286
- ],
727
+ mcpServers: [MCP_SERVER_MAP['alphavantage:0.0.1'], MCP_SERVER_MAP['chart:0.0.1']],
1287
728
  skills: [toAgentSkillSpec(SKILL_MAP['events:0.0.1'])],
1288
729
  tools: [],
1289
- frontendTools: [
1290
- FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'],
1291
- FRONTEND_TOOL_MAP['lexical-document:0.0.1'],
1292
- ],
730
+ frontendTools: [FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'], FRONTEND_TOOL_MAP['lexical-document:0.0.1']],
1293
731
  environmentName: 'ai-agents-env',
1294
732
  icon: 'trending-up',
1295
733
  emoji: '📈',
@@ -1326,7 +764,7 @@ export const FINANCIAL_VIZ_AGENT_SPEC_0_0_1 = {
1326
764
  ## Token Efficiency When possible, chain multiple tool calls in a single execute_code block. This reduces output tokens by processing intermediate results in code rather than returning them. If you want to examine results, print subsets, preview (maximum 20 first characters) and/or counts instead of full data, this is really important.
1327
765
  `,
1328
766
  goal: undefined,
1329
- protocol: undefined,
767
+ protocol: 'vercel-ai',
1330
768
  uiExtension: undefined,
1331
769
  trigger: undefined,
1332
770
  modelConfig: undefined,
@@ -1351,10 +789,7 @@ export const FINANCIAL_AGENT_SPEC_0_0_1 = {
1351
789
  mcpServers: [MCP_SERVER_MAP['alphavantage:0.0.1']],
1352
790
  skills: [toAgentSkillSpec(SKILL_MAP['events:0.0.1'])],
1353
791
  tools: [],
1354
- frontendTools: [
1355
- FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'],
1356
- FRONTEND_TOOL_MAP['lexical-document:0.0.1'],
1357
- ],
792
+ frontendTools: [FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'], FRONTEND_TOOL_MAP['lexical-document:0.0.1']],
1358
793
  environmentName: 'ai-agents-env',
1359
794
  icon: 'trending-up',
1360
795
  emoji: '📈',
@@ -1391,7 +826,7 @@ export const FINANCIAL_AGENT_SPEC_0_0_1 = {
1391
826
  ## Token Efficiency When possible, chain multiple tool calls in a single execute_code block. This reduces output tokens by processing intermediate results in code rather than returning them. If you want to examine results, print subsets, preview (maximum 20 first characters) and/or counts instead of full data, this is really important.
1392
827
  `,
1393
828
  goal: undefined,
1394
- protocol: undefined,
829
+ protocol: 'vercel-ai',
1395
830
  uiExtension: undefined,
1396
831
  trigger: undefined,
1397
832
  modelConfig: undefined,
@@ -1413,27 +848,18 @@ export const GENERATE_WEEKLY_REPORTS_AGENT_SPEC_0_0_1 = {
1413
848
  tags: ['marketing', 'reports', 'weekly', 'analytics', 'automation'],
1414
849
  enabled: false,
1415
850
  model: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0',
1416
- mcpServers: [
1417
- MCP_SERVER_MAP['filesystem:0.0.1'],
1418
- MCP_SERVER_MAP['slack:0.0.1'],
1419
- ],
1420
- skills: [
1421
- toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']),
1422
- toAgentSkillSpec(SKILL_MAP['events:0.0.1']),
1423
- ],
851
+ mcpServers: [MCP_SERVER_MAP['filesystem:0.0.1'], MCP_SERVER_MAP['slack:0.0.1']],
852
+ skills: [toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']), toAgentSkillSpec(SKILL_MAP['events:0.0.1'])],
1424
853
  tools: [],
1425
- frontendTools: [
1426
- FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'],
1427
- FRONTEND_TOOL_MAP['lexical-document:0.0.1'],
1428
- ],
854
+ frontendTools: [FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'], FRONTEND_TOOL_MAP['lexical-document:0.0.1']],
1429
855
  environmentName: 'ai-agents-env',
1430
856
  icon: 'file',
1431
857
  emoji: '📝',
1432
858
  color: '#cf222e',
1433
859
  suggestions: [
1434
- "Generate this week's executive report",
860
+ 'Generate this week\'s executive report',
1435
861
  'Show marketing KPIs for the last 7 days',
1436
- "Compare this week's sales to last week",
862
+ 'Compare this week\'s sales to last week',
1437
863
  'What were the top operational issues this week?',
1438
864
  ],
1439
865
  welcomeMessage: "Hello! I'm the Weekly Report Generator. Every Monday I aggregate data from marketing, sales, and operations to produce a structured executive report with charts, KPI summaries, and actionable takeaways.\n",
@@ -1446,67 +872,16 @@ export const GENERATE_WEEKLY_REPORTS_AGENT_SPEC_0_0_1 = {
1446
872
  goal: `Aggregate data across marketing, sales, and operations departments every Monday. Generate a structured executive report with charts, KPI summaries, trend analysis, and the top 3 actionable takeaways for leadership.`,
1447
873
  protocol: 'vercel-ai',
1448
874
  uiExtension: 'a2ui',
1449
- trigger: {
1450
- type: 'schedule',
1451
- cron: '0 6 * * 1',
1452
- description: 'Every Monday at 6:00 AM UTC',
1453
- prompt: 'Run the scheduled workflow and produce the configured deliverable.',
1454
- },
1455
- modelConfig: { temperature: 0.2, max_tokens: 8192 },
1456
- mcpServerTools: [
1457
- {
1458
- server: 'Data Warehouse',
1459
- tools: [
1460
- { name: 'query_marketing_data', approval: 'auto' },
1461
- { name: 'query_sales_data', approval: 'auto' },
1462
- { name: 'query_operations_data', approval: 'auto' },
1463
- ],
1464
- },
1465
- {
1466
- server: 'Visualization Engine',
1467
- tools: [
1468
- { name: 'generate_charts', approval: 'auto' },
1469
- { name: 'create_dashboard', approval: 'auto' },
1470
- ],
1471
- },
1472
- {
1473
- server: 'Document Generator',
1474
- tools: [
1475
- { name: 'compile_report', approval: 'auto' },
1476
- { name: 'send_report', approval: 'manual' },
1477
- ],
1478
- },
1479
- ],
1480
- guardrails: [
1481
- {
1482
- name: 'Data Engineering Power User',
1483
- identity_provider: 'datalayer',
1484
- identity_name: 'reports-bot@acme.com',
1485
- permissions: {
1486
- 'read:data': true,
1487
- 'write:data': true,
1488
- 'execute:code': true,
1489
- 'access:internet': true,
1490
- 'send:email': true,
1491
- 'deploy:production': false,
1492
- },
1493
- token_limits: { per_run: '80K', per_day: '500K', per_month: '5M' },
1494
- },
1495
- ],
1496
- evals: [
1497
- { name: 'Report Completeness', category: 'coding', task_count: 100 },
1498
- { name: 'Data Accuracy', category: 'reasoning', task_count: 250 },
1499
- ],
1500
- codemode: { enabled: true, token_reduction: '~90%', speedup: '~2× faster' },
1501
- output: { type: 'PDF', template: 'weekly_executive_report.pdf' },
1502
- advanced: {
1503
- cost_limit: '$8.00 per run',
1504
- time_limit: '600 seconds',
1505
- max_iterations: 60,
1506
- validation: 'Report must include all department KPIs and trend charts',
1507
- },
875
+ trigger: { "type": "schedule", "cron": "0 6 * * 1", "description": "Every Monday at 6:00 AM UTC", "prompt": "Run the scheduled workflow and produce the configured deliverable." },
876
+ modelConfig: { "temperature": 0.2, "max_tokens": 8192 },
877
+ mcpServerTools: [{ "server": "Data Warehouse", "tools": [{ "name": "query_marketing_data", "approval": "auto" }, { "name": "query_sales_data", "approval": "auto" }, { "name": "query_operations_data", "approval": "auto" }] }, { "server": "Visualization Engine", "tools": [{ "name": "generate_charts", "approval": "auto" }, { "name": "create_dashboard", "approval": "auto" }] }, { "server": "Document Generator", "tools": [{ "name": "compile_report", "approval": "auto" }, { "name": "send_report", "approval": "manual" }] }],
878
+ guardrails: [{ "name": "Data Engineering Power User", "identity_provider": "datalayer", "identity_name": "reports-bot@acme.com", "permissions": { "read:data": true, "write:data": true, "execute:code": true, "access:internet": true, "send:email": true, "deploy:production": false }, "token_limits": { "per_run": "80K", "per_day": "500K", "per_month": "5M" } }],
879
+ evals: [{ "name": "Report Completeness", "category": "coding", "task_count": 100 }, { "name": "Data Accuracy", "category": "reasoning", "task_count": 250 }],
880
+ codemode: { "enabled": true, "token_reduction": "~90%", "speedup": "~2× faster" },
881
+ output: { "type": "PDF", "template": "weekly_executive_report.pdf" },
882
+ advanced: { "cost_limit": "$8.00 per run", "time_limit": "600 seconds", "max_iterations": 60, "validation": "Report must include all department KPIs and trend charts" },
1508
883
  authorizationPolicy: '',
1509
- notifications: { email: 'robert.w@company.com', slack: '#weekly-reports' },
884
+ notifications: { "email": "robert.w@company.com", "slack": "#weekly-reports" },
1510
885
  memory: 'ephemeral',
1511
886
  };
1512
887
  export const GITHUB_AGENT_SPEC_0_0_1 = {
@@ -1518,15 +893,9 @@ export const GITHUB_AGENT_SPEC_0_0_1 = {
1518
893
  enabled: false,
1519
894
  model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
1520
895
  mcpServers: [MCP_SERVER_MAP['google-workspace:0.0.1']],
1521
- skills: [
1522
- toAgentSkillSpec(SKILL_MAP['github:0.0.1']),
1523
- toAgentSkillSpec(SKILL_MAP['events:0.0.1']),
1524
- ],
896
+ skills: [toAgentSkillSpec(SKILL_MAP['github:0.0.1']), toAgentSkillSpec(SKILL_MAP['events:0.0.1'])],
1525
897
  tools: [],
1526
- frontendTools: [
1527
- FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'],
1528
- FRONTEND_TOOL_MAP['lexical-document:0.0.1'],
1529
- ],
898
+ frontendTools: [FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'], FRONTEND_TOOL_MAP['lexical-document:0.0.1']],
1530
899
  environmentName: 'ai-agents-env',
1531
900
  icon: 'git-branch',
1532
901
  emoji: '🐙',
@@ -1563,7 +932,7 @@ export const GITHUB_AGENT_SPEC_0_0_1 = {
1563
932
  ## Token Efficiency When possible, chain multiple tool calls in a single execute_code block. This reduces output tokens by processing intermediate results in code rather than returning them. If you want to examine results, print subsets, preview (maximum 20 first characters) and/or counts instead of full data, this is really important.
1564
933
  `,
1565
934
  goal: undefined,
1566
- protocol: undefined,
935
+ protocol: 'vercel-ai',
1567
936
  uiExtension: undefined,
1568
937
  trigger: undefined,
1569
938
  modelConfig: undefined,
@@ -1585,16 +954,10 @@ export const INFORMATION_ROUTING_AGENT_SPEC_0_0_1 = {
1585
954
  tags: ['workflow', 'communication', 'gdrive'],
1586
955
  enabled: false,
1587
956
  model: 'bedrock:us.anthropic.claude-opus-4-6-v1',
1588
- mcpServers: [
1589
- MCP_SERVER_MAP['google-workspace:0.0.1'],
1590
- MCP_SERVER_MAP['github:0.0.1'],
1591
- ],
957
+ mcpServers: [MCP_SERVER_MAP['google-workspace:0.0.1'], MCP_SERVER_MAP['github:0.0.1']],
1592
958
  skills: [toAgentSkillSpec(SKILL_MAP['events:0.0.1'])],
1593
959
  tools: [],
1594
- frontendTools: [
1595
- FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'],
1596
- FRONTEND_TOOL_MAP['lexical-document:0.0.1'],
1597
- ],
960
+ frontendTools: [FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'], FRONTEND_TOOL_MAP['lexical-document:0.0.1']],
1598
961
  environmentName: 'ai-agents-env',
1599
962
  icon: 'share-2',
1600
963
  emoji: '🔀',
@@ -1631,7 +994,7 @@ export const INFORMATION_ROUTING_AGENT_SPEC_0_0_1 = {
1631
994
  ## Token Efficiency Always chain multiple tool calls in a single execute_code block. This reduces output tokens by processing intermediate results in code rather than returning them. If you want to examine results, print subsets, preview (maximum 20 first characters) and/or counts instead of full data, this is really important!!!!
1632
995
  `,
1633
996
  goal: undefined,
1634
- protocol: undefined,
997
+ protocol: 'vercel-ai',
1635
998
  uiExtension: undefined,
1636
999
  trigger: undefined,
1637
1000
  modelConfig: undefined,
@@ -1654,26 +1017,15 @@ export const MONITOR_SALES_KPIS_AGENT_SPEC_0_0_1 = {
1654
1017
  enabled: false,
1655
1018
  model: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0',
1656
1019
  mcpServers: [MCP_SERVER_MAP['filesystem:0.0.1']],
1657
- skills: [
1658
- toAgentSkillSpec(SKILL_MAP['github:0.0.1']),
1659
- toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']),
1660
- toAgentSkillSpec(SKILL_MAP['events:0.0.1']),
1661
- ],
1662
- tools: [
1663
- TOOL_MAP['runtime-echo:0.0.1'],
1664
- TOOL_MAP['runtime-sensitive-echo:0.0.1'],
1665
- TOOL_MAP['runtime-send-mail:0.0.1'],
1666
- ],
1667
- frontendTools: [
1668
- FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'],
1669
- FRONTEND_TOOL_MAP['lexical-document:0.0.1'],
1670
- ],
1020
+ skills: [toAgentSkillSpec(SKILL_MAP['github:0.0.1']), toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']), toAgentSkillSpec(SKILL_MAP['events:0.0.1'])],
1021
+ tools: [TOOL_MAP['runtime-echo:0.0.1'], TOOL_MAP['runtime-sensitive-echo:0.0.1'], TOOL_MAP['runtime-send-mail:0.0.1']],
1022
+ frontendTools: [FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'], FRONTEND_TOOL_MAP['lexical-document:0.0.1']],
1671
1023
  environmentName: 'ai-agents-env',
1672
1024
  icon: 'graph',
1673
1025
  emoji: '📊',
1674
1026
  color: '#2da44e',
1675
1027
  suggestions: [
1676
- "Show me today's sales KPI dashboard",
1028
+ 'Show me today\'s sales KPI dashboard',
1677
1029
  'What are the current revenue trends?',
1678
1030
  'Flag any KPIs that deviate more than 10% from targets',
1679
1031
  'Generate a weekly summary report',
@@ -1690,68 +1042,16 @@ export const MONITOR_SALES_KPIS_AGENT_SPEC_0_0_1 = {
1690
1042
  goal: `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.`,
1691
1043
  protocol: 'vercel-ai',
1692
1044
  uiExtension: 'a2ui',
1693
- trigger: {
1694
- type: 'schedule',
1695
- cron: '0 8 * * *',
1696
- description: 'Every day at 8:00 AM UTC',
1697
- prompt: 'Run the scheduled workflow and produce the configured deliverable.',
1698
- },
1699
- modelConfig: { temperature: 0.3, max_tokens: 4096 },
1700
- mcpServerTools: [
1701
- {
1702
- server: 'CRM Data Server',
1703
- tools: [
1704
- { name: 'get_sales_data', approval: 'auto' },
1705
- { name: 'get_customer_list', approval: 'auto' },
1706
- { name: 'update_records', approval: 'manual' },
1707
- ],
1708
- },
1709
- {
1710
- server: 'Analytics Server',
1711
- tools: [
1712
- { name: 'run_analysis', approval: 'auto' },
1713
- { name: 'generate_charts', approval: 'auto' },
1714
- ],
1715
- },
1716
- ],
1717
- guardrails: [
1718
- {
1719
- name: 'Default Platform User',
1720
- identity_provider: 'datalayer',
1721
- identity_name: 'alice@acme.com',
1722
- permissions: {
1723
- 'read:data': true,
1724
- 'write:data': true,
1725
- 'execute:code': true,
1726
- 'access:internet': true,
1727
- 'send:email': false,
1728
- 'deploy:production': false,
1729
- },
1730
- token_limits: { per_run: '50K', per_day: '500K', per_month: '5M' },
1731
- },
1732
- ],
1733
- evals: [
1734
- { name: 'SWE-bench', category: 'coding', task_count: 2294 },
1735
- { name: 'HumanEval', category: 'coding', task_count: 164 },
1736
- { name: 'GPQA Diamond', category: 'reasoning', task_count: 448 },
1737
- { name: 'TruthfulQA', category: 'safety', task_count: 817 },
1738
- ],
1739
- codemode: { enabled: true, token_reduction: '~90%', speedup: '~2× faster' },
1740
- output: { type: 'Notebook', template: 'kpi_report_template.ipynb' },
1741
- advanced: {
1742
- cost_limit: '$5.00 per run',
1743
- time_limit: '300 seconds',
1744
- max_iterations: 50,
1745
- validation: 'Output must contain required KPI fields',
1746
- checkpoint_interval: 30,
1747
- context_window: {
1748
- max_tokens: 100000,
1749
- eviction_strategy: 'sliding_window',
1750
- summary_threshold: 0.85,
1751
- },
1752
- },
1045
+ trigger: { "type": "schedule", "cron": "0 8 * * *", "description": "Every day at 8:00 AM UTC", "prompt": "Run the scheduled workflow and produce the configured deliverable." },
1046
+ modelConfig: { "temperature": 0.3, "max_tokens": 4096 },
1047
+ mcpServerTools: [{ "server": "CRM Data Server", "tools": [{ "name": "get_sales_data", "approval": "auto" }, { "name": "get_customer_list", "approval": "auto" }, { "name": "update_records", "approval": "manual" }] }, { "server": "Analytics Server", "tools": [{ "name": "run_analysis", "approval": "auto" }, { "name": "generate_charts", "approval": "auto" }] }],
1048
+ guardrails: [{ "name": "Default Platform User", "identity_provider": "datalayer", "identity_name": "alice@acme.com", "permissions": { "read:data": true, "write:data": true, "execute:code": true, "access:internet": true, "send:email": false, "deploy:production": false }, "token_limits": { "per_run": "50K", "per_day": "500K", "per_month": "5M" } }],
1049
+ evals: [{ "name": "SWE-bench", "category": "coding", "task_count": 2294 }, { "name": "HumanEval", "category": "coding", "task_count": 164 }, { "name": "GPQA Diamond", "category": "reasoning", "task_count": 448 }, { "name": "TruthfulQA", "category": "safety", "task_count": 817 }],
1050
+ codemode: { "enabled": true, "token_reduction": "~90%", "speedup": "~2× faster" },
1051
+ output: { "type": "Notebook", "template": "kpi_report_template.ipynb" },
1052
+ advanced: { "cost_limit": "$5.00 per run", "time_limit": "300 seconds", "max_iterations": 50, "validation": "Output must contain required KPI fields", "checkpoint_interval": 30, "context_window": { "max_tokens": 100000, "eviction_strategy": "sliding_window", "summary_threshold": 0.85 } },
1753
1053
  authorizationPolicy: '',
1754
- notifications: { email: 'marcus.r@company.com', slack: '#sales-kpis' },
1054
+ notifications: { "email": "marcus.r@company.com", "slack": "#sales-kpis" },
1755
1055
  memory: 'mem0',
1756
1056
  };
1757
1057
  export const OPTIMIZE_DYNAMIC_PRICING_AGENT_SPEC_0_0_1 = {
@@ -1759,27 +1059,13 @@ export const OPTIMIZE_DYNAMIC_PRICING_AGENT_SPEC_0_0_1 = {
1759
1059
  version: '0.0.1',
1760
1060
  name: 'Optimize Dynamic Pricing',
1761
1061
  description: `Monitors competitor pricing across marketplaces, forecasts demand per SKU, and generates margin-optimised pricing recommendations in real time. Tracks 50K+ SKUs hourly across Amazon, Walmart, and niche channels, combining competitive intelligence with demand signals to maximise margins.`,
1762
- tags: [
1763
- 'retail',
1764
- 'e-commerce',
1765
- 'pricing',
1766
- 'analytics',
1767
- 'demand-forecasting',
1768
- 'margins',
1769
- ],
1062
+ tags: ['retail', 'e-commerce', 'pricing', 'analytics', 'demand-forecasting', 'margins'],
1770
1063
  enabled: false,
1771
1064
  model: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0',
1772
1065
  mcpServers: [MCP_SERVER_MAP['filesystem:0.0.1']],
1773
- skills: [
1774
- toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']),
1775
- toAgentSkillSpec(SKILL_MAP['crawl:0.0.1']),
1776
- toAgentSkillSpec(SKILL_MAP['events:0.0.1']),
1777
- ],
1066
+ skills: [toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']), toAgentSkillSpec(SKILL_MAP['crawl:0.0.1']), toAgentSkillSpec(SKILL_MAP['events:0.0.1'])],
1778
1067
  tools: [],
1779
- frontendTools: [
1780
- FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'],
1781
- FRONTEND_TOOL_MAP['lexical-document:0.0.1'],
1782
- ],
1068
+ frontendTools: [FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'], FRONTEND_TOOL_MAP['lexical-document:0.0.1']],
1783
1069
  environmentName: 'ai-agents-env',
1784
1070
  icon: 'tag',
1785
1071
  emoji: '🏷️',
@@ -1789,7 +1075,7 @@ export const OPTIMIZE_DYNAMIC_PRICING_AGENT_SPEC_0_0_1 = {
1789
1075
  'Which SKUs have the highest price elasticity?',
1790
1076
  'Generate pricing recommendations for the electronics category',
1791
1077
  'Forecast demand for top 100 SKUs next week',
1792
- "What's the projected revenue impact of current recommendations?",
1078
+ 'What\'s the projected revenue impact of current recommendations?',
1793
1079
  ],
1794
1080
  welcomeMessage: "Hello! I'm the Dynamic Pricing agent. I monitor competitor prices across 50K+ SKUs hourly, forecast demand using historical and seasonal patterns, and generate margin-optimised pricing recommendations to keep you competitive while maximising profitability.\n",
1795
1081
  welcomeNotebook: undefined,
@@ -1801,78 +1087,16 @@ export const OPTIMIZE_DYNAMIC_PRICING_AGENT_SPEC_0_0_1 = {
1801
1087
  goal: `Track competitor pricing across 50K+ SKUs hourly on Amazon, Walmart, and niche marketplaces. Forecast demand per SKU-location pair using historical sales, seasonality, and external signals. Generate margin-optimised pricing recommendations with confidence intervals and projected revenue impact.`,
1802
1088
  protocol: 'vercel-ai',
1803
1089
  uiExtension: 'a2ui',
1804
- trigger: {
1805
- type: 'schedule',
1806
- cron: '0 * * * *',
1807
- description: 'Hourly competitive price scan and demand forecast update',
1808
- prompt: 'Run the scheduled workflow and produce the configured deliverable.',
1809
- },
1810
- modelConfig: { temperature: 0.1, max_tokens: 4096 },
1811
- mcpServerTools: [
1812
- {
1813
- server: 'Marketplace Intelligence MCP',
1814
- tools: [
1815
- { name: 'scrape_competitor_prices', approval: 'auto' },
1816
- { name: 'fetch_marketplace_listings', approval: 'auto' },
1817
- { name: 'detect_new_products', approval: 'auto' },
1818
- { name: 'compute_price_elasticity', approval: 'auto' },
1819
- { name: 'forecast_demand', approval: 'auto' },
1820
- { name: 'generate_price_recommendations', approval: 'manual' },
1821
- { name: 'apply_price_changes', approval: 'manual' },
1822
- ],
1823
- },
1824
- ],
1825
- guardrails: [
1826
- {
1827
- name: 'Pricing Intelligence Analyst',
1828
- identity_provider: 'datalayer',
1829
- identity_name: 'pricing-bot@acme.com',
1830
- permissions: {
1831
- 'read:data': true,
1832
- 'write:data': false,
1833
- 'execute:code': true,
1834
- 'access:internet': true,
1835
- 'send:email': false,
1836
- 'deploy:production': false,
1837
- },
1838
- data_handling: { pii_detection: false },
1839
- approval_policy: {
1840
- require_manual_approval_for: [
1841
- 'Any price change above 15% from current price',
1842
- 'Bulk price updates affecting more than 100 SKUs',
1843
- 'Below-cost pricing recommendations',
1844
- ],
1845
- auto_approved: [
1846
- 'Competitive price monitoring and data collection',
1847
- 'Demand forecasting and analysis',
1848
- 'Price recommendations within 15% band',
1849
- ],
1850
- },
1851
- token_limits: { per_run: '25K', per_day: '500K', per_month: '10M' },
1852
- },
1853
- ],
1854
- evals: [
1855
- { name: 'Price Tracking Accuracy', category: 'coding', task_count: 500 },
1856
- { name: 'Demand Forecast MAPE', category: 'reasoning', task_count: 300 },
1857
- { name: 'Margin Impact', category: 'coding', task_count: 200 },
1858
- ],
1859
- codemode: { enabled: true, token_reduction: '~90%', speedup: '~2× faster' },
1860
- output: {
1861
- formats: ['Dashboard', 'JSON', 'Spreadsheet'],
1862
- template: 'Dynamic Pricing Report',
1863
- storage: '/outputs/dynamic-pricing/',
1864
- },
1865
- advanced: {
1866
- cost_limit: '$1.50 per run',
1867
- time_limit: '300 seconds',
1868
- max_iterations: 20,
1869
- validation: 'All recommended prices must maintain minimum margin thresholds. Demand forecasts must include confidence intervals.\n',
1870
- },
1090
+ trigger: { "type": "schedule", "cron": "0 * * * *", "description": "Hourly competitive price scan and demand forecast update", "prompt": "Run the scheduled workflow and produce the configured deliverable." },
1091
+ modelConfig: { "temperature": 0.1, "max_tokens": 4096 },
1092
+ mcpServerTools: [{ "server": "Marketplace Intelligence MCP", "tools": [{ "name": "scrape_competitor_prices", "approval": "auto" }, { "name": "fetch_marketplace_listings", "approval": "auto" }, { "name": "detect_new_products", "approval": "auto" }, { "name": "compute_price_elasticity", "approval": "auto" }, { "name": "forecast_demand", "approval": "auto" }, { "name": "generate_price_recommendations", "approval": "manual" }, { "name": "apply_price_changes", "approval": "manual" }] }],
1093
+ guardrails: [{ "name": "Pricing Intelligence Analyst", "identity_provider": "datalayer", "identity_name": "pricing-bot@acme.com", "permissions": { "read:data": true, "write:data": false, "execute:code": true, "access:internet": true, "send:email": false, "deploy:production": false }, "data_handling": { "pii_detection": false }, "approval_policy": { "require_manual_approval_for": ["Any price change above 15% from current price", "Bulk price updates affecting more than 100 SKUs", "Below-cost pricing recommendations"], "auto_approved": ["Competitive price monitoring and data collection", "Demand forecasting and analysis", "Price recommendations within 15% band"] }, "token_limits": { "per_run": "25K", "per_day": "500K", "per_month": "10M" } }],
1094
+ evals: [{ "name": "Price Tracking Accuracy", "category": "coding", "task_count": 500 }, { "name": "Demand Forecast MAPE", "category": "reasoning", "task_count": 300 }, { "name": "Margin Impact", "category": "coding", "task_count": 200 }],
1095
+ codemode: { "enabled": true, "token_reduction": "~90%", "speedup": "~2× faster" },
1096
+ output: { "formats": ["Dashboard", "JSON", "Spreadsheet"], "template": "Dynamic Pricing Report", "storage": "/outputs/dynamic-pricing/" },
1097
+ advanced: { "cost_limit": "$1.50 per run", "time_limit": "300 seconds", "max_iterations": 20, "validation": "All recommended prices must maintain minimum margin thresholds. Demand forecasts must include confidence intervals.\n" },
1871
1098
  authorizationPolicy: '',
1872
- notifications: {
1873
- email: 'merchandising@company.com',
1874
- slack: '#pricing-intelligence',
1875
- },
1099
+ notifications: { "email": "merchandising@company.com", "slack": "#pricing-intelligence" },
1876
1100
  memory: 'ephemeral',
1877
1101
  };
1878
1102
  export const OPTIMIZE_GRID_OPERATIONS_AGENT_SPEC_0_0_1 = {
@@ -1880,26 +1104,13 @@ export const OPTIMIZE_GRID_OPERATIONS_AGENT_SPEC_0_0_1 = {
1880
1104
  version: '0.0.1',
1881
1105
  name: 'Optimize Grid Operations',
1882
1106
  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%.`,
1883
- tags: [
1884
- 'energy',
1885
- 'utilities',
1886
- 'smart-grid',
1887
- 'iot',
1888
- 'predictive-maintenance',
1889
- 'sustainability',
1890
- ],
1107
+ tags: ['energy', 'utilities', 'smart-grid', 'iot', 'predictive-maintenance', 'sustainability'],
1891
1108
  enabled: false,
1892
1109
  model: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0',
1893
1110
  mcpServers: [MCP_SERVER_MAP['filesystem:0.0.1']],
1894
- skills: [
1895
- toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']),
1896
- toAgentSkillSpec(SKILL_MAP['events:0.0.1']),
1897
- ],
1111
+ skills: [toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']), toAgentSkillSpec(SKILL_MAP['events:0.0.1'])],
1898
1112
  tools: [],
1899
- frontendTools: [
1900
- FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'],
1901
- FRONTEND_TOOL_MAP['lexical-document:0.0.1'],
1902
- ],
1113
+ frontendTools: [FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'], FRONTEND_TOOL_MAP['lexical-document:0.0.1']],
1903
1114
  environmentName: 'ai-agents-env',
1904
1115
  icon: 'zap',
1905
1116
  emoji: '⚡',
@@ -1908,7 +1119,7 @@ export const OPTIMIZE_GRID_OPERATIONS_AGENT_SPEC_0_0_1 = {
1908
1119
  'Show current grid health across all substations',
1909
1120
  'Which assets have anomaly alerts right now?',
1910
1121
  'Predict failures for the next 4 weeks',
1911
- "Optimise load balancing for tomorrow's forecast",
1122
+ 'Optimise load balancing for tomorrow\'s forecast',
1912
1123
  'Generate a maintenance schedule for flagged assets',
1913
1124
  ],
1914
1125
  welcomeMessage: "Hello! I'm the Grid Operations team orchestrator. I coordinate four agents — Sensor Ingestion, Anomaly Detector, Failure Predictor, and Grid Balancer — to keep your grid running efficiently with predictive maintenance and intelligent load optimisation.\n",
@@ -1921,66 +1132,16 @@ export const OPTIMIZE_GRID_OPERATIONS_AGENT_SPEC_0_0_1 = {
1921
1132
  goal: `Process millions of IoT sensor data points from SCADA systems, smart meters, and renewable assets. Detect equipment anomalies in real time, predict failures 2–4 weeks in advance, and optimise grid load balancing across renewable and conventional sources to reduce unplanned downtime by 50%.`,
1922
1133
  protocol: 'vercel-ai',
1923
1134
  uiExtension: 'a2ui',
1924
- trigger: {
1925
- type: 'schedule',
1926
- cron: '*/5 * * * *',
1927
- description: 'Every 5 minutes for real-time grid monitoring and optimization',
1928
- prompt: 'Run the scheduled workflow and produce the configured deliverable.',
1929
- },
1135
+ trigger: { "type": "schedule", "cron": "*/5 * * * *", "description": "Every 5 minutes for real-time grid monitoring and optimization", "prompt": "Run the scheduled workflow and produce the configured deliverable." },
1930
1136
  modelConfig: undefined,
1931
1137
  mcpServerTools: undefined,
1932
- guardrails: [
1933
- {
1934
- name: 'Grid Operations Agent',
1935
- identity_provider: 'datalayer',
1936
- identity_name: 'grid-bot@acme.com',
1937
- permissions: {
1938
- 'read:data': true,
1939
- 'write:data': false,
1940
- 'execute:code': true,
1941
- 'access:internet': false,
1942
- 'send:email': true,
1943
- 'deploy:production': false,
1944
- },
1945
- data_handling: { pii_detection: false },
1946
- approval_policy: {
1947
- require_manual_approval_for: [
1948
- 'Emergency load shedding recommendations',
1949
- 'Equipment shutdown orders',
1950
- 'Maintenance work orders above $50K',
1951
- ],
1952
- auto_approved: [
1953
- 'Sensor data ingestion and processing',
1954
- 'Anomaly detection and alerting',
1955
- 'Load balancing recommendations',
1956
- ],
1957
- },
1958
- token_limits: { per_run: '60K', per_day: '1M', per_month: '15M' },
1959
- },
1960
- ],
1961
- evals: [
1962
- { name: 'Anomaly Detection Accuracy', category: 'coding', task_count: 600 },
1963
- {
1964
- name: 'Failure Prediction Lead Time',
1965
- category: 'reasoning',
1966
- task_count: 300,
1967
- },
1968
- { name: 'Grid Stability Score', category: 'coding', task_count: 200 },
1969
- ],
1970
- codemode: { enabled: true, token_reduction: '~95%', speedup: '~3× faster' },
1971
- output: {
1972
- formats: ['Dashboard', 'PDF', 'JSON'],
1973
- template: 'Grid Operations Report',
1974
- storage: '/outputs/grid-operations/',
1975
- },
1976
- advanced: {
1977
- cost_limit: '$6.00 per run',
1978
- time_limit: '600 seconds',
1979
- max_iterations: 40,
1980
- validation: 'All sensor readings must be validated against equipment specifications. Failure predictions must include confidence intervals and risk scores.\n',
1981
- },
1138
+ guardrails: [{ "name": "Grid Operations Agent", "identity_provider": "datalayer", "identity_name": "grid-bot@acme.com", "permissions": { "read:data": true, "write:data": false, "execute:code": true, "access:internet": false, "send:email": true, "deploy:production": false }, "data_handling": { "pii_detection": false }, "approval_policy": { "require_manual_approval_for": ["Emergency load shedding recommendations", "Equipment shutdown orders", "Maintenance work orders above $50K"], "auto_approved": ["Sensor data ingestion and processing", "Anomaly detection and alerting", "Load balancing recommendations"] }, "token_limits": { "per_run": "60K", "per_day": "1M", "per_month": "15M" } }],
1139
+ evals: [{ "name": "Anomaly Detection Accuracy", "category": "coding", "task_count": 600 }, { "name": "Failure Prediction Lead Time", "category": "reasoning", "task_count": 300 }, { "name": "Grid Stability Score", "category": "coding", "task_count": 200 }],
1140
+ codemode: { "enabled": true, "token_reduction": "~95%", "speedup": "~3× faster" },
1141
+ output: { "formats": ["Dashboard", "PDF", "JSON"], "template": "Grid Operations Report", "storage": "/outputs/grid-operations/" },
1142
+ advanced: { "cost_limit": "$6.00 per run", "time_limit": "600 seconds", "max_iterations": 40, "validation": "All sensor readings must be validated against equipment specifications. Failure predictions must include confidence intervals and risk scores.\n" },
1982
1143
  authorizationPolicy: '',
1983
- notifications: { email: 'grid-ops@company.com', slack: '#grid-operations' },
1144
+ notifications: { "email": "grid-ops@company.com", "slack": "#grid-operations" },
1984
1145
  memory: 'ephemeral',
1985
1146
  };
1986
1147
  export const PROCESS_CITIZEN_REQUESTS_AGENT_SPEC_0_0_1 = {
@@ -1988,33 +1149,20 @@ export const PROCESS_CITIZEN_REQUESTS_AGENT_SPEC_0_0_1 = {
1988
1149
  version: '0.0.1',
1989
1150
  name: 'Process Citizen Requests',
1990
1151
  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.`,
1991
- tags: [
1992
- 'government',
1993
- 'public-sector',
1994
- 'civic',
1995
- 'policy',
1996
- 'compliance',
1997
- 'transparency',
1998
- ],
1152
+ tags: ['government', 'public-sector', 'civic', 'policy', 'compliance', 'transparency'],
1999
1153
  enabled: false,
2000
1154
  model: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0',
2001
1155
  mcpServers: [MCP_SERVER_MAP['filesystem:0.0.1']],
2002
- skills: [
2003
- toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']),
2004
- toAgentSkillSpec(SKILL_MAP['events:0.0.1']),
2005
- ],
1156
+ skills: [toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']), toAgentSkillSpec(SKILL_MAP['events:0.0.1'])],
2006
1157
  tools: [],
2007
- frontendTools: [
2008
- FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'],
2009
- FRONTEND_TOOL_MAP['lexical-document:0.0.1'],
2010
- ],
1158
+ frontendTools: [FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'], FRONTEND_TOOL_MAP['lexical-document:0.0.1']],
2011
1159
  environmentName: 'ai-agents-env',
2012
1160
  icon: 'organization',
2013
1161
  emoji: '🏛️',
2014
1162
  color: '#0550ae',
2015
1163
  suggestions: [
2016
- "Show today's citizen request intake summary",
2017
- "What's the current processing backlog by type?",
1164
+ 'Show today\'s citizen request intake summary',
1165
+ 'What\'s the current processing backlog by type?',
2018
1166
  'Run a policy impact simulation for the proposed zoning change',
2019
1167
  'Generate a transparency report for this quarter',
2020
1168
  'Which requests are overdue for response?',
@@ -2029,76 +1177,16 @@ export const PROCESS_CITIZEN_REQUESTS_AGENT_SPEC_0_0_1 = {
2029
1177
  goal: `Process citizen requests from web portals, email, and scanned documents. Classify by type, urgency, and jurisdiction, route to appropriate departments, model policy impacts across population datasets with Monte Carlo simulation, and generate explainable, auditable decision documentation for public record.`,
2030
1178
  protocol: 'vercel-ai',
2031
1179
  uiExtension: 'a2ui',
2032
- trigger: {
2033
- type: 'event',
2034
- description: 'Triggered on new citizen request submission from any channel',
2035
- prompt: 'Handle this event trigger: Triggered on new citizen request submission from any channel',
2036
- },
1180
+ trigger: { "type": "event", "description": "Triggered on new citizen request submission from any channel", "prompt": "Handle this event trigger: Triggered on new citizen request submission from any channel" },
2037
1181
  modelConfig: undefined,
2038
1182
  mcpServerTools: undefined,
2039
- guardrails: [
2040
- {
2041
- name: 'Government Services Agent',
2042
- identity_provider: 'datalayer',
2043
- identity_name: 'civic-bot@agency.gov',
2044
- permissions: {
2045
- 'read:data': true,
2046
- 'write:data': true,
2047
- 'execute:code': true,
2048
- 'access:internet': false,
2049
- 'send:email': true,
2050
- 'deploy:production': false,
2051
- },
2052
- data_scope: {
2053
- denied_fields: ['*SSN*', '*TaxId*', '*BankAccount*', '*CreditCard*'],
2054
- },
2055
- data_handling: {
2056
- pii_detection: true,
2057
- pii_action: 'redact',
2058
- default_aggregation: true,
2059
- },
2060
- approval_policy: {
2061
- require_manual_approval_for: [
2062
- 'Benefit denial decisions',
2063
- 'Policy recommendations affecting more than 1,000 citizens',
2064
- 'Any FOIA response containing redacted content',
2065
- 'Escalations to elected officials',
2066
- ],
2067
- auto_approved: [
2068
- 'Request classification and triage',
2069
- 'Standard permit processing',
2070
- 'Aggregated statistics and reporting',
2071
- ],
2072
- },
2073
- token_limits: { per_run: '40K', per_day: '400K', per_month: '5M' },
2074
- },
2075
- ],
2076
- evals: [
2077
- { name: 'Classification Accuracy', category: 'reasoning', task_count: 500 },
2078
- { name: 'Processing Time Reduction', category: 'coding', task_count: 300 },
2079
- {
2080
- name: 'Transparency Compliance Score',
2081
- category: 'safety',
2082
- task_count: 200,
2083
- },
2084
- ],
2085
- codemode: { enabled: true, token_reduction: '~85%', speedup: '~2× faster' },
2086
- output: {
2087
- formats: ['PDF', 'JSON', 'Dashboard'],
2088
- template: 'Citizen Services Report',
2089
- storage: '/outputs/citizen-requests/',
2090
- },
2091
- advanced: {
2092
- cost_limit: '$4.00 per run',
2093
- time_limit: '300 seconds',
2094
- max_iterations: 30,
2095
- validation: 'All automated decisions must include human-readable explanations. Every action must be logged with timestamps for FOIA compliance.\n',
2096
- },
1183
+ guardrails: [{ "name": "Government Services Agent", "identity_provider": "datalayer", "identity_name": "civic-bot@agency.gov", "permissions": { "read:data": true, "write:data": true, "execute:code": true, "access:internet": false, "send:email": true, "deploy:production": false }, "data_scope": { "denied_fields": ["*SSN*", "*TaxId*", "*BankAccount*", "*CreditCard*"] }, "data_handling": { "pii_detection": true, "pii_action": "redact", "default_aggregation": true }, "approval_policy": { "require_manual_approval_for": ["Benefit denial decisions", "Policy recommendations affecting more than 1,000 citizens", "Any FOIA response containing redacted content", "Escalations to elected officials"], "auto_approved": ["Request classification and triage", "Standard permit processing", "Aggregated statistics and reporting"] }, "token_limits": { "per_run": "40K", "per_day": "400K", "per_month": "5M" } }],
1184
+ evals: [{ "name": "Classification Accuracy", "category": "reasoning", "task_count": 500 }, { "name": "Processing Time Reduction", "category": "coding", "task_count": 300 }, { "name": "Transparency Compliance Score", "category": "safety", "task_count": 200 }],
1185
+ codemode: { "enabled": true, "token_reduction": "~85%", "speedup": "~2× faster" },
1186
+ output: { "formats": ["PDF", "JSON", "Dashboard"], "template": "Citizen Services Report", "storage": "/outputs/citizen-requests/" },
1187
+ advanced: { "cost_limit": "$4.00 per run", "time_limit": "300 seconds", "max_iterations": 30, "validation": "All automated decisions must include human-readable explanations. Every action must be logged with timestamps for FOIA compliance.\n" },
2097
1188
  authorizationPolicy: '',
2098
- notifications: {
2099
- email: 'citizen-services@agency.gov',
2100
- slack: '#citizen-services',
2101
- },
1189
+ notifications: { "email": "citizen-services@agency.gov", "slack": "#citizen-services" },
2102
1190
  memory: 'ephemeral',
2103
1191
  };
2104
1192
  export const PROCESS_CLINICAL_TRIAL_DATA_AGENT_SPEC_0_0_1 = {
@@ -2106,25 +1194,13 @@ export const PROCESS_CLINICAL_TRIAL_DATA_AGENT_SPEC_0_0_1 = {
2106
1194
  version: '0.0.1',
2107
1195
  name: 'Process Clinical Trial Data',
2108
1196
  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.`,
2109
- tags: [
2110
- 'healthcare',
2111
- 'pharma',
2112
- 'clinical-trials',
2113
- 'patient-data',
2114
- 'compliance',
2115
- ],
1197
+ tags: ['healthcare', 'pharma', 'clinical-trials', 'patient-data', 'compliance'],
2116
1198
  enabled: false,
2117
1199
  model: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0',
2118
1200
  mcpServers: [MCP_SERVER_MAP['filesystem:0.0.1']],
2119
- skills: [
2120
- toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']),
2121
- toAgentSkillSpec(SKILL_MAP['events:0.0.1']),
2122
- ],
1201
+ skills: [toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']), toAgentSkillSpec(SKILL_MAP['events:0.0.1'])],
2123
1202
  tools: [],
2124
- frontendTools: [
2125
- FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'],
2126
- FRONTEND_TOOL_MAP['lexical-document:0.0.1'],
2127
- ],
1203
+ frontendTools: [FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'], FRONTEND_TOOL_MAP['lexical-document:0.0.1']],
2128
1204
  environmentName: 'ai-agents-env',
2129
1205
  icon: 'heart',
2130
1206
  emoji: '🏥',
@@ -2146,78 +1222,16 @@ export const PROCESS_CLINICAL_TRIAL_DATA_AGENT_SPEC_0_0_1 = {
2146
1222
  goal: `Process clinical trial data from multiple sites: ingest patient records and lab results, harmonise to CDISC SDTM format with MedDRA coding, screen for adverse events and safety signals in real time, and prepare submission-ready datasets with full validation and audit trails.`,
2147
1223
  protocol: 'vercel-ai',
2148
1224
  uiExtension: 'a2ui',
2149
- trigger: {
2150
- type: 'event',
2151
- description: 'Triggered on new data batch arrival from clinical sites',
2152
- prompt: 'Handle this event trigger: Triggered on new data batch arrival from clinical sites',
2153
- },
1225
+ trigger: { "type": "event", "description": "Triggered on new data batch arrival from clinical sites", "prompt": "Handle this event trigger: Triggered on new data batch arrival from clinical sites" },
2154
1226
  modelConfig: undefined,
2155
1227
  mcpServerTools: undefined,
2156
- guardrails: [
2157
- {
2158
- name: 'HIPAA Compliant Clinical Agent',
2159
- identity_provider: 'datalayer',
2160
- identity_name: 'clinical-bot@acme.com',
2161
- permissions: {
2162
- 'read:data': true,
2163
- 'write:data': false,
2164
- 'execute:code': true,
2165
- 'access:internet': false,
2166
- 'send:email': false,
2167
- 'deploy:production': false,
2168
- },
2169
- data_scope: {
2170
- denied_fields: [
2171
- '*SSN*',
2172
- '*PatientName*',
2173
- '*DateOfBirth*',
2174
- '*Address*',
2175
- '*Phone*',
2176
- '*Email*',
2177
- ],
2178
- },
2179
- data_handling: {
2180
- pii_detection: true,
2181
- pii_action: 'redact',
2182
- default_aggregation: true,
2183
- },
2184
- approval_policy: {
2185
- require_manual_approval_for: [
2186
- 'Any serious adverse event (SAE) escalation',
2187
- 'Patient-level data exports',
2188
- 'Safety signal notifications to regulators',
2189
- ],
2190
- auto_approved: [
2191
- 'Aggregated site-level statistics',
2192
- 'SDTM dataset transformations',
2193
- ],
2194
- },
2195
- token_limits: { per_run: '80K', per_day: '500K', per_month: '5M' },
2196
- },
2197
- ],
2198
- evals: [
2199
- { name: 'SDTM Mapping Accuracy', category: 'coding', task_count: 500 },
2200
- {
2201
- name: 'Adverse Event Detection Rate',
2202
- category: 'safety',
2203
- task_count: 300,
2204
- },
2205
- { name: 'Data Quality Score', category: 'reasoning', task_count: 200 },
2206
- ],
2207
- codemode: { enabled: true, token_reduction: '~95%', speedup: '~3× faster' },
2208
- output: {
2209
- formats: ['SDTM Dataset', 'PDF', 'Define.xml'],
2210
- template: 'Clinical Trial Data Package',
2211
- storage: '/outputs/clinical-trials/',
2212
- },
2213
- advanced: {
2214
- cost_limit: '$8.00 per run',
2215
- time_limit: '900 seconds',
2216
- max_iterations: 50,
2217
- validation: 'All datasets must pass CDISC SDTM validation rules. PHI must never be sent through the LLM — all patient data processed via Codemode only.\n',
2218
- },
1228
+ guardrails: [{ "name": "HIPAA Compliant Clinical Agent", "identity_provider": "datalayer", "identity_name": "clinical-bot@acme.com", "permissions": { "read:data": true, "write:data": false, "execute:code": true, "access:internet": false, "send:email": false, "deploy:production": false }, "data_scope": { "denied_fields": ["*SSN*", "*PatientName*", "*DateOfBirth*", "*Address*", "*Phone*", "*Email*"] }, "data_handling": { "pii_detection": true, "pii_action": "redact", "default_aggregation": true }, "approval_policy": { "require_manual_approval_for": ["Any serious adverse event (SAE) escalation", "Patient-level data exports", "Safety signal notifications to regulators"], "auto_approved": ["Aggregated site-level statistics", "SDTM dataset transformations"] }, "token_limits": { "per_run": "80K", "per_day": "500K", "per_month": "5M" } }],
1229
+ evals: [{ "name": "SDTM Mapping Accuracy", "category": "coding", "task_count": 500 }, { "name": "Adverse Event Detection Rate", "category": "safety", "task_count": 300 }, { "name": "Data Quality Score", "category": "reasoning", "task_count": 200 }],
1230
+ codemode: { "enabled": true, "token_reduction": "~95%", "speedup": "~3× faster" },
1231
+ output: { "formats": ["SDTM Dataset", "PDF", "Define.xml"], "template": "Clinical Trial Data Package", "storage": "/outputs/clinical-trials/" },
1232
+ advanced: { "cost_limit": "$8.00 per run", "time_limit": "900 seconds", "max_iterations": 50, "validation": "All datasets must pass CDISC SDTM validation rules. PHI must never be sent through the LLM — all patient data processed via Codemode only.\n" },
2219
1233
  authorizationPolicy: '',
2220
- notifications: { email: 'clinical-ops@company.com', slack: '#clinical-data' },
1234
+ notifications: { "email": "clinical-ops@company.com", "slack": "#clinical-data" },
2221
1235
  memory: 'ephemeral',
2222
1236
  };
2223
1237
  export const PROCESS_FINANCIAL_TRANSACTIONS_AGENT_SPEC_0_0_1 = {
@@ -2225,25 +1239,13 @@ export const PROCESS_FINANCIAL_TRANSACTIONS_AGENT_SPEC_0_0_1 = {
2225
1239
  version: '0.0.1',
2226
1240
  name: 'Process Financial Transactions',
2227
1241
  description: `Processes and validates financial transactions across accounts. Reconciles balances, detects anomalies, enforces compliance rules, and generates audit-ready transaction reports.`,
2228
- tags: [
2229
- 'moderation',
2230
- 'finance',
2231
- 'transactions',
2232
- 'compliance',
2233
- 'reconciliation',
2234
- ],
1242
+ tags: ['moderation', 'finance', 'transactions', 'compliance', 'reconciliation'],
2235
1243
  enabled: false,
2236
1244
  model: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0',
2237
1245
  mcpServers: [MCP_SERVER_MAP['filesystem:0.0.1']],
2238
- skills: [
2239
- toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']),
2240
- toAgentSkillSpec(SKILL_MAP['events:0.0.1']),
2241
- ],
1246
+ skills: [toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']), toAgentSkillSpec(SKILL_MAP['events:0.0.1'])],
2242
1247
  tools: [],
2243
- frontendTools: [
2244
- FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'],
2245
- FRONTEND_TOOL_MAP['lexical-document:0.0.1'],
2246
- ],
1248
+ frontendTools: [FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'], FRONTEND_TOOL_MAP['lexical-document:0.0.1']],
2247
1249
  environmentName: 'ai-agents-env',
2248
1250
  icon: 'credit-card',
2249
1251
  emoji: '💳',
@@ -2264,60 +1266,16 @@ export const PROCESS_FINANCIAL_TRANSACTIONS_AGENT_SPEC_0_0_1 = {
2264
1266
  goal: `Process and validate incoming financial transaction batches. Reconcile balances across accounts, run AML compliance checks, flag suspicious transactions for human review, and generate audit-ready reports.`,
2265
1267
  protocol: 'vercel-ai',
2266
1268
  uiExtension: 'a2ui',
2267
- trigger: {
2268
- type: 'event',
2269
- description: 'Triggered on new transaction batch arrival',
2270
- prompt: 'Handle this event trigger: Triggered on new transaction batch arrival',
2271
- },
2272
- modelConfig: { temperature: 0.1, max_tokens: 4096 },
2273
- mcpServerTools: [
2274
- {
2275
- server: 'Transaction Ledger',
2276
- tools: [
2277
- { name: 'fetch_transactions', approval: 'auto' },
2278
- { name: 'validate_transaction', approval: 'auto' },
2279
- { name: 'flag_suspicious', approval: 'manual' },
2280
- { name: 'reconcile_balances', approval: 'auto' },
2281
- ],
2282
- },
2283
- {
2284
- server: 'Compliance Engine',
2285
- tools: [
2286
- { name: 'check_aml_rules', approval: 'auto' },
2287
- { name: 'generate_sar', approval: 'manual' },
2288
- ],
2289
- },
2290
- ],
2291
- guardrails: [
2292
- {
2293
- name: 'Financial Data Handler',
2294
- identity_provider: 'datalayer',
2295
- identity_name: 'finance-bot@acme.com',
2296
- permissions: {
2297
- 'read:data': true,
2298
- 'write:data': true,
2299
- 'execute:code': true,
2300
- 'access:internet': false,
2301
- 'send:email': false,
2302
- 'deploy:production': false,
2303
- },
2304
- token_limits: { per_run: '30K', per_day: '300K', per_month: '3M' },
2305
- },
2306
- ],
2307
- evals: [
2308
- { name: 'Transaction Accuracy', category: 'coding', task_count: 500 },
2309
- { name: 'AML Detection Rate', category: 'safety', task_count: 200 },
2310
- ],
2311
- codemode: { enabled: true, token_reduction: '~85%', speedup: '~1.5× faster' },
2312
- output: { type: 'PDF', template: 'transaction_audit_report.pdf' },
2313
- advanced: {
2314
- cost_limit: '$3.00 per run',
2315
- time_limit: '600 seconds',
2316
- max_iterations: 30,
2317
- validation: 'All transactions must reconcile to zero net balance',
2318
- },
1269
+ trigger: { "type": "event", "description": "Triggered on new transaction batch arrival", "prompt": "Handle this event trigger: Triggered on new transaction batch arrival" },
1270
+ modelConfig: { "temperature": 0.1, "max_tokens": 4096 },
1271
+ mcpServerTools: [{ "server": "Transaction Ledger", "tools": [{ "name": "fetch_transactions", "approval": "auto" }, { "name": "validate_transaction", "approval": "auto" }, { "name": "flag_suspicious", "approval": "manual" }, { "name": "reconcile_balances", "approval": "auto" }] }, { "server": "Compliance Engine", "tools": [{ "name": "check_aml_rules", "approval": "auto" }, { "name": "generate_sar", "approval": "manual" }] }],
1272
+ guardrails: [{ "name": "Financial Data Handler", "identity_provider": "datalayer", "identity_name": "finance-bot@acme.com", "permissions": { "read:data": true, "write:data": true, "execute:code": true, "access:internet": false, "send:email": false, "deploy:production": false }, "token_limits": { "per_run": "30K", "per_day": "300K", "per_month": "3M" } }],
1273
+ evals: [{ "name": "Transaction Accuracy", "category": "coding", "task_count": 500 }, { "name": "AML Detection Rate", "category": "safety", "task_count": 200 }],
1274
+ codemode: { "enabled": true, "token_reduction": "~85%", "speedup": "~1.5× faster" },
1275
+ output: { "type": "PDF", "template": "transaction_audit_report.pdf" },
1276
+ advanced: { "cost_limit": "$3.00 per run", "time_limit": "600 seconds", "max_iterations": 30, "validation": "All transactions must reconcile to zero net balance" },
2319
1277
  authorizationPolicy: '',
2320
- notifications: { email: 'david.t@company.com', slack: '#finance-ops' },
1278
+ notifications: { "email": "david.t@company.com", "slack": "#finance-ops" },
2321
1279
  memory: 'ephemeral',
2322
1280
  };
2323
1281
  export const SPATIAL_DATA_ANALYSIS_AGENT_SPEC_0_0_1 = {
@@ -2328,17 +1286,10 @@ export const SPATIAL_DATA_ANALYSIS_AGENT_SPEC_0_0_1 = {
2328
1286
  tags: ['geospatial', 'climate', 'earth-observation', 'analytics'],
2329
1287
  enabled: true,
2330
1288
  model: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
2331
- mcpServers: [
2332
- MCP_SERVER_MAP['earthdata:0.0.1'],
2333
- MCP_SERVER_MAP['eurus:0.0.1'],
2334
- MCP_SERVER_MAP['filesystem:0.0.1'],
2335
- ],
1289
+ mcpServers: [MCP_SERVER_MAP['earthdata:0.0.1'], MCP_SERVER_MAP['eurus:0.0.1'], MCP_SERVER_MAP['filesystem:0.0.1']],
2336
1290
  skills: [toAgentSkillSpec(SKILL_MAP['events:0.0.1'])],
2337
1291
  tools: [],
2338
- frontendTools: [
2339
- FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'],
2340
- FRONTEND_TOOL_MAP['lexical-document:0.0.1'],
2341
- ],
1292
+ frontendTools: [FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'], FRONTEND_TOOL_MAP['lexical-document:0.0.1']],
2342
1293
  environmentName: 'ai-agents-env',
2343
1294
  icon: 'globe',
2344
1295
  emoji: '🛰️',
@@ -2349,7 +1300,7 @@ export const SPATIAL_DATA_ANALYSIS_AGENT_SPEC_0_0_1 = {
2349
1300
  'Compare two regions for drought indicators and summarize differences',
2350
1301
  'Generate an event log for each processing step',
2351
1302
  ],
2352
- welcomeMessage: 'Hello, I am the Spatial Data Analysis Agent. I can discover Earthdata datasets, run Eurus-powered spatial analyses, and generate reproducible outputs for geospatial investigations.\n',
1303
+ welcomeMessage: "Hello, I am the Spatial Data Analysis Agent. I can discover Earthdata datasets, run Eurus-powered spatial analyses, and generate reproducible outputs for geospatial investigations.\n",
2353
1304
  welcomeNotebook: undefined,
2354
1305
  welcomeDocument: undefined,
2355
1306
  sandboxVariant: 'jupyter',
@@ -2360,7 +1311,7 @@ export const SPATIAL_DATA_ANALYSIS_AGENT_SPEC_0_0_1 = {
2360
1311
  ## Workflow Guidance 1. Discover available Earthdata and Eurus tools. 2. Validate spatial/temporal parameters before execution. 3. Execute transformations in code and keep outputs concise. 4. Persist important run states as events.
2361
1312
  `,
2362
1313
  goal: undefined,
2363
- protocol: undefined,
1314
+ protocol: 'vercel-ai',
2364
1315
  uiExtension: undefined,
2365
1316
  trigger: undefined,
2366
1317
  modelConfig: undefined,
@@ -2379,25 +1330,13 @@ export const SUMMARIZE_DOCUMENTS_AGENT_SPEC_0_0_1 = {
2379
1330
  version: '0.0.1',
2380
1331
  name: 'Summarize Documents',
2381
1332
  description: `A generic document summarization agent that processes PDFs, Word files, Markdown, and plain text. Produces structured executive summaries with key findings, action items, and metadata extraction. Useful across every industry vertical — from legal contracts to research papers.`,
2382
- tags: [
2383
- 'documents',
2384
- 'summarization',
2385
- 'horizontal',
2386
- 'automation',
2387
- 'productivity',
2388
- ],
1333
+ tags: ['documents', 'summarization', 'horizontal', 'automation', 'productivity'],
2389
1334
  enabled: false,
2390
1335
  model: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0',
2391
1336
  mcpServers: [MCP_SERVER_MAP['filesystem:0.0.1']],
2392
- skills: [
2393
- toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']),
2394
- toAgentSkillSpec(SKILL_MAP['events:0.0.1']),
2395
- ],
1337
+ skills: [toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']), toAgentSkillSpec(SKILL_MAP['events:0.0.1'])],
2396
1338
  tools: [],
2397
- frontendTools: [
2398
- FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'],
2399
- FRONTEND_TOOL_MAP['lexical-document:0.0.1'],
2400
- ],
1339
+ frontendTools: [FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'], FRONTEND_TOOL_MAP['lexical-document:0.0.1']],
2401
1340
  environmentName: 'ai-agents-env',
2402
1341
  icon: 'file',
2403
1342
  emoji: '📄',
@@ -2412,61 +1351,16 @@ export const SUMMARIZE_DOCUMENTS_AGENT_SPEC_0_0_1 = {
2412
1351
  goal: `Summarize uploaded documents (PDFs, Word, Markdown, text) into structured executive summaries. Extract key findings, decisions, action items, dates, and named entities. Output a concise summary (max 500 words) plus metadata in JSON format.`,
2413
1352
  protocol: 'vercel-ai',
2414
1353
  uiExtension: 'a2ui',
2415
- trigger: {
2416
- type: 'event',
2417
- event: 'document_uploaded',
2418
- description: 'Triggered when a new document is uploaded to the workspace',
2419
- prompt: "Handle the 'document_uploaded' event and execute the workflow end-to-end.",
2420
- },
2421
- modelConfig: { temperature: 0.2, max_tokens: 4096 },
2422
- mcpServerTools: [
2423
- {
2424
- server: 'Document Reader',
2425
- tools: [
2426
- { name: 'read_pdf', approval: 'auto' },
2427
- { name: 'read_docx', approval: 'auto' },
2428
- { name: 'extract_text', approval: 'auto' },
2429
- ],
2430
- },
2431
- {
2432
- server: 'Output Writer',
2433
- tools: [
2434
- { name: 'write_summary', approval: 'auto' },
2435
- { name: 'store_metadata', approval: 'auto' },
2436
- ],
2437
- },
2438
- ],
2439
- guardrails: [
2440
- {
2441
- name: 'Default Platform User',
2442
- identity_provider: 'datalayer',
2443
- identity_name: 'doc-agent@acme.com',
2444
- permissions: {
2445
- 'read:data': true,
2446
- 'write:data': true,
2447
- 'execute:code': true,
2448
- 'access:internet': false,
2449
- 'send:email': false,
2450
- 'deploy:production': false,
2451
- },
2452
- token_limits: { per_run: '30K', per_day: '300K', per_month: '3M' },
2453
- },
2454
- ],
2455
- evals: [
2456
- { name: 'Summarization Accuracy', category: 'reasoning', task_count: 350 },
2457
- { name: 'Key Finding Extraction', category: 'reasoning', task_count: 280 },
2458
- { name: 'Action Item Detection', category: 'coding', task_count: 200 },
2459
- ],
1354
+ trigger: { "type": "event", "event": "document_uploaded", "description": "Triggered when a new document is uploaded to the workspace", "prompt": "Handle the 'document_uploaded' event and execute the workflow end-to-end." },
1355
+ modelConfig: { "temperature": 0.2, "max_tokens": 4096 },
1356
+ mcpServerTools: [{ "server": "Document Reader", "tools": [{ "name": "read_pdf", "approval": "auto" }, { "name": "read_docx", "approval": "auto" }, { "name": "extract_text", "approval": "auto" }] }, { "server": "Output Writer", "tools": [{ "name": "write_summary", "approval": "auto" }, { "name": "store_metadata", "approval": "auto" }] }],
1357
+ guardrails: [{ "name": "Default Platform User", "identity_provider": "datalayer", "identity_name": "doc-agent@acme.com", "permissions": { "read:data": true, "write:data": true, "execute:code": true, "access:internet": false, "send:email": false, "deploy:production": false }, "token_limits": { "per_run": "30K", "per_day": "300K", "per_month": "3M" } }],
1358
+ evals: [{ "name": "Summarization Accuracy", "category": "reasoning", "task_count": 350 }, { "name": "Key Finding Extraction", "category": "reasoning", "task_count": 280 }, { "name": "Action Item Detection", "category": "coding", "task_count": 200 }],
2460
1359
  codemode: undefined,
2461
- output: {
2462
- type: 'Markdown',
2463
- formats: ['Markdown', 'JSON'],
2464
- template: 'executive-summary-v1',
2465
- storage: 's3://acme-summaries/',
2466
- },
1360
+ output: { "type": "Markdown", "formats": ["Markdown", "JSON"], "template": "executive-summary-v1", "storage": "s3://acme-summaries/" },
2467
1361
  advanced: undefined,
2468
1362
  authorizationPolicy: undefined,
2469
- notifications: { slack: '#document-summaries', email: 'team@acme.com' },
1363
+ notifications: { "slack": "#document-summaries", "email": "team@acme.com" },
2470
1364
  memory: 'ephemeral',
2471
1365
  };
2472
1366
  export const SYNC_CRM_CONTACTS_AGENT_SPEC_0_0_1 = {
@@ -2477,19 +1371,10 @@ export const SYNC_CRM_CONTACTS_AGENT_SPEC_0_0_1 = {
2477
1371
  tags: ['sales', 'crm', 'data-sync', 'deduplication'],
2478
1372
  enabled: false,
2479
1373
  model: 'bedrock:us.anthropic.claude-3-5-haiku-20241022-v1:0',
2480
- mcpServers: [
2481
- MCP_SERVER_MAP['filesystem:0.0.1'],
2482
- MCP_SERVER_MAP['slack:0.0.1'],
2483
- ],
2484
- skills: [
2485
- toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']),
2486
- toAgentSkillSpec(SKILL_MAP['events:0.0.1']),
2487
- ],
1374
+ mcpServers: [MCP_SERVER_MAP['filesystem:0.0.1'], MCP_SERVER_MAP['slack:0.0.1']],
1375
+ skills: [toAgentSkillSpec(SKILL_MAP['pdf:0.0.1']), toAgentSkillSpec(SKILL_MAP['events:0.0.1'])],
2488
1376
  tools: [],
2489
- frontendTools: [
2490
- FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'],
2491
- FRONTEND_TOOL_MAP['lexical-document:0.0.1'],
2492
- ],
1377
+ frontendTools: [FRONTEND_TOOL_MAP['jupyter-notebook:0.0.1'], FRONTEND_TOOL_MAP['lexical-document:0.0.1']],
2493
1378
  environmentName: 'ai-agents-env',
2494
1379
  icon: 'people',
2495
1380
  emoji: '🔄',
@@ -2510,48 +1395,16 @@ export const SYNC_CRM_CONTACTS_AGENT_SPEC_0_0_1 = {
2510
1395
  goal: `Collect and aggregate contact data from multiple CRM sources, analyze and deduplicate records, write cleaned data back to CRM systems, and generate sync summary reports with notifications.`,
2511
1396
  protocol: 'vercel-ai',
2512
1397
  uiExtension: 'a2ui',
2513
- trigger: {
2514
- type: 'schedule',
2515
- cron: '0 2 * * *',
2516
- description: 'Daily at 02:00 — sync CRM contacts across all sources during off-peak hours.\n',
2517
- prompt: 'Run the scheduled workflow and produce the configured deliverable.',
2518
- },
1398
+ trigger: { "type": "schedule", "cron": "0 2 * * *", "description": "Daily at 02:00 — sync CRM contacts across all sources during off-peak hours.\n", "prompt": "Run the scheduled workflow and produce the configured deliverable." },
2519
1399
  modelConfig: undefined,
2520
1400
  mcpServerTools: undefined,
2521
- guardrails: [
2522
- {
2523
- name: 'GitHub CI Bot',
2524
- identity_provider: 'github',
2525
- identity_name: 'ci-bot@acme.com',
2526
- permissions: {
2527
- 'read:data': true,
2528
- 'write:data': true,
2529
- 'execute:code': true,
2530
- 'access:internet': true,
2531
- 'send:email': true,
2532
- 'deploy:production': false,
2533
- },
2534
- token_limits: { per_run: '60K', per_day: '600K', per_month: '6M' },
2535
- },
2536
- ],
2537
- evals: [
2538
- { name: 'Data Quality', category: 'coding', task_count: 300 },
2539
- { name: 'Deduplication Accuracy', category: 'reasoning', task_count: 150 },
2540
- ],
2541
- codemode: { enabled: true, token_reduction: '~85%', speedup: '~1.5× faster' },
2542
- output: {
2543
- formats: ['JSON', 'PDF'],
2544
- template: 'CRM Sync Report',
2545
- storage: '/outputs/crm-sync/',
2546
- },
2547
- advanced: {
2548
- cost_limit: '$10.00 per run',
2549
- time_limit: '600 seconds',
2550
- max_iterations: 100,
2551
- validation: 'All CRM records must reconcile after sync',
2552
- },
1401
+ guardrails: [{ "name": "GitHub CI Bot", "identity_provider": "github", "identity_name": "ci-bot@acme.com", "permissions": { "read:data": true, "write:data": true, "execute:code": true, "access:internet": true, "send:email": true, "deploy:production": false }, "token_limits": { "per_run": "60K", "per_day": "600K", "per_month": "6M" } }],
1402
+ evals: [{ "name": "Data Quality", "category": "coding", "task_count": 300 }, { "name": "Deduplication Accuracy", "category": "reasoning", "task_count": 150 }],
1403
+ codemode: { "enabled": true, "token_reduction": "~85%", "speedup": "~1.5× faster" },
1404
+ output: { "formats": ["JSON", "PDF"], "template": "CRM Sync Report", "storage": "/outputs/crm-sync/" },
1405
+ advanced: { "cost_limit": "$10.00 per run", "time_limit": "600 seconds", "max_iterations": 100, "validation": "All CRM records must reconcile after sync" },
2553
1406
  authorizationPolicy: '',
2554
- notifications: { email: 'jennifer.c@company.com', slack: '#crm-sync' },
1407
+ notifications: { "email": "jennifer.c@company.com", "slack": "#crm-sync" },
2555
1408
  memory: 'ephemeral',
2556
1409
  };
2557
1410
  // ============================================================================
@@ -2564,7 +1417,7 @@ export const AGENT_SPECS = {
2564
1417
  'automate-regulatory-reporting': AUTOMATE_REGULATORY_REPORTING_AGENT_SPEC_0_0_1,
2565
1418
  'classify-route-emails': CLASSIFY_ROUTE_EMAILS_AGENT_SPEC_0_0_1,
2566
1419
  'comprehensive-sales-analytics': COMPREHENSIVE_SALES_ANALYTICS_AGENT_SPEC_0_0_1,
2567
- crawler: CRAWLER_AGENT_SPEC_0_0_1,
1420
+ 'crawler': CRAWLER_AGENT_SPEC_0_0_1,
2568
1421
  'data-acquisition': DATA_ACQUISITION_AGENT_SPEC_0_0_1,
2569
1422
  'demo-full': DEMO_FULL_AGENT_SPEC_0_0_1,
2570
1423
  'demo-one-trigger-approval': DEMO_ONE_TRIGGER_APPROVAL_AGENT_SPEC_0_0_1,
@@ -2573,7 +1426,7 @@ export const AGENT_SPECS = {
2573
1426
  'end-of-month-sales-performance': END_OF_MONTH_SALES_PERFORMANCE_AGENT_SPEC_0_0_1,
2574
1427
  'extract-data-from-files': EXTRACT_DATA_FROM_FILES_AGENT_SPEC_0_0_1,
2575
1428
  'financial-viz': FINANCIAL_VIZ_AGENT_SPEC_0_0_1,
2576
- financial: FINANCIAL_AGENT_SPEC_0_0_1,
1429
+ 'financial': FINANCIAL_AGENT_SPEC_0_0_1,
2577
1430
  'generate-weekly-reports': GENERATE_WEEKLY_REPORTS_AGENT_SPEC_0_0_1,
2578
1431
  'github-agent': GITHUB_AGENT_SPEC_0_0_1,
2579
1432
  'information-routing': INFORMATION_ROUTING_AGENT_SPEC_0_0_1,
@@ -2611,9 +1464,7 @@ export function getAgentSpecs(agentId) {
2611
1464
  */
2612
1465
  export function listAgentSpecs(prefix) {
2613
1466
  const specs = Object.values(AGENT_SPECS);
2614
- return prefix !== undefined
2615
- ? specs.filter(s => s.id.startsWith(prefix))
2616
- : specs;
1467
+ return prefix !== undefined ? specs.filter(s => s.id.startsWith(prefix)) : specs;
2617
1468
  }
2618
1469
  /**
2619
1470
  * Collect all required environment variables for an agent spec.