@openclaw/voice-call 2026.10.3 → 2026.10.4

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.
@@ -1,6 +1,6 @@
1
1
  import { sleep } from "../api.js";
2
2
  import { l as resolveVoiceCallStreamExposurePaths, u as validateProviderConfig } from "./config-CX9J-053.mjs";
3
- import { _ as MAX_CALL_RECORD_EVENTS, b as loadActiveCallsFromStore, c as resolveWebhookExposureStatus, d as setupTailscaleExposureRoutes, h as resolveVoiceCallAgentId, l as cleanupTailscaleExposureRoute, u as getTailscaleSelfInfo, v as findCallInStore, x as setVoiceCallStateRuntime, y as getCallHistoryFromStore } from "./runtime-entry-CbSKxSKk.mjs";
3
+ import { _ as MAX_CALL_RECORD_EVENTS, b as loadActiveCallsFromStore, c as resolveWebhookExposureStatus, d as setupTailscaleExposureRoutes, h as resolveVoiceCallAgentId, l as cleanupTailscaleExposureRoute, u as getTailscaleSelfInfo, v as findCallInStore, x as setVoiceCallStateRuntime, y as getCallHistoryFromStore } from "./runtime-entry-DiQJW7Ha.mjs";
4
4
  import { r as resolveUserPath, t as resolveDefaultVoiceCallStoreDir } from "./store-path-Cfwff6j7.mjs";
5
5
  import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
6
6
  import { callGatewayFromCli, isGatewayClientRequestError, isGatewayTransportError, redactSensitiveUrlLikeString } from "openclaw/plugin-sdk/gateway-runtime";
@@ -1,5 +1,5 @@
1
1
  import { fetchWithSsrFGuard } from "../api.js";
2
- import { n as normalizeProxyIp, s as getHeader } from "./runtime-entry-CbSKxSKk.mjs";
2
+ import { n as normalizeProxyIp, s as getHeader } from "./runtime-entry-DiQJW7Ha.mjs";
3
3
  import { n as reserveWebhookReplay, t as createWebhookReplayCache } from "./webhook-replay-B7RJNWNG.mjs";
4
4
  import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
5
5
  import { isLoopbackHost } from "openclaw/plugin-sdk/gateway-runtime";
@@ -1,6 +1,6 @@
1
- import { s as getHeader } from "./runtime-entry-CbSKxSKk.mjs";
1
+ import { s as getHeader } from "./runtime-entry-DiQJW7Ha.mjs";
2
2
  import { t as escapeXml } from "./voice-mapping-B_iAUkER.mjs";
