@vm0/cli 9.227.0 → 9.228.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 (83) hide show
  1. package/{agent-DGSPWQNY.js → agent-AVRAE7H3.js} +4 -4
  2. package/{banking-JHYVOWF5.js → banking-VNDPFJ7G.js} +2 -2
  3. package/chat-QYR23VL5.js +251 -0
  4. package/chat-QYR23VL5.js.map +1 -0
  5. package/{chunk-OEAI3Q7W.js → chunk-LZA5YDVV.js} +3 -3
  6. package/{chunk-5ERR7HTW.js → chunk-LZL6Y6FZ.js} +2 -2
  7. package/{chunk-MZSBZSJO.js → chunk-N4DJI7YN.js} +2 -2
  8. package/{chunk-EY2VZRB2.js → chunk-R6O57E6O.js} +2 -2
  9. package/{chunk-WSV35YDZ.js → chunk-S7AF6RZT.js} +3 -3
  10. package/{chunk-GYQBZT25.js → chunk-TBPRMHWZ.js} +2 -2
  11. package/{chunk-LBGX3XPM.js → chunk-VVEDO2AJ.js} +2 -2
  12. package/{chunk-4VMDT4EL.js → chunk-WHUOCWWJ.js} +77 -4
  13. package/chunk-WHUOCWWJ.js.map +1 -0
  14. package/{chunk-NC6FCDKK.js → chunk-Y53PSHSE.js} +4 -6
  15. package/{chunk-NC6FCDKK.js.map → chunk-Y53PSHSE.js.map} +1 -1
  16. package/{computer-use-ZDALRU7D.js → computer-use-DZTEGWNI.js} +2 -2
  17. package/{connector-5I66WCBC.js → connector-TNHNZV37.js} +2 -2
  18. package/{credit-HGNKEVFZ.js → credit-2H2TE25G.js} +2 -2
  19. package/{developer-support-U65KGI6M.js → developer-support-BIONYRPW.js} +2 -2
  20. package/{doctor-WTQ7VC4T.js → doctor-C24PE4CN.js} +5 -5
  21. package/{generate-DHDE5EAR.js → generate-OIQ4ULPQ.js} +2 -2
  22. package/{github-QDXMHTJZ.js → github-A5N72AOS.js} +2 -2
  23. package/{goal-JRXI5QXW.js → goal-EF3CEJ5W.js} +2 -2
  24. package/{host-RRYXBDTU.js → host-3EFN2UW5.js} +2 -2
  25. package/index.js +13 -13
  26. package/{logs-NDOKTRB6.js → logs-UO3Q4N52.js} +6 -6
  27. package/{maps-IQBIONR2.js → maps-36PXQ4UC.js} +2 -2
  28. package/{model-JO3G5KZI.js → model-2R73XQB3.js} +3 -3
  29. package/{model-provider-FEVH3VPX.js → model-provider-6NY5M3SX.js} +3 -3
  30. package/{org-FQMXNSIY.js → org-OJUPCMZD.js} +2 -2
  31. package/package.json +1 -1
  32. package/{phone-SQDE53ZF.js → phone-3RAJ7CI5.js} +2 -2
  33. package/{preference-S5VFYYXB.js → preference-27LSVG3G.js} +2 -2
  34. package/{relationship-HCBN4USZ.js → relationship-ZDXQRSMT.js} +2 -2
  35. package/{resource-RSKJLS3T.js → resource-S4S7WL4V.js} +2 -2
  36. package/{search-EMQSXATT.js → search-T2YSO5PV.js} +6 -6
  37. package/{secret-GKBBHURS.js → secret-XGKRNEKZ.js} +3 -3
  38. package/{slack-MPYGJ244.js → slack-TL56Y7MM.js} +2 -2
  39. package/{telegram-QPPLW7F4.js → telegram-I3FWSYPK.js} +2 -2
  40. package/{variable-Y4HRWCTO.js → variable-ZLXF6KGW.js} +2 -2
  41. package/{web-AME2COQN.js → web-HMW5IP25.js} +2 -2
  42. package/{whoami-V3SX3JTG.js → whoami-MHYDLS5U.js} +4 -4
  43. package/{workflow-DWK4QY3W.js → workflow-DPC6GNHX.js} +71 -9
  44. package/workflow-DPC6GNHX.js.map +1 -0
  45. package/zero.js +31 -31
  46. package/chat-5PALCJD4.js +0 -123
  47. package/chat-5PALCJD4.js.map +0 -1
  48. package/chunk-4VMDT4EL.js.map +0 -1
  49. package/workflow-DWK4QY3W.js.map +0 -1
  50. /package/{agent-DGSPWQNY.js.map → agent-AVRAE7H3.js.map} +0 -0
  51. /package/{banking-JHYVOWF5.js.map → banking-VNDPFJ7G.js.map} +0 -0
  52. /package/{chunk-OEAI3Q7W.js.map → chunk-LZA5YDVV.js.map} +0 -0
  53. /package/{chunk-5ERR7HTW.js.map → chunk-LZL6Y6FZ.js.map} +0 -0
  54. /package/{chunk-MZSBZSJO.js.map → chunk-N4DJI7YN.js.map} +0 -0
  55. /package/{chunk-EY2VZRB2.js.map → chunk-R6O57E6O.js.map} +0 -0
  56. /package/{chunk-WSV35YDZ.js.map → chunk-S7AF6RZT.js.map} +0 -0
  57. /package/{chunk-GYQBZT25.js.map → chunk-TBPRMHWZ.js.map} +0 -0
  58. /package/{chunk-LBGX3XPM.js.map → chunk-VVEDO2AJ.js.map} +0 -0
  59. /package/{computer-use-ZDALRU7D.js.map → computer-use-DZTEGWNI.js.map} +0 -0
  60. /package/{connector-5I66WCBC.js.map → connector-TNHNZV37.js.map} +0 -0
  61. /package/{credit-HGNKEVFZ.js.map → credit-2H2TE25G.js.map} +0 -0
  62. /package/{developer-support-U65KGI6M.js.map → developer-support-BIONYRPW.js.map} +0 -0
  63. /package/{doctor-WTQ7VC4T.js.map → doctor-C24PE4CN.js.map} +0 -0
  64. /package/{generate-DHDE5EAR.js.map → generate-OIQ4ULPQ.js.map} +0 -0
  65. /package/{github-QDXMHTJZ.js.map → github-A5N72AOS.js.map} +0 -0
  66. /package/{goal-JRXI5QXW.js.map → goal-EF3CEJ5W.js.map} +0 -0
  67. /package/{host-RRYXBDTU.js.map → host-3EFN2UW5.js.map} +0 -0
  68. /package/{logs-NDOKTRB6.js.map → logs-UO3Q4N52.js.map} +0 -0
  69. /package/{maps-IQBIONR2.js.map → maps-36PXQ4UC.js.map} +0 -0
  70. /package/{model-JO3G5KZI.js.map → model-2R73XQB3.js.map} +0 -0
  71. /package/{model-provider-FEVH3VPX.js.map → model-provider-6NY5M3SX.js.map} +0 -0
  72. /package/{org-FQMXNSIY.js.map → org-OJUPCMZD.js.map} +0 -0
  73. /package/{phone-SQDE53ZF.js.map → phone-3RAJ7CI5.js.map} +0 -0
  74. /package/{preference-S5VFYYXB.js.map → preference-27LSVG3G.js.map} +0 -0
  75. /package/{relationship-HCBN4USZ.js.map → relationship-ZDXQRSMT.js.map} +0 -0
  76. /package/{resource-RSKJLS3T.js.map → resource-S4S7WL4V.js.map} +0 -0
  77. /package/{search-EMQSXATT.js.map → search-T2YSO5PV.js.map} +0 -0
  78. /package/{secret-GKBBHURS.js.map → secret-XGKRNEKZ.js.map} +0 -0
  79. /package/{slack-MPYGJ244.js.map → slack-TL56Y7MM.js.map} +0 -0
  80. /package/{telegram-QPPLW7F4.js.map → telegram-I3FWSYPK.js.map} +0 -0
  81. /package/{variable-Y4HRWCTO.js.map → variable-ZLXF6KGW.js.map} +0 -0
  82. /package/{web-AME2COQN.js.map → web-HMW5IP25.js.map} +0 -0
  83. /package/{whoami-V3SX3JTG.js.map → whoami-MHYDLS5U.js.map} +0 -0
