@runtypelabs/cli 2.11.3 → 2.11.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +656 -6
  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/";
@@ -13591,6 +13594,373 @@ var require_builtin_tools_registry = __commonJS({
13591
13594
  executionHint: "platform",
13592
13595
  requiresApiKey: false,
13593
13596
  platformKeySupport: false
13597
+ },
13598
+ // -----------------------------------------------------------------------
13599
+ // Sandbox tools — Tier 1 (anonymous): sandbox provisioned automatically,
13600
+ // model never sees sandboxId. Container reused across calls in one execution.
13601
+ // -----------------------------------------------------------------------
13602
+ {
13603
+ id: "sandbox:exec",
13604
+ name: "Sandbox Exec",
13605
+ 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.",
13606
+ category: exports.BuiltInToolCategory.SANDBOX,
13607
+ toolGroup: exports.BuiltInToolGroup.SANDBOX_USE,
13608
+ providers: [exports.BuiltInToolProvider.MULTI],
13609
+ parametersSchema: {
13610
+ type: "object",
13611
+ properties: {
13612
+ command: {
13613
+ type: "string",
13614
+ description: "Shell command to execute (runs in bash)"
13615
+ },
13616
+ timeout: {
13617
+ type: "number",
13618
+ description: "Timeout in seconds (default 30, max 300)"
13619
+ }
13620
+ },
13621
+ required: ["command"]
13622
+ },
13623
+ executionHint: "platform",
13624
+ requiresApiKey: false,
13625
+ platformKeySupport: true
13626
+ },
13627
+ {
13628
+ id: "sandbox:run_code",
13629
+ name: "Sandbox Run Code",
13630
+ 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.",
13631
+ category: exports.BuiltInToolCategory.SANDBOX,
13632
+ toolGroup: exports.BuiltInToolGroup.SANDBOX_USE,
13633
+ providers: [exports.BuiltInToolProvider.MULTI],
13634
+ parametersSchema: {
13635
+ type: "object",
13636
+ properties: {
13637
+ code: {
13638
+ type: "string",
13639
+ description: "Code to execute"
13640
+ },
13641
+ language: {
13642
+ type: "string",
13643
+ enum: ["javascript", "typescript", "python"],
13644
+ description: "Programming language (default: javascript)"
13645
+ }
13646
+ },
13647
+ required: ["code"]
13648
+ },
13649
+ executionHint: "platform",
13650
+ requiresApiKey: false,
13651
+ platformKeySupport: true
13652
+ },
13653
+ {
13654
+ id: "sandbox:write_file",
13655
+ name: "Sandbox Write File",
13656
+ description: "Write a file to the sandbox filesystem. Creates parent directories automatically. Use sandbox:exec to run files after writing them.",
13657
+ category: exports.BuiltInToolCategory.SANDBOX,
13658
+ toolGroup: exports.BuiltInToolGroup.SANDBOX_USE,
13659
+ providers: [exports.BuiltInToolProvider.MULTI],
13660
+ parametersSchema: {
13661
+ type: "object",
13662
+ properties: {
13663
+ path: {
13664
+ type: "string",
13665
+ description: "File path in the sandbox (e.g., /home/user/app/index.js)"
13666
+ },
13667
+ content: {
13668
+ type: "string",
13669
+ description: "File content to write"
13670
+ }
13671
+ },
13672
+ required: ["path", "content"]
13673
+ },
13674
+ executionHint: "platform",
13675
+ requiresApiKey: false,
13676
+ platformKeySupport: true
13677
+ },
13678
+ {
13679
+ id: "sandbox:read_file",
13680
+ name: "Sandbox Read File",
13681
+ description: "Read a file from the sandbox filesystem. Returns the file content as a string.",
13682
+ category: exports.BuiltInToolCategory.SANDBOX,
13683
+ toolGroup: exports.BuiltInToolGroup.SANDBOX_USE,
13684
+ providers: [exports.BuiltInToolProvider.MULTI],
13685
+ parametersSchema: {
13686
+ type: "object",
13687
+ properties: {
13688
+ path: {
13689
+ type: "string",
13690
+ description: "File path to read"
13691
+ }
13692
+ },
13693
+ required: ["path"]
13694
+ },
13695
+ executionHint: "platform",
13696
+ requiresApiKey: false,
13697
+ platformKeySupport: true
13698
+ },
13699
+ {
13700
+ id: "sandbox:expose_port",
13701
+ name: "Sandbox Expose Port",
13702
+ description: "Expose a port from the sandbox and get a public preview URL. Use after starting a server process with sandbox:exec.",
13703
+ category: exports.BuiltInToolCategory.SANDBOX,
13704
+ toolGroup: exports.BuiltInToolGroup.SANDBOX_USE,
13705
+ providers: [exports.BuiltInToolProvider.MULTI],
13706
+ parametersSchema: {
13707
+ type: "object",
13708
+ properties: {
13709
+ port: {
13710
+ type: "number",
13711
+ description: "Port number to expose (must not be 3000, which is reserved)"
13712
+ },
13713
+ name: {
13714
+ type: "string",
13715
+ description: "Optional name for the preview URL"
13716
+ }
13717
+ },
13718
+ required: ["port"]
13719
+ },
13720
+ executionHint: "platform",
13721
+ requiresApiKey: false,
13722
+ platformKeySupport: true
13723
+ },
13724
+ {
13725
+ id: "sandbox:git_checkout",
13726
+ name: "Sandbox Git Checkout",
13727
+ description: "Clone a git repository into the sandbox. The repo is cloned into the current working directory.",
13728
+ category: exports.BuiltInToolCategory.SANDBOX,
13729
+ toolGroup: exports.BuiltInToolGroup.SANDBOX_USE,
13730
+ providers: [exports.BuiltInToolProvider.MULTI],
13731
+ parametersSchema: {
13732
+ type: "object",
13733
+ properties: {
13734
+ repo: {
13735
+ type: "string",
13736
+ description: "Git repository URL to clone"
13737
+ },
13738
+ branch: {
13739
+ type: "string",
13740
+ description: "Branch to checkout (default: main/master)"
13741
+ }
13742
+ },
13743
+ required: ["repo"]
13744
+ },
13745
+ executionHint: "platform",
13746
+ requiresApiKey: false,
13747
+ platformKeySupport: true
13748
+ },
13749
+ // -----------------------------------------------------------------------
13750
+ // Sandbox tools — Tier 2 (session): model manages sandboxId explicitly.
13751
+ // Allows multiple sandboxes, persistent instances, and cross-execution reuse.
13752
+ // -----------------------------------------------------------------------
13753
+ {
13754
+ id: "sandbox:create",
13755
+ name: "Sandbox Create",
13756
+ description: "Create a new sandbox instance. Returns a sandboxId to pass to session tools. If no sandboxId is provided, a random one is generated.",
13757
+ category: exports.BuiltInToolCategory.SANDBOX,
13758
+ toolGroup: exports.BuiltInToolGroup.SANDBOX_SESSION,
13759
+ providers: [exports.BuiltInToolProvider.MULTI],
13760
+ parametersSchema: {
13761
+ type: "object",
13762
+ properties: {
13763
+ sandboxId: {
13764
+ type: "string",
13765
+ description: "Optional custom sandbox ID. If omitted, a random ID is generated."
13766
+ }
13767
+ }
13768
+ },
13769
+ executionHint: "platform",
13770
+ requiresApiKey: false,
13771
+ platformKeySupport: true
13772
+ },
13773
+ {
13774
+ id: "sandbox:session_exec",
13775
+ name: "Sandbox Session Exec",
13776
+ description: "Run a shell command in a specific sandbox identified by sandboxId.",
13777
+ category: exports.BuiltInToolCategory.SANDBOX,
13778
+ toolGroup: exports.BuiltInToolGroup.SANDBOX_SESSION,
13779
+ providers: [exports.BuiltInToolProvider.MULTI],
13780
+ parametersSchema: {
13781
+ type: "object",
13782
+ properties: {
13783
+ sandboxId: {
13784
+ type: "string",
13785
+ description: "The sandbox ID returned by sandbox:create"
13786
+ },
13787
+ command: {
13788
+ type: "string",
13789
+ description: "Shell command to execute"
13790
+ },
13791
+ timeout: {
13792
+ type: "number",
13793
+ description: "Timeout in seconds (default 30, max 300)"
13794
+ }
13795
+ },
13796
+ required: ["sandboxId", "command"]
13797
+ },
13798
+ executionHint: "platform",
13799
+ requiresApiKey: false,
13800
+ platformKeySupport: true
13801
+ },
13802
+ {
13803
+ id: "sandbox:session_run_code",
13804
+ name: "Sandbox Session Run Code",
13805
+ description: "Run a code snippet in a specific sandbox identified by sandboxId.",
13806
+ category: exports.BuiltInToolCategory.SANDBOX,
13807
+ toolGroup: exports.BuiltInToolGroup.SANDBOX_SESSION,
13808
+ providers: [exports.BuiltInToolProvider.MULTI],
13809
+ parametersSchema: {
13810
+ type: "object",
13811
+ properties: {
13812
+ sandboxId: {
13813
+ type: "string",
13814
+ description: "The sandbox ID returned by sandbox:create"
13815
+ },
13816
+ code: {
13817
+ type: "string",
13818
+ description: "Code to execute"
13819
+ },
13820
+ language: {
13821
+ type: "string",
13822
+ enum: ["javascript", "typescript", "python"],
13823
+ description: "Programming language (default: javascript)"
13824
+ }
13825
+ },
13826
+ required: ["sandboxId", "code"]
13827
+ },
13828
+ executionHint: "platform",
13829
+ requiresApiKey: false,
13830
+ platformKeySupport: true
13831
+ },
13832
+ {
13833
+ id: "sandbox:session_write_file",
13834
+ name: "Sandbox Session Write File",
13835
+ description: "Write a file to a specific sandbox identified by sandboxId.",
13836
+ category: exports.BuiltInToolCategory.SANDBOX,
13837
+ toolGroup: exports.BuiltInToolGroup.SANDBOX_SESSION,
13838
+ providers: [exports.BuiltInToolProvider.MULTI],
13839
+ parametersSchema: {
13840
+ type: "object",
13841
+ properties: {
13842
+ sandboxId: {
13843
+ type: "string",
13844
+ description: "The sandbox ID returned by sandbox:create"
13845
+ },
13846
+ path: {
13847
+ type: "string",
13848
+ description: "File path in the sandbox"
13849
+ },
13850
+ content: {
13851
+ type: "string",
13852
+ description: "File content to write"
13853
+ }
13854
+ },
13855
+ required: ["sandboxId", "path", "content"]
13856
+ },
13857
+ executionHint: "platform",
13858
+ requiresApiKey: false,
13859
+ platformKeySupport: true
13860
+ },
13861
+ {
13862
+ id: "sandbox:session_read_file",
13863
+ name: "Sandbox Session Read File",
13864
+ description: "Read a file from a specific sandbox identified by sandboxId.",
13865
+ category: exports.BuiltInToolCategory.SANDBOX,
13866
+ toolGroup: exports.BuiltInToolGroup.SANDBOX_SESSION,
13867
+ providers: [exports.BuiltInToolProvider.MULTI],
13868
+ parametersSchema: {
13869
+ type: "object",
13870
+ properties: {
13871
+ sandboxId: {
13872
+ type: "string",
13873
+ description: "The sandbox ID returned by sandbox:create"
13874
+ },
13875
+ path: {
13876
+ type: "string",
13877
+ description: "File path to read"
13878
+ }
13879
+ },
13880
+ required: ["sandboxId", "path"]
13881
+ },
13882
+ executionHint: "platform",
13883
+ requiresApiKey: false,
13884
+ platformKeySupport: true
13885
+ },
13886
+ {
13887
+ id: "sandbox:session_expose_port",
13888
+ name: "Sandbox Session Expose Port",
13889
+ description: "Expose a port from a specific sandbox and get a public preview URL.",
13890
+ category: exports.BuiltInToolCategory.SANDBOX,
13891
+ toolGroup: exports.BuiltInToolGroup.SANDBOX_SESSION,
13892
+ providers: [exports.BuiltInToolProvider.MULTI],
13893
+ parametersSchema: {
13894
+ type: "object",
13895
+ properties: {
13896
+ sandboxId: {
13897
+ type: "string",
13898
+ description: "The sandbox ID returned by sandbox:create"
13899
+ },
13900
+ port: {
13901
+ type: "number",
13902
+ description: "Port number to expose"
13903
+ },
13904
+ name: {
13905
+ type: "string",
13906
+ description: "Optional name for the preview URL"
13907
+ }
13908
+ },
13909
+ required: ["sandboxId", "port"]
13910
+ },
13911
+ executionHint: "platform",
13912
+ requiresApiKey: false,
13913
+ platformKeySupport: true
13914
+ },
13915
+ {
13916
+ id: "sandbox:session_git_checkout",
13917
+ name: "Sandbox Session Git Checkout",
13918
+ description: "Clone a git repository into a specific sandbox identified by sandboxId.",
13919
+ category: exports.BuiltInToolCategory.SANDBOX,
13920
+ toolGroup: exports.BuiltInToolGroup.SANDBOX_SESSION,
13921
+ providers: [exports.BuiltInToolProvider.MULTI],
13922
+ parametersSchema: {
13923
+ type: "object",
13924
+ properties: {
13925
+ sandboxId: {
13926
+ type: "string",
13927
+ description: "The sandbox ID returned by sandbox:create"
13928
+ },
13929
+ repo: {
13930
+ type: "string",
13931
+ description: "Git repository URL to clone"
13932
+ },
13933
+ branch: {
13934
+ type: "string",
13935
+ description: "Branch to checkout"
13936
+ }
13937
+ },
13938
+ required: ["sandboxId", "repo"]
13939
+ },
13940
+ executionHint: "platform",
13941
+ requiresApiKey: false,
13942
+ platformKeySupport: true
13943
+ },
13944
+ {
13945
+ id: "sandbox:destroy",
13946
+ name: "Sandbox Destroy",
13947
+ description: "Destroy a sandbox instance and release its resources. Only available for session-managed sandboxes.",
13948
+ category: exports.BuiltInToolCategory.SANDBOX,
13949
+ toolGroup: exports.BuiltInToolGroup.SANDBOX_SESSION,
13950
+ providers: [exports.BuiltInToolProvider.MULTI],
13951
+ parametersSchema: {
13952
+ type: "object",
13953
+ properties: {
13954
+ sandboxId: {
13955
+ type: "string",
13956
+ description: "The sandbox ID to destroy"
13957
+ }
13958
+ },
13959
+ required: ["sandboxId"]
13960
+ },
13961
+ executionHint: "platform",
13962
+ requiresApiKey: false,
13963
+ platformKeySupport: true
13594
13964
  }
13595
13965
  ];
