@symerian/symi 2.9.2 → 2.9.3

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 (172) hide show
  1. package/dist/{agents-DTl30WoB.js → agents-D6V_7iZL.js} +4 -4
  2. package/dist/{agents.config-CZ3GFxPg.js → agents.config-B-NRTvyi.js} +1 -1
  3. package/dist/{agents.config-CO8F9mkD.js → agents.config-BeX0kxT3.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-4lzxjIcf.js} +1 -1
  6. package/dist/{auth-choice-BoOyy-ZT.js → auth-choice-BJQjxe_Y.js} +1 -1
  7. package/dist/{banner-D4MiyUnv.js → banner-Q3fjWWy3.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-BiSSYYQC.js → channel-options-CQ0Q0xZr.js} +1 -1
  13. package/dist/{channel-options-B6qP-vR-.js → channel-options-D6U_Dpa2.js} +1 -1
  14. package/dist/{channel-web-DP97EUhx.js → channel-web-D6aolbVC.js} +1 -1
  15. package/dist/{channels-cli-CE_A3Hai.js → channels-cli-By4y_t51.js} +6 -6
  16. package/dist/{channels-cli-6LNvJQPb.js → channels-cli-CxuKeNkr.js} +6 -6
  17. package/dist/{chrome-BaMQiegP.js → chrome-CJHOBnUB.js} +7 -7
  18. package/dist/{cli-DwQ3mqhI.js → cli-41r_BAjv.js} +3 -3
  19. package/dist/{cli-D4j_JTug.js → cli-B1gtEojq.js} +3 -3
  20. package/dist/{command-registry-b62Qpsi2.js → command-registry-FJWuYmEn.js} +10 -10
  21. package/dist/{completion-cli-RQyC3L-t.js → completion-cli-C20c_vzO.js} +1 -1
  22. package/dist/{completion-cli-DUT2XYgK.js → completion-cli-DWVW4P54.js} +2 -2
  23. package/dist/{config-cli-Di8VOhbp.js → config-cli-CJQ-12f7.js} +1 -1
  24. package/dist/{config-cli-H52N8rp1.js → config-cli-CLXuCFJc.js} +1 -1
  25. package/dist/{configure-DQxuawe-.js → configure-DrIhqYYW.js} +3 -3
  26. package/dist/{configure-BF9crM5K.js → configure-I99ztt2Y.js} +3 -3
  27. package/dist/{deliver-Dx39g9ey.js → deliver-D5655IkX.js} +1 -1
  28. package/dist/{doctor-completion-BKXQ50ee.js → doctor-completion-B4pjrehH.js} +1 -1
  29. package/dist/{doctor-completion-BS2JEeZy.js → doctor-completion-C9A7E6Wb.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-BByLEck3.js} +11 -11
  33. package/dist/{gateway-cli-moPf-zP5.js → gateway-cli-cZpbavO4.js} +11 -11
  34. package/dist/{glass-ui-ws-D53pvIov.js → glass-ui-ws-09XXkYnX.js} +9 -9
  35. package/dist/{glass-ui-ws-Dfro-3R8.js → glass-ui-ws-DUHaC6lE.js} +9 -9
  36. package/dist/{health-CV741PBg.js → health-Bvo3NXZK.js} +1 -1
  37. package/dist/{health-BQGRC0xh.js → health-CYHbTw04.js} +1 -1
  38. package/dist/{hooks-cli-CWXGIL9L.js → hooks-cli-BwFW4lKC.js} +4 -4
  39. package/dist/{hooks-cli-CG-PDY2U.js → hooks-cli-CiFs-0g0.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-CLPHK-qG.js → manager-Bj8GFlcZ.js} +1 -1
  44. package/dist/{manager-yrUe0KOT.js → manager-BsfrsBPw.js} +1 -1
  45. package/dist/{manager-B_2KzUSI.js → manager-CB20PmUH.js} +1 -1
  46. package/dist/{manager-Bc-MeMho.js → manager-CMB15ft8.js} +1 -1
  47. package/dist/{memory-cli-BKNnDIdx.js → memory-cli-CoTkaEhh.js} +3 -3
  48. package/dist/{memory-cli-3RSIw4no.js → memory-cli-Cuhhh4qN.js} +3 -3
  49. package/dist/{models-D_C2JFPw.js → models-CdIe1IJX.js} +2 -2
  50. package/dist/{models-cli-DQE60EtL.js → models-cli-CZcMWBL0.js} +5 -5
  51. package/dist/{models-cli-j2O4e1Lu.js → models-cli-o07a-fh5.js} +4 -4
  52. package/dist/{onboard-Ckw89oRF.js → onboard-44op-88v.js} +2 -2
  53. package/dist/{onboard-DUIZfWqa.js → onboard-Cjlal6-V.js} +2 -2
  54. package/dist/{onboard-channels-B8Ouc5sR.js → onboard-channels-BseAErC9.js} +1 -1
  55. package/dist/{onboard-channels-Oa9IlsGt.js → onboard-channels-Lt1TlRrb.js} +1 -1
  56. package/dist/{onboarding-JFWHlqAb.js → onboarding-DODsq7cg.js} +3 -3
  57. package/dist/{onboarding-Cjh-Y8ha.js → onboarding-DYJYybkl.js} +3 -3
  58. package/dist/{onboarding.finalize-CkGLgiEA.js → onboarding.finalize-BX-xeFu7.js} +7 -7
  59. package/dist/{onboarding.finalize-spzEoVkm.js → onboarding.finalize-DhhWr8GR.js} +8 -8
  60. package/dist/{pi-embedded-D6Zi01El.js → pi-embedded-UMBd-Mrj.js} +69 -54
  61. package/dist/{pi-embedded-helpers-B1P8lkqj.js → pi-embedded-helpers-CU-kYRrF.js} +4 -4
  62. package/dist/{plugin-registry-zGF6HUkQ.js → plugin-registry-Di_isjUm.js} +1 -1
  63. package/dist/{plugin-registry-CYglC746.js → plugin-registry-HrZC-Iww.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-CzZZsS3O.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-BiRYpsW7.js} +1 -1
  70. package/dist/plugin-sdk/{reply-BRGoceel.js → reply-DYEklKOc.js} +69 -54
  71. package/dist/plugin-sdk/{synthesis-DVsG2Tbp.js → synthesis-CaDiVumM.js} +2 -2
  72. package/dist/plugin-sdk/{web-7u3fdT2S.js → web-DU4xaLZf.js} +3 -3
  73. package/dist/{plugins-cli-CLb_0vH6.js → plugins-cli-BlBz4J4q.js} +4 -4
  74. package/dist/{plugins-cli-ndIGvW38.js → plugins-cli-CMz1ww6G.js} +4 -4
  75. package/dist/{program-context-mFSRQPMm.js → program-context-ByWsh-2T.js} +18 -18
  76. package/dist/{program-BovNsUAh.js → program-dFZ5CYgD.js} +9 -9
  77. package/dist/{prompt-select-styled-DlKhnnDV.js → prompt-select-styled-BkwnTGjt.js} +6 -6
  78. package/dist/{prompt-select-styled-vhI0kQYd.js → prompt-select-styled-nywEyQoQ.js} +6 -6
  79. package/dist/{provider-auth-helpers-DXlKD0hY.js → provider-auth-helpers-CQ604vQz.js} +1 -1
  80. package/dist/{provider-auth-helpers-U0t5YhCn.js → provider-auth-helpers-CgJE4rvP.js} +1 -1
  81. package/dist/{push-apns-rDsc17-c.js → push-apns-CQlSAman.js} +1 -1
  82. package/dist/{push-apns-hN0N3Wcu.js → push-apns-CbjqnCIn.js} +1 -1
  83. package/dist/{pw-ai-BlWK9Tr3.js → pw-ai-BjfsUmjw.js} +1 -1
  84. package/dist/{register.agent-Cyij2g-g.js → register.agent-BaLgPcGg.js} +7 -7
  85. package/dist/{register.agent-B1liWWB3.js → register.agent-Hw7FS0tf.js} +8 -8
  86. package/dist/{register.configure-CoYKlH75.js → register.configure-BC-jW4EY.js} +8 -8
  87. package/dist/{register.configure-keWh1w1p.js → register.configure-D6bKnyeR.js} +8 -8
  88. package/dist/{register.maintenance-CsA9QQRE.js → register.maintenance-7LeID6wA.js} +10 -10
  89. package/dist/{register.maintenance-CvY-Yar9.js → register.maintenance-DQ73gAH0.js} +9 -9
  90. package/dist/{register.message-DltuBwIg.js → register.message-D2Ubr7KY.js} +4 -4
  91. package/dist/{register.message-D7815_7Y.js → register.message-odamuJP5.js} +4 -4
  92. package/dist/{register.onboard-CY50To_-.js → register.onboard-Bv3BjuIZ.js} +6 -6
  93. package/dist/{register.onboard-FcZymlrx.js → register.onboard-DwYvxoBx.js} +6 -6
  94. package/dist/{register.setup-X011Evir.js → register.setup-B6ylBd_s.js} +6 -6
  95. package/dist/{register.setup-8dkIizGs.js → register.setup-BvNMj7Tn.js} +6 -6
  96. package/dist/{register.status-health-sessions-u9ZbWWea.js → register.status-health-sessions-Bx0oTY_P.js} +5 -5
  97. package/dist/{register.status-health-sessions-DRkIaw1q.js → register.status-health-sessions-Cr65vOYW.js} +5 -5
  98. package/dist/{register.subclis-vTS3UwIU.js → register.subclis-BzbNYOC6.js} +9 -9
  99. package/dist/{reply-Dx9DWIO2.js → reply-Bymjl4wV.js} +68 -53
  100. package/dist/{run-main-BQKf71Kt.js → run-main-BAaL6QjO.js} +17 -17
  101. package/dist/{runner-C4opGXAA.js → runner-DzNo-GCz.js} +1 -1
  102. package/dist/{server-methods-1TzYth88.js → server-methods-C4j7W_qQ.js} +8 -8
  103. package/dist/{server-methods-DeIwhdBv.js → server-methods-Ds4i0Q2F.js} +8 -8
  104. package/dist/{server-node-events-DF_ks0oa.js → server-node-events-D0gNq3h6.js} +4 -4
  105. package/dist/{server-node-events-CFMtnBFU.js → server-node-events-tbjGwgHF.js} +4 -4
  106. package/dist/{status-CvElSWg2.js → status-BdkVcIDX.js} +1 -1
  107. package/dist/{status-vO4-v0vI.js → status-BfNSBvnp.js} +3 -3
  108. package/dist/{status-CwZgLSfx.js → status-CGabcN-L.js} +3 -3
  109. package/dist/{status-DEQAH4oA.js → status-DpVc9DSG.js} +1 -1
  110. package/dist/{subagent-registry-K1lQH7iR.js → subagent-registry-0D_yjdW5.js} +68 -53
  111. package/dist/{synthesis-DazoL-DI.js → synthesis-1f-yGtS7.js} +3 -3
  112. package/dist/{synthesis-AYqn8_O8.js → synthesis-A2SfvBRN.js} +3 -3
  113. package/dist/{synthesis-DhxkkJq7.js → synthesis-Bf2XnlvP.js} +2 -2
  114. package/dist/{synthesis-CZhOC8n4.js → synthesis-DFQ_rjEF.js} +7 -7
  115. package/dist/{unified-runner-CavADnkK.js → unified-runner-j_Vn4K8X.js} +83 -68
  116. package/dist/{update-cli-DmxFKAmJ.js → update-cli-B3t4yUU6.js} +9 -9
  117. package/dist/{update-cli-DPf2vrJK.js → update-cli-CWMGbbPM.js} +10 -10
  118. package/dist/{update-runner-D4UIv_1p.js → update-runner-CfzHxbsu.js} +1 -1
  119. package/dist/{update-runner-XU-jPEg_.js → update-runner-UfVHKth_.js} +1 -1
  120. package/dist/{web-BJIv_6uQ.js → web-BSf9H0_w.js} +7 -7
  121. package/dist/{web-BBbVbRTg.js → web-DCTvbYTy.js} +3 -3
  122. package/dist/{web-C-E-O8iP.js → web-DIDhNbES.js} +4 -4
  123. package/dist/{web-CIj8erCe.js → web-DaChMSyM.js} +2 -2
  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 +6 -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 +6 -0
  145. package/extensions/msteams/package.json +1 -1
  146. package/extensions/nextcloud-talk/package.json +1 -1
  147. package/extensions/nostr/CHANGELOG.md +6 -0
  148. package/extensions/nostr/package.json +1 -1
  149. package/extensions/open-prose/package.json +1 -1
  150. package/extensions/outlook/package.json +1 -1
  151. package/extensions/pipeline/package.json +1 -1
  152. package/extensions/signal/package.json +1 -1
  153. package/extensions/slack/package.json +1 -1
  154. package/extensions/telegram/package.json +1 -1
  155. package/extensions/tlon/package.json +1 -1
  156. package/extensions/twitch/CHANGELOG.md +6 -0
  157. package/extensions/twitch/package.json +1 -1
  158. package/extensions/voice-call/CHANGELOG.md +6 -0
  159. package/extensions/voice-call/package.json +1 -1
  160. package/extensions/whatsapp/package.json +1 -1
  161. package/extensions/zalo/CHANGELOG.md +6 -0
  162. package/extensions/zalo/package.json +1 -1
  163. package/extensions/zalouser/CHANGELOG.md +6 -0
  164. package/extensions/zalouser/package.json +1 -1
  165. package/package.json +1 -1
  166. package/skills/channel-routing/SKILL.md +42 -0
  167. package/skills/document-generation/SKILL.md +64 -0
  168. package/skills/reactions-extensive/SKILL.md +30 -0
  169. package/skills/reactions-minimal/SKILL.md +31 -0
  170. package/skills/safe-edit/SKILL.md +51 -0
  171. package/skills/tool-narration/SKILL.md +40 -0
  172. 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-0D_yjdW5.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-Cuhhh4qN.js";
56
+ import "./manager-BsfrsBPw.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-CgJE4rvP.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-CdIe1IJX.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-Bymjl4wV.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-CoTkaEhh.js";
65
+ import "./manager-CB20PmUH.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-CQ604vQz.js";
115
115
  import path from "node:path";
116
116
  import fs from "node:fs/promises";
117
117
  import crypto from "node:crypto";
@@ -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-CYHbTw04.js";
15
+ import { t as runOnboardingWizard } from "./onboarding-DYJYybkl.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";
@@ -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-Bvo3NXZK.js";
13
+ import { t as runOnboardingWizard } from "./onboarding-DODsq7cg.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";
@@ -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-0D_yjdW5.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-Bymjl4wV.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-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-4lzxjIcf.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-BseAErC9.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-DhhWr8GR.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-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-BJQjxe_Y.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-Lt1TlRrb.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-BX-xeFu7.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-Dx9DWIO2.js";
4
+ import "./reply-Bymjl4wV.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-CoTkaEhh.js";
65
+ import "./manager-CB20PmUH.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-ByWsh-2T.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-C20c_vzO.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-CYHbTw04.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-B4pjrehH.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-0D_yjdW5.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-Cuhhh4qN.js";
57
+ import "./manager-BsfrsBPw.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-BzbNYOC6.js";
104
+ import "./command-registry-FJWuYmEn.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-DWVW4P54.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-Bvo3NXZK.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-C9A7E6Wb.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-Bj8GFlcZ.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-Bj8GFlcZ.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-Bj8GFlcZ.js").then((n) => n.n);
3490
3490
  return { manager: await MemoryIndexManager.get(params) };
3491
3491
  } catch (err) {
3492
3492
  return {
@@ -21604,6 +21604,7 @@ function sanitizeForPromptLiteral(value) {
21604
21604
  //#region src/agents/system-prompt.ts
21605
21605
  function buildSkillsSection(params) {
21606
21606
  if (params.isMinimal) return [];
21607
+ if (params.dropCatalog) return [];
21607
21608
  const trimmed = params.skillsPrompt?.trim();
21608
21609
  if (!trimmed) return [];
21609
21610
  return [
@@ -21708,7 +21709,7 @@ function buildVoiceSection(params) {
21708
21709
  ];
21709
21710
  }
21710
21711
  function buildVerifyYourWorkSection(params) {
21711
- if (params.isMinimal) return [];
21712
+ if (params.isMinimal || params.compactMode) return [];
21712
21713
  const exec = params.execToolName;
21713
21714
  const read = params.readToolName;
21714
21715
  return [
@@ -21897,6 +21898,7 @@ function buildAgentSystemPrompt(params) {
21897
21898
  const promptMode = params.promptMode ?? "full";
21898
21899
  const isMinimal = promptMode === "minimal" || promptMode === "none";
21899
21900
  const isCoding = promptMode === "coding";
21901
+ const compactMode = params.compactMode === true;
21900
21902
  const sandboxContainerWorkspace = params.sandboxInfo?.containerWorkspaceDir?.trim();
21901
21903
  const sanitizedWorkspaceDir = sanitizeForPromptLiteral(params.workspaceDir);
21902
21904
  const sanitizedSandboxContainerWorkspace = sandboxContainerWorkspace ? sanitizeForPromptLiteral(sandboxContainerWorkspace) : "";
@@ -21912,7 +21914,8 @@ function buildAgentSystemPrompt(params) {
21912
21914
  const skillsSection = buildSkillsSection({
21913
21915
  skillsPrompt,
21914
21916
  isMinimal,
21915
- readToolName
21917
+ readToolName,
21918
+ dropCatalog: compactMode && (params.skillsDiscoveryMode === "jit" || params.skillsDiscoveryMode === "hybrid")
21916
21919
  });
21917
21920
  const memorySection = buildMemorySection({
21918
21921
  isMinimal,
@@ -21955,39 +21958,43 @@ function buildAgentSystemPrompt(params) {
21955
21958
  "If a task is more complex or takes longer, spawn a sub-agent. Completion is push-based: it will auto-announce when done.",
21956
21959
  "Do not poll `subagents list` / `sessions_list` in a loop; only check status on-demand (for intervention, debugging, or when explicitly asked).",
21957
21960
  "",
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
- "",
21961
+ ...compactMode ? [] : [
21962
+ "## Tool Call Style",
21963
+ "Default: do not narrate routine, low-risk tool calls (just call the tool).",
21964
+ "Narrate only when it helps: multi-step work, complex/challenging problems, sensitive actions (e.g., deletions), or when the user explicitly asks.",
21965
+ "Keep narration brief and value-dense; avoid repeating obvious steps.",
21966
+ "Use plain human language for narration unless in a technical context.",
21967
+ "",
21968
+ "## Edit Tool Best Practices",
21969
+ "When using the edit tool, the oldText must match the file EXACTLY (whitespace, indentation, and all).",
21970
+ "To avoid match failures:",
21971
+ "- Use the SHORTEST unique snippet that identifies the edit location (1-3 lines). Do NOT paste large blocks.",
21972
+ "- ALWAYS read the file first, then copy the exact text from the read output for oldText.",
21973
+ "- 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.",
21974
+ "- Prefer lines with distinctive content (function names, unique strings) over generic code (braces, blank lines).",
21975
+ ""
21976
+ ],
21972
21977
  ...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
- "",
21978
+ ...compactMode ? ["For Symi CLI commands, ask the user to run `symi help` and paste the output.", ""] : [
21979
+ "## Symi CLI Quick Reference",
21980
+ "Symi is controlled via subcommands. Do not invent commands.",
21981
+ "To manage the Gateway daemon service (start/stop/restart):",
21982
+ "- symi gateway status",
21983
+ "- symi gateway start",
21984
+ "- symi gateway stop",
21985
+ "- symi gateway restart",
21986
+ "If unsure, ask the user to run `symi help` (or `symi gateway --help`) and paste the output.",
21987
+ ""
21988
+ ],
21982
21989
  ...skillsSection,
21983
21990
  ...memorySection,
21984
- hasGateway && !isMinimal && !isCoding ? "## Symi Self-Update" : "",
21985
- hasGateway && !isMinimal && !isCoding ? [
21991
+ hasGateway && !isMinimal && !isCoding && !compactMode ? "## Symi Self-Update" : "",
21992
+ hasGateway && !isMinimal && !isCoding && !compactMode ? [
21986
21993
  "Get Updates (self-update) is ONLY allowed when the user explicitly asks for it.",
21987
21994
  "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
21995
  "Actions: config.get, config.schema, config.apply (validate + write full config, then restart), update.run (update deps or git, then restart).",
21989
21996
  "After restart, Symi pings the last active session automatically."
21990
- ].join("\n") : "",
21997
+ ].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
21998
  hasGateway && !isMinimal && !isCoding ? "" : "",
21992
21999
  "",
21993
22000
  params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? "## Model Aliases" : "",
@@ -22004,7 +22011,8 @@ function buildAgentSystemPrompt(params) {
22004
22011
  ...buildVerifyYourWorkSection({
22005
22012
  isMinimal,
22006
22013
  execToolName,
22007
- readToolName
22014
+ readToolName,
22015
+ compactMode
22008
22016
  }),
22009
22017
  params.sandboxInfo?.enabled ? "## Sandbox" : "",
22010
22018
  params.sandboxInfo?.enabled ? [
@@ -22050,23 +22058,26 @@ function buildAgentSystemPrompt(params) {
22050
22058
  }
22051
22059
  if (params.reactionGuidance) {
22052
22060
  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, "");
22061
+ if (compactMode) lines.push("## Reactions", `Reactions for ${channel} are in ${level.toUpperCase()} mode — see the reactions-${level} skill (auto-loaded).`, "");
22062
+ else {
22063
+ const guidanceText = level === "minimal" ? [
22064
+ `Reactions are enabled for ${channel} in MINIMAL mode.`,
22065
+ "React ONLY when truly relevant:",
22066
+ "- Acknowledge important user requests or confirmations",
22067
+ "- Express genuine sentiment (humor, appreciation) sparingly",
22068
+ "- Avoid reacting to routine messages or your own replies",
22069
+ "Guideline: at most 1 reaction per 5-10 exchanges."
22070
+ ].join("\n") : [
22071
+ `Reactions are enabled for ${channel} in EXTENSIVE mode.`,
22072
+ "Feel free to react liberally:",
22073
+ "- Acknowledge messages with appropriate emojis",
22074
+ "- Express sentiment and personality through reactions",
22075
+ "- React to interesting content, humor, or notable events",
22076
+ "- Use reactions to confirm understanding or agreement",
22077
+ "Guideline: react whenever it feels natural."
22078
+ ].join("\n");
22079
+ lines.push("## Reactions", guidanceText, "");
22080
+ }
22070
22081
  }
22071
22082
  if (reasoningHint) lines.push("## Reasoning Format", reasoningHint, "");
22072
22083
  const validContextFiles = (params.contextFiles ?? []).filter((file) => typeof file.path === "string" && file.path.trim().length > 0);
@@ -46774,7 +46785,9 @@ function buildEmbeddedSystemPrompt(params) {
46774
46785
  userTime: params.userTime,
46775
46786
  userTimeFormat: params.userTimeFormat,
46776
46787
  contextFiles: params.contextFiles,
46777
- memoryCitationsMode: params.memoryCitationsMode
46788
+ memoryCitationsMode: params.memoryCitationsMode,
46789
+ compactMode: params.compactMode,
46790
+ skillsDiscoveryMode: params.skillsDiscoveryMode
46778
46791
  });
46779
46792
  const promptMode = params.promptMode ?? "full";
46780
46793
  const isMinimal = promptMode === "minimal" || promptMode === "none";
@@ -47580,7 +47593,8 @@ async function runEmbeddedAttempt(params) {
47580
47593
  autoLoadInlineSkills: params.config?.skills?.autoLoadInline,
47581
47594
  skillsDiscoveryMode: params.config?.skills?.discoveryMode,
47582
47595
  skillsAnchorList: params.config?.skills?.anchorList,
47583
- currentUserMessage: params.prompt
47596
+ currentUserMessage: params.prompt,
47597
+ compactMode: params.config?.prompt?.compactMode
47584
47598
  });
47585
47599
  const systemPromptReport = buildSystemPromptReport({
47586
47600
  source: "run",
@@ -62041,7 +62055,7 @@ function isVoiceChannelType(type) {
62041
62055
  function createDefaultDeps() {
62042
62056
  return {
62043
62057
  sendMessageWhatsApp: async (...args) => {
62044
- const { sendMessageWhatsApp } = await import("./web-CIj8erCe.js");
62058
+ const { sendMessageWhatsApp } = await import("./web-DaChMSyM.js");
62045
62059
  return await sendMessageWhatsApp(...args);
62046
62060
  },
62047
62061
  sendMessageTelegram: async (...args) => {
@@ -77321,7 +77335,7 @@ function loadWebLoginQr() {
77321
77335
  return webLoginQrPromise;
77322
77336
  }
77323
77337
  function loadWebChannel() {
77324
- webChannelPromise ??= import("./web-CIj8erCe.js");
77338
+ webChannelPromise ??= import("./web-DaChMSyM.js");
77325
77339
  return webChannelPromise;
77326
77340
  }
77327
77341
  function loadWhatsAppActions() {
@@ -80011,7 +80025,8 @@ async function compactEmbeddedPiSessionDirect(params) {
80011
80025
  autoLoadInlineSkills: params.config?.skills?.autoLoadInline,
80012
80026
  skillsDiscoveryMode: params.config?.skills?.discoveryMode,
80013
80027
  skillsAnchorList: params.config?.skills?.anchorList,
80014
- currentUserMessage: void 0
80028
+ currentUserMessage: void 0,
80029
+ compactMode: params.config?.prompt?.compactMode
80015
80030
  }));
80016
80031
  const sessionLock = await acquireSessionWriteLock({
80017
80032
  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,
@@ -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-0D_yjdW5.js";
6
6
 
7
7
  //#region src/cli/plugin-registry.ts
8
8
  var plugin_registry_exports = /* @__PURE__ */ __exportAll({ ensurePluginRegistryLoaded: () => ensurePluginRegistryLoaded });
@@ -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-Bymjl4wV.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";
@@ -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;
@@ -68,6 +68,23 @@ export declare function buildAgentSystemPrompt(params: {
68
68
  channel: string;
69
69
  };
70
70
  memoryCitationsMode?: MemoryCitationsMode;
71
+ /**
72
+ * Stage 4 of the prompt-reduction plan. When true, drops sections whose
73
+ * content has been migrated to:
74
+ * - tool descriptions (Edit Tool Best Practices → edit tool desc + safe-edit skill)
75
+ * - JIT skills loaded on-demand (Verify Your Work → verify-output skill)
76
+ * - auto-loaded skills (Tool Call Style → tool-narration; Reactions → reactions-{level}; Messaging → channel-routing)
77
+ * - runtime guards / outbound filters (Symi Self-Update → permission gate; NO_REPLY/SYMIPULSE_OK → outbound filter)
78
+ * Default false; opt in via prompt.compactMode in symi.json.
79
+ */
80
+ compactMode?: boolean;
81
+ /**
82
+ * Stage 4: when compactMode is on AND skills discovery mode is "jit" or
83
+ * "hybrid", the up-to-30KB <available_skills> catalog is dropped from
84
+ * the central prompt; the agent uses skill_search + auto-injection
85
+ * (Stages 3.3-3.5) to find skills on demand.
86
+ */
87
+ skillsDiscoveryMode?: "preload" | "jit" | "hybrid";
71
88
  }): string;
72
89
  export declare function buildRuntimeLine(runtimeInfo?: {
73
90
  agentId?: string;
@@ -1,6 +1,6 @@
1
1
  import { a as buildGroupHistoryKey, n as DEFAULT_MAIN_KEY, r as buildAgentMainSessionKey, s as normalizeAgentId } from "./session-key-C_0eELjb.js";
2
2
  import { f as readWebSelfId, o as getWebAuthAgeMs, r as resolveWhatsAppAccount } from "./accounts-D9zGZU5t.js";
3
- import { D as enqueueSystemEvent, G as shouldAckReactionForWhatsApp, K as resolveMentionGating, X as DEFAULT_GROUP_HISTORY_LIMIT, Z as buildHistoryContextFromEntries, _ as formatInboundEnvelope, b as shouldComputeCommandAuthorized, c as computeBackoff, d as buildPairingReply, f as formatDurationPrecise, g as resolveInboundDebounceMs, gt as createDedupeCache, h as createInboundDebouncer, it as normalizeMentionText, l as sleepWithAbort, n as normalizeGroupActivation, nt as recordPendingHistoryEntryIfEnabled, p as dispatchReplyWithBufferedBlockDispatcher, r as parseActivationCommand, rt as buildMentionRegexes, t as getReplyFromConfig, v as resolveEnvelopeFormatOptions, y as hasControlCommand } from "./reply-BRGoceel.js";
3
+ import { D as enqueueSystemEvent, G as shouldAckReactionForWhatsApp, K as resolveMentionGating, X as DEFAULT_GROUP_HISTORY_LIMIT, Z as buildHistoryContextFromEntries, _ as formatInboundEnvelope, b as shouldComputeCommandAuthorized, c as computeBackoff, d as buildPairingReply, f as formatDurationPrecise, g as resolveInboundDebounceMs, gt as createDedupeCache, h as createInboundDebouncer, it as normalizeMentionText, l as sleepWithAbort, n as normalizeGroupActivation, nt as recordPendingHistoryEntryIfEnabled, p as dispatchReplyWithBufferedBlockDispatcher, r as parseActivationCommand, rt as buildMentionRegexes, t as getReplyFromConfig, v as resolveEnvelopeFormatOptions, y as hasControlCommand } from "./reply-DYEklKOc.js";
4
4
  import { A as normalizeE164, B as toWhatsappJid, K as logVerbose, N as resolveJidToE164, O as isSelfChatMode, R as sleep, Y as shouldLogVerbose, k as jidToE164, s as normalizeChatChannelId, tt as getChildLogger, x as clamp } from "./registry--_pGht6S.js";
5
5
  import { n as loadConfig } from "./config-Cf-PzD3r.js";
6
6
  import { i as defaultRuntime, t as createSubsystemLogger } from "./subsystem-Coz2AgU8.js";
@@ -64,6 +64,13 @@ export type SymiConfig = {
64
64
  };
65
65
  };
66
66
  skills?: SkillsConfig;
67
+ /**
68
+ * Stage 4 of the prompt-reduction plan. Master gate for compact-mode
69
+ * prompt section deletions; opt-in via symi.json.
70
+ */
71
+ prompt?: {
72
+ compactMode?: boolean;
73
+ };
67
74
  plugins?: PluginsConfig;
68
75
  models?: ModelsConfig;
69
76
  nodeHost?: NodeHostConfig;