@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
@@ -1,7 +1,7 @@
1
1
  import "./paths-Cqn-zk3M.js";
2
2
  import { B as theme, P as setVerbose, k as info, z as isRich } from "./utils-B-0b9bGM.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import { S as resolveSessionModelRef, h as classifySessionKey, mr as lookupContextTokens } from "./reply-Dx9DWIO2.js";
4
+ import { S as resolveSessionModelRef, h as classifySessionKey, mr as lookupContextTokens } from "./reply-Bymjl4wV.js";
5
5
  import { S as parseAgentSessionKey } from "./session-key-DCt45XZa.js";
6
6
  import "./registry-Cja8eT7G.js";
7
7
  import { f as defaultRuntime } from "./subsystem-D9vIQve0.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";
@@ -115,8 +115,8 @@ import "./service-DzLem5vL.js";
115
115
  import "./diagnostics-1uBuB9IE.js";
116
116
  import "./table-BWuvjnmY.js";
117
117
  import "./audit-OPWWS900.js";
118
- import { t as statusCommand } from "./status-vO4-v0vI.js";
119
- import { r as healthCommand } from "./health-BQGRC0xh.js";
118
+ import { t as statusCommand } from "./status-BfNSBvnp.js";
119
+ import { r as healthCommand } from "./health-CYHbTw04.js";
120
120
  import "./update-check-Bbvpax6u.js";
121
121
  import "./dm-policy-shared-KlzpDeT_.js";
122
122
  import "./node-service-DxPZ_ZFk.js";
@@ -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";
@@ -109,8 +109,8 @@ import "./service-RxN7lQKN.js";
109
109
  import "./diagnostics-C6xPE2ln.js";
110
110
  import "./table-Bka4fasy.js";
111
111
  import "./audit-DGwhL71Q.js";
112
- import { n as statusCommand } from "./status-CwZgLSfx.js";
113
- import { r as healthCommand } from "./health-CV741PBg.js";
112
+ import { n as statusCommand } from "./status-CGabcN-L.js";
113
+ import { r as healthCommand } from "./health-Bvo3NXZK.js";
114
114
  import "./update-check-BNjupSIM.js";
115
115
  import "./dm-policy-shared-JiSNSaKz.js";
116
116
  import "./node-service-B-qdOCNb.js";
@@ -49,7 +49,7 @@ const entries = [
49
49
  description: "Run, inspect, and query the WebSocket Gateway",
50
50
  hasSubcommands: true,
51
51
  register: async (program) => {
52
- (await import("./gateway-cli-moPf-zP5.js")).registerGatewayCli(program);
52
+ (await import("./gateway-cli-cZpbavO4.js")).registerGatewayCli(program);
53
53
  }
54
54
  },
