@vm0/cli 9.177.14 → 9.177.16

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.177.14",
74086
+ release: "9.177.16",
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.177.14",
74105
+ version: "9.177.16",
74106
74106
  command: process.argv.slice(2).join(" ")
74107
74107
  });
74108
74108
  setContext("runtime", {
@@ -98439,8 +98439,10 @@ var googleAds = {
98439
98439
  tokenUrl: OAUTH_TOKEN_URL16,
98440
98440
  accessToken: "GOOGLE_ADS_ACCESS_TOKEN",
98441
98441
  refreshToken: "GOOGLE_ADS_REFRESH_TOKEN",
98442
+ platformSecrets: ["GOOGLE_ADS_DEVELOPER_TOKEN"],
98442
98443
  envBindings: {
98443
- GOOGLE_ADS_TOKEN: "$secrets.GOOGLE_ADS_ACCESS_TOKEN"
98444
+ GOOGLE_ADS_TOKEN: "$secrets.GOOGLE_ADS_ACCESS_TOKEN",
98445
+ GOOGLE_ADS_DEVELOPER_TOKEN: "$secrets.GOOGLE_ADS_DEVELOPER_TOKEN"
98444
98446
  }
98445
98447
  },
98446
98448
  revoke: { kind: "none" }
@@ -107377,26 +107379,6 @@ var scopeDiffResponseSchema = external_exports.object({
107377
107379
  currentScopes: external_exports.array(external_exports.string()),
107378
107380
  storedScopes: external_exports.array(external_exports.string())
107379
107381
  });
107380
- var connectorSessionStatusSchema = external_exports.enum([
107381
- "pending",
107382
- "complete",
107383
- "expired",
107384
- "error"
107385
- ]);
107386
- var connectorSessionResponseSchema = external_exports.object({
107387
- id: external_exports.uuid(),
107388
- code: external_exports.string(),
107389
- type: connectorTypeSchema,
107390
- status: connectorSessionStatusSchema,
107391
- verificationUrl: external_exports.string(),
107392
- expiresIn: external_exports.number(),
107393
- interval: external_exports.number(),
107394
- errorMessage: external_exports.string().nullable().optional()
107395
- });
107396
- var connectorSessionStatusResponseSchema = external_exports.object({
107397
- status: connectorSessionStatusSchema,
107398
- errorMessage: external_exports.string().nullable().optional()
107399
- });
107400
107382
  var connectorOauthStartResponseSchema = external_exports.object({
107401
107383
  authorizationUrl: external_exports.string()
107402
107384
  });
@@ -107498,23 +107480,6 @@ var zeroConnectorScopeDiffContract = c15.router({
107498
107480
  summary: "Get scope diff for a connector"
107499
107481
  }
107500
107482
  });
107501
- var zeroConnectorAuthorizeContract = c15.router({
107502
- authorize: {
107503
- method: "GET",
107504
- path: "/api/zero/connectors/:type/authorize",
107505
- headers: authHeadersSchema,
107506
- pathParams: external_exports.object({ type: external_exports.string() }),
107507
- query: external_exports.object({ session: external_exports.string().optional() }),
107508
- responses: {
107509
- 307: c15.noBody(),
107510
- 400: external_exports.object({ error: external_exports.string() }),
107511
- 401: c15.noBody(),
107512
- 403: external_exports.object({ error: external_exports.string() }),
107513
- 500: external_exports.object({ error: external_exports.string() })
107514
- },
107515
- summary: "Start connector OAuth authorization (zero proxy)"
107516
- }
107517
- });
107518
107483
  var zeroConnectorOauthStartContract = c15.router({
107519
107484
  start: {
107520
107485
  method: "POST",
@@ -107612,40 +107577,6 @@ var zeroConnectorsSearchContract = c15.router({
107612
107577
  summary: "Search available connector types"
107613
107578
  }
107614
107579
  });
107615
- var zeroConnectorSessionsContract = c15.router({
107616
- create: {
107617
- method: "POST",
107618
- path: "/api/zero/connectors/:type/sessions",
107619
- headers: authHeadersSchema,
107620
- pathParams: external_exports.object({ type: connectorTypeSchema }),
107621
- body: external_exports.object({ authMethod: connectorAuthMethodIdSchema }),
107622
- responses: {
107623
- 200: connectorSessionResponseSchema,
107624
- 400: apiErrorSchema,
107625
- 401: apiErrorSchema,
107626
- 403: apiErrorSchema
107627
- },
107628
- summary: "Create connector session for auth-code handoff"
107629
- }
107630
- });
107631
- var zeroConnectorSessionByIdContract = c15.router({
107632
- get: {
107633
- method: "GET",
107634
- path: "/api/zero/connectors/:type/sessions/:sessionId",
107635
- headers: authHeadersSchema,
107636
- pathParams: external_exports.object({
107637
- type: connectorTypeSchema,
107638
- sessionId: external_exports.uuid()
107639
- }),
107640
- responses: {
107641
- 200: connectorSessionStatusResponseSchema,
107642
- 400: apiErrorSchema,
107643
- 401: apiErrorSchema,
107644
- 404: apiErrorSchema
107645
- },
107646
- summary: "Get connector session status (zero proxy)"
107647
- }
107648
- });
107649
107580
 
107650
107581
  // src/lib/api/domains/zero-connectors.ts
107651
107582
  async function listZeroConnectors() {
@@ -109662,14 +109593,19 @@ var chatThreadsContract = c21.router({
109662
109593
  summary: "List chat threads. When agentId is omitted, returns every thread the caller owns scoped by orgId. Pinned threads are returned in full for the caller's org on the first page; non-pinned threads are cursor-paginated."
109663
109594
  }
109664
109595
  });
109596
+ var chatThreadIdPathParamsSchema = external_exports.object({ id: external_exports.string().uuid() });
109597
+ var chatThreadThreadIdPathParamsSchema = external_exports.object({
109598
+ threadId: external_exports.string().uuid()
109599
+ });
109665
109600
  var chatThreadByIdContract = c21.router({
109666
109601
  get: {
109667
109602
  method: "GET",
109668
109603
  path: "/api/zero/chat-threads/:id",
109669
109604
  headers: authHeadersSchema,
109670
- pathParams: external_exports.object({ id: external_exports.string() }),
109605
+ pathParams: chatThreadIdPathParamsSchema,
109671
109606
  responses: {
109672
109607
  200: chatThreadDetailSchema,
109608
+ 400: apiErrorSchema,
109673
109609
  401: apiErrorSchema,
109674
109610
  404: apiErrorSchema
109675
109611
  },
@@ -109679,13 +109615,14 @@ var chatThreadByIdContract = c21.router({
109679
109615
  method: "PATCH",
109680
109616
  path: "/api/zero/chat-threads/:id",
109681
109617
  headers: authHeadersSchema,
109682
- pathParams: external_exports.object({ id: external_exports.string() }),
109618
+ pathParams: chatThreadIdPathParamsSchema,
109683
109619
  body: external_exports.object({
109684
109620
  draftContent: external_exports.string().nullable().optional(),
109685
109621
  draftAttachments: external_exports.array(persistedAttachmentSchema).nullable().optional()
109686
109622
  }),
109687
109623
  responses: {
109688
109624
  204: c21.noBody(),
109625
+ 400: apiErrorSchema,
109689
109626
  401: apiErrorSchema,
109690
109627
  404: apiErrorSchema
109691
109628
  },
@@ -109695,9 +109632,10 @@ var chatThreadByIdContract = c21.router({
109695
109632
  method: "DELETE",
109696
109633
  path: "/api/zero/chat-threads/:id",
109697
109634
  headers: authHeadersSchema,
109698
- pathParams: external_exports.object({ id: external_exports.string() }),
109635
+ pathParams: chatThreadIdPathParamsSchema,
109699
109636
  responses: {
109700
109637
  204: c21.noBody(),
109638
+ 400: apiErrorSchema,
109701
109639
  401: apiErrorSchema,
109702
109640
  404: apiErrorSchema
109703
109641
  },
@@ -109710,13 +109648,14 @@ var chatThreadMarkReadContract = c21.router({
109710
109648
  method: "POST",
109711
109649
  path: "/api/zero/chat-threads/:id/mark-read",
109712
109650
  headers: authHeadersSchema,
109713
- pathParams: external_exports.object({ id: external_exports.string() }),
109651
+ pathParams: chatThreadIdPathParamsSchema,
109714
109652
  body: c21.noBody(),
109715
109653
  responses: {
109716
109654
  200: external_exports.object({
109717
109655
  lastReadMessageId: external_exports.string().nullable(),
109718
109656
  changed: external_exports.boolean()
109719
109657
  }),
109658
+ 400: apiErrorSchema,
109720
109659
  401: apiErrorSchema,
109721
109660
  404: apiErrorSchema
109722
109661
  },
@@ -109728,10 +109667,11 @@ var chatThreadPinContract = c21.router({
109728
109667
  method: "POST",
109729
109668
  path: "/api/zero/chat-threads/:id/pin",
109730
109669
  headers: authHeadersSchema,
109731
- pathParams: external_exports.object({ id: external_exports.string() }),
109670
+ pathParams: chatThreadIdPathParamsSchema,
109732
109671
  body: c21.noBody(),
109733
109672
  responses: {
109734
109673
  204: c21.noBody(),
109674
+ 400: apiErrorSchema,
109735
109675
  401: apiErrorSchema,
109736
109676
  404: apiErrorSchema
109737
109677
  },
@@ -109743,10 +109683,11 @@ var chatThreadUnpinContract = c21.router({
109743
109683
  method: "POST",
109744
109684
  path: "/api/zero/chat-threads/:id/unpin",
109745
109685
  headers: authHeadersSchema,
109746
- pathParams: external_exports.object({ id: external_exports.string() }),
109686
+ pathParams: chatThreadIdPathParamsSchema,
109747
109687
  body: c21.noBody(),
109748
109688
  responses: {
109749
109689
  204: c21.noBody(),
109690
+ 400: apiErrorSchema,
109750
109691
  401: apiErrorSchema,
109751
109692
  404: apiErrorSchema
109752
109693
  },
@@ -109758,10 +109699,11 @@ var chatThreadRenameContract = c21.router({
109758
109699
  method: "POST",
109759
109700
  path: "/api/zero/chat-threads/:id/rename",
109760
109701
  headers: authHeadersSchema,
109761
- pathParams: external_exports.object({ id: external_exports.string() }),
109702
+ pathParams: chatThreadIdPathParamsSchema,
109762
109703
  body: external_exports.object({ title: external_exports.string().min(1) }),
109763
109704
  responses: {
109764
109705
  204: c21.noBody(),
109706
+ 400: apiErrorSchema,
109765
109707
  401: apiErrorSchema,
109766
109708
  404: apiErrorSchema
109767
109709
  },
@@ -109914,7 +109856,7 @@ var chatThreadMessagesContract = c21.router({
109914
109856
  method: "GET",
109915
109857
  path: "/api/zero/chat-threads/:threadId/messages",
109916
109858
  headers: authHeadersSchema,
109917
- pathParams: external_exports.object({ threadId: external_exports.string() }),
109859
+ pathParams: chatThreadThreadIdPathParamsSchema,
109918
109860
  query: external_exports.object({
109919
109861
  sinceId: external_exports.string().uuid().optional(),
109920
109862
  beforeId: external_exports.string().uuid().optional(),
@@ -109925,6 +109867,7 @@ var chatThreadMessagesContract = c21.router({
109925
109867
  messages: external_exports.array(pagedChatMessageSchema),
109926
109868
  hasHistoryBefore: external_exports.boolean().optional()
109927
109869
  }),
109870
+ 400: apiErrorSchema,
109928
109871
  401: apiErrorSchema,
109929
109872
  404: apiErrorSchema
109930
109873
  },
@@ -109936,11 +109879,12 @@ var chatThreadArtifactsContract = c21.router({
109936
109879
  method: "GET",
109937
109880
  path: "/api/zero/chat-threads/:threadId/artifacts",
109938
109881
  headers: authHeadersSchema,
109939
- pathParams: external_exports.object({ threadId: external_exports.string() }),
109882
+ pathParams: chatThreadThreadIdPathParamsSchema,
109940
109883
  responses: {
109941
109884
  200: external_exports.object({
109942
109885
  runs: external_exports.array(chatThreadArtifactRunSchema)
109943
109886
  }),
109887
+ 400: apiErrorSchema,
109944
109888
  401: apiErrorSchema,
109945
109889
  403: apiErrorSchema,
109946
109890
  404: apiErrorSchema
@@ -109951,7 +109895,7 @@ var chatThreadArtifactsContract = c21.router({
109951
109895
  method: "POST",
109952
109896
  path: "/api/zero/chat-threads/:threadId/artifacts",
109953
109897
  headers: authHeadersSchema,
109954
- pathParams: external_exports.object({ threadId: external_exports.string() }),
109898
+ pathParams: chatThreadThreadIdPathParamsSchema,
109955
109899
  body: external_exports.object({
109956
109900
  runId: external_exports.string(),
109957
109901
  fileId: external_exports.string()
@@ -116086,26 +116030,12 @@ var vercelFirewall = {
116086
116030
 
116087
116031
  // ../../packages/connectors/src/connector-utils.ts
116088
116032
  init_esm_shims();
116089
-
116090
- // ../../packages/connectors/src/auth-providers/oauth/google-connectors.ts
116091
- init_esm_shims();
116092
- var GOOGLE_OAUTH_CONNECTOR_TYPES = [
116093
- "gmail",
116094
- "google-ads",
116095
- "google-calendar",
116096
- "google-docs",
116097
- "google-drive",
116098
- "google-meet",
116099
- "google-sheets"
116100
- ];
116101
- var GOOGLE_OAUTH_CONNECTOR_TYPE_SET = new Set(GOOGLE_OAUTH_CONNECTOR_TYPES);
116102
-
116103
- // ../../packages/connectors/src/connector-utils.ts
116104
116033
  var CONNECTOR_AUTH_METHOD_PRIORITY = {
116105
116034
  oauth: 0,
116106
116035
  "api-token": 1,
116107
116036
  api: 2
116108
116037
  };
116038
+ var CONNECTOR_SECRET_REF_PREFIX = "$secrets.";
116109
116039
  function connectorAuthMethodPriority(authMethod) {
116110
116040
  return CONNECTOR_AUTH_METHOD_PRIORITY[authMethod];
116111
116041
  }
@@ -116142,6 +116072,32 @@ function connectorAccessEnvBindings(access) {
116142
116072
  return {};
116143
116073
  }
116144
116074
  }
116075
+ function connectorAccessPlatformSecrets(access) {
116076
+ switch (access.kind) {
116077
+ case "static":
116078
+ case "refresh-token":
116079
+ return access.platformSecrets ?? [];
116080
+ case "none":
116081
+ return [];
116082
+ }
116083
+ }
116084
+ function connectorOwnedAccessSecretBindingEntries(args) {
116085
+ const platformSecretNames = new Set(
116086
+ args.platformSecrets
116087
+ );
116088
+ const entries = [];
116089
+ for (const [envName, valueRef] of Object.entries(args.envBindings)) {
116090
+ if (!valueRef.startsWith(CONNECTOR_SECRET_REF_PREFIX)) {
116091
+ continue;
116092
+ }
116093
+ const secretName = valueRef.slice(CONNECTOR_SECRET_REF_PREFIX.length);
116094
+ if (platformSecretNames.has(secretName)) {
116095
+ continue;
116096
+ }
116097
+ entries.push({ envName, secretName });
116098
+ }
116099
+ return entries;
116100
+ }
116145
116101
  function connectorGrantScopes(grant) {
116146
116102
  switch (grant?.kind) {
116147
116103
  case "auth-code":
@@ -116162,7 +116118,7 @@ function getConnectorGenerationTypes(type) {
116162
116118
  const config4 = CONNECTOR_TYPES[type];
116163
116119
  return "generation" in config4 ? config4.generation ?? [] : [];
116164
116120
  }
116165
- function connectorMethodSecretNames(method) {
116121
+ function connectorMethodOwnedSecretNames(method) {
116166
116122
  if (!method) {
116167
116123
  return [];
116168
116124
  }
@@ -116173,17 +116129,22 @@ function connectorMethodSecretNames(method) {
116173
116129
  names.add(name);
116174
116130
  }
116175
116131
  }
116176
- for (const valueRef of Object.values(
116177
- connectorAccessEnvBindings(method.access)
116178
- )) {
116179
- if (valueRef.startsWith("$secrets.")) {
116180
- names.add(valueRef.slice("$secrets.".length));
116181
- }
116132
+ for (const { secretName } of connectorOwnedAccessSecretBindingEntries({
116133
+ envBindings: connectorAccessEnvBindings(method.access),
116134
+ platformSecrets: connectorAccessPlatformSecrets(method.access)
116135
+ })) {
116136
+ names.add(secretName);
116182
116137
  }
116183
116138
  if (method.access.kind === "refresh-token") {
116184
116139
  names.add(method.access.accessToken);
116185
116140
  names.add(method.access.refreshToken);
116186
116141
  }
116142
+ const platformSecretNames = new Set(
116143
+ connectorAccessPlatformSecrets(method.access)
116144
+ );
116145
+ for (const secretName of platformSecretNames) {
116146
+ names.delete(secretName);
116147
+ }
116187
116148
  return [...names];
116188
116149
  }
116189
116150
  function getConnectorAuthMethodEnvBindings(type, authMethod) {
@@ -116205,7 +116166,7 @@ function getConnectorEnvNamesForSecret(secretName) {
116205
116166
  for (const type of allTypes) {
116206
116167
  const config4 = CONNECTOR_TYPES[type];
116207
116168
  const found = Object.values(config4.authMethods).some((method) => {
116208
- return connectorMethodSecretNames(method).includes(secretName);
116169
+ return connectorMethodOwnedSecretNames(method).includes(secretName);
116209
116170
  });
116210
116171
  if (!found) {
116211
116172
  continue;
@@ -116270,7 +116231,7 @@ function getConnectorTypeForSecretName(name) {
116270
116231
  }
116271
116232
  }
116272
116233
  for (const method of Object.values(config4.authMethods)) {
116273
- if (connectorMethodSecretNames(method).includes(name)) {
116234
+ if (connectorMethodOwnedSecretNames(method).includes(name)) {
116274
116235
  return type;
116275
116236
  }
116276
116237
  }
@@ -128257,30 +128218,10 @@ var emailUnsubscribeContract = c40.router({
128257
128218
  }
128258
128219
  });
128259
128220
 
128260
- // ../../packages/api-contracts/src/contracts/connectors-type-authorize.ts
128261
- init_esm_shims();
128262
- var c41 = initContract();
128263
- var connectorsTypeAuthorizeContract = c41.router({
128264
- authorize: {
128265
- method: "GET",
128266
- path: "/api/connectors/:type/authorize",
128267
- headers: authHeadersSchema,
128268
- pathParams: external_exports.object({ type: external_exports.string() }),
128269
- query: external_exports.object({ session: external_exports.string().optional() }),
128270
- responses: {
128271
- 307: c41.noBody(),
128272
- 400: external_exports.object({ error: external_exports.string() }),
128273
- 403: external_exports.object({ error: external_exports.string() }),
128274
- 500: external_exports.object({ error: external_exports.string() })
128275
- },
128276
- summary: "Start connector OAuth authorization"
128277
- }
128278
- });
128279
-
128280
128221
  // ../../packages/api-contracts/src/contracts/connectors-type-callback.ts
128281
128222
  init_esm_shims();
128282
- var c42 = initContract();
128283
- var connectorsTypeCallbackContract = c42.router({
128223
+ var c41 = initContract();
128224
+ var connectorsTypeCallbackContract = c41.router({
128284
128225
  callback: {
128285
128226
  method: "GET",
128286
128227
  path: "/api/connectors/:type/callback",
@@ -128293,7 +128234,7 @@ var connectorsTypeCallbackContract = c42.router({
128293
128234
  error_description: external_exports.string().optional()
128294
128235
  }),
128295
128236
  responses: {
128296
- 307: c42.noBody()
128237
+ 307: c41.noBody()
128297
128238
  },
128298
128239
  summary: "Complete connector OAuth authorization"
128299
128240
  }
@@ -128301,7 +128242,7 @@ var connectorsTypeCallbackContract = c42.router({
128301
128242
 
128302
128243
  // ../../packages/api-contracts/src/contracts/test-oauth-provider-authorize.ts
128303
128244
  init_esm_shims();
128304
- var c43 = initContract();
128245
+ var c42 = initContract();
128305
128246
  var testOAuthProviderAuthorizeErrorSchema = external_exports.object({
128306
128247
  error: external_exports.string()
128307
128248
  });
@@ -128313,13 +128254,13 @@ var testOAuthProviderAuthorizeQuerySchema = external_exports.object({
128313
128254
  scope: external_exports.string().optional(),
128314
128255
  state: external_exports.string().optional()
128315
128256
  });
128316
- var testOAuthProviderAuthorizeContract = c43.router({
128257
+ var testOAuthProviderAuthorizeContract = c42.router({
128317
128258
  authorize: {
128318
128259
  method: "GET",
128319
128260
  path: "/api/test/oauth-provider/authorize",
128320
128261
  query: testOAuthProviderAuthorizeQuerySchema,
128321
128262
  responses: {
128322
- 302: c43.noBody(),
128263
+ 302: c42.noBody(),
128323
128264
  400: testOAuthProviderAuthorizeErrorSchema,
128324
128265
  404: external_exports.string()
128325
128266
  },
@@ -128329,7 +128270,7 @@ var testOAuthProviderAuthorizeContract = c43.router({
128329
128270
 
128330
128271
  // ../../packages/api-contracts/src/contracts/test-oauth-provider-echo.ts
128331
128272
  init_esm_shims();
128332
- var c44 = initContract();
128273
+ var c43 = initContract();
128333
128274
  var testOAuthProviderEchoErrorSchema = external_exports.object({
128334
128275
  error: external_exports.string()
128335
128276
  });
@@ -128337,7 +128278,7 @@ var testOAuthProviderEchoResponseSchema = external_exports.object({
128337
128278
  authorization: external_exports.string(),
128338
128279
  receivedAt: external_exports.string()
128339
128280
  });
128340
- var testOAuthProviderEchoContract = c44.router({
128281
+ var testOAuthProviderEchoContract = c43.router({
128341
128282
  echo: {
128342
128283
  method: "GET",
128343
128284
  path: "/api/test/oauth-provider/echo",
@@ -128352,7 +128293,7 @@ var testOAuthProviderEchoContract = c44.router({
128352
128293
 
128353
128294
  // ../../packages/api-contracts/src/contracts/test-oauth-provider-token.ts
128354
128295
  init_esm_shims();
128355
- var c45 = initContract();
128296
+ var c44 = initContract();
128356
128297
  var testOAuthProviderTokenErrorSchema = external_exports.object({
128357
128298
  error: external_exports.string(),
128358
128299
  error_description: external_exports.string().optional()
@@ -128364,11 +128305,11 @@ var testOAuthProviderTokenResponseSchema = external_exports.object({
128364
128305
  expires_in: external_exports.number(),
128365
128306
  scope: external_exports.string()
128366
128307
  });
128367
- var testOAuthProviderTokenContract = c45.router({
128308
+ var testOAuthProviderTokenContract = c44.router({
128368
128309
  token: {
128369
128310
  method: "POST",
128370
128311
  path: "/api/test/oauth-provider/token",
128371
- body: c45.type(),
128312
+ body: c44.type(),
128372
128313
  responses: {
128373
128314
  200: testOAuthProviderTokenResponseSchema,
128374
128315
  400: testOAuthProviderTokenErrorSchema,
@@ -128381,7 +128322,7 @@ var testOAuthProviderTokenContract = c45.router({
128381
128322
 
128382
128323
  // ../../packages/api-contracts/src/contracts/test-oauth-provider-device-auth.ts
128383
128324
  init_esm_shims();
128384
- var c46 = initContract();
128325
+ var c45 = initContract();
128385
128326
  var testOAuthProviderDeviceAuthErrorSchema = external_exports.object({
128386
128327
  error: external_exports.string(),
128387
128328
  error_description: external_exports.string().optional()
@@ -128394,11 +128335,11 @@ var testOAuthProviderDeviceAuthResponseSchema = external_exports.object({
128394
128335
  expires_in: external_exports.number(),
128395
128336
  interval: external_exports.number()
128396
128337
  });
128397
- var testOAuthProviderDeviceAuthContract = c46.router({
128338
+ var testOAuthProviderDeviceAuthContract = c45.router({
128398
128339
  deviceAuth: {
128399
128340
  method: "POST",
128400
128341
  path: "/api/test/oauth-provider/device/code",
128401
- body: c46.type(),
128342
+ body: c45.type(),
128402
128343
  responses: {
128403
128344
  200: testOAuthProviderDeviceAuthResponseSchema,
128404
128345
  400: testOAuthProviderDeviceAuthErrorSchema,
@@ -128411,7 +128352,7 @@ var testOAuthProviderDeviceAuthContract = c46.router({
128411
128352
 
128412
128353
  // ../../packages/api-contracts/src/contracts/test-oauth-provider-userinfo.ts
128413
128354
  init_esm_shims();
128414
- var c47 = initContract();
128355
+ var c46 = initContract();
128415
128356
  var testOAuthProviderUserinfoErrorSchema = external_exports.object({
128416
128357
  error: external_exports.string()
128417
128358
  });
@@ -128420,7 +128361,7 @@ var testOAuthProviderUserinfoResponseSchema = external_exports.object({
128420
128361
  id: external_exports.string(),
128421
128362
  username: external_exports.string()
128422
128363
  });
128423
- var testOAuthProviderUserinfoContract = c47.router({
128364
+ var testOAuthProviderUserinfoContract = c46.router({
128424
128365
  userinfo: {
128425
128366
  method: "GET",
128426
128367
  path: "/api/test/oauth-provider/userinfo",
@@ -128435,7 +128376,7 @@ var testOAuthProviderUserinfoContract = c47.router({
128435
128376
 
128436
128377
  // ../../packages/api-contracts/src/contracts/test-slack-dispatch-probe.ts
128437
128378
  init_esm_shims();
128438
- var c48 = initContract();
128379
+ var c47 = initContract();
128439
128380
  var testSlackDispatchProbeBodySchema = external_exports.object({
128440
128381
  team_id: external_exports.string(),
128441
128382
  channel_id: external_exports.string(),
@@ -128463,7 +128404,7 @@ var testSlackDispatchProbeResponseSchema = external_exports.union([
128463
128404
  testSlackDispatchProbeSuccessResponseSchema,
128464
128405
  testSlackDispatchProbeFailureResponseSchema
128465
128406
  ]);
128466
- var testSlackDispatchProbeContract = c48.router({
128407
+ var testSlackDispatchProbeContract = c47.router({
128467
128408
  post: {
128468
128409
  method: "POST",
128469
128410
  path: "/api/test/slack-dispatch-probe",
@@ -128479,7 +128420,7 @@ var testSlackDispatchProbeContract = c48.router({
128479
128420
 
128480
128421
  // ../../packages/api-contracts/src/contracts/test-slack-state.ts
128481
128422
  init_esm_shims();
128482
- var c49 = initContract();
128423
+ var c48 = initContract();
128483
128424
  var testSlackStateErrorSchema = external_exports.object({
128484
128425
  error: external_exports.string()
128485
128426
  });
@@ -128564,7 +128505,7 @@ var testSlackStateResponseSchema = external_exports.object({
128564
128505
  })
128565
128506
  )
128566
128507
  });
128567
- var testSlackStateContract = c49.router({
128508
+ var testSlackStateContract = c48.router({
128568
128509
  get: {
128569
128510
  method: "GET",
128570
128511
  path: "/api/test/slack-state",
@@ -128606,7 +128547,7 @@ var testSlackStateContract = c49.router({
128606
128547
 
128607
128548
  // ../../packages/api-contracts/src/contracts/test-slack-mock.ts
128608
128549
  init_esm_shims();
128609
- var c50 = initContract();
128550
+ var c49 = initContract();
128610
128551
  var slackMockRequestBodySchema = external_exports.unknown().optional();
128611
128552
  var slackMockNotFoundSchema = external_exports.string();
128612
128553
  var testSlackMockOkResponseSchema = external_exports.object({
@@ -128672,7 +128613,7 @@ var testSlackMockUsersInfoResponseSchema = testSlackMockOkResponseSchema.extend(
128672
128613
  })
128673
128614
  })
128674
128615
  });
128675
- var testSlackMockContract = c50.router({
128616
+ var testSlackMockContract = c49.router({
128676
128617
  assistantThreadsSetStatus: {
128677
128618
  method: "POST",
128678
128619
  path: "/api/test/slack-mock/assistant.threads.setStatus",
@@ -128777,7 +128718,7 @@ var testSlackMockContract = c50.router({
128777
128718
 
128778
128719
  // ../../packages/api-contracts/src/contracts/test-telegram-mock.ts
128779
128720
  init_esm_shims();
128780
- var c51 = initContract();
128721
+ var c50 = initContract();
128781
128722
  var testTelegramMockPathParamsSchema = external_exports.object({
128782
128723
  botToken: external_exports.string(),
128783
128724
  method: external_exports.string()
@@ -128790,7 +128731,7 @@ var testTelegramMockErrorResponseSchema = external_exports.object({
128790
128731
  ok: external_exports.literal(false),
128791
128732
  description: external_exports.string()
128792
128733
  });
128793
- var testTelegramMockContract = c51.router({
128734
+ var testTelegramMockContract = c50.router({
128794
128735
  post: {
128795
128736
  method: "POST",
128796
128737
  path: "/api/test/telegram-mock/:botToken/:method",
@@ -128806,7 +128747,7 @@ var testTelegramMockContract = c51.router({
128806
128747
 
128807
128748
  // ../../packages/api-contracts/src/contracts/test-telegram-state.ts
128808
128749
  init_esm_shims();
128809
- var c52 = initContract();
128750
+ var c51 = initContract();
128810
128751
  var testTelegramStateQuerySchema = external_exports.object({
128811
128752
  bot_id: external_exports.string().optional()
128812
128753
  });
@@ -128848,7 +128789,7 @@ var testTelegramStateSeedResponseSchema = external_exports.object({
128848
128789
  user_link_id: external_exports.string().nullable(),
128849
128790
  default_agent_id: external_exports.string()
128850
128791
  });
128851
- var testTelegramStateContract = c52.router({
128792
+ var testTelegramStateContract = c51.router({
128852
128793
  get: {
128853
128794
  method: "GET",
128854
128795
  path: "/api/test/telegram-state",
@@ -128886,7 +128827,7 @@ var testTelegramStateContract = c52.router({
128886
128827
 
128887
128828
  // ../../packages/api-contracts/src/contracts/internal-event-consumers.ts
128888
128829
  init_esm_shims();
128889
- var c53 = initContract();
128830
+ var c52 = initContract();
128890
128831
  var eventConsumerHeadersSchema = external_exports.object({
128891
128832
  "x-vm0-signature": external_exports.string().optional(),
128892
128833
  "x-vm0-timestamp": external_exports.string().optional()
@@ -128906,7 +128847,7 @@ var eventConsumerPayloadSchema = external_exports.object({
128906
128847
  var eventConsumerUnauthorizedSchema = external_exports.object({
128907
128848
  error: external_exports.string()
128908
128849
  });
128909
- var internalEventConsumerTelegramTypingContract = c53.router({
128850
+ var internalEventConsumerTelegramTypingContract = c52.router({
128910
128851
  refresh: {
128911
128852
  method: "POST",
128912
128853
  path: "/api/internal/event-consumers/telegram-typing",
@@ -128919,7 +128860,7 @@ var internalEventConsumerTelegramTypingContract = c53.router({
128919
128860
  summary: "Refresh Telegram typing indicators for all pending callbacks of a run"
128920
128861
  }
128921
128862
  });
128922
- var internalEventConsumerAgentPhoneTypingContract = c53.router({
128863
+ var internalEventConsumerAgentPhoneTypingContract = c52.router({
128923
128864
  refresh: {
128924
128865
  method: "POST",
128925
128866
  path: "/api/internal/event-consumers/agentphone-typing",
@@ -128932,7 +128873,7 @@ var internalEventConsumerAgentPhoneTypingContract = c53.router({
128932
128873
  summary: "Refresh AgentPhone typing indicators for all pending iMessage callbacks of a run"
128933
128874
  }
128934
128875
  });
128935
- var internalEventConsumerAxiomContract = c53.router({
128876
+ var internalEventConsumerAxiomContract = c52.router({
128936
128877
  ingest: {
128937
128878
  method: "POST",
128938
128879
  path: "/api/internal/event-consumers/axiom",
@@ -128946,7 +128887,7 @@ var internalEventConsumerAxiomContract = c53.router({
128946
128887
  summary: "Ingest agent run events into Axiom"
128947
128888
  }
128948
128889
  });
128949
- var internalEventConsumerChatAssistantContract = c53.router({
128890
+ var internalEventConsumerChatAssistantContract = c52.router({
128950
128891
  process: {
128951
128892
  method: "POST",
128952
128893
  path: "/api/internal/event-consumers/chat-assistant",
@@ -128962,7 +128903,7 @@ var internalEventConsumerChatAssistantContract = c53.router({
128962
128903
 
128963
128904
  // ../../packages/api-contracts/src/contracts/cron.ts
128964
128905
  init_esm_shims();
128965
- var c54 = initContract();
128906
+ var c53 = initContract();
128966
128907
  var cleanupResultSchema = external_exports.object({
128967
128908
  runId: external_exports.string(),
128968
128909
  sandboxId: external_exports.string().nullable(),
@@ -128977,7 +128918,7 @@ var cleanupResponseSchema = external_exports.object({
128977
128918
  exportJobsCleaned: external_exports.number(),
128978
128919
  exportJobsStuck: external_exports.number()
128979
128920
  });
128980
- var cronCleanupSandboxesContract = c54.router({
128921
+ var cronCleanupSandboxesContract = c53.router({
128981
128922
  /**
128982
128923
  * GET /api/cron/cleanup-sandboxes
128983
128924
  * Cron job to cleanup sandboxes that have stopped sending heartbeats
@@ -129044,7 +128985,7 @@ var cronAggregateInsightsResponseSchema = external_exports.union([
129044
128985
  cronAggregateInsightsSkippedResponseSchema,
129045
128986
  cronAggregateInsightsAggregatedResponseSchema
129046
128987
  ]);
129047
- var cronAggregateUsageContract = c54.router({
128988
+ var cronAggregateUsageContract = c53.router({
129048
128989
  aggregate: {
129049
128990
  method: "GET",
129050
128991
  path: "/api/cron/aggregate-usage",
@@ -129056,7 +128997,7 @@ var cronAggregateUsageContract = c54.router({
129056
128997
  summary: "Aggregate daily usage cache"
129057
128998
  }
129058
128999
  });
129059
- var cronProcessUsageEventsContract = c54.router({
129000
+ var cronProcessUsageEventsContract = c53.router({
129060
129001
  process: {
129061
129002
  method: "GET",
129062
129003
  path: "/api/cron/process-usage-events",
@@ -129068,7 +129009,7 @@ var cronProcessUsageEventsContract = c54.router({
129068
129009
  summary: "Process pending usage events"
129069
129010
  }
129070
129011
  });
129071
- var cronReconcileBillingEntitlementsContract = c54.router({
129012
+ var cronReconcileBillingEntitlementsContract = c53.router({
129072
129013
  reconcile: {
129073
129014
  method: "GET",
129074
129015
  path: "/api/cron/reconcile-billing-entitlements",
@@ -129080,7 +129021,7 @@ var cronReconcileBillingEntitlementsContract = c54.router({
129080
129021
  summary: "Reconcile billing entitlements"
129081
129022
  }
129082
129023
  });
129083
- var cronTelegramCleanupContract = c54.router({
129024
+ var cronTelegramCleanupContract = c53.router({
129084
129025
  cleanup: {
129085
129026
  method: "GET",
129086
129027
  path: "/api/cron/telegram-cleanup",
@@ -129092,7 +129033,7 @@ var cronTelegramCleanupContract = c54.router({
129092
129033
  summary: "Delete expired Telegram messages"
129093
129034
  }
129094
129035
  });
129095
- var cronComputerUseScreenshotCleanupContract = c54.router({
129036
+ var cronComputerUseScreenshotCleanupContract = c53.router({
129096
129037
  cleanup: {
129097
129038
  method: "GET",
129098
129039
  path: "/api/cron/computer-use-screenshot-cleanup",
@@ -129104,7 +129045,7 @@ var cronComputerUseScreenshotCleanupContract = c54.router({
129104
129045
  summary: "Delete expired desktop computer-use screenshots"
129105
129046
  }
129106
129047
  });
129107
- var cronDrainEmailOutboxContract = c54.router({
129048
+ var cronDrainEmailOutboxContract = c53.router({
129108
129049
  drain: {
129109
129050
  method: "GET",
129110
129051
  path: "/api/cron/drain-email-outbox",
@@ -129116,7 +129057,7 @@ var cronDrainEmailOutboxContract = c54.router({
129116
129057
  summary: "Drain pending email outbox messages"
129117
129058
  }
129118
129059
  });
129119
- var cronSyncSkillsContract = c54.router({
129060
+ var cronSyncSkillsContract = c53.router({
129120
129061
  sync: {
129121
129062
  method: "GET",
129122
129063
  path: "/api/cron/sync-skills",
@@ -129128,7 +129069,7 @@ var cronSyncSkillsContract = c54.router({
129128
129069
  summary: "Sync official skills from the skills repository"
129129
129070
  }
129130
129071
  });
129131
- var cronExecuteSchedulesContract = c54.router({
129072
+ var cronExecuteSchedulesContract = c53.router({
129132
129073
  execute: {
129133
129074
  method: "GET",
129134
129075
  path: "/api/cron/execute-schedules",
@@ -129140,7 +129081,7 @@ var cronExecuteSchedulesContract = c54.router({
129140
129081
  summary: "Execute due schedules"
129141
129082
  }
129142
129083
  });
129143
- var cronAggregateInsightsContract = c54.router({
129084
+ var cronAggregateInsightsContract = c53.router({
129144
129085
  aggregate: {
129145
129086
  method: "GET",
129146
129087
  path: "/api/cron/aggregate-insights",
@@ -129155,7 +129096,7 @@ var cronAggregateInsightsContract = c54.router({
129155
129096
 
129156
129097
  // ../../packages/api-contracts/src/contracts/chat-threads-v1.ts
129157
129098
  init_esm_shims();
129158
- var c55 = initContract();
129099
+ var c54 = initContract();
129159
129100
  var v1ThreadSchema = external_exports.object({
129160
129101
  id: external_exports.string(),
129161
129102
  title: external_exports.string().nullable(),
@@ -129169,7 +129110,7 @@ var v1MessageSchema = external_exports.object({
129169
129110
  error: external_exports.string().optional(),
129170
129111
  createdAt: external_exports.string()
129171
129112
  });
129172
- var chatThreadV1GetContract = c55.router({
129113
+ var chatThreadV1GetContract = c54.router({
129173
129114
  get: {
129174
129115
  method: "GET",
129175
129116
  path: "/api/v1/chat-threads/:threadId",
@@ -129184,7 +129125,7 @@ var chatThreadV1GetContract = c55.router({
129184
129125
  summary: "Get a chat thread"
129185
129126
  }
129186
129127
  });
129187
- var chatThreadV1MessagesContract = c55.router({
129128
+ var chatThreadV1MessagesContract = c54.router({
129188
129129
  list: {
129189
129130
  method: "GET",
129190
129131
  path: "/api/v1/chat-threads/:threadId/messages",
@@ -129204,7 +129145,7 @@ var chatThreadV1MessagesContract = c55.router({
129204
129145
  summary: "List messages in a chat thread"
129205
129146
  }
129206
129147
  });
129207
- var chatThreadV1SendContract = c55.router({
129148
+ var chatThreadV1SendContract = c54.router({
129208
129149
  send: {
129209
129150
  method: "POST",
129210
129151
  path: "/api/v1/chat-threads/messages",
@@ -129235,7 +129176,7 @@ var chatThreadV1SendContract = c55.router({
129235
129176
 
129236
129177
  // ../../packages/api-contracts/src/contracts/device-token.ts
129237
129178
  init_esm_shims();
129238
- var c56 = initContract();
129179
+ var c55 = initContract();
129239
129180
  var bb0DeviceCodeSchema = external_exports.string().regex(/^[A-Z2-9]{4}-[A-Z2-9]{4}$/);
129240
129181
  var bleSessionNonceSchema = external_exports.string().min(16).max(128).regex(/^[A-Za-z0-9._:-]+$/);
129241
129182
  var pollTokenSchema = external_exports.string().min(32).max(256).regex(/^[A-Za-z0-9._-]+$/);
@@ -129274,7 +129215,7 @@ var confirmBb0DeviceRequestSchema = external_exports.object({
129274
129215
  var confirmBb0DeviceResponseSchema = external_exports.object({
129275
129216
  status: external_exports.literal("approved")
129276
129217
  });
129277
- var deviceTokenContract = c56.router({
129218
+ var deviceTokenContract = c55.router({
129278
129219
  create: {
129279
129220
  method: "POST",
129280
129221
  path: "/api/device-token",
@@ -129299,7 +129240,7 @@ var deviceTokenContract = c56.router({
129299
129240
  summary: "Poll a bb0 device code for approval and final credentials"
129300
129241
  }
129301
129242
  });
129302
- var bb0DeviceConfirmContract = c56.router({
129243
+ var bb0DeviceConfirmContract = c55.router({
129303
129244
  confirm: {
129304
129245
  method: "POST",
129305
129246
  path: "/api/zero/devices/bb0/confirm",
@@ -129318,16 +129259,16 @@ var bb0DeviceConfirmContract = c56.router({
129318
129259
 
129319
129260
  // ../../packages/api-contracts/src/contracts/audio-transcriptions-v1.ts
129320
129261
  init_esm_shims();
129321
- var c57 = initContract();
129262
+ var c56 = initContract();
129322
129263
  var audioTranscriptionV1Schema = external_exports.object({
129323
129264
  text: external_exports.string()
129324
129265
  });
129325
- var audioTranscriptionsV1Contract = c57.router({
129266
+ var audioTranscriptionsV1Contract = c56.router({
129326
129267
  transcribe: {
129327
129268
  method: "POST",
129328
129269
  path: "/api/v1/audio/transcriptions",
129329
129270
  headers: authHeadersSchema,
129330
- body: c57.type(),
129271
+ body: c56.type(),
129331
129272
  responses: {
129332
129273
  200: audioTranscriptionV1Schema,
129333
129274
  400: apiErrorSchema,
@@ -129344,7 +129285,7 @@ var audioTranscriptionsV1Contract = c57.router({
129344
129285
 
129345
129286
  // ../../packages/api-contracts/src/contracts/generate-image.ts
129346
129287
  init_esm_shims();
129347
- var c58 = initContract();
129288
+ var c57 = initContract();
129348
129289
  var generateImageRequestSchema = external_exports.object({
129349
129290
  prompt: external_exports.unknown().optional()
129350
129291
  }).passthrough();
@@ -129355,7 +129296,7 @@ var generatedImageSchema = external_exports.object({
129355
129296
  var generateImageResponseSchema = external_exports.object({
129356
129297
  images: external_exports.array(generatedImageSchema)
129357
129298
  });
129358
- var generateImageContract = c58.router({
129299
+ var generateImageContract = c57.router({
129359
129300
  post: {
129360
129301
  method: "POST",
129361
129302
  path: "/api/generate-image",
@@ -129375,7 +129316,7 @@ var generateImageContract = c58.router({
129375
129316
 
129376
129317
  // ../../packages/api-contracts/src/contracts/realtime.ts
129377
129318
  init_esm_shims();
129378
- var c59 = initContract();
129319
+ var c58 = initContract();
129379
129320
  var ablyTokenRequestSchema = external_exports.object({
129380
129321
  keyName: external_exports.string(),
129381
129322
  ttl: external_exports.number().optional(),
@@ -129385,7 +129326,7 @@ var ablyTokenRequestSchema = external_exports.object({
129385
129326
  nonce: external_exports.string(),
129386
129327
  mac: external_exports.string()
129387
129328
  });
129388
- var runnerRealtimeTokenContract = c59.router({
129329
+ var runnerRealtimeTokenContract = c58.router({
129389
129330
  /**
129390
129331
  * POST /api/runners/realtime/token
129391
129332
  * Get an Ably token to subscribe to a runner group's job notification channel
@@ -129407,7 +129348,7 @@ var runnerRealtimeTokenContract = c59.router({
129407
129348
  summary: "Get Ably token for runner group job notifications"
129408
129349
  }
129409
129350
  });
129410
- var platformRealtimeTokenContract = c59.router({
129351
+ var platformRealtimeTokenContract = c58.router({
129411
129352
  /**
129412
129353
  * POST /api/zero/realtime/token
129413
129354
  * Get an Ably token to subscribe to the authenticated user's push channel
@@ -130035,14 +129976,14 @@ function findMatchingPermissions(method, path3, config4, options = {}) {
130035
129976
 
130036
129977
  // ../../packages/api-contracts/src/contracts/zero-feature-switches.ts
130037
129978
  init_esm_shims();
130038
- var c60 = initContract();
129979
+ var c59 = initContract();
130039
129980
  var featureSwitchesResponseSchema = external_exports.object({
130040
129981
  switches: external_exports.record(external_exports.string(), external_exports.boolean())
130041
129982
  });
130042
129983
  var updateFeatureSwitchesRequestSchema = external_exports.object({
130043
129984
  switches: external_exports.record(external_exports.string(), external_exports.boolean())
130044
129985
  });
130045
- var zeroFeatureSwitchesContract = c60.router({
129986
+ var zeroFeatureSwitchesContract = c59.router({
130046
129987
  get: {
130047
129988
  method: "GET",
130048
129989
  path: "/api/zero/feature-switches",
@@ -130071,7 +130012,7 @@ var zeroFeatureSwitchesContract = c60.router({
130071
130012
  method: "DELETE",
130072
130013
  path: "/api/zero/feature-switches",
130073
130014
  headers: authHeadersSchema,
130074
- body: c60.noBody(),
130015
+ body: c59.noBody(),
130075
130016
  responses: {
130076
130017
  200: external_exports.object({ deleted: external_exports.literal(true) }),
130077
130018
  401: apiErrorSchema,
@@ -130083,7 +130024,7 @@ var zeroFeatureSwitchesContract = c60.router({
130083
130024
 
130084
130025
  // ../../packages/api-contracts/src/contracts/onboarding.ts
130085
130026
  init_esm_shims();
130086
- var c61 = initContract();
130027
+ var c60 = initContract();
130087
130028
  var onboardingStatusResponseSchema = external_exports.object({
130088
130029
  needsOnboarding: external_exports.boolean(),
130089
130030
  isAdmin: external_exports.boolean(),
@@ -130096,7 +130037,7 @@ var onboardingStatusResponseSchema = external_exports.object({
130096
130037
  sound: external_exports.string().optional()
130097
130038
  }).nullable()
130098
130039
  });
130099
- var onboardingStatusContract = c61.router({
130040
+ var onboardingStatusContract = c60.router({
130100
130041
  getStatus: {
130101
130042
  method: "GET",
130102
130043
  path: "/api/zero/onboarding/status",
@@ -130108,7 +130049,7 @@ var onboardingStatusContract = c61.router({
130108
130049
  summary: "Get onboarding status for current user"
130109
130050
  }
130110
130051
  });
130111
- var onboardingSetupContract = c61.router({
130052
+ var onboardingSetupContract = c60.router({
130112
130053
  setup: {
130113
130054
  method: "POST",
130114
130055
  path: "/api/zero/onboarding/setup",
@@ -130140,6 +130081,69 @@ var skillFrontmatterSchema = external_exports.object({
130140
130081
  description: external_exports.string().optional()
130141
130082
  });
130142
130083
 
130084
+ // ../../packages/api-contracts/src/contracts/zero-user-permission-grants.ts
130085
+ init_esm_shims();
130086
+ var c61 = initContract();
130087
+ var agentIdSchema = external_exports.string().uuid();
130088
+ var connectorRefSchema = external_exports.string().min(1).max(64);
130089
+ var permissionSchema = external_exports.string().min(1).max(128);
130090
+ var userPermissionGrantActionSchema = external_exports.enum(["allow", "deny"]);
130091
+ var userPermissionGrantTtlSecondsSchema = external_exports.union([
130092
+ external_exports.literal(300),
130093
+ external_exports.literal(900),
130094
+ external_exports.literal(3600),
130095
+ external_exports.literal(86400)
130096
+ ]);
130097
+ var userPermissionGrantResponseSchema = external_exports.object({
130098
+ agentId: agentIdSchema,
130099
+ connectorRef: connectorRefSchema,
130100
+ permission: permissionSchema,
130101
+ action: userPermissionGrantActionSchema,
130102
+ expiresAt: external_exports.string().nullable(),
130103
+ createdAt: external_exports.string(),
130104
+ updatedAt: external_exports.string()
130105
+ });
130106
+ var listUserPermissionGrantsQuerySchema = external_exports.object({
130107
+ agentId: agentIdSchema
130108
+ });
130109
+ var upsertUserPermissionGrantRequestSchema = external_exports.object({
130110
+ agentId: agentIdSchema,
130111
+ connectorRef: connectorRefSchema,
130112
+ permission: permissionSchema,
130113
+ action: userPermissionGrantActionSchema,
130114
+ ttlSeconds: userPermissionGrantTtlSecondsSchema
130115
+ });
130116
+ var zeroUserPermissionGrantsContract = c61.router({
130117
+ list: {
130118
+ method: "GET",
130119
+ path: "/api/zero/user-permission-grants",
130120
+ headers: authHeadersSchema,
130121
+ query: listUserPermissionGrantsQuerySchema,
130122
+ responses: {
130123
+ 200: external_exports.array(userPermissionGrantResponseSchema),
130124
+ 400: apiErrorSchema,
130125
+ 401: apiErrorSchema,
130126
+ 403: apiErrorSchema,
130127
+ 404: apiErrorSchema
130128
+ },
130129
+ summary: "List current user's active permission grants for an agent"
130130
+ },
130131
+ upsert: {
130132
+ method: "PUT",
130133
+ path: "/api/zero/user-permission-grants",
130134
+ headers: authHeadersSchema,
130135
+ body: upsertUserPermissionGrantRequestSchema,
130136
+ responses: {
130137
+ 200: userPermissionGrantResponseSchema,
130138
+ 400: apiErrorSchema,
130139
+ 401: apiErrorSchema,
130140
+ 403: apiErrorSchema,
130141
+ 404: apiErrorSchema
130142
+ },
130143
+ summary: "Upsert current user's permission grant for an agent"
130144
+ }
130145
+ });
130146
+
130143
130147
  // ../../packages/api-contracts/src/contracts/zero-codex-device-auth.ts
130144
130148
  init_esm_shims();
130145
130149
  var c62 = initContract();
@@ -134356,4 +134360,4 @@ undici/lib/web/fetch/body.js:
134356
134360
  undici/lib/web/websocket/frame.js:
134357
134361
  (*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *)
134358
134362
  */
134359
- //# sourceMappingURL=chunk-FHVH4FYZ.js.map
134363
+ //# sourceMappingURL=chunk-BFQSUVXT.js.map