@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
@@ -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-Bfy77FPA.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;
@@ -1,6 +1,6 @@
1
1
  import { f as DEFAULT_ACCOUNT_ID, p as normalizeAccountId } from "./session-key-C_0eELjb.js";
2
2
  import { _ as createAccountListHelpers, i as resolveWhatsAppAuthDir, n as resolveDefaultWhatsAppAccountId, r as resolveWhatsAppAccount, t as listWhatsAppAccountIds } from "./accounts-D9zGZU5t.js";
3
- import { $ as clearHistoryEntries, A as detectBinary, At as CHANNEL_MESSAGE_ACTION_NAMES, B as logInboundDrop, C as processLineMessage, Ct as listThreadBindingsBySessionKey, Dt as BLUEBUBBLES_ACTIONS, E as attachFooterText, Et as resolveAllowlistMatchSimple, F as optionalStringEnum, G as shouldAckReactionForWhatsApp, H as createTypingCallbacks, I as stringEnum, J as mergeAllowlist, K as resolveMentionGating, L as recordInboundSession, M as resolveDiscordChannelAllowlist, N as collectDiscordAuditChannelIds, O as resolveSlackUserAllowlist, Ot as BLUEBUBBLES_ACTION_NAMES, P as formatDocsLink, Q as buildPendingHistoryContextFromMap, R as resolveControlCommandGate, S as hasMarkdownToConvert, St as autoBindSpawnedDiscordSubagent, T as createReceiptCard, Tt as formatAllowlistMatchMeta, U as removeAckReactionAfterReply, V as logTypingFailure, W as shouldAckReaction, X as DEFAULT_GROUP_HISTORY_LIMIT, Y as summarizeMapping, _t as approveDevicePairing, a as normalizeAccountId$1, at as isWSL2Sync, bt as extractToolSend, ct as DEFAULT_WEBHOOK_BODY_TIMEOUT_MS, dt as installRequestBodyLimitGuard, et as clearHistoryEntriesIfEnabled, ft as isRequestBodyLimitError, gt as createDedupeCache, ht as requestBodyErrorToText, i as listLineAccountIds, j as resolveDiscordUserAllowlist, k as resolveSlackChannelAllowlist, kt as BLUEBUBBLES_GROUP_ACTIONS, lt as DEFAULT_WEBHOOK_MAX_BODY_BYTES, mt as readRequestBodyWithLimit, nt as recordPendingHistoryEntryIfEnabled, o as resolveDefaultLineAccountId, ot as isWSLEnv, pt as readJsonBodyWithLimit, q as resolveMentionGatingWithBypass, s as resolveLineAccount, st as isWSLSync, tt as recordPendingHistoryEntry, ut as RequestBodyLimitError, vt as listDevicePairing, w as stripMarkdown, wt as unbindThreadBindingsBySessionKey, xt as registerPluginHttpRoute, yt as rejectDevicePairing, z as logAckFailure } from "./reply-BRGoceel.js";
3
+ import { $ as clearHistoryEntries, A as detectBinary, At as CHANNEL_MESSAGE_ACTION_NAMES, B as logInboundDrop, C as processLineMessage, Ct as listThreadBindingsBySessionKey, Dt as BLUEBUBBLES_ACTIONS, E as attachFooterText, Et as resolveAllowlistMatchSimple, F as optionalStringEnum, G as shouldAckReactionForWhatsApp, H as createTypingCallbacks, I as stringEnum, J as mergeAllowlist, K as resolveMentionGating, L as recordInboundSession, M as resolveDiscordChannelAllowlist, N as collectDiscordAuditChannelIds, O as resolveSlackUserAllowlist, Ot as BLUEBUBBLES_ACTION_NAMES, P as formatDocsLink, Q as buildPendingHistoryContextFromMap, R as resolveControlCommandGate, S as hasMarkdownToConvert, St as autoBindSpawnedDiscordSubagent, T as createReceiptCard, Tt as formatAllowlistMatchMeta, U as removeAckReactionAfterReply, V as logTypingFailure, W as shouldAckReaction, X as DEFAULT_GROUP_HISTORY_LIMIT, Y as summarizeMapping, _t as approveDevicePairing, a as normalizeAccountId$1, at as isWSL2Sync, bt as extractToolSend, ct as DEFAULT_WEBHOOK_BODY_TIMEOUT_MS, dt as installRequestBodyLimitGuard, et as clearHistoryEntriesIfEnabled, ft as isRequestBodyLimitError, gt as createDedupeCache, ht as requestBodyErrorToText, i as listLineAccountIds, j as resolveDiscordUserAllowlist, k as resolveSlackChannelAllowlist, kt as BLUEBUBBLES_GROUP_ACTIONS, lt as DEFAULT_WEBHOOK_MAX_BODY_BYTES, mt as readRequestBodyWithLimit, nt as recordPendingHistoryEntryIfEnabled, o as resolveDefaultLineAccountId, ot as isWSLEnv, pt as readJsonBodyWithLimit, q as resolveMentionGatingWithBypass, s as resolveLineAccount, st as isWSLSync, tt as recordPendingHistoryEntry, ut as RequestBodyLimitError, vt as listDevicePairing, w as stripMarkdown, wt as unbindThreadBindingsBySessionKey, xt as registerPluginHttpRoute, yt as rejectDevicePairing, z as logAckFailure } from "./reply-Bfy77FPA.js";
4
4
  import "./paths-DR2yt_mP.js";
