@symerian/symi 2.8.16 → 2.9.0

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 (215) hide show
  1. package/dist/{acp-cli-BgR7mxTS.js → acp-cli-BTu3_kZ1.js} +2 -2
  2. package/dist/{acp-cli-D1JYg9c1.js → acp-cli-Bav1bRj2.js} +2 -2
  3. package/dist/{agents-D6V12K_e.js → agents-CvNeiuSB.js} +5 -5
  4. package/dist/{agents.config-C0iGGY9q.js → agents.config-BCgY5FjE.js} +1 -1
  5. package/dist/{agents.config-BIIkG8rN.js → agents.config-Ct64cGQ8.js} +1 -1
  6. package/dist/{audio-preflight-rjCWpcfE.js → audio-preflight-Cb-T0r6e.js} +4 -4
  7. package/dist/{audit-xiwEIT96.js → audit-C9nq99IR.js} +2 -2
  8. package/dist/{audit-Dr_8rC6G.js → audit-CuKP86d_.js} +2 -2
  9. package/dist/{auth-choice-BcCUgEa4.js → auth-choice-ChFU9OCF.js} +2 -2
  10. package/dist/{auth-choice-jyLLyEpy.js → auth-choice-DmMyKZX4.js} +2 -2
  11. package/dist/{banner-DSRsscTp.js → banner-Bf46tqiY.js} +1 -1
  12. package/dist/{browser-cli-IXepRCZR.js → browser-cli-ClgQ-C8E.js} +3 -3
  13. package/dist/{browser-cli-BQeCPbES.js → browser-cli-DuPPIcuV.js} +3 -3
  14. package/dist/build-info.json +3 -3
  15. package/dist/bundled/boot-md/handler.js +7 -7
  16. package/dist/bundled/session-memory/handler.js +7 -7
  17. package/dist/{call-BkJK3eYP.js → call-DYfKEdwh.js} +2 -1
  18. package/dist/{call-CAGvQYXj.js → call-M4YyUnwu.js} +2 -1
  19. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  20. package/dist/{channel-options-Cr_if7it.js → channel-options-Bqc2VCgt.js} +1 -1
  21. package/dist/{channel-options-BSdsxwj0.js → channel-options-D4a0ZJ72.js} +1 -1
  22. package/dist/{channel-web-C3gcPe4C.js → channel-web-YNC2xS5K.js} +1 -1
  23. package/dist/{channels-cli-O7MxdB1l.js → channels-cli-BFJcNLbB.js} +9 -9
  24. package/dist/{channels-cli-Bn6mTlYq.js → channels-cli-h3GnmmM9.js} +9 -9
  25. package/dist/{chrome-C08Z0XAa.js → chrome-ROtrXlNs.js} +7 -7
  26. package/dist/cli/daemon-cli.js +1 -1
  27. package/dist/{cli-RIwsXnB-.js → cli-BX54CAM7.js} +6 -6
  28. package/dist/{cli-CLOf6U-k.js → cli-BpQlSGVs.js} +6 -6
  29. package/dist/{client-Cmq13-uF.js → client-CJIMV1WD.js} +36 -1
  30. package/dist/{client-CYsBIR3j.js → client-pd8kwOFJ.js} +36 -1
  31. package/dist/{command-registry-BiznuVYK.js → command-registry-BiRjJ2Sy.js} +11 -11
  32. package/dist/{completion-cli-BVG9ZtBG.js → completion-cli-BYXofVqv.js} +2 -2
  33. package/dist/{completion-cli-D-xVtDhj.js → completion-cli-C8K5J1ld.js} +1 -1
  34. package/dist/{config-cli-CDTQQFyj.js → config-cli-BPPD3xqE.js} +1 -1
  35. package/dist/{config-cli-zd2upqe_.js → config-cli-Deoo6r2K.js} +1 -1
  36. package/dist/{configure-Cu4CiLWY.js → configure-BKHxUAAh.js} +6 -6
  37. package/dist/{configure-BHdczngQ.js → configure-D4f0P3bH.js} +6 -6
  38. package/dist/control-ui/css/style.css +130 -0
  39. package/dist/control-ui/index.html +11 -0
  40. package/dist/control-ui/js/history.js +288 -8
  41. package/dist/{cron-cli-Dq2FEfK1.js → cron-cli-BEdmHCWZ.js} +3 -3
  42. package/dist/{cron-cli-CZCm3aLt.js → cron-cli-C8-Gv5dd.js} +3 -3
  43. package/dist/{daemon-cli-CweMes2K.js → daemon-cli-BFoJGCHZ.js} +2 -2
  44. package/dist/{daemon-cli-B2_uIgDM.js → daemon-cli-D6wyb9bo.js} +2 -2
  45. package/dist/daemon-cli.js +36 -0
  46. package/dist/{deliver-qUx-eLKt.js → deliver-B0OUq6RP.js} +1 -1
  47. package/dist/{devices-cli-DeoPyzAd.js → devices-cli-BXc6DPkC.js} +2 -2
  48. package/dist/{devices-cli-3ui-Wcaj.js → devices-cli-CHt4I-7e.js} +2 -2
  49. package/dist/{doctor-completion-ClveVbW_.js → doctor-completion-gMWymNcA.js} +1 -1
  50. package/dist/{doctor-completion-e-Ke-FnA.js → doctor-completion-woDYSVtY.js} +1 -1
  51. package/dist/entry.js +1 -1
  52. package/dist/{exec-approvals-cli-Bx9loYnQ.js → exec-approvals-cli-BBKVrFTj.js} +4 -4
  53. package/dist/{exec-approvals-cli-CTEn_Eu_.js → exec-approvals-cli-CKRDAo17.js} +4 -4
  54. package/dist/extensionAPI.js +2 -2
  55. package/dist/{gateway-cli-DGMuMxMT.js → gateway-cli-Bnh42-56.js} +91 -46
  56. package/dist/{gateway-cli-CBseg7zA.js → gateway-cli-DsnkTUOp.js} +91 -46
  57. package/dist/{gateway-rpc-DbSbyIcL.js → gateway-rpc-BEfosIsg.js} +1 -1
  58. package/dist/{gateway-rpc-QsFn5Zr1.js → gateway-rpc-DZrB7Sl_.js} +1 -1
  59. package/dist/{glass-ui-ws-B0WonpHP.js → glass-ui-ws-0Y0KsBvU.js} +13 -13
  60. package/dist/{glass-ui-ws-BU6qyCvM.js → glass-ui-ws-uj3DRmL8.js} +13 -13
  61. package/dist/{health-BrpUi4qW.js → health-CcV5nKIK.js} +2 -2
  62. package/dist/{health-d4gqJJCY.js → health-Dl2WRoTa.js} +2 -2
  63. package/dist/{hooks-cli-Dm2SU8AY.js → hooks-cli-CTcHtm_0.js} +7 -7
  64. package/dist/{hooks-cli-CBStbWME.js → hooks-cli-DEJe3dUH.js} +7 -7
  65. package/dist/{image-C6rCON9L.js → image-BuVL0jHI.js} +1 -1
  66. package/dist/index.js +11 -11
  67. package/dist/llm-slug-generator.js +7 -7
  68. package/dist/{logs-cli-R4WwQvR2.js → logs-cli-CsHpYc2M.js} +3 -3
  69. package/dist/{logs-cli-1hn28HCu.js → logs-cli-N5jQvJTm.js} +3 -3
  70. package/dist/{manager-BOvfAdfG.js → manager-9Mni2AA9.js} +1 -1
  71. package/dist/{manager-CtwApSQo.js → manager-C-H0XXJq.js} +1 -1
  72. package/dist/{manager-B-5p7UGu.js → manager-CjW8kPVc.js} +1 -1
  73. package/dist/{manager-DDboJTtn.js → manager-QPF0UtOC.js} +1 -1
  74. package/dist/{memory-cli-BOxWccJu.js → memory-cli-BTByRgM0.js} +3 -3
  75. package/dist/{memory-cli-D2QHGsxh.js → memory-cli-OW9XfyYu.js} +3 -3
  76. package/dist/{models-Cn1cbmce.js → models-Q1jV8ArL.js} +3 -3
  77. package/dist/{models-cli-CXW-3Zot.js → models-cli-Cy6H1sFq.js} +8 -8
  78. package/dist/{models-cli-Cdkkr4--.js → models-cli-pfVmmgpv.js} +7 -7
  79. package/dist/{node-cli-BBN6PoOG.js → node-cli-BD4E-Y8a.js} +1 -1
  80. package/dist/{node-cli-BsAzTrAx.js → node-cli-CwnTjFkG.js} +1 -1
  81. package/dist/{nodes-cli-t3azniiS.js → nodes-cli-DUD8_q_Q.js} +3 -3
  82. package/dist/{nodes-cli-DE60dv81.js → nodes-cli-Dv0NXhCO.js} +3 -3
  83. package/dist/{onboard-UB4D1vwP.js → onboard-CvpyaUQd.js} +3 -3
  84. package/dist/{onboard-BJ9vVhFw.js → onboard-EL8foMiP.js} +3 -3
  85. package/dist/{onboard-channels-Cfc9EhLj.js → onboard-channels-BRoSUijQ.js} +1 -1
  86. package/dist/{onboard-channels-Gfgyvx9N.js → onboard-channels-Bupbm6zh.js} +1 -1
  87. package/dist/{onboard-helpers-B7jBYbCU.js → onboard-helpers-CBxazphs.js} +1 -1
  88. package/dist/{onboard-helpers-DjlGq6iG.js → onboard-helpers-DWDNKmkJ.js} +1 -1
  89. package/dist/{onboard-remote-D7wGqONm.js → onboard-remote-DoIKLWXA.js} +1 -1
  90. package/dist/{onboard-remote-CXuHbtrT.js → onboard-remote-cZrkePlK.js} +1 -1
  91. package/dist/{onboard-skills-ChQnpMi-.js → onboard-skills-BjGYTueQ.js} +1 -1
  92. package/dist/{onboard-skills-BDhqz3te.js → onboard-skills-zauvnEui.js} +1 -1
  93. package/dist/{onboarding-BfSg5GnT.js → onboarding-Ch8WSJ3j.js} +7 -7
  94. package/dist/{onboarding-Bv89FLSZ.js → onboarding-Dg5ydWSh.js} +7 -7
  95. package/dist/{onboarding.finalize-DMJTZPb_.js → onboarding.finalize-Bo8-8TtH.js} +11 -11
  96. package/dist/{onboarding.finalize-B8MFYp8E.js → onboarding.finalize-CCTaCp2s.js} +12 -12
  97. package/dist/{onboarding.gateway-config-Cm5jIfRz.js → onboarding.gateway-config-Dg12RcXA.js} +3 -3
  98. package/dist/{onboarding.gateway-config-wAyLcGRu.js → onboarding.gateway-config-uIRsaxMy.js} +3 -3
  99. package/dist/{pi-embedded-CzKPTG9K.js → pi-embedded-Bl3YkBkI.js} +185 -35
  100. package/dist/{pi-embedded-helpers-P13adotN.js → pi-embedded-helpers-D1_Sab0M.js} +4 -4
  101. package/dist/{plugin-registry-CQAtbgft.js → plugin-registry-BVYZLxmo.js} +1 -1
  102. package/dist/{plugin-registry-R7nyNT_4.js → plugin-registry-Bn9Mj8mP.js} +1 -1
  103. package/dist/plugin-sdk/agents/pi-tools.read-edit-guard.d.ts +5 -0
  104. package/dist/plugin-sdk/agents/pi-tools.read-edit-tracker.d.ts +26 -0
  105. package/dist/plugin-sdk/{channel-web-D1qaoERA.js → channel-web-BhqGIC7q.js} +1 -1
  106. package/dist/plugin-sdk/gateway/protocol/index.d.ts +9 -3
  107. package/dist/plugin-sdk/gateway/protocol/schema/sessions.d.ts +39 -0
  108. package/dist/plugin-sdk/gateway/protocol/schema/types.d.ts +3 -1
  109. package/dist/plugin-sdk/index.js +3 -3
  110. package/dist/plugin-sdk/{manager-CVuMChKq.js → manager-DdOb0Em2.js} +1 -1
  111. package/dist/plugin-sdk/{reply-LZax-i7K.js → reply-Cjjf4VYT.js} +185 -35
  112. package/dist/plugin-sdk/{synthesis-DnknLqQP.js → synthesis-CZ8BYNXP.js} +2 -2
  113. package/dist/plugin-sdk/{web-DGGSyBgc.js → web-B8upqMUo.js} +3 -3
  114. package/dist/{plugins-cli-DGWVBlc8.js → plugins-cli-3h1N5N8n.js} +7 -7
  115. package/dist/{plugins-cli-CyaM2yPX.js → plugins-cli-CYOQh2DM.js} +7 -7
  116. package/dist/{program-2jsiC85C.js → program-D3_xE9BL.js} +12 -12
  117. package/dist/{program-context-DQg-ZH6A.js → program-context-COwsYCbf.js} +30 -30
  118. package/dist/{prompt-select-styled-CQJkA--o.js → prompt-select-styled-D88AWCeM.js} +8 -8
  119. package/dist/{prompt-select-styled-Csj7D4id.js → prompt-select-styled-rKPBDv7n.js} +8 -8
  120. package/dist/{provider-auth-helpers-DSq3qfws.js → provider-auth-helpers-CyZyVx-V.js} +1 -1
  121. package/dist/{provider-auth-helpers-C1rUolDI.js → provider-auth-helpers-rff7s_gC.js} +1 -1
  122. package/dist/{push-apns-Dv3XQClG.js → push-apns-BNzgqUl3.js} +1 -1
  123. package/dist/{push-apns-FvyXV3Um.js → push-apns-d9qKGKPe.js} +1 -1
  124. package/dist/{pw-ai-CeWN4iD9.js → pw-ai-DWkC5eGA.js} +1 -1
  125. package/dist/{register.agent-DCIdzwFG.js → register.agent-BjaqQA02.js} +10 -10
  126. package/dist/{register.agent-Cs5QU2Cd.js → register.agent-D_MON8p-.js} +11 -11
  127. package/dist/{register.configure-C64fHXoT.js → register.configure-BWkkQhpH.js} +13 -13
  128. package/dist/{register.configure-BBKyd--9.js → register.configure-UJi9sfNv.js} +13 -13
  129. package/dist/{register.maintenance-D99fy4mM.js → register.maintenance-ChskcWGz.js} +13 -13
  130. package/dist/{register.maintenance-DRUMeCun.js → register.maintenance-DJptz3DR.js} +12 -12
  131. package/dist/{register.message-CelO3y3f.js → register.message-BDTsiyrW.js} +7 -7
  132. package/dist/{register.message-BL30Nofx.js → register.message-CiadI_oS.js} +7 -7
  133. package/dist/{register.onboard-Cb9K2U81.js → register.onboard-BflOE1jy.js} +9 -9
  134. package/dist/{register.onboard-j6fg7rSF.js → register.onboard-KR_-4TLY.js} +9 -9
  135. package/dist/{register.setup-BfbJZE5C.js → register.setup-Cl0sD25T.js} +9 -9
  136. package/dist/{register.setup-xyGsh3Fi.js → register.setup-W-oNfOp0.js} +9 -9
  137. package/dist/{register.status-health-sessions-CpnBFwbx.js → register.status-health-sessions-CCQs235z.js} +9 -9
  138. package/dist/{register.status-health-sessions-BE4TcJ1J.js → register.status-health-sessions-CT_SmmOH.js} +9 -9
  139. package/dist/{register.subclis-8cGjLTmN.js → register.subclis-ByZAz4st.js} +20 -20
  140. package/dist/{reply-CaGCmutq.js → reply-CgyjcoxC.js} +151 -37
  141. package/dist/{rpc-St4eAsjR.js → rpc-BKlQ97aZ.js} +1 -1
  142. package/dist/{rpc-C3ZUAjXK.js → rpc-DC4ol5Xa.js} +1 -1
  143. package/dist/{run-main-BzZuJeMa.js → run-main-xmWpjZL9.js} +20 -20
  144. package/dist/{runner-D633VT13.js → runner-ecX1WzDt.js} +1 -1
  145. package/dist/{security-cli-BSvxNP9m.js → security-cli-BfiJ3e0Y.js} +3 -3
  146. package/dist/{security-cli-B8gavsuQ.js → security-cli-CIB7kqEk.js} +3 -3
  147. package/dist/{server-methods-DEV38b_O.js → server-methods-CBn954AO.js} +73 -12
  148. package/dist/{server-methods-BKlZejQC.js → server-methods-DDpCXuOU.js} +73 -12
  149. package/dist/{server-node-events-3FL5gBKp.js → server-node-events-BBEMSKVE.js} +7 -7
  150. package/dist/{server-node-events-BX5JLPyV.js → server-node-events-BUEZ3py9.js} +7 -7
  151. package/dist/{status-h7VP4Vpq.js → status-BjMiGq0n.js} +1 -1
  152. package/dist/{status-zNfi0s3F.js → status-CG5iHUJ6.js} +6 -6
  153. package/dist/{status-uBCH1pzQ.js → status-CpvzoCOC.js} +1 -1
  154. package/dist/{status-L76LBY6B.js → status-PfvX-BjO.js} +6 -6
  155. package/dist/{subagent-registry-DlIPWOrx.js → subagent-registry-D0IYimMO.js} +151 -37
  156. package/dist/{synthesis-1XabTYcd.js → synthesis-BVZ5RJLg.js} +6 -6
  157. package/dist/{synthesis-D1xCmGZi.js → synthesis-CBwKBuLy.js} +7 -7
  158. package/dist/{synthesis-BfB-Lbjy.js → synthesis-D55QrjAJ.js} +6 -6
  159. package/dist/{synthesis-D3EObLPS.js → synthesis-itgrzpuj.js} +2 -2
  160. package/dist/{system-cli-BN9MXNk7.js → system-cli-BERSpUjO.js} +3 -3
  161. package/dist/{system-cli-CD5latLh.js → system-cli-C61hzNPk.js} +3 -3
  162. package/dist/{tui-DLkE0D7e.js → tui-CI_zqapL.js} +2 -2
  163. package/dist/{tui-Cu4TZK3I.js → tui-Dg_cvgVP.js} +2 -2
  164. package/dist/{tui-cli-DC9Bq-N_.js → tui-cli-BD1cbShC.js} +3 -3
  165. package/dist/{tui-cli-BfuEq3Q-.js → tui-cli-DtBW_VCL.js} +3 -3
  166. package/dist/{unified-runner-KFxqPxWe.js → unified-runner-BhnvjB1J.js} +199 -49
  167. package/dist/{update-cli-CwtAWyeY.js → update-cli-CL1_LPBS.js} +14 -14
  168. package/dist/{update-cli-bTfRfI4b.js → update-cli-D3K4mhrr.js} +13 -13
  169. package/dist/{update-runner-DeT8NIX6.js → update-runner-Bmq67eos.js} +1 -1
  170. package/dist/{update-runner-BixvbAbN.js → update-runner-DMucmRlv.js} +1 -1
  171. package/dist/{web-CO0AUYgu.js → web-B0lZdBBl.js} +6 -6
  172. package/dist/{web-Bwrtjkmy.js → web-C1HPdY_D.js} +2 -2
  173. package/dist/{web-YSRcfzpP.js → web-DCO_YCRw.js} +7 -7
  174. package/dist/{web-N4FG6nyF.js → web-DmgQtLx3.js} +7 -7
  175. package/extensions/bluebubbles/package.json +1 -1
  176. package/extensions/copilot-proxy/package.json +1 -1
  177. package/extensions/diagnostics-otel/package.json +1 -1
  178. package/extensions/discord/package.json +1 -1
  179. package/extensions/feishu/package.json +1 -1
  180. package/extensions/google-antigravity-auth/package.json +1 -1
  181. package/extensions/google-gemini-cli-auth/package.json +1 -1
  182. package/extensions/googlechat/package.json +1 -1
  183. package/extensions/imessage/package.json +1 -1
  184. package/extensions/irc/package.json +1 -1
  185. package/extensions/learning-loop/package.json +1 -1
  186. package/extensions/line/package.json +1 -1
  187. package/extensions/llm-task/package.json +1 -1
  188. package/extensions/matrix/CHANGELOG.md +12 -0
  189. package/extensions/matrix/package.json +1 -1
  190. package/extensions/mattermost/package.json +1 -1
  191. package/extensions/memory-core/package.json +1 -1
  192. package/extensions/memory-lancedb/package.json +1 -1
  193. package/extensions/minimax-portal-auth/package.json +1 -1
  194. package/extensions/msteams/CHANGELOG.md +12 -0
  195. package/extensions/msteams/package.json +1 -1
  196. package/extensions/nextcloud-talk/package.json +1 -1
  197. package/extensions/nostr/CHANGELOG.md +12 -0
  198. package/extensions/nostr/package.json +1 -1
  199. package/extensions/open-prose/package.json +1 -1
  200. package/extensions/outlook/package.json +1 -1
  201. package/extensions/pipeline/package.json +1 -1
  202. package/extensions/signal/package.json +1 -1
  203. package/extensions/slack/package.json +1 -1
  204. package/extensions/telegram/package.json +1 -1
  205. package/extensions/tlon/package.json +1 -1
  206. package/extensions/twitch/CHANGELOG.md +12 -0
  207. package/extensions/twitch/package.json +1 -1
  208. package/extensions/voice-call/CHANGELOG.md +12 -0
  209. package/extensions/voice-call/package.json +1 -1
  210. package/extensions/whatsapp/package.json +1 -1
  211. package/extensions/zalo/CHANGELOG.md +12 -0
  212. package/extensions/zalo/package.json +1 -1
  213. package/extensions/zalouser/CHANGELOG.md +12 -0
  214. package/extensions/zalouser/package.json +1 -1
  215. package/package.json +1 -1
