@vm0/cli 9.232.4 → 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-6RZ5TXG7.js → agent-ITQAPQGT.js} +5 -5
  2. package/{banking-SQEP3SMH.js → banking-CXYSYE44.js} +3 -3
  3. package/{chat-RSFQKHCF.js → chat-DM5AFQ7B.js} +5 -9
  4. package/chat-DM5AFQ7B.js.map +1 -0
  5. package/{chunk-CHL4TD4C.js → chunk-7JTD7AIA.js} +2 -2
  6. package/{chunk-JROCRGI2.js → chunk-B6ZJAPVB.js} +2 -2
  7. package/{chunk-VY6UIVFW.js → chunk-BH7PHI5M.js} +3 -3
  8. package/{chunk-V35DQCUN.js → chunk-HXUFPPTO.js} +2 -2
  9. package/{chunk-5CMNI5NW.js → chunk-NLAIKU3D.js} +2 -2
  10. package/{chunk-LC2TTEQI.js → chunk-OYOZKWB6.js} +305 -184
  11. package/chunk-OYOZKWB6.js.map +1 -0
  12. package/{chunk-SUKOQSNM.js → chunk-U5OQAKXH.js} +4 -4
  13. package/{chunk-KJBGSPFK.js → chunk-UMLJTQH7.js} +382 -73
  14. package/chunk-UMLJTQH7.js.map +1 -0
  15. package/{chunk-2IMM4DX2.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-N5NDVXNC.js → chunk-WXOV3CZQ.js} +2 -2
  19. package/{chunk-MJGSJ3S6.js → chunk-XLKQ7WIW.js} +2 -2
  20. package/{computer-use-G7ENRPDN.js → computer-use-M7SWR7QA.js} +3 -3
  21. package/{connector-B4K6FZIP.js → connector-R4HQH75Q.js} +4 -4
  22. package/{credit-6K2DA6YX.js → credit-2XOJWPOH.js} +4 -4
  23. package/{developer-support-BGAXGXX5.js → developer-support-USNK4GWO.js} +3 -3
  24. package/{doctor-Y4PROHYE.js → doctor-E6ORDAE6.js} +7 -7
  25. package/{generate-E22D7QYC.js → generate-PFATIIFX.js} +5 -5
  26. package/{github-M2CEDDHF.js → github-LCSDPEK6.js} +3 -3
  27. package/{goal-LPZNMOCN.js → goal-KDOKT2EA.js} +3 -3
  28. package/{host-JJKKXKMY.js → host-ZSYCKBER.js} +3 -3
  29. package/index.js +15 -15
  30. package/{logs-VQIBA6VG.js → logs-RY7I3I4S.js} +8 -8
  31. package/{maps-GG4S36MJ.js → maps-HE54D3MA.js} +3 -3
  32. package/{memory-73F5VWEZ.js → memory-G7NMNTHC.js} +3 -3
  33. package/{model-B4FVQXJH.js → model-HKTREOBY.js} +4 -4
  34. package/{model-provider-A6NGRH43.js → model-provider-36X74IKF.js} +4 -4
  35. package/{org-KH44A56S.js → org-VW4ZADCY.js} +3 -3
  36. package/package.json +2 -2
  37. package/{phone-K4BCONX5.js → phone-5SHIRSUD.js} +3 -3
  38. package/{preference-36IPIPCT.js → preference-LHGPFRBJ.js} +3 -3
  39. package/{relationship-5VBZE6DS.js → relationship-TQJH53MK.js} +3 -3
  40. package/{resource-FW4CH7Z2.js → resource-2UV544CI.js} +4 -4
  41. package/{search-MV2Y36DY.js → search-H46ZLLY4.js} +8 -8
  42. package/{secret-WI424CFS.js → secret-KRNDARFJ.js} +4 -4
  43. package/{slack-MBABKLM6.js → slack-WTYBGH5B.js} +3 -3
  44. package/{telegram-T3DOY5MC.js → telegram-3WTFY27R.js} +3 -3
  45. package/{variable-DS3GBB3J.js → variable-XXTPDYCZ.js} +3 -3
  46. package/{video-GFOWVP6A.js → video-QLPURUR7.js} +2 -2
  47. package/{web-HNDBWVY7.js → web-SLUE6TKR.js} +3 -3
  48. package/{whoami-DDN6LTUP.js → whoami-PA46AH6B.js} +5 -5
  49. package/{workflow-MK2RRATX.js → workflow-3MGOOZEN.js} +3 -3
  50. package/zero.js +33 -33
  51. package/chat-RSFQKHCF.js.map +0 -1
  52. package/chunk-KJBGSPFK.js.map +0 -1
  53. package/chunk-LC2TTEQI.js.map +0 -1
  54. /package/{agent-6RZ5TXG7.js.map → agent-ITQAPQGT.js.map} +0 -0
  55. /package/{banking-SQEP3SMH.js.map → banking-CXYSYE44.js.map} +0 -0
  56. /package/{chunk-CHL4TD4C.js.map → chunk-7JTD7AIA.js.map} +0 -0
  57. /package/{chunk-JROCRGI2.js.map → chunk-B6ZJAPVB.js.map} +0 -0
  58. /package/{chunk-VY6UIVFW.js.map → chunk-BH7PHI5M.js.map} +0 -0
  59. /package/{chunk-V35DQCUN.js.map → chunk-HXUFPPTO.js.map} +0 -0
  60. /package/{chunk-5CMNI5NW.js.map → chunk-NLAIKU3D.js.map} +0 -0
  61. /package/{chunk-SUKOQSNM.js.map → chunk-U5OQAKXH.js.map} +0 -0
  62. /package/{chunk-2IMM4DX2.js.map → chunk-VJ5P4QAJ.js.map} +0 -0
  63. /package/{chunk-N5NDVXNC.js.map → chunk-WXOV3CZQ.js.map} +0 -0
  64. /package/{chunk-MJGSJ3S6.js.map → chunk-XLKQ7WIW.js.map} +0 -0
  65. /package/{computer-use-G7ENRPDN.js.map → computer-use-M7SWR7QA.js.map} +0 -0
  66. /package/{connector-B4K6FZIP.js.map → connector-R4HQH75Q.js.map} +0 -0
  67. /package/{credit-6K2DA6YX.js.map → credit-2XOJWPOH.js.map} +0 -0
  68. /package/{developer-support-BGAXGXX5.js.map → developer-support-USNK4GWO.js.map} +0 -0
  69. /package/{doctor-Y4PROHYE.js.map → doctor-E6ORDAE6.js.map} +0 -0
  70. /package/{generate-E22D7QYC.js.map → generate-PFATIIFX.js.map} +0 -0
  71. /package/{github-M2CEDDHF.js.map → github-LCSDPEK6.js.map} +0 -0
  72. /package/{goal-LPZNMOCN.js.map → goal-KDOKT2EA.js.map} +0 -0
  73. /package/{host-JJKKXKMY.js.map → host-ZSYCKBER.js.map} +0 -0
  74. /package/{logs-VQIBA6VG.js.map → logs-RY7I3I4S.js.map} +0 -0
  75. /package/{maps-GG4S36MJ.js.map → maps-HE54D3MA.js.map} +0 -0
  76. /package/{memory-73F5VWEZ.js.map → memory-G7NMNTHC.js.map} +0 -0
  77. /package/{model-B4FVQXJH.js.map → model-HKTREOBY.js.map} +0 -0
  78. /package/{model-provider-A6NGRH43.js.map → model-provider-36X74IKF.js.map} +0 -0
  79. /package/{org-KH44A56S.js.map → org-VW4ZADCY.js.map} +0 -0
  80. /package/{phone-K4BCONX5.js.map → phone-5SHIRSUD.js.map} +0 -0
  81. /package/{preference-36IPIPCT.js.map → preference-LHGPFRBJ.js.map} +0 -0
  82. /package/{relationship-5VBZE6DS.js.map → relationship-TQJH53MK.js.map} +0 -0
  83. /package/{resource-FW4CH7Z2.js.map → resource-2UV544CI.js.map} +0 -0
  84. /package/{search-MV2Y36DY.js.map → search-H46ZLLY4.js.map} +0 -0
  85. /package/{secret-WI424CFS.js.map → secret-KRNDARFJ.js.map} +0 -0
  86. /package/{slack-MBABKLM6.js.map → slack-WTYBGH5B.js.map} +0 -0
  87. /package/{telegram-T3DOY5MC.js.map → telegram-3WTFY27R.js.map} +0 -0
  88. /package/{variable-DS3GBB3J.js.map → variable-XXTPDYCZ.js.map} +0 -0
  89. /package/{video-GFOWVP6A.js.map → video-QLPURUR7.js.map} +0 -0
  90. /package/{web-HNDBWVY7.js.map → web-SLUE6TKR.js.map} +0 -0
  91. /package/{whoami-DDN6LTUP.js.map → whoami-PA46AH6B.js.map} +0 -0
  92. /package/{workflow-MK2RRATX.js.map → workflow-3MGOOZEN.js.map} +0 -0
