@vm0/cli 9.226.2 → 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.
- package/{agent-36KUIJCS.js → agent-AVRAE7H3.js} +4 -4
- package/{banking-S4AGLKIK.js → banking-VNDPFJ7G.js} +2 -2
- package/chat-QYR23VL5.js +251 -0
- package/chat-QYR23VL5.js.map +1 -0
- package/{chunk-7JYIXSUB.js → chunk-LZA5YDVV.js} +3 -3
- package/{chunk-CNVZC4Y4.js → chunk-LZL6Y6FZ.js} +13 -2
- package/chunk-LZL6Y6FZ.js.map +1 -0
- package/{chunk-ZKCEXAW3.js → chunk-N4DJI7YN.js} +2 -2
- package/{chunk-7CEXOKPL.js → chunk-R6O57E6O.js} +2 -2
- package/{chunk-VFM3WEQU.js → chunk-S7AF6RZT.js} +3 -3
- package/{chunk-PW7WFZ4T.js → chunk-TBPRMHWZ.js} +2 -2
- package/{chunk-EQ4GJMSF.js → chunk-VVEDO2AJ.js} +2 -2
- package/{chunk-HR4J3EDW.js → chunk-WHUOCWWJ.js} +202 -8
- package/chunk-WHUOCWWJ.js.map +1 -0
- package/{chunk-OSLFTEBH.js → chunk-Y53PSHSE.js} +400 -255
- package/chunk-Y53PSHSE.js.map +1 -0
- package/{computer-use-FY33UITI.js → computer-use-DZTEGWNI.js} +2 -2
- package/{connector-RE2QSFZO.js → connector-TNHNZV37.js} +2 -2
- package/{credit-6RTYNDHA.js → credit-2H2TE25G.js} +2 -2
- package/{developer-support-2O4DJ46M.js → developer-support-BIONYRPW.js} +2 -2
- package/{doctor-MNKUDIQ2.js → doctor-C24PE4CN.js} +44 -9
- package/doctor-C24PE4CN.js.map +1 -0
- package/{generate-7UQ3BMDO.js → generate-OIQ4ULPQ.js} +2 -2
- package/{github-VL2XRXXX.js → github-A5N72AOS.js} +2 -2
- package/{goal-M7U2XRBX.js → goal-EF3CEJ5W.js} +2 -2
- package/{host-Q6S5UZFP.js → host-3EFN2UW5.js} +2 -2
- package/index.js +13 -13
- package/{logs-HA4DC2VQ.js → logs-UO3Q4N52.js} +6 -6
- package/{maps-7WODQNR2.js → maps-36PXQ4UC.js} +2 -2
- package/{model-3HBNYDFX.js → model-2R73XQB3.js} +3 -3
- package/{model-provider-XGE72NUU.js → model-provider-6NY5M3SX.js} +3 -3
- package/{org-VNT2IFVT.js → org-OJUPCMZD.js} +2 -2
- package/package.json +1 -1
- package/{phone-LNQM75EU.js → phone-3RAJ7CI5.js} +2 -2
- package/playstation.generated-EO2KTNGH.js +56 -0
- package/playstation.generated-EO2KTNGH.js.map +1 -0
- package/playstation.generated-VUP5P7ES.js +111 -0
- package/playstation.generated-VUP5P7ES.js.map +1 -0
- package/{preference-H5QZXCOZ.js → preference-27LSVG3G.js} +2 -2
- package/{relationship-UWCN35XA.js → relationship-ZDXQRSMT.js} +2 -2
- package/{resource-JG3TLIBU.js → resource-S4S7WL4V.js} +2 -2
- package/{search-AECSZYRS.js → search-T2YSO5PV.js} +6 -6
- package/{secret-LHHFTS4C.js → secret-XGKRNEKZ.js} +3 -3
- package/{slack-G7M54QDB.js → slack-TL56Y7MM.js} +2 -2
- package/{telegram-RABHSIEN.js → telegram-I3FWSYPK.js} +2 -2
- package/{variable-REPSLXQI.js → variable-ZLXF6KGW.js} +2 -2
- package/{web-PZKV6H6Z.js → web-HMW5IP25.js} +2 -2
- package/{whoami-UO4XVGSP.js → whoami-MHYDLS5U.js} +4 -4
- package/{workflow-KK4X547Z.js → workflow-DPC6GNHX.js} +120 -4
- package/workflow-DPC6GNHX.js.map +1 -0
- package/zero.js +31 -31
- package/chat-GBNVHPMG.js +0 -123
- package/chat-GBNVHPMG.js.map +0 -1
- package/chunk-CNVZC4Y4.js.map +0 -1
- package/chunk-HR4J3EDW.js.map +0 -1
- package/chunk-OSLFTEBH.js.map +0 -1
- package/doctor-MNKUDIQ2.js.map +0 -1
- package/workflow-KK4X547Z.js.map +0 -1
- /package/{agent-36KUIJCS.js.map → agent-AVRAE7H3.js.map} +0 -0
- /package/{banking-S4AGLKIK.js.map → banking-VNDPFJ7G.js.map} +0 -0
- /package/{chunk-7JYIXSUB.js.map → chunk-LZA5YDVV.js.map} +0 -0
- /package/{chunk-ZKCEXAW3.js.map → chunk-N4DJI7YN.js.map} +0 -0
- /package/{chunk-7CEXOKPL.js.map → chunk-R6O57E6O.js.map} +0 -0
- /package/{chunk-VFM3WEQU.js.map → chunk-S7AF6RZT.js.map} +0 -0
- /package/{chunk-PW7WFZ4T.js.map → chunk-TBPRMHWZ.js.map} +0 -0
- /package/{chunk-EQ4GJMSF.js.map → chunk-VVEDO2AJ.js.map} +0 -0
- /package/{computer-use-FY33UITI.js.map → computer-use-DZTEGWNI.js.map} +0 -0
- /package/{connector-RE2QSFZO.js.map → connector-TNHNZV37.js.map} +0 -0
- /package/{credit-6RTYNDHA.js.map → credit-2H2TE25G.js.map} +0 -0
- /package/{developer-support-2O4DJ46M.js.map → developer-support-BIONYRPW.js.map} +0 -0
- /package/{generate-7UQ3BMDO.js.map → generate-OIQ4ULPQ.js.map} +0 -0
- /package/{github-VL2XRXXX.js.map → github-A5N72AOS.js.map} +0 -0
- /package/{goal-M7U2XRBX.js.map → goal-EF3CEJ5W.js.map} +0 -0
- /package/{host-Q6S5UZFP.js.map → host-3EFN2UW5.js.map} +0 -0
- /package/{logs-HA4DC2VQ.js.map → logs-UO3Q4N52.js.map} +0 -0
- /package/{maps-7WODQNR2.js.map → maps-36PXQ4UC.js.map} +0 -0
- /package/{model-3HBNYDFX.js.map → model-2R73XQB3.js.map} +0 -0
- /package/{model-provider-XGE72NUU.js.map → model-provider-6NY5M3SX.js.map} +0 -0
- /package/{org-VNT2IFVT.js.map → org-OJUPCMZD.js.map} +0 -0
- /package/{phone-LNQM75EU.js.map → phone-3RAJ7CI5.js.map} +0 -0
- /package/{preference-H5QZXCOZ.js.map → preference-27LSVG3G.js.map} +0 -0
- /package/{relationship-UWCN35XA.js.map → relationship-ZDXQRSMT.js.map} +0 -0
- /package/{resource-JG3TLIBU.js.map → resource-S4S7WL4V.js.map} +0 -0
- /package/{search-AECSZYRS.js.map → search-T2YSO5PV.js.map} +0 -0
- /package/{secret-LHHFTS4C.js.map → secret-XGKRNEKZ.js.map} +0 -0
- /package/{slack-G7M54QDB.js.map → slack-TL56Y7MM.js.map} +0 -0
- /package/{telegram-RABHSIEN.js.map → telegram-I3FWSYPK.js.map} +0 -0
- /package/{variable-REPSLXQI.js.map → variable-ZLXF6KGW.js.map} +0 -0
- /package/{web-PZKV6H6Z.js.map → web-HMW5IP25.js.map} +0 -0
- /package/{whoami-UO4XVGSP.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-
|
|
7
|
+
} from "./chunk-R6O57E6O.js";
|
|
8
8
|
import {
|
|
9
9
|
permissionGrantsToFirewallPolicies
|
|
10
|
-
} from "./chunk-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
118
|
+
//# sourceMappingURL=banking-VNDPFJ7G.js.map
|
package/chat-QYR23VL5.js
ADDED
|
@@ -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":"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","names":["getCurrentChatThreadId","printUsageError","getCurrentChatThreadId","printUsageError"]}
|
|
@@ -10,10 +10,10 @@ import {
|
|
|
10
10
|
parseBoundedLogCount,
|
|
11
11
|
parseSearchQuery,
|
|
12
12
|
parseTime
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-Y53PSHSE.js";
|
|
14
14
|
import {
|
|
15
15
|
searchZeroLogs
|
|
16
|
-
} from "./chunk-
|
|
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-
|
|
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-
|
|
6
|
+
} from "./chunk-WHUOCWWJ.js";
|
|
7
7
|
import {
|
|
8
8
|
init_esm_shims
|
|
9
9
|
} from "./chunk-DIRAZ3YX.js";
|
|
@@ -683,6 +683,9 @@ var FIREWALL_PERMISSION_METADATA_LOADERS = Object.assign(/* @__PURE__ */ Object.
|
|
|
683
683
|
["plausible"]: async () => {
|
|
684
684
|
return (await import("./plausible.generated-TQ5SDBMJ.js"))["firewallPermissionMetadata"];
|
|
685
685
|
},
|
|
686
|
+
["playstation"]: async () => {
|
|
687
|
+
return (await import("./playstation.generated-EO2KTNGH.js"))["firewallPermissionMetadata"];
|
|
688
|
+
},
|
|
686
689
|
["podchaser"]: async () => {
|
|
687
690
|
return (await import("./podchaser.generated-NESGJBNX.js"))["firewallPermissionMetadata"];
|
|
688
691
|
},
|
|
@@ -2416,6 +2419,14 @@ var FIREWALL_PERMISSION_METADATA_SUMMARIES = {
|
|
|
2416
2419
|
"hasCategories": false,
|
|
2417
2420
|
"hasDefaultPolicyOverrides": false
|
|
2418
2421
|
},
|
|
2422
|
+
"playstation": {
|
|
2423
|
+
"type": "playstation",
|
|
2424
|
+
"label": "PlayStation",
|
|
2425
|
+
"hasPermissions": true,
|
|
2426
|
+
"permissionCount": 8,
|
|
2427
|
+
"hasCategories": false,
|
|
2428
|
+
"hasDefaultPolicyOverrides": true
|
|
2429
|
+
},
|
|
2419
2430
|
"podchaser": {
|
|
2420
2431
|
"type": "podchaser",
|
|
2421
2432
|
"label": "Podchaser",
|
|
@@ -3109,4 +3120,4 @@ export {
|
|
|
3109
3120
|
getFirewallPermissionSummary,
|
|
3110
3121
|
loadFirewallPermissionMetadata
|
|
3111
3122
|
};
|
|
3112
|
-
//# sourceMappingURL=chunk-
|
|
3123
|
+
//# sourceMappingURL=chunk-LZL6Y6FZ.js.map
|