@@ -4,10 +4,10 @@ const require = __createRequire(import.meta.url);
4
4
  import {
5
5
  loadConnectorPermissionInfos,
6
6
  policyIcon
7
- } from "./chunk-EY2VZRB2.js";
7
+ } from "./chunk-R6O57E6O.js";
8
8
  import {
9
9
  permissionGrantsToFirewallPolicies
10
- } from "./chunk-5ERR7HTW.js";
10
+ } from "./chunk-LZL6Y6FZ.js";
11
11
  import {
12
12
  isInteractive,
13
13
  promptConfirm
@@ -23,7 +23,7 @@ import {
23
23
  listZeroUserPermissionGrants,
24
24
  updateZeroAgent,
25
25
  updateZeroAgentInstructions
26
- } from "./chunk-4VMDT4EL.js";
26
+ } from "./chunk-WHUOCWWJ.js";
27
27
  import "./chunk-LTDQISD7.js";
28
28
  import {
29
29
  withErrorHandler
@@ -595,4 +595,4 @@ Notes:
595
595
  export {
596
596
  zeroAgentCommand
597
597
  };
598
- //# sourceMappingURL=agent-DGSPWQNY.js.map
598
+ //# sourceMappingURL=agent-AVRAE7H3.js.map
@@ -3,7 +3,7 @@ import { createRequire as __createRequire } from "node:module";
3
3
  const require = __createRequire(import.meta.url);
4
4
  import {
5
5
  callZeroBanking
6
- } from "./chunk-4VMDT4EL.js";
6
+ } from "./chunk-WHUOCWWJ.js";
7
7
  import "./chunk-LTDQISD7.js";
