@vm0/cli 9.232.3 → 9.233.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 (92) hide show
  1. package/{agent-AVPNHYVG.js → agent-ITQAPQGT.js} +5 -5
  2. package/{banking-NYLY2FLQ.js → banking-CXYSYE44.js} +3 -3
  3. package/{chat-YA6XDIHV.js → chat-DM5AFQ7B.js} +5 -9
  4. package/chat-DM5AFQ7B.js.map +1 -0
  5. package/{chunk-GAVYRSET.js → chunk-7JTD7AIA.js} +2 -2
  6. package/{chunk-5GFXRQRU.js → chunk-B6ZJAPVB.js} +2 -2
  7. package/{chunk-64BZLRWP.js → chunk-BH7PHI5M.js} +3 -3
  8. package/{chunk-YN5HSUYS.js → chunk-HXUFPPTO.js} +2 -2
  9. package/{chunk-MAOHSQL6.js → chunk-NLAIKU3D.js} +2 -2
  10. package/{chunk-6KL22BDB.js → chunk-OYOZKWB6.js} +305 -184
  11. package/chunk-OYOZKWB6.js.map +1 -0
  12. package/{chunk-MV6HWPME.js → chunk-U5OQAKXH.js} +4 -4
  13. package/{chunk-KEA6JIHN.js → chunk-UMLJTQH7.js} +420 -85
  14. package/chunk-UMLJTQH7.js.map +1 -0
  15. package/{chunk-XIXVDUFP.js → chunk-VJ5P4QAJ.js} +2 -2
  16. package/{chunk-HHUKGPZD.js → chunk-VZW6OC4W.js} +10 -10
  17. package/{chunk-HHUKGPZD.js.map → chunk-VZW6OC4W.js.map} +1 -1
  18. package/{chunk-4WJVMLVC.js → chunk-WXOV3CZQ.js} +2 -2
  19. package/{chunk-MQTRNAT6.js → chunk-XLKQ7WIW.js} +2 -2
  20. package/{computer-use-3X5M5RGL.js → computer-use-M7SWR7QA.js} +3 -3
  21. package/{connector-JHEB7D55.js → connector-R4HQH75Q.js} +4 -4
  22. package/{credit-GF6XDPVM.js → credit-2XOJWPOH.js} +4 -4
  23. package/{developer-support-ADTYH42Y.js → developer-support-USNK4GWO.js} +3 -3
  24. package/{doctor-CM6AZVGM.js → doctor-E6ORDAE6.js} +7 -7
  25. package/{generate-ZZT3UHHS.js → generate-PFATIIFX.js} +5 -5
  26. package/{github-FPDJGKGM.js → github-LCSDPEK6.js} +3 -3
  27. package/{goal-42VI34RC.js → goal-KDOKT2EA.js} +3 -3
  28. package/{host-6WKESFAV.js → host-ZSYCKBER.js} +3 -3
  29. package/index.js +15 -15
  30. package/{logs-7E2ADFNF.js → logs-RY7I3I4S.js} +8 -8
  31. package/{maps-TYQCFYOO.js → maps-HE54D3MA.js} +3 -3
  32. package/{memory-4R73AL25.js → memory-G7NMNTHC.js} +3 -3
  33. package/{model-H2CDL77N.js → model-HKTREOBY.js} +4 -4
  34. package/{model-provider-MCXZWNBU.js → model-provider-36X74IKF.js} +4 -4
  35. package/{org-3Y7NY5TY.js → org-VW4ZADCY.js} +3 -3
  36. package/package.json +2 -2
  37. package/{phone-DQVVF2BE.js → phone-5SHIRSUD.js} +3 -3
  38. package/{preference-U2LGIVKP.js → preference-LHGPFRBJ.js} +3 -3
  39. package/{relationship-EEY57HBS.js → relationship-TQJH53MK.js} +3 -3
  40. package/{resource-Q3LWFNO3.js → resource-2UV544CI.js} +4 -4
  41. package/{search-FMZJKWSH.js → search-H46ZLLY4.js} +8 -8
  42. package/{secret-XFTEQB2H.js → secret-KRNDARFJ.js} +4 -4
  43. package/{slack-2FFRWU3R.js → slack-WTYBGH5B.js} +3 -3
  44. package/{telegram-TZJGEYXE.js → telegram-3WTFY27R.js} +3 -3
  45. package/{variable-6VHRKUL7.js → variable-XXTPDYCZ.js} +3 -3
  46. package/{video-DFN4OQJQ.js → video-QLPURUR7.js} +2 -2
  47. package/{web-Z77NTWWH.js → web-SLUE6TKR.js} +3 -3
  48. package/{whoami-2SZ22SSP.js → whoami-PA46AH6B.js} +5 -5
  49. package/{workflow-FKKKHZLK.js → workflow-3MGOOZEN.js} +3 -3
  50. package/zero.js +33 -33
  51. package/chat-YA6XDIHV.js.map +0 -1
  52. package/chunk-6KL22BDB.js.map +0 -1
  53. package/chunk-KEA6JIHN.js.map +0 -1
  54. /package/{agent-AVPNHYVG.js.map → agent-ITQAPQGT.js.map} +0 -0
  55. /package/{banking-NYLY2FLQ.js.map → banking-CXYSYE44.js.map} +0 -0
  56. /package/{chunk-GAVYRSET.js.map → chunk-7JTD7AIA.js.map} +0 -0
  57. /package/{chunk-5GFXRQRU.js.map → chunk-B6ZJAPVB.js.map} +0 -0
  58. /package/{chunk-64BZLRWP.js.map → chunk-BH7PHI5M.js.map} +0 -0
  59. /package/{chunk-YN5HSUYS.js.map → chunk-HXUFPPTO.js.map} +0 -0
  60. /package/{chunk-MAOHSQL6.js.map → chunk-NLAIKU3D.js.map} +0 -0
  61. /package/{chunk-MV6HWPME.js.map → chunk-U5OQAKXH.js.map} +0 -0
  62. /package/{chunk-XIXVDUFP.js.map → chunk-VJ5P4QAJ.js.map} +0 -0
  63. /package/{chunk-4WJVMLVC.js.map → chunk-WXOV3CZQ.js.map} +0 -0
  64. /package/{chunk-MQTRNAT6.js.map → chunk-XLKQ7WIW.js.map} +0 -0
  65. /package/{computer-use-3X5M5RGL.js.map → computer-use-M7SWR7QA.js.map} +0 -0
  66. /package/{connector-JHEB7D55.js.map → connector-R4HQH75Q.js.map} +0 -0
  67. /package/{credit-GF6XDPVM.js.map → credit-2XOJWPOH.js.map} +0 -0
  68. /package/{developer-support-ADTYH42Y.js.map → developer-support-USNK4GWO.js.map} +0 -0
  69. /package/{doctor-CM6AZVGM.js.map → doctor-E6ORDAE6.js.map} +0 -0
  70. /package/{generate-ZZT3UHHS.js.map → generate-PFATIIFX.js.map} +0 -0
  71. /package/{github-FPDJGKGM.js.map → github-LCSDPEK6.js.map} +0 -0
  72. /package/{goal-42VI34RC.js.map → goal-KDOKT2EA.js.map} +0 -0
  73. /package/{host-6WKESFAV.js.map → host-ZSYCKBER.js.map} +0 -0
  74. /package/{logs-7E2ADFNF.js.map → logs-RY7I3I4S.js.map} +0 -0
  75. /package/{maps-TYQCFYOO.js.map → maps-HE54D3MA.js.map} +0 -0
  76. /package/{memory-4R73AL25.js.map → memory-G7NMNTHC.js.map} +0 -0
  77. /package/{model-H2CDL77N.js.map → model-HKTREOBY.js.map} +0 -0
  78. /package/{model-provider-MCXZWNBU.js.map → model-provider-36X74IKF.js.map} +0 -0
  79. /package/{org-3Y7NY5TY.js.map → org-VW4ZADCY.js.map} +0 -0
  80. /package/{phone-DQVVF2BE.js.map → phone-5SHIRSUD.js.map} +0 -0
  81. /package/{preference-U2LGIVKP.js.map → preference-LHGPFRBJ.js.map} +0 -0
  82. /package/{relationship-EEY57HBS.js.map → relationship-TQJH53MK.js.map} +0 -0
  83. /package/{resource-Q3LWFNO3.js.map → resource-2UV544CI.js.map} +0 -0
  84. /package/{search-FMZJKWSH.js.map → search-H46ZLLY4.js.map} +0 -0
  85. /package/{secret-XFTEQB2H.js.map → secret-KRNDARFJ.js.map} +0 -0
  86. /package/{slack-2FFRWU3R.js.map → slack-WTYBGH5B.js.map} +0 -0
  87. /package/{telegram-TZJGEYXE.js.map → telegram-3WTFY27R.js.map} +0 -0
  88. /package/{variable-6VHRKUL7.js.map → variable-XXTPDYCZ.js.map} +0 -0
  89. /package/{video-DFN4OQJQ.js.map → video-QLPURUR7.js.map} +0 -0
  90. /package/{web-Z77NTWWH.js.map → web-SLUE6TKR.js.map} +0 -0
  91. /package/{whoami-2SZ22SSP.js.map → whoami-PA46AH6B.js.map} +0 -0
  92. /package/{workflow-FKKKHZLK.js.map → workflow-3MGOOZEN.js.map} +0 -0
