@symerian/symi 2.5.0 → 2.5.1

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 (103) hide show
  1. package/dist/{agents-BEPfMqrg.js → agents-Cf7lxbx4.js} +4 -4
  2. package/dist/{agents.config-DPv-AmZD.js → agents.config-CsltNAhl.js} +1 -1
  3. package/dist/{agents.config-D60gMagv.js → agents.config-aAHTt-cM.js} +1 -1
  4. package/dist/{auth-choice-CTeG2A5P.js → auth-choice-Cy78Q2jy.js} +1 -1
  5. package/dist/{auth-choice-BeHaRQfM.js → auth-choice-wU5fEl73.js} +1 -1
  6. package/dist/{banner-DihS8WHF.js → banner-BRzyFiIY.js} +1 -1
  7. package/dist/build-info.json +3 -3
  8. package/dist/bundled/boot-md/handler.js +1 -1
  9. package/dist/bundled/session-memory/handler.js +1 -1
  10. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  11. package/dist/{channel-options-BJphNYiq.js → channel-options-BcCKOiwh.js} +1 -1
  12. package/dist/{channel-options-D2Zf6a2L.js → channel-options-up8R2ST5.js} +1 -1
  13. package/dist/{channel-web-BnZ6c0_u.js → channel-web-CrH0yvww.js} +1 -1
  14. package/dist/{channels-cli-COMko9mZ.js → channels-cli-BiHu6J16.js} +4 -4
  15. package/dist/{channels-cli-CF9LDCSC.js → channels-cli-DG3sTlC7.js} +4 -4
  16. package/dist/{cli-DXpAHJS4.js → cli-BUkGaPzi.js} +1 -1
  17. package/dist/{cli-DYNTJxmZ.js → cli-YBkGYxfg.js} +1 -1
  18. package/dist/{command-registry-X_FmrHib.js → command-registry-YX9EbrJh.js} +9 -9
  19. package/dist/{completion-cli-Dhj0jCR_.js → completion-cli-Cm8iWdRA.js} +2 -2
  20. package/dist/{completion-cli-D1aObtjM.js → completion-cli-DZf03KrT.js} +1 -1
  21. package/dist/{config-cli-BrmaXVj4.js → config-cli-1PDMhq8v.js} +1 -1
  22. package/dist/{config-cli-BDpBT1b-.js → config-cli-Dx3mtUwm.js} +1 -1
  23. package/dist/{configure-oMqP6jIk.js → configure-DKN7f4VI.js} +3 -3
  24. package/dist/{configure-CkCFJCKp.js → configure-DZn4tz03.js} +3 -3
  25. package/dist/control-ui/js/render.js +4 -32
  26. package/dist/{doctor-completion-vhqAoURB.js → doctor-completion--aLGEAgK.js} +1 -1
  27. package/dist/{doctor-completion-wGoyzRH8.js → doctor-completion-D4SLAoAE.js} +1 -1
  28. package/dist/entry.js +1 -1
  29. package/dist/extensionAPI.js +1 -1
  30. package/dist/{gateway-cli-BBPEwiAc.js → gateway-cli-CMVvut5c.js} +11 -45
  31. package/dist/{gateway-cli-uDuGdJsH.js → gateway-cli-ZbqwB66o.js} +11 -45
  32. package/dist/{glass-ui-ws-TCkne4L4.js → glass-ui-ws-Bg6ek2Vs.js} +7 -7
  33. package/dist/{glass-ui-ws-DiqQflvy.js → glass-ui-ws-Cykb9Xv4.js} +7 -7
  34. package/dist/{health-1KsVR3eN.js → health-BMKu3MJz.js} +1 -1
  35. package/dist/{health-CPYlV7Zg.js → health-CGoPVhko.js} +1 -1
  36. package/dist/{hooks-cli-PKy2h3eb.js → hooks-cli-CFtgfZBU.js} +2 -2
  37. package/dist/{hooks-cli-CL266d2E.js → hooks-cli-CQUjUbF8.js} +2 -2
  38. package/dist/index.js +6 -6
  39. package/dist/llm-slug-generator.js +1 -1
  40. package/dist/{models-BsS_l1gY.js → models-BPJ5Z5tU.js} +2 -2
  41. package/dist/{models-cli-CmR7k-2e.js → models-cli-D9miPqtu.js} +2 -2
  42. package/dist/{models-cli-CvxkLybz.js → models-cli-I7FIJUNa.js} +3 -3
  43. package/dist/{onboard-Bgo_BcMo.js → onboard-BU6-iBln.js} +2 -2
  44. package/dist/{onboard-D2GpwLzg.js → onboard-CCZ5n-rI.js} +2 -2
  45. package/dist/{onboard-channels-BNTeFCna.js → onboard-channels-B188R3F1.js} +1 -1
  46. package/dist/{onboard-channels-3WFDi7Ts.js → onboard-channels-CaRYhl9J.js} +1 -1
  47. package/dist/{onboarding-BUumoJYB.js → onboarding-CNgU4kg8.js} +3 -3
  48. package/dist/{onboarding-CbkyewZp.js → onboarding-Gsj-iMyY.js} +3 -3
  49. package/dist/{onboarding.finalize-sESCY9Iq.js → onboarding.finalize-BvPgcu7R.js} +5 -5
  50. package/dist/{onboarding.finalize-B2_mgA4K.js → onboarding.finalize-C64KHESC.js} +6 -6
  51. package/dist/{pi-embedded-BIIdwXKr.js → pi-embedded-DXSWVPEZ.js} +3 -32
  52. package/dist/{pi-embedded-BOF7XlCO.js → pi-embedded-RoXbo73e.js} +3 -32
  53. package/dist/{plugin-registry-BDfC2z-e.js → plugin-registry-ByLEBcK_.js} +1 -1
  54. package/dist/{plugin-registry-IXa-nyg0.js → plugin-registry-dNrBrnR0.js} +1 -1
  55. package/dist/plugin-sdk/{channel-web-HznAZS1r.js → channel-web-Dn3ufSyq.js} +1 -1
  56. package/dist/plugin-sdk/index.js +2 -2
  57. package/dist/plugin-sdk/{reply-DpnW-aMb.js → reply-DqjPcp_q.js} +3 -32
  58. package/dist/plugin-sdk/{web-CGNEXRkp.js → web-GvAx9MMo.js} +2 -2
  59. package/dist/{plugins-cli-DsYvb9az.js → plugins-cli-BJRG_tkQ.js} +2 -2
  60. package/dist/{plugins-cli-DAxj0T7n.js → plugins-cli-DPaKpbZ0.js} +2 -2
  61. package/dist/{program-C_UFd0ph.js → program-DCyh129g.js} +7 -7
  62. package/dist/{program-context-C-1s9IMf.js → program-context-27mCl36z.js} +17 -17
  63. package/dist/{prompt-select-styled-uEjL8GAK.js → prompt-select-styled-JUdZMeZI.js} +4 -4
  64. package/dist/{prompt-select-styled-CYRG7OzR.js → prompt-select-styled-kpNeUDud.js} +4 -4
  65. package/dist/{provider-auth-helpers-CpOR6tLS.js → provider-auth-helpers-C9GRYN-o.js} +1 -1
  66. package/dist/{provider-auth-helpers-CJUiVhCt.js → provider-auth-helpers-DyW_7UGQ.js} +1 -1
  67. package/dist/{push-apns-21LKYvkS.js → push-apns-CZw1UMXk.js} +1 -1
  68. package/dist/{push-apns-Ciljlk7J.js → push-apns-DSpV-UMg.js} +1 -1
  69. package/dist/{register.agent-stsk6Gip.js → register.agent-B7jOO00w.js} +5 -5
  70. package/dist/{register.agent-BSv7WO-U.js → register.agent-Dt-fGSRM.js} +6 -6
  71. package/dist/{register.configure-C8oDtnaI.js → register.configure-B4ssKdGP.js} +6 -6
  72. package/dist/{register.configure-DNQTd6SJ.js → register.configure-BB1NVcZv.js} +6 -6
  73. package/dist/{register.maintenance-B3f3jkUo.js → register.maintenance-B6JGjudV.js} +7 -7
  74. package/dist/{register.maintenance-dTI3y4Eh.js → register.maintenance-ICQUl02l.js} +8 -8
  75. package/dist/{register.message-Cbb4nH_0.js → register.message-B-hq0-gd.js} +2 -2
  76. package/dist/{register.message-K9BDeFyy.js → register.message-BEP0P-gF.js} +2 -2
  77. package/dist/{register.onboard-Djz7Di9K.js → register.onboard-CrgzRM5X.js} +4 -4
  78. package/dist/{register.onboard-BBfmwa3j.js → register.onboard-Dgsu5_C8.js} +4 -4
  79. package/dist/{register.setup-Dmu1jt3n.js → register.setup-B3pPkZ-g.js} +4 -4
  80. package/dist/{register.setup-B6hkCLH0.js → register.setup-C8xPuOMY.js} +4 -4
  81. package/dist/{register.status-health-sessions-DaSrMm3l.js → register.status-health-sessions-DzM7DkCi.js} +3 -3
  82. package/dist/{register.status-health-sessions-CvwhBkbb.js → register.status-health-sessions-RqNzd4Pm.js} +3 -3
  83. package/dist/{register.subclis-Dv1WM9Kj.js → register.subclis-DcJgaLOK.js} +9 -9
  84. package/dist/{reply-BvVsPU7v.js → reply-DiFKjgpz.js} +4 -33
  85. package/dist/{run-main-55CDVAv6.js → run-main-Ck0iMwKh.js} +14 -14
  86. package/dist/{server-methods-CDDLS3ke.js → server-methods-CBQha8Aw.js} +7 -7
  87. package/dist/{server-methods-Bf8SpXoW.js → server-methods-pP1Q9SDn.js} +7 -7
  88. package/dist/{server-node-events-Dx0L419d.js → server-node-events-CfY2QTYr.js} +2 -2
  89. package/dist/{server-node-events-B9iZK3qE.js → server-node-events-aW9AFIXA.js} +2 -2
  90. package/dist/{status-5XgxbiNb.js → status-BKc593Qu.js} +1 -1
  91. package/dist/{status-C-kU0UFm.js → status-BNOqNwMY.js} +1 -1
  92. package/dist/{status-DEymUALi.js → status-DYp8kqmj.js} +2 -2
  93. package/dist/{status-C-vthqzQ.js → status-iwhTBXbZ.js} +2 -2
  94. package/dist/{subagent-registry-CZah-77E.js → subagent-registry-yBrXpTO-.js} +4 -33
  95. package/dist/{update-cli-BSk-OFnI.js → update-cli-B8lS5-Z5.js} +8 -8
  96. package/dist/{update-cli-B21iNb0v.js → update-cli-Cma87YH0.js} +7 -7
  97. package/dist/{update-runner-B5bKK21U.js → update-runner-Cx6XjioC.js} +1 -1
  98. package/dist/{update-runner-DPwXk0QQ.js → update-runner-DZmjPgW-.js} +1 -1
  99. package/dist/{web-DVvZ_mDC.js → web-B9ciy43q.js} +1 -1
  100. package/dist/{web-DSgWG_2m.js → web-BWuN3c4n.js} +1 -1
  101. package/dist/{web-mkZpWfVs.js → web-C5liFFox.js} +1 -1
  102. package/dist/{web-CB23XCVF.js → web-CycbZoQb.js} +2 -2
  103. package/package.json +1 -1