@@ -10,13 +10,13 @@ import {
10
10
  parseBoundedLogCount,
11
11
  parseSearchQuery,
12
12
  parseTime
13
- } from "./chunk-LC2TTEQI.js";
13
+ } from "./chunk-OYOZKWB6.js";
14
14
  import {
15
15
  searchZeroLogs
16
- } from "./chunk-KJBGSPFK.js";
16
+ } from "./chunk-UMLJTQH7.js";
17
17
  import {
18
18
  withErrorHandler
19
- } from "./chunk-MJGSJ3S6.js";
19
+ } from "./chunk-XLKQ7WIW.js";
20
20
  import {
21
21
  source_default
22
22
  } from "./chunk-JUTUEPIR.js";
@@ -176,4 +176,4 @@ export {
176
176
  runLogsSearch,
177
177
  searchCommand
178
178
  };
179
- //# sourceMappingURL=chunk-SUKOQSNM.js.map
179
+ //# sourceMappingURL=chunk-U5OQAKXH.js.map
@@ -14,7 +14,7 @@ import {
14
14
  headersWithCliClientHeaders,
15
15
  initClient,
16
16
  initContract
17
- } from "./chunk-MJGSJ3S6.js";
17
+ } from "./chunk-XLKQ7WIW.js";
18
18
  import {
19
19
  init_esm_shims
20
20
  } from "./chunk-DIRAZ3YX.js";
