@lawpath-tech/openclaw 2026.2.21-18 → 2026.2.21-20

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 (113) hide show
  1. package/dist/{agents-C9ij96eI.js → agents-C83RLKX2.js} +4 -4
  2. package/dist/{agents.config-PFAfbBID.js → agents.config-BVjazvnK.js} +1 -1
  3. package/dist/{agents.config-CBvMKGLh.js → agents.config-dnXbFv5H.js} +1 -1
  4. package/dist/{audio-preflight-CODznzqu.js → audio-preflight-Da7vejCH.js} +4 -4
  5. package/dist/{auth-choice-DH2T1E9c.js → auth-choice-BJNaxS-L.js} +1 -1
  6. package/dist/{auth-choice-CLiY8PdF.js → auth-choice-Hb6530su.js} +1 -1
  7. package/dist/{banner-CqQBBjKH.js → banner-dFAx4eE_.js} +1 -1
  8. package/dist/build-info.json +3 -3
  9. package/dist/bundled/boot-md/handler.js +1 -1
  10. package/dist/bundled/session-memory/handler.js +1 -1
  11. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  12. package/dist/{channel-options-e7Z9Smf2.js → channel-options--M8F-DHl.js} +1 -1
  13. package/dist/{channel-options-CLS27y1A.js → channel-options-D0Qjq83D.js} +1 -1
  14. package/dist/{channel-web-DHMbpU2p.js → channel-web-D8hSmcPF.js} +1 -1
  15. package/dist/{channels-cli-BDHLWbaU.js → channels-cli-6uwOEBM-.js} +4 -4
  16. package/dist/{channels-cli-CDwQerVi.js → channels-cli-BtZHPcBX.js} +4 -4
  17. package/dist/{chrome-lRUqqgSD.js → chrome-CZuniMYN.js} +7 -7
  18. package/dist/{cli-BGJFLB0I.js → cli-CIImVBCM.js} +1 -1
  19. package/dist/{cli-C1nypCKP.js → cli-CijjdR37.js} +1 -1
  20. package/dist/{command-registry-pGuORBuB.js → command-registry-BtDC5Ll-.js} +9 -9
  21. package/dist/{completion-cli-Bf-Ojq_a.js → completion-cli-Bw5nZmTm.js} +2 -2
  22. package/dist/{completion-cli-C79-bpAx.js → completion-cli-CI6LWHg3.js} +1 -1
  23. package/dist/{config-cli-DLdH6zIF.js → config-cli-CgjgjWri.js} +1 -1
  24. package/dist/{config-cli-BcNHb4_E.js → config-cli-Dc0TQ1yE.js} +1 -1
  25. package/dist/{configure-BSt9S0yk.js → configure-CGqsSqXB.js} +3 -3
  26. package/dist/{configure-h1d7nrgR.js → configure-GUYUjx8A.js} +3 -3
  27. package/dist/{deliver-B2d2N8OJ.js → deliver-0ThKlzQo.js} +1 -1
  28. package/dist/{doctor-completion-BB1f594d.js → doctor-completion-DgPc1rDZ.js} +1 -1
  29. package/dist/{doctor-completion-deY10x7w.js → doctor-completion-DipoVPSi.js} +1 -1
  30. package/dist/entry.js +1 -1
  31. package/dist/extensionAPI.js +6 -6
  32. package/dist/{gateway-cli-IziQis2t.js → gateway-cli-Ds3oN72Y.js} +8 -8
  33. package/dist/{gateway-cli-B-XwzYp2.js → gateway-cli-DuMINk2B.js} +8 -8
  34. package/dist/{health-DMrTgW8V.js → health-DQjqH1zU.js} +1 -1
  35. package/dist/{health-UmuJyu1Q.js → health-Dg0bAIKS.js} +1 -1
  36. package/dist/{hooks-cli-BparoMpt.js → hooks-cli-CEtCwdza.js} +2 -2
  37. package/dist/{hooks-cli-B6WCYLyG.js → hooks-cli-Cac2Ru8r.js} +2 -2
  38. package/dist/{image--DDZnw-F.js → image-88q3KE-C.js} +1 -1
  39. package/dist/index.js +6 -6
  40. package/dist/llm-slug-generator.js +1 -1
  41. package/dist/{models-nhERae29.js → models-DnhANpnd.js} +2 -2
  42. package/dist/{models-cli-bfKNgoHD.js → models-cli-03noBf8W.js} +3 -3
  43. package/dist/{models-cli-BnbeEOCU.js → models-cli-CaP_rt4y.js} +2 -2
  44. package/dist/{onboard-D_VxXTXD.js → onboard-BMc-yUv5.js} +2 -2
  45. package/dist/{onboard-C3pJ0NU-.js → onboard-BZg2c27h.js} +2 -2
  46. package/dist/{onboard-channels-CyeyvIfw.js → onboard-channels-Lt2gG1e2.js} +1 -1
  47. package/dist/{onboard-channels-YvwszRaQ.js → onboard-channels-O6KvizE3.js} +1 -1
  48. package/dist/{onboarding-0zwx3Yv7.js → onboarding-CTgBlanm.js} +3 -3
  49. package/dist/{onboarding-D0_Q5m2W.js → onboarding-G28sv5Ms.js} +3 -3
  50. package/dist/{onboarding.finalize-CYb0_Q0z.js → onboarding.finalize-Cpt9Ymcn.js} +5 -5
  51. package/dist/{onboarding.finalize-CVeI23_g.js → onboarding.finalize-D2sylHDB.js} +6 -6
  52. package/dist/{pi-embedded-Qfuh9XzI.js → pi-embedded-Dz24QZz9.js} +82 -3
  53. package/dist/{pi-embedded-CwQsXrVT.js → pi-embedded-ZvazjIyF.js} +96 -17
  54. package/dist/{pi-embedded-helpers-Cd0S0WfR.js → pi-embedded-helpers-B0Kht0I2.js} +4 -4
  55. package/dist/{plugin-registry-83ThmVHf.js → plugin-registry-1pF4_jNl.js} +1 -1
  56. package/dist/{plugin-registry-D57lc9ob.js → plugin-registry-CHOacv01.js} +1 -1
  57. package/dist/plugin-sdk/{channel-web-XYtgc8aq.js → channel-web-BHNS_E7F.js} +1 -1
  58. package/dist/plugin-sdk/index.js +2 -2
  59. package/dist/plugin-sdk/plugins/runtime/types.d.ts +2 -0
  60. package/dist/plugin-sdk/{reply-BSOpvBX4.js → reply-DEepmBkT.js} +82 -3
  61. package/dist/plugin-sdk/tts/tts-core.d.ts +15 -0
  62. package/dist/plugin-sdk/tts/tts.d.ts +16 -0
  63. package/dist/plugin-sdk/{web-DiLYLsml.js → web-DBo-6RyH.js} +2 -2
  64. package/dist/{plugins-cli-BymsOcmR.js → plugins-cli-CflNTqmB.js} +2 -2
  65. package/dist/{plugins-cli-DOWA2F0z.js → plugins-cli-DW0TLzrq.js} +2 -2
  66. package/dist/{program-T05XIetU.js → program-DUkjf6lq.js} +7 -7
  67. package/dist/{program-context-CDmctW1L.js → program-context-C0-LzXoV.js} +17 -17
  68. package/dist/{prompt-select-styled-cR4-U64b.js → prompt-select-styled-CQUE1vow.js} +4 -4
  69. package/dist/{prompt-select-styled-BbzQhWF7.js → prompt-select-styled-CWNxdPrL.js} +4 -4
  70. package/dist/{provider-auth-helpers-BbnDoytN.js → provider-auth-helpers-D39L7fZC.js} +1 -1
  71. package/dist/{provider-auth-helpers-C4RNIRyy.js → provider-auth-helpers-bYUBBkmL.js} +1 -1
  72. package/dist/{push-apns-Dli4pG4y.js → push-apns-DGIqfAg5.js} +1 -1
  73. package/dist/{push-apns-DUeNpqyF.js → push-apns-Qfohz-Hs.js} +1 -1
  74. package/dist/{pw-ai-C-kqYO4L.js → pw-ai-S3cpSYOy.js} +1 -1
  75. package/dist/{register.agent-aY_6enDc.js → register.agent-BEM0_4uG.js} +5 -5
  76. package/dist/{register.agent-DNAtU5WP.js → register.agent-WQgVmACk.js} +6 -6
  77. package/dist/{register.configure-CwlwOMZ3.js → register.configure-CCpFmFPt.js} +6 -6
  78. package/dist/{register.configure-C_n9kIWJ.js → register.configure-CdW3aECy.js} +6 -6
  79. package/dist/{register.maintenance-DC40nnCm.js → register.maintenance-B8RZLSOe.js} +8 -8
  80. package/dist/{register.maintenance-Dddndcoo.js → register.maintenance-CM3QEdFz.js} +7 -7
  81. package/dist/{register.message-DiR6desB.js → register.message-BRLYHuVS.js} +2 -2
  82. package/dist/{register.message-CpEf0b15.js → register.message-XYm9NyDT.js} +2 -2
  83. package/dist/{register.onboard-bOeA39xj.js → register.onboard-BzAJbRpP.js} +4 -4
  84. package/dist/{register.onboard-VzVmqpEA.js → register.onboard-EwGHFUsd.js} +4 -4
  85. package/dist/{register.setup-CNLQzxl8.js → register.setup-33shhZje.js} +4 -4
  86. package/dist/{register.setup-D6iO5Xqa.js → register.setup-DpdZyiMv.js} +4 -4
  87. package/dist/{register.status-health-sessions-CoiaeduR.js → register.status-health-sessions-C8-iqepo.js} +3 -3
  88. package/dist/{register.status-health-sessions-BtJeTZnN.js → register.status-health-sessions-CK4f2nj_.js} +3 -3
  89. package/dist/{register.subclis-CFTYYdAQ.js → register.subclis-Mn68G5tp.js} +9 -9
  90. package/dist/{reply-Bv-RvRzs.js → reply-DuVUTFfT.js} +82 -3
  91. package/dist/{run-main-EzFOCEdp.js → run-main-CNB3qjRM.js} +14 -14
  92. package/dist/{runner-Dq-qfrq7.js → runner-a43IsYad.js} +1 -1
  93. package/dist/{server-node-events-B9TqPvCI.js → server-node-events-B3o3P600.js} +2 -2
  94. package/dist/{server-node-events-syk21TN6.js → server-node-events-BPFwUGbS.js} +2 -2
  95. package/dist/{session-dirs-BAcQuXpY.js → session-dirs-Cw2efkey.js} +1 -1
  96. package/dist/{session-dirs-t0YpmrIL.js → session-dirs-DsU4kvIK.js} +1 -1
  97. package/dist/{status-keCWmejk.js → status-BSJIuIlN.js} +1 -1
  98. package/dist/{status-05251w21.js → status-BhHpKHQP.js} +2 -2
  99. package/dist/{status-BqDiXxwL.js → status-C2PvVLaW.js} +1 -1
  100. package/dist/{status-B8UVm7P3.js → status-CLKmcFCC.js} +2 -2
  101. package/dist/{subagent-registry-Lm4ps45z.js → subagent-registry-Da0a_Vka.js} +82 -3
  102. package/dist/{update-cli-BTF6TXGD.js → update-cli-BW3q5tFm.js} +7 -7
  103. package/dist/{update-cli-aW6jVJIJ.js → update-cli-D4EUMrX6.js} +8 -8
  104. package/dist/{web-BYZfljIx.js → web-BTbIFuWM.js} +2 -2
  105. package/dist/{web-BjxYv-hA.js → web-C7TQSVU0.js} +1 -1
  106. package/dist/{web-DPHo2cWX.js → web-CVSol55V.js} +6 -6
  107. package/dist/{web-BZ5kM4yO.js → web-Y49Dumye.js} +1 -1
  108. package/extensions/voice-call/src/providers/twilio.ts +31 -13
  109. package/extensions/voice-call/src/response-generator.ts +26 -5
  110. package/extensions/voice-call/src/telephony-audio.ts +54 -0
  111. package/extensions/voice-call/src/telephony-tts.ts +40 -2
  112. package/extensions/voice-call/src/webhook.ts +9 -0
  113. package/package.json +1 -1
