@vm0/cli 9.139.2 → 9.139.3

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.
@@ -74090,7 +74090,7 @@ if (DSN) {
74090
74090
  init2({
74091
74091
  dsn: DSN,
74092
74092
  environment: process.env.SENTRY_ENVIRONMENT ?? "production",
74093
- release: "9.139.2",
74093
+ release: "9.139.3",
74094
74094
  sendDefaultPii: false,
74095
74095
  tracesSampleRate: 0,
74096
74096
  shutdownTimeout: 500,
@@ -74109,7 +74109,7 @@ if (DSN) {
74109
74109
  }
74110
74110
  });
74111
74111
  setContext("cli", {
74112
- version: "9.139.2",
74112
+ version: "9.139.3",
74113
74113
  command: process.argv.slice(2).join(" ")
74114
74114
  });
74115
74115
  setContext("runtime", {
@@ -88710,6 +88710,10 @@ var RUN_ERROR_GUIDANCE = {
88710
88710
  title: "Provider temporarily unavailable",
88711
88711
  guidance: "The model provider is temporarily unavailable. Please try again later."
88712
88712
  },
88713
+ PROVIDER_DELETED: {
88714
+ title: "Model provider unavailable",
88715
+ guidance: "The model provider used by this thread has been deleted. Start a new chat thread to continue."
88716
+ },
88713
88717
  TOO_MANY_REQUESTS: {
88714
88718
  title: "Concurrent run limit reached",
88715
88719
  guidance: "Wait for your current run to complete before starting a new one."
@@ -99547,6 +99551,26 @@ var msg9 = {
99547
99551
  }
99548
99552
  };
99549
99553
 
99554
+ // ../../packages/connectors/src/connectors/nano-banana.ts
99555
+ init_esm_shims();
99556
+ var nanoBanana = {
99557
+ "nano-banana": {
99558
+ label: "Nano Banana",
99559
+ category: "ai-image-video",
99560
+ environmentMapping: {},
99561
+ helpText: "Google Gemini image generation, billed to your org credits",
99562
+ featureFlag: "platformConnectors" /* PlatformConnectors */,
99563
+ authMethods: {
99564
+ platform: {
99565
+ label: "Enable",
99566
+ helpText: "Image generations are billed to your organization's credits. By enabling, you agree that prompts and reference images are sent to the Google Gemini API.",
99567
+ secrets: {}
99568
+ }
99569
+ },
99570
+ defaultAuthMethod: "platform"
99571
+ }
99572
+ };
99573
+
99550
99574
  // ../../packages/connectors/src/connectors/amplitude.ts
99551
99575
  init_esm_shims();
99552
99576
  var amplitude = {
@@ -100270,6 +100294,7 @@ var CONNECTOR_TYPES_DEF = {
100270
100294
  ...db9,
100271
100295
  ...drive9,
100272
100296
  ...msg9,
100297
+ ...nanoBanana,
100273
100298
  ...amplitude,
100274
100299
  ...attio,
100275
100300
  ...buffer,
@@ -100356,6 +100381,7 @@ var zeroConnectorsMainContract = c6.router({
100356
100381
  responses: {
100357
100382
  200: connectorListResponseSchema,
100358
100383
  401: apiErrorSchema,
100384
+ 403: apiErrorSchema,
100359
100385
  500: apiErrorSchema
100360
100386
  },
100361
100387
  summary: "List all connectors (zero proxy)"
@@ -100370,6 +100396,7 @@ var zeroConnectorsByTypeContract = c6.router({
100370
100396
  responses: {
100371
100397
  200: connectorResponseSchema,
100372
100398
  401: apiErrorSchema,
100399
+ 403: apiErrorSchema,
100373
100400
  404: apiErrorSchema
100374
100401
  },
100375
100402
  summary: "Get connector by type (zero proxy)"
@@ -100411,6 +100438,7 @@ var zeroConnectorScopeDiffContract = c6.router({
100411
100438
  responses: {
100412
100439
  200: scopeDiffResponseSchema,
100413
100440
  401: apiErrorSchema,
100441
+ 403: apiErrorSchema,
100414
100442
  404: apiErrorSchema
100415
100443
  },
100416
100444
  summary: "Get scope diff for a connector"
@@ -100497,6 +100525,7 @@ var zeroComputerConnectorContract = c6.router({
100497
100525
  responses: {
100498
100526
  200: connectorResponseSchema,
100499
100527
  401: apiErrorSchema,
100528
+ 403: apiErrorSchema,
100500
100529
  404: apiErrorSchema
100501
100530
  },
100502
100531
  summary: "Get computer connector status (zero proxy)"
@@ -101986,6 +102015,7 @@ var zeroRunsByIdContract = c12.router({
101986
102015
  200: getRunResponseSchema,
101987
102016
  400: apiErrorSchema,
101988
102017
  401: apiErrorSchema,
102018
+ 403: apiErrorSchema,
101989
102019
  404: apiErrorSchema
101990
102020
  },
101991
102021
  summary: "Get agent run by ID (zero proxy)"
@@ -102138,6 +102168,7 @@ var zeroRunRunnerContract = c12.router({
102138
102168
  200: runRunnerResponseSchema,
102139
102169
  400: apiErrorSchema,
102140
102170
  401: apiErrorSchema,
102171
+ 403: apiErrorSchema,
102141
102172
  404: apiErrorSchema
102142
102173
  },
102143
102174
  summary: "Get runner-level metadata for a run"
@@ -102432,6 +102463,25 @@ var MODEL_PROVIDER_TYPES = {
102432
102463
  ],
102433
102464
  defaultModel: "anthropic/claude-sonnet-4.6"
102434
102465
  },
102466
+ "openai-api-key": {
102467
+ framework: "codex",
102468
+ secretName: "OPENAI_API_KEY",
102469
+ label: "OpenAI",
102470
+ secretLabel: "API key",
102471
+ helpText: "Get your API key at: https://platform.openai.com/api-keys",
102472
+ environmentMapping: {
102473
+ OPENAI_API_KEY: "$secret",
102474
+ OPENAI_MODEL: "$model"
102475
+ },
102476
+ models: [
102477
+ "gpt-5.5",
102478
+ "gpt-5.4",
102479
+ "gpt-5.4-mini",
102480
+ "gpt-5.3-codex",
102481
+ "gpt-5.2"
102482
+ ],
102483
+ defaultModel: "gpt-5.5"
102484
+ },
102435
102485
  "azure-foundry": {
102436
102486
  framework: "claude-code",
102437
102487
  label: "Azure Foundry",
@@ -102552,6 +102602,9 @@ function getSelectableProviderTypes() {
102552
102602
  }
102553
102603
  var ANTHROPIC_API_BASE = "https://api.anthropic.com";
102554
102604
  function getFirewallBaseUrl(type) {
102605
+ if (getFrameworkForType(type) === "codex") {
102606
+ return "https://api.openai.com/v1/responses";
102607
+ }
102555
102608
  const base = (getEnvironmentMapping(type)?.ANTHROPIC_BASE_URL ?? ANTHROPIC_API_BASE).replace(/\/+$/, "");
102556
102609
  return `${base}/v1/messages`;
102557
102610
  }
@@ -102634,6 +102687,13 @@ var MODEL_PROVIDER_FIREWALL_CONFIGS = {
102634
102687
  "vercel-ai-gateway",
102635
102688
  { name: "Authorization", valuePrefix: "Bearer" },
102636
102689
  "sk-CoffeeSafeLocalCoffeeSafeLocalCo"
102690
+ ),
102691
+ // Placeholder: sk-proj-{156 chars}T3BlbkFJ{156 chars} (typical project key shape)
102692
+ // Source: matches turbo/packages/connectors/src/firewalls/openai.generated.ts
102693
+ "openai-api-key": mpFirewall(
102694
+ "openai-api-key",
102695
+ { name: "Authorization", valuePrefix: "Bearer" },
102696
+ "sk-proj-CoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocaT3BlbkFJCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLoca"
102637
102697
  )
102638
102698
  };
102639
102699
  var modelProviderTypeSchema = external_exports.enum([
@@ -102645,11 +102705,15 @@ var modelProviderTypeSchema = external_exports.enum([
102645
102705
  "deepseek-api-key",
102646
102706
  "zai-api-key",
102647
102707
  "vercel-ai-gateway",
102708
+ "openai-api-key",
102648
102709
  "azure-foundry",
102649
102710
  "aws-bedrock",
102650
102711
  "vm0"
102651
102712
  ]);
102652
- var modelProviderFrameworkSchema = external_exports.enum(["claude-code"]);
102713
+ var modelProviderFrameworkSchema = external_exports.enum(["claude-code", "codex"]);
102714
+ function getFrameworkForType(type) {
102715
+ return MODEL_PROVIDER_TYPES[type]?.framework ?? "claude-code";
102716
+ }
102653
102717
  function hasAuthMethods(type) {
102654
102718
  const config4 = MODEL_PROVIDER_TYPES[type];
102655
102719
  if (!config4) return false;
@@ -102989,7 +103053,8 @@ var chatMessagesContract = c13.router({
102989
103053
  400: apiErrorSchema,
102990
103054
  401: apiErrorSchema,
102991
103055
  403: apiErrorSchema,
102992
- 404: apiErrorSchema
103056
+ 404: apiErrorSchema,
103057
+ 422: apiErrorSchema
102993
103058
  },
102994
103059
  summary: "Send a chat message (create thread + run + association)"
102995
103060
  }
@@ -113046,6 +113111,45 @@ var n8nFirewall = {
113046
113111
  ]
113047
113112
  };
113048
113113
 
113114
+ // ../../packages/connectors/src/firewalls/nano-banana.generated.ts
113115
+ init_esm_shims();
113116
+ var nanoBananaFirewall = {
113117
+ name: "nano-banana",
113118
+ description: "Google Gemini image generation (Nano Banana)",
113119
+ placeholders: {
113120
+ NANO_BANANA_TOKEN: "CoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocalCoffeeSaf"
113121
+ },
113122
+ apis: [
113123
+ {
113124
+ base: "https://generativelanguage.googleapis.com/v1beta/models/gemini-3-pro-image-preview:generateContent",
113125
+ auth: {
113126
+ headers: {
113127
+ "x-goog-api-key": "${{ secrets.NANO_BANANA_TOKEN }}"
113128
+ }
113129
+ },
113130
+ permissions: []
113131
+ },
113132
+ {
113133
+ base: "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.1-flash-image-preview:generateContent",
113134
+ auth: {
113135
+ headers: {
113136
+ "x-goog-api-key": "${{ secrets.NANO_BANANA_TOKEN }}"
113137
+ }
113138
+ },
113139
+ permissions: []
113140
+ },
113141
+ {
113142
+ base: "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-image:generateContent",
113143
+ auth: {
113144
+ headers: {
113145
+ "x-goog-api-key": "${{ secrets.NANO_BANANA_TOKEN }}"
113146
+ }
113147
+ },
113148
+ permissions: []
113149
+ }
113150
+ ]
113151
+ };
113152
+
113049
113153
  // ../../packages/connectors/src/firewalls/neon.generated.ts
113050
113154
  init_esm_shims();
113051
113155
  var neonFirewall = {
@@ -117003,6 +117107,7 @@ var CONNECTOR_FIREWALLS = {
117003
117107
  monday: mondayFirewall,
117004
117108
  msg9: msg9Firewall,
117005
117109
  n8n: n8nFirewall,
117110
+ "nano-banana": nanoBananaFirewall,
117006
117111
  neon: neonFirewall,
117007
117112
  notion: notionFirewall,
117008
117113
  onyx: onyxFirewall,
@@ -117963,7 +118068,8 @@ var zeroComposesMainContract = c35.router({
117963
118068
  200: composeResponseSchema,
117964
118069
  400: apiErrorSchema,
117965
118070
  401: apiErrorSchema,
117966
- 403: apiErrorSchema
118071
+ 403: apiErrorSchema,
118072
+ 404: apiErrorSchema
117967
118073
  },
117968
118074
  summary: "Get agent compose by name (zero proxy)"
117969
118075
  }
@@ -118602,7 +118708,8 @@ var zeroUsageInsightContract = c42.router({
118602
118708
  path: "/api/zero/usage/insight",
118603
118709
  headers: authHeadersSchema,
118604
118710
  query: external_exports.object({
118605
- range: external_exports.enum(["today", "yesterday", "7d", "28d"]),
118711
+ range: external_exports.enum(["today", "yesterday", "day", "7d", "28d", "30d"]),
118712
+ date: external_exports.string().optional(),
118606
118713
  groupBy: external_exports.enum(["source", "agent"]),
118607
118714
  tz: external_exports.string()
118608
118715
  }),
@@ -118626,19 +118733,16 @@ var modelUsageRankingItemSchema = external_exports.object({
118626
118733
  outputTokens: external_exports.number(),
118627
118734
  cacheTokens: external_exports.number(),
118628
118735
  totalTokens: external_exports.number(),
118629
- credits: external_exports.number(),
118630
- previousCredits: external_exports.number(),
118736
+ previousTotalTokens: external_exports.number(),
118631
118737
  changePercent: external_exports.number().nullable(),
118632
118738
  share: external_exports.number()
118633
118739
  });
118634
118740
  var modelUsageRankingDailyModelSchema = external_exports.object({
118635
118741
  model: external_exports.string(),
118636
- credits: external_exports.number(),
118637
118742
  totalTokens: external_exports.number()
118638
118743
  });
118639
118744
  var modelUsageRankingDailyBucketSchema = external_exports.object({
118640
118745
  date: external_exports.string(),
118641
- totalCredits: external_exports.number(),
118642
118746
  totalTokens: external_exports.number(),
118643
118747
  models: external_exports.array(modelUsageRankingDailyModelSchema)
118644
118748
  });
@@ -118646,7 +118750,6 @@ var modelUsageRankingResponseSchema = external_exports.object({
118646
118750
  range: modelUsageRankingRangeSchema,
118647
118751
  generatedAt: external_exports.string(),
118648
118752
  grandTotalTokens: external_exports.number(),
118649
- grandTotalCredits: external_exports.number(),
118650
118753
  models: external_exports.array(modelUsageRankingItemSchema),
118651
118754
  daily: external_exports.array(modelUsageRankingDailyBucketSchema)
118652
118755
  });
@@ -118673,6 +118776,7 @@ init_esm_shims();
118673
118776
  var c44 = initContract();
118674
118777
  var teamComposeItemSchema = external_exports.object({
118675
118778
  id: external_exports.string(),
118779
+ ownerId: external_exports.string().optional(),
118676
118780
  displayName: external_exports.string().nullable(),
118677
118781
  description: external_exports.string().nullable(),
118678
118782
  sound: external_exports.string().nullable(),
@@ -118939,6 +119043,19 @@ var insightMemberCreditsSchema = external_exports.object({
118939
119043
  agentNames: external_exports.array(external_exports.string()).optional(),
118940
119044
  agentCredits: external_exports.record(external_exports.string(), external_exports.number()).optional()
118941
119045
  });
119046
+ var insightDayScheduleSchema = external_exports.object({
119047
+ scheduleId: external_exports.string(),
119048
+ scheduleName: external_exports.string(),
119049
+ scheduleDescription: external_exports.string().nullable(),
119050
+ credits: external_exports.number(),
119051
+ tokens: external_exports.number()
119052
+ });
119053
+ var insightDayChatSchema = external_exports.object({
119054
+ threadId: external_exports.string(),
119055
+ threadTitle: external_exports.string().nullable(),
119056
+ credits: external_exports.number(),
119057
+ tokens: external_exports.number()
119058
+ });
118942
119059
  var dayInsightSchema = external_exports.object({
118943
119060
  date: external_exports.string(),
118944
119061
  agents: external_exports.array(insightAgentSchema).default([]),
@@ -118947,7 +119064,9 @@ var dayInsightSchema = external_exports.object({
118947
119064
  teamUsage: external_exports.array(insightMemberCreditsSchema).default([]),
118948
119065
  topTask: insightTopTaskSchema.nullable().default(null),
118949
119066
  services: external_exports.array(insightServiceSchema).default([]),
118950
- permissions: external_exports.array(insightPermissionSchema).default([])
119067
+ permissions: external_exports.array(insightPermissionSchema).default([]),
119068
+ schedules: external_exports.array(insightDayScheduleSchema).default([]),
119069
+ chats: external_exports.array(insightDayChatSchema).default([])
118951
119070
  });
118952
119071
  var insightsResponseSchema = external_exports.object({
118953
119072
  days: external_exports.array(dayInsightSchema),
@@ -119871,6 +119990,12 @@ var FEATURE_SWITCHES = {
119871
119990
  maintainer: "ethan@vm0.ai",
119872
119991
  description: "Enable the Gumroad creator commerce connector (api-token + OAuth).",
119873
119992
  enabled: true
119993
+ },
119994
+ ["codexBeta" /* CodexBeta */]: {
119995
+ maintainer: "lancy@vm0.ai",
119996
+ description: "Gate the codex framework via BYOK OpenAI provider in zero web. When off, the openai-api-key tile is hidden in the add-provider dialog and POST /api/zero/model-providers with type=openai-api-key returns 404. Staff-only during rollout; per-user toggle via Lab.",
119997
+ enabled: false,
119998
+ enabledOrgIdHashes: STAFF_ORG_ID_HASHES
119874
119999
  }
119875
120000
  };
119876
120001
  function isFeatureEnabled(key, ctx) {
@@ -121247,4 +121372,4 @@ undici/lib/web/fetch/body.js:
121247
121372
  undici/lib/web/websocket/frame.js:
121248
121373
  (*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *)
121249
121374
  */
121250
- //# sourceMappingURL=chunk-WL4PGRGW.js.map
121375
+ //# sourceMappingURL=chunk-AQFESZSO.js.map