8
8
  import {
9
9
  withErrorHandler
@@ -115,4 +115,4 @@ Notes:
115
115
  export {
116
116
  zeroBankingCommand
117
117
  };
118
- //# sourceMappingURL=banking-JHYVOWF5.js.map
118
+ //# sourceMappingURL=banking-VNDPFJ7G.js.map
@@ -0,0 +1,251 @@
1
+ #!/usr/bin/env node
2
+ import { createRequire as __createRequire } from "node:module";
3
+ const require = __createRequire(import.meta.url);
4
+ import {
5
+ formatModelProviderRoute
6
+ } from "./chunk-VVEDO2AJ.js";
7
+ import {
8
+ MODEL_FIRST_SELECTION_PROVIDER_ID,
9
+ getZeroChatThread,
10
+ listZeroModelPolicies,
11
+ renameZeroChatThread,
12
+ updateZeroChatThreadModelSelection
13
+ } from "./chunk-WHUOCWWJ.js";
14
+ import "./chunk-LTDQISD7.js";
15
+ import {
16
+ withErrorHandler
17
+ } from "./chunk-3F4RFLPX.js";
18
+ import {
19
+ source_default
20
+ } from "./chunk-JUTUEPIR.js";
21
+ import "./chunk-LRHXR7JT.js";
22
+ import {
23
+ Command
24
+ } from "./chunk-B3W2RUBP.js";
25
+ import {
26
+ init_esm_shims
27
+ } from "./chunk-DIRAZ3YX.js";
28
+
29
+ // src/commands/zero/chat/index.ts
30
+ init_esm_shims();
31
+
32
+ // src/commands/zero/chat/get.ts
33
+ init_esm_shims();
34
+ function getCurrentChatThreadId() {
35
+ return process.env.ZERO_CHAT_THREAD_ID?.trim() || void 0;
36
+ }
37
+ function printUsageError(message, hint) {
38
+ console.error(source_default.red(`\u2717 ${message}`));
39
+ console.error(source_default.dim(` ${hint}`));
40
+ process.exit(1);
41
+ }
42
+ var getCommand = new Command().name("get").description("Show the current web chat thread").option("--json", "Print machine-readable JSON").addHelpText(
43
+ "after",
44
+ `
45
+ Examples:
46
+ Show this chat: zero chat get
47
+ Print JSON: zero chat get --json
48
+
49
+ Notes:
50
+ - Uses ZERO_CHAT_THREAD_ID from the current web chat thread
51
+ - Authenticates via ZERO_TOKEN (requires chat-thread:read capability)`
52
+ ).action(
53
+ withErrorHandler(async (options) => {
54
+ const threadId = getCurrentChatThreadId();
55
+ if (!threadId) {
56
+ printUsageError(
57
+ "ZERO_CHAT_THREAD_ID is not set",
58
+ "Run this command from a Zero web chat thread."
59
+ );
60
+ }
61
+ const thread = await getZeroChatThread({ threadId });
62
+ if (options.json) {
63
+ console.log(JSON.stringify(thread));
64
+ return;
65
+ }
66
+ console.log(source_default.green("\u2713 Chat thread loaded"));
67
+ console.log(source_default.dim(` Thread: ${thread.id}`));
68
+ console.log(source_default.dim(` Title: ${thread.title ?? "(untitled)"}`));
69
+ console.log(
70
+ source_default.dim(` Model: ${thread.selectedModel ?? "(default)"}`)
71
+ );
72
+ })
73
+ );
74
+
75
+ // src/commands/zero/chat/model.ts
76
+ init_esm_shims();
77
+ function getCurrentChatThreadId2() {
78
+ return process.env.ZERO_CHAT_THREAD_ID?.trim() || void 0;
79
+ }
80
+ function printUsageError2(message, hint) {
81
+ console.error(source_default.red(`\u2717 ${message}`));
82
+ console.error(source_default.dim(` ${hint}`));
83
+ process.exit(1);
84
+ }
85
+ function switchablePolicies(policies) {
86
+ return policies.filter((policy) => {
87
+ return policy.routeStatus === "valid";
88
+ });
89
+ }
90
+ function formatModelName(policy) {
91
+ return `${policy.modelLabel} ${source_default.dim(`(${policy.model})`)}`;
92
+ }
93
+ function printSwitchableModels(policies) {
94
+ const switchable = switchablePolicies(policies);
95
+ if (switchable.length === 0) {
96
+ console.log(source_default.dim("No switchable models are available for this user"));
97
+ return;
98
+ }
99
+ for (const policy of switchable) {
100
+ const defaultMarker = policy.isDefault ? source_default.dim(" (default)") : "";
101
+ console.log(` - ${formatModelName(policy)}${defaultMarker}`);
102
+ console.log(` provider: ${formatModelProviderRoute(policy)}`);
103
+ }
104
+ }
105
+ function printCurrentModel(thread) {
106
+ console.log(source_default.green("\u2713 Chat thread loaded"));
107
+ console.log(source_default.dim(` Thread: ${thread.id}`));
108
+ console.log(source_default.dim(` Title: ${thread.title ?? "(untitled)"}`));
109
+ console.log(source_default.dim(` Model: ${thread.selectedModel ?? "(default)"}`));
110
+ }
111
+ async function printModelHelp(command) {
112
+ const result = await listZeroModelPolicies();
113
+ console.log(command.helpInformation().trimEnd());
114
+ console.log();
115
+ console.log(source_default.bold("Switchable models:"));
116
+ printSwitchableModels(result.policies);
117
+ console.log();
118
+ console.log("Use the model id in parentheses:");
119
+ console.log(source_default.cyan(" zero chat model <model>"));
120
+ }
121
+ async function printCurrentModelAndChoices(threadId) {
122
+ const [thread, result] = await Promise.all([
123
+ getZeroChatThread({ threadId }),
124
+ listZeroModelPolicies()
125
+ ]);
126
+ printCurrentModel(thread);
127
+ console.log();
128
+ console.log(source_default.bold("Switchable models:"));
129
+ printSwitchableModels(result.policies);
130
+ console.log();
131
+ console.log("Switch models:");
132
+ console.log(source_default.cyan(" zero chat model <model>"));
133
+ }
134
+ async function switchModel(threadId, model) {
135
+ const result = await listZeroModelPolicies();
136
+ const policy = result.policies.find((candidate) => {
137
+ return candidate.model === model;
138
+ });
139
+ if (!policy) {
140
+ printUsageError2(`Unknown model: ${model}`, "Run: zero chat model --help");
141
+ }
142
+ if (policy.routeStatus !== "valid") {
143
+ const reason = policy.routeStatusReason ? ` (${policy.routeStatusReason})` : "";
144
+ printUsageError2(
145
+ `Model is not switchable: ${model}${reason}`,
146
+ "Run: zero chat model --help"
147
+ );
148
+ }
149
+ const updated = await updateZeroChatThreadModelSelection({
150
+ threadId,
151
+ modelSelection: {
152
+ modelProviderId: MODEL_FIRST_SELECTION_PROVIDER_ID,
153
+ selectedModel: model
154
+ }
155
+ });
156
+ console.log(source_default.green("\u2713 Chat model updated"));
157
+ console.log(source_default.dim(` Thread: ${updated.threadId}`));
158
+ console.log(source_default.dim(` Model: ${policy.modelLabel} (${model})`));
159
+ }
160
+ var modelCommand = new Command().name("model").description("Show or switch the current web chat thread model").argument("[model]", "Model id to use for this chat thread").helpOption(false).option("-h, --help", "Show help with switchable models").addHelpText(
161
+ "after",
162
+ `
163
+ Examples:
164
+ Show this chat model: zero chat model
165
+ Switch this model: zero chat model claude-sonnet-5
166
+
167
+ Notes:
168
+ - Uses ZERO_CHAT_THREAD_ID from the current web chat thread
169
+ - Authenticates via ZERO_TOKEN (requires chat-thread:write capability to switch)`
170
+ ).action(
171
+ withErrorHandler(
172
+ async (model, options) => {
173
+ if (options.help) {
174
+ await printModelHelp(modelCommand);
175
+ return;
176
+ }
177
+ const threadId = getCurrentChatThreadId2();
178
+ if (!threadId) {
179
+ printUsageError2(
180
+ "ZERO_CHAT_THREAD_ID is not set",
181
+ "Run this command from a Zero web chat thread."
182
+ );
183
+ }
184
+ if (!model) {
185
+ await printCurrentModelAndChoices(threadId);
186
+ return;
187
+ }
188
+ await switchModel(threadId, model);
189
+ }
190
+ )
191
+ );
192
+
193
+ // src/commands/zero/chat/rename.ts
194
+ init_esm_shims();
195
+ function getCurrentChatThreadId3() {
196
+ return process.env.ZERO_CHAT_THREAD_ID?.trim() || void 0;
197
+ }
198
+ function printUsageError3(message, hint) {
199
+ console.error(source_default.red(`\u2717 ${message}`));
200
+ console.error(source_default.dim(` ${hint}`));
201
+ process.exit(1);
202
+ }
203
+ var renameCommand = new Command().name("rename").description("Rename the current web chat thread").argument("<title...>", "New chat title").option("--json", "Print machine-readable JSON").addHelpText(
204
+ "after",
205
+ `
206
+ Examples:
207
+ Rename this chat: zero chat rename "Launch plan"
208
+
209
+ Notes:
210
+ - Uses ZERO_CHAT_THREAD_ID from the current web chat thread
211
+ - Authenticates via ZERO_TOKEN (requires chat-thread:write capability)`
212
+ ).action(
213
+ withErrorHandler(async (titleParts, options) => {
214
+ const title = titleParts.join(" ").trim();
215
+ if (!title) {
216
+ printUsageError3(
217
+ "Title is required",
218
+ 'Run: zero chat rename "New title"'
219
+ );
220
+ }
221
+ const threadId = getCurrentChatThreadId3();
222
+ if (!threadId) {
223
+ printUsageError3(
224
+ "ZERO_CHAT_THREAD_ID is not set",
225
+ "Run this command from a Zero web chat thread."
226
+ );
227
+ }
228
+ const result = await renameZeroChatThread({ threadId, title });
229
+ if (options.json) {
230
+ console.log(JSON.stringify(result));
231
+ return;
232
+ }
233
+ console.log(source_default.green("\u2713 Chat title updated"));
234
+ console.log(source_default.dim(` Thread: ${result.threadId}`));
235
+ console.log(source_default.dim(` Title: ${result.title}`));
236
+ })
237
+ );
238
+
239
+ // src/commands/zero/chat/index.ts
240
+ var zeroChatCommand = new Command().name("chat").description("Manage the current web chat thread").addCommand(getCommand).addCommand(modelCommand).addCommand(renameCommand).addHelpText(
241
+ "after",
242
+ `
243
+ Examples:
244
+ Show this chat: zero chat get
245
+ Switch model: zero chat model claude-sonnet-5
246
+ Rename this chat: zero chat rename "Launch plan"`
247
+ );
248
+ export {
249
+ zeroChatCommand
250
+ };
251
+ //# sourceMappingURL=chat-QYR23VL5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/zero/chat/index.ts","../src/commands/zero/chat/get.ts","../src/commands/zero/chat/model.ts","../src/commands/zero/chat/rename.ts"],"sourcesContent":["import { Command } from \"commander\";\n\nimport { getCommand } from \"./get\";\nimport { modelCommand } from \"./model\";\nimport { renameCommand } from \"./rename\";\n\nexport const zeroChatCommand = new Command()\n .name(\"chat\")\n .description(\"Manage the current web chat thread\")\n .addCommand(getCommand)\n .addCommand(modelCommand)\n .addCommand(renameCommand)\n .addHelpText(\n \"after\",\n `\nExamples:\n Show this chat: zero chat get\n Switch model: zero chat model claude-sonnet-5\n Rename this chat: zero chat rename \"Launch plan\"`,\n );\n","import chalk from \"chalk\";\nimport { Command } from \"commander\";\n\nimport { getZeroChatThread } from \"../../../lib/api\";\nimport { withErrorHandler } from \"../../../lib/command\";\n\ninterface GetOptions {\n readonly json?: boolean;\n}\n\nfunction getCurrentChatThreadId(): string | undefined {\n return process.env.ZERO_CHAT_THREAD_ID?.trim() || undefined;\n}\n\nfunction printUsageError(message: string, hint: string): never {\n console.error(chalk.red(`✗ ${message}`));\n console.error(chalk.dim(` ${hint}`));\n process.exit(1);\n}\n\nexport const getCommand = new Command()\n .name(\"get\")\n .description(\"Show the current web chat thread\")\n .option(\"--json\", \"Print machine-readable JSON\")\n .addHelpText(\n \"after\",\n `\nExamples:\n Show this chat: zero chat get\n Print JSON: zero chat get --json\n\nNotes:\n - Uses ZERO_CHAT_THREAD_ID from the current web chat thread\n - Authenticates via ZERO_TOKEN (requires chat-thread:read capability)`,\n )\n .action(\n withErrorHandler(async (options: GetOptions) => {\n const threadId = getCurrentChatThreadId();\n if (!threadId) {\n printUsageError(\n \"ZERO_CHAT_THREAD_ID is not set\",\n \"Run this command from a Zero web chat thread.\",\n );\n }\n\n const thread = await getZeroChatThread({ threadId });\n if (options.json) {\n console.log(JSON.stringify(thread));\n return;\n }\n\n console.log(chalk.green(\"✓ Chat thread loaded\"));\n console.log(chalk.dim(` Thread: ${thread.id}`));\n console.log(chalk.dim(` Title: ${thread.title ?? \"(untitled)\"}`));\n console.log(\n chalk.dim(` Model: ${thread.selectedModel ?? \"(default)\"}`),\n );\n }),\n );\n","import chalk from \"chalk\";\nimport { Command } from \"commander\";\nimport {\n MODEL_FIRST_SELECTION_PROVIDER_ID,\n type ChatThreadMetadata,\n} from \"@vm0/api-contracts/contracts/chat-threads\";\nimport type { OrgModelPolicy } from \"@vm0/api-contracts/contracts/model-providers\";\n\nimport {\n getZeroChatThread,\n listZeroModelPolicies,\n updateZeroChatThreadModelSelection,\n} from \"../../../lib/api\";\nimport { withErrorHandler } from \"../../../lib/command\";\nimport { formatModelProviderRoute } from \"../../../lib/domain/model-policy-display\";\n\ninterface ModelOptions {\n readonly help?: boolean;\n}\n\nfunction getCurrentChatThreadId(): string | undefined {\n return process.env.ZERO_CHAT_THREAD_ID?.trim() || undefined;\n}\n\nfunction printUsageError(message: string, hint: string): never {\n console.error(chalk.red(`✗ ${message}`));\n console.error(chalk.dim(` ${hint}`));\n process.exit(1);\n}\n\nfunction switchablePolicies(policies: readonly OrgModelPolicy[]) {\n return policies.filter((policy) => {\n return policy.routeStatus === \"valid\";\n });\n}\n\nfunction formatModelName(policy: OrgModelPolicy): string {\n return `${policy.modelLabel} ${chalk.dim(`(${policy.model})`)}`;\n}\n\nfunction printSwitchableModels(policies: readonly OrgModelPolicy[]): void {\n const switchable = switchablePolicies(policies);\n if (switchable.length === 0) {\n console.log(chalk.dim(\"No switchable models are available for this user\"));\n return;\n }\n\n for (const policy of switchable) {\n const defaultMarker = policy.isDefault ? chalk.dim(\" (default)\") : \"\";\n console.log(` - ${formatModelName(policy)}${defaultMarker}`);\n console.log(` provider: ${formatModelProviderRoute(policy)}`);\n }\n}\n\nfunction printCurrentModel(thread: ChatThreadMetadata): void {\n console.log(chalk.green(\"✓ Chat thread loaded\"));\n console.log(chalk.dim(` Thread: ${thread.id}`));\n console.log(chalk.dim(` Title: ${thread.title ?? \"(untitled)\"}`));\n console.log(chalk.dim(` Model: ${thread.selectedModel ?? \"(default)\"}`));\n}\n\nasync function printModelHelp(command: Command): Promise<void> {\n const result = await listZeroModelPolicies();\n console.log(command.helpInformation().trimEnd());\n console.log();\n console.log(chalk.bold(\"Switchable models:\"));\n printSwitchableModels(result.policies);\n console.log();\n console.log(\"Use the model id in parentheses:\");\n console.log(chalk.cyan(\" zero chat model <model>\"));\n}\n\nasync function printCurrentModelAndChoices(threadId: string): Promise<void> {\n const [thread, result] = await Promise.all([\n getZeroChatThread({ threadId }),\n listZeroModelPolicies(),\n ]);\n\n printCurrentModel(thread);\n console.log();\n console.log(chalk.bold(\"Switchable models:\"));\n printSwitchableModels(result.policies);\n console.log();\n console.log(\"Switch models:\");\n console.log(chalk.cyan(\" zero chat model <model>\"));\n}\n\nasync function switchModel(threadId: string, model: string): Promise<void> {\n const result = await listZeroModelPolicies();\n const policy = result.policies.find((candidate) => {\n return candidate.model === model;\n });\n\n if (!policy) {\n printUsageError(`Unknown model: ${model}`, \"Run: zero chat model --help\");\n }\n\n if (policy.routeStatus !== \"valid\") {\n const reason = policy.routeStatusReason\n ? ` (${policy.routeStatusReason})`\n : \"\";\n printUsageError(\n `Model is not switchable: ${model}${reason}`,\n \"Run: zero chat model --help\",\n );\n }\n\n const updated = await updateZeroChatThreadModelSelection({\n threadId,\n modelSelection: {\n modelProviderId: MODEL_FIRST_SELECTION_PROVIDER_ID,\n selectedModel: model,\n },\n });\n\n console.log(chalk.green(\"✓ Chat model updated\"));\n console.log(chalk.dim(` Thread: ${updated.threadId}`));\n console.log(chalk.dim(` Model: ${policy.modelLabel} (${model})`));\n}\n\nexport const modelCommand = new Command()\n .name(\"model\")\n .description(\"Show or switch the current web chat thread model\")\n .argument(\"[model]\", \"Model id to use for this chat thread\")\n .helpOption(false)\n .option(\"-h, --help\", \"Show help with switchable models\")\n .addHelpText(\n \"after\",\n `\nExamples:\n Show this chat model: zero chat model\n Switch this model: zero chat model claude-sonnet-5\n\nNotes:\n - Uses ZERO_CHAT_THREAD_ID from the current web chat thread\n - Authenticates via ZERO_TOKEN (requires chat-thread:write capability to switch)`,\n )\n .action(\n withErrorHandler(\n async (model: string | undefined, options: ModelOptions) => {\n if (options.help) {\n await printModelHelp(modelCommand);\n return;\n }\n\n const threadId = getCurrentChatThreadId();\n if (!threadId) {\n printUsageError(\n \"ZERO_CHAT_THREAD_ID is not set\",\n \"Run this command from a Zero web chat thread.\",\n );\n }\n\n if (!model) {\n await printCurrentModelAndChoices(threadId);\n return;\n }\n\n await switchModel(threadId, model);\n },\n ),\n );\n","import chalk from \"chalk\";\nimport { Command } from \"commander\";\n\nimport { renameZeroChatThread } from \"../../../lib/api\";\nimport { withErrorHandler } from \"../../../lib/command\";\n\ninterface RenameOptions {\n readonly json?: boolean;\n}\n\nfunction getCurrentChatThreadId(): string | undefined {\n return process.env.ZERO_CHAT_THREAD_ID?.trim() || undefined;\n}\n\nfunction printUsageError(message: string, hint: string): never {\n console.error(chalk.red(`✗ ${message}`));\n console.error(chalk.dim(` ${hint}`));\n process.exit(1);\n}\n\nexport const renameCommand = new Command()\n .name(\"rename\")\n .description(\"Rename the current web chat thread\")\n .argument(\"<title...>\", \"New chat title\")\n .option(\"--json\", \"Print machine-readable JSON\")\n .addHelpText(\n \"after\",\n `\nExamples:\n Rename this chat: zero chat rename \"Launch plan\"\n\nNotes:\n - Uses ZERO_CHAT_THREAD_ID from the current web chat thread\n - Authenticates via ZERO_TOKEN (requires chat-thread:write capability)`,\n )\n .action(\n withErrorHandler(async (titleParts: string[], options: RenameOptions) => {\n const title = titleParts.join(\" \").trim();\n if (!title) {\n printUsageError(\n \"Title is required\",\n 'Run: zero chat rename \"New title\"',\n );\n }\n\n const threadId = getCurrentChatThreadId();\n if (!threadId) {\n printUsageError(\n \"ZERO_CHAT_THREAD_ID is not set\",\n \"Run this command from a Zero web chat thread.\",\n );\n }\n\n const result = await renameZeroChatThread({ threadId, title });\n if (options.json) {\n console.log(JSON.stringify(result));\n return;\n }\n\n console.log(chalk.green(\"✓ Chat title updated\"));\n console.log(chalk.dim(` Thread: ${result.threadId}`));\n console.log(chalk.dim(` Title: ${result.title}`));\n }),\n );\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;ACAA;AAUA,SAAS,yBAA6C;AACpD,SAAO,QAAQ,IAAI,qBAAqB,KAAK,KAAK;AACpD;AAEA,SAAS,gBAAgB,SAAiB,MAAqB;AAC7D,UAAQ,MAAM,eAAM,IAAI,UAAK,OAAO,EAAE,CAAC;AACvC,UAAQ,MAAM,eAAM,IAAI,KAAK,IAAI,EAAE,CAAC;AACpC,UAAQ,KAAK,CAAC;AAChB;AAEO,IAAM,aAAa,IAAI,QAAQ,EACnC,KAAK,KAAK,EACV,YAAY,kCAAkC,EAC9C,OAAO,UAAU,6BAA6B,EAC9C;AAAA,EACC;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQF,EACC;AAAA,EACC,iBAAiB,OAAO,YAAwB;AAC9C,UAAM,WAAW,uBAAuB;AACxC,QAAI,CAAC,UAAU;AACb;AAAA,QACE;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAEA,UAAM,SAAS,MAAM,kBAAkB,EAAE,SAAS,CAAC;AACnD,QAAI,QAAQ,MAAM;AAChB,cAAQ,IAAI,KAAK,UAAU,MAAM,CAAC;AAClC;AAAA,IACF;AAEA,YAAQ,IAAI,eAAM,MAAM,2BAAsB,CAAC;AAC/C,YAAQ,IAAI,eAAM,IAAI,aAAa,OAAO,EAAE,EAAE,CAAC;AAC/C,YAAQ,IAAI,eAAM,IAAI,aAAa,OAAO,SAAS,YAAY,EAAE,CAAC;AAClE,YAAQ;AAAA,MACN,eAAM,IAAI,aAAa,OAAO,iBAAiB,WAAW,EAAE;AAAA,IAC9D;AAAA,EACF,CAAC;AACH;;;AC1DF;AAoBA,SAASA,0BAA6C;AACpD,SAAO,QAAQ,IAAI,qBAAqB,KAAK,KAAK;AACpD;AAEA,SAASC,iBAAgB,SAAiB,MAAqB;AAC7D,UAAQ,MAAM,eAAM,IAAI,UAAK,OAAO,EAAE,CAAC;AACvC,UAAQ,MAAM,eAAM,IAAI,KAAK,IAAI,EAAE,CAAC;AACpC,UAAQ,KAAK,CAAC;AAChB;AAEA,SAAS,mBAAmB,UAAqC;AAC/D,SAAO,SAAS,OAAO,CAAC,WAAW;AACjC,WAAO,OAAO,gBAAgB;AAAA,EAChC,CAAC;AACH;AAEA,SAAS,gBAAgB,QAAgC;AACvD,SAAO,GAAG,OAAO,UAAU,IAAI,eAAM,IAAI,IAAI,OAAO,KAAK,GAAG,CAAC;AAC/D;AAEA,SAAS,sBAAsB,UAA2C;AACxE,QAAM,aAAa,mBAAmB,QAAQ;AAC9C,MAAI,WAAW,WAAW,GAAG;AAC3B,YAAQ,IAAI,eAAM,IAAI,kDAAkD,CAAC;AACzE;AAAA,EACF;AAEA,aAAW,UAAU,YAAY;AAC/B,UAAM,gBAAgB,OAAO,YAAY,eAAM,IAAI,YAAY,IAAI;AACnE,YAAQ,IAAI,OAAO,gBAAgB,MAAM,CAAC,GAAG,aAAa,EAAE;AAC5D,YAAQ,IAAI,iBAAiB,yBAAyB,MAAM,CAAC,EAAE;AAAA,EACjE;AACF;AAEA,SAAS,kBAAkB,QAAkC;AAC3D,UAAQ,IAAI,eAAM,MAAM,2BAAsB,CAAC;AAC/C,UAAQ,IAAI,eAAM,IAAI,aAAa,OAAO,EAAE,EAAE,CAAC;AAC/C,UAAQ,IAAI,eAAM,IAAI,aAAa,OAAO,SAAS,YAAY,EAAE,CAAC;AAClE,UAAQ,IAAI,eAAM,IAAI,aAAa,OAAO,iBAAiB,WAAW,EAAE,CAAC;AAC3E;AAEA,eAAe,eAAe,SAAiC;AAC7D,QAAM,SAAS,MAAM,sBAAsB;AAC3C,UAAQ,IAAI,QAAQ,gBAAgB,EAAE,QAAQ,CAAC;AAC/C,UAAQ,IAAI;AACZ,UAAQ,IAAI,eAAM,KAAK,oBAAoB,CAAC;AAC5C,wBAAsB,OAAO,QAAQ;AACrC,UAAQ,IAAI;AACZ,UAAQ,IAAI,kCAAkC;AAC9C,UAAQ,IAAI,eAAM,KAAK,2BAA2B,CAAC;AACrD;AAEA,eAAe,4BAA4B,UAAiC;AAC1E,QAAM,CAAC,QAAQ,MAAM,IAAI,MAAM,QAAQ,IAAI;AAAA,IACzC,kBAAkB,EAAE,SAAS,CAAC;AAAA,IAC9B,sBAAsB;AAAA,EACxB,CAAC;AAED,oBAAkB,MAAM;AACxB,UAAQ,IAAI;AACZ,UAAQ,IAAI,eAAM,KAAK,oBAAoB,CAAC;AAC5C,wBAAsB,OAAO,QAAQ;AACrC,UAAQ,IAAI;AACZ,UAAQ,IAAI,gBAAgB;AAC5B,UAAQ,IAAI,eAAM,KAAK,2BAA2B,CAAC;AACrD;AAEA,eAAe,YAAY,UAAkB,OAA8B;AACzE,QAAM,SAAS,MAAM,sBAAsB;AAC3C,QAAM,SAAS,OAAO,SAAS,KAAK,CAAC,cAAc;AACjD,WAAO,UAAU,UAAU;AAAA,EAC7B,CAAC;AAED,MAAI,CAAC,QAAQ;AACX,IAAAA,iBAAgB,kBAAkB,KAAK,IAAI,6BAA6B;AAAA,EAC1E;AAEA,MAAI,OAAO,gBAAgB,SAAS;AAClC,UAAM,SAAS,OAAO,oBAClB,KAAK,OAAO,iBAAiB,MAC7B;AACJ,IAAAA;AAAA,MACE,4BAA4B,KAAK,GAAG,MAAM;AAAA,MAC1C;AAAA,IACF;AAAA,EACF;AAEA,QAAM,UAAU,MAAM,mCAAmC;AAAA,IACvD;AAAA,IACA,gBAAgB;AAAA,MACd,iBAAiB;AAAA,MACjB,eAAe;AAAA,IACjB;AAAA,EACF,CAAC;AAED,UAAQ,IAAI,eAAM,MAAM,2BAAsB,CAAC;AAC/C,UAAQ,IAAI,eAAM,IAAI,aAAa,QAAQ,QAAQ,EAAE,CAAC;AACtD,UAAQ,IAAI,eAAM,IAAI,aAAa,OAAO,UAAU,KAAK,KAAK,GAAG,CAAC;AACpE;AAEO,IAAM,eAAe,IAAI,QAAQ,EACrC,KAAK,OAAO,EACZ,YAAY,kDAAkD,EAC9D,SAAS,WAAW,sCAAsC,EAC1D,WAAW,KAAK,EAChB,OAAO,cAAc,kCAAkC,EACvD;AAAA,EACC;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQF,EACC;AAAA,EACC;AAAA,IACE,OAAO,OAA2B,YAA0B;AAC1D,UAAI,QAAQ,MAAM;AAChB,cAAM,eAAe,YAAY;AACjC;AAAA,MACF;AAEA,YAAM,WAAWD,wBAAuB;AACxC,UAAI,CAAC,UAAU;AACb,QAAAC;AAAA,UACE;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAEA,UAAI,CAAC,OAAO;AACV,cAAM,4BAA4B,QAAQ;AAC1C;AAAA,MACF;AAEA,YAAM,YAAY,UAAU,KAAK;AAAA,IACnC;AAAA,EACF;AACF;;;ACjKF;AAUA,SAASC,0BAA6C;AACpD,SAAO,QAAQ,IAAI,qBAAqB,KAAK,KAAK;AACpD;AAEA,SAASC,iBAAgB,SAAiB,MAAqB;AAC7D,UAAQ,MAAM,eAAM,IAAI,UAAK,OAAO,EAAE,CAAC;AACvC,UAAQ,MAAM,eAAM,IAAI,KAAK,IAAI,EAAE,CAAC;AACpC,UAAQ,KAAK,CAAC;AAChB;AAEO,IAAM,gBAAgB,IAAI,QAAQ,EACtC,KAAK,QAAQ,EACb,YAAY,oCAAoC,EAChD,SAAS,cAAc,gBAAgB,EACvC,OAAO,UAAU,6BAA6B,EAC9C;AAAA,EACC;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOF,EACC;AAAA,EACC,iBAAiB,OAAO,YAAsB,YAA2B;AACvE,UAAM,QAAQ,WAAW,KAAK,GAAG,EAAE,KAAK;AACxC,QAAI,CAAC,OAAO;AACV,MAAAA;AAAA,QACE;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAEA,UAAM,WAAWD,wBAAuB;AACxC,QAAI,CAAC,UAAU;AACb,MAAAC;AAAA,QACE;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAEA,UAAM,SAAS,MAAM,qBAAqB,EAAE,UAAU,MAAM,CAAC;AAC7D,QAAI,QAAQ,MAAM;AAChB,cAAQ,IAAI,KAAK,UAAU,MAAM,CAAC;AAClC;AAAA,IACF;AAEA,YAAQ,IAAI,eAAM,MAAM,2BAAsB,CAAC;AAC/C,YAAQ,IAAI,eAAM,IAAI,aAAa,OAAO,QAAQ,EAAE,CAAC;AACrD,YAAQ,IAAI,eAAM,IAAI,aAAa,OAAO,KAAK,EAAE,CAAC;AAAA,EACpD,CAAC;AACH;;;AHzDK,IAAM,kBAAkB,IAAI,QAAQ,EACxC,KAAK,MAAM,EACX,YAAY,oCAAoC,EAChD,WAAW,UAAU,EACrB,WAAW,YAAY,EACvB,WAAW,aAAa,EACxB;AAAA,EACC;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAKF;","names":["getCurrentChatThreadId","printUsageError","getCurrentChatThreadId","printUsageError"]}
@@ -10,10 +10,10 @@ import {
10
10
  parseBoundedLogCount,
11
11
  parseSearchQuery,
12
12
  parseTime
13
- } from "./chunk-NC6FCDKK.js";
13
+ } from "./chunk-Y53PSHSE.js";
14
14
  import {
15
15
  searchZeroLogs
16
- } from "./chunk-4VMDT4EL.js";
16
+ } from "./chunk-WHUOCWWJ.js";
17
17
  import {
18
18
  withErrorHandler
19
19
  } from "./chunk-3F4RFLPX.js";
