@datalayer/agent-runtimes 1.3.14 → 1.3.16

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 (45) hide show
  1. package/README.md +1 -1
  2. package/lib/chat/base/ChatBase.js +3 -2
  3. package/lib/config/AgentConfiguration.d.ts +1 -1
  4. package/lib/loop/embed/LoopEmbed.d.ts +6 -1
  5. package/lib/loop/embed/LoopEmbed.js +3 -2
  6. package/lib/loop/plugins/chat/ChatView.js +9 -4
  7. package/lib/loop/plugins/chat/index.d.ts +10 -0
  8. package/lib/loop/plugins/chat/index.js +1 -0
  9. package/lib/loop/presets.d.ts +6 -0
  10. package/lib/loop/presets.js +2 -1
  11. package/lib/loop/shell/LoopWorkspace.d.ts +14 -0
  12. package/lib/loop/shell/LoopWorkspace.js +20 -6
  13. package/lib/loop/shell/index.d.ts +1 -1
  14. package/lib/loop/shell/index.js +1 -1
  15. package/lib/loop/shell/useWorkspaceFullScreen.d.ts +17 -4
  16. package/lib/loop/shell/useWorkspaceFullScreen.js +23 -6
  17. package/lib/specs/agents/agents.d.ts +1 -0
  18. package/lib/specs/agents/agents.js +338 -284
  19. package/lib/specs/events.d.ts +6 -1
  20. package/lib/specs/events.js +144 -1
  21. package/lib/specs/index.d.ts +2 -0
  22. package/lib/specs/index.js +2 -0
  23. package/lib/specs/mcpServers.js +2 -2
  24. package/lib/specs/memory.js +4 -0
  25. package/lib/specs/modelProviders.d.ts +22 -0
  26. package/lib/specs/modelProviders.js +102 -0
  27. package/lib/specs/models.d.ts +31 -0
  28. package/lib/specs/models.js +215 -0
  29. package/lib/specs/outputs.js +2 -2
  30. package/lib/specs/skills.js +1 -1
  31. package/lib/specs/teams/teams.js +18 -18
  32. package/lib/specs/uiPlugins.d.ts +16 -0
  33. package/lib/specs/uiPlugins.js +40 -0
  34. package/lib/types/agentspecs.d.ts +18 -2
  35. package/lib/types/memory.d.ts +2 -0
  36. package/lib/types/models.d.ts +52 -0
  37. package/package.json +12 -12
  38. package/scripts/check-cloudflare-models.py +122 -0
  39. package/scripts/codegen/generate_agents.py +6 -4
  40. package/scripts/codegen/generate_memory.py +2 -0
  41. package/scripts/codegen/generate_model_providers.py +246 -0
  42. package/scripts/codegen/generate_models.py +135 -4
  43. package/scripts/codegen/generate_sandbox_agents.py +1 -1
  44. package/scripts/codegen/generate_ui_plugins.py +226 -0
  45. package/scripts/gen_workers.py +2 -2
