@symerian/symi 2.6.10 → 2.6.12

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 (157) hide show
  1. package/dist/{acp-cli-DT0rEuUE.js → acp-cli-Cu4icbJT.js} +2 -2
  2. package/dist/{agents-DDqXWXbP.js → agents-Cz2na8n6.js} +4 -4
  3. package/dist/{agents.config-Bu_N-bn_.js → agents.config-BeOO73lT.js} +1 -1
  4. package/dist/{agents.config-CEt-ES9z.js → agents.config-BoP9QtHX.js} +1 -1
  5. package/dist/{audio-preflight-C40mKAp7.js → audio-preflight-CPBOQV4I.js} +4 -4
  6. package/dist/{audio-preflight-BcSzL_0I.js → audio-preflight-CWnxkaac.js} +8 -8
  7. package/dist/{audio-preflight-BVaaZWkg.js → audio-preflight-DHTaS5U1.js} +4 -4
  8. package/dist/{audit-BIE9JAxf.js → audit-CrITRV6w.js} +5 -5
  9. package/dist/{auth-choice-Djy_YmfW.js → auth-choice-D-czhFdL.js} +4 -4
  10. package/dist/{auth-choice-Bmd-rbuU.js → auth-choice-DTe3UF8T.js} +1 -1
  11. package/dist/{banner-BNkhjU8E.js → banner-CSZ39UAE.js} +1 -1
  12. package/dist/{browser-cli-nNQ60Koh.js → browser-cli-BG4qPxpM.js} +3 -3
  13. package/dist/build-info.json +3 -3
  14. package/dist/bundled/boot-md/handler.js +6 -6
  15. package/dist/bundled/session-memory/handler.js +6 -6
  16. package/dist/{call-7djMRPgl.js → call-CJaS1iRF.js} +1 -1
  17. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  18. package/dist/{channel-options-D8ByM6g0.js → channel-options-CySdnaWJ.js} +1 -1
  19. package/dist/{channel-options-NLrg-j_d.js → channel-options-FlKM6QP8.js} +1 -1
  20. package/dist/{channel-web-BUQWBln9.js → channel-web-BEFE-0qE.js} +2 -2
  21. package/dist/{channels-cli-C5DWcDDG.js → channels-cli-D6zAPAP3.js} +4 -4
  22. package/dist/{channels-cli-qBgicVqp.js → channels-cli-RkhiaITs.js} +19 -19
  23. package/dist/{chrome-CDJYxX5a.js → chrome-D2SKJnR7.js} +7 -7
  24. package/dist/{chrome-DkaXoP36.js → chrome-DYZwl5Gv.js} +7 -7
  25. package/dist/{chrome-DBKZkx0x.js → chrome-DtPkPq9T.js} +7 -7
  26. package/dist/cli/daemon-cli.js +1 -1
  27. package/dist/{cli-UHMMUbWL.js → cli-Bjw4Mr_t.js} +16 -16
  28. package/dist/{cli-Bx78WeyO.js → cli-v8nSF61Z.js} +1 -1
  29. package/dist/{client-Z6SFrwob.js → client-CQSyCS4M.js} +3 -3
  30. package/dist/{command-registry-BSGsNY71.js → command-registry-CojVJ8At.js} +9 -9
  31. package/dist/{completion-cli-B915TqN4.js → completion-cli-D3N7Bpqe.js} +2 -2
  32. package/dist/{completion-cli-CajQzz5J.js → completion-cli-rD9RSIqQ.js} +1 -1
  33. package/dist/{config-cli-BM9FX48b.js → config-cli-CCG1Hizl.js} +1 -1
  34. package/dist/{config-cli-CeErUiHR.js → config-cli-DFYbGvDQ.js} +1 -1
  35. package/dist/{configure-DggNPSKd.js → configure-DdWNM_S-.js} +3 -3
  36. package/dist/{configure-CbiNzEIk.js → configure-v2ocSUJ3.js} +8 -8
  37. package/dist/{control-service-DdeFa44u.js → control-service-Bz7rxLWq.js} +3 -3
  38. package/dist/{cron-cli-C_1RndRW.js → cron-cli-DBIlCvp3.js} +3 -3
  39. package/dist/{daemon-cli-C2fkpr13.js → daemon-cli-DscwlsKW.js} +2 -2
  40. package/dist/{deliver-BH0l3UKW.js → deliver-C-37cZUe.js} +1 -1
  41. package/dist/{deliver-Bu624MY6.js → deliver-CWR_98sK.js} +1 -1
  42. package/dist/{deliver-C46-vyqg.js → deliver-dODxSv3b.js} +1 -1
  43. package/dist/{devices-cli-ERMql8Dq.js → devices-cli-Dds-25Ve.js} +2 -2
  44. package/dist/{doctor-completion-BfLDfA98.js → doctor-completion-F_AI3hun.js} +1 -1
  45. package/dist/{doctor-completion-BP_qD5Bt.js → doctor-completion-vTHV1Opp.js} +1 -1
  46. package/dist/entry.js +1 -1
  47. package/dist/{exec-approvals-cli-BEU-xJFu.js → exec-approvals-cli-BliRl8VB.js} +4 -4
  48. package/dist/extensionAPI.js +6 -6
  49. package/dist/{gateway-cli-LmMxDk7B.js → gateway-cli-DLaTC2ps.js} +28 -28
  50. package/dist/{gateway-cli-qMBjCmLH.js → gateway-cli-Di1ExMCg.js} +9 -9
  51. package/dist/{gateway-rpc-BWZzo3L9.js → gateway-rpc-BxkKeCZ0.js} +1 -1
  52. package/dist/{glass-ui-ws-CXpW0epd.js → glass-ui-ws-Bfn56Lok.js} +7 -7
  53. package/dist/{glass-ui-ws-DbV46Nrg.js → glass-ui-ws-CbaWZjN3.js} +23 -23
  54. package/dist/{health-BctmvDJ0.js → health-CqQIZeIm.js} +1 -1
  55. package/dist/{health-pukFTT09.js → health-DbJOe12X.js} +3 -3
  56. package/dist/{hooks-cli-BMQOn6QU.js → hooks-cli-B9pOqbW_.js} +17 -17
  57. package/dist/{hooks-cli-DcQN6UeT.js → hooks-cli-D60an6P1.js} +2 -2
  58. package/dist/{image-CuzFLQWC.js → image-CXu8W39c.js} +1 -1
  59. package/dist/{image-CtCUVPCD.js → image-D9uvDTrc.js} +1 -1
  60. package/dist/{image-CHzdaNJ4.js → image-DcpMiprB.js} +1 -1
  61. package/dist/index.js +21 -21
  62. package/dist/llm-slug-generator.js +6 -6
  63. package/dist/{logs-cli-V5qUbmVy.js → logs-cli-xOzIPrHm.js} +3 -3
  64. package/dist/{model-catalog-Da6fXK5K.js → model-catalog-DvBJ8pMD.js} +1 -1
  65. package/dist/{model-picker-B6QoK7pe.js → model-picker-Ddo3jHe-.js} +1 -1
  66. package/dist/{models-cli-DAKvip7R.js → models-cli-4EwiSo4p.js} +18 -18
  67. package/dist/{models-cli-DHOMkJmd.js → models-cli-Du60Ivll.js} +3 -3
  68. package/dist/{models-yF2XRbPQ.js → models-hMbDU9ot.js} +2 -2
  69. package/dist/{node-cli-r5-MNz9_.js → node-cli-C_G-Q3h-.js} +6 -6
  70. package/dist/{nodes-cli-DQed-Snk.js → nodes-cli-BcnuJajV.js} +3 -3
  71. package/dist/{onboard-BhqTlAS0.js → onboard-5yW9nvG6.js} +2 -2
  72. package/dist/{onboard-BafMA6T9.js → onboard-DJqYAPxi.js} +5 -5
  73. package/dist/{onboard-channels-CHe-XSLv.js → onboard-channels-B39Hvc_L.js} +1 -1
  74. package/dist/{onboard-channels-CZB5bhSJ.js → onboard-channels-BSzHnDcL.js} +1 -1
  75. package/dist/{onboard-custom-BduhuM_4.js → onboard-custom-C7O-zfQ1.js} +1 -1
  76. package/dist/{onboard-helpers-CiLCJJVQ.js → onboard-helpers-ZmZYzlq3.js} +1 -1
  77. package/dist/{onboard-remote-C1nRkyWo.js → onboard-remote-zUjD7UtM.js} +1 -1
  78. package/dist/{onboard-skills-9GLwG44a.js → onboard-skills-BB0YhUmF.js} +1 -1
  79. package/dist/{onboarding-D5yCx7Yb.js → onboarding-C7g_ZvRW.js} +9 -9
  80. package/dist/{onboarding-BXVYtRYj.js → onboarding-D7Y_e4zX.js} +3 -3
  81. package/dist/{onboarding.finalize-BX4DUaoK.js → onboarding.finalize-C3rqwVvV.js} +21 -21
  82. package/dist/{onboarding.finalize-DF5Zx0Zc.js → onboarding.finalize-OYNmD4ly.js} +6 -6
  83. package/dist/{onboarding.gateway-config-TSh7IejG.js → onboarding.gateway-config-CJUgDC6Y.js} +3 -3
  84. package/dist/{pi-auth-json-Tqz9D47K.js → pi-auth-json-DayrlDg_.js} +1 -1
  85. package/dist/{pi-embedded-DV6dp0BP.js → pi-embedded-Bp_9g-wj.js} +68 -17
  86. package/dist/{pi-embedded-helpers-lgx_U5KS.js → pi-embedded-helpers-B8kqLWns.js} +4 -4
  87. package/dist/{pi-embedded-helpers-D-dUrQOR.js → pi-embedded-helpers-CNPyv_ax.js} +1 -1
  88. package/dist/{pi-embedded-helpers-CfqDGQ9J.js → pi-embedded-helpers-pubKo8HQ.js} +4 -4
  89. package/dist/{pi-tools.policy-CgGK6Jq8.js → pi-tools.policy-CIDBbw6x.js} +1 -1
  90. package/dist/{plugin-registry-BSmy8tIV.js → plugin-registry-C4lpIiGz.js} +1 -1
  91. package/dist/{plugin-registry-BwnzEvIz.js → plugin-registry-CUjBEHAz.js} +1 -1
  92. package/dist/plugin-sdk/{channel-web-BdY2z7lg.js → channel-web-CQNBQiKF.js} +1 -1
  93. package/dist/plugin-sdk/index.js +2 -2
  94. package/dist/plugin-sdk/{reply-BvxntA3R.js → reply-S1JHdV1Y.js} +54 -3
  95. package/dist/plugin-sdk/{web-CorFnJCI.js → web-GZFVijBY.js} +2 -2
  96. package/dist/{plugins-cli-BMmiYArH.js → plugins-cli-1pbqkgc2.js} +17 -17
  97. package/dist/{plugins-cli-CrN718uZ.js → plugins-cli-NpSGD1FH.js} +2 -2
  98. package/dist/{program-NGbjPxJh.js → program-CvHqOriK.js} +7 -7
  99. package/dist/{program-context-BqxG0w61.js → program-context-gkaZBN4U.js} +30 -30
  100. package/dist/{prompt-select-styled-B7SzTPf7.js → prompt-select-styled-DNaDChFa.js} +8 -8
  101. package/dist/{prompt-select-styled-B1LZVYl0.js → prompt-select-styled-We9EmwdJ.js} +4 -4
  102. package/dist/{provider-auth-helpers--A-4LKUl.js → provider-auth-helpers-BD1qo8xm.js} +1 -1
  103. package/dist/{provider-auth-helpers-CNEhLjMl.js → provider-auth-helpers-aA2Nm1dz.js} +1 -1
  104. package/dist/{push-apns-DgT_gz_P.js → push-apns-Cp9F-674.js} +1 -1
  105. package/dist/{push-apns-Cem8OlK7.js → push-apns-DseyExUl.js} +1 -1
  106. package/dist/{pw-ai-De-KR9_s.js → pw-ai-1htA-NnS.js} +1 -1
  107. package/dist/{pw-ai-m0mj2KWK.js → pw-ai-B5asscAD.js} +1 -1
  108. package/dist/{pw-ai-CC0xm0TY.js → pw-ai-DqL87js3.js} +1 -1
  109. package/dist/{register.agent-vP7gkHzk.js → register.agent-BQ2_6Nm3.js} +6 -6
  110. package/dist/{register.agent-DT0doE92.js → register.agent-CBYb5PmK.js} +21 -21
  111. package/dist/{register.configure-B_W1y_ag.js → register.configure-CjLPSjMa.js} +6 -6
  112. package/dist/{register.configure-BnkkCig3.js → register.configure-o-37DMn9.js} +25 -25
  113. package/dist/{register.maintenance-C0akYVa2.js → register.maintenance-B119maJ4.js} +22 -22
  114. package/dist/{register.maintenance-Br5q9f-j.js → register.maintenance-B5VGGPfr.js} +8 -8
  115. package/dist/{register.message-CRaEakG_.js → register.message-C0vKP2cl.js} +2 -2
  116. package/dist/{register.message-mCGVBJsU.js → register.message-Dqit98AR.js} +17 -17
  117. package/dist/{register.onboard-CV_3MiHm.js → register.onboard-BHj8YY-f.js} +4 -4
  118. package/dist/{register.onboard-BvsYOovb.js → register.onboard-DfCy6ZXS.js} +21 -21
  119. package/dist/{register.setup-DFcMhPAd.js → register.setup-BO4Kdk1x.js} +4 -4
  120. package/dist/{register.setup-BQqw49hm.js → register.setup-CUK-FwzD.js} +21 -21
  121. package/dist/{register.status-health-sessions-DlgKRa9S.js → register.status-health-sessions-BIXO_68y.js} +3 -3
  122. package/dist/{register.status-health-sessions-SAm9yGnr.js → register.status-health-sessions-CvcX-h97.js} +19 -19
  123. package/dist/{register.subclis-CdANuuHY.js → register.subclis-B0T9tMmL.js} +9 -9
  124. package/dist/{reply-CiPQDsZl.js → reply-DPaH7oQp.js} +75 -24
  125. package/dist/{routes-BO8eMYxn.js → routes-Ba9CUQ8M.js} +2 -2
  126. package/dist/{rpc-BcyzUwtC.js → rpc-BfhojW8g.js} +1 -1
  127. package/dist/{run-main-z8u07ybv.js → run-main-DLFhMwmE.js} +14 -14
  128. package/dist/{runner-DUBExAb5.js → runner-BcQ0sF9T.js} +1 -1
  129. package/dist/{runner-DxdRmWfW.js → runner-CUglpiFP.js} +2 -2
  130. package/dist/{runner-CU9l0uJh.js → runner-WAG0M5s9.js} +1 -1
  131. package/dist/{sandbox-B7qoYkRl.js → sandbox-C-T6hOMv.js} +3 -3
  132. package/dist/{sandbox-cli-C-hbJJWM.js → sandbox-cli-BllVdQzR.js} +4 -4
  133. package/dist/{security-cli-CNzBZn7V.js → security-cli-BFLtWWHy.js} +8 -8
  134. package/dist/{server-context-B-ra1emS.js → server-context-CEpFjqSk.js} +4 -4
  135. package/dist/{server-methods-D9jBWl7O.js → server-methods-CCAxdyvF.js} +14 -14
  136. package/dist/{server-methods-Dwsrsy7D.js → server-methods-DMIR4YTm.js} +7 -7
  137. package/dist/{server-node-events-9T-Sm9Q4.js → server-node-events-BQ7wsfbY.js} +17 -17
  138. package/dist/{server-node-events-CUKIb7Xq.js → server-node-events-BvOiDPkg.js} +2 -2
  139. package/dist/{status-UWWMuety.js → status-BPGU6b1g.js} +5 -5
  140. package/dist/{status-CB6N6XaA.js → status-CpCo3PvK.js} +1 -1
  141. package/dist/{status-Dqm_DV3z.js → status-D4RE4eR4.js} +2 -2
  142. package/dist/{status-DPk2qV91.js → status-gpmp_Ca5.js} +1 -1
  143. package/dist/{subagent-registry-DTIudfq4.js → subagent-registry-CzBf7A_o.js} +54 -3
  144. package/dist/{system-cli-_0h_FSPB.js → system-cli-UMsMEurS.js} +3 -3
  145. package/dist/{tui-D0s_9S8b.js → tui-CriznorL.js} +3 -3
  146. package/dist/{tui-cli-gm9fv3M8.js → tui-cli-CSIdfCTR.js} +8 -8
  147. package/dist/{unified-runner-DdeRGc1w.js → unified-runner-CnKhgGr-.js} +68 -17
  148. package/dist/{update-cli-C55vGnoj.js → update-cli-16QmlAYc.js} +8 -8
  149. package/dist/{update-cli-D8jX4yKe.js → update-cli-B8lzwxOj.js} +23 -23
  150. package/dist/{update-runner-B0ORHPYT.js → update-runner-CEjq0Uxs.js} +1 -1
  151. package/dist/{update-runner-CGsqW9Gu.js → update-runner-DLCpL3Pj.js} +1 -1
  152. package/dist/{web-DsGfc1GN.js → web-BPQuKyCM.js} +17 -17
  153. package/dist/{web-CRFt1vNo.js → web-BiZqjSRz.js} +1 -1
  154. package/dist/{web-nKQzj7wJ.js → web-CQ7OlTVM.js} +6 -6
  155. package/dist/{web-BC4kDUZw.js → web-D7tHOzz3.js} +6 -6
  156. package/dist/{with-timeout-BFdGltxb.js → with-timeout-gmK6RciS.js} +1 -1
  157. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  import { g as resolveStateDir, t as CONFIG_PATH } from "./paths-Cqn-zk3M.js";