55
55
  {
@@ -81,7 +81,7 @@ const entries = [
81
81
  description: "Discover, scan, and configure models",
82
82
  hasSubcommands: true,
83
83
  register: async (program) => {
84
- (await import("./models-cli-DQE60EtL.js")).registerModelsCli(program);
84
+ (await import("./models-cli-CZcMWBL0.js")).registerModelsCli(program);
85
85
  }
86
86
  },
87
87
  {
@@ -161,7 +161,7 @@ const entries = [
161
161
  description: "Manage internal agent hooks",
162
162
  hasSubcommands: true,
163
163
  register: async (program) => {
164
- (await import("./hooks-cli-CG-PDY2U.js")).registerHooksCli(program);
164
+ (await import("./hooks-cli-CiFs-0g0.js")).registerHooksCli(program);
165
165
  }
166
166
  },
167
167
  {
@@ -185,7 +185,7 @@ const entries = [
185
185
  description: "Secure DM pairing (approve inbound requests)",
186
186
  hasSubcommands: true,
187
187
  register: async (program) => {
188
- const { registerPluginCliCommands } = await import("./cli-D4j_JTug.js");
188
+ const { registerPluginCliCommands } = await import("./cli-B1gtEojq.js");
189
189
  registerPluginCliCommands(program, await loadConfig());
190
190
  (await import("./pairing-cli-K09J3MIl.js")).registerPairingCli(program);
191
191
  }
@@ -195,8 +195,8 @@ const entries = [
195
195
  description: "Manage Symi plugins and extensions",
196
196
  hasSubcommands: true,
197
197
  register: async (program) => {
198
- (await import("./plugins-cli-ndIGvW38.js")).registerPluginsCli(program);
199
- const { registerPluginCliCommands } = await import("./cli-D4j_JTug.js");
198
+ (await import("./plugins-cli-CMz1ww6G.js")).registerPluginsCli(program);
199
+ const { registerPluginCliCommands } = await import("./cli-B1gtEojq.js");
200
200
  registerPluginCliCommands(program, await loadConfig());
201
201
  }
202
202
  },
@@ -205,7 +205,7 @@ const entries = [
205
205
  description: "Manage connected chat channels (Telegram, Discord, etc.)",
206
206
  hasSubcommands: true,
207
207
  register: async (program) => {
208
- (await import("./channels-cli-CE_A3Hai.js")).registerChannelsCli(program);
208
+ (await import("./channels-cli-By4y_t51.js")).registerChannelsCli(program);
209
209
  }
210
210
  },
211
211
  {
@@ -237,7 +237,7 @@ const entries = [
237
237
  description: "Update Symi and inspect update channel status",
238
238
  hasSubcommands: true,
239
239
  register: async (program) => {
240
- (await import("./update-cli-DPf2vrJK.js")).registerUpdateCli(program);
240
+ (await import("./update-cli-CWMGbbPM.js")).registerUpdateCli(program);
241
241
  }
242
242
  },
243
243
  {
@@ -245,7 +245,7 @@ const entries = [
245
245
  description: "Generate shell completion script",
246
246
  hasSubcommands: false,
247
247
  register: async (program) => {
248
- (await import("./completion-cli-DUT2XYgK.js").then((n) => n.n)).registerCompletionCli(program);
248
+ (await import("./completion-cli-DWVW4P54.js").then((n) => n.n)).registerCompletionCli(program);
249
249
  }
250
250
  }
251
251
  ];
@@ -61,8 +61,8 @@ import { r as getDiagnosticSessionState } from "./diagnostic-session-state-CUslJ
61
61
  import { A as hasBotMention, B as resolveSenderAllowMatch, C as buildTelegramGroupPeerId, D as describeReplyTarget, E as buildTypingThreadParams, F as resolveTelegramReplyId, G as toLocationContext, H as isSenderIdAllowed, I as resolveTelegramStreamMode, J as parseTelegramTarget, K as withTelegramApiErrorLogging, L as resolveTelegramThreadSpec, M as resolveTelegramForumThreadId, N as resolveTelegramGroupAllowFromContext, O as expandTextLinks, P as resolveTelegramMediaPlaceholder, R as isSenderAllowed$1, S as buildTelegramGroupFrom, T as buildTelegramThreadParams, U as mergeAllowFromSources, V as firstDefined$1, W as formatLocationText, Y as resolveTelegramTargetChatType, _ as resolveTelegramFetch, a as reactMessageTelegram, b as buildSenderLabel, c as sendStickerTelegram, d as wasSentByBot, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as normalizeForwardedContext, k as extractTelegramLocation, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as isVoiceCompatibleAudio, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildTelegramParentPeer, x as buildSenderName, y as buildGroupLabel, z as normalizeAllowFromWithStore$1 } from "./send-aXMPprv9.js";
62
62
  import { a as buildModelAliasLines, n as resolveModel } from "./model-ECsJuJew.js";
63
63
  import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-CE2YmmsD.js";
64
- import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-BKNnDIdx.js";
65
- import { a as resolveMemorySearchConfig, t as MemoryIndexManager } from "./manager-B_2KzUSI.js";
64
+ import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-CoTkaEhh.js";
65
+ import { a as resolveMemorySearchConfig, t as MemoryIndexManager } from "./manager-CB20PmUH.js";
66
66
  import { n as retryAsync } from "./retry-BoS4e4X_.js";
67
67
  import { c as imageResultFromFile, d as readNumberParam, f as readReactionParams, h as readStringParam, l as jsonResult, m as readStringOrNumberParam, n as missingTargetError, o as createActionGate, p as readStringArrayParam, r as unknownTargetError, s as imageResult, t as ambiguousTargetError, u as parseAvailableTags } from "./target-errors-C9e6dMU_.js";
68
68
  import { a as chunkText, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, o as chunkTextWithMode, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt } from "./chunk-DIi9uyC6.js";
@@ -20968,6 +20968,7 @@ function sanitizeForPromptLiteral(value) {
20968
20968
  //#region src/agents/system-prompt.ts
20969
20969
  function buildSkillsSection(params) {
20970
20970
  if (params.isMinimal) return [];
20971
+ if (params.dropCatalog) return [];
20971
20972
  const trimmed = params.skillsPrompt?.trim();
20972
20973
  if (!trimmed) return [];
20973
20974
  return [
@@ -21072,7 +21073,7 @@ function buildVoiceSection(params) {
21072
21073
  ];
21073
21074
  }
21074
21075
  function buildVerifyYourWorkSection(params) {
21075
- if (params.isMinimal) return [];
21076
+ if (params.isMinimal || params.compactMode) return [];
21076
21077
  const exec = params.execToolName;
21077
21078
  const read = params.readToolName;
21078
21079
  return [
@@ -21261,6 +21262,7 @@ function buildAgentSystemPrompt(params) {
21261
21262
  const promptMode = params.promptMode ?? "full";
21262
21263
  const isMinimal = promptMode === "minimal" || promptMode === "none";
21263
21264
  const isCoding = promptMode === "coding";
21265
+ const compactMode = params.compactMode === true;
21264
21266
  const sandboxContainerWorkspace = params.sandboxInfo?.containerWorkspaceDir?.trim();
21265
21267
  const sanitizedWorkspaceDir = sanitizeForPromptLiteral(params.workspaceDir);
21266
21268
  const sanitizedSandboxContainerWorkspace = sandboxContainerWorkspace ? sanitizeForPromptLiteral(sandboxContainerWorkspace) : "";
@@ -21276,7 +21278,8 @@ function buildAgentSystemPrompt(params) {
21276
21278
  const skillsSection = buildSkillsSection({
21277
21279
  skillsPrompt,
21278
21280
  isMinimal,
21279
- readToolName
21281
+ readToolName,
21282
+ dropCatalog: compactMode && (params.skillsDiscoveryMode === "jit" || params.skillsDiscoveryMode === "hybrid")
21280
21283
  });
21281
21284
  const memorySection = buildMemorySection({
21282
21285
  isMinimal,
@@ -21319,39 +21322,43 @@ function buildAgentSystemPrompt(params) {
21319
21322
  "If a task is more complex or takes longer, spawn a sub-agent. Completion is push-based: it will auto-announce when done.",
21320
21323
  "Do not poll `subagents list` / `sessions_list` in a loop; only check status on-demand (for intervention, debugging, or when explicitly asked).",
21321
21324
  "",
21322
- "## Tool Call Style",
21323
- "Default: do not narrate routine, low-risk tool calls (just call the tool).",
21324
- "Narrate only when it helps: multi-step work, complex/challenging problems, sensitive actions (e.g., deletions), or when the user explicitly asks.",
21325
- "Keep narration brief and value-dense; avoid repeating obvious steps.",
21326
- "Use plain human language for narration unless in a technical context.",
21327
- "",
21328
- "## Edit Tool Best Practices",
21329
- "When using the edit tool, the oldText must match the file EXACTLY (whitespace, indentation, and all).",
21330
- "To avoid match failures:",
21331
- "- Use the SHORTEST unique snippet that identifies the edit location (1-3 lines). Do NOT paste large blocks.",
21332
- "- ALWAYS read the file first, then copy the exact text from the read output for oldText.",
21333
- "- 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.",
21334
- "- Prefer lines with distinctive content (function names, unique strings) over generic code (braces, blank lines).",
21335
- "",
21325
+ ...compactMode ? [] : [
21326
+ "## Tool Call Style",
21327
+ "Default: do not narrate routine, low-risk tool calls (just call the tool).",
21328
+ "Narrate only when it helps: multi-step work, complex/challenging problems, sensitive actions (e.g., deletions), or when the user explicitly asks.",
21329
+ "Keep narration brief and value-dense; avoid repeating obvious steps.",
21330
+ "Use plain human language for narration unless in a technical context.",
21331
+ "",
21332
+ "## Edit Tool Best Practices",
21333
+ "When using the edit tool, the oldText must match the file EXACTLY (whitespace, indentation, and all).",
21334
+ "To avoid match failures:",
21335
+ "- Use the SHORTEST unique snippet that identifies the edit location (1-3 lines). Do NOT paste large blocks.",
21336
+ "- ALWAYS read the file first, then copy the exact text from the read output for oldText.",
21337
+ "- 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.",
21338
+ "- Prefer lines with distinctive content (function names, unique strings) over generic code (braces, blank lines).",
21339
+ ""
21340
+ ],
21336
21341
  ...safetySection,
21337
- "## Symi CLI Quick Reference",
21338
- "Symi is controlled via subcommands. Do not invent commands.",
21339
- "To manage the Gateway daemon service (start/stop/restart):",
21340
- "- symi gateway status",
21341
- "- symi gateway start",
21342
- "- symi gateway stop",
21343
- "- symi gateway restart",
21344
- "If unsure, ask the user to run `symi help` (or `symi gateway --help`) and paste the output.",
21345
- "",
21342
+ ...compactMode ? ["For Symi CLI commands, ask the user to run `symi help` and paste the output.", ""] : [
21343
+ "## Symi CLI Quick Reference",
21344
+ "Symi is controlled via subcommands. Do not invent commands.",
21345
+ "To manage the Gateway daemon service (start/stop/restart):",
21346
+ "- symi gateway status",
21347
+ "- symi gateway start",
21348
+ "- symi gateway stop",
21349
+ "- symi gateway restart",
21350
+ "If unsure, ask the user to run `symi help` (or `symi gateway --help`) and paste the output.",
21351
+ ""
21352
+ ],
21346
21353
  ...skillsSection,
21347
21354
  ...memorySection,
21348
- hasGateway && !isMinimal && !isCoding ? "## Symi Self-Update" : "",
21349
- hasGateway && !isMinimal && !isCoding ? [
21355
+ hasGateway && !isMinimal && !isCoding && !compactMode ? "## Symi Self-Update" : "",
21356
+ hasGateway && !isMinimal && !isCoding && !compactMode ? [
21350
21357
  "Get Updates (self-update) is ONLY allowed when the user explicitly asks for it.",
21351
21358
  "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.",
21352
21359
  "Actions: config.get, config.schema, config.apply (validate + write full config, then restart), update.run (update deps or git, then restart).",
21353
21360
  "After restart, Symi pings the last active session automatically."
21354
- ].join("\n") : "",
21361
+ ].join("\n") : hasGateway && !isMinimal && !isCoding && compactMode ? "Gateway destructive actions (config.apply, config.patch, update.run) require explicit user authorization via userRequestAcknowledgment — never invoke speculatively." : "",
21355
21362
  hasGateway && !isMinimal && !isCoding ? "" : "",
21356
21363
  "",
21357
21364
  params.modelAliasLines && params.modelAliasLines.length > 0 && !isMinimal && !isCoding ? "## Model Aliases" : "",
@@ -21368,7 +21375,8 @@ function buildAgentSystemPrompt(params) {
21368
21375
  ...buildVerifyYourWorkSection({
21369
21376
  isMinimal,
21370
21377
  execToolName,
21371
- readToolName
21378
+ readToolName,
21379
+ compactMode
21372
21380
  }),
21373
21381
  params.sandboxInfo?.enabled ? "## Sandbox" : "",
21374
21382
  params.sandboxInfo?.enabled ? [
@@ -21414,23 +21422,26 @@ function buildAgentSystemPrompt(params) {
21414
21422
  }
21415
21423
  if (params.reactionGuidance) {
21416
21424
  const { level, channel } = params.reactionGuidance;
21417
- const guidanceText = level === "minimal" ? [
21418
- `Reactions are enabled for ${channel} in MINIMAL mode.`,
21419
- "React ONLY when truly relevant:",
21420
- "- Acknowledge important user requests or confirmations",
21421
- "- Express genuine sentiment (humor, appreciation) sparingly",
21422
- "- Avoid reacting to routine messages or your own replies",
21423
- "Guideline: at most 1 reaction per 5-10 exchanges."
21424
- ].join("\n") : [
21425
- `Reactions are enabled for ${channel} in EXTENSIVE mode.`,
21426
- "Feel free to react liberally:",
21427
- "- Acknowledge messages with appropriate emojis",
21428
- "- Express sentiment and personality through reactions",
21429
- "- React to interesting content, humor, or notable events",
21430
- "- Use reactions to confirm understanding or agreement",
21431
- "Guideline: react whenever it feels natural."
21432
- ].join("\n");
21433
- lines.push("## Reactions", guidanceText, "");
21425
+ if (compactMode) lines.push("## Reactions", `Reactions for ${channel} are in ${level.toUpperCase()} mode — see the reactions-${level} skill (auto-loaded).`, "");
21426
+ else {
21427
+ const guidanceText = level === "minimal" ? [
21428
+ `Reactions are enabled for ${channel} in MINIMAL mode.`,
21429
+ "React ONLY when truly relevant:",
21430
+ "- Acknowledge important user requests or confirmations",
21431
+ "- Express genuine sentiment (humor, appreciation) sparingly",
21432
+ "- Avoid reacting to routine messages or your own replies",
21433
+ "Guideline: at most 1 reaction per 5-10 exchanges."
21434
+ ].join("\n") : [
21435
+ `Reactions are enabled for ${channel} in EXTENSIVE mode.`,
21436
+ "Feel free to react liberally:",
21437
+ "- Acknowledge messages with appropriate emojis",
21438
+ "- Express sentiment and personality through reactions",
21439
+ "- React to interesting content, humor, or notable events",
21440
+ "- Use reactions to confirm understanding or agreement",
21441
+ "Guideline: react whenever it feels natural."
21442
+ ].join("\n");
21443
+ lines.push("## Reactions", guidanceText, "");
21444
+ }
21434
21445
  }
21435
21446
  if (reasoningHint) lines.push("## Reasoning Format", reasoningHint, "");
21436
21447
  const validContextFiles = (params.contextFiles ?? []).filter((file) => typeof file.path === "string" && file.path.trim().length > 0);
@@ -29632,7 +29643,9 @@ function buildEmbeddedSystemPrompt(params) {
29632
29643
  userTime: params.userTime,
29633
29644
  userTimeFormat: params.userTimeFormat,
29634
29645
  contextFiles: params.contextFiles,
29635
- memoryCitationsMode: params.memoryCitationsMode
29646
+ memoryCitationsMode: params.memoryCitationsMode,
29647
+ compactMode: params.compactMode,
29648
+ skillsDiscoveryMode: params.skillsDiscoveryMode
29636
29649
  });
29637
29650
  const promptMode = params.promptMode ?? "full";
29638
29651
  const isMinimal = promptMode === "minimal" || promptMode === "none";
@@ -30438,7 +30451,8 @@ async function runEmbeddedAttempt(params) {
30438
30451
  autoLoadInlineSkills: params.config?.skills?.autoLoadInline,
30439
30452
  skillsDiscoveryMode: params.config?.skills?.discoveryMode,
30440
30453
  skillsAnchorList: params.config?.skills?.anchorList,
30441
- currentUserMessage: params.prompt
30454
+ currentUserMessage: params.prompt,
30455
+ compactMode: params.config?.prompt?.compactMode
30442
30456
  });
30443
30457
  const systemPromptReport = buildSystemPromptReport({
30444
30458
  source: "run",
@@ -32318,7 +32332,7 @@ async function runAgentTurn(params) {
32318
32332
  function createDefaultDeps() {
32319
32333
  return {
32320
32334
  sendMessageWhatsApp: async (...args) => {
32321
- const { sendMessageWhatsApp } = await import("./web-C-E-O8iP.js");
32335
+ const { sendMessageWhatsApp } = await import("./web-DIDhNbES.js");
32322
32336
  return await sendMessageWhatsApp(...args);
32323
32337
  },
32324
32338
  sendMessageTelegram: async (...args) => {
@@ -50749,7 +50763,7 @@ function loadWebLoginQr() {
50749
50763
  return webLoginQrPromise;
50750
50764
  }
50751
50765
  function loadWebChannel() {
50752
- webChannelPromise ??= import("./web-C-E-O8iP.js");
50766
+ webChannelPromise ??= import("./web-DIDhNbES.js");
50753
50767
  return webChannelPromise;
50754
50768
  }
50755
50769
  function loadWhatsAppActions() {
@@ -66253,7 +66267,8 @@ async function compactEmbeddedPiSessionDirect(params) {
66253
66267
  autoLoadInlineSkills: params.config?.skills?.autoLoadInline,
66254
66268
  skillsDiscoveryMode: params.config?.skills?.discoveryMode,
66255
66269
  skillsAnchorList: params.config?.skills?.anchorList,
66256
- currentUserMessage: void 0
66270
+ currentUserMessage: void 0,
66271
+ compactMode: params.config?.prompt?.compactMode
66257
66272
  }));
66258
66273
  const sessionLock = await acquireSessionWriteLock({
66259
66274
  sessionFile: params.sessionFile,
@@ -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";
@@ -102,9 +102,9 @@ import { t as ensureSymiCliOnPath } from "./path-env-CaiY2aOj.js";
102
102
  import "./catalog-KcLvtTfa.js";
103
103
  import "./note-DewoEWtc.js";
104
104
  import "./plugin-auto-enable-pQEg2Mly.js";
105
- import { t as ensurePluginRegistryLoaded } from "./plugin-registry-zGF6HUkQ.js";
105
+ import { t as ensurePluginRegistryLoaded } from "./plugin-registry-Di_isjUm.js";
106
106
  import { t as assertSupportedRuntime } from "./runtime-guard-BofkqBu7.js";
107
- import { t as emitCliBanner } from "./banner-D4MiyUnv.js";
107
+ import { t as emitCliBanner } from "./banner-Q3fjWWy3.js";
108
108
  import "./doctor-config-flow-l2aPNzHP.js";
109
109
  import { n as ensureConfigReady } from "./config-guard-BLcbR_sH.js";
110
110
  import process$1 from "node:process";
@@ -119,7 +119,7 @@ const routeHealth = {
119
119
  const verbose = getVerboseFlag(argv, { includeDebug: true });
120
120
  const timeoutMs = getPositiveIntFlagValue(argv, "--timeout");
121
121
  if (timeoutMs === null) return false;
122
- const { healthCommand } = await import("./health-CV741PBg.js").then((n) => n.i);
122
+ const { healthCommand } = await import("./health-Bvo3NXZK.js").then((n) => n.i);
123
123
  await healthCommand({
124
124
  json,
125
125
  timeoutMs,
@@ -139,7 +139,7 @@ const routeStatus = {
139
139
  const verbose = getVerboseFlag(argv, { includeDebug: true });
140
140
  const timeoutMs = getPositiveIntFlagValue(argv, "--timeout");
141
141
  if (timeoutMs === null) return false;
142
- const { statusCommand } = await import("./status-CwZgLSfx.js").then((n) => n.t);
142
+ const { statusCommand } = await import("./status-CGabcN-L.js").then((n) => n.t);
143
143
  await statusCommand({
144
144
  json,
145
145
  deep,
@@ -173,7 +173,7 @@ const routeAgentsList = {
173
173
  run: async (argv) => {
174
174
  const json = hasFlag(argv, "--json");
175
175
  const bindings = hasFlag(argv, "--bindings");
176
- const { agentsListCommand } = await import("./agents-DTl30WoB.js").then((n) => n.t);
176
+ const { agentsListCommand } = await import("./agents-D6V_7iZL.js").then((n) => n.t);
177
177
  await agentsListCommand({
178
178
  json,
179
179
  bindings
@@ -190,7 +190,7 @@ const routeMemoryStatus = {
190
190
  const deep = hasFlag(argv, "--deep");
191
191
  const index = hasFlag(argv, "--index");
192
192
  const verbose = hasFlag(argv, "--verbose");
193
- const { runMemoryStatus } = await import("./memory-cli-3RSIw4no.js").then((n) => n.t);
193
+ const { runMemoryStatus } = await import("./memory-cli-Cuhhh4qN.js").then((n) => n.t);
194
194
  await runMemoryStatus({
195
195
  agent,
196
196
  json,
@@ -244,7 +244,7 @@ const routes = [
244
244
  const pathArg = getCommandPositionals(argv)[2];
245
245
  if (!pathArg) return false;
246
246
  const json = hasFlag(argv, "--json");
247
- const { runConfigGet } = await import("./config-cli-H52N8rp1.js");
247
+ const { runConfigGet } = await import("./config-cli-CLXuCFJc.js");
248
248
  await runConfigGet({
249
249
  path: pathArg,
250
250
  json
@@ -257,7 +257,7 @@ const routes = [
257
257
  run: async (argv) => {
258
258
  const pathArg = getCommandPositionals(argv)[2];
259
259
  if (!pathArg) return false;
260
- const { runConfigUnset } = await import("./config-cli-H52N8rp1.js");
260
+ const { runConfigUnset } = await import("./config-cli-CLXuCFJc.js");
261
261
  await runConfigUnset({ path: pathArg });
262
262
  return true;
263
263
  }
@@ -271,7 +271,7 @@ const routes = [
271
271
  const local = hasFlag(argv, "--local");
272
272
  const json = hasFlag(argv, "--json");
273
273
  const plain = hasFlag(argv, "--plain");
274
- const { modelsListCommand } = await import("./models-D_C2JFPw.js").then((n) => n.t);
274
+ const { modelsListCommand } = await import("./models-CdIe1IJX.js").then((n) => n.t);
275
275
  await modelsListCommand({
276
276
  all,
277
277
  local,
@@ -302,7 +302,7 @@ const routes = [
302
302
  const plain = hasFlag(argv, "--plain");
303
303
  const check = hasFlag(argv, "--check");
304
304
  const probe = hasFlag(argv, "--probe");
305
- const { modelsStatusCommand } = await import("./models-D_C2JFPw.js").then((n) => n.t);
305
+ const { modelsStatusCommand } = await import("./models-CdIe1IJX.js").then((n) => n.t);
306
306
  await modelsStatusCommand({
307
307
  json,
308
308
  plain,
@@ -380,7 +380,7 @@ async function runCli(argv = process$1.argv) {
380
380
  assertSupportedRuntime();
381
381
  if (await tryRouteCli(normalizedArgv)) return;
382
382
  enableConsoleCapture();
383
- const { buildProgram } = await import("./program-BovNsUAh.js");
383
+ const { buildProgram } = await import("./program-dFZ5CYgD.js");
384
384
  const program = buildProgram();
385
385
  installUnhandledRejectionHandler();
386
386
  process$1.on("uncaughtException", (error) => {
@@ -412,10 +412,10 @@ async function runCli(argv = process$1.argv) {
412
412
  const { getProgramContext } = await import("./program-context-DeZ44oQ9.js").then((n) => n.n);
413
413
  const ctx = getProgramContext(program);
414
414
  if (ctx) {
415
- const { registerCoreCliByName } = await import("./command-registry-b62Qpsi2.js").then((n) => n.t);
415
+ const { registerCoreCliByName } = await import("./command-registry-FJWuYmEn.js").then((n) => n.t);
416
416
  await registerCoreCliByName(program, ctx, primary, parseArgv);
417
417
  }
418
- const { registerSubCliByName } = await import("./register.subclis-vTS3UwIU.js").then((n) => n.a);
418
+ const { registerSubCliByName } = await import("./register.subclis-BzbNYOC6.js").then((n) => n.a);
419
419
  await registerSubCliByName(program, primary);
420
420
  }
421
421
  const hasBuiltinPrimary = primary !== null && program.commands.some((command) => command.name() === primary);
@@ -424,7 +424,7 @@ async function runCli(argv = process$1.argv) {
424
424
  primary,
425
425
  hasBuiltinPrimary
426
426
  })) {
427
- const { registerPluginCliCommands } = await import("./cli-D4j_JTug.js");
427
+ const { registerPluginCliCommands } = await import("./cli-B1gtEojq.js");
428
428
  const { loadConfig } = await import("./config-Gfhqs66L.js").then((n) => n.t);
429
429
  registerPluginCliCommands(program, loadConfig());
430
430
  }
@@ -4,7 +4,7 @@ import { A as normalizeGoogleModelId, B as resolveApiKeyForProvider, C as normal
4
4
  import { d as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, f as isInboundPathAllowed, m as resolveIMessageAttachmentRoots, n as loadConfig, p as mergeInboundPathRoots } from "./config-Do4JxgLI.js";
5
5
  import { c as detectMime, f as isAudioFileName, m as kindFromMime, u as getFileExtension } from "./image-ops-C7CauEK8.js";
6
6
  import { t as normalizeChatType } from "./chat-type-3FRbbjbq.js";
7
- import { S as ensureSymiModelsJson, t as describeImageWithModel } from "./image-C-JvPPpM.js";
7
+ import { S as ensureSymiModelsJson, t as describeImageWithModel } from "./image-BqpivNGG.js";
8
8
  import { n as collectProviderApiKeysForExecution, r as executeWithApiKeyRotation, t as parseGeminiAuth } from "./gemini-auth-BefM10YB.js";
9
9
  import { n as fetchWithTimeout } from "./fetch-timeout-CVCBkyv1.js";
10
10
  import { i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, r as MediaFetchError } from "./local-roots-ClipCZ9s.js";
@@ -12,7 +12,7 @@ import { f as GATEWAY_CLIENT_CAPS, g as hasGatewayClientCap, i as isGatewayMessa
12
12
  import { c as writeJsonAtomic, o as createAsyncLock, s as readJsonFile } from "./pairing-token-Byh6drgn.js";
13
13
  import { s as pickPrimaryLanIPv4 } from "./net-DZ5Ayk-W.js";
14
14
  import { i as normalizeInputProvenance } from "./input-provenance-D0lNkCf6.js";
15
- import { $n as resolveTtsApiKey, B as dispatchInboundMessage, C as resolveAgentDeliveryPlan, Cn as parseVerboseOverride, D as createOutboundSendDeps, Dt as normalizeCronJobCreate, G as BARE_SESSION_RESET_PROMPT, Gn as isAbortTrigger, Gt as applyBrowserProxyPaths, Hn as formatZonedTimestamp, Kn as stopSubagentsForRequester, Kt as persistBrowserProxyFiles, Ln as resolveAgentTimeoutMs, Ot as normalizeCronJobPatch, Qn as isTtsProviderConfigured, Qt as scheduleGatewaySigusr1Restart, Sn as applyVerboseOverride, Tn as isSystemEventContextChanged, Tr as registerAgentRunContext, Tt as writeRestartSentinel, V as createReplyDispatcher, Xn as getTtsProvider, Y as abortEmbeddedPiRun, Yn as resolveUserTimezone, Z as waitForEmbeddedPiRunEnd, Zn as isTtsEnabled, a as listSubagentRunsForRequester, ar as setTtsProvider, bt as formatDoctorNonInteractiveHint, c as clearSessionQueues, cr as OPENAI_TTS_VOICES, ct as ensureOutboundSessionEntry, er as resolveTtsAutoMode, ft as resolveOutboundTarget, gn as resolveSendPolicy, hn as normalizeSendPolicy, i as listDescendantRunsForRequester, in as loadProviderUsageSummary, ir as setTtsEnabled, it as listTasksInWorkdir, lt as resolveOutboundSessionRoute, m as loadSymiPlugins, nn as normalizeGroupActivation, nr as resolveTtsPrefsPath, or as textToSpeech, rr as resolveTtsProviderOrder, sr as OPENAI_TTS_MODELS, tn as unbindThreadBindingsBySessionKey, tr as resolveTtsConfig, w as resolveAgentOutboundTarget, wn as enqueueSystemEvent, wr as onAgentEvent, x as agentCommand, xn as applyModelOverrideToSessionEntry } from "./subagent-registry-K1lQH7iR.js";
15
+ import { $n as resolveTtsApiKey, B as dispatchInboundMessage, C as resolveAgentDeliveryPlan, Cn as parseVerboseOverride, D as createOutboundSendDeps, Dt as normalizeCronJobCreate, G as BARE_SESSION_RESET_PROMPT, Gn as isAbortTrigger, Gt as applyBrowserProxyPaths, Hn as formatZonedTimestamp, Kn as stopSubagentsForRequester, Kt as persistBrowserProxyFiles, Ln as resolveAgentTimeoutMs, Ot as normalizeCronJobPatch, Qn as isTtsProviderConfigured, Qt as scheduleGatewaySigusr1Restart, Sn as applyVerboseOverride, Tn as isSystemEventContextChanged, Tr as registerAgentRunContext, Tt as writeRestartSentinel, V as createReplyDispatcher, Xn as getTtsProvider, Y as abortEmbeddedPiRun, Yn as resolveUserTimezone, Z as waitForEmbeddedPiRunEnd, Zn as isTtsEnabled, a as listSubagentRunsForRequester, ar as setTtsProvider, bt as formatDoctorNonInteractiveHint, c as clearSessionQueues, cr as OPENAI_TTS_VOICES, ct as ensureOutboundSessionEntry, er as resolveTtsAutoMode, ft as resolveOutboundTarget, gn as resolveSendPolicy, hn as normalizeSendPolicy, i as listDescendantRunsForRequester, in as loadProviderUsageSummary, ir as setTtsEnabled, it as listTasksInWorkdir, lt as resolveOutboundSessionRoute, m as loadSymiPlugins, nn as normalizeGroupActivation, nr as resolveTtsPrefsPath, or as textToSpeech, rr as resolveTtsProviderOrder, sr as OPENAI_TTS_MODELS, tn as unbindThreadBindingsBySessionKey, tr as resolveTtsConfig, w as resolveAgentOutboundTarget, wn as enqueueSystemEvent, wr as onAgentEvent, x as agentCommand, xn as applyModelOverrideToSessionEntry } from "./subagent-registry-0D_yjdW5.js";
16
16
  import { F as resolveMainSessionKey, I as resolveMainSessionKeyFromConfig, J as normalizeSessionDeliveryFields, N as resolveAgentMainSessionKey, P as resolveExplicitAgentSessionKey, R as snapshotSessionOrigin, S as stripEnvelopeFromMessages, _ as capArrayByJsonBytes, d as updateSessionStore, g as archiveSessionTranscripts, h as archiveFileOnDisk, o as loadSessionStore, t as extractDeliveryInfo, v as readSessionMessages, x as resolveSessionTranscriptCandidates, y as readSessionPreviewItemsFromTranscript } from "./sessions-CpDbQNFu.js";
17
17
  import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-CwSlLxM8.js";
18
18
  import { n as createBrowserRouteDispatcher } from "./with-timeout-BWETfI9T.js";
@@ -21,7 +21,7 @@ import { t as movePathToTrash } from "./trash-CWQQXWX3.js";
21
21
  import { c as resolveStorePath, n as resolveSessionFilePath, r as resolveSessionFilePathOptions, s as resolveSessionTranscriptsDirForAgent } from "./paths-DNdWAq7b.js";
22
22
  import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels } from "./thinking-8sKPnzpp.js";
23
23
  import { a as resolveAgentIdentity, t as createReplyPrefixOptions } from "./reply-prefix-BUN71nd5.js";
24
- import { r as getMemorySearchManager } from "./memory-cli-3RSIw4no.js";
24
+ import { r as getMemorySearchManager } from "./memory-cli-Cuhhh4qN.js";
25
25
  import { a as loadCombinedSessionStoreForGateway, c as resolveGatewaySessionStoreTarget, i as listSessionsFromStore, l as resolveSessionModelRef, o as loadSessionEntry, r as listAgentsForGateway, s as pruneLegacyStoreKeys, t as canonicalizeSpawnedByForAgent } from "./session-utils--1xVj2BC.js";
26
26
  import { _ as requestNodePairing, g as renamePairedNode, h as rejectNodePairing, m as listNodePairing, o as getRemoteSkillEligibility, p as approveNodePairing, y as verifyNodeToken } from "./skill-commands-DrX4xCNq.js";
27
27
  import { t as listAgentWorkspaceDirs } from "./workspace-dirs-DVn-uDvF.js";
@@ -38,14 +38,14 @@ import { t as WizardCancelledError } from "./prompts-DbHSz44H.js";
38
38
  import { t as resolveChannelDefaultAccountId } from "./helpers-gWnZ9zWR.js";
39
39
  import { t as buildChannelAccountSnapshot } from "./status-B8TZsG0t.js";
40
40
  import { o as isNodeCommandAllowed, s as resolveNodeCommandAllowlist } from "./audit-DGwhL71Q.js";
41
- import { r as getStatusSummary } from "./status-CwZgLSfx.js";
42
- import { c as setHeartbeatsEnabled } from "./health-CV741PBg.js";
41
+ import { r as getStatusSummary } from "./status-CGabcN-L.js";
42
+ import { c as setHeartbeatsEnabled } from "./health-Bvo3NXZK.js";
43
43
  import { m as normalizeUpdateChannel } from "./update-check-BNjupSIM.js";
44
- import { a as sendApnsAlert, c as parseMessageWithAttachments, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration } from "./push-apns-rDsc17-c.js";
45
- import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-CO8F9mkD.js";
44
+ import { a as sendApnsAlert, c as parseMessageWithAttachments, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration } from "./push-apns-CQlSAman.js";
45
+ import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-BeX0kxT3.js";
46
46
  import { t as resolveSystemRunCommand } from "./system-run-command-B_qw8CXP.js";
47
47
  import { t as installSkill } from "./skills-install-BnEN_qla.js";
48
- import { t as runGatewayUpdate } from "./update-runner-D4UIv_1p.js";
48
+ import { t as runGatewayUpdate } from "./update-runner-CfzHxbsu.js";
49
49
  import { spawnSync } from "node:child_process";
50
50
  import * as os$1 from "node:os";
51
51
  import os from "node:os";
@@ -7507,7 +7507,7 @@ const nodeHandlers = {
7507
7507
  const p = params;
7508
7508
  const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
7509
7509
  await respondUnavailableOnThrow(respond, async () => {
7510
- const { handleNodeEvent } = await import("./server-node-events-CFMtnBFU.js");
7510
+ const { handleNodeEvent } = await import("./server-node-events-tbjGwgHF.js");
7511
7511
  const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
7512
7512
  await handleNodeEvent({
7513
7513
  deps: context.deps,
@@ -1,7 +1,7 @@
1
1
  import { g as resolveStateDir, t as CONFIG_PATH } from "./paths-Cqn-zk3M.js";
2
2
  import { D as isPlainObject, U as getResolvedLoggerSettings, r as clamp, y as resolveUserPath } from "./utils-B-0b9bGM.js";
3
3
  import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels } from "./thinking-EAliFiVK.js";
4
- import { $n as textToSpeech, At as resolveAgentOutboundTarget, Bn as onAgentEvent, Cr as isSystemEventContextChanged, Dt as agentCommand, En as stopSubagentsForRequester, Fr as resolveAgentTimeoutMs, G as normalizeCronJobCreate, Gn as isTtsProviderConfigured, Hn as resolveUserTimezone, It as normalizeSendPolicy, Jn as resolveTtsConfig, K as normalizeCronJobPatch, Kn as resolveTtsApiKey, Lt as resolveSendPolicy, Mn as listDescendantRunsForRequester, Nn as listSubagentRunsForRequester, Nt as resolveOutboundTarget, P as scheduleGatewaySigusr1Restart, Qn as setTtsProvider, R as formatDoctorNonInteractiveHint, S as resolveSessionModelRef, Sn as formatZonedTimestamp, Sr as enqueueSystemEvent, T as resolveOutboundSessionRoute, Tn as isAbortTrigger, U as writeRestartSentinel, Un as getTtsProvider, Ut as waitForEmbeddedPiRunEnd, Vn as registerAgentRunContext, Vt as abortEmbeddedPiRun, Wn as isTtsEnabled, Xn as resolveTtsProviderOrder, Yn as resolveTtsPrefsPath, Zn as setTtsEnabled, _ as listSessionsFromStore, _t as loadProviderUsageSummary, an as unbindThreadBindingsBySessionKey, at as applyBrowserProxyPaths, b as pruneLegacyStoreKeys, br as applyVerboseOverride, c as clearSessionQueues, er as OPENAI_TTS_MODELS, f as listTasksInWorkdir, g as listAgentsForGateway, hn as createReplyDispatcher, ht as normalizeGroupActivation, kt as resolveAgentDeliveryPlan, m as canonicalizeSpawnedByForAgent, mn as dispatchInboundMessage, n as BARE_SESSION_RESET_PROMPT, ot as persistBrowserProxyFiles, pt as loadSymiPlugins, qn as resolveTtsAutoMode, tr as OPENAI_TTS_VOICES, v as loadCombinedSessionStoreForGateway, w as ensureOutboundSessionEntry, x as resolveGatewaySessionStoreTarget, xr as parseVerboseOverride, y as loadSessionEntry, yr as applyModelOverrideToSessionEntry, zt as createOutboundSendDeps } from "./reply-Dx9DWIO2.js";
4
+ import { $n as textToSpeech, At as resolveAgentOutboundTarget, Bn as onAgentEvent, Cr as isSystemEventContextChanged, Dt as agentCommand, En as stopSubagentsForRequester, Fr as resolveAgentTimeoutMs, G as normalizeCronJobCreate, Gn as isTtsProviderConfigured, Hn as resolveUserTimezone, It as normalizeSendPolicy, Jn as resolveTtsConfig, K as normalizeCronJobPatch, Kn as resolveTtsApiKey, Lt as resolveSendPolicy, Mn as listDescendantRunsForRequester, Nn as listSubagentRunsForRequester, Nt as resolveOutboundTarget, P as scheduleGatewaySigusr1Restart, Qn as setTtsProvider, R as formatDoctorNonInteractiveHint, S as resolveSessionModelRef, Sn as formatZonedTimestamp, Sr as enqueueSystemEvent, T as resolveOutboundSessionRoute, Tn as isAbortTrigger, U as writeRestartSentinel, Un as getTtsProvider, Ut as waitForEmbeddedPiRunEnd, Vn as registerAgentRunContext, Vt as abortEmbeddedPiRun, Wn as isTtsEnabled, Xn as resolveTtsProviderOrder, Yn as resolveTtsPrefsPath, Zn as setTtsEnabled, _ as listSessionsFromStore, _t as loadProviderUsageSummary, an as unbindThreadBindingsBySessionKey, at as applyBrowserProxyPaths, b as pruneLegacyStoreKeys, br as applyVerboseOverride, c as clearSessionQueues, er as OPENAI_TTS_MODELS, f as listTasksInWorkdir, g as listAgentsForGateway, hn as createReplyDispatcher, ht as normalizeGroupActivation, kt as resolveAgentDeliveryPlan, m as canonicalizeSpawnedByForAgent, mn as dispatchInboundMessage, n as BARE_SESSION_RESET_PROMPT, ot as persistBrowserProxyFiles, pt as loadSymiPlugins, qn as resolveTtsAutoMode, tr as OPENAI_TTS_VOICES, v as loadCombinedSessionStoreForGateway, w as ensureOutboundSessionEntry, x as resolveGatewaySessionStoreTarget, xr as parseVerboseOverride, y as loadSessionEntry, yr as applyModelOverrideToSessionEntry, zt as createOutboundSendDeps } from "./reply-Bymjl4wV.js";
5
5
  import { S as parseAgentSessionKey, l as resolveAgentIdFromSessionKey, m as DEFAULT_ACCOUNT_ID, o as classifySessionKeyShape, s as normalizeAgentId, t as DEFAULT_AGENT_ID, x as isSubagentSessionKey } from "./session-key-DCt45XZa.js";
6
6
  import { t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
7
7
  import { C as createInternalHookEvent, T as triggerInternalHook, d as getActivePluginRegistry, r as DEFAULT_CHAT_CHANNEL, t as CHANNEL_IDS } from "./registry-Cja8eT7G.js";
@@ -20,7 +20,7 @@ import { i as normalizeInputProvenance } from "./input-provenance-BzbXHcaD.js";
20
20
  import { n as createBrowserRouteDispatcher } from "./with-timeout-7M4c248g.js";
21
21
  import { C as getGlobalHookRunner, o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads } from "./deliver-DrgHcdVo.js";
22
22
  import { a as resolveAgentIdentity, t as createReplyPrefixOptions } from "./reply-prefix-CE2YmmsD.js";
23
- import { r as getMemorySearchManager } from "./memory-cli-BKNnDIdx.js";
23
+ import { r as getMemorySearchManager } from "./memory-cli-CoTkaEhh.js";
24
24
  import { $ as validateNodePairRejectParams, A as validateCronStatusParams, At as validateWebLoginWaitParams, B as validateExecApprovalsGetParams, C as validateConfigSetParams, Ct as validateSkillsUpdateParams, D as validateCronRemoveParams, Dt as validateUpdateRunParams, E as validateCronListParams, Et as validateTasksListParams, F as validateDevicePairRemoveParams, G as validateModelsListParams, Gt as rejectDevicePairing, H as validateExecApprovalsNodeSetParams, I as validateDeviceTokenRevokeParams, It as ErrorCodes, J as validateNodeInvokeParams, Jt as revokeDeviceToken, K as validateNodeDescribeParams, Kt as removePairedDevice, L as validateDeviceTokenRotateParams, Lt as errorShape, M as validateDevicePairApproveParams, Mt as validateWizardNextParams, N as validateDevicePairListParams, Nt as validateWizardStartParams, O as validateCronRunParams, Ot as validateWakeParams, P as validateDevicePairRejectParams, Pt as validateWizardStatusParams, Q as validateNodePairListParams, S as validateConfigSchemaParams, St as validateSkillsStatusParams, T as validateCronAddParams, Tt as validateTalkModeParams, U as validateExecApprovalsSetParams, V as validateExecApprovalsNodeGetParams, Vt as approveDevicePairing, W as validateLogsTailParams, Wt as listDevicePairing, X as validateNodeListParams, Xt as summarizeDeviceTokens, Y as validateNodeInvokeResultParams, Yt as rotateDeviceToken, Z as validateNodePairApproveParams, _ as validateChatInjectParams, _t as validateSessionsRestoreParams, a as validateAgentWaitParams, b as validateConfigGetParams, bt as validateSkillsBinsParams, c as validateAgentsFilesGetParams, ct as validateSessionsCompactParams, d as validateAgentsListParams, dt as validateSessionsFavoriteFileParams, et as validateNodePairRequestParams, f as validateAgentsUpdateParams, ft as validateSessionsListParams, g as validateChatHistoryParams, gt as validateSessionsResolveParams, h as validateChatAbortParams, ht as validateSessionsResetParams, i as validateAgentParams, it as validatePushTestParams, j as validateCronUpdateParams, jt as validateWizardCancelParams, k as validateCronRunsParams, kt as validateWebLoginStartParams, l as validateAgentsFilesListParams, lt as validateSessionsDeleteFileParams, m as validateChannelsStatusParams, mt as validateSessionsPreviewParams, n as formatValidationErrors, nt as validateNodeRenameParams, o as validateAgentsCreateParams, ot as validateSendParams, p as validateChannelsLogoutParams, pt as validateSessionsPatchParams, q as validateNodeEventParams, r as validateAgentIdentityParams, rt as validatePollParams, s as validateAgentsDeleteParams, st as validateSessionsAdoptFileParams, tt as validateNodePairVerifyParams, u as validateAgentsFilesSetParams, ut as validateSessionsDeleteParams, v as validateChatSendParams, vt as validateSessionsSearchParams, wt as validateTalkConfigParams, x as validateConfigPatchParams, xt as validateSkillsInstallParams, y as validateConfigApplyParams, yt as validateSessionsUsageParams, zt as parseSessionLabel } from "./client-pd8kwOFJ.js";
25
25
  import { l as authorizeOperatorScopesForMethod, s as ADMIN_SCOPE$2, u as isNodeRoleMethod } from "./call-BIETyST6.js";
26
26
  import { c as writeJsonAtomic, o as createAsyncLock, s as readJsonFile } from "./pairing-token-pooyuU2J.js";
@@ -40,14 +40,14 @@ import { t as WizardCancelledError } from "./prompts-NOUgk6FH.js";
40
40
  import { t as resolveChannelDefaultAccountId } from "./helpers-D-MrrYmt.js";
41
41
  import { t as buildChannelAccountSnapshot } from "./status-TtGsgDjP.js";
42
42
  import { o as isNodeCommandAllowed, s as resolveNodeCommandAllowlist } from "./audit-OPWWS900.js";
43
- import { n as getStatusSummary } from "./status-vO4-v0vI.js";
44
- import { s as setHeartbeatsEnabled } from "./health-BQGRC0xh.js";
43
+ import { n as getStatusSummary } from "./status-BfNSBvnp.js";
44
+ import { s as setHeartbeatsEnabled } from "./health-CYHbTw04.js";
45
45
  import { m as normalizeUpdateChannel } from "./update-check-Bbvpax6u.js";
46
- import { a as sendApnsAlert, c as parseMessageWithAttachments, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration } from "./push-apns-hN0N3Wcu.js";
47
- import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-CZ3GFxPg.js";
46
+ import { a as sendApnsAlert, c as parseMessageWithAttachments, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration } from "./push-apns-CbjqnCIn.js";
47
+ import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-B-NRTvyi.js";
48
48
  import { t as resolveSystemRunCommand } from "./system-run-command-DKiCEPJc.js";
49
49
  import { t as installSkill } from "./skills-install-B8r7cGKR.js";
50
- import { t as runGatewayUpdate } from "./update-runner-XU-jPEg_.js";
50
+ import { t as runGatewayUpdate } from "./update-runner-UfVHKth_.js";
51
51
  import * as fs$2 from "node:fs";
52
52
  import fs from "node:fs";
53
53
  import * as os$1 from "node:os";
@@ -7509,7 +7509,7 @@ const nodeHandlers = {
7509
7509
  const p = params;
7510
7510
  const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
7511
7511
  await respondUnavailableOnThrow(respond, async () => {
7512
- const { handleNodeEvent } = await import("./server-node-events-DF_ks0oa.js");
7512
+ const { handleNodeEvent } = await import("./server-node-events-D0gNq3h6.js");
7513
7513
  const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
7514
7514
  await handleNodeEvent({
7515
7515
  deps: context.deps,