13596
13966
  exports.BUILTIN_TOOLS_REGISTRY = [
@@ -13855,6 +14225,7 @@ var require_generated_model_routing = __commonJS({
13855
14225
  "grok-4.20-reasoning-beta": ["vercel"],
13856
14226
  "grok-code-fast-1": ["vercel", "xai"],
13857
14227
  "intellect-3": ["vercel"],
14228
+ "interfaze-beta": ["vercel"],
13858
14229
  "kat-coder-pro-v1": ["vercel"],
13859
14230
  "kat-coder-pro-v2": ["vercel"],
13860
14231
  "kimi-k2": ["vercel"],
@@ -13891,6 +14262,8 @@ var require_generated_model_routing = __commonJS({
13891
14262
  "Meta-Llama-3.3-70B-Instruct-Turbo": ["togetherai"],
13892
14263
  "mimo-v2-flash": ["vercel"],
13893
14264
  "mimo-v2-pro": ["vercel"],
14265
+ "mimo-v2.5": ["vercel"],
14266
+ "mimo-v2.5-pro": ["vercel"],
13894
14267
  "minimax-m2": ["vercel"],
13895
14268
  "minimax-m2.1": ["vercel"],
13896
14269
  "minimax-m2.1-lightning": ["vercel"],
@@ -13941,6 +14314,7 @@ var require_generated_model_routing = __commonJS({
13941
14314
  "qwen3-max-thinking": ["vercel"],
13942
14315
  "qwen3-next-80b-a3b-instruct": ["vercel"],
13943
14316
  "qwen3-next-80b-a3b-thinking": ["vercel"],
14317
+ "qwen3-vl-235b-a22b-instruct": ["vercel"],
13944
14318
  "qwen3-vl-instruct": ["vercel"],
13945
14319
  "qwen3-vl-thinking": ["vercel"],
13946
14320
  "qwen3.5-122b-a10b": ["mixlayer"],
@@ -13951,6 +14325,7 @@ var require_generated_model_routing = __commonJS({
13951
14325
  "qwen3.5-9b": ["mixlayer"],
13952
14326
  "qwen3.5-flash": ["vercel"],
13953
14327
  "qwen3.5-plus": ["vercel"],
14328
+ "qwen3.6-27b": ["vercel"],
13954
14329
  "qwen3.6-plus": ["vercel"],
13955
14330
  "seed-1.6": ["vercel"],
13956
14331
  "seed-1.8": ["vercel"],
@@ -14110,6 +14485,7 @@ var require_generated_model_routing = __commonJS({
14110
14485
  "grok-4-fast-reasoning": ["vercel"],
14111
14486
  "grok-code-fast-1": ["vercel", "xai"],
14112
14487
  "intellect-3": ["vercel"],
14488
+ "interfaze-beta": ["vercel"],
14113
14489
  "kat-coder-pro": ["vercel"],
14114
14490
  "kimi-k2": ["vercel"],
14115
14491
  "kimi-k2-0905": ["vercel"],
@@ -14135,6 +14511,8 @@ var require_generated_model_routing = __commonJS({
14135
14511
  "meta-llama-3-1-70b-instruct-turbo": ["togetherai"],
14136
14512
  "meta-llama-3-1-8b-instruct-turbo": ["togetherai"],
14137
14513
  "meta-llama-3-3-70b-instruct-turbo": ["togetherai"],
14514
+ "mimo-v2-5": ["vercel"],
14515
+ "mimo-v2-5-pro": ["vercel"],
14138
14516
  "mimo-v2-flash": ["vercel"],
14139
14517
  "mimo-v2-pro": ["vercel"],
14140
14518
  "minimax-m2": ["vercel"],
@@ -14183,6 +14561,7 @@ var require_generated_model_routing = __commonJS({
14183
14561
  "qwen3-5-9b": ["mixlayer"],
14184
14562
  "qwen3-5-flash": ["vercel"],
14185
14563
  "qwen3-5-plus": ["vercel"],
14564
+ "qwen3-6-27b": ["vercel"],
14186
14565
  "qwen3-6-plus": ["vercel"],
14187
14566
  "qwen3-coder": ["vercel"],
14188
14567
  "qwen3-coder-30b-a3b": ["vercel"],
@@ -14195,6 +14574,7 @@ var require_generated_model_routing = __commonJS({
14195
14574
  "qwen3-next-80b-a3b": ["vercel"],
14196
14575
  "qwen3-next-80b-a3b-instruct": ["vercel"],
14197
14576
  "qwen3-vl": ["vercel"],
14577
+ "qwen3-vl-235b-a22b-instruct": ["vercel"],
14198
14578
  "qwen3-vl-instruct": ["vercel"],
14199
14579
  "seed-1-6": ["vercel"],
14200
14580
  "seed-1-8": ["vercel"],
@@ -14872,6 +15252,9 @@ var require_generated_model_routing = __commonJS({
14872
15252
  "intellect-3": {
14873
15253
  "vercel": "prime-intellect/intellect-3"
14874
15254
  },
15255
+ "interfaze-beta": {
15256
+ "vercel": "interfaze/interfaze-beta"
15257
+ },
14875
15258
  "kat-coder-pro": {
14876
15259
  "vercel": "kwaipilot/kat-coder-pro-v2"
14877
15260
  },
@@ -15007,12 +15390,24 @@ var require_generated_model_routing = __commonJS({
15007
15390
  "Meta-Llama-3.3-70B-Instruct-Turbo": {
15008
15391
  "togetherai": "meta-llama/Meta-Llama-3.3-70B-Instruct-Turbo"
15009
15392
  },
15393
+ "mimo-v2-5": {
15394
+ "vercel": "xiaomi/mimo-v2.5"
15395
+ },
15396
+ "mimo-v2-5-pro": {
15397
+ "vercel": "xiaomi/mimo-v2.5-pro"
15398
+ },
15010
15399
  "mimo-v2-flash": {
15011
15400
  "vercel": "xiaomi/mimo-v2-flash"
15012
15401
  },
15013
15402
  "mimo-v2-pro": {
15014
15403
  "vercel": "xiaomi/mimo-v2-pro"
15015
15404
  },
15405
+ "mimo-v2.5": {
15406
+ "vercel": "xiaomi/mimo-v2.5"
15407
+ },
15408
+ "mimo-v2.5-pro": {
15409
+ "vercel": "xiaomi/mimo-v2.5-pro"
15410
+ },
15016
15411
  "minimax-m2": {
15017
15412
  "vercel": "minimax/minimax-m2"
15018
15413
  },
@@ -15184,6 +15579,9 @@ var require_generated_model_routing = __commonJS({
15184
15579
  "qwen3-5-plus": {
15185
15580
  "vercel": "alibaba/qwen3.5-plus"
15186
15581
  },
15582
+ "qwen3-6-27b": {
15583
+ "vercel": "alibaba/qwen3.6-27b"
15584
+ },
15187
15585
  "qwen3-6-plus": {
15188
15586
  "vercel": "alibaba/qwen3.6-plus"
15189
15587
  },
@@ -15232,6 +15630,9 @@ var require_generated_model_routing = __commonJS({
15232
15630
  "qwen3-vl": {
15233
15631
  "vercel": "alibaba/qwen3-vl-thinking"
15234
15632
  },
15633
+ "qwen3-vl-235b-a22b-instruct": {
15634
+ "vercel": "alibaba/qwen3-vl-235b-a22b-instruct"
15635
+ },
15235
15636
  "qwen3-vl-instruct": {
15236
15637
  "vercel": "alibaba/qwen3-vl-instruct"
15237
15638
  },
@@ -15262,6 +15663,9 @@ var require_generated_model_routing = __commonJS({
15262
15663
  "qwen3.5-plus": {
15263
15664
  "vercel": "alibaba/qwen3.5-plus"
15264
15665
  },
15666
+ "qwen3.6-27b": {
15667
+ "vercel": "alibaba/qwen3.6-27b"
15668
+ },
15265
15669
  "qwen3.6-plus": {
15266
15670
  "vercel": "alibaba/qwen3.6-plus"
15267
15671
  },
@@ -15416,6 +15820,7 @@ var require_generated_model_routing = __commonJS({
15416
15820
  "qwen3-32b": { providers: [{ provider: "vercel", weight: 100 }] },
15417
15821
  "qwen3-5-flash": { providers: [{ provider: "vercel", weight: 100 }] },
15418
15822
  "qwen3-5-plus": { providers: [{ provider: "vercel", weight: 100 }] },
15823
+ "qwen3-6-27b": { providers: [{ provider: "vercel", weight: 100 }] },
15419
15824
  "qwen3-6-plus": { providers: [{ provider: "vercel", weight: 100 }] },
15420
15825
  "qwen3-coder": { providers: [{ provider: "vercel", weight: 100 }] },
15421
15826
  "qwen3-coder-30b-a3b": { providers: [{ provider: "vercel", weight: 100 }] },
@@ -15428,6 +15833,7 @@ var require_generated_model_routing = __commonJS({
15428
15833
  "qwen3-next-80b-a3b": { providers: [{ provider: "vercel", weight: 100 }] },
15429
15834
  "qwen3-next-80b-a3b-instruct": { providers: [{ provider: "vercel", weight: 100 }] },
15430
15835
  "qwen3-vl": { providers: [{ provider: "vercel", weight: 100 }] },
15836
+ "qwen3-vl-235b-a22b-instruct": { providers: [{ provider: "vercel", weight: 100 }] },
15431
15837
  "qwen3-vl-instruct": { providers: [{ provider: "vercel", weight: 100 }] }
15432
15838
  };
15433
15839
  function getProvidersForModel(modelId) {
@@ -20517,7 +20923,9 @@ var require_flow_step_types = __commonJS({
20517
20923
  "wait-until",
20518
20924
  "paginate-api",
20519
20925
  "store-vector",
20520
- "execute-agent"
20926
+ "execute-agent",
20927
+ "store-asset",
20928
+ "generate-pdf"
20521
20929
  ];
20522
20930
  exports.FLOW_STEP_TYPES = ["prompt", ...exports.CONTEXT_STEP_TYPES];
20523
20931
  function isContextStepType(type) {
@@ -20560,7 +20968,7 @@ var require_fpo_schema = __commonJS({
20560
20968
  "../shared/dist/product-generation/fpo-schema.js"(exports) {
20561
20969
  "use strict";
20562
20970
  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;
20971
+ 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
20972
  var zod_1 = require_zod();
20565
20973
  var flow_step_types_1 = require_flow_step_types();
20566
20974
  exports.FULL_PRODUCT_OBJECT_VERSION_1_0 = "1.0";
@@ -20570,7 +20978,9 @@ var require_fpo_schema = __commonJS({
20570
20978
  var flowStepSchema = zod_1.z.object({
20571
20979
  type: zod_1.z.string().refine((t) => flow_step_types_1.FLOW_STEP_TYPES.includes(t), { message: "Invalid flow step type" }),
20572
20980
  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({})
20981
+ config: zod_1.z.record(zod_1.z.string(), zod_1.z.any()).default({}),
20982
+ order: zod_1.z.number().int().nonnegative().optional(),
20983
+ enabled: zod_1.z.boolean().optional()
20574
20984
  });
20575
20985
  var transitionSchema = zod_1.z.object({
20576
20986
  from: zod_1.z.number().int().nonnegative(),
@@ -20593,7 +21003,10 @@ var require_fpo_schema = __commonJS({
20593
21003
  toolPool: zod_1.z.array(zod_1.z.string()).optional(),
20594
21004
  defaultMaxTurns: zod_1.z.number().int().positive().optional(),
20595
21005
  maxSpawnsPerRun: zod_1.z.number().int().positive().optional(),
20596
- allowNesting: zod_1.z.boolean().optional()
21006
+ allowNesting: zod_1.z.boolean().optional(),
21007
+ defaultModel: zod_1.z.string().optional(),
21008
+ maxTurnsLimit: zod_1.z.number().int().positive().optional(),
21009
+ defaultTimeoutMs: zod_1.z.number().int().positive().optional()
20597
21010
  });
20598
21011
  var capabilityToolRefSchema = zod_1.z.object({
20599
21012
  capabilityId: zod_1.z.string().min(1),
@@ -20601,18 +21014,139 @@ var require_fpo_schema = __commonJS({
20601
21014
  description: zod_1.z.string().optional(),
20602
21015
  parametersSchema: zod_1.z.record(zod_1.z.string(), zod_1.z.any()).optional()
20603
21016
  });
21017
+ var agentLoopConfigSchema = zod_1.z.object({
21018
+ maxTurns: zod_1.z.number().int().min(1).max(100).optional(),
21019
+ maxCost: zod_1.z.number().nonnegative().optional(),
21020
+ enableReflection: zod_1.z.boolean().optional(),
21021
+ reflectionInterval: zod_1.z.number().int().min(1).max(50).optional()
21022
+ });
21023
+ var agentReasoningConfigSchema = zod_1.z.object({
21024
+ enabled: zod_1.z.boolean().optional(),
21025
+ reasoningEffort: zod_1.z.enum(["minimal", "low", "medium", "high", "xhigh"]).optional(),
21026
+ reasoningSummary: zod_1.z.enum(["auto", "detailed"]).optional(),
21027
+ budgetTokens: zod_1.z.number().int().min(1e3).max(1e5).optional(),
21028
+ thinkingBudget: zod_1.z.number().int().min(1024).max(65536).optional(),
21029
+ includeThoughts: zod_1.z.boolean().optional()
21030
+ });
21031
+ var agentVoiceConfigSchema = zod_1.z.object({
21032
+ enabled: zod_1.z.boolean().optional(),
21033
+ provider: zod_1.z.string().optional(),
21034
+ interruptionMode: zod_1.z.enum(["none", "cancel", "barge-in"]).optional(),
21035
+ elevenLabs: zod_1.z.object({
21036
+ voiceId: zod_1.z.string().optional(),
21037
+ modelId: zod_1.z.string().optional(),
21038
+ stability: zod_1.z.number().min(0).max(1).optional(),
21039
+ similarity: zod_1.z.number().min(0).max(1).optional()
21040
+ }).optional()
21041
+ });
21042
+ var agentErrorHandlingSchema = zod_1.z.object({
21043
+ onError: zod_1.z.enum(["fail", "continue", "fallback"]).optional(),
21044
+ fallbacks: zod_1.z.array(zod_1.z.object({
21045
+ type: zod_1.z.enum(["retry", "model"]),
21046
+ model: zod_1.z.string().optional(),
21047
+ temperature: zod_1.z.number().min(0).max(2).optional(),
21048
+ maxTokens: zod_1.z.number().int().positive().optional(),
21049
+ delay: zod_1.z.number().min(0).max(6e4).optional()
21050
+ })).optional()
21051
+ });
21052
+ var agentArtifactsConfigSchema = zod_1.z.object({
21053
+ enabled: zod_1.z.literal(true),
21054
+ types: zod_1.z.array(zod_1.z.enum(["markdown", "component"])).min(1)
21055
+ });
21056
+ var agentMcpServerSchema = zod_1.z.object({
21057
+ id: zod_1.z.string().min(1),
21058
+ name: zod_1.z.string().optional(),
21059
+ url: zod_1.z.string().min(1),
21060
+ auth: zod_1.z.object({
21061
+ type: zod_1.z.enum(["api_key", "bearer", "basic", "custom_header", "none"]),
21062
+ headerName: zod_1.z.string().optional(),
21063
+ token: zod_1.z.string().optional(),
21064
+ username: zod_1.z.string().optional(),
21065
+ password: zod_1.z.string().optional()
21066
+ }).optional(),
21067
+ allowedTools: zod_1.z.array(zod_1.z.string()).optional(),
21068
+ timeout: zod_1.z.number().positive().optional(),
21069
+ transport: zod_1.z.enum(["streamable_http", "rest"]).optional(),
21070
+ enabled: zod_1.z.boolean().optional()
21071
+ });
21072
+ var agentToolsConfigSchema = zod_1.z.object({
21073
+ toolIds: zod_1.z.array(zod_1.z.string()).optional(),
21074
+ toolConfigs: zod_1.z.record(zod_1.z.string(), zod_1.z.record(zod_1.z.string(), zod_1.z.any())).optional(),
21075
+ runtimeTools: zod_1.z.array(zod_1.z.object({
21076
+ name: zod_1.z.string().min(1),
21077
+ description: zod_1.z.string().optional(),
21078
+ parametersSchema: zod_1.z.record(zod_1.z.string(), zod_1.z.any()).optional(),
21079
+ config: zod_1.z.record(zod_1.z.string(), zod_1.z.any())
21080
+ })).optional(),
21081
+ mcpServers: zod_1.z.array(agentMcpServerSchema).optional(),
21082
+ maxToolCalls: zod_1.z.number().int().min(1).max(100).optional(),
21083
+ toolCallStrategy: zod_1.z.enum(["auto", "required", "none"]).optional(),
21084
+ parallelCalls: zod_1.z.boolean().optional(),
21085
+ approval: zod_1.z.object({
21086
+ require: zod_1.z.union([zod_1.z.array(zod_1.z.string()), zod_1.z.boolean()]),
21087
+ timeout: zod_1.z.number().positive().optional()
21088
+ }).optional(),
21089
+ perToolLimits: zod_1.z.record(zod_1.z.string(), zod_1.z.object({
21090
+ maxCalls: zod_1.z.number().int().positive().optional(),
21091
+ required: zod_1.z.boolean().optional()
21092
+ })).optional(),
21093
+ subagentConfig: agentSubagentConfigSchema.optional(),
21094
+ codeModeConfig: zod_1.z.object({
21095
+ toolPool: zod_1.z.array(zod_1.z.string()).optional(),
21096
+ description: zod_1.z.string().optional(),
21097
+ timeoutMs: zod_1.z.number().int().positive().optional()
21098
+ }).optional()
21099
+ });
21100
+ var agentExternalConfigSchema = zod_1.z.object({
21101
+ endpoint: zod_1.z.string().url(),
21102
+ auth: zod_1.z.record(zod_1.z.string(), zod_1.z.any()).optional(),
21103
+ timeout: zod_1.z.number().positive().optional(),
21104
+ retryCount: zod_1.z.number().int().nonnegative().optional(),
21105
+ skillOrchestration: zod_1.z.boolean().optional()
21106
+ });
21107
+ var agentClaudeManagedConfigSchema = zod_1.z.object({
21108
+ anthropicAgentId: zod_1.z.string().min(1),
21109
+ anthropicAgentVersion: zod_1.z.string().optional(),
21110
+ model: zod_1.z.string().optional(),
21111
+ systemPrompt: zod_1.z.string().optional(),
21112
+ toolPermissions: zod_1.z.record(zod_1.z.string(), zod_1.z.any()).optional(),
21113
+ anthropicEnvironmentId: zod_1.z.string().optional(),
21114
+ timeoutMs: zod_1.z.number().int().positive().optional()
21115
+ });
20604
21116
  exports.agentDefinitionSchema = zod_1.z.object({
20605
21117
  name: zod_1.z.string().min(1),
20606
21118
  description: zod_1.z.string().min(1),
20607
21119
  model: zod_1.z.string().min(1, "Agent model is required"),
20608
21120
  systemPrompt: zod_1.z.string().optional(),
21121
+ icon: zod_1.z.string().max(50).optional(),
21122
+ agentType: zod_1.z.enum(["runtype", "external", "claude_managed"]).optional(),
21123
+ status: zod_1.z.enum(["draft", "active", "paused", "archived"]).optional(),
21124
+ loggingPolicy: zod_1.z.enum(["default", "on", "off"]).optional(),
21125
+ // Sampling parameters
21126
+ temperature: zod_1.z.number().min(0).max(2).optional(),
21127
+ topP: zod_1.z.number().min(0).max(1).optional(),
21128
+ topK: zod_1.z.number().int().min(1).max(500).optional(),
21129
+ frequencyPenalty: zod_1.z.number().min(-2).max(2).optional(),
21130
+ presencePenalty: zod_1.z.number().min(-2).max(2).optional(),
21131
+ seed: zod_1.z.number().int().optional(),
21132
+ // Tools — legacy simple array, or the full config object
20609
21133
  tools: zod_1.z.array(agentToolSchema).optional(),
21134
+ toolsConfig: agentToolsConfigSchema.optional(),
21135
+ // Advanced config
21136
+ loopConfig: agentLoopConfigSchema.optional(),
21137
+ reasoning: zod_1.z.union([zod_1.z.boolean(), agentReasoningConfigSchema]).optional(),
21138
+ voice: agentVoiceConfigSchema.optional(),
21139
+ errorHandling: agentErrorHandlingSchema.optional(),
21140
+ artifacts: agentArtifactsConfigSchema.optional(),
20610
21141
  advisor: zod_1.z.object({
20611
21142
  model: zod_1.z.string(),
20612
21143
  systemPrompt: zod_1.z.string().optional()
20613
21144
  }).optional(),
20614
21145
  subagentConfig: agentSubagentConfigSchema.optional(),
20615
21146
  capabilityToolRefs: zod_1.z.array(capabilityToolRefSchema).optional(),
21147
+ // External / managed agent configs
21148
+ externalConfig: agentExternalConfigSchema.optional(),
21149
+ claudeManagedConfig: agentClaudeManagedConfigSchema.optional(),
20616
21150
  createPolicy: createPolicySchema
20617
21151
  });
20618
21152
  exports.capabilitySchema = zod_1.z.object({
@@ -20703,6 +21237,49 @@ var require_fpo_schema = __commonJS({
20703
21237
  status: zod_1.z.enum(["draft", "active", "paused"]).optional(),
20704
21238
  environment: zod_1.z.enum(["production", "development"]).optional()
20705
21239
  });
21240
+ exports.recordSchema = zod_1.z.object({
21241
+ id: zod_1.z.string().min(1),
21242
+ type: zod_1.z.string().min(1),
21243
+ name: zod_1.z.string().optional(),
21244
+ metadata: zod_1.z.record(zod_1.z.string(), zod_1.z.any()).optional(),
21245
+ metadataSchema: zod_1.z.record(zod_1.z.string(), zod_1.z.any()).optional(),
21246
+ messages: zod_1.z.array(zod_1.z.object({
21247
+ role: zod_1.z.string().min(1),
21248
+ content: zod_1.z.string()
21249
+ })).optional(),
21250
+ createPolicy: createPolicySchema
21251
+ });
21252
+ exports.scheduleSchema = zod_1.z.object({
21253
+ id: zod_1.z.string().min(1),
21254
+ name: zod_1.z.string().optional(),
21255
+ capabilityId: zod_1.z.string().min(1),
21256
+ triggerType: zod_1.z.enum(["cron", "one_time"]),
21257
+ cron: zod_1.z.string().optional(),
21258
+ timezone: zod_1.z.string().optional(),
21259
+ runAt: zod_1.z.string().datetime({ offset: true }).optional(),
21260
+ recordType: zod_1.z.string().optional(),
21261
+ recordFilter: zod_1.z.record(zod_1.z.string(), zod_1.z.any()).optional(),
21262
+ messages: zod_1.z.array(zod_1.z.object({
21263
+ role: zod_1.z.string().min(1),
21264
+ content: zod_1.z.string()
21265
+ })).optional(),
21266
+ executionOptions: zod_1.z.record(zod_1.z.string(), zod_1.z.any()).optional(),
21267
+ enabled: zod_1.z.boolean().optional(),
21268
+ createPolicy: createPolicySchema
21269
+ }).refine((s) => {
21270
+ if (s.triggerType === "cron" && !s.cron)
21271
+ return false;
21272
+ if (s.triggerType === "one_time" && !s.runAt)
21273
+ return false;
21274
+ return true;
21275
+ }, { message: "Cron schedules require `cron` field; one_time schedules require `runAt` field" });
21276
+ exports.productSecretSchema = zod_1.z.object({
21277
+ id: zod_1.z.string().min(1),
21278
+ key: zod_1.z.string().min(1),
21279
+ description: zod_1.z.string().optional(),
21280
+ required: zod_1.z.boolean().optional(),
21281
+ placeholder: zod_1.z.string().optional()
21282
+ });
20706
21283
  var metaSchema = zod_1.z.object({
20707
21284
  schemaVersion: zod_1.z.string().min(1),
20708
21285
  catalogVersion: zod_1.z.string().min(1),
@@ -20721,6 +21298,9 @@ var require_fpo_schema = __commonJS({
20721
21298
  capabilities: zod_1.z.array(exports.capabilitySchema).max(50),
20722
21299
  tools: zod_1.z.array(exports.toolSchema).max(100),
20723
21300
  surfaces: zod_1.z.array(exports.surfaceSchema).max(50),
21301
+ records: zod_1.z.array(exports.recordSchema).max(500).optional(),
21302
+ schedules: zod_1.z.array(exports.scheduleSchema).max(50).optional(),
21303
+ secrets: zod_1.z.array(exports.productSecretSchema).max(50).optional(),
20724
21304
  _meta: metaSchema
20725
21305
  }).superRefine((fpo, ctx) => {
20726
21306
  const capIds = /* @__PURE__ */ new Set();
@@ -20757,6 +21337,45 @@ var require_fpo_schema = __commonJS({
20757
21337
  }
20758
21338
  surfaceIds.add(surface.id);
20759
21339
  }
21340
+ if (fpo.records) {
21341
+ const recordIds = /* @__PURE__ */ new Set();
21342
+ for (const [i, record] of fpo.records.entries()) {
21343
+ if (recordIds.has(record.id)) {
21344
+ ctx.addIssue({
21345
+ code: "custom",
21346
+ message: `Duplicate record id: ${record.id}`,
21347
+ path: ["records", i, "id"]
21348
+ });
21349
+ }
21350
+ recordIds.add(record.id);
21351
+ }
21352
+ }
21353
+ if (fpo.schedules) {
21354
+ const scheduleIds = /* @__PURE__ */ new Set();
21355
+ for (const [i, schedule] of fpo.schedules.entries()) {
21356
+ if (scheduleIds.has(schedule.id)) {
21357
+ ctx.addIssue({
21358
+ code: "custom",
21359
+ message: `Duplicate schedule id: ${schedule.id}`,
21360
+ path: ["schedules", i, "id"]
21361
+ });
21362
+ }
21363
+ scheduleIds.add(schedule.id);
21364
+ }
21365
+ }
21366
+ if (fpo.secrets) {
21367
+ const secretIds = /* @__PURE__ */ new Set();
21368
+ for (const [i, secret] of fpo.secrets.entries()) {
21369
+ if (secretIds.has(secret.id)) {
21370
+ ctx.addIssue({
21371
+ code: "custom",
21372
+ message: `Duplicate secret id: ${secret.id}`,
21373
+ path: ["secrets", i, "id"]
21374
+ });
21375
+ }
21376
+ secretIds.add(secret.id);
21377
+ }
21378
+ }
20760
21379
  });
20761
21380
  }
20762
21381
  });
@@ -21177,6 +21796,37 @@ var require_fpo_validator = __commonJS({
21177
21796
  }
21178
21797
  surfaceIds.add(surface.id);
21179
21798
  }
21799
+ if (fpo.records) {
21800
+ const recordIds = /* @__PURE__ */ new Set();
21801
+ for (const [i, record] of fpo.records.entries()) {
21802
+ if (recordIds.has(record.id)) {
21803
+ result.errors.push((0, types_1.createIssue)("error", "DUPLICATE_RECORD_ID", `Duplicate record id: "${record.id}"`, `records[${i}].id`));
21804
+ }
21805
+ recordIds.add(record.id);
21806
+ }
21807
+ }
21808
+ const capIdSet = new Set(fpo.capabilities.map((c) => c.id));
21809
+ if (fpo.schedules) {
21810
+ const scheduleIds = /* @__PURE__ */ new Set();
21811
+ for (const [i, schedule] of fpo.schedules.entries()) {
21812
+ if (scheduleIds.has(schedule.id)) {
21813
+ result.errors.push((0, types_1.createIssue)("error", "DUPLICATE_SCHEDULE_ID", `Duplicate schedule id: "${schedule.id}"`, `schedules[${i}].id`));
21814
+ }
21815
+ scheduleIds.add(schedule.id);
21816
+ if (!capIdSet.has(schedule.capabilityId)) {
21817
+ 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`));
21818
+ }
21819
+ }
21820
+ }
21821
+ if (fpo.secrets) {
21822
+ const secretIds = /* @__PURE__ */ new Set();
21823
+ for (const [i, secret] of fpo.secrets.entries()) {
21824
+ if (secretIds.has(secret.id)) {
21825
+ result.errors.push((0, types_1.createIssue)("error", "DUPLICATE_SECRET_ID", `Duplicate secret id: "${secret.id}"`, `secrets[${i}].id`));
21826
+ }
21827
+ secretIds.add(secret.id);
21828
+ }
21829
+ }
21180
21830
  const toolIds = new Set(fpo.tools.map((t) => t.id));
21181
21831
  const capResults = fpo.capabilities.map((cap, i) => (0, capability_validator_1.validateCapability)(cap, i, { toolIds }));
21182
21832
  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.4",
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": {