@openclaw/voice-call 2026.10.10-beta.3 → 2026.10.10-beta.5
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.
|
@@ -8,8 +8,9 @@ import { isRecord, normalizeOptionalLowercaseString } from "openclaw/plugin-sdk/
|
|
|
8
8
|
import { MAX_TCP_PORT, MAX_TIMER_TIMEOUT_MS, addTimerTimeoutGraceMs, clampTimerTimeoutMs, parseStrictNonNegativeInteger } from "openclaw/plugin-sdk/number-runtime";
|
|
9
9
|
import fs from "node:fs";
|
|
10
10
|
import path from "node:path";
|
|
11
|
-
import {
|
|
11
|
+
import { realpath } from "node:fs/promises";
|
|
12
12
|
import { createDeferred } from "openclaw/plugin-sdk/concurrency-runtime";
|
|
13
|
+
import { readRegularFile } from "openclaw/plugin-sdk/file-access-runtime";
|
|
13
14
|
import { once } from "node:events";
|
|
14
15
|
import { format } from "node:util";
|
|
15
16
|
//#region extensions/voice-call/src/cli-command-io.ts
|
|
@@ -49,7 +50,8 @@ async function* readLogLines(file, last, pollMs) {
|
|
|
49
50
|
for (;;) {
|
|
50
51
|
let fd;
|
|
51
52
|
try {
|
|
52
|
-
|
|
53
|
+
const flags = process.platform === "win32" ? "r" : fs.constants.O_RDONLY | fs.constants.O_NONBLOCK;
|
|
54
|
+
fd = fs.openSync(file, flags);
|
|
53
55
|
} catch (error) {
|
|
54
56
|
if (initial || pollMs === void 0 || !isRecord(error) || error.code !== "ENOENT") throw error;
|
|
55
57
|
await sleep(pollMs);
|
|
@@ -57,6 +59,7 @@ async function* readLogLines(file, last, pollMs) {
|
|
|
57
59
|
}
|
|
58
60
|
try {
|
|
59
61
|
const stat = fs.fstatSync(fd);
|
|
62
|
+
if (!stat.isFile()) throw new Error("Voice-call log must be a regular file.");
|
|
60
63
|
if (previous && (stat.ino !== previous.ino || stat.dev !== previous.dev || stat.size < previous.size)) offset = lineStart = 0;
|
|
61
64
|
previous = stat;
|
|
62
65
|
const selected = [];
|
|
@@ -307,7 +310,7 @@ async function initiateVoiceCall(params) {
|
|
|
307
310
|
//#region extensions/voice-call/src/cli.ts
|
|
308
311
|
async function readCliBrief(options) {
|
|
309
312
|
if (options.brief && options.briefFile) throw new Error("Use either --brief or --brief-file");
|
|
310
|
-
const raw = options.briefFile ? await
|
|
313
|
+
const raw = options.briefFile ? (await readRegularFile({ filePath: await realpath(resolveUserPath(options.briefFile)) })).buffer.toString("utf8") : options.brief;
|
|
311
314
|
if (raw === void 0) return;
|
|
312
315
|
if (raw.length > 16e3) throw new Error("Brief input is too large");
|
|
313
316
|
const value = options.briefFile || raw.trimStart().startsWith("{") || raw.trimStart().startsWith("[") ? JSON.parse(raw) : { task: raw };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"entries":[{"output":"api.js","source":"extensions/voice-call/api.ts"},{"output":"cli-metadata.js","source":"extensions/voice-call/cli-metadata.ts"},{"output":"cli-output-mode.js","source":"extensions/voice-call/cli-output-mode.ts"},{"output":"doctor-contract-api.js","source":"extensions/voice-call/doctor-contract-api.ts"},{"output":"index.js","source":"extensions/voice-call/index.ts"},{"output":"runtime-entry.js","source":"extensions/voice-call/runtime-entry.ts"},{"output":"setup-api.js","source":"extensions/voice-call/setup-api.ts"},{"output":"state-retention-api.js","source":"extensions/voice-call/state-retention-api.ts"}],"chunks":[{"output":".setup/carrier-api-Bt9KxU9b.mjs","sha256":"6c84dc6070833fb11dd20312d224f18daff82a6b10f9fb5e8631e7c493500fa8","facadeSource":null,"sources":["extensions/voice-call/src/providers/shared/carrier-api.ts","extensions/voice-call/src/providers/shared/guarded-json-api.ts","extensions/voice-call/src/webhook-security.ts"]},{"output":".setup/cli-cSqX5Cvm.mjs","sha256":"918702a42b487e49c3ee8175142cb08c3fb9b7a32b42b728e1528d5ce3dde5d9","facadeSource":"extensions/voice-call/src/cli.ts","sources":["extensions/voice-call/src/cli-call-log.ts","extensions/voice-call/src/cli-command-io.ts","extensions/voice-call/src/cli-gateway-call.ts","extensions/voice-call/src/cli.ts"]},{"output":".setup/config-BdbTQCSh.mjs","sha256":"48d181e35279b605e55f519e876ee4480c1afe1701be9cb86cb600e3a7ad6d21","facadeSource":null,"sources":["extensions/voice-call/src/allowlist.ts","extensions/voice-call/src/call-brief-schema.ts","extensions/voice-call/src/config.ts","extensions/voice-call/src/errand-config.ts","extensions/voice-call/src/realtime-call-control.ts","extensions/voice-call/src/realtime-defaults.ts","extensions/voice-call/src/tailscale-config.ts"]},{"output":".setup/mock-rySvj-G6.mjs","sha256":"a69cfadef097c63dc74dced303602b725321d21e3e70f824660c98d5d483f626","facadeSource":"extensions/voice-call/src/providers/mock.ts","sources":["extensions/voice-call/src/providers/mock.ts"]},{"output":".setup/plivo-C3NbDLe-.mjs","sha256":"32da12fad3544adfcd1c613cd798e2ef3c8deee028c42172e052838dc887a34e","facadeSource":"extensions/voice-call/src/providers/plivo.ts","sources":["extensions/voice-call/src/providers/plivo.ts"]},{"output":".setup/realtime-handler-dG-YrnQ5.mjs","sha256":"89f0298867ef1ae1f80009f2cf4a3a5c15da8810fbe9e23a99910735280baf50","facadeSource":"extensions/voice-call/src/webhook/realtime-handler.ts","sources":["extensions/voice-call/src/webhook/realtime-audio-pacer.ts","extensions/voice-call/src/webhook/realtime-call-playback.ts","extensions/voice-call/src/webhook/realtime-call-session-control.ts","extensions/voice-call/src/webhook/realtime-handler.ts","extensions/voice-call/src/webhook/realtime-host-speech.ts","extensions/voice-call/src/webhook/realtime-transcript-text.ts","extensions/voice-call/src/webhook/stream-frame-adapter.ts"]},{"output":".setup/realtime-transcription.runtime-DIBopS1D.mjs","sha256":"bb90d344ce8109aef1b05a93e5b8e4633430112c282a351939d70267a29fa6fe","facadeSource":"extensions/voice-call/src/realtime-transcription.runtime.ts","sources":[]},{"output":".setup/realtime-voice.runtime-S9H9Y0Cp.mjs","sha256":"4cea62311759072afbc3c69890e815583aa2d083c980a4d00f9d79b7cd82578b","facadeSource":"extensions/voice-call/src/realtime-voice.runtime.ts","sources":[]},{"output":".setup/response-generator-DEU_bfHI.mjs","sha256":"9de8a3c10cfe5f9932fba08db1e0c6e32a56951a465151d37698e82c0f822cf2","facadeSource":"extensions/voice-call/src/response-generator.ts","sources":["extensions/voice-call/src/response-generator.ts"]},{"output":".setup/runtime-entry-BqhtjzE-.mjs","sha256":"5369f47d9686bf417fdd3cf44290b914a912d3cd8e9d1f1411f9abcb0d311557","facadeSource":null,"sources":["extensions/voice-call/src/bounded-child-output.ts","extensions/voice-call/src/call-brief.ts","extensions/voice-call/src/call-delivery-runtime.ts","extensions/voice-call/src/call-delivery.ts","extensions/voice-call/src/http-headers.ts","extensions/voice-call/src/manager.ts","extensions/voice-call/src/manager/callbacks.ts","extensions/voice-call/src/manager/events.ts","extensions/voice-call/src/manager/lifecycle.ts","extensions/voice-call/src/manager/lookup.ts","extensions/voice-call/src/manager/mutations.ts","extensions/voice-call/src/manager/outbound.ts","extensions/voice-call/src/manager/replay-keys.ts","extensions/voice-call/src/manager/state.ts","extensions/voice-call/src/manager/store.ts","extensions/voice-call/src/manager/timer-delays.ts","extensions/voice-call/src/manager/timers.ts","extensions/voice-call/src/manager/twiml.ts","extensions/voice-call/src/manager/voicemail.ts","extensions/voice-call/src/media-base64.ts","extensions/voice-call/src/media-stream.ts","extensions/voice-call/src/providers/shared/call-status.ts","extensions/voice-call/src/proxy-ip.ts","extensions/voice-call/src/realtime-agent-context.ts","extensions/voice-call/src/resolve-call-agent-id.ts","extensions/voice-call/src/response-model.ts","extensions/voice-call/src/runtime-state.ts","extensions/voice-call/src/runtime.ts","extensions/voice-call/src/telephony-tts.ts","extensions/voice-call/src/tts-provider-voice.ts","extensions/voice-call/src/tunnel.ts","extensions/voice-call/src/types.ts","extensions/voice-call/src/webhook-exposure.ts","extensions/voice-call/src/webhook.ts","extensions/voice-call/src/webhook/realtime-inbound-admission.ts","extensions/voice-call/src/webhook/stale-call-reaper.ts","extensions/voice-call/src/webhook/stream-disconnect-grace.ts","extensions/voice-call/src/webhook/tailscale.ts","extensions/voice-call/src/webhook/talk-event-metadata.ts"]},{"output":".setup/state-retention-api-ONgqE-_V.mjs","sha256":"726217311b78f34cd904531b95057ad8a1ebf9168a1b081dd57a46f755520657","facadeSource":null,"sources":["extensions/voice-call/state-retention-api.ts","packages/normalization-core/src/record-coerce.ts","src/config/channel-config-normalization.ts","src/plugin-sdk/legacy-webhook-listener-migration.ts"]},{"output":".setup/store-path-Cfwff6j7.mjs","sha256":"7caa0cc3a18c81da2670becc7036b4367bd0ee233d2cbe256b1aef46b3dbccc1","facadeSource":null,"sources":["extensions/voice-call/src/store-path.ts","extensions/voice-call/src/utils.ts"]},{"output":".setup/telnyx-BuC-Ttbj.mjs","sha256":"0d40bc862f8753794544010044d656c01e904cf10c40a7b197c7255d8127ca90","facadeSource":"extensions/voice-call/src/providers/telnyx.ts","sources":["extensions/voice-call/src/providers/telnyx.ts"]},{"output":".setup/twilio-BVBIIqx-.mjs","sha256":"3b381b9cc77d785de2a9deefdc67098215c18e6fea9e22e28c2cad09163444bf","facadeSource":"extensions/voice-call/src/providers/twilio.ts","sources":["extensions/voice-call/src/providers/twilio.ts","extensions/voice-call/src/providers/twilio/api.ts"]},{"output":".setup/twilio-region-wBOx-8sz.mjs","sha256":"7144fe307a33d42bc3c84b12dc5b3c292222a68689953c5515c907066fe53367","facadeSource":null,"sources":["extensions/voice-call/src/providers/twilio-region.ts"]},{"output":".setup/voice-mapping-1lzFmzOF.mjs","sha256":"2e33112b806e7f109372b800dc8b82c5149364dd1990e718917533509be76b7d","facadeSource":null,"sources":["extensions/voice-call/src/voice-mapping.ts"]},{"output":".setup/webhook-replay-B7RJNWNG.mjs","sha256":"5c8a1f383548e07b58c8d4f70260e5d3dd149c5eb89d0f0667055ec105d018a8","facadeSource":null,"sources":["extensions/voice-call/src/webhook-replay.ts"]},{"output":"api.js","sha256":"52defeb38678cdd3504b7035eb0ac836d4ed388afdcf64a08dde425d26900a23","facadeSource":"extensions/voice-call/api.ts","sources":[]},{"output":"cli-metadata.js","sha256":"762d010cb9d646440db95ce3fa1d3371bf7bf429bf09a4a407ea04e545c5fd1f","facadeSource":"extensions/voice-call/cli-metadata.ts","sources":["extensions/voice-call/cli-metadata.ts"]},{"output":"cli-output-mode.js","sha256":"254a7bacf0b58b7aa382cb4b4ac11c91972d30f08ce46795ba335701bc0afaf6","facadeSource":"extensions/voice-call/cli-output-mode.ts","sources":["extensions/voice-call/cli-output-mode.ts"]},{"output":"doctor-contract-api.js","sha256":"4ba1fc28bae746439c2a44e24a481c121e9137e9c8929fbe59157942233e6262","facadeSource":"extensions/voice-call/doctor-contract-api.ts","sources":["extensions/voice-call/doctor-contract-api.ts"]},{"output":"index.js","sha256":"38991d964cf1ac36d27e9cd1842b67e4f8f6489a28dbf73a642075bc93567dbb","facadeSource":"extensions/voice-call/index.ts","sources":["extensions/voice-call/index.ts","extensions/voice-call/src/command-service.ts","extensions/voice-call/src/gateway-continue-operation.ts","extensions/voice-call/src/tool-call-scope.ts","extensions/voice-call/src/tool-schema.ts"]},{"output":"runtime-entry.js","sha256":"6f6db9c186dfbdae5f281ea1f7d00e08d861e9b8fb5f402a3d951226e411bbf1","facadeSource":"extensions/voice-call/runtime-entry.ts","sources":[]},{"output":"setup-api.js","sha256":"e9d10aac041f3c9eab62122e96bd9d78046c9b8ab2bf74da99be1a4f5be63756","facadeSource":"extensions/voice-call/setup-api.ts","sources":["extensions/voice-call/setup-api.ts","extensions/voice-call/src/config-migration.ts"]},{"output":"state-retention-api.js","sha256":"caf7996aa290359f40ed91097fb175ac692759599ac38a07db1912b08c56981d","facadeSource":"extensions/voice-call/state-retention-api.ts","sources":[]}],"unrenderedSources":["extensions/voice-call/api.ts","extensions/voice-call/runtime-entry.ts","extensions/voice-call/src/realtime-transcription.runtime.ts","extensions/voice-call/src/realtime-voice.runtime.ts"]}
|
package/dist/index.js
CHANGED
|
@@ -568,7 +568,7 @@ var voice_call_default = definePluginEntry({
|
|
|
568
568
|
};
|
|
569
569
|
});
|
|
570
570
|
api.registerCli(async ({ program }) => {
|
|
571
|
-
const { registerVoiceCallCli } = await import("./.setup/cli-
|
|
571
|
+
const { registerVoiceCallCli } = await import("./.setup/cli-cSqX5Cvm.mjs");
|
|
572
572
|
registerVoiceCallCli({
|
|
573
573
|
program,
|
|
574
574
|
config,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/voice-call",
|
|
3
|
-
"version": "2026.10.10-beta.
|
|
3
|
+
"version": "2026.10.10-beta.5",
|
|
4
4
|
"description": "OpenClaw voice-call plugin for Twilio, Telnyx, and Plivo phone calls.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"zod": "4.6.5"
|
|
13
13
|
},
|
|
14
14
|
"peerDependencies": {
|
|
15
|
-
"openclaw": ">=2026.10.10-beta.
|
|
15
|
+
"openclaw": ">=2026.10.10-beta.5"
|
|
16
16
|
},
|
|
17
17
|
"peerDependenciesMeta": {
|
|
18
18
|
"openclaw": {
|
|
@@ -31,10 +31,10 @@
|
|
|
31
31
|
"minHostVersion": ">=2026.4.10"
|
|
32
32
|
},
|
|
33
33
|
"compat": {
|
|
34
|
-
"pluginApi": ">=2026.10.10-beta.
|
|
34
|
+
"pluginApi": ">=2026.10.10-beta.5"
|
|
35
35
|
},
|
|
36
36
|
"build": {
|
|
37
|
-
"openclawVersion": "2026.10.10-beta.
|
|
37
|
+
"openclawVersion": "2026.10.10-beta.5"
|
|
38
38
|
},
|
|
39
39
|
"release": {
|
|
40
40
|
"publishToClawHub": true,
|