@@ -22,7 +22,7 @@ import { t as safeEqualSecret } from "./secret-equal-CbntzRkh.js";
22
22
  import { a as isValidIPv4, c as resolveClientIp, d as resolveHostName, f as rawDataToString, i as isTrustedProxyAddress, l as resolveGatewayBindHost, n as isLoopbackHost, o as normalizeHostHeader, s as pickPrimaryLanIPv4, t as isLoopbackAddress, u as resolveGatewayListenHosts } from "./net-DZ5Ayk-W.js";
23
23
  import { n as pickPrimaryTailnetIPv4, r as pickPrimaryTailnetIPv6 } from "./tailnet-Cmumpn76.js";
24
24
  import { i as normalizeInputProvenance } from "./input-provenance-D0lNkCf6.js";
25
- import { $n as resolveTtsProviderOrder, A as resolveAgentAvatar, An as normalizeMimeList, At as normalizeRequiredName, Bt as isExternalHookSession, C as agentCommand, Ct as normalizeCronJobCreate, D as createOutboundSendDeps, Dn as DEFAULT_INPUT_TIMEOUT_MS, Dt as normalizeOptionalSessionKey, E as resolveAgentOutboundTarget, En as DEFAULT_INPUT_MAX_REDIRECTS, Et as normalizeOptionalAgentId, Gn as resolveUserTimezone, Gt as emitGatewayRestart, H as dispatchInboundMessage, Hn as stopSubagentsForRequester, Ht as persistBrowserProxyFiles, Jn as isTtsProviderConfigured, Jt as scheduleGatewaySigusr1Restart, Kn as getTtsProvider, Kt as isGatewaySigusr1RestartExternallyAllowed, L as buildHistoryContextFromEntries, Lt as buildSafeExternalPrompt, Mt as buildDeliveryFromLegacyPayload, Nn as resolveAgentTimeoutMs, Nt as hasLegacyDeliveryHints, O as createDefaultDeps, On as extractFileContentFromSource, Ot as normalizeOptionalText, Pt as stripLegacyDeliveryFields, Q as runCliAgent, Qn as resolveTtsPrefsPath, Qt as normalizeGroupActivation, Rn as formatZonedTimestamp, Rt as detectSuspiciousPatterns, S as sleepWithAbort, St as normalizeHttpWebhookUrl, T as resolveAgentDeliveryPlan, Tn as DEFAULT_INPUT_IMAGE_MIMES, Tt as inferLegacyName, U as createReplyDispatcher, Ut as consumeGatewaySigusr1RestartAuthorization, Vn as isAbortTrigger, Vt as applyBrowserProxyPaths, W as getTotalPendingReplies, Wt as deferGatewayRestartUntilIdle, X as getCliSessionId, Xn as resolveTtsAutoMode, Xt as setPreRestartDeferralCheck, Y as resolveCronStyleNow, Yn as resolveTtsApiKey, Yt as setGatewaySigusr1RestartPolicy, Z as setCliSessionId, Zn as resolveTtsConfig, Zt as unbindThreadBindingsBySessionKey, _n as applyModelOverrideToSessionEntry, _r as clearAgentRunContext, _t as formatRestartSentinelMessage, a as runSubagentAnnounceFlow, ar as getActiveTaskCount, at as resolveOutboundSessionRoute, b as requestBodyErrorToText, bn as enqueueSystemEvent, br as onAgentEvent, c as abortEmbeddedPiRun, cn as requestHeartbeatNow, cr as resetAllLanes, ct as resolveOutboundTarget, d as applyToolPolicyPipeline, dn as normalizeSendPolicy, dr as CommandLane, dt as resetDirectoryCache, en as loadProviderUsageSummary, er as setTtsEnabled, et as createOpenClawTools, f as buildDefaultToolPolicyPipelineSteps, fn as resolveSendPolicy, fr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, g as loadOpenClawPlugins, gr as stripHeartbeatToken, gt as formatDoctorNonInteractiveHint, ht as consumeRestartSentinel, ir as OPENAI_TTS_VOICES, it as ensureOutboundSessionEntry, jn as resolveInputFileLimits, jt as migrateLegacyCronPayload, k as createOutboundSendDeps$1, kn as extractImageContentFromSource, kt as normalizePayloadToSystemText, l as getActiveEmbeddedRunCount, lr as setCommandLaneConcurrency, lt as resolveSessionDeliveryTarget, m as getPluginToolMeta, n as initSubagentRegistry, nr as textToSpeech, nt as resolveAnnounceTargetFromKey, o as clearSessionQueues, pt as runWithModelFallback, q as BARE_SESSION_RESET_PROMPT, qn as isTtsEnabled, qt as markGatewaySigusr1RestartHandled, r as listDescendantRunsForRequester, rr as OPENAI_TTS_MODELS, s as runEmbeddedPiAgent, sr as getTotalQueueSize, t as countActiveDescendantRuns, tr as setTtsProvider, tt as readLatestAssistantReply, u as waitForEmbeddedPiRunEnd, ur as waitForActiveTasks, v as handleSlackHttpRequest, vn as applyVerboseOverride, vr as emitAgentEvent, wn as DEFAULT_INPUT_IMAGE_MAX_BYTES, wt as normalizeCronJobPatch, x as computeBackoff, xn as isSystemEventContextChanged, xr as registerAgentRunContext, xt as writeRestartSentinel, y as readJsonBodyWithLimit, yn as parseVerboseOverride, yr as getAgentRunContext, yt as summarizeRestartSentinel, zt as getHookType } from "./subagent-registry-Lm4ps45z.js";
25
+ import { $n as resolveTtsProviderOrder, A as resolveAgentAvatar, An as normalizeMimeList, At as normalizeRequiredName, Bt as isExternalHookSession, C as agentCommand, Ct as normalizeCronJobCreate, D as createOutboundSendDeps, Dn as DEFAULT_INPUT_TIMEOUT_MS, Dt as normalizeOptionalSessionKey, E as resolveAgentOutboundTarget, En as DEFAULT_INPUT_MAX_REDIRECTS, Et as normalizeOptionalAgentId, Gn as resolveUserTimezone, Gt as emitGatewayRestart, H as dispatchInboundMessage, Hn as stopSubagentsForRequester, Ht as persistBrowserProxyFiles, Jn as isTtsProviderConfigured, Jt as scheduleGatewaySigusr1Restart, Kn as getTtsProvider, Kt as isGatewaySigusr1RestartExternallyAllowed, L as buildHistoryContextFromEntries, Lt as buildSafeExternalPrompt, Mt as buildDeliveryFromLegacyPayload, Nn as resolveAgentTimeoutMs, Nt as hasLegacyDeliveryHints, O as createDefaultDeps, On as extractFileContentFromSource, Ot as normalizeOptionalText, Pt as stripLegacyDeliveryFields, Q as runCliAgent, Qn as resolveTtsPrefsPath, Qt as normalizeGroupActivation, Rn as formatZonedTimestamp, Rt as detectSuspiciousPatterns, S as sleepWithAbort, St as normalizeHttpWebhookUrl, T as resolveAgentDeliveryPlan, Tn as DEFAULT_INPUT_IMAGE_MIMES, Tt as inferLegacyName, U as createReplyDispatcher, Ut as consumeGatewaySigusr1RestartAuthorization, Vn as isAbortTrigger, Vt as applyBrowserProxyPaths, W as getTotalPendingReplies, Wt as deferGatewayRestartUntilIdle, X as getCliSessionId, Xn as resolveTtsAutoMode, Xt as setPreRestartDeferralCheck, Y as resolveCronStyleNow, Yn as resolveTtsApiKey, Yt as setGatewaySigusr1RestartPolicy, Z as setCliSessionId, Zn as resolveTtsConfig, Zt as unbindThreadBindingsBySessionKey, _n as applyModelOverrideToSessionEntry, _r as clearAgentRunContext, _t as formatRestartSentinelMessage, a as runSubagentAnnounceFlow, ar as getActiveTaskCount, at as resolveOutboundSessionRoute, b as requestBodyErrorToText, bn as enqueueSystemEvent, br as onAgentEvent, c as abortEmbeddedPiRun, cn as requestHeartbeatNow, cr as resetAllLanes, ct as resolveOutboundTarget, d as applyToolPolicyPipeline, dn as normalizeSendPolicy, dr as CommandLane, dt as resetDirectoryCache, en as loadProviderUsageSummary, er as setTtsEnabled, et as createOpenClawTools, f as buildDefaultToolPolicyPipelineSteps, fn as resolveSendPolicy, fr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, g as loadOpenClawPlugins, gr as stripHeartbeatToken, gt as formatDoctorNonInteractiveHint, ht as consumeRestartSentinel, ir as OPENAI_TTS_VOICES, it as ensureOutboundSessionEntry, jn as resolveInputFileLimits, jt as migrateLegacyCronPayload, k as createOutboundSendDeps$1, kn as extractImageContentFromSource, kt as normalizePayloadToSystemText, l as getActiveEmbeddedRunCount, lr as setCommandLaneConcurrency, lt as resolveSessionDeliveryTarget, m as getPluginToolMeta, n as initSubagentRegistry, nr as textToSpeech, nt as resolveAnnounceTargetFromKey, o as clearSessionQueues, pt as runWithModelFallback, q as BARE_SESSION_RESET_PROMPT, qn as isTtsEnabled, qt as markGatewaySigusr1RestartHandled, r as listDescendantRunsForRequester, rr as OPENAI_TTS_MODELS, s as runEmbeddedPiAgent, sr as getTotalQueueSize, t as countActiveDescendantRuns, tr as setTtsProvider, tt as readLatestAssistantReply, u as waitForEmbeddedPiRunEnd, ur as waitForActiveTasks, v as handleSlackHttpRequest, vn as applyVerboseOverride, vr as emitAgentEvent, wn as DEFAULT_INPUT_IMAGE_MAX_BYTES, wt as normalizeCronJobPatch, x as computeBackoff, xn as isSystemEventContextChanged, xr as registerAgentRunContext, xt as writeRestartSentinel, y as readJsonBodyWithLimit, yn as parseVerboseOverride, yr as getAgentRunContext, yt as summarizeRestartSentinel, zt as getHookType } from "./subagent-registry-Da0a_Vka.js";
26
26
  import { D as resolveSessionResetPolicy, F as resolveMainSessionKey, H as cleanStaleLockFiles, I as resolveMainSessionKeyFromConfig, J as normalizeSessionDeliveryFields, K as mergeDeliveryContext, M as canonicalizeMainSessionAlias, N as resolveAgentMainSessionKey, P as resolveExplicitAgentSessionKey, R as snapshotSessionOrigin, S as stripEnvelopeFromMessages, T as evaluateSessionFreshness, W as deliveryContextFromSession, _ as capArrayByJsonBytes, d as updateSessionStore, g as archiveSessionTranscripts, h as archiveFileOnDisk, n as parseSessionThreadInfo, o as loadSessionStore, t as extractDeliveryInfo, v as readSessionMessages, x as resolveSessionTranscriptCandidates, y as readSessionPreviewItemsFromTranscript } from "./sessions-BJnLP6OJ.js";