@@ -37,7 +37,7 @@ import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as re
37
37
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-C8Tqw4td.js";
38
38
  import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-ChC2CXaN.js";
39
39
  import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-MNvheU8U.js";
40
- import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-CtwApSQo.js";
40
+ import { a as resolveMemorySearchConfig, i as resolveOllamaBaseUrl, r as probeOllamaEmbeddingModels, t as MemoryIndexManager } from "./manager-C-H0XXJq.js";
41
41
  import { c as normalizeExtraMemoryPaths, f as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-479FB0St.js";
42
42
  import { n as retryAsync } from "./retry-QGp0jvVi.js";
43
43
  import { a as createActionGate, c as jsonResult, d as readReactionParams, f as readStringArrayParam, l as parseAvailableTags, m as readStringParam, n as missingTargetError, o as imageResult, p as readStringOrNumberParam, r as unknownTargetError, s as imageResultFromFile, t as ambiguousTargetError, u as readNumberParam } from "./target-errors-Dm716SF3.js";
@@ -3473,7 +3473,7 @@ async function getMemorySearchManager(params) {
3473
3473
  const wrapper = new FallbackMemoryManager({
3474
3474
  primary,
3475
3475
  fallbackFactory: async () => {
3476
- const { MemoryIndexManager } = await import("./manager-CtwApSQo.js").then((n) => n.n);
3476
+ const { MemoryIndexManager } = await import("./manager-C-H0XXJq.js").then((n) => n.n);
3477
3477
  return await MemoryIndexManager.get(params);
3478
3478
  }
3479
3479
  }, () => QMD_MANAGER_CACHE.delete(cacheKey));
@@ -3486,7 +3486,7 @@ async function getMemorySearchManager(params) {
3486
3486
  }
3487
3487
  }
3488
3488
  try {
3489
- const { MemoryIndexManager } = await import("./manager-CtwApSQo.js").then((n) => n.n);
3489
+ const { MemoryIndexManager } = await import("./manager-C-H0XXJq.js").then((n) => n.n);
3490
3490
  return { manager: await MemoryIndexManager.get(params) };
3491
3491
  } catch (err) {
3492
3492
  return {
@@ -5527,6 +5527,40 @@ const SessionsPreviewParamsSchema = Type.Object({
5527
5527
  limit: Type.Optional(Type.Integer({ minimum: 1 })),
5528
5528
  maxChars: Type.Optional(Type.Integer({ minimum: 20 }))
5529
5529
  }, { additionalProperties: false });
5530
+ /**
5531
+ * Hybrid (vector + FTS) search across session transcripts. Piggybacks on
5532
+ * the memory-search infrastructure with a `source = "sessions"` filter and
5533
+ * remaps the raw chunk path back to the owning session-key via the agent's
5534
+ * sessions.json index.
5535
+ */
5536
+ const SessionsSearchParamsSchema = Type.Object({
5537
+ query: Type.String({ minLength: 1 }),
5538
+ limit: Type.Optional(Type.Integer({
5539
+ minimum: 1,
5540
+ maximum: 50
5541
+ })),
5542
+ minScore: Type.Optional(Type.Number({
5543
+ minimum: 0,
5544
+ maximum: 1
5545
+ })),
5546
+ agentId: Type.Optional(NonEmptyString)
5547
+ }, { additionalProperties: false });
5548
+ const SessionsSearchMatchSchema = Type.Object({
5549
+ sessionKey: Type.Union([Type.String(), Type.Null()]),
5550
+ sessionId: Type.String(),
5551
+ file: Type.String(),
5552
+ lineStart: Type.Integer(),
5553
+ lineEnd: Type.Integer(),
5554
+ snippet: Type.String(),
5555
+ score: Type.Number(),
5556
+ label: Type.Optional(Type.String()),
5557
+ displayName: Type.Optional(Type.String()),
5558
+ updatedAt: Type.Optional(Type.Integer())
5559
+ }, { additionalProperties: false });
5560
+ const SessionsSearchResultSchema = Type.Object({
5561
+ matches: Type.Array(SessionsSearchMatchSchema),
5562
+ agentId: Type.String()
5563
+ }, { additionalProperties: false });
5530
5564
  const SessionsResolveParamsSchema = Type.Object({
5531
5565
  key: Type.Optional(NonEmptyString),
5532
5566
  sessionId: Type.Optional(NonEmptyString),
@@ -5739,6 +5773,7 @@ const validateNodeEventParams = ajv.compile(NodeEventParamsSchema);
5739
5773
  const validatePushTestParams = ajv.compile(PushTestParamsSchema);
5740
5774
  const validateSessionsListParams = ajv.compile(SessionsListParamsSchema);
5741
5775
  const validateSessionsPreviewParams = ajv.compile(SessionsPreviewParamsSchema);
5776
+ const validateSessionsSearchParams = ajv.compile(SessionsSearchParamsSchema);
5742
5777
  const validateSessionsResolveParams = ajv.compile(SessionsResolveParamsSchema);
5743
5778
  const validateSessionsPatchParams = ajv.compile(SessionsPatchParamsSchema);
5744
5779
  const validateSessionsResetParams = ajv.compile(SessionsResetParamsSchema);
@@ -6134,6 +6169,7 @@ const METHOD_SCOPE_GROUPS = {
6134
6169
  "voicewake.get",
6135
6170
  "sessions.list",
6136
6171
  "sessions.preview",
6172
+ "sessions.search",
6137
6173
  "sessions.resolve",
6138
6174
  "sessions.usage",
6139
6175
  "sessions.usage.timeseries",
@@ -10216,16 +10252,16 @@ function shouldComputeCommandAuthorized(text, cfg, options) {
10216
10252
 
10217
10253
  //#endregion
10218
10254
  //#region src/channels/sender-label.ts
10219
- function normalize(value) {
10255
+ function normalize$1(value) {
10220
10256
  const trimmed = value?.trim();
10221
10257
  return trimmed ? trimmed : void 0;
10222
10258
  }
10223
10259
  function resolveSenderLabel(params) {
10224
- const name = normalize(params.name);
10225
- const username = normalize(params.username);
10226
- const tag = normalize(params.tag);
10227
- const e164 = normalize(params.e164);
10228
- const id = normalize(params.id);
10260
+ const name = normalize$1(params.name);
10261
+ const username = normalize$1(params.username);
10262
+ const tag = normalize$1(params.tag);
10263
+ const e164 = normalize$1(params.e164);
10264
+ const id = normalize$1(params.id);
10229
10265
  const display = name ?? username ?? tag ?? "";
10230
10266
  const idPart = e164 ?? id ?? "";
10231
10267
  if (display && idPart && display !== idPart) return `${display} (${idPart})`;
@@ -30473,8 +30509,39 @@ const GatewayToolSchema = Type.Object({
30473
30509
  baseHash: Type.Optional(Type.String()),
30474
30510
  sessionKey: Type.Optional(Type.String()),
30475
30511
  note: Type.Optional(Type.String()),
30476
- restartDelayMs: Type.Optional(Type.Number())
30512
+ restartDelayMs: Type.Optional(Type.Number()),
30513
+ userRequestAcknowledgment: Type.Optional(Type.String())
30477
30514
  });
30515
+ /** Actions that mutate gateway state and require explicit user authorization. */
30516
+ const DESTRUCTIVE_ACTIONS = new Set([
30517
+ "config.apply",
30518
+ "config.patch",
30519
+ "update.run"
30520
+ ]);
30521
+ /** Minimum length for a meaningful authorization message. */
30522
+ const MIN_AUTHORIZATION_LENGTH = 10;
30523
+ /**
30524
+ * Asserts the user's request was explicitly acknowledged for destructive
30525
+ * actions. Throws a descriptive error if the acknowledgment is missing,
30526
+ * empty, or trivially short.
30527
+ *
30528
+ * NOTE: This is defense-in-depth, not a hard barrier. A determined model
30529
+ * could still populate the field with fabricated text. The barrier exists
30530
+ * to:
30531
+ * 1. Force the agent to deliberately compose a justification (vs. blind
30532
+ * tool invocation).
30533
+ * 2. Provide an audit trail (the acknowledgment is logged with the tool
30534
+ * call args).
30535
+ * 3. Surface for future tightening (e.g., matching against real session
30536
+ * history).
30537
+ */
30538
+ function assertUserAuthorization(action, params) {
30539
+ if (!DESTRUCTIVE_ACTIONS.has(action)) return;
30540
+ const ack = params.userRequestAcknowledgment;
30541
+ const trimmed = typeof ack === "string" ? ack.trim() : "";
30542
+ if (!trimmed) throw new Error(`Action '${action}' requires an explicit user authorization. Pass userRequestAcknowledgment with a paraphrase of the user's request (e.g., "user said: please update Symi"). If the user did not explicitly request this action, ask them first instead of invoking it.`);
30543
+ if (trimmed.length < MIN_AUTHORIZATION_LENGTH) throw new Error(`Action '${action}' requires a substantive userRequestAcknowledgment (minimum ${MIN_AUTHORIZATION_LENGTH} characters describing the user's request). Received: ${JSON.stringify(trimmed)}.`);
30544
+ }
30478
30545
  function createGatewayTool(opts) {
30479
30546
  return {
30480
30547
  label: "Gateway",
@@ -30485,6 +30552,7 @@ function createGatewayTool(opts) {
30485
30552
  execute: async (_toolCallId, args) => {
30486
30553
  const params = args;
30487
30554
  const action = readStringParam(params, "action", { required: true });
30555
+ assertUserAuthorization(action, params);
30488
30556
  if (action === "restart") {
30489
30557
  if (!isRestartEnabled(opts?.config)) throw new Error("Gateway restart is disabled (commands.restart=false).");
30490
30558
  const sessionKey = typeof params.sessionKey === "string" && params.sessionKey.trim() ? params.sessionKey.trim() : opts?.agentSessionKey?.trim() || void 0;
@@ -61590,7 +61658,7 @@ function isVoiceChannelType(type) {
61590
61658
  function createDefaultDeps() {
61591
61659
  return {
61592
61660
  sendMessageWhatsApp: async (...args) => {
61593
- const { sendMessageWhatsApp } = await import("./web-Bwrtjkmy.js");
61661
+ const { sendMessageWhatsApp } = await import("./web-C1HPdY_D.js");
61594
61662
  return await sendMessageWhatsApp(...args);
61595
61663
  },
61596
61664
  sendMessageTelegram: async (...args) => {
@@ -76870,7 +76938,7 @@ function loadWebLoginQr() {
76870
76938
  return webLoginQrPromise;
76871
76939
  }
76872
76940
  function loadWebChannel() {
76873
- webChannelPromise ??= import("./web-Bwrtjkmy.js");
76941
+ webChannelPromise ??= import("./web-C1HPdY_D.js");
76874
76942
  return webChannelPromise;
76875
76943
  }
76876
76944
  function loadWhatsAppActions() {
@@ -78339,6 +78407,91 @@ function isToolAllowedByPolicies(name, policies) {
78339
78407
  return policies.every((policy) => isToolAllowedByPolicyName(name, policy));
78340
78408
  }
78341
78409
 
78410
+ //#endregion
78411
+ //#region src/agents/pi-tools.read-edit-guard.ts
78412
+ const RETRY_GUIDANCE_SUFFIX$1 = " Read the file first, then retry the edit.";
78413
+ function readGuardError(filePath) {
78414
+ return /* @__PURE__ */ new Error(`Edit refused: '${filePath}' has not been read in this session. The edit tool requires the agent to read the file first so oldText can match real content rather than hallucinated content.${RETRY_GUIDANCE_SUFFIX$1}`);
78415
+ }
78416
+ function extractPath(args) {
78417
+ if (!args || typeof args !== "object") return;
78418
+ const record = args;
78419
+ const candidate = record.path ?? record.file_path;
78420
+ if (typeof candidate !== "string") return;
78421
+ const trimmed = candidate.trim();
78422
+ return trimmed.length > 0 ? trimmed : void 0;
78423
+ }
78424
+ function wrapReadToolWithTracker(tool, tracker) {
78425
+ return {
78426
+ ...tool,
78427
+ execute: async (toolCallId, args, signal, onUpdate) => {
78428
+ const result = await tool.execute(toolCallId, args, signal, onUpdate);
78429
+ if (!(!!result && typeof result === "object" && result.isError === true)) {
78430
+ const filePath = extractPath(args);
78431
+ if (filePath) tracker.recordRead(filePath);
78432
+ }
78433
+ return result;
78434
+ }
78435
+ };
78436
+ }
78437
+ function wrapWriteToolWithTracker(tool, tracker) {
78438
+ return {
78439
+ ...tool,
78440
+ execute: async (toolCallId, args, signal, onUpdate) => {
78441
+ const result = await tool.execute(toolCallId, args, signal, onUpdate);
78442
+ if (!(!!result && typeof result === "object" && result.isError === true)) {
78443
+ const filePath = extractPath(args);
78444
+ if (filePath) tracker.recordWrite(filePath);
78445
+ }
78446
+ return result;
78447
+ }
78448
+ };
78449
+ }
78450
+ function wrapEditToolWithGuard(tool, tracker) {
78451
+ return {
78452
+ ...tool,
78453
+ execute: async (toolCallId, args, signal, onUpdate) => {
78454
+ const filePath = extractPath(args);
78455
+ if (filePath && !tracker.hasObserved(filePath)) throw readGuardError(filePath);
78456
+ return tool.execute(toolCallId, args, signal, onUpdate);
78457
+ }
78458
+ };
78459
+ }
78460
+
78461
+ //#endregion
78462
+ //#region src/agents/pi-tools.read-edit-tracker.ts
78463
+ function normalize(filePath, workspaceRoot) {
78464
+ if (!workspaceRoot) return filePath;
78465
+ if (path.isAbsolute(filePath)) return path.normalize(filePath);
78466
+ return path.resolve(workspaceRoot, filePath);
78467
+ }
78468
+ function createReadEditTracker(opts = {}) {
78469
+ const observed = /* @__PURE__ */ new Map();
78470
+ const record = (filePath, kind) => {
78471
+ if (typeof filePath !== "string" || !filePath.trim()) return;
78472
+ const key = normalize(filePath.trim(), opts.workspaceRoot);
78473
+ const prior = observed.get(key);
78474
+ if (kind === "written" || prior !== "written") observed.set(key, kind);
78475
+ };
78476
+ return {
78477
+ recordRead: (filePath) => record(filePath, "read"),
78478
+ recordWrite: (filePath) => record(filePath, "written"),
78479
+ observation: (filePath) => {
78480
+ if (typeof filePath !== "string" || !filePath.trim()) return null;
78481
+ const key = normalize(filePath.trim(), opts.workspaceRoot);
78482
+ return observed.get(key) ?? null;
78483
+ },
78484
+ hasObserved: (filePath) => {
78485
+ if (typeof filePath !== "string" || !filePath.trim()) return false;
78486
+ const key = normalize(filePath.trim(), opts.workspaceRoot);
78487
+ return observed.has(key);
78488
+ },
78489
+ reset: () => {
78490
+ observed.clear();
78491
+ }
78492
+ };
78493
+ }
78494
+
78342
78495
  //#endregion
78343
78496
  //#region src/media/sniff-mime-from-base64.ts
78344
78497
  async function sniffMimeFromBase64(base64) {
@@ -78966,33 +79119,34 @@ function createSymiCodingTools(options) {
78966
79119
  });
78967
79120
  if (sandboxRoot && !sandboxFsBridge) throw new Error("Sandbox filesystem bridge is unavailable.");
78968
79121
  const imageSanitization = resolveImageSanitizationLimits(options?.config);
79122
+ const readEditTracker = createReadEditTracker({ workspaceRoot: sandboxRoot ?? workspaceRoot });
78969
79123
  const base = codingTools.flatMap((tool) => {
78970
79124
  if (tool.name === readTool.name) {
78971
79125
  if (sandboxRoot) {
78972
- const sandboxed = createSandboxedReadTool({
79126
+ const tracked = wrapReadToolWithTracker(createSandboxedReadTool({
78973
79127
  root: sandboxRoot,
78974
79128
  bridge: sandboxFsBridge,
78975
79129
  modelContextWindowTokens: options?.modelContextWindowTokens,
78976
79130
  imageSanitization
78977
- });
78978
- return [workspaceOnly ? wrapToolWorkspaceRootGuard(sandboxed, sandboxRoot) : sandboxed];
79131
+ }), readEditTracker);
79132
+ return [workspaceOnly ? wrapToolWorkspaceRootGuard(tracked, sandboxRoot) : tracked];
78979
79133
  }
78980
- const wrapped = createSymiReadTool(createReadTool(workspaceRoot), {
79134
+ const tracked = wrapReadToolWithTracker(createSymiReadTool(createReadTool(workspaceRoot), {
78981
79135
  modelContextWindowTokens: options?.modelContextWindowTokens,
78982
79136
  imageSanitization
78983
- });
78984
- return [workspaceOnly ? wrapToolWorkspaceRootGuard(wrapped, workspaceRoot) : wrapped];
79137
+ }), readEditTracker);
79138
+ return [workspaceOnly ? wrapToolWorkspaceRootGuard(tracked, workspaceRoot) : tracked];
78985
79139
  }
78986
79140
  if (tool.name === "bash" || tool.name === execToolName) return [];
78987
79141
  if (tool.name === "write") {
78988
79142
  if (sandboxRoot) return [];
78989
- const wrapped = wrapToolParamNormalization(createWriteTool(workspaceRoot), CLAUDE_PARAM_GROUPS.write);
78990
- return [workspaceOnly ? wrapToolWorkspaceRootGuard(wrapped, workspaceRoot) : wrapped];
79143
+ const tracked = wrapWriteToolWithTracker(wrapToolParamNormalization(createWriteTool(workspaceRoot), CLAUDE_PARAM_GROUPS.write), readEditTracker);
79144
+ return [workspaceOnly ? wrapToolWorkspaceRootGuard(tracked, workspaceRoot) : tracked];
78991
79145
  }
78992
79146
  if (tool.name === "edit") {
78993
79147
  if (sandboxRoot) return [];
78994
- const wrapped = wrapToolParamNormalization(createEditTool(workspaceRoot), CLAUDE_PARAM_GROUPS.edit);
78995
- return [workspaceOnly ? wrapToolWorkspaceRootGuard(wrapped, workspaceRoot) : wrapped];
79148
+ const guarded = wrapEditToolWithGuard(wrapToolParamNormalization(createEditTool(workspaceRoot), CLAUDE_PARAM_GROUPS.edit), readEditTracker);
79149
+ return [workspaceOnly ? wrapToolWorkspaceRootGuard(guarded, workspaceRoot) : guarded];
78996
79150
  }
78997
79151
  return [tool];
78998
79152
  });
@@ -79035,22 +79189,18 @@ function createSymiCodingTools(options) {
79035
79189
  } : void 0,
79036
79190
  workspaceOnly: applyPatchWorkspaceOnly
79037
79191
  });
79192
+ const sandboxedEditTool = sandboxRoot ? wrapEditToolWithGuard(createSandboxedEditTool({
79193
+ root: sandboxRoot,
79194
+ bridge: sandboxFsBridge
79195
+ }), readEditTracker) : null;
79196
+ const sandboxedWriteTool = sandboxRoot ? wrapWriteToolWithTracker(createSandboxedWriteTool({
79197
+ root: sandboxRoot,
79198
+ bridge: sandboxFsBridge
79199
+ }), readEditTracker) : null;
79038
79200
  const withHooks = applyToolPolicyPipeline({
79039
79201
  tools: applyOwnerOnlyToolPolicy([
79040
79202
  ...base,
79041
- ...sandboxRoot ? allowWorkspaceWrites ? [workspaceOnly ? wrapToolWorkspaceRootGuard(createSandboxedEditTool({
79042
- root: sandboxRoot,
79043
- bridge: sandboxFsBridge
79044
- }), sandboxRoot) : createSandboxedEditTool({
79045
- root: sandboxRoot,
79046
- bridge: sandboxFsBridge
79047
- }), workspaceOnly ? wrapToolWorkspaceRootGuard(createSandboxedWriteTool({
79048
- root: sandboxRoot,
79049
- bridge: sandboxFsBridge
79050
- }), sandboxRoot) : createSandboxedWriteTool({
79051
- root: sandboxRoot,
79052
- bridge: sandboxFsBridge
79053
- })] : [] : [],
79203
+ ...sandboxRoot ? allowWorkspaceWrites && sandboxedEditTool && sandboxedWriteTool ? [workspaceOnly ? wrapToolWorkspaceRootGuard(sandboxedEditTool, sandboxRoot) : sandboxedEditTool, workspaceOnly ? wrapToolWorkspaceRootGuard(sandboxedWriteTool, sandboxRoot) : sandboxedWriteTool] : [] : [],
79054
79204
  ...applyPatchTool ? [applyPatchTool] : [],
79055
79205
  execTool,
79056
79206
  processTool,
@@ -9,7 +9,7 @@ import { h as isPidAlive, m as resolveProcessScopedMap } from "./auth-profiles-C
9
9
  import { n as formatCliCommand } from "./env-BDXYbTKj.js";
10
10
  import { t as parseBooleanValue } from "./boolean-CE7i9tBR.js";
11
11
  import { _ as parseDurationMs, a as writeConfigFile, n as loadConfig, s as parseByteSize, t as createConfigIO } from "./config-BkZ9HOKT.js";
12
- import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-C08Z0XAa.js";
12
+ import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-ROtrXlNs.js";
13
13
  import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-CXxrn_e2.js";
14
14
  import { n as formatErrorMessage, t as extractErrorCode } from "./errors-XIsvXeC-.js";
15
15
  import { b as openFileWithinRoot, i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS, y as SafeOpenError } from "./image-ops-C7CauEK8.js";
@@ -940,7 +940,7 @@ function isModuleNotFoundError(err) {
940
940
  }
941
941
  async function loadPwAiModule(mode) {
942
942
  try {
943
- return await import("./pw-ai-CeWN4iD9.js");
943
+ return await import("./pw-ai-DWkC5eGA.js");
944
944
  } catch (err) {
945
945
  if (mode === "soft") return null;
946
946
  if (isModuleNotFoundError(err)) return null;
@@ -3480,11 +3480,11 @@ function createProfileContext(opts, profile) {
3480
3480
  const userDataDir = resolveSymiUserDataDir(profile.name);
3481
3481
  const profileState = getProfileState();
3482
3482
  if (await isHttpReachable(300) && !profileState.running) try {
3483
- await (await import("./pw-ai-CeWN4iD9.js")).closePlaywrightBrowserConnection();
3483
+ await (await import("./pw-ai-DWkC5eGA.js")).closePlaywrightBrowserConnection();
3484
3484
  } catch {}
3485
3485
  if (profileState.running) await stopRunningBrowser();
3486
3486
  try {
3487
- await (await import("./pw-ai-CeWN4iD9.js")).closePlaywrightBrowserConnection();
3487
+ await (await import("./pw-ai-DWkC5eGA.js")).closePlaywrightBrowserConnection();
3488
3488
  } catch {}
3489
3489
  if (!fs.existsSync(userDataDir)) return {
3490
3490
  moved: false,
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { pt as loadSymiPlugins } from "./reply-CaGCmutq.js";
2
+ import { pt as loadSymiPlugins } from "./reply-CgyjcoxC.js";
3
3
  import { d as getActivePluginRegistry } from "./registry-Cja8eT7G.js";
4
4
  import { t as createSubsystemLogger } from "./subsystem-D9vIQve0.js";
5
5
  import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-CgUHAtCo.js";
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { M as getActivePluginRegistry, o as createSubsystemLogger } from "./entry.js";
3
3
  import { c as resolveAgentWorkspaceDir, l as resolveDefaultAgentId } from "./agent-scope-D-jRCY0d.js";
4
4
  import { i as loadConfig } from "./config-DXt3pc08.js";
5
- import { m as loadSymiPlugins } from "./subagent-registry-DlIPWOrx.js";
5
+ import { m as loadSymiPlugins } from "./subagent-registry-D0IYimMO.js";
6
6
 
7
7
  //#region src/cli/plugin-registry.ts
8
8
  var plugin_registry_exports = /* @__PURE__ */ __exportAll({ ensurePluginRegistryLoaded: () => ensurePluginRegistryLoaded });
@@ -0,0 +1,5 @@
1
+ import type { ReadEditTracker } from "./pi-tools.read-edit-tracker.js";
2
+ import type { AnyAgentTool } from "./pi-tools.types.js";
3
+ export declare function wrapReadToolWithTracker(tool: AnyAgentTool, tracker: ReadEditTracker): AnyAgentTool;
4
+ export declare function wrapWriteToolWithTracker(tool: AnyAgentTool, tracker: ReadEditTracker): AnyAgentTool;
5
+ export declare function wrapEditToolWithGuard(tool: AnyAgentTool, tracker: ReadEditTracker): AnyAgentTool;
@@ -0,0 +1,26 @@
1
+ export type ReadEditTrackerObservation = "read" | "written";
2
+ export interface ReadEditTracker {
3
+ /** Mark a path as read by the agent. */
4
+ recordRead(filePath: string | undefined | null): void;
5
+ /** Mark a path as written by the agent (write counts as observed). */
6
+ recordWrite(filePath: string | undefined | null): void;
7
+ /**
8
+ * Returns the observation kind for a file, or null if never observed.
9
+ * Path normalization matches recordRead/recordWrite.
10
+ */
11
+ observation(filePath: string | undefined | null): ReadEditTrackerObservation | null;
12
+ /** Convenience: was this file ever observed (read or written)? */
13
+ hasObserved(filePath: string | undefined | null): boolean;
14
+ /** Reset the tracker (used in tests). */
15
+ reset(): void;
16
+ }
17
+ export interface CreateReadEditTrackerOptions {
18
+ /**
19
+ * Workspace root used to normalize relative paths to absolute. Without it
20
+ * the tracker only matches on exact strings, which means `read("foo.ts")`
21
+ * followed by `edit("/abs/foo.ts")` would fail. With it, both normalize to
22
+ * the same absolute path and match correctly.
23
+ */
24
+ workspaceRoot?: string;
25
+ }
26
+ export declare function createReadEditTracker(opts?: CreateReadEditTrackerOptions): ReadEditTracker;
@@ -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-LZax-i7K.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-Cjjf4VYT.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-BzupW6LN.js";
6
6
  import { i as defaultRuntime, t as createSubsystemLogger } from "./subsystem-Coz2AgU8.js";
@@ -1,6 +1,6 @@
1
1
  import AjvPkg, { type ErrorObject } from "ajv";
2
2
  import type { SessionsPatchResult } from "../session-utils.types.js";
3
- import { type AgentEvent, AgentEventSchema, type AgentIdentityParams, AgentIdentityParamsSchema, type AgentIdentityResult, AgentIdentityResultSchema, AgentParamsSchema, type AgentSummary, AgentSummarySchema, type AgentsFileEntry, AgentsFileEntrySchema, type AgentsCreateParams, AgentsCreateParamsSchema, type AgentsCreateResult, AgentsCreateResultSchema, type AgentsUpdateParams, AgentsUpdateParamsSchema, type AgentsUpdateResult, AgentsUpdateResultSchema, type AgentsDeleteParams, AgentsDeleteParamsSchema, type AgentsDeleteResult, AgentsDeleteResultSchema, type AgentsFilesGetParams, AgentsFilesGetParamsSchema, type AgentsFilesGetResult, AgentsFilesGetResultSchema, type AgentsFilesListParams, AgentsFilesListParamsSchema, type AgentsFilesListResult, AgentsFilesListResultSchema, type AgentsFilesSetParams, AgentsFilesSetParamsSchema, type AgentsFilesSetResult, AgentsFilesSetResultSchema, type AgentsListParams, AgentsListParamsSchema, type AgentsListResult, AgentsListResultSchema, type TasksListParams, TasksListParamsSchema, type TasksListResult, TasksListResultSchema, type AgentWaitParams, type ChannelsLogoutParams, ChannelsLogoutParamsSchema, type TalkConfigParams, TalkConfigParamsSchema, type TalkConfigResult, TalkConfigResultSchema, type ChannelsStatusParams, ChannelsStatusParamsSchema, type ChannelsStatusResult, ChannelsStatusResultSchema, type ChatEvent, ChatEventSchema, ChatHistoryParamsSchema, type ChatInjectParams, ChatInjectParamsSchema, ChatSendParamsSchema, type ConfigApplyParams, ConfigApplyParamsSchema, type ConfigGetParams, ConfigGetParamsSchema, type ConfigPatchParams, ConfigPatchParamsSchema, type ConfigSchemaParams, ConfigSchemaParamsSchema, type ConfigSchemaResponse, ConfigSchemaResponseSchema, type ConfigSetParams, ConfigSetParamsSchema, type ConnectParams, ConnectParamsSchema, type CronAddParams, CronAddParamsSchema, type CronJob, CronJobSchema, type CronListParams, CronListParamsSchema, type CronRemoveParams, CronRemoveParamsSchema, type CronRunLogEntry, type CronRunParams, CronRunParamsSchema, type CronRunsParams, CronRunsParamsSchema, type CronStatusParams, CronStatusParamsSchema, type CronUpdateParams, CronUpdateParamsSchema, type DevicePairApproveParams, type DevicePairListParams, type DevicePairRejectParams, type ExecApprovalsGetParams, type ExecApprovalsSetParams, type ExecApprovalsSnapshot, ErrorCodes, type ErrorShape, ErrorShapeSchema, type EventFrame, EventFrameSchema, errorShape, type GatewayFrame, GatewayFrameSchema, type HelloOk, HelloOkSchema, type LogsTailParams, LogsTailParamsSchema, type LogsTailResult, LogsTailResultSchema, ModelsListParamsSchema, type NodeEventParams, type NodeInvokeParams, NodeInvokeParamsSchema, type NodeInvokeResultParams, type NodeListParams, NodeListParamsSchema, type NodePairApproveParams, NodePairApproveParamsSchema, type NodePairListParams, NodePairListParamsSchema, type NodePairRejectParams, NodePairRejectParamsSchema, type NodePairRequestParams, NodePairRequestParamsSchema, type NodePairVerifyParams, NodePairVerifyParamsSchema, type PollParams, PollParamsSchema, PROTOCOL_VERSION, PushTestParamsSchema, PushTestResultSchema, type PresenceEntry, PresenceEntrySchema, ProtocolSchemas, type RequestFrame, RequestFrameSchema, type ResponseFrame, ResponseFrameSchema, SendParamsSchema, type SessionsCompactParams, SessionsCompactParamsSchema, type SessionsDeleteParams, SessionsDeleteParamsSchema, type SessionsListParams, SessionsListParamsSchema, type SessionsPatchParams, SessionsPatchParamsSchema, type SessionsPreviewParams, SessionsPreviewParamsSchema, type SessionsResetParams, SessionsResetParamsSchema, SessionsRestoreParamsSchema, SessionsAdoptFileParamsSchema, SessionsFavoriteFileParamsSchema, SessionsDeleteFileParamsSchema, type SessionsResolveParams, type SessionsUsageParams, SessionsUsageParamsSchema, type ShutdownEvent, ShutdownEventSchema, type SkillsBinsParams, type SkillsBinsResult, type SkillsInstallParams, SkillsInstallParamsSchema, type SkillsStatusParams, SkillsStatusParamsSchema, type SkillsUpdateParams, SkillsUpdateParamsSchema, type Snapshot, SnapshotSchema, type StateVersion, StateVersionSchema, type TalkModeParams, type TickEvent, TickEventSchema, type UpdateRunParams, UpdateRunParamsSchema, type WakeParams, WakeParamsSchema, type WebLoginStartParams, WebLoginStartParamsSchema, type WebLoginWaitParams, WebLoginWaitParamsSchema, type WizardCancelParams, WizardCancelParamsSchema, type WizardNextParams, WizardNextParamsSchema, type WizardNextResult, WizardNextResultSchema, type WizardStartParams, WizardStartParamsSchema, type WizardStartResult, WizardStartResultSchema, type WizardStatusParams, WizardStatusParamsSchema, type WizardStatusResult, WizardStatusResultSchema, type WizardStep, WizardStepSchema } from "./schema.js";
3
+ import { type AgentEvent, AgentEventSchema, type AgentIdentityParams, AgentIdentityParamsSchema, type AgentIdentityResult, AgentIdentityResultSchema, AgentParamsSchema, type AgentSummary, AgentSummarySchema, type AgentsFileEntry, AgentsFileEntrySchema, type AgentsCreateParams, AgentsCreateParamsSchema, type AgentsCreateResult, AgentsCreateResultSchema, type AgentsUpdateParams, AgentsUpdateParamsSchema, type AgentsUpdateResult, AgentsUpdateResultSchema, type AgentsDeleteParams, AgentsDeleteParamsSchema, type AgentsDeleteResult, AgentsDeleteResultSchema, type AgentsFilesGetParams, AgentsFilesGetParamsSchema, type AgentsFilesGetResult, AgentsFilesGetResultSchema, type AgentsFilesListParams, AgentsFilesListParamsSchema, type AgentsFilesListResult, AgentsFilesListResultSchema, type AgentsFilesSetParams, AgentsFilesSetParamsSchema, type AgentsFilesSetResult, AgentsFilesSetResultSchema, type AgentsListParams, AgentsListParamsSchema, type AgentsListResult, AgentsListResultSchema, type TasksListParams, TasksListParamsSchema, type TasksListResult, TasksListResultSchema, type AgentWaitParams, type ChannelsLogoutParams, ChannelsLogoutParamsSchema, type TalkConfigParams, TalkConfigParamsSchema, type TalkConfigResult, TalkConfigResultSchema, type ChannelsStatusParams, ChannelsStatusParamsSchema, type ChannelsStatusResult, ChannelsStatusResultSchema, type ChatEvent, ChatEventSchema, ChatHistoryParamsSchema, type ChatInjectParams, ChatInjectParamsSchema, ChatSendParamsSchema, type ConfigApplyParams, ConfigApplyParamsSchema, type ConfigGetParams, ConfigGetParamsSchema, type ConfigPatchParams, ConfigPatchParamsSchema, type ConfigSchemaParams, ConfigSchemaParamsSchema, type ConfigSchemaResponse, ConfigSchemaResponseSchema, type ConfigSetParams, ConfigSetParamsSchema, type ConnectParams, ConnectParamsSchema, type CronAddParams, CronAddParamsSchema, type CronJob, CronJobSchema, type CronListParams, CronListParamsSchema, type CronRemoveParams, CronRemoveParamsSchema, type CronRunLogEntry, type CronRunParams, CronRunParamsSchema, type CronRunsParams, CronRunsParamsSchema, type CronStatusParams, CronStatusParamsSchema, type CronUpdateParams, CronUpdateParamsSchema, type DevicePairApproveParams, type DevicePairListParams, type DevicePairRejectParams, type ExecApprovalsGetParams, type ExecApprovalsSetParams, type ExecApprovalsSnapshot, ErrorCodes, type ErrorShape, ErrorShapeSchema, type EventFrame, EventFrameSchema, errorShape, type GatewayFrame, GatewayFrameSchema, type HelloOk, HelloOkSchema, type LogsTailParams, LogsTailParamsSchema, type LogsTailResult, LogsTailResultSchema, ModelsListParamsSchema, type NodeEventParams, type NodeInvokeParams, NodeInvokeParamsSchema, type NodeInvokeResultParams, type NodeListParams, NodeListParamsSchema, type NodePairApproveParams, NodePairApproveParamsSchema, type NodePairListParams, NodePairListParamsSchema, type NodePairRejectParams, NodePairRejectParamsSchema, type NodePairRequestParams, NodePairRequestParamsSchema, type NodePairVerifyParams, NodePairVerifyParamsSchema, type PollParams, PollParamsSchema, PROTOCOL_VERSION, PushTestParamsSchema, PushTestResultSchema, type PresenceEntry, PresenceEntrySchema, ProtocolSchemas, type RequestFrame, RequestFrameSchema, type ResponseFrame, ResponseFrameSchema, SendParamsSchema, type SessionsCompactParams, SessionsCompactParamsSchema, type SessionsDeleteParams, SessionsDeleteParamsSchema, type SessionsListParams, SessionsListParamsSchema, type SessionsPatchParams, SessionsPatchParamsSchema, type SessionsPreviewParams, SessionsPreviewParamsSchema, type SessionsSearchParams, SessionsSearchParamsSchema, type SessionsSearchResult, SessionsSearchResultSchema, type SessionsResetParams, SessionsResetParamsSchema, SessionsRestoreParamsSchema, SessionsAdoptFileParamsSchema, SessionsFavoriteFileParamsSchema, SessionsDeleteFileParamsSchema, type SessionsResolveParams, type SessionsUsageParams, SessionsUsageParamsSchema, type ShutdownEvent, ShutdownEventSchema, type SkillsBinsParams, type SkillsBinsResult, type SkillsInstallParams, SkillsInstallParamsSchema, type SkillsStatusParams, SkillsStatusParamsSchema, type SkillsUpdateParams, SkillsUpdateParamsSchema, type Snapshot, SnapshotSchema, type StateVersion, StateVersionSchema, type TalkModeParams, type TickEvent, TickEventSchema, type UpdateRunParams, UpdateRunParamsSchema, type WakeParams, WakeParamsSchema, type WebLoginStartParams, WebLoginStartParamsSchema, type WebLoginWaitParams, WebLoginWaitParamsSchema, type WizardCancelParams, WizardCancelParamsSchema, type WizardNextParams, WizardNextParamsSchema, type WizardNextResult, WizardNextResultSchema, type WizardStartParams, WizardStartParamsSchema, type WizardStartResult, WizardStartResultSchema, type WizardStatusParams, WizardStatusParamsSchema, type WizardStatusResult, WizardStatusResultSchema, type WizardStep, WizardStepSchema } from "./schema.js";
4
4
  export declare const validateConnectParams: AjvPkg.ValidateFunction<{
5
5
  permissions?: {
6
6
  [x: string]: boolean;
@@ -219,6 +219,12 @@ export declare const validateSessionsPreviewParams: AjvPkg.ValidateFunction<{
219
219
  maxChars?: number | undefined;
220
220
  keys: string[];
221
221
  }>;
222
+ export declare const validateSessionsSearchParams: AjvPkg.ValidateFunction<{
223
+ agentId?: string | undefined;
224
+ limit?: number | undefined;
225
+ minScore?: number | undefined;
226
+ query: string;
227
+ }>;
222
228
  export declare const validateSessionsResolveParams: AjvPkg.ValidateFunction<{
223
229
  agentId?: string | undefined;
224
230
  key?: string | undefined;
@@ -593,5 +599,5 @@ export declare const validateWebLoginWaitParams: AjvPkg.ValidateFunction<{
593
599
  accountId?: string | undefined;
594
600
  }>;
595
601
  export declare function formatValidationErrors(errors: ErrorObject[] | null | undefined): string;
596
- export { ConnectParamsSchema, HelloOkSchema, RequestFrameSchema, ResponseFrameSchema, EventFrameSchema, GatewayFrameSchema, PresenceEntrySchema, SnapshotSchema, ErrorShapeSchema, StateVersionSchema, AgentEventSchema, ChatEventSchema, SendParamsSchema, PollParamsSchema, AgentParamsSchema, AgentIdentityParamsSchema, AgentIdentityResultSchema, WakeParamsSchema, PushTestParamsSchema, PushTestResultSchema, NodePairRequestParamsSchema, NodePairListParamsSchema, NodePairApproveParamsSchema, NodePairRejectParamsSchema, NodePairVerifyParamsSchema, NodeListParamsSchema, NodeInvokeParamsSchema, SessionsListParamsSchema, SessionsPreviewParamsSchema, SessionsPatchParamsSchema, SessionsResetParamsSchema, SessionsRestoreParamsSchema, SessionsAdoptFileParamsSchema, SessionsFavoriteFileParamsSchema, SessionsDeleteFileParamsSchema, SessionsDeleteParamsSchema, SessionsCompactParamsSchema, SessionsUsageParamsSchema, ConfigGetParamsSchema, ConfigSetParamsSchema, ConfigApplyParamsSchema, ConfigPatchParamsSchema, ConfigSchemaParamsSchema, ConfigSchemaResponseSchema, WizardStartParamsSchema, WizardNextParamsSchema, WizardCancelParamsSchema, WizardStatusParamsSchema, WizardStepSchema, WizardNextResultSchema, WizardStartResultSchema, WizardStatusResultSchema, TalkConfigParamsSchema, TalkConfigResultSchema, ChannelsStatusParamsSchema, ChannelsStatusResultSchema, ChannelsLogoutParamsSchema, WebLoginStartParamsSchema, WebLoginWaitParamsSchema, AgentSummarySchema, AgentsFileEntrySchema, AgentsCreateParamsSchema, AgentsCreateResultSchema, AgentsUpdateParamsSchema, AgentsUpdateResultSchema, AgentsDeleteParamsSchema, AgentsDeleteResultSchema, AgentsFilesListParamsSchema, AgentsFilesListResultSchema, AgentsFilesGetParamsSchema, AgentsFilesGetResultSchema, AgentsFilesSetParamsSchema, AgentsFilesSetResultSchema, AgentsListParamsSchema, AgentsListResultSchema, TasksListParamsSchema, TasksListResultSchema, ModelsListParamsSchema, SkillsStatusParamsSchema, SkillsInstallParamsSchema, SkillsUpdateParamsSchema, CronJobSchema, CronListParamsSchema, CronStatusParamsSchema, CronAddParamsSchema, CronUpdateParamsSchema, CronRemoveParamsSchema, CronRunParamsSchema, CronRunsParamsSchema, LogsTailParamsSchema, LogsTailResultSchema, ChatHistoryParamsSchema, ChatSendParamsSchema, ChatInjectParamsSchema, UpdateRunParamsSchema, TickEventSchema, ShutdownEventSchema, ProtocolSchemas, PROTOCOL_VERSION, ErrorCodes, errorShape, };
597
- export type { GatewayFrame, ConnectParams, HelloOk, RequestFrame, ResponseFrame, EventFrame, PresenceEntry, Snapshot, ErrorShape, StateVersion, AgentEvent, AgentIdentityParams, AgentIdentityResult, AgentWaitParams, ChatEvent, TickEvent, ShutdownEvent, WakeParams, NodePairRequestParams, NodePairListParams, NodePairApproveParams, DevicePairListParams, DevicePairApproveParams, DevicePairRejectParams, ConfigGetParams, ConfigSetParams, ConfigApplyParams, ConfigPatchParams, ConfigSchemaParams, ConfigSchemaResponse, WizardStartParams, WizardNextParams, WizardCancelParams, WizardStatusParams, WizardStep, WizardNextResult, WizardStartResult, WizardStatusResult, TalkConfigParams, TalkConfigResult, TalkModeParams, ChannelsStatusParams, ChannelsStatusResult, ChannelsLogoutParams, WebLoginStartParams, WebLoginWaitParams, AgentSummary, AgentsFileEntry, AgentsCreateParams, AgentsCreateResult, AgentsUpdateParams, AgentsUpdateResult, AgentsDeleteParams, AgentsDeleteResult, AgentsFilesListParams, AgentsFilesListResult, AgentsFilesGetParams, AgentsFilesGetResult, AgentsFilesSetParams, AgentsFilesSetResult, AgentsListParams, AgentsListResult, TasksListParams, TasksListResult, SkillsStatusParams, SkillsBinsParams, SkillsBinsResult, SkillsInstallParams, SkillsUpdateParams, NodePairRejectParams, NodePairVerifyParams, NodeListParams, NodeInvokeParams, NodeInvokeResultParams, NodeEventParams, SessionsListParams, SessionsPreviewParams, SessionsResolveParams, SessionsPatchParams, SessionsPatchResult, SessionsResetParams, SessionsDeleteParams, SessionsCompactParams, SessionsUsageParams, CronJob, CronListParams, CronStatusParams, CronAddParams, CronUpdateParams, CronRemoveParams, CronRunParams, CronRunsParams, CronRunLogEntry, ExecApprovalsGetParams, ExecApprovalsSetParams, ExecApprovalsSnapshot, LogsTailParams, LogsTailResult, PollParams, UpdateRunParams, ChatInjectParams, };
602
+ export { ConnectParamsSchema, HelloOkSchema, RequestFrameSchema, ResponseFrameSchema, EventFrameSchema, GatewayFrameSchema, PresenceEntrySchema, SnapshotSchema, ErrorShapeSchema, StateVersionSchema, AgentEventSchema, ChatEventSchema, SendParamsSchema, PollParamsSchema, AgentParamsSchema, AgentIdentityParamsSchema, AgentIdentityResultSchema, WakeParamsSchema, PushTestParamsSchema, PushTestResultSchema, NodePairRequestParamsSchema, NodePairListParamsSchema, NodePairApproveParamsSchema, NodePairRejectParamsSchema, NodePairVerifyParamsSchema, NodeListParamsSchema, NodeInvokeParamsSchema, SessionsListParamsSchema, SessionsPreviewParamsSchema, SessionsSearchParamsSchema, SessionsSearchResultSchema, SessionsPatchParamsSchema, SessionsResetParamsSchema, SessionsRestoreParamsSchema, SessionsAdoptFileParamsSchema, SessionsFavoriteFileParamsSchema, SessionsDeleteFileParamsSchema, SessionsDeleteParamsSchema, SessionsCompactParamsSchema, SessionsUsageParamsSchema, ConfigGetParamsSchema, ConfigSetParamsSchema, ConfigApplyParamsSchema, ConfigPatchParamsSchema, ConfigSchemaParamsSchema, ConfigSchemaResponseSchema, WizardStartParamsSchema, WizardNextParamsSchema, WizardCancelParamsSchema, WizardStatusParamsSchema, WizardStepSchema, WizardNextResultSchema, WizardStartResultSchema, WizardStatusResultSchema, TalkConfigParamsSchema, TalkConfigResultSchema, ChannelsStatusParamsSchema, ChannelsStatusResultSchema, ChannelsLogoutParamsSchema, WebLoginStartParamsSchema, WebLoginWaitParamsSchema, AgentSummarySchema, AgentsFileEntrySchema, AgentsCreateParamsSchema, AgentsCreateResultSchema, AgentsUpdateParamsSchema, AgentsUpdateResultSchema, AgentsDeleteParamsSchema, AgentsDeleteResultSchema, AgentsFilesListParamsSchema, AgentsFilesListResultSchema, AgentsFilesGetParamsSchema, AgentsFilesGetResultSchema, AgentsFilesSetParamsSchema, AgentsFilesSetResultSchema, AgentsListParamsSchema, AgentsListResultSchema, TasksListParamsSchema, TasksListResultSchema, ModelsListParamsSchema, SkillsStatusParamsSchema, SkillsInstallParamsSchema, SkillsUpdateParamsSchema, CronJobSchema, CronListParamsSchema, CronStatusParamsSchema, CronAddParamsSchema, CronUpdateParamsSchema, CronRemoveParamsSchema, CronRunParamsSchema, CronRunsParamsSchema, LogsTailParamsSchema, LogsTailResultSchema, ChatHistoryParamsSchema, ChatSendParamsSchema, ChatInjectParamsSchema, UpdateRunParamsSchema, TickEventSchema, ShutdownEventSchema, ProtocolSchemas, PROTOCOL_VERSION, ErrorCodes, errorShape, };
603
+ export type { GatewayFrame, ConnectParams, HelloOk, RequestFrame, ResponseFrame, EventFrame, PresenceEntry, Snapshot, ErrorShape, StateVersion, AgentEvent, AgentIdentityParams, AgentIdentityResult, AgentWaitParams, ChatEvent, TickEvent, ShutdownEvent, WakeParams, NodePairRequestParams, NodePairListParams, NodePairApproveParams, DevicePairListParams, DevicePairApproveParams, DevicePairRejectParams, ConfigGetParams, ConfigSetParams, ConfigApplyParams, ConfigPatchParams, ConfigSchemaParams, ConfigSchemaResponse, WizardStartParams, WizardNextParams, WizardCancelParams, WizardStatusParams, WizardStep, WizardNextResult, WizardStartResult, WizardStatusResult, TalkConfigParams, TalkConfigResult, TalkModeParams, ChannelsStatusParams, ChannelsStatusResult, ChannelsLogoutParams, WebLoginStartParams, WebLoginWaitParams, AgentSummary, AgentsFileEntry, AgentsCreateParams, AgentsCreateResult, AgentsUpdateParams, AgentsUpdateResult, AgentsDeleteParams, AgentsDeleteResult, AgentsFilesListParams, AgentsFilesListResult, AgentsFilesGetParams, AgentsFilesGetResult, AgentsFilesSetParams, AgentsFilesSetResult, AgentsListParams, AgentsListResult, TasksListParams, TasksListResult, SkillsStatusParams, SkillsBinsParams, SkillsBinsResult, SkillsInstallParams, SkillsUpdateParams, NodePairRejectParams, NodePairVerifyParams, NodeListParams, NodeInvokeParams, NodeInvokeResultParams, NodeEventParams, SessionsListParams, SessionsPreviewParams, SessionsSearchParams, SessionsSearchResult, SessionsResolveParams, SessionsPatchParams, SessionsPatchResult, SessionsResetParams, SessionsDeleteParams, SessionsCompactParams, SessionsUsageParams, CronJob, CronListParams, CronStatusParams, CronAddParams, CronUpdateParams, CronRemoveParams, CronRunParams, CronRunsParams, CronRunLogEntry, ExecApprovalsGetParams, ExecApprovalsSetParams, ExecApprovalsSnapshot, LogsTailParams, LogsTailResult, PollParams, UpdateRunParams, ChatInjectParams, };
@@ -23,6 +23,45 @@ export declare const SessionsPreviewParamsSchema: import("@sinclair/typebox").TO
23
23
  limit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
24
24
  maxChars: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
25
25
  }>;
26
+ /**
27
+ * Hybrid (vector + FTS) search across session transcripts. Piggybacks on
28
+ * the memory-search infrastructure with a `source = "sessions"` filter and
29
+ * remaps the raw chunk path back to the owning session-key via the agent's
30
+ * sessions.json index.
31
+ */
32
+ export declare const SessionsSearchParamsSchema: import("@sinclair/typebox").TObject<{
33
+ query: import("@sinclair/typebox").TString;
34
+ limit: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
35
+ minScore: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
36
+ agentId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
37
+ }>;
38
+ export declare const SessionsSearchMatchSchema: import("@sinclair/typebox").TObject<{
39
+ sessionKey: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
40
+ sessionId: import("@sinclair/typebox").TString;
41
+ file: import("@sinclair/typebox").TString;
42
+ lineStart: import("@sinclair/typebox").TInteger;
43
+ lineEnd: import("@sinclair/typebox").TInteger;
44
+ snippet: import("@sinclair/typebox").TString;
45
+ score: import("@sinclair/typebox").TNumber;
46
+ label: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
47
+ displayName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
48
+ updatedAt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
49
+ }>;
50
+ export declare const SessionsSearchResultSchema: import("@sinclair/typebox").TObject<{
51
+ matches: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
52
+ sessionKey: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
53
+ sessionId: import("@sinclair/typebox").TString;
54
+ file: import("@sinclair/typebox").TString;
55
+ lineStart: import("@sinclair/typebox").TInteger;
56
+ lineEnd: import("@sinclair/typebox").TInteger;
57
+ snippet: import("@sinclair/typebox").TString;
58
+ score: import("@sinclair/typebox").TNumber;
59
+ label: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
60
+ displayName: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
61
+ updatedAt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
62
+ }>>;
63
+ agentId: import("@sinclair/typebox").TString;
64
+ }>;
26
65
  export declare const SessionsResolveParamsSchema: import("@sinclair/typebox").TObject<{
27
66
  key: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
28
67
  sessionId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
@@ -10,7 +10,7 @@ import type { ConnectParamsSchema, ErrorShapeSchema, EventFrameSchema, GatewayFr
10
10
  import type { ChatAbortParamsSchema, ChatEventSchema, ChatInjectParamsSchema, LogsTailParamsSchema, LogsTailResultSchema } from "./logs-chat.js";
11
11
  import type { NodeDescribeParamsSchema, NodeEventParamsSchema, NodeInvokeParamsSchema, NodeInvokeResultParamsSchema, NodeListParamsSchema, NodePairApproveParamsSchema, NodePairListParamsSchema, NodePairRejectParamsSchema, NodePairRequestParamsSchema, NodePairVerifyParamsSchema, NodeRenameParamsSchema } from "./nodes.js";
12
12
  import type { PushTestParamsSchema, PushTestResultSchema } from "./push.js";
13
- import type { SessionsCompactParamsSchema, SessionsDeleteParamsSchema, SessionsListParamsSchema, SessionsPatchParamsSchema, SessionsPreviewParamsSchema, SessionsResetParamsSchema, SessionsRestoreParamsSchema, SessionsAdoptFileParamsSchema, SessionsFavoriteFileParamsSchema, SessionsDeleteFileParamsSchema, SessionsResolveParamsSchema, SessionsUsageParamsSchema } from "./sessions.js";
13
+ import type { SessionsCompactParamsSchema, SessionsDeleteParamsSchema, SessionsListParamsSchema, SessionsPatchParamsSchema, SessionsPreviewParamsSchema, SessionsSearchParamsSchema, SessionsSearchResultSchema, SessionsResetParamsSchema, SessionsRestoreParamsSchema, SessionsAdoptFileParamsSchema, SessionsFavoriteFileParamsSchema, SessionsDeleteFileParamsSchema, SessionsResolveParamsSchema, SessionsUsageParamsSchema } from "./sessions.js";
14
14
  import type { PresenceEntrySchema, SnapshotSchema, StateVersionSchema } from "./snapshot.js";
15
15
  import type { TasksListParamsSchema, TasksListResultSchema } from "./tasks.js";
16
16
  import type { WizardCancelParamsSchema, WizardNextParamsSchema, WizardNextResultSchema, WizardStartParamsSchema, WizardStartResultSchema, WizardStatusParamsSchema, WizardStatusResultSchema, WizardStepSchema } from "./wizard.js";
@@ -45,6 +45,8 @@ export type PushTestParams = Static<typeof PushTestParamsSchema>;
45
45
  export type PushTestResult = Static<typeof PushTestResultSchema>;
46
46
  export type SessionsListParams = Static<typeof SessionsListParamsSchema>;
47
47
  export type SessionsPreviewParams = Static<typeof SessionsPreviewParamsSchema>;
48
+ export type SessionsSearchParams = Static<typeof SessionsSearchParamsSchema>;
49
+ export type SessionsSearchResult = Static<typeof SessionsSearchResultSchema>;
48
50
  export type SessionsResolveParams = Static<typeof SessionsResolveParamsSchema>;
49
51
  export type SessionsPatchParams = Static<typeof SessionsPatchParamsSchema>;
50
52
  export type SessionsResetParams = Static<typeof SessionsResetParamsSchema>;
@@ -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-LZax-i7K.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-Cjjf4VYT.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-D1qaoERA.js";
50
+ import { r as resolveWhatsAppHeartbeatRecipients } from "./channel-web-BhqGIC7q.js";
51
51
  import "./image-DFyINnvE.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-CVuMChKq.js";
55
+ import "./manager-DdOb0Em2.js";
56
56
  import "./sqlite-CmVrFEYD.js";
57
57
  import "./commands-registry-BuYpmEx-.js";
58
58
  import "./send-CGhw9mO3.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-DnknLqQP.js")]);
3973
+ const [{ runL3Cycle, runL3CycleIfDue }, { createSynthesizer }] = await Promise.all([import("./consolidate-CafShdsH.js"), import("./synthesis-CZ8BYNXP.js")]);
3974
3974
  const synthesize = createSynthesizer({
3975
3975
  cfg: this.cfg,
3976
3976
  agentId: this.agentId,