@vm0/cli 9.265.0 → 9.267.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/{agent-Z2FIHSGT.js → agent-OMZZFFOX.js} +6 -6
  2. package/{banking-LGUZ5VNG.js → banking-BVCIXQ5N.js} +4 -4
  3. package/{browser-YLIWZZ6D.js → browser-MZYVERXT.js} +13 -33
  4. package/browser-MZYVERXT.js.map +1 -0
  5. package/{chat-EI7BN74G.js → chat-XAIEMJJJ.js} +5 -5
  6. package/{chunk-IW4TR3DM.js → chunk-3AYDKKKU.js} +2 -2
  7. package/{chunk-HYSVCVEH.js → chunk-5TMLTATP.js} +10 -2
  8. package/chunk-5TMLTATP.js.map +1 -0
  9. package/{chunk-SZUNGLD5.js → chunk-FLF6ZMKJ.js} +11 -17
  10. package/chunk-FLF6ZMKJ.js.map +1 -0
  11. package/{chunk-7ZIFGPRL.js → chunk-GTGI6NWJ.js} +2 -2
  12. package/{chunk-HCF2BKID.js → chunk-GU4ZJECC.js} +2 -2
  13. package/{chunk-K36BESR5.js → chunk-LYI45KHY.js} +251 -95
  14. package/chunk-LYI45KHY.js.map +1 -0
  15. package/{chunk-TK3OYU57.js → chunk-PYNAJYFD.js} +2 -2
  16. package/{chunk-VK5XI46M.js → chunk-RU2TI2U2.js} +2 -2
  17. package/{chunk-YL2ISI5E.js → chunk-TX5E4N6E.js} +4 -4
  18. package/{computer-use-MEF72YRU.js → computer-use-OMUCKEH4.js} +4 -4
  19. package/{connector-ADZC3UUD.js → connector-DZ5RLANA.js} +7 -7
  20. package/{credit-XP5O4KDG.js → credit-ZTZPYLHJ.js} +5 -5
  21. package/{developer-support-EEYI4ZIM.js → developer-support-VWUHT7BY.js} +4 -4
  22. package/{doctor-6IKUKRIN.js → doctor-WTSDGI5C.js} +5 -5
  23. package/{feishu-TMG2N5KK.js → feishu-CWVMYPJJ.js} +4 -4
  24. package/{finance-O5MHGWTZ.js → finance-67XW3BDK.js} +4 -4
  25. package/{generate-AUPFFQLI.js → generate-5BFGTIYQ.js} +5 -5
  26. package/{github-CRHENPJV.js → github-D2WOKACM.js} +4 -4
  27. package/{goal-MUYVQVAB.js → goal-PB5PPIKK.js} +4 -4
  28. package/{host-V7DG7VT2.js → host-SKUS46EY.js} +4 -4
  29. package/{logs-U5AKPOEH.js → logs-UVEMZZGC.js} +5 -5
  30. package/{mail-DBQGZ5QR.js → mail-NIXLTFM2.js} +6 -6
  31. package/{maps-AWH5HB4Y.js → maps-O4EJGJGI.js} +4 -4
  32. package/{model-D55WMDT2.js → model-CYLLV5SU.js} +5 -5
  33. package/{model-provider-ZGDNIWDF.js → model-provider-VDFCPVGR.js} +5 -5
  34. package/{org-EQUTXVUP.js → org-EKZ5TZ6C.js} +4 -4
  35. package/package.json +1 -1
  36. package/{people-search-YAEDYHCN.js → people-search-SXKWISQC.js} +4 -4
  37. package/{phone-HCJIFH4N.js → phone-KQUWXL2F.js} +4 -4
  38. package/{preference-RNU6XCSS.js → preference-ZUT6YDYU.js} +4 -4
  39. package/{resource-OPBBCIDG.js → resource-WLJIYIAG.js} +4 -4
  40. package/{scrape-5NOKI766.js → scrape-RBI7L7OI.js} +4 -4
  41. package/{search-OJF44IQ7.js → search-N4HHOYG3.js} +5 -5
  42. package/{secret-Q6N2AQ7A.js → secret-M3JN4ILK.js} +4 -4
  43. package/{slack-KHAA7PN5.js → slack-RKIRNUMX.js} +4 -4
  44. package/{teams-C2JNGM46.js → teams-EOQH4NSD.js} +4 -4
  45. package/{telegram-NGPTNBBI.js → telegram-TKIUQBRV.js} +4 -4
  46. package/{upgrade-75V657YJ.js → upgrade-Z46EJ6LM.js} +3 -3
  47. package/{variable-3DW76KDG.js → variable-4MKDDCMH.js} +4 -4
  48. package/{video-V2EXAJCM.js → video-L5EPZEBJ.js} +3 -3
  49. package/{weather-KBKC4WV7.js → weather-WBTWM2L3.js} +4 -4
  50. package/{web-HRDFN5K6.js → web-OI25YJCD.js} +4 -4
  51. package/{web-search-OWKG5UTV.js → web-search-55JR4DFQ.js} +4 -4
  52. package/{whoami-WDMQPK2D.js → whoami-5B24JEWY.js} +6 -6
  53. package/{workflow-3I3UWWQE.js → workflow-F2DNCBSD.js} +4 -4
  54. package/zero.js +42 -42
  55. package/browser-YLIWZZ6D.js.map +0 -1
  56. package/chunk-HYSVCVEH.js.map +0 -1
  57. package/chunk-K36BESR5.js.map +0 -1
  58. package/chunk-SZUNGLD5.js.map +0 -1
  59. /package/{agent-Z2FIHSGT.js.map → agent-OMZZFFOX.js.map} +0 -0
  60. /package/{banking-LGUZ5VNG.js.map → banking-BVCIXQ5N.js.map} +0 -0
  61. /package/{chat-EI7BN74G.js.map → chat-XAIEMJJJ.js.map} +0 -0
  62. /package/{chunk-IW4TR3DM.js.map → chunk-3AYDKKKU.js.map} +0 -0
  63. /package/{chunk-7ZIFGPRL.js.map → chunk-GTGI6NWJ.js.map} +0 -0
  64. /package/{chunk-HCF2BKID.js.map → chunk-GU4ZJECC.js.map} +0 -0
  65. /package/{chunk-TK3OYU57.js.map → chunk-PYNAJYFD.js.map} +0 -0
  66. /package/{chunk-VK5XI46M.js.map → chunk-RU2TI2U2.js.map} +0 -0
  67. /package/{chunk-YL2ISI5E.js.map → chunk-TX5E4N6E.js.map} +0 -0
  68. /package/{computer-use-MEF72YRU.js.map → computer-use-OMUCKEH4.js.map} +0 -0
  69. /package/{connector-ADZC3UUD.js.map → connector-DZ5RLANA.js.map} +0 -0
  70. /package/{credit-XP5O4KDG.js.map → credit-ZTZPYLHJ.js.map} +0 -0
  71. /package/{developer-support-EEYI4ZIM.js.map → developer-support-VWUHT7BY.js.map} +0 -0
  72. /package/{doctor-6IKUKRIN.js.map → doctor-WTSDGI5C.js.map} +0 -0
  73. /package/{feishu-TMG2N5KK.js.map → feishu-CWVMYPJJ.js.map} +0 -0
  74. /package/{finance-O5MHGWTZ.js.map → finance-67XW3BDK.js.map} +0 -0
  75. /package/{generate-AUPFFQLI.js.map → generate-5BFGTIYQ.js.map} +0 -0
  76. /package/{github-CRHENPJV.js.map → github-D2WOKACM.js.map} +0 -0
  77. /package/{goal-MUYVQVAB.js.map → goal-PB5PPIKK.js.map} +0 -0
  78. /package/{host-V7DG7VT2.js.map → host-SKUS46EY.js.map} +0 -0
  79. /package/{logs-U5AKPOEH.js.map → logs-UVEMZZGC.js.map} +0 -0
  80. /package/{mail-DBQGZ5QR.js.map → mail-NIXLTFM2.js.map} +0 -0
  81. /package/{maps-AWH5HB4Y.js.map → maps-O4EJGJGI.js.map} +0 -0
  82. /package/{model-D55WMDT2.js.map → model-CYLLV5SU.js.map} +0 -0
  83. /package/{model-provider-ZGDNIWDF.js.map → model-provider-VDFCPVGR.js.map} +0 -0
  84. /package/{org-EQUTXVUP.js.map → org-EKZ5TZ6C.js.map} +0 -0
  85. /package/{people-search-YAEDYHCN.js.map → people-search-SXKWISQC.js.map} +0 -0
  86. /package/{phone-HCJIFH4N.js.map → phone-KQUWXL2F.js.map} +0 -0
  87. /package/{preference-RNU6XCSS.js.map → preference-ZUT6YDYU.js.map} +0 -0
  88. /package/{resource-OPBBCIDG.js.map → resource-WLJIYIAG.js.map} +0 -0
  89. /package/{scrape-5NOKI766.js.map → scrape-RBI7L7OI.js.map} +0 -0
  90. /package/{search-OJF44IQ7.js.map → search-N4HHOYG3.js.map} +0 -0
  91. /package/{secret-Q6N2AQ7A.js.map → secret-M3JN4ILK.js.map} +0 -0
  92. /package/{slack-KHAA7PN5.js.map → slack-RKIRNUMX.js.map} +0 -0
  93. /package/{teams-C2JNGM46.js.map → teams-EOQH4NSD.js.map} +0 -0
  94. /package/{telegram-NGPTNBBI.js.map → telegram-TKIUQBRV.js.map} +0 -0
  95. /package/{upgrade-75V657YJ.js.map → upgrade-Z46EJ6LM.js.map} +0 -0
  96. /package/{variable-3DW76KDG.js.map → variable-4MKDDCMH.js.map} +0 -0
  97. /package/{video-V2EXAJCM.js.map → video-L5EPZEBJ.js.map} +0 -0
  98. /package/{weather-KBKC4WV7.js.map → weather-WBTWM2L3.js.map} +0 -0
  99. /package/{web-HRDFN5K6.js.map → web-OI25YJCD.js.map} +0 -0
  100. /package/{web-search-OWKG5UTV.js.map → web-search-55JR4DFQ.js.map} +0 -0
  101. /package/{whoami-WDMQPK2D.js.map → whoami-5B24JEWY.js.map} +0 -0
  102. /package/{workflow-3I3UWWQE.js.map → workflow-F2DNCBSD.js.map} +0 -0