@@ -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-Cqn-zk3M.js";
2
2
  import { B as theme, E as truncateUtf16Safe, H as getLogger, P as setVerbose, R as colorize, S as shortenHomePath, U as getResolvedLoggerSettings, V as getChildLogger, c as ensureDir, t as CONFIG_DIR, y as resolveUserPath, z as isRich } from "./utils-B-0b9bGM.js";
3
3
  import { d as supportsXHighThinking, l as normalizeVerboseLevel, s as normalizeThinkLevel } from "./thinking-EAliFiVK.js";
4
- import { $ as buildDeliveryFromLegacyPayload, A as emitGatewayRestart, An as countActiveRunsForSession, Ar as extractFileContentFromSource, B as summarizeRestartSentinel, Bn as onAgentEvent, Ct as requestBodyErrorToText, Dr as DEFAULT_INPUT_IMAGE_MIMES, E as resetDirectoryCache, Er as DEFAULT_INPUT_IMAGE_MAX_BYTES, Et as agentCommand, F as setPreRestartDeferralCheck, Fn as runSubagentAnnounceFlow, Fr as resolveAgentTimeoutMs, Gt as runWithModelFallback, I as consumeRestartSentinel, In as readLatestAssistantReply, J as normalizeOptionalSessionKey, Jt as runCliAgent, K as inferLegacyName, Kt as getCliSessionId, Ln as clearAgentRunContext, Lt as createDefaultDeps, M as markGatewaySigusr1RestartHandled, Mn as listDescendantRunsForRequester, Mr as normalizeMimeList, Mt as resolveOutboundTarget, Nr as resolveInputFileLimits, Nt as resolveSessionDeliveryTarget, O as consumeGatewaySigusr1RestartAuthorization, Or as DEFAULT_INPUT_MAX_REDIRECTS, P as setGatewaySigusr1RestartPolicy, Pt as createOutboundSendDeps, Q as migrateLegacyCronPayload, R as formatRestartSentinelMessage, Rn as emitAgentEvent, Sr as enqueueSystemEvent, St as readJsonBodyWithLimit, Tt as sleepWithAbort, U as normalizeHttpWebhookUrl, Ut as stripModelTokens, Vn as registerAgentRunContext, Vt as getActiveEmbeddedRunCount, Wt as resolveModelProfile, X as normalizePayloadToSystemText, Y as normalizeOptionalText, Z as normalizeRequiredName, Zt as resolveAgentAvatar, ar as resetAllLanes, cr as CommandLane, d as createSymiTools, et as hasLegacyDeliveryHints, f as resolveAnnounceTargetFromKey, ft as loadSymiPlugins, gn as getTotalPendingReplies, i as resolveCronStyleNow, in as isExternalHookSession, ir as getTotalQueueSize, j as isGatewaySigusr1RestartExternallyAllowed, jn as initSubagentRegistry, jr as extractImageContentFromSource, k as deferGatewayRestartUntilIdle, kn as countActiveDescendantRuns, kr as DEFAULT_INPUT_TIMEOUT_MS, l as applyToolPolicyPipeline, ln as buildHistoryContextFromEntries, lr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, mr as lookupContextTokens, nn as detectSuspiciousPatterns, nr as getActiveTaskCount, or as setCommandLaneConcurrency, pr as stripHeartbeatToken, q as normalizeOptionalAgentId, qt as setCliSessionId, rn as getHookType, sr as waitForActiveTasks, st as requestHeartbeatNow, tn as buildSafeExternalPrompt, tt as stripLegacyDeliveryFields, u as buildDefaultToolPolicyPipelineSteps, ut as getPluginToolMeta, v as loadSessionEntry, w as resolveOutboundSessionRoute, wt as computeBackoff, xt as handleSlackHttpRequest, zn as getAgentRunContext, zt as runEmbeddedPiAgent } from "./reply-BvVsPU7v.js";
4
+ import { $ as buildDeliveryFromLegacyPayload, A as emitGatewayRestart, An as initSubagentRegistry, Ar as extractImageContentFromSource, B as summarizeRestartSentinel, Bn as registerAgentRunContext, Ct as requestBodyErrorToText, Dr as DEFAULT_INPUT_MAX_REDIRECTS, E as resetDirectoryCache, Er as DEFAULT_INPUT_IMAGE_MIMES, Et as agentCommand, F as setPreRestartDeferralCheck, Fn as readLatestAssistantReply, Gt as getCliSessionId, I as consumeRestartSentinel, In as clearAgentRunContext, J as normalizeOptionalSessionKey, K as inferLegacyName, Kt as setCliSessionId, Ln as emitAgentEvent, Lt as createDefaultDeps, M as markGatewaySigusr1RestartHandled, Mr as resolveInputFileLimits, Mt as resolveOutboundTarget, Nt as resolveSessionDeliveryTarget, O as consumeGatewaySigusr1RestartAuthorization, On as countActiveDescendantRuns, Or as DEFAULT_INPUT_TIMEOUT_MS, P as setGatewaySigusr1RestartPolicy, Pn as runSubagentAnnounceFlow, Pr as resolveAgentTimeoutMs, Pt as createOutboundSendDeps, Q as migrateLegacyCronPayload, R as formatRestartSentinelMessage, Rn as getAgentRunContext, St as readJsonBodyWithLimit, Tr as DEFAULT_INPUT_IMAGE_MAX_BYTES, Tt as sleepWithAbort, U as normalizeHttpWebhookUrl, Ut as resolveModelProfile, Vt as getActiveEmbeddedRunCount, Wt as runWithModelFallback, X as normalizePayloadToSystemText, Xt as resolveAgentAvatar, Y as normalizeOptionalText, Z as normalizeRequiredName, ar as setCommandLaneConcurrency, cn as buildHistoryContextFromEntries, cr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, d as createSymiTools, en as buildSafeExternalPrompt, et as hasLegacyDeliveryHints, f as resolveAnnounceTargetFromKey, fr as stripHeartbeatToken, ft as loadSymiPlugins, hn as getTotalPendingReplies, i as resolveCronStyleNow, ir as resetAllLanes, j as isGatewaySigusr1RestartExternallyAllowed, jn as listDescendantRunsForRequester, jr as normalizeMimeList, k as deferGatewayRestartUntilIdle, kn as countActiveRunsForSession, kr as extractFileContentFromSource, l as applyToolPolicyPipeline, nn as getHookType, or as waitForActiveTasks, pr as lookupContextTokens, q as normalizeOptionalAgentId, qt as runCliAgent, rn as isExternalHookSession, rr as getTotalQueueSize, sr as CommandLane, st as requestHeartbeatNow, tn as detectSuspiciousPatterns, tr as getActiveTaskCount, tt as stripLegacyDeliveryFields, u as buildDefaultToolPolicyPipelineSteps, ut as getPluginToolMeta, v as loadSessionEntry, w as resolveOutboundSessionRoute, wt as computeBackoff, xr as enqueueSystemEvent, xt as handleSlackHttpRequest, zn as onAgentEvent, zt as runEmbeddedPiAgent } from "./reply-DiFKjgpz.js";
5
5
  import { S as parseAgentSessionKey, c as normalizeMainKey, f as toAgentRequestSessionKey, l as resolveAgentIdFromSessionKey, m as DEFAULT_ACCOUNT_ID, 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 resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
7
7
  import { C as createInternalHookEvent, S as clearInternalHooks, T as triggerInternalHook, m as createEmptyPluginRegistry, r as DEFAULT_CHAT_CHANNEL, w as registerInternalHook } from "./registry-Cja8eT7G.js";
@@ -135,20 +135,20 @@ import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } fr
135
135
  import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-BJvwnR5z.js";