@@ -5400,7 +5400,6 @@ var zeroGoalsContract = c14.router({
5400
5400
 
5401
5401
  // ../../packages/api-contracts/src/contracts/chat-threads.ts
5402
5402
  var c15 = initContract();
5403
- var MODEL_FIRST_SELECTION_PROVIDER_ID = "00000000-0000-4000-8000-000000000000";
5404
5403
  var attachFileSchema = external_exports.object({
5405
5404
  id: external_exports.string(),
5406
5405
  filename: external_exports.string(),
@@ -5442,6 +5441,7 @@ var artifactItemSchema = external_exports.object({
5442
5441
  filename: external_exports.string(),
5443
5442
  contentType: external_exports.string(),
5444
5443
  url: external_exports.string(),
5444
+ previewImageUrl: external_exports.string().optional(),
5445
5445
  createdAt: external_exports.string(),
5446
5446
  artifactKind: hostedArtifactKindSchema.optional(),
5447
5447
  googleDriveSync: chatThreadArtifactGoogleDriveSyncSchema.optional()
@@ -5705,21 +5705,106 @@ var chatThreadDraftSchema = external_exports.object({
5705
5705
  draftContent: external_exports.string().nullable(),
5706
5706
  draftAttachments: external_exports.array(persistedAttachmentSchema).nullable()
5707
5707
  });
5708
- var modelSelectionRequestSchema = external_exports.object({
5709
- modelProviderId: external_exports.string().uuid(),
5710
- selectedModel: external_exports.string().min(1)
5711
- }).superRefine((value, ctx) => {
5712
- 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)) {
5713
5710
  ctx.addIssue({
5714
5711
  code: external_exports.ZodIssueCode.custom,
5715
- path: ["selectedModel"],
5716
5712
  message: "Invalid model selection"
5717
5713
  });
5718
5714
  }
5719
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
+ );
5720
5768
  var chatRunOptionsRequestSchema = external_exports.object({
5721
5769
  codexServiceTier: codexServiceTierSchema.optional()
5722
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
+ );
5723
5808
  var chatThreadsContract = c15.router({
5724
5809
  snapshot: {
5725
5810
  method: "GET",
@@ -5767,13 +5852,7 @@ var chatThreadsContract = c15.router({
5767
5852
  method: "POST",
5768
5853
  path: "/api/zero/chat-threads",
5769
5854
  headers: authHeadersSchema,
5770
- body: external_exports.object({
5771
- agentId: external_exports.string().min(1),
5772
- clientThreadId: external_exports.string().uuid().optional(),
5773
- eventId: chatThreadEventIdSchema.optional(),
5774
- modelSelection: modelSelectionRequestSchema,
5775
- title: external_exports.string().optional()
5776
- }),
5855
+ body: chatThreadCreateBodySchema,
5777
5856
  responses: {
5778
5857
  201: external_exports.object({
5779
5858
  id: external_exports.string(),
@@ -6017,11 +6096,7 @@ var chatThreadModelSelectionContract = c15.router({
6017
6096
  path: "/api/zero/chat-threads/:id/model-selection",
6018
6097
  headers: authHeadersSchema,
6019
6098
  pathParams: chatThreadIdPathParamsSchema,
6020
- body: external_exports.object({
6021
- modelSelection: modelSelectionRequestSchema.nullable(),
6022
- codexServiceTier: codexServiceTierSchema.nullable().optional(),
6023
- eventId: chatThreadEventIdSchema.optional()
6024
- }),
6099
+ body: chatThreadModelSelectionUpdateBodySchema,
6025
6100
  responses: {
6026
6101
  204: c15.noBody(),
6027
6102
  400: apiErrorSchema,
@@ -6058,42 +6133,7 @@ var chatMessagesContract = c15.router({
6058
6133
  path: "/api/zero/chat/messages",
6059
6134
  headers: authHeadersSchema,
6060
6135
  body: external_exports.union([
6061
- external_exports.object({
6062
- agentId: external_exports.string().min(1),
6063
- prompt: external_exports.string().min(1),
6064
- threadId: external_exports.string().optional(),
6065
- clientThreadId: external_exports.string().uuid().optional(),
6066
- chatThreadEventId: chatThreadEventIdSchema.optional(),
6067
- // Client-generated UUID for the sort touch created by direct user sends.
6068
- // Lets event-sourced clients reconcile optimistic sidebar recency by id.
6069
- chatThreadSortEventId: chatThreadEventIdSchema.optional(),
6070
- modelProvider: external_exports.string().optional(),
6071
- /**
6072
- * Per-run model override. This does not mutate the thread's selected
6073
- * model; thread model changes are persisted through
6074
- * `chatThreadModelSelectionContract.update`.
6075
- *
6076
- * When omitted, the run resolves from the thread's persisted
6077
- * `selected_model`.
6078
- */
6079
- modelSelection: modelSelectionRequestSchema.nullable().optional(),
6080
- runOptions: chatRunOptionsRequestSchema.optional(),
6081
- generationTemplate: generationTemplateRequestSchema.optional(),
6082
- computerUseHostId: external_exports.string().uuid().nullable().optional(),
6083
- // Optional for backward compatibility: older clients that omit this field
6084
- // still trigger title generation (server guards with !== false, not === true).
6085
- hasTextContent: external_exports.boolean().optional(),
6086
- attachFiles: external_exports.array(attachFileSchema).optional(),
6087
- // Client-generated UUID used as the user message's primary key.
6088
- // Lets the client render an optimistic row and reconcile with the
6089
- // server row by id — no temp-id swap, no React remount.
6090
- clientMessageId: external_exports.string().uuid().optional(),
6091
- // Preview evaluation escape hatch: when enabled, the request asks the
6092
- // runner to bypass preview mock CLIs and use the real agent runtime.
6093
- realAgentInPreview: external_exports.boolean().optional(),
6094
- revokesMessageId: external_exports.string().min(1).optional(),
6095
- interruptsRunId: external_exports.undefined().optional()
6096
- }),
6136
+ chatMessageNormalSendBodySchema,
6097
6137
  external_exports.object({
6098
6138
  agentId: external_exports.string().min(1),
6099
6139
  threadId: external_exports.string().min(1),
@@ -6103,8 +6143,7 @@ var chatMessagesContract = c15.router({
6103
6143
  clientThreadId: external_exports.undefined().optional(),
6104
6144
  chatThreadEventId: external_exports.undefined().optional(),
6105
6145
  chatThreadSortEventId: external_exports.undefined().optional(),
6106
- modelProvider: external_exports.undefined().optional(),
6107
- modelSelection: external_exports.undefined().optional(),
6146
+ model: external_exports.undefined().optional(),
6108
6147
  runOptions: external_exports.undefined().optional(),
6109
6148
  generationTemplate: external_exports.undefined().optional(),
6110
6149
  computerUseHostId: external_exports.undefined().optional(),
@@ -6122,8 +6161,7 @@ var chatMessagesContract = c15.router({
6122
6161
  clientThreadId: external_exports.undefined().optional(),
6123
6162
  chatThreadEventId: external_exports.undefined().optional(),
6124
6163
  chatThreadSortEventId: external_exports.undefined().optional(),
6125
- modelProvider: external_exports.undefined().optional(),
6126
- modelSelection: external_exports.undefined().optional(),
6164
+ model: external_exports.undefined().optional(),
6127
6165
  runOptions: external_exports.undefined().optional(),
6128
6166
  generationTemplate: external_exports.undefined().optional(),
6129
6167
  computerUseHostId: external_exports.undefined().optional(),
@@ -23718,12 +23756,12 @@ async function updateZeroChatThreadModelSelection(options) {
23718
23756
  const client = initClient(chatThreadModelSelectionContract, config);
23719
23757
  const result = await client.update({
23720
23758
  params: { id: options.threadId },
23721
- body: { modelSelection: options.modelSelection }
23759
+ body: { model: options.model }
23722
23760
  });
23723
23761
  if (result.status === 204) {
23724
23762
  return {
23725
23763
  threadId: options.threadId,
23726
- selectedModel: options.modelSelection?.selectedModel ?? null
23764
+ selectedModel: options.model
23727
23765
  };
23728
23766
  }
23729
23767
  handleError(result, "Failed to update chat thread model");
@@ -24229,7 +24267,11 @@ var computerUseHostListResponseSchema = external_exports.object({
24229
24267
  var computerUseHostDeleteResponseSchema = external_exports.object({
24230
24268
  ok: external_exports.literal(true)
24231
24269
  });
24232
- var computerUseAuthorizationSourceSchema = external_exports.enum(["chat", "slack"]);
24270
+ var computerUseAuthorizationSourceSchema = external_exports.enum([
24271
+ "chat",
24272
+ "slack",
24273
+ "teams"
24274
+ ]);
24233
24275
  var computerUseAuthorizationRequestCreateBodySchema = external_exports.object({});
24234
24276
  var computerUseAuthorizationRequestCreateResponseSchema = external_exports.object({
24235
24277
  authorizationUrl: external_exports.string().url(),
@@ -24732,7 +24774,7 @@ function authenticatedJsonHeaders(token) {
24732
24774
  }
24733
24775
  return headers;
24734
24776
  }
24735
- function isRecord(value) {
24777
+ function isRecord2(value) {
24736
24778
  return typeof value === "object" && value !== null && !Array.isArray(value);
24737
24779
  }
24738
24780
  async function parseErrorBody(response) {
@@ -24740,7 +24782,7 @@ async function parseErrorBody(response) {
24740
24782
  let code = response.status === 404 ? "NOT_FOUND" : "UNKNOWN";
24741
24783
  try {
24742
24784
  const body = await response.json();
24743
- if (isRecord(body) && isRecord(body.error)) {
24785
+ if (isRecord2(body) && isRecord2(body.error)) {
24744
24786
  if (typeof body.error.message === "string") {
24745
24787
  message = body.error.message;
24746
24788
  }
@@ -24789,7 +24831,7 @@ function authenticatedJsonHeaders2(token) {
24789
24831
  }
24790
24832
  return headers;
24791
24833
  }
24792
- function isRecord2(value) {
24834
+ function isRecord3(value) {
24793
24835
  return typeof value === "object" && value !== null && !Array.isArray(value);
24794
24836
  }
24795
24837
  async function parseErrorBody2(response) {
@@ -24797,7 +24839,7 @@ async function parseErrorBody2(response) {
24797
24839
  let code = response.status === 404 ? "NOT_FOUND" : "UNKNOWN";
24798
24840
  try {
24799
24841
  const body = await response.json();
24800
- if (isRecord2(body) && isRecord2(body.error)) {
24842
+ if (isRecord3(body) && isRecord3(body.error)) {
24801
24843
  if (typeof body.error.message === "string") {
24802
24844
  message = body.error.message;
24803
24845
  }
@@ -27491,7 +27533,12 @@ var relationshipItemKindSchema = external_exports.enum([
27491
27533
  "preference",
27492
27534
  "open_loop"
27493
27535
  ]);
27494
- var relationshipProviderSchema = external_exports.enum(["gmail", "slack"]);
27536
+ var relationshipProviderSchema = external_exports.enum([
27537
+ "gmail",
27538
+ "slack",
27539
+ "github",
27540
+ "notion"
27541
+ ]);
27495
27542
  var relationshipEntitySchema = external_exports.object({
27496
27543
  id: external_exports.string().uuid(),
27497
27544
  type: relationshipEntityTypeSchema,
@@ -27728,7 +27775,12 @@ var memoryFileContentSchema = external_exports.object({
27728
27775
  path: external_exports.string(),
27729
27776
  content: external_exports.string()
27730
27777
  });
27731
- var memorySourceProviderSchema = external_exports.enum(["gmail", "slack"]);
27778
+ var memorySourceProviderSchema = external_exports.enum([
27779
+ "gmail",
27780
+ "slack",
27781
+ "github",
27782
+ "notion"
27783
+ ]);
27732
27784
  var memoryRecallItemKindSchema = external_exports.enum([
27733
27785
  "key_fact",
27734
27786
  "preference",
@@ -27757,7 +27809,17 @@ var memorySourceCompactMetadataSchema = external_exports.object({
27757
27809
  messageTs: external_exports.string().optional(),
27758
27810
  senderId: external_exports.string().optional(),
27759
27811
  mailboxEmail: external_exports.string().optional(),
27760
- 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()
27761
27823
  });
27762
27824
  var memorySourceMetadataSchema = memorySourceCompactMetadataSchema.extend({
27763
27825
  messageId: external_exports.string().nullable().optional(),
@@ -27767,12 +27829,36 @@ var memorySourceMetadataSchema = memorySourceCompactMetadataSchema.extend({
27767
27829
  from: external_exports.string().nullable().optional(),
27768
27830
  to: external_exports.array(external_exports.string()).optional(),
27769
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(),
27770
27848
  reason: external_exports.string().optional()
27771
27849
  }).passthrough();
27772
27850
  var memorySourceBaseSchema = external_exports.object({
27773
27851
  id: external_exports.string().uuid(),
27774
27852
  provider: memorySourceProviderSchema,
27775
- 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
+ ]),
27776
27862
  title: external_exports.string().nullable(),
27777
27863
  occurredAt: external_exports.string().nullable(),
27778
27864
  createdAt: external_exports.string(),
@@ -27898,6 +27984,106 @@ var slackMemoryBackfillRequestSchema = external_exports.object({
27898
27984
  includePrivateChannels: external_exports.boolean(),
27899
27985
  includeDirectMessages: external_exports.boolean()
27900
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
+ });
27901
28087
  var memoryDetailResponseSchema = external_exports.object({
27902
28088
  exists: external_exports.boolean(),
27903
28089
  name: external_exports.string(),
@@ -28037,6 +28223,130 @@ var zeroMemoryContract = c36.router({
28037
28223
  500: apiErrorSchema
28038
28224
  },
28039
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"
28040
28350
  }
28041
28351
  });
28042
28352
 
@@ -28345,7 +28655,6 @@ export {
28345
28655
  deleteZeroOrgModelProvider,
28346
28656
  listZeroModelPolicies,
28347
28657
  hostedArtifactKindSchema,
28348
- MODEL_FIRST_SELECTION_PROVIDER_ID,
28349
28658
  zeroAgentVisibilitySchema,
28350
28659
  createZeroAgent,
28351
28660
  listZeroAgents,
@@ -28439,4 +28748,4 @@ export {
28439
28748
  completeHostedSite,
28440
28749
  getHostedSiteFiles
28441
28750
  };
28442
- //# sourceMappingURL=chunk-KJBGSPFK.js.map
28751
+ //# sourceMappingURL=chunk-UMLJTQH7.js.map