@vm0/cli 9.132.0 → 9.132.2
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/{chunk-3OOH3FG4.js → chunk-SRDBBQRJ.js} +219 -105
- package/chunk-SRDBBQRJ.js.map +1 -0
- package/index.js +9 -9
- package/package.json +1 -1
- package/zero.js +32 -242
- package/zero.js.map +1 -1
- package/chunk-3OOH3FG4.js.map +0 -1
package/index.js
CHANGED
|
@@ -62,7 +62,7 @@ import {
|
|
|
62
62
|
source_default,
|
|
63
63
|
volumeConfigSchema,
|
|
64
64
|
withErrorHandler
|
|
65
|
-
} from "./chunk-
|
|
65
|
+
} from "./chunk-SRDBBQRJ.js";
|
|
66
66
|
import {
|
|
67
67
|
__commonJS,
|
|
68
68
|
__require,
|
|
@@ -7771,7 +7771,7 @@ function getConfigPath() {
|
|
|
7771
7771
|
return join(homedir(), ".vm0", "config.json");
|
|
7772
7772
|
}
|
|
7773
7773
|
var infoCommand = new Command().name("info").description("Display environment and debug information").action(async () => {
|
|
7774
|
-
console.log(source_default.bold(`VM0 CLI v${"9.132.
|
|
7774
|
+
console.log(source_default.bold(`VM0 CLI v${"9.132.2"}`));
|
|
7775
7775
|
console.log();
|
|
7776
7776
|
const config = await loadConfig();
|
|
7777
7777
|
const hasEnvToken = !!process.env.VM0_TOKEN;
|
|
@@ -11711,7 +11711,7 @@ var composeCommand = new Command().name("compose").description("Create or update
|
|
|
11711
11711
|
options.autoUpdate = false;
|
|
11712
11712
|
}
|
|
11713
11713
|
if (options.autoUpdate !== false) {
|
|
11714
|
-
await startSilentUpgrade("9.132.
|
|
11714
|
+
await startSilentUpgrade("9.132.2");
|
|
11715
11715
|
}
|
|
11716
11716
|
try {
|
|
11717
11717
|
let result;
|
|
@@ -11803,7 +11803,7 @@ var mainRunCommand = new Command().name("run").description("Run an agent").argum
|
|
|
11803
11803
|
withErrorHandler(
|
|
11804
11804
|
async (identifier, prompt, options) => {
|
|
11805
11805
|
if (options.autoUpdate !== false) {
|
|
11806
|
-
await startSilentUpgrade("9.132.
|
|
11806
|
+
await startSilentUpgrade("9.132.2");
|
|
11807
11807
|
}
|
|
11808
11808
|
const { name, version } = parseIdentifier(identifier);
|
|
11809
11809
|
let composeId;
|
|
@@ -13576,13 +13576,13 @@ var upgradeCommand = new Command().name("upgrade").description("Upgrade vm0 CLI
|
|
|
13576
13576
|
if (latestVersion === null) {
|
|
13577
13577
|
throw new Error("Could not check for updates. Please try again later.");
|
|
13578
13578
|
}
|
|
13579
|
-
if (latestVersion === "9.132.
|
|
13580
|
-
console.log(source_default.green(`\u2713 Already up to date (${"9.132.
|
|
13579
|
+
if (latestVersion === "9.132.2") {
|
|
13580
|
+
console.log(source_default.green(`\u2713 Already up to date (${"9.132.2"})`));
|
|
13581
13581
|
return;
|
|
13582
13582
|
}
|
|
13583
13583
|
console.log(
|
|
13584
13584
|
source_default.yellow(
|
|
13585
|
-
`Current version: ${"9.132.
|
|
13585
|
+
`Current version: ${"9.132.2"} -> Latest version: ${latestVersion}`
|
|
13586
13586
|
)
|
|
13587
13587
|
);
|
|
13588
13588
|
console.log();
|
|
@@ -13609,7 +13609,7 @@ var upgradeCommand = new Command().name("upgrade").description("Upgrade vm0 CLI
|
|
|
13609
13609
|
const success = await performUpgrade(packageManager);
|
|
13610
13610
|
if (success) {
|
|
13611
13611
|
console.log(
|
|
13612
|
-
source_default.green(`\u2713 Upgraded from ${"9.132.
|
|
13612
|
+
source_default.green(`\u2713 Upgraded from ${"9.132.2"} to ${latestVersion}`)
|
|
13613
13613
|
);
|
|
13614
13614
|
return;
|
|
13615
13615
|
}
|
|
@@ -13676,7 +13676,7 @@ var whoamiCommand = new Command().name("whoami").description("Show current ident
|
|
|
13676
13676
|
|
|
13677
13677
|
// src/index.ts
|
|
13678
13678
|
var program = new Command();
|
|
13679
|
-
program.name("vm0").description("VM0 CLI - Build and run agents with natural language").version("9.132.
|
|
13679
|
+
program.name("vm0").description("VM0 CLI - Build and run agents with natural language").version("9.132.2");
|
|
13680
13680
|
program.addCommand(authCommand);
|
|
13681
13681
|
program.addCommand(infoCommand);
|
|
13682
13682
|
program.addCommand(composeCommand);
|
package/package.json
CHANGED
package/zero.js
CHANGED
|
@@ -13,7 +13,6 @@ import {
|
|
|
13
13
|
completeSlackFileUpload,
|
|
14
14
|
configureGlobalProxyFromEnv,
|
|
15
15
|
connectorTypeSchema,
|
|
16
|
-
createPhoneCall,
|
|
17
16
|
createSkill,
|
|
18
17
|
createZeroAgent,
|
|
19
18
|
createZeroRun,
|
|
@@ -42,7 +41,6 @@ import {
|
|
|
42
41
|
getDefaultAuthMethod,
|
|
43
42
|
getDefaultModel,
|
|
44
43
|
getModels,
|
|
45
|
-
getPhoneCallDetail,
|
|
46
44
|
getSecretsForAuthMethod,
|
|
47
45
|
getSelectableProviderTypes,
|
|
48
46
|
getSkill,
|
|
@@ -64,7 +62,6 @@ import {
|
|
|
64
62
|
isInteractive,
|
|
65
63
|
isUUID,
|
|
66
64
|
leaveZeroOrg,
|
|
67
|
-
listPhoneCalls,
|
|
68
65
|
listSkills,
|
|
69
66
|
listZeroAgents,
|
|
70
67
|
listZeroConnectors,
|
|
@@ -115,7 +112,7 @@ import {
|
|
|
115
112
|
upsertZeroOrgModelProvider,
|
|
116
113
|
withErrorHandler,
|
|
117
114
|
zeroAgentCustomSkillNameSchema
|
|
118
|
-
} from "./chunk-
|
|
115
|
+
} from "./chunk-SRDBBQRJ.js";
|
|
119
116
|
import {
|
|
120
117
|
__toESM,
|
|
121
118
|
init_esm_shims
|
|
@@ -4008,27 +4005,6 @@ var agentmailFirewall = {
|
|
|
4008
4005
|
]
|
|
4009
4006
|
};
|
|
4010
4007
|
|
|
4011
|
-
// ../../packages/core/src/firewalls/agentphone.generated.ts
|
|
4012
|
-
init_esm_shims();
|
|
4013
|
-
var agentphoneFirewall = {
|
|
4014
|
-
name: "agentphone",
|
|
4015
|
-
description: "AgentPhone API",
|
|
4016
|
-
placeholders: {
|
|
4017
|
-
AGENTPHONE_TOKEN: "ap_test_c0ffee5afe10ca1c0ffee5afe10ca1c"
|
|
4018
|
-
},
|
|
4019
|
-
apis: [
|
|
4020
|
-
{
|
|
4021
|
-
base: "https://api.agentphone.to",
|
|
4022
|
-
auth: {
|
|
4023
|
-
headers: {
|
|
4024
|
-
Authorization: "Bearer ${{ secrets.AGENTPHONE_TOKEN }}"
|
|
4025
|
-
}
|
|
4026
|
-
},
|
|
4027
|
-
permissions: []
|
|
4028
|
-
}
|
|
4029
|
-
]
|
|
4030
|
-
};
|
|
4031
|
-
|
|
4032
4008
|
// ../../packages/core/src/firewalls/amplitude.generated.ts
|
|
4033
4009
|
init_esm_shims();
|
|
4034
4010
|
var amplitudeFirewall = {
|
|
@@ -4824,6 +4800,27 @@ var browserbaseFirewall = {
|
|
|
4824
4800
|
]
|
|
4825
4801
|
};
|
|
4826
4802
|
|
|
4803
|
+
// ../../packages/core/src/firewalls/browser-use.generated.ts
|
|
4804
|
+
init_esm_shims();
|
|
4805
|
+
var browserUseFirewall = {
|
|
4806
|
+
name: "browser-use",
|
|
4807
|
+
description: "Browser Use",
|
|
4808
|
+
placeholders: {
|
|
4809
|
+
BROWSER_USE_TOKEN: "bu_CoffeeSafeLocalCoffeeSafeLocalCoffee"
|
|
4810
|
+
},
|
|
4811
|
+
apis: [
|
|
4812
|
+
{
|
|
4813
|
+
base: "https://api.browser-use.com",
|
|
4814
|
+
auth: {
|
|
4815
|
+
headers: {
|
|
4816
|
+
"X-Browser-Use-API-Key": "${{ secrets.BROWSER_USE_TOKEN }}"
|
|
4817
|
+
}
|
|
4818
|
+
},
|
|
4819
|
+
permissions: []
|
|
4820
|
+
}
|
|
4821
|
+
]
|
|
4822
|
+
};
|
|
4823
|
+
|
|
4827
4824
|
// ../../packages/core/src/firewalls/browserless.generated.ts
|
|
4828
4825
|
init_esm_shims();
|
|
4829
4826
|
var browserlessFirewall = {
|
|
@@ -13238,7 +13235,6 @@ var zoomFirewall = {
|
|
|
13238
13235
|
// ../../packages/core/src/firewalls/index.ts
|
|
13239
13236
|
var CONNECTOR_FIREWALLS = {
|
|
13240
13237
|
agentmail: agentmailFirewall,
|
|
13241
|
-
agentphone: agentphoneFirewall,
|
|
13242
13238
|
amplitude: amplitudeFirewall,
|
|
13243
13239
|
"anthropic-managed-agents": anthropicManagedAgentsFirewall,
|
|
13244
13240
|
ahrefs: ahrefsFirewall,
|
|
@@ -13255,6 +13251,7 @@ var CONNECTOR_FIREWALLS = {
|
|
|
13255
13251
|
brevo: brevoFirewall,
|
|
13256
13252
|
"bright-data": brightDataFirewall,
|
|
13257
13253
|
browserbase: browserbaseFirewall,
|
|
13254
|
+
"browser-use": browserUseFirewall,
|
|
13258
13255
|
browserless: browserlessFirewall,
|
|
13259
13256
|
buffer: bufferFirewall,
|
|
13260
13257
|
"cal-com": calComFirewall,
|
|
@@ -13895,11 +13892,6 @@ var FEATURE_SWITCHES = {
|
|
|
13895
13892
|
description: "Show the data export option in account menu",
|
|
13896
13893
|
enabled: false
|
|
13897
13894
|
},
|
|
13898
|
-
["showSystemPrompt" /* ShowSystemPrompt */]: {
|
|
13899
|
-
maintainer: "ethan@vm0.ai",
|
|
13900
|
-
description: "Show the appended system prompt in activity detail steps",
|
|
13901
|
-
enabled: false
|
|
13902
|
-
},
|
|
13903
13895
|
["usageAnalytics" /* UsageAnalytics */]: {
|
|
13904
13896
|
maintainer: "ethan@vm0.ai",
|
|
13905
13897
|
description: "Show admin-only daily credits chart and per-run records on Usage page",
|
|
@@ -13910,14 +13902,9 @@ var FEATURE_SWITCHES = {
|
|
|
13910
13902
|
description: "Show the selected model name in activity details",
|
|
13911
13903
|
enabled: false
|
|
13912
13904
|
},
|
|
13913
|
-
["activityLogList" /* ActivityLogList */]: {
|
|
13914
|
-
maintainer: "ethan@vm0.ai",
|
|
13915
|
-
description: "Show the Activities list page and breadcrumb navigation",
|
|
13916
|
-
enabled: false
|
|
13917
|
-
},
|
|
13918
13905
|
["zeroDebug" /* ZeroDebug */]: {
|
|
13919
13906
|
maintainer: "ethan@vm0.ai",
|
|
13920
|
-
description: "Reveal debug
|
|
13907
|
+
description: "Reveal activity debug surfaces, activity log navigation, appended system prompts, and Debug preferences",
|
|
13921
13908
|
enabled: false
|
|
13922
13909
|
},
|
|
13923
13910
|
["computerUse" /* ComputerUse */]: {
|
|
@@ -13935,15 +13922,10 @@ var FEATURE_SWITCHES = {
|
|
|
13935
13922
|
description: "Show audit log links in Slack messages",
|
|
13936
13923
|
enabled: false
|
|
13937
13924
|
},
|
|
13938
|
-
["phoneIntegration" /* PhoneIntegration */]: {
|
|
13939
|
-
maintainer: "ethan@vm0.ai",
|
|
13940
|
-
description: "Show the Phone page for voice call integration",
|
|
13941
|
-
enabled: false
|
|
13942
|
-
},
|
|
13943
13925
|
["audioInput" /* AudioInput */]: {
|
|
13944
13926
|
maintainer: "lancy@vm0.ai",
|
|
13945
13927
|
description: "Enable voice input (microphone + STT) in chat \u2014 gates the mic button and the /api/zero/voice-io/stt route",
|
|
13946
|
-
enabled:
|
|
13928
|
+
enabled: true
|
|
13947
13929
|
},
|
|
13948
13930
|
["audioOutput" /* AudioOutput */]: {
|
|
13949
13931
|
maintainer: "lancy@vm0.ai",
|
|
@@ -13955,11 +13937,6 @@ var FEATURE_SWITCHES = {
|
|
|
13955
13937
|
description: "Enable automatic skill creation in agent prompts",
|
|
13956
13938
|
enabled: false
|
|
13957
13939
|
},
|
|
13958
|
-
["scheduleRunHistory" /* ScheduleRunHistory */]: {
|
|
13959
|
-
maintainer: "linghan@vm0.ai",
|
|
13960
|
-
description: "Show Run History tab on schedules page and Chat-from-schedule button on activity detail",
|
|
13961
|
-
enabled: false
|
|
13962
|
-
},
|
|
13963
13940
|
["testOauthConnector" /* TestOauthConnector */]: {
|
|
13964
13941
|
maintainer: "liangyou@vm0.ai",
|
|
13965
13942
|
description: "Enable the test-oauth connector, a synthetic OAuth 2.0 provider used only for automated tests. Off in prod.",
|
|
@@ -14000,12 +13977,6 @@ var FEATURE_SWITCHES = {
|
|
|
14000
13977
|
description: "Gate the custom /settings/api-keys UI for issuing personal access tokens used by the /api/v1 public surface. When disabled, the settings page redirects to / and the sidebar menu item is hidden. The backend /api/v1 verification does NOT consult this flag \u2014 previously issued PATs continue to work.",
|
|
14001
13978
|
enabled: false
|
|
14002
13979
|
},
|
|
14003
|
-
["slackAgentSwitch" /* SlackAgentSwitch */]: {
|
|
14004
|
-
maintainer: "yuma@vm0.ai",
|
|
14005
|
-
description: "Per-user agent override in the org-aware Slack app. When enabled for an org, members can choose which agent replies to their Slack mentions / DMs via `/zero switch` (opens an agent picker modal) or the Switch button on the App Home tab. The help text for `/zero help` also lists the switch subcommand. Selecting an alternate agent persists a row in `slack_user_agent_preferences` so the preference follows the user across every Slack workspace joined under the same org, and subsequent mention / DM replies from a non-default agent carry a `Sent via <agent>` footer so it's clear which agent produced the reply. When gated off, the modal, slash subcommand, App Home button, and help line are hidden AND any existing DB preferences are ignored at read time \u2014 every user falls back to the org default agent with no footer. Staff-only during the rollout window defined by `enabledOrgIdHashes`.",
|
|
14006
|
-
enabled: false,
|
|
14007
|
-
enabledOrgIdHashes: STAFF_ORG_ID_HASHES
|
|
14008
|
-
},
|
|
14009
13980
|
["modelProviderSelection" /* ModelProviderSelection */]: {
|
|
14010
13981
|
maintainer: "ethan@vm0.ai",
|
|
14011
13982
|
description: "Show the model provider + model picker on the agent profile page and schedule dialog. Allows per-agent and per-schedule model selection, overriding the org default. Staff-only during initial rollout.",
|
|
@@ -14017,6 +13988,12 @@ var FEATURE_SWITCHES = {
|
|
|
14017
13988
|
description: "Replace the per-agent chat list with a unified Chats view that includes threads from every agent in the user's org (sub-agents included). Gates the sidebar + /chats title/placeholder/aria-label swaps, the per-row agent avatar render, and the unscoped request shape. New-chat creation still uses the current-agent fallback.",
|
|
14018
13989
|
enabled: false
|
|
14019
13990
|
},
|
|
13991
|
+
["connectorCategories" /* ConnectorCategories */]: {
|
|
13992
|
+
maintainer: "ethan@vm0.ai",
|
|
13993
|
+
description: "Show category sections and the hover-reveal outline menu on the Connectors settings page. Staff-only during rollout.",
|
|
13994
|
+
enabled: false,
|
|
13995
|
+
enabledOrgIdHashes: STAFF_ORG_ID_HASHES
|
|
13996
|
+
},
|
|
14020
13997
|
["vm0DeepseekModel" /* Vm0DeepseekModel */]: {
|
|
14021
13998
|
maintainer: "ethan@vm0.ai",
|
|
14022
13999
|
description: "Enable the DeepSeek-V3.2 (deepseek-chat) VM0 managed model",
|
|
@@ -18721,191 +18698,6 @@ Examples:
|
|
|
18721
18698
|
);
|
|
18722
18699
|
var zeroComputerUseCommand = new Command().name("computer-use").description("Remote desktop control for cloud agents").addCommand(hostCommand).addCommand(clientCommand);
|
|
18723
18700
|
|
|
18724
|
-
// src/commands/zero/phone/index.ts
|
|
18725
|
-
init_esm_shims();
|
|
18726
|
-
|
|
18727
|
-
// src/commands/zero/phone/call.ts
|
|
18728
|
-
init_esm_shims();
|
|
18729
|
-
import * as fs from "fs";
|
|
18730
|
-
|
|
18731
|
-
// src/commands/zero/phone/format.ts
|
|
18732
|
-
init_esm_shims();
|
|
18733
|
-
function printTranscript(transcript) {
|
|
18734
|
-
if (!transcript || transcript.length === 0) {
|
|
18735
|
-
console.log(" (no transcript)");
|
|
18736
|
-
return;
|
|
18737
|
-
}
|
|
18738
|
-
for (const entry of transcript) {
|
|
18739
|
-
console.log(` ${source_default.dim(`[${entry.role}]`)} ${entry.text}`);
|
|
18740
|
-
}
|
|
18741
|
-
}
|
|
18742
|
-
function printCallInfo(call, callId) {
|
|
18743
|
-
console.log(` ${"Call ID:".padEnd(16)}${source_default.cyan(call.id ?? callId)}`);
|
|
18744
|
-
console.log(` ${"From:".padEnd(16)}${call.fromNumber}`);
|
|
18745
|
-
console.log(` ${"To:".padEnd(16)}${call.toNumber}`);
|
|
18746
|
-
console.log(` ${"Status:".padEnd(16)}${call.status}`);
|
|
18747
|
-
console.log(
|
|
18748
|
-
` ${"Duration:".padEnd(16)}${call.durationSeconds != null ? `${call.durationSeconds}s` : "N/A"}`
|
|
18749
|
-
);
|
|
18750
|
-
console.log(` ${"Started:".padEnd(16)}${call.startedAt ?? ""}`);
|
|
18751
|
-
}
|
|
18752
|
-
|
|
18753
|
-
// src/commands/zero/phone/call.ts
|
|
18754
|
-
var POLL_INTERVAL_MS = 1e4;
|
|
18755
|
-
var POLL_TIMEOUT_MS = 15 * 60 * 1e3;
|
|
18756
|
-
var delay = {
|
|
18757
|
-
ms: (ms) => {
|
|
18758
|
-
return new Promise((resolve) => {
|
|
18759
|
-
setTimeout(resolve, ms);
|
|
18760
|
-
});
|
|
18761
|
-
}
|
|
18762
|
-
};
|
|
18763
|
-
var TERMINAL_STATUSES = /* @__PURE__ */ new Set([
|
|
18764
|
-
"completed",
|
|
18765
|
-
"ended",
|
|
18766
|
-
"failed",
|
|
18767
|
-
"no-answer",
|
|
18768
|
-
"busy",
|
|
18769
|
-
"cancelled"
|
|
18770
|
-
]);
|
|
18771
|
-
function isErrnoException(err) {
|
|
18772
|
-
return err instanceof Error && "code" in err;
|
|
18773
|
-
}
|
|
18774
|
-
var callCommand = new Command().name("call").description("Initiate an outbound phone call").argument(
|
|
18775
|
-
"<to-number>",
|
|
18776
|
-
"Phone number to call (E.164 format, e.g. +14155551234)"
|
|
18777
|
-
).addOption(
|
|
18778
|
-
new Option(
|
|
18779
|
-
"--mode <mode>",
|
|
18780
|
-
"onhold: wait for call to complete and return transcript. fire-and-forget: initiate and return immediately."
|
|
18781
|
-
).choices(["onhold", "fire-and-forget"]).makeOptionMandatory()
|
|
18782
|
-
).option(
|
|
18783
|
-
"--system-prompt-file <path>",
|
|
18784
|
-
"File that defines the agent's persona and task context for this call"
|
|
18785
|
-
).action(
|
|
18786
|
-
withErrorHandler(
|
|
18787
|
-
async (toNumber, options) => {
|
|
18788
|
-
if (!/^\+[1-9]\d{1,14}$/.test(toNumber)) {
|
|
18789
|
-
console.error(
|
|
18790
|
-
source_default.red(
|
|
18791
|
-
"Invalid phone number format. Use E.164 (e.g. +14155551234)"
|
|
18792
|
-
)
|
|
18793
|
-
);
|
|
18794
|
-
process.exit(1);
|
|
18795
|
-
}
|
|
18796
|
-
let systemPrompt;
|
|
18797
|
-
if (options.systemPromptFile) {
|
|
18798
|
-
try {
|
|
18799
|
-
systemPrompt = fs.readFileSync(options.systemPromptFile, "utf-8");
|
|
18800
|
-
} catch (err) {
|
|
18801
|
-
if (isErrnoException(err) && err.code === "ENOENT") {
|
|
18802
|
-
console.error(
|
|
18803
|
-
source_default.red(`File not found: ${options.systemPromptFile}`)
|
|
18804
|
-
);
|
|
18805
|
-
process.exit(1);
|
|
18806
|
-
}
|
|
18807
|
-
throw err;
|
|
18808
|
-
}
|
|
18809
|
-
}
|
|
18810
|
-
const result = await createPhoneCall({
|
|
18811
|
-
toNumber,
|
|
18812
|
-
systemPrompt,
|
|
18813
|
-
mode: options.mode
|
|
18814
|
-
});
|
|
18815
|
-
console.log(source_default.green("Call initiated"));
|
|
18816
|
-
console.log(` ${"Call ID:".padEnd(12)}${source_default.cyan(result.callId)}`);
|
|
18817
|
-
console.log(` ${"Status:".padEnd(12)}${result.status}`);
|
|
18818
|
-
if (options.mode === "fire-and-forget") {
|
|
18819
|
-
return;
|
|
18820
|
-
}
|
|
18821
|
-
console.log();
|
|
18822
|
-
console.log(
|
|
18823
|
-
source_default.dim("Waiting for call to complete (polling every 10s)...")
|
|
18824
|
-
);
|
|
18825
|
-
const startTime = Date.now();
|
|
18826
|
-
while (Date.now() - startTime < POLL_TIMEOUT_MS) {
|
|
18827
|
-
await delay.ms(POLL_INTERVAL_MS);
|
|
18828
|
-
const detail = await getPhoneCallDetail(result.callId);
|
|
18829
|
-
const status = detail.call.status;
|
|
18830
|
-
const elapsed = Math.round((Date.now() - startTime) / 1e3);
|
|
18831
|
-
if (TERMINAL_STATUSES.has(status)) {
|
|
18832
|
-
console.log();
|
|
18833
|
-
console.log(source_default.bold("Call Detail"));
|
|
18834
|
-
console.log();
|
|
18835
|
-
printCallInfo(detail.call, result.callId);
|
|
18836
|
-
console.log();
|
|
18837
|
-
console.log(source_default.bold("Transcript"));
|
|
18838
|
-
console.log();
|
|
18839
|
-
printTranscript(detail.transcript);
|
|
18840
|
-
if (status === "failed") {
|
|
18841
|
-
process.exit(1);
|
|
18842
|
-
}
|
|
18843
|
-
return;
|
|
18844
|
-
}
|
|
18845
|
-
console.log(source_default.dim(` [${elapsed}s] status: ${status}`));
|
|
18846
|
-
}
|
|
18847
|
-
console.error(source_default.red("\nCall timed out after 15 minutes"));
|
|
18848
|
-
process.exit(1);
|
|
18849
|
-
}
|
|
18850
|
-
)
|
|
18851
|
-
);
|
|
18852
|
-
|
|
18853
|
-
// src/commands/zero/phone/record.ts
|
|
18854
|
-
init_esm_shims();
|
|
18855
|
-
async function showCallDetail(callId) {
|
|
18856
|
-
const result = await getPhoneCallDetail(callId);
|
|
18857
|
-
console.log(source_default.bold("Call Detail"));
|
|
18858
|
-
console.log();
|
|
18859
|
-
printCallInfo(result.call, callId);
|
|
18860
|
-
console.log();
|
|
18861
|
-
console.log(source_default.bold("Transcript"));
|
|
18862
|
-
console.log();
|
|
18863
|
-
printTranscript(result.transcript);
|
|
18864
|
-
}
|
|
18865
|
-
async function showCallList(limit) {
|
|
18866
|
-
const result = await listPhoneCalls({ limit });
|
|
18867
|
-
if (result.data.length === 0) {
|
|
18868
|
-
console.log(source_default.dim("No phone calls found"));
|
|
18869
|
-
return;
|
|
18870
|
-
}
|
|
18871
|
-
console.log(source_default.bold("Recent Calls"));
|
|
18872
|
-
console.log();
|
|
18873
|
-
for (const call of result.data) {
|
|
18874
|
-
const id = call.id;
|
|
18875
|
-
const from = call.fromNumber;
|
|
18876
|
-
const to = call.toNumber;
|
|
18877
|
-
const status = call.status;
|
|
18878
|
-
const duration = call.durationSeconds;
|
|
18879
|
-
const snippet = call.lastTranscriptSnippet ?? "";
|
|
18880
|
-
console.log(` ${source_default.cyan(id)}`);
|
|
18881
|
-
console.log(
|
|
18882
|
-
` ${from} \u2192 ${to} ${source_default.dim(status)}${duration != null ? ` ${duration}s` : ""}`
|
|
18883
|
-
);
|
|
18884
|
-
if (snippet) {
|
|
18885
|
-
console.log(` ${source_default.dim(snippet.slice(0, 80))}`);
|
|
18886
|
-
}
|
|
18887
|
-
console.log();
|
|
18888
|
-
}
|
|
18889
|
-
console.log(
|
|
18890
|
-
source_default.dim(`Showing ${result.data.length} of ${result.total} call(s)`)
|
|
18891
|
-
);
|
|
18892
|
-
}
|
|
18893
|
-
var recordCommand = new Command().name("record").description("View phone call history and transcripts").argument("[call-id]", "Call ID to view details (omit to list recent calls)").option("-n, --limit <number>", "Number of calls to show", "10").action(
|
|
18894
|
-
withErrorHandler(
|
|
18895
|
-
async (callId, options) => {
|
|
18896
|
-
if (callId) {
|
|
18897
|
-
await showCallDetail(callId);
|
|
18898
|
-
} else {
|
|
18899
|
-
const limit = parseInt(options.limit, 10) || 10;
|
|
18900
|
-
await showCallList(limit);
|
|
18901
|
-
}
|
|
18902
|
-
}
|
|
18903
|
-
)
|
|
18904
|
-
);
|
|
18905
|
-
|
|
18906
|
-
// src/commands/zero/phone/index.ts
|
|
18907
|
-
var zeroPhoneCommand = new Command().name("phone").description("Make and manage phone calls").addCommand(callCommand).addCommand(recordCommand);
|
|
18908
|
-
|
|
18909
18701
|
// src/commands/zero/web/index.ts
|
|
18910
18702
|
init_esm_shims();
|
|
18911
18703
|
|
|
@@ -19002,7 +18794,6 @@ var COMMAND_CAPABILITY_MAP = {
|
|
|
19002
18794
|
whoami: null,
|
|
19003
18795
|
"developer-support": null,
|
|
19004
18796
|
"computer-use": "computer-use:write",
|
|
19005
|
-
phone: "phone:write",
|
|
19006
18797
|
web: null
|
|
19007
18798
|
};
|
|
19008
18799
|
var DEFAULT_COMMANDS = [
|
|
@@ -19023,7 +18814,6 @@ var DEFAULT_COMMANDS = [
|
|
|
19023
18814
|
zeroSkillCommand,
|
|
19024
18815
|
zeroDeveloperSupportCommand,
|
|
19025
18816
|
zeroComputerUseCommand,
|
|
19026
|
-
zeroPhoneCommand,
|
|
19027
18817
|
zeroWebCommand
|
|
19028
18818
|
];
|
|
19029
18819
|
function shouldHideCommand(name, payload) {
|
|
@@ -19043,7 +18833,7 @@ function registerZeroCommands(prog, commands) {
|
|
|
19043
18833
|
var program = new Command();
|
|
19044
18834
|
program.name("zero").description(
|
|
19045
18835
|
"Zero CLI \u2014 interact with the zero platform from inside the sandbox"
|
|
19046
|
-
).version("9.132.
|
|
18836
|
+
).version("9.132.2").addHelpText(
|
|
19047
18837
|
"after",
|
|
19048
18838
|
`
|
|
19049
18839
|
Examples:
|