136
136
  import { c as probeGateway, s as resolveNodeCommandAllowlist } from "./audit-CrITRV6w.js";
137
137
  import { t as discoverGatewayBeacons } from "./bonjour-discovery-BHTF5p0X.js";
138
- import { r as pickGatewaySelfPresence } from "./status-DEymUALi.js";
139
- import { c as startHeartbeatRunner, i as styleHealthChannelLine, n as getHealthSnapshot, o as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-1KsVR3eN.js";
138
+ import { r as pickGatewaySelfPresence } from "./status-DYp8kqmj.js";
139
+ import { c as startHeartbeatRunner, i as styleHealthChannelLine, n as getHealthSnapshot, o as runHeartbeatOnce, t as formatHealthChannelLines } from "./health-BMKu3MJz.js";
140
140
  import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-Z947tKLt.js";
141
141
  import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, m as normalizeUpdateChannel, n as compareSemverStrings, t as checkUpdateStatus } from "./update-check-CtckACbb.js";
142
- import { t as runOnboardingWizard } from "./onboarding-CbkyewZp.js";
143
- import { _ as getHandshakeTimeoutMs, a as DEFAULT_ASSISTANT_IDENTITY, b as resolveCronRunLogPath, c as upsertPresence, d as DEDUPE_MAX, f as DEDUPE_TTL_MS, g as TICK_INTERVAL_MS, h as MAX_PAYLOAD_BYTES, i as safeParseJson, l as formatError, m as MAX_BUFFERED_BYTES, n as handleGatewayRequest, o as resolveAssistantIdentity, p as HEALTH_REFRESH_INTERVAL_MS, r as broadcastPresenceSnapshot, s as listSystemPresence, t as coreGatewayHandlers, u as loadVoiceWakeConfig, v as abortChatRunById, x as startGatewayConfigReloader, y as appendCronRunLog } from "./server-methods-Bf8SpXoW.js";
144
- import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-21LKYvkS.js";
142
+ import { t as runOnboardingWizard } from "./onboarding-Gsj-iMyY.js";
143
+ import { _ as getHandshakeTimeoutMs, a as DEFAULT_ASSISTANT_IDENTITY, b as resolveCronRunLogPath, c as upsertPresence, d as DEDUPE_MAX, f as DEDUPE_TTL_MS, g as TICK_INTERVAL_MS, h as MAX_PAYLOAD_BYTES, i as safeParseJson, l as formatError, m as MAX_BUFFERED_BYTES, n as handleGatewayRequest, o as resolveAssistantIdentity, p as HEALTH_REFRESH_INTERVAL_MS, r as broadcastPresenceSnapshot, s as listSystemPresence, t as coreGatewayHandlers, u as loadVoiceWakeConfig, v as abortChatRunById, x as startGatewayConfigReloader, y as appendCronRunLog } from "./server-methods-pP1Q9SDn.js";
144
+ import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-CZw1UMXk.js";
145
145
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-Bv0M7ka7.js";
146
- import "./agents.config-DPv-AmZD.js";
146
+ import "./agents.config-CsltNAhl.js";
147
147
  import "./dm-policy-shared-Bh3TbexU.js";
