@datalayer/agent-runtimes 1.3.15 → 1.3.17

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 (81) 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/apps/AppRenderer.d.ts +24 -0
  5. package/lib/loop/apps/AppRenderer.js +101 -0
  6. package/lib/loop/apps/appspec.d.ts +69 -0
  7. package/lib/loop/apps/appspec.js +566 -0
  8. package/lib/loop/apps/checks.d.ts +21 -0
  9. package/lib/loop/apps/checks.js +556 -0
  10. package/lib/loop/apps/index.d.ts +10 -0
  11. package/lib/loop/apps/index.js +14 -0
  12. package/lib/loop/apps/rules.d.ts +64 -0
  13. package/lib/loop/apps/rules.js +289 -0
  14. package/lib/loop/apps/yaml.d.ts +17 -0
  15. package/lib/loop/apps/yaml.js +185 -0
  16. package/lib/loop/embed/LoopEmbed.d.ts +6 -1
  17. package/lib/loop/embed/LoopEmbed.js +3 -2
  18. package/lib/loop/index.d.ts +1 -0
  19. package/lib/loop/index.js +3 -0
  20. package/lib/loop/plugins/chat/ChatView.js +9 -4
  21. package/lib/loop/plugins/chat/index.d.ts +10 -0
  22. package/lib/loop/plugins/chat/index.js +1 -0
  23. package/lib/loop/presets.d.ts +6 -0
  24. package/lib/loop/presets.js +2 -1
  25. package/lib/loop/shell/LoopWorkspace.d.ts +14 -0
  26. package/lib/loop/shell/LoopWorkspace.js +20 -6
  27. package/lib/loop/shell/index.d.ts +1 -1
  28. package/lib/loop/shell/index.js +1 -1
  29. package/lib/loop/shell/useWorkspaceFullScreen.d.ts +17 -4
  30. package/lib/loop/shell/useWorkspaceFullScreen.js +23 -6
  31. package/lib/specs/actions.d.ts +30 -0
  32. package/lib/specs/actions.js +616 -0
  33. package/lib/specs/agents/agents.d.ts +1 -0
  34. package/lib/specs/agents/agents.js +338 -284
  35. package/lib/specs/apps.d.ts +25 -0
  36. package/lib/specs/apps.js +1064 -0
  37. package/lib/specs/cogs.d.ts +19 -0
  38. package/lib/specs/cogs.js +736 -0
  39. package/lib/specs/events.d.ts +6 -1
  40. package/lib/specs/events.js +144 -1
  41. package/lib/specs/frames.d.ts +19 -0
  42. package/lib/specs/frames.js +444 -0
  43. package/lib/specs/gates.d.ts +22 -0
  44. package/lib/specs/gates.js +177 -0
  45. package/lib/specs/guards.d.ts +26 -0
  46. package/lib/specs/guards.js +930 -0
  47. package/lib/specs/index.d.ts +10 -0
  48. package/lib/specs/index.js +10 -0
  49. package/lib/specs/mcpServers.js +2 -2
  50. package/lib/specs/memory.js +4 -0
  51. package/lib/specs/modelProviders.d.ts +22 -0
  52. package/lib/specs/modelProviders.js +102 -0
  53. package/lib/specs/models.d.ts +31 -0
  54. package/lib/specs/models.js +215 -0
  55. package/lib/specs/ops.d.ts +15 -0
  56. package/lib/specs/ops.js +1272 -0
  57. package/lib/specs/outputs.js +2 -2
  58. package/lib/specs/skills.js +1 -1
  59. package/lib/specs/teams/teams.js +18 -18
  60. package/lib/specs/tracks.d.ts +15 -0
  61. package/lib/specs/tracks.js +87 -0
  62. package/lib/specs/uiPlugins.d.ts +16 -0
  63. package/lib/specs/uiPlugins.js +40 -0
  64. package/lib/types/agentspecs.d.ts +453 -2
  65. package/lib/types/memory.d.ts +2 -0
  66. package/lib/types/models.d.ts +52 -0
  67. package/package.json +2 -1
  68. package/scripts/check-cloudflare-models.py +122 -0
  69. package/scripts/codegen/agentspecs_clone.py +53 -0
  70. package/scripts/codegen/compose.py +65 -0
  71. package/scripts/codegen/generate_agents.py +14 -4
  72. package/scripts/codegen/generate_apps.py +454 -0
  73. package/scripts/codegen/generate_cogs.py +308 -0
  74. package/scripts/codegen/generate_frames.py +278 -0
  75. package/scripts/codegen/generate_memory.py +2 -0
  76. package/scripts/codegen/generate_model_providers.py +246 -0
  77. package/scripts/codegen/generate_models.py +135 -4
  78. package/scripts/codegen/generate_ops.py +388 -0
  79. package/scripts/codegen/generate_sandbox_agents.py +1 -1
  80. package/scripts/codegen/generate_ui_plugins.py +226 -0
  81. 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;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Op Catalog.
3
+ *
4
+ * Orchestrated, supervised workflows: Cogs, and how their work is verified.
5
+ * Every Op is resolved: its Guards, its Gates and its Track are in it.
6
+ *
7
+ * This file is AUTO-GENERATED from YAML specifications.
8
+ * DO NOT EDIT MANUALLY - run 'make specs' to regenerate.
9
+ */
10
+ import type { OpSpec } from '../types/agentspecs';
11
+ export declare const OP_SALES_PIPELINE_BOARD_REPORT_0_0_1: OpSpec;
12
+ export declare const OP_CATALOGUE: Record<string, OpSpec>;
13
+ /** An Op, by `id` or `id:version`, or undefined. */
14
+ export declare function getOp(ref: string): OpSpec | undefined;
15
+ export declare function listOps(): OpSpec[];