@symerian/symi 2.9.2 → 2.9.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/dist/{agents-DTl30WoB.js → agents-CMoRbMNW.js} +4 -4
  2. package/dist/{agents.config-CO8F9mkD.js → agents.config-BLuBIvek.js} +1 -1
  3. package/dist/{agents.config-CZ3GFxPg.js → agents.config-Ebtya9aN.js} +1 -1
  4. package/dist/{audio-preflight-DQR2Ivi-.js → audio-preflight-CbyJ_yDs.js} +4 -4
  5. package/dist/{auth-choice-BYDGn7lJ.js → auth-choice-C_lflrPV.js} +1 -1
  6. package/dist/{auth-choice-BoOyy-ZT.js → auth-choice-DAMY302C.js} +1 -1
  7. package/dist/{banner-D4MiyUnv.js → banner-4mmBVDxd.js} +1 -1
  8. package/dist/build-info.json +3 -3
  9. package/dist/bundled/boot-md/handler.js +7 -7
  10. package/dist/bundled/session-memory/handler.js +7 -7
  11. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  12. package/dist/{channel-options-B6qP-vR-.js → channel-options-CqEImsEx.js} +1 -1
  13. package/dist/{channel-options-BiSSYYQC.js → channel-options-lJBshQMV.js} +1 -1
  14. package/dist/{channel-web-DP97EUhx.js → channel-web-CBC2RSBF.js} +1 -1
  15. package/dist/{channels-cli-CE_A3Hai.js → channels-cli-BqW1HbHG.js} +6 -6
  16. package/dist/{channels-cli-6LNvJQPb.js → channels-cli-CqtSKE5p.js} +6 -6
  17. package/dist/{chrome-BaMQiegP.js → chrome-CJHOBnUB.js} +7 -7
  18. package/dist/{cli-D4j_JTug.js → cli-B1Dxc2DT.js} +3 -3
  19. package/dist/{cli-DwQ3mqhI.js → cli-CjgvXavV.js} +3 -3
  20. package/dist/{command-registry-b62Qpsi2.js → command-registry-iESIIBvf.js} +10 -10
  21. package/dist/{completion-cli-DUT2XYgK.js → completion-cli-BEddBU3C.js} +2 -2
  22. package/dist/{completion-cli-RQyC3L-t.js → completion-cli-euUBlC-J.js} +1 -1
  23. package/dist/{config-cli-Di8VOhbp.js → config-cli-CAl0wtaC.js} +1 -1
  24. package/dist/{config-cli-H52N8rp1.js → config-cli-DG8UgJ6z.js} +1 -1
  25. package/dist/{configure-BF9crM5K.js → configure-B3AtbkbP.js} +3 -3
  26. package/dist/{configure-DQxuawe-.js → configure-CtYsABUS.js} +3 -3
  27. package/dist/{deliver-Dx39g9ey.js → deliver-D5655IkX.js} +1 -1
  28. package/dist/{doctor-completion-BKXQ50ee.js → doctor-completion-B-Oak4dP.js} +1 -1
  29. package/dist/{doctor-completion-BS2JEeZy.js → doctor-completion-BGriRzaq.js} +1 -1
  30. package/dist/entry.js +1 -1
  31. package/dist/extensionAPI.js +2 -2
  32. package/dist/{gateway-cli-Do9KUPqe.js → gateway-cli-CPligm4B.js} +11 -11
  33. package/dist/{gateway-cli-moPf-zP5.js → gateway-cli-CrgMw50H.js} +11 -11
  34. package/dist/{glass-ui-ws-Dfro-3R8.js → glass-ui-ws-BmrBGwq0.js} +9 -9
  35. package/dist/{glass-ui-ws-D53pvIov.js → glass-ui-ws-JoAL8aXB.js} +9 -9
  36. package/dist/{health-BQGRC0xh.js → health-BFlZuHVH.js} +1 -1
  37. package/dist/{health-CV741PBg.js → health-C5cdo2e_.js} +1 -1
  38. package/dist/{hooks-cli-CG-PDY2U.js → hooks-cli-BHOi35KU.js} +4 -4
  39. package/dist/{hooks-cli-CWXGIL9L.js → hooks-cli-DFDzJIQJ.js} +4 -4
  40. package/dist/{image-C-JvPPpM.js → image-BqpivNGG.js} +1 -1
  41. package/dist/index.js +8 -8
  42. package/dist/llm-slug-generator.js +7 -7
  43. package/dist/{manager-B_2KzUSI.js → manager-Ca7NOWdK.js} +1 -1
  44. package/dist/{manager-yrUe0KOT.js → manager-DNxvT0P-.js} +1 -1
  45. package/dist/{manager-Bc-MeMho.js → manager-DlNP6Nui.js} +1 -1
  46. package/dist/{manager-CLPHK-qG.js → manager-SbxZtjEc.js} +1 -1
  47. package/dist/{memory-cli-3RSIw4no.js → memory-cli-D2LaloPq.js} +3 -3
  48. package/dist/{memory-cli-BKNnDIdx.js → memory-cli-xSpyRUEV.js} +3 -3
  49. package/dist/{models-D_C2JFPw.js → models-C6MaesB8.js} +2 -2
  50. package/dist/{models-cli-DQE60EtL.js → models-cli-4IVFNhw8.js} +5 -5
  51. package/dist/{models-cli-j2O4e1Lu.js → models-cli-CjcsH00X.js} +4 -4
  52. package/dist/{onboard-DUIZfWqa.js → onboard-BoXWv3OF.js} +2 -2
  53. package/dist/{onboard-Ckw89oRF.js → onboard-Dk5UFbaj.js} +2 -2
  54. package/dist/{onboard-channels-B8Ouc5sR.js → onboard-channels-BQ-TPkl5.js} +1 -1
  55. package/dist/{onboard-channels-Oa9IlsGt.js → onboard-channels-DSIBGif0.js} +1 -1
  56. package/dist/{onboarding-Cjh-Y8ha.js → onboarding-CvCh0fyS.js} +3 -3
  57. package/dist/{onboarding-JFWHlqAb.js → onboarding-p3SCUopW.js} +3 -3
  58. package/dist/{onboarding.finalize-CkGLgiEA.js → onboarding.finalize-CrmmBrzK.js} +7 -7
  59. package/dist/{onboarding.finalize-spzEoVkm.js → onboarding.finalize-l2qeYvn5.js} +8 -8
  60. package/dist/{pi-embedded-D6Zi01El.js → pi-embedded-DaTqseIp.js} +105 -54
  61. package/dist/{pi-embedded-helpers-B1P8lkqj.js → pi-embedded-helpers-CU-kYRrF.js} +4 -4
  62. package/dist/{plugin-registry-CYglC746.js → plugin-registry-B_IeViDg.js} +1 -1
  63. package/dist/{plugin-registry-zGF6HUkQ.js → plugin-registry-BmdLxUZd.js} +1 -1
  64. package/dist/plugin-sdk/agents/pi-embedded-runner/system-prompt.d.ts +9 -0
  65. package/dist/plugin-sdk/agents/system-prompt.d.ts +17 -0
  66. package/dist/plugin-sdk/{channel-web-eeGSjU9N.js → channel-web-DYJYy4et.js} +1 -1
  67. package/dist/plugin-sdk/config/types.symi.d.ts +7 -0
  68. package/dist/plugin-sdk/index.js +3 -3
  69. package/dist/plugin-sdk/{manager-DZ5-lr4s.js → manager-Ca0_Buoj.js} +1 -1
  70. package/dist/plugin-sdk/{reply-BRGoceel.js → reply-Bfy77FPA.js} +105 -54
  71. package/dist/plugin-sdk/{synthesis-DVsG2Tbp.js → synthesis-D9SmRgqU.js} +2 -2
  72. package/dist/plugin-sdk/{web-7u3fdT2S.js → web-qvuO3y6z.js} +3 -3
  73. package/dist/{plugins-cli-ndIGvW38.js → plugins-cli-CAp8Hyam.js} +4 -4
  74. package/dist/{plugins-cli-CLb_0vH6.js → plugins-cli-Dhcj3Mah.js} +4 -4
  75. package/dist/{program-BovNsUAh.js → program-UlEVhGTo.js} +9 -9
  76. package/dist/{program-context-mFSRQPMm.js → program-context-BFvY5D79.js} +18 -18
  77. package/dist/{prompt-select-styled-vhI0kQYd.js → prompt-select-styled-BehvQU7S.js} +6 -6
  78. package/dist/{prompt-select-styled-DlKhnnDV.js → prompt-select-styled-Bf47U3gY.js} +6 -6
  79. package/dist/{provider-auth-helpers-DXlKD0hY.js → provider-auth-helpers-CEstUTnU.js} +1 -1
  80. package/dist/{provider-auth-helpers-U0t5YhCn.js → provider-auth-helpers-l2_9mB3E.js} +1 -1
  81. package/dist/{push-apns-hN0N3Wcu.js → push-apns-Be_K61Y3.js} +1 -1
  82. package/dist/{push-apns-rDsc17-c.js → push-apns-Cr9FKn9_.js} +1 -1
  83. package/dist/{pw-ai-BlWK9Tr3.js → pw-ai-BjfsUmjw.js} +1 -1
  84. package/dist/{register.agent-B1liWWB3.js → register.agent-DXzkaRw1.js} +8 -8
  85. package/dist/{register.agent-Cyij2g-g.js → register.agent-tfizhRlb.js} +7 -7
  86. package/dist/{register.configure-CoYKlH75.js → register.configure-CtXnzNAk.js} +8 -8
  87. package/dist/{register.configure-keWh1w1p.js → register.configure-DsBKnmY3.js} +8 -8
  88. package/dist/{register.maintenance-CsA9QQRE.js → register.maintenance-BZJLuSs7.js} +10 -10
  89. package/dist/{register.maintenance-CvY-Yar9.js → register.maintenance-mVD8OA1V.js} +9 -9
  90. package/dist/{register.message-D7815_7Y.js → register.message-C7Mfqk6i.js} +4 -4
  91. package/dist/{register.message-DltuBwIg.js → register.message-ZHGwfsV9.js} +4 -4
  92. package/dist/{register.onboard-CY50To_-.js → register.onboard-B0zHMGtr.js} +6 -6
  93. package/dist/{register.onboard-FcZymlrx.js → register.onboard-bPMjH-cM.js} +6 -6
  94. package/dist/{register.setup-8dkIizGs.js → register.setup-aVvT34-g.js} +6 -6
  95. package/dist/{register.setup-X011Evir.js → register.setup-jLBfOyYo.js} +6 -6
  96. package/dist/{register.status-health-sessions-DRkIaw1q.js → register.status-health-sessions-Bbp4B0t_.js} +5 -5
  97. package/dist/{register.status-health-sessions-u9ZbWWea.js → register.status-health-sessions-Ym9Z__5q.js} +5 -5
  98. package/dist/{register.subclis-vTS3UwIU.js → register.subclis-DHLF7LUE.js} +9 -9
  99. package/dist/{reply-Dx9DWIO2.js → reply-DaLBaxTg.js} +104 -53
  100. package/dist/{run-main-BQKf71Kt.js → run-main-i-0RAGWP.js} +17 -17
  101. package/dist/{runner-C4opGXAA.js → runner-DzNo-GCz.js} +1 -1
  102. package/dist/{server-methods-DeIwhdBv.js → server-methods-9ygcQLBv.js} +8 -8
  103. package/dist/{server-methods-1TzYth88.js → server-methods-BTBqGPE0.js} +8 -8
  104. package/dist/{server-node-events-CFMtnBFU.js → server-node-events-Dwq8UMWp.js} +4 -4
  105. package/dist/{server-node-events-DF_ks0oa.js → server-node-events-v-YRyTWm.js} +4 -4
  106. package/dist/{status-CwZgLSfx.js → status-87Am-dN6.js} +3 -3
  107. package/dist/{status-CvElSWg2.js → status-BwKYtKTR.js} +1 -1
  108. package/dist/{status-DEQAH4oA.js → status-Cet2zu6k.js} +1 -1
  109. package/dist/{status-vO4-v0vI.js → status-vF06cYz7.js} +3 -3
  110. package/dist/{subagent-registry-K1lQH7iR.js → subagent-registry--ttOPMLH.js} +104 -53
  111. package/dist/{synthesis-DhxkkJq7.js → synthesis-9GndKT3K.js} +2 -2
  112. package/dist/{synthesis-CZhOC8n4.js → synthesis-DH0gSv7o.js} +7 -7
  113. package/dist/{synthesis-DazoL-DI.js → synthesis-JzS-852N.js} +3 -3
  114. package/dist/{synthesis-AYqn8_O8.js → synthesis-aBsVjLIL.js} +3 -3
  115. package/dist/{unified-runner-CavADnkK.js → unified-runner-C0OC_Ay0.js} +119 -68
  116. package/dist/{update-cli-DPf2vrJK.js → update-cli-BWulAC_Y.js} +10 -10
  117. package/dist/{update-cli-DmxFKAmJ.js → update-cli-DAP38iFd.js} +9 -9
  118. package/dist/{update-runner-D4UIv_1p.js → update-runner-Bl0Y3ndR.js} +1 -1
  119. package/dist/{update-runner-XU-jPEg_.js → update-runner-DV6ov2uA.js} +1 -1
  120. package/dist/{web-BJIv_6uQ.js → web-Cl-3dkwx.js} +7 -7
  121. package/dist/{web-CIj8erCe.js → web-DcZB_7Fo.js} +2 -2
  122. package/dist/{web-C-E-O8iP.js → web-DhjVLurg.js} +4 -4
  123. package/dist/{web-BBbVbRTg.js → web-K_bPrtFT.js} +3 -3
  124. package/docs/capabilities.md +153 -0
  125. package/extensions/bluebubbles/package.json +1 -1
  126. package/extensions/copilot-proxy/package.json +1 -1
  127. package/extensions/diagnostics-otel/package.json +1 -1
  128. package/extensions/discord/package.json +1 -1
  129. package/extensions/feishu/package.json +1 -1
  130. package/extensions/google-antigravity-auth/package.json +1 -1
  131. package/extensions/google-gemini-cli-auth/package.json +1 -1
  132. package/extensions/googlechat/package.json +1 -1
  133. package/extensions/imessage/package.json +1 -1
  134. package/extensions/irc/package.json +1 -1
  135. package/extensions/learning-loop/package.json +1 -1
  136. package/extensions/line/package.json +1 -1
  137. package/extensions/llm-task/package.json +1 -1
  138. package/extensions/matrix/CHANGELOG.md +12 -0
  139. package/extensions/matrix/package.json +1 -1
  140. package/extensions/mattermost/package.json +1 -1
  141. package/extensions/memory-core/package.json +1 -1
  142. package/extensions/memory-lancedb/package.json +1 -1
  143. package/extensions/minimax-portal-auth/package.json +1 -1
  144. package/extensions/msteams/CHANGELOG.md +12 -0
  145. package/extensions/msteams/package.json +1 -1
  146. package/extensions/nextcloud-talk/package.json +1 -1
  147. package/extensions/nostr/CHANGELOG.md +12 -0
  148. package/extensions/nostr/package.json +1 -1
  149. package/extensions/open-prose/package.json +1 -1
  150. package/extensions/outlook/node_modules/.bin/symi +21 -0
  151. package/extensions/outlook/package.json +1 -1
  152. package/extensions/pipeline/package.json +1 -1
  153. package/extensions/signal/package.json +1 -1
  154. package/extensions/slack/package.json +1 -1
  155. package/extensions/telegram/package.json +1 -1
  156. package/extensions/tlon/package.json +1 -1
  157. package/extensions/twitch/CHANGELOG.md +12 -0
  158. package/extensions/twitch/package.json +1 -1
  159. package/extensions/voice-call/CHANGELOG.md +12 -0
  160. package/extensions/voice-call/package.json +1 -1
  161. package/extensions/whatsapp/package.json +1 -1
  162. package/extensions/zalo/CHANGELOG.md +12 -0
  163. package/extensions/zalo/package.json +1 -1
  164. package/extensions/zalouser/CHANGELOG.md +12 -0
  165. package/extensions/zalouser/package.json +1 -1
  166. package/package.json +5 -1
  167. package/skills/channel-routing/SKILL.md +42 -0
  168. package/skills/document-generation/SKILL.md +83 -0
  169. package/skills/reactions-extensive/SKILL.md +30 -0
  170. package/skills/reactions-minimal/SKILL.md +31 -0
  171. package/skills/safe-edit/SKILL.md +51 -0
  172. package/skills/tool-narration/SKILL.md +40 -0
  173. package/skills/verify-output/SKILL.md +47 -0
