@runtypelabs/cli 2.11.3 → 2.11.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +720 -19
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -11103,7 +11103,8 @@ var require_builtin_tools_registry = __commonJS({
11103
11103
  ARTIFACT: "artifact",
11104
11104
  DATA_MANAGEMENT: "data_management",
11105
11105
  COMMERCE: "commerce",
11106
- BROWSER: "browser"
11106
+ BROWSER: "browser",
11107
+ SANDBOX: "sandbox"
11107
11108
  };
11108
11109
  exports.BuiltInToolIdPrefix = {
11109
11110
  BUILTIN: "builtin",
@@ -11115,7 +11116,9 @@ var require_builtin_tools_registry = __commonJS({
11115
11116
  FILE_OUTPUTS: "file_outputs",
11116
11117
  VOICE: "voice",
11117
11118
  RECORD_MANAGEMENT: "record_management",
11118
- UCP_COMMERCE: "ucp_commerce"
11119
+ UCP_COMMERCE: "ucp_commerce",
11120
+ SANDBOX_USE: "sandbox_use",
11121
+ SANDBOX_SESSION: "sandbox_session"
11119
11122
  };
11120
11123
  var BROWSER_RUN_DOCUMENTATION_URL = "https://developers.cloudflare.com/browser-run/quick-actions/";
11121
11124
  var BROWSER_SESSION_DOCUMENTATION_URL = "https://developers.cloudflare.com/browser-run/cdp/";
@@ -11317,13 +11320,69 @@ var require_builtin_tools_registry = __commonJS({
11317
11320
  }
11318
11321
  };
11319
11322
  var CORE_BUILTIN_TOOLS_REGISTRY = [
11320
- // OpenAI DALL-E Image Generation
11323
+ // OpenAI GPT Image 2 generation. Legacy `dalle` IDs resolve through aliases.
11324
+ {
11325
+ id: "gpt-image-2",
11326
+ name: "GPT Image 2",
11327
+ description: "Generate images from text descriptions using OpenAI GPT Image 2. Returns generated images that can be viewed or downloaded.",
11328
+ category: exports.BuiltInToolCategory.IMAGE_GENERATION,
11329
+ providers: [exports.BuiltInToolProvider.MULTI],
11330
+ parametersSchema: {
11331
+ type: "object",
11332
+ properties: {
11333
+ prompt: {
11334
+ type: "string",
11335
+ description: "A text description of the desired image(s) to generate",
11336
+ minLength: 1,
11337
+ maxLength: 32e3
11338
+ },
11339
+ size: {
11340
+ type: "string",
11341
+ description: "The size of the generated image. gpt-image-2 supports auto and custom WxH resolutions where both edges are multiples of 16, each edge is at most 3840px, aspect ratio is at most 3:1, and total pixels are between 655,360 and 8,294,400.",
11342
+ pattern: "^(auto|[1-9][0-9]{2,3}x[1-9][0-9]{2,3})$",
11343
+ default: "1024x1024"
11344
+ },
11345
+ quality: {
11346
+ type: "string",
11347
+ description: "The quality of the image. Legacy DALL-E values standard and hd are accepted at execution time and mapped to medium/high.",
11348
+ enum: ["auto", "low", "medium", "high"],
11349
+ default: "medium"
11350
+ },
11351
+ outputFormat: {
11352
+ type: "string",
11353
+ description: "Output image format for gpt-image-2",
11354
+ enum: ["png", "jpeg", "webp"],
11355
+ default: "png"
11356
+ },
11357
+ background: {
11358
+ type: "string",
11359
+ description: "Background behavior for gpt-image-2. Transparent backgrounds are not supported by gpt-image-2.",
11360
+ enum: ["auto", "opaque"],
11361
+ default: "auto"
11362
+ }
11363
+ },
11364
+ required: ["prompt"]
11365
+ },
11366
+ defaultConfig: {
11367
+ size: "1024x1024",
11368
+ quality: "medium",
11369
+ outputFormat: "png",
11370
+ background: "auto"
11371
+ },
11372
+ documentationUrl: "https://platform.openai.com/docs/guides/image-generation",
11373
+ requiresApiKey: true,
11374
+ executionHint: "platform",
11375
+ platformKeySupport: true
11376
+ },
11377
+ // Legacy DALL-E compatibility entry. Hidden from discovery, but existing
11378
+ // saved configs using `builtin:dalle` keep the old tool name and schema while
11379
+ // the API silently routes execution to GPT Image 2.
11321
11380
  {
11322
11381
  id: "dalle",
11323
11382
  name: "DALL-E Image Generation",
11324
- description: "Generate images from text descriptions using DALL-E 3. Returns image URLs that can be viewed or downloaded.",
11383
+ description: "Generate images from text descriptions. Returns generated images that can be viewed or downloaded.",
11325
11384
  category: exports.BuiltInToolCategory.IMAGE_GENERATION,
11326
- providers: [exports.BuiltInToolProvider.OPENAI],
11385
+ providers: [exports.BuiltInToolProvider.MULTI],
11327
11386
  parametersSchema: {
11328
11387
  type: "object",
11329
11388
  properties: {
@@ -11347,7 +11406,7 @@ var require_builtin_tools_registry = __commonJS({
11347
11406
  },
11348
11407
  style: {
11349
11408
  type: "string",
11350
- description: "The style of the generated image (vivid or natural)",
11409
+ description: "Legacy DALL-E style setting. Accepted for compatibility and ignored by GPT Image 2.",
11351
11410
  enum: ["vivid", "natural"],
11352
11411
  default: "vivid"
11353
11412
  }
@@ -11359,17 +11418,12 @@ var require_builtin_tools_registry = __commonJS({
11359
11418
  quality: "standard",
11360
11419
  style: "vivid"
11361
11420
  },
11362
- modelCompatibility: [
11363
- {
11364
- provider: exports.BuiltInToolProvider.OPENAI,
11365
- models: ["gpt-4o", "gpt-4o-mini", "gpt-5", "gpt-5-mini", "gpt-5.4", "gpt-5.4-mini"]
11366
- // Models that support tool calling
11367
- }
11368
- ],
11369
11421
  documentationUrl: "https://platform.openai.com/docs/guides/image-generation",
11370
11422
  requiresApiKey: true,
11371
- executionHint: "platform"
11372
- // Platform executes this by calling DALL-E API
11423
+ executionHint: "platform",
11424
+ platformKeySupport: true,
11425
+ hidden: true,
11426
+ deprecated: true
11373
11427
  },
11374
11428
  // OpenAI Web Search (native provider tool)
11375
11429
  {
@@ -13591,6 +13645,373 @@ var require_builtin_tools_registry = __commonJS({
13591
13645
  executionHint: "platform",
13592
13646
  requiresApiKey: false,
13593
13647
  platformKeySupport: false
13648
+ },
13649
+ // -----------------------------------------------------------------------
13650
+ // Sandbox tools — Tier 1 (anonymous): sandbox provisioned automatically,
13651
+ // model never sees sandboxId. Container reused across calls in one execution.
13652
+ // -----------------------------------------------------------------------
13653
+ {
13654
+ id: "sandbox:exec",
13655
+ name: "Sandbox Exec",
13656
+ description: "Run a shell command in a Linux sandbox (Node 22, Python 3.12, git, pnpm). The sandbox persists across tool calls within the same execution \u2014 install packages, write files, then run them. Returns stdout, stderr, and exit code.",
13657
+ category: exports.BuiltInToolCategory.SANDBOX,
13658
+ toolGroup: exports.BuiltInToolGroup.SANDBOX_USE,
13659
+ providers: [exports.BuiltInToolProvider.MULTI],
13660
+ parametersSchema: {
13661
+ type: "object",
13662
+ properties: {
13663
+ command: {
13664
+ type: "string",
13665
+ description: "Shell command to execute (runs in bash)"
13666
+ },
13667
+ timeout: {
13668
+ type: "number",
13669
+ description: "Timeout in seconds (default 30, max 300)"
13670
+ }
13671
+ },
13672
+ required: ["command"]
13673
+ },
13674
+ executionHint: "platform",
13675
+ requiresApiKey: false,
13676
+ platformKeySupport: true
13677
+ },
13678
+ {
13679
+ id: "sandbox:run_code",
13680
+ name: "Sandbox Run Code",
13681
+ description: "Run a code snippet in the sandbox. Supports JavaScript, TypeScript, and Python. The result is the parsed JSON output (stdout) of the script. For JavaScript/TypeScript, the last expression or return value is captured.",
13682
+ category: exports.BuiltInToolCategory.SANDBOX,
13683
+ toolGroup: exports.BuiltInToolGroup.SANDBOX_USE,
13684
+ providers: [exports.BuiltInToolProvider.MULTI],
13685
+ parametersSchema: {
13686
+ type: "object",
13687
+ properties: {
13688
+ code: {
13689
+ type: "string",
13690
+ description: "Code to execute"
13691
+ },
13692
+ language: {
13693
+ type: "string",
13694
+ enum: ["javascript", "typescript", "python"],
13695
+ description: "Programming language (default: javascript)"
13696
+ }
13697
+ },
13698
+ required: ["code"]
13699
+ },
13700
+ executionHint: "platform",
13701
+ requiresApiKey: false,
13702
+ platformKeySupport: true
13703
+ },
13704
+ {
13705
+ id: "sandbox:write_file",
13706
+ name: "Sandbox Write File",
13707
+ description: "Write a file to the sandbox filesystem. Creates parent directories automatically. Use sandbox:exec to run files after writing them.",
13708
+ category: exports.BuiltInToolCategory.SANDBOX,
13709
+ toolGroup: exports.BuiltInToolGroup.SANDBOX_USE,
13710
+ providers: [exports.BuiltInToolProvider.MULTI],
13711
+ parametersSchema: {
13712
+ type: "object",
13713
+ properties: {
13714
+ path: {
13715
+ type: "string",
13716
+ description: "File path in the sandbox (e.g., /home/user/app/index.js)"
13717
+ },
13718
+ content: {
13719
+ type: "string",
13720
+ description: "File content to write"
13721
+ }
13722
+ },
13723
+ required: ["path", "content"]
13724
+ },
13725
+ executionHint: "platform",
13726
+ requiresApiKey: false,
13727
+ platformKeySupport: true
13728
+ },
13729
+ {
13730
+ id: "sandbox:read_file",
13731
+ name: "Sandbox Read File",
13732
+ description: "Read a file from the sandbox filesystem. Returns the file content as a string.",
13733
+ category: exports.BuiltInToolCategory.SANDBOX,
13734
+ toolGroup: exports.BuiltInToolGroup.SANDBOX_USE,
13735
+ providers: [exports.BuiltInToolProvider.MULTI],
13736
+ parametersSchema: {
13737
+ type: "object",
13738
+ properties: {
13739
+ path: {
13740
+ type: "string",
13741
+ description: "File path to read"
13742
+ }
13743
+ },
13744
+ required: ["path"]
13745
+ },
13746
+ executionHint: "platform",
13747
+ requiresApiKey: false,
13748
+ platformKeySupport: true
13749
+ },
13750
+ {
13751
+ id: "sandbox:expose_port",
13752
+ name: "Sandbox Expose Port",
13753
+ description: "Expose a port from the sandbox and get a public preview URL. Use after starting a server process with sandbox:exec.",
13754
+ category: exports.BuiltInToolCategory.SANDBOX,
13755
+ toolGroup: exports.BuiltInToolGroup.SANDBOX_USE,
13756
+ providers: [exports.BuiltInToolProvider.MULTI],
13757
+ parametersSchema: {
13758
+ type: "object",
13759
+ properties: {
13760
+ port: {
13761
+ type: "number",
13762
+ description: "Port number to expose (must not be 3000, which is reserved)"
13763
+ },
13764
+ name: {
13765
+ type: "string",
13766
+ description: "Optional name for the preview URL"
13767
+ }
13768
+ },
13769
+ required: ["port"]
13770
+ },
13771
+ executionHint: "platform",
13772
+ requiresApiKey: false,
13773
+ platformKeySupport: true
13774
+ },
13775
+ {
13776
+ id: "sandbox:git_checkout",
13777
+ name: "Sandbox Git Checkout",
13778
+ description: "Clone a git repository into the sandbox. The repo is cloned into the current working directory.",
13779
+ category: exports.BuiltInToolCategory.SANDBOX,
13780
+ toolGroup: exports.BuiltInToolGroup.SANDBOX_USE,
13781
+ providers: [exports.BuiltInToolProvider.MULTI],
13782
+ parametersSchema: {
13783
+ type: "object",
13784
+ properties: {
13785
+ repo: {
13786
+ type: "string",
13787
+ description: "Git repository URL to clone"
13788
+ },
13789
+ branch: {
13790
+ type: "string",
13791
+ description: "Branch to checkout (default: main/master)"
13792
+ }
13793
+ },
13794
+ required: ["repo"]
13795
+ },
13796
+ executionHint: "platform",
13797
+ requiresApiKey: false,
13798
+ platformKeySupport: true
13799
+ },
13800
+ // -----------------------------------------------------------------------
13801
+ // Sandbox tools — Tier 2 (session): model manages sandboxId explicitly.
13802
+ // Allows multiple sandboxes, persistent instances, and cross-execution reuse.
13803
+ // -----------------------------------------------------------------------
13804
+ {
13805
+ id: "sandbox:create",
13806
+ name: "Sandbox Create",
13807
+ description: "Create a new sandbox instance. Returns a sandboxId to pass to session tools. If no sandboxId is provided, a random one is generated.",
13808
+ category: exports.BuiltInToolCategory.SANDBOX,
13809
+ toolGroup: exports.BuiltInToolGroup.SANDBOX_SESSION,
13810
+ providers: [exports.BuiltInToolProvider.MULTI],
13811
+ parametersSchema: {
13812
+ type: "object",
13813
+ properties: {
13814
+ sandboxId: {
13815
+ type: "string",
13816
+ description: "Optional custom sandbox ID. If omitted, a random ID is generated."
13817
+ }
13818
+ }
13819
+ },
13820
+ executionHint: "platform",
13821
+ requiresApiKey: false,
13822
+ platformKeySupport: true
13823
+ },
13824
+ {
13825
+ id: "sandbox:session_exec",
13826
+ name: "Sandbox Session Exec",
13827
+ description: "Run a shell command in a specific sandbox identified by sandboxId.",
13828
+ category: exports.BuiltInToolCategory.SANDBOX,
13829
+ toolGroup: exports.BuiltInToolGroup.SANDBOX_SESSION,
13830
+ providers: [exports.BuiltInToolProvider.MULTI],
13831
+ parametersSchema: {
13832
+ type: "object",
13833
+ properties: {
13834
+ sandboxId: {
13835
+ type: "string",
13836
+ description: "The sandbox ID returned by sandbox:create"
13837
+ },
13838
+ command: {
13839
+ type: "string",
13840
+ description: "Shell command to execute"
13841
+ },
13842
+ timeout: {
13843
+ type: "number",
13844
+ description: "Timeout in seconds (default 30, max 300)"
13845
+ }
13846
+ },
13847
+ required: ["sandboxId", "command"]
13848
+ },
13849
+ executionHint: "platform",
13850
+ requiresApiKey: false,
13851
+ platformKeySupport: true
13852
+ },
13853
+ {
13854
+ id: "sandbox:session_run_code",
13855
+ name: "Sandbox Session Run Code",
13856
+ description: "Run a code snippet in a specific sandbox identified by sandboxId.",
13857
+ category: exports.BuiltInToolCategory.SANDBOX,
13858
+ toolGroup: exports.BuiltInToolGroup.SANDBOX_SESSION,
13859
+ providers: [exports.BuiltInToolProvider.MULTI],
13860
+ parametersSchema: {
13861
+ type: "object",
13862
+ properties: {
13863
+ sandboxId: {
13864
+ type: "string",
13865
+ description: "The sandbox ID returned by sandbox:create"
13866
+ },
13867
+ code: {
13868
+ type: "string",
13869
+ description: "Code to execute"
13870
+ },
13871
+ language: {
13872
+ type: "string",
13873
+ enum: ["javascript", "typescript", "python"],
13874
+ description: "Programming language (default: javascript)"
13875
+ }
13876
+ },
13877
+ required: ["sandboxId", "code"]
13878
+ },
13879
+ executionHint: "platform",
13880
+ requiresApiKey: false,
13881
+ platformKeySupport: true
13882
+ },
13883
+ {
13884
+ id: "sandbox:session_write_file",
13885
+ name: "Sandbox Session Write File",
13886
+ description: "Write a file to a specific sandbox identified by sandboxId.",
13887
+ category: exports.BuiltInToolCategory.SANDBOX,
13888
+ toolGroup: exports.BuiltInToolGroup.SANDBOX_SESSION,
13889
+ providers: [exports.BuiltInToolProvider.MULTI],
13890
+ parametersSchema: {
13891
+ type: "object",
13892
+ properties: {
13893
+ sandboxId: {
13894
+ type: "string",
13895
+ description: "The sandbox ID returned by sandbox:create"
13896
+ },
13897
+ path: {
13898
+ type: "string",
13899
+ description: "File path in the sandbox"
13900
+ },
13901
+ content: {
13902
+ type: "string",
13903
+ description: "File content to write"
13904
+ }
13905
+ },
13906
+ required: ["sandboxId", "path", "content"]
13907
+ },
13908
+ executionHint: "platform",
13909
+ requiresApiKey: false,
13910
+ platformKeySupport: true
13911
+ },
13912
+ {
13913
+ id: "sandbox:session_read_file",
13914
+ name: "Sandbox Session Read File",
13915
+ description: "Read a file from a specific sandbox identified by sandboxId.",
13916
+ category: exports.BuiltInToolCategory.SANDBOX,
13917
+ toolGroup: exports.BuiltInToolGroup.SANDBOX_SESSION,
13918
+ providers: [exports.BuiltInToolProvider.MULTI],
13919
+ parametersSchema: {
13920
+ type: "object",
13921
+ properties: {
13922
+ sandboxId: {
13923
+ type: "string",
13924
+ description: "The sandbox ID returned by sandbox:create"
13925
+ },
13926
+ path: {
13927
+ type: "string",
13928
+ description: "File path to read"
13929
+ }
13930
+ },
13931
+ required: ["sandboxId", "path"]
13932
+ },
13933
+ executionHint: "platform",
13934
+ requiresApiKey: false,
13935
+ platformKeySupport: true
13936
+ },
13937
+ {
13938
+ id: "sandbox:session_expose_port",
13939
+ name: "Sandbox Session Expose Port",
13940
+ description: "Expose a port from a specific sandbox and get a public preview URL.",
13941
+ category: exports.BuiltInToolCategory.SANDBOX,
13942
+ toolGroup: exports.BuiltInToolGroup.SANDBOX_SESSION,
13943
+ providers: [exports.BuiltInToolProvider.MULTI],
13944
+ parametersSchema: {
13945
+ type: "object",
13946
+ properties: {
13947
+ sandboxId: {
13948
+ type: "string",
13949
+ description: "The sandbox ID returned by sandbox:create"
13950
+ },
13951
+ port: {
13952
+ type: "number",
13953
+ description: "Port number to expose"
13954
+ },
13955
+ name: {
13956
+ type: "string",
13957
+ description: "Optional name for the preview URL"
13958
+ }
13959
+ },
13960
+ required: ["sandboxId", "port"]
13961
+ },
13962
+ executionHint: "platform",
13963
+ requiresApiKey: false,
13964
+ platformKeySupport: true
13965
+ },
13966
+ {
13967
+ id: "sandbox:session_git_checkout",
13968
+ name: "Sandbox Session Git Checkout",
13969
+ description: "Clone a git repository into a specific sandbox identified by sandboxId.",
13970
+ category: exports.BuiltInToolCategory.SANDBOX,
13971
+ toolGroup: exports.BuiltInToolGroup.SANDBOX_SESSION,
13972
+ providers: [exports.BuiltInToolProvider.MULTI],
13973
+ parametersSchema: {
13974
+ type: "object",
13975
+ properties: {
13976
+ sandboxId: {
13977
+ type: "string",
13978
+ description: "The sandbox ID returned by sandbox:create"
13979
+ },
13980
+ repo: {
13981
+ type: "string",
13982
+ description: "Git repository URL to clone"
13983
+ },
13984
+ branch: {
13985
+ type: "string",
13986
+ description: "Branch to checkout"
13987
+ }
13988
+ },
13989
+ required: ["sandboxId", "repo"]
13990
+ },
13991
+ executionHint: "platform",
13992
+ requiresApiKey: false,
13993
+ platformKeySupport: true
13994
+ },
13995
+ {
13996
+ id: "sandbox:destroy",
13997
+ name: "Sandbox Destroy",
13998
+ description: "Destroy a sandbox instance and release its resources. Only available for session-managed sandboxes.",
13999
+ category: exports.BuiltInToolCategory.SANDBOX,
14000
+ toolGroup: exports.BuiltInToolGroup.SANDBOX_SESSION,
14001
+ providers: [exports.BuiltInToolProvider.MULTI],
14002
+ parametersSchema: {
14003
+ type: "object",
14004
+ properties: {
14005
+ sandboxId: {
14006
+ type: "string",
14007
+ description: "The sandbox ID to destroy"
14008
+ }
14009
+ },
14010
+ required: ["sandboxId"]
14011
+ },
14012
+ executionHint: "platform",
14013
+ requiresApiKey: false,
14014
+ platformKeySupport: true
13594
14015
  }
13595
14016
  ];
13596
14017
  exports.BUILTIN_TOOLS_REGISTRY = [
@@ -13855,6 +14276,7 @@ var require_generated_model_routing = __commonJS({
13855
14276
  "grok-4.20-reasoning-beta": ["vercel"],
13856
14277
  "grok-code-fast-1": ["vercel", "xai"],
13857
14278
  "intellect-3": ["vercel"],
14279
+ "interfaze-beta": ["vercel"],
13858
14280
  "kat-coder-pro-v1": ["vercel"],
13859
14281
  "kat-coder-pro-v2": ["vercel"],
13860
14282
  "kimi-k2": ["vercel"],
@@ -13891,6 +14313,8 @@ var require_generated_model_routing = __commonJS({
13891
14313
  "Meta-Llama-3.3-70B-Instruct-Turbo": ["togetherai"],
13892
14314
  "mimo-v2-flash": ["vercel"],
13893
14315
  "mimo-v2-pro": ["vercel"],
14316
+ "mimo-v2.5": ["vercel"],
14317
+ "mimo-v2.5-pro": ["vercel"],
13894
14318
  "minimax-m2": ["vercel"],
13895
14319
  "minimax-m2.1": ["vercel"],
13896
14320
  "minimax-m2.1-lightning": ["vercel"],
@@ -13941,6 +14365,7 @@ var require_generated_model_routing = __commonJS({
13941
14365
  "qwen3-max-thinking": ["vercel"],
13942
14366
  "qwen3-next-80b-a3b-instruct": ["vercel"],
13943
14367
  "qwen3-next-80b-a3b-thinking": ["vercel"],
14368
+ "qwen3-vl-235b-a22b-instruct": ["vercel"],
13944
14369
  "qwen3-vl-instruct": ["vercel"],
13945
14370
  "qwen3-vl-thinking": ["vercel"],
13946
14371
  "qwen3.5-122b-a10b": ["mixlayer"],
@@ -13951,6 +14376,7 @@ var require_generated_model_routing = __commonJS({
13951
14376
  "qwen3.5-9b": ["mixlayer"],
13952
14377
  "qwen3.5-flash": ["vercel"],
13953
14378
  "qwen3.5-plus": ["vercel"],
14379
+ "qwen3.6-27b": ["vercel"],
13954
14380
  "qwen3.6-plus": ["vercel"],
13955
14381
  "seed-1.6": ["vercel"],
13956
14382
  "seed-1.8": ["vercel"],
@@ -14110,6 +14536,7 @@ var require_generated_model_routing = __commonJS({
14110
14536
  "grok-4-fast-reasoning": ["vercel"],
14111
14537
  "grok-code-fast-1": ["vercel", "xai"],
14112
14538
  "intellect-3": ["vercel"],
14539
+ "interfaze-beta": ["vercel"],
14113
14540
  "kat-coder-pro": ["vercel"],
14114
14541
  "kimi-k2": ["vercel"],
14115
14542
  "kimi-k2-0905": ["vercel"],
@@ -14135,6 +14562,8 @@ var require_generated_model_routing = __commonJS({
14135
14562
  "meta-llama-3-1-70b-instruct-turbo": ["togetherai"],
14136
14563
  "meta-llama-3-1-8b-instruct-turbo": ["togetherai"],
14137
14564
  "meta-llama-3-3-70b-instruct-turbo": ["togetherai"],
14565
+ "mimo-v2-5": ["vercel"],
14566
+ "mimo-v2-5-pro": ["vercel"],
14138
14567
  "mimo-v2-flash": ["vercel"],
14139
14568
  "mimo-v2-pro": ["vercel"],
14140
14569
  "minimax-m2": ["vercel"],
@@ -14183,6 +14612,7 @@ var require_generated_model_routing = __commonJS({
14183
14612
  "qwen3-5-9b": ["mixlayer"],
14184
14613
  "qwen3-5-flash": ["vercel"],
14185
14614
  "qwen3-5-plus": ["vercel"],
14615
+ "qwen3-6-27b": ["vercel"],
14186
14616
  "qwen3-6-plus": ["vercel"],
14187
14617
  "qwen3-coder": ["vercel"],
14188
14618
  "qwen3-coder-30b-a3b": ["vercel"],
@@ -14195,6 +14625,7 @@ var require_generated_model_routing = __commonJS({
14195
14625
  "qwen3-next-80b-a3b": ["vercel"],
14196
14626
  "qwen3-next-80b-a3b-instruct": ["vercel"],
14197
14627
  "qwen3-vl": ["vercel"],
14628
+ "qwen3-vl-235b-a22b-instruct": ["vercel"],
14198
14629
  "qwen3-vl-instruct": ["vercel"],
14199
14630
  "seed-1-6": ["vercel"],
14200
14631
  "seed-1-8": ["vercel"],
@@ -14872,6 +15303,9 @@ var require_generated_model_routing = __commonJS({
14872
15303
  "intellect-3": {
14873
15304
  "vercel": "prime-intellect/intellect-3"
14874
15305
  },
15306
+ "interfaze-beta": {
15307
+ "vercel": "interfaze/interfaze-beta"
15308
+ },
14875
15309
  "kat-coder-pro": {
14876
15310
  "vercel": "kwaipilot/kat-coder-pro-v2"
14877
15311
  },
@@ -15007,12 +15441,24 @@ var require_generated_model_routing = __commonJS({
15007
15441
  "Meta-Llama-3.3-70B-Instruct-Turbo": {
15008
15442
  "togetherai": "meta-llama/Meta-Llama-3.3-70B-Instruct-Turbo"
15009
15443
  },
15444
+ "mimo-v2-5": {
15445
+ "vercel": "xiaomi/mimo-v2.5"
15446
+ },
15447
+ "mimo-v2-5-pro": {
15448
+ "vercel": "xiaomi/mimo-v2.5-pro"
15449
+ },
15010
15450
  "mimo-v2-flash": {
15011
15451
  "vercel": "xiaomi/mimo-v2-flash"
15012
15452
  },
15013
15453
  "mimo-v2-pro": {
15014
15454
  "vercel": "xiaomi/mimo-v2-pro"
15015
15455
  },
15456
+ "mimo-v2.5": {
15457
+ "vercel": "xiaomi/mimo-v2.5"
15458
+ },
15459
+ "mimo-v2.5-pro": {
15460
+ "vercel": "xiaomi/mimo-v2.5-pro"
15461
+ },
15016
15462
  "minimax-m2": {
15017
15463
  "vercel": "minimax/minimax-m2"
15018
15464
  },
@@ -15184,6 +15630,9 @@ var require_generated_model_routing = __commonJS({
15184
15630
  "qwen3-5-plus": {
15185
15631
  "vercel": "alibaba/qwen3.5-plus"
15186
15632
  },
15633
+ "qwen3-6-27b": {
15634
+ "vercel": "alibaba/qwen3.6-27b"
15635
+ },
15187
15636
  "qwen3-6-plus": {
15188
15637
  "vercel": "alibaba/qwen3.6-plus"
15189
15638
  },
@@ -15232,6 +15681,9 @@ var require_generated_model_routing = __commonJS({
15232
15681
  "qwen3-vl": {
15233
15682
  "vercel": "alibaba/qwen3-vl-thinking"
15234
15683
  },
15684
+ "qwen3-vl-235b-a22b-instruct": {
15685
+ "vercel": "alibaba/qwen3-vl-235b-a22b-instruct"
15686
+ },
15235
15687
  "qwen3-vl-instruct": {
15236
15688
  "vercel": "alibaba/qwen3-vl-instruct"
15237
15689
  },
@@ -15262,6 +15714,9 @@ var require_generated_model_routing = __commonJS({
15262
15714
  "qwen3.5-plus": {
15263
15715
  "vercel": "alibaba/qwen3.5-plus"
15264
15716
  },
15717
+ "qwen3.6-27b": {
15718
+ "vercel": "alibaba/qwen3.6-27b"
15719
+ },
15265
15720
  "qwen3.6-plus": {
15266
15721
  "vercel": "alibaba/qwen3.6-plus"
15267
15722
  },
@@ -15416,6 +15871,7 @@ var require_generated_model_routing = __commonJS({
15416
15871
  "qwen3-32b": { providers: [{ provider: "vercel", weight: 100 }] },
15417
15872
  "qwen3-5-flash": { providers: [{ provider: "vercel", weight: 100 }] },
15418
15873
  "qwen3-5-plus": { providers: [{ provider: "vercel", weight: 100 }] },
15874
+ "qwen3-6-27b": { providers: [{ provider: "vercel", weight: 100 }] },
15419
15875
  "qwen3-6-plus": { providers: [{ provider: "vercel", weight: 100 }] },
15420
15876
  "qwen3-coder": { providers: [{ provider: "vercel", weight: 100 }] },
15421
15877
  "qwen3-coder-30b-a3b": { providers: [{ provider: "vercel", weight: 100 }] },
@@ -15428,6 +15884,7 @@ var require_generated_model_routing = __commonJS({
15428
15884
  "qwen3-next-80b-a3b": { providers: [{ provider: "vercel", weight: 100 }] },
15429
15885
  "qwen3-next-80b-a3b-instruct": { providers: [{ provider: "vercel", weight: 100 }] },
15430
15886
  "qwen3-vl": { providers: [{ provider: "vercel", weight: 100 }] },
15887
+ "qwen3-vl-235b-a22b-instruct": { providers: [{ provider: "vercel", weight: 100 }] },
15431
15888
  "qwen3-vl-instruct": { providers: [{ provider: "vercel", weight: 100 }] }
15432
15889
  };
15433
15890
  function getProvidersForModel(modelId) {
@@ -20517,7 +20974,9 @@ var require_flow_step_types = __commonJS({
20517
20974
  "wait-until",
20518
20975
  "paginate-api",
20519
20976
  "store-vector",
20520
- "execute-agent"
20977
+ "execute-agent",
20978
+ "store-asset",
20979
+ "generate-pdf"
20521
20980
  ];
20522
20981
  exports.FLOW_STEP_TYPES = ["prompt", ...exports.CONTEXT_STEP_TYPES];
20523
20982
  function isContextStepType(type) {
@@ -20560,7 +21019,7 @@ var require_fpo_schema = __commonJS({
20560
21019
  "../shared/dist/product-generation/fpo-schema.js"(exports) {
20561
21020
  "use strict";
20562
21021
  Object.defineProperty(exports, "__esModule", { value: true });
20563
- exports.fullProductObjectSchema = exports.surfaceSchema = exports.deployInstructionsSchema = exports.deployInstructionsSectionSchema = exports.toolSchema = exports.capabilitySchema = exports.agentDefinitionSchema = exports.flowDefinitionSchema = exports.FULL_PRODUCT_OBJECT_VERSION = exports.FULL_PRODUCT_OBJECT_VERSION_1_1 = exports.FULL_PRODUCT_OBJECT_VERSION_1_0 = void 0;
21022
+ exports.fullProductObjectSchema = exports.productSecretSchema = exports.scheduleSchema = exports.recordSchema = exports.surfaceSchema = exports.deployInstructionsSchema = exports.deployInstructionsSectionSchema = exports.toolSchema = exports.capabilitySchema = exports.agentDefinitionSchema = exports.flowDefinitionSchema = exports.FULL_PRODUCT_OBJECT_VERSION = exports.FULL_PRODUCT_OBJECT_VERSION_1_1 = exports.FULL_PRODUCT_OBJECT_VERSION_1_0 = void 0;
20564
21023
  var zod_1 = require_zod();
20565
21024
  var flow_step_types_1 = require_flow_step_types();
20566
21025
  exports.FULL_PRODUCT_OBJECT_VERSION_1_0 = "1.0";
@@ -20570,7 +21029,9 @@ var require_fpo_schema = __commonJS({
20570
21029
  var flowStepSchema = zod_1.z.object({
20571
21030
  type: zod_1.z.string().refine((t) => flow_step_types_1.FLOW_STEP_TYPES.includes(t), { message: "Invalid flow step type" }),
20572
21031
  name: zod_1.z.string().min(1, "Step name is required"),
20573
- config: zod_1.z.record(zod_1.z.string(), zod_1.z.any()).default({})
21032
+ config: zod_1.z.record(zod_1.z.string(), zod_1.z.any()).default({}),
21033
+ order: zod_1.z.number().int().nonnegative().optional(),
21034
+ enabled: zod_1.z.boolean().optional()
20574
21035
  });
20575
21036
  var transitionSchema = zod_1.z.object({
20576
21037
  from: zod_1.z.number().int().nonnegative(),
@@ -20593,7 +21054,10 @@ var require_fpo_schema = __commonJS({
20593
21054
  toolPool: zod_1.z.array(zod_1.z.string()).optional(),
20594
21055
  defaultMaxTurns: zod_1.z.number().int().positive().optional(),
20595
21056
  maxSpawnsPerRun: zod_1.z.number().int().positive().optional(),
20596
- allowNesting: zod_1.z.boolean().optional()
21057
+ allowNesting: zod_1.z.boolean().optional(),
21058
+ defaultModel: zod_1.z.string().optional(),
21059
+ maxTurnsLimit: zod_1.z.number().int().positive().optional(),
21060
+ defaultTimeoutMs: zod_1.z.number().int().positive().optional()
20597
21061
  });
20598
21062
  var capabilityToolRefSchema = zod_1.z.object({
20599
21063
  capabilityId: zod_1.z.string().min(1),
@@ -20601,18 +21065,139 @@ var require_fpo_schema = __commonJS({
20601
21065
  description: zod_1.z.string().optional(),
20602
21066
  parametersSchema: zod_1.z.record(zod_1.z.string(), zod_1.z.any()).optional()
20603
21067
  });
21068
+ var agentLoopConfigSchema = zod_1.z.object({
21069
+ maxTurns: zod_1.z.number().int().min(1).max(100).optional(),
21070
+ maxCost: zod_1.z.number().nonnegative().optional(),
21071
+ enableReflection: zod_1.z.boolean().optional(),
21072
+ reflectionInterval: zod_1.z.number().int().min(1).max(50).optional()
21073
+ });
21074
+ var agentReasoningConfigSchema = zod_1.z.object({
21075
+ enabled: zod_1.z.boolean().optional(),
21076
+ reasoningEffort: zod_1.z.enum(["minimal", "low", "medium", "high", "xhigh"]).optional(),
21077
+ reasoningSummary: zod_1.z.enum(["auto", "detailed"]).optional(),
21078
+ budgetTokens: zod_1.z.number().int().min(1e3).max(1e5).optional(),
21079
+ thinkingBudget: zod_1.z.number().int().min(1024).max(65536).optional(),
21080
+ includeThoughts: zod_1.z.boolean().optional()
21081
+ });
21082
+ var agentVoiceConfigSchema = zod_1.z.object({
21083
+ enabled: zod_1.z.boolean().optional(),
21084
+ provider: zod_1.z.string().optional(),
21085
+ interruptionMode: zod_1.z.enum(["none", "cancel", "barge-in"]).optional(),
21086
+ elevenLabs: zod_1.z.object({
21087
+ voiceId: zod_1.z.string().optional(),
21088
+ modelId: zod_1.z.string().optional(),
21089
+ stability: zod_1.z.number().min(0).max(1).optional(),
21090
+ similarity: zod_1.z.number().min(0).max(1).optional()
21091
+ }).optional()
21092
+ });
21093
+ var agentErrorHandlingSchema = zod_1.z.object({
21094
+ onError: zod_1.z.enum(["fail", "continue", "fallback"]).optional(),
21095
+ fallbacks: zod_1.z.array(zod_1.z.object({
21096
+ type: zod_1.z.enum(["retry", "model"]),
21097
+ model: zod_1.z.string().optional(),
21098
+ temperature: zod_1.z.number().min(0).max(2).optional(),
21099
+ maxTokens: zod_1.z.number().int().positive().optional(),
21100
+ delay: zod_1.z.number().min(0).max(6e4).optional()
21101
+ })).optional()
21102
+ });
21103
+ var agentArtifactsConfigSchema = zod_1.z.object({
21104
+ enabled: zod_1.z.literal(true),
21105
+ types: zod_1.z.array(zod_1.z.enum(["markdown", "component"])).min(1)
21106
+ });
21107
+ var agentMcpServerSchema = zod_1.z.object({
21108
+ id: zod_1.z.string().min(1),
21109
+ name: zod_1.z.string().optional(),
21110
+ url: zod_1.z.string().min(1),
21111
+ auth: zod_1.z.object({
21112
+ type: zod_1.z.enum(["api_key", "bearer", "basic", "custom_header", "none"]),
21113
+ headerName: zod_1.z.string().optional(),
21114
+ token: zod_1.z.string().optional(),
21115
+ username: zod_1.z.string().optional(),
21116
+ password: zod_1.z.string().optional()
21117
+ }).optional(),
21118
+ allowedTools: zod_1.z.array(zod_1.z.string()).optional(),
21119
+ timeout: zod_1.z.number().positive().optional(),
21120
+ transport: zod_1.z.enum(["streamable_http", "rest"]).optional(),
21121
+ enabled: zod_1.z.boolean().optional()
21122
+ });
21123
+ var agentToolsConfigSchema = zod_1.z.object({
21124
+ toolIds: zod_1.z.array(zod_1.z.string()).optional(),
21125
+ toolConfigs: zod_1.z.record(zod_1.z.string(), zod_1.z.record(zod_1.z.string(), zod_1.z.any())).optional(),
21126
+ runtimeTools: zod_1.z.array(zod_1.z.object({
21127
+ name: zod_1.z.string().min(1),
21128
+ description: zod_1.z.string().optional(),
21129
+ parametersSchema: zod_1.z.record(zod_1.z.string(), zod_1.z.any()).optional(),
21130
+ config: zod_1.z.record(zod_1.z.string(), zod_1.z.any())
21131
+ })).optional(),
21132
+ mcpServers: zod_1.z.array(agentMcpServerSchema).optional(),
21133
+ maxToolCalls: zod_1.z.number().int().min(1).max(100).optional(),
21134
+ toolCallStrategy: zod_1.z.enum(["auto", "required", "none"]).optional(),
21135
+ parallelCalls: zod_1.z.boolean().optional(),
21136
+ approval: zod_1.z.object({
21137
+ require: zod_1.z.union([zod_1.z.array(zod_1.z.string()), zod_1.z.boolean()]),
21138
+ timeout: zod_1.z.number().positive().optional()
21139
+ }).optional(),
21140
+ perToolLimits: zod_1.z.record(zod_1.z.string(), zod_1.z.object({
21141
+ maxCalls: zod_1.z.number().int().positive().optional(),
21142
+ required: zod_1.z.boolean().optional()
21143
+ })).optional(),
21144
+ subagentConfig: agentSubagentConfigSchema.optional(),
21145
+ codeModeConfig: zod_1.z.object({
21146
+ toolPool: zod_1.z.array(zod_1.z.string()).optional(),
21147
+ description: zod_1.z.string().optional(),
21148
+ timeoutMs: zod_1.z.number().int().positive().optional()
21149
+ }).optional()
21150
+ });
21151
+ var agentExternalConfigSchema = zod_1.z.object({
21152
+ endpoint: zod_1.z.string().url(),
21153
+ auth: zod_1.z.record(zod_1.z.string(), zod_1.z.any()).optional(),
21154
+ timeout: zod_1.z.number().positive().optional(),
21155
+ retryCount: zod_1.z.number().int().nonnegative().optional(),
21156
+ skillOrchestration: zod_1.z.boolean().optional()
21157
+ });
21158
+ var agentClaudeManagedConfigSchema = zod_1.z.object({
21159
+ anthropicAgentId: zod_1.z.string().min(1),
21160
+ anthropicAgentVersion: zod_1.z.string().optional(),
21161
+ model: zod_1.z.string().optional(),
21162
+ systemPrompt: zod_1.z.string().optional(),
21163
+ toolPermissions: zod_1.z.record(zod_1.z.string(), zod_1.z.any()).optional(),
21164
+ anthropicEnvironmentId: zod_1.z.string().optional(),
21165
+ timeoutMs: zod_1.z.number().int().positive().optional()
21166
+ });
20604
21167
  exports.agentDefinitionSchema = zod_1.z.object({
20605
21168
  name: zod_1.z.string().min(1),
20606
21169
  description: zod_1.z.string().min(1),
20607
21170
  model: zod_1.z.string().min(1, "Agent model is required"),
20608
21171
  systemPrompt: zod_1.z.string().optional(),
21172
+ icon: zod_1.z.string().max(50).optional(),
21173
+ agentType: zod_1.z.enum(["runtype", "external", "claude_managed"]).optional(),
21174
+ status: zod_1.z.enum(["draft", "active", "paused", "archived"]).optional(),
21175
+ loggingPolicy: zod_1.z.enum(["default", "on", "off"]).optional(),
21176
+ // Sampling parameters
21177
+ temperature: zod_1.z.number().min(0).max(2).optional(),
21178
+ topP: zod_1.z.number().min(0).max(1).optional(),
21179
+ topK: zod_1.z.number().int().min(1).max(500).optional(),
21180
+ frequencyPenalty: zod_1.z.number().min(-2).max(2).optional(),
21181
+ presencePenalty: zod_1.z.number().min(-2).max(2).optional(),
21182
+ seed: zod_1.z.number().int().optional(),
21183
+ // Tools — legacy simple array, or the full config object
20609
21184
  tools: zod_1.z.array(agentToolSchema).optional(),
21185
+ toolsConfig: agentToolsConfigSchema.optional(),
21186
+ // Advanced config
21187
+ loopConfig: agentLoopConfigSchema.optional(),
21188
+ reasoning: zod_1.z.union([zod_1.z.boolean(), agentReasoningConfigSchema]).optional(),
21189
+ voice: agentVoiceConfigSchema.optional(),
21190
+ errorHandling: agentErrorHandlingSchema.optional(),
21191
+ artifacts: agentArtifactsConfigSchema.optional(),
20610
21192
  advisor: zod_1.z.object({
20611
21193
  model: zod_1.z.string(),
20612
21194
  systemPrompt: zod_1.z.string().optional()
20613
21195
  }).optional(),
20614
21196
  subagentConfig: agentSubagentConfigSchema.optional(),
20615
21197
  capabilityToolRefs: zod_1.z.array(capabilityToolRefSchema).optional(),
21198
+ // External / managed agent configs
21199
+ externalConfig: agentExternalConfigSchema.optional(),
21200
+ claudeManagedConfig: agentClaudeManagedConfigSchema.optional(),
20616
21201
  createPolicy: createPolicySchema
20617
21202
  });
20618
21203
  exports.capabilitySchema = zod_1.z.object({
@@ -20703,6 +21288,49 @@ var require_fpo_schema = __commonJS({
20703
21288
  status: zod_1.z.enum(["draft", "active", "paused"]).optional(),
20704
21289
  environment: zod_1.z.enum(["production", "development"]).optional()
20705
21290
  });
21291
+ exports.recordSchema = zod_1.z.object({
21292
+ id: zod_1.z.string().min(1),
21293
+ type: zod_1.z.string().min(1),
21294
+ name: zod_1.z.string().optional(),
21295
+ metadata: zod_1.z.record(zod_1.z.string(), zod_1.z.any()).optional(),
21296
+ metadataSchema: zod_1.z.record(zod_1.z.string(), zod_1.z.any()).optional(),
21297
+ messages: zod_1.z.array(zod_1.z.object({
21298
+ role: zod_1.z.string().min(1),
21299
+ content: zod_1.z.string()
21300
+ })).optional(),
21301
+ createPolicy: createPolicySchema
21302
+ });
21303
+ exports.scheduleSchema = zod_1.z.object({
21304
+ id: zod_1.z.string().min(1),
21305
+ name: zod_1.z.string().optional(),
21306
+ capabilityId: zod_1.z.string().min(1),
21307
+ triggerType: zod_1.z.enum(["cron", "one_time"]),
21308
+ cron: zod_1.z.string().optional(),
21309
+ timezone: zod_1.z.string().optional(),
21310
+ runAt: zod_1.z.string().datetime({ offset: true }).optional(),
21311
+ recordType: zod_1.z.string().optional(),
21312
+ recordFilter: zod_1.z.record(zod_1.z.string(), zod_1.z.any()).optional(),
21313
+ messages: zod_1.z.array(zod_1.z.object({
21314
+ role: zod_1.z.string().min(1),
21315
+ content: zod_1.z.string()
21316
+ })).optional(),
21317
+ executionOptions: zod_1.z.record(zod_1.z.string(), zod_1.z.any()).optional(),
21318
+ enabled: zod_1.z.boolean().optional(),
21319
+ createPolicy: createPolicySchema
21320
+ }).refine((s) => {
21321
+ if (s.triggerType === "cron" && !s.cron)
21322
+ return false;
21323
+ if (s.triggerType === "one_time" && !s.runAt)
21324
+ return false;
21325
+ return true;
21326
+ }, { message: "Cron schedules require `cron` field; one_time schedules require `runAt` field" });
21327
+ exports.productSecretSchema = zod_1.z.object({
21328
+ id: zod_1.z.string().min(1),
21329
+ key: zod_1.z.string().min(1),
21330
+ description: zod_1.z.string().optional(),
21331
+ required: zod_1.z.boolean().optional(),
21332
+ placeholder: zod_1.z.string().optional()
21333
+ });
20706
21334
  var metaSchema = zod_1.z.object({
20707
21335
  schemaVersion: zod_1.z.string().min(1),
20708
21336
  catalogVersion: zod_1.z.string().min(1),
@@ -20721,6 +21349,9 @@ var require_fpo_schema = __commonJS({
20721
21349
  capabilities: zod_1.z.array(exports.capabilitySchema).max(50),
20722
21350
  tools: zod_1.z.array(exports.toolSchema).max(100),
20723
21351
  surfaces: zod_1.z.array(exports.surfaceSchema).max(50),
21352
+ records: zod_1.z.array(exports.recordSchema).max(500).optional(),
21353
+ schedules: zod_1.z.array(exports.scheduleSchema).max(50).optional(),
21354
+ secrets: zod_1.z.array(exports.productSecretSchema).max(50).optional(),
20724
21355
  _meta: metaSchema
20725
21356
  }).superRefine((fpo, ctx) => {
20726
21357
  const capIds = /* @__PURE__ */ new Set();
@@ -20757,6 +21388,45 @@ var require_fpo_schema = __commonJS({
20757
21388
  }
20758
21389
  surfaceIds.add(surface.id);
20759
21390
  }
21391
+ if (fpo.records) {
21392
+ const recordIds = /* @__PURE__ */ new Set();
21393
+ for (const [i, record] of fpo.records.entries()) {
21394
+ if (recordIds.has(record.id)) {
21395
+ ctx.addIssue({
21396
+ code: "custom",
21397
+ message: `Duplicate record id: ${record.id}`,
21398
+ path: ["records", i, "id"]
21399
+ });
21400
+ }
21401
+ recordIds.add(record.id);
21402
+ }
21403
+ }
21404
+ if (fpo.schedules) {
21405
+ const scheduleIds = /* @__PURE__ */ new Set();
21406
+ for (const [i, schedule] of fpo.schedules.entries()) {
21407
+ if (scheduleIds.has(schedule.id)) {
21408
+ ctx.addIssue({
21409
+ code: "custom",
21410
+ message: `Duplicate schedule id: ${schedule.id}`,
21411
+ path: ["schedules", i, "id"]
21412
+ });
21413
+ }
21414
+ scheduleIds.add(schedule.id);
21415
+ }
21416
+ }
21417
+ if (fpo.secrets) {
21418
+ const secretIds = /* @__PURE__ */ new Set();
21419
+ for (const [i, secret] of fpo.secrets.entries()) {
21420
+ if (secretIds.has(secret.id)) {
21421
+ ctx.addIssue({
21422
+ code: "custom",
21423
+ message: `Duplicate secret id: ${secret.id}`,
21424
+ path: ["secrets", i, "id"]
21425
+ });
21426
+ }
21427
+ secretIds.add(secret.id);
21428
+ }
21429
+ }
20760
21430
  });
20761
21431
  }
20762
21432
  });
@@ -21177,6 +21847,37 @@ var require_fpo_validator = __commonJS({
21177
21847
  }
21178
21848
  surfaceIds.add(surface.id);
21179
21849
  }
21850
+ if (fpo.records) {
21851
+ const recordIds = /* @__PURE__ */ new Set();
21852
+ for (const [i, record] of fpo.records.entries()) {
21853
+ if (recordIds.has(record.id)) {
21854
+ result.errors.push((0, types_1.createIssue)("error", "DUPLICATE_RECORD_ID", `Duplicate record id: "${record.id}"`, `records[${i}].id`));
21855
+ }
21856
+ recordIds.add(record.id);
21857
+ }
21858
+ }
21859
+ const capIdSet = new Set(fpo.capabilities.map((c) => c.id));
21860
+ if (fpo.schedules) {
21861
+ const scheduleIds = /* @__PURE__ */ new Set();
21862
+ for (const [i, schedule] of fpo.schedules.entries()) {
21863
+ if (scheduleIds.has(schedule.id)) {
21864
+ result.errors.push((0, types_1.createIssue)("error", "DUPLICATE_SCHEDULE_ID", `Duplicate schedule id: "${schedule.id}"`, `schedules[${i}].id`));
21865
+ }
21866
+ scheduleIds.add(schedule.id);
21867
+ if (!capIdSet.has(schedule.capabilityId)) {
21868
+ result.errors.push((0, types_1.createIssue)("error", "SCHEDULE_CAPABILITY_NOT_FOUND", `Schedule "${schedule.id}" references capability "${schedule.capabilityId}" which does not exist`, `schedules[${i}].capabilityId`));
21869
+ }
21870
+ }
21871
+ }
21872
+ if (fpo.secrets) {
21873
+ const secretIds = /* @__PURE__ */ new Set();
21874
+ for (const [i, secret] of fpo.secrets.entries()) {
21875
+ if (secretIds.has(secret.id)) {
21876
+ result.errors.push((0, types_1.createIssue)("error", "DUPLICATE_SECRET_ID", `Duplicate secret id: "${secret.id}"`, `secrets[${i}].id`));
21877
+ }
21878
+ secretIds.add(secret.id);
21879
+ }
21880
+ }
21180
21881
  const toolIds = new Set(fpo.tools.map((t) => t.id));
21181
21882
  const capResults = fpo.capabilities.map((cap, i) => (0, capability_validator_1.validateCapability)(cap, i, { toolIds }));
21182
21883
  const toolResults = fpo.tools.map((tool, i) => (0, tool_validator_1.validateToolDefinition)(tool, i));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@runtypelabs/cli",
3
- "version": "2.11.3",
3
+ "version": "2.11.5",
4
4
  "description": "Command-line interface for Runtype AI platform",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -22,7 +22,7 @@
22
22
  "micromatch": "^4.0.8",
23
23
  "yaml": "^2.8.3",
24
24
  "@runtypelabs/ink-components": "0.3.1",
25
- "@runtypelabs/sdk": "1.18.0",
25
+ "@runtypelabs/sdk": "1.18.1",
26
26
  "@runtypelabs/terminal-animations": "0.2.0"
27
27
  },
28
28
  "devDependencies": {