3
- import { i as verifyPlivoWebhook, n as readProviderCallStatus, r as reconstructWebhookUrl, t as guardedJsonApiRequest } from "./guarded-json-api-x55yqHvW.mjs";
3
+ import { i as verifyPlivoWebhook, n as readProviderCallStatus, r as reconstructWebhookUrl, t as guardedJsonApiRequest } from "./guarded-json-api-jL6mh17E.mjs";
4
4
  import { normalizeLowercaseStringOrEmpty, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
5
5
  import crypto from "node:crypto";
6
6
  //#region extensions/voice-call/src/providers/plivo.ts
@@ -1,5 +1,5 @@
1
1
  import { d as REALTIME_VOICE_END_CALL_TOOL_NAME, s as resolveVoiceCallPublicPathPrefix } from "./config-CX9J-053.mjs";
2
- import { o as canonicalizeVoiceCallMediaBase64 } from "./runtime-entry-CbSKxSKk.mjs";
2
+ import { o as canonicalizeVoiceCallMediaBase64 } from "./runtime-entry-DiQJW7Ha.mjs";
3
3
  import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
4
4
  import { asNullableRecord, asOptionalObjectRecord, asOptionalRecord, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
5
5
  import { createSubsystemLogger } from "openclaw/plugin-sdk/runtime-env";
@@ -1,2 +1 @@
1
- import { getRealtimeTranscriptionProvider, listRealtimeTranscriptionProviders } from "openclaw/plugin-sdk/realtime-transcription";
2
- export { getRealtimeTranscriptionProvider, listRealtimeTranscriptionProviders };
1
+ export { getRealtimeTranscriptionProvider, listRealtimeTranscriptionProviders } from "openclaw/plugin-sdk/realtime-transcription";
@@ -1,2 +1 @@
1
- import { getRealtimeVoiceProvider, listRealtimeVoiceProviders, resolveConfiguredRealtimeVoiceProvider } from "openclaw/plugin-sdk/realtime-voice";
2
- export { getRealtimeVoiceProvider, listRealtimeVoiceProviders, resolveConfiguredRealtimeVoiceProvider };
1
+ export { getRealtimeVoiceProvider, listRealtimeVoiceProviders, resolveConfiguredRealtimeVoiceProvider } from "openclaw/plugin-sdk/realtime-voice";
@@ -1,5 +1,5 @@
1
1
  import { c as resolveVoiceCallSessionKey } from "./config-CX9J-053.mjs";
2
- import { m as resolveCallAgentId, p as resolveVoiceResponseModel } from "./runtime-entry-CbSKxSKk.mjs";
2
+ import { m as resolveCallAgentId, p as resolveVoiceResponseModel } from "./runtime-entry-DiQJW7Ha.mjs";
3
3
  import { normalizeLowercaseStringOrEmpty, normalizeStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
4
4
  import { resolveAgentConfig } from "openclaw/plugin-sdk/agent-scope-runtime";
5
5
  import { isValidAgentHarnessSessionStoreEntry } from "openclaw/plugin-sdk/session-store-runtime";
@@ -2809,8 +2809,8 @@ var StreamDisconnectGrace = class {
2809
2809
  const MAX_WEBHOOK_BODY_BYTES = WEBHOOK_BODY_READ_DEFAULTS.preAuth.maxBytes;
2810
2810
  const WEBHOOK_BODY_TIMEOUT_MS = WEBHOOK_BODY_READ_DEFAULTS.preAuth.timeoutMs;
2811
2811
  const MISSING_REMOTE_ADDRESS_IN_FLIGHT_KEY = "__voice_call_no_remote__";
2812
- const loadRealtimeTranscriptionRuntime = createLazyRuntimeModule(() => import("./realtime-transcription.runtime-CbJAs5t_.mjs"));
2813
- const loadResponseGeneratorModule = createLazyRuntimeModule(() => import("./response-generator-DAhbXEta.mjs"));
2812
+ const loadRealtimeTranscriptionRuntime = createLazyRuntimeModule(() => import("./realtime-transcription.runtime-DIBopS1D.mjs"));
2813
+ const loadResponseGeneratorModule = createLazyRuntimeModule(() => import("./response-generator-o_dObaN0.mjs"));
2814
2814
  function appendRecentTalkEventMetadata(metadata, event) {
2815
2815
  const previous = metadata ?? {};
2816
2816
  const recent = Array.isArray(previous.recentTalkEvents) ? previous.recentTalkEvents.filter((entry) => Boolean(entry) && typeof entry === "object" && !Array.isArray(entry)) : [];
@@ -3501,12 +3501,12 @@ const REALTIME_VOICE_CONSULT_SYSTEM_PROMPT = [
3501
3501
  "Do not print secret values or dump environment variables; only check whether required configuration is present.",
3502
3502
  "Be accurate, brief, and speakable."
3503
3503
  ].join(" ");
3504
- const loadTelnyxProvider = createLazyRuntimeModule(() => import("./telnyx-DPilutCH.mjs"));
3505
- const loadTwilioProvider = createLazyRuntimeModule(() => import("./twilio-BWFNGyVx.mjs"));
3506
- const loadPlivoProvider = createLazyRuntimeModule(() => import("./plivo-CpPIENu4.mjs"));
3504
+ const loadTelnyxProvider = createLazyRuntimeModule(() => import("./telnyx-k2EW4kE9.mjs"));
3505
+ const loadTwilioProvider = createLazyRuntimeModule(() => import("./twilio-CzmDDfgW.mjs"));
3506
+ const loadPlivoProvider = createLazyRuntimeModule(() => import("./plivo-CYVl1nSq.mjs"));
3507
3507
  const loadMockProvider = createLazyRuntimeModule(() => import("./mock-eLv_Dc4o.mjs"));
3508
- const loadRealtimeVoiceRuntime = createLazyRuntimeModule(() => import("./realtime-voice.runtime-vtdCOWg-.mjs"));
3509
- const loadRealtimeHandler = createLazyRuntimeModule(() => import("./realtime-handler-Do7Sz7Gh.mjs"));
3508
+ const loadRealtimeVoiceRuntime = createLazyRuntimeModule(() => import("./realtime-voice.runtime-DZo_TorV.mjs"));
3509
+ const loadRealtimeHandler = createLazyRuntimeModule(() => import("./realtime-handler-QaQHUo3N.mjs"));
3510
3510
  function mapVoiceCallConsultTranscript(call, context) {
3511
3511
  const transcript = (call.transcript ?? []).map((entry) => ({
3512
3512
  role: entry.speaker === "bot" ? "assistant" : "user",
@@ -1,4 +1,4 @@
1
- import { a as verifyTelnyxWebhook, n as readProviderCallStatus, t as guardedJsonApiRequest } from "./guarded-json-api-x55yqHvW.mjs";
1
+ import { a as verifyTelnyxWebhook, n as readProviderCallStatus, t as guardedJsonApiRequest } from "./guarded-json-api-jL6mh17E.mjs";
2
2
  import crypto from "node:crypto";
3
3
  //#region extensions/voice-call/src/providers/telnyx.ts
4
4
  function normalizeTelnyxDirection(direction) {
@@ -1,7 +1,7 @@
1
1
  import { n as requireSupportedTwilioApiHostname, r as resolveTwilioApiBaseUrl } from "./twilio-region-wBOx-8sz.mjs";
2
- import { a as normalizeProviderStatus, g as generateDtmfRedirectTwiml, i as mapProviderStatusToEndReason, r as isProviderStatusTerminal, s as getHeader } from "./runtime-entry-CbSKxSKk.mjs";
2
+ import { a as normalizeProviderStatus, g as generateDtmfRedirectTwiml, i as mapProviderStatusToEndReason, r as isProviderStatusTerminal, s as getHeader } from "./runtime-entry-DiQJW7Ha.mjs";
3
3
  import { n as mapVoiceToPolly, t as escapeXml } from "./voice-mapping-B_iAUkER.mjs";
4
- import { n as readProviderCallStatus, o as verifyTwilioWebhook, t as guardedJsonApiRequest } from "./guarded-json-api-x55yqHvW.mjs";
4
+ import { n as readProviderCallStatus, o as verifyTwilioWebhook, t as guardedJsonApiRequest } from "./guarded-json-api-jL6mh17E.mjs";
5
5
  import { asNullableObjectRecord, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
6
6
  import { sleepWithAbort } from "openclaw/plugin-sdk/runtime-env";
7
7
  import crypto from "node:crypto";
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { definePluginEntry } from "./api.js";
2
2
  import { VOICE_CALL_CLI_DESCRIPTOR } from "./cli-output-mode.js";
3
3
  import { i as resolveVoiceCallConfig, t as VoiceCallConfigSchema, u as validateProviderConfig } from "./.setup/config-CX9J-053.mjs";
4
- import { t as createVoiceCallRuntime } from "./.setup/runtime-entry-CbSKxSKk.mjs";
4
+ import { t as createVoiceCallRuntime } from "./.setup/runtime-entry-DiQJW7Ha.mjs";
5
5
  import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
6
6
  import { ErrorCodes, errorShape } from "openclaw/plugin-sdk/gateway-runtime";
7
7
  import { resolveGlobalSingleton } from "openclaw/plugin-sdk/global-singleton";
@@ -475,7 +475,7 @@ var voice_call_default = definePluginEntry({
475
475
  }
476
476
  }));
477
477
  api.registerCli(async ({ program }) => {
478
- const { registerVoiceCallCli } = await import("./.setup/cli-Cn1leykM.mjs");
478
+ const { registerVoiceCallCli } = await import("./.setup/cli-JUoh9jqE.mjs");
479
479
  registerVoiceCallCli({
480
480
  program,
481
481
  config,
@@ -1,2 +1 @@
1
- import { t as createVoiceCallRuntime } from "./.setup/runtime-entry-CbSKxSKk.mjs";
2
- export { createVoiceCallRuntime };
1
+ export { t as createVoiceCallRuntime } from "./.setup/runtime-entry-DiQJW7Ha.mjs";
@@ -1,2 +1 @@
1
- import { n as stateMigrations, t as packageName } from "./.setup/state-retention-api-ONgqE-_V.mjs";
2
- export { packageName, stateMigrations };
1
+ export { t as packageName, n as stateMigrations } from "./.setup/state-retention-api-ONgqE-_V.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/voice-call",
3
- "version": "2026.10.3",
3
+ "version": "2026.10.4",
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.3"
15
+ "openclaw": ">=2026.10.4"
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.3"
34
+ "pluginApi": ">=2026.10.4"
35
35
  },
36
36
  "build": {
37
- "openclawVersion": "2026.10.3"
37
+ "openclawVersion": "2026.10.4"
38
38
  },
39
39
  "release": {
40
40
  "publishToClawHub": true,