@@ -14,7 +14,7 @@ import "./client-CJIMV1WD.js";
14
14
  import "./call-BCTAmPye.js";
15
15
  import "./message-channel-C9dERklz.js";
16
16
  import "./pairing-token-Byh6drgn.js";
17
- import "./subagent-registry-K1lQH7iR.js";
17
+ import "./subagent-registry--ttOPMLH.js";
18
18
  import "./sessions-CpDbQNFu.js";
19
19
  import "./tokens-Csntmwwn.js";
20
20
  import "./plugins-CwSlLxM8.js";
@@ -52,8 +52,8 @@ import "./tool-images-CVLISeRT.js";
52
52
  import "./thinking-8sKPnzpp.js";
53
53
  import "./models-config-frWb8fDT.js";
54
54
  import "./reply-prefix-BUN71nd5.js";
55
- import "./memory-cli-3RSIw4no.js";
56
- import "./manager-yrUe0KOT.js";
55
+ import "./memory-cli-D2LaloPq.js";
56
+ import "./manager-DNxvT0P-.js";
57
57
  import "./gemini-auth-DEakvf-D.js";
58
58
  import "./retry-C4Q_VPOo.js";
59
59
  import "./sqlite-BP8tiuca.js";
@@ -104,8 +104,8 @@ import "./table-Bka4fasy.js";
104
104
  import "./shared-NCp143fJ.js";
105
105
  import "./auth-token-ce8PBZwF.js";
106
106
  import "./logging-PVQxLC6I.js";
107
- import { c as githubCopilotLoginCommand } from "./provider-auth-helpers-U0t5YhCn.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-D_C2JFPw.js";
107
+ import { c as githubCopilotLoginCommand } from "./provider-auth-helpers-l2_9mB3E.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-C6MaesB8.js";
109
109
 
110
110
  //#region src/cli/models-cli.ts
111
111
  function runModelsCommand(action) {
@@ -1,7 +1,7 @@
1
1
  import { t as CONFIG_PATH } from "./paths-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 { Bt as runAgentTurn, Xt as describeFailoverError, _r as buildAuthHealthSummary, _t as loadProviderUsageSummary, bt as resolveUsageProviderId, gr as DEFAULT_OAUTH_WARN_MS, hr as maskApiKey, vr as formatRemainingShort, yt as formatUsageWindowSummary } from "./reply-Dx9DWIO2.js";
4
+ import { Bt as runAgentTurn, Xt as describeFailoverError, _r as buildAuthHealthSummary, _t as loadProviderUsageSummary, bt as resolveUsageProviderId, gr as DEFAULT_OAUTH_WARN_MS, hr as maskApiKey, vr as formatRemainingShort, yt as formatUsageWindowSummary } from "./reply-DaLBaxTg.js";
5
5
  import "./registry-Cja8eT7G.js";
6
6
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
7
7
  import "./exec-CWkblSrI.js";
@@ -61,8 +61,8 @@ import "./diagnostic-session-state-CUslJyKP.js";
61
61
  import "./send-aXMPprv9.js";
62
62
  import { i as resolveForwardCompatModel, r as ANTIGRAVITY_OPUS_46_FORWARD_COMPAT_CANDIDATES } from "./model-ECsJuJew.js";
63
63
  import "./reply-prefix-CE2YmmsD.js";
64
- import "./memory-cli-BKNnDIdx.js";
65
- import "./manager-B_2KzUSI.js";
64
+ import "./memory-cli-xSpyRUEV.js";
65
+ import "./manager-Ca7NOWdK.js";
66
66
  import "./retry-BoS4e4X_.js";
67
67
  import "./sqlite-D55gRQbH.js";
68
68
  import "./target-errors-C9e6dMU_.js";
@@ -111,7 +111,7 @@ import { n as redactSecrets } from "./format-DNqZrSx7.js";
111
111
  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-DHpMu95O.js";
112
112
  import { d as applyAuthProfileConfig, n as validateAnthropicSetupToken } from "./auth-token-Cq0R-Q6i.js";
113
113
  import { n as logConfigUpdated } from "./logging-CZuxhCZR.js";
114
- 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-DXlKD0hY.js";
114
+ 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-CEstUTnU.js";
115
115
  import path from "node:path";
116
116
  import fs from "node:fs/promises";
117
117
  import crypto from "node:crypto";
@@ -9,8 +9,8 @@ import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, r as isGate
9
9
  import { t as assertSupportedRuntime } from "./runtime-guard-BofkqBu7.js";
10
10
  import { r as isSystemdUserServiceAvailable } from "./systemd-CJ5L2ee4.js";
11
11
  import { t as resolveGatewayService } from "./service-RxN7lQKN.js";
12
- import { r as healthCommand } from "./health-CV741PBg.js";
13
- import { t as runOnboardingWizard } from "./onboarding-JFWHlqAb.js";
12
+ import { r as healthCommand } from "./health-C5cdo2e_.js";
13
+ import { t as runOnboardingWizard } from "./onboarding-p3SCUopW.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-ce8PBZwF.js";
15
15
  import { n as logConfigUpdated } from "./logging-PVQxLC6I.js";
16
16
  import { n as isDeprecatedAuthChoice, r as normalizeLegacyOnboardAuthChoice } from "./auth-choice-legacy-DxCamFcQ.js";
@@ -11,8 +11,8 @@ import { t as createClackPrompter } from "./clack-prompter-CM5UgVAv.js";
11
11
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-C-Mwepv_.js";
12
12
  import { r as isSystemdUserServiceAvailable } from "./systemd-Xs16roN5.js";
13
13
  import { t as resolveGatewayService } from "./service-DzLem5vL.js";
14
- import { r as healthCommand } from "./health-BQGRC0xh.js";
15
- import { t as runOnboardingWizard } from "./onboarding-Cjh-Y8ha.js";
14
+ import { r as healthCommand } from "./health-BFlZuHVH.js";
15
+ import { t as runOnboardingWizard } from "./onboarding-CvCh0fyS.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-Cq0R-Q6i.js";
17
17
  import { n as logConfigUpdated } from "./logging-CZuxhCZR.js";
18
18
  import { n as isDeprecatedAuthChoice, r as normalizeLegacyOnboardAuthChoice } from "./auth-choice-legacy-C7jeLI7r.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-K1lQH7iR.js";
6
+ import { m as loadSymiPlugins, p as createPluginLoaderLogger } from "./subagent-registry--ttOPMLH.js";
7
7
  import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-CwSlLxM8.js";
8
8
  import { t as formatDocsLink } from "./links-CxyMXTsn.js";
9
9
  import { r as listChannelPluginCatalogEntries } from "./catalog-KcLvtTfa.js";
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { ft as createPluginLoaderLogger, pt as loadSymiPlugins } from "./reply-Dx9DWIO2.js";
2
+ import { ft as createPluginLoaderLogger, pt as loadSymiPlugins } from "./reply-DaLBaxTg.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";
@@ -225,7 +225,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
225
225
  const { ensureAuthProfileStore } = await import("./model-selection-C-eIBa0H.js").then((n) => n.dt);
226
226
  const { promptAuthChoiceGrouped } = await import("./auth-choice-prompt-PeQmwVpp.js").then((n) => n.t);
227
227
  const { promptCustomApiConfig } = await import("./onboard-custom-7TON2w6b.js").then((n) => n.r);
228
- const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-BoOyy-ZT.js").then((n) => n.t);
228
+ const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-DAMY302C.js").then((n) => n.t);
229
229
  const { applyPrimaryModel, promptDefaultModel } = await import("./model-picker-BT8MumhL.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-Oa9IlsGt.js").then((n) => n.n);
281
+ const { setupChannels } = await import("./onboard-channels-DSIBGif0.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-CkGLgiEA.js");
307
+ const { finalizeOnboardingWizard } = await import("./onboarding.finalize-CrmmBrzK.js");
308
308
  const { launchedTui } = await finalizeOnboardingWizard({
309
309
  flow,
310
310
  opts,
@@ -223,7 +223,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
223
223
  const { ensureAuthProfileStore } = await import("./auth-profiles-BBniPGeS.js").then((n) => n.t);
224
224
  const { promptAuthChoiceGrouped } = await import("./auth-choice-prompt-DF6R_pgV.js").then((n) => n.t);
225
225
  const { promptCustomApiConfig } = await import("./onboard-custom-Bb3xuH0G.js").then((n) => n.r);
226
- const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-BYDGn7lJ.js").then((n) => n.t);
226
+ const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-C_lflrPV.js").then((n) => n.t);
227
227
  const { applyPrimaryModel, promptDefaultModel } = await import("./model-picker-DhsG4iZa.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-B8Ouc5sR.js").then((n) => n.n);
279
+ const { setupChannels } = await import("./onboard-channels-BQ-TPkl5.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-spzEoVkm.js");
305
+ const { finalizeOnboardingWizard } = await import("./onboarding.finalize-l2qeYvn5.js");
306
306
  const { launchedTui } = await finalizeOnboardingWizard({
307
307
  flow,
308
308
  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-Dx9DWIO2.js";
4
+ import "./reply-DaLBaxTg.js";
5
5
  import "./registry-Cja8eT7G.js";
6
6
  import { p as restoreTerminalState } from "./subsystem-D9vIQve0.js";
7
7
  import "./exec-CWkblSrI.js";
@@ -61,8 +61,8 @@ import "./diagnostic-session-state-CUslJyKP.js";
61
61
  import "./send-aXMPprv9.js";
62
62
  import "./model-ECsJuJew.js";
63
63
  import "./reply-prefix-CE2YmmsD.js";
64
- import "./memory-cli-BKNnDIdx.js";
65
- import "./manager-B_2KzUSI.js";
64
+ import "./memory-cli-xSpyRUEV.js";
65
+ import "./manager-Ca7NOWdK.js";
66
66
  import "./retry-BoS4e4X_.js";
67
67
  import "./sqlite-D55gRQbH.js";
68
68
  import "./target-errors-C9e6dMU_.js";
@@ -104,16 +104,16 @@ import "./control-service-BkyH7qkF.js";
104
104
  import "./stagger-CZ1Rrj7O.js";
105
105
  import "./channel-selection-9fIQGtZy.js";
106
106
  import "./runtime-guard-BKFbNplo.js";
107
- import "./program-context-mFSRQPMm.js";
107
+ import "./program-context-BFvY5D79.js";
108
108
  import "./note-ByDX0v9V.js";
109
- import { r as installCompletion } from "./completion-cli-RQyC3L-t.js";
109
+ import { r as installCompletion } from "./completion-cli-euUBlC-J.js";
110
110
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-C-Mwepv_.js";
111
111
  import { r as isSystemdUserServiceAvailable } from "./systemd-Xs16roN5.js";
112
112
  import { t as resolveGatewayService } from "./service-DzLem5vL.js";
113
- import { r as healthCommand } from "./health-BQGRC0xh.js";
113
+ import { r as healthCommand } from "./health-BFlZuHVH.js";
114
114
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-BrP31IQR.js";
115
115
  import { t as formatHealthCheckFailure } from "./health-format-Ct4VWeSk.js";
116
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-BKXQ50ee.js";
116
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-B-Oak4dP.js";
117
117
  import { t as runTui } from "./tui-Cc1L4YuN.js";
118
118
  import os from "node:os";
119
119
  import path from "node:path";
@@ -15,7 +15,7 @@ import "./client-CJIMV1WD.js";
15
15
  import "./call-BCTAmPye.js";
16
16
  import "./message-channel-C9dERklz.js";
17
17
  import "./pairing-token-Byh6drgn.js";
18
- import "./subagent-registry-K1lQH7iR.js";
18
+ import "./subagent-registry--ttOPMLH.js";
19
19
  import "./sessions-CpDbQNFu.js";
20
20
  import "./tokens-Csntmwwn.js";
21
21
  import "./plugins-CwSlLxM8.js";
@@ -53,8 +53,8 @@ import "./tool-images-CVLISeRT.js";
53
53
  import "./thinking-8sKPnzpp.js";
54
54
  import "./models-config-frWb8fDT.js";
55
55
  import "./reply-prefix-BUN71nd5.js";
56
- import "./memory-cli-3RSIw4no.js";
57
- import "./manager-yrUe0KOT.js";
56
+ import "./memory-cli-D2LaloPq.js";
57
+ import "./manager-DNxvT0P-.js";
58
58
  import "./gemini-auth-DEakvf-D.js";
59
59
  import "./retry-C4Q_VPOo.js";
60
60
  import "./sqlite-BP8tiuca.js";
@@ -100,18 +100,18 @@ import "./prompt-style-BxVdnrLq.js";
100
100
  import "./pairing-labels-BHx_CdbP.js";
101
101
  import "./pi-tools.policy-BFsWV2pS.js";
102
102
  import "./note-DewoEWtc.js";
103
- import "./register.subclis-vTS3UwIU.js";
104
- import "./command-registry-b62Qpsi2.js";
103
+ import "./register.subclis-DHLF7LUE.js";
104
+ import "./command-registry-iESIIBvf.js";
105
105
  import "./program-context-DeZ44oQ9.js";
106
- import { r as installCompletion } from "./completion-cli-DUT2XYgK.js";
106
+ import { r as installCompletion } from "./completion-cli-BEddBU3C.js";
107
107
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-C86WnKU5.js";
108
108
  import "./runtime-guard-BofkqBu7.js";
109
109
  import { r as isSystemdUserServiceAvailable } from "./systemd-CJ5L2ee4.js";
110
110
  import { t as resolveGatewayService } from "./service-RxN7lQKN.js";
111
- import { r as healthCommand } from "./health-CV741PBg.js";
111
+ import { r as healthCommand } from "./health-C5cdo2e_.js";
112
112
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-Clf7H-Sm.js";
113
113
  import { t as formatHealthCheckFailure } from "./health-format-DkjSgkDx.js";
114
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-BS2JEeZy.js";
114
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-BGriRzaq.js";
115
115
  import { t as runTui } from "./tui-D5we2kr7.js";
116
116
  import os from "node:os";
117
117
  import path from "node:path";
@@ -37,7 +37,7 @@ import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as re
37
37
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-C8Tqw4td.js";
38
38
  import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-ChC2CXaN.js";
39
39
  import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-BjyeKf1c.js";
40
- import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-CLPHK-qG.js";
40
+ import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-SbxZtjEc.js";
41
41
  import { c as normalizeExtraMemoryPaths, f as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-479FB0St.js";
42
42
  import { n as retryAsync } from "./retry-QGp0jvVi.js";
43
43
  import { a as createActionGate, c as jsonResult, d as readReactionParams, f as readStringArrayParam, l as parseAvailableTags, m as readStringParam, n as missingTargetError, o as imageResult, p as readStringOrNumberParam, r as unknownTargetError, s as imageResultFromFile, t as ambiguousTargetError, u as readNumberParam } from "./target-errors-Dm716SF3.js";
@@ -3473,7 +3473,7 @@ async function getMemorySearchManager(params) {
3473
3473
  const wrapper = new FallbackMemoryManager({
3474
3474
  primary,
3475
3475
  fallbackFactory: async () => {
3476
- const { MemoryIndexManager } = await import("./manager-CLPHK-qG.js").then((n) => n.n);
3476
+ const { MemoryIndexManager } = await import("./manager-SbxZtjEc.js").then((n) => n.n);
3477
3477
  return await MemoryIndexManager.get(params);
3478
3478
  }
3479
3479
  }, () => QMD_MANAGER_CACHE.delete(cacheKey));
@@ -3486,7 +3486,7 @@ async function getMemorySearchManager(params) {
3486
3486
  }
3487
3487
  }
3488
3488
  try {
3489
- const { MemoryIndexManager } = await import("./manager-CLPHK-qG.js").then((n) => n.n);
3489
+ const { MemoryIndexManager } = await import("./manager-SbxZtjEc.js").then((n) => n.n);
3490
3490
  return { manager: await MemoryIndexManager.get(params) };
3491
3491
  } catch (err) {
3492
3492
  return {
@@ -18691,6 +18691,41 @@ async function executeNodeHostCommand(params) {
18691
18691
 
18692
18692
  //#endregion
18693
18693
  //#region src/agents/bash-tools.exec.ts
18694
+ let cachedSymiNodeModules;
18695
+ /**
18696
+ * Returns the absolute path to Symi's bundled `node_modules` directory, so
18697
+ * gateway-host node scripts can `require()` packages that ship with Symi
18698
+ * (docx / exceljs / pptxgenjs / pdfkit for the document-generation skill,
18699
+ * plus any future bundled npm dep). Cached for the process lifetime.
18700
+ *
18701
+ * Returns null when Symi's package root can't be resolved (development
18702
+ * setups outside a package, broken installs).
18703
+ */
18704
+ function resolveSymiNodeModulesPath() {
18705
+ if (cachedSymiNodeModules !== void 0) return cachedSymiNodeModules;
18706
+ const root = resolveSymiPackageRootSync({});
18707
+ cachedSymiNodeModules = root ? path.join(root, "node_modules") : null;
18708
+ return cachedSymiNodeModules;
18709
+ }
18710
+ /**
18711
+ * Append Symi's bundled node_modules path to NODE_PATH so gateway-host
18712
+ * scripts (run via the `exec` tool with `host: "gateway"`) can resolve
18713
+ * Symi-bundled npm packages from any cwd. Existing NODE_PATH (user
18714
+ * override or test fixture) is preserved by appending, not replacing.
18715
+ */
18716
+ function applySymiNodePath(env) {
18717
+ const symiModules = resolveSymiNodeModulesPath();
18718
+ if (!symiModules) return;
18719
+ const existing = env.NODE_PATH?.trim();
18720
+ if (!existing) {
18721
+ env.NODE_PATH = symiModules;
18722
+ return;
18723
+ }
18724
+ const sep = path.delimiter;
18725
+ const segments = existing.split(sep).filter(Boolean);
18726
+ if (!segments.includes(symiModules)) segments.push(symiModules);
18727
+ env.NODE_PATH = segments.join(sep);
18728
+ }
18694
18729
  function extractScriptTargetFromCommand(command) {
18695
18730
  const raw = command.trim();
18696
18731
  if (!raw) return null;
@@ -18840,6 +18875,7 @@ function createExecTool(defaults) {
18840
18875
  env: process.env,
18841
18876
  timeoutMs: resolveShellEnvFallbackTimeoutMs(process.env)
18842
18877
  }));
18878
+ if (!sandbox && host === "gateway") applySymiNodePath(env);
18843
18879
  if (host === "node" && defaultPathPrepend.length > 0) warnings.push("Warning: tools.exec.pathPrepend is ignored for host=node. Configure PATH on the node host/service instead.");
18844
18880
  else applyPathPrepend(env, defaultPathPrepend);
18845
18881
  if (host === "node") return executeNodeHostCommand({
@@ -21604,6 +21640,7 @@ function sanitizeForPromptLiteral(value) {
21604
21640
  //#region src/agents/system-prompt.ts
21605
21641
  function buildSkillsSection(params) {
21606
21642
  if (params.isMinimal) return [];
21643
+ if (params.dropCatalog) return [];
21607
21644
  const trimmed = params.skillsPrompt?.trim();
21608
21645
  if (!trimmed) return [];
21609
21646
  return [
@@ -21708,7 +21745,7 @@ function buildVoiceSection(params) {
21708
21745
  ];
21709
21746
  }
21710
21747
  function buildVerifyYourWorkSection(params) {
21711
- if (params.isMinimal) return [];
21748
+ if (params.isMinimal || params.compactMode) return [];
21712
21749
  const exec = params.execToolName;
21713
21750
  const read = params.readToolName;
21714
21751
  return [
@@ -21897,6 +21934,7 @@ function buildAgentSystemPrompt(params) {
21897
21934
  const promptMode = params.promptMode ?? "full";
21898
21935
  const isMinimal = promptMode === "minimal" || promptMode === "none";
21899
21936
  const isCoding = promptMode === "coding";
21937
+ const compactMode = params.compactMode === true;
21900
21938
  const sandboxContainerWorkspace = params.sandboxInfo?.containerWorkspaceDir?.trim();
21901
21939
  const sanitizedWorkspaceDir = sanitizeForPromptLiteral(params.workspaceDir);
21902
21940
  const sanitizedSandboxContainerWorkspace = sandboxContainerWorkspace ? sanitizeForPromptLiteral(sandboxContainerWorkspace) : "";
@@ -21912,7 +21950,8 @@ function buildAgentSystemPrompt(params) {
21912
21950
  const skillsSection = buildSkillsSection({
21913
21951
  skillsPrompt,
21914
21952
  isMinimal,
21915
- readToolName
21953
+ readToolName,
21954
+ dropCatalog: compactMode && (params.skillsDiscoveryMode === "jit" || params.skillsDiscoveryMode === "hybrid")
21916
21955
  });
21917
21956
  const memorySection = buildMemorySection({
21918
21957
  isMinimal,
@@ -21955,39 +21994,43 @@ function buildAgentSystemPrompt(params) {
21955
21994
  "If a task is more complex or takes longer, spawn a sub-agent. Completion is push-based: it will auto-announce when done.",
21956
21995
  "Do not poll `subagents list` / `sessions_list` in a loop; only check status on-demand (for intervention, debugging, or when explicitly asked).",
21957
21996
  "",
21958
- "## Tool Call Style",
21959
- "Default: do not narrate routine, low-risk tool calls (just call the tool).",
21960
- "Narrate only when it helps: multi-step work, complex/challenging problems, sensitive actions (e.g., deletions), or when the user explicitly asks.",
21961
- "Keep narration brief and value-dense; avoid repeating obvious steps.",
21962
- "Use plain human language for narration unless in a technical context.",
21963
- "",
21964
- "## Edit Tool Best Practices",
21965
- "When using the edit tool, the oldText must match the file EXACTLY (whitespace, indentation, and all).",
21966
- "To avoid match failures:",
21967
- "- Use the SHORTEST unique snippet that identifies the edit location (1-3 lines). Do NOT paste large blocks.",
21968
- "- ALWAYS read the file first, then copy the exact text from the read output for oldText.",
21969
- "- If an edit fails with 'Could not find the exact text', re-read the file and retry with the exact text from the fresh read. Do NOT move on or fix a different issue.",
21970
- "- Prefer lines with distinctive content (function names, unique strings) over generic code (braces, blank lines).",
21971
- "",
21997
+ ...compactMode ? [] : [
21998
+ "## Tool Call Style",
21999
+ "Default: do not narrate routine, low-risk tool calls (just call the tool).",
22000
+ "Narrate only when it helps: multi-step work, complex/challenging problems, sensitive actions (e.g., deletions), or when the user explicitly asks.",
22001
+ "Keep narration brief and value-dense; avoid repeating obvious steps.",
22002
+ "Use plain human language for narration unless in a technical context.",
22003
+ "",
22004
+ "## Edit Tool Best Practices",
22005
+ "When using the edit tool, the oldText must match the file EXACTLY (whitespace, indentation, and all).",
22006
+ "To avoid match failures:",
22007
+ "- Use the SHORTEST unique snippet that identifies the edit location (1-3 lines). Do NOT paste large blocks.",
22008
+ "- ALWAYS read the file first, then copy the exact text from the read output for oldText.",
22009
+ "- If an edit fails with 'Could not find the exact text', re-read the file and retry with the exact text from the fresh read. Do NOT move on or fix a different issue.",
22010
+ "- Prefer lines with distinctive content (function names, unique strings) over generic code (braces, blank lines).",
22011
+ ""
22012
+ ],
21972
22013
  ...safetySection,
21973
- "## Symi CLI Quick Reference",
21974
- "Symi is controlled via subcommands. Do not invent commands.",
21975
- "To manage the Gateway daemon service (start/stop/restart):",
21976
- "- symi gateway status",
21977
- "- symi gateway start",
21978
- "- symi gateway stop",
21979
- "- symi gateway restart",
21980
- "If unsure, ask the user to run `symi help` (or `symi gateway --help`) and paste the output.",
21981
- "",
22014
+ ...compactMode ? ["For Symi CLI commands, ask the user to run `symi help` and paste the output.", ""] : [
22015
+ "## Symi CLI Quick Reference",
22016
+ "Symi is controlled via subcommands. Do not invent commands.",
22017
+ "To manage the Gateway daemon service (start/stop/restart):",
22018
+ "- symi gateway status",
22019
+ "- symi gateway start",
22020
+ "- symi gateway stop",
22021
+ "- symi gateway restart",
22022
+ "If unsure, ask the user to run `symi help` (or `symi gateway --help`) and paste the output.",
22023
+ ""
22024
+ ],
21982
22025
  ...skillsSection,
21983
22026
  ...memorySection,
21984
- hasGateway && !isMinimal && !isCoding ? "## Symi Self-Update" : "",
21985
- hasGateway && !isMinimal && !isCoding ? [
22027
+ hasGateway && !isMinimal && !isCoding && !compactMode ? "## Symi Self-Update" : "",
22028
+ hasGateway && !isMinimal && !isCoding && !compactMode ? [
21986
22029
  "Get Updates (self-update) is ONLY allowed when the user explicitly asks for it.",
21987
22030
  "Do not run config.apply or update.run unless the user explicitly requests an update or config change; if it's not explicit, ask first.",
21988
22031
  "Actions: config.get, config.schema, config.apply (validate + write full config, then restart), update.run (update deps or git, then restart).",
21989
22032
  "After restart, Symi pings the last active session automatically."
21990
- ].join("\n") : "",
22033
+ ].join("\n") : hasGateway && !isMinimal && !isCoding && compactMode ? "Gateway destructive actions (config.apply, config.patch, update.run) require explicit user authorization via userRequestAcknowledgment — never invoke speculatively." : "",
21991
22034
  hasGateway && !isMinimal && !isCoding ? "" : "",
21992
22035
  "",
21993
22036
  params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? "## Model Aliases" : "",
@@ -22004,7 +22047,8 @@ function buildAgentSystemPrompt(params) {
22004
22047
  ...buildVerifyYourWorkSection({
22005
22048
  isMinimal,
22006
22049
  execToolName,
22007
- readToolName
22050
+ readToolName,
22051
+ compactMode
22008
22052
  }),
22009
22053
  params.sandboxInfo?.enabled ? "## Sandbox" : "",
22010
22054
  params.sandboxInfo?.enabled ? [
@@ -22050,23 +22094,26 @@ function buildAgentSystemPrompt(params) {
22050
22094
  }
22051
22095
  if (params.reactionGuidance) {
22052
22096
  const { level, channel } = params.reactionGuidance;
22053
- const guidanceText = level === "minimal" ? [
22054
- `Reactions are enabled for ${channel} in MINIMAL mode.`,
22055
- "React ONLY when truly relevant:",
22056
- "- Acknowledge important user requests or confirmations",
22057
- "- Express genuine sentiment (humor, appreciation) sparingly",
22058
- "- Avoid reacting to routine messages or your own replies",
22059
- "Guideline: at most 1 reaction per 5-10 exchanges."
22060
- ].join("\n") : [
22061
- `Reactions are enabled for ${channel} in EXTENSIVE mode.`,
22062
- "Feel free to react liberally:",
22063
- "- Acknowledge messages with appropriate emojis",
22064
- "- Express sentiment and personality through reactions",
22065
- "- React to interesting content, humor, or notable events",
22066
- "- Use reactions to confirm understanding or agreement",
22067
- "Guideline: react whenever it feels natural."
22068
- ].join("\n");
22069
- lines.push("## Reactions", guidanceText, "");
22097
+ if (compactMode) lines.push("## Reactions", `Reactions for ${channel} are in ${level.toUpperCase()} mode — see the reactions-${level} skill (auto-loaded).`, "");
22098
+ else {
22099
+ const guidanceText = level === "minimal" ? [
22100
+ `Reactions are enabled for ${channel} in MINIMAL mode.`,
22101
+ "React ONLY when truly relevant:",
22102
+ "- Acknowledge important user requests or confirmations",
22103
+ "- Express genuine sentiment (humor, appreciation) sparingly",
22104
+ "- Avoid reacting to routine messages or your own replies",
22105
+ "Guideline: at most 1 reaction per 5-10 exchanges."
22106
+ ].join("\n") : [
22107
+ `Reactions are enabled for ${channel} in EXTENSIVE mode.`,
22108
+ "Feel free to react liberally:",
22109
+ "- Acknowledge messages with appropriate emojis",
22110
+ "- Express sentiment and personality through reactions",
22111
+ "- React to interesting content, humor, or notable events",
22112
+ "- Use reactions to confirm understanding or agreement",
22113
+ "Guideline: react whenever it feels natural."
22114
+ ].join("\n");
22115
+ lines.push("## Reactions", guidanceText, "");
22116
+ }
22070
22117
  }
22071
22118
  if (reasoningHint) lines.push("## Reasoning Format", reasoningHint, "");
22072
22119
  const validContextFiles = (params.contextFiles ?? []).filter((file) => typeof file.path === "string" && file.path.trim().length > 0);
@@ -46774,7 +46821,9 @@ function buildEmbeddedSystemPrompt(params) {
46774
46821
  userTime: params.userTime,
46775
46822
  userTimeFormat: params.userTimeFormat,
46776
46823
  contextFiles: params.contextFiles,
46777
- memoryCitationsMode: params.memoryCitationsMode
46824
+ memoryCitationsMode: params.memoryCitationsMode,
46825
+ compactMode: params.compactMode,
46826
+ skillsDiscoveryMode: params.skillsDiscoveryMode
46778
46827
  });
46779
46828
  const promptMode = params.promptMode ?? "full";
46780
46829
  const isMinimal = promptMode === "minimal" || promptMode === "none";
@@ -47580,7 +47629,8 @@ async function runEmbeddedAttempt(params) {
47580
47629
  autoLoadInlineSkills: params.config?.skills?.autoLoadInline,
47581
47630
  skillsDiscoveryMode: params.config?.skills?.discoveryMode,
47582
47631
  skillsAnchorList: params.config?.skills?.anchorList,
47583
- currentUserMessage: params.prompt
47632
+ currentUserMessage: params.prompt,
47633
+ compactMode: params.config?.prompt?.compactMode
47584
47634
  });
47585
47635
  const systemPromptReport = buildSystemPromptReport({
47586
47636
  source: "run",
@@ -62041,7 +62091,7 @@ function isVoiceChannelType(type) {
62041
62091
  function createDefaultDeps() {
62042
62092
  return {
62043
62093
  sendMessageWhatsApp: async (...args) => {
62044
- const { sendMessageWhatsApp } = await import("./web-CIj8erCe.js");
62094
+ const { sendMessageWhatsApp } = await import("./web-DcZB_7Fo.js");
62045
62095
  return await sendMessageWhatsApp(...args);
62046
62096
  },
62047
62097
  sendMessageTelegram: async (...args) => {
@@ -77321,7 +77371,7 @@ function loadWebLoginQr() {
77321
77371
  return webLoginQrPromise;
77322
77372
  }
77323
77373
  function loadWebChannel() {
77324
- webChannelPromise ??= import("./web-CIj8erCe.js");
77374
+ webChannelPromise ??= import("./web-DcZB_7Fo.js");
77325
77375
  return webChannelPromise;
77326
77376
  }
77327
77377
  function loadWhatsAppActions() {
@@ -80011,7 +80061,8 @@ async function compactEmbeddedPiSessionDirect(params) {
80011
80061
  autoLoadInlineSkills: params.config?.skills?.autoLoadInline,
80012
80062
  skillsDiscoveryMode: params.config?.skills?.discoveryMode,
80013
80063
  skillsAnchorList: params.config?.skills?.anchorList,
80014
- currentUserMessage: void 0
80064
+ currentUserMessage: void 0,
80065
+ compactMode: params.config?.prompt?.compactMode
80015
80066
  }));
80016
80067
  const sessionLock = await acquireSessionWriteLock({
80017
80068
  sessionFile: params.sessionFile,
@@ -9,7 +9,7 @@ import { h as isPidAlive, m as resolveProcessScopedMap } from "./auth-profiles-C
9
9
  import { n as formatCliCommand } from "./env-BDXYbTKj.js";
10
10
  import { t as parseBooleanValue } from "./boolean-CE7i9tBR.js";
11
11
  import { _ as parseDurationMs, a as writeConfigFile, n as loadConfig, s as parseByteSize, t as createConfigIO } from "./config-Do4JxgLI.js";
12
- import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-BaMQiegP.js";
12
+ import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-CJHOBnUB.js";
13
13
  import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-CXxrn_e2.js";
14
14
  import { n as formatErrorMessage, t as extractErrorCode } from "./errors-XIsvXeC-.js";
15
15
  import { b as openFileWithinRoot, i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS, y as SafeOpenError } from "./image-ops-C7CauEK8.js";
@@ -940,7 +940,7 @@ function isModuleNotFoundError(err) {
940
940
  }
941
941
  async function loadPwAiModule(mode) {
942
942
  try {
943
- return await import("./pw-ai-BlWK9Tr3.js");
943
+ return await import("./pw-ai-BjfsUmjw.js");
944
944
  } catch (err) {
945
945
  if (mode === "soft") return null;
946
946
  if (isModuleNotFoundError(err)) return null;
@@ -3480,11 +3480,11 @@ function createProfileContext(opts, profile) {
3480
3480
  const userDataDir = resolveSymiUserDataDir(profile.name);
3481
3481
  const profileState = getProfileState();
3482
3482
  if (await isHttpReachable(300) && !profileState.running) try {
3483
- await (await import("./pw-ai-BlWK9Tr3.js")).closePlaywrightBrowserConnection();
3483
+ await (await import("./pw-ai-BjfsUmjw.js")).closePlaywrightBrowserConnection();
3484
3484
  } catch {}
3485
3485
  if (profileState.running) await stopRunningBrowser();
3486
3486
  try {
3487
- await (await import("./pw-ai-BlWK9Tr3.js")).closePlaywrightBrowserConnection();
3487
+ await (await import("./pw-ai-BjfsUmjw.js")).closePlaywrightBrowserConnection();
3488
3488
  } catch {}
3489
3489
  if (!fs.existsSync(userDataDir)) return {
3490
3490
  moved: false,
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { pt as loadSymiPlugins } from "./reply-Dx9DWIO2.js";
2
+ import { pt as loadSymiPlugins } from "./reply-DaLBaxTg.js";
3
3
  import { d as getActivePluginRegistry } from "./registry-Cja8eT7G.js";
4
4
  import { t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
5
5
  import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-CgUHAtCo.js";
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { M as getActivePluginRegistry, o as createSubsystemLogger } from "./entry.js";
3
3
  import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-D-jRCY0d.js";
4
4
  import { i as loadConfig } from "./config-Gfhqs66L.js";
5
- import { m as loadSymiPlugins } from "./subagent-registry-K1lQH7iR.js";
5
+ import { m as loadSymiPlugins } from "./subagent-registry--ttOPMLH.js";
6
6
 
7
7
  //#region src/cli/plugin-registry.ts
8
8
  var plugin_registry_exports = /* @__PURE__ */ __exportAll({ ensurePluginRegistryLoaded: () => ensurePluginRegistryLoaded });
@@ -69,6 +69,15 @@ export declare function buildEmbeddedSystemPrompt(params: {
69
69
  * empty for compaction / system-driven runs; auto-inject becomes a no-op.
70
70
  */
71
71
  currentUserMessage?: string;
72
+ /**
73
+ * Stage 4 of the prompt-reduction plan. When true, drops migrated
74
+ * sections from the central prompt (Tool Call Style, Edit Tool Best
75
+ * Practices, Verify Your Work, Reactions verbose body, Symi CLI Quick
76
+ * Ref, Symi Self-Update) — their content lives in skills / tool
77
+ * descriptions / runtime guards. Combined with discoveryMode in
78
+ * jit/hybrid, also drops the up-to-30KB <available_skills> catalog.
79
+ */
80
+ compactMode?: boolean;
72
81
  }): string;
73
82
  export declare function createSystemPromptOverride(systemPrompt: string): (defaultPrompt?: string) => string;
74
83
  export declare function applySystemPromptOverrideToSession(session: AgentSession, override: string | ((defaultPrompt?: string) => string)): void;