2
2
  import { D as isPlainObject, U as getResolvedLoggerSettings, r as clamp, y as resolveUserPath } from "./utils-B-0b9bGM.js";
3
3
  import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels } from "./thinking-EAliFiVK.js";
4
- import { $n as OPENAI_TTS_MODELS, Bn as registerAgentRunContext, Bt as abortEmbeddedPiRun, C as ensureOutboundSessionEntry, Et as agentCommand, Ft as normalizeSendPolicy, G as normalizeCronJobPatch, Gn as resolveTtsApiKey, H as writeRestartSentinel, Hn as getTtsProvider, Ht as waitForEmbeddedPiRunEnd, It as resolveSendPolicy, Jn as resolveTtsPrefsPath, Kn as resolveTtsAutoMode, L as formatDoctorNonInteractiveHint, Mn as listSubagentRunsForRequester, Mt as resolveOutboundTarget, N as scheduleGatewaySigusr1Restart, Ot as resolveAgentDeliveryPlan, Pr as resolveAgentTimeoutMs, Qn as textToSpeech, Rt as createOutboundSendDeps, Sr as isSystemEventContextChanged, Tn as stopSubagentsForRequester, Un as isTtsEnabled, Vn as resolveUserTimezone, W as normalizeCronJobCreate, Wn as isTtsProviderConfigured, Xn as setTtsEnabled, Yn as resolveTtsProviderOrder, Zn as setTtsProvider, _ as loadCombinedSessionStoreForGateway, at as persistBrowserProxyFiles, b as resolveGatewaySessionStoreTarget, br as parseVerboseOverride, c as clearSessionQueues, er as OPENAI_TTS_VOICES, ft as loadSymiPlugins, g as listSessionsFromStore, gt as loadProviderUsageSummary, h as listAgentsForGateway, in as unbindThreadBindingsBySessionKey, it as applyBrowserProxyPaths, jn as listDescendantRunsForRequester, kt as resolveAgentOutboundTarget, mn as createReplyDispatcher, mt as normalizeGroupActivation, n as BARE_SESSION_RESET_PROMPT, p as canonicalizeSpawnedByForAgent, pn as dispatchInboundMessage, qn as resolveTtsConfig, v as loadSessionEntry, vr as applyModelOverrideToSessionEntry, w as resolveOutboundSessionRoute, wn as isAbortTrigger, x as resolveSessionModelRef, xn as formatZonedTimestamp, xr as enqueueSystemEvent, y as pruneLegacyStoreKeys, yr as applyVerboseOverride, zn as onAgentEvent } from "./reply-CiPQDsZl.js";
4
+ import { $n as OPENAI_TTS_MODELS, Bn as registerAgentRunContext, Bt as abortEmbeddedPiRun, C as ensureOutboundSessionEntry, Et as agentCommand, Ft as normalizeSendPolicy, G as normalizeCronJobPatch, Gn as resolveTtsApiKey, H as writeRestartSentinel, Hn as getTtsProvider, Ht as waitForEmbeddedPiRunEnd, It as resolveSendPolicy, Jn as resolveTtsPrefsPath, Kn as resolveTtsAutoMode, L as formatDoctorNonInteractiveHint, Mn as listSubagentRunsForRequester, Mt as resolveOutboundTarget, N as scheduleGatewaySigusr1Restart, Ot as resolveAgentDeliveryPlan, Pr as resolveAgentTimeoutMs, Qn as textToSpeech, Rt as createOutboundSendDeps, Sr as isSystemEventContextChanged, Tn as stopSubagentsForRequester, Un as isTtsEnabled, Vn as resolveUserTimezone, W as normalizeCronJobCreate, Wn as isTtsProviderConfigured, Xn as setTtsEnabled, Yn as resolveTtsProviderOrder, Zn as setTtsProvider, _ as loadCombinedSessionStoreForGateway, at as persistBrowserProxyFiles, b as resolveGatewaySessionStoreTarget, br as parseVerboseOverride, c as clearSessionQueues, er as OPENAI_TTS_VOICES, ft as loadSymiPlugins, g as listSessionsFromStore, gt as loadProviderUsageSummary, h as listAgentsForGateway, in as unbindThreadBindingsBySessionKey, it as applyBrowserProxyPaths, jn as listDescendantRunsForRequester, kt as resolveAgentOutboundTarget, mn as createReplyDispatcher, mt as normalizeGroupActivation, n as BARE_SESSION_RESET_PROMPT, p as canonicalizeSpawnedByForAgent, pn as dispatchInboundMessage, qn as resolveTtsConfig, v as loadSessionEntry, vr as applyModelOverrideToSessionEntry, w as resolveOutboundSessionRoute, wn as isAbortTrigger, x as resolveSessionModelRef, xn as formatZonedTimestamp, xr as enqueueSystemEvent, y as pruneLegacyStoreKeys, yr as applyVerboseOverride, zn as onAgentEvent } from "./reply-DPaH7oQp.js";
5
5
  import { S as parseAgentSessionKey, l as resolveAgentIdFromSessionKey, m as DEFAULT_ACCOUNT_ID, o as classifySessionKeyShape, s as normalizeAgentId, t as DEFAULT_AGENT_ID, x as isSubagentSessionKey } from "./session-key-DCt45XZa.js";