148
148
  import "./node-service-Cxz4e-Qd.js";
149
149
  import "./status.update-DtwCUTf-.js";
150
150
  import "./skills-install-D67isO1L.js";
151
- import "./update-runner-DPwXk0QQ.js";
151
+ import "./update-runner-DZmjPgW-.js";
152
152
  import { t as resolveAgentSessionDirs } from "./session-dirs-DWgIYmAt.js";
153
153
  import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-CYxdoAlY.js";
154
154
  import { fileURLToPath, pathToFileURL } from "node:url";
@@ -1864,27 +1864,6 @@ function createChannelManager(opts) {
1864
1864
 
1865
1865
  //#endregion
1866
1866
  //#region src/gateway/server-chat.ts
1867
- /**
1868
- * Strip Gemma's self-verification monologue blocks from the final text.
1869
- * Gemma produces several variants of this pattern:
1870
- * "I have addressed the request fully.\n**Verification:**\n..."
1871
- * "I've reviewed my response against your request:\n1. Requirements:..."
1872
- * "**Verification:**\n1. **Address requirements:**..."
1873
- */
1874
- const MONOLOGUE_PATTERNS = [
1875
- /\n*I have addressed the request fully\.?\s*(?:\n[\s\S]*)?$/,
1876
- /\n*I['']ve reviewed my response[\s\S]*$/,
1877
- /\n*\*?\*?Verification:?\*?\*?\s*\n[\s\S]*?(?:Everything is correct|All requirements met)\.?\s*✅?\s*$/,
1878
- /\n*(?:\*?\*?)?(?:Status Check|Address requirements|Requirements):?(?:\*?\*?)?\s*\n[\s\S]*?(?:Everything is correct|All requirements met|is correct)\.?\s*✅?\s*$/,
1879
- /\n*\d+\.\s*\*?\*?Requirements:?\*?\*?[\s\S]*?\d+\.\s*\*?\*?Verification:?\*?\*?[\s\S]*$/
1880
- ];
1881
- function suppressMonologueBlock(text) {
1882
- for (const pattern of MONOLOGUE_PATTERNS) {
1883
- const result = text.replace(pattern, "");
1884
- if (result !== text && result.trim()) return result.trim();
1885
- }
1886
- return text;
1887
- }
1888
1867
  function resolveHeartbeatAckMaxChars$1() {
1889
1868
  try {
1890
1869
  const cfg = loadConfig();
@@ -2069,11 +2048,7 @@ function createAgentEventHandler({ broadcast, broadcastToConnIds, nodeSendToSess
2069
2048
  nodeSendToSession(sessionKey, "chat", payload);
2070
2049
  };
2071
2050
  const emitChatFinal = (sessionKey, clientRunId, sourceRunId, seq, jobState, error) => {
2072
- let remainingDelta = chatRunState.pendingDeltaText.get(clientRunId);
2073
- if (remainingDelta) try {
2074
- const flushModelId = loadConfig().agents?.defaults?.model?.primary;
2075
- if (flushModelId) remainingDelta = stripModelTokens(remainingDelta, flushModelId);
2076
- } catch {}
2051
+ const remainingDelta = chatRunState.pendingDeltaText.get(clientRunId);
2077
2052
  if (remainingDelta && !shouldHideHeartbeatChatOutput(clientRunId, sourceRunId)) {
2078
2053
  const flushPayload = {
2079
2054
  runId: clientRunId,
@@ -2094,19 +2069,10 @@ function createAgentEventHandler({ broadcast, broadcastToConnIds, nodeSendToSess
2094
2069
  nodeSendToSession(sessionKey, "chat", flushPayload);
2095
2070
  }
2096
2071
  chatRunState.pendingDeltaText.delete(clientRunId);
2097
- let bufferedText = chatRunState.buffers.get(clientRunId)?.trim() ?? "";
2098
- try {
2099
- const modelId = loadConfig().agents?.defaults?.model?.primary;
2100
- if (modelId) {
2101
- const profile = resolveModelProfile(modelId);
2102
- bufferedText = stripModelTokens(bufferedText, modelId);
2103
- if (profile.filters.suppressMonologue) bufferedText = suppressMonologueBlock(bufferedText);
2104
- }
2105
- } catch {}
2106
2072
  const normalizedHeartbeatText = normalizeHeartbeatChatFinalText({
2107
2073
  runId: clientRunId,
2108
2074
  sourceRunId,
2109
- text: bufferedText
2075
+ text: chatRunState.buffers.get(clientRunId)?.trim() ?? ""
2110
2076
  });
2111
2077
  const text = normalizedHeartbeatText.text.trim();
2112
2078
  const shouldSuppressSilent = normalizedHeartbeatText.suppress || isSilentReplyText(text, SILENT_REPLY_TOKEN);
@@ -11733,7 +11699,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
11733
11699
  });
11734
11700
  let glassUiBridgeCleanup = null;
11735
11701
  if (!minimalTestGateway) {
11736
- const { createGlassUiBridge } = await import("./glass-ui-ws-TCkne4L4.js");
11702
+ const { createGlassUiBridge } = await import("./glass-ui-ws-Bg6ek2Vs.js");
11737
11703
  glassUiBridgeCleanup = createGlassUiBridge({
11738
11704
  wss: glassUiWss,
11739
11705
  context: gatewayRequestContext,
@@ -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 "./reply-BvVsPU7v.js";
4
+ import "./reply-DiFKjgpz.js";
5
5
  import "./registry-Cja8eT7G.js";
6
6
  import "./subsystem-D9vIQve0.js";
7
7
  import "./exec-CWkblSrI.js";
@@ -113,18 +113,18 @@ import "./service-Cl74hx8J.js";
113
113
  import "./diagnostics-BAMlsVVX.js";
114
114
  import "./table-BTgkRafz.js";
115
115
  import "./audit-CrITRV6w.js";
116
- import "./status-DEymUALi.js";
117
- import "./health-1KsVR3eN.js";
116
+ import "./status-DYp8kqmj.js";
117
+ import "./health-BMKu3MJz.js";
118
118
  import "./control-ui-assets-Z947tKLt.js";
119
119
  import "./update-check-CtckACbb.js";
120
- import { n as handleGatewayRequest } from "./server-methods-Bf8SpXoW.js";
121
- import "./push-apns-21LKYvkS.js";
122
- import "./agents.config-DPv-AmZD.js";
120
+ import { n as handleGatewayRequest } from "./server-methods-pP1Q9SDn.js";
121
+ import "./push-apns-CZw1UMXk.js";
122
+ import "./agents.config-CsltNAhl.js";
123
123
  import "./dm-policy-shared-Bh3TbexU.js";
124
124
  import "./node-service-Cxz4e-Qd.js";
125
125
  import "./status.update-DtwCUTf-.js";
126
126
  import "./skills-install-D67isO1L.js";
127
- import "./update-runner-DPwXk0QQ.js";
127
+ import "./update-runner-DZmjPgW-.js";
128
128
 
129
129
  //#region src/gateway/glass-ui-ws.ts
130
130
  const SESSION_KEY = "agent:main:main";
@@ -13,7 +13,7 @@ import "./client-DMBZpU6X.js";
13
13
  import "./call-BcE47FtD.js";
14
14
  import "./message-channel-C9dERklz.js";
15
15
  import "./pairing-token-Byh6drgn.js";
16
- import "./subagent-registry-CZah-77E.js";
16
+ import "./subagent-registry-yBrXpTO-.js";
17
17
  import "./sessions-CJXnZVjR.js";
18
18
  import "./tokens-Csntmwwn.js";
19
19
  import "./plugins-CwSlLxM8.js";
@@ -108,18 +108,18 @@ import "./service-Cm9j9WzQ.js";
108
108
  import "./diagnostics-CS1ov_hH.js";
109
109
  import "./table-D01d2GuY.js";
110
110
  import "./audit-Byo5jCLN.js";
111
- import "./status-C-vthqzQ.js";
112
- import "./health-CPYlV7Zg.js";
111
+ import "./status-iwhTBXbZ.js";
112
+ import "./health-CGoPVhko.js";
113
113
  import "./control-ui-assets-BseSWee1.js";
114
114
  import "./update-check-ZdimP1aU.js";
115
- import { n as handleGatewayRequest } from "./server-methods-CDDLS3ke.js";
116
- import "./push-apns-Ciljlk7J.js";
117
- import "./agents.config-D60gMagv.js";
115
+ import { n as handleGatewayRequest } from "./server-methods-CBQha8Aw.js";
116
+ import "./push-apns-DSpV-UMg.js";
117
+ import "./agents.config-aAHTt-cM.js";
118
118
  import "./dm-policy-shared-DJ-61hCT.js";
119
119
  import "./node-service-fcZExd22.js";
120
120
  import "./status.update-DbmZz0Aq.js";
121
121
  import "./skills-install-1ZdwGTnh.js";
122
- import "./update-runner-B5bKK21U.js";
122
+ import "./update-runner-Cx6XjioC.js";
123
123
 
124
124
  //#region src/gateway/glass-ui-ws.ts
125
125
  const SESSION_KEY = "agent:main:main";
@@ -1,5 +1,5 @@
1
1
  import { B as theme, k as info, l as escapeRegExp, z as isRich } from "./utils-B-0b9bGM.js";
2
- import { At as resolveHeartbeatDeliveryTarget, Hn as resolveUserTimezone, cr as CommandLane, ct as setHeartbeatWakeHandler, dr as isHeartbeatContentEffectivelyEmpty, fr as resolveHeartbeatPrompt$1, jt as resolveHeartbeatSenderContext, lr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, lt as resolveHeartbeatReasonKind, pr as stripHeartbeatToken, r as appendCronStyleCurrentTimeLine, rr as getQueueSize, st as requestHeartbeatNow, t as getReplyFromConfig, ur as DEFAULT_HEARTBEAT_EVERY, wr as peekSystemEventEntries } from "./reply-BvVsPU7v.js";
2
+ import { At as resolveHeartbeatDeliveryTarget, Cr as peekSystemEventEntries, Vn as resolveUserTimezone, cr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, ct as setHeartbeatWakeHandler, dr as resolveHeartbeatPrompt$1, fr as stripHeartbeatToken, jt as resolveHeartbeatSenderContext, lr as DEFAULT_HEARTBEAT_EVERY, lt as resolveHeartbeatReasonKind, nr as getQueueSize, r as appendCronStyleCurrentTimeLine, sr as CommandLane, st as requestHeartbeatNow, t as getReplyFromConfig, ur as isHeartbeatContentEffectivelyEmpty } from "./reply-DiFKjgpz.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-D9vIQve0.js";
5
5
  import { b as DEFAULT_SYMIPULSE_FILENAME, c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId, r as resolveAgentConfig } from "./agent-scope-CgUHAtCo.js";
@@ -4,7 +4,7 @@ import { l as resolveAgentIdFromSessionKey, p as toAgentStoreSessionKey, s as no
4
4
  import { b as DEFAULT_SYMIPULSE_FILENAME, c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId, r as resolveAgentConfig } from "./agent-scope-D-jRCY0d.js";
5
5
  import { C as parseDurationMs, i as loadConfig } from "./config-DHBLS1Hl.js";
6
6
  import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-BcE47FtD.js";
7
- import { En as peekSystemEventEntries, Q as appendCronStyleCurrentTimeLine, X as getReplyFromConfig, Yn as resolveUserTimezone, _r as DEFAULT_HEARTBEAT_EVERY, br as stripHeartbeatToken, dt as resolveHeartbeatSenderContext, fn as requestHeartbeatNow, gr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, hr as CommandLane, mn as resolveHeartbeatReasonKind, pn as setHeartbeatWakeHandler, ur as getQueueSize, ut as resolveHeartbeatDeliveryTarget, vr as isHeartbeatContentEffectivelyEmpty, yr as resolveHeartbeatPrompt$1 } from "./subagent-registry-CZah-77E.js";
7
+ import { Jn as resolveUserTimezone, Tn as peekSystemEventEntries, Y as getReplyFromConfig, Z as appendCronStyleCurrentTimeLine, _r as isHeartbeatContentEffectivelyEmpty, dn as requestHeartbeatNow, fn as setHeartbeatWakeHandler, gr as DEFAULT_HEARTBEAT_EVERY, hr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, lr as getQueueSize, lt as resolveHeartbeatDeliveryTarget, mr as CommandLane, pn as resolveHeartbeatReasonKind, ut as resolveHeartbeatSenderContext, vr as resolveHeartbeatPrompt$1, yr as stripHeartbeatToken } from "./subagent-registry-yBrXpTO-.js";
8
8
  import { M as canonicalizeMainSessionAlias, N as resolveAgentMainSessionKey, d as updateSessionStore, l as saveSessionStore, o as loadSessionStore } from "./sessions-CJXnZVjR.js";
9
9
  import { r as SYMIPULSE_TOKEN } from "./tokens-Csntmwwn.js";
10
10
  import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-CwSlLxM8.js";
@@ -15,7 +15,7 @@ import "./client-DMBZpU6X.js";
15
15
  import "./call-BcE47FtD.js";
16
16
  import "./message-channel-C9dERklz.js";
17
17
  import "./pairing-token-Byh6drgn.js";
18
- import "./subagent-registry-CZah-77E.js";
18
+ import "./subagent-registry-yBrXpTO-.js";
19
19
  import "./sessions-CJXnZVjR.js";
20
20
  import "./tokens-Csntmwwn.js";
21
21
  import "./plugins-CwSlLxM8.js";
@@ -104,7 +104,7 @@ import { a as installPackageDir, i as withTempDir, n as installFromNpmSpecArchiv
104
104
  import { t as renderTable } from "./table-D01d2GuY.js";
105
105
  import { a as parseFrontmatter, t as loadWorkspaceHookEntries } from "./workspace-B51TF6q3.js";
106
106
  import { t as buildWorkspaceHookStatus } from "./hooks-status-CEoLdlyb.js";
107
- import { t as buildPluginStatusReport } from "./status-C-kU0UFm.js";
107
+ import { t as buildPluginStatusReport } from "./status-BNOqNwMY.js";
108
108
  import path from "node:path";
109
109
  import fs from "node:fs";
110
110
  import fs$1 from "node:fs/promises";
@@ -1,7 +1,7 @@
1
1
  import "./paths-Cqn-zk3M.js";
2
2
  import { B as theme, S as shortenHomePath, t as CONFIG_DIR, y as resolveUserPath } from "./utils-B-0b9bGM.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import "./reply-BvVsPU7v.js";
4
+ import "./reply-DiFKjgpz.js";
5
5
  import "./registry-Cja8eT7G.js";
6
6
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
7
7
  import "./exec-CWkblSrI.js";
@@ -108,7 +108,7 @@ import { a as installPackageDir, i as withTempDir, n as installFromNpmSpecArchiv
108
108
  import { t as renderTable } from "./table-BTgkRafz.js";
109
109
  import { a as parseFrontmatter, t as loadWorkspaceHookEntries } from "./workspace-CYxdoAlY.js";
110
110
  import { t as buildWorkspaceHookStatus } from "./hooks-status-BqLZtMLa.js";
111
- import { t as buildPluginStatusReport } from "./status-5XgxbiNb.js";
111
+ import { t as buildPluginStatusReport } from "./status-BKc593Qu.js";
112
112
  import fs from "node:fs";
113
113
  import path from "node:path";
114
114
  import fs$1 from "node:fs/promises";
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import "./paths-Cqn-zk3M.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-B-0b9bGM.js";
4
4
  import "./thinking-EAliFiVK.js";
5
- import { Lt as createDefaultDeps, bt as resolveCommitHash, t as getReplyFromConfig } from "./reply-BvVsPU7v.js";
5
+ import { Lt as createDefaultDeps, bt as resolveCommitHash, t as getReplyFromConfig } from "./reply-DiFKjgpz.js";
6
6
  import "./registry-Cja8eT7G.js";
7
7
  import { f as defaultRuntime, r as enableConsoleCapture, u as visibleWidth } from "./subsystem-D9vIQve0.js";
8
8
  import { n as runExec, t as runCommandWithTimeout } from "./exec-CWkblSrI.js";
@@ -103,7 +103,7 @@ import "./pi-tools.policy-CIDBbw6x.js";
103
103
  import "./control-service-Bz7rxLWq.js";
104
104
  import "./stagger-BUClb97_.js";
105
105
  import "./channel-selection-DuWs0Aak.js";
106
- import { r as waitForever, t as monitorWebChannel } from "./channel-web-BnZ6c0_u.js";
106
+ import { r as waitForever, t as monitorWebChannel } from "./channel-web-CrH0yvww.js";
107
107
  import "./outbound-DB5Zus0-.js";
108
108
  import "./session-DIBTkyvE.js";
109
109
  import "./login-dIlDkG4X.js";
@@ -112,10 +112,10 @@ import { t as ensureSymiCliOnPath } from "./path-env-MnzRq6nD.js";
112
112
  import { t as assertSupportedRuntime } from "./runtime-guard-B37eizu-.js";
113
113
  import "./ports-BX0kKI0g.js";
114
114
  import { a as hasFlag, i as getVerboseFlag, n as getCommandPath, o as hasHelpOrVersion, s as hasRootVersionAlias } from "./argv-C6ovOie2.js";
115
- import { i as getCoreCliCommandsWithSubcommands, n as setProgramContext, o as registerProgramCommands, s as getSubCliCommandsWithSubcommands } from "./program-context-C-1s9IMf.js";
115
+ import { i as getCoreCliCommandsWithSubcommands, n as setProgramContext, o as registerProgramCommands, s as getSubCliCommandsWithSubcommands } from "./program-context-27mCl36z.js";
116
116
  import "./catalog-RiADx7MA.js";
117
- import "./plugin-registry-IXa-nyg0.js";
118
- import { n as resolveCliChannelOptions } from "./channel-options-D2Zf6a2L.js";
117
+ import "./plugin-registry-dNrBrnR0.js";
118
+ import { n as resolveCliChannelOptions } from "./channel-options-up8R2ST5.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-IXa-nyg0.js").then((n) => n.n);
518
+ const { ensurePluginRegistryLoaded } = await import("./plugin-registry-dNrBrnR0.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-Bs9YvKLa.js";
5
5
  import "./workspace-wAaHI8-5.js";
6
6
  import "./tokens-H1H1LiSQ.js";
7
- import { a as runEmbeddedPiAgent } from "./pi-embedded-BIIdwXKr.js";
7
+ import { a as runEmbeddedPiAgent } from "./pi-embedded-DXSWVPEZ.js";
8
8
  import "./plugins-DQYI3Fr-.js";
9
9
  import "./accounts-tNElYrCH.js";
10
10
  import "./boolean-B8-BqKGQ.js";
@@ -7,7 +7,7 @@ import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-CaX_1WHk.j
7
7
  import { i as resolveForwardCompatModel, r as ANTIGRAVITY_OPUS_46_FORWARD_COMPAT_CANDIDATES } from "./model-DiCH8rkE.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-DHBLS1Hl.js";
10
- import { O as runEmbeddedPiAgent, _n as maskApiKey, bn as formatRemainingShort, in as loadProviderUsageSummary, on as formatUsageWindowSummary, sn as resolveUsageProviderId, vn as DEFAULT_OAUTH_WARN_MS, vt as describeFailoverError, yn as buildAuthHealthSummary } from "./subagent-registry-CZah-77E.js";
10
+ import { O as runEmbeddedPiAgent, _n as DEFAULT_OAUTH_WARN_MS, _t as describeFailoverError, an as formatUsageWindowSummary, gn as maskApiKey, on as resolveUsageProviderId, rn as loadProviderUsageSummary, vn as buildAuthHealthSummary, yn as formatRemainingShort } from "./subagent-registry-yBrXpTO-.js";
11
11
  import { i as resolveSessionTranscriptPath, s as resolveSessionTranscriptsDirForAgent } from "./paths-DNdWAq7b.js";
12
12
  import { t as ensureSymiModelsJson } from "./models-config-CCMpqFyr.js";
13
13
  import { n as loadModelCatalog } from "./model-catalog-CqCsARJX.js";
@@ -21,7 +21,7 @@ import { n as redactSecrets } from "./format-DVLB9DNB.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-D8K9MkWg.js";
22
22
  import { d as applyAuthProfileConfig, n as validateAnthropicSetupToken } from "./auth-token-Cmrk2TPo.js";
23
23
  import { n as logConfigUpdated } from "./logging-BGewRZy0.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-CpOR6tLS.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-C9GRYN-o.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";
@@ -1,7 +1,7 @@
1
1
  import { t as CONFIG_PATH } from "./paths-Cqn-zk3M.js";
2
2
  import { B as theme, R as colorize, S as shortenHomePath, z as isRich$1 } from "./utils-B-0b9bGM.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import { Xt as describeFailoverError, _r as buildAuthHealthSummary, gr as DEFAULT_OAUTH_WARN_MS, gt as loadProviderUsageSummary, hr as maskApiKey, vr as formatRemainingShort, vt as formatUsageWindowSummary, yt as resolveUsageProviderId, zt as runEmbeddedPiAgent } from "./reply-BvVsPU7v.js";
4
+ import { Yt as describeFailoverError, _r as formatRemainingShort, gr as buildAuthHealthSummary, gt as loadProviderUsageSummary, hr as DEFAULT_OAUTH_WARN_MS, mr as maskApiKey, vt as formatUsageWindowSummary, yt as resolveUsageProviderId, zt as runEmbeddedPiAgent } from "./reply-DiFKjgpz.js";
5
5
  import "./registry-Cja8eT7G.js";
6
6
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
7
7
  import "./exec-CWkblSrI.js";
@@ -110,7 +110,7 @@ import { n as redactSecrets } from "./format-yQZNwAF2.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-Knv1hy6h.js";
111
111
  import { d as applyAuthProfileConfig, n as validateAnthropicSetupToken } from "./auth-token-BnOynwk4.js";
112
112
  import { n as logConfigUpdated } from "./logging-BzzwiKjv.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-CJUiVhCt.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-DyW_7UGQ.js";
114
114
  import { t as ensurePiAuthJsonFromAuthProfiles } from "./system-cli-UMsMEurS.js";
115
115
  import path from "node:path";
116
116
  import fs from "node:fs/promises";
@@ -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 "./subagent-registry-CZah-77E.js";
17
+ import "./subagent-registry-yBrXpTO-.js";
18
18
  import "./sessions-CJXnZVjR.js";
19
19
  import "./tokens-Csntmwwn.js";
20
20
  import "./plugins-CwSlLxM8.js";
@@ -104,8 +104,8 @@ import "./table-D01d2GuY.js";
104
104
  import "./shared-D8K9MkWg.js";
105
105
  import "./auth-token-Cmrk2TPo.js";
106
106
  import "./logging-BGewRZy0.js";
107
- import { c as githubCopilotLoginCommand } from "./provider-auth-helpers-CpOR6tLS.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-BsS_l1gY.js";
107
+ import { c as githubCopilotLoginCommand } from "./provider-auth-helpers-C9GRYN-o.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-BPJ5Z5tU.js";
109
109
 
110
110
  //#region src/cli/models-cli.ts
111
111
  function runModelsCommand(action) {
@@ -9,8 +9,8 @@ import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, r as isGate
9
9
  import { t as assertSupportedRuntime } from "./runtime-guard-D7waq_Ho.js";
10
10
  import { r as isSystemdUserServiceAvailable } from "./systemd-DlMdyFDY.js";
11
11
  import { t as resolveGatewayService } from "./service-Cm9j9WzQ.js";
12
- import { r as healthCommand } from "./health-CPYlV7Zg.js";
13
- import { t as runOnboardingWizard } from "./onboarding-BUumoJYB.js";
12
+ import { r as healthCommand } from "./health-CGoPVhko.js";
13
+ import { t as runOnboardingWizard } from "./onboarding-CNgU4kg8.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-Cmrk2TPo.js";
15
15
  import { n as logConfigUpdated } from "./logging-BGewRZy0.js";
16
16
  import { n as isDeprecatedAuthChoice, r as normalizeLegacyOnboardAuthChoice } from "./auth-choice-legacy-BKXTgyr4.js";
@@ -11,8 +11,8 @@ import { t as createClackPrompter } from "./clack-prompter-B7pN13HV.js";
11
11
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-2mwX-jqj.js";
12
12
  import { r as isSystemdUserServiceAvailable } from "./systemd-riq8uNJQ.js";
13
13
  import { t as resolveGatewayService } from "./service-Cl74hx8J.js";
14
- import { r as healthCommand } from "./health-1KsVR3eN.js";
15
- import { t as runOnboardingWizard } from "./onboarding-CbkyewZp.js";
14
+ import { r as healthCommand } from "./health-BMKu3MJz.js";
15
+ import { t as runOnboardingWizard } from "./onboarding-Gsj-iMyY.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-BnOynwk4.js";
17
17
  import { n as logConfigUpdated } from "./logging-BzzwiKjv.js";
18
18
  import { n as isDeprecatedAuthChoice, r as normalizeLegacyOnboardAuthChoice } from "./auth-choice-legacy-Ch38-Kbr.js";
@@ -3,7 +3,7 @@ import { E as formatChannelSelectionLine, O as listChatChannels, T as formatChan
3
3
  import { t as formatCliCommand } from "./command-format-BtYOfWxC.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-D-jRCY0d.js";
6
- import { m as loadSymiPlugins, p as createPluginLoaderLogger } from "./subagent-registry-CZah-77E.js";
6
+ import { m as loadSymiPlugins, p as createPluginLoaderLogger } from "./subagent-registry-yBrXpTO-.js";
7
7
  import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-CwSlLxM8.js";
8
8
  import { t as formatDocsLink } from "./links-DlWpl9Yv.js";
9
9
  import { r as listChannelPluginCatalogEntries } from "./catalog-DLQFKucJ.js";
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { dt as createPluginLoaderLogger, ft as loadSymiPlugins } from "./reply-BvVsPU7v.js";
2
+ import { dt as createPluginLoaderLogger, ft as loadSymiPlugins } from "./reply-DiFKjgpz.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-Cja8eT7G.js";
5
5
  import { t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
@@ -223,7 +223,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
223
223
  const { ensureAuthProfileStore } = await import("./auth-profiles-Q1xTr5SX.js").then((n) => n.t);
224
224
  const { promptAuthChoiceGrouped } = await import("./auth-choice-prompt-DVcYPG2v.js").then((n) => n.t);
225
225
  const { promptCustomApiConfig } = await import("./onboard-custom-DdWPfzJO.js").then((n) => n.r);
226
- const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-BeHaRQfM.js").then((n) => n.t);
226
+ const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-wU5fEl73.js").then((n) => n.t);
227
227
  const { applyPrimaryModel, promptDefaultModel } = await import("./model-picker-D5nCutGW.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-CwSlLxM8.js").then((n) => n.i);
279
- const { setupChannels } = await import("./onboard-channels-BNTeFCna.js").then((n) => n.n);
279
+ const { setupChannels } = await import("./onboard-channels-B188R3F1.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-B2_mgA4K.js");
305
+ const { finalizeOnboardingWizard } = await import("./onboarding.finalize-C64KHESC.js");
306
306
  const { launchedTui } = await finalizeOnboardingWizard({
307
307
  flow,
308
308
  opts,
@@ -225,7 +225,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
225
225
  const { ensureAuthProfileStore } = await import("./model-selection-CyFvYcRt.js").then((n) => n.dt);
226
226
  const { promptAuthChoiceGrouped } = await import("./auth-choice-prompt-BLzEBA1v.js").then((n) => n.t);
227
227
  const { promptCustomApiConfig } = await import("./onboard-custom-C7O-zfQ1.js").then((n) => n.r);
228
- const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-CTeG2A5P.js").then((n) => n.t);
228
+ const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-Cy78Q2jy.js").then((n) => n.t);
229
229
  const { applyPrimaryModel, promptDefaultModel } = await import("./model-picker-Ddo3jHe-.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-DKDeQZF0.js").then((n) => n.i);
281
- const { setupChannels } = await import("./onboard-channels-3WFDi7Ts.js").then((n) => n.n);
281
+ const { setupChannels } = await import("./onboard-channels-CaRYhl9J.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-sESCY9Iq.js");
307
+ const { finalizeOnboardingWizard } = await import("./onboarding.finalize-BvPgcu7R.js");
308
308
  const { launchedTui } = await finalizeOnboardingWizard({
309
309
  flow,
310
310
  opts,
@@ -1,7 +1,7 @@
1
1
  import "./paths-Cqn-zk3M.js";
2
2
  import { h as pathExists, y as resolveUserPath } from "./utils-B-0b9bGM.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import "./reply-BvVsPU7v.js";
4
+ import "./reply-DiFKjgpz.js";
5
5
  import "./registry-Cja8eT7G.js";
6
6
  import { p as restoreTerminalState } from "./subsystem-D9vIQve0.js";
7
7
  import "./exec-CWkblSrI.js";
@@ -103,16 +103,16 @@ import "./control-service-Bz7rxLWq.js";
103
103
  import "./stagger-BUClb97_.js";
104
104
  import "./channel-selection-DuWs0Aak.js";
105
105
  import "./runtime-guard-B37eizu-.js";
106
- import "./program-context-C-1s9IMf.js";
106
+ import "./program-context-27mCl36z.js";
107
107
  import "./note-DeHoW7xO.js";
108
- import { r as installCompletion } from "./completion-cli-D1aObtjM.js";
108
+ import { r as installCompletion } from "./completion-cli-DZf03KrT.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-2mwX-jqj.js";
110
110
  import { r as isSystemdUserServiceAvailable } from "./systemd-riq8uNJQ.js";
111
111
  import { t as resolveGatewayService } from "./service-Cl74hx8J.js";
112
- import { r as healthCommand } from "./health-1KsVR3eN.js";
112
+ import { r as healthCommand } from "./health-BMKu3MJz.js";
113
113
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-Z947tKLt.js";
114
114
  import { t as formatHealthCheckFailure } from "./health-format-DSwnXZPU.js";
115
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-vhqAoURB.js";
115
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion--aLGEAgK.js";
116
116
  import { t as runTui } from "./tui-CriznorL.js";
117
117
  import os from "node:os";
118
118
  import path from "node:path";
@@ -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 "./subagent-registry-CZah-77E.js";
17
+ import "./subagent-registry-yBrXpTO-.js";
18
18
  import "./sessions-CJXnZVjR.js";
19
19
  import "./tokens-Csntmwwn.js";
20
20
  import "./plugins-CwSlLxM8.js";
@@ -99,18 +99,18 @@ import "./prompt-style-DwCXob2h.js";
99
99
  import "./pairing-labels-D1HDboV2.js";
100
100
  import "./pi-tools.policy-De00gPXt.js";
101
101
  import "./note-DDecZomM.js";
102
- import "./register.subclis-Dv1WM9Kj.js";
103
- import "./command-registry-X_FmrHib.js";
102
+ import "./register.subclis-DcJgaLOK.js";
103
+ import "./command-registry-YX9EbrJh.js";
104
104
  import "./program-context-CqzR_m-7.js";
105
- import { r as installCompletion } from "./completion-cli-Dhj0jCR_.js";
105
+ import { r as installCompletion } from "./completion-cli-Cm8iWdRA.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-CfRwa6qh.js";
107
107
  import "./runtime-guard-D7waq_Ho.js";
108
108
  import { r as isSystemdUserServiceAvailable } from "./systemd-DlMdyFDY.js";
109
109
  import { t as resolveGatewayService } from "./service-Cm9j9WzQ.js";
110
- import { r as healthCommand } from "./health-CPYlV7Zg.js";
110
+ import { r as healthCommand } from "./health-CGoPVhko.js";
111
111
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-BseSWee1.js";
112
112
  import { t as formatHealthCheckFailure } from "./health-format-CzgUHmmX.js";
113
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-wGoyzRH8.js";
113
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-D4SLAoAE.js";
114
114
  import { t as runTui } from "./tui-BJB80muc.js";
115
115
  import os from "node:os";
116
116
  import path from "node:path";
@@ -60201,7 +60201,7 @@ async function runAgentTurn(params) {
60201
60201
  function createDefaultDeps() {
60202
60202
  return {
60203
60203
  sendMessageWhatsApp: async (...args) => {
60204
- const { sendMessageWhatsApp } = await import("./web-DSgWG_2m.js");
60204
+ const { sendMessageWhatsApp } = await import("./web-BWuN3c4n.js");
60205
60205
  return await sendMessageWhatsApp(...args);
60206
60206
  },
60207
60207
  sendMessageTelegram: async (...args) => {
@@ -75481,7 +75481,7 @@ function loadWebLoginQr() {
75481
75481
  return webLoginQrPromise;
75482
75482
  }
75483
75483
  function loadWebChannel() {
75484
- webChannelPromise ??= import("./web-DSgWG_2m.js");
75484
+ webChannelPromise ??= import("./web-BWuN3c4n.js");
75485
75485
  return webChannelPromise;
75486
75486
  }
75487
75487
  function loadWhatsAppActions() {
@@ -77502,31 +77502,6 @@ function resolveToolLoopDetectionConfig(params) {
77502
77502
  }
77503
77503
  };
77504
77504
  }
77505
- /**
77506
- * Wrap a tool to strip model-specific control tokens from string arguments
77507
- * before execution. Gemma 4 via vLLM sometimes injects tokens like `<|`
77508
- * into tool call arguments (e.g. `exec("<|node -v")`). This wrapper
77509
- * sanitizes all string values in the argument object.
77510
- */
77511
- function wrapToolWithArgSanitization(tool, modelId) {
77512
- const execute = tool.execute;
77513
- if (!execute) return tool;
77514
- return {
77515
- ...tool,
77516
- execute: async (toolCallId, params, signal, onUpdate) => {
77517
- return execute(toolCallId, sanitizeToolArgs(params, modelId), signal, onUpdate);
77518
- }
77519
- };
77520
- }
77521
- function sanitizeToolArgs(params, modelId) {
77522
- if (!params || typeof params !== "object") return typeof params === "string" ? stripModelTokensAggressive(params, modelId) : params;
77523
- if (Array.isArray(params)) return params.map((item) => sanitizeToolArgs(item, modelId));
77524
- const result = {};
77525
- for (const [key, value] of Object.entries(params)) if (typeof value === "string") result[key] = stripModelTokensAggressive(value, modelId);
77526
- else if (value && typeof value === "object") result[key] = sanitizeToolArgs(value, modelId);
77527
- else result[key] = value;
77528
- return result;
77529
- }
77530
77505
  function createSymiCodingTools(options) {
77531
77506
  const execToolName = "exec";
77532
77507
  const sandbox = options?.sandbox?.enabled ? options.sandbox : void 0;
@@ -77750,11 +77725,7 @@ function createSymiCodingTools(options) {
77750
77725
  agentId
77751
77726
  })
77752
77727
  }));
77753
- const withAbort = options?.abortSignal ? withHooks.map((tool) => wrapToolWithAbortSignal(tool, options.abortSignal)) : withHooks;
77754
- const modelId = options?.modelId ?? "";
77755
- const modelProvider = options?.modelProvider ?? "";
77756
- const fullModelId = modelProvider ? `${modelProvider}/${modelId}` : modelId;
77757
- return fullModelId ? withAbort.map((tool) => wrapToolWithArgSanitization(tool, fullModelId)) : withAbort;
77728
+ return options?.abortSignal ? withHooks.map((tool) => wrapToolWithAbortSignal(tool, options.abortSignal)) : withHooks;
77758
77729
  }
77759
77730
 
77760
77731
  //#endregion