27
27
  import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-ANnYrShl.js";
28
28
  import { n as listChannelPlugins, o as normalizeWhatsAppTarget, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-DStDwRz0.js";
@@ -134,20 +134,20 @@ import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } fr
134
134
  import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-BLko2ysA.js";
135
135
  import { c as probeGateway, o as isNodeCommandAllowed, s as resolveNodeCommandAllowlist } from "./audit-BvgdsYnk.js";
136
136
  import { t as discoverGatewayBeacons } from "./bonjour-discovery-Dey40AZW.js";
137
- import { i as pickGatewaySelfPresence, r as getStatusSummary } from "./status-05251w21.js";
138
- import { a as styleHealthChannelLine, c as setHeartbeatsEnabled, l as startHeartbeatRunner, n as getHealthSnapshot, s as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-UmuJyu1Q.js";
137
+ import { i as pickGatewaySelfPresence, r as getStatusSummary } from "./status-BhHpKHQP.js";
138
+ import { a as styleHealthChannelLine, c as setHeartbeatsEnabled, l as startHeartbeatRunner, n as getHealthSnapshot, s as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-Dg0bAIKS.js";
139
139
  import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-Yp3N6NZ_.js";
140
140
  import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, m as normalizeUpdateChannel, n as compareSemverStrings, t as checkUpdateStatus } from "./update-check-DfBZVR4k.js";
141
- import { t as runOnboardingWizard } from "./onboarding-D0_Q5m2W.js";
142
- import { a as sendApnsAlert, c as parseMessageWithAttachments, d as shouldLogWs, f as summarizeAgentEventForWsLog, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, p as setGatewayWsLogStyle, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration, u as logWs } from "./push-apns-DUeNpqyF.js";
141
+ import { t as runOnboardingWizard } from "./onboarding-G28sv5Ms.js";
142
+ import { a as sendApnsAlert, c as parseMessageWithAttachments, d as shouldLogWs, f as summarizeAgentEventForWsLog, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, p as setGatewayWsLogStyle, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration, u as logWs } from "./push-apns-Qfohz-Hs.js";
143
143
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-D5-xvxtS.js";
144
- import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-CBvMKGLh.js";
144
+ import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-dnXbFv5H.js";
145
145
  import "./dm-policy-shared-Do8DPXRK.js";
146
146
  import "./node-service-B1F4gM4E.js";
147
147
  import "./status.update-BL8rMB1W.js";
148
148
  import { t as resolveSystemRunCommand } from "./system-run-command-DKiCEPJc.js";
149
149
  import { t as installSkill } from "./skills-install-BQNBjQvM.js";
150
- import { n as runGatewayUpdate, t as resolveAgentSessionDirs } from "./session-dirs-t0YpmrIL.js";
150
+ import { n as runGatewayUpdate, t as resolveAgentSessionDirs } from "./session-dirs-DsU4kvIK.js";
151
151
  import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-DWI9N-Ks.js";
152
152
  import { n as forceFreePortAndWait } from "./ports-BxzJ3ENr.js";
153
153
  import { spawn, spawnSync } from "node:child_process";
@@ -12406,7 +12406,7 @@ const nodeHandlers = {
12406
12406
  const p = params;
12407
12407
  const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
12408
12408
  await respondUnavailableOnThrow(respond, async () => {
12409
- const { handleNodeEvent } = await import("./server-node-events-syk21TN6.js");
12409
+ const { handleNodeEvent } = await import("./server-node-events-BPFwUGbS.js");
12410
12410
  const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
12411
12411
  await handleNodeEvent({
12412
12412
  deps: context.deps,
@@ -1,7 +1,7 @@
1
1
  import { _ as expandHomePrefix, g as resolveStateDir, i as isNixMode, l as resolveGatewayLockDir, o as resolveConfigPath, r as STATE_DIR, t as CONFIG_PATH, u as resolveGatewayPort } from "./paths-B4BZAPZh.js";
2
2
  import { B as theme, D as isPlainObject, E as truncateUtf16Safe, H as getLogger, P as setVerbose, R as colorize, S as shortenHomePath, U as getResolvedLoggerSettings, V as getChildLogger, c as ensureDir, r as clamp, t as CONFIG_DIR, y as resolveUserPath, z as isRich } from "./utils-BlC2Fskb.js";
3
3
  import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, l as normalizeVerboseLevel, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels } from "./thinking-EAliFiVK.js";
4
- import { $ as normalizeOptionalSessionKey, $t as buildSafeExternalPrompt, At as agentCommand, B as setPreRestartDeferralCheck, Bn as isTtsEnabled, Bt as resolveSendPolicy, C as loadSessionEntry, Cn as isAbortTrigger, Cr as DEFAULT_INPUT_IMAGE_MIMES, Dn as countActiveDescendantRuns, Dr as extractImageContentFromSource, Dt as requestBodyErrorToText, E as resolveSessionModelRef, Er as extractFileContentFromSource, Et as readJsonBodyWithLimit, F as emitGatewayRestart, Fn as getAgentRunContext, G as summarizeRestartSentinel, Gn as resolveTtsPrefsPath, Gt as setCliSessionId, H as formatDoctorNonInteractiveHint, Hn as resolveTtsApiKey, Ht as createOutboundSendDeps$1, I as isGatewaySigusr1RestartExternallyAllowed, In as onAgentEvent, It as resolveOutboundTarget, J as normalizeHttpWebhookUrl, Jn as setTtsProvider, Kn as resolveTtsProviderOrder, Kt as runCliAgent, L as markGatewaySigusr1RestartHandled, Ln as registerAgentRunContext, Lt as resolveSessionDeliveryTarget, Mn as readLatestAssistantReply, Mt as resolveAgentDeliveryPlan, N as consumeGatewaySigusr1RestartAuthorization, Nn as clearAgentRunContext, Nt as resolveAgentOutboundTarget, O as ensureOutboundSessionEntry, On as initSubagentRegistry, Or as normalizeMimeList, Ot as computeBackoff, P as deferGatewayRestartUntilIdle, Pn as emitAgentEvent, Q as normalizeOptionalAgentId, Qn as getActiveTaskCount, R as scheduleGatewaySigusr1Restart, Rn as resolveUserTimezone, Rt as createOutboundSendDeps, S as loadCombinedSessionStoreForGateway, Sr as DEFAULT_INPUT_IMAGE_MAX_BYTES, T as resolveGatewaySessionStoreTarget, Tr as DEFAULT_INPUT_TIMEOUT_MS, Tt as handleSlackHttpRequest, U as formatRestartSentinelMessage, Un as resolveTtsAutoMode, Ut as runWithModelFallback, V as consumeRestartSentinel, Vn as isTtsProviderConfigured, Vt as createDefaultDeps, Wn as resolveTtsConfig, Wt as getCliSessionId, X as normalizeCronJobPatch, Xn as OPENAI_TTS_MODELS, Y as normalizeCronJobCreate, Yn as textToSpeech, Yt as resolveAgentAvatar, Z as inferLegacyName, Zn as OPENAI_TTS_VOICES, _ as resolveAnnounceTargetFromKey, _r as parseVerboseOverride, ar as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, at as hasLegacyDeliveryHints, b as listAgentsForGateway, bn as formatZonedTimestamp, bt as loadProviderUsageSummary, c as clearSessionQueues, d as getActiveEmbeddedRunCount, dt as requestHeartbeatNow, en as detectSuspiciousPatterns, er as getTotalQueueSize, et as normalizeOptionalText, f as waitForEmbeddedPiRunEnd, fn as dispatchInboundMessage, g as createOpenClawTools, gr as applyVerboseOverride, gt as loadOpenClawPlugins, hr as applyModelOverrideToSessionEntry, i as resolveCronStyleNow, ir as CommandLane, it as buildDeliveryFromLegacyPayload, j as resetDirectoryCache, jn as runSubagentAnnounceFlow, jr as resolveAgentTimeoutMs, k as resolveOutboundSessionRoute, kn as listDescendantRunsForRequester, kr as resolveInputFileLimits, kt as sleepWithAbort, l as runEmbeddedPiAgent, lr as stripHeartbeatToken, lt as applyBrowserProxyPaths, m as buildDefaultToolPolicyPipelineSteps, mn as getTotalPendingReplies, mt as getPluginToolMeta, n as BARE_SESSION_RESET_PROMPT, nn as isExternalHookSession, nr as setCommandLaneConcurrency, nt as normalizeRequiredName, ot as stripLegacyDeliveryFields, p as applyToolPolicyPipeline, pn as createReplyDispatcher, q as writeRestartSentinel, qn as setTtsEnabled, rn as unbindThreadBindingsBySessionKey, rr as waitForActiveTasks, rt as migrateLegacyCronPayload, sn as buildHistoryContextFromEntries, tn as getHookType, tr as resetAllLanes, tt as normalizePayloadToSystemText, u as abortEmbeddedPiRun, ur as lookupContextTokens, ut as persistBrowserProxyFiles, v as canonicalizeSpawnedByForAgent, vr as enqueueSystemEvent, vt as normalizeGroupActivation, w as pruneLegacyStoreKeys, wn as stopSubagentsForRequester, wr as DEFAULT_INPUT_MAX_REDIRECTS, x as listSessionsFromStore, yr as isSystemEventContextChanged, z as setGatewaySigusr1RestartPolicy, zn as getTtsProvider, zt as normalizeSendPolicy } from "./reply-Bv-RvRzs.js";
4
+ import { $ as normalizeOptionalSessionKey, $t as buildSafeExternalPrompt, At as agentCommand, B as setPreRestartDeferralCheck, Bn as isTtsEnabled, Bt as resolveSendPolicy, C as loadSessionEntry, Cn as isAbortTrigger, Cr as DEFAULT_INPUT_IMAGE_MIMES, Dn as countActiveDescendantRuns, Dr as extractImageContentFromSource, Dt as requestBodyErrorToText, E as resolveSessionModelRef, Er as extractFileContentFromSource, Et as readJsonBodyWithLimit, F as emitGatewayRestart, Fn as getAgentRunContext, G as summarizeRestartSentinel, Gn as resolveTtsPrefsPath, Gt as setCliSessionId, H as formatDoctorNonInteractiveHint, Hn as resolveTtsApiKey, Ht as createOutboundSendDeps$1, I as isGatewaySigusr1RestartExternallyAllowed, In as onAgentEvent, It as resolveOutboundTarget, J as normalizeHttpWebhookUrl, Jn as setTtsProvider, Kn as resolveTtsProviderOrder, Kt as runCliAgent, L as markGatewaySigusr1RestartHandled, Ln as registerAgentRunContext, Lt as resolveSessionDeliveryTarget, Mn as readLatestAssistantReply, Mt as resolveAgentDeliveryPlan, N as consumeGatewaySigusr1RestartAuthorization, Nn as clearAgentRunContext, Nt as resolveAgentOutboundTarget, O as ensureOutboundSessionEntry, On as initSubagentRegistry, Or as normalizeMimeList, Ot as computeBackoff, P as deferGatewayRestartUntilIdle, Pn as emitAgentEvent, Q as normalizeOptionalAgentId, Qn as getActiveTaskCount, R as scheduleGatewaySigusr1Restart, Rn as resolveUserTimezone, Rt as createOutboundSendDeps, S as loadCombinedSessionStoreForGateway, Sr as DEFAULT_INPUT_IMAGE_MAX_BYTES, T as resolveGatewaySessionStoreTarget, Tr as DEFAULT_INPUT_TIMEOUT_MS, Tt as handleSlackHttpRequest, U as formatRestartSentinelMessage, Un as resolveTtsAutoMode, Ut as runWithModelFallback, V as consumeRestartSentinel, Vn as isTtsProviderConfigured, Vt as createDefaultDeps, Wn as resolveTtsConfig, Wt as getCliSessionId, X as normalizeCronJobPatch, Xn as OPENAI_TTS_MODELS, Y as normalizeCronJobCreate, Yn as textToSpeech, Yt as resolveAgentAvatar, Z as inferLegacyName, Zn as OPENAI_TTS_VOICES, _ as resolveAnnounceTargetFromKey, _r as parseVerboseOverride, ar as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, at as hasLegacyDeliveryHints, b as listAgentsForGateway, bn as formatZonedTimestamp, bt as loadProviderUsageSummary, c as clearSessionQueues, d as getActiveEmbeddedRunCount, dt as requestHeartbeatNow, en as detectSuspiciousPatterns, er as getTotalQueueSize, et as normalizeOptionalText, f as waitForEmbeddedPiRunEnd, fn as dispatchInboundMessage, g as createOpenClawTools, gr as applyVerboseOverride, gt as loadOpenClawPlugins, hr as applyModelOverrideToSessionEntry, i as resolveCronStyleNow, ir as CommandLane, it as buildDeliveryFromLegacyPayload, j as resetDirectoryCache, jn as runSubagentAnnounceFlow, jr as resolveAgentTimeoutMs, k as resolveOutboundSessionRoute, kn as listDescendantRunsForRequester, kr as resolveInputFileLimits, kt as sleepWithAbort, l as runEmbeddedPiAgent, lr as stripHeartbeatToken, lt as applyBrowserProxyPaths, m as buildDefaultToolPolicyPipelineSteps, mn as getTotalPendingReplies, mt as getPluginToolMeta, n as BARE_SESSION_RESET_PROMPT, nn as isExternalHookSession, nr as setCommandLaneConcurrency, nt as normalizeRequiredName, ot as stripLegacyDeliveryFields, p as applyToolPolicyPipeline, pn as createReplyDispatcher, q as writeRestartSentinel, qn as setTtsEnabled, rn as unbindThreadBindingsBySessionKey, rr as waitForActiveTasks, rt as migrateLegacyCronPayload, sn as buildHistoryContextFromEntries, tn as getHookType, tr as resetAllLanes, tt as normalizePayloadToSystemText, u as abortEmbeddedPiRun, ur as lookupContextTokens, ut as persistBrowserProxyFiles, v as canonicalizeSpawnedByForAgent, vr as enqueueSystemEvent, vt as normalizeGroupActivation, w as pruneLegacyStoreKeys, wn as stopSubagentsForRequester, wr as DEFAULT_INPUT_MAX_REDIRECTS, x as listSessionsFromStore, yr as isSystemEventContextChanged, z as setGatewaySigusr1RestartPolicy, zn as getTtsProvider, zt as normalizeSendPolicy } from "./reply-DuVUTFfT.js";
5
5
  import { S as parseAgentSessionKey, c as normalizeMainKey, f as toAgentRequestSessionKey, l as resolveAgentIdFromSessionKey, m as DEFAULT_ACCOUNT_ID, o as classifySessionKeyShape, p as toAgentStoreSessionKey, r as buildAgentMainSessionKey, s as normalizeAgentId, t as DEFAULT_AGENT_ID, x as isSubagentSessionKey, y as isCronRunSessionKey } from "./session-key-DCt45XZa.js";
6
6
  import { r as matchesSkillFilter, t as resolveOpenClawPackageRoot } from "./openclaw-root-CQJwyH9q.js";
7
7
  import { C as createInternalHookEvent, S as clearInternalHooks, T as triggerInternalHook, d as getActivePluginRegistry, m as createEmptyPluginRegistry, r as DEFAULT_CHAT_CHANNEL, t as CHANNEL_IDS, w as registerInternalHook } from "./registry-Dygi7Azw.js";
@@ -139,20 +139,20 @@ import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } fr
139
139
  import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-Dc97sW1v.js";
140
140
  import { c as probeGateway, o as isNodeCommandAllowed, s as resolveNodeCommandAllowlist } from "./audit-IXHzDiVd.js";
141
141
  import { t as discoverGatewayBeacons } from "./bonjour-discovery-BlFVEHG-.js";
142
- import { n as getStatusSummary, r as pickGatewaySelfPresence } from "./status-B8UVm7P3.js";
143
- import { c as startHeartbeatRunner, i as styleHealthChannelLine, n as getHealthSnapshot, o as runHeartbeatOnce, s as setHeartbeatsEnabled, t as formatHealthChannelLines } from "./health-DMrTgW8V.js";
142
+ import { n as getStatusSummary, r as pickGatewaySelfPresence } from "./status-CLKmcFCC.js";
143
+ import { c as startHeartbeatRunner, i as styleHealthChannelLine, n as getHealthSnapshot, o as runHeartbeatOnce, s as setHeartbeatsEnabled, t as formatHealthChannelLines } from "./health-DQjqH1zU.js";
144
144
  import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-d_j0Pdnj.js";
145
145
  import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, m as normalizeUpdateChannel, n as compareSemverStrings, t as checkUpdateStatus } from "./update-check-B-fJT8wY.js";
146
- import { t as runOnboardingWizard } from "./onboarding-0zwx3Yv7.js";
147
- import { a as sendApnsAlert, c as parseMessageWithAttachments, d as shouldLogWs, f as summarizeAgentEventForWsLog, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, p as setGatewayWsLogStyle, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration, u as logWs } from "./push-apns-Dli4pG4y.js";
146
+ import { t as runOnboardingWizard } from "./onboarding-CTgBlanm.js";
147
+ import { a as sendApnsAlert, c as parseMessageWithAttachments, d as shouldLogWs, f as summarizeAgentEventForWsLog, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, p as setGatewayWsLogStyle, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration, u as logWs } from "./push-apns-DGIqfAg5.js";
148
148
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-C47YdW4F.js";
149
- import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-PFAfbBID.js";
149
+ import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-BVjazvnK.js";
150
150
  import "./dm-policy-shared-Dhee-_og.js";
151
151
  import "./node-service-Da4wpz30.js";
152
152
  import "./status.update-CCXdXTvr.js";
153
153
  import { t as resolveSystemRunCommand } from "./system-run-command-DKiCEPJc.js";
154
154
  import { t as installSkill } from "./skills-install-Dcs7EklJ.js";
155
- import { n as runGatewayUpdate, t as resolveAgentSessionDirs } from "./session-dirs-BAcQuXpY.js";
155
+ import { n as runGatewayUpdate, t as resolveAgentSessionDirs } from "./session-dirs-Cw2efkey.js";
156
156
  import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-DpGqXq9W.js";
157
157
  import { fileURLToPath, pathToFileURL } from "node:url";
158
158
  import * as fsSync from "node:fs";
@@ -12410,7 +12410,7 @@ const nodeHandlers = {
12410
12410
  const p = params;
12411
12411
  const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
12412
12412
  await respondUnavailableOnThrow(respond, async () => {
12413
- const { handleNodeEvent } = await import("./server-node-events-B9TqPvCI.js");
12413
+ const { handleNodeEvent } = await import("./server-node-events-B3o3P600.js");
12414
12414
  const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
12415
12415
  await handleNodeEvent({
12416
12416
  deps: context.deps,
@@ -1,5 +1,5 @@
1
1
  import { B as theme, k as info, l as escapeRegExp, z as isRich } from "./utils-BlC2Fskb.js";
2
- import { $n as getQueueSize, Ft as resolveHeartbeatSenderContext, Pt as resolveHeartbeatDeliveryTarget, Rn as resolveUserTimezone, ar as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, br as peekSystemEventEntries, cr as resolveHeartbeatPrompt$1, dt as requestHeartbeatNow, ft as setHeartbeatWakeHandler, ir as CommandLane, lr as stripHeartbeatToken, or as DEFAULT_HEARTBEAT_EVERY, pt as resolveHeartbeatReasonKind, r as appendCronStyleCurrentTimeLine, sr as isHeartbeatContentEffectivelyEmpty, t as getReplyFromConfig } from "./reply-Bv-RvRzs.js";
2
+ import { $n as getQueueSize, Ft as resolveHeartbeatSenderContext, Pt as resolveHeartbeatDeliveryTarget, Rn as resolveUserTimezone, ar as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, br as peekSystemEventEntries, cr as resolveHeartbeatPrompt$1, dt as requestHeartbeatNow, ft as setHeartbeatWakeHandler, ir as CommandLane, lr as stripHeartbeatToken, or as DEFAULT_HEARTBEAT_EVERY, pt as resolveHeartbeatReasonKind, r as appendCronStyleCurrentTimeLine, sr as isHeartbeatContentEffectivelyEmpty, t as getReplyFromConfig } from "./reply-DuVUTFfT.js";
3
3
  import { l as resolveAgentIdFromSessionKey, p as toAgentStoreSessionKey, s as normalizeAgentId } from "./session-key-DCt45XZa.js";
4
4
  import { f as defaultRuntime, t as createSubsystemLogger } from "./subsystem-8bY95KEB.js";
5
5
  import { c as resolveAgentWorkspaceDir, g as DEFAULT_HEARTBEAT_FILENAME, l as resolveDefaultAgentId, r as resolveAgentConfig } from "./agent-scope-D9N91YsQ.js";
@@ -4,7 +4,7 @@ import { l as resolveAgentIdFromSessionKey, p as toAgentStoreSessionKey, s as no
4
4
  import { c as resolveAgentWorkspaceDir, g as DEFAULT_HEARTBEAT_FILENAME, l as resolveDefaultAgentId, r as resolveAgentConfig } from "./agent-scope-BVNQDedk.js";
5
5
  import { C as parseDurationMs, i as loadConfig } from "./config-P-vz8Nlc.js";
6
6
  import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-D6ajQjvV.js";
7
- import { Gn as resolveUserTimezone, J as appendCronStyleCurrentTimeLine, K as getReplyFromConfig, Sn as peekSystemEventEntries, cn as requestHeartbeatNow, dr as CommandLane, fr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, gr as stripHeartbeatToken, hr as resolveHeartbeatPrompt$1, ln as setHeartbeatWakeHandler, mr as isHeartbeatContentEffectivelyEmpty, or as getQueueSize, ot as resolveHeartbeatDeliveryTarget, pr as DEFAULT_HEARTBEAT_EVERY, st as resolveHeartbeatSenderContext, un as resolveHeartbeatReasonKind } from "./subagent-registry-Lm4ps45z.js";
7
+ import { Gn as resolveUserTimezone, J as appendCronStyleCurrentTimeLine, K as getReplyFromConfig, Sn as peekSystemEventEntries, cn as requestHeartbeatNow, dr as CommandLane, fr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, gr as stripHeartbeatToken, hr as resolveHeartbeatPrompt$1, ln as setHeartbeatWakeHandler, mr as isHeartbeatContentEffectivelyEmpty, or as getQueueSize, ot as resolveHeartbeatDeliveryTarget, pr as DEFAULT_HEARTBEAT_EVERY, st as resolveHeartbeatSenderContext, un as resolveHeartbeatReasonKind } from "./subagent-registry-Da0a_Vka.js";
8
8
  import { M as canonicalizeMainSessionAlias, N as resolveAgentMainSessionKey, d as updateSessionStore, l as saveSessionStore, o as loadSessionStore } from "./sessions-BJnLP6OJ.js";
9
9
  import { t as HEARTBEAT_TOKEN } from "./tokens-ANnYrShl.js";
10
10
  import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-DStDwRz0.js";
@@ -1,7 +1,7 @@
1
1
  import "./paths-B4BZAPZh.js";
2
2
  import { B as theme, S as shortenHomePath, t as CONFIG_DIR, y as resolveUserPath } from "./utils-BlC2Fskb.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import "./reply-Bv-RvRzs.js";
4
+ import "./reply-DuVUTFfT.js";
5
5
  import "./registry-Dygi7Azw.js";
6
6
  import { f as defaultRuntime } from "./subsystem-8bY95KEB.js";
7
7
  import "./exec-BmMB8-Xs.js";
@@ -108,7 +108,7 @@ import { a as installPackageDir, i as withTempDir, n as installFromNpmSpecArchiv
108
108
  import { t as renderTable } from "./table-i7J9YlN5.js";
109
109
  import { a as parseFrontmatter, t as loadWorkspaceHookEntries } from "./workspace-DpGqXq9W.js";
110
110
  import { t as buildWorkspaceHookStatus } from "./hooks-status-DZI7Fkka.js";
111
- import { t as buildPluginStatusReport } from "./status-BqDiXxwL.js";
111
+ import { t as buildPluginStatusReport } from "./status-C2PvVLaW.js";
112
112
  import fs from "node:fs";
113
113
  import path from "node:path";
114
114
  import fs$1 from "node:fs/promises";
@@ -15,7 +15,7 @@ import "./client-B5QR5Bi9.js";
15
15
  import "./call-D6ajQjvV.js";
16
16
  import "./message-channel-CVHJDItx.js";
17
17
  import "./pairing-token-Byh6drgn.js";
18
- import "./subagent-registry-Lm4ps45z.js";
18
+ import "./subagent-registry-Da0a_Vka.js";
19
19
  import "./sessions-BJnLP6OJ.js";
20
20
  import "./tokens-ANnYrShl.js";
21
21
  import "./plugins-DStDwRz0.js";
@@ -104,7 +104,7 @@ import { a as installPackageDir, i as withTempDir, n as installFromNpmSpecArchiv
104
104
  import { t as renderTable } from "./table-C9BoE_4p.js";
105
105
  import { a as parseFrontmatter, t as loadWorkspaceHookEntries } from "./workspace-DWI9N-Ks.js";
106
106
  import { t as buildWorkspaceHookStatus } from "./hooks-status-CNo1bkDq.js";
107
- import { t as buildPluginStatusReport } from "./status-keCWmejk.js";
107
+ import { t as buildPluginStatusReport } from "./status-BSJIuIlN.js";
108
108
  import path from "node:path";
109
109
  import fs from "node:fs";
110
110
  import fs$1 from "node:fs/promises";
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { D as isRecord, I as shortenHomeInString } from "./registry-dIQoppcB.js";
3
3
  import { G as resolveOpenClawAgentDir, S as getApiKeyForModel, Y as normalizeSecretInput, _ as resolveImplicitBedrockProvider, g as normalizeProviders, v as resolveImplicitCopilotProvider, w as requireApiKey, y as resolveImplicitProviders } from "./model-selection-CB33-r8t.js";
4
4
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-j5tVLINv.js";
5
- import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-Cd0S0WfR.js";
5
+ import { N as sanitizeUserFacingText } from "./pi-embedded-helpers-B0Kht0I2.js";
6
6
  import { n as loadConfig } from "./config-KL7847B1.js";
7
7
  import { n as redactToolDetail } from "./redact-1NGYV_8p.js";
8
8
  import path from "node:path";
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import "./paths-B4BZAPZh.js";
3
3
  import { B as theme, P as setVerbose, T as toWhatsappJid, l as escapeRegExp, m as normalizeE164, n as assertWebChannel, z as isRich } from "./utils-BlC2Fskb.js";
4
4
  import "./thinking-EAliFiVK.js";
5
- import { Vt as createDefaultDeps, t as getReplyFromConfig, wt as resolveCommitHash } from "./reply-Bv-RvRzs.js";
5
+ import { Vt as createDefaultDeps, t as getReplyFromConfig, wt as resolveCommitHash } from "./reply-DuVUTFfT.js";
6
6
  import "./registry-Dygi7Azw.js";
7
7
  import { f as defaultRuntime, r as enableConsoleCapture, u as visibleWidth } from "./subsystem-8bY95KEB.js";
8
8
  import { n as runExec, t as runCommandWithTimeout } from "./exec-BmMB8-Xs.js";
@@ -103,7 +103,7 @@ import "./control-service-D8pPAw9I.js";
103
103
  import "./stagger-B6VQyn1F.js";
104
104
  import "./channel-selection-ZfFyXtQ1.js";
105
105
  import "./pi-tools.policy-DZSlTC8Z.js";
106
- import { r as waitForever, t as monitorWebChannel } from "./channel-web-DHMbpU2p.js";
106
+ import { r as waitForever, t as monitorWebChannel } from "./channel-web-D8hSmcPF.js";
107
107
  import "./outbound-ZEBWBkDi.js";
108
108
  import "./session-DD2Ku-SR.js";
109
109
  import "./login-DN07rdvL.js";
@@ -112,10 +112,10 @@ import { t as ensureOpenClawCliOnPath } from "./path-env-Cd727z3O.js";
112
112
  import { t as assertSupportedRuntime } from "./runtime-guard-BYGIYhEa.js";
113
113
  import "./ports-Bha3elHt.js";
114
114
  import { a as hasFlag, i as getVerboseFlag, n as getCommandPath, o as hasHelpOrVersion, s as hasRootVersionAlias } from "./argv-iDNY1AU9.js";
115
- import { i as getCoreCliCommandsWithSubcommands, n as setProgramContext, o as registerProgramCommands, s as getSubCliCommandsWithSubcommands } from "./program-context-CDmctW1L.js";
115
+ import { i as getCoreCliCommandsWithSubcommands, n as setProgramContext, o as registerProgramCommands, s as getSubCliCommandsWithSubcommands } from "./program-context-C0-LzXoV.js";
116
116
  import "./catalog-C7TxlaHu.js";
117
- import "./plugin-registry-D57lc9ob.js";
118
- import { n as resolveCliChannelOptions } from "./channel-options-e7Z9Smf2.js";
117
+ import "./plugin-registry-CHOacv01.js";
118
+ import { n as resolveCliChannelOptions } from "./channel-options--M8F-DHl.js";
119
119
  import process$1 from "node:process";
120
120
  import { fileURLToPath } from "node:url";
121
121
  import { Command } from "commander";
@@ -515,7 +515,7 @@ function registerPreActionHooks(program, programVersion) {
515
515
  commandPath
516
516
  });
517
517
  if (PLUGIN_REQUIRED_COMMANDS.has(commandPath[0])) {
518
- const { ensurePluginRegistryLoaded } = await import("./plugin-registry-D57lc9ob.js").then((n) => n.n);
518
+ const { ensurePluginRegistryLoaded } = await import("./plugin-registry-CHOacv01.js").then((n) => n.n);
519
519
  ensurePluginRegistryLoaded();
520
520
  }
521
521
  });
@@ -4,7 +4,7 @@ import { c as resolveDefaultAgentId, r as resolveAgentDir, s as resolveAgentWork
4
4
  import "./subsystem-BF9jT_Nw.js";
5
5
  import "./workspace-DYx5Dxtw.js";
6
6
  import "./tokens-B-c56SkM.js";
7
- import { t as runEmbeddedPiAgent } from "./pi-embedded-Qfuh9XzI.js";
7
+ import { t as runEmbeddedPiAgent } from "./pi-embedded-Dz24QZz9.js";
8
8
  import "./plugins-DIrNa311.js";
9
9
  import "./accounts-C8m4ADkw.js";
10
10
  import "./boolean-B8-BqKGQ.js";
@@ -7,7 +7,7 @@ import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-rdlNzQ4S.j
7
7
  import { i as resolveForwardCompatModel, r as ANTIGRAVITY_OPUS_46_FORWARD_COMPAT_CANDIDATES } from "./model-BsIRzy0k.js";
8
8
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-Do3xMEtM.js";
9
9
  import { C as parseDurationMs, i as loadConfig } from "./config-P-vz8Nlc.js";
10
- import { en as loadProviderUsageSummary, gn as formatRemainingShort, hn as buildAuthHealthSummary, mn as DEFAULT_OAUTH_WARN_MS, mt as describeFailoverError, nn as formatUsageWindowSummary, pn as maskApiKey, rn as resolveUsageProviderId, s as runEmbeddedPiAgent } from "./subagent-registry-Lm4ps45z.js";
10
+ import { en as loadProviderUsageSummary, gn as formatRemainingShort, hn as buildAuthHealthSummary, mn as DEFAULT_OAUTH_WARN_MS, mt as describeFailoverError, nn as formatUsageWindowSummary, pn as maskApiKey, rn as resolveUsageProviderId, s as runEmbeddedPiAgent } from "./subagent-registry-Da0a_Vka.js";
11
11
  import { i as resolveSessionTranscriptPath, s as resolveSessionTranscriptsDirForAgent } from "./paths-DNdWAq7b.js";
12
12
  import { t as ensureOpenClawModelsJson } from "./models-config-6eEXvP7k.js";
13
13
  import { n as loadModelCatalog } from "./model-catalog-Bh7el8wJ.js";
@@ -21,7 +21,7 @@ import { n as redactSecrets } from "./format-B0yJsjEo.js";
21
21
  import { a as isLocalBaseUrl, c as normalizeAlias, d as resolveModelTarget, f as updateConfig, i as formatTokenK, l as resolveKnownAgentId, n as ensureFlagCompatibility, o as loadValidConfigOrThrow, r as formatMs, s as mergePrimaryFallbackConfig, t as applyDefaultModelPrimaryUpdate, u as resolveModelKeysFromEntries } from "./shared-BXBjc1xD.js";
22
22
  import { d as applyAuthProfileConfig, n as validateAnthropicSetupToken } from "./auth-token-BMzKbvDa.js";
23
23
  import { n as logConfigUpdated } from "./logging-PVQxLC6I.js";
24
- import { a as createVpsAwareOAuthHandlers, i as resolveProviderMatch, n as mergeConfigPatch, o as isRemoteEnvironment, r as pickAuthMethod, s as resolvePluginProviders, t as applyDefaultModel } from "./provider-auth-helpers-C4RNIRyy.js";
24
+ import { a as createVpsAwareOAuthHandlers, i as resolveProviderMatch, n as mergeConfigPatch, o as isRemoteEnvironment, r as pickAuthMethod, s as resolvePluginProviders, t as applyDefaultModel } from "./provider-auth-helpers-bYUBBkmL.js";
25
25
  import path from "node:path";
26
26
  import fs from "node:fs/promises";
27
27
  import { complete, getEnvApiKey, getModel } from "@mariozechner/pi-ai";
@@ -14,7 +14,7 @@ import "./client-B5QR5Bi9.js";
14
14
  import "./call-D6ajQjvV.js";
15
15
  import "./message-channel-CVHJDItx.js";
16
16
  import "./pairing-token-Byh6drgn.js";
17
- import "./subagent-registry-Lm4ps45z.js";
17
+ import "./subagent-registry-Da0a_Vka.js";
18
18
  import "./sessions-BJnLP6OJ.js";
19
19
  import "./tokens-ANnYrShl.js";
20
20
  import "./plugins-DStDwRz0.js";
@@ -104,8 +104,8 @@ import "./table-C9BoE_4p.js";
104
104
  import "./shared-BXBjc1xD.js";
105
105
  import "./auth-token-BMzKbvDa.js";
106
106
  import "./logging-PVQxLC6I.js";
107
- import { c as githubCopilotLoginCommand } from "./provider-auth-helpers-C4RNIRyy.js";
108
- import { C as modelsAliasesListCommand, S as modelsAliasesAddCommand, _ as modelsAuthOrderSetCommand, a as modelsStatusCommand, b as modelsAuthPasteTokenCommand, c as modelsImageFallbacksClearCommand, d as modelsFallbacksAddCommand, f as modelsFallbacksClearCommand, g as modelsAuthOrderGetCommand, h as modelsAuthOrderClearCommand, i as modelsScanCommand, l as modelsImageFallbacksListCommand, m as modelsFallbacksRemoveCommand, n as modelsSetImageCommand, o as modelsListCommand, p as modelsFallbacksListCommand, r as modelsSetCommand, s as modelsImageFallbacksAddCommand, u as modelsImageFallbacksRemoveCommand, v as modelsAuthAddCommand, w as modelsAliasesRemoveCommand, x as modelsAuthSetupTokenCommand, y as modelsAuthLoginCommand } from "./models-nhERae29.js";
107
+ import { c as githubCopilotLoginCommand } from "./provider-auth-helpers-bYUBBkmL.js";
108
+ import { C as modelsAliasesListCommand, S as modelsAliasesAddCommand, _ as modelsAuthOrderSetCommand, a as modelsStatusCommand, b as modelsAuthPasteTokenCommand, c as modelsImageFallbacksClearCommand, d as modelsFallbacksAddCommand, f as modelsFallbacksClearCommand, g as modelsAuthOrderGetCommand, h as modelsAuthOrderClearCommand, i as modelsScanCommand, l as modelsImageFallbacksListCommand, m as modelsFallbacksRemoveCommand, n as modelsSetImageCommand, o as modelsListCommand, p as modelsFallbacksListCommand, r as modelsSetCommand, s as modelsImageFallbacksAddCommand, u as modelsImageFallbacksRemoveCommand, v as modelsAuthAddCommand, w as modelsAliasesRemoveCommand, x as modelsAuthSetupTokenCommand, y as modelsAuthLoginCommand } from "./models-DnhANpnd.js";
109
109
 
110
110
  //#region src/cli/models-cli.ts
111
111
  function runModelsCommand(action) {
@@ -1,7 +1,7 @@
1
1
  import { t as CONFIG_PATH } from "./paths-B4BZAPZh.js";
2
2
  import { B as theme, R as colorize, S as shortenHomePath, z as isRich$1 } from "./utils-BlC2Fskb.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import { Ct as resolveUsageProviderId, Jt as describeFailoverError, St as formatUsageWindowSummary, bt as loadProviderUsageSummary, dr as maskApiKey, fr as DEFAULT_OAUTH_WARN_MS, l as runEmbeddedPiAgent, mr as formatRemainingShort, pr as buildAuthHealthSummary } from "./reply-Bv-RvRzs.js";
4
+ import { Ct as resolveUsageProviderId, Jt as describeFailoverError, St as formatUsageWindowSummary, bt as loadProviderUsageSummary, dr as maskApiKey, fr as DEFAULT_OAUTH_WARN_MS, l as runEmbeddedPiAgent, mr as formatRemainingShort, pr as buildAuthHealthSummary } from "./reply-DuVUTFfT.js";
5
5
  import "./registry-Dygi7Azw.js";
6
6
  import { f as defaultRuntime } from "./subsystem-8bY95KEB.js";
7
7
  import "./exec-BmMB8-Xs.js";
@@ -110,7 +110,7 @@ import { n as redactSecrets } from "./format-DNqZrSx7.js";
110
110
  import { a as isLocalBaseUrl, c as normalizeAlias, d as resolveModelTarget, f as updateConfig, i as formatTokenK, l as resolveKnownAgentId, n as ensureFlagCompatibility, o as loadValidConfigOrThrow, r as formatMs, s as mergePrimaryFallbackConfig, t as applyDefaultModelPrimaryUpdate, u as resolveModelKeysFromEntries } from "./shared-CKHme52b.js";
111
111
  import { d as applyAuthProfileConfig, n as validateAnthropicSetupToken } from "./auth-token-Cl6S04CQ.js";
112
112
  import { n as logConfigUpdated } from "./logging-DNqMaj3H.js";
113
- import { a as createVpsAwareOAuthHandlers, c as githubCopilotLoginCommand, i as resolveProviderMatch, n as mergeConfigPatch, o as isRemoteEnvironment, r as pickAuthMethod, s as resolvePluginProviders, t as applyDefaultModel } from "./provider-auth-helpers-BbnDoytN.js";
113
+ import { a as createVpsAwareOAuthHandlers, c as githubCopilotLoginCommand, i as resolveProviderMatch, n as mergeConfigPatch, o as isRemoteEnvironment, r as pickAuthMethod, s as resolvePluginProviders, t as applyDefaultModel } from "./provider-auth-helpers-D39L7fZC.js";
114
114
  import { t as ensurePiAuthJsonFromAuthProfiles } from "./system-cli-QPqTu1Co.js";
115
115
  import path from "node:path";
116
116
  import fs from "node:fs/promises";
@@ -9,8 +9,8 @@ import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, r as isGate
9
9
  import { t as assertSupportedRuntime } from "./runtime-guard-Cs_ClFhP.js";
10
10
  import { r as isSystemdUserServiceAvailable } from "./systemd-BrybH4HV.js";
11
11
  import { t as resolveGatewayService } from "./service-DcFI40_W.js";
12
- import { r as healthCommand } from "./health-UmuJyu1Q.js";
13
- import { t as runOnboardingWizard } from "./onboarding-D0_Q5m2W.js";
12
+ import { r as healthCommand } from "./health-Dg0bAIKS.js";
13
+ import { t as runOnboardingWizard } from "./onboarding-G28sv5Ms.js";
14
14
  import { $ as setHuggingfaceApiKey, A as applyXaiConfig, B as applyVercelAiGatewayConfig, E as applyTogetherConfig, I as applyLitellmConfig, M as applyXiaomiConfig, O as applyVeniceConfig, P as applyZaiConfig, Q as setGeminiApiKey, R as applyCloudflareAiGatewayConfig, S as applyQianfanConfig, X as setAnthropicApiKey, Z as setCloudflareAiGatewayConfig, _ as applyMoonshotConfigCn, a as applyMinimaxApiConfig, at as setOpenrouterApiKey, b as applyOpenrouterConfig, ct as setTogetherApiKey, d as applyAuthProfileConfig, dt as setXaiApiKey, et as setKimiCodingApiKey, f as applyHuggingfaceConfig, ft as setXiaomiApiKey, g as applyMoonshotConfig, it as setOpencodeZenApiKey, l as applyMinimaxConfig, lt as setVeniceApiKey, m as applyKimiCodeConfig, n as validateAnthropicSetupToken, nt as setMinimaxApiKey, o as applyMinimaxApiConfigCn, ot as setQianfanApiKey, pt as setZaiApiKey, r as applyOpencodeZenConfig, rt as setMoonshotApiKey, st as setSyntheticApiKey, t as buildTokenProfileId, tt as setLitellmApiKey, ut as setVercelAiGatewayApiKey, w as applySyntheticConfig } from "./auth-token-BMzKbvDa.js";
15
15
  import { n as logConfigUpdated } from "./logging-PVQxLC6I.js";
16
16
  import { n as isDeprecatedAuthChoice, r as normalizeLegacyOnboardAuthChoice } from "./auth-choice-legacy-DxCamFcQ.js";
@@ -11,8 +11,8 @@ import { t as createClackPrompter } from "./clack-prompter-Cpl8cd_B.js";
11
11
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-CcJb-H5N.js";
12
12
  import { r as isSystemdUserServiceAvailable } from "./systemd-Dq5fANx0.js";
13
13
  import { t as resolveGatewayService } from "./service-CJGWS46r.js";
14
- import { r as healthCommand } from "./health-DMrTgW8V.js";
15
- import { t as runOnboardingWizard } from "./onboarding-0zwx3Yv7.js";
14
+ import { r as healthCommand } from "./health-DQjqH1zU.js";
15
+ import { t as runOnboardingWizard } from "./onboarding-CTgBlanm.js";
16
16
  import { $ as setHuggingfaceApiKey, A as applyXaiConfig, B as applyVercelAiGatewayConfig, E as applyTogetherConfig, I as applyLitellmConfig, M as applyXiaomiConfig, O as applyVeniceConfig, P as applyZaiConfig, Q as setGeminiApiKey, R as applyCloudflareAiGatewayConfig, S as applyQianfanConfig, X as setAnthropicApiKey, Z as setCloudflareAiGatewayConfig, _ as applyMoonshotConfigCn, a as applyMinimaxApiConfig, at as setOpenrouterApiKey, b as applyOpenrouterConfig, ct as setTogetherApiKey, d as applyAuthProfileConfig, dt as setXaiApiKey, et as setKimiCodingApiKey, f as applyHuggingfaceConfig, ft as setXiaomiApiKey, g as applyMoonshotConfig, it as setOpencodeZenApiKey, l as applyMinimaxConfig, lt as setVeniceApiKey, m as applyKimiCodeConfig, n as validateAnthropicSetupToken, nt as setMinimaxApiKey, o as applyMinimaxApiConfigCn, ot as setQianfanApiKey, pt as setZaiApiKey, r as applyOpencodeZenConfig, rt as setMoonshotApiKey, st as setSyntheticApiKey, t as buildTokenProfileId, tt as setLitellmApiKey, ut as setVercelAiGatewayApiKey, w as applySyntheticConfig } from "./auth-token-Cl6S04CQ.js";
17
17
  import { n as logConfigUpdated } from "./logging-DNqMaj3H.js";
18
18
  import { n as isDeprecatedAuthChoice, r as normalizeLegacyOnboardAuthChoice } from "./auth-choice-legacy-aJ8D6F_s.js";
@@ -3,7 +3,7 @@ import { E as formatChannelSelectionLine, O as listChatChannels, T as formatChan
3
3
  import { t as formatCliCommand } from "./command-format-D3syQOZg.js";
4
4
  import { h as normalizeAccountId, m as DEFAULT_ACCOUNT_ID } from "./session-key-DjZ7Z1hW.js";
5
5
  import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-BVNQDedk.js";
6
- import { g as loadOpenClawPlugins, h as createPluginLoaderLogger } from "./subagent-registry-Lm4ps45z.js";
6
+ import { g as loadOpenClawPlugins, h as createPluginLoaderLogger } from "./subagent-registry-Da0a_Vka.js";
7
7
  import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-DStDwRz0.js";
8
8
  import { t as formatDocsLink } from "./links-CW8Bx7rK.js";
9
9
  import { r as listChannelPluginCatalogEntries } from "./catalog-Da8o-cxw.js";
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { gt as loadOpenClawPlugins, ht as createPluginLoaderLogger } from "./reply-Bv-RvRzs.js";
2
+ import { gt as loadOpenClawPlugins, ht as createPluginLoaderLogger } from "./reply-DuVUTFfT.js";
3
3
  import { h as normalizeAccountId, m as DEFAULT_ACCOUNT_ID } from "./session-key-DCt45XZa.js";
4
4
  import { a as formatChannelSelectionLine, i as formatChannelPrimerLine, s as listChatChannels } from "./registry-Dygi7Azw.js";
5
5
  import { t as createSubsystemLogger } from "./subsystem-8bY95KEB.js";
@@ -225,7 +225,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
225
225
  const { ensureAuthProfileStore } = await import("./model-selection-CAW5pd6g.js").then((n) => n.dt);
226
226
  const { promptAuthChoiceGrouped } = await import("./auth-choice-prompt-Cn6U3t8O.js").then((n) => n.t);
227
227
  const { promptCustomApiConfig } = await import("./onboard-custom-CtT81nPC.js").then((n) => n.r);
228
- const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-DH2T1E9c.js").then((n) => n.t);
228
+ const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-BJNaxS-L.js").then((n) => n.t);
229
229
  const { applyPrimaryModel, promptDefaultModel } = await import("./model-picker---eJj9Ex.js").then((n) => n.i);
230
230
  const authStore = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false });
231
231
  const authChoiceFromPrompt = opts.authChoice === void 0;
@@ -278,7 +278,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
278
278
  if (opts.skipChannels ?? opts.skipProviders) await prompter.note("Skipping channel setup.", "Channels");
279
279
  else {
280
280
  const { listChannelPlugins } = await import("./plugins-D8GB7NB1.js").then((n) => n.i);
281
- const { setupChannels } = await import("./onboard-channels-YvwszRaQ.js").then((n) => n.n);
281
+ const { setupChannels } = await import("./onboard-channels-O6KvizE3.js").then((n) => n.n);
282
282
  const quickstartAllowFromChannels = flow === "quickstart" ? listChannelPlugins().filter((plugin) => plugin.meta.quickstartAllowFrom).map((plugin) => plugin.id) : [];
283
283
  nextConfig = await setupChannels(nextConfig, runtime, prompter, {
284
284
  allowSignalInstall: true,
@@ -304,7 +304,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
304
304
  mode
305
305
  });
306
306
  await writeConfigFile(nextConfig);
307
- const { finalizeOnboardingWizard } = await import("./onboarding.finalize-CYb0_Q0z.js");
307
+ const { finalizeOnboardingWizard } = await import("./onboarding.finalize-Cpt9Ymcn.js");
308
308
  const { launchedTui } = await finalizeOnboardingWizard({
309
309
  flow,
310
310
  opts,
@@ -223,7 +223,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
223
223
  const { ensureAuthProfileStore } = await import("./auth-profiles-D9JM3QE1.js").then((n) => n.t);
224
224
  const { promptAuthChoiceGrouped } = await import("./auth-choice-prompt-DF6R_pgV.js").then((n) => n.t);
225
225
  const { promptCustomApiConfig } = await import("./onboard-custom-B1ElZqro.js").then((n) => n.r);
226
- const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-CLiY8PdF.js").then((n) => n.t);
226
+ const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-Hb6530su.js").then((n) => n.t);
227
227
  const { applyPrimaryModel, promptDefaultModel } = await import("./model-picker-IcZxgj7Z.js").then((n) => n.i);
228
228
  const authStore = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false });
229
229
  const authChoiceFromPrompt = opts.authChoice === void 0;
@@ -276,7 +276,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
276
276
  if (opts.skipChannels ?? opts.skipProviders) await prompter.note("Skipping channel setup.", "Channels");
277
277
  else {
278
278
  const { listChannelPlugins } = await import("./plugins-DStDwRz0.js").then((n) => n.i);
279
- const { setupChannels } = await import("./onboard-channels-CyeyvIfw.js").then((n) => n.n);
279
+ const { setupChannels } = await import("./onboard-channels-Lt2gG1e2.js").then((n) => n.n);
280
280
  const quickstartAllowFromChannels = flow === "quickstart" ? listChannelPlugins().filter((plugin) => plugin.meta.quickstartAllowFrom).map((plugin) => plugin.id) : [];
281
281
  nextConfig = await setupChannels(nextConfig, runtime, prompter, {
282
282
  allowSignalInstall: true,
@@ -302,7 +302,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
302
302
  mode
303
303
  });
304
304
  await writeConfigFile(nextConfig);
305
- const { finalizeOnboardingWizard } = await import("./onboarding.finalize-CVeI23_g.js");
305
+ const { finalizeOnboardingWizard } = await import("./onboarding.finalize-D2sylHDB.js");
306
306
  const { launchedTui } = await finalizeOnboardingWizard({
307
307
  flow,
308
308
  opts,
@@ -1,7 +1,7 @@
1
1
  import "./paths-B4BZAPZh.js";
2
2
  import { h as pathExists, y as resolveUserPath } from "./utils-BlC2Fskb.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import "./reply-Bv-RvRzs.js";
4
+ import "./reply-DuVUTFfT.js";
5
5
  import "./registry-Dygi7Azw.js";
6
6
  import { p as restoreTerminalState } from "./subsystem-8bY95KEB.js";
7
7
  import "./exec-BmMB8-Xs.js";
@@ -103,16 +103,16 @@ import "./stagger-B6VQyn1F.js";
103
103
  import "./channel-selection-ZfFyXtQ1.js";
104
104
  import "./pi-tools.policy-DZSlTC8Z.js";
105
105
  import "./runtime-guard-BYGIYhEa.js";
106
- import "./program-context-CDmctW1L.js";
106
+ import "./program-context-C0-LzXoV.js";
107
107
  import "./note-DRZSQe0n.js";
108
- import { r as installCompletion } from "./completion-cli-C79-bpAx.js";
108
+ import { r as installCompletion } from "./completion-cli-CI6LWHg3.js";
109
109
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-CcJb-H5N.js";
110
110
  import { r as isSystemdUserServiceAvailable } from "./systemd-Dq5fANx0.js";
111
111
  import { t as resolveGatewayService } from "./service-CJGWS46r.js";
112
- import { r as healthCommand } from "./health-DMrTgW8V.js";
112
+ import { r as healthCommand } from "./health-DQjqH1zU.js";
113
113
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-d_j0Pdnj.js";
114
114
  import { t as formatHealthCheckFailure } from "./health-format-D6i_RyWd.js";
115
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-BB1f594d.js";
115
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-DgPc1rDZ.js";
116
116
  import { t as runTui } from "./tui-D0O7-y68.js";
117
117
  import os from "node:os";
118
118
  import path from "node:path";
@@ -14,7 +14,7 @@ import "./client-B5QR5Bi9.js";
14
14
  import "./call-D6ajQjvV.js";
15
15
  import "./message-channel-CVHJDItx.js";
16
16
  import "./pairing-token-Byh6drgn.js";
17
- import "./subagent-registry-Lm4ps45z.js";
17
+ import "./subagent-registry-Da0a_Vka.js";
18
18
  import "./sessions-BJnLP6OJ.js";
19
19
  import "./tokens-ANnYrShl.js";
20
20
  import "./plugins-DStDwRz0.js";
@@ -99,18 +99,18 @@ import "./prompt-style-DwCXob2h.js";
99
99
  import "./pairing-labels-D2jdEFFZ.js";
100
100
  import "./pi-tools.policy-BQwEWAuL.js";
101
101
  import "./note-DDecZomM.js";
102
- import "./register.subclis-CFTYYdAQ.js";
103
- import "./command-registry-pGuORBuB.js";
102
+ import "./register.subclis-Mn68G5tp.js";
103
+ import "./command-registry-BtDC5Ll-.js";
104
104
  import "./program-context-5q-A0wbP.js";
105
- import { r as installCompletion } from "./completion-cli-Bf-Ojq_a.js";
105
+ import { r as installCompletion } from "./completion-cli-Bw5nZmTm.js";
106
106
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-Rig_aj9Q.js";
107
107
  import "./runtime-guard-Cs_ClFhP.js";
108
108
  import { r as isSystemdUserServiceAvailable } from "./systemd-BrybH4HV.js";
109
109
  import { t as resolveGatewayService } from "./service-DcFI40_W.js";
110
- import { r as healthCommand } from "./health-UmuJyu1Q.js";
110
+ import { r as healthCommand } from "./health-Dg0bAIKS.js";
111
111
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-Yp3N6NZ_.js";
112
112
  import { t as formatHealthCheckFailure } from "./health-format-DkjSgkDx.js";
113
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-deY10x7w.js";
113
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-DipoVPSi.js";
114
114
  import { t as runTui } from "./tui-D9Hy9ggA.js";
115
115
  import os from "node:os";
116
116
  import path from "node:path";
@@ -2292,6 +2292,43 @@ async function openaiTTS(params) {
2292
2292
  clearTimeout(timeout);
2293
2293
  }
2294
2294
  }
2295
+ /**
2296
+ * Streaming variant of openaiTTS. Returns the response body as a ReadableStream
2297
+ * so callers can process PCM chunks as they arrive instead of buffering the entire response.
2298
+ */
2299
+ async function openaiTTSStream(params) {
2300
+ const { text, apiKey, model, voice, responseFormat, timeoutMs } = params;
2301
+ if (!isValidOpenAIModel(model)) throw new Error(`Invalid model: ${model}`);
2302
+ if (!isValidOpenAIVoice(voice)) throw new Error(`Invalid voice: ${voice}`);
2303
+ const controller = new AbortController();
2304
+ const timeout = setTimeout(() => controller.abort(), timeoutMs);
2305
+ const response = await fetch(`${getOpenAITtsBaseUrl()}/audio/speech`, {
2306
+ method: "POST",
2307
+ headers: {
2308
+ Authorization: `Bearer ${apiKey}`,
2309
+ "Content-Type": "application/json"
2310
+ },
2311
+ body: JSON.stringify({
2312
+ model,
2313
+ input: text,
2314
+ voice,
2315
+ response_format: responseFormat
2316
+ }),
2317
+ signal: controller.signal
2318
+ });
2319
+ if (!response.ok) {
2320
+ clearTimeout(timeout);
2321
+ throw new Error(`OpenAI TTS API error (${response.status})`);
2322
+ }
2323
+ if (!response.body) {
2324
+ clearTimeout(timeout);
2325
+ throw new Error("OpenAI TTS response has no body");
2326
+ }
2327
+ return {
2328
+ body: response.body,
2329
+ cleanup: () => clearTimeout(timeout)
2330
+ };
2331
+ }
2295
2332
  function inferEdgeExtension(outputFormat) {
2296
2333
  const normalized = outputFormat.toLowerCase();
2297
2334
  if (normalized.includes("webm")) return ".webm";
@@ -2817,6 +2854,45 @@ async function textToSpeechTelephony(params) {
2817
2854
  error: `TTS conversion failed: ${errors.join("; ") || "no providers available"}`
2818
2855
  };
2819
2856
  }
2857
+ /**
2858
+ * Streaming variant of textToSpeechTelephony.
2859
+ * Returns a ReadableStream of PCM audio chunks for incremental processing.
2860
+ * Only supports OpenAI provider (PCM format required for streaming).
2861
+ */
2862
+ async function textToSpeechTelephonyStream(params) {
2863
+ const config = resolveTtsConfig(params.cfg);
2864
+ if ((config.provider ?? "openai") !== "openai") return {
2865
+ success: false,
2866
+ error: "Streaming TTS only supported for OpenAI"
2867
+ };
2868
+ const apiKey = resolveTtsApiKey(config, "openai");
2869
+ if (!apiKey) return {
2870
+ success: false,
2871
+ error: "No OpenAI API key for streaming TTS"
2872
+ };
2873
+ try {
2874
+ const output = TELEPHONY_OUTPUT.openai;
2875
+ const result = await openaiTTSStream({
2876
+ text: params.text,
2877
+ apiKey,
2878
+ model: config.openai.model,
2879
+ voice: config.openai.voice,
2880
+ responseFormat: "pcm",
2881
+ timeoutMs: config.timeoutMs
2882
+ });
2883
+ return {
2884
+ success: true,
2885
+ stream: result.body,
2886
+ sampleRate: output.sampleRate,
2887
+ cleanup: result.cleanup
2888
+ };
2889
+ } catch (err) {
2890
+ return {
2891
+ success: false,
2892
+ error: err instanceof Error ? err.message : String(err)
2893
+ };
2894
+ }
2895
+ }
2820
2896
  async function maybeApplyTtsToPayload(params) {
2821
2897
  const config = resolveTtsConfig(params.cfg);
2822
2898
  const prefsPath = resolveTtsPrefsPath(config);
@@ -51485,7 +51561,7 @@ function isVoiceChannelType(type) {
51485
51561
  function createDefaultDeps() {
51486
51562
  return {
51487
51563
  sendMessageWhatsApp: async (...args) => {
51488
- const { sendMessageWhatsApp } = await import("./web-BZ5kM4yO.js");
51564
+ const { sendMessageWhatsApp } = await import("./web-Y49Dumye.js");
51489
51565
  return await sendMessageWhatsApp(...args);
51490
51566
  },
51491
51567
  sendMessageTelegram: async (...args) => {
@@ -66828,7 +66904,7 @@ function loadWebLoginQr() {
66828
66904
  return webLoginQrPromise;
66829
66905
  }
66830
66906
  function loadWebChannel() {
66831
- webChannelPromise ??= import("./web-BZ5kM4yO.js");
66907
+ webChannelPromise ??= import("./web-Y49Dumye.js");
66832
66908
  return webChannelPromise;
66833
66909
  }
66834
66910
  function loadWhatsAppActions() {
@@ -66841,7 +66917,10 @@ function createPluginRuntime() {
66841
66917
  config: createRuntimeConfig(),
66842
66918
  system: createRuntimeSystem(),
66843
66919
  media: createRuntimeMedia(),
66844
- tts: { textToSpeechTelephony },
66920
+ tts: {
66921
+ textToSpeechTelephony,
66922
+ textToSpeechTelephonyStream
66923
+ },
66845
66924
  tools: createRuntimeTools(),
66846
66925
  channel: createRuntimeChannel(),
66847
66926
  logging: createRuntimeLogging(),