6
6
  import { t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
7
7
  import { C as createInternalHookEvent, T as triggerInternalHook, d as getActivePluginRegistry, r as DEFAULT_CHAT_CHANNEL, t as CHANNEL_IDS } from "./registry-Cja8eT7G.js";
@@ -17,20 +17,20 @@ import { B as resolveAgentMainSessionKey, C as capArrayByJsonBytes, D as resolve
17
17
  import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-DKDeQZF0.js";
18
18
  import { n as resolveSessionFilePath, r as resolveSessionFilePathOptions, s as resolveSessionTranscriptsDirForAgent } from "./paths-CyhzMxFA.js";
19
19
  import { i as normalizeInputProvenance } from "./input-provenance-BzbXHcaD.js";
20
- import { n as createBrowserRouteDispatcher } from "./with-timeout-BFdGltxb.js";
21
- import { C as getGlobalHookRunner, o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads } from "./deliver-Bu624MY6.js";
20
+ import { n as createBrowserRouteDispatcher } from "./with-timeout-gmK6RciS.js";
21
+ import { C as getGlobalHookRunner, o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads } from "./deliver-CWR_98sK.js";
22
22
  import { a as resolveAgentIdentity, t as createReplyPrefixOptions } from "./reply-prefix-CE2YmmsD.js";
23
- import { $ as validateNodePairRejectParams, A as validateCronStatusParams, At as ErrorCodes, B as validateExecApprovalsGetParams, Bt as removePairedDevice, C as validateConfigSetParams, Ct as validateWebLoginStartParams, D as validateCronRemoveParams, Dt as validateWizardStartParams, E as validateCronListParams, Et as validateWizardNextParams, F as validateDevicePairRemoveParams, Ft as approveDevicePairing, G as validateModelsListParams, H as validateExecApprovalsNodeSetParams, Ht as revokeDeviceToken, I as validateDeviceTokenRevokeParams, J as validateNodeInvokeParams, K as validateNodeDescribeParams, L as validateDeviceTokenRotateParams, M as validateDevicePairApproveParams, N as validateDevicePairListParams, Nt as parseSessionLabel, O as validateCronRunParams, Ot as validateWizardStatusParams, P as validateDevicePairRejectParams, Q as validateNodePairListParams, Rt as listDevicePairing, S as validateConfigSchemaParams, St as validateWakeParams, T as validateCronAddParams, Tt as validateWizardCancelParams, U as validateExecApprovalsSetParams, Ut as rotateDeviceToken, V as validateExecApprovalsNodeGetParams, W as validateLogsTailParams, Wt as summarizeDeviceTokens, X as validateNodeListParams, Y as validateNodeInvokeResultParams, Z as validateNodePairApproveParams, _ as validateChatInjectParams, _t as validateSkillsStatusParams, a as validateAgentWaitParams, b as validateConfigGetParams, bt as validateTalkModeParams, c as validateAgentsFilesGetParams, ct as validateSessionsDeleteParams, d as validateAgentsListParams, dt as validateSessionsPreviewParams, et as validateNodePairRequestParams, f as validateAgentsUpdateParams, ft as validateSessionsResetParams, g as validateChatHistoryParams, gt as validateSkillsInstallParams, h as validateChatAbortParams, ht as validateSkillsBinsParams, i as validateAgentParams, it as validatePushTestParams, j as validateCronUpdateParams, jt as errorShape, k as validateCronRunsParams, l as validateAgentsFilesListParams, lt as validateSessionsListParams, m as validateChannelsStatusParams, mt as validateSessionsUsageParams, n as formatValidationErrors, nt as validateNodeRenameParams, o as validateAgentsCreateParams, ot as validateSendParams, p as validateChannelsLogoutParams, pt as validateSessionsResolveParams, q as validateNodeEventParams, r as validateAgentIdentityParams, rt as validatePollParams, s as validateAgentsDeleteParams, st as validateSessionsCompactParams, tt as validateNodePairVerifyParams, u as validateAgentsFilesSetParams, ut as validateSessionsPatchParams, v as validateChatSendParams, vt as validateSkillsUpdateParams, wt as validateWebLoginWaitParams, x as validateConfigPatchParams, xt as validateUpdateRunParams, y as validateConfigApplyParams, yt as validateTalkConfigParams, zt as rejectDevicePairing } from "./client-Z6SFrwob.js";
24
- import { l as authorizeOperatorScopesForMethod, s as ADMIN_SCOPE$2, u as isNodeRoleMethod } from "./call-7djMRPgl.js";
23
+ import { $ as validateNodePairRejectParams, A as validateCronStatusParams, At as ErrorCodes, B as validateExecApprovalsGetParams, Bt as removePairedDevice, C as validateConfigSetParams, Ct as validateWebLoginStartParams, D as validateCronRemoveParams, Dt as validateWizardStartParams, E as validateCronListParams, Et as validateWizardNextParams, F as validateDevicePairRemoveParams, Ft as approveDevicePairing, G as validateModelsListParams, H as validateExecApprovalsNodeSetParams, Ht as revokeDeviceToken, I as validateDeviceTokenRevokeParams, J as validateNodeInvokeParams, K as validateNodeDescribeParams, L as validateDeviceTokenRotateParams, M as validateDevicePairApproveParams, N as validateDevicePairListParams, Nt as parseSessionLabel, O as validateCronRunParams, Ot as validateWizardStatusParams, P as validateDevicePairRejectParams, Q as validateNodePairListParams, Rt as listDevicePairing, S as validateConfigSchemaParams, St as validateWakeParams, T as validateCronAddParams, Tt as validateWizardCancelParams, U as validateExecApprovalsSetParams, Ut as rotateDeviceToken, V as validateExecApprovalsNodeGetParams, W as validateLogsTailParams, Wt as summarizeDeviceTokens, X as validateNodeListParams, Y as validateNodeInvokeResultParams, Z as validateNodePairApproveParams, _ as validateChatInjectParams, _t as validateSkillsStatusParams, a as validateAgentWaitParams, b as validateConfigGetParams, bt as validateTalkModeParams, c as validateAgentsFilesGetParams, ct as validateSessionsDeleteParams, d as validateAgentsListParams, dt as validateSessionsPreviewParams, et as validateNodePairRequestParams, f as validateAgentsUpdateParams, ft as validateSessionsResetParams, g as validateChatHistoryParams, gt as validateSkillsInstallParams, h as validateChatAbortParams, ht as validateSkillsBinsParams, i as validateAgentParams, it as validatePushTestParams, j as validateCronUpdateParams, jt as errorShape, k as validateCronRunsParams, l as validateAgentsFilesListParams, lt as validateSessionsListParams, m as validateChannelsStatusParams, mt as validateSessionsUsageParams, n as formatValidationErrors, nt as validateNodeRenameParams, o as validateAgentsCreateParams, ot as validateSendParams, p as validateChannelsLogoutParams, pt as validateSessionsResolveParams, q as validateNodeEventParams, r as validateAgentIdentityParams, rt as validatePollParams, s as validateAgentsDeleteParams, st as validateSessionsCompactParams, tt as validateNodePairVerifyParams, u as validateAgentsFilesSetParams, ut as validateSessionsPatchParams, v as validateChatSendParams, vt as validateSkillsUpdateParams, wt as validateWebLoginWaitParams, x as validateConfigPatchParams, xt as validateUpdateRunParams, y as validateConfigApplyParams, yt as validateTalkConfigParams, zt as rejectDevicePairing } from "./client-CQSyCS4M.js";
24
+ import { l as authorizeOperatorScopesForMethod, s as ADMIN_SCOPE$2, u as isNodeRoleMethod } from "./call-CJaS1iRF.js";
25
25
  import { c as writeJsonAtomic, o as createAsyncLock, s as readJsonFile } from "./pairing-token-CX3NN_qj.js";
26
26
  import { n as normalizePollInput } from "./polls-DhH5YkzN.js";
27
27
  import { t as getChannelActivity } from "./channel-activity-BOiuJS3t.js";
28
28
  import { _ as requestNodePairing, g as renamePairedNode, h as rejectNodePairing, m as listNodePairing, o as getRemoteSkillEligibility, p as approveNodePairing, y as verifyNodeToken } from "./skill-commands-Cxw-jNxU.js";
29
29
  import { t as listAgentWorkspaceDirs } from "./workspace-dirs-GpkFi6Kw.js";
30
30
  import { i as loadSessionUsageTimeSeries, n as loadCostUsageSummary, r as loadSessionCostSummary, t as discoverAllSessions } from "./session-cost-usage-UxUgrslM.js";
31
- import { w as resolveAssistantAvatarUrl } from "./onboard-helpers-CiLCJJVQ.js";
31
+ import { w as resolveAssistantAvatarUrl } from "./onboard-helpers-ZmZYzlq3.js";
32
32
  import { a as mergeExecApprovalsSocketDefaults, c as readExecApprovalsSnapshot, p as saveExecApprovals, r as ensureExecApprovals, s as normalizeExecApprovals } from "./exec-approvals-Kn31mBcW.js";
33
- import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-DdeFa44u.js";
33
+ import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-Bz7rxLWq.js";
34
34
  import { i as parseAbsoluteTimeMs } from "./stagger-BUClb97_.js";
35
35
  import { r as getLastHeartbeatEvent } from "./heartbeat-visibility-U4BL57eQ.js";
36
36
  import { t as buildChannelUiCatalog } from "./catalog-RiADx7MA.js";
@@ -38,15 +38,15 @@ import { t as buildWorkspaceSkillStatus } from "./skills-status-CURJKnyY.js";
38
38
  import { t as WizardCancelledError } from "./prompts-Xu2Sveka.js";
39
39
  import { t as resolveChannelDefaultAccountId } from "./helpers-BcGbMZD1.js";
40
40
  import { t as buildChannelAccountSnapshot } from "./status-BrV-afZE.js";
41
- import { o as isNodeCommandAllowed, s as resolveNodeCommandAllowlist } from "./audit-BIE9JAxf.js";
42
- import { n as getStatusSummary } from "./status-UWWMuety.js";
43
- import { s as setHeartbeatsEnabled } from "./health-pukFTT09.js";
41
+ import { o as isNodeCommandAllowed, s as resolveNodeCommandAllowlist } from "./audit-CrITRV6w.js";
42
+ import { n as getStatusSummary } from "./status-BPGU6b1g.js";
43
+ import { s as setHeartbeatsEnabled } from "./health-DbJOe12X.js";
44
44
  import { m as normalizeUpdateChannel } from "./update-check-CtckACbb.js";
45
- import { a as sendApnsAlert, c as parseMessageWithAttachments, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration } from "./push-apns-DgT_gz_P.js";
46
- import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-Bu_N-bn_.js";
45
+ import { a as sendApnsAlert, c as parseMessageWithAttachments, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration } from "./push-apns-Cp9F-674.js";
46
+ import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-BeOO73lT.js";
47
47
  import { t as resolveSystemRunCommand } from "./system-run-command-ByVa3txU.js";
48
48
  import { t as installSkill } from "./skills-install-D67isO1L.js";
49
- import { t as runGatewayUpdate } from "./update-runner-CGsqW9Gu.js";
49
+ import { t as runGatewayUpdate } from "./update-runner-DLCpL3Pj.js";
50
50
  import * as fs$2 from "node:fs";
51
51
  import fs from "node:fs";
52
52
  import * as os$1 from "node:os";
@@ -6853,7 +6853,7 @@ const nodeHandlers = {
6853
6853
  const p = params;
6854
6854
  const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
6855
6855
  await respondUnavailableOnThrow(respond, async () => {
6856
- const { handleNodeEvent } = await import("./server-node-events-9T-Sm9Q4.js");
6856
+ const { handleNodeEvent } = await import("./server-node-events-BQ7wsfbY.js");
6857
6857
  const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
6858
6858
  await handleNodeEvent({
6859
6859
  deps: context.deps,
@@ -12,7 +12,7 @@ import { f as GATEWAY_CLIENT_CAPS, g as hasGatewayClientCap, i as isGatewayMessa
12
12
  import { c as writeJsonAtomic, o as createAsyncLock, s as readJsonFile } from "./pairing-token-Byh6drgn.js";
13
13
  import { s as pickPrimaryLanIPv4 } from "./net-DZ5Ayk-W.js";
14
14
  import { i as normalizeInputProvenance } from "./input-provenance-D0lNkCf6.js";
15
- import { $n as resolveTtsAutoMode, B as dispatchInboundMessage, C as resolveAgentDeliveryPlan, Cn as enqueueSystemEvent, Cr as onAgentEvent, D as createOutboundSendDeps, Dt as normalizeCronJobPatch, Et as normalizeCronJobCreate, G as BARE_SESSION_RESET_PROMPT, Gn as stopSubagentsForRequester, Gt as persistBrowserProxyFiles, In as resolveAgentTimeoutMs, Jn as resolveUserTimezone, Qn as resolveTtsApiKey, Sn as parseVerboseOverride, V as createReplyDispatcher, Vn as formatZonedTimestamp, Wn as isAbortTrigger, Wt as applyBrowserProxyPaths, Xn as isTtsEnabled, Y as abortEmbeddedPiRun, Yn as getTtsProvider, Z as waitForEmbeddedPiRunEnd, Zn as isTtsProviderConfigured, Zt as scheduleGatewaySigusr1Restart, a as listSubagentRunsForRequester, ar as textToSpeech, bn as applyModelOverrideToSessionEntry, c as clearSessionQueues, ct as resolveOutboundSessionRoute, dt as resolveOutboundTarget, en as unbindThreadBindingsBySessionKey, er as resolveTtsConfig, hn as resolveSendPolicy, i as listDescendantRunsForRequester, ir as setTtsProvider, m as loadSymiPlugins, mn as normalizeSendPolicy, nr as resolveTtsProviderOrder, or as OPENAI_TTS_MODELS, rn as loadProviderUsageSummary, rr as setTtsEnabled, sr as OPENAI_TTS_VOICES, st as ensureOutboundSessionEntry, tn as normalizeGroupActivation, tr as resolveTtsPrefsPath, w as resolveAgentOutboundTarget, wn as isSystemEventContextChanged, wr as registerAgentRunContext, wt as writeRestartSentinel, x as agentCommand, xn as applyVerboseOverride, yt as formatDoctorNonInteractiveHint } from "./subagent-registry-DTIudfq4.js";
15
+ import { $n as resolveTtsAutoMode, B as dispatchInboundMessage, C as resolveAgentDeliveryPlan, Cn as enqueueSystemEvent, Cr as onAgentEvent, D as createOutboundSendDeps, Dt as normalizeCronJobPatch, Et as normalizeCronJobCreate, G as BARE_SESSION_RESET_PROMPT, Gn as stopSubagentsForRequester, Gt as persistBrowserProxyFiles, In as resolveAgentTimeoutMs, Jn as resolveUserTimezone, Qn as resolveTtsApiKey, Sn as parseVerboseOverride, V as createReplyDispatcher, Vn as formatZonedTimestamp, Wn as isAbortTrigger, Wt as applyBrowserProxyPaths, Xn as isTtsEnabled, Y as abortEmbeddedPiRun, Yn as getTtsProvider, Z as waitForEmbeddedPiRunEnd, Zn as isTtsProviderConfigured, Zt as scheduleGatewaySigusr1Restart, a as listSubagentRunsForRequester, ar as textToSpeech, bn as applyModelOverrideToSessionEntry, c as clearSessionQueues, ct as resolveOutboundSessionRoute, dt as resolveOutboundTarget, en as unbindThreadBindingsBySessionKey, er as resolveTtsConfig, hn as resolveSendPolicy, i as listDescendantRunsForRequester, ir as setTtsProvider, m as loadSymiPlugins, mn as normalizeSendPolicy, nr as resolveTtsProviderOrder, or as OPENAI_TTS_MODELS, rn as loadProviderUsageSummary, rr as setTtsEnabled, sr as OPENAI_TTS_VOICES, st as ensureOutboundSessionEntry, tn as normalizeGroupActivation, tr as resolveTtsPrefsPath, w as resolveAgentOutboundTarget, wn as isSystemEventContextChanged, wr as registerAgentRunContext, wt as writeRestartSentinel, x as agentCommand, xn as applyVerboseOverride, yt as formatDoctorNonInteractiveHint } from "./subagent-registry-CzBf7A_o.js";
16
16
  import { F as resolveMainSessionKey, I as resolveMainSessionKeyFromConfig, J as normalizeSessionDeliveryFields, N as resolveAgentMainSessionKey, P as resolveExplicitAgentSessionKey, R as snapshotSessionOrigin, S as stripEnvelopeFromMessages, _ as capArrayByJsonBytes, d as updateSessionStore, g as archiveSessionTranscripts, h as archiveFileOnDisk, o as loadSessionStore, t as extractDeliveryInfo, v as readSessionMessages, x as resolveSessionTranscriptCandidates, y as readSessionPreviewItemsFromTranscript } from "./sessions-CJXnZVjR.js";
17
17
  import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-CwSlLxM8.js";
18
18
  import { n as createBrowserRouteDispatcher } from "./with-timeout-Di0nddLY.js";
@@ -37,14 +37,14 @@ import { t as WizardCancelledError } from "./prompts-m1IJwIAx.js";
37
37
  import { t as resolveChannelDefaultAccountId } from "./helpers-cLP5YLeQ.js";
38
38
  import { t as buildChannelAccountSnapshot } from "./status-BUedPCLb.js";
39
39
  import { o as isNodeCommandAllowed, s as resolveNodeCommandAllowlist } from "./audit-Byo5jCLN.js";
40
- import { r as getStatusSummary } from "./status-Dqm_DV3z.js";
41
- import { c as setHeartbeatsEnabled } from "./health-BctmvDJ0.js";
40
+ import { r as getStatusSummary } from "./status-D4RE4eR4.js";
41
+ import { c as setHeartbeatsEnabled } from "./health-CqQIZeIm.js";
42
42
  import { m as normalizeUpdateChannel } from "./update-check-ZdimP1aU.js";
43
- import { a as sendApnsAlert, c as parseMessageWithAttachments, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration } from "./push-apns-Cem8OlK7.js";
44
- import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-CEt-ES9z.js";
43
+ import { a as sendApnsAlert, c as parseMessageWithAttachments, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration } from "./push-apns-DseyExUl.js";
44
+ import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-BoP9QtHX.js";
45
45
  import { t as resolveSystemRunCommand } from "./system-run-command-ByVa3txU.js";
46
46
  import { t as installSkill } from "./skills-install-1ZdwGTnh.js";
47
- import { t as runGatewayUpdate } from "./update-runner-B0ORHPYT.js";
47
+ import { t as runGatewayUpdate } from "./update-runner-CEjq0Uxs.js";
48
48
  import { spawnSync } from "node:child_process";
49
49
  import * as os$1 from "node:os";
50
50
  import os from "node:os";
@@ -6851,7 +6851,7 @@ const nodeHandlers = {
6851
6851
  const p = params;
6852
6852
  const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
6853
6853
  await respondUnavailableOnThrow(respond, async () => {
6854
- const { handleNodeEvent } = await import("./server-node-events-CUKIb7Xq.js");
6854
+ const { handleNodeEvent } = await import("./server-node-events-BvOiDPkg.js");
6855
6855
  const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
6856
6856
  await handleNodeEvent({
6857
6857
  deps: context.deps,
@@ -1,7 +1,7 @@
1
1
  import "./paths-Cqn-zk3M.js";
2
2
  import "./utils-B-0b9bGM.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import { Et as agentCommand, Mt as resolveOutboundTarget, Pt as createOutboundSendDeps, b as resolveGatewaySessionStoreTarget, st as requestHeartbeatNow, v as loadSessionEntry, xr as enqueueSystemEvent, y as pruneLegacyStoreKeys } from "./reply-CiPQDsZl.js";
4
+ import { Et as agentCommand, Mt as resolveOutboundTarget, Pt as createOutboundSendDeps, b as resolveGatewaySessionStoreTarget, st as requestHeartbeatNow, v as loadSessionEntry, xr as enqueueSystemEvent, y as pruneLegacyStoreKeys } from "./reply-DPaH7oQp.js";
5
5
  import { c as normalizeMainKey } from "./session-key-DCt45XZa.js";
6
6
  import "./registry-Cja8eT7G.js";
7
7
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
@@ -15,19 +15,19 @@ import "./message-channel-aT-I_DTX.js";
15
15
  import "./send-CZr1hVHY.js";
16
16
  import { i as loadConfig } from "./config-CHwyw6l5.js";
17
17
  import "./manifest-registry-C4BxOMWX.js";
18
- import "./runner-DxdRmWfW.js";
19
- import "./image-CtCUVPCD.js";
18
+ import "./runner-CUglpiFP.js";
19
+ import "./image-D9uvDTrc.js";
20
20
  import "./models-config-qyOXrOli.js";
21
21
  import "./pi-model-discovery-4uUnLc3n.js";
22
- import "./pi-embedded-helpers-D-dUrQOR.js";
23
- import "./sandbox-B7qoYkRl.js";
24
- import "./chrome-DBKZkx0x.js";
22
+ import "./pi-embedded-helpers-CNPyv_ax.js";
23
+ import "./sandbox-C-T6hOMv.js";
24
+ import "./chrome-DtPkPq9T.js";
25
25
  import "./tailscale-D5dKabOc.js";
26
26
  import "./auth-B741uFtk.js";
27
- import "./server-context-B-ra1emS.js";
27
+ import "./server-context-CEpFjqSk.js";
28
28
  import "./frontmatter-DWQhtOo7.js";
29
29
  import "./skills-6jdJQ5ZL.js";
30
- import "./routes-BO8eMYxn.js";
30
+ import "./routes-Ba9CUQ8M.js";
31
31
  import "./redact-f-Q-hFt_.js";
32
32
  import "./errors-BF3TeRH2.js";
33
33
  import "./fs-safe-CUjO1ca2.js";
@@ -53,10 +53,10 @@ import "./fetch-guard-DOPkVbh3.js";
53
53
  import "./api-key-rotation-CzuPlV2t.js";
54
54
  import "./local-roots-aAFLQGkY.js";
55
55
  import "./sqlite-Dx3J_aSE.js";
56
- import "./model-catalog-Da6fXK5K.js";
56
+ import "./model-catalog-DvBJ8pMD.js";
57
57
  import "./tokens-BuceUQDl.js";
58
- import "./with-timeout-BFdGltxb.js";
59
- import { t as deliverOutboundPayloads } from "./deliver-Bu624MY6.js";
58
+ import "./with-timeout-gmK6RciS.js";
59
+ import { t as deliverOutboundPayloads } from "./deliver-CWR_98sK.js";
60
60
  import "./diagnostic-DjBRPfu9.js";
61
61
  import "./diagnostic-session-state-CUslJyKP.js";
62
62
  import "./send-Cutb0ZDY.js";
@@ -72,8 +72,8 @@ import "./ir-DZam9q5M.js";
72
72
  import "./render-CXDO_kgw.js";
73
73
  import "./commands-BNLCWX6e.js";
74
74
  import "./commands-registry-BT0-zzs3.js";
75
- import "./client-Z6SFrwob.js";
76
- import "./call-7djMRPgl.js";
75
+ import "./client-CQSyCS4M.js";
76
+ import "./call-CJaS1iRF.js";
77
77
  import "./pairing-token-CX3NN_qj.js";
78
78
  import "./channel-activity-BOiuJS3t.js";
79
79
  import "./fetch-DTNGXEzX.js";
@@ -93,16 +93,16 @@ import "./session-cost-usage-UxUgrslM.js";
93
93
  import "./outbound-attachment-mQQiYZ3C.js";
94
94
  import "./delivery-queue-CxuV9EeG.js";
95
95
  import "./send-DWYkPSUs.js";
96
- import "./onboard-helpers-CiLCJJVQ.js";
96
+ import "./onboard-helpers-ZmZYzlq3.js";
97
97
  import "./prompt-style-8JqOYj0q.js";
98
98
  import "./pairing-labels-2S6x2UoV.js";
99
99
  import "./exec-approvals-Kn31mBcW.js";
100
100
  import "./nodes-screen-VBGXKdLk.js";
101
- import "./pi-tools.policy-CgGK6Jq8.js";
102
- import "./control-service-DdeFa44u.js";
101
+ import "./pi-tools.policy-CIDBbw6x.js";
102
+ import "./control-service-Bz7rxLWq.js";
103
103
  import "./stagger-BUClb97_.js";
104
104
  import "./channel-selection-DuWs0Aak.js";
105
- import { c as parseMessageWithAttachments, l as formatForLog, r as registerApnsToken, s as normalizeRpcAttachmentsToChatAttachments } from "./push-apns-DgT_gz_P.js";
105
+ import { c as parseMessageWithAttachments, l as formatForLog, r as registerApnsToken, s as normalizeRpcAttachmentsToChatAttachments } from "./push-apns-Cp9F-674.js";
106
106
  import { randomUUID } from "node:crypto";
107
107
 
108
108
  //#region src/gateway/server-node-events.ts
@@ -14,7 +14,7 @@ import "./client-DMBZpU6X.js";
14
14
  import "./call-BcE47FtD.js";
15
15
  import "./message-channel-C9dERklz.js";
16
16
  import "./pairing-token-Byh6drgn.js";
17
- import { Cn as enqueueSystemEvent, T as createOutboundSendDeps, dn as requestHeartbeatNow, dt as resolveOutboundTarget, x as agentCommand } from "./subagent-registry-DTIudfq4.js";
17
+ import { Cn as enqueueSystemEvent, T as createOutboundSendDeps, dn as requestHeartbeatNow, dt as resolveOutboundTarget, x as agentCommand } from "./subagent-registry-CzBf7A_o.js";
18
18
  import { d as updateSessionStore } from "./sessions-CJXnZVjR.js";
19
19
  import "./tokens-Csntmwwn.js";
20
20
  import { r as normalizeChannelId } from "./plugins-CwSlLxM8.js";
@@ -98,7 +98,7 @@ import "./onboard-helpers-_pit1NZW.js";
98
98
  import "./prompt-style-DwCXob2h.js";
99
99
  import "./pairing-labels-D1HDboV2.js";
100
100
  import "./pi-tools.policy-De00gPXt.js";
101
- import { c as parseMessageWithAttachments, l as formatForLog, r as registerApnsToken, s as normalizeRpcAttachmentsToChatAttachments } from "./push-apns-Cem8OlK7.js";
101
+ import { c as parseMessageWithAttachments, l as formatForLog, r as registerApnsToken, s as normalizeRpcAttachmentsToChatAttachments } from "./push-apns-DseyExUl.js";
102
102
  import { randomUUID } from "node:crypto";
103
103
 
104
104
  //#region src/gateway/server-node-events.ts
@@ -1,6 +1,6 @@
1
1
  import { u as resolveGatewayPort } from "./paths-Cqn-zk3M.js";
2
2
  import { B as theme, k as info, z as isRich } from "./utils-B-0b9bGM.js";
3
- import { B as summarizeRestartSentinel, Jt as sha256HexPrefix, _t as formatUsageReportLines, a as buildChannelSummary, gt as loadProviderUsageSummary, h as listAgentsForGateway, m as classifySessionKey, o as buildChannelAccountSnapshot, pr as lookupContextTokens, s as formatChannelAllowFrom, wr as peekSystemEvents, x as resolveSessionModelRef, z as readRestartSentinel } from "./reply-CiPQDsZl.js";
3
+ import { B as summarizeRestartSentinel, Jt as sha256HexPrefix, _t as formatUsageReportLines, a as buildChannelSummary, gt as loadProviderUsageSummary, h as listAgentsForGateway, m as classifySessionKey, o as buildChannelAccountSnapshot, pr as lookupContextTokens, s as formatChannelAllowFrom, wr as peekSystemEvents, x as resolveSessionModelRef, z as readRestartSentinel } from "./reply-DPaH7oQp.js";
4
4
  import { S as parseAgentSessionKey } from "./session-key-DCt45XZa.js";
5
5
  import { t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
6
6
  import { n as runExec } from "./exec-CWkblSrI.js";
@@ -14,12 +14,12 @@ import { H as resolveMainSessionKey, R as resolveFreshSessionTotalTokens, o as l
14
14
  import { n as listChannelPlugins } from "./plugins-DKDeQZF0.js";
15
15
  import { c as resolveStorePath } from "./paths-CyhzMxFA.js";
16
16
  import { r as getMemorySearchManager } from "./memory-cli-Ca5r9AUb.js";
17
- import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-7djMRPgl.js";
17
+ import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-CJaS1iRF.js";
18
18
  import { n as formatTimeAgo } from "./format-relative-BXoxEQVN.js";
19
19
  import { n as withProgress } from "./progress-jIePzvGA.js";
20
20
  import { r as formatDurationPrecise } from "./format-duration-D0B0Uo-I.js";
21
21
  import { o as getRemoteSkillEligibility } from "./skill-commands-Cxw-jNxU.js";
22
- import { C as normalizeControlUiBasePath, g as resolveControlUiLinks } from "./onboard-helpers-CiLCJJVQ.js";
22
+ import { C as normalizeControlUiBasePath, g as resolveControlUiLinks } from "./onboard-helpers-ZmZYzlq3.js";
23
23
  import { t as buildWorkspaceSkillStatus } from "./skills-status-CURJKnyY.js";
24
24
  import { t as resolveChannelDefaultAccountId } from "./helpers-BcGbMZD1.js";
25
25
  import { t as collectChannelStatusIssues } from "./channels-status-issues-B_kBkl_u.js";
@@ -27,8 +27,8 @@ import { s as resolveGatewayLogPaths, t as resolveGatewayService } from "./servi
27
27
  import { t as formatRuntimeStatusWithDetails } from "./runtime-status-CR9445g5.js";
28
28
  import { t as readLastGatewayErrorLine } from "./diagnostics-BAMlsVVX.js";
29
29
  import { t as renderTable } from "./table-BTgkRafz.js";
30
- import { a as resolveGatewayProbeAuth$1, c as probeGateway, t as runSecurityAudit } from "./audit-BIE9JAxf.js";
31
- import { a as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-pukFTT09.js";
30
+ import { a as resolveGatewayProbeAuth$1, c as probeGateway, t as runSecurityAudit } from "./audit-CrITRV6w.js";
31
+ import { a as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-DbJOe12X.js";
32
32
  import { g as resolveUpdateChannelDisplay, i as formatGitInstallLabel, m as normalizeUpdateChannel, t as checkUpdateStatus } from "./update-check-CtckACbb.js";
33
33
  import { t as resolveNodeService } from "./node-service-Cxz4e-Qd.js";
34
34
  import { n as redactSecrets, t as formatGatewayAuthUsed } from "./format-yQZNwAF2.js";
@@ -1,7 +1,7 @@
1
1
  import { o as createSubsystemLogger } from "./entry.js";
2
2
  import { D as resolveDefaultAgentWorkspaceDir, c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-D-jRCY0d.js";
3
3
  import { i as loadConfig } from "./config-DHBLS1Hl.js";
4
- import { m as loadSymiPlugins, p as createPluginLoaderLogger } from "./subagent-registry-DTIudfq4.js";
4
+ import { m as loadSymiPlugins, p as createPluginLoaderLogger } from "./subagent-registry-CzBf7A_o.js";
5
5
 
6
6
  //#region src/plugins/status.ts
7
7
  const log = createSubsystemLogger("plugins");
@@ -9,7 +9,7 @@ import { c as resolveAgentWorkspaceDir } from "./agent-scope-D-jRCY0d.js";
9
9
  import { t as buildWorkspaceSkillStatus } from "./skills-status-DKXJ-tbi.js";
10
10
  import { H as VERSION, i as loadConfig, o as readConfigFileSnapshot } from "./config-DHBLS1Hl.js";
11
11
  import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-BcE47FtD.js";
12
- import { En as peekSystemEvents, St as summarizeRestartSentinel, cn as buildChannelAccountSnapshot, in as formatUsageReportLines, ln as formatChannelAllowFrom, nt as sha256HexPrefix, rn as loadProviderUsageSummary, sn as buildChannelSummary, xt as readRestartSentinel } from "./subagent-registry-DTIudfq4.js";
12
+ import { En as peekSystemEvents, St as summarizeRestartSentinel, cn as buildChannelAccountSnapshot, in as formatUsageReportLines, ln as formatChannelAllowFrom, nt as sha256HexPrefix, rn as loadProviderUsageSummary, sn as buildChannelSummary, xt as readRestartSentinel } from "./subagent-registry-CzBf7A_o.js";
13
13
  import { F as resolveMainSessionKey, j as resolveFreshSessionTotalTokens, o as loadSessionStore } from "./sessions-CJXnZVjR.js";
14
14
  import { n as listChannelPlugins } from "./plugins-CwSlLxM8.js";
15
15
  import { o as getTailnetHostname, s as readTailscaleStatusJson } from "./tailscale-CbbvYNVw.js";
@@ -29,7 +29,7 @@ import { t as formatRuntimeStatusWithDetails } from "./runtime-status-hFVEC3wO.j
29
29
  import { t as readLastGatewayErrorLine } from "./diagnostics-CS1ov_hH.js";
30
30
  import { t as renderTable } from "./table-D01d2GuY.js";
31
31
  import { a as resolveGatewayProbeAuth$1, c as probeGateway, t as runSecurityAudit } from "./audit-Byo5jCLN.js";
32
- import { o as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-BctmvDJ0.js";
32
+ import { o as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-CqQIZeIm.js";
33
33
  import { g as resolveUpdateChannelDisplay, i as formatGitInstallLabel, m as normalizeUpdateChannel, t as checkUpdateStatus } from "./update-check-ZdimP1aU.js";
34
34
  import { t as resolveNodeService } from "./node-service-fcZExd22.js";
35
35
  import { n as redactSecrets, t as formatGatewayAuthUsed } from "./format-DVLB9DNB.js";
@@ -1,4 +1,4 @@
1
- import { dt as createPluginLoaderLogger, ft as loadSymiPlugins } from "./reply-CiPQDsZl.js";
1
+ import { dt as createPluginLoaderLogger, ft as loadSymiPlugins } from "./reply-DPaH7oQp.js";
2
2
  import { t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
3
3
  import { D as resolveDefaultAgentWorkspaceDir, c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-CgUHAtCo.js";
4
4
  import { i as loadConfig } from "./config-CHwyw6l5.js";
@@ -35616,6 +35616,16 @@ function validateShellCommand(command) {
35616
35616
  //#endregion
35617
35617
  //#region src/agents/pi-tools.validate-wrapper.ts
35618
35618
  const log$1 = createSubsystemLogger("agents/tool-validate");
35619
+ /** Return a properly formatted tool result error that pi-agent-core can process. */
35620
+ function toolError(message) {
35621
+ return {
35622
+ content: [{
35623
+ type: "text",
35624
+ text: message
35625
+ }],
35626
+ details: {}
35627
+ };
35628
+ }
35619
35629
  const EXEC_TOOL_NAMES = new Set(["exec", "bash"]);
35620
35630
  const GEMMA_MODEL_ID = "gemma";
35621
35631
  /**
@@ -35671,15 +35681,56 @@ function sanitizeParams(params) {
35671
35681
  };
35672
35682
  }
35673
35683
  /**
35684
+ * Build a usage example string from a tool's JSON schema for helpful error messages.
35685
+ * Returns something like: web_search({ query: "<search terms>" })
35686
+ */
35687
+ function buildToolUsageExample(toolName, schema) {
35688
+ const props = schema?.properties;
35689
+ if (!props || typeof props !== "object") return `${toolName}({ ... })`;
35690
+ return `${toolName}({ ${Object.entries(props).slice(0, 4).map(([key, def]) => {
35691
+ const typeDef = def;
35692
+ if (Array.isArray(typeDef?.enum)) return `${key}: "${typeDef.enum[0]}"`;
35693
+ if (typeDef?.type === "string") return `${key}: "<${typeof typeDef.description === "string" ? typeDef.description.slice(0, 30) : key}>"`;
35694
+ return `${key}: ...`;
35695
+ }).join(", ")} })`;
35696
+ }
35697
+ /**
35698
+ * Extract required fields from a tool's JSON schema.
35699
+ */
35700
+ function getRequiredFields(schema) {
35701
+ const required = schema?.required;
35702
+ return Array.isArray(required) ? required.filter((r) => typeof r === "string") : [];
35703
+ }
35704
+ /**
35705
+ * Create a relaxed copy of a tool schema with required fields removed.
35706
+ * This allows args with missing fields to pass pi-agent-core's schema
35707
+ * validation, reaching our execute() wrapper where we can return a
35708
+ * helpful error message with a usage example.
35709
+ */
35710
+ function relaxSchema(schema) {
35711
+ if (!schema || typeof schema !== "object") return schema;
35712
+ const copy = { ...schema };
35713
+ delete copy.required;
35714
+ return copy;
35715
+ }
35716
+ /**
35674
35717
  * Wrap a single tool with universal argument sanitization.
35675
35718
  */
35676
35719
  function wrapToolWithArgValidation(tool) {
35677
35720
  const toolName = (tool.name ?? "").toLowerCase().trim();
35678
35721
  const isExecTool = EXEC_TOOL_NAMES.has(toolName);
35722
+ const originalRequired = getRequiredFields(tool.parameters);
35723
+ const usageExample = buildToolUsageExample(toolName, tool.parameters);
35679
35724
  const originalExecute = tool.execute;
35680
35725
  return {
35681
35726
  ...tool,
35727
+ parameters: relaxSchema(tool.parameters),
35682
35728
  execute(toolCallId, params, ...rest) {
35729
+ const missingFields = originalRequired.filter((field) => params[field] === void 0 || params[field] === null);
35730
+ if (missingFields.length > 0) {
35731
+ log$1.warn(`[validate] ${toolName} missing required fields: ${missingFields.join(", ")}`);
35732
+ return Promise.resolve(toolError(`Error: Missing required argument${missingFields.length > 1 ? "s" : ""}: ${missingFields.join(", ")}. Please try again with all required arguments.\nExample: ${usageExample}`));
35733
+ }
35683
35734
  const { cleaned, changed } = sanitizeParams(params);
35684
35735
  if (changed) log$1.debug(`[validate] sanitized args for ${toolName}: ${Object.keys(params).filter((k) => cleaned[k] !== params[k]).join(",")}`);
35685
35736
  const effectiveParams = changed ? cleaned : params;
@@ -35692,7 +35743,7 @@ function wrapToolWithArgValidation(tool) {
35692
35743
  const result = validateShellCommand(command);
35693
35744
  if (!result.valid) {
35694
35745
  log$1.warn(`[validate] exec command rejected: reason=${result.reason} raw=${command.slice(0, 100)}`);
35695
- return Promise.resolve({ output: `Error: ${result.reason}. The command appears to contain model control tokens. Please provide a clean shell command without any <|, |>, or XML-like tags. Only valid shell syntax is accepted.` });
35746
+ return Promise.resolve(toolError(`Error: ${result.reason}. The command appears to contain model control tokens. Please provide a clean shell command without any <|, |>, or XML-like tags. Only valid shell syntax is accepted.`));
35696
35747
  }
35697
35748
  if (result.cleaned !== command) {
35698
35749
  log$1.debug(`[validate] exec command cleaned: raw=${command.slice(0, 80)} → cleaned=${result.cleaned.slice(0, 80)}`);
@@ -53028,7 +53079,7 @@ function isVoiceChannelType(type) {
53028
53079
  function createDefaultDeps() {
53029
53080
  return {
53030
53081
  sendMessageWhatsApp: async (...args) => {
53031
- const { sendMessageWhatsApp } = await import("./web-CRFt1vNo.js");
53082
+ const { sendMessageWhatsApp } = await import("./web-BiZqjSRz.js");
53032
53083
  return await sendMessageWhatsApp(...args);
53033
53084
  },
53034
53085
  sendMessageTelegram: async (...args) => {
@@ -68342,7 +68393,7 @@ function loadWebLoginQr() {
68342
68393
  return webLoginQrPromise;
68343
68394
  }
68344
68395
  function loadWebChannel() {
68345
- webChannelPromise ??= import("./web-CRFt1vNo.js");
68396
+ webChannelPromise ??= import("./web-BiZqjSRz.js");
68346
68397
  return webChannelPromise;
68347
68398
  }
68348
68399
  function loadWhatsAppActions() {
@@ -11,12 +11,12 @@ import "./env-DPCHYPeH.js";
11
11
  import "./message-channel-aT-I_DTX.js";
12
12
  import "./config-CHwyw6l5.js";
13
13
  import "./manifest-registry-C4BxOMWX.js";
14
- import "./client-Z6SFrwob.js";
15
- import "./call-7djMRPgl.js";
14
+ import "./client-CQSyCS4M.js";
15
+ import "./call-CJaS1iRF.js";
16
16
  import "./pairing-token-CX3NN_qj.js";
17
17
  import { t as formatDocsLink } from "./links-3i1eUga4.js";
18
18
  import "./progress-jIePzvGA.js";
19
- import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-BWZzo3L9.js";
19
+ import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-BxkKeCZ0.js";
20
20
  import path from "node:path";
21
21
  import fs from "node:fs/promises";
22
22
 
@@ -4,12 +4,12 @@ import { l as stripAnsi, u as visibleWidth } from "./subsystem-D9vIQve0.js";
4
4
  import { l as resolveDefaultAgentId } from "./agent-scope-CgUHAtCo.js";
5
5
  import { f as GATEWAY_CLIENT_CAPS, h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-aT-I_DTX.js";
6
6
  import { H as VERSION, i as loadConfig } from "./config-CHwyw6l5.js";
7
- import { _ as formatRawAssistantErrorForUi } from "./pi-embedded-helpers-D-dUrQOR.js";
7
+ import { _ as formatRawAssistantErrorForUi } from "./pi-embedded-helpers-CNPyv_ax.js";
8
8
  import { k as stripLeadingInboundMetadata } from "./sessions-DgYpBvse.js";
9
9
  import { n as resolveToolDisplay, t as formatToolDetail } from "./tool-display-D8N3rsYt.js";
10
10
  import { a as listChatCommandsForConfig, i as listChatCommands } from "./commands-registry-BT0-zzs3.js";
11
- import { kt as PROTOCOL_VERSION, t as GatewayClient } from "./client-Z6SFrwob.js";
12
- import { i as ensureExplicitGatewayAuth, o as resolveExplicitGatewayAuth, t as buildGatewayConnectionDetails } from "./call-7djMRPgl.js";
11
+ import { kt as PROTOCOL_VERSION, t as GatewayClient } from "./client-CQSyCS4M.js";
12
+ import { i as ensureExplicitGatewayAuth, o as resolveExplicitGatewayAuth, t as buildGatewayConnectionDetails } from "./call-CJaS1iRF.js";
13
13
  import { n as formatTimeAgo, t as formatRelativeTimestamp } from "./format-relative-BXoxEQVN.js";
14
14
  import { n as formatTokenCount } from "./usage-format-BzKEDn0q.js";
15
15
  import chalk from "chalk";
@@ -12,15 +12,15 @@ import "./env-DPCHYPeH.js";
12
12
  import "./message-channel-aT-I_DTX.js";
13
13
  import "./config-CHwyw6l5.js";
14
14
  import "./manifest-registry-C4BxOMWX.js";
15
- import "./pi-embedded-helpers-D-dUrQOR.js";
16
- import "./sandbox-B7qoYkRl.js";
17
- import "./chrome-DBKZkx0x.js";
15
+ import "./pi-embedded-helpers-CNPyv_ax.js";
16
+ import "./sandbox-C-T6hOMv.js";
17
+ import "./chrome-DtPkPq9T.js";
18
18
  import "./tailscale-D5dKabOc.js";
19
19
  import "./auth-B741uFtk.js";
20
- import "./server-context-B-ra1emS.js";
20
+ import "./server-context-CEpFjqSk.js";
21
21
  import "./frontmatter-DWQhtOo7.js";
22
22
  import "./skills-6jdJQ5ZL.js";
23
- import "./routes-BO8eMYxn.js";
23
+ import "./routes-Ba9CUQ8M.js";
24
24
  import "./redact-f-Q-hFt_.js";
25
25
  import "./errors-BF3TeRH2.js";
26
26
  import "./fs-safe-CUjO1ca2.js";
@@ -43,12 +43,12 @@ import "./tool-images-DvUBlqjX.js";
43
43
  import "./tool-display-D8N3rsYt.js";
44
44
  import "./commands-BNLCWX6e.js";
45
45
  import "./commands-registry-BT0-zzs3.js";
46
- import "./client-Z6SFrwob.js";
47
- import "./call-7djMRPgl.js";
46
+ import "./client-CQSyCS4M.js";
47
+ import "./call-CJaS1iRF.js";
48
48
  import "./pairing-token-CX3NN_qj.js";
49
49
  import { t as formatDocsLink } from "./links-3i1eUga4.js";
50
50
  import { t as parseTimeoutMs } from "./parse-timeout-C385GCpE.js";
51
- import { t as runTui } from "./tui-D0s_9S8b.js";
51
+ import { t as runTui } from "./tui-CriznorL.js";
52
52
 
53
53
  //#region src/cli/tui-cli.ts
54
54
  function registerTuiCli(program) {