@vm0/cli 9.180.5 → 9.180.6

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.180.5",
74086
+ release: "9.180.6",
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.180.5",
74105
+ version: "9.180.6",
74106
74106
  command: process.argv.slice(2).join(" ")
74107
74107
  });
74108
74108
  setContext("runtime", {
@@ -93198,6 +93198,7 @@ var firewallSchema = external_exports.object({
93198
93198
  apis: external_exports.array(firewallApiSchema)
93199
93199
  });
93200
93200
  var firewallsSchema = external_exports.array(firewallSchema);
93201
+ var UNKNOWN_PERMISSION_GRANT = "__unknown__";
93201
93202
  var firewallConfigSchema = external_exports.object({
93202
93203
  name: external_exports.string().min(1, "Firewall name is required"),
93203
93204
  description: external_exports.string().optional(),
@@ -94285,13 +94286,18 @@ var storageEntrySchema = external_exports.object({
94285
94286
  instructionsTargetFilename: external_exports.string().optional(),
94286
94287
  archiveUrl: external_exports.string()
94287
94288
  });
94289
+ var artifactMissingRootPolicySchema = external_exports.enum([
94290
+ "fail",
94291
+ "preserveParentVersion"
94292
+ ]);
94288
94293
  var artifactEntrySchema = external_exports.object({
94289
94294
  mountPath: external_exports.string(),
94290
94295
  vasStorageName: external_exports.string(),
94291
94296
  vasStorageId: external_exports.string(),
94292
94297
  vasVersionId: external_exports.string(),
94293
94298
  archiveUrl: external_exports.string(),
94294
- manifestUrl: external_exports.string().optional()
94299
+ manifestUrl: external_exports.string().optional(),
94300
+ missingRootPolicy: artifactMissingRootPolicySchema.optional()
94295
94301
  });
94296
94302
  var storageManifestSchema = external_exports.object({
94297
94303
  storages: external_exports.array(storageEntrySchema),
@@ -95797,7 +95803,6 @@ var orgMessageResponseSchema = external_exports.object({
95797
95803
  // ../../packages/api-contracts/src/contracts/orgs.ts
95798
95804
  var c4 = initContract();
95799
95805
  var orgTierSchema = external_exports.enum(["free", "pro-suspend", "pro", "team"]);
95800
- var permissionGrantModeSchema = external_exports.enum(["legacy", "user-grants"]);
95801
95806
  var orgSlugSchema = external_exports.string().min(3, "Org slug must be at least 3 characters").max(64, "Org slug must be at most 64 characters").regex(
95802
95807
  /^[a-z0-9][a-z0-9-]*[a-z0-9]$|^[a-z0-9]{1,2}$/,
95803
95808
  "Org slug must contain only lowercase letters, numbers, and hyphens, and must start and end with an alphanumeric character"
@@ -95810,7 +95815,6 @@ var orgResponseSchema = external_exports.object({
95810
95815
  name: external_exports.string(),
95811
95816
  tier: external_exports.string().optional(),
95812
95817
  role: orgRoleSchema.optional(),
95813
- permissionGrantMode: permissionGrantModeSchema.optional(),
95814
95818
  createdBy: external_exports.string().optional()
95815
95819
  });
95816
95820
  var updateOrgRequestSchema = external_exports.object({
@@ -96915,7 +96919,6 @@ var zeroAgentResponseSchema = external_exports.object({
96915
96919
  displayName: external_exports.string().nullable(),
96916
96920
  sound: external_exports.string().nullable(),
96917
96921
  avatarUrl: external_exports.string().nullable(),
96918
- permissionPolicies: firewallPoliciesSchema.nullable(),
96919
96922
  customSkills: external_exports.array(external_exports.string()).default([]),
96920
96923
  modelProviderId: external_exports.string().uuid().nullable().default(null),
96921
96924
  selectedModel: external_exports.string().nullable().default(null),
@@ -97037,26 +97040,6 @@ var zeroAgentsByIdContract = c13.router({
97037
97040
  summary: "Delete zero agent by id"
97038
97041
  }
97039
97042
  });
97040
- var zeroAgentPermissionPoliciesRequestSchema = external_exports.object({
97041
- agentId: external_exports.string().uuid(),
97042
- policies: firewallPoliciesSchema
97043
- });
97044
- var zeroAgentPermissionPoliciesContract = c13.router({
97045
- update: {
97046
- method: "PUT",
97047
- path: "/api/zero/permission-policies",
97048
- headers: authHeadersSchema,
97049
- body: zeroAgentPermissionPoliciesRequestSchema,
97050
- responses: {
97051
- 200: zeroAgentResponseSchema,
97052
- 400: apiErrorSchema,
97053
- 401: apiErrorSchema,
97054
- 403: apiErrorSchema,
97055
- 404: apiErrorSchema
97056
- },
97057
- summary: "Update zero agent permission policies (owner only)"
97058
- }
97059
- });
97060
97043
  var zeroAgentInstructionsContract = c13.router({
97061
97044
  get: {
97062
97045
  method: "GET",
@@ -97227,101 +97210,70 @@ var zeroSkillsDetailContract = c13.router({
97227
97210
  summary: "Delete custom skill from the organization"
97228
97211
  }
97229
97212
  });
97230
- var permissionAccessRequestStatusSchema = external_exports.enum([
97231
- "pending",
97232
- "approved",
97233
- "rejected"
97234
- ]);
97235
- var permissionAccessRequestActionSchema = external_exports.enum(["allow", "deny"]);
97236
- var permissionAccessRequestResponseSchema = external_exports.object({
97237
- id: external_exports.string().uuid(),
97238
- agentId: external_exports.string().uuid(),
97239
- connectorRef: external_exports.string(),
97240
- permission: external_exports.string(),
97241
- action: permissionAccessRequestActionSchema,
97242
- method: external_exports.string().nullable(),
97243
- path: external_exports.string().nullable(),
97244
- reason: external_exports.string().nullable(),
97245
- status: permissionAccessRequestStatusSchema,
97246
- requesterUserId: external_exports.string(),
97247
- requesterName: external_exports.string().nullable(),
97248
- resolvedBy: external_exports.string().nullable(),
97249
- resolvedAt: external_exports.string().nullable(),
97250
- createdAt: external_exports.string()
97251
- });
97252
- var createPermissionAccessRequestSchema = external_exports.object({
97253
- agentId: external_exports.string().uuid(),
97254
- connectorRef: external_exports.string(),
97255
- permission: external_exports.string(),
97256
- action: permissionAccessRequestActionSchema.optional().default("allow"),
97257
- method: external_exports.string().optional(),
97258
- path: external_exports.string().optional(),
97259
- reason: external_exports.string().optional()
97260
- });
97261
- var resolvePermissionAccessRequestSchema = external_exports.object({
97262
- requestId: external_exports.string().uuid(),
97263
- action: external_exports.enum(["approve", "reject"])
97213
+
97214
+ // ../../packages/api-contracts/src/contracts/zero-user-permission-grants.ts
97215
+ init_esm_shims();
97216
+ var c14 = initContract();
97217
+ var agentIdSchema = external_exports.string().uuid();
97218
+ var connectorRefSchema = external_exports.string().min(1).max(64);
97219
+ var permissionSchema = external_exports.string().min(1).max(128);
97220
+ var userPermissionGrantActionSchema = external_exports.enum(["allow", "deny"]);
97221
+ var userPermissionGrantResponseSchema = external_exports.object({
97222
+ agentId: agentIdSchema,
97223
+ connectorRef: connectorRefSchema,
97224
+ permission: permissionSchema,
97225
+ action: userPermissionGrantActionSchema,
97226
+ expiresAt: external_exports.string().nullable(),
97227
+ createdAt: external_exports.string(),
97228
+ updatedAt: external_exports.string()
97264
97229
  });
97265
- var permissionAccessRequestsCreateContract = c13.router({
97266
- create: {
97267
- method: "POST",
97268
- path: "/api/zero/permission-access-requests",
97269
- headers: authHeadersSchema,
97270
- body: createPermissionAccessRequestSchema,
97271
- responses: {
97272
- 201: permissionAccessRequestResponseSchema,
97273
- 400: apiErrorSchema,
97274
- 401: apiErrorSchema,
97275
- 403: apiErrorSchema,
97276
- 404: apiErrorSchema
97277
- },
97278
- summary: "Create permission access request"
97279
- }
97230
+ var listUserPermissionGrantsQuerySchema = external_exports.object({
97231
+ agentId: agentIdSchema
97280
97232
  });
97281
- var permissionAccessRequestsListQuerySchema = external_exports.object({
97282
- agentId: external_exports.string().optional(),
97283
- requestId: external_exports.string().optional(),
97284
- status: external_exports.string().optional()
97233
+ var upsertUserPermissionGrantRequestSchema = external_exports.object({
97234
+ agentId: agentIdSchema,
97235
+ connectorRef: connectorRefSchema,
97236
+ permission: permissionSchema,
97237
+ action: userPermissionGrantActionSchema
97285
97238
  });
97286
- var permissionAccessRequestsListContract = c13.router({
97239
+ var zeroUserPermissionGrantsContract = c14.router({
97287
97240
  list: {
97288
97241
  method: "GET",
97289
- path: "/api/zero/permission-access-requests",
97242
+ path: "/api/zero/user-permission-grants",
97290
97243
  headers: authHeadersSchema,
97291
- query: permissionAccessRequestsListQuerySchema,
97244
+ query: listUserPermissionGrantsQuerySchema,
97292
97245
  responses: {
97293
- 200: external_exports.array(permissionAccessRequestResponseSchema),
97246
+ 200: external_exports.array(userPermissionGrantResponseSchema),
97294
97247
  400: apiErrorSchema,
97295
97248
  401: apiErrorSchema,
97296
- 403: apiErrorSchema
97249
+ 403: apiErrorSchema,
97250
+ 404: apiErrorSchema
97297
97251
  },
97298
- summary: "List permission access requests for an agent"
97299
- }
97300
- });
97301
- var permissionAccessRequestsResolveContract = c13.router({
97302
- resolve: {
97252
+ summary: "List current user's active permission grants for an agent"
97253
+ },
97254
+ upsert: {
97303
97255
  method: "PUT",
97304
- path: "/api/zero/permission-access-requests",
97256
+ path: "/api/zero/user-permission-grants",
97305
97257
  headers: authHeadersSchema,
97306
- body: resolvePermissionAccessRequestSchema,
97258
+ body: upsertUserPermissionGrantRequestSchema,
97307
97259
  responses: {
97308
- 200: permissionAccessRequestResponseSchema,
97260
+ 200: userPermissionGrantResponseSchema,
97309
97261
  400: apiErrorSchema,
97310
97262
  401: apiErrorSchema,
97311
97263
  403: apiErrorSchema,
97312
97264
  404: apiErrorSchema
97313
97265
  },
97314
- summary: "Resolve (approve/reject) a permission access request (owner only)"
97266
+ summary: "Upsert current user's permission grant for an agent"
97315
97267
  }
97316
97268
  });
97317
97269
 
97318
97270
  // ../../packages/api-contracts/src/contracts/user-connectors.ts
97319
97271
  init_esm_shims();
97320
- var c14 = initContract();
97272
+ var c15 = initContract();
97321
97273
  var userConnectorEnabledTypesSchema = external_exports.object({
97322
97274
  enabledTypes: external_exports.array(external_exports.string())
97323
97275
  });
97324
- var zeroUserConnectorsContract = c14.router({
97276
+ var zeroUserConnectorsContract = c15.router({
97325
97277
  get: {
97326
97278
  method: "GET",
97327
97279
  path: "/api/zero/agents/:id/user-connectors",
@@ -97405,6 +97357,16 @@ async function getZeroAgentUserConnectors(id) {
97405
97357
  `Failed to get connector permissions for zero agent "${id}"`
97406
97358
  );
97407
97359
  }
97360
+ async function listZeroUserPermissionGrants(agentId) {
97361
+ const config4 = await getClientConfig();
97362
+ const client = initClient(zeroUserPermissionGrantsContract, config4);
97363
+ const result = await client.list({ query: { agentId } });
97364
+ if (result.status === 200) return result.body;
97365
+ handleError(
97366
+ result,
97367
+ `Failed to get permission grants for zero agent "${agentId}"`
97368
+ );
97369
+ }
97408
97370
  async function updateZeroAgentInstructions(id, content) {
97409
97371
  const config4 = await getClientConfig();
97410
97372
  const client = initClient(zeroAgentInstructionsContract, config4);
@@ -108540,8 +108502,8 @@ var connectorOauthDeviceAuthSessionPollResponseSchema = external_exports.discrim
108540
108502
  ]);
108541
108503
 
108542
108504
  // ../../packages/api-contracts/src/contracts/zero-connectors.ts
108543
- var c15 = initContract();
108544
- var zeroConnectorsMainContract = c15.router({
108505
+ var c16 = initContract();
108506
+ var zeroConnectorsMainContract = c16.router({
108545
108507
  list: {
108546
108508
  method: "GET",
108547
108509
  path: "/api/zero/connectors",
@@ -108555,7 +108517,7 @@ var zeroConnectorsMainContract = c15.router({
108555
108517
  summary: "List all connectors (zero proxy)"
108556
108518
  }
108557
108519
  });
108558
- var zeroConnectorsByTypeContract = c15.router({
108520
+ var zeroConnectorsByTypeContract = c16.router({
108559
108521
  get: {
108560
108522
  method: "GET",
108561
108523
  path: "/api/zero/connectors/:type",
@@ -108575,14 +108537,14 @@ var zeroConnectorsByTypeContract = c15.router({
108575
108537
  headers: authHeadersSchema,
108576
108538
  pathParams: external_exports.object({ type: connectorTypeSchema }),
108577
108539
  responses: {
108578
- 204: c15.noBody(),
108540
+ 204: c16.noBody(),
108579
108541
  401: apiErrorSchema,
108580
108542
  404: apiErrorSchema
108581
108543
  },
108582
108544
  summary: "Disconnect a connector (zero proxy)"
108583
108545
  }
108584
108546
  });
108585
- var zeroConnectorScopeDiffContract = c15.router({
108547
+ var zeroConnectorScopeDiffContract = c16.router({
108586
108548
  getScopeDiff: {
108587
108549
  method: "GET",
108588
108550
  path: "/api/zero/connectors/:type/scope-diff",
@@ -108597,7 +108559,7 @@ var zeroConnectorScopeDiffContract = c15.router({
108597
108559
  summary: "Get scope diff for a connector"
108598
108560
  }
108599
108561
  });
108600
- var zeroConnectorOauthStartContract = c15.router({
108562
+ var zeroConnectorOauthStartContract = c16.router({
108601
108563
  start: {
108602
108564
  method: "POST",
108603
108565
  path: "/api/zero/connectors/:type/oauth/start",
@@ -108614,7 +108576,7 @@ var zeroConnectorOauthStartContract = c15.router({
108614
108576
  summary: "Create connector OAuth handoff and authorization URL"
108615
108577
  }
108616
108578
  });
108617
- var zeroConnectorManualGrantContract = c15.router({
108579
+ var zeroConnectorManualGrantContract = c16.router({
108618
108580
  connect: {
108619
108581
  method: "POST",
108620
108582
  path: "/api/zero/connectors/:type/manual-grant",
@@ -108635,7 +108597,7 @@ var zeroConnectorManualGrantContract = c15.router({
108635
108597
  summary: "Connect a connector with a manual grant"
108636
108598
  }
108637
108599
  });
108638
- var zeroConnectorOauthDeviceAuthSessionContract = c15.router({
108600
+ var zeroConnectorOauthDeviceAuthSessionContract = c16.router({
108639
108601
  create: {
108640
108602
  method: "POST",
108641
108603
  path: "/api/zero/connectors/:type/oauth/device/sessions",
@@ -108680,7 +108642,7 @@ var connectorSearchItemSchema = external_exports.object({
108680
108642
  var connectorSearchResponseSchema = external_exports.object({
108681
108643
  connectors: external_exports.array(connectorSearchItemSchema)
108682
108644
  });
108683
- var zeroConnectorsSearchContract = c15.router({
108645
+ var zeroConnectorsSearchContract = c16.router({
108684
108646
  search: {
108685
108647
  method: "GET",
108686
108648
  path: "/api/zero/connectors/search",
@@ -108764,7 +108726,7 @@ var listQuerySchema = external_exports.object({
108764
108726
  cursor: external_exports.string().optional(),
108765
108727
  limit: external_exports.coerce.number().min(1).max(100).default(20)
108766
108728
  });
108767
- var c16 = initContract();
108729
+ var c17 = initContract();
108768
108730
  var logStatusSchema = external_exports.enum([
108769
108731
  "queued",
108770
108732
  "pending",
@@ -108835,7 +108797,7 @@ var logDetailSchema = external_exports.object({
108835
108797
  completedAt: external_exports.string().nullable(),
108836
108798
  artifact: artifactSchema
108837
108799
  });
108838
- var logsListContract = c16.router({
108800
+ var logsListContract = c17.router({
108839
108801
  list: {
108840
108802
  method: "GET",
108841
108803
  path: "/api/zero/logs",
@@ -108857,7 +108819,7 @@ var logsListContract = c16.router({
108857
108819
  summary: "List agent run logs with pagination"
108858
108820
  }
108859
108821
  });
108860
- var logsByIdContract = c16.router({
108822
+ var logsByIdContract = c17.router({
108861
108823
  getById: {
108862
108824
  method: "GET",
108863
108825
  path: "/api/zero/logs/:id",
@@ -108876,7 +108838,7 @@ var logsByIdContract = c16.router({
108876
108838
  });
108877
108839
 
108878
108840
  // ../../packages/api-contracts/src/contracts/runs.ts
108879
- var c17 = initContract();
108841
+ var c18 = initContract();
108880
108842
  var directRunModelProviderTypeSchema = modelProviderTypeSchema.refine(
108881
108843
  (type) => {
108882
108844
  return type !== "vm0";
@@ -109041,7 +109003,7 @@ var runListItemSchema = external_exports.object({
109041
109003
  var runsListResponseSchema = external_exports.object({
109042
109004
  runs: external_exports.array(runListItemSchema)
109043
109005
  });
109044
- var runsMainContract = c17.router({
109006
+ var runsMainContract = c18.router({
109045
109007
  /**
109046
109008
  * GET /api/agent/runs
109047
109009
  * List agent runs (pending and running by default)
@@ -109092,7 +109054,7 @@ var runsMainContract = c17.router({
109092
109054
  summary: "Create and execute agent run"
109093
109055
  }
109094
109056
  });
109095
- var runsByIdContract = c17.router({
109057
+ var runsByIdContract = c18.router({
109096
109058
  /**
109097
109059
  * GET /api/agent/runs/:id
109098
109060
  * Get agent run status and results
@@ -109118,7 +109080,7 @@ var cancelRunResponseSchema = external_exports.object({
109118
109080
  status: external_exports.literal("cancelled"),
109119
109081
  message: external_exports.string()
109120
109082
  });
109121
- var runsCancelContract = c17.router({
109083
+ var runsCancelContract = c18.router({
109122
109084
  /**
109123
109085
  * POST /api/agent/runs/:id/cancel
109124
109086
  * Cancel a pending or running run
@@ -109141,7 +109103,7 @@ var runsCancelContract = c17.router({
109141
109103
  summary: "Cancel a pending or running run"
109142
109104
  }
109143
109105
  });
109144
- var runEventsContract = c17.router({
109106
+ var runEventsContract = c18.router({
109145
109107
  /**
109146
109108
  * GET /api/agent/runs/:id/events
109147
109109
  * Poll for agent run events with pagination
@@ -109235,7 +109197,7 @@ var telemetryResponseSchema = external_exports.object({
109235
109197
  systemLog: external_exports.string(),
109236
109198
  metrics: external_exports.array(telemetryMetricSchema)
109237
109199
  });
109238
- var runTelemetryContract = c17.router({
109200
+ var runTelemetryContract = c18.router({
109239
109201
  /**
109240
109202
  * GET /api/agent/runs/:id/telemetry
109241
109203
  * Get aggregated telemetry data for a run (legacy combined format)
@@ -109255,7 +109217,7 @@ var runTelemetryContract = c17.router({
109255
109217
  summary: "Get run telemetry data"
109256
109218
  }
109257
109219
  });
109258
- var runSystemLogContract = c17.router({
109220
+ var runSystemLogContract = c18.router({
109259
109221
  /**
109260
109222
  * GET /api/agent/runs/:id/telemetry/system-log
109261
109223
  * Get system log with pagination
@@ -109280,7 +109242,7 @@ var runSystemLogContract = c17.router({
109280
109242
  summary: "Get system log with pagination"
109281
109243
  }
109282
109244
  });
109283
- var runMetricsContract = c17.router({
109245
+ var runMetricsContract = c18.router({
109284
109246
  /**
109285
109247
  * GET /api/agent/runs/:id/telemetry/metrics
109286
109248
  * Get metrics with pagination
@@ -109305,7 +109267,7 @@ var runMetricsContract = c17.router({
109305
109267
  summary: "Get metrics with pagination"
109306
109268
  }
109307
109269
  });
109308
- var runAgentEventsContract = c17.router({
109270
+ var runAgentEventsContract = c18.router({
109309
109271
  /**
109310
109272
  * GET /api/agent/runs/:id/telemetry/agent
109311
109273
  * Get agent events with pagination (for vm0 logs default)
@@ -109330,7 +109292,7 @@ var runAgentEventsContract = c17.router({
109330
109292
  summary: "Get agent events with pagination"
109331
109293
  }
109332
109294
  });
109333
- var runNetworkLogsContract = c17.router({
109295
+ var runNetworkLogsContract = c18.router({
109334
109296
  /**
109335
109297
  * GET /api/agent/runs/:id/telemetry/network
109336
109298
  * Get network logs with pagination (for vm0 logs --network)
@@ -109366,7 +109328,7 @@ var logsSearchResponseSchema = external_exports.object({
109366
109328
  results: external_exports.array(searchResultSchema),
109367
109329
  hasMore: external_exports.boolean()
109368
109330
  });
109369
- var logsSearchContract = c17.router({
109331
+ var logsSearchContract = c18.router({
109370
109332
  /**
109371
109333
  * GET /api/logs/search
109372
109334
  * Search agent events across runs using keyword matching
@@ -109423,7 +109385,7 @@ var queueResponseSchema = external_exports.object({
109423
109385
  runningTasks: external_exports.array(runningTaskSchema),
109424
109386
  estimatedTimePerRun: external_exports.number().nullable()
109425
109387
  });
109426
- var runsQueueContract = c17.router({
109388
+ var runsQueueContract = c18.router({
109427
109389
  /**
109428
109390
  * GET /api/agent/runs/queue
109429
109391
  * Get org run queue status including concurrency context and queued entries
@@ -109446,7 +109408,7 @@ init_esm_shims();
109446
109408
 
109447
109409
  // ../../packages/api-contracts/src/contracts/storages.ts
109448
109410
  init_esm_shims();
109449
- var c18 = initContract();
109411
+ var c19 = initContract();
109450
109412
  var storageTypeSchema = external_exports.enum(["volume", "artifact"]);
109451
109413
  var versionQuerySchema = external_exports.string().regex(/^[a-f0-9]{8,64}$/i, "Version must be 8-64 hex characters").optional();
109452
109414
  var uploadStorageResponseSchema = external_exports.object({
@@ -109457,7 +109419,7 @@ var uploadStorageResponseSchema = external_exports.object({
109457
109419
  type: storageTypeSchema,
109458
109420
  deduplicated: external_exports.boolean()
109459
109421
  });
109460
- var storagesContract = c18.router({
109422
+ var storagesContract = c19.router({
109461
109423
  /**
109462
109424
  * POST /api/storages
109463
109425
  * Upload a storage (tar.gz file)
@@ -109474,7 +109436,7 @@ var storagesContract = c18.router({
109474
109436
  path: "/api/storages",
109475
109437
  headers: authHeadersSchema,
109476
109438
  contentType: "multipart/form-data",
109477
- body: c18.type(),
109439
+ body: c19.type(),
109478
109440
  responses: {
109479
109441
  200: uploadStorageResponseSchema,
109480
109442
  400: apiErrorSchema,
@@ -109503,9 +109465,9 @@ var storagesContract = c18.router({
109503
109465
  }),
109504
109466
  responses: {
109505
109467
  // Binary response - actual handling done at route level
109506
- 200: c18.otherResponse({
109468
+ 200: c19.otherResponse({
109507
109469
  contentType: "application/gzip",
109508
- body: c18.type()
109470
+ body: c19.type()
109509
109471
  }),
109510
109472
  400: apiErrorSchema,
109511
109473
  401: apiErrorSchema,
@@ -109530,7 +109492,7 @@ var presignedUploadSchema = external_exports.object({
109530
109492
  key: external_exports.string(),
109531
109493
  presignedUrl: external_exports.url()
109532
109494
  });
109533
- var storagesPrepareContract = c18.router({
109495
+ var storagesPrepareContract = c19.router({
109534
109496
  prepare: {
109535
109497
  method: "POST",
109536
109498
  path: "/api/storages/prepare",
@@ -109565,7 +109527,7 @@ var storagesPrepareContract = c18.router({
109565
109527
  summary: "Prepare for direct S3 upload"
109566
109528
  }
109567
109529
  });
109568
- var storagesCommitContract = c18.router({
109530
+ var storagesCommitContract = c19.router({
109569
109531
  commit: {
109570
109532
  method: "POST",
109571
109533
  path: "/api/storages/commit",
@@ -109599,7 +109561,7 @@ var storagesCommitContract = c18.router({
109599
109561
  summary: "Commit uploaded storage"
109600
109562
  }
109601
109563
  });
109602
- var storagesDownloadContract = c18.router({
109564
+ var storagesDownloadContract = c19.router({
109603
109565
  download: {
109604
109566
  method: "GET",
109605
109567
  path: "/api/storages/download",
@@ -109635,7 +109597,7 @@ var storagesDownloadContract = c18.router({
109635
109597
  summary: "Get presigned download URL"
109636
109598
  }
109637
109599
  });
109638
- var storagesListContract = c18.router({
109600
+ var storagesListContract = c19.router({
109639
109601
  list: {
109640
109602
  method: "GET",
109641
109603
  path: "/api/storages/list",
@@ -109663,17 +109625,17 @@ var storagesListContract = c18.router({
109663
109625
  });
109664
109626
 
109665
109627
  // ../../packages/api-contracts/src/contracts/webhooks.ts
109666
- var c19 = initContract();
109628
+ var c20 = initContract();
109667
109629
  var thirdPartyWebhookErrorSchema = external_exports.object({ error: external_exports.string() });
109668
109630
  var thirdPartyWebhookOkSchema = external_exports.union([
109669
109631
  external_exports.string(),
109670
109632
  external_exports.object({ message: external_exports.literal("pong") })
109671
109633
  ]);
109672
- var webhookClerkContract = c19.router({
109634
+ var webhookClerkContract = c20.router({
109673
109635
  post: {
109674
109636
  method: "POST",
109675
109637
  path: "/api/webhooks/clerk",
109676
- body: c19.type(),
109638
+ body: c20.type(),
109677
109639
  responses: {
109678
109640
  200: thirdPartyWebhookOkSchema,
109679
109641
  401: thirdPartyWebhookErrorSchema
@@ -109681,11 +109643,11 @@ var webhookClerkContract = c19.router({
109681
109643
  summary: "Handle Clerk organization and user webhooks"
109682
109644
  }
109683
109645
  });
109684
- var webhookGithubContract = c19.router({
109646
+ var webhookGithubContract = c20.router({
109685
109647
  post: {
109686
109648
  method: "POST",
109687
109649
  path: "/api/webhooks/github",
109688
- body: c19.type(),
109650
+ body: c20.type(),
109689
109651
  responses: {
109690
109652
  200: thirdPartyWebhookOkSchema,
109691
109653
  400: thirdPartyWebhookErrorSchema,
@@ -109695,11 +109657,11 @@ var webhookGithubContract = c19.router({
109695
109657
  summary: "Handle GitHub App webhooks"
109696
109658
  }
109697
109659
  });
109698
- var webhookStripeContract = c19.router({
109660
+ var webhookStripeContract = c20.router({
109699
109661
  post: {
109700
109662
  method: "POST",
109701
109663
  path: "/api/webhooks/stripe",
109702
- body: c19.type(),
109664
+ body: c20.type(),
109703
109665
  responses: {
109704
109666
  200: thirdPartyWebhookOkSchema,
109705
109667
  401: thirdPartyWebhookErrorSchema,
@@ -109708,7 +109670,7 @@ var webhookStripeContract = c19.router({
109708
109670
  summary: "Handle Stripe billing webhooks"
109709
109671
  }
109710
109672
  });
109711
- var webhookBuiltInGenerationFalContract = c19.router({
109673
+ var webhookBuiltInGenerationFalContract = c20.router({
109712
109674
  post: {
109713
109675
  method: "POST",
109714
109676
  path: "/api/webhooks/built-in-generations/fal/:generationId",
@@ -109719,7 +109681,7 @@ var webhookBuiltInGenerationFalContract = c19.router({
109719
109681
  token: external_exports.string().min(1),
109720
109682
  visualKey: external_exports.string().min(1).optional()
109721
109683
  }),
109722
- body: c19.type(),
109684
+ body: c20.type(),
109723
109685
  responses: {
109724
109686
  200: thirdPartyWebhookOkSchema,
109725
109687
  400: thirdPartyWebhookErrorSchema,
@@ -109729,7 +109691,7 @@ var webhookBuiltInGenerationFalContract = c19.router({
109729
109691
  summary: "Handle fal built-in generation webhooks"
109730
109692
  }
109731
109693
  });
109732
- var webhookBuiltInGenerationBytePlusContract = c19.router({
109694
+ var webhookBuiltInGenerationBytePlusContract = c20.router({
109733
109695
  post: {
109734
109696
  method: "POST",
109735
109697
  path: "/api/webhooks/built-in-generations/byteplus/:generationId",
@@ -109740,7 +109702,7 @@ var webhookBuiltInGenerationBytePlusContract = c19.router({
109740
109702
  token: external_exports.string().min(1),
109741
109703
  visualKey: external_exports.string().min(1).optional()
109742
109704
  }),
109743
- body: c19.type(),
109705
+ body: c20.type(),
109744
109706
  responses: {
109745
109707
  200: thirdPartyWebhookOkSchema,
109746
109708
  400: thirdPartyWebhookErrorSchema,
@@ -109767,7 +109729,10 @@ var artifactSnapshotsSchema = external_exports.array(
109767
109729
  external_exports.object({
109768
109730
  name: external_exports.string(),
109769
109731
  version: external_exports.string(),
109770
- mountPath: external_exports.string()
109732
+ mountPath: external_exports.string(),
109733
+ // Internal provenance used by run creation to decide checkpoint-time
109734
+ // behavior on a later resume. It is not exposed by public checkpoint APIs.
109735
+ generatedBy: external_exports.literal("apiAutoMemory").optional()
109771
109736
  })
109772
109737
  );
109773
109738
  var volumeVersionsSnapshotSchema = external_exports.object({
@@ -109793,7 +109758,7 @@ var firewallAuthResponseSchema = external_exports.object({
109793
109758
  refreshedConnectors: external_exports.array(external_exports.string()),
109794
109759
  refreshedSecrets: external_exports.array(external_exports.string())
109795
109760
  });
109796
- var webhookFirewallAuthContract = c19.router({
109761
+ var webhookFirewallAuthContract = c20.router({
109797
109762
  /**
109798
109763
  * POST /api/webhooks/agent/firewall/auth
109799
109764
  * Resolve firewall auth templates and refresh access tokens on demand.
@@ -109834,7 +109799,7 @@ var webhookFirewallAuthContract = c19.router({
109834
109799
  summary: "Resolve firewall auth templates"
109835
109800
  }
109836
109801
  });
109837
- var webhookEventsContract = c19.router({
109802
+ var webhookEventsContract = c20.router({
109838
109803
  /**
109839
109804
  * POST /api/webhooks/agent/events
109840
109805
  * Receive agent events from sandbox
@@ -109861,7 +109826,7 @@ var webhookEventsContract = c19.router({
109861
109826
  summary: "Receive agent events from sandbox"
109862
109827
  }
109863
109828
  });
109864
- var webhookCompleteContract = c19.router({
109829
+ var webhookCompleteContract = c20.router({
109865
109830
  /**
109866
109831
  * POST /api/webhooks/agent/complete
109867
109832
  * Handle agent run completion (success or failure)
@@ -109898,7 +109863,7 @@ var webhookCompleteContract = c19.router({
109898
109863
  summary: "Handle agent run completion"
109899
109864
  }
109900
109865
  });
109901
- var webhookCheckpointsContract = c19.router({
109866
+ var webhookCheckpointsContract = c20.router({
109902
109867
  /**
109903
109868
  * POST /api/webhooks/agent/checkpoints
109904
109869
  * Create a recoverable checkpoint for an agent run.
@@ -109937,7 +109902,7 @@ var webhookCheckpointsContract = c19.router({
109937
109902
  summary: "Create checkpoint for agent run"
109938
109903
  }
109939
109904
  });
109940
- var webhookCheckpointsPrepareHistoryContract = c19.router({
109905
+ var webhookCheckpointsPrepareHistoryContract = c20.router({
109941
109906
  prepare: {
109942
109907
  method: "POST",
109943
109908
  path: "/api/webhooks/agent/checkpoints/prepare-history",
@@ -109960,7 +109925,7 @@ var webhookCheckpointsPrepareHistoryContract = c19.router({
109960
109925
  summary: "Get presigned URL for uploading session history to S3"
109961
109926
  }
109962
109927
  });
109963
- var webhookHeartbeatContract = c19.router({
109928
+ var webhookHeartbeatContract = c20.router({
109964
109929
  /**
109965
109930
  * POST /api/webhooks/agent/heartbeat
109966
109931
  * Receive heartbeat signals from sandbox
@@ -109984,7 +109949,7 @@ var webhookHeartbeatContract = c19.router({
109984
109949
  summary: "Receive heartbeat from sandbox"
109985
109950
  }
109986
109951
  });
109987
- var webhookStoragesContract = c19.router({
109952
+ var webhookStoragesContract = c20.router({
109988
109953
  /**
109989
109954
  * POST /api/webhooks/agent/storages
109990
109955
  * Create a new version of a storage from sandbox
@@ -110000,7 +109965,7 @@ var webhookStoragesContract = c19.router({
110000
109965
  path: "/api/webhooks/agent/storages",
110001
109966
  headers: authHeadersSchema,
110002
109967
  contentType: "multipart/form-data",
110003
- body: c19.type(),
109968
+ body: c20.type(),
110004
109969
  responses: {
110005
109970
  200: external_exports.object({
110006
109971
  versionId: external_exports.string(),
@@ -110016,7 +109981,7 @@ var webhookStoragesContract = c19.router({
110016
109981
  summary: "Upload storage version from sandbox"
110017
109982
  }
110018
109983
  });
110019
- var webhookStoragesIncrementalContract = c19.router({
109984
+ var webhookStoragesIncrementalContract = c20.router({
110020
109985
  /**
110021
109986
  * POST /api/webhooks/agent/storages/incremental
110022
109987
  * Create a new version using incremental upload
@@ -110034,7 +109999,7 @@ var webhookStoragesIncrementalContract = c19.router({
110034
109999
  path: "/api/webhooks/agent/storages/incremental",
110035
110000
  headers: authHeadersSchema,
110036
110001
  contentType: "multipart/form-data",
110037
- body: c19.type(),
110002
+ body: c20.type(),
110038
110003
  responses: {
110039
110004
  200: external_exports.object({
110040
110005
  versionId: external_exports.string(),
@@ -110072,7 +110037,7 @@ var sandboxOperationSchema = external_exports.object({
110072
110037
  success: external_exports.boolean(),
110073
110038
  error: external_exports.string().optional()
110074
110039
  });
110075
- var webhookTelemetryContract = c19.router({
110040
+ var webhookTelemetryContract = c20.router({
110076
110041
  /**
110077
110042
  * POST /api/webhooks/agent/telemetry
110078
110043
  * Receive telemetry data (system log, metrics, network logs, and sandbox operations) from sandbox
@@ -110101,7 +110066,7 @@ var webhookTelemetryContract = c19.router({
110101
110066
  summary: "Receive telemetry data from sandbox"
110102
110067
  }
110103
110068
  });
110104
- var webhookStoragesPrepareContract = c19.router({
110069
+ var webhookStoragesPrepareContract = c20.router({
110105
110070
  prepare: {
110106
110071
  method: "POST",
110107
110072
  path: "/api/webhooks/agent/storages/prepare",
@@ -110135,7 +110100,7 @@ var webhookStoragesPrepareContract = c19.router({
110135
110100
  summary: "Prepare for direct S3 upload from sandbox"
110136
110101
  }
110137
110102
  });
110138
- var webhookStoragesCommitContract = c19.router({
110103
+ var webhookStoragesCommitContract = c20.router({
110139
110104
  commit: {
110140
110105
  method: "POST",
110141
110106
  path: "/api/webhooks/agent/storages/commit",
@@ -110177,7 +110142,7 @@ var webhookUsageEventItemSchema = external_exports.object({
110177
110142
  category: external_exports.string().min(1).max(100),
110178
110143
  quantity: external_exports.number().int().min(0)
110179
110144
  }).strict();
110180
- var webhookUsageEventContract = c19.router({
110145
+ var webhookUsageEventContract = c20.router({
110181
110146
  send: {
110182
110147
  method: "POST",
110183
110148
  path: "/api/webhooks/agent/usage-event",
@@ -110215,8 +110180,8 @@ var zeroRunRequestSchema = unifiedRunRequestSchema.omit({
110215
110180
  agentId: external_exports.string().optional(),
110216
110181
  modelProvider: external_exports.string().optional()
110217
110182
  });
110218
- var c20 = initContract();
110219
- var zeroRunsMainContract = c20.router({
110183
+ var c21 = initContract();
110184
+ var zeroRunsMainContract = c21.router({
110220
110185
  create: {
110221
110186
  method: "POST",
110222
110187
  path: "/api/zero/runs",
@@ -110235,7 +110200,7 @@ var zeroRunsMainContract = c20.router({
110235
110200
  summary: "Create and execute agent run (zero proxy)"
110236
110201
  }
110237
110202
  });
110238
- var zeroRunsByIdContract = c20.router({
110203
+ var zeroRunsByIdContract = c21.router({
110239
110204
  getById: {
110240
110205
  method: "GET",
110241
110206
  path: "/api/zero/runs/:id",
@@ -110253,7 +110218,7 @@ var zeroRunsByIdContract = c20.router({
110253
110218
  summary: "Get agent run by ID (zero proxy)"
110254
110219
  }
110255
110220
  });
110256
- var zeroRunsCancelContract = c20.router({
110221
+ var zeroRunsCancelContract = c21.router({
110257
110222
  cancel: {
110258
110223
  method: "POST",
110259
110224
  path: "/api/zero/runs/:id/cancel",
@@ -110272,7 +110237,7 @@ var zeroRunsCancelContract = c20.router({
110272
110237
  summary: "Cancel a pending or running run (zero proxy)"
110273
110238
  }
110274
110239
  });
110275
- var zeroRunsQueueContract = c20.router({
110240
+ var zeroRunsQueueContract = c21.router({
110276
110241
  getQueue: {
110277
110242
  method: "GET",
110278
110243
  path: "/api/zero/runs/queue",
@@ -110285,7 +110250,7 @@ var zeroRunsQueueContract = c20.router({
110285
110250
  summary: "Get org run queue status (zero proxy)"
110286
110251
  }
110287
110252
  });
110288
- var zeroRunAgentEventsContract = c20.router({
110253
+ var zeroRunAgentEventsContract = c21.router({
110289
110254
  getAgentEvents: {
110290
110255
  method: "GET",
110291
110256
  path: "/api/zero/runs/:id/telemetry/agent",
@@ -110347,7 +110312,7 @@ var runContextResponseSchema = external_exports.object({
110347
110312
  artifact: runContextArtifactSchema.nullable(),
110348
110313
  featureFlags: external_exports.record(external_exports.string(), external_exports.boolean()).nullable()
110349
110314
  });
110350
- var zeroRunContextContract = c20.router({
110315
+ var zeroRunContextContract = c21.router({
110351
110316
  getContext: {
110352
110317
  method: "GET",
110353
110318
  path: "/api/zero/runs/:id/context",
@@ -110365,7 +110330,7 @@ var zeroRunContextContract = c20.router({
110365
110330
  summary: "Get run execution context snapshot for debugging"
110366
110331
  }
110367
110332
  });
110368
- var zeroRunNetworkLogsContract = c20.router({
110333
+ var zeroRunNetworkLogsContract = c21.router({
110369
110334
  getNetworkLogs: {
110370
110335
  method: "GET",
110371
110336
  path: "/api/zero/runs/:id/network",
@@ -110391,7 +110356,7 @@ var zeroRunNetworkLogsContract = c20.router({
110391
110356
  var runRunnerResponseSchema = external_exports.object({
110392
110357
  sandboxReuseResult: sandboxReuseResultSchema.nullable()
110393
110358
  });
110394
- var zeroRunRunnerContract = c20.router({
110359
+ var zeroRunRunnerContract = c21.router({
110395
110360
  getRunner: {
110396
110361
  method: "GET",
110397
110362
  path: "/api/zero/runs/:id/runner",
@@ -110409,7 +110374,7 @@ var zeroRunRunnerContract = c20.router({
110409
110374
  summary: "Get runner-level metadata for a run"
110410
110375
  }
110411
110376
  });
110412
- var zeroLogsSearchContract = c20.router({
110377
+ var zeroLogsSearchContract = c21.router({
110413
110378
  searchLogs: {
110414
110379
  method: "GET",
110415
110380
  path: "/api/zero/logs/search",
@@ -110474,7 +110439,7 @@ init_esm_shims();
110474
110439
 
110475
110440
  // ../../packages/api-contracts/src/contracts/chat-threads.ts
110476
110441
  init_esm_shims();
110477
- var c21 = initContract();
110442
+ var c22 = initContract();
110478
110443
  var MODEL_FIRST_SELECTION_PROVIDER_ID = "00000000-0000-4000-8000-000000000000";
110479
110444
  var attachFileSchema = external_exports.object({
110480
110445
  id: external_exports.string(),
@@ -110680,7 +110645,7 @@ var modelSelectionRequestSchema = external_exports.object({
110680
110645
  });
110681
110646
  }
110682
110647
  });
110683
- var chatThreadsContract = c21.router({
110648
+ var chatThreadsContract = c22.router({
110684
110649
  create: {
110685
110650
  method: "POST",
110686
110651
  path: "/api/zero/chat-threads",
@@ -110757,7 +110722,7 @@ var chatThreadIdPathParamsSchema = external_exports.object({ id: external_export
110757
110722
  var chatThreadThreadIdPathParamsSchema = external_exports.object({
110758
110723
  threadId: external_exports.string().uuid()
110759
110724
  });
110760
- var chatThreadByIdContract = c21.router({
110725
+ var chatThreadByIdContract = c22.router({
110761
110726
  get: {
110762
110727
  method: "GET",
110763
110728
  path: "/api/zero/chat-threads/:id",
@@ -110781,7 +110746,7 @@ var chatThreadByIdContract = c21.router({
110781
110746
  draftAttachments: external_exports.array(persistedAttachmentSchema).nullable().optional()
110782
110747
  }),
110783
110748
  responses: {
110784
- 204: c21.noBody(),
110749
+ 204: c22.noBody(),
110785
110750
  400: apiErrorSchema,
110786
110751
  401: apiErrorSchema,
110787
110752
  404: apiErrorSchema
@@ -110794,22 +110759,22 @@ var chatThreadByIdContract = c21.router({
110794
110759
  headers: authHeadersSchema,
110795
110760
  pathParams: chatThreadIdPathParamsSchema,
110796
110761
  responses: {
110797
- 204: c21.noBody(),
110762
+ 204: c22.noBody(),
110798
110763
  400: apiErrorSchema,
110799
110764
  401: apiErrorSchema,
110800
110765
  404: apiErrorSchema
110801
110766
  },
110802
110767
  summary: "Delete a chat thread",
110803
- body: c21.noBody()
110768
+ body: c22.noBody()
110804
110769
  }
110805
110770
  });
110806
- var chatThreadMarkReadContract = c21.router({
110771
+ var chatThreadMarkReadContract = c22.router({
110807
110772
  markRead: {
110808
110773
  method: "POST",
110809
110774
  path: "/api/zero/chat-threads/:id/mark-read",
110810
110775
  headers: authHeadersSchema,
110811
110776
  pathParams: chatThreadIdPathParamsSchema,
110812
- body: c21.noBody(),
110777
+ body: c22.noBody(),
110813
110778
  responses: {
110814
110779
  200: external_exports.object({
110815
110780
  lastReadMessageId: external_exports.string().nullable(),
@@ -110822,15 +110787,15 @@ var chatThreadMarkReadContract = c21.router({
110822
110787
  summary: "Mark a chat thread as read up to the latest message"
110823
110788
  }
110824
110789
  });
110825
- var chatThreadPinContract = c21.router({
110790
+ var chatThreadPinContract = c22.router({
110826
110791
  pin: {
110827
110792
  method: "POST",
110828
110793
  path: "/api/zero/chat-threads/:id/pin",
110829
110794
  headers: authHeadersSchema,
110830
110795
  pathParams: chatThreadIdPathParamsSchema,
110831
- body: c21.noBody(),
110796
+ body: c22.noBody(),
110832
110797
  responses: {
110833
- 204: c21.noBody(),
110798
+ 204: c22.noBody(),
110834
110799
  400: apiErrorSchema,
110835
110800
  401: apiErrorSchema,
110836
110801
  404: apiErrorSchema
@@ -110838,15 +110803,15 @@ var chatThreadPinContract = c21.router({
110838
110803
  summary: "Pin a chat thread to the top of the sidebar"
110839
110804
  }
110840
110805
  });
110841
- var chatThreadUnpinContract = c21.router({
110806
+ var chatThreadUnpinContract = c22.router({
110842
110807
  unpin: {
110843
110808
  method: "POST",
110844
110809
  path: "/api/zero/chat-threads/:id/unpin",
110845
110810
  headers: authHeadersSchema,
110846
110811
  pathParams: chatThreadIdPathParamsSchema,
110847
- body: c21.noBody(),
110812
+ body: c22.noBody(),
110848
110813
  responses: {
110849
- 204: c21.noBody(),
110814
+ 204: c22.noBody(),
110850
110815
  400: apiErrorSchema,
110851
110816
  401: apiErrorSchema,
110852
110817
  404: apiErrorSchema
@@ -110854,7 +110819,7 @@ var chatThreadUnpinContract = c21.router({
110854
110819
  summary: "Remove the pin from a chat thread"
110855
110820
  }
110856
110821
  });
110857
- var chatThreadRenameContract = c21.router({
110822
+ var chatThreadRenameContract = c22.router({
110858
110823
  rename: {
110859
110824
  method: "POST",
110860
110825
  path: "/api/zero/chat-threads/:id/rename",
@@ -110862,7 +110827,7 @@ var chatThreadRenameContract = c21.router({
110862
110827
  pathParams: chatThreadIdPathParamsSchema,
110863
110828
  body: external_exports.object({ title: external_exports.string().min(1) }),
110864
110829
  responses: {
110865
- 204: c21.noBody(),
110830
+ 204: c22.noBody(),
110866
110831
  400: apiErrorSchema,
110867
110832
  401: apiErrorSchema,
110868
110833
  404: apiErrorSchema
@@ -110870,7 +110835,7 @@ var chatThreadRenameContract = c21.router({
110870
110835
  summary: "Rename a chat thread (suppresses automated title generation)"
110871
110836
  }
110872
110837
  });
110873
- var chatMessagesContract = c21.router({
110838
+ var chatMessagesContract = c22.router({
110874
110839
  send: {
110875
110840
  method: "POST",
110876
110841
  path: "/api/zero/chat/messages",
@@ -110989,7 +110954,7 @@ var chatSearchResponseSchema = external_exports.object({
110989
110954
  results: external_exports.array(chatSearchResultSchema),
110990
110955
  hasMore: external_exports.boolean()
110991
110956
  });
110992
- var chatSearchContract = c21.router({
110957
+ var chatSearchContract = c22.router({
110993
110958
  search: {
110994
110959
  method: "GET",
110995
110960
  path: "/api/zero/chat/search",
@@ -111011,7 +110976,7 @@ var chatSearchContract = c21.router({
111011
110976
  summary: "Search chat messages within caller's org (zero proxy)"
111012
110977
  }
111013
110978
  });
111014
- var chatThreadMessagesContract = c21.router({
110979
+ var chatThreadMessagesContract = c22.router({
111015
110980
  list: {
111016
110981
  method: "GET",
111017
110982
  path: "/api/zero/chat-threads/:threadId/messages",
@@ -111034,7 +110999,7 @@ var chatThreadMessagesContract = c21.router({
111034
110999
  summary: "Get paginated chat messages for a thread"
111035
111000
  }
111036
111001
  });
111037
- var chatThreadArtifactsContract = c21.router({
111002
+ var chatThreadArtifactsContract = c22.router({
111038
111003
  list: {
111039
111004
  method: "GET",
111040
111005
  path: "/api/zero/chat-threads/:threadId/artifacts",
@@ -111075,7 +111040,7 @@ var chatThreadArtifactsContract = c21.router({
111075
111040
  summary: "Sync a chat artifact file to the user's connected Google Drive"
111076
111041
  }
111077
111042
  });
111078
- var chatThreadGithubPrsContract = c21.router({
111043
+ var chatThreadGithubPrsContract = c22.router({
111079
111044
  list: {
111080
111045
  method: "GET",
111081
111046
  path: "/api/zero/chat-threads/:threadId/github-prs",
@@ -111203,7 +111168,7 @@ init_esm_shims();
111203
111168
 
111204
111169
  // ../../packages/api-contracts/src/contracts/zero-developer-support.ts
111205
111170
  init_esm_shims();
111206
- var c22 = initContract();
111171
+ var c23 = initContract();
111207
111172
  var developerSupportBodySchema = external_exports.object({
111208
111173
  title: external_exports.string().min(1, "Title is required"),
111209
111174
  description: external_exports.string().min(1, "Description is required"),
@@ -111215,7 +111180,7 @@ var consentCodeResponseSchema = external_exports.object({
111215
111180
  var submitResponseSchema = external_exports.object({
111216
111181
  reference: external_exports.string()
111217
111182
  });
111218
- var zeroDeveloperSupportContract = c22.router({
111183
+ var zeroDeveloperSupportContract = c23.router({
111219
111184
  submit: {
111220
111185
  method: "POST",
111221
111186
  path: "/api/zero/developer-support",
@@ -111252,7 +111217,7 @@ init_esm_shims();
111252
111217
 
111253
111218
  // ../../packages/api-contracts/src/contracts/zero-computer-use.ts
111254
111219
  init_esm_shims();
111255
- var c23 = initContract();
111220
+ var c24 = initContract();
111256
111221
  var computerUseHostStatusSchema = external_exports.enum(["online", "offline"]);
111257
111222
  var computerUseReadCommandKindSchema = external_exports.enum([
111258
111223
  "apps.list",
@@ -111560,7 +111525,7 @@ var computerUseAuditEventSchema = external_exports.object({
111560
111525
  var computerUseAuditEventListResponseSchema = external_exports.object({
111561
111526
  auditEvents: external_exports.array(computerUseAuditEventSchema)
111562
111527
  });
111563
- var zeroComputerUseHostsContract = c23.router({
111528
+ var zeroComputerUseHostsContract = c24.router({
111564
111529
  start: {
111565
111530
  method: "POST",
111566
111531
  path: "/api/zero/computer-use/hosts/start",
@@ -111599,7 +111564,7 @@ var zeroComputerUseHostsContract = c23.router({
111599
111564
  summary: "Delete a desktop computer-use host"
111600
111565
  }
111601
111566
  });
111602
- var zeroComputerUseHeartbeatContract = c23.router({
111567
+ var zeroComputerUseHeartbeatContract = c24.router({
111603
111568
  heartbeat: {
111604
111569
  method: "POST",
111605
111570
  path: "/api/zero/computer-use/heartbeat",
@@ -111624,7 +111589,7 @@ var zeroComputerUseHeartbeatContract = c23.router({
111624
111589
  summary: "Stop a desktop computer-use host"
111625
111590
  }
111626
111591
  });
111627
- var zeroComputerUseCommandContract = c23.router({
111592
+ var zeroComputerUseCommandContract = c24.router({
111628
111593
  create: {
111629
111594
  method: "POST",
111630
111595
  path: "/api/zero/computer-use/commands",
@@ -111659,7 +111624,7 @@ var zeroComputerUseCommandContract = c23.router({
111659
111624
  headers: authHeadersSchema,
111660
111625
  pathParams: commandIdPathParamsSchema,
111661
111626
  responses: {
111662
- 200: c23.noBody(),
111627
+ 200: c24.noBody(),
111663
111628
  401: apiErrorSchema,
111664
111629
  403: apiErrorSchema,
111665
111630
  404: apiErrorSchema
@@ -111667,7 +111632,7 @@ var zeroComputerUseCommandContract = c23.router({
111667
111632
  summary: "Download a desktop computer-use command screenshot"
111668
111633
  }
111669
111634
  });
111670
- var zeroComputerUseWriteCommandContract = c23.router({
111635
+ var zeroComputerUseWriteCommandContract = c24.router({
111671
111636
  create: {
111672
111637
  method: "POST",
111673
111638
  path: "/api/zero/computer-use/write-commands",
@@ -111684,7 +111649,7 @@ var zeroComputerUseWriteCommandContract = c23.router({
111684
111649
  summary: "Create a desktop computer-use write command"
111685
111650
  }
111686
111651
  });
111687
- var zeroComputerUseCommandApprovalContract = c23.router({
111652
+ var zeroComputerUseCommandApprovalContract = c24.router({
111688
111653
  decide: {
111689
111654
  method: "POST",
111690
111655
  path: "/api/zero/computer-use/commands/:commandId/approval",
@@ -111701,7 +111666,7 @@ var zeroComputerUseCommandApprovalContract = c23.router({
111701
111666
  summary: "Approve or deny a pending desktop computer-use write command"
111702
111667
  }
111703
111668
  });
111704
- var zeroComputerUseHostCommandsContract = c23.router({
111669
+ var zeroComputerUseHostCommandsContract = c24.router({
111705
111670
  next: {
111706
111671
  method: "POST",
111707
111672
  path: "/api/zero/computer-use/host/commands/next",
@@ -111729,7 +111694,7 @@ var zeroComputerUseHostCommandsContract = c23.router({
111729
111694
  summary: "Complete a desktop computer-use command"
111730
111695
  }
111731
111696
  });
111732
- var zeroComputerUseAuditEventsContract = c23.router({
111697
+ var zeroComputerUseAuditEventsContract = c24.router({
111733
111698
  list: {
111734
111699
  method: "GET",
111735
111700
  path: "/api/zero/computer-use/audit-events",
@@ -112040,7 +112005,7 @@ init_esm_shims();
112040
112005
 
112041
112006
  // ../../packages/api-contracts/src/contracts/sessions.ts
112042
112007
  init_esm_shims();
112043
- var c24 = initContract();
112008
+ var c25 = initContract();
112044
112009
  var sessionResponseSchema = external_exports.object({
112045
112010
  id: external_exports.string(),
112046
112011
  agentComposeId: external_exports.string(),
@@ -112081,7 +112046,7 @@ var checkpointResponseSchema = external_exports.object({
112081
112046
  volumeVersionsSnapshot: volumeVersionsSnapshotSchema2.nullable(),
112082
112047
  createdAt: external_exports.string()
112083
112048
  });
112084
- var sessionsByIdContract = c24.router({
112049
+ var sessionsByIdContract = c25.router({
112085
112050
  /**
112086
112051
  * GET /api/agent/sessions/:id
112087
112052
  * Get session by ID
@@ -112102,7 +112067,7 @@ var sessionsByIdContract = c24.router({
112102
112067
  summary: "Get session by ID"
112103
112068
  }
112104
112069
  });
112105
- var checkpointsByIdContract = c24.router({
112070
+ var checkpointsByIdContract = c25.router({
112106
112071
  /**
112107
112072
  * GET /api/agent/checkpoints/:id
112108
112073
  * Get checkpoint by ID
@@ -112264,9 +112229,9 @@ init_esm_shims();
112264
112229
 
112265
112230
  // ../../packages/api-contracts/src/contracts/zero-model-providers.ts
112266
112231
  init_esm_shims();
112267
- var c25 = initContract();
112232
+ var c26 = initContract();
112268
112233
  var orgUpsertModelProviderRequestSchema = upsertModelProviderRequestSchema.omit({ selectedModel: true });
112269
- var zeroModelProvidersMainContract = c25.router({
112234
+ var zeroModelProvidersMainContract = c26.router({
112270
112235
  list: {
112271
112236
  method: "GET",
112272
112237
  path: "/api/zero/model-providers",
@@ -112295,7 +112260,7 @@ var zeroModelProvidersMainContract = c25.router({
112295
112260
  summary: "Create or update an org-level model provider (admin only)"
112296
112261
  }
112297
112262
  });
112298
- var zeroModelProvidersByTypeContract = c25.router({
112263
+ var zeroModelProvidersByTypeContract = c26.router({
112299
112264
  delete: {
112300
112265
  method: "DELETE",
112301
112266
  path: "/api/zero/model-providers/:type",
@@ -112304,7 +112269,7 @@ var zeroModelProvidersByTypeContract = c25.router({
112304
112269
  type: modelProviderTypeSchema
112305
112270
  }),
112306
112271
  responses: {
112307
- 204: c25.noBody(),
112272
+ 204: c26.noBody(),
112308
112273
  401: apiErrorSchema,
112309
112274
  403: apiErrorSchema,
112310
112275
  404: apiErrorSchema,
@@ -112391,7 +112356,7 @@ import { pipeline } from "stream/promises";
112391
112356
 
112392
112357
  // ../../packages/api-contracts/src/contracts/integrations.ts
112393
112358
  init_esm_shims();
112394
- var c26 = initContract();
112359
+ var c27 = initContract();
112395
112360
  var sendSlackMessageBodySchema = external_exports.object({
112396
112361
  channel: external_exports.string().min(1, "Channel ID is required").optional(),
112397
112362
  user: external_exports.string().min(1, "User ID is required").optional(),
@@ -112409,7 +112374,7 @@ var sendSlackMessageResponseSchema = external_exports.object({
112409
112374
  ts: external_exports.string().optional(),
112410
112375
  channel: external_exports.string().optional()
112411
112376
  });
112412
- var integrationsSlackMessageContract = c26.router({
112377
+ var integrationsSlackMessageContract = c27.router({
112413
112378
  sendMessage: {
112414
112379
  method: "POST",
112415
112380
  path: "/api/zero/integrations/slack/message",
@@ -112437,7 +112402,7 @@ var sendTelegramMessageResponseSchema = external_exports.object({
112437
112402
  messageId: external_exports.number().int(),
112438
112403
  chatId: external_exports.string()
112439
112404
  });
112440
- var integrationsTelegramMessageContract = c26.router({
112405
+ var integrationsTelegramMessageContract = c27.router({
112441
112406
  sendMessage: {
112442
112407
  method: "POST",
112443
112408
  path: "/api/zero/integrations/telegram/message",
@@ -112465,7 +112430,7 @@ var sendPhoneMessageResponseSchema = external_exports.object({
112465
112430
  channel: external_exports.string().nullable(),
112466
112431
  toNumber: external_exports.string()
112467
112432
  });
112468
- var integrationsPhoneMessageContract = c26.router({
112433
+ var integrationsPhoneMessageContract = c27.router({
112469
112434
  sendMessage: {
112470
112435
  method: "POST",
112471
112436
  path: "/api/zero/integrations/phone/message",
@@ -112485,14 +112450,14 @@ var integrationsPhoneMessageContract = c26.router({
112485
112450
  var phoneDownloadFileQuerySchema = external_exports.object({
112486
112451
  file_id: external_exports.string().min(1, "file_id query parameter is required")
112487
112452
  });
112488
- var integrationsPhoneDownloadFileContract = c26.router({
112453
+ var integrationsPhoneDownloadFileContract = c27.router({
112489
112454
  download: {
112490
112455
  method: "GET",
112491
112456
  path: "/api/zero/integrations/phone/download-file",
112492
112457
  headers: authHeadersSchema,
112493
112458
  query: phoneDownloadFileQuerySchema,
112494
112459
  responses: {
112495
- 200: c26.type(),
112460
+ 200: c27.type(),
112496
112461
  400: apiErrorSchema,
112497
112462
  401: apiErrorSchema,
112498
112463
  403: apiErrorSchema,
@@ -112527,7 +112492,7 @@ var telegramBotListItemSchema = external_exports.object({
112527
112492
  var listTelegramBotsResponseSchema = external_exports.object({
112528
112493
  bots: external_exports.array(telegramBotListItemSchema)
112529
112494
  });
112530
- var integrationsTelegramBotListContract = c26.router({
112495
+ var integrationsTelegramBotListContract = c27.router({
112531
112496
  listBots: {
112532
112497
  method: "GET",
112533
112498
  path: "/api/zero/integrations/telegram/bots",
@@ -112548,7 +112513,7 @@ var slackUploadInitResponseSchema = external_exports.object({
112548
112513
  uploadUrl: external_exports.string(),
112549
112514
  fileId: external_exports.string()
112550
112515
  });
112551
- var integrationsSlackUploadInitContract = c26.router({
112516
+ var integrationsSlackUploadInitContract = c27.router({
112552
112517
  init: {
112553
112518
  method: "POST",
112554
112519
  path: "/api/zero/integrations/slack/upload-file/init",
@@ -112577,7 +112542,7 @@ var telegramUploadInitResponseSchema = external_exports.object({
112577
112542
  contentType: external_exports.string(),
112578
112543
  size: external_exports.number().int().nonnegative()
112579
112544
  });
112580
- var integrationsTelegramUploadInitContract = c26.router({
112545
+ var integrationsTelegramUploadInitContract = c27.router({
112581
112546
  init: {
112582
112547
  method: "POST",
112583
112548
  path: "/api/zero/integrations/telegram/upload-file/init",
@@ -112609,7 +112574,7 @@ var telegramUploadCompleteResponseSchema = external_exports.object({
112609
112574
  size: external_exports.number().int().nonnegative(),
112610
112575
  url: external_exports.string()
112611
112576
  });
112612
- var integrationsTelegramUploadCompleteContract = c26.router({
112577
+ var integrationsTelegramUploadCompleteContract = c27.router({
112613
112578
  complete: {
112614
112579
  method: "POST",
112615
112580
  path: "/api/zero/integrations/telegram/upload-file/complete",
@@ -112639,7 +112604,7 @@ var githubUploadInitResponseSchema = external_exports.object({
112639
112604
  contentType: external_exports.string(),
112640
112605
  size: external_exports.number().int().nonnegative()
112641
112606
  });
112642
- var integrationsGithubUploadInitContract = c26.router({
112607
+ var integrationsGithubUploadInitContract = c27.router({
112643
112608
  init: {
112644
112609
  method: "POST",
112645
112610
  path: "/api/zero/integrations/github/upload-file/init",
@@ -112670,7 +112635,7 @@ var githubUploadCompleteResponseSchema = external_exports.object({
112670
112635
  size: external_exports.number().int().nonnegative(),
112671
112636
  url: external_exports.string()
112672
112637
  });
112673
- var integrationsGithubUploadCompleteContract = c26.router({
112638
+ var integrationsGithubUploadCompleteContract = c27.router({
112674
112639
  complete: {
112675
112640
  method: "POST",
112676
112641
  path: "/api/zero/integrations/github/upload-file/complete",
@@ -112701,7 +112666,7 @@ var phoneUploadInitResponseSchema = external_exports.object({
112701
112666
  contentType: external_exports.string(),
112702
112667
  size: external_exports.number().int().nonnegative()
112703
112668
  });
112704
- var integrationsPhoneUploadInitContract = c26.router({
112669
+ var integrationsPhoneUploadInitContract = c27.router({
112705
112670
  init: {
112706
112671
  method: "POST",
112707
112672
  path: "/api/zero/integrations/phone/upload-file/init",
@@ -112732,7 +112697,7 @@ var phoneUploadCompleteResponseSchema = external_exports.object({
112732
112697
  size: external_exports.number().int().nonnegative(),
112733
112698
  url: external_exports.string()
112734
112699
  });
112735
- var integrationsPhoneUploadCompleteContract = c26.router({
112700
+ var integrationsPhoneUploadCompleteContract = c27.router({
112736
112701
  complete: {
112737
112702
  method: "POST",
112738
112703
  path: "/api/zero/integrations/phone/upload-file/complete",
@@ -112776,7 +112741,7 @@ var sendChatMessageResponseSchema = external_exports.object({
112776
112741
  threadId: external_exports.string(),
112777
112742
  createdAt: external_exports.string()
112778
112743
  });
112779
- var integrationsChatMessageContract = c26.router({
112744
+ var integrationsChatMessageContract = c27.router({
112780
112745
  sendMessage: {
112781
112746
  method: "POST",
112782
112747
  path: "/api/zero/integrations/chat/message",
@@ -112792,7 +112757,7 @@ var integrationsChatMessageContract = c26.router({
112792
112757
  summary: "Send a message to a web chat thread"
112793
112758
  }
112794
112759
  });
112795
- var integrationsSlackUploadCompleteContract = c26.router({
112760
+ var integrationsSlackUploadCompleteContract = c27.router({
112796
112761
  complete: {
112797
112762
  method: "POST",
112798
112763
  path: "/api/zero/integrations/slack/upload-file/complete",
@@ -112975,7 +112940,7 @@ import { pipeline as pipeline3 } from "stream/promises";
112975
112940
 
112976
112941
  // ../../packages/api-contracts/src/contracts/integrations-github.ts
112977
112942
  init_esm_shims();
112978
- var c27 = initContract();
112943
+ var c28 = initContract();
112979
112944
  var githubInstallationEnvironmentSchema = external_exports.object({
112980
112945
  requiredSecrets: external_exports.array(external_exports.string()),
112981
112946
  requiredVars: external_exports.array(external_exports.string()),
@@ -113063,7 +113028,7 @@ var createGithubLabelListenerResponseSchema = external_exports.object({
113063
113028
  var updateGithubLabelListenerResponseSchema = external_exports.object({
113064
113029
  listener: githubLabelListenerSchema
113065
113030
  });
113066
- var integrationsGithubContract = c27.router({
113031
+ var integrationsGithubContract = c28.router({
113067
113032
  getInstallation: {
113068
113033
  method: "GET",
113069
113034
  path: "/api/integrations/github",
@@ -113097,7 +113062,7 @@ var integrationsGithubContract = c27.router({
113097
113062
  method: "DELETE",
113098
113063
  path: "/api/integrations/github/link",
113099
113064
  headers: authHeadersSchema,
113100
- body: c27.noBody(),
113065
+ body: c28.noBody(),
113101
113066
  responses: {
113102
113067
  200: githubIntegrationActionResponseSchema,
113103
113068
  401: apiErrorSchema,
@@ -113110,7 +113075,7 @@ var integrationsGithubContract = c27.router({
113110
113075
  method: "DELETE",
113111
113076
  path: "/api/integrations/github",
113112
113077
  headers: authHeadersSchema,
113113
- body: c27.noBody(),
113078
+ body: c28.noBody(),
113114
113079
  responses: {
113115
113080
  200: deleteGithubInstallationResponseSchema,
113116
113081
  401: apiErrorSchema,
@@ -113173,7 +113138,7 @@ var integrationsGithubContract = c27.router({
113173
113138
  path: "/api/integrations/github/label-listeners/:listenerId",
113174
113139
  pathParams: external_exports.object({ listenerId: external_exports.string().uuid() }),
113175
113140
  headers: authHeadersSchema,
113176
- body: c27.noBody(),
113141
+ body: c28.noBody(),
113177
113142
  responses: {
113178
113143
  200: githubIntegrationActionResponseSchema,
113179
113144
  401: apiErrorSchema,
@@ -113387,7 +113352,7 @@ init_esm_shims();
113387
113352
 
113388
113353
  // ../../packages/api-contracts/src/contracts/zero-schedules.ts
113389
113354
  init_esm_shims();
113390
- var c28 = initContract();
113355
+ var c29 = initContract();
113391
113356
  var scheduleResponseSchema = external_exports.object({
113392
113357
  id: external_exports.string().uuid(),
113393
113358
  agentId: external_exports.string().uuid(),
@@ -113447,7 +113412,7 @@ var zeroDeployScheduleRequestSchema = external_exports.object({
113447
113412
  message: "Exactly one of 'cronExpression', 'atTime', or 'intervalSeconds' must be specified"
113448
113413
  }
113449
113414
  );
113450
- var zeroSchedulesMainContract = c28.router({
113415
+ var zeroSchedulesMainContract = c29.router({
113451
113416
  deploy: {
113452
113417
  method: "POST",
113453
113418
  path: "/api/zero/schedules",
@@ -113475,7 +113440,7 @@ var zeroSchedulesMainContract = c28.router({
113475
113440
  summary: "List all schedules (zero proxy)"
113476
113441
  }
113477
113442
  });
113478
- var zeroSchedulesByNameContract = c28.router({
113443
+ var zeroSchedulesByNameContract = c29.router({
113479
113444
  delete: {
113480
113445
  method: "DELETE",
113481
113446
  path: "/api/zero/schedules/:name",
@@ -113487,7 +113452,7 @@ var zeroSchedulesByNameContract = c28.router({
113487
113452
  agentId: external_exports.string().uuid("Invalid agent ID")
113488
113453
  }),
113489
113454
  responses: {
113490
- 204: c28.noBody(),
113455
+ 204: c29.noBody(),
113491
113456
  400: apiErrorSchema,
113492
113457
  401: apiErrorSchema,
113493
113458
  403: apiErrorSchema,
@@ -113496,7 +113461,7 @@ var zeroSchedulesByNameContract = c28.router({
113496
113461
  summary: "Delete schedule (zero proxy)"
113497
113462
  }
113498
113463
  });
113499
- var zeroSchedulesEnableContract = c28.router({
113464
+ var zeroSchedulesEnableContract = c29.router({
113500
113465
  enable: {
113501
113466
  method: "POST",
113502
113467
  path: "/api/zero/schedules/:name/enable",
@@ -113536,7 +113501,7 @@ var zeroSchedulesEnableContract = c28.router({
113536
113501
  summary: "Disable schedule (zero proxy)"
113537
113502
  }
113538
113503
  });
113539
- var zeroScheduleRunContract = c28.router({
113504
+ var zeroScheduleRunContract = c29.router({
113540
113505
  run: {
113541
113506
  method: "POST",
113542
113507
  path: "/api/zero/schedules/run",
@@ -128886,6 +128851,22 @@ function resolveFirewallPolicies(stored, connectors) {
128886
128851
  }
128887
128852
  return resolved;
128888
128853
  }
128854
+ function permissionGrantsToFirewallPolicies(grants) {
128855
+ const policies = {};
128856
+ for (const grant of grants) {
128857
+ const current = policies[grant.connectorRef] ?? { policies: {} };
128858
+ if (grant.permission === UNKNOWN_PERMISSION_GRANT) {
128859
+ policies[grant.connectorRef] = {
128860
+ ...current,
128861
+ unknownPolicy: grant.action
128862
+ };
128863
+ continue;
128864
+ }
128865
+ current.policies[grant.permission] = grant.action;
128866
+ policies[grant.connectorRef] = current;
128867
+ }
128868
+ return Object.keys(policies).length > 0 ? policies : null;
128869
+ }
128889
128870
 
128890
128871
  // src/lib/events/event-stream-normalizer.ts
128891
128872
  init_esm_shims();
@@ -128899,6 +128880,9 @@ init_esm_shims();
128899
128880
  // ../../packages/core/src/usage-source-bucket.ts
128900
128881
  init_esm_shims();
128901
128882
 
128883
+ // ../../packages/core/src/presentation-template-items.ts
128884
+ init_esm_shims();
128885
+
128902
128886
  // ../../packages/core/src/contracts/index.ts
128903
128887
  init_esm_shims();
128904
128888
 
@@ -128907,11 +128891,11 @@ init_esm_shims();
128907
128891
 
128908
128892
  // ../../packages/api-contracts/src/contracts/health.ts
128909
128893
  init_esm_shims();
128910
- var c29 = initContract();
128894
+ var c30 = initContract();
128911
128895
  var healthResponseSchema = external_exports.object({
128912
128896
  status: external_exports.literal("ok")
128913
128897
  });
128914
- var healthContract = c29.router({
128898
+ var healthContract = c30.router({
128915
128899
  check: {
128916
128900
  method: "GET",
128917
128901
  path: "/health",
@@ -128921,7 +128905,7 @@ var healthContract = c29.router({
128921
128905
  summary: "Check API health"
128922
128906
  }
128923
128907
  });
128924
- var healthAuthContract = c29.router({
128908
+ var healthAuthContract = c30.router({
128925
128909
  check: {
128926
128910
  method: "GET",
128927
128911
  path: "/health/auth",
@@ -128942,7 +128926,7 @@ var healthAuthContract = c29.router({
128942
128926
 
128943
128927
  // ../../packages/api-contracts/src/contracts/desktop-auth.ts
128944
128928
  init_esm_shims();
128945
- var c30 = initContract();
128929
+ var c31 = initContract();
128946
128930
  var desktopAuthCallbackSchemes = [
128947
128931
  "ai.vm0.zero.desktop",
128948
128932
  "ai.vm0.zero.desktop.dev"
@@ -128951,7 +128935,7 @@ var defaultDesktopAuthCallbackScheme = desktopAuthCallbackSchemes[0];
128951
128935
  var desktopAuthCallbackSchemeSchema = external_exports.enum(
128952
128936
  desktopAuthCallbackSchemes
128953
128937
  );
128954
- var desktopAuthHandoffContract = c30.router({
128938
+ var desktopAuthHandoffContract = c31.router({
128955
128939
  create: {
128956
128940
  method: "POST",
128957
128941
  path: "/api/desktop-auth/handoff",
@@ -128971,7 +128955,7 @@ var desktopAuthHandoffContract = c30.router({
128971
128955
  summary: "Create a desktop auth handoff code"
128972
128956
  }
128973
128957
  });
128974
- var desktopAuthConsumeContract = c30.router({
128958
+ var desktopAuthConsumeContract = c31.router({
128975
128959
  consume: {
128976
128960
  method: "POST",
128977
128961
  path: "/api/desktop-auth/consume",
@@ -128991,7 +128975,7 @@ var desktopAuthConsumeContract = c30.router({
128991
128975
 
128992
128976
  // ../../packages/api-contracts/src/contracts/zero-user-model-preference.ts
128993
128977
  init_esm_shims();
128994
- var c31 = initContract();
128978
+ var c32 = initContract();
128995
128979
  var userModelPreferenceResponseSchema = external_exports.object({
128996
128980
  selectedModel: supportedRunModelSchema.nullable(),
128997
128981
  updatedAt: external_exports.string().nullable()
@@ -128999,7 +128983,7 @@ var userModelPreferenceResponseSchema = external_exports.object({
128999
128983
  var updateUserModelPreferenceRequestSchema = external_exports.object({
129000
128984
  selectedModel: supportedRunModelSchema.nullable()
129001
128985
  });
129002
- var zeroUserModelPreferenceContract = c31.router({
128986
+ var zeroUserModelPreferenceContract = c32.router({
129003
128987
  get: {
129004
128988
  method: "GET",
129005
128989
  path: "/api/zero/user-model-preference",
@@ -129058,12 +129042,12 @@ var internalCallbackErrorSchema = external_exports.object({
129058
129042
  });
129059
129043
 
129060
129044
  // ../../packages/api-contracts/src/contracts/internal-callbacks-chat.ts
129061
- var c32 = initContract();
129045
+ var c33 = initContract();
129062
129046
  var chatCallbackPayloadSchema = external_exports.object({
129063
129047
  threadId: external_exports.string(),
129064
129048
  agentId: external_exports.string()
129065
129049
  }).passthrough();
129066
- var internalCallbacksChatContract = c32.router({
129050
+ var internalCallbacksChatContract = c33.router({
129067
129051
  post: {
129068
129052
  method: "POST",
129069
129053
  path: "/api/internal/callbacks/chat",
@@ -129084,7 +129068,7 @@ var internalCallbacksChatContract = c32.router({
129084
129068
 
129085
129069
  // ../../packages/api-contracts/src/contracts/internal-callbacks-telegram.ts
129086
129070
  init_esm_shims();
129087
- var c33 = initContract();
129071
+ var c34 = initContract();
129088
129072
  var telegramCallbackPayloadSchema = external_exports.object({
129089
129073
  installationId: external_exports.string(),
129090
129074
  chatId: external_exports.string(),
@@ -129096,7 +129080,7 @@ var telegramCallbackPayloadSchema = external_exports.object({
129096
129080
  isDM: external_exports.boolean(),
129097
129081
  thinkingMessageId: external_exports.string().nullable().optional()
129098
129082
  }).passthrough();
129099
- var internalCallbacksTelegramContract = c33.router({
129083
+ var internalCallbacksTelegramContract = c34.router({
129100
129084
  post: {
129101
129085
  method: "POST",
129102
129086
  path: "/api/internal/callbacks/telegram",
@@ -129118,7 +129102,7 @@ var internalCallbacksTelegramContract = c33.router({
129118
129102
 
129119
129103
  // ../../packages/api-contracts/src/contracts/internal-callbacks-agentphone.ts
129120
129104
  init_esm_shims();
129121
- var c34 = initContract();
129105
+ var c35 = initContract();
129122
129106
  var agentPhoneCallbackPayloadSchema = external_exports.object({
129123
129107
  messageId: external_exports.string(),
129124
129108
  conversationId: external_exports.string().nullable(),
@@ -129133,7 +129117,7 @@ var agentPhoneCallbackPayloadSchema = external_exports.object({
129133
129117
  agentphoneAgentId: external_exports.string(),
129134
129118
  existingSessionId: external_exports.string().nullable().optional()
129135
129119
  }).passthrough();
129136
- var internalCallbacksAgentPhoneContract = c34.router({
129120
+ var internalCallbacksAgentPhoneContract = c35.router({
129137
129121
  post: {
129138
129122
  method: "POST",
129139
129123
  path: "/api/internal/callbacks/agentphone",
@@ -129154,7 +129138,7 @@ var internalCallbacksAgentPhoneContract = c34.router({
129154
129138
 
129155
129139
  // ../../packages/api-contracts/src/contracts/test-telegram-dispatch-probe.ts
129156
129140
  init_esm_shims();
129157
- var c35 = initContract();
129141
+ var c36 = initContract();
129158
129142
  var testTelegramDispatchProbeBodySchema = external_exports.unknown().optional();
129159
129143
  var testTelegramDispatchProbeSuccessSchema = external_exports.object({
129160
129144
  ok: external_exports.literal(true)
@@ -129171,7 +129155,7 @@ var testTelegramDispatchProbeHandlerErrorSchema = external_exports.object({
129171
129155
  stack: external_exports.string().optional()
129172
129156
  })
129173
129157
  });
129174
- var testTelegramDispatchProbeContract = c35.router({
129158
+ var testTelegramDispatchProbeContract = c36.router({
129175
129159
  post: {
129176
129160
  method: "POST",
129177
129161
  path: "/api/test/telegram-dispatch-probe",
@@ -129190,7 +129174,7 @@ var testTelegramDispatchProbeContract = c35.router({
129190
129174
 
129191
129175
  // ../../packages/api-contracts/src/contracts/internal-callbacks-slack-org.ts
129192
129176
  init_esm_shims();
129193
- var c36 = initContract();
129177
+ var c37 = initContract();
129194
129178
  var slackOrgCallbackPayloadSchema = external_exports.object({
129195
129179
  workspaceId: external_exports.string(),
129196
129180
  channelId: external_exports.string(),
@@ -129200,7 +129184,7 @@ var slackOrgCallbackPayloadSchema = external_exports.object({
129200
129184
  agentId: external_exports.string(),
129201
129185
  existingSessionId: external_exports.string().optional()
129202
129186
  }).passthrough();
129203
- var internalCallbacksSlackOrgContract = c36.router({
129187
+ var internalCallbacksSlackOrgContract = c37.router({
129204
129188
  post: {
129205
129189
  method: "POST",
129206
129190
  path: "/api/internal/callbacks/slack/org",
@@ -129222,7 +129206,7 @@ var internalCallbacksSlackOrgContract = c36.router({
129222
129206
 
129223
129207
  // ../../packages/api-contracts/src/contracts/zero-email.ts
129224
129208
  init_esm_shims();
129225
- var c37 = initContract();
129209
+ var c38 = initContract();
129226
129210
  var emailRecipientsSchema = external_exports.array(external_exports.string()).optional();
129227
129211
  var zeroEmailReplyCallbackPayloadSchema = external_exports.object({
129228
129212
  emailThreadSessionId: external_exports.string(),
@@ -129245,7 +129229,7 @@ var zeroEmailTriggerCallbackPayloadSchema = external_exports.object({
129245
129229
  replyRecipientTo: emailRecipientsSchema,
129246
129230
  replyRecipientCc: emailRecipientsSchema
129247
129231
  }).passthrough();
129248
- var zeroEmailReplyCallbackContract = c37.router({
129232
+ var zeroEmailReplyCallbackContract = c38.router({
129249
129233
  post: {
129250
129234
  method: "POST",
129251
129235
  path: "/api/zero/email/callbacks/reply",
@@ -129262,7 +129246,7 @@ var zeroEmailReplyCallbackContract = c37.router({
129262
129246
  summary: "Handle Zero email reply completion callbacks"
129263
129247
  }
129264
129248
  });
129265
- var zeroEmailTriggerCallbackContract = c37.router({
129249
+ var zeroEmailTriggerCallbackContract = c38.router({
129266
129250
  post: {
129267
129251
  method: "POST",
129268
129252
  path: "/api/zero/email/callbacks/trigger",
@@ -129279,7 +129263,7 @@ var zeroEmailTriggerCallbackContract = c37.router({
129279
129263
  summary: "Handle Zero email trigger completion callbacks"
129280
129264
  }
129281
129265
  });
129282
- var zeroEmailInboundContract = c37.router({
129266
+ var zeroEmailInboundContract = c38.router({
129283
129267
  post: {
129284
129268
  method: "POST",
129285
129269
  path: "/api/zero/email/inbound",
@@ -129299,8 +129283,8 @@ var zeroEmailInboundContract = c37.router({
129299
129283
 
129300
129284
  // ../../packages/api-contracts/src/contracts/auth.ts
129301
129285
  init_esm_shims();
129302
- var c38 = initContract();
129303
- var authContract = c38.router({
129286
+ var c39 = initContract();
129287
+ var authContract = c39.router({
129304
129288
  /**
129305
129289
  * GET /api/auth/me
129306
129290
  * Get current user information
@@ -129325,7 +129309,7 @@ var authContract = c38.router({
129325
129309
 
129326
129310
  // ../../packages/api-contracts/src/contracts/user-export.ts
129327
129311
  init_esm_shims();
129328
- var c39 = initContract();
129312
+ var c40 = initContract();
129329
129313
  var exportJobStatusSchema = external_exports.enum([
129330
129314
  "pending",
129331
129315
  "running",
@@ -129350,7 +129334,7 @@ var userExportStartResponseSchema = external_exports.object({
129350
129334
  jobId: external_exports.string().uuid(),
129351
129335
  status: external_exports.enum(["pending", "running"])
129352
129336
  });
129353
- var userExportContract = c39.router({
129337
+ var userExportContract = c40.router({
129354
129338
  get: {
129355
129339
  method: "GET",
129356
129340
  path: "/api/user/export",
@@ -129381,7 +129365,7 @@ var userExportContract = c39.router({
129381
129365
 
129382
129366
  // ../../packages/api-contracts/src/contracts/email-unsubscribe.ts
129383
129367
  init_esm_shims();
129384
- var c40 = initContract();
129368
+ var c41 = initContract();
129385
129369
  var emailUnsubscribeQuerySchema = external_exports.object({
129386
129370
  token: external_exports.string().optional()
129387
129371
  });
@@ -129391,13 +129375,13 @@ var emailUnsubscribeResponseSchema = external_exports.object({
129391
129375
  var emailUnsubscribeErrorSchema = external_exports.object({
129392
129376
  error: external_exports.string()
129393
129377
  });
129394
- var emailUnsubscribeContract = c40.router({
129378
+ var emailUnsubscribeContract = c41.router({
129395
129379
  get: {
129396
129380
  method: "GET",
129397
129381
  path: "/api/email/unsubscribe",
129398
129382
  query: emailUnsubscribeQuerySchema,
129399
129383
  responses: {
129400
- 200: c40.otherResponse({
129384
+ 200: c41.otherResponse({
129401
129385
  contentType: "text/html",
129402
129386
  body: external_exports.unknown()
129403
129387
  }),
@@ -129420,8 +129404,8 @@ var emailUnsubscribeContract = c40.router({
129420
129404
 
129421
129405
  // ../../packages/api-contracts/src/contracts/connectors-type-callback.ts
129422
129406
  init_esm_shims();
129423
- var c41 = initContract();
129424
- var connectorsTypeCallbackContract = c41.router({
129407
+ var c42 = initContract();
129408
+ var connectorsTypeCallbackContract = c42.router({
129425
129409
  callback: {
129426
129410
  method: "GET",
129427
129411
  path: "/api/connectors/:type/callback",
@@ -129434,7 +129418,7 @@ var connectorsTypeCallbackContract = c41.router({
129434
129418
  error_description: external_exports.string().optional()
129435
129419
  }),
129436
129420
  responses: {
129437
- 307: c41.noBody()
129421
+ 307: c42.noBody()
129438
129422
  },
129439
129423
  summary: "Complete connector OAuth authorization"
129440
129424
  }
@@ -129442,7 +129426,7 @@ var connectorsTypeCallbackContract = c41.router({
129442
129426
 
129443
129427
  // ../../packages/api-contracts/src/contracts/test-oauth-provider-authorize.ts
129444
129428
  init_esm_shims();
129445
- var c42 = initContract();
129429
+ var c43 = initContract();
129446
129430
  var testOAuthProviderAuthorizeErrorSchema = external_exports.object({
129447
129431
  error: external_exports.string()
129448
129432
  });
@@ -129454,13 +129438,13 @@ var testOAuthProviderAuthorizeQuerySchema = external_exports.object({
129454
129438
  scope: external_exports.string().optional(),
129455
129439
  state: external_exports.string().optional()
129456
129440
  });
129457
- var testOAuthProviderAuthorizeContract = c42.router({
129441
+ var testOAuthProviderAuthorizeContract = c43.router({
129458
129442
  authorize: {
129459
129443
  method: "GET",
129460
129444
  path: "/api/test/oauth-provider/authorize",
129461
129445
  query: testOAuthProviderAuthorizeQuerySchema,
129462
129446
  responses: {
129463
- 302: c42.noBody(),
129447
+ 302: c43.noBody(),
129464
129448
  400: testOAuthProviderAuthorizeErrorSchema,
129465
129449
  404: external_exports.string()
129466
129450
  },
@@ -129470,7 +129454,7 @@ var testOAuthProviderAuthorizeContract = c42.router({
129470
129454
 
129471
129455
  // ../../packages/api-contracts/src/contracts/test-oauth-provider-echo.ts
129472
129456
  init_esm_shims();
129473
- var c43 = initContract();
129457
+ var c44 = initContract();
129474
129458
  var testOAuthProviderEchoErrorSchema = external_exports.object({
129475
129459
  error: external_exports.string()
129476
129460
  });
@@ -129478,7 +129462,7 @@ var testOAuthProviderEchoResponseSchema = external_exports.object({
129478
129462
  authorization: external_exports.string(),
129479
129463
  receivedAt: external_exports.string()
129480
129464
  });
129481
- var testOAuthProviderEchoContract = c43.router({
129465
+ var testOAuthProviderEchoContract = c44.router({
129482
129466
  echo: {
129483
129467
  method: "GET",
129484
129468
  path: "/api/test/oauth-provider/echo",
@@ -129493,7 +129477,7 @@ var testOAuthProviderEchoContract = c43.router({
129493
129477
 
129494
129478
  // ../../packages/api-contracts/src/contracts/test-oauth-provider-token.ts
129495
129479
  init_esm_shims();
129496
- var c44 = initContract();
129480
+ var c45 = initContract();
129497
129481
  var testOAuthProviderTokenErrorSchema = external_exports.object({
129498
129482
  error: external_exports.string(),
129499
129483
  error_description: external_exports.string().optional()
@@ -129505,11 +129489,11 @@ var testOAuthProviderTokenResponseSchema = external_exports.object({
129505
129489
  expires_in: external_exports.number(),
129506
129490
  scope: external_exports.string()
129507
129491
  });
129508
- var testOAuthProviderTokenContract = c44.router({
129492
+ var testOAuthProviderTokenContract = c45.router({
129509
129493
  token: {
129510
129494
  method: "POST",
129511
129495
  path: "/api/test/oauth-provider/token",
129512
- body: c44.type(),
129496
+ body: c45.type(),
129513
129497
  responses: {
129514
129498
  200: testOAuthProviderTokenResponseSchema,
129515
129499
  400: testOAuthProviderTokenErrorSchema,
@@ -129522,7 +129506,7 @@ var testOAuthProviderTokenContract = c44.router({
129522
129506
 
129523
129507
  // ../../packages/api-contracts/src/contracts/test-oauth-provider-device-auth.ts
129524
129508
  init_esm_shims();
129525
- var c45 = initContract();
129509
+ var c46 = initContract();
129526
129510
  var testOAuthProviderDeviceAuthErrorSchema = external_exports.object({
129527
129511
  error: external_exports.string(),
129528
129512
  error_description: external_exports.string().optional()
@@ -129535,11 +129519,11 @@ var testOAuthProviderDeviceAuthResponseSchema = external_exports.object({
129535
129519
  expires_in: external_exports.number(),
129536
129520
  interval: external_exports.number()
129537
129521
  });
129538
- var testOAuthProviderDeviceAuthContract = c45.router({
129522
+ var testOAuthProviderDeviceAuthContract = c46.router({
129539
129523
  deviceAuth: {
129540
129524
  method: "POST",
129541
129525
  path: "/api/test/oauth-provider/device/code",
129542
- body: c45.type(),
129526
+ body: c46.type(),
129543
129527
  responses: {
129544
129528
  200: testOAuthProviderDeviceAuthResponseSchema,
129545
129529
  400: testOAuthProviderDeviceAuthErrorSchema,
@@ -129552,7 +129536,7 @@ var testOAuthProviderDeviceAuthContract = c45.router({
129552
129536
 
129553
129537
  // ../../packages/api-contracts/src/contracts/test-oauth-provider-userinfo.ts
129554
129538
  init_esm_shims();
129555
- var c46 = initContract();
129539
+ var c47 = initContract();
129556
129540
  var testOAuthProviderUserinfoErrorSchema = external_exports.object({
129557
129541
  error: external_exports.string()
129558
129542
  });
@@ -129561,7 +129545,7 @@ var testOAuthProviderUserinfoResponseSchema = external_exports.object({
129561
129545
  id: external_exports.string(),
129562
129546
  username: external_exports.string()
129563
129547
  });
129564
- var testOAuthProviderUserinfoContract = c46.router({
129548
+ var testOAuthProviderUserinfoContract = c47.router({
129565
129549
  userinfo: {
129566
129550
  method: "GET",
129567
129551
  path: "/api/test/oauth-provider/userinfo",
@@ -129576,7 +129560,7 @@ var testOAuthProviderUserinfoContract = c46.router({
129576
129560
 
129577
129561
  // ../../packages/api-contracts/src/contracts/test-slack-dispatch-probe.ts
129578
129562
  init_esm_shims();
129579
- var c47 = initContract();
129563
+ var c48 = initContract();
129580
129564
  var testSlackDispatchProbeBodySchema = external_exports.object({
129581
129565
  team_id: external_exports.string(),
129582
129566
  channel_id: external_exports.string(),
@@ -129604,7 +129588,7 @@ var testSlackDispatchProbeResponseSchema = external_exports.union([
129604
129588
  testSlackDispatchProbeSuccessResponseSchema,
129605
129589
  testSlackDispatchProbeFailureResponseSchema
129606
129590
  ]);
129607
- var testSlackDispatchProbeContract = c47.router({
129591
+ var testSlackDispatchProbeContract = c48.router({
129608
129592
  post: {
129609
129593
  method: "POST",
129610
129594
  path: "/api/test/slack-dispatch-probe",
@@ -129620,7 +129604,7 @@ var testSlackDispatchProbeContract = c47.router({
129620
129604
 
129621
129605
  // ../../packages/api-contracts/src/contracts/test-slack-state.ts
129622
129606
  init_esm_shims();
129623
- var c48 = initContract();
129607
+ var c49 = initContract();
129624
129608
  var testSlackStateErrorSchema = external_exports.object({
129625
129609
  error: external_exports.string()
129626
129610
  });
@@ -129705,7 +129689,7 @@ var testSlackStateResponseSchema = external_exports.object({
129705
129689
  })
129706
129690
  )
129707
129691
  });
129708
- var testSlackStateContract = c48.router({
129692
+ var testSlackStateContract = c49.router({
129709
129693
  get: {
129710
129694
  method: "GET",
129711
129695
  path: "/api/test/slack-state",
@@ -129747,7 +129731,7 @@ var testSlackStateContract = c48.router({
129747
129731
 
129748
129732
  // ../../packages/api-contracts/src/contracts/test-slack-mock.ts
129749
129733
  init_esm_shims();
129750
- var c49 = initContract();
129734
+ var c50 = initContract();
129751
129735
  var slackMockRequestBodySchema = external_exports.unknown().optional();
129752
129736
  var slackMockNotFoundSchema = external_exports.string();
129753
129737
  var testSlackMockOkResponseSchema = external_exports.object({
@@ -129813,7 +129797,7 @@ var testSlackMockUsersInfoResponseSchema = testSlackMockOkResponseSchema.extend(
129813
129797
  })
129814
129798
  })
129815
129799
  });
129816
- var testSlackMockContract = c49.router({
129800
+ var testSlackMockContract = c50.router({
129817
129801
  assistantThreadsSetStatus: {
129818
129802
  method: "POST",
129819
129803
  path: "/api/test/slack-mock/assistant.threads.setStatus",
@@ -129918,7 +129902,7 @@ var testSlackMockContract = c49.router({
129918
129902
 
129919
129903
  // ../../packages/api-contracts/src/contracts/test-telegram-mock.ts
129920
129904
  init_esm_shims();
129921
- var c50 = initContract();
129905
+ var c51 = initContract();
129922
129906
  var testTelegramMockPathParamsSchema = external_exports.object({
129923
129907
  botToken: external_exports.string(),
129924
129908
  method: external_exports.string()
@@ -129931,7 +129915,7 @@ var testTelegramMockErrorResponseSchema = external_exports.object({
129931
129915
  ok: external_exports.literal(false),
129932
129916
  description: external_exports.string()
129933
129917
  });
129934
- var testTelegramMockContract = c50.router({
129918
+ var testTelegramMockContract = c51.router({
129935
129919
  post: {
129936
129920
  method: "POST",
129937
129921
  path: "/api/test/telegram-mock/:botToken/:method",
@@ -129947,7 +129931,7 @@ var testTelegramMockContract = c50.router({
129947
129931
 
129948
129932
  // ../../packages/api-contracts/src/contracts/test-telegram-state.ts
129949
129933
  init_esm_shims();
129950
- var c51 = initContract();
129934
+ var c52 = initContract();
129951
129935
  var testTelegramStateQuerySchema = external_exports.object({
129952
129936
  bot_id: external_exports.string().optional()
129953
129937
  });
@@ -129989,7 +129973,7 @@ var testTelegramStateSeedResponseSchema = external_exports.object({
129989
129973
  user_link_id: external_exports.string().nullable(),
129990
129974
  default_agent_id: external_exports.string()
129991
129975
  });
129992
- var testTelegramStateContract = c51.router({
129976
+ var testTelegramStateContract = c52.router({
129993
129977
  get: {
129994
129978
  method: "GET",
129995
129979
  path: "/api/test/telegram-state",
@@ -130027,7 +130011,7 @@ var testTelegramStateContract = c51.router({
130027
130011
 
130028
130012
  // ../../packages/api-contracts/src/contracts/internal-event-consumers.ts
130029
130013
  init_esm_shims();
130030
- var c52 = initContract();
130014
+ var c53 = initContract();
130031
130015
  var eventConsumerHeadersSchema = external_exports.object({
130032
130016
  "x-vm0-signature": external_exports.string().optional(),
130033
130017
  "x-vm0-timestamp": external_exports.string().optional()
@@ -130047,7 +130031,7 @@ var eventConsumerPayloadSchema = external_exports.object({
130047
130031
  var eventConsumerUnauthorizedSchema = external_exports.object({
130048
130032
  error: external_exports.string()
130049
130033
  });
130050
- var internalEventConsumerTelegramTypingContract = c52.router({
130034
+ var internalEventConsumerTelegramTypingContract = c53.router({
130051
130035
  refresh: {
130052
130036
  method: "POST",
130053
130037
  path: "/api/internal/event-consumers/telegram-typing",
@@ -130060,7 +130044,7 @@ var internalEventConsumerTelegramTypingContract = c52.router({
130060
130044
  summary: "Refresh Telegram typing indicators for all pending callbacks of a run"
130061
130045
  }
130062
130046
  });
130063
- var internalEventConsumerAgentPhoneTypingContract = c52.router({
130047
+ var internalEventConsumerAgentPhoneTypingContract = c53.router({
130064
130048
  refresh: {
130065
130049
  method: "POST",
130066
130050
  path: "/api/internal/event-consumers/agentphone-typing",
@@ -130073,7 +130057,7 @@ var internalEventConsumerAgentPhoneTypingContract = c52.router({
130073
130057
  summary: "Refresh AgentPhone typing indicators for all pending iMessage callbacks of a run"
130074
130058
  }
130075
130059
  });
130076
- var internalEventConsumerAxiomContract = c52.router({
130060
+ var internalEventConsumerAxiomContract = c53.router({
130077
130061
  ingest: {
130078
130062
  method: "POST",
130079
130063
  path: "/api/internal/event-consumers/axiom",
@@ -130087,7 +130071,7 @@ var internalEventConsumerAxiomContract = c52.router({
130087
130071
  summary: "Ingest agent run events into Axiom"
130088
130072
  }
130089
130073
  });
130090
- var internalEventConsumerChatAssistantContract = c52.router({
130074
+ var internalEventConsumerChatAssistantContract = c53.router({
130091
130075
  process: {
130092
130076
  method: "POST",
130093
130077
  path: "/api/internal/event-consumers/chat-assistant",
@@ -130103,7 +130087,7 @@ var internalEventConsumerChatAssistantContract = c52.router({
130103
130087
 
130104
130088
  // ../../packages/api-contracts/src/contracts/cron.ts
130105
130089
  init_esm_shims();
130106
- var c53 = initContract();
130090
+ var c54 = initContract();
130107
130091
  var cleanupResultSchema = external_exports.object({
130108
130092
  runId: external_exports.string(),
130109
130093
  sandboxId: external_exports.string().nullable(),
@@ -130118,7 +130102,7 @@ var cleanupResponseSchema = external_exports.object({
130118
130102
  exportJobsCleaned: external_exports.number(),
130119
130103
  exportJobsStuck: external_exports.number()
130120
130104
  });
130121
- var cronCleanupSandboxesContract = c53.router({
130105
+ var cronCleanupSandboxesContract = c54.router({
130122
130106
  /**
130123
130107
  * GET /api/cron/cleanup-sandboxes
130124
130108
  * Cron job to cleanup sandboxes that have stopped sending heartbeats
@@ -130185,7 +130169,7 @@ var cronAggregateInsightsResponseSchema = external_exports.union([
130185
130169
  cronAggregateInsightsSkippedResponseSchema,
130186
130170
  cronAggregateInsightsAggregatedResponseSchema
130187
130171
  ]);
130188
- var cronAggregateUsageContract = c53.router({
130172
+ var cronAggregateUsageContract = c54.router({
130189
130173
  aggregate: {
130190
130174
  method: "GET",
130191
130175
  path: "/api/cron/aggregate-usage",
@@ -130197,7 +130181,7 @@ var cronAggregateUsageContract = c53.router({
130197
130181
  summary: "Aggregate daily usage cache"
130198
130182
  }
130199
130183
  });
130200
- var cronProcessUsageEventsContract = c53.router({
130184
+ var cronProcessUsageEventsContract = c54.router({
130201
130185
  process: {
130202
130186
  method: "GET",
130203
130187
  path: "/api/cron/process-usage-events",
@@ -130209,7 +130193,7 @@ var cronProcessUsageEventsContract = c53.router({
130209
130193
  summary: "Process pending usage events"
130210
130194
  }
130211
130195
  });
130212
- var cronReconcileBillingEntitlementsContract = c53.router({
130196
+ var cronReconcileBillingEntitlementsContract = c54.router({
130213
130197
  reconcile: {
130214
130198
  method: "GET",
130215
130199
  path: "/api/cron/reconcile-billing-entitlements",
@@ -130221,7 +130205,7 @@ var cronReconcileBillingEntitlementsContract = c53.router({
130221
130205
  summary: "Reconcile billing entitlements"
130222
130206
  }
130223
130207
  });
130224
- var cronTelegramCleanupContract = c53.router({
130208
+ var cronTelegramCleanupContract = c54.router({
130225
130209
  cleanup: {
130226
130210
  method: "GET",
130227
130211
  path: "/api/cron/telegram-cleanup",
@@ -130233,7 +130217,7 @@ var cronTelegramCleanupContract = c53.router({
130233
130217
  summary: "Delete expired Telegram messages"
130234
130218
  }
130235
130219
  });
130236
- var cronComputerUseScreenshotCleanupContract = c53.router({
130220
+ var cronComputerUseScreenshotCleanupContract = c54.router({
130237
130221
  cleanup: {
130238
130222
  method: "GET",
130239
130223
  path: "/api/cron/computer-use-screenshot-cleanup",
@@ -130245,7 +130229,7 @@ var cronComputerUseScreenshotCleanupContract = c53.router({
130245
130229
  summary: "Delete expired desktop computer-use screenshots"
130246
130230
  }
130247
130231
  });
130248
- var cronDrainEmailOutboxContract = c53.router({
130232
+ var cronDrainEmailOutboxContract = c54.router({
130249
130233
  drain: {
130250
130234
  method: "GET",
130251
130235
  path: "/api/cron/drain-email-outbox",
@@ -130257,7 +130241,7 @@ var cronDrainEmailOutboxContract = c53.router({
130257
130241
  summary: "Drain pending email outbox messages"
130258
130242
  }
130259
130243
  });
130260
- var cronSyncSkillsContract = c53.router({
130244
+ var cronSyncSkillsContract = c54.router({
130261
130245
  sync: {
130262
130246
  method: "GET",
130263
130247
  path: "/api/cron/sync-skills",
@@ -130269,7 +130253,7 @@ var cronSyncSkillsContract = c53.router({
130269
130253
  summary: "Sync official skills from the skills repository"
130270
130254
  }
130271
130255
  });
130272
- var cronExecuteSchedulesContract = c53.router({
130256
+ var cronExecuteSchedulesContract = c54.router({
130273
130257
  execute: {
130274
130258
  method: "GET",
130275
130259
  path: "/api/cron/execute-schedules",
@@ -130281,7 +130265,7 @@ var cronExecuteSchedulesContract = c53.router({
130281
130265
  summary: "Execute due schedules"
130282
130266
  }
130283
130267
  });
130284
- var cronAggregateInsightsContract = c53.router({
130268
+ var cronAggregateInsightsContract = c54.router({
130285
130269
  aggregate: {
130286
130270
  method: "GET",
130287
130271
  path: "/api/cron/aggregate-insights",
@@ -130296,7 +130280,7 @@ var cronAggregateInsightsContract = c53.router({
130296
130280
 
130297
130281
  // ../../packages/api-contracts/src/contracts/chat-threads-v1.ts
130298
130282
  init_esm_shims();
130299
- var c54 = initContract();
130283
+ var c55 = initContract();
130300
130284
  var v1ThreadSchema = external_exports.object({
130301
130285
  id: external_exports.string(),
130302
130286
  title: external_exports.string().nullable(),
@@ -130310,7 +130294,7 @@ var v1MessageSchema = external_exports.object({
130310
130294
  error: external_exports.string().optional(),
130311
130295
  createdAt: external_exports.string()
130312
130296
  });
130313
- var chatThreadV1GetContract = c54.router({
130297
+ var chatThreadV1GetContract = c55.router({
130314
130298
  get: {
130315
130299
  method: "GET",
130316
130300
  path: "/api/v1/chat-threads/:threadId",
@@ -130325,7 +130309,7 @@ var chatThreadV1GetContract = c54.router({
130325
130309
  summary: "Get a chat thread"
130326
130310
  }
130327
130311
  });
130328
- var chatThreadV1MessagesContract = c54.router({
130312
+ var chatThreadV1MessagesContract = c55.router({
130329
130313
  list: {
130330
130314
  method: "GET",
130331
130315
  path: "/api/v1/chat-threads/:threadId/messages",
@@ -130345,7 +130329,7 @@ var chatThreadV1MessagesContract = c54.router({
130345
130329
  summary: "List messages in a chat thread"
130346
130330
  }
130347
130331
  });
130348
- var chatThreadV1SendContract = c54.router({
130332
+ var chatThreadV1SendContract = c55.router({
130349
130333
  send: {
130350
130334
  method: "POST",
130351
130335
  path: "/api/v1/chat-threads/messages",
@@ -130376,7 +130360,7 @@ var chatThreadV1SendContract = c54.router({
130376
130360
 
130377
130361
  // ../../packages/api-contracts/src/contracts/device-token.ts
130378
130362
  init_esm_shims();
130379
- var c55 = initContract();
130363
+ var c56 = initContract();
130380
130364
  var bb0DeviceCodeSchema = external_exports.string().regex(/^[A-Z2-9]{4}-[A-Z2-9]{4}$/);
130381
130365
  var bleSessionNonceSchema = external_exports.string().min(16).max(128).regex(/^[A-Za-z0-9._:-]+$/);
130382
130366
  var pollTokenSchema = external_exports.string().min(32).max(256).regex(/^[A-Za-z0-9._-]+$/);
@@ -130415,7 +130399,7 @@ var confirmBb0DeviceRequestSchema = external_exports.object({
130415
130399
  var confirmBb0DeviceResponseSchema = external_exports.object({
130416
130400
  status: external_exports.literal("approved")
130417
130401
  });
130418
- var deviceTokenContract = c55.router({
130402
+ var deviceTokenContract = c56.router({
130419
130403
  create: {
130420
130404
  method: "POST",
130421
130405
  path: "/api/device-token",
@@ -130440,7 +130424,7 @@ var deviceTokenContract = c55.router({
130440
130424
  summary: "Poll a bb0 device code for approval and final credentials"
130441
130425
  }
130442
130426
  });
130443
- var bb0DeviceConfirmContract = c55.router({
130427
+ var bb0DeviceConfirmContract = c56.router({
130444
130428
  confirm: {
130445
130429
  method: "POST",
130446
130430
  path: "/api/zero/devices/bb0/confirm",
@@ -130459,16 +130443,16 @@ var bb0DeviceConfirmContract = c55.router({
130459
130443
 
130460
130444
  // ../../packages/api-contracts/src/contracts/audio-transcriptions-v1.ts
130461
130445
  init_esm_shims();
130462
- var c56 = initContract();
130446
+ var c57 = initContract();
130463
130447
  var audioTranscriptionV1Schema = external_exports.object({
130464
130448
  text: external_exports.string()
130465
130449
  });
130466
- var audioTranscriptionsV1Contract = c56.router({
130450
+ var audioTranscriptionsV1Contract = c57.router({
130467
130451
  transcribe: {
130468
130452
  method: "POST",
130469
130453
  path: "/api/v1/audio/transcriptions",
130470
130454
  headers: authHeadersSchema,
130471
- body: c56.type(),
130455
+ body: c57.type(),
130472
130456
  responses: {
130473
130457
  200: audioTranscriptionV1Schema,
130474
130458
  400: apiErrorSchema,
@@ -130485,7 +130469,7 @@ var audioTranscriptionsV1Contract = c56.router({
130485
130469
 
130486
130470
  // ../../packages/api-contracts/src/contracts/generate-image.ts
130487
130471
  init_esm_shims();
130488
- var c57 = initContract();
130472
+ var c58 = initContract();
130489
130473
  var generateImageRequestSchema = external_exports.object({
130490
130474
  prompt: external_exports.unknown().optional()
130491
130475
  }).passthrough();
@@ -130496,7 +130480,7 @@ var generatedImageSchema = external_exports.object({
130496
130480
  var generateImageResponseSchema = external_exports.object({
130497
130481
  images: external_exports.array(generatedImageSchema)
130498
130482
  });
130499
- var generateImageContract = c57.router({
130483
+ var generateImageContract = c58.router({
130500
130484
  post: {
130501
130485
  method: "POST",
130502
130486
  path: "/api/generate-image",
@@ -130516,7 +130500,7 @@ var generateImageContract = c57.router({
130516
130500
 
130517
130501
  // ../../packages/api-contracts/src/contracts/realtime.ts
130518
130502
  init_esm_shims();
130519
- var c58 = initContract();
130503
+ var c59 = initContract();
130520
130504
  var ablyTokenRequestSchema = external_exports.object({
130521
130505
  keyName: external_exports.string(),
130522
130506
  ttl: external_exports.number().optional(),
@@ -130526,7 +130510,7 @@ var ablyTokenRequestSchema = external_exports.object({
130526
130510
  nonce: external_exports.string(),
130527
130511
  mac: external_exports.string()
130528
130512
  });
130529
- var runnerRealtimeTokenContract = c58.router({
130513
+ var runnerRealtimeTokenContract = c59.router({
130530
130514
  /**
130531
130515
  * POST /api/runners/realtime/token
130532
130516
  * Get an Ably token to subscribe to a runner group's job notification channel
@@ -130548,7 +130532,7 @@ var runnerRealtimeTokenContract = c58.router({
130548
130532
  summary: "Get Ably token for runner group job notifications"
130549
130533
  }
130550
130534
  });
130551
- var platformRealtimeTokenContract = c58.router({
130535
+ var platformRealtimeTokenContract = c59.router({
130552
130536
  /**
130553
130537
  * POST /api/zero/realtime/token
130554
130538
  * Get an Ably token to subscribe to the authenticated user's push channel
@@ -131176,14 +131160,14 @@ function findMatchingPermissions(method, path3, config4, options = {}) {
131176
131160
 
131177
131161
  // ../../packages/api-contracts/src/contracts/zero-feature-switches.ts
131178
131162
  init_esm_shims();
131179
- var c59 = initContract();
131163
+ var c60 = initContract();
131180
131164
  var featureSwitchesResponseSchema = external_exports.object({
131181
131165
  switches: external_exports.record(external_exports.string(), external_exports.boolean())
131182
131166
  });
131183
131167
  var updateFeatureSwitchesRequestSchema = external_exports.object({
131184
131168
  switches: external_exports.record(external_exports.string(), external_exports.boolean())
131185
131169
  });
131186
- var zeroFeatureSwitchesContract = c59.router({
131170
+ var zeroFeatureSwitchesContract = c60.router({
131187
131171
  get: {
131188
131172
  method: "GET",
131189
131173
  path: "/api/zero/feature-switches",
@@ -131212,7 +131196,7 @@ var zeroFeatureSwitchesContract = c59.router({
131212
131196
  method: "DELETE",
131213
131197
  path: "/api/zero/feature-switches",
131214
131198
  headers: authHeadersSchema,
131215
- body: c59.noBody(),
131199
+ body: c60.noBody(),
131216
131200
  responses: {
131217
131201
  200: external_exports.object({ deleted: external_exports.literal(true) }),
131218
131202
  401: apiErrorSchema,
@@ -131224,7 +131208,7 @@ var zeroFeatureSwitchesContract = c59.router({
131224
131208
 
131225
131209
  // ../../packages/api-contracts/src/contracts/zero-memory.ts
131226
131210
  init_esm_shims();
131227
- var c60 = initContract();
131211
+ var c61 = initContract();
131228
131212
  var memoryFileSchema = external_exports.object({
131229
131213
  path: external_exports.string(),
131230
131214
  size: external_exports.number()
@@ -131242,7 +131226,7 @@ var memoryDetailResponseSchema = external_exports.object({
131242
131226
  files: external_exports.array(memoryFileSchema),
131243
131227
  fileContents: external_exports.array(memoryFileContentSchema)
131244
131228
  });
131245
- var zeroMemoryContract = c60.router({
131229
+ var zeroMemoryContract = c61.router({
131246
131230
  get: {
131247
131231
  method: "GET",
131248
131232
  path: "/api/zero/memory",
@@ -131258,7 +131242,7 @@ var zeroMemoryContract = c60.router({
131258
131242
 
131259
131243
  // ../../packages/api-contracts/src/contracts/onboarding.ts
131260
131244
  init_esm_shims();
131261
- var c61 = initContract();
131245
+ var c62 = initContract();
131262
131246
  var onboardingStatusResponseSchema = external_exports.object({
131263
131247
  needsOnboarding: external_exports.boolean(),
131264
131248
  isAdmin: external_exports.boolean(),
@@ -131271,7 +131255,7 @@ var onboardingStatusResponseSchema = external_exports.object({
131271
131255
  sound: external_exports.string().optional()
131272
131256
  }).nullable()
131273
131257
  });
131274
- var onboardingStatusContract = c61.router({
131258
+ var onboardingStatusContract = c62.router({
131275
131259
  getStatus: {
131276
131260
  method: "GET",
131277
131261
  path: "/api/zero/onboarding/status",
@@ -131283,7 +131267,7 @@ var onboardingStatusContract = c61.router({
131283
131267
  summary: "Get onboarding status for current user"
131284
131268
  }
131285
131269
  });
131286
- var onboardingSetupContract = c61.router({
131270
+ var onboardingSetupContract = c62.router({
131287
131271
  setup: {
131288
131272
  method: "POST",
131289
131273
  path: "/api/zero/onboarding/setup",
@@ -131315,62 +131299,6 @@ var skillFrontmatterSchema = external_exports.object({
131315
131299
  description: external_exports.string().optional()
131316
131300
  });
131317
131301
 
131318
- // ../../packages/api-contracts/src/contracts/zero-user-permission-grants.ts
131319
- init_esm_shims();
131320
- var c62 = initContract();
131321
- var agentIdSchema = external_exports.string().uuid();
131322
- var connectorRefSchema = external_exports.string().min(1).max(64);
131323
- var permissionSchema = external_exports.string().min(1).max(128);
131324
- var userPermissionGrantActionSchema = external_exports.enum(["allow", "deny"]);
131325
- var userPermissionGrantResponseSchema = external_exports.object({
131326
- agentId: agentIdSchema,
131327
- connectorRef: connectorRefSchema,
131328
- permission: permissionSchema,
131329
- action: userPermissionGrantActionSchema,
131330
- expiresAt: external_exports.string().nullable(),
131331
- createdAt: external_exports.string(),
131332
- updatedAt: external_exports.string()
131333
- });
131334
- var listUserPermissionGrantsQuerySchema = external_exports.object({
131335
- agentId: agentIdSchema
131336
- });
131337
- var upsertUserPermissionGrantRequestSchema = external_exports.object({
131338
- agentId: agentIdSchema,
131339
- connectorRef: connectorRefSchema,
131340
- permission: permissionSchema,
131341
- action: userPermissionGrantActionSchema
131342
- });
131343
- var zeroUserPermissionGrantsContract = c62.router({
131344
- list: {
131345
- method: "GET",
131346
- path: "/api/zero/user-permission-grants",
131347
- headers: authHeadersSchema,
131348
- query: listUserPermissionGrantsQuerySchema,
131349
- responses: {
131350
- 200: external_exports.array(userPermissionGrantResponseSchema),
131351
- 400: apiErrorSchema,
131352
- 401: apiErrorSchema,
131353
- 403: apiErrorSchema,
131354
- 404: apiErrorSchema
131355
- },
131356
- summary: "List current user's active permission grants for an agent"
131357
- },
131358
- upsert: {
131359
- method: "PUT",
131360
- path: "/api/zero/user-permission-grants",
131361
- headers: authHeadersSchema,
131362
- body: upsertUserPermissionGrantRequestSchema,
131363
- responses: {
131364
- 200: userPermissionGrantResponseSchema,
131365
- 400: apiErrorSchema,
131366
- 401: apiErrorSchema,
131367
- 403: apiErrorSchema,
131368
- 404: apiErrorSchema
131369
- },
131370
- summary: "Upsert current user's permission grant for an agent"
131371
- }
131372
- });
131373
-
131374
131302
  // ../../packages/api-contracts/src/contracts/zero-codex-device-auth.ts
131375
131303
  init_esm_shims();
131376
131304
  var c63 = initContract();
@@ -134056,12 +133984,6 @@ var FEATURE_SWITCHES = {
134056
133984
  description: "Reveal activity debug surfaces, activity log navigation, appended system prompts, and Debug preferences",
134057
133985
  enabled: false
134058
133986
  },
134059
- ["userPermissionGrants" /* UserPermissionGrants */]: {
134060
- maintainer: "liangyou@vm0.ai",
134061
- description: "Gate the per-user Zero firewall permission grant rollout. Staff-only while the grant backfill and rollout verification complete.",
134062
- enabled: false,
134063
- enabledOrgIdHashes: STAFF_ORG_ID_HASHES
134064
- },
134065
133987
  ["computerUse" /* ComputerUse */]: {
134066
133988
  maintainer: "ethan@vm0.ai",
134067
133989
  description: "Enable remote desktop host registration",
@@ -135553,7 +135475,6 @@ export {
135553
135475
  Option,
135554
135476
  configureGlobalProxyFromEnv,
135555
135477
  source_default,
135556
- decodeCliTokenPayload,
135557
135478
  decodeZeroTokenPayload,
135558
135479
  loadConfig,
135559
135480
  saveConfig,
@@ -135630,6 +135551,7 @@ export {
135630
135551
  deleteZeroAgent,
135631
135552
  getZeroAgentInstructions,
135632
135553
  getZeroAgentUserConnectors,
135554
+ listZeroUserPermissionGrants,
135633
135555
  updateZeroAgentInstructions,
135634
135556
  listSkills,
135635
135557
  createSkill,
@@ -135717,6 +135639,7 @@ export {
135717
135639
  isFirewallConnectorType,
135718
135640
  getConnectorFirewall,
135719
135641
  resolveFirewallPolicies,
135642
+ permissionGrantsToFirewallPolicies,
135720
135643
  matchFirewallBaseUrl,
135721
135644
  findMatchingPermissions,
135722
135645
  parseEvent,
@@ -135746,4 +135669,4 @@ undici/lib/web/fetch/body.js:
135746
135669
  undici/lib/web/websocket/frame.js:
135747
135670
  (*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *)
135748
135671
  */
135749
- //# sourceMappingURL=chunk-GBLGZMXM.js.map
135672
+ //# sourceMappingURL=chunk-Z5VRB237.js.map