@@ -21,7 +21,7 @@ import {
21
21
  updateOrgModelPoliciesRequestSchema,
22
22
  upsertModelProviderRequestSchema,
23
23
  upsertModelProviderResponseSchema
24
- } from "./chunk-HYSVCVEH.js";
24
+ } from "./chunk-5TMLTATP.js";
25
25
  import {
26
26
  __commonJS,
27
27
  __esm,
@@ -2008,19 +2008,12 @@ var CHAT_EVENT_TYPES = [
2008
2008
  "run.completed",
2009
2009
  "run.failed",
2010
2010
  "run.cancelled",
2011
- "queue.automation_paused",
2012
- "queue.automation_resumed",
2013
2011
  "control.interrupt",
2014
2012
  "control.revoke",
2015
2013
  "goal.changed",
2016
2014
  "usage.recorded"
2017
2015
  ];
2018
2016
  var chatEventTypeSchema = external_exports.enum(CHAT_EVENT_TYPES);
2019
- var MATERIALIZED_CHAT_EVENT_TYPES = CHAT_EVENT_TYPES.filter(
2020
- (eventType) => {
2021
- return eventType !== "input.goal";
2022
- }
2023
- );
2024
2017
  function revokedChatEventIds(events) {
2025
2018
  return new Set(
2026
2019
  events.flatMap((event) => {
@@ -3689,6 +3682,9 @@ var workflowSnapshotSchema = external_exports.object({
3689
3682
  automationId: external_exports.string().uuid().optional(),
3690
3683
  triggerBrief: external_exports.string().nullable().optional()
3691
3684
  });
3685
+ var goalSnapshotSchema = external_exports.object({
3686
+ objectiveBrief: external_exports.string().min(1)
3687
+ });
3692
3688
  var chatEventBaseSchema = external_exports.object({
3693
3689
  id: external_exports.string(),
3694
3690
  threadId: external_exports.string(),
@@ -3700,9 +3696,7 @@ var chatEventBaseSchema = external_exports.object({
3700
3696
  feishuChatOpenUrl: external_exports.string().url().optional(),
3701
3697
  isGoalRun: external_exports.boolean().optional(),
3702
3698
  runEventId: external_exports.string().optional(),
3703
- goalSnapshot: external_exports.object({
3704
- objectiveBrief: external_exports.string().min(1)
3705
- }).optional(),
3699
+ goalSnapshot: goalSnapshotSchema.optional(),
3706
3700
  revokesEventId: external_exports.string().optional(),
3707
3701
  /** Server-assigned strict position within the chat thread. */
3708
3702
  seqId: external_exports.number().int().positive(),
@@ -3738,6 +3732,23 @@ var inputAutomationEventSchema = chatEventBaseSchema.extend({
3738
3732
  triggerSource: triggerSourceSchema,
3739
3733
  triggerBrief: external_exports.string().nullable()
3740
3734
  }).strict();
3735
+ var inputGoalEventSchema = chatEventBaseSchema.extend({
3736
+ eventType: external_exports.literal("input.goal"),
3737
+ content: external_exports.null(),
3738
+ // Queue association stays server-side; the public event preserves only
3739
+ // the non-sensitive goal snapshot and stream ordering contract.
3740
+ runId: external_exports.never().optional(),
3741
+ runGroupId: external_exports.never().optional(),
3742
+ triggerSource: external_exports.never().optional(),
3743
+ slackMessagePermalink: external_exports.never().optional(),
3744
+ feishuChatOpenUrl: external_exports.never().optional(),
3745
+ isGoalRun: external_exports.never().optional(),
3746
+ runEventId: external_exports.never().optional(),
3747
+ goalSnapshot: goalSnapshotSchema,
3748
+ revokesEventId: external_exports.never().optional(),
3749
+ sequenceNumber: external_exports.never().optional(),
3750
+ workflowSnapshot: external_exports.never().optional()
3751
+ }).strict();
3741
3752
  var inputRejectedEventSchema = chatEventBaseSchema.extend({
3742
3753
  eventType: external_exports.literal("input.rejected"),
3743
3754
  content: external_exports.null(),
@@ -3795,12 +3806,12 @@ var runCancelledEventSchema = chatEventBaseSchema.extend({
3795
3806
  error: external_exports.string().optional(),
3796
3807
  runLifecycleEvent: external_exports.literal("cancelled")
3797
3808
  }).strict();
3798
- var queueAutomationPausedEventSchema = chatEventBaseSchema.extend({
3809
+ var legacyQueueAutomationPausedEventSchema = chatEventBaseSchema.extend({
3799
3810
  eventType: external_exports.literal("queue.automation_paused"),
3800
3811
  content: external_exports.null(),
3801
3812
  pauseReason: external_exports.string().nullable()
3802
3813
  }).strict();
3803
- var queueAutomationResumedEventSchema = chatEventBaseSchema.extend({
3814
+ var legacyQueueAutomationResumedEventSchema = chatEventBaseSchema.extend({
3804
3815
  eventType: external_exports.literal("queue.automation_resumed"),
3805
3816
  content: external_exports.null()
3806
3817
  }).strict();
@@ -3828,6 +3839,7 @@ var usageRecordedEventSchema = chatEventBaseSchema.extend({
3828
3839
  var chatEventSchema = external_exports.discriminatedUnion("eventType", [
3829
3840
  inputPromptEventSchema,
3830
3841
  inputAutomationEventSchema,
3842
+ inputGoalEventSchema,
3831
3843
  inputRejectedEventSchema,
3832
3844
  outputMessageEventSchema,
3833
3845
  outputErrorEventSchema,
@@ -3838,17 +3850,19 @@ var chatEventSchema = external_exports.discriminatedUnion("eventType", [
3838
3850
  runCompletedEventSchema,
3839
3851
  runFailedEventSchema,
3840
3852
  runCancelledEventSchema,
3841
- queueAutomationPausedEventSchema,
3842
- queueAutomationResumedEventSchema,
3843
3853
  controlInterruptEventSchema,
3844
3854
  controlRevokeEventSchema,
3845
3855
  goalChangedEventSchema,
3846
3856
  usageRecordedEventSchema
3847
3857
  ]);
3848
- var chatEventResponseSchema = chatEventSchema;
3849
- if (MATERIALIZED_CHAT_EVENT_TYPES.length !== chatEventSchema.options.length || !chatEventTypeSchema.options.includes("input.goal")) {
3858
+ var chatEventResponseSchema = external_exports.discriminatedUnion("eventType", [
3859
+ ...chatEventSchema.options,
3860
+ legacyQueueAutomationPausedEventSchema,
3861
+ legacyQueueAutomationResumedEventSchema
3862
+ ]);
3863
+ if (CHAT_EVENT_TYPES.length !== chatEventSchema.options.length) {
3850
3864
  throw new Error(
3851
- "ChatEvent schema must cover every materialized event catalog leaf"
3865
+ "ChatEvent schema must cover every registered event catalog leaf"
3852
3866
  );
3853
3867
  }
3854
3868
  var chatThreadDetailSchema = external_exports.object({
@@ -4562,6 +4576,9 @@ var artifactsContract = c13.router({
4562
4576
  summary: "Delete a resumable image artifact edit snapshot for the caller"
4563
4577
  }
4564
4578
  });
4579
+ function isCanonicalChatEventResponse(event) {
4580
+ return event.eventType !== "queue.automation_paused" && event.eventType !== "queue.automation_resumed";
4581
+ }
4565
4582
 
4566
4583
  // ../../packages/api-contracts/src/contracts/zero-agents.ts
4567
4584
  var c14 = initContract();
@@ -4794,8 +4811,9 @@ var agentPermissionGrantScopeSchema = external_exports.object({
4794
4811
  });
4795
4812
  var userPermissionGrantScopeSchema = agentPermissionGrantScopeSchema;
4796
4813
  var userPermissionGrantResponseBaseSchema = external_exports.object({
4797
- // TODO(#23619): Rename permission-grant wire fields with the DB migration.
4814
+ // TODO(#23821): Remove this legacy wire field after clients migrate.
4798
4815
  connectorRef: connectorSlugSchema,
4816
+ connectorSlug: connectorSlugSchema.optional(),
4799
4817
  permission: permissionSchema,
4800
4818
  action: userPermissionGrantActionSchema,
4801
4819
  expiresAt: external_exports.string().nullable(),
@@ -4819,14 +4837,36 @@ var applyUserPermissionGrantSchema = external_exports.discriminatedUnion("action
4819
4837
  expiresIn: external_exports.never().optional()
4820
4838
  })
4821
4839
  ]);
4822
- var applyUserPermissionGrantsRequestSchema = userPermissionGrantScopeSchema.and(
4823
- external_exports.object({
4824
- // TODO(#23619): Rename with the response and persisted grant field.
4825
- connectorRef: connectorSlugSchema,
4826
- mode: userPermissionGrantApplyModeSchema,
4827
- grants: external_exports.array(applyUserPermissionGrantSchema)
4828
- })
4829
- );
4840
+ var applyUserPermissionGrantsRequestSchema = external_exports.object({
4841
+ agentId: agentIdSchema,
4842
+ // TODO(#23821): Remove this legacy wire field after clients migrate.
4843
+ connectorRef: connectorSlugSchema.optional(),
4844
+ connectorSlug: connectorSlugSchema.optional(),
4845
+ mode: userPermissionGrantApplyModeSchema,
4846
+ grants: external_exports.array(applyUserPermissionGrantSchema)
4847
+ }).superRefine((request, ctx) => {
4848
+ if (request.connectorRef === void 0 && request.connectorSlug === void 0) {
4849
+ ctx.addIssue({
4850
+ code: "custom",
4851
+ message: "connectorRef or connectorSlug is required",
4852
+ path: ["connectorSlug"]
4853
+ });
4854
+ }
4855
+ if (request.connectorRef !== void 0 && request.connectorSlug !== void 0 && request.connectorRef !== request.connectorSlug) {
4856
+ ctx.addIssue({
4857
+ code: "custom",
4858
+ message: "connectorRef and connectorSlug must match",
4859
+ path: ["connectorSlug"]
4860
+ });
4861
+ }
4862
+ }).transform(({ connectorRef, connectorSlug, ...request }) => {
4863
+ const normalizedConnectorSlug = connectorSlug ?? connectorRef ?? "";
4864
+ return {
4865
+ ...request,
4866
+ connectorRef: normalizedConnectorSlug,
4867
+ connectorSlug: normalizedConnectorSlug
4868
+ };
4869
+ });
4830
4870
  var zeroUserPermissionGrantsContract = c15.router({
4831
4871
  list: {
4832
4872
  method: "GET",
@@ -4863,14 +4903,43 @@ var zeroUserPermissionGrantsContract = c15.router({
4863
4903
  init_esm_shims();
4864
4904
  var c16 = initContract();
4865
4905
  var userConnectorEnabledSlugsSchema = external_exports.object({
4866
- // TODO(#23619): Rename this user-connector wire field after clients migrate.
4867
- enabledTypes: external_exports.array(connectorSlugSchema)
4906
+ // TODO(#23821): Remove this legacy wire field after clients migrate.
4907
+ enabledTypes: external_exports.array(connectorSlugSchema),
4908
+ enabledConnectorSlugs: external_exports.array(connectorSlugSchema).optional()
4868
4909
  });
4869
- var userConnectorUpdateSchema = userConnectorEnabledSlugsSchema.extend(
4870
- {
4871
- operation: external_exports.enum(["replace", "add", "remove"]).optional()
4910
+ function sameConnectorSlugs(left, right) {
4911
+ return left.length === right.length && left.every((value, index) => {
4912
+ return value === right[index];
4913
+ });
4914
+ }
4915
+ var userConnectorUpdateSchema = external_exports.object({
4916
+ // TODO(#23821): Remove this legacy wire field after clients migrate.
4917
+ enabledTypes: external_exports.array(connectorSlugSchema).optional(),
4918
+ enabledConnectorSlugs: external_exports.array(connectorSlugSchema).optional(),
4919
+ operation: external_exports.enum(["replace", "add", "remove"]).optional()
4920
+ }).superRefine((request, ctx) => {
4921
+ if (request.enabledTypes === void 0 && request.enabledConnectorSlugs === void 0) {
4922
+ ctx.addIssue({
4923
+ code: "custom",
4924
+ message: "enabledTypes or enabledConnectorSlugs is required",
4925
+ path: ["enabledConnectorSlugs"]
4926
+ });
4872
4927
  }
4873
- );
4928
+ if (request.enabledTypes !== void 0 && request.enabledConnectorSlugs !== void 0 && !sameConnectorSlugs(request.enabledTypes, request.enabledConnectorSlugs)) {
4929
+ ctx.addIssue({
4930
+ code: "custom",
4931
+ message: "enabledTypes and enabledConnectorSlugs must match",
4932
+ path: ["enabledConnectorSlugs"]
4933
+ });
4934
+ }
4935
+ }).transform(({ enabledTypes, enabledConnectorSlugs, ...request }) => {
4936
+ const normalizedConnectorSlugs = enabledConnectorSlugs ?? enabledTypes ?? [];
4937
+ return {
4938
+ ...request,
4939
+ enabledTypes: normalizedConnectorSlugs,
4940
+ enabledConnectorSlugs: normalizedConnectorSlugs
4941
+ };
4942
+ });
4874
4943
  var zeroUserConnectorsContract = c16.router({
4875
4944
  get: {
4876
4945
  method: "GET",
@@ -5104,8 +5173,9 @@ var connectorReconnectReasonSchema = external_exports.enum([
5104
5173
  ]);
5105
5174
  var connectorResponseSchema = external_exports.object({
5106
5175
  id: external_exports.uuid(),
5107
- // TODO(#23619): Rename this legacy wire field after API clients migrate.
5176
+ // TODO(#23821): Remove this legacy wire field after API clients migrate.
5108
5177
  type: connectorSlugSchema,
5178
+ slug: connectorSlugSchema.optional(),
5109
5179
  authMethod: connectorAuthMethodIdSchema,
5110
5180
  externalId: external_exports.string().nullable(),
5111
5181
  externalUsername: external_exports.string().nullable(),
@@ -5135,8 +5205,9 @@ var connectorProvidedBindingSourceSchema = external_exports.discriminatedUnion(
5135
5205
  ]
5136
5206
  );
5137
5207
  var connectorProvidedBindingSchema = external_exports.object({
5138
- // TODO(#23619): Rename this legacy wire field after API clients migrate.
5208
+ // TODO(#23821): Remove this legacy wire field after API clients migrate.
5139
5209
  connectorType: connectorSlugSchema,
5210
+ connectorSlug: connectorSlugSchema.optional(),
5140
5211
  authMethod: connectorAuthMethodIdSchema,
5141
5212
  namespace: connectorProvidedBindingNamespaceSchema,
5142
5213
  name: external_exports.string(),
@@ -5145,8 +5216,9 @@ var connectorProvidedBindingSchema = external_exports.object({
5145
5216
  });
5146
5217
  var connectorListResponseSchema = external_exports.object({
5147
5218
  connectors: external_exports.array(connectorResponseSchema),
5148
- // TODO(#23619): Rename this legacy wire field after API clients migrate.
5219
+ // TODO(#23821): Remove this legacy wire field after API clients migrate.
5149
5220
  configuredTypes: external_exports.array(connectorSlugSchema),
5221
+ configuredConnectorSlugs: external_exports.array(connectorSlugSchema).optional(),
5150
5222
  connectorProvidedBindings: external_exports.array(connectorProvidedBindingSchema).default([])
5151
5223
  });
5152
5224
  var scopeDiffResponseSchema = external_exports.object({
@@ -5161,8 +5233,9 @@ var connectorOauthStartResponseSchema = external_exports.object({
5161
5233
  var connectorOauthDeviceAuthSessionStartResponseSchema = external_exports.object({
5162
5234
  sessionId: external_exports.uuid(),
5163
5235
  sessionToken: external_exports.string(),
5164
- // TODO(#23619): Rename this legacy wire field after API clients migrate.
5236
+ // TODO(#23821): Remove this legacy wire field after API clients migrate.
5165
5237
  type: connectorSlugSchema,
5238
+ connectorSlug: connectorSlugSchema.optional(),
5166
5239
  status: external_exports.literal("pending"),
5167
5240
  userCode: external_exports.string(),
5168
5241
  verificationUri: external_exports.string(),
@@ -5201,8 +5274,9 @@ var connectorOauthDeviceAuthSessionPollResponseSchema = external_exports.discrim
5201
5274
  var connectorExternalCodeSessionStartResponseSchema = external_exports.object({
5202
5275
  sessionId: external_exports.uuid(),
5203
5276
  sessionToken: external_exports.string(),
5204
- // TODO(#23619): Rename this legacy wire field after API clients migrate.
5277
+ // TODO(#23821): Remove this legacy wire field after API clients migrate.
5205
5278
  type: connectorSlugSchema,
5279
+ connectorSlug: connectorSlugSchema.optional(),
5206
5280
  status: external_exports.literal("pending"),
5207
5281
  authorizationUrl: external_exports.string(),
5208
5282
  expiresIn: external_exports.number()
@@ -5235,9 +5309,9 @@ var zeroConnectorsMainContract = c18.router({
5235
5309
  var zeroConnectorsBySlugContract = c18.router({
5236
5310
  get: {
5237
5311
  method: "GET",
5238
- path: "/api/zero/connectors/:type",
5312
+ path: "/api/zero/connectors/:connectorSlug",
5239
5313
  headers: authHeadersSchema,
5240
- pathParams: external_exports.object({ type: connectorSlugSchema }),
5314
+ pathParams: external_exports.object({ connectorSlug: connectorSlugSchema }),
5241
5315
  responses: {
5242
5316
  200: connectorResponseSchema,
5243
5317
  401: apiErrorSchema,
@@ -5248,9 +5322,9 @@ var zeroConnectorsBySlugContract = c18.router({
5248
5322
  },
5249
5323
  delete: {
5250
5324
  method: "DELETE",
5251
- path: "/api/zero/connectors/:type",
5325
+ path: "/api/zero/connectors/:connectorSlug",
5252
5326
  headers: authHeadersSchema,
5253
- pathParams: external_exports.object({ type: connectorSlugSchema }),
5327
+ pathParams: external_exports.object({ connectorSlug: connectorSlugSchema }),
5254
5328
  responses: {
5255
5329
  204: c18.noBody(),
5256
5330
  401: apiErrorSchema,
@@ -5262,9 +5336,9 @@ var zeroConnectorsBySlugContract = c18.router({
5262
5336
  var zeroConnectorScopeDiffContract = c18.router({
5263
5337
  getScopeDiff: {
5264
5338
  method: "GET",
5265
- path: "/api/zero/connectors/:type/scope-diff",
5339
+ path: "/api/zero/connectors/:connectorSlug/scope-diff",
5266
5340
  headers: authHeadersSchema,
5267
- pathParams: external_exports.object({ type: connectorSlugSchema }),
5341
+ pathParams: external_exports.object({ connectorSlug: connectorSlugSchema }),
5268
5342
  responses: {
5269
5343
  200: scopeDiffResponseSchema,
5270
5344
  401: apiErrorSchema,
@@ -5277,9 +5351,9 @@ var zeroConnectorScopeDiffContract = c18.router({
5277
5351
  var zeroConnectorOauthStartContract = c18.router({
5278
5352
  start: {
5279
5353
  method: "POST",
5280
- path: "/api/zero/connectors/:type/oauth/start",
5354
+ path: "/api/zero/connectors/:connectorSlug/oauth/start",
5281
5355
  headers: authHeadersSchema,
5282
- pathParams: external_exports.object({ type: connectorSlugSchema }),
5356
+ pathParams: external_exports.object({ connectorSlug: connectorSlugSchema }),
5283
5357
  body: external_exports.object({
5284
5358
  authMethod: connectorAuthMethodIdSchema,
5285
5359
  agentId: external_exports.uuid().optional(),
@@ -5299,8 +5373,8 @@ var zeroConnectorOauthStartContract = c18.router({
5299
5373
  var zeroConnectorOauthContinueContract = c18.router({
5300
5374
  continue: {
5301
5375
  method: "GET",
5302
- path: "/api/zero/connectors/:type/oauth/continue",
5303
- pathParams: external_exports.object({ type: connectorSlugSchema }),
5376
+ path: "/api/zero/connectors/:connectorSlug/oauth/continue",
5377
+ pathParams: external_exports.object({ connectorSlug: connectorSlugSchema }),
5304
5378
  query: external_exports.object({ state: external_exports.string().regex(/^[0-9a-f]{64}$/) }),
5305
5379
  responses: {
5306
5380
  307: c18.noBody(),
@@ -5313,9 +5387,9 @@ var zeroConnectorOauthContinueContract = c18.router({
5313
5387
  var zeroConnectorOpenIdStartContract = c18.router({
5314
5388
  start: {
5315
5389
  method: "POST",
5316
- path: "/api/zero/connectors/:type/openid/start",
5390
+ path: "/api/zero/connectors/:connectorSlug/openid/start",
5317
5391
  headers: authHeadersSchema,
5318
- pathParams: external_exports.object({ type: connectorSlugSchema }),
5392
+ pathParams: external_exports.object({ connectorSlug: connectorSlugSchema }),
5319
5393
  body: external_exports.object({
5320
5394
  authMethod: connectorAuthMethodIdSchema,
5321
5395
  agentId: external_exports.uuid().optional(),
@@ -5334,9 +5408,9 @@ var zeroConnectorOpenIdStartContract = c18.router({
5334
5408
  var zeroConnectorManualGrantContract = c18.router({
5335
5409
  connect: {
5336
5410
  method: "POST",
5337
- path: "/api/zero/connectors/:type/manual-grant",
5411
+ path: "/api/zero/connectors/:connectorSlug/manual-grant",
5338
5412
  headers: authHeadersSchema,
5339
- pathParams: external_exports.object({ type: connectorSlugSchema }),
5413
+ pathParams: external_exports.object({ connectorSlug: connectorSlugSchema }),
5340
5414
  body: external_exports.object({
5341
5415
  authMethod: connectorAuthMethodIdSchema,
5342
5416
  agentId: external_exports.uuid().optional(),
@@ -5357,9 +5431,9 @@ var zeroConnectorManualGrantContract = c18.router({
5357
5431
  var zeroConnectorNoAuthGrantContract = c18.router({
5358
5432
  connect: {
5359
5433
  method: "POST",
5360
- path: "/api/zero/connectors/:type/no-auth",
5434
+ path: "/api/zero/connectors/:connectorSlug/no-auth",
5361
5435
  headers: authHeadersSchema,
5362
- pathParams: external_exports.object({ type: connectorSlugSchema }),
5436
+ pathParams: external_exports.object({ connectorSlug: connectorSlugSchema }),
5363
5437
  body: external_exports.object({
5364
5438
  authMethod: connectorAuthMethodIdSchema,
5365
5439
  agentId: external_exports.uuid().optional(),
@@ -5379,9 +5453,9 @@ var zeroConnectorNoAuthGrantContract = c18.router({
5379
5453
  var zeroConnectorOauthDeviceAuthSessionContract = c18.router({
5380
5454
  create: {
5381
5455
  method: "POST",
5382
- path: "/api/zero/connectors/:type/oauth/device/sessions",
5456
+ path: "/api/zero/connectors/:connectorSlug/oauth/device/sessions",
5383
5457
  headers: authHeadersSchema,
5384
- pathParams: external_exports.object({ type: connectorSlugSchema }),
5458
+ pathParams: external_exports.object({ connectorSlug: connectorSlugSchema }),
5385
5459
  body: external_exports.object({
5386
5460
  authMethod: connectorAuthMethodIdSchema,
5387
5461
  agentId: external_exports.uuid().optional(),
@@ -5399,10 +5473,10 @@ var zeroConnectorOauthDeviceAuthSessionContract = c18.router({
5399
5473
  },
5400
5474
  poll: {
5401
5475
  method: "POST",
5402
- path: "/api/zero/connectors/:type/oauth/device/sessions/:sessionId/poll",
5476
+ path: "/api/zero/connectors/:connectorSlug/oauth/device/sessions/:sessionId/poll",
5403
5477
  headers: authHeadersSchema,
5404
5478
  pathParams: external_exports.object({
5405
- type: connectorSlugSchema,
5479
+ connectorSlug: connectorSlugSchema,
5406
5480
  sessionId: external_exports.uuid()
5407
5481
  }),
5408
5482
  body: connectorOauthDeviceAuthSessionPollRequestSchema,
@@ -5420,9 +5494,9 @@ var zeroConnectorOauthDeviceAuthSessionContract = c18.router({
5420
5494
  var zeroConnectorExternalCodeSessionContract = c18.router({
5421
5495
  create: {
5422
5496
  method: "POST",
5423
- path: "/api/zero/connectors/:type/external-code/sessions",
5497
+ path: "/api/zero/connectors/:connectorSlug/external-code/sessions",
5424
5498
  headers: authHeadersSchema,
5425
- pathParams: external_exports.object({ type: connectorSlugSchema }),
5499
+ pathParams: external_exports.object({ connectorSlug: connectorSlugSchema }),
5426
5500
  body: external_exports.object({
5427
5501
  authMethod: connectorAuthMethodIdSchema,
5428
5502
  agentId: external_exports.uuid().optional(),
@@ -5439,10 +5513,10 @@ var zeroConnectorExternalCodeSessionContract = c18.router({
5439
5513
  },
5440
5514
  complete: {
5441
5515
  method: "POST",
5442
- path: "/api/zero/connectors/:type/external-code/sessions/:sessionId/complete",
5516
+ path: "/api/zero/connectors/:connectorSlug/external-code/sessions/:sessionId/complete",
5443
5517
  headers: authHeadersSchema,
5444
5518
  pathParams: external_exports.object({
5445
- type: connectorSlugSchema,
5519
+ connectorSlug: connectorSlugSchema,
5446
5520
  sessionId: external_exports.uuid()
5447
5521
  }),
5448
5522
  body: connectorExternalCodeSessionCompleteRequestSchema,
@@ -5458,7 +5532,9 @@ var zeroConnectorExternalCodeSessionContract = c18.router({
5458
5532
  }
5459
5533
  });
5460
5534
  var connectorSearchItemSchema = external_exports.object({
5535
+ // TODO(#23821): Remove this legacy response field after clients migrate.
5461
5536
  id: connectorSlugSchema,
5537
+ slug: connectorSlugSchema.optional(),
5462
5538
  label: external_exports.string(),
5463
5539
  description: external_exports.string(),
5464
5540
  authMethods: external_exports.array(connectorAuthMethodIdSchema)
@@ -5595,8 +5671,9 @@ var publicConnectorCatalogCategoryMetadataSchema = external_exports.object({
5595
5671
  groups: external_exports.array(publicConnectorCatalogCategoryGroupSchema)
5596
5672
  });
5597
5673
  var publicConnectorCatalogItemSchema = external_exports.object({
5598
- // TODO(#23619): Rename catalog API fields after independent clients migrate.
5674
+ // TODO(#23821): Remove this legacy API field after clients migrate.
5599
5675
  connectorRef: connectorSlugSchema,
5676
+ slug: connectorSlugSchema.optional(),
5600
5677
  label: external_exports.string(),
5601
5678
  description: external_exports.string(),
5602
5679
  icon: publicConnectorCatalogIconSchema,
@@ -5680,8 +5757,9 @@ var publicConnectorCatalogDefaultPolicySchema = external_exports.object({
5680
5757
  unknownPolicy: publicFirewallPolicyValueSchema
5681
5758
  });
5682
5759
  var publicConnectorCatalogPermissionDetailSchema = external_exports.object({
5683
- // TODO(#23619): Rename this catalog API field after clients migrate.
5760
+ // TODO(#23821): Remove this legacy API field after clients migrate.
5684
5761
  connectorRef: connectorSlugSchema,
5762
+ connectorSlug: connectorSlugSchema.optional(),
5685
5763
  label: external_exports.string(),
5686
5764
  icon: publicConnectorCatalogIconSchema,
5687
5765
  permissionCount: external_exports.number().int().nonnegative(),
@@ -5693,8 +5771,7 @@ var publicConnectorCatalogPermissionDetailResponseSchema = external_exports.obje
5693
5771
  permissions: publicConnectorCatalogPermissionDetailSchema
5694
5772
  });
5695
5773
  var connectorCatalogPathParamsSchema = external_exports.object({
5696
- // TODO(#23619): Rename this path parameter and route in a compatible rollout.
5697
- connectorRef: connectorSlugSchema
5774
+ connectorSlug: connectorSlugSchema
5698
5775
  });
5699
5776
  var zeroConnectorCatalogContract = c19.router({
5700
5777
  list: {
@@ -5735,7 +5812,7 @@ var zeroConnectorCatalogContract = c19.router({
5735
5812
  },
5736
5813
  get: {
5737
5814
  method: "GET",
5738
- path: "/api/zero/connector-catalog/:connectorRef",
5815
+ path: "/api/zero/connector-catalog/:connectorSlug",
5739
5816
  headers: authHeadersSchema,
5740
5817
  pathParams: connectorCatalogPathParamsSchema,
5741
5818
  responses: {
@@ -5750,7 +5827,7 @@ var zeroConnectorCatalogContract = c19.router({
5750
5827
  },
5751
5828
  permissions: {
5752
5829
  method: "GET",
5753
- path: "/api/zero/connector-catalog/:connectorRef/permissions",
5830
+ path: "/api/zero/connector-catalog/:connectorSlug/permissions",
5754
5831
  headers: authHeadersSchema,
5755
5832
  pathParams: connectorCatalogPathParamsSchema,
5756
5833
  responses: {
@@ -5773,8 +5850,9 @@ var connectorCheckUrlRequestSchema = external_exports.object({
5773
5850
  mode: external_exports.literal("url"),
5774
5851
  method: external_exports.string().min(1).max(16),
5775
5852
  url: external_exports.string().min(1).max(8192),
5776
- // TODO(#23619): Rename connector-check wire fields after clients migrate.
5853
+ // TODO(#23821): Remove this legacy wire field after clients migrate.
5777
5854
  connectorRef: connectorSlugSchema.optional(),
5855
+ connectorSlug: connectorSlugSchema.optional(),
5778
5856
  environmentName: boundedNameSchema.optional()
5779
5857
  }).strict();
5780
5858
  var connectorCheckEnvironmentRequestSchema = external_exports.object({
@@ -5785,17 +5863,42 @@ var connectorCheckEnvironmentRequestSchema = external_exports.object({
5785
5863
  var connectorCheckRequestSchema = external_exports.discriminatedUnion("mode", [
5786
5864
  connectorCheckUrlRequestSchema,
5787
5865
  connectorCheckEnvironmentRequestSchema
5788
- ]);
5866
+ ]).superRefine((request, ctx) => {
5867
+ if (request.mode === "url" && request.connectorRef !== void 0 && request.connectorSlug !== void 0 && request.connectorRef !== request.connectorSlug) {
5868
+ ctx.addIssue({
5869
+ code: "custom",
5870
+ message: "connectorRef and connectorSlug must match",
5871
+ path: ["connectorSlug"]
5872
+ });
5873
+ }
5874
+ }).transform((request) => {
5875
+ if (request.mode === "environment") {
5876
+ return request;
5877
+ }
5878
+ const { connectorRef, connectorSlug, ...rest } = request;
5879
+ const normalizedConnectorSlug = connectorSlug ?? connectorRef;
5880
+ return {
5881
+ ...rest,
5882
+ ...normalizedConnectorSlug === void 0 ? {} : {
5883
+ connectorRef: normalizedConnectorSlug,
5884
+ connectorSlug: normalizedConnectorSlug
5885
+ }
5886
+ };
5887
+ });
5789
5888
  var connectorCheckIdentitySchema = external_exports.object({
5790
- // TODO(#23619): Rename with the connector-check response contract.
5889
+ // TODO(#23821): Remove this legacy response field after clients migrate.
5791
5890
  connectorRef: connectorSlugSchema,
5891
+ // Capability-gated while supported legacy CLI schemas reject unknown fields.
5892
+ connectorSlug: connectorSlugSchema.optional(),
5792
5893
  label: external_exports.string().min(1),
5793
5894
  visibility: external_exports.enum(["available", "unavailable"]),
5794
5895
  credentialResolution: external_exports.enum(["network-boundary", "none"])
5795
5896
  }).strict();
5796
5897
  var connectorCheckCandidateSchema = external_exports.object({
5797
- // TODO(#23619): Rename with the connector-check response contract.
5898
+ // TODO(#23821): Remove this legacy response field after clients migrate.
5798
5899
  connectorRef: connectorSlugSchema,
5900
+ // Capability-gated while supported legacy CLI schemas reject unknown fields.
5901
+ connectorSlug: connectorSlugSchema.optional(),
5799
5902
  label: external_exports.string().min(1)
5800
5903
  }).strict();
5801
5904
  var connectorCheckNotScopedRunSchema = external_exports.object({ status: external_exports.literal("not-scoped") }).strict();
@@ -5956,10 +6059,9 @@ var connectorOauthCallbackResultSchema = external_exports.discriminatedUnion(
5956
6059
  var connectorsSlugCallbackContract = c21.router({
5957
6060
  callback: {
5958
6061
  method: "GET",
5959
- // TODO(#23619): Rename this path parameter and route compatibly.
5960
- path: "/api/connectors/:type/callback",
6062
+ path: "/api/connectors/:connectorSlug/callback",
5961
6063
  headers: authHeadersSchema,
5962
- pathParams: external_exports.object({ type: connectorSlugSchema }),
6064
+ pathParams: external_exports.object({ connectorSlug: connectorSlugSchema }),
5963
6065
  query: external_exports.object({
5964
6066
  code: external_exports.string().optional(),
5965
6067
  auth_code: external_exports.string().optional(),
@@ -6312,7 +6414,7 @@ async function getZeroConnectorCatalogPermissions(connectorSlug) {
6312
6414
  const config = await getClientConfig();
6313
6415
  const client2 = initClient(zeroConnectorCatalogContract, config);
6314
6416
  const result = await client2.permissions({
6315
- params: { connectorRef: connectorSlug }
6417
+ params: { connectorSlug }
6316
6418
  });
6317
6419
  if (result.status === 200) {
6318
6420
  if (result.body.permissions.connectorRef !== connectorSlug) {
@@ -6346,7 +6448,7 @@ async function getZeroConnector(connectorSlug) {
6346
6448
  const config = await getClientConfig();
6347
6449
  const client2 = initClient(zeroConnectorsBySlugContract, config);
6348
6450
  const result = await client2.get({
6349
- params: { type: connectorSlug }
6451
+ params: { connectorSlug }
6350
6452
  });
6351
6453
  if (result.status === 200) {
6352
6454
  return result.body;
@@ -6360,7 +6462,7 @@ async function connectZeroConnectorManualGrant(connectorSlug, authMethod, values
6360
6462
  const config = await getClientConfig();
6361
6463
  const client2 = initClient(zeroConnectorManualGrantContract, config);
6362
6464
  const result = await client2.connect({
6363
- params: { type: connectorSlug },
6465
+ params: { connectorSlug },
6364
6466
  body: { authMethod, values }
6365
6467
  });
6366
6468
  if (result.status === 200) {
@@ -6419,7 +6521,7 @@ var SESSION_HISTORY_ENCODING_ZSTD = "zstd";
6419
6521
  var SESSION_HISTORY_DOWNLOAD_SOURCE_CONFIGURED_PUBLIC_ENDPOINT = "configured_public_endpoint";
6420
6522
  var SESSION_HISTORY_DOWNLOAD_SOURCE_DEFAULT_R2_ENDPOINT = "default_r2_endpoint";
6421
6523
  var SESSION_HISTORY_GZIP_MIN_BYTES = 64 * 1024;
6422
- var NETWORK_POLICY_REFRESH_CONNECTOR_REFS_MAX = 256;
6524
+ var NETWORK_POLICY_REFRESH_CONNECTOR_SLUGS_MAX = 256;
6423
6525
  var RUNNER_BUILTIN_FIREWALL_RESOLVE_NAMES_MAX = 512;
6424
6526
  var sessionHistoryEncodingSchema = external_exports.enum([
6425
6527
  SESSION_HISTORY_ENCODING_IDENTITY,
@@ -6897,14 +6999,44 @@ var runnersNetworkPolicyRefreshContract = c23.router({
6897
6999
  runId: external_exports.uuid()
6898
7000
  }),
6899
7001
  body: external_exports.object({
6900
- // TODO(#23619): Rename runner wire fields in a compatibility-safe rollout.
6901
- connectorRefs: external_exports.array(connectorSlugSchema).min(1).max(NETWORK_POLICY_REFRESH_CONNECTOR_REFS_MAX)
7002
+ connectorSlugs: external_exports.array(connectorSlugSchema).min(1).max(NETWORK_POLICY_REFRESH_CONNECTOR_SLUGS_MAX).optional(),
7003
+ // TODO(#23827): Remove after every pre-bridge runner has drained.
7004
+ connectorRefs: external_exports.array(connectorSlugSchema).min(1).max(NETWORK_POLICY_REFRESH_CONNECTOR_SLUGS_MAX).optional()
7005
+ }).superRefine((body, context) => {
7006
+ if (body.connectorSlugs === void 0 && body.connectorRefs === void 0) {
7007
+ context.addIssue({
7008
+ code: "custom",
7009
+ path: ["connectorSlugs"],
7010
+ message: "connectorSlugs or connectorRefs is required"
7011
+ });
7012
+ return;
7013
+ }
7014
+ if (body.connectorSlugs !== void 0 && body.connectorRefs !== void 0) {
7015
+ const connectorSlugs = new Set(body.connectorSlugs);
7016
+ const connectorRefs = new Set(body.connectorRefs);
7017
+ if (connectorSlugs.size !== connectorRefs.size || [...connectorSlugs].some((connectorSlug) => {
7018
+ return !connectorRefs.has(connectorSlug);
7019
+ })) {
7020
+ context.addIssue({
7021
+ code: "custom",
7022
+ path: ["connectorSlugs"],
7023
+ message: "must identify the same connectors as connectorRefs"
7024
+ });
7025
+ }
7026
+ }
7027
+ }).transform((body) => {
7028
+ return {
7029
+ connectorSlugs: [
7030
+ ...new Set(body.connectorSlugs ?? body.connectorRefs ?? [])
7031
+ ]
7032
+ };
6902
7033
  }),
6903
7034
  responses: {
6904
7035
  200: external_exports.object({
6905
7036
  refreshes: external_exports.array(
6906
7037
  external_exports.object({
6907
- // TODO(#23619): Keep the response aligned with the request rollout.
7038
+ connectorSlug: connectorSlugSchema,
7039
+ // TODO(#23827): Remove after every pre-bridge runner has drained.
6908
7040
  connectorRef: connectorSlugSchema,
6909
7041
  networkPolicy: networkPolicySchema,
6910
7042
  nextRefreshAt: external_exports.string().datetime({ offset: true }).nullable()
@@ -7618,8 +7750,7 @@ var webhookUsageEventItemSchema = external_exports.object({
7618
7750
  kind: external_exports.enum(["connector", "model", "image"]),
7619
7751
  provider: external_exports.string().min(1).max(100),
7620
7752
  category: external_exports.string().min(1).max(100),
7621
- quantity: external_exports.number().int().min(0),
7622
- grossCredits: external_exports.number().int().min(0).optional()
7753
+ quantity: external_exports.number().int().min(0)
7623
7754
  }).strict();
7624
7755
  var webhookUsageEventContract = c24.router({
7625
7756
  send: {
@@ -8055,7 +8186,7 @@ async function listZeroChatEvents(options) {
8055
8186
  });
8056
8187
  if (result.status === 200) {
8057
8188
  return {
8058
- events: result.body.events,
8189
+ events: result.body.events.filter(isCanonicalChatEventResponse),
8059
8190
  hasHistoryBefore: result.body.hasHistoryBefore ?? false
8060
8191
  };
8061
8192
  }
@@ -9052,8 +9183,9 @@ async function fetchComputerUsePluginContent(commandId) {
9052
9183
  init_esm_shims();
9053
9184
  var c28 = initContract();
9054
9185
  var ZERO_BROWSER_IDLE_LEASE_MINUTES = 10;
9055
- var ZERO_BROWSER_DEFAULT_MAX_CREDITS = 500;
9056
- var ZERO_BROWSER_MAX_CREDITS = 1e5;
9186
+ var ZERO_BROWSER_SCREEN_WIDTH = 1440;
9187
+ var ZERO_BROWSER_MIN_SCREEN_HEIGHT = 320;
9188
+ var ZERO_BROWSER_MAX_SCREEN_HEIGHT = 3456;
9057
9189
  var zeroBrowserStatusSchema = external_exports.enum([
9058
9190
  "creating",
9059
9191
  "active",
@@ -9067,10 +9199,16 @@ var zeroBrowserSuspensionReasonSchema = external_exports.enum([
9067
9199
  "run_end",
9068
9200
  "idle",
9069
9201
  "timeout",
9202
+ // Historical reason kept for rows written before browser billing was removed.
9070
9203
  "budget",
9071
9204
  "provider",
9072
9205
  "reconcile"
9073
9206
  ]);
9207
+ var zeroBrowserScreenSchema = external_exports.object({
9208
+ width: external_exports.literal(ZERO_BROWSER_SCREEN_WIDTH),
9209
+ height: external_exports.number().int().min(ZERO_BROWSER_MIN_SCREEN_HEIGHT).max(ZERO_BROWSER_MAX_SCREEN_HEIGHT),
9210
+ resizable: external_exports.boolean()
9211
+ });
9074
9212
  var zeroBrowserSessionSchema = external_exports.object({
9075
9213
  id: external_exports.uuid(),
9076
9214
  name: external_exports.string().min(1).max(64),
@@ -9079,9 +9217,15 @@ var zeroBrowserSessionSchema = external_exports.object({
9079
9217
  liveUrl: external_exports.url().nullable(),
9080
9218
  proxyCountryCode: external_exports.string().length(2).nullable(),
9081
9219
  timeoutMinutes: external_exports.number().int().positive(),
9220
+ // Deprecated compatibility fields for clients deployed before browser
9221
+ // billing moved to organization concurrency. Remove after that client
9222
+ // version has drained.
9082
9223
  maxCredits: external_exports.number().int().positive(),
9083
9224
  grossCredits: external_exports.number().int().nonnegative(),
9084
9225
  creditsCharged: external_exports.number().int().nonnegative(),
9226
+ // Optional so a newly deployed frontend remains compatible with the
9227
+ // previous API during rollout. New APIs include it for live instances.
9228
+ screen: zeroBrowserScreenSchema.optional(),
9085
9229
  // When Zero reclaims the live provider instance unless somebody leases it
9086
9230
  // again. Null once no provider instance is running.
9087
9231
  idleExpiresAt: external_exports.iso.datetime().nullable(),
@@ -9094,8 +9238,7 @@ var zeroBrowserCreateRequestSchema = external_exports.object({
9094
9238
  name: external_exports.string().trim().min(1).max(64).default("browser"),
9095
9239
  proxyCountryCode: external_exports.string().trim().length(2).transform((value) => {
9096
9240
  return value.toLowerCase();
9097
- }).nullable().default(null),
9098
- maxCredits: external_exports.number().int().min(1).max(ZERO_BROWSER_MAX_CREDITS).default(ZERO_BROWSER_DEFAULT_MAX_CREDITS)
9241
+ }).nullable().default(null)
9099
9242
  });
9100
9243
  var browserIdParamsSchema = external_exports.object({
9101
9244
  browserId: external_exports.uuid()
@@ -9106,6 +9249,9 @@ var browserGetQuerySchema = external_exports.object({
9106
9249
  var browserResponseSchema = external_exports.object({
9107
9250
  browser: zeroBrowserSessionSchema
9108
9251
  });
9252
+ var browserResizeRequestSchema = external_exports.object({
9253
+ aspectRatio: external_exports.number().positive().finite()
9254
+ });
9109
9255
  var browserAuthorizationRequestTokenPathParamsSchema = external_exports.object({
9110
9256
  requestToken: external_exports.string().min(1)
9111
9257
  });
@@ -9128,7 +9274,6 @@ var browserConnectionResponseSchema = browserResponseSchema.extend({
9128
9274
  var commonErrorResponses = {
9129
9275
  400: apiErrorSchema,
9130
9276
  401: apiErrorSchema,
9131
- 402: apiErrorSchema,
9132
9277
  403: apiErrorSchema,
9133
9278
  404: apiErrorSchema,
9134
9279
  409: apiErrorSchema,
@@ -9202,7 +9347,19 @@ var zeroBrowserContract = c28.router({
9202
9347
  200: browserResponseSchema,
9203
9348
  ...commonErrorResponses
9204
9349
  },
9205
- summary: "Resume a suspended browser from its viewer and start billing it"
9350
+ summary: "Resume a suspended browser from its viewer"
9351
+ },
9352
+ resizeById: {
9353
+ method: "POST",
9354
+ path: "/api/zero/browsers/:browserId/resize",
9355
+ headers: authHeadersSchema,
9356
+ pathParams: browserIdParamsSchema,
9357
+ body: browserResizeRequestSchema,
9358
+ responses: {
9359
+ 200: browserResponseSchema,
9360
+ ...commonErrorResponses
9361
+ },
9362
+ summary: "Resize a live browser to match a viewer aspect ratio"
9206
9363
  },
9207
9364
  current: {
9208
9365
  method: "GET",
@@ -11155,8 +11312,9 @@ var zeroWorkflowConnectorReadinessStatusSchema = external_exports.enum([
11155
11312
  "unavailable"
11156
11313
  ]);
11157
11314
  var zeroWorkflowConnectorReadinessEntrySchema = external_exports.object({
11158
- // TODO(#23619): Rename this workflow readiness response field with clients.
11315
+ // TODO(#23821): Remove this legacy response field after clients migrate.
11159
11316
  connectorRef: connectorSlugSchema,
11317
+ connectorSlug: connectorSlugSchema.optional(),
11160
11318
  label: external_exports.string().min(1),
11161
11319
  icon: publicConnectorCatalogIconSchema,
11162
11320
  reason: external_exports.string().min(1),
@@ -13303,8 +13461,6 @@ export {
13303
13461
  fetchComputerUseScreenshot,
13304
13462
  fetchComputerUsePluginContent,
13305
13463
  ZERO_BROWSER_IDLE_LEASE_MINUTES,
13306
- ZERO_BROWSER_DEFAULT_MAX_CREDITS,
13307
- ZERO_BROWSER_MAX_CREDITS,
13308
13464
  zeroBrowserCreateRequestSchema,
13309
13465
  createBrowserAuthorizationRequest,
13310
13466
  createZeroBrowser,
@@ -13345,4 +13501,4 @@ export {
13345
13501
  getHostedSiteFiles,
13346
13502
  getHostedSiteDeployments
13347
13503
  };
13348
- //# sourceMappingURL=chunk-K36BESR5.js.map
13504
+ //# sourceMappingURL=chunk-LYI45KHY.js.map