@@ -14,7 +14,7 @@ import {
14
14
  headersWithCliClientHeaders,
15
15
  initClient,
16
16
  initContract
17
- } from "./chunk-MQTRNAT6.js";
17
+ } from "./chunk-XLKQ7WIW.js";
18
18
  import {
19
19
  init_esm_shims
20
20
  } from "./chunk-DIRAZ3YX.js";
@@ -375,14 +375,12 @@ var VM0_MODEL_TO_PROVIDER = {
375
375
  vendor: "anthropic"
376
376
  },
377
377
  "glm-5.2": {
378
- concreteType: "openrouter-api-key",
379
- vendor: "openrouter",
380
- apiModel: "z-ai/glm-5.2"
378
+ concreteType: "zai-api-key",
379
+ vendor: "zai"
381
380
  },
382
381
  "glm-5.1": {
383
- concreteType: "openrouter-api-key",
384
- vendor: "openrouter",
385
- apiModel: "z-ai/glm-5.1"
382
+ concreteType: "zai-api-key",
383
+ vendor: "zai"
386
384
  },
387
385
  "mimo-v2.5": {
388
386
  concreteType: "openrouter-api-key",
@@ -1198,7 +1196,8 @@ var orgTierSchema = external_exports.enum([
1198
1196
  "limited-free-1",
1199
1197
  "pro-suspend",
1200
1198
  "pro",
1201
- "team"
1199
+ "team",
1200
+ "custom"
1202
1201
  ]);
1203
1202
  var ORG_TIER_SET = new Set(orgTierSchema.options);
1204
1203
  var orgSlugSchema = external_exports.string().min(3, "Org slug must be at least 3 characters").max(64, "Org slug must be at most 64 characters").regex(
@@ -1770,7 +1769,7 @@ var creditGrantSchema = external_exports.object({
1770
1769
  });
1771
1770
  var scheduledBillingChangeSchema = external_exports.object({
1772
1771
  type: external_exports.enum(["cancel", "downgrade"]),
1773
- targetTier: external_exports.enum(["pro-suspend", "pro", "team"]).nullable(),
1772
+ targetTier: external_exports.enum(["limited-free-1", "pro-suspend", "pro", "team"]).nullable(),
1774
1773
  effectiveDate: external_exports.string().nullable()
1775
1774
  });
1776
1775
  var concurrencySubscriptionSchema = external_exports.object({
@@ -1779,6 +1778,18 @@ var concurrencySubscriptionSchema = external_exports.object({
1779
1778
  currentPeriodEnd: external_exports.string().nullable(),
1780
1779
  cancelAtPeriodEnd: external_exports.boolean()
1781
1780
  });
1781
+ var usageAllowanceWindowSchema = external_exports.object({
1782
+ kind: external_exports.enum(["short", "weekly"]),
1783
+ windowSeconds: external_exports.number().int().positive(),
1784
+ unitLimit: external_exports.number(),
1785
+ consumedUnits: external_exports.number(),
1786
+ remainingUnits: external_exports.number(),
1787
+ startsAt: external_exports.string().nullable(),
1788
+ expiresAt: external_exports.string().nullable()
1789
+ });
1790
+ var usageAllowanceSchema = external_exports.object({
1791
+ windows: external_exports.array(usageAllowanceWindowSchema)
1792
+ });
1782
1793
  var billingStatusResponseSchema = external_exports.object({
1783
1794
  tier: external_exports.string(),
1784
1795
  credits: external_exports.number(),
@@ -1793,7 +1804,8 @@ var billingStatusResponseSchema = external_exports.object({
1793
1804
  creditBreakdown: external_exports.array(creditBreakdownSegmentSchema),
1794
1805
  creditGrants: external_exports.array(creditGrantSchema),
1795
1806
  concurrencyLimit: external_exports.number().int().nonnegative(),
1796
- concurrencySubscriptions: external_exports.array(concurrencySubscriptionSchema)
1807
+ concurrencySubscriptions: external_exports.array(concurrencySubscriptionSchema),
1808
+ usageAllowance: usageAllowanceSchema.nullable().optional()
1797
1809
  });
1798
1810
  var checkoutResponseSchema = external_exports.object({
1799
1811
  url: external_exports.string()
@@ -2078,7 +2090,7 @@ var zeroBillingInvoicesContract = c9.router({
2078
2090
  }
2079
2091
  });
2080
2092
  var downgradeRequestSchema = external_exports.object({
2081
- targetTier: external_exports.enum(["pro-suspend", "pro"]),
2093
+ targetTier: external_exports.enum(["limited-free-1", "pro-suspend", "pro"]),
2082
2094
  returnUrl: external_exports.string().url().optional()
2083
2095
  });
2084
2096
  var downgradeResponseSchema = external_exports.union([
@@ -5388,7 +5400,6 @@ var zeroGoalsContract = c14.router({
5388
5400
 
5389
5401
  // ../../packages/api-contracts/src/contracts/chat-threads.ts
5390
5402
  var c15 = initContract();
5391
- var MODEL_FIRST_SELECTION_PROVIDER_ID = "00000000-0000-4000-8000-000000000000";
5392
5403
  var attachFileSchema = external_exports.object({
5393
5404
  id: external_exports.string(),
5394
5405
  filename: external_exports.string(),
@@ -5430,13 +5441,27 @@ var artifactItemSchema = external_exports.object({
5430
5441
  filename: external_exports.string(),
5431
5442
  contentType: external_exports.string(),
5432
5443
  url: external_exports.string(),
5444
+ previewImageUrl: external_exports.string().optional(),
5433
5445
  createdAt: external_exports.string(),
5434
5446
  artifactKind: hostedArtifactKindSchema.optional(),
5435
5447
  googleDriveSync: chatThreadArtifactGoogleDriveSyncSchema.optional()
5436
5448
  });
5449
+ var artifactsListQuerySchema = external_exports.object({
5450
+ limit: external_exports.coerce.number().int().positive().max(1e4).optional(),
5451
+ cursor: external_exports.string().optional()
5452
+ });
5437
5453
  var artifactsListResponseSchema = external_exports.object({
5438
5454
  artifacts: external_exports.array(artifactItemSchema),
5439
- truncated: external_exports.boolean()
5455
+ /**
5456
+ * True when more artifacts exist beyond this page. Retained for backward
5457
+ * compatibility with older frontend bundles that read it; new clients follow
5458
+ * `nextCursor` instead.
5459
+ */
5460
+ truncated: external_exports.boolean(),
5461
+ /**
5462
+ * Opaque cursor for the next page, or null when this is the last page.
5463
+ */
5464
+ nextCursor: external_exports.string().nullable()
5440
5465
  });
5441
5466
  var htmlArtifactEditSnapshotQuerySchema = external_exports.object({
5442
5467
  url: external_exports.string().url()
@@ -5680,21 +5705,106 @@ var chatThreadDraftSchema = external_exports.object({
5680
5705
  draftContent: external_exports.string().nullable(),
5681
5706
  draftAttachments: external_exports.array(persistedAttachmentSchema).nullable()
5682
5707
  });
5683
- var modelSelectionRequestSchema = external_exports.object({
5684
- modelProviderId: external_exports.string().uuid(),
5685
- selectedModel: external_exports.string().min(1)
5686
- }).superRefine((value, ctx) => {
5687
- if (value.modelProviderId === MODEL_FIRST_SELECTION_PROVIDER_ID && !isSupportedRunModel(value.selectedModel)) {
5708
+ var selectedModelRequestSchema = external_exports.string().min(1).superRefine((value, ctx) => {
5709
+ if (!isSupportedRunModel(value)) {
5688
5710
  ctx.addIssue({
5689
5711
  code: external_exports.ZodIssueCode.custom,
5690
- path: ["selectedModel"],
5691
5712
  message: "Invalid model selection"
5692
5713
  });
5693
5714
  }
5694
5715
  });
5716
+ function isRecord(value) {
5717
+ return typeof value === "object" && value !== null;
5718
+ }
5719
+ function legacyModelSelectionModel(value) {
5720
+ if (value === null) {
5721
+ return null;
5722
+ }
5723
+ if (!isRecord(value)) {
5724
+ return void 0;
5725
+ }
5726
+ const selectedModel = value.selectedModel;
5727
+ return typeof selectedModel === "string" ? selectedModel : void 0;
5728
+ }
5729
+ function normalizeLegacyModelSelectionInput(value, options) {
5730
+ if (!isRecord(value) || "model" in value || !("modelSelection" in value)) {
5731
+ return value;
5732
+ }
5733
+ const legacyModelSelection = legacyModelSelectionModel(value.modelSelection);
5734
+ if (legacyModelSelection === void 0 || legacyModelSelection === null && !options.allowNull) {
5735
+ return value;
5736
+ }
5737
+ return { ...value, model: legacyModelSelection };
5738
+ }
5739
+ var chatThreadCreateBodySchema = external_exports.preprocess(
5740
+ (value) => {
5741
+ return normalizeLegacyModelSelectionInput(value, { allowNull: false });
5742
+ },
5743
+ external_exports.object({
5744
+ agentId: external_exports.string().min(1),
5745
+ clientThreadId: external_exports.string().uuid().optional(),
5746
+ eventId: chatThreadEventIdSchema.optional(),
5747
+ /**
5748
+ * Selected model id. The API resolves the effective model provider from org
5749
+ * policy and available credentials.
5750
+ */
5751
+ model: selectedModelRequestSchema,
5752
+ title: external_exports.string().optional()
5753
+ })
5754
+ );
5755
+ var chatThreadModelSelectionUpdateBodySchema = external_exports.preprocess(
5756
+ (value) => {
5757
+ return normalizeLegacyModelSelectionInput(value, { allowNull: true });
5758
+ },
5759
+ external_exports.object({
5760
+ /**
5761
+ * Selected model id, or null to clear the thread's selected model.
5762
+ */
5763
+ model: selectedModelRequestSchema.nullable(),
5764
+ codexServiceTier: codexServiceTierSchema.nullable().optional(),
5765
+ eventId: chatThreadEventIdSchema.optional()
5766
+ })
5767
+ );
5695
5768
  var chatRunOptionsRequestSchema = external_exports.object({
5696
5769
  codexServiceTier: codexServiceTierSchema.optional()
5697
5770
  });
5771
+ var chatMessageNormalSendBodySchema = external_exports.preprocess(
5772
+ (value) => {
5773
+ return normalizeLegacyModelSelectionInput(value, { allowNull: false });
5774
+ },
5775
+ external_exports.object({
5776
+ agentId: external_exports.string().min(1),
5777
+ prompt: external_exports.string().min(1),
5778
+ threadId: external_exports.string().optional(),
5779
+ clientThreadId: external_exports.string().uuid().optional(),
5780
+ chatThreadEventId: chatThreadEventIdSchema.optional(),
5781
+ // Client-generated UUID for the sort touch created by direct user sends.
5782
+ // Lets event-sourced clients reconcile optimistic sidebar recency by id.
5783
+ chatThreadSortEventId: chatThreadEventIdSchema.optional(),
5784
+ /**
5785
+ * Selected model id. The API resolves the effective provider from org
5786
+ * policy and available credentials. Existing threads may omit it to
5787
+ * reuse the thread's persisted model.
5788
+ */
5789
+ model: selectedModelRequestSchema.optional(),
5790
+ runOptions: chatRunOptionsRequestSchema.optional(),
5791
+ generationTemplate: generationTemplateRequestSchema.optional(),
5792
+ computerUseHostId: external_exports.string().uuid().nullable().optional(),
5793
+ // Optional for backward compatibility: older clients that omit this field
5794
+ // still trigger title generation (server guards with !== false, not === true).
5795
+ hasTextContent: external_exports.boolean().optional(),
5796
+ attachFiles: external_exports.array(attachFileSchema).optional(),
5797
+ // Client-generated UUID used as the user message's primary key.
5798
+ // Lets the client render an optimistic row and reconcile with the
5799
+ // server row by id — no temp-id swap, no React remount.
5800
+ clientMessageId: external_exports.string().uuid().optional(),
5801
+ // Preview evaluation escape hatch: when enabled, the request asks the
5802
+ // runner to bypass preview mock CLIs and use the real agent runtime.
5803
+ realAgentInPreview: external_exports.boolean().optional(),
5804
+ revokesMessageId: external_exports.string().min(1).optional(),
5805
+ interruptsRunId: external_exports.undefined().optional()
5806
+ })
5807
+ );
5698
5808
  var chatThreadsContract = c15.router({
5699
5809
  snapshot: {
5700
5810
  method: "GET",
@@ -5742,13 +5852,7 @@ var chatThreadsContract = c15.router({
5742
5852
  method: "POST",
5743
5853
  path: "/api/zero/chat-threads",
5744
5854
  headers: authHeadersSchema,
5745
- body: external_exports.object({
5746
- agentId: external_exports.string().min(1),
5747
- clientThreadId: external_exports.string().uuid().optional(),
5748
- eventId: chatThreadEventIdSchema.optional(),
5749
- modelSelection: modelSelectionRequestSchema,
5750
- title: external_exports.string().optional()
5751
- }),
5855
+ body: chatThreadCreateBodySchema,
5752
5856
  responses: {
5753
5857
  201: external_exports.object({
5754
5858
  id: external_exports.string(),
@@ -5992,11 +6096,7 @@ var chatThreadModelSelectionContract = c15.router({
5992
6096
  path: "/api/zero/chat-threads/:id/model-selection",
5993
6097
  headers: authHeadersSchema,
5994
6098
  pathParams: chatThreadIdPathParamsSchema,
5995
- body: external_exports.object({
5996
- modelSelection: modelSelectionRequestSchema.nullable(),
5997
- codexServiceTier: codexServiceTierSchema.nullable().optional(),
5998
- eventId: chatThreadEventIdSchema.optional()
5999
- }),
6099
+ body: chatThreadModelSelectionUpdateBodySchema,
6000
6100
  responses: {
6001
6101
  204: c15.noBody(),
6002
6102
  400: apiErrorSchema,
@@ -6033,42 +6133,7 @@ var chatMessagesContract = c15.router({
6033
6133
  path: "/api/zero/chat/messages",
6034
6134
  headers: authHeadersSchema,
6035
6135
  body: external_exports.union([
6036
- external_exports.object({
6037
- agentId: external_exports.string().min(1),
6038
- prompt: external_exports.string().min(1),
6039
- threadId: external_exports.string().optional(),
6040
- clientThreadId: external_exports.string().uuid().optional(),
6041
- chatThreadEventId: chatThreadEventIdSchema.optional(),
6042
- // Client-generated UUID for the sort touch created by direct user sends.
6043
- // Lets event-sourced clients reconcile optimistic sidebar recency by id.
6044
- chatThreadSortEventId: chatThreadEventIdSchema.optional(),
6045
- modelProvider: external_exports.string().optional(),
6046
- /**
6047
- * Per-run model override. This does not mutate the thread's selected
6048
- * model; thread model changes are persisted through
6049
- * `chatThreadModelSelectionContract.update`.
6050
- *
6051
- * When omitted, the run resolves from the thread's persisted
6052
- * `selected_model`.
6053
- */
6054
- modelSelection: modelSelectionRequestSchema.nullable().optional(),
6055
- runOptions: chatRunOptionsRequestSchema.optional(),
6056
- generationTemplate: generationTemplateRequestSchema.optional(),
6057
- computerUseHostId: external_exports.string().uuid().nullable().optional(),
6058
- // Optional for backward compatibility: older clients that omit this field
6059
- // still trigger title generation (server guards with !== false, not === true).
6060
- hasTextContent: external_exports.boolean().optional(),
6061
- attachFiles: external_exports.array(attachFileSchema).optional(),
6062
- // Client-generated UUID used as the user message's primary key.
6063
- // Lets the client render an optimistic row and reconcile with the
6064
- // server row by id — no temp-id swap, no React remount.
6065
- clientMessageId: external_exports.string().uuid().optional(),
6066
- // Preview evaluation escape hatch: when enabled, the request asks the
6067
- // runner to bypass preview mock CLIs and use the real agent runtime.
6068
- realAgentInPreview: external_exports.boolean().optional(),
6069
- revokesMessageId: external_exports.string().min(1).optional(),
6070
- interruptsRunId: external_exports.undefined().optional()
6071
- }),
6136
+ chatMessageNormalSendBodySchema,
6072
6137
  external_exports.object({
6073
6138
  agentId: external_exports.string().min(1),
6074
6139
  threadId: external_exports.string().min(1),
@@ -6078,8 +6143,7 @@ var chatMessagesContract = c15.router({
6078
6143
  clientThreadId: external_exports.undefined().optional(),
6079
6144
  chatThreadEventId: external_exports.undefined().optional(),
6080
6145
  chatThreadSortEventId: external_exports.undefined().optional(),
6081
- modelProvider: external_exports.undefined().optional(),
6082
- modelSelection: external_exports.undefined().optional(),
6146
+ model: external_exports.undefined().optional(),
6083
6147
  runOptions: external_exports.undefined().optional(),
6084
6148
  generationTemplate: external_exports.undefined().optional(),
6085
6149
  computerUseHostId: external_exports.undefined().optional(),
@@ -6097,8 +6161,7 @@ var chatMessagesContract = c15.router({
6097
6161
  clientThreadId: external_exports.undefined().optional(),
6098
6162
  chatThreadEventId: external_exports.undefined().optional(),
6099
6163
  chatThreadSortEventId: external_exports.undefined().optional(),
6100
- modelProvider: external_exports.undefined().optional(),
6101
- modelSelection: external_exports.undefined().optional(),
6164
+ model: external_exports.undefined().optional(),
6102
6165
  runOptions: external_exports.undefined().optional(),
6103
6166
  generationTemplate: external_exports.undefined().optional(),
6104
6167
  computerUseHostId: external_exports.undefined().optional(),
@@ -6314,12 +6377,13 @@ var artifactsContract = c15.router({
6314
6377
  method: "GET",
6315
6378
  path: "/api/zero/artifacts",
6316
6379
  headers: authHeadersSchema,
6380
+ query: artifactsListQuerySchema,
6317
6381
  responses: {
6318
6382
  200: artifactsListResponseSchema,
6319
6383
  401: apiErrorSchema,
6320
6384
  403: apiErrorSchema
6321
6385
  },
6322
- summary: "List all generated artifacts for the caller's current organization (bulk, capped)"
6386
+ summary: "List generated artifacts for the caller's current organization (keyset-paginated)"
6323
6387
  }
6324
6388
  });
6325
6389
 
@@ -23692,12 +23756,12 @@ async function updateZeroChatThreadModelSelection(options) {
23692
23756
  const client = initClient(chatThreadModelSelectionContract, config);
23693
23757
  const result = await client.update({
23694
23758
  params: { id: options.threadId },
23695
- body: { modelSelection: options.modelSelection }
23759
+ body: { model: options.model }
23696
23760
  });
23697
23761
  if (result.status === 204) {
23698
23762
  return {
23699
23763
  threadId: options.threadId,
23700
- selectedModel: options.modelSelection?.selectedModel ?? null
23764
+ selectedModel: options.model
23701
23765
  };
23702
23766
  }
23703
23767
  handleError(result, "Failed to update chat thread model");
@@ -24203,7 +24267,11 @@ var computerUseHostListResponseSchema = external_exports.object({
24203
24267
  var computerUseHostDeleteResponseSchema = external_exports.object({
24204
24268
  ok: external_exports.literal(true)
24205
24269
  });
24206
- var computerUseAuthorizationSourceSchema = external_exports.enum(["chat", "slack"]);
24270
+ var computerUseAuthorizationSourceSchema = external_exports.enum([
24271
+ "chat",
24272
+ "slack",
24273
+ "teams"
24274
+ ]);
24207
24275
  var computerUseAuthorizationRequestCreateBodySchema = external_exports.object({});
24208
24276
  var computerUseAuthorizationRequestCreateResponseSchema = external_exports.object({
24209
24277
  authorizationUrl: external_exports.string().url(),
@@ -24706,7 +24774,7 @@ function authenticatedJsonHeaders(token) {
24706
24774
  }
24707
24775
  return headers;
24708
24776
  }
24709
- function isRecord(value) {
24777
+ function isRecord2(value) {
24710
24778
  return typeof value === "object" && value !== null && !Array.isArray(value);
24711
24779
  }
24712
24780
  async function parseErrorBody(response) {
@@ -24714,7 +24782,7 @@ async function parseErrorBody(response) {
24714
24782
  let code = response.status === 404 ? "NOT_FOUND" : "UNKNOWN";
24715
24783
  try {
24716
24784
  const body = await response.json();
24717
- if (isRecord(body) && isRecord(body.error)) {
24785
+ if (isRecord2(body) && isRecord2(body.error)) {
24718
24786
  if (typeof body.error.message === "string") {
24719
24787
  message = body.error.message;
24720
24788
  }
@@ -24763,7 +24831,7 @@ function authenticatedJsonHeaders2(token) {
24763
24831
  }
24764
24832
  return headers;
24765
24833
  }
24766
- function isRecord2(value) {
24834
+ function isRecord3(value) {
24767
24835
  return typeof value === "object" && value !== null && !Array.isArray(value);
24768
24836
  }
24769
24837
  async function parseErrorBody2(response) {
@@ -24771,7 +24839,7 @@ async function parseErrorBody2(response) {
24771
24839
  let code = response.status === 404 ? "NOT_FOUND" : "UNKNOWN";
24772
24840
  try {
24773
24841
  const body = await response.json();
24774
- if (isRecord2(body) && isRecord2(body.error)) {
24842
+ if (isRecord3(body) && isRecord3(body.error)) {
24775
24843
  if (typeof body.error.message === "string") {
24776
24844
  message = body.error.message;
24777
24845
  }
@@ -27465,7 +27533,12 @@ var relationshipItemKindSchema = external_exports.enum([
27465
27533
  "preference",
27466
27534
  "open_loop"
27467
27535
  ]);
27468
- var relationshipProviderSchema = external_exports.enum(["gmail", "slack"]);
27536
+ var relationshipProviderSchema = external_exports.enum([
27537
+ "gmail",
27538
+ "slack",
27539
+ "github",
27540
+ "notion"
27541
+ ]);
27469
27542
  var relationshipEntitySchema = external_exports.object({
27470
27543
  id: external_exports.string().uuid(),
27471
27544
  type: relationshipEntityTypeSchema,
@@ -27702,7 +27775,12 @@ var memoryFileContentSchema = external_exports.object({
27702
27775
  path: external_exports.string(),
27703
27776
  content: external_exports.string()
27704
27777
  });
27705
- var memorySourceProviderSchema = external_exports.enum(["gmail", "slack"]);
27778
+ var memorySourceProviderSchema = external_exports.enum([
27779
+ "gmail",
27780
+ "slack",
27781
+ "github",
27782
+ "notion"
27783
+ ]);
27706
27784
  var memoryRecallItemKindSchema = external_exports.enum([
27707
27785
  "key_fact",
27708
27786
  "preference",
@@ -27731,7 +27809,17 @@ var memorySourceCompactMetadataSchema = external_exports.object({
27731
27809
  messageTs: external_exports.string().optional(),
27732
27810
  senderId: external_exports.string().optional(),
27733
27811
  mailboxEmail: external_exports.string().optional(),
27734
- direction: memorySourceDirectionSchema.optional()
27812
+ direction: memorySourceDirectionSchema.optional(),
27813
+ githubRepository: external_exports.string().optional(),
27814
+ githubSubjectKind: external_exports.enum(["issue", "pull_request"]).optional(),
27815
+ githubSubjectNumber: external_exports.number().int().positive().optional(),
27816
+ githubIssueCommentId: external_exports.string().optional(),
27817
+ githubActorLogin: external_exports.string().optional(),
27818
+ notionWorkspaceName: external_exports.string().nullable().optional(),
27819
+ notionPageId: external_exports.string().optional(),
27820
+ notionEventFamily: external_exports.enum(["new_child_page", "new_database_item", "page_content_updated"]).optional(),
27821
+ notionEventType: external_exports.enum(["page.created", "page.content_updated", "page.properties_updated"]).optional(),
27822
+ notionParentTitle: external_exports.string().nullable().optional()
27735
27823
  });
27736
27824
  var memorySourceMetadataSchema = memorySourceCompactMetadataSchema.extend({
27737
27825
  messageId: external_exports.string().nullable().optional(),
@@ -27741,12 +27829,36 @@ var memorySourceMetadataSchema = memorySourceCompactMetadataSchema.extend({
27741
27829
  from: external_exports.string().nullable().optional(),
27742
27830
  to: external_exports.array(external_exports.string()).optional(),
27743
27831
  cc: external_exports.array(external_exports.string()).optional(),
27832
+ githubInstallationId: external_exports.string().optional(),
27833
+ githubRemoteInstallationId: external_exports.string().optional(),
27834
+ githubSubjectUrl: external_exports.string().optional(),
27835
+ githubIssueCommentId: external_exports.string().optional(),
27836
+ githubActorId: external_exports.string().optional(),
27837
+ githubAuthorId: external_exports.string().optional(),
27838
+ githubAuthorLogin: external_exports.string().optional(),
27839
+ githubLabels: external_exports.array(external_exports.string()).optional(),
27840
+ notionWorkspaceId: external_exports.string().optional(),
27841
+ notionPageUrl: external_exports.string().nullable().optional(),
27842
+ notionLastEditedTime: external_exports.string().nullable().optional(),
27843
+ notionEventId: external_exports.string().optional(),
27844
+ notionScopeType: external_exports.enum(["page", "data_source"]).optional(),
27845
+ notionScopeId: external_exports.string().optional(),
27846
+ notionParentUrl: external_exports.string().nullable().optional(),
27847
+ notionAuthorIds: external_exports.array(external_exports.string()).optional(),
27744
27848
  reason: external_exports.string().optional()
27745
27849
  }).passthrough();
27746
27850
  var memorySourceBaseSchema = external_exports.object({
27747
27851
  id: external_exports.string().uuid(),
27748
27852
  provider: memorySourceProviderSchema,
27749
- sourceType: external_exports.enum(["gmail_message", "slack_message"]),
27853
+ sourceType: external_exports.enum([
27854
+ "gmail_message",
27855
+ "slack_message",
27856
+ "github_issue",
27857
+ "github_pull_request",
27858
+ "github_issue_comment",
27859
+ "notion_page",
27860
+ "notion_page_event"
27861
+ ]),
27750
27862
  title: external_exports.string().nullable(),
27751
27863
  occurredAt: external_exports.string().nullable(),
27752
27864
  createdAt: external_exports.string(),
@@ -27872,6 +27984,106 @@ var slackMemoryBackfillRequestSchema = external_exports.object({
27872
27984
  includePrivateChannels: external_exports.boolean(),
27873
27985
  includeDirectMessages: external_exports.boolean()
27874
27986
  });
27987
+ var sourceBackfillStatusSchema = external_exports.enum([
27988
+ "idle",
27989
+ "pending",
27990
+ "running",
27991
+ "stopped",
27992
+ "done",
27993
+ "failed"
27994
+ ]);
27995
+ var sourceBackfillSchema = external_exports.object({
27996
+ status: sourceBackfillStatusSchema,
27997
+ estimatedTotal: external_exports.number().int().nonnegative().nullable(),
27998
+ scannedCount: external_exports.number().int().nonnegative(),
27999
+ recordedCount: external_exports.number().int().nonnegative(),
28000
+ lastError: external_exports.string().nullable(),
28001
+ updatedAt: external_exports.string().nullable(),
28002
+ completedAt: external_exports.string().nullable()
28003
+ });
28004
+ var githubTrustedContributorSchema = external_exports.object({
28005
+ githubUserId: external_exports.string().optional(),
28006
+ login: external_exports.string().optional(),
28007
+ email: external_exports.string().email().optional()
28008
+ });
28009
+ var githubMemoryRepositoryConfigSchema = external_exports.object({
28010
+ id: external_exports.number().int().optional(),
28011
+ name: external_exports.string().optional(),
28012
+ fullName: external_exports.string().min(1),
28013
+ defaultBranch: external_exports.string().nullable().optional(),
28014
+ selected: external_exports.boolean(),
28015
+ includeIssues: external_exports.boolean().default(true),
28016
+ includePullRequests: external_exports.boolean().default(true),
28017
+ includeComments: external_exports.boolean().default(true),
28018
+ trustedContributors: external_exports.array(githubTrustedContributorSchema).default([])
28019
+ });
28020
+ var githubMemoryConfigureRequestSchema = external_exports.object({
28021
+ repositories: external_exports.array(githubMemoryRepositoryConfigSchema).max(100)
28022
+ });
28023
+ var githubMemoryBackfillRequestSchema = external_exports.object({
28024
+ days: external_exports.union([external_exports.literal(30), external_exports.literal(90), external_exports.literal(180), external_exports.literal(365)])
28025
+ });
28026
+ var githubMemoryRepositoryResourceSchema = external_exports.object({
28027
+ id: external_exports.number().int(),
28028
+ name: external_exports.string(),
28029
+ fullName: external_exports.string(),
28030
+ private: external_exports.boolean(),
28031
+ defaultBranch: external_exports.string().nullable(),
28032
+ selected: external_exports.boolean(),
28033
+ includeIssues: external_exports.boolean(),
28034
+ includePullRequests: external_exports.boolean(),
28035
+ includeComments: external_exports.boolean(),
28036
+ trustedContributors: external_exports.array(githubTrustedContributorSchema)
28037
+ });
28038
+ var githubMemoryContributorSchema = external_exports.object({
28039
+ githubUserId: external_exports.string(),
28040
+ login: external_exports.string(),
28041
+ type: external_exports.string().nullable(),
28042
+ contributions: external_exports.number().int().nonnegative().nullable(),
28043
+ trusted: external_exports.boolean()
28044
+ });
28045
+ var githubMemoryRepositoriesResponseSchema = external_exports.object({
28046
+ provider: external_exports.literal("github"),
28047
+ connected: external_exports.boolean(),
28048
+ installationId: external_exports.string().nullable(),
28049
+ targetName: external_exports.string().nullable(),
28050
+ repositories: external_exports.array(githubMemoryRepositoryResourceSchema),
28051
+ pagination: external_exports.object({
28052
+ page: external_exports.number().int().positive(),
28053
+ pageSize: external_exports.number().int().positive(),
28054
+ hasMore: external_exports.boolean()
28055
+ })
28056
+ });
28057
+ var githubMemoryContributorsResponseSchema = external_exports.object({
28058
+ provider: external_exports.literal("github"),
28059
+ connected: external_exports.boolean(),
28060
+ repository: external_exports.string(),
28061
+ contributors: external_exports.array(githubMemoryContributorSchema),
28062
+ pagination: external_exports.object({
28063
+ page: external_exports.number().int().positive(),
28064
+ pageSize: external_exports.number().int().positive(),
28065
+ hasMore: external_exports.boolean()
28066
+ })
28067
+ });
28068
+ var githubMemoryStatusResponseSchema = external_exports.object({
28069
+ provider: external_exports.literal("github"),
28070
+ connected: external_exports.boolean(),
28071
+ installationId: external_exports.string().nullable(),
28072
+ targetName: external_exports.string().nullable(),
28073
+ selectedRepositoryCount: external_exports.number().int().nonnegative(),
28074
+ trustedContributorCount: external_exports.number().int().nonnegative(),
28075
+ backfill: sourceBackfillSchema
28076
+ });
28077
+ var notionMemoryBackfillRequestSchema = external_exports.object({
28078
+ days: external_exports.union([external_exports.literal(30), external_exports.literal(90), external_exports.literal(180), external_exports.literal(365)]),
28079
+ documentLimit: external_exports.number().int().min(1).max(1e4)
28080
+ });
28081
+ var notionMemoryStatusResponseSchema = external_exports.object({
28082
+ provider: external_exports.literal("notion"),
28083
+ connected: external_exports.boolean(),
28084
+ workspaceName: external_exports.string().nullable(),
28085
+ backfill: sourceBackfillSchema
28086
+ });
27875
28087
  var memoryDetailResponseSchema = external_exports.object({
27876
28088
  exists: external_exports.boolean(),
27877
28089
  name: external_exports.string(),
@@ -28011,6 +28223,130 @@ var zeroMemoryContract = c36.router({
28011
28223
  500: apiErrorSchema
28012
28224
  },
28013
28225
  summary: "Stop the current Slack memory source backfill"
28226
+ },
28227
+ githubStatus: {
28228
+ method: "GET",
28229
+ path: "/api/zero/memory/sources/github/status",
28230
+ headers: authHeadersSchema,
28231
+ responses: {
28232
+ 200: githubMemoryStatusResponseSchema,
28233
+ 401: apiErrorSchema,
28234
+ 403: apiErrorSchema,
28235
+ 500: apiErrorSchema
28236
+ },
28237
+ summary: "Read GitHub memory source configuration and backfill status"
28238
+ },
28239
+ githubRepositories: {
28240
+ method: "GET",
28241
+ path: "/api/zero/memory/sources/github/repositories",
28242
+ headers: authHeadersSchema,
28243
+ query: external_exports.object({
28244
+ page: external_exports.coerce.number().int().positive().default(1),
28245
+ limit: external_exports.coerce.number().int().min(1).max(100).default(50)
28246
+ }),
28247
+ responses: {
28248
+ 200: githubMemoryRepositoriesResponseSchema,
28249
+ 401: apiErrorSchema,
28250
+ 403: apiErrorSchema,
28251
+ 500: apiErrorSchema
28252
+ },
28253
+ summary: "List GitHub repositories available for memory source sync"
28254
+ },
28255
+ githubContributors: {
28256
+ method: "GET",
28257
+ path: "/api/zero/memory/sources/github/contributors",
28258
+ headers: authHeadersSchema,
28259
+ query: external_exports.object({
28260
+ repository: external_exports.string().min(1),
28261
+ page: external_exports.coerce.number().int().positive().default(1),
28262
+ limit: external_exports.coerce.number().int().min(1).max(100).default(50)
28263
+ }),
28264
+ responses: {
28265
+ 200: githubMemoryContributorsResponseSchema,
28266
+ 400: apiErrorSchema,
28267
+ 401: apiErrorSchema,
28268
+ 403: apiErrorSchema,
28269
+ 500: apiErrorSchema
28270
+ },
28271
+ summary: "List GitHub contributors for a repository memory allowlist"
28272
+ },
28273
+ githubConfigure: {
28274
+ method: "PUT",
28275
+ path: "/api/zero/memory/sources/github/config",
28276
+ headers: authHeadersSchema,
28277
+ body: githubMemoryConfigureRequestSchema,
28278
+ responses: {
28279
+ 200: githubMemoryStatusResponseSchema,
28280
+ 400: apiErrorSchema,
28281
+ 401: apiErrorSchema,
28282
+ 403: apiErrorSchema,
28283
+ 500: apiErrorSchema
28284
+ },
28285
+ summary: "Configure selected GitHub repositories and trusted contributors"
28286
+ },
28287
+ githubBackfill: {
28288
+ method: "POST",
28289
+ path: "/api/zero/memory/sources/github/backfill",
28290
+ headers: authHeadersSchema,
28291
+ body: githubMemoryBackfillRequestSchema,
28292
+ responses: {
28293
+ 200: githubMemoryStatusResponseSchema,
28294
+ 400: apiErrorSchema,
28295
+ 401: apiErrorSchema,
28296
+ 403: apiErrorSchema,
28297
+ 500: apiErrorSchema
28298
+ },
28299
+ summary: "Start or restart GitHub memory source backfill"
28300
+ },
28301
+ githubStopBackfill: {
28302
+ method: "POST",
28303
+ path: "/api/zero/memory/sources/github/backfill/stop",
28304
+ headers: authHeadersSchema,
28305
+ responses: {
28306
+ 200: githubMemoryStatusResponseSchema,
28307
+ 401: apiErrorSchema,
28308
+ 403: apiErrorSchema,
28309
+ 500: apiErrorSchema
28310
+ },
28311
+ summary: "Stop the current GitHub memory source backfill"
28312
+ },
28313
+ notionStatus: {
28314
+ method: "GET",
28315
+ path: "/api/zero/memory/sources/notion/status",
28316
+ headers: authHeadersSchema,
28317
+ responses: {
28318
+ 200: notionMemoryStatusResponseSchema,
28319
+ 401: apiErrorSchema,
28320
+ 403: apiErrorSchema,
28321
+ 500: apiErrorSchema
28322
+ },
28323
+ summary: "Read Notion memory source backfill status"
28324
+ },
28325
+ notionBackfill: {
28326
+ method: "POST",
28327
+ path: "/api/zero/memory/sources/notion/backfill",
28328
+ headers: authHeadersSchema,
28329
+ body: notionMemoryBackfillRequestSchema,
28330
+ responses: {
28331
+ 200: notionMemoryStatusResponseSchema,
28332
+ 400: apiErrorSchema,
28333
+ 401: apiErrorSchema,
28334
+ 403: apiErrorSchema,
28335
+ 500: apiErrorSchema
28336
+ },
28337
+ summary: "Start or restart Notion workspace memory source backfill"
28338
+ },
28339
+ notionStopBackfill: {
28340
+ method: "POST",
28341
+ path: "/api/zero/memory/sources/notion/backfill/stop",
28342
+ headers: authHeadersSchema,
28343
+ responses: {
28344
+ 200: notionMemoryStatusResponseSchema,
28345
+ 401: apiErrorSchema,
28346
+ 403: apiErrorSchema,
28347
+ 500: apiErrorSchema
28348
+ },
28349
+ summary: "Stop the current Notion memory source backfill"
28014
28350
  }
28015
28351
  });
28016
28352
 
@@ -28319,7 +28655,6 @@ export {
28319
28655
  deleteZeroOrgModelProvider,
28320
28656
  listZeroModelPolicies,
28321
28657
  hostedArtifactKindSchema,
28322
- MODEL_FIRST_SELECTION_PROVIDER_ID,
28323
28658
  zeroAgentVisibilitySchema,
28324
28659
  createZeroAgent,
28325
28660
  listZeroAgents,
@@ -28413,4 +28748,4 @@ export {
28413
28748
  completeHostedSite,
28414
28749
  getHostedSiteFiles
28415
28750
  };
28416
- //# sourceMappingURL=chunk-KEA6JIHN.js.map
28751
+ //# sourceMappingURL=chunk-UMLJTQH7.js.map