@@ -28,6 +28,14 @@ export const AIModels = {
28
28
  BEDROCK_US_ANTHROPIC_CLAUDE_SONNET_4_5_20250929_V1_0: 'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0',
29
29
  BEDROCK_US_ANTHROPIC_CLAUDE_SONNET_4_6: 'bedrock:us.anthropic.claude-sonnet-4-6',
30
30
  BEDROCK_US_ANTHROPIC_CLAUDE_SONNET_4_20250514_V1_0: 'bedrock:us.anthropic.claude-sonnet-4-20250514-v1:0',
31
+ CLOUDFLARE_GTW_TYPESAFE_JEV: 'cloudflare:gtw/typesafe/jev',
32
+ CLOUDFLARE_WRK_GOOGLE_GEMMA_4_26B_A4B_IT: 'cloudflare:wrk/google/gemma-4-26b-a4b-it',
33
+ CLOUDFLARE_WRK_ZAI_ORG_GLM_5_2: 'cloudflare:wrk/zai-org/glm-5.2',
34
+ CLOUDFLARE_WRK_OPENAI_GPT_OSS_120B: 'cloudflare:wrk/openai/gpt-oss-120b',
35
+ CLOUDFLARE_WRK_MOONSHOTAI_KIMI_K2_6: 'cloudflare:wrk/moonshotai/kimi-k2.6',
36
+ CLOUDFLARE_WRK_META_LLAMA_3_3_70B_INSTRUCT_FP8_FAST: 'cloudflare:wrk/meta/llama-3.3-70b-instruct-fp8-fast',
37
+ CLOUDFLARE_WRK_QWEN_QWEN3_8_27B: 'cloudflare:wrk/qwen/qwen3.8-27b',
38
+ CLOUDFLARE_WRK_TYPESAFE_JEV: 'cloudflare:wrk/typesafe/jev',
31
39
  OLLAMA_GEMMA3_4B: 'ollama:gemma3:4b',
32
40
  OLLAMA_LLAMA3_1_8B: 'ollama:llama3.1:8b',
33
41
  OLLAMA_QWEN2_5_CODER_7B: 'ollama:qwen2.5-coder:7b',
@@ -47,6 +55,7 @@ export const ALIBABA_QWEN_MAX_0_0_1 = {
47
55
  name: 'Alibaba Qwen-Max',
48
56
  description: 'Qwen-Max via Alibaba Cloud Model Studio - highest capability Qwen model',
49
57
  provider: 'alibaba',
58
+ providerUrl: 'https://www.alibabacloud.com/help/en/model-studio/models',
50
59
  default: false,
51
60
  available: true,
52
61
  requiredEnvVars: [],
@@ -59,6 +68,7 @@ export const ALIBABA_QWEN3_32B_0_0_1 = {
59
68
  name: 'Alibaba Qwen3-32B',
60
69
  description: 'Qwen3-32B via Alibaba Cloud Model Studio - open-weight 32B model with tool calling',
61
70
  provider: 'alibaba',
71
+ providerUrl: 'https://www.alibabacloud.com/help/en/model-studio/models',
62
72
  default: false,
63
73
  available: false,
64
74
  requiredEnvVars: [],
@@ -71,6 +81,7 @@ export const ALIBABA_QWEN3_6_FLASH_0_0_1 = {
71
81
  name: 'Alibaba Qwen3.6-Flash',
72
82
  description: 'Qwen3.6-Flash via Alibaba Cloud Model Studio - fast and low cost',
73
83
  provider: 'alibaba',
84
+ providerUrl: 'https://www.alibabacloud.com/help/en/model-studio/models',
74
85
  default: false,
75
86
  available: false,
76
87
  requiredEnvVars: [],
@@ -83,6 +94,7 @@ export const ALIBABA_QWEN3_6_PLUS_0_0_1 = {
83
94
  name: 'Alibaba Qwen3.6-Plus',
84
95
  description: 'Qwen3.6-Plus via Alibaba Cloud Model Studio - balanced performance and cost',
85
96
  provider: 'alibaba',
97
+ providerUrl: 'https://www.alibabacloud.com/help/en/model-studio/models',
86
98
  default: false,
87
99
  available: false,
88
100
  requiredEnvVars: [],
@@ -95,6 +107,7 @@ export const ALIBABA_QWEN3_7_PLUS_0_0_1 = {
95
107
  name: 'Alibaba Qwen3.7-Plus',
96
108
  description: 'Qwen3.7-Plus via Alibaba Cloud Model Studio - balanced flagship Qwen3 model',
97
109
  provider: 'alibaba',
110
+ providerUrl: 'https://www.alibabacloud.com/help/en/model-studio/models',
98
111
  default: false,
99
112
  available: false,
100
113
  requiredEnvVars: [],
@@ -107,6 +120,7 @@ export const ANTHROPIC_CLAUDE_3_5_HAIKU_20241022_0_0_1 = {
107
120
  name: 'Anthropic Claude Haiku 3.5',
108
121
  description: 'Claude Haiku 3.5 by Anthropic - fast and efficient',
109
122
  provider: 'anthropic',
123
+ providerUrl: 'https://www.anthropic.com/claude/haiku',
110
124
  default: false,
111
125
  available: false,
112
126
  requiredEnvVars: ['ANTHROPIC_API_KEY'],
@@ -118,6 +132,7 @@ export const ANTHROPIC_CLAUDE_OPUS_4_20250514_0_0_1 = {
118
132
  name: 'Anthropic Claude Opus 4',
119
133
  description: 'Claude Opus 4 by Anthropic - highest capability model',
120
134
  provider: 'anthropic',
135
+ providerUrl: 'https://www.anthropic.com/claude/opus',
121
136
  default: false,
122
137
  available: false,
123
138
  requiredEnvVars: ['ANTHROPIC_API_KEY'],
@@ -129,6 +144,7 @@ export const ANTHROPIC_CLAUDE_SONNET_4_5_20250514_0_0_1 = {
129
144
  name: 'Anthropic Claude Sonnet 4.5',
130
145
  description: 'Claude Sonnet 4.5 by Anthropic - balanced performance and speed',
131
146
  provider: 'anthropic',
147
+ providerUrl: 'https://www.anthropic.com/claude/sonnet',
132
148
  default: false,
133
149
  available: false,
134
150
  requiredEnvVars: ['ANTHROPIC_API_KEY'],
@@ -140,6 +156,7 @@ export const ANTHROPIC_CLAUDE_SONNET_4_20250514_0_0_1 = {
140
156
  name: 'Anthropic Claude Sonnet 4',
141
157
  description: 'Claude Sonnet 4 by Anthropic - strong reasoning and coding',
142
158
  provider: 'anthropic',
159
+ providerUrl: 'https://www.anthropic.com/claude/sonnet',
143
160
  default: false,
144
161
  available: false,
145
162
  requiredEnvVars: ['ANTHROPIC_API_KEY'],
@@ -151,6 +168,7 @@ export const AZURE_OPENAI_GPT_4_1_MINI_0_0_1 = {
151
168
  name: 'Azure OpenAI GPT-4.1 Mini',
152
169
  description: 'GPT-4.1 Mini via Azure OpenAI - compact version',
153
170
  provider: 'azure-openai',
171
+ providerUrl: 'https://learn.microsoft.com/en-us/azure/ai-foundry/foundry-models/concepts/models-sold-directly-by-azure',
154
172
  default: false,
155
173
  available: false,
156
174
  requiredEnvVars: ['AZURE_OPENAI_API_KEY', 'AZURE_OPENAI_ENDPOINT'],
@@ -162,6 +180,7 @@ export const AZURE_OPENAI_GPT_4_1_NANO_0_0_1 = {
162
180
  name: 'Azure OpenAI GPT-4.1 Nano',
163
181
  description: 'GPT-4.1 Nano via Azure OpenAI - smallest and fastest',
164
182
  provider: 'azure-openai',
183
+ providerUrl: 'https://learn.microsoft.com/en-us/azure/ai-foundry/foundry-models/concepts/models-sold-directly-by-azure',
165
184
  default: false,
166
185
  available: false,
167
186
  requiredEnvVars: ['AZURE_OPENAI_API_KEY', 'AZURE_OPENAI_ENDPOINT'],
@@ -173,6 +192,7 @@ export const AZURE_OPENAI_GPT_4_1_0_0_1 = {
173
192
  name: 'Azure OpenAI GPT-4.1',
174
193
  description: 'GPT-4.1 via Azure OpenAI - strong general purpose',
175
194
  provider: 'azure-openai',
195
+ providerUrl: 'https://learn.microsoft.com/en-us/azure/ai-foundry/foundry-models/concepts/models-sold-directly-by-azure',
176
196
  default: false,
177
197
  available: false,
178
198
  requiredEnvVars: ['AZURE_OPENAI_API_KEY', 'AZURE_OPENAI_ENDPOINT'],
@@ -184,6 +204,7 @@ export const AZURE_OPENAI_GPT_4O_MINI_0_0_1 = {
184
204
  name: 'Azure OpenAI GPT-4o Mini',
185
205
  description: 'GPT-4o Mini via Azure OpenAI - compact enterprise deployment',
186
206
  provider: 'azure-openai',
207
+ providerUrl: 'https://learn.microsoft.com/en-us/azure/ai-foundry/foundry-models/concepts/models-sold-directly-by-azure',
187
208
  default: false,
188
209
  available: false,
189
210
  requiredEnvVars: ['AZURE_OPENAI_API_KEY', 'AZURE_OPENAI_ENDPOINT'],
@@ -195,6 +216,7 @@ export const AZURE_OPENAI_GPT_4O_0_0_1 = {
195
216
  name: 'Azure OpenAI GPT-4o',
196
217
  description: 'GPT-4o via Azure OpenAI - enterprise deployment',
197
218
  provider: 'azure-openai',
219
+ providerUrl: 'https://learn.microsoft.com/en-us/azure/ai-foundry/foundry-models/concepts/models-sold-directly-by-azure',
198
220
  default: false,
199
221
  available: false,
200
222
  requiredEnvVars: ['AZURE_OPENAI_API_KEY', 'AZURE_OPENAI_ENDPOINT'],
@@ -206,6 +228,7 @@ export const BEDROCK_US_ANTHROPIC_CLAUDE_FABLE_5_0_0_1 = {
206
228
  name: 'Bedrock Claude Fable 5',
207
229
  description: 'Claude Fable 5 via AWS Bedrock',
208
230
  provider: 'bedrock',
231
+ providerUrl: 'https://aws.amazon.com/bedrock/anthropic/',
209
232
  default: false,
210
233
  available: false,
211
234
  requiredEnvVars: [
@@ -221,6 +244,7 @@ export const BEDROCK_US_ANTHROPIC_CLAUDE_OPUS_4_6_V1_0_0_1 = {
221
244
  name: 'Bedrock Claude Opus 4.6',
222
245
  description: 'Claude Opus 4.6 via AWS Bedrock',
223
246
  provider: 'bedrock',
247
+ providerUrl: 'https://aws.amazon.com/bedrock/anthropic/',
224
248
  default: false,
225
249
  available: false,
226
250
  requiredEnvVars: [
@@ -236,6 +260,7 @@ export const BEDROCK_US_ANTHROPIC_CLAUDE_OPUS_4_8_0_0_1 = {
236
260
  name: 'Bedrock Claude Opus 4.8',
237
261
  description: 'Claude Opus 4.8 via AWS Bedrock',
238
262
  provider: 'bedrock',
263
+ providerUrl: 'https://aws.amazon.com/bedrock/anthropic/',
239
264
  default: false,
240
265
  available: false,
241
266
  requiredEnvVars: [
@@ -251,6 +276,7 @@ export const BEDROCK_US_ANTHROPIC_CLAUDE_OPUS_4_20250514_V1_0_0_0_1 = {
251
276
  name: 'Bedrock Claude Opus 4',
252
277
  description: 'Claude Opus 4 via AWS Bedrock - highest capability',
253
278
  provider: 'bedrock',
279
+ providerUrl: 'https://aws.amazon.com/bedrock/anthropic/',
254
280
  default: false,
255
281
  available: false,
256
282
  requiredEnvVars: [
@@ -266,6 +292,7 @@ export const BEDROCK_US_ANTHROPIC_CLAUDE_OPUS_5_0_0_1 = {
266
292
  name: 'Bedrock Claude Opus 5',
267
293
  description: 'Claude Opus 5 via AWS Bedrock - the current frontier model',
268
294
  provider: 'bedrock',
295
+ providerUrl: 'https://aws.amazon.com/bedrock/anthropic/',
269
296
  default: false,
270
297
  available: false,
271
298
  requiredEnvVars: [
@@ -281,6 +308,7 @@ export const BEDROCK_US_ANTHROPIC_CLAUDE_SONNET_4_5_20250929_V1_0_0_0_1 = {
281
308
  name: 'Bedrock Claude Sonnet 4.5',
282
309
  description: 'Claude Sonnet 4.5 via AWS Bedrock - balanced performance',
283
310
  provider: 'bedrock',
311
+ providerUrl: 'https://aws.amazon.com/bedrock/anthropic/',
284
312
  default: false,
285
313
  available: false,
286
314
  requiredEnvVars: [
@@ -296,6 +324,7 @@ export const BEDROCK_US_ANTHROPIC_CLAUDE_SONNET_4_6_0_0_1 = {
296
324
  name: 'Bedrock Claude Sonnet 4.6',
297
325
  description: 'Claude Sonnet 4.6 via AWS Bedrock - balanced performance',
298
326
  provider: 'bedrock',
327
+ providerUrl: 'https://aws.amazon.com/bedrock/anthropic/',
299
328
  default: true,
300
329
  available: true,
301
330
  requiredEnvVars: [
@@ -304,6 +333,8 @@ export const BEDROCK_US_ANTHROPIC_CLAUDE_SONNET_4_6_0_0_1 = {
304
333
  'AWS_DEFAULT_REGION',
305
334
  ],
306
335
  tokensLimit: 64000,
336
+ capabilities: ['chat', 'tools', 'judge'],
337
+ contextWindow: 200000,
307
338
  };
308
339
  export const BEDROCK_US_ANTHROPIC_CLAUDE_SONNET_4_20250514_V1_0_0_0_1 = {
309
340
  id: 'bedrock:us.anthropic.claude-sonnet-4-20250514-v1:0',
@@ -311,6 +342,7 @@ export const BEDROCK_US_ANTHROPIC_CLAUDE_SONNET_4_20250514_V1_0_0_0_1 = {
311
342
  name: 'Bedrock Claude Sonnet 4',
312
343
  description: 'Claude Sonnet 4 via AWS Bedrock - strong reasoning',
313
344
  provider: 'bedrock',
345
+ providerUrl: 'https://aws.amazon.com/bedrock/anthropic/',
314
346
  default: false,
315
347
  available: false,
316
348
  requiredEnvVars: [
@@ -320,12 +352,151 @@ export const BEDROCK_US_ANTHROPIC_CLAUDE_SONNET_4_20250514_V1_0_0_0_1 = {
320
352
  ],
321
353
  tokensLimit: 64000,
322
354
  };
355
+ export const CLOUDFLARE_GTW_TYPESAFE_JEV_0_0_1 = {
356
+ id: 'cloudflare:gtw/typesafe/jev',
357
+ version: '0.0.1',
358
+ name: 'Jev (Cloudflare AI Gateway)',
359
+ description: "Typesafe's typed-judgment model through the account's AI Gateway - noul, choice and score questions answered as calibrated probabilities; 32k context; zero data retention; the gateway keeps the logs and bills from its credits",
360
+ provider: 'cloudflare',
361
+ providerUrl: 'https://docs.typesafe.ai/models',
362
+ default: false,
363
+ available: true,
364
+ requiredEnvVars: [],
365
+ capabilities: ['judgments'],
366
+ billing: 'credits',
367
+ route: 'ai-gateway',
368
+ contextWindow: 32000,
369
+ zeroDataRetention: true,
370
+ requestLogging: 'gateway',
371
+ pricing: { inputUsdPerMillion: 0.042, outputUsdPerMillion: 0.0 },
372
+ };
373
+ export const CLOUDFLARE_WRK_GOOGLE_GEMMA_4_26B_A4B_IT_0_0_1 = {
374
+ id: 'cloudflare:wrk/google/gemma-4-26b-a4b-it',
375
+ version: '0.0.1',
376
+ name: 'Cloudflare Gemma 4 26B',
377
+ description: 'Google Gemma 4 26B (a4b, instruction-tuned) on Cloudflare Workers AI - 256k context, tool calling, standard billing',
378
+ provider: 'cloudflare',
379
+ providerUrl: 'https://developers.cloudflare.com/workers-ai/models/gemma-4-26b-a4b-it/',
380
+ default: false,
381
+ available: false,
382
+ requiredEnvVars: [],
383
+ tokensLimit: 16384,
384
+ capabilities: ['chat', 'tools', 'codemode'],
385
+ billing: 'standard',
386
+ route: 'workers-ai',
387
+ contextWindow: 256000,
388
+ aliases: ['cloudflare:google/gemma-4-26b-a4b-it'],
389
+ };
390
+ export const CLOUDFLARE_WRK_ZAI_ORG_GLM_5_2_0_0_1 = {
391
+ id: 'cloudflare:wrk/zai-org/glm-5.2',
392
+ version: '0.0.1',
393
+ name: 'Cloudflare GLM-5.2',
394
+ description: 'Z.ai GLM-5.2 on Cloudflare Workers AI - 262k context, tool calling; a frontier model billed from AI Gateway credits',
395
+ provider: 'cloudflare',
396
+ providerUrl: 'https://developers.cloudflare.com/workers-ai/models/glm-5.2/',
397
+ default: false,
398
+ available: false,
399
+ requiredEnvVars: [],
400
+ tokensLimit: 32768,
401
+ capabilities: ['chat', 'tools', 'codemode'],
402
+ billing: 'credits',
403
+ route: 'workers-ai',
404
+ contextWindow: 262144,
405
+ aliases: ['cloudflare:zai-org/glm-5.2'],
406
+ };
407
+ export const CLOUDFLARE_WRK_OPENAI_GPT_OSS_120B_0_0_1 = {
408
+ id: 'cloudflare:wrk/openai/gpt-oss-120b',
409
+ version: '0.0.1',
410
+ name: 'Cloudflare gpt-oss-120b',
411
+ description: 'OpenAI gpt-oss-120b on Cloudflare Workers AI - 128k context, tool calling, standard billing',
412
+ provider: 'cloudflare',
413
+ providerUrl: 'https://developers.cloudflare.com/workers-ai/models/gpt-oss-120b/',
414
+ default: false,
415
+ available: false,
416
+ requiredEnvVars: [],
417
+ tokensLimit: 32768,
418
+ capabilities: ['chat', 'tools', 'codemode', 'judge'],
419
+ billing: 'standard',
420
+ route: 'workers-ai',
421
+ contextWindow: 128000,
422
+ aliases: ['cloudflare:openai/gpt-oss-120b'],
423
+ };
424
+ export const CLOUDFLARE_WRK_MOONSHOTAI_KIMI_K2_6_0_0_1 = {
425
+ id: 'cloudflare:wrk/moonshotai/kimi-k2.6',
426
+ version: '0.0.1',
427
+ name: 'Cloudflare Kimi K2.6',
428
+ description: 'Moonshot Kimi K2.6 on Cloudflare Workers AI - 262k context, tool calling; a frontier model billed from AI Gateway credits',
429
+ provider: 'cloudflare',
430
+ providerUrl: 'https://developers.cloudflare.com/workers-ai/models/kimi-k2.6/',
431
+ default: false,
432
+ available: false,
433
+ requiredEnvVars: [],
434
+ tokensLimit: 32768,
435
+ capabilities: ['chat', 'tools', 'codemode'],
436
+ billing: 'credits',
437
+ route: 'workers-ai',
438
+ contextWindow: 262144,
439
+ aliases: ['cloudflare:moonshotai/kimi-k2.6'],
440
+ };
441
+ export const CLOUDFLARE_WRK_META_LLAMA_3_3_70B_INSTRUCT_FP8_FAST_0_0_1 = {
442
+ id: 'cloudflare:wrk/meta/llama-3.3-70b-instruct-fp8-fast',
443
+ version: '0.0.1',
444
+ name: 'Cloudflare Llama 3.3 70B',
445
+ description: 'Meta Llama 3.3 70B Instruct (fp8, fast) on Cloudflare Workers AI - 24k context, tool calling, standard billing',
446
+ provider: 'cloudflare',
447
+ providerUrl: 'https://developers.cloudflare.com/workers-ai/models/llama-3.3-70b-instruct-fp8-fast/',
448
+ default: false,
449
+ available: false,
450
+ requiredEnvVars: [],
451
+ tokensLimit: 8192,
452
+ capabilities: ['chat', 'tools', 'codemode'],
453
+ billing: 'standard',
454
+ route: 'workers-ai',
455
+ contextWindow: 24000,
456
+ aliases: ['cloudflare:meta/llama-3.3-70b-instruct-fp8-fast'],
457
+ };
458
+ export const CLOUDFLARE_WRK_QWEN_QWEN3_8_27B_0_0_1 = {
459
+ id: 'cloudflare:wrk/qwen/qwen3.8-27b',
460
+ version: '0.0.1',
461
+ name: 'Cloudflare Qwen3.8 27B',
462
+ description: 'Qwen3.8 27B on Cloudflare Workers AI - 262k context, tool calling, standard billing',
463
+ provider: 'cloudflare',
464
+ providerUrl: 'https://developers.cloudflare.com/workers-ai/models/qwen3.8-27b/',
465
+ default: false,
466
+ available: false,
467
+ requiredEnvVars: [],
468
+ tokensLimit: 16384,
469
+ capabilities: ['chat', 'tools', 'codemode'],
470
+ billing: 'standard',
471
+ route: 'workers-ai',
472
+ contextWindow: 262144,
473
+ aliases: ['cloudflare:qwen/qwen3.8-27b'],
474
+ };
475
+ export const CLOUDFLARE_WRK_TYPESAFE_JEV_0_0_1 = {
476
+ id: 'cloudflare:wrk/typesafe/jev',
477
+ version: '0.0.1',
478
+ name: 'Jev (Cloudflare Workers AI)',
479
+ description: "Typesafe's typed-judgment model at Workers AI's own endpoint - noul, choice and score questions answered as calibrated probabilities; 32k context; zero data retention; billed from the account's credits, no gateway in the way",
480
+ provider: 'cloudflare',
481
+ providerUrl: 'https://docs.typesafe.ai/models',
482
+ default: false,
483
+ available: true,
484
+ requiredEnvVars: [],
485
+ capabilities: ['judgments'],
486
+ billing: 'credits',
487
+ route: 'workers-ai',
488
+ contextWindow: 32000,
489
+ zeroDataRetention: true,
490
+ requestLogging: 'none',
491
+ pricing: { inputUsdPerMillion: 0.042, outputUsdPerMillion: 0.0 },
492
+ };
323
493
  export const OLLAMA_GEMMA3_4B_0_0_1 = {
324
494
  id: 'ollama:gemma3:4b',
325
495
  version: '0.0.1',
326
496
  name: 'Gemma 3 4B (Ollama)',
327
497
  description: 'Gemma 3 4B running locally through Ollama - small and fast, no tool calling',
328
498
  provider: 'ollama',
499
+ providerUrl: 'https://ollama.com/library/gemma3:4b',
329
500
  default: false,
330
501
  available: false,
331
502
  requiredEnvVars: [],
@@ -339,6 +510,7 @@ export const OLLAMA_LLAMA3_1_8B_0_0_1 = {
339
510
  name: 'Llama 3.1 8B (Ollama)',
340
511
  description: 'Meta Llama 3.1 8B running locally through Ollama - tool calling, no data leaves the machine',
341
512
  provider: 'ollama',
513
+ providerUrl: 'https://ollama.com/library/llama3.1:8b',
342
514
  default: false,
343
515
  available: false,
344
516
  requiredEnvVars: [],
@@ -352,6 +524,7 @@ export const OLLAMA_QWEN2_5_CODER_7B_0_0_1 = {
352
524
  name: 'Qwen2.5 Coder 7B (Ollama)',
353
525
  description: 'Qwen2.5 Coder 7B running locally through Ollama - code-focused with tool calling',
354
526
  provider: 'ollama',
527
+ providerUrl: 'https://ollama.com/library/qwen2.5-coder:7b',
355
528
  default: false,
356
529
  available: false,
357
530
  requiredEnvVars: [],
@@ -365,6 +538,7 @@ export const OPENAI_GPT_4_1_MINI_0_0_1 = {
365
538
  name: 'OpenAI GPT-4.1 Mini',
366
539
  description: 'GPT-4.1 Mini by OpenAI - compact version of GPT-4.1',
367
540
  provider: 'openai',
541
+ providerUrl: 'https://platform.openai.com/docs/models/gpt-4.1-mini',
368
542
  default: false,
369
543
  available: false,
370
544
  requiredEnvVars: ['OPENAI_API_KEY'],
@@ -376,6 +550,7 @@ export const OPENAI_GPT_4_1_NANO_0_0_1 = {
376
550
  name: 'OpenAI GPT-4.1 Nano',
377
551
  description: 'GPT-4.1 Nano by OpenAI - smallest and fastest',
378
552
  provider: 'openai',
553
+ providerUrl: 'https://platform.openai.com/docs/models/gpt-4.1-nano',
379
554
  default: false,
380
555
  available: false,
381
556
  requiredEnvVars: ['OPENAI_API_KEY'],
@@ -387,6 +562,7 @@ export const OPENAI_GPT_4_1_0_0_1 = {
387
562
  name: 'OpenAI GPT-4.1',
388
563
  description: 'GPT-4.1 by OpenAI - strong general purpose model',
389
564
  provider: 'openai',
565
+ providerUrl: 'https://platform.openai.com/docs/models/gpt-4.1',
390
566
  default: false,
391
567
  available: false,
392
568
  requiredEnvVars: ['OPENAI_API_KEY'],
@@ -398,6 +574,7 @@ export const OPENAI_GPT_4O_MINI_0_0_1 = {
398
574
  name: 'OpenAI GPT-4o Mini',
399
575
  description: 'GPT-4o Mini by OpenAI - compact and cost-effective',
400
576
  provider: 'openai',
577
+ providerUrl: 'https://platform.openai.com/docs/models/gpt-4o-mini',
401
578
  default: false,
402
579
  available: false,
403
580
  requiredEnvVars: ['OPENAI_API_KEY'],
@@ -409,6 +586,7 @@ export const OPENAI_GPT_4O_0_0_1 = {
409
586
  name: 'OpenAI GPT-4o',
410
587
  description: 'GPT-4o by OpenAI - fast multimodal model',
411
588
  provider: 'openai',
589
+ providerUrl: 'https://platform.openai.com/docs/models/gpt-4o',
412
590
  default: false,
413
591
  available: false,
414
592
  requiredEnvVars: ['OPENAI_API_KEY'],
@@ -420,6 +598,7 @@ export const OPENAI_O3_MINI_0_0_1 = {
420
598
  name: 'OpenAI o3 Mini',
421
599
  description: 'o3 Mini by OpenAI - reasoning-focused compact model',
422
600
  provider: 'openai',
601
+ providerUrl: 'https://platform.openai.com/docs/models/o3-mini',
423
602
  default: false,
424
603
  available: false,
425
604
  requiredEnvVars: ['OPENAI_API_KEY'],
@@ -451,6 +630,14 @@ export const AI_MODEL_CATALOGUE = {
451
630
  'bedrock:us.anthropic.claude-sonnet-4-5-20250929-v1:0': BEDROCK_US_ANTHROPIC_CLAUDE_SONNET_4_5_20250929_V1_0_0_0_1,
452
631
  'bedrock:us.anthropic.claude-sonnet-4-6': BEDROCK_US_ANTHROPIC_CLAUDE_SONNET_4_6_0_0_1,
453
632
  'bedrock:us.anthropic.claude-sonnet-4-20250514-v1:0': BEDROCK_US_ANTHROPIC_CLAUDE_SONNET_4_20250514_V1_0_0_0_1,
633
+ 'cloudflare:gtw/typesafe/jev': CLOUDFLARE_GTW_TYPESAFE_JEV_0_0_1,
634
+ 'cloudflare:wrk/google/gemma-4-26b-a4b-it': CLOUDFLARE_WRK_GOOGLE_GEMMA_4_26B_A4B_IT_0_0_1,
635
+ 'cloudflare:wrk/zai-org/glm-5.2': CLOUDFLARE_WRK_ZAI_ORG_GLM_5_2_0_0_1,
636
+ 'cloudflare:wrk/openai/gpt-oss-120b': CLOUDFLARE_WRK_OPENAI_GPT_OSS_120B_0_0_1,
637
+ 'cloudflare:wrk/moonshotai/kimi-k2.6': CLOUDFLARE_WRK_MOONSHOTAI_KIMI_K2_6_0_0_1,
638
+ 'cloudflare:wrk/meta/llama-3.3-70b-instruct-fp8-fast': CLOUDFLARE_WRK_META_LLAMA_3_3_70B_INSTRUCT_FP8_FAST_0_0_1,
639
+ 'cloudflare:wrk/qwen/qwen3.8-27b': CLOUDFLARE_WRK_QWEN_QWEN3_8_27B_0_0_1,
640
+ 'cloudflare:wrk/typesafe/jev': CLOUDFLARE_WRK_TYPESAFE_JEV_0_0_1,
454
641
  'ollama:gemma3:4b': OLLAMA_GEMMA3_4B_0_0_1,
455
642
  'ollama:llama3.1:8b': OLLAMA_LLAMA3_1_8B_0_0_1,
456
643
  'ollama:qwen2.5-coder:7b': OLLAMA_QWEN2_5_CODER_7B_0_0_1,
@@ -461,5 +648,33 @@ export const AI_MODEL_CATALOGUE = {
461
648
  'openai:gpt-4o': OPENAI_GPT_4O_0_0_1,
462
649
  'openai:o3-mini': OPENAI_O3_MINI_0_0_1,
463
650
  };
651
+ /**
652
+ * The ids a model answered to before its id moved, to the id it has now.
653
+ * Kept apart from the catalogue, which lists each model once.
654
+ */
655
+ export const AI_MODEL_ALIASES = {
656
+ 'cloudflare:google/gemma-4-26b-a4b-it': 'cloudflare:wrk/google/gemma-4-26b-a4b-it',
657
+ 'cloudflare:zai-org/glm-5.2': 'cloudflare:wrk/zai-org/glm-5.2',
658
+ 'cloudflare:openai/gpt-oss-120b': 'cloudflare:wrk/openai/gpt-oss-120b',
659
+ 'cloudflare:moonshotai/kimi-k2.6': 'cloudflare:wrk/moonshotai/kimi-k2.6',
660
+ 'cloudflare:meta/llama-3.3-70b-instruct-fp8-fast': 'cloudflare:wrk/meta/llama-3.3-70b-instruct-fp8-fast',
661
+ 'cloudflare:qwen/qwen3.8-27b': 'cloudflare:wrk/qwen/qwen3.8-27b',
662
+ };
663
+ /** A model by its id, or by an id it had before; undefined when the catalogue has neither. */
664
+ export function getModel(modelId) {
665
+ return AI_MODEL_CATALOGUE[AI_MODEL_ALIASES[modelId] ?? modelId];
666
+ }
667
+ /**
668
+ * A model a chat can run on: not a typed-judgment model (Jev), which
669
+ * answers typed questions about a state and nothing else. A spec that
670
+ * states no capability is read as a chat model.
671
+ */
672
+ export function isChatModel(model) {
673
+ return !(model.capabilities ?? []).includes('judgments');
674
+ }
675
+ /** The models a person choosing a chat model is offered from. */
676
+ export function listChatModels() {
677
+ return Object.values(AI_MODEL_CATALOGUE).filter(isChatModel);
678
+ }
464
679
  export const DEFAULT_MODEL = AIModels.BEDROCK_US_ANTHROPIC_CLAUDE_SONNET_4_6;
465
680
  export const DEFAULT_MODEL_SPEC = BEDROCK_US_ANTHROPIC_CLAUDE_SONNET_4_6_0_0_1;
@@ -11,7 +11,7 @@ export const CSV_OUTPUT_SPEC_0_0_1 = {
11
11
  name: 'CSV',
12
12
  description: 'Deliver results as a CSV file for easy import into spreadsheets, data pipelines, or other analysis tools.',
13
13
  icon: 'table',
14
- enabled: false,
14
+ enabled: true,
15
15
  supports_template: false,
16
16
  supports_storage: true,
17
17
  mime_types: ['text/csv'],
@@ -70,7 +70,7 @@ export const JSON_OUTPUT_SPEC_0_0_1 = {
70
70
  name: 'JSON',
71
71
  description: 'Deliver results as structured JSON data, suitable for programmatic consumption by APIs, pipelines, or dashboards.',
72
72
  icon: 'code',
73
- enabled: false,
73
+ enabled: true,
74
74
  supports_template: false,
75
75
  supports_storage: true,
76
76
  mime_types: ['application/json'],
@@ -37,7 +37,7 @@ export const CRAWL_SKILL_SPEC_0_0_1 = {
37
37
  tags: ['web', 'crawl', 'scraping'],
38
38
  icon: 'globe',
39
39
  emoji: '🌐',
40
- enabled: false,
40
+ enabled: true,
41
41
  };
42
42
  export const EVENTS_SKILL_SPEC_0_0_1 = {
43
43
  id: 'events',
@@ -328,12 +328,12 @@ export const AUDIT_INVENTORY_LEVELS_TEAM_SPEC_0_0_1 = {
328
328
  ref: '',
329
329
  role: 'contributor',
330
330
  goal: `Compare system counts vs physical counts and flag discrepancies`,
331
- dependsOn: [],
331
+ dependsOn: ['inv-1'],
332
332
  subagents: [],
333
333
  model: 'openai:gpt-4.1',
334
334
  mcpServer: 'Audit MCP',
335
335
  tools: ['Count Comparator', 'Discrepancy Logger', 'Shrinkage Calculator'],
336
- trigger: 'On completion of Inventory Scanner',
336
+ trigger: '',
337
337
  approval: 'auto',
338
338
  },
339
339
  {
@@ -342,7 +342,7 @@ export const AUDIT_INVENTORY_LEVELS_TEAM_SPEC_0_0_1 = {
342
342
  ref: '',
343
343
  role: 'contributor',
344
344
  goal: `Forecast demand by SKU using historical sales and seasonal patterns`,
345
- dependsOn: [],
345
+ dependsOn: ['inv-2'],
346
346
  subagents: [],
347
347
  model: 'anthropic:claude-sonnet-4-20250514',
348
348
  mcpServer: 'Analytics MCP',
@@ -351,7 +351,7 @@ export const AUDIT_INVENTORY_LEVELS_TEAM_SPEC_0_0_1 = {
351
351
  'Seasonal Analyzer',
352
352
  'External Signals Fetcher',
353
353
  ],
354
- trigger: 'On completion of Discrepancy Auditor',
354
+ trigger: '',
355
355
  approval: 'auto',
356
356
  },
357
357
  {
@@ -360,12 +360,12 @@ export const AUDIT_INVENTORY_LEVELS_TEAM_SPEC_0_0_1 = {
360
360
  ref: '',
361
361
  role: 'contributor',
362
362
  goal: `Calculate optimal reorder points and generate purchase order recommendations`,
363
- dependsOn: [],
363
+ dependsOn: ['inv-3'],
364
364
  subagents: [],
365
365
  model: 'openai:gpt-4.1',
366
366
  mcpServer: 'Procurement MCP',
367
367
  tools: ['EOQ Calculator', 'Supplier Catalog', 'PO Generator'],
368
- trigger: 'On completion of Demand Forecaster',
368
+ trigger: '',
369
369
  approval: 'manual',
370
370
  },
371
371
  {
@@ -374,12 +374,12 @@ export const AUDIT_INVENTORY_LEVELS_TEAM_SPEC_0_0_1 = {
374
374
  ref: '',
375
375
  role: 'finalizer',
376
376
  goal: `Compile inventory audit report with discrepancies, forecasts, and reorder plan`,
377
- dependsOn: [],
377
+ dependsOn: ['inv-4'],
378
378
  subagents: [],
379
379
  model: 'openai:gpt-4.1',
380
380
  mcpServer: 'Document Generation MCP',
381
381
  tools: ['PDF Generator', 'Chart Builder', 'Email Sender'],
382
- trigger: 'On completion of Reorder Planner',
382
+ trigger: '',
383
383
  approval: 'auto',
384
384
  },
385
385
  ],
@@ -651,7 +651,7 @@ export const COMPREHENSIVE_SALES_ANALYTICS_TEAM_SPEC_0_0_1 = {
651
651
  ref: '',
652
652
  role: 'finalizer',
653
653
  goal: `Compile all insights — raw KPIs, anomalies, trends, and forecasts — into a polished executive dashboard with charts, tables, and narrative commentary. Send the report via Slack and email. Highlight critical anomalies with a red-flag summary at the top.`,
654
- dependsOn: [],
654
+ dependsOn: ['sa-2', 'sa-3'],
655
655
  subagents: [],
656
656
  model: 'openai:gpt-4.1',
657
657
  mcpServer: 'Document Generation MCP',
@@ -661,7 +661,7 @@ export const COMPREHENSIVE_SALES_ANALYTICS_TEAM_SPEC_0_0_1 = {
661
661
  'Email Sender',
662
662
  'Slack Notifier',
663
663
  ],
664
- trigger: 'On completion of Anomaly Detector & Trend Analyzer',
664
+ trigger: '',
665
665
  approval: 'manual',
666
666
  },
667
667
  ],
@@ -1220,7 +1220,7 @@ export const PROCESS_CITIZEN_REQUESTS_TEAM_SPEC_0_0_1 = {
1220
1220
  ref: '',
1221
1221
  role: 'contributor',
1222
1222
  goal: `Process and route requests to appropriate departments with required documentation`,
1223
- dependsOn: [],
1223
+ dependsOn: ['cit-1'],
1224
1224
  subagents: [],
1225
1225
  model: 'openai:gpt-4.1',
1226
1226
  mcpServer: 'Case Management MCP',
@@ -1230,7 +1230,7 @@ export const PROCESS_CITIZEN_REQUESTS_TEAM_SPEC_0_0_1 = {
1230
1230
  'Department Router',
1231
1231
  'Status Tracker',
1232
1232
  ],
1233
- trigger: 'On completion of Intake Agent',
1233
+ trigger: '',
1234
1234
  approval: 'auto',
1235
1235
  },
1236
1236
  {
@@ -1515,12 +1515,12 @@ export const SYNC_CRM_CONTACTS_TEAM_SPEC_0_0_1 = {
1515
1515
  ref: '',
1516
1516
  role: 'contributor',
1517
1517
  goal: `Analyze collected data and identify patterns and duplicates`,
1518
- dependsOn: [],
1518
+ dependsOn: ['tm-1'],
1519
1519
  subagents: [],
1520
1520
  model: 'bedrock:us.anthropic.claude-sonnet-4-6',
1521
1521
  mcpServer: 'Analytics MCP',
1522
1522
  tools: ['Statistical Analysis', 'ML Predictor', 'Deduplicator'],
1523
- trigger: 'On completion of Data Collector',
1523
+ trigger: '',
1524
1524
  approval: 'manual',
1525
1525
  },
1526
1526
  {
@@ -1529,12 +1529,12 @@ export const SYNC_CRM_CONTACTS_TEAM_SPEC_0_0_1 = {
1529
1529
  ref: '',
1530
1530
  role: 'contributor',
1531
1531
  goal: `Write cleaned and merged contacts back to the CRM systems`,
1532
- dependsOn: [],
1532
+ dependsOn: ['tm-2'],
1533
1533
  subagents: [],
1534
1534
  model: 'openai:gpt-4.1',
1535
1535
  mcpServer: 'CRM Write MCP',
1536
1536
  tools: ['Salesforce Connector', 'HubSpot Connector'],
1537
- trigger: 'On completion of Analyzer',
1537
+ trigger: '',
1538
1538
  approval: 'manual',
1539
1539
  },
1540
1540
  {
@@ -1543,12 +1543,12 @@ export const SYNC_CRM_CONTACTS_TEAM_SPEC_0_0_1 = {
1543
1543
  ref: '',
1544
1544
  role: 'finalizer',
1545
1545
  goal: `Generate sync summary reports and send notifications`,
1546
- dependsOn: [],
1546
+ dependsOn: ['tm-3'],
1547
1547
  subagents: [],
1548
1548
  model: 'openai:gpt-4.1',
1549
1549
  mcpServer: 'Document Generation MCP',
1550
1550
  tools: ['PDF Generator', 'Chart Builder', 'Email Sender'],
1551
- trigger: 'On completion of Sync Writer',
1551
+ trigger: '',
1552
1552
  approval: 'auto',
1553
1553
  },
1554
1554
  ],
@@ -0,0 +1,16 @@
1
+ /**
2
+ * UI Plugin Catalog.
3
+ *
4
+ * How an agent's answer becomes an interface: the protocols a host renders.
5
+ *
6
+ * This file is AUTO-GENERATED from YAML specifications.
7
+ * DO NOT EDIT MANUALLY - run 'make specs' to regenerate.
8
+ */
9
+ import type { UIPluginSpec } from '../types/agentspecs';
10
+ export declare const A2UI_UI_PLUGIN_0_0_1: UIPluginSpec;
11
+ export declare const MCP_APPS_UI_PLUGIN_0_0_1: UIPluginSpec;
12
+ export declare const MCP_UI_UI_PLUGIN_0_0_1: UIPluginSpec;
13
+ export declare const UI_PLUGIN_CATALOGUE: Record<string, UIPluginSpec>;
14
+ /** The plugin an agent spec's `uiPlugin` names, or undefined. */
15
+ export declare function getUIPlugin(pluginId: string): UIPluginSpec | undefined;
16
+ export declare function listUIPlugins(): UIPluginSpec[];