@@ -176,4 +176,4 @@ export {
176
176
  runLogsSearch,
177
177
  searchCommand
178
178
  };
179
- //# sourceMappingURL=chunk-OEAI3Q7W.js.map
179
+ //# sourceMappingURL=chunk-LZA5YDVV.js.map
@@ -3,7 +3,7 @@ import { createRequire as __createRequire } from "node:module";
3
3
  const require = __createRequire(import.meta.url);
4
4
  import {
5
5
  UNKNOWN_PERMISSION_GRANT
6
- } from "./chunk-4VMDT4EL.js";
6
+ } from "./chunk-WHUOCWWJ.js";
7
7
  import {
8
8
  init_esm_shims
9
9
  } from "./chunk-DIRAZ3YX.js";
@@ -3120,4 +3120,4 @@ export {
3120
3120
  getFirewallPermissionSummary,
3121
3121
  loadFirewallPermissionMetadata
3122
3122
  };
3123
- //# sourceMappingURL=chunk-5ERR7HTW.js.map
3123
+ //# sourceMappingURL=chunk-LZL6Y6FZ.js.map
@@ -5,7 +5,7 @@ import {
5
5
  CONNECTOR_TYPES,
6
6
  CONNECTOR_TYPE_KEYS,
7
7
  connectorAuthMethodIdSchema
8
- } from "./chunk-4VMDT4EL.js";
8
+ } from "./chunk-WHUOCWWJ.js";
9
9
  import {
10
10
  init_esm_shims
11
11
  } from "./chunk-DIRAZ3YX.js";
@@ -121,4 +121,4 @@ export {
121
121
  getConnectorStoredSecretDisplayInfo,
122
122
  getDiagnosticConnectorTypeForRuntimeEnvName
123
123
  };
124
- //# sourceMappingURL=chunk-MZSBZSJO.js.map
124
+ //# sourceMappingURL=chunk-N4DJI7YN.js.map
@@ -4,7 +4,7 @@ const require = __createRequire(import.meta.url);
4
4
  import {
5
5
  loadFirewallPermissionMetadata,
6
6
  resolveFirewallMetadataPolicies
7
- } from "./chunk-5ERR7HTW.js";
7
+ } from "./chunk-LZL6Y6FZ.js";
8
8
  import {
9
9
  source_default
10
10
  } from "./chunk-JUTUEPIR.js";
@@ -87,4 +87,4 @@ export {
87
87
  policyIcon,
88
88
  loadConnectorPermissionInfos
89
89
  };
90
- //# sourceMappingURL=chunk-EY2VZRB2.js.map
90
+ //# sourceMappingURL=chunk-R6O57E6O.js.map
@@ -50,7 +50,7 @@ if (DSN) {
50
50
  Sentry.init({
51
51
  dsn: DSN,
52
52
  environment: process.env.SENTRY_ENVIRONMENT ?? "production",
53
- release: "9.227.0",
53
+ release: "9.228.0",
54
54
  sendDefaultPii: false,
55
55
  tracesSampleRate: 0,
56
56
  shutdownTimeout: 500,
@@ -69,7 +69,7 @@ if (DSN) {
69
69
  }
70
70
  });
71
71
  Sentry.setContext("cli", {
72
- version: "9.227.0",
72
+ version: "9.228.0",
73
73
  command: process.argv.slice(2).join(" ")
74
74
  });
75
75
  Sentry.setContext("runtime", {
@@ -146,4 +146,4 @@ async function configureGlobalProxyFromEnv() {
146
146
  export {
147
147
  configureGlobalProxyFromEnv
148
148
  };
149
- //# sourceMappingURL=chunk-WSV35YDZ.js.map
149
+ //# sourceMappingURL=chunk-S7AF6RZT.js.map
@@ -10,7 +10,7 @@ import {
10
10
  splitPathSegments,
11
11
  validateAuthBaseUrl,
12
12
  validateBaseUrl
13
- } from "./chunk-4VMDT4EL.js";
13
+ } from "./chunk-WHUOCWWJ.js";
14
14
  import {
15
15
  init_esm_shims
16
16
  } from "./chunk-DIRAZ3YX.js";
@@ -1175,4 +1175,4 @@ export {
1175
1175
  matchFirewallBaseUrl,
1176
1176
  matchFirewallRequestDecision
1177
1177
  };
1178
- //# sourceMappingURL=chunk-GYQBZT25.js.map
1178
+ //# sourceMappingURL=chunk-TBPRMHWZ.js.map
@@ -3,7 +3,7 @@ import { createRequire as __createRequire } from "node:module";
3
3
  const require = __createRequire(import.meta.url);
4
4
  import {
5
5
  MODEL_PROVIDER_TYPES
6
- } from "./chunk-4VMDT4EL.js";
6
+ } from "./chunk-WHUOCWWJ.js";
7
7
  import {
8
8
  init_esm_shims
9
9
  } from "./chunk-DIRAZ3YX.js";
@@ -40,4 +40,4 @@ export {
40
40
  formatModelProviderRoute,
41
41
  formatModelPolicyStatus
42
42
  };
43
- //# sourceMappingURL=chunk-LBGX3XPM.js.map
43
+ //# sourceMappingURL=chunk-VVEDO2AJ.js.map
@@ -324,7 +324,7 @@ function isModelProviderTypeEnabled(type, featureStates) {
324
324
  const switchKey = GATED_MODEL_PROVIDER_FEATURE_SWITCHES[type];
325
325
  return switchKey ? featureStates?.[switchKey] === true : true;
326
326
  }
327
- var DEFAULT_ORG_MODEL_POLICY_DEFAULT_MODEL = "MiniMax-M3";
327
+ var DEFAULT_ORG_MODEL_POLICY_DEFAULT_MODEL = "claude-sonnet-4-6";
328
328
  var supportedRunModelSchema = external_exports.enum(SUPPORTED_RUN_MODELS);
329
329
  var modelProviderCredentialScopeSchema = external_exports.enum(["org", "member"]);
330
330
  var SUPPORTED_RUN_MODEL_SET = new Set(
@@ -6604,7 +6604,8 @@ var chatThreadDetailSchema = external_exports.object({
6604
6604
  });
6605
6605
  var chatThreadMetadataSchema = external_exports.object({
6606
6606
  id: external_exports.string(),
6607
- title: external_exports.string().nullable()
6607
+ title: external_exports.string().nullable(),
6608
+ selectedModel: external_exports.string().nullable()
6608
6609
  });
6609
6610
  var chatThreadDraftSchema = external_exports.object({
6610
6611
  draftContent: external_exports.string().nullable(),
@@ -6932,6 +6933,7 @@ var chatThreadModelSelectionContract = c15.router({
6932
6933
  400: apiErrorSchema,
6933
6934
  401: apiErrorSchema,
6934
6935
  402: apiErrorSchema,
6936
+ 403: apiErrorSchema,
6935
6937
  404: apiErrorSchema
6936
6938
  },
6937
6939
  summary: "Update a chat thread model selection"
@@ -24556,6 +24558,21 @@ async function getZeroChatThread(options) {
24556
24558
  }
24557
24559
  handleError(result, "Failed to get chat thread");
24558
24560
  }
24561
+ async function updateZeroChatThreadModelSelection(options) {
24562
+ const config = await getClientConfig();
24563
+ const client = initClient(chatThreadModelSelectionContract, config);
24564
+ const result = await client.update({
24565
+ params: { id: options.threadId },
24566
+ body: { modelSelection: options.modelSelection }
24567
+ });
24568
+ if (result.status === 204) {
24569
+ return {
24570
+ threadId: options.threadId,
24571
+ selectedModel: options.modelSelection?.selectedModel ?? null
24572
+ };
24573
+ }
24574
+ handleError(result, "Failed to update chat thread model");
24575
+ }
24559
24576
 
24560
24577
  // src/lib/api/domains/zero-developer-support.ts
24561
24578
  init_esm_shims();
@@ -26555,6 +26572,7 @@ var zeroWorkflowEventTypeSchema = external_exports.enum([
26555
26572
  "google-meet-transcript-generated",
26556
26573
  "notion-child-page-created",
26557
26574
  "notion-database-item-created",
26575
+ "notion-page-content-updated",
26558
26576
  "webhook-received"
26559
26577
  ]);
26560
26578
  var gmailTextMatchSchema = external_exports.object({
@@ -26669,6 +26687,36 @@ var notionDatabaseItemCreatedEventCreateConfigSchema = external_exports.object({
26669
26687
  event: external_exports.literal("database_item_created"),
26670
26688
  databaseUrl: external_exports.string().trim().min(1).max(2048)
26671
26689
  }).strict();
26690
+ var notionPageContentUpdatedScopeSchema = external_exports.discriminatedUnion(
26691
+ "type",
26692
+ [
26693
+ external_exports.object({
26694
+ type: external_exports.literal("page"),
26695
+ page: notionPageReferenceSchema
26696
+ }).strict(),
26697
+ external_exports.object({
26698
+ type: external_exports.literal("data_source"),
26699
+ dataSource: notionDataSourceReferenceSchema
26700
+ }).strict()
26701
+ ]
26702
+ );
26703
+ var notionPageContentUpdatedEventConfigSchema = external_exports.object({
26704
+ provider: external_exports.literal("notion"),
26705
+ event: external_exports.literal("page_content_updated"),
26706
+ connectorId: external_exports.string().uuid(),
26707
+ scope: notionPageContentUpdatedScopeSchema
26708
+ }).strict();
26709
+ var notionPageContentUpdatedEventCreateConfigSchema = external_exports.object({
26710
+ provider: external_exports.literal("notion"),
26711
+ event: external_exports.literal("page_content_updated"),
26712
+ pageUrl: external_exports.string().trim().min(1).max(2048).optional(),
26713
+ databaseUrl: external_exports.string().trim().min(1).max(2048).optional()
26714
+ }).strict().refine(
26715
+ (value) => {
26716
+ return value.pageUrl !== void 0 !== (value.databaseUrl !== void 0);
26717
+ },
26718
+ { message: "Provide exactly one of pageUrl or databaseUrl" }
26719
+ );
26672
26720
  var zeroWorkflowScheduleSchema = external_exports.discriminatedUnion("type", [
26673
26721
  external_exports.object({
26674
26722
  type: external_exports.literal("cron"),
@@ -26761,6 +26809,13 @@ var zeroWorkflowNotionDatabaseItemCreatedTriggerSummarySchema = zeroWorkflowTrig
26761
26809
  schedule: external_exports.null(),
26762
26810
  scheduleSummary: external_exports.null()
26763
26811
  });
26812
+ var zeroWorkflowNotionPageContentUpdatedTriggerSummarySchema = zeroWorkflowTriggerSummaryBaseSchema.extend({
26813
+ kind: external_exports.literal("event"),
26814
+ eventType: external_exports.literal("notion-page-content-updated"),
26815
+ eventConfig: notionPageContentUpdatedEventConfigSchema,
26816
+ schedule: external_exports.null(),
26817
+ scheduleSummary: external_exports.null()
26818
+ });
26764
26819
  var zeroWorkflowWebhookReceivedTriggerSummarySchema = zeroWorkflowTriggerSummaryBaseSchema.extend({
26765
26820
  kind: external_exports.literal("event"),
26766
26821
  eventType: external_exports.literal("webhook-received"),
@@ -26784,6 +26839,7 @@ var zeroWorkflowEventTriggerSummarySchema = external_exports.discriminatedUnion(
26784
26839
  zeroWorkflowGoogleMeetTranscriptGeneratedTriggerSummarySchema,
26785
26840
  zeroWorkflowNotionChildPageCreatedTriggerSummarySchema,
26786
26841
  zeroWorkflowNotionDatabaseItemCreatedTriggerSummarySchema,
26842
+ zeroWorkflowNotionPageContentUpdatedTriggerSummarySchema,
26787
26843
  zeroWorkflowWebhookReceivedTriggerSummarySchema
26788
26844
  ]
26789
26845
  );
@@ -26871,6 +26927,13 @@ var chatThreadWorkflowNotionDatabaseItemCreatedTriggerSchema = chatThreadWorkflo
26871
26927
  schedule: external_exports.null(),
26872
26928
  scheduleSummary: external_exports.null()
26873
26929
  });
26930
+ var chatThreadWorkflowNotionPageContentUpdatedTriggerSchema = chatThreadWorkflowTriggerBaseSchema.extend({
26931
+ kind: external_exports.literal("event"),
26932
+ eventType: external_exports.literal("notion-page-content-updated"),
26933
+ eventConfig: notionPageContentUpdatedEventConfigSchema,
26934
+ schedule: external_exports.null(),
26935
+ scheduleSummary: external_exports.null()
26936
+ });
26874
26937
  var chatThreadWorkflowTriggerSchema = external_exports.union([
26875
26938
  chatThreadWorkflowScheduleTriggerSchema,
26876
26939
  chatThreadWorkflowGmailNewMessageTriggerSchema,
@@ -26881,7 +26944,8 @@ var chatThreadWorkflowTriggerSchema = external_exports.union([
26881
26944
  chatThreadWorkflowGoogleCalendarEventCancelledTriggerSchema,
26882
26945
  chatThreadWorkflowGoogleMeetTranscriptGeneratedTriggerSchema,
26883
26946
  chatThreadWorkflowNotionChildPageCreatedTriggerSchema,
26884
- chatThreadWorkflowNotionDatabaseItemCreatedTriggerSchema
26947
+ chatThreadWorkflowNotionDatabaseItemCreatedTriggerSchema,
26948
+ chatThreadWorkflowNotionPageContentUpdatedTriggerSchema
26885
26949
  ]);
26886
26950
  var zeroWorkflowScheduleTriggerCreateRequestSchema = external_exports.object({
26887
26951
  kind: external_exports.literal("schedule").optional(),
@@ -26960,6 +27024,12 @@ var zeroWorkflowNotionDatabaseItemCreatedTriggerCreateRequestSchema = external_e
26960
27024
  eventConfig: notionDatabaseItemCreatedEventCreateConfigSchema,
26961
27025
  enabled: external_exports.boolean().optional()
26962
27026
  });
27027
+ var zeroWorkflowNotionPageContentUpdatedTriggerCreateRequestSchema = external_exports.object({
27028
+ kind: external_exports.literal("event"),
27029
+ eventType: external_exports.literal("notion-page-content-updated"),
27030
+ eventConfig: notionPageContentUpdatedEventCreateConfigSchema,
27031
+ enabled: external_exports.boolean().optional()
27032
+ });
26963
27033
  var zeroWorkflowWebhookReceivedTriggerCreateRequestSchema = external_exports.object({
26964
27034
  kind: external_exports.literal("event"),
26965
27035
  eventType: external_exports.literal("webhook-received"),
@@ -26977,6 +27047,7 @@ var zeroWorkflowTriggerCreateRequestSchema = external_exports.union([
26977
27047
  zeroWorkflowGoogleMeetTranscriptGeneratedTriggerCreateRequestSchema,
26978
27048
  zeroWorkflowNotionChildPageCreatedTriggerCreateRequestSchema,
26979
27049
  zeroWorkflowNotionDatabaseItemCreatedTriggerCreateRequestSchema,
27050
+ zeroWorkflowNotionPageContentUpdatedTriggerCreateRequestSchema,
26980
27051
  zeroWorkflowWebhookReceivedTriggerCreateRequestSchema
26981
27052
  ]);
26982
27053
  var zeroWorkflowScheduleTriggerUpdateRequestSchema = external_exports.object({
@@ -28729,6 +28800,7 @@ export {
28729
28800
  deleteZeroOrgModelProvider,
28730
28801
  listZeroModelPolicies,
28731
28802
  hostedArtifactKindSchema,
28803
+ MODEL_FIRST_SELECTION_PROVIDER_ID,
28732
28804
  persistedAttachmentSchema,
28733
28805
  zeroAgentVisibilitySchema,
28734
28806
  createZeroAgent,
@@ -28794,6 +28866,7 @@ export {
28794
28866
  searchZeroChat,
28795
28867
  renameZeroChatThread,
28796
28868
  getZeroChatThread,
28869
+ updateZeroChatThreadModelSelection,
28797
28870
  resolveZeroRelationship,
28798
28871
  searchZeroRelationships,
28799
28872
  getSystemLog,
@@ -28817,4 +28890,4 @@ export {
28817
28890
  completeHostedSite,
28818
28891
  getHostedSiteFiles
28819
28892
  };
28820
- //# sourceMappingURL=chunk-4VMDT4EL.js.map
28893
+ //# sourceMappingURL=chunk-WHUOCWWJ.js.map