@vm0/cli 9.155.0 → 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.155.0",
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.155.0",
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",
@@ -100144,13 +100213,14 @@ var stripe = {
100144
100213
  },
100145
100214
  "cli-auth": {
100146
100215
  featureFlag: "cliAuthStripe" /* CliAuthStripe */,
100147
- label: "Stripe CLI",
100148
- 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.",
100149
100218
  secrets: {}
100150
100219
  }
100151
100220
  },
100152
100221
  defaultAuthMethod: "oauth",
100153
100222
  cliAuth: {
100223
+ flow: "browser-verification",
100154
100224
  modes: [
100155
100225
  {
100156
100226
  value: "test",
@@ -103662,8 +103732,8 @@ var computerConnectorCreateResponseSchema = external_exports.object({
103662
103732
  });
103663
103733
 
103664
103734
  // ../../packages/api-contracts/src/contracts/zero-connectors.ts
103665
- var c16 = initContract();
103666
- var zeroConnectorsMainContract = c16.router({
103735
+ var c17 = initContract();
103736
+ var zeroConnectorsMainContract = c17.router({
103667
103737
  list: {
103668
103738
  method: "GET",
103669
103739
  path: "/api/zero/connectors",
@@ -103677,7 +103747,7 @@ var zeroConnectorsMainContract = c16.router({
103677
103747
  summary: "List all connectors (zero proxy)"
103678
103748
  }
103679
103749
  });
103680
- var zeroConnectorsByTypeContract = c16.router({
103750
+ var zeroConnectorsByTypeContract = c17.router({
103681
103751
  get: {
103682
103752
  method: "GET",
103683
103753
  path: "/api/zero/connectors/:type",
@@ -103697,14 +103767,14 @@ var zeroConnectorsByTypeContract = c16.router({
103697
103767
  headers: authHeadersSchema,
103698
103768
  pathParams: external_exports.object({ type: connectorTypeSchema }),
103699
103769
  responses: {
103700
- 204: c16.noBody(),
103770
+ 204: c17.noBody(),
103701
103771
  401: apiErrorSchema,
103702
103772
  404: apiErrorSchema
103703
103773
  },
103704
103774
  summary: "Disconnect a connector (zero proxy)"
103705
103775
  }
103706
103776
  });
103707
- var zeroConnectorScopeDiffContract = c16.router({
103777
+ var zeroConnectorScopeDiffContract = c17.router({
103708
103778
  getScopeDiff: {
103709
103779
  method: "GET",
103710
103780
  path: "/api/zero/connectors/:type/scope-diff",
@@ -103719,7 +103789,7 @@ var zeroConnectorScopeDiffContract = c16.router({
103719
103789
  summary: "Get scope diff for a connector"
103720
103790
  }
103721
103791
  });
103722
- var zeroConnectorAuthorizeContract = c16.router({
103792
+ var zeroConnectorAuthorizeContract = c17.router({
103723
103793
  authorize: {
103724
103794
  method: "GET",
103725
103795
  path: "/api/zero/connectors/:type/authorize",
@@ -103727,9 +103797,9 @@ var zeroConnectorAuthorizeContract = c16.router({
103727
103797
  pathParams: external_exports.object({ type: external_exports.string() }),
103728
103798
  query: external_exports.object({ session: external_exports.string().optional() }),
103729
103799
  responses: {
103730
- 307: c16.noBody(),
103800
+ 307: c17.noBody(),
103731
103801
  400: external_exports.object({ error: external_exports.string() }),
103732
- 401: c16.noBody(),
103802
+ 401: c17.noBody(),
103733
103803
  500: external_exports.object({ error: external_exports.string() })
103734
103804
  },
103735
103805
  summary: "Start connector OAuth authorization (zero proxy)"
@@ -103750,7 +103820,7 @@ var connectorSearchItemSchema = external_exports.object({
103750
103820
  var connectorSearchResponseSchema = external_exports.object({
103751
103821
  connectors: external_exports.array(connectorSearchItemSchema)
103752
103822
  });
103753
- var zeroConnectorsSearchContract = c16.router({
103823
+ var zeroConnectorsSearchContract = c17.router({
103754
103824
  search: {
103755
103825
  method: "GET",
103756
103826
  path: "/api/zero/connectors/search",
@@ -103764,7 +103834,7 @@ var zeroConnectorsSearchContract = c16.router({
103764
103834
  summary: "Search available connector types"
103765
103835
  }
103766
103836
  });
103767
- var zeroConnectorSessionsContract = c16.router({
103837
+ var zeroConnectorSessionsContract = c17.router({
103768
103838
  create: {
103769
103839
  method: "POST",
103770
103840
  path: "/api/zero/connectors/:type/sessions",
@@ -103779,7 +103849,7 @@ var zeroConnectorSessionsContract = c16.router({
103779
103849
  summary: "Create connector session for device flow (zero proxy)"
103780
103850
  }
103781
103851
  });
103782
- var zeroConnectorSessionByIdContract = c16.router({
103852
+ var zeroConnectorSessionByIdContract = c17.router({
103783
103853
  get: {
103784
103854
  method: "GET",
103785
103855
  path: "/api/zero/connectors/:type/sessions/:sessionId",
@@ -103797,7 +103867,7 @@ var zeroConnectorSessionByIdContract = c16.router({
103797
103867
  summary: "Get connector session status (zero proxy)"
103798
103868
  }
103799
103869
  });
103800
- var zeroComputerConnectorContract = c16.router({
103870
+ var zeroComputerConnectorContract = c17.router({
103801
103871
  create: {
103802
103872
  method: "POST",
103803
103873
  path: "/api/zero/connectors/computer",
@@ -103828,14 +103898,14 @@ var zeroComputerConnectorContract = c16.router({
103828
103898
  path: "/api/zero/connectors/computer",
103829
103899
  headers: authHeadersSchema,
103830
103900
  responses: {
103831
- 204: c16.noBody(),
103901
+ 204: c17.noBody(),
103832
103902
  401: apiErrorSchema,
103833
103903
  404: apiErrorSchema
103834
103904
  },
103835
103905
  summary: "Delete computer connector (zero proxy)"
103836
103906
  }
103837
103907
  });
103838
- var zeroLocalAgentConnectorContract = c16.router({
103908
+ var zeroLocalAgentConnectorContract = c17.router({
103839
103909
  create: {
103840
103910
  method: "POST",
103841
103911
  path: "/api/zero/connectors/local-agent",
@@ -103851,7 +103921,7 @@ var zeroLocalAgentConnectorContract = c16.router({
103851
103921
  summary: "Connect local-agent connector"
103852
103922
  }
103853
103923
  });
103854
- var zeroLocalBrowserConnectorContract = c16.router({
103924
+ var zeroLocalBrowserConnectorContract = c17.router({
103855
103925
  create: {
103856
103926
  method: "POST",
103857
103927
  path: "/api/zero/connectors/local-browser",
@@ -103913,7 +103983,7 @@ import { pipeline } from "stream/promises";
103913
103983
 
103914
103984
  // ../../packages/api-contracts/src/contracts/integrations.ts
103915
103985
  init_esm_shims();
103916
- var c17 = initContract();
103986
+ var c18 = initContract();
103917
103987
  var sendSlackMessageBodySchema = external_exports.object({
103918
103988
  channel: external_exports.string().min(1, "Channel ID is required").optional(),
103919
103989
  user: external_exports.string().min(1, "User ID is required").optional(),
@@ -103931,7 +104001,7 @@ var sendSlackMessageResponseSchema = external_exports.object({
103931
104001
  ts: external_exports.string().optional(),
103932
104002
  channel: external_exports.string().optional()
103933
104003
  });
103934
- var integrationsSlackMessageContract = c17.router({
104004
+ var integrationsSlackMessageContract = c18.router({
103935
104005
  sendMessage: {
103936
104006
  method: "POST",
103937
104007
  path: "/api/zero/integrations/slack/message",
@@ -103959,7 +104029,7 @@ var sendTelegramMessageResponseSchema = external_exports.object({
103959
104029
  messageId: external_exports.number().int(),
103960
104030
  chatId: external_exports.string()
103961
104031
  });
103962
- var integrationsTelegramMessageContract = c17.router({
104032
+ var integrationsTelegramMessageContract = c18.router({
103963
104033
  sendMessage: {
103964
104034
  method: "POST",
103965
104035
  path: "/api/zero/integrations/telegram/message",
@@ -103987,7 +104057,7 @@ var sendPhoneMessageResponseSchema = external_exports.object({
103987
104057
  channel: external_exports.string().nullable(),
103988
104058
  toNumber: external_exports.string()
103989
104059
  });
103990
- var integrationsPhoneMessageContract = c17.router({
104060
+ var integrationsPhoneMessageContract = c18.router({
103991
104061
  sendMessage: {
103992
104062
  method: "POST",
103993
104063
  path: "/api/zero/integrations/phone/message",
@@ -104007,14 +104077,14 @@ var integrationsPhoneMessageContract = c17.router({
104007
104077
  var phoneDownloadFileQuerySchema = external_exports.object({
104008
104078
  file_id: external_exports.string().min(1, "file_id query parameter is required")
104009
104079
  });
104010
- var integrationsPhoneDownloadFileContract = c17.router({
104080
+ var integrationsPhoneDownloadFileContract = c18.router({
104011
104081
  download: {
104012
104082
  method: "GET",
104013
104083
  path: "/api/zero/integrations/phone/download-file",
104014
104084
  headers: authHeadersSchema,
104015
104085
  query: phoneDownloadFileQuerySchema,
104016
104086
  responses: {
104017
- 200: c17.type(),
104087
+ 200: c18.type(),
104018
104088
  400: apiErrorSchema,
104019
104089
  401: apiErrorSchema,
104020
104090
  403: apiErrorSchema,
@@ -104049,7 +104119,7 @@ var telegramBotListItemSchema = external_exports.object({
104049
104119
  var listTelegramBotsResponseSchema = external_exports.object({
104050
104120
  bots: external_exports.array(telegramBotListItemSchema)
104051
104121
  });
104052
- var integrationsTelegramBotListContract = c17.router({
104122
+ var integrationsTelegramBotListContract = c18.router({
104053
104123
  listBots: {
104054
104124
  method: "GET",
104055
104125
  path: "/api/zero/integrations/telegram/bots",
@@ -104070,7 +104140,7 @@ var slackUploadInitResponseSchema = external_exports.object({
104070
104140
  uploadUrl: external_exports.string(),
104071
104141
  fileId: external_exports.string()
104072
104142
  });
104073
- var integrationsSlackUploadInitContract = c17.router({
104143
+ var integrationsSlackUploadInitContract = c18.router({
104074
104144
  init: {
104075
104145
  method: "POST",
104076
104146
  path: "/api/zero/integrations/slack/upload-file/init",
@@ -104099,7 +104169,7 @@ var telegramUploadInitResponseSchema = external_exports.object({
104099
104169
  contentType: external_exports.string(),
104100
104170
  size: external_exports.number().int().nonnegative()
104101
104171
  });
104102
- var integrationsTelegramUploadInitContract = c17.router({
104172
+ var integrationsTelegramUploadInitContract = c18.router({
104103
104173
  init: {
104104
104174
  method: "POST",
104105
104175
  path: "/api/zero/integrations/telegram/upload-file/init",
@@ -104131,7 +104201,7 @@ var telegramUploadCompleteResponseSchema = external_exports.object({
104131
104201
  size: external_exports.number().int().nonnegative(),
104132
104202
  url: external_exports.string()
104133
104203
  });
104134
- var integrationsTelegramUploadCompleteContract = c17.router({
104204
+ var integrationsTelegramUploadCompleteContract = c18.router({
104135
104205
  complete: {
104136
104206
  method: "POST",
104137
104207
  path: "/api/zero/integrations/telegram/upload-file/complete",
@@ -104161,7 +104231,7 @@ var phoneUploadInitResponseSchema = external_exports.object({
104161
104231
  contentType: external_exports.string(),
104162
104232
  size: external_exports.number().int().nonnegative()
104163
104233
  });
104164
- var integrationsPhoneUploadInitContract = c17.router({
104234
+ var integrationsPhoneUploadInitContract = c18.router({
104165
104235
  init: {
104166
104236
  method: "POST",
104167
104237
  path: "/api/zero/integrations/phone/upload-file/init",
@@ -104192,7 +104262,7 @@ var phoneUploadCompleteResponseSchema = external_exports.object({
104192
104262
  size: external_exports.number().int().nonnegative(),
104193
104263
  url: external_exports.string()
104194
104264
  });
104195
- var integrationsPhoneUploadCompleteContract = c17.router({
104265
+ var integrationsPhoneUploadCompleteContract = c18.router({
104196
104266
  complete: {
104197
104267
  method: "POST",
104198
104268
  path: "/api/zero/integrations/phone/upload-file/complete",
@@ -104236,7 +104306,7 @@ var sendChatMessageResponseSchema = external_exports.object({
104236
104306
  threadId: external_exports.string(),
104237
104307
  createdAt: external_exports.string()
104238
104308
  });
104239
- var integrationsChatMessageContract = c17.router({
104309
+ var integrationsChatMessageContract = c18.router({
104240
104310
  sendMessage: {
104241
104311
  method: "POST",
104242
104312
  path: "/api/zero/integrations/chat/message",
@@ -104252,7 +104322,7 @@ var integrationsChatMessageContract = c17.router({
104252
104322
  summary: "Send a message to a web chat thread"
104253
104323
  }
104254
104324
  });
104255
- var integrationsSlackUploadCompleteContract = c17.router({
104325
+ var integrationsSlackUploadCompleteContract = c18.router({
104256
104326
  complete: {
104257
104327
  method: "POST",
104258
104328
  path: "/api/zero/integrations/slack/upload-file/complete",
@@ -104520,7 +104590,7 @@ init_esm_shims();
104520
104590
 
104521
104591
  // ../../packages/api-contracts/src/contracts/zero-schedules.ts
104522
104592
  init_esm_shims();
104523
- var c18 = initContract();
104593
+ var c19 = initContract();
104524
104594
  var scheduleResponseSchema = external_exports.object({
104525
104595
  id: external_exports.string().uuid(),
104526
104596
  agentId: external_exports.string().uuid(),
@@ -104583,7 +104653,7 @@ var zeroDeployScheduleRequestSchema = external_exports.object({
104583
104653
  message: "Exactly one of 'cronExpression', 'atTime', or 'intervalSeconds' must be specified"
104584
104654
  }
104585
104655
  );
104586
- var zeroSchedulesMainContract = c18.router({
104656
+ var zeroSchedulesMainContract = c19.router({
104587
104657
  deploy: {
104588
104658
  method: "POST",
104589
104659
  path: "/api/zero/schedules",
@@ -104611,7 +104681,7 @@ var zeroSchedulesMainContract = c18.router({
104611
104681
  summary: "List all schedules (zero proxy)"
104612
104682
  }
104613
104683
  });
104614
- var zeroSchedulesByNameContract = c18.router({
104684
+ var zeroSchedulesByNameContract = c19.router({
104615
104685
  delete: {
104616
104686
  method: "DELETE",
104617
104687
  path: "/api/zero/schedules/:name",
@@ -104623,7 +104693,7 @@ var zeroSchedulesByNameContract = c18.router({
104623
104693
  agentId: external_exports.string().uuid("Invalid agent ID")
104624
104694
  }),
104625
104695
  responses: {
104626
- 204: c18.noBody(),
104696
+ 204: c19.noBody(),
104627
104697
  400: apiErrorSchema,
104628
104698
  401: apiErrorSchema,
104629
104699
  403: apiErrorSchema,
@@ -104632,7 +104702,7 @@ var zeroSchedulesByNameContract = c18.router({
104632
104702
  summary: "Delete schedule (zero proxy)"
104633
104703
  }
104634
104704
  });
104635
- var zeroSchedulesEnableContract = c18.router({
104705
+ var zeroSchedulesEnableContract = c19.router({
104636
104706
  enable: {
104637
104707
  method: "POST",
104638
104708
  path: "/api/zero/schedules/:name/enable",
@@ -104672,7 +104742,7 @@ var zeroSchedulesEnableContract = c18.router({
104672
104742
  summary: "Disable schedule (zero proxy)"
104673
104743
  }
104674
104744
  });
104675
- var zeroScheduleRunContract = c18.router({
104745
+ var zeroScheduleRunContract = c19.router({
104676
104746
  run: {
104677
104747
  method: "POST",
104678
104748
  path: "/api/zero/schedules/run",
@@ -104798,7 +104868,7 @@ init_esm_shims();
104798
104868
 
104799
104869
  // ../../packages/api-contracts/src/contracts/runners.ts
104800
104870
  init_esm_shims();
104801
- var c19 = initContract();
104871
+ var c20 = initContract();
104802
104872
  var runnerGroupSchema = external_exports.string().regex(
104803
104873
  /^[a-z0-9-]+\/[a-z0-9-]+$/,
104804
104874
  "Runner group must be in vm0/<name> format (e.g., vm0/production)"
@@ -104812,7 +104882,7 @@ var jobSchema = external_exports.object({
104812
104882
  checkpointId: external_exports.uuid().nullable(),
104813
104883
  experimentalProfile: external_exports.string().optional()
104814
104884
  });
104815
- var runnersPollContract = c19.router({
104885
+ var runnersPollContract = c20.router({
104816
104886
  poll: {
104817
104887
  method: "POST",
104818
104888
  path: "/api/runners/poll",
@@ -104953,7 +105023,7 @@ var executionContextSchema = external_exports.object({
104953
105023
  billableFirewalls: external_exports.array(external_exports.string()).optional(),
104954
105024
  modelUsageProvider: external_exports.string().optional()
104955
105025
  });
104956
- var runnersJobClaimContract = c19.router({
105026
+ var runnersJobClaimContract = c20.router({
104957
105027
  claim: {
104958
105028
  method: "POST",
104959
105029
  path: "/api/runners/jobs/:id/claim",
@@ -104990,7 +105060,7 @@ var heartbeatBodySchema = external_exports.object({
104990
105060
  heldSessions: external_exports.array(external_exports.string()),
104991
105061
  mode: external_exports.enum(["running", "draining", "stopping"])
104992
105062
  });
104993
- var runnersHeartbeatContract = c19.router({
105063
+ var runnersHeartbeatContract = c20.router({
104994
105064
  heartbeat: {
104995
105065
  method: "POST",
104996
105066
  path: "/api/runners/heartbeat",
@@ -105007,17 +105077,17 @@ var runnersHeartbeatContract = c19.router({
105007
105077
  });
105008
105078
 
105009
105079
  // ../../packages/api-contracts/src/contracts/webhooks.ts
105010
- var c20 = initContract();
105080
+ var c21 = initContract();
105011
105081
  var thirdPartyWebhookErrorSchema = external_exports.object({ error: external_exports.string() });
105012
105082
  var thirdPartyWebhookOkSchema = external_exports.union([
105013
105083
  external_exports.string(),
105014
105084
  external_exports.object({ message: external_exports.literal("pong") })
105015
105085
  ]);
105016
- var webhookClerkContract = c20.router({
105086
+ var webhookClerkContract = c21.router({
105017
105087
  post: {
105018
105088
  method: "POST",
105019
105089
  path: "/api/webhooks/clerk",
105020
- body: c20.type(),
105090
+ body: c21.type(),
105021
105091
  responses: {
105022
105092
  200: thirdPartyWebhookOkSchema,
105023
105093
  401: thirdPartyWebhookErrorSchema
@@ -105025,11 +105095,11 @@ var webhookClerkContract = c20.router({
105025
105095
  summary: "Handle Clerk organization and user webhooks"
105026
105096
  }
105027
105097
  });
105028
- var webhookGithubContract = c20.router({
105098
+ var webhookGithubContract = c21.router({
105029
105099
  post: {
105030
105100
  method: "POST",
105031
105101
  path: "/api/webhooks/github",
105032
- body: c20.type(),
105102
+ body: c21.type(),
105033
105103
  responses: {
105034
105104
  200: thirdPartyWebhookOkSchema,
105035
105105
  400: thirdPartyWebhookErrorSchema,
@@ -105039,11 +105109,11 @@ var webhookGithubContract = c20.router({
105039
105109
  summary: "Handle GitHub App webhooks"
105040
105110
  }
105041
105111
  });
105042
- var webhookStripeContract = c20.router({
105112
+ var webhookStripeContract = c21.router({
105043
105113
  post: {
105044
105114
  method: "POST",
105045
105115
  path: "/api/webhooks/stripe",
105046
- body: c20.type(),
105116
+ body: c21.type(),
105047
105117
  responses: {
105048
105118
  200: thirdPartyWebhookOkSchema,
105049
105119
  401: thirdPartyWebhookErrorSchema,
@@ -105093,7 +105163,7 @@ var firewallAuthResponseSchema = external_exports.object({
105093
105163
  refreshedConnectors: external_exports.array(external_exports.string()),
105094
105164
  refreshedSecrets: external_exports.array(external_exports.string())
105095
105165
  });
105096
- var webhookFirewallAuthContract = c20.router({
105166
+ var webhookFirewallAuthContract = c21.router({
105097
105167
  /**
105098
105168
  * POST /api/webhooks/agent/firewall/auth
105099
105169
  * Resolve firewall auth templates and refresh OAuth tokens on demand.
@@ -105128,7 +105198,7 @@ var webhookFirewallAuthContract = c20.router({
105128
105198
  summary: "Resolve firewall auth templates"
105129
105199
  }
105130
105200
  });
105131
- var webhookEventsContract = c20.router({
105201
+ var webhookEventsContract = c21.router({
105132
105202
  /**
105133
105203
  * POST /api/webhooks/agent/events
105134
105204
  * Receive agent events from sandbox
@@ -105155,7 +105225,7 @@ var webhookEventsContract = c20.router({
105155
105225
  summary: "Receive agent events from sandbox"
105156
105226
  }
105157
105227
  });
105158
- var webhookCompleteContract = c20.router({
105228
+ var webhookCompleteContract = c21.router({
105159
105229
  /**
105160
105230
  * POST /api/webhooks/agent/complete
105161
105231
  * Handle agent run completion (success or failure)
@@ -105192,7 +105262,7 @@ var webhookCompleteContract = c20.router({
105192
105262
  summary: "Handle agent run completion"
105193
105263
  }
105194
105264
  });
105195
- var webhookCheckpointsContract = c20.router({
105265
+ var webhookCheckpointsContract = c21.router({
105196
105266
  /**
105197
105267
  * POST /api/webhooks/agent/checkpoints
105198
105268
  * Create a recoverable checkpoint for an agent run.
@@ -105231,7 +105301,7 @@ var webhookCheckpointsContract = c20.router({
105231
105301
  summary: "Create checkpoint for agent run"
105232
105302
  }
105233
105303
  });
105234
- var webhookCheckpointsPrepareHistoryContract = c20.router({
105304
+ var webhookCheckpointsPrepareHistoryContract = c21.router({
105235
105305
  prepare: {
105236
105306
  method: "POST",
105237
105307
  path: "/api/webhooks/agent/checkpoints/prepare-history",
@@ -105254,7 +105324,7 @@ var webhookCheckpointsPrepareHistoryContract = c20.router({
105254
105324
  summary: "Get presigned URL for uploading session history to S3"
105255
105325
  }
105256
105326
  });
105257
- var webhookHeartbeatContract = c20.router({
105327
+ var webhookHeartbeatContract = c21.router({
105258
105328
  /**
105259
105329
  * POST /api/webhooks/agent/heartbeat
105260
105330
  * Receive heartbeat signals from sandbox
@@ -105278,7 +105348,7 @@ var webhookHeartbeatContract = c20.router({
105278
105348
  summary: "Receive heartbeat from sandbox"
105279
105349
  }
105280
105350
  });
105281
- var webhookStoragesContract = c20.router({
105351
+ var webhookStoragesContract = c21.router({
105282
105352
  /**
105283
105353
  * POST /api/webhooks/agent/storages
105284
105354
  * Create a new version of a storage from sandbox
@@ -105294,7 +105364,7 @@ var webhookStoragesContract = c20.router({
105294
105364
  path: "/api/webhooks/agent/storages",
105295
105365
  headers: authHeadersSchema,
105296
105366
  contentType: "multipart/form-data",
105297
- body: c20.type(),
105367
+ body: c21.type(),
105298
105368
  responses: {
105299
105369
  200: external_exports.object({
105300
105370
  versionId: external_exports.string(),
@@ -105310,7 +105380,7 @@ var webhookStoragesContract = c20.router({
105310
105380
  summary: "Upload storage version from sandbox"
105311
105381
  }
105312
105382
  });
105313
- var webhookStoragesIncrementalContract = c20.router({
105383
+ var webhookStoragesIncrementalContract = c21.router({
105314
105384
  /**
105315
105385
  * POST /api/webhooks/agent/storages/incremental
105316
105386
  * Create a new version using incremental upload
@@ -105328,7 +105398,7 @@ var webhookStoragesIncrementalContract = c20.router({
105328
105398
  path: "/api/webhooks/agent/storages/incremental",
105329
105399
  headers: authHeadersSchema,
105330
105400
  contentType: "multipart/form-data",
105331
- body: c20.type(),
105401
+ body: c21.type(),
105332
105402
  responses: {
105333
105403
  200: external_exports.object({
105334
105404
  versionId: external_exports.string(),
@@ -105366,7 +105436,7 @@ var sandboxOperationSchema = external_exports.object({
105366
105436
  success: external_exports.boolean(),
105367
105437
  error: external_exports.string().optional()
105368
105438
  });
105369
- var webhookTelemetryContract = c20.router({
105439
+ var webhookTelemetryContract = c21.router({
105370
105440
  /**
105371
105441
  * POST /api/webhooks/agent/telemetry
105372
105442
  * Receive telemetry data (system log, metrics, network logs, and sandbox operations) from sandbox
@@ -105395,7 +105465,7 @@ var webhookTelemetryContract = c20.router({
105395
105465
  summary: "Receive telemetry data from sandbox"
105396
105466
  }
105397
105467
  });
105398
- var webhookStoragesPrepareContract = c20.router({
105468
+ var webhookStoragesPrepareContract = c21.router({
105399
105469
  prepare: {
105400
105470
  method: "POST",
105401
105471
  path: "/api/webhooks/agent/storages/prepare",
@@ -105429,7 +105499,7 @@ var webhookStoragesPrepareContract = c20.router({
105429
105499
  summary: "Prepare for direct S3 upload from sandbox"
105430
105500
  }
105431
105501
  });
105432
- var webhookStoragesCommitContract = c20.router({
105502
+ var webhookStoragesCommitContract = c21.router({
105433
105503
  commit: {
105434
105504
  method: "POST",
105435
105505
  path: "/api/webhooks/agent/storages/commit",
@@ -105471,7 +105541,7 @@ var webhookUsageEventItemSchema = external_exports.object({
105471
105541
  category: external_exports.string().min(1).max(100),
105472
105542
  quantity: external_exports.number().int().min(0)
105473
105543
  }).strict();
105474
- var webhookUsageEventContract = c20.router({
105544
+ var webhookUsageEventContract = c21.router({
105475
105545
  send: {
105476
105546
  method: "POST",
105477
105547
  path: "/api/webhooks/agent/usage-event",
@@ -105507,8 +105577,8 @@ var zeroRunRequestSchema = unifiedRunRequestSchema.omit({
105507
105577
  agentId: external_exports.string().optional(),
105508
105578
  modelProvider: external_exports.string().optional()
105509
105579
  });
105510
- var c21 = initContract();
105511
- var zeroRunsMainContract = c21.router({
105580
+ var c22 = initContract();
105581
+ var zeroRunsMainContract = c22.router({
105512
105582
  create: {
105513
105583
  method: "POST",
105514
105584
  path: "/api/zero/runs",
@@ -105527,7 +105597,7 @@ var zeroRunsMainContract = c21.router({
105527
105597
  summary: "Create and execute agent run (zero proxy)"
105528
105598
  }
105529
105599
  });
105530
- var zeroRunsByIdContract = c21.router({
105600
+ var zeroRunsByIdContract = c22.router({
105531
105601
  getById: {
105532
105602
  method: "GET",
105533
105603
  path: "/api/zero/runs/:id",
@@ -105545,7 +105615,7 @@ var zeroRunsByIdContract = c21.router({
105545
105615
  summary: "Get agent run by ID (zero proxy)"
105546
105616
  }
105547
105617
  });
105548
- var zeroRunsCancelContract = c21.router({
105618
+ var zeroRunsCancelContract = c22.router({
105549
105619
  cancel: {
105550
105620
  method: "POST",
105551
105621
  path: "/api/zero/runs/:id/cancel",
@@ -105564,7 +105634,7 @@ var zeroRunsCancelContract = c21.router({
105564
105634
  summary: "Cancel a pending or running run (zero proxy)"
105565
105635
  }
105566
105636
  });
105567
- var zeroRunsQueueContract = c21.router({
105637
+ var zeroRunsQueueContract = c22.router({
105568
105638
  getQueue: {
105569
105639
  method: "GET",
105570
105640
  path: "/api/zero/runs/queue",
@@ -105577,7 +105647,7 @@ var zeroRunsQueueContract = c21.router({
105577
105647
  summary: "Get org run queue status (zero proxy)"
105578
105648
  }
105579
105649
  });
105580
- var zeroRunAgentEventsContract = c21.router({
105650
+ var zeroRunAgentEventsContract = c22.router({
105581
105651
  getAgentEvents: {
105582
105652
  method: "GET",
105583
105653
  path: "/api/zero/runs/:id/telemetry/agent",
@@ -105639,7 +105709,7 @@ var runContextResponseSchema = external_exports.object({
105639
105709
  artifact: runContextArtifactSchema.nullable(),
105640
105710
  featureFlags: external_exports.record(external_exports.string(), external_exports.boolean()).nullable()
105641
105711
  });
105642
- var zeroRunContextContract = c21.router({
105712
+ var zeroRunContextContract = c22.router({
105643
105713
  getContext: {
105644
105714
  method: "GET",
105645
105715
  path: "/api/zero/runs/:id/context",
@@ -105657,7 +105727,7 @@ var zeroRunContextContract = c21.router({
105657
105727
  summary: "Get run execution context snapshot for debugging"
105658
105728
  }
105659
105729
  });
105660
- var zeroRunNetworkLogsContract = c21.router({
105730
+ var zeroRunNetworkLogsContract = c22.router({
105661
105731
  getNetworkLogs: {
105662
105732
  method: "GET",
105663
105733
  path: "/api/zero/runs/:id/network",
@@ -105683,7 +105753,7 @@ var zeroRunNetworkLogsContract = c21.router({
105683
105753
  var runRunnerResponseSchema = external_exports.object({
105684
105754
  sandboxReuseResult: sandboxReuseResultSchema.nullable()
105685
105755
  });
105686
- var zeroRunRunnerContract = c21.router({
105756
+ var zeroRunRunnerContract = c22.router({
105687
105757
  getRunner: {
105688
105758
  method: "GET",
105689
105759
  path: "/api/zero/runs/:id/runner",
@@ -105701,7 +105771,7 @@ var zeroRunRunnerContract = c21.router({
105701
105771
  summary: "Get runner-level metadata for a run"
105702
105772
  }
105703
105773
  });
105704
- var zeroLogsSearchContract = c21.router({
105774
+ var zeroLogsSearchContract = c22.router({
105705
105775
  searchLogs: {
105706
105776
  method: "GET",
105707
105777
  path: "/api/zero/logs/search",
@@ -105801,7 +105871,7 @@ init_esm_shims();
105801
105871
 
105802
105872
  // ../../packages/api-contracts/src/contracts/chat-threads.ts
105803
105873
  init_esm_shims();
105804
- var c22 = initContract();
105874
+ var c23 = initContract();
105805
105875
  var attachFileSchema = external_exports.object({
105806
105876
  id: external_exports.string(),
105807
105877
  filename: external_exports.string(),
@@ -105966,10 +106036,9 @@ var chatThreadDetailSchema = external_exports.object({
105966
106036
  draftContent: external_exports.string().nullable().optional(),
105967
106037
  draftAttachments: external_exports.array(persistedAttachmentSchema).nullable().optional(),
105968
106038
  /**
105969
- * Per-thread model pin. Provider-first threads store modelProviderId +
105970
- * selectedModel together; model-first threads can store selectedModel with
105971
- * route metadata and a null modelProviderId. When set, the send route uses
105972
- * 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.
105973
106042
  */
105974
106043
  modelProviderId: external_exports.string().nullable().optional(),
105975
106044
  modelProviderType: modelProviderTypeSchema.nullable().optional(),
@@ -105986,7 +106055,7 @@ var modelSelectionRequestSchema = external_exports.object({
105986
106055
  modelProviderId: external_exports.string().uuid(),
105987
106056
  selectedModel: external_exports.string().min(1)
105988
106057
  });
105989
- var chatThreadsContract = c22.router({
106058
+ var chatThreadsContract = c23.router({
105990
106059
  create: {
105991
106060
  method: "POST",
105992
106061
  path: "/api/zero/chat-threads",
@@ -106022,7 +106091,7 @@ var chatThreadsContract = c22.router({
106022
106091
  summary: "List chat threads. When agentId is omitted, returns every thread the caller owns scoped by orgId."
106023
106092
  }
106024
106093
  });
106025
- var chatThreadByIdContract = c22.router({
106094
+ var chatThreadByIdContract = c23.router({
106026
106095
  get: {
106027
106096
  method: "GET",
106028
106097
  path: "/api/zero/chat-threads/:id",
@@ -106045,7 +106114,7 @@ var chatThreadByIdContract = c22.router({
106045
106114
  draftAttachments: external_exports.array(persistedAttachmentSchema).nullable().optional()
106046
106115
  }),
106047
106116
  responses: {
106048
- 204: c22.noBody(),
106117
+ 204: c23.noBody(),
106049
106118
  401: apiErrorSchema,
106050
106119
  404: apiErrorSchema
106051
106120
  },
@@ -106057,21 +106126,21 @@ var chatThreadByIdContract = c22.router({
106057
106126
  headers: authHeadersSchema,
106058
106127
  pathParams: external_exports.object({ id: external_exports.string() }),
106059
106128
  responses: {
106060
- 204: c22.noBody(),
106129
+ 204: c23.noBody(),
106061
106130
  401: apiErrorSchema,
106062
106131
  404: apiErrorSchema
106063
106132
  },
106064
106133
  summary: "Delete a chat thread",
106065
- body: c22.noBody()
106134
+ body: c23.noBody()
106066
106135
  }
106067
106136
  });
106068
- var chatThreadMarkReadContract = c22.router({
106137
+ var chatThreadMarkReadContract = c23.router({
106069
106138
  markRead: {
106070
106139
  method: "POST",
106071
106140
  path: "/api/zero/chat-threads/:id/mark-read",
106072
106141
  headers: authHeadersSchema,
106073
106142
  pathParams: external_exports.object({ id: external_exports.string() }),
106074
- body: c22.noBody(),
106143
+ body: c23.noBody(),
106075
106144
  responses: {
106076
106145
  200: external_exports.object({
106077
106146
  lastReadMessageId: external_exports.string().nullable(),
@@ -106083,37 +106152,37 @@ var chatThreadMarkReadContract = c22.router({
106083
106152
  summary: "Mark a chat thread as read up to the latest message"
106084
106153
  }
106085
106154
  });
106086
- var chatThreadPinContract = c22.router({
106155
+ var chatThreadPinContract = c23.router({
106087
106156
  pin: {
106088
106157
  method: "POST",
106089
106158
  path: "/api/zero/chat-threads/:id/pin",
106090
106159
  headers: authHeadersSchema,
106091
106160
  pathParams: external_exports.object({ id: external_exports.string() }),
106092
- body: c22.noBody(),
106161
+ body: c23.noBody(),
106093
106162
  responses: {
106094
- 204: c22.noBody(),
106163
+ 204: c23.noBody(),
106095
106164
  401: apiErrorSchema,
106096
106165
  404: apiErrorSchema
106097
106166
  },
106098
106167
  summary: "Pin a chat thread to the top of the sidebar"
106099
106168
  }
106100
106169
  });
106101
- var chatThreadUnpinContract = c22.router({
106170
+ var chatThreadUnpinContract = c23.router({
106102
106171
  unpin: {
106103
106172
  method: "POST",
106104
106173
  path: "/api/zero/chat-threads/:id/unpin",
106105
106174
  headers: authHeadersSchema,
106106
106175
  pathParams: external_exports.object({ id: external_exports.string() }),
106107
- body: c22.noBody(),
106176
+ body: c23.noBody(),
106108
106177
  responses: {
106109
- 204: c22.noBody(),
106178
+ 204: c23.noBody(),
106110
106179
  401: apiErrorSchema,
106111
106180
  404: apiErrorSchema
106112
106181
  },
106113
106182
  summary: "Remove the pin from a chat thread"
106114
106183
  }
106115
106184
  });
106116
- var chatThreadRenameContract = c22.router({
106185
+ var chatThreadRenameContract = c23.router({
106117
106186
  rename: {
106118
106187
  method: "POST",
106119
106188
  path: "/api/zero/chat-threads/:id/rename",
@@ -106121,14 +106190,14 @@ var chatThreadRenameContract = c22.router({
106121
106190
  pathParams: external_exports.object({ id: external_exports.string() }),
106122
106191
  body: external_exports.object({ title: external_exports.string().min(1) }),
106123
106192
  responses: {
106124
- 204: c22.noBody(),
106193
+ 204: c23.noBody(),
106125
106194
  401: apiErrorSchema,
106126
106195
  404: apiErrorSchema
106127
106196
  },
106128
106197
  summary: "Rename a chat thread (suppresses automated title generation)"
106129
106198
  }
106130
106199
  });
106131
- var chatMessagesContract = c22.router({
106200
+ var chatMessagesContract = c23.router({
106132
106201
  send: {
106133
106202
  method: "POST",
106134
106203
  path: "/api/zero/chat/messages",
@@ -106257,7 +106326,7 @@ var chatSearchResponseSchema = external_exports.object({
106257
106326
  results: external_exports.array(chatSearchResultSchema),
106258
106327
  hasMore: external_exports.boolean()
106259
106328
  });
106260
- var chatSearchContract = c22.router({
106329
+ var chatSearchContract = c23.router({
106261
106330
  search: {
106262
106331
  method: "GET",
106263
106332
  path: "/api/zero/chat/search",
@@ -106279,7 +106348,7 @@ var chatSearchContract = c22.router({
106279
106348
  summary: "Search chat messages within caller's org (zero proxy)"
106280
106349
  }
106281
106350
  });
106282
- var chatThreadMessagesContract = c22.router({
106351
+ var chatThreadMessagesContract = c23.router({
106283
106352
  list: {
106284
106353
  method: "GET",
106285
106354
  path: "/api/zero/chat-threads/:threadId/messages",
@@ -106301,7 +106370,7 @@ var chatThreadMessagesContract = c22.router({
106301
106370
  summary: "Get paginated chat messages for a thread"
106302
106371
  }
106303
106372
  });
106304
- var chatThreadArtifactsContract = c22.router({
106373
+ var chatThreadArtifactsContract = c23.router({
106305
106374
  list: {
106306
106375
  method: "GET",
106307
106376
  path: "/api/zero/chat-threads/:threadId/artifacts",
@@ -106451,7 +106520,7 @@ init_esm_shims();
106451
106520
 
106452
106521
  // ../../packages/api-contracts/src/contracts/zero-developer-support.ts
106453
106522
  init_esm_shims();
106454
- var c23 = initContract();
106523
+ var c24 = initContract();
106455
106524
  var developerSupportBodySchema = external_exports.object({
106456
106525
  title: external_exports.string().min(1, "Title is required"),
106457
106526
  description: external_exports.string().min(1, "Description is required"),
@@ -106463,7 +106532,7 @@ var consentCodeResponseSchema = external_exports.object({
106463
106532
  var submitResponseSchema = external_exports.object({
106464
106533
  reference: external_exports.string()
106465
106534
  });
106466
- var zeroDeveloperSupportContract = c23.router({
106535
+ var zeroDeveloperSupportContract = c24.router({
106467
106536
  submit: {
106468
106537
  method: "POST",
106469
106538
  path: "/api/zero/developer-support",
@@ -106500,7 +106569,7 @@ init_esm_shims();
106500
106569
 
106501
106570
  // ../../packages/api-contracts/src/contracts/zero-computer-use.ts
106502
106571
  init_esm_shims();
106503
- var c24 = initContract();
106572
+ var c25 = initContract();
106504
106573
  var registerResponseSchema = external_exports.object({
106505
106574
  id: external_exports.string(),
106506
106575
  domain: external_exports.string(),
@@ -106512,12 +106581,12 @@ var hostResponseSchema = external_exports.object({
106512
106581
  domain: external_exports.string(),
106513
106582
  token: external_exports.string()
106514
106583
  });
106515
- var zeroComputerUseRegisterContract = c24.router({
106584
+ var zeroComputerUseRegisterContract = c25.router({
106516
106585
  register: {
106517
106586
  method: "POST",
106518
106587
  path: "/api/zero/computer-use/register",
106519
106588
  headers: authHeadersSchema,
106520
- body: c24.noBody(),
106589
+ body: c25.noBody(),
106521
106590
  responses: {
106522
106591
  200: registerResponseSchema,
106523
106592
  401: apiErrorSchema,
@@ -106527,14 +106596,14 @@ var zeroComputerUseRegisterContract = c24.router({
106527
106596
  summary: "Register a computer-use host"
106528
106597
  }
106529
106598
  });
106530
- var zeroComputerUseUnregisterContract = c24.router({
106599
+ var zeroComputerUseUnregisterContract = c25.router({
106531
106600
  unregister: {
106532
106601
  method: "DELETE",
106533
106602
  path: "/api/zero/computer-use/unregister",
106534
106603
  headers: authHeadersSchema,
106535
- body: c24.noBody(),
106604
+ body: c25.noBody(),
106536
106605
  responses: {
106537
- 204: c24.noBody(),
106606
+ 204: c25.noBody(),
106538
106607
  401: apiErrorSchema,
106539
106608
  403: apiErrorSchema,
106540
106609
  404: apiErrorSchema
@@ -106542,7 +106611,7 @@ var zeroComputerUseUnregisterContract = c24.router({
106542
106611
  summary: "Unregister a computer-use host"
106543
106612
  }
106544
106613
  });
106545
- var zeroComputerUseHostContract = c24.router({
106614
+ var zeroComputerUseHostContract = c25.router({
106546
106615
  getHost: {
106547
106616
  method: "GET",
106548
106617
  path: "/api/zero/computer-use/host",
@@ -106597,7 +106666,7 @@ init_esm_shims();
106597
106666
 
106598
106667
  // ../../packages/api-contracts/src/contracts/realtime.ts
106599
106668
  init_esm_shims();
106600
- var c25 = initContract();
106669
+ var c26 = initContract();
106601
106670
  var ablyTokenRequestSchema = external_exports.object({
106602
106671
  keyName: external_exports.string(),
106603
106672
  ttl: external_exports.number().optional(),
@@ -106607,7 +106676,7 @@ var ablyTokenRequestSchema = external_exports.object({
106607
106676
  nonce: external_exports.string(),
106608
106677
  mac: external_exports.string()
106609
106678
  });
106610
- var runnerRealtimeTokenContract = c25.router({
106679
+ var runnerRealtimeTokenContract = c26.router({
106611
106680
  /**
106612
106681
  * POST /api/runners/realtime/token
106613
106682
  * Get an Ably token to subscribe to a runner group's job notification channel
@@ -106629,7 +106698,7 @@ var runnerRealtimeTokenContract = c25.router({
106629
106698
  summary: "Get Ably token for runner group job notifications"
106630
106699
  }
106631
106700
  });
106632
- var platformRealtimeTokenContract = c25.router({
106701
+ var platformRealtimeTokenContract = c26.router({
106633
106702
  /**
106634
106703
  * POST /api/zero/realtime/token
106635
106704
  * Get an Ably token to subscribe to the authenticated user's push channel
@@ -106649,7 +106718,7 @@ var platformRealtimeTokenContract = c25.router({
106649
106718
  });
106650
106719
 
106651
106720
  // ../../packages/api-contracts/src/contracts/zero-local-agent.ts
106652
- var c26 = initContract();
106721
+ var c27 = initContract();
106653
106722
  var localAgentBackendSchema = external_exports.enum(["codex", "claude-code"]);
106654
106723
  var localAgentJobStatusSchema = external_exports.enum([
106655
106724
  "queued",
@@ -106752,7 +106821,7 @@ var localAgentHostStartResponseSchema = external_exports.object({
106752
106821
  var localAgentHostDeleteResponseSchema = external_exports.object({
106753
106822
  ok: external_exports.literal(true)
106754
106823
  });
106755
- var zeroLocalAgentDeviceStartContract = c26.router({
106824
+ var zeroLocalAgentDeviceStartContract = c27.router({
106756
106825
  start: {
106757
106826
  method: "POST",
106758
106827
  path: "/api/zero/local-agent/device/start",
@@ -106767,7 +106836,7 @@ var zeroLocalAgentDeviceStartContract = c26.router({
106767
106836
  summary: "Start a local-agent device pairing flow"
106768
106837
  }
106769
106838
  });
106770
- var zeroLocalAgentDevicePollContract = c26.router({
106839
+ var zeroLocalAgentDevicePollContract = c27.router({
106771
106840
  poll: {
106772
106841
  method: "POST",
106773
106842
  path: "/api/zero/local-agent/device/poll",
@@ -106782,7 +106851,7 @@ var zeroLocalAgentDevicePollContract = c26.router({
106782
106851
  summary: "Poll a local-agent device pairing flow"
106783
106852
  }
106784
106853
  });
106785
- var zeroLocalAgentDeviceClaimContract = c26.router({
106854
+ var zeroLocalAgentDeviceClaimContract = c27.router({
106786
106855
  claim: {
106787
106856
  method: "POST",
106788
106857
  path: "/api/zero/local-agent/device/claim",
@@ -106801,7 +106870,7 @@ var zeroLocalAgentDeviceClaimContract = c26.router({
106801
106870
  summary: "Approve a local-agent device pairing flow"
106802
106871
  }
106803
106872
  });
106804
- var zeroLocalAgentHeartbeatContract = c26.router({
106873
+ var zeroLocalAgentHeartbeatContract = c27.router({
106805
106874
  heartbeat: {
106806
106875
  method: "POST",
106807
106876
  path: "/api/zero/local-agent/heartbeat",
@@ -106818,7 +106887,7 @@ var zeroLocalAgentHeartbeatContract = c26.router({
106818
106887
  summary: "Refresh a linked local-agent host heartbeat"
106819
106888
  }
106820
106889
  });
106821
- var zeroLocalAgentHostRealtimeContract = c26.router({
106890
+ var zeroLocalAgentHostRealtimeContract = c27.router({
106822
106891
  create: {
106823
106892
  method: "POST",
106824
106893
  path: "/api/zero/local-agent/host/realtime-token",
@@ -106831,7 +106900,7 @@ var zeroLocalAgentHostRealtimeContract = c26.router({
106831
106900
  summary: "Get Ably token for local-agent host job notifications"
106832
106901
  }
106833
106902
  });
106834
- var zeroLocalAgentRunContract = c26.router({
106903
+ var zeroLocalAgentRunContract = c27.router({
106835
106904
  list: {
106836
106905
  method: "GET",
106837
106906
  path: "/api/zero/local-agent/runs",
@@ -106883,7 +106952,7 @@ var zeroLocalAgentRunContract = c26.router({
106883
106952
  summary: "Get a local-agent job"
106884
106953
  }
106885
106954
  });
106886
- var zeroLocalAgentHostsContract = c26.router({
106955
+ var zeroLocalAgentHostsContract = c27.router({
106887
106956
  start: {
106888
106957
  method: "POST",
106889
106958
  path: "/api/zero/local-agent/hosts/start",
@@ -106920,7 +106989,7 @@ var zeroLocalAgentHostsContract = c26.router({
106920
106989
  hostId: external_exports.string().min(1)
106921
106990
  }),
106922
106991
  headers: authHeadersSchema,
106923
- body: c26.noBody(),
106992
+ body: c27.noBody(),
106924
106993
  responses: {
106925
106994
  200: localAgentHostDeleteResponseSchema,
106926
106995
  401: apiErrorSchema,
@@ -106930,7 +106999,7 @@ var zeroLocalAgentHostsContract = c26.router({
106930
106999
  summary: "Delete a local-agent host"
106931
107000
  }
106932
107001
  });
106933
- var zeroLocalAgentHostJobsContract = c26.router({
107002
+ var zeroLocalAgentHostJobsContract = c27.router({
106934
107003
  next: {
106935
107004
  method: "POST",
106936
107005
  path: "/api/zero/local-agent/host/jobs/next",
@@ -107145,7 +107214,7 @@ init_esm_shims();
107145
107214
 
107146
107215
  // ../../packages/api-contracts/src/contracts/zero-local-browser.ts
107147
107216
  init_esm_shims();
107148
- var c27 = initContract();
107217
+ var c28 = initContract();
107149
107218
  var localBrowserHostStatusSchema = external_exports.enum(["online", "offline"]);
107150
107219
  var localBrowserReadCommandKindSchema = external_exports.enum([
107151
107220
  "tabs.list",
@@ -107442,7 +107511,7 @@ var localBrowserCommandApprovalResponseSchema = external_exports.object({
107442
107511
  commandId: external_exports.string(),
107443
107512
  status: external_exports.enum(["queued", "failed"])
107444
107513
  });
107445
- var zeroLocalBrowserDeviceStartContract = c27.router({
107514
+ var zeroLocalBrowserDeviceStartContract = c28.router({
107446
107515
  start: {
107447
107516
  method: "POST",
107448
107517
  path: "/api/zero/local-browser/device/start",
@@ -107454,7 +107523,7 @@ var zeroLocalBrowserDeviceStartContract = c27.router({
107454
107523
  summary: "Start a local-browser device pairing flow"
107455
107524
  }
107456
107525
  });
107457
- var zeroLocalBrowserDevicePollContract = c27.router({
107526
+ var zeroLocalBrowserDevicePollContract = c28.router({
107458
107527
  poll: {
107459
107528
  method: "POST",
107460
107529
  path: "/api/zero/local-browser/device/poll",
@@ -107469,7 +107538,7 @@ var zeroLocalBrowserDevicePollContract = c27.router({
107469
107538
  summary: "Poll a local-browser device pairing flow"
107470
107539
  }
107471
107540
  });
107472
- var zeroLocalBrowserDeviceClaimContract = c27.router({
107541
+ var zeroLocalBrowserDeviceClaimContract = c28.router({
107473
107542
  claim: {
107474
107543
  method: "POST",
107475
107544
  path: "/api/zero/local-browser/device/claim",
@@ -107488,7 +107557,7 @@ var zeroLocalBrowserDeviceClaimContract = c27.router({
107488
107557
  summary: "Approve a local-browser device pairing flow"
107489
107558
  }
107490
107559
  });
107491
- var zeroLocalBrowserHeartbeatContract = c27.router({
107560
+ var zeroLocalBrowserHeartbeatContract = c28.router({
107492
107561
  heartbeat: {
107493
107562
  method: "POST",
107494
107563
  path: "/api/zero/local-browser/heartbeat",
@@ -107502,7 +107571,7 @@ var zeroLocalBrowserHeartbeatContract = c27.router({
107502
107571
  summary: "Refresh a linked local-browser host heartbeat"
107503
107572
  }
107504
107573
  });
107505
- var zeroLocalBrowserHostRealtimeContract = c27.router({
107574
+ var zeroLocalBrowserHostRealtimeContract = c28.router({
107506
107575
  create: {
107507
107576
  method: "POST",
107508
107577
  path: "/api/zero/local-browser/host/realtime-token",
@@ -107515,7 +107584,7 @@ var zeroLocalBrowserHostRealtimeContract = c27.router({
107515
107584
  summary: "Get Ably token for local-browser command wakeups"
107516
107585
  }
107517
107586
  });
107518
- var zeroLocalBrowserHostsContract = c27.router({
107587
+ var zeroLocalBrowserHostsContract = c28.router({
107519
107588
  start: {
107520
107589
  method: "POST",
107521
107590
  path: "/api/zero/local-browser/hosts/start",
@@ -107550,7 +107619,7 @@ var zeroLocalBrowserHostsContract = c27.router({
107550
107619
  hostId: external_exports.string().min(1)
107551
107620
  }),
107552
107621
  headers: authHeadersSchema,
107553
- body: c27.noBody(),
107622
+ body: c28.noBody(),
107554
107623
  responses: {
107555
107624
  200: localBrowserHostDeleteResponseSchema,
107556
107625
  401: apiErrorSchema,
@@ -107560,7 +107629,7 @@ var zeroLocalBrowserHostsContract = c27.router({
107560
107629
  summary: "Delete a local-browser host"
107561
107630
  }
107562
107631
  });
107563
- var zeroLocalBrowserAuditEventsContract = c27.router({
107632
+ var zeroLocalBrowserAuditEventsContract = c28.router({
107564
107633
  list: {
107565
107634
  method: "GET",
107566
107635
  path: "/api/zero/local-browser/audit-events",
@@ -107579,12 +107648,12 @@ var zeroLocalBrowserAuditEventsContract = c27.router({
107579
107648
  summary: "List local-browser write command audit events"
107580
107649
  }
107581
107650
  });
107582
- var zeroLocalBrowserHostSelfContract = c27.router({
107651
+ var zeroLocalBrowserHostSelfContract = c28.router({
107583
107652
  delete: {
107584
107653
  method: "DELETE",
107585
107654
  path: "/api/zero/local-browser/host",
107586
107655
  headers: authHeadersSchema,
107587
- body: c27.noBody(),
107656
+ body: c28.noBody(),
107588
107657
  responses: {
107589
107658
  200: localBrowserHostDeleteResponseSchema,
107590
107659
  401: apiErrorSchema
@@ -107592,7 +107661,7 @@ var zeroLocalBrowserHostSelfContract = c27.router({
107592
107661
  summary: "Revoke the current local-browser host token"
107593
107662
  }
107594
107663
  });
107595
- var zeroLocalBrowserCommandContract = c27.router({
107664
+ var zeroLocalBrowserCommandContract = c28.router({
107596
107665
  create: {
107597
107666
  method: "POST",
107598
107667
  path: "/api/zero/local-browser/commands",
@@ -107624,7 +107693,7 @@ var zeroLocalBrowserCommandContract = c27.router({
107624
107693
  summary: "Get a local-browser command result"
107625
107694
  }
107626
107695
  });
107627
- var zeroLocalBrowserWriteCommandContract = c27.router({
107696
+ var zeroLocalBrowserWriteCommandContract = c28.router({
107628
107697
  create: {
107629
107698
  method: "POST",
107630
107699
  path: "/api/zero/local-browser/write-commands",
@@ -107641,7 +107710,7 @@ var zeroLocalBrowserWriteCommandContract = c27.router({
107641
107710
  summary: "Create an approved-write local-browser command"
107642
107711
  }
107643
107712
  });
107644
- var zeroLocalBrowserCommandApprovalContract = c27.router({
107713
+ var zeroLocalBrowserCommandApprovalContract = c28.router({
107645
107714
  decide: {
107646
107715
  method: "POST",
107647
107716
  path: "/api/zero/local-browser/commands/:commandId/approval",
@@ -107664,7 +107733,7 @@ var zeroLocalBrowserCommandApprovalContract = c27.router({
107664
107733
  summary: "Approve or deny a pending local-browser write command"
107665
107734
  }
107666
107735
  });
107667
- var zeroLocalBrowserHostCommandsContract = c27.router({
107736
+ var zeroLocalBrowserHostCommandsContract = c28.router({
107668
107737
  next: {
107669
107738
  method: "POST",
107670
107739
  path: "/api/zero/local-browser/host/commands/next",
@@ -122288,11 +122357,11 @@ init_esm_shims();
122288
122357
 
122289
122358
  // ../../packages/api-contracts/src/contracts/health.ts
122290
122359
  init_esm_shims();
122291
- var c28 = initContract();
122360
+ var c29 = initContract();
122292
122361
  var healthResponseSchema = external_exports.object({
122293
122362
  status: external_exports.literal("ok")
122294
122363
  });
122295
- var healthContract = c28.router({
122364
+ var healthContract = c29.router({
122296
122365
  check: {
122297
122366
  method: "GET",
122298
122367
  path: "/health",
@@ -122302,7 +122371,7 @@ var healthContract = c28.router({
122302
122371
  summary: "Check API health"
122303
122372
  }
122304
122373
  });
122305
- var healthAuthContract = c28.router({
122374
+ var healthAuthContract = c29.router({
122306
122375
  check: {
122307
122376
  method: "GET",
122308
122377
  path: "/health/auth",
@@ -122321,40 +122390,6 @@ var healthAuthContract = c28.router({
122321
122390
  }
122322
122391
  });
122323
122392
 
122324
- // ../../packages/api-contracts/src/contracts/zero-model-policies.ts
122325
- init_esm_shims();
122326
- var c29 = initContract();
122327
- var zeroModelPoliciesMainContract = c29.router({
122328
- list: {
122329
- method: "GET",
122330
- path: "/api/zero/model-policies",
122331
- headers: authHeadersSchema,
122332
- responses: {
122333
- 200: orgModelPoliciesResponseSchema,
122334
- 401: apiErrorSchema,
122335
- 403: apiErrorSchema,
122336
- 404: apiErrorSchema,
122337
- 500: apiErrorSchema
122338
- },
122339
- summary: "List org model-first policies"
122340
- },
122341
- update: {
122342
- method: "PUT",
122343
- path: "/api/zero/model-policies",
122344
- headers: authHeadersSchema,
122345
- body: updateOrgModelPoliciesRequestSchema,
122346
- responses: {
122347
- 200: orgModelPoliciesResponseSchema,
122348
- 400: apiErrorSchema,
122349
- 401: apiErrorSchema,
122350
- 403: apiErrorSchema,
122351
- 404: apiErrorSchema,
122352
- 500: apiErrorSchema
122353
- },
122354
- summary: "Update org model-first policies"
122355
- }
122356
- });
122357
-
122358
122393
  // ../../packages/api-contracts/src/contracts/zero-user-model-preference.ts
122359
122394
  init_esm_shims();
122360
122395
  var c30 = initContract();
@@ -127156,7 +127191,8 @@ var FEATURE_SWITCHES = {
127156
127191
  ["cliAuthStripe" /* CliAuthStripe */]: {
127157
127192
  maintainer: "liangyou@vm0.ai",
127158
127193
  description: "Gate Stripe-specific CLI auth UI and API surfaces.",
127159
- enabled: false
127194
+ enabled: false,
127195
+ enabledOrgIdHashes: STAFF_ORG_ID_HASHES
127160
127196
  },
127161
127197
  ["posthogConnector" /* PosthogConnector */]: {
127162
127198
  maintainer: "ethan@vm0.ai",
@@ -128738,6 +128774,7 @@ export {
128738
128774
  listZeroOrgVariables,
128739
128775
  setZeroOrgVariable,
128740
128776
  deleteZeroOrgVariable,
128777
+ getVm0ModelMultiplier,
128741
128778
  MODEL_PROVIDER_TYPES,
128742
128779
  getSelectableProviderTypes,
128743
128780
  hasAuthMethods,
@@ -128747,6 +128784,7 @@ export {
128747
128784
  listZeroOrgModelProviders,
128748
128785
  upsertZeroOrgModelProvider,
128749
128786
  deleteZeroOrgModelProvider,
128787
+ listZeroModelPolicies,
128750
128788
  zeroAgentCustomSkillNameSchema,
128751
128789
  createZeroAgent,
128752
128790
  listZeroAgents,
@@ -128865,4 +128903,4 @@ undici/lib/web/fetch/body.js:
128865
128903
  undici/lib/web/websocket/frame.js:
128866
128904
  (*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *)
128867
128905
  */
128868
- //# sourceMappingURL=chunk-D3OXQKM5.js.map
128906
+ //# sourceMappingURL=chunk-EESCNG6H.js.map