5
5
  import "./github-copilot-token-D9X2phUj.js";
6
6
  import { D as resolveSlackAccount, E as resolveDefaultSlackAccountId, F as resolveDiscordAccount, M as listDiscordAccountIds, O as resolveSlackReplyToMode, P as resolveDefaultDiscordAccountId, S as resolveTelegramAccount, T as listSlackAccountIds, _ as normalizeWhatsAppTarget, a as listDiscordDirectoryPeersFromConfig, b as listTelegramAccountIds, c as listTelegramDirectoryGroupsFromConfig, d as listWhatsAppDirectoryPeersFromConfig, f as looksLikeSlackTargetId, g as isWhatsAppGroupJid, i as listDiscordDirectoryGroupsFromConfig, l as listTelegramDirectoryPeersFromConfig, o as listSlackDirectoryGroupsFromConfig, p as normalizeSlackMessagingTarget, s as listSlackDirectoryPeersFromConfig, u as listWhatsAppDirectoryGroupsFromConfig, w as listEnabledSlackAccounts, x as resolveDefaultTelegramAccountId } from "./plugins-BbAvhC25.js";
@@ -47,12 +47,12 @@ import "./paths-A0xdf3yk.js";
47
47
  import { h as onDiagnosticEvent, m as isDiagnosticsEnabled, p as emitDiagnosticEvent } from "./diagnostic-_oc91gNi.js";
48
48
  import { n as extractOriginalFilename } from "./store-Do3t33-c.js";
49
49
  import { t as resolveWhatsAppOutboundTarget } from "./resolve-outbound-target-BkCUbYGV.js";
50
- import { r as resolveWhatsAppHeartbeatRecipients } from "./channel-web-eeGSjU9N.js";
50
+ import { r as resolveWhatsAppHeartbeatRecipients } from "./channel-web-DYJYy4et.js";
51
51
  import "./image-CS95I-I5.js";
52
52
  import "./pi-model-discovery-LbcEa65a.js";
53
53
  import "./api-key-rotation-CBsLb_4V.js";
54
54
  import "./diagnostic-session-state-Wd5tNeQG.js";
55
- import "./manager-DZ5-lr4s.js";
55
+ import "./manager-Ca0_Buoj.js";
56
56
  import "./sqlite-CmVrFEYD.js";
57
57
  import "./commands-registry-BuYpmEx-.js";
58
58
  import "./send-BfqyNBU1.js";
@@ -3970,7 +3970,7 @@ var MemoryIndexManager = class MemoryIndexManager extends MemoryManagerEmbedding
3970
3970
  * to bypass the min-interval guard (CLI use).
3971
3971
  */
3972
3972
  async runL3CycleIfDue(params) {
3973
- const [{ runL3Cycle, runL3CycleIfDue }, { createSynthesizer }] = await Promise.all([import("./consolidate-CafShdsH.js"), import("./synthesis-DVsG2Tbp.js")]);
3973
+ const [{ runL3Cycle, runL3CycleIfDue }, { createSynthesizer }] = await Promise.all([import("./consolidate-CafShdsH.js"), import("./synthesis-D9SmRgqU.js")]);
3974
3974
  const synthesize = createSynthesizer({
3975
3975
  cfg: this.cfg,
3976
3976
  agentId: this.agentId,
@@ -53,7 +53,7 @@ import { S as minimaxUnderstandImage, _ as stripThinkingTagsFromText, a as decod
53
53
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-LbcEa65a.js";
54
54
  import { c as normalizeExtraMemoryPaths, m as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-Qi-tyvHh.js";
55
55
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-Wd5tNeQG.js";
56
- import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-DZ5-lr4s.js";
56
+ import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-Ca0_Buoj.js";
57
57
  import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-BuYpmEx-.js";
58
58
  import { c as signalRpcRequest, l as streamSignalEvents, n as sendReadReceiptSignal, o as resolveSignalRpcContext, r as sendTypingSignal, s as signalCheck, t as sendMessageSignal } from "./send-BfqyNBU1.js";
59
59
  import { t as makeProxyFetch } from "./proxy-D27OUbrW.js";
@@ -11638,7 +11638,7 @@ async function getMemorySearchManager(params) {
11638
11638
  const wrapper = new FallbackMemoryManager({
11639
11639
  primary,
11640
11640
  fallbackFactory: async () => {
11641
- const { MemoryIndexManager } = await import("./manager-DZ5-lr4s.js").then((n) => n.n);
11641
+ const { MemoryIndexManager } = await import("./manager-Ca0_Buoj.js").then((n) => n.n);
11642
11642
  return await MemoryIndexManager.get(params);
11643
11643
  }
11644
11644
  }, () => QMD_MANAGER_CACHE.delete(cacheKey));
@@ -11651,7 +11651,7 @@ async function getMemorySearchManager(params) {
11651
11651
  }
11652
11652
  }
11653
11653
  try {
11654
- const { MemoryIndexManager } = await import("./manager-DZ5-lr4s.js").then((n) => n.n);
11654
+ const { MemoryIndexManager } = await import("./manager-Ca0_Buoj.js").then((n) => n.n);
11655
11655
  return { manager: await MemoryIndexManager.get(params) };
11656
11656
  } catch (err) {
11657
11657
  return {
@@ -25880,6 +25880,7 @@ function sanitizeForPromptLiteral(value) {
25880
25880
  //#region src/agents/system-prompt.ts
25881
25881
  function buildSkillsSection(params) {
25882
25882
  if (params.isMinimal) return [];
25883
+ if (params.dropCatalog) return [];
25883
25884
  const trimmed = params.skillsPrompt?.trim();
25884
25885
  if (!trimmed) return [];
25885
25886
  return [
@@ -25984,7 +25985,7 @@ function buildVoiceSection(params) {
25984
25985
  ];
25985
25986
  }
25986
25987
  function buildVerifyYourWorkSection(params) {
25987
- if (params.isMinimal) return [];
25988
+ if (params.isMinimal || params.compactMode) return [];
25988
25989
  const exec = params.execToolName;
25989
25990
  const read = params.readToolName;
25990
25991
  return [
@@ -26173,6 +26174,7 @@ function buildAgentSystemPrompt(params) {
26173
26174
  const promptMode = params.promptMode ?? "full";
26174
26175
  const isMinimal = promptMode === "minimal" || promptMode === "none";
26175
26176
  const isCoding = promptMode === "coding";
26177
+ const compactMode = params.compactMode === true;
26176
26178
  const sandboxContainerWorkspace = params.sandboxInfo?.containerWorkspaceDir?.trim();
26177
26179
  const sanitizedWorkspaceDir = sanitizeForPromptLiteral(params.workspaceDir);
26178
26180
  const sanitizedSandboxContainerWorkspace = sandboxContainerWorkspace ? sanitizeForPromptLiteral(sandboxContainerWorkspace) : "";
@@ -26188,7 +26190,8 @@ function buildAgentSystemPrompt(params) {
26188
26190
  const skillsSection = buildSkillsSection({
26189
26191
  skillsPrompt,
26190
26192
  isMinimal,
26191
- readToolName
26193
+ readToolName,
26194
+ dropCatalog: compactMode && (params.skillsDiscoveryMode === "jit" || params.skillsDiscoveryMode === "hybrid")
26192
26195
  });
26193
26196
  const memorySection = buildMemorySection({
26194
26197
  isMinimal,
@@ -26231,39 +26234,43 @@ function buildAgentSystemPrompt(params) {
26231
26234
  "If a task is more complex or takes longer, spawn a sub-agent. Completion is push-based: it will auto-announce when done.",
26232
26235
  "Do not poll `subagents list` / `sessions_list` in a loop; only check status on-demand (for intervention, debugging, or when explicitly asked).",
26233
26236
  "",
26234
- "## Tool Call Style",
26235
- "Default: do not narrate routine, low-risk tool calls (just call the tool).",
26236
- "Narrate only when it helps: multi-step work, complex/challenging problems, sensitive actions (e.g., deletions), or when the user explicitly asks.",
26237
- "Keep narration brief and value-dense; avoid repeating obvious steps.",
26238
- "Use plain human language for narration unless in a technical context.",
26239
- "",
26240
- "## Edit Tool Best Practices",
26241
- "When using the edit tool, the oldText must match the file EXACTLY (whitespace, indentation, and all).",
26242
- "To avoid match failures:",
26243
- "- Use the SHORTEST unique snippet that identifies the edit location (1-3 lines). Do NOT paste large blocks.",
26244
- "- ALWAYS read the file first, then copy the exact text from the read output for oldText.",
26245
- "- 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.",
26246
- "- Prefer lines with distinctive content (function names, unique strings) over generic code (braces, blank lines).",
26247
- "",
26237
+ ...compactMode ? [] : [
26238
+ "## Tool Call Style",
26239
+ "Default: do not narrate routine, low-risk tool calls (just call the tool).",
26240
+ "Narrate only when it helps: multi-step work, complex/challenging problems, sensitive actions (e.g., deletions), or when the user explicitly asks.",
26241
+ "Keep narration brief and value-dense; avoid repeating obvious steps.",
26242
+ "Use plain human language for narration unless in a technical context.",
26243
+ "",
26244
+ "## Edit Tool Best Practices",
26245
+ "When using the edit tool, the oldText must match the file EXACTLY (whitespace, indentation, and all).",
26246
+ "To avoid match failures:",
26247
+ "- Use the SHORTEST unique snippet that identifies the edit location (1-3 lines). Do NOT paste large blocks.",
26248
+ "- ALWAYS read the file first, then copy the exact text from the read output for oldText.",
26249
+ "- 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.",
26250
+ "- Prefer lines with distinctive content (function names, unique strings) over generic code (braces, blank lines).",
26251
+ ""
26252
+ ],
26248
26253
  ...safetySection,
26249
- "## Symi CLI Quick Reference",
26250
- "Symi is controlled via subcommands. Do not invent commands.",
26251
- "To manage the Gateway daemon service (start/stop/restart):",
26252
- "- symi gateway status",
26253
- "- symi gateway start",
26254
- "- symi gateway stop",
26255
- "- symi gateway restart",
26256
- "If unsure, ask the user to run `symi help` (or `symi gateway --help`) and paste the output.",
26257
- "",
26254
+ ...compactMode ? ["For Symi CLI commands, ask the user to run `symi help` and paste the output.", ""] : [
26255
+ "## Symi CLI Quick Reference",
26256
+ "Symi is controlled via subcommands. Do not invent commands.",
26257
+ "To manage the Gateway daemon service (start/stop/restart):",
26258
+ "- symi gateway status",
26259
+ "- symi gateway start",
26260
+ "- symi gateway stop",
26261
+ "- symi gateway restart",
26262
+ "If unsure, ask the user to run `symi help` (or `symi gateway --help`) and paste the output.",
26263
+ ""
26264
+ ],
26258
26265
  ...skillsSection,
26259
26266
  ...memorySection,
26260
- hasGateway && !isMinimal && !isCoding ? "## Symi Self-Update" : "",
26261
- hasGateway && !isMinimal && !isCoding ? [
26267
+ hasGateway && !isMinimal && !isCoding && !compactMode ? "## Symi Self-Update" : "",
26268
+ hasGateway && !isMinimal && !isCoding && !compactMode ? [
26262
26269
  "Get Updates (self-update) is ONLY allowed when the user explicitly asks for it.",
26263
26270
  "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.",
26264
26271
  "Actions: config.get, config.schema, config.apply (validate + write full config, then restart), update.run (update deps or git, then restart).",
26265
26272
  "After restart, Symi pings the last active session automatically."
26266
- ].join("\n") : "",
26273
+ ].join("\n") : hasGateway && !isMinimal && !isCoding && compactMode ? "Gateway destructive actions (config.apply, config.patch, update.run) require explicit user authorization via userRequestAcknowledgment — never invoke speculatively." : "",
26267
26274
  hasGateway && !isMinimal && !isCoding ? "" : "",
26268
26275
  "",
26269
26276
  params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? "## Model Aliases" : "",
@@ -26280,7 +26287,8 @@ function buildAgentSystemPrompt(params) {
26280
26287
  ...buildVerifyYourWorkSection({
26281
26288
  isMinimal,
26282
26289
  execToolName,
26283
- readToolName
26290
+ readToolName,
26291
+ compactMode
26284
26292
  }),
26285
26293
  params.sandboxInfo?.enabled ? "## Sandbox" : "",
26286
26294
  params.sandboxInfo?.enabled ? [
@@ -26326,23 +26334,26 @@ function buildAgentSystemPrompt(params) {
26326
26334
  }
26327
26335
  if (params.reactionGuidance) {
26328
26336
  const { level, channel } = params.reactionGuidance;
26329
- const guidanceText = level === "minimal" ? [
26330
- `Reactions are enabled for ${channel} in MINIMAL mode.`,
26331
- "React ONLY when truly relevant:",
26332
- "- Acknowledge important user requests or confirmations",
26333
- "- Express genuine sentiment (humor, appreciation) sparingly",
26334
- "- Avoid reacting to routine messages or your own replies",
26335
- "Guideline: at most 1 reaction per 5-10 exchanges."
26336
- ].join("\n") : [
26337
- `Reactions are enabled for ${channel} in EXTENSIVE mode.`,
26338
- "Feel free to react liberally:",
26339
- "- Acknowledge messages with appropriate emojis",
26340
- "- Express sentiment and personality through reactions",
26341
- "- React to interesting content, humor, or notable events",
26342
- "- Use reactions to confirm understanding or agreement",
26343
- "Guideline: react whenever it feels natural."
26344
- ].join("\n");
26345
- lines.push("## Reactions", guidanceText, "");
26337
+ if (compactMode) lines.push("## Reactions", `Reactions for ${channel} are in ${level.toUpperCase()} mode — see the reactions-${level} skill (auto-loaded).`, "");
26338
+ else {
26339
+ const guidanceText = level === "minimal" ? [
26340
+ `Reactions are enabled for ${channel} in MINIMAL mode.`,
26341
+ "React ONLY when truly relevant:",
26342
+ "- Acknowledge important user requests or confirmations",
26343
+ "- Express genuine sentiment (humor, appreciation) sparingly",
26344
+ "- Avoid reacting to routine messages or your own replies",
26345
+ "Guideline: at most 1 reaction per 5-10 exchanges."
26346
+ ].join("\n") : [
26347
+ `Reactions are enabled for ${channel} in EXTENSIVE mode.`,
26348
+ "Feel free to react liberally:",
26349
+ "- Acknowledge messages with appropriate emojis",
26350
+ "- Express sentiment and personality through reactions",
26351
+ "- React to interesting content, humor, or notable events",
26352
+ "- Use reactions to confirm understanding or agreement",
26353
+ "Guideline: react whenever it feels natural."
26354
+ ].join("\n");
26355
+ lines.push("## Reactions", guidanceText, "");
26356
+ }
26346
26357
  }
26347
26358
  if (reasoningHint) lines.push("## Reasoning Format", reasoningHint, "");
26348
26359
  const validContextFiles = (params.contextFiles ?? []).filter((file) => typeof file.path === "string" && file.path.trim().length > 0);
@@ -34597,7 +34608,9 @@ function buildEmbeddedSystemPrompt(params) {
34597
34608
  userTime: params.userTime,
34598
34609
  userTimeFormat: params.userTimeFormat,
34599
34610
  contextFiles: params.contextFiles,
34600
- memoryCitationsMode: params.memoryCitationsMode
34611
+ memoryCitationsMode: params.memoryCitationsMode,
34612
+ compactMode: params.compactMode,
34613
+ skillsDiscoveryMode: params.skillsDiscoveryMode
34601
34614
  });
34602
34615
  const promptMode = params.promptMode ?? "full";
34603
34616
  const isMinimal = promptMode === "minimal" || promptMode === "none";
@@ -35403,7 +35416,8 @@ async function runEmbeddedAttempt(params) {
35403
35416
  autoLoadInlineSkills: params.config?.skills?.autoLoadInline,
35404
35417
  skillsDiscoveryMode: params.config?.skills?.discoveryMode,
35405
35418
  skillsAnchorList: params.config?.skills?.anchorList,
35406
- currentUserMessage: params.prompt
35419
+ currentUserMessage: params.prompt,
35420
+ compactMode: params.config?.prompt?.compactMode
35407
35421
  });
35408
35422
  const systemPromptReport = buildSystemPromptReport({
35409
35423
  source: "run",
@@ -37283,7 +37297,7 @@ async function runAgentTurn(params) {
37283
37297
  function createDefaultDeps() {
37284
37298
  return {
37285
37299
  sendMessageWhatsApp: async (...args) => {
37286
- const { sendMessageWhatsApp } = await import("./web-7u3fdT2S.js");
37300
+ const { sendMessageWhatsApp } = await import("./web-qvuO3y6z.js");
37287
37301
  return await sendMessageWhatsApp(...args);
37288
37302
  },
37289
37303
  sendMessageTelegram: async (...args) => {
@@ -54721,7 +54735,7 @@ function loadWebLoginQr() {
54721
54735
  return webLoginQrPromise;
54722
54736
  }
54723
54737
  function loadWebChannel() {
54724
- webChannelPromise ??= import("./web-7u3fdT2S.js");
54738
+ webChannelPromise ??= import("./web-qvuO3y6z.js");
54725
54739
  return webChannelPromise;
54726
54740
  }
54727
54741
  function loadWhatsAppActions() {
@@ -58998,6 +59012,41 @@ async function executeNodeHostCommand(params) {
58998
59012
 
58999
59013
  //#endregion
59000
59014
  //#region src/agents/bash-tools.exec.ts
59015
+ let cachedSymiNodeModules;
59016
+ /**
59017
+ * Returns the absolute path to Symi's bundled `node_modules` directory, so
59018
+ * gateway-host node scripts can `require()` packages that ship with Symi
59019
+ * (docx / exceljs / pptxgenjs / pdfkit for the document-generation skill,
59020
+ * plus any future bundled npm dep). Cached for the process lifetime.
59021
+ *
59022
+ * Returns null when Symi's package root can't be resolved (development
59023
+ * setups outside a package, broken installs).
59024
+ */
59025
+ function resolveSymiNodeModulesPath() {
59026
+ if (cachedSymiNodeModules !== void 0) return cachedSymiNodeModules;
59027
+ const root = resolveSymiPackageRootSync({});
59028
+ cachedSymiNodeModules = root ? path.join(root, "node_modules") : null;
59029
+ return cachedSymiNodeModules;
59030
+ }
59031
+ /**
59032
+ * Append Symi's bundled node_modules path to NODE_PATH so gateway-host
59033
+ * scripts (run via the `exec` tool with `host: "gateway"`) can resolve
59034
+ * Symi-bundled npm packages from any cwd. Existing NODE_PATH (user
59035
+ * override or test fixture) is preserved by appending, not replacing.
59036
+ */
59037
+ function applySymiNodePath(env) {
59038
+ const symiModules = resolveSymiNodeModulesPath();
59039
+ if (!symiModules) return;
59040
+ const existing = env.NODE_PATH?.trim();
59041
+ if (!existing) {
59042
+ env.NODE_PATH = symiModules;
59043
+ return;
59044
+ }
59045
+ const sep = path.delimiter;
59046
+ const segments = existing.split(sep).filter(Boolean);
59047
+ if (!segments.includes(symiModules)) segments.push(symiModules);
59048
+ env.NODE_PATH = segments.join(sep);
59049
+ }
59001
59050
  function extractScriptTargetFromCommand(command) {
59002
59051
  const raw = command.trim();
59003
59052
  if (!raw) return null;
@@ -59147,6 +59196,7 @@ function createExecTool(defaults) {
59147
59196
  env: process.env,
59148
59197
  timeoutMs: resolveShellEnvFallbackTimeoutMs(process.env)
59149
59198
  }));
59199
+ if (!sandbox && host === "gateway") applySymiNodePath(env);
59150
59200
  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.");
59151
59201
  else applyPathPrepend(env, defaultPathPrepend);
59152
59202
  if (host === "node") return executeNodeHostCommand({
@@ -71596,7 +71646,8 @@ async function compactEmbeddedPiSessionDirect(params) {
71596
71646
  autoLoadInlineSkills: params.config?.skills?.autoLoadInline,
71597
71647
  skillsDiscoveryMode: params.config?.skills?.discoveryMode,
71598
71648
  skillsAnchorList: params.config?.skills?.anchorList,
71599
- currentUserMessage: void 0
71649
+ currentUserMessage: void 0,
71650
+ compactMode: params.config?.prompt?.compactMode
71600
71651
  }));
71601
71652
  const sessionLock = await acquireSessionWriteLock({
71602
71653
  sessionFile: params.sessionFile,
@@ -1,5 +1,5 @@
1
1
  import "./accounts-D9zGZU5t.js";
2
- import { u as runAgentTurn } from "./reply-BRGoceel.js";
2
+ import { u as runAgentTurn } from "./reply-Bfy77FPA.js";
3
3
  import "./paths-DR2yt_mP.js";
4
4
  import "./github-copilot-token-D9X2phUj.js";
5
5
  import "./plugins-BbAvhC25.js";
@@ -49,7 +49,7 @@ import "./image-CS95I-I5.js";
49
49
  import "./pi-model-discovery-LbcEa65a.js";
50
50
  import "./api-key-rotation-CBsLb_4V.js";
51
51
  import "./diagnostic-session-state-Wd5tNeQG.js";
52
- import "./manager-DZ5-lr4s.js";
52
+ import "./manager-Ca0_Buoj.js";
53
53
  import "./sqlite-CmVrFEYD.js";
54
54
  import "./commands-registry-BuYpmEx-.js";
55
55
  import "./send-BfqyNBU1.js";
@@ -1,5 +1,5 @@
1
1
  import { a as WA_WEB_AUTH_DIR, g as webAuthExists, s as logWebSelfId, u as pickWebChannel } from "./accounts-D9zGZU5t.js";
2
- import "./reply-BRGoceel.js";
2
+ import "./reply-Bfy77FPA.js";
3
3
  import "./paths-DR2yt_mP.js";
4
4
  import "./github-copilot-token-D9X2phUj.js";
5
5
  import "./plugins-BbAvhC25.js";
@@ -45,12 +45,12 @@ import "./pi-embedded-helpers-6EL59cK1.js";
45
45
  import "./paths-A0xdf3yk.js";
46
46
  import "./diagnostic-_oc91gNi.js";
47
47
  import "./store-Do3t33-c.js";
48
- import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-eeGSjU9N.js";
48
+ import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-DYJYy4et.js";
49
49
  import "./image-CS95I-I5.js";
50
50
  import "./pi-model-discovery-LbcEa65a.js";
51
51
  import "./api-key-rotation-CBsLb_4V.js";
52
52
  import "./diagnostic-session-state-Wd5tNeQG.js";
53
- import "./manager-DZ5-lr4s.js";
53
+ import "./manager-Ca0_Buoj.js";
54
54
  import "./sqlite-CmVrFEYD.js";
55
55
  import "./commands-registry-BuYpmEx-.js";
56
56
  import "./send-BfqyNBU1.js";
@@ -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";
@@ -103,7 +103,7 @@ import "./npm-registry-spec-PuS2I1Em.js";
103
103
  import "./skill-scanner-BV3QHmsf.js";
104
104
  import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-B4sNNRaW.js";
105
105
  import { t as renderTable } from "./table-Bka4fasy.js";
106
- import { t as buildPluginStatusReport } from "./status-DEQAH4oA.js";
106
+ import { t as buildPluginStatusReport } from "./status-Cet2zu6k.js";
107
107
  import { n as updateNpmInstalledPlugins } from "./update-DticqU4-.js";
108
108
  import os from "node:os";
109
109
  import path from "node:path";
@@ -1,7 +1,7 @@
1
1
  import { g as resolveStateDir } from "./paths-Cqn-zk3M.js";
2
2
  import { B as theme, S as shortenHomePath, g as resolveConfigDir, x as shortenHomeInString, 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 { f as defaultRuntime } from "./subsystem-D9vIQve0.js";
7
7
  import "./exec-CWkblSrI.js";
@@ -60,8 +60,8 @@ import "./diagnostic-session-state-CUslJyKP.js";
60
60
  import "./send-aXMPprv9.js";
61
61
  import "./model-ECsJuJew.js";
62
62
  import "./reply-prefix-CE2YmmsD.js";
63
- import "./memory-cli-BKNnDIdx.js";
64
- import "./manager-B_2KzUSI.js";
63
+ import "./memory-cli-xSpyRUEV.js";
64
+ import "./manager-Ca7NOWdK.js";
65
65
  import "./retry-BoS4e4X_.js";
66
66
  import "./sqlite-D55gRQbH.js";
67
67
  import "./target-errors-C9e6dMU_.js";
@@ -107,7 +107,7 @@ import "./npm-registry-spec-B98RgVZF.js";
107
107
  import "./skill-scanner-BTgjeQBf.js";
108
108
  import { i as resolvePluginInstallDir, n as installPluginFromNpmSpec, r as installPluginFromPath, t as recordPluginInstall } from "./installs-BPZKRjsO.js";
109
109
  import { t as renderTable } from "./table-BWuvjnmY.js";
110
- import { t as buildPluginStatusReport } from "./status-CvElSWg2.js";
110
+ import { t as buildPluginStatusReport } from "./status-BwKYtKTR.js";
111
111
  import { n as updateNpmInstalledPlugins } from "./update-D4uLu0dv.js";
112
112
  import fs from "node:fs";
113
113
  import os from "node:os";
@@ -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,13 +100,13 @@ import "./prompt-style-BxVdnrLq.js";
100
100
  import "./pairing-labels-BHx_CdbP.js";
101
101
  import "./pi-tools.policy-BFsWV2pS.js";
102
102
  import "./catalog-KcLvtTfa.js";
103
- import "./plugin-registry-zGF6HUkQ.js";
104
- import { n as resolveCliChannelOptions } from "./channel-options-B6qP-vR-.js";
105
- import { t as getSubCliCommandsWithSubcommands } from "./register.subclis-vTS3UwIU.js";
106
- import { a as registerProgramCommands, r as getCoreCliCommandsWithSubcommands } from "./command-registry-b62Qpsi2.js";
103
+ import "./plugin-registry-BmdLxUZd.js";
104
+ import { n as resolveCliChannelOptions } from "./channel-options-CqEImsEx.js";
105
+ import { t as getSubCliCommandsWithSubcommands } from "./register.subclis-DHLF7LUE.js";
106
+ import { a as registerProgramCommands, r as getCoreCliCommandsWithSubcommands } from "./command-registry-iESIIBvf.js";
107
107
  import { r as setProgramContext } from "./program-context-DeZ44oQ9.js";
108
108
  import { t as forceFreePort } from "./ports-DQg7kV5s.js";
109
- import { n as formatCliBannerLine, r as hasEmittedCliBanner, t as emitCliBanner } from "./banner-D4MiyUnv.js";
109
+ import { n as formatCliBannerLine, r as hasEmittedCliBanner, t as emitCliBanner } from "./banner-4mmBVDxd.js";
110
110
  import { Command } from "commander";
111
111
 
112
112
  //#region src/cli/program/context.ts
@@ -214,7 +214,7 @@ function registerPreActionHooks(program, programVersion) {
214
214
  commandPath
215
215
  });
216
216
  if (PLUGIN_REQUIRED_COMMANDS.has(commandPath[0])) {
217
- const { ensurePluginRegistryLoaded } = await import("./plugin-registry-zGF6HUkQ.js").then((n) => n.n);
217
+ const { ensurePluginRegistryLoaded } = await import("./plugin-registry-BmdLxUZd.js").then((n) => n.n);
218
218
  ensurePluginRegistryLoaded();
219
219
  }
220
220
  });