@vm0/cli 9.154.2 → 9.156.0

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.
@@ -74083,7 +74083,7 @@ if (DSN) {
74083
74083
  init2({
74084
74084
  dsn: DSN,
74085
74085
  environment: process.env.SENTRY_ENVIRONMENT ?? "production",
74086
- release: "9.154.2",
74086
+ release: "9.156.0",
74087
74087
  sendDefaultPii: false,
74088
74088
  tracesSampleRate: 0,
74089
74089
  shutdownTimeout: 500,
@@ -74102,7 +74102,7 @@ if (DSN) {
74102
74102
  }
74103
74103
  });
74104
74104
  setContext("cli", {
74105
- version: "9.154.2",
74105
+ version: "9.156.0",
74106
74106
  command: process.argv.slice(2).join(" ")
74107
74107
  });
74108
74108
  setContext("runtime", {
@@ -88604,7 +88604,7 @@ var RUN_ERROR_GUIDANCE = {
88604
88604
  NO_MODEL_PROVIDER: {
88605
88605
  title: "No model provider configured",
88606
88606
  guidance: "Configure a model provider to start running agents.",
88607
- cliHint: "zero org model-provider setup"
88607
+ cliHint: "zero model-provider set --help"
88608
88608
  },
88609
88609
  INSUFFICIENT_CREDITS: {
88610
88610
  title: "Credits depleted",
@@ -95561,11 +95561,32 @@ var SUPPORTED_RUN_MODELS = [
95561
95561
  "gpt-5.4",
95562
95562
  "gpt-5.4-mini"
95563
95563
  ];
95564
+ var VM0_MODEL_CREDIT_MULTIPLIER = Object.freeze({
95565
+ "claude-opus-4-7": 1.7,
95566
+ "claude-opus-4-6": 1.7,
95567
+ "claude-sonnet-4-6": 1,
95568
+ "claude-haiku-4-5": 0.3,
95569
+ "deepseek-v4-pro": 0.06,
95570
+ "deepseek-v4-flash": 0.02,
95571
+ "kimi-k2.6": 0.3,
95572
+ "kimi-k2.5": 0.2,
95573
+ "MiniMax-M2.7": 0.1,
95574
+ "glm-5.1": 0.4,
95575
+ "gpt-5.5": 2,
95576
+ "gpt-5.4": 1,
95577
+ "gpt-5.4-mini": 0.3
95578
+ });
95564
95579
  var supportedRunModelSchema = external_exports.enum(SUPPORTED_RUN_MODELS);
95565
95580
  var modelProviderCredentialScopeSchema = external_exports.enum(["org", "member"]);
95566
95581
  var SUPPORTED_RUN_MODEL_SET = new Set(
95567
95582
  SUPPORTED_RUN_MODELS
95568
95583
  );
95584
+ function isSupportedRunModel(model) {
95585
+ return typeof model === "string" && SUPPORTED_RUN_MODEL_SET.has(model);
95586
+ }
95587
+ function getVm0ModelMultiplier(model) {
95588
+ return isSupportedRunModel(model) ? VM0_MODEL_CREDIT_MULTIPLIER[model] : void 0;
95589
+ }
95569
95590
  var VM0_MODEL_TO_PROVIDER = {
95570
95591
  "claude-opus-4-7": {
95571
95592
  concreteType: "anthropic-api-key",
@@ -96462,12 +96483,60 @@ async function deleteZeroOrgModelProvider(type) {
96462
96483
  handleError(result, `Org model provider "${type}" not found`);
96463
96484
  }
96464
96485
 
96486
+ // src/lib/api/domains/zero-model-policies.ts
96487
+ init_esm_shims();
96488
+
96489
+ // ../../packages/api-contracts/src/contracts/zero-model-policies.ts
96490
+ init_esm_shims();
96491
+ var c14 = initContract();
96492
+ var zeroModelPoliciesMainContract = c14.router({
96493
+ list: {
96494
+ method: "GET",
96495
+ path: "/api/zero/model-policies",
96496
+ headers: authHeadersSchema,
96497
+ responses: {
96498
+ 200: orgModelPoliciesResponseSchema,
96499
+ 401: apiErrorSchema,
96500
+ 403: apiErrorSchema,
96501
+ 404: apiErrorSchema,
96502
+ 500: apiErrorSchema
96503
+ },
96504
+ summary: "List org model-first policies"
96505
+ },
96506
+ update: {
96507
+ method: "PUT",
96508
+ path: "/api/zero/model-policies",
96509
+ headers: authHeadersSchema,
96510
+ body: updateOrgModelPoliciesRequestSchema,
96511
+ responses: {
96512
+ 200: orgModelPoliciesResponseSchema,
96513
+ 400: apiErrorSchema,
96514
+ 401: apiErrorSchema,
96515
+ 403: apiErrorSchema,
96516
+ 404: apiErrorSchema,
96517
+ 500: apiErrorSchema
96518
+ },
96519
+ summary: "Update org model-first policies"
96520
+ }
96521
+ });
96522
+
96523
+ // src/lib/api/domains/zero-model-policies.ts
96524
+ async function listZeroModelPolicies() {
96525
+ const config4 = await getClientConfig();
96526
+ const client = initClient(zeroModelPoliciesMainContract, config4);
96527
+ const result = await client.list({ headers: {} });
96528
+ if (result.status === 200) {
96529
+ return result.body;
96530
+ }
96531
+ handleError(result, "Failed to list model policies");
96532
+ }
96533
+
96465
96534
  // src/lib/api/domains/zero-agents.ts
96466
96535
  init_esm_shims();
96467
96536
 
96468
96537
  // ../../packages/api-contracts/src/contracts/zero-agents.ts
96469
96538
  init_esm_shims();
96470
- var c14 = initContract();
96539
+ var c15 = initContract();
96471
96540
  var zeroAgentVisibilitySchema = external_exports.enum(["public", "private"]);
96472
96541
  var zeroAgentCustomSkillNameSchema = external_exports.string().min(2).max(64).regex(/^[a-z0-9][a-z0-9-]*[a-z0-9]$/);
96473
96542
  var zeroAgentResponseSchema = external_exports.object({
@@ -96506,7 +96575,7 @@ var zeroAgentInstructionsResponseSchema = external_exports.object({
96506
96575
  var zeroAgentInstructionsRequestSchema = external_exports.object({
96507
96576
  content: external_exports.string()
96508
96577
  });
96509
- var zeroAgentsMainContract = c14.router({
96578
+ var zeroAgentsMainContract = c15.router({
96510
96579
  create: {
96511
96580
  method: "POST",
96512
96581
  path: "/api/zero/agents",
@@ -96534,7 +96603,7 @@ var zeroAgentsMainContract = c14.router({
96534
96603
  summary: "List zero agents"
96535
96604
  }
96536
96605
  });
96537
- var zeroAgentsByIdContract = c14.router({
96606
+ var zeroAgentsByIdContract = c15.router({
96538
96607
  get: {
96539
96608
  method: "GET",
96540
96609
  path: "/api/zero/agents/:id",
@@ -96586,9 +96655,9 @@ var zeroAgentsByIdContract = c14.router({
96586
96655
  path: "/api/zero/agents/:id",
96587
96656
  headers: authHeadersSchema,
96588
96657
  pathParams: external_exports.object({ id: external_exports.string().uuid() }),
96589
- body: c14.noBody(),
96658
+ body: c15.noBody(),
96590
96659
  responses: {
96591
- 204: c14.noBody(),
96660
+ 204: c15.noBody(),
96592
96661
  401: apiErrorSchema,
96593
96662
  403: apiErrorSchema,
96594
96663
  404: apiErrorSchema,
@@ -96601,7 +96670,7 @@ var zeroAgentPermissionPoliciesRequestSchema = external_exports.object({
96601
96670
  agentId: external_exports.string().uuid(),
96602
96671
  policies: firewallPoliciesSchema
96603
96672
  });
96604
- var zeroAgentPermissionPoliciesContract = c14.router({
96673
+ var zeroAgentPermissionPoliciesContract = c15.router({
96605
96674
  update: {
96606
96675
  method: "PUT",
96607
96676
  path: "/api/zero/permission-policies",
@@ -96617,7 +96686,7 @@ var zeroAgentPermissionPoliciesContract = c14.router({
96617
96686
  summary: "Update zero agent permission policies (owner only)"
96618
96687
  }
96619
96688
  });
96620
- var zeroAgentInstructionsContract = c14.router({
96689
+ var zeroAgentInstructionsContract = c15.router({
96621
96690
  get: {
96622
96691
  method: "GET",
96623
96692
  path: "/api/zero/agents/:id/instructions",
@@ -96707,7 +96776,7 @@ var zeroAgentSkillContentResponseSchema = external_exports.object({
96707
96776
  var zeroAgentSkillListResponseSchema = external_exports.array(
96708
96777
  zeroAgentCustomSkillSchema
96709
96778
  );
96710
- var zeroSkillsCollectionContract = c14.router({
96779
+ var zeroSkillsCollectionContract = c15.router({
96711
96780
  list: {
96712
96781
  method: "GET",
96713
96782
  path: "/api/zero/skills",
@@ -96738,7 +96807,7 @@ var zeroSkillsCollectionContract = c14.router({
96738
96807
  summary: "Create a custom skill in the organization"
96739
96808
  }
96740
96809
  });
96741
- var zeroSkillsDetailContract = c14.router({
96810
+ var zeroSkillsDetailContract = c15.router({
96742
96811
  get: {
96743
96812
  method: "GET",
96744
96813
  path: "/api/zero/skills/:name",
@@ -96772,9 +96841,9 @@ var zeroSkillsDetailContract = c14.router({
96772
96841
  path: "/api/zero/skills/:name",
96773
96842
  headers: authHeadersSchema,
96774
96843
  pathParams: external_exports.object({ name: zeroAgentCustomSkillNameSchema }),
96775
- body: c14.noBody(),
96844
+ body: c15.noBody(),
96776
96845
  responses: {
96777
- 204: c14.noBody(),
96846
+ 204: c15.noBody(),
96778
96847
  401: apiErrorSchema,
96779
96848
  403: apiErrorSchema,
96780
96849
  404: apiErrorSchema
@@ -96817,7 +96886,7 @@ var resolvePermissionAccessRequestSchema = external_exports.object({
96817
96886
  requestId: external_exports.string().uuid(),
96818
96887
  action: external_exports.enum(["approve", "reject"])
96819
96888
  });
96820
- var permissionAccessRequestsCreateContract = c14.router({
96889
+ var permissionAccessRequestsCreateContract = c15.router({
96821
96890
  create: {
96822
96891
  method: "POST",
96823
96892
  path: "/api/zero/permission-access-requests",
@@ -96838,7 +96907,7 @@ var permissionAccessRequestsListQuerySchema = external_exports.object({
96838
96907
  requestId: external_exports.string().optional(),
96839
96908
  status: external_exports.string().optional()
96840
96909
  });
96841
- var permissionAccessRequestsListContract = c14.router({
96910
+ var permissionAccessRequestsListContract = c15.router({
96842
96911
  list: {
96843
96912
  method: "GET",
96844
96913
  path: "/api/zero/permission-access-requests",
@@ -96853,7 +96922,7 @@ var permissionAccessRequestsListContract = c14.router({
96853
96922
  summary: "List permission access requests for an agent"
96854
96923
  }
96855
96924
  });
96856
- var permissionAccessRequestsResolveContract = c14.router({
96925
+ var permissionAccessRequestsResolveContract = c15.router({
96857
96926
  resolve: {
96858
96927
  method: "PUT",
96859
96928
  path: "/api/zero/permission-access-requests",
@@ -96872,11 +96941,11 @@ var permissionAccessRequestsResolveContract = c14.router({
96872
96941
 
96873
96942
  // ../../packages/api-contracts/src/contracts/user-connectors.ts
96874
96943
  init_esm_shims();
96875
- var c15 = initContract();
96944
+ var c16 = initContract();
96876
96945
  var userConnectorEnabledTypesSchema = external_exports.object({
96877
96946
  enabledTypes: external_exports.array(external_exports.string())
96878
96947
  });
96879
- var zeroUserConnectorsContract = c15.router({
96948
+ var zeroUserConnectorsContract = c16.router({
96880
96949
  get: {
96881
96950
  method: "GET",
96882
96951
  path: "/api/zero/agents/:id/user-connectors",
@@ -97241,6 +97310,43 @@ var anthropicManagedAgents = {
97241
97310
  }
97242
97311
  };
97243
97312
 
97313
+ // ../../packages/connectors/src/connectors/bentoml.ts
97314
+ init_esm_shims();
97315
+ var bentoml = {
97316
+ bentoml: {
97317
+ label: "BentoML",
97318
+ category: "data-automation-infrastructure",
97319
+ generation: ["text"],
97320
+ tags: ["bentocloud", "model-serving", "mlops", "inference"],
97321
+ environmentMapping: {
97322
+ BENTO_CLOUD_API_KEY: "$secrets.BENTO_CLOUD_API_KEY",
97323
+ BENTO_CLOUD_API_ENDPOINT: "$vars.BENTO_CLOUD_API_ENDPOINT"
97324
+ },
97325
+ helpText: "Connect your BentoCloud account to manage BentoML deployments and call protected deployment endpoints",
97326
+ authMethods: {
97327
+ "api-token": {
97328
+ featureFlag: "bentomlConnector" /* BentomlConnector */,
97329
+ label: "BentoCloud API Token",
97330
+ helpText: "1. Log in to [BentoCloud](https://cloud.bentoml.com)\n2. Open your profile menu, then go to **API Tokens**\n3. Create a Personal or Organization API token with the access your workflow needs\n4. Copy the token and enter your organization endpoint, for example `https://your-org.cloud.bentoml.com`",
97331
+ secrets: {
97332
+ BENTO_CLOUD_API_KEY: {
97333
+ label: "API Token",
97334
+ required: true,
97335
+ placeholder: "cur7h..."
97336
+ },
97337
+ BENTO_CLOUD_API_ENDPOINT: {
97338
+ label: "BentoCloud Endpoint",
97339
+ required: true,
97340
+ placeholder: "https://your-org.cloud.bentoml.com",
97341
+ type: "variable"
97342
+ }
97343
+ }
97344
+ }
97345
+ },
97346
+ defaultAuthMethod: "api-token"
97347
+ }
97348
+ };
97349
+
97244
97350
  // ../../packages/connectors/src/connectors/github.ts
97245
97351
  init_esm_shims();
97246
97352
  var github = {
@@ -98993,6 +99099,48 @@ var reddit = {
98993
99099
  }
98994
99100
  };
98995
99101
 
99102
+ // ../../packages/connectors/src/connectors/reap.ts
99103
+ init_esm_shims();
99104
+ var reap = {
99105
+ reap: {
99106
+ label: "Reap",
99107
+ category: "sales-crm-business-operations",
99108
+ tags: [
99109
+ "fintech",
99110
+ "embedded-finance",
99111
+ "cards",
99112
+ "wallets",
99113
+ "payments",
99114
+ "compliance"
99115
+ ],
99116
+ environmentMapping: {
99117
+ REAP_API_KEY: "$secrets.REAP_API_KEY",
99118
+ REAP_API_BASE_URL: "$vars.REAP_API_BASE_URL"
99119
+ },
99120
+ helpText: "Connect your Reap project to manage users, companies, accounts, cards, virtual assets, activities, and reconciliations",
99121
+ authMethods: {
99122
+ "api-token": {
99123
+ label: "API Key",
99124
+ helpText: "1. Contact the Reap team to obtain an API key for your project\n2. Choose the matching API base URL for the key environment: `https://sandbox.api.reap.global/v1` or `https://prod.api.reap.global/v1`\n3. Copy the API key",
99125
+ secrets: {
99126
+ REAP_API_KEY: {
99127
+ label: "API Key",
99128
+ required: true,
99129
+ placeholder: "YOUR_REAP_API_KEY"
99130
+ },
99131
+ REAP_API_BASE_URL: {
99132
+ label: "API Base URL",
99133
+ required: true,
99134
+ placeholder: "https://sandbox.api.reap.global/v1",
99135
+ type: "variable"
99136
+ }
99137
+ }
99138
+ }
99139
+ },
99140
+ defaultAuthMethod: "api-token"
99141
+ }
99142
+ };
99143
+
98996
99144
  // ../../packages/connectors/src/connectors/strava.ts
98997
99145
  init_esm_shims();
98998
99146
  var strava = {
@@ -100065,13 +100213,14 @@ var stripe = {
100065
100213
  },
100066
100214
  "cli-auth": {
100067
100215
  featureFlag: "cliAuthStripe" /* CliAuthStripe */,
100068
- label: "Stripe CLI",
100069
- helpText: "Sign in with the Stripe CLI to import an API key.",
100216
+ label: "Sign in with Stripe",
100217
+ helpText: "Approve access in Stripe to import an API key.",
100070
100218
  secrets: {}
100071
100219
  }
100072
100220
  },
100073
100221
  defaultAuthMethod: "oauth",
100074
100222
  cliAuth: {
100223
+ flow: "browser-verification",
100075
100224
  modes: [
100076
100225
  {
100077
100226
  value: "test",
@@ -103335,6 +103484,7 @@ var CONNECTOR_TYPES_DEF = {
103335
103484
  ...agentmail,
103336
103485
  ...airtable,
103337
103486
  ...anthropicManagedAgents,
103487
+ ...bentoml,
103338
103488
  ...github,
103339
103489
  ...notion,
103340
103490
  ...gmail,
@@ -103387,6 +103537,7 @@ var CONNECTOR_TYPES_DEF = {
103387
103537
  ...serpapi,
103388
103538
  ...salesforce,
103389
103539
  ...reddit,
103540
+ ...reap,
103390
103541
  ...strava,
103391
103542
  ...x,
103392
103543
  ...neon,
@@ -103581,8 +103732,8 @@ var computerConnectorCreateResponseSchema = external_exports.object({
103581
103732
  });
103582
103733
 
103583
103734
  // ../../packages/api-contracts/src/contracts/zero-connectors.ts
103584
- var c16 = initContract();
103585
- var zeroConnectorsMainContract = c16.router({
103735
+ var c17 = initContract();
103736
+ var zeroConnectorsMainContract = c17.router({
103586
103737
  list: {
103587
103738
  method: "GET",
103588
103739
  path: "/api/zero/connectors",
@@ -103596,7 +103747,7 @@ var zeroConnectorsMainContract = c16.router({
103596
103747
  summary: "List all connectors (zero proxy)"
103597
103748
  }
103598
103749
  });
103599
- var zeroConnectorsByTypeContract = c16.router({
103750
+ var zeroConnectorsByTypeContract = c17.router({
103600
103751
  get: {
103601
103752
  method: "GET",
103602
103753
  path: "/api/zero/connectors/:type",
@@ -103616,14 +103767,14 @@ var zeroConnectorsByTypeContract = c16.router({
103616
103767
  headers: authHeadersSchema,
103617
103768
  pathParams: external_exports.object({ type: connectorTypeSchema }),
103618
103769
  responses: {
103619
- 204: c16.noBody(),
103770
+ 204: c17.noBody(),
103620
103771
  401: apiErrorSchema,
103621
103772
  404: apiErrorSchema
103622
103773
  },
103623
103774
  summary: "Disconnect a connector (zero proxy)"
103624
103775
  }
103625
103776
  });
103626
- var zeroConnectorScopeDiffContract = c16.router({
103777
+ var zeroConnectorScopeDiffContract = c17.router({
103627
103778
  getScopeDiff: {
103628
103779
  method: "GET",
103629
103780
  path: "/api/zero/connectors/:type/scope-diff",
@@ -103638,7 +103789,7 @@ var zeroConnectorScopeDiffContract = c16.router({
103638
103789
  summary: "Get scope diff for a connector"
103639
103790
  }
103640
103791
  });
103641
- var zeroConnectorAuthorizeContract = c16.router({
103792
+ var zeroConnectorAuthorizeContract = c17.router({
103642
103793
  authorize: {
103643
103794
  method: "GET",
103644
103795
  path: "/api/zero/connectors/:type/authorize",
@@ -103646,9 +103797,9 @@ var zeroConnectorAuthorizeContract = c16.router({
103646
103797
  pathParams: external_exports.object({ type: external_exports.string() }),
103647
103798
  query: external_exports.object({ session: external_exports.string().optional() }),
103648
103799
  responses: {
103649
- 307: c16.noBody(),
103800
+ 307: c17.noBody(),
103650
103801
  400: external_exports.object({ error: external_exports.string() }),
103651
- 401: c16.noBody(),
103802
+ 401: c17.noBody(),
103652
103803
  500: external_exports.object({ error: external_exports.string() })
103653
103804
  },
103654
103805
  summary: "Start connector OAuth authorization (zero proxy)"
@@ -103669,7 +103820,7 @@ var connectorSearchItemSchema = external_exports.object({
103669
103820
  var connectorSearchResponseSchema = external_exports.object({
103670
103821
  connectors: external_exports.array(connectorSearchItemSchema)
103671
103822
  });
103672
- var zeroConnectorsSearchContract = c16.router({
103823
+ var zeroConnectorsSearchContract = c17.router({
103673
103824
  search: {
103674
103825
  method: "GET",
103675
103826
  path: "/api/zero/connectors/search",
@@ -103683,7 +103834,7 @@ var zeroConnectorsSearchContract = c16.router({
103683
103834
  summary: "Search available connector types"
103684
103835
  }
103685
103836
  });
103686
- var zeroConnectorSessionsContract = c16.router({
103837
+ var zeroConnectorSessionsContract = c17.router({
103687
103838
  create: {
103688
103839
  method: "POST",
103689
103840
  path: "/api/zero/connectors/:type/sessions",
@@ -103698,7 +103849,7 @@ var zeroConnectorSessionsContract = c16.router({
103698
103849
  summary: "Create connector session for device flow (zero proxy)"
103699
103850
  }
103700
103851
  });
103701
- var zeroConnectorSessionByIdContract = c16.router({
103852
+ var zeroConnectorSessionByIdContract = c17.router({
103702
103853
  get: {
103703
103854
  method: "GET",
103704
103855
  path: "/api/zero/connectors/:type/sessions/:sessionId",
@@ -103716,7 +103867,7 @@ var zeroConnectorSessionByIdContract = c16.router({
103716
103867
  summary: "Get connector session status (zero proxy)"
103717
103868
  }
103718
103869
  });
103719
- var zeroComputerConnectorContract = c16.router({
103870
+ var zeroComputerConnectorContract = c17.router({
103720
103871
  create: {
103721
103872
  method: "POST",
103722
103873
  path: "/api/zero/connectors/computer",
@@ -103747,14 +103898,14 @@ var zeroComputerConnectorContract = c16.router({
103747
103898
  path: "/api/zero/connectors/computer",
103748
103899
  headers: authHeadersSchema,
103749
103900
  responses: {
103750
- 204: c16.noBody(),
103901
+ 204: c17.noBody(),
103751
103902
  401: apiErrorSchema,
103752
103903
  404: apiErrorSchema
103753
103904
  },
103754
103905
  summary: "Delete computer connector (zero proxy)"
103755
103906
  }
103756
103907
  });
103757
- var zeroLocalAgentConnectorContract = c16.router({
103908
+ var zeroLocalAgentConnectorContract = c17.router({
103758
103909
  create: {
103759
103910
  method: "POST",
103760
103911
  path: "/api/zero/connectors/local-agent",
@@ -103770,7 +103921,7 @@ var zeroLocalAgentConnectorContract = c16.router({
103770
103921
  summary: "Connect local-agent connector"
103771
103922
  }
103772
103923
  });
103773
- var zeroLocalBrowserConnectorContract = c16.router({
103924
+ var zeroLocalBrowserConnectorContract = c17.router({
103774
103925
  create: {
103775
103926
  method: "POST",
103776
103927
  path: "/api/zero/connectors/local-browser",
@@ -103832,7 +103983,7 @@ import { pipeline } from "stream/promises";
103832
103983
 
103833
103984
  // ../../packages/api-contracts/src/contracts/integrations.ts
103834
103985
  init_esm_shims();
103835
- var c17 = initContract();
103986
+ var c18 = initContract();
103836
103987
  var sendSlackMessageBodySchema = external_exports.object({
103837
103988
  channel: external_exports.string().min(1, "Channel ID is required").optional(),
103838
103989
  user: external_exports.string().min(1, "User ID is required").optional(),
@@ -103850,7 +104001,7 @@ var sendSlackMessageResponseSchema = external_exports.object({
103850
104001
  ts: external_exports.string().optional(),
103851
104002
  channel: external_exports.string().optional()
103852
104003
  });
103853
- var integrationsSlackMessageContract = c17.router({
104004
+ var integrationsSlackMessageContract = c18.router({
103854
104005
  sendMessage: {
103855
104006
  method: "POST",
103856
104007
  path: "/api/zero/integrations/slack/message",
@@ -103878,7 +104029,7 @@ var sendTelegramMessageResponseSchema = external_exports.object({
103878
104029
  messageId: external_exports.number().int(),
103879
104030
  chatId: external_exports.string()
103880
104031
  });
103881
- var integrationsTelegramMessageContract = c17.router({
104032
+ var integrationsTelegramMessageContract = c18.router({
103882
104033
  sendMessage: {
103883
104034
  method: "POST",
103884
104035
  path: "/api/zero/integrations/telegram/message",
@@ -103906,7 +104057,7 @@ var sendPhoneMessageResponseSchema = external_exports.object({
103906
104057
  channel: external_exports.string().nullable(),
103907
104058
  toNumber: external_exports.string()
103908
104059
  });
103909
- var integrationsPhoneMessageContract = c17.router({
104060
+ var integrationsPhoneMessageContract = c18.router({
103910
104061
  sendMessage: {
103911
104062
  method: "POST",
103912
104063
  path: "/api/zero/integrations/phone/message",
@@ -103926,14 +104077,14 @@ var integrationsPhoneMessageContract = c17.router({
103926
104077
  var phoneDownloadFileQuerySchema = external_exports.object({
103927
104078
  file_id: external_exports.string().min(1, "file_id query parameter is required")
103928
104079
  });
103929
- var integrationsPhoneDownloadFileContract = c17.router({
104080
+ var integrationsPhoneDownloadFileContract = c18.router({
103930
104081
  download: {
103931
104082
  method: "GET",
103932
104083
  path: "/api/zero/integrations/phone/download-file",
103933
104084
  headers: authHeadersSchema,
103934
104085
  query: phoneDownloadFileQuerySchema,
103935
104086
  responses: {
103936
- 200: c17.type(),
104087
+ 200: c18.type(),
103937
104088
  400: apiErrorSchema,
103938
104089
  401: apiErrorSchema,
103939
104090
  403: apiErrorSchema,
@@ -103968,7 +104119,7 @@ var telegramBotListItemSchema = external_exports.object({
103968
104119
  var listTelegramBotsResponseSchema = external_exports.object({
103969
104120
  bots: external_exports.array(telegramBotListItemSchema)
103970
104121
  });
103971
- var integrationsTelegramBotListContract = c17.router({
104122
+ var integrationsTelegramBotListContract = c18.router({
103972
104123
  listBots: {
103973
104124
  method: "GET",
103974
104125
  path: "/api/zero/integrations/telegram/bots",
@@ -103989,7 +104140,7 @@ var slackUploadInitResponseSchema = external_exports.object({
103989
104140
  uploadUrl: external_exports.string(),
103990
104141
  fileId: external_exports.string()
103991
104142
  });
103992
- var integrationsSlackUploadInitContract = c17.router({
104143
+ var integrationsSlackUploadInitContract = c18.router({
103993
104144
  init: {
103994
104145
  method: "POST",
103995
104146
  path: "/api/zero/integrations/slack/upload-file/init",
@@ -104018,7 +104169,7 @@ var telegramUploadInitResponseSchema = external_exports.object({
104018
104169
  contentType: external_exports.string(),
104019
104170
  size: external_exports.number().int().nonnegative()
104020
104171
  });
104021
- var integrationsTelegramUploadInitContract = c17.router({
104172
+ var integrationsTelegramUploadInitContract = c18.router({
104022
104173
  init: {
104023
104174
  method: "POST",
104024
104175
  path: "/api/zero/integrations/telegram/upload-file/init",
@@ -104050,7 +104201,7 @@ var telegramUploadCompleteResponseSchema = external_exports.object({
104050
104201
  size: external_exports.number().int().nonnegative(),
104051
104202
  url: external_exports.string()
104052
104203
  });
104053
- var integrationsTelegramUploadCompleteContract = c17.router({
104204
+ var integrationsTelegramUploadCompleteContract = c18.router({
104054
104205
  complete: {
104055
104206
  method: "POST",
104056
104207
  path: "/api/zero/integrations/telegram/upload-file/complete",
@@ -104080,7 +104231,7 @@ var phoneUploadInitResponseSchema = external_exports.object({
104080
104231
  contentType: external_exports.string(),
104081
104232
  size: external_exports.number().int().nonnegative()
104082
104233
  });
104083
- var integrationsPhoneUploadInitContract = c17.router({
104234
+ var integrationsPhoneUploadInitContract = c18.router({
104084
104235
  init: {
104085
104236
  method: "POST",
104086
104237
  path: "/api/zero/integrations/phone/upload-file/init",
@@ -104111,7 +104262,7 @@ var phoneUploadCompleteResponseSchema = external_exports.object({
104111
104262
  size: external_exports.number().int().nonnegative(),
104112
104263
  url: external_exports.string()
104113
104264
  });
104114
- var integrationsPhoneUploadCompleteContract = c17.router({
104265
+ var integrationsPhoneUploadCompleteContract = c18.router({
104115
104266
  complete: {
104116
104267
  method: "POST",
104117
104268
  path: "/api/zero/integrations/phone/upload-file/complete",
@@ -104155,7 +104306,7 @@ var sendChatMessageResponseSchema = external_exports.object({
104155
104306
  threadId: external_exports.string(),
104156
104307
  createdAt: external_exports.string()
104157
104308
  });
104158
- var integrationsChatMessageContract = c17.router({
104309
+ var integrationsChatMessageContract = c18.router({
104159
104310
  sendMessage: {
104160
104311
  method: "POST",
104161
104312
  path: "/api/zero/integrations/chat/message",
@@ -104171,7 +104322,7 @@ var integrationsChatMessageContract = c17.router({
104171
104322
  summary: "Send a message to a web chat thread"
104172
104323
  }
104173
104324
  });
104174
- var integrationsSlackUploadCompleteContract = c17.router({
104325
+ var integrationsSlackUploadCompleteContract = c18.router({
104175
104326
  complete: {
104176
104327
  method: "POST",
104177
104328
  path: "/api/zero/integrations/slack/upload-file/complete",
@@ -104439,7 +104590,7 @@ init_esm_shims();
104439
104590
 
104440
104591
  // ../../packages/api-contracts/src/contracts/zero-schedules.ts
104441
104592
  init_esm_shims();
104442
- var c18 = initContract();
104593
+ var c19 = initContract();
104443
104594
  var scheduleResponseSchema = external_exports.object({
104444
104595
  id: external_exports.string().uuid(),
104445
104596
  agentId: external_exports.string().uuid(),
@@ -104502,7 +104653,7 @@ var zeroDeployScheduleRequestSchema = external_exports.object({
104502
104653
  message: "Exactly one of 'cronExpression', 'atTime', or 'intervalSeconds' must be specified"
104503
104654
  }
104504
104655
  );
104505
- var zeroSchedulesMainContract = c18.router({
104656
+ var zeroSchedulesMainContract = c19.router({
104506
104657
  deploy: {
104507
104658
  method: "POST",
104508
104659
  path: "/api/zero/schedules",
@@ -104530,7 +104681,7 @@ var zeroSchedulesMainContract = c18.router({
104530
104681
  summary: "List all schedules (zero proxy)"
104531
104682
  }
104532
104683
  });
104533
- var zeroSchedulesByNameContract = c18.router({
104684
+ var zeroSchedulesByNameContract = c19.router({
104534
104685
  delete: {
104535
104686
  method: "DELETE",
104536
104687
  path: "/api/zero/schedules/:name",
@@ -104542,7 +104693,7 @@ var zeroSchedulesByNameContract = c18.router({
104542
104693
  agentId: external_exports.string().uuid("Invalid agent ID")
104543
104694
  }),
104544
104695
  responses: {
104545
- 204: c18.noBody(),
104696
+ 204: c19.noBody(),
104546
104697
  400: apiErrorSchema,
104547
104698
  401: apiErrorSchema,
104548
104699
  403: apiErrorSchema,
@@ -104551,7 +104702,7 @@ var zeroSchedulesByNameContract = c18.router({
104551
104702
  summary: "Delete schedule (zero proxy)"
104552
104703
  }
104553
104704
  });
104554
- var zeroSchedulesEnableContract = c18.router({
104705
+ var zeroSchedulesEnableContract = c19.router({
104555
104706
  enable: {
104556
104707
  method: "POST",
104557
104708
  path: "/api/zero/schedules/:name/enable",
@@ -104591,7 +104742,7 @@ var zeroSchedulesEnableContract = c18.router({
104591
104742
  summary: "Disable schedule (zero proxy)"
104592
104743
  }
104593
104744
  });
104594
- var zeroScheduleRunContract = c18.router({
104745
+ var zeroScheduleRunContract = c19.router({
104595
104746
  run: {
104596
104747
  method: "POST",
104597
104748
  path: "/api/zero/schedules/run",
@@ -104717,7 +104868,7 @@ init_esm_shims();
104717
104868
 
104718
104869
  // ../../packages/api-contracts/src/contracts/runners.ts
104719
104870
  init_esm_shims();
104720
- var c19 = initContract();
104871
+ var c20 = initContract();
104721
104872
  var runnerGroupSchema = external_exports.string().regex(
104722
104873
  /^[a-z0-9-]+\/[a-z0-9-]+$/,
104723
104874
  "Runner group must be in vm0/<name> format (e.g., vm0/production)"
@@ -104731,7 +104882,7 @@ var jobSchema = external_exports.object({
104731
104882
  checkpointId: external_exports.uuid().nullable(),
104732
104883
  experimentalProfile: external_exports.string().optional()
104733
104884
  });
104734
- var runnersPollContract = c19.router({
104885
+ var runnersPollContract = c20.router({
104735
104886
  poll: {
104736
104887
  method: "POST",
104737
104888
  path: "/api/runners/poll",
@@ -104872,7 +105023,7 @@ var executionContextSchema = external_exports.object({
104872
105023
  billableFirewalls: external_exports.array(external_exports.string()).optional(),
104873
105024
  modelUsageProvider: external_exports.string().optional()
104874
105025
  });
104875
- var runnersJobClaimContract = c19.router({
105026
+ var runnersJobClaimContract = c20.router({
104876
105027
  claim: {
104877
105028
  method: "POST",
104878
105029
  path: "/api/runners/jobs/:id/claim",
@@ -104909,7 +105060,7 @@ var heartbeatBodySchema = external_exports.object({
104909
105060
  heldSessions: external_exports.array(external_exports.string()),
104910
105061
  mode: external_exports.enum(["running", "draining", "stopping"])
104911
105062
  });
104912
- var runnersHeartbeatContract = c19.router({
105063
+ var runnersHeartbeatContract = c20.router({
104913
105064
  heartbeat: {
104914
105065
  method: "POST",
104915
105066
  path: "/api/runners/heartbeat",
@@ -104926,17 +105077,17 @@ var runnersHeartbeatContract = c19.router({
104926
105077
  });
104927
105078
 
104928
105079
  // ../../packages/api-contracts/src/contracts/webhooks.ts
104929
- var c20 = initContract();
105080
+ var c21 = initContract();
104930
105081
  var thirdPartyWebhookErrorSchema = external_exports.object({ error: external_exports.string() });
104931
105082
  var thirdPartyWebhookOkSchema = external_exports.union([
104932
105083
  external_exports.string(),
104933
105084
  external_exports.object({ message: external_exports.literal("pong") })
104934
105085
  ]);
104935
- var webhookClerkContract = c20.router({
105086
+ var webhookClerkContract = c21.router({
104936
105087
  post: {
104937
105088
  method: "POST",
104938
105089
  path: "/api/webhooks/clerk",
104939
- body: c20.type(),
105090
+ body: c21.type(),
104940
105091
  responses: {
104941
105092
  200: thirdPartyWebhookOkSchema,
104942
105093
  401: thirdPartyWebhookErrorSchema
@@ -104944,11 +105095,11 @@ var webhookClerkContract = c20.router({
104944
105095
  summary: "Handle Clerk organization and user webhooks"
104945
105096
  }
104946
105097
  });
104947
- var webhookGithubContract = c20.router({
105098
+ var webhookGithubContract = c21.router({
104948
105099
  post: {
104949
105100
  method: "POST",
104950
105101
  path: "/api/webhooks/github",
104951
- body: c20.type(),
105102
+ body: c21.type(),
104952
105103
  responses: {
104953
105104
  200: thirdPartyWebhookOkSchema,
104954
105105
  400: thirdPartyWebhookErrorSchema,
@@ -104958,11 +105109,11 @@ var webhookGithubContract = c20.router({
104958
105109
  summary: "Handle GitHub App webhooks"
104959
105110
  }
104960
105111
  });
104961
- var webhookStripeContract = c20.router({
105112
+ var webhookStripeContract = c21.router({
104962
105113
  post: {
104963
105114
  method: "POST",
104964
105115
  path: "/api/webhooks/stripe",
104965
- body: c20.type(),
105116
+ body: c21.type(),
104966
105117
  responses: {
104967
105118
  200: thirdPartyWebhookOkSchema,
104968
105119
  401: thirdPartyWebhookErrorSchema,
@@ -105012,7 +105163,7 @@ var firewallAuthResponseSchema = external_exports.object({
105012
105163
  refreshedConnectors: external_exports.array(external_exports.string()),
105013
105164
  refreshedSecrets: external_exports.array(external_exports.string())
105014
105165
  });
105015
- var webhookFirewallAuthContract = c20.router({
105166
+ var webhookFirewallAuthContract = c21.router({
105016
105167
  /**
105017
105168
  * POST /api/webhooks/agent/firewall/auth
105018
105169
  * Resolve firewall auth templates and refresh OAuth tokens on demand.
@@ -105047,7 +105198,7 @@ var webhookFirewallAuthContract = c20.router({
105047
105198
  summary: "Resolve firewall auth templates"
105048
105199
  }
105049
105200
  });
105050
- var webhookEventsContract = c20.router({
105201
+ var webhookEventsContract = c21.router({
105051
105202
  /**
105052
105203
  * POST /api/webhooks/agent/events
105053
105204
  * Receive agent events from sandbox
@@ -105074,7 +105225,7 @@ var webhookEventsContract = c20.router({
105074
105225
  summary: "Receive agent events from sandbox"
105075
105226
  }
105076
105227
  });
105077
- var webhookCompleteContract = c20.router({
105228
+ var webhookCompleteContract = c21.router({
105078
105229
  /**
105079
105230
  * POST /api/webhooks/agent/complete
105080
105231
  * Handle agent run completion (success or failure)
@@ -105111,7 +105262,7 @@ var webhookCompleteContract = c20.router({
105111
105262
  summary: "Handle agent run completion"
105112
105263
  }
105113
105264
  });
105114
- var webhookCheckpointsContract = c20.router({
105265
+ var webhookCheckpointsContract = c21.router({
105115
105266
  /**
105116
105267
  * POST /api/webhooks/agent/checkpoints
105117
105268
  * Create a recoverable checkpoint for an agent run.
@@ -105150,7 +105301,7 @@ var webhookCheckpointsContract = c20.router({
105150
105301
  summary: "Create checkpoint for agent run"
105151
105302
  }
105152
105303
  });
105153
- var webhookCheckpointsPrepareHistoryContract = c20.router({
105304
+ var webhookCheckpointsPrepareHistoryContract = c21.router({
105154
105305
  prepare: {
105155
105306
  method: "POST",
105156
105307
  path: "/api/webhooks/agent/checkpoints/prepare-history",
@@ -105173,7 +105324,7 @@ var webhookCheckpointsPrepareHistoryContract = c20.router({
105173
105324
  summary: "Get presigned URL for uploading session history to S3"
105174
105325
  }
105175
105326
  });
105176
- var webhookHeartbeatContract = c20.router({
105327
+ var webhookHeartbeatContract = c21.router({
105177
105328
  /**
105178
105329
  * POST /api/webhooks/agent/heartbeat
105179
105330
  * Receive heartbeat signals from sandbox
@@ -105197,7 +105348,7 @@ var webhookHeartbeatContract = c20.router({
105197
105348
  summary: "Receive heartbeat from sandbox"
105198
105349
  }
105199
105350
  });
105200
- var webhookStoragesContract = c20.router({
105351
+ var webhookStoragesContract = c21.router({
105201
105352
  /**
105202
105353
  * POST /api/webhooks/agent/storages
105203
105354
  * Create a new version of a storage from sandbox
@@ -105213,7 +105364,7 @@ var webhookStoragesContract = c20.router({
105213
105364
  path: "/api/webhooks/agent/storages",
105214
105365
  headers: authHeadersSchema,
105215
105366
  contentType: "multipart/form-data",
105216
- body: c20.type(),
105367
+ body: c21.type(),
105217
105368
  responses: {
105218
105369
  200: external_exports.object({
105219
105370
  versionId: external_exports.string(),
@@ -105229,7 +105380,7 @@ var webhookStoragesContract = c20.router({
105229
105380
  summary: "Upload storage version from sandbox"
105230
105381
  }
105231
105382
  });
105232
- var webhookStoragesIncrementalContract = c20.router({
105383
+ var webhookStoragesIncrementalContract = c21.router({
105233
105384
  /**
105234
105385
  * POST /api/webhooks/agent/storages/incremental
105235
105386
  * Create a new version using incremental upload
@@ -105247,7 +105398,7 @@ var webhookStoragesIncrementalContract = c20.router({
105247
105398
  path: "/api/webhooks/agent/storages/incremental",
105248
105399
  headers: authHeadersSchema,
105249
105400
  contentType: "multipart/form-data",
105250
- body: c20.type(),
105401
+ body: c21.type(),
105251
105402
  responses: {
105252
105403
  200: external_exports.object({
105253
105404
  versionId: external_exports.string(),
@@ -105285,7 +105436,7 @@ var sandboxOperationSchema = external_exports.object({
105285
105436
  success: external_exports.boolean(),
105286
105437
  error: external_exports.string().optional()
105287
105438
  });
105288
- var webhookTelemetryContract = c20.router({
105439
+ var webhookTelemetryContract = c21.router({
105289
105440
  /**
105290
105441
  * POST /api/webhooks/agent/telemetry
105291
105442
  * Receive telemetry data (system log, metrics, network logs, and sandbox operations) from sandbox
@@ -105314,7 +105465,7 @@ var webhookTelemetryContract = c20.router({
105314
105465
  summary: "Receive telemetry data from sandbox"
105315
105466
  }
105316
105467
  });
105317
- var webhookStoragesPrepareContract = c20.router({
105468
+ var webhookStoragesPrepareContract = c21.router({
105318
105469
  prepare: {
105319
105470
  method: "POST",
105320
105471
  path: "/api/webhooks/agent/storages/prepare",
@@ -105348,7 +105499,7 @@ var webhookStoragesPrepareContract = c20.router({
105348
105499
  summary: "Prepare for direct S3 upload from sandbox"
105349
105500
  }
105350
105501
  });
105351
- var webhookStoragesCommitContract = c20.router({
105502
+ var webhookStoragesCommitContract = c21.router({
105352
105503
  commit: {
105353
105504
  method: "POST",
105354
105505
  path: "/api/webhooks/agent/storages/commit",
@@ -105390,7 +105541,7 @@ var webhookUsageEventItemSchema = external_exports.object({
105390
105541
  category: external_exports.string().min(1).max(100),
105391
105542
  quantity: external_exports.number().int().min(0)
105392
105543
  }).strict();
105393
- var webhookUsageEventContract = c20.router({
105544
+ var webhookUsageEventContract = c21.router({
105394
105545
  send: {
105395
105546
  method: "POST",
105396
105547
  path: "/api/webhooks/agent/usage-event",
@@ -105426,8 +105577,8 @@ var zeroRunRequestSchema = unifiedRunRequestSchema.omit({
105426
105577
  agentId: external_exports.string().optional(),
105427
105578
  modelProvider: external_exports.string().optional()
105428
105579
  });
105429
- var c21 = initContract();
105430
- var zeroRunsMainContract = c21.router({
105580
+ var c22 = initContract();
105581
+ var zeroRunsMainContract = c22.router({
105431
105582
  create: {
105432
105583
  method: "POST",
105433
105584
  path: "/api/zero/runs",
@@ -105446,7 +105597,7 @@ var zeroRunsMainContract = c21.router({
105446
105597
  summary: "Create and execute agent run (zero proxy)"
105447
105598
  }
105448
105599
  });
105449
- var zeroRunsByIdContract = c21.router({
105600
+ var zeroRunsByIdContract = c22.router({
105450
105601
  getById: {
105451
105602
  method: "GET",
105452
105603
  path: "/api/zero/runs/:id",
@@ -105464,7 +105615,7 @@ var zeroRunsByIdContract = c21.router({
105464
105615
  summary: "Get agent run by ID (zero proxy)"
105465
105616
  }
105466
105617
  });
105467
- var zeroRunsCancelContract = c21.router({
105618
+ var zeroRunsCancelContract = c22.router({
105468
105619
  cancel: {
105469
105620
  method: "POST",
105470
105621
  path: "/api/zero/runs/:id/cancel",
@@ -105483,7 +105634,7 @@ var zeroRunsCancelContract = c21.router({
105483
105634
  summary: "Cancel a pending or running run (zero proxy)"
105484
105635
  }
105485
105636
  });
105486
- var zeroRunsQueueContract = c21.router({
105637
+ var zeroRunsQueueContract = c22.router({
105487
105638
  getQueue: {
105488
105639
  method: "GET",
105489
105640
  path: "/api/zero/runs/queue",
@@ -105496,7 +105647,7 @@ var zeroRunsQueueContract = c21.router({
105496
105647
  summary: "Get org run queue status (zero proxy)"
105497
105648
  }
105498
105649
  });
105499
- var zeroRunAgentEventsContract = c21.router({
105650
+ var zeroRunAgentEventsContract = c22.router({
105500
105651
  getAgentEvents: {
105501
105652
  method: "GET",
105502
105653
  path: "/api/zero/runs/:id/telemetry/agent",
@@ -105558,7 +105709,7 @@ var runContextResponseSchema = external_exports.object({
105558
105709
  artifact: runContextArtifactSchema.nullable(),
105559
105710
  featureFlags: external_exports.record(external_exports.string(), external_exports.boolean()).nullable()
105560
105711
  });
105561
- var zeroRunContextContract = c21.router({
105712
+ var zeroRunContextContract = c22.router({
105562
105713
  getContext: {
105563
105714
  method: "GET",
105564
105715
  path: "/api/zero/runs/:id/context",
@@ -105576,7 +105727,7 @@ var zeroRunContextContract = c21.router({
105576
105727
  summary: "Get run execution context snapshot for debugging"
105577
105728
  }
105578
105729
  });
105579
- var zeroRunNetworkLogsContract = c21.router({
105730
+ var zeroRunNetworkLogsContract = c22.router({
105580
105731
  getNetworkLogs: {
105581
105732
  method: "GET",
105582
105733
  path: "/api/zero/runs/:id/network",
@@ -105602,7 +105753,7 @@ var zeroRunNetworkLogsContract = c21.router({
105602
105753
  var runRunnerResponseSchema = external_exports.object({
105603
105754
  sandboxReuseResult: sandboxReuseResultSchema.nullable()
105604
105755
  });
105605
- var zeroRunRunnerContract = c21.router({
105756
+ var zeroRunRunnerContract = c22.router({
105606
105757
  getRunner: {
105607
105758
  method: "GET",
105608
105759
  path: "/api/zero/runs/:id/runner",
@@ -105620,7 +105771,7 @@ var zeroRunRunnerContract = c21.router({
105620
105771
  summary: "Get runner-level metadata for a run"
105621
105772
  }
105622
105773
  });
105623
- var zeroLogsSearchContract = c21.router({
105774
+ var zeroLogsSearchContract = c22.router({
105624
105775
  searchLogs: {
105625
105776
  method: "GET",
105626
105777
  path: "/api/zero/logs/search",
@@ -105720,7 +105871,7 @@ init_esm_shims();
105720
105871
 
105721
105872
  // ../../packages/api-contracts/src/contracts/chat-threads.ts
105722
105873
  init_esm_shims();
105723
- var c22 = initContract();
105874
+ var c23 = initContract();
105724
105875
  var attachFileSchema = external_exports.object({
105725
105876
  id: external_exports.string(),
105726
105877
  filename: external_exports.string(),
@@ -105885,10 +106036,9 @@ var chatThreadDetailSchema = external_exports.object({
105885
106036
  draftContent: external_exports.string().nullable().optional(),
105886
106037
  draftAttachments: external_exports.array(persistedAttachmentSchema).nullable().optional(),
105887
106038
  /**
105888
- * Per-thread model pin. Provider-first threads store modelProviderId +
105889
- * selectedModel together; model-first threads can store selectedModel with
105890
- * route metadata and a null modelProviderId. When set, the send route uses
105891
- * this pin instead of drifting with current defaults.
106039
+ * Per-thread selected model pin. Provider route fields are retained for
106040
+ * backwards-compatible responses but model-first sends re-resolve provider
106041
+ * routing from current org policy.
105892
106042
  */
105893
106043
  modelProviderId: external_exports.string().nullable().optional(),
105894
106044
  modelProviderType: modelProviderTypeSchema.nullable().optional(),
@@ -105905,7 +106055,7 @@ var modelSelectionRequestSchema = external_exports.object({
105905
106055
  modelProviderId: external_exports.string().uuid(),
105906
106056
  selectedModel: external_exports.string().min(1)
105907
106057
  });
105908
- var chatThreadsContract = c22.router({
106058
+ var chatThreadsContract = c23.router({
105909
106059
  create: {
105910
106060
  method: "POST",
105911
106061
  path: "/api/zero/chat-threads",
@@ -105941,7 +106091,7 @@ var chatThreadsContract = c22.router({
105941
106091
  summary: "List chat threads. When agentId is omitted, returns every thread the caller owns scoped by orgId."
105942
106092
  }
105943
106093
  });
105944
- var chatThreadByIdContract = c22.router({
106094
+ var chatThreadByIdContract = c23.router({
105945
106095
  get: {
105946
106096
  method: "GET",
105947
106097
  path: "/api/zero/chat-threads/:id",
@@ -105964,7 +106114,7 @@ var chatThreadByIdContract = c22.router({
105964
106114
  draftAttachments: external_exports.array(persistedAttachmentSchema).nullable().optional()
105965
106115
  }),
105966
106116
  responses: {
105967
- 204: c22.noBody(),
106117
+ 204: c23.noBody(),
105968
106118
  401: apiErrorSchema,
105969
106119
  404: apiErrorSchema
105970
106120
  },
@@ -105976,21 +106126,21 @@ var chatThreadByIdContract = c22.router({
105976
106126
  headers: authHeadersSchema,
105977
106127
  pathParams: external_exports.object({ id: external_exports.string() }),
105978
106128
  responses: {
105979
- 204: c22.noBody(),
106129
+ 204: c23.noBody(),
105980
106130
  401: apiErrorSchema,
105981
106131
  404: apiErrorSchema
105982
106132
  },
105983
106133
  summary: "Delete a chat thread",
105984
- body: c22.noBody()
106134
+ body: c23.noBody()
105985
106135
  }
105986
106136
  });
105987
- var chatThreadMarkReadContract = c22.router({
106137
+ var chatThreadMarkReadContract = c23.router({
105988
106138
  markRead: {
105989
106139
  method: "POST",
105990
106140
  path: "/api/zero/chat-threads/:id/mark-read",
105991
106141
  headers: authHeadersSchema,
105992
106142
  pathParams: external_exports.object({ id: external_exports.string() }),
105993
- body: c22.noBody(),
106143
+ body: c23.noBody(),
105994
106144
  responses: {
105995
106145
  200: external_exports.object({
105996
106146
  lastReadMessageId: external_exports.string().nullable(),
@@ -106002,37 +106152,37 @@ var chatThreadMarkReadContract = c22.router({
106002
106152
  summary: "Mark a chat thread as read up to the latest message"
106003
106153
  }
106004
106154
  });
106005
- var chatThreadPinContract = c22.router({
106155
+ var chatThreadPinContract = c23.router({
106006
106156
  pin: {
106007
106157
  method: "POST",
106008
106158
  path: "/api/zero/chat-threads/:id/pin",
106009
106159
  headers: authHeadersSchema,
106010
106160
  pathParams: external_exports.object({ id: external_exports.string() }),
106011
- body: c22.noBody(),
106161
+ body: c23.noBody(),
106012
106162
  responses: {
106013
- 204: c22.noBody(),
106163
+ 204: c23.noBody(),
106014
106164
  401: apiErrorSchema,
106015
106165
  404: apiErrorSchema
106016
106166
  },
106017
106167
  summary: "Pin a chat thread to the top of the sidebar"
106018
106168
  }
106019
106169
  });
106020
- var chatThreadUnpinContract = c22.router({
106170
+ var chatThreadUnpinContract = c23.router({
106021
106171
  unpin: {
106022
106172
  method: "POST",
106023
106173
  path: "/api/zero/chat-threads/:id/unpin",
106024
106174
  headers: authHeadersSchema,
106025
106175
  pathParams: external_exports.object({ id: external_exports.string() }),
106026
- body: c22.noBody(),
106176
+ body: c23.noBody(),
106027
106177
  responses: {
106028
- 204: c22.noBody(),
106178
+ 204: c23.noBody(),
106029
106179
  401: apiErrorSchema,
106030
106180
  404: apiErrorSchema
106031
106181
  },
106032
106182
  summary: "Remove the pin from a chat thread"
106033
106183
  }
106034
106184
  });
106035
- var chatThreadRenameContract = c22.router({
106185
+ var chatThreadRenameContract = c23.router({
106036
106186
  rename: {
106037
106187
  method: "POST",
106038
106188
  path: "/api/zero/chat-threads/:id/rename",
@@ -106040,14 +106190,14 @@ var chatThreadRenameContract = c22.router({
106040
106190
  pathParams: external_exports.object({ id: external_exports.string() }),
106041
106191
  body: external_exports.object({ title: external_exports.string().min(1) }),
106042
106192
  responses: {
106043
- 204: c22.noBody(),
106193
+ 204: c23.noBody(),
106044
106194
  401: apiErrorSchema,
106045
106195
  404: apiErrorSchema
106046
106196
  },
106047
106197
  summary: "Rename a chat thread (suppresses automated title generation)"
106048
106198
  }
106049
106199
  });
106050
- var chatMessagesContract = c22.router({
106200
+ var chatMessagesContract = c23.router({
106051
106201
  send: {
106052
106202
  method: "POST",
106053
106203
  path: "/api/zero/chat/messages",
@@ -106176,7 +106326,7 @@ var chatSearchResponseSchema = external_exports.object({
106176
106326
  results: external_exports.array(chatSearchResultSchema),
106177
106327
  hasMore: external_exports.boolean()
106178
106328
  });
106179
- var chatSearchContract = c22.router({
106329
+ var chatSearchContract = c23.router({
106180
106330
  search: {
106181
106331
  method: "GET",
106182
106332
  path: "/api/zero/chat/search",
@@ -106198,7 +106348,7 @@ var chatSearchContract = c22.router({
106198
106348
  summary: "Search chat messages within caller's org (zero proxy)"
106199
106349
  }
106200
106350
  });
106201
- var chatThreadMessagesContract = c22.router({
106351
+ var chatThreadMessagesContract = c23.router({
106202
106352
  list: {
106203
106353
  method: "GET",
106204
106354
  path: "/api/zero/chat-threads/:threadId/messages",
@@ -106220,7 +106370,7 @@ var chatThreadMessagesContract = c22.router({
106220
106370
  summary: "Get paginated chat messages for a thread"
106221
106371
  }
106222
106372
  });
106223
- var chatThreadArtifactsContract = c22.router({
106373
+ var chatThreadArtifactsContract = c23.router({
106224
106374
  list: {
106225
106375
  method: "GET",
106226
106376
  path: "/api/zero/chat-threads/:threadId/artifacts",
@@ -106370,7 +106520,7 @@ init_esm_shims();
106370
106520
 
106371
106521
  // ../../packages/api-contracts/src/contracts/zero-developer-support.ts
106372
106522
  init_esm_shims();
106373
- var c23 = initContract();
106523
+ var c24 = initContract();
106374
106524
  var developerSupportBodySchema = external_exports.object({
106375
106525
  title: external_exports.string().min(1, "Title is required"),
106376
106526
  description: external_exports.string().min(1, "Description is required"),
@@ -106382,7 +106532,7 @@ var consentCodeResponseSchema = external_exports.object({
106382
106532
  var submitResponseSchema = external_exports.object({
106383
106533
  reference: external_exports.string()
106384
106534
  });
106385
- var zeroDeveloperSupportContract = c23.router({
106535
+ var zeroDeveloperSupportContract = c24.router({
106386
106536
  submit: {
106387
106537
  method: "POST",
106388
106538
  path: "/api/zero/developer-support",
@@ -106419,7 +106569,7 @@ init_esm_shims();
106419
106569
 
106420
106570
  // ../../packages/api-contracts/src/contracts/zero-computer-use.ts
106421
106571
  init_esm_shims();
106422
- var c24 = initContract();
106572
+ var c25 = initContract();
106423
106573
  var registerResponseSchema = external_exports.object({
106424
106574
  id: external_exports.string(),
106425
106575
  domain: external_exports.string(),
@@ -106431,12 +106581,12 @@ var hostResponseSchema = external_exports.object({
106431
106581
  domain: external_exports.string(),
106432
106582
  token: external_exports.string()
106433
106583
  });
106434
- var zeroComputerUseRegisterContract = c24.router({
106584
+ var zeroComputerUseRegisterContract = c25.router({
106435
106585
  register: {
106436
106586
  method: "POST",
106437
106587
  path: "/api/zero/computer-use/register",
106438
106588
  headers: authHeadersSchema,
106439
- body: c24.noBody(),
106589
+ body: c25.noBody(),
106440
106590
  responses: {
106441
106591
  200: registerResponseSchema,
106442
106592
  401: apiErrorSchema,
@@ -106446,14 +106596,14 @@ var zeroComputerUseRegisterContract = c24.router({
106446
106596
  summary: "Register a computer-use host"
106447
106597
  }
106448
106598
  });
106449
- var zeroComputerUseUnregisterContract = c24.router({
106599
+ var zeroComputerUseUnregisterContract = c25.router({
106450
106600
  unregister: {
106451
106601
  method: "DELETE",
106452
106602
  path: "/api/zero/computer-use/unregister",
106453
106603
  headers: authHeadersSchema,
106454
- body: c24.noBody(),
106604
+ body: c25.noBody(),
106455
106605
  responses: {
106456
- 204: c24.noBody(),
106606
+ 204: c25.noBody(),
106457
106607
  401: apiErrorSchema,
106458
106608
  403: apiErrorSchema,
106459
106609
  404: apiErrorSchema
@@ -106461,7 +106611,7 @@ var zeroComputerUseUnregisterContract = c24.router({
106461
106611
  summary: "Unregister a computer-use host"
106462
106612
  }
106463
106613
  });
106464
- var zeroComputerUseHostContract = c24.router({
106614
+ var zeroComputerUseHostContract = c25.router({
106465
106615
  getHost: {
106466
106616
  method: "GET",
106467
106617
  path: "/api/zero/computer-use/host",
@@ -106516,7 +106666,7 @@ init_esm_shims();
106516
106666
 
106517
106667
  // ../../packages/api-contracts/src/contracts/realtime.ts
106518
106668
  init_esm_shims();
106519
- var c25 = initContract();
106669
+ var c26 = initContract();
106520
106670
  var ablyTokenRequestSchema = external_exports.object({
106521
106671
  keyName: external_exports.string(),
106522
106672
  ttl: external_exports.number().optional(),
@@ -106526,7 +106676,7 @@ var ablyTokenRequestSchema = external_exports.object({
106526
106676
  nonce: external_exports.string(),
106527
106677
  mac: external_exports.string()
106528
106678
  });
106529
- var runnerRealtimeTokenContract = c25.router({
106679
+ var runnerRealtimeTokenContract = c26.router({
106530
106680
  /**
106531
106681
  * POST /api/runners/realtime/token
106532
106682
  * Get an Ably token to subscribe to a runner group's job notification channel
@@ -106548,7 +106698,7 @@ var runnerRealtimeTokenContract = c25.router({
106548
106698
  summary: "Get Ably token for runner group job notifications"
106549
106699
  }
106550
106700
  });
106551
- var platformRealtimeTokenContract = c25.router({
106701
+ var platformRealtimeTokenContract = c26.router({
106552
106702
  /**
106553
106703
  * POST /api/zero/realtime/token
106554
106704
  * Get an Ably token to subscribe to the authenticated user's push channel
@@ -106568,7 +106718,7 @@ var platformRealtimeTokenContract = c25.router({
106568
106718
  });
106569
106719
 
106570
106720
  // ../../packages/api-contracts/src/contracts/zero-local-agent.ts
106571
- var c26 = initContract();
106721
+ var c27 = initContract();
106572
106722
  var localAgentBackendSchema = external_exports.enum(["codex", "claude-code"]);
106573
106723
  var localAgentJobStatusSchema = external_exports.enum([
106574
106724
  "queued",
@@ -106671,7 +106821,7 @@ var localAgentHostStartResponseSchema = external_exports.object({
106671
106821
  var localAgentHostDeleteResponseSchema = external_exports.object({
106672
106822
  ok: external_exports.literal(true)
106673
106823
  });
106674
- var zeroLocalAgentDeviceStartContract = c26.router({
106824
+ var zeroLocalAgentDeviceStartContract = c27.router({
106675
106825
  start: {
106676
106826
  method: "POST",
106677
106827
  path: "/api/zero/local-agent/device/start",
@@ -106686,7 +106836,7 @@ var zeroLocalAgentDeviceStartContract = c26.router({
106686
106836
  summary: "Start a local-agent device pairing flow"
106687
106837
  }
106688
106838
  });
106689
- var zeroLocalAgentDevicePollContract = c26.router({
106839
+ var zeroLocalAgentDevicePollContract = c27.router({
106690
106840
  poll: {
106691
106841
  method: "POST",
106692
106842
  path: "/api/zero/local-agent/device/poll",
@@ -106701,7 +106851,7 @@ var zeroLocalAgentDevicePollContract = c26.router({
106701
106851
  summary: "Poll a local-agent device pairing flow"
106702
106852
  }
106703
106853
  });
106704
- var zeroLocalAgentDeviceClaimContract = c26.router({
106854
+ var zeroLocalAgentDeviceClaimContract = c27.router({
106705
106855
  claim: {
106706
106856
  method: "POST",
106707
106857
  path: "/api/zero/local-agent/device/claim",
@@ -106720,7 +106870,7 @@ var zeroLocalAgentDeviceClaimContract = c26.router({
106720
106870
  summary: "Approve a local-agent device pairing flow"
106721
106871
  }
106722
106872
  });
106723
- var zeroLocalAgentHeartbeatContract = c26.router({
106873
+ var zeroLocalAgentHeartbeatContract = c27.router({
106724
106874
  heartbeat: {
106725
106875
  method: "POST",
106726
106876
  path: "/api/zero/local-agent/heartbeat",
@@ -106737,7 +106887,7 @@ var zeroLocalAgentHeartbeatContract = c26.router({
106737
106887
  summary: "Refresh a linked local-agent host heartbeat"
106738
106888
  }
106739
106889
  });
106740
- var zeroLocalAgentHostRealtimeContract = c26.router({
106890
+ var zeroLocalAgentHostRealtimeContract = c27.router({
106741
106891
  create: {
106742
106892
  method: "POST",
106743
106893
  path: "/api/zero/local-agent/host/realtime-token",
@@ -106750,7 +106900,7 @@ var zeroLocalAgentHostRealtimeContract = c26.router({
106750
106900
  summary: "Get Ably token for local-agent host job notifications"
106751
106901
  }
106752
106902
  });
106753
- var zeroLocalAgentRunContract = c26.router({
106903
+ var zeroLocalAgentRunContract = c27.router({
106754
106904
  list: {
106755
106905
  method: "GET",
106756
106906
  path: "/api/zero/local-agent/runs",
@@ -106802,7 +106952,7 @@ var zeroLocalAgentRunContract = c26.router({
106802
106952
  summary: "Get a local-agent job"
106803
106953
  }
106804
106954
  });
106805
- var zeroLocalAgentHostsContract = c26.router({
106955
+ var zeroLocalAgentHostsContract = c27.router({
106806
106956
  start: {
106807
106957
  method: "POST",
106808
106958
  path: "/api/zero/local-agent/hosts/start",
@@ -106839,7 +106989,7 @@ var zeroLocalAgentHostsContract = c26.router({
106839
106989
  hostId: external_exports.string().min(1)
106840
106990
  }),
106841
106991
  headers: authHeadersSchema,
106842
- body: c26.noBody(),
106992
+ body: c27.noBody(),
106843
106993
  responses: {
106844
106994
  200: localAgentHostDeleteResponseSchema,
106845
106995
  401: apiErrorSchema,
@@ -106849,7 +106999,7 @@ var zeroLocalAgentHostsContract = c26.router({
106849
106999
  summary: "Delete a local-agent host"
106850
107000
  }
106851
107001
  });
106852
- var zeroLocalAgentHostJobsContract = c26.router({
107002
+ var zeroLocalAgentHostJobsContract = c27.router({
106853
107003
  next: {
106854
107004
  method: "POST",
106855
107005
  path: "/api/zero/local-agent/host/jobs/next",
@@ -107064,7 +107214,7 @@ init_esm_shims();
107064
107214
 
107065
107215
  // ../../packages/api-contracts/src/contracts/zero-local-browser.ts
107066
107216
  init_esm_shims();
107067
- var c27 = initContract();
107217
+ var c28 = initContract();
107068
107218
  var localBrowserHostStatusSchema = external_exports.enum(["online", "offline"]);
107069
107219
  var localBrowserReadCommandKindSchema = external_exports.enum([
107070
107220
  "tabs.list",
@@ -107361,7 +107511,7 @@ var localBrowserCommandApprovalResponseSchema = external_exports.object({
107361
107511
  commandId: external_exports.string(),
107362
107512
  status: external_exports.enum(["queued", "failed"])
107363
107513
  });
107364
- var zeroLocalBrowserDeviceStartContract = c27.router({
107514
+ var zeroLocalBrowserDeviceStartContract = c28.router({
107365
107515
  start: {
107366
107516
  method: "POST",
107367
107517
  path: "/api/zero/local-browser/device/start",
@@ -107373,7 +107523,7 @@ var zeroLocalBrowserDeviceStartContract = c27.router({
107373
107523
  summary: "Start a local-browser device pairing flow"
107374
107524
  }
107375
107525
  });
107376
- var zeroLocalBrowserDevicePollContract = c27.router({
107526
+ var zeroLocalBrowserDevicePollContract = c28.router({
107377
107527
  poll: {
107378
107528
  method: "POST",
107379
107529
  path: "/api/zero/local-browser/device/poll",
@@ -107388,7 +107538,7 @@ var zeroLocalBrowserDevicePollContract = c27.router({
107388
107538
  summary: "Poll a local-browser device pairing flow"
107389
107539
  }
107390
107540
  });
107391
- var zeroLocalBrowserDeviceClaimContract = c27.router({
107541
+ var zeroLocalBrowserDeviceClaimContract = c28.router({
107392
107542
  claim: {
107393
107543
  method: "POST",
107394
107544
  path: "/api/zero/local-browser/device/claim",
@@ -107407,7 +107557,7 @@ var zeroLocalBrowserDeviceClaimContract = c27.router({
107407
107557
  summary: "Approve a local-browser device pairing flow"
107408
107558
  }
107409
107559
  });
107410
- var zeroLocalBrowserHeartbeatContract = c27.router({
107560
+ var zeroLocalBrowserHeartbeatContract = c28.router({
107411
107561
  heartbeat: {
107412
107562
  method: "POST",
107413
107563
  path: "/api/zero/local-browser/heartbeat",
@@ -107421,7 +107571,7 @@ var zeroLocalBrowserHeartbeatContract = c27.router({
107421
107571
  summary: "Refresh a linked local-browser host heartbeat"
107422
107572
  }
107423
107573
  });
107424
- var zeroLocalBrowserHostRealtimeContract = c27.router({
107574
+ var zeroLocalBrowserHostRealtimeContract = c28.router({
107425
107575
  create: {
107426
107576
  method: "POST",
107427
107577
  path: "/api/zero/local-browser/host/realtime-token",
@@ -107434,7 +107584,7 @@ var zeroLocalBrowserHostRealtimeContract = c27.router({
107434
107584
  summary: "Get Ably token for local-browser command wakeups"
107435
107585
  }
107436
107586
  });
107437
- var zeroLocalBrowserHostsContract = c27.router({
107587
+ var zeroLocalBrowserHostsContract = c28.router({
107438
107588
  start: {
107439
107589
  method: "POST",
107440
107590
  path: "/api/zero/local-browser/hosts/start",
@@ -107469,7 +107619,7 @@ var zeroLocalBrowserHostsContract = c27.router({
107469
107619
  hostId: external_exports.string().min(1)
107470
107620
  }),
107471
107621
  headers: authHeadersSchema,
107472
- body: c27.noBody(),
107622
+ body: c28.noBody(),
107473
107623
  responses: {
107474
107624
  200: localBrowserHostDeleteResponseSchema,
107475
107625
  401: apiErrorSchema,
@@ -107479,7 +107629,7 @@ var zeroLocalBrowserHostsContract = c27.router({
107479
107629
  summary: "Delete a local-browser host"
107480
107630
  }
107481
107631
  });
107482
- var zeroLocalBrowserAuditEventsContract = c27.router({
107632
+ var zeroLocalBrowserAuditEventsContract = c28.router({
107483
107633
  list: {
107484
107634
  method: "GET",
107485
107635
  path: "/api/zero/local-browser/audit-events",
@@ -107498,12 +107648,12 @@ var zeroLocalBrowserAuditEventsContract = c27.router({
107498
107648
  summary: "List local-browser write command audit events"
107499
107649
  }
107500
107650
  });
107501
- var zeroLocalBrowserHostSelfContract = c27.router({
107651
+ var zeroLocalBrowserHostSelfContract = c28.router({
107502
107652
  delete: {
107503
107653
  method: "DELETE",
107504
107654
  path: "/api/zero/local-browser/host",
107505
107655
  headers: authHeadersSchema,
107506
- body: c27.noBody(),
107656
+ body: c28.noBody(),
107507
107657
  responses: {
107508
107658
  200: localBrowserHostDeleteResponseSchema,
107509
107659
  401: apiErrorSchema
@@ -107511,7 +107661,7 @@ var zeroLocalBrowserHostSelfContract = c27.router({
107511
107661
  summary: "Revoke the current local-browser host token"
107512
107662
  }
107513
107663
  });
107514
- var zeroLocalBrowserCommandContract = c27.router({
107664
+ var zeroLocalBrowserCommandContract = c28.router({
107515
107665
  create: {
107516
107666
  method: "POST",
107517
107667
  path: "/api/zero/local-browser/commands",
@@ -107543,7 +107693,7 @@ var zeroLocalBrowserCommandContract = c27.router({
107543
107693
  summary: "Get a local-browser command result"
107544
107694
  }
107545
107695
  });
107546
- var zeroLocalBrowserWriteCommandContract = c27.router({
107696
+ var zeroLocalBrowserWriteCommandContract = c28.router({
107547
107697
  create: {
107548
107698
  method: "POST",
107549
107699
  path: "/api/zero/local-browser/write-commands",
@@ -107560,7 +107710,7 @@ var zeroLocalBrowserWriteCommandContract = c27.router({
107560
107710
  summary: "Create an approved-write local-browser command"
107561
107711
  }
107562
107712
  });
107563
- var zeroLocalBrowserCommandApprovalContract = c27.router({
107713
+ var zeroLocalBrowserCommandApprovalContract = c28.router({
107564
107714
  decide: {
107565
107715
  method: "POST",
107566
107716
  path: "/api/zero/local-browser/commands/:commandId/approval",
@@ -107583,7 +107733,7 @@ var zeroLocalBrowserCommandApprovalContract = c27.router({
107583
107733
  summary: "Approve or deny a pending local-browser write command"
107584
107734
  }
107585
107735
  });
107586
- var zeroLocalBrowserHostCommandsContract = c27.router({
107736
+ var zeroLocalBrowserHostCommandsContract = c28.router({
107587
107737
  next: {
107588
107738
  method: "POST",
107589
107739
  path: "/api/zero/local-browser/host/commands/next",
@@ -108614,11 +108764,16 @@ function codexPermissionArgs(mode) {
108614
108764
  }
108615
108765
  throw new Error(`Unsupported Codex permission mode: ${mode}`);
108616
108766
  }
108617
- function executionCommand(backend, prompt, permissionMode) {
108767
+ function executionCommand(backend, prompt, permissionMode, claudeArgs = []) {
108618
108768
  if (backend === "claude-code") {
108619
108769
  return {
108620
108770
  command: "claude",
108621
- args: ["-p", ...claudePermissionArgs(permissionMode), prompt]
108771
+ args: [
108772
+ "-p",
108773
+ ...claudePermissionArgs(permissionMode),
108774
+ ...claudeArgs,
108775
+ prompt
108776
+ ]
108622
108777
  };
108623
108778
  }
108624
108779
  return {
@@ -108637,7 +108792,8 @@ async function executeLocalAgentBackend(params) {
108637
108792
  const { command, args } = executionCommand(
108638
108793
  params.backend,
108639
108794
  params.prompt,
108640
- params.permissionMode
108795
+ params.permissionMode,
108796
+ params.claudeArgs
108641
108797
  );
108642
108798
  return new Promise((resolve2) => {
108643
108799
  const child = safeSpawn(command, args, {
@@ -109255,6 +109411,7 @@ async function runHostLoop(params) {
109255
109411
  backend: nextJob.job.backend,
109256
109412
  prompt: nextJob.job.prompt,
109257
109413
  workdir: params.workdir,
109414
+ claudeArgs: params.claudeArgs,
109258
109415
  permissionMode: params.permissionMode
109259
109416
  });
109260
109417
  await completeLocalAgentHostJob({
@@ -109274,13 +109431,21 @@ async function runHostLoop(params) {
109274
109431
  process.removeListener("SIGTERM", onStop);
109275
109432
  }
109276
109433
  }
109277
- var startCommand = new Command().name("start").description("Start the local-agent host daemon").option("--name <name>", "New host name, or a closed host name to reactivate").option("--workdir <path>", "Working directory for Codex/Claude jobs").option("--backend <backend>", "codex or claude-code for a new host").option("--permission-mode <mode>", "Permission mode for Codex/Claude jobs").option(
109434
+ var startCommand = new Command().name("start").description("Start the local-agent host daemon").option("--name <name>", "New host name, or a closed host name to reactivate").option("--workdir <path>", "Working directory for Codex/Claude jobs").option("--backend <backend>", "codex or claude-code for a new host").option(
109435
+ "--claude-arg <arg>",
109436
+ "Additional argument to pass to Claude Code jobs",
109437
+ (value, previous) => {
109438
+ return [...previous, value];
109439
+ },
109440
+ []
109441
+ ).option("--permission-mode <mode>", "Permission mode for Codex/Claude jobs").option(
109278
109442
  "--host-id <id>",
109279
109443
  "Reactivate a closed host from vm0 local-agent list"
109280
109444
  ).option("--new", "Create a new host registration").action(
109281
109445
  withErrorHandler(async (options) => {
109282
109446
  const requestedHostName = options.name?.trim();
109283
109447
  const workdir = options.workdir?.trim() || process.cwd();
109448
+ const claudeArgs = options.claudeArg ?? [];
109284
109449
  const savedHost = await getLocalAgentHost();
109285
109450
  const selection = await chooseHostForStart({
109286
109451
  requestedHostName,
@@ -109304,6 +109469,9 @@ var startCommand = new Command().name("start").description("Start the local-agen
109304
109469
  probes,
109305
109470
  requestedBackend: options.backend
109306
109471
  }) : await chooseBackend(probes, options.backend);
109472
+ if (claudeArgs.length > 0 && selectedBackend !== "claude-code") {
109473
+ throw new Error("--claude-arg can only be used with Claude Code jobs");
109474
+ }
109307
109475
  const permissionMode = selection.restoredHost ? chooseRestoredPermissionMode({
109308
109476
  backend: selectedBackend,
109309
109477
  requestedPermissionMode: options.permissionMode,
@@ -109342,6 +109510,7 @@ var startCommand = new Command().name("start").description("Start the local-agen
109342
109510
  hostToken: started.hostToken,
109343
109511
  hostName: selection.hostName,
109344
109512
  supportedBackends,
109513
+ claudeArgs,
109345
109514
  permissionMode,
109346
109515
  workdir
109347
109516
  });
@@ -112946,6 +113115,45 @@ var axiomFirewall = {
112946
113115
  ]
112947
113116
  };
112948
113117
 
113118
+ // ../../packages/connectors/src/firewalls/bentoml.generated.ts
113119
+ init_esm_shims();
113120
+ var bentomlFirewall = {
113121
+ name: "bentoml",
113122
+ description: "BentoCloud API and protected deployment endpoints",
113123
+ placeholders: {
113124
+ BENTO_CLOUD_API_KEY: "cur7hCoffeeSafeLocalCoffeeSafeLocalCoffeeSafe"
113125
+ },
113126
+ apis: [
113127
+ {
113128
+ base: "${{ vars.BENTO_CLOUD_API_ENDPOINT }}",
113129
+ auth: {
113130
+ headers: {
113131
+ Authorization: "Bearer ${{ secrets.BENTO_CLOUD_API_KEY }}"
113132
+ }
113133
+ },
113134
+ permissions: []
113135
+ },
113136
+ {
113137
+ base: "https://{deployment+}.bentoml.ai",
113138
+ auth: {
113139
+ headers: {
113140
+ Authorization: "Bearer ${{ secrets.BENTO_CLOUD_API_KEY }}"
113141
+ }
113142
+ },
113143
+ permissions: []
113144
+ },
113145
+ {
113146
+ base: "https://{deployment+}.cloud-apps.bentoml.com",
113147
+ auth: {
113148
+ headers: {
113149
+ Authorization: "Bearer ${{ secrets.BENTO_CLOUD_API_KEY }}"
113150
+ }
113151
+ },
113152
+ permissions: []
113153
+ }
113154
+ ]
113155
+ };
113156
+
112949
113157
  // ../../packages/connectors/src/firewalls/bitrix.generated.ts
112950
113158
  init_esm_shims();
112951
113159
  var bitrixFirewall = {
@@ -118268,6 +118476,44 @@ var redditFirewall = {
118268
118476
  ]
118269
118477
  };
118270
118478
 
118479
+ // ../../packages/connectors/src/firewalls/reap.generated.ts
118480
+ init_esm_shims();
118481
+ var reapFirewall = {
118482
+ name: "reap",
118483
+ description: "Reap API",
118484
+ placeholders: {
118485
+ REAP_API_KEY: "CoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocal"
118486
+ },
118487
+ apis: [
118488
+ {
118489
+ base: "${{ vars.REAP_API_BASE_URL }}",
118490
+ auth: {
118491
+ headers: {
118492
+ Authorization: "Bearer ${{ secrets.REAP_API_KEY }}",
118493
+ "Reap-Version": "2025-02-14"
118494
+ }
118495
+ },
118496
+ permissions: [
118497
+ {
118498
+ name: "read",
118499
+ description: "Read Reap resources",
118500
+ rules: ["GET /{path+}"]
118501
+ },
118502
+ {
118503
+ name: "write",
118504
+ description: "Create, update, and delete Reap resources",
118505
+ rules: [
118506
+ "POST /{path+}",
118507
+ "PUT /{path+}",
118508
+ "PATCH /{path+}",
118509
+ "DELETE /{path+}"
118510
+ ]
118511
+ }
118512
+ ]
118513
+ }
118514
+ ]
118515
+ };
118516
+
118271
118517
  // ../../packages/connectors/src/firewalls/reportei.generated.ts
118272
118518
  init_esm_shims();
118273
118519
  var reporteiFirewall = {
@@ -121842,6 +122088,7 @@ var CONNECTOR_FIREWALLS = {
121842
122088
  attio: attioFirewall,
121843
122089
  atlassian: atlassianFirewall,
121844
122090
  axiom: axiomFirewall,
122091
+ bentoml: bentomlFirewall,
121845
122092
  bitrix: bitrixFirewall,
121846
122093
  "brave-search": braveSearchFirewall,
121847
122094
  brevo: brevoFirewall,
@@ -121960,6 +122207,7 @@ var CONNECTOR_FIREWALLS = {
121960
122207
  qdrant: qdrantFirewall,
121961
122208
  qiita: qiitaFirewall,
121962
122209
  reddit: redditFirewall,
122210
+ reap: reapFirewall,
121963
122211
  reportei: reporteiFirewall,
121964
122212
  replicate: replicateFirewall,
121965
122213
  resend: resendFirewall,
@@ -122109,11 +122357,11 @@ init_esm_shims();
122109
122357
 
122110
122358
  // ../../packages/api-contracts/src/contracts/health.ts
122111
122359
  init_esm_shims();
122112
- var c28 = initContract();
122360
+ var c29 = initContract();
122113
122361
  var healthResponseSchema = external_exports.object({
122114
122362
  status: external_exports.literal("ok")
122115
122363
  });
122116
- var healthContract = c28.router({
122364
+ var healthContract = c29.router({
122117
122365
  check: {
122118
122366
  method: "GET",
122119
122367
  path: "/health",
@@ -122123,7 +122371,7 @@ var healthContract = c28.router({
122123
122371
  summary: "Check API health"
122124
122372
  }
122125
122373
  });
122126
- var healthAuthContract = c28.router({
122374
+ var healthAuthContract = c29.router({
122127
122375
  check: {
122128
122376
  method: "GET",
122129
122377
  path: "/health/auth",
@@ -122142,40 +122390,6 @@ var healthAuthContract = c28.router({
122142
122390
  }
122143
122391
  });
122144
122392
 
122145
- // ../../packages/api-contracts/src/contracts/zero-model-policies.ts
122146
- init_esm_shims();
122147
- var c29 = initContract();
122148
- var zeroModelPoliciesMainContract = c29.router({
122149
- list: {
122150
- method: "GET",
122151
- path: "/api/zero/model-policies",
122152
- headers: authHeadersSchema,
122153
- responses: {
122154
- 200: orgModelPoliciesResponseSchema,
122155
- 401: apiErrorSchema,
122156
- 403: apiErrorSchema,
122157
- 404: apiErrorSchema,
122158
- 500: apiErrorSchema
122159
- },
122160
- summary: "List org model-first policies"
122161
- },
122162
- update: {
122163
- method: "PUT",
122164
- path: "/api/zero/model-policies",
122165
- headers: authHeadersSchema,
122166
- body: updateOrgModelPoliciesRequestSchema,
122167
- responses: {
122168
- 200: orgModelPoliciesResponseSchema,
122169
- 400: apiErrorSchema,
122170
- 401: apiErrorSchema,
122171
- 403: apiErrorSchema,
122172
- 404: apiErrorSchema,
122173
- 500: apiErrorSchema
122174
- },
122175
- summary: "Update org model-first policies"
122176
- }
122177
- });
122178
-
122179
122393
  // ../../packages/api-contracts/src/contracts/zero-user-model-preference.ts
122180
122394
  init_esm_shims();
122181
122395
  var c30 = initContract();
@@ -124330,9 +124544,20 @@ var customConnectorResponseSchema = external_exports.object({
124330
124544
  var customConnectorListResponseSchema = external_exports.object({
124331
124545
  connectors: external_exports.array(customConnectorResponseSchema)
124332
124546
  });
124547
+ var customConnectorPrefixSchema = external_exports.string().min(1).refine(
124548
+ (value) => {
124549
+ try {
124550
+ new URL(value);
124551
+ return true;
124552
+ } catch {
124553
+ return false;
124554
+ }
124555
+ },
124556
+ { message: "Invalid URL" }
124557
+ );
124333
124558
  var createCustomConnectorBodySchema = external_exports.object({
124334
124559
  displayName: external_exports.string().min(1).max(128),
124335
- prefixes: external_exports.array(external_exports.string().url()).min(1),
124560
+ prefixes: external_exports.array(customConnectorPrefixSchema).min(1),
124336
124561
  headerName: external_exports.string().min(1).max(128),
124337
124562
  headerTemplate: external_exports.string().min(1),
124338
124563
  slug: external_exports.string().optional()
@@ -126868,6 +127093,11 @@ var FEATURE_SWITCHES = {
126868
127093
  description: "Enable the Ahrefs SEO connector",
126869
127094
  enabled: false
126870
127095
  },
127096
+ ["bentomlConnector" /* BentomlConnector */]: {
127097
+ maintainer: "ethan@vm0.ai",
127098
+ description: "Enable the BentoML model serving connector",
127099
+ enabled: false
127100
+ },
126871
127101
  ["canvaConnector" /* CanvaConnector */]: {
126872
127102
  maintainer: "ethan@vm0.ai",
126873
127103
  description: "Enable the Canva design connector",
@@ -126961,7 +127191,8 @@ var FEATURE_SWITCHES = {
126961
127191
  ["cliAuthStripe" /* CliAuthStripe */]: {
126962
127192
  maintainer: "liangyou@vm0.ai",
126963
127193
  description: "Gate Stripe-specific CLI auth UI and API surfaces.",
126964
- enabled: false
127194
+ enabled: false,
127195
+ enabledOrgIdHashes: STAFF_ORG_ID_HASHES
126965
127196
  },
126966
127197
  ["posthogConnector" /* PosthogConnector */]: {
126967
127198
  maintainer: "ethan@vm0.ai",
@@ -128543,6 +128774,7 @@ export {
128543
128774
  listZeroOrgVariables,
128544
128775
  setZeroOrgVariable,
128545
128776
  deleteZeroOrgVariable,
128777
+ getVm0ModelMultiplier,
128546
128778
  MODEL_PROVIDER_TYPES,
128547
128779
  getSelectableProviderTypes,
128548
128780
  hasAuthMethods,
@@ -128552,6 +128784,7 @@ export {
128552
128784
  listZeroOrgModelProviders,
128553
128785
  upsertZeroOrgModelProvider,
128554
128786
  deleteZeroOrgModelProvider,
128787
+ listZeroModelPolicies,
128555
128788
  zeroAgentCustomSkillNameSchema,
128556
128789
  createZeroAgent,
128557
128790
  listZeroAgents,
@@ -128670,4 +128903,4 @@ undici/lib/web/fetch/body.js:
128670
128903
  undici/lib/web/websocket/frame.js:
128671
128904
  (*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *)
128672
128905
  */
128673
- //# sourceMappingURL=chunk-4F34B6ZK.js.map
128906
+ //# sourceMappingURL=chunk-EESCNG6H.js.map