@symerian/symi 2.8.16 → 2.8.17

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 (206) 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-9cAyC5ED.js} +5 -5
  4. package/dist/{agents.config-C0iGGY9q.js → agents.config-Cu9zTq04.js} +1 -1
  5. package/dist/{agents.config-BIIkG8rN.js → agents.config-DuwhYjpi.js} +1 -1
  6. package/dist/{audit-xiwEIT96.js → audit-C9nq99IR.js} +2 -2
  7. package/dist/{audit-Dr_8rC6G.js → audit-CuKP86d_.js} +2 -2
  8. package/dist/{auth-choice-BcCUgEa4.js → auth-choice-CPqyqc93.js} +2 -2
  9. package/dist/{auth-choice-jyLLyEpy.js → auth-choice-DeNzlUAR.js} +2 -2
  10. package/dist/{banner-DSRsscTp.js → banner-S1NGA6-s.js} +1 -1
  11. package/dist/{browser-cli-IXepRCZR.js → browser-cli-ClgQ-C8E.js} +3 -3
  12. package/dist/{browser-cli-BQeCPbES.js → browser-cli-DuPPIcuV.js} +3 -3
  13. package/dist/build-info.json +3 -3
  14. package/dist/bundled/boot-md/handler.js +2 -2
  15. package/dist/bundled/session-memory/handler.js +2 -2
  16. package/dist/{call-BkJK3eYP.js → call-DYfKEdwh.js} +2 -1
  17. package/dist/{call-CAGvQYXj.js → call-M4YyUnwu.js} +2 -1
  18. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  19. package/dist/{channel-options-Cr_if7it.js → channel-options-C0v4BJgp.js} +1 -1
  20. package/dist/{channel-options-BSdsxwj0.js → channel-options-C6y7Khvq.js} +1 -1
  21. package/dist/{channel-web-C3gcPe4C.js → channel-web-DirOFV_n.js} +1 -1
  22. package/dist/{channels-cli-O7MxdB1l.js → channels-cli-BhNHckMo.js} +9 -9
  23. package/dist/{channels-cli-Bn6mTlYq.js → channels-cli-By_SbriI.js} +9 -9
  24. package/dist/cli/daemon-cli.js +1 -1
  25. package/dist/{cli-RIwsXnB-.js → cli-B1QQv1cb.js} +6 -6
  26. package/dist/{cli-CLOf6U-k.js → cli-Bx4RQCuK.js} +6 -6
  27. package/dist/{client-Cmq13-uF.js → client-CJIMV1WD.js} +36 -1
  28. package/dist/{client-CYsBIR3j.js → client-pd8kwOFJ.js} +36 -1
  29. package/dist/{command-registry-BiznuVYK.js → command-registry-uMOPbrbY.js} +11 -11
  30. package/dist/{completion-cli-BVG9ZtBG.js → completion-cli-B6s_3rEE.js} +2 -2
  31. package/dist/{completion-cli-D-xVtDhj.js → completion-cli-DVD79pVj.js} +1 -1
  32. package/dist/{config-cli-zd2upqe_.js → config-cli-DCGgd-ZL.js} +1 -1
  33. package/dist/{config-cli-CDTQQFyj.js → config-cli-DzudcNAD.js} +1 -1
  34. package/dist/{configure-Cu4CiLWY.js → configure-BybpK_1N.js} +6 -6
  35. package/dist/{configure-BHdczngQ.js → configure-CItWwZwI.js} +6 -6
  36. package/dist/control-ui/css/style.css +130 -0
  37. package/dist/control-ui/index.html +11 -0
  38. package/dist/control-ui/js/history.js +288 -8
  39. package/dist/{cron-cli-Dq2FEfK1.js → cron-cli-BEdmHCWZ.js} +3 -3
  40. package/dist/{cron-cli-CZCm3aLt.js → cron-cli-C8-Gv5dd.js} +3 -3
  41. package/dist/{daemon-cli-CweMes2K.js → daemon-cli-BFoJGCHZ.js} +2 -2
  42. package/dist/{daemon-cli-B2_uIgDM.js → daemon-cli-D6wyb9bo.js} +2 -2
  43. package/dist/daemon-cli.js +36 -0
  44. package/dist/{devices-cli-DeoPyzAd.js → devices-cli-BXc6DPkC.js} +2 -2
  45. package/dist/{devices-cli-3ui-Wcaj.js → devices-cli-CHt4I-7e.js} +2 -2
  46. package/dist/{doctor-completion-e-Ke-FnA.js → doctor-completion-Bf6dN4D-.js} +1 -1
  47. package/dist/{doctor-completion-ClveVbW_.js → doctor-completion-BkwgaO4G.js} +1 -1
  48. package/dist/entry.js +1 -1
  49. package/dist/{exec-approvals-cli-Bx9loYnQ.js → exec-approvals-cli-BBKVrFTj.js} +4 -4
  50. package/dist/{exec-approvals-cli-CTEn_Eu_.js → exec-approvals-cli-CKRDAo17.js} +4 -4
  51. package/dist/extensionAPI.js +2 -2
  52. package/dist/{gateway-cli-CBseg7zA.js → gateway-cli-7CVmb3cX.js} +17 -16
  53. package/dist/{gateway-cli-DGMuMxMT.js → gateway-cli-eNV6kb1V.js} +17 -16
  54. package/dist/{gateway-rpc-DbSbyIcL.js → gateway-rpc-BEfosIsg.js} +1 -1
  55. package/dist/{gateway-rpc-QsFn5Zr1.js → gateway-rpc-DZrB7Sl_.js} +1 -1
  56. package/dist/{glass-ui-ws-BU6qyCvM.js → glass-ui-ws-B4fsBuHx.js} +13 -13
  57. package/dist/{glass-ui-ws-B0WonpHP.js → glass-ui-ws-i91Ms6ts.js} +13 -13
  58. package/dist/{health-BrpUi4qW.js → health-C4tWTDu_.js} +2 -2
  59. package/dist/{health-d4gqJJCY.js → health-dA8r4WJ4.js} +2 -2
  60. package/dist/{hooks-cli-Dm2SU8AY.js → hooks-cli-DYn9nXX0.js} +7 -7
  61. package/dist/{hooks-cli-CBStbWME.js → hooks-cli-uGLWBIcW.js} +7 -7
  62. package/dist/index.js +11 -11
  63. package/dist/llm-slug-generator.js +2 -2
  64. package/dist/{logs-cli-R4WwQvR2.js → logs-cli-CsHpYc2M.js} +3 -3
  65. package/dist/{logs-cli-1hn28HCu.js → logs-cli-N5jQvJTm.js} +3 -3
  66. package/dist/{manager-B-5p7UGu.js → manager-BaSutzfz.js} +1 -1
  67. package/dist/{manager-DDboJTtn.js → manager-CgQo1mIM.js} +1 -1
  68. package/dist/{manager-CtwApSQo.js → manager-D6E6EGWa.js} +1 -1
  69. package/dist/{manager-BOvfAdfG.js → manager-DhGfNqfc.js} +1 -1
  70. package/dist/{memory-cli-BOxWccJu.js → memory-cli-BMb31chU.js} +3 -3
  71. package/dist/{memory-cli-D2QHGsxh.js → memory-cli-lJe72a5i.js} +3 -3
  72. package/dist/{models-Cn1cbmce.js → models-BITN17gY.js} +3 -3
  73. package/dist/{models-cli-Cdkkr4--.js → models-cli-C6JJWWoI.js} +7 -7
  74. package/dist/{models-cli-CXW-3Zot.js → models-cli-CHjxevMe.js} +8 -8
  75. package/dist/{node-cli-BBN6PoOG.js → node-cli-BD4E-Y8a.js} +1 -1
  76. package/dist/{node-cli-BsAzTrAx.js → node-cli-CwnTjFkG.js} +1 -1
  77. package/dist/{nodes-cli-t3azniiS.js → nodes-cli-DUD8_q_Q.js} +3 -3
  78. package/dist/{nodes-cli-DE60dv81.js → nodes-cli-Dv0NXhCO.js} +3 -3
  79. package/dist/{onboard-UB4D1vwP.js → onboard-C8Si08MS.js} +3 -3
  80. package/dist/{onboard-BJ9vVhFw.js → onboard-DdJV-Doq.js} +3 -3
  81. package/dist/{onboard-channels-Cfc9EhLj.js → onboard-channels-Cb-bemSg.js} +1 -1
  82. package/dist/{onboard-channels-Gfgyvx9N.js → onboard-channels-PQP9wlk8.js} +1 -1
  83. package/dist/{onboard-helpers-B7jBYbCU.js → onboard-helpers-CBxazphs.js} +1 -1
  84. package/dist/{onboard-helpers-DjlGq6iG.js → onboard-helpers-DWDNKmkJ.js} +1 -1
  85. package/dist/{onboard-remote-D7wGqONm.js → onboard-remote-DoIKLWXA.js} +1 -1
  86. package/dist/{onboard-remote-CXuHbtrT.js → onboard-remote-cZrkePlK.js} +1 -1
  87. package/dist/{onboard-skills-ChQnpMi-.js → onboard-skills-BjGYTueQ.js} +1 -1
  88. package/dist/{onboard-skills-BDhqz3te.js → onboard-skills-zauvnEui.js} +1 -1
  89. package/dist/{onboarding-Bv89FLSZ.js → onboarding-CAaoPaVQ.js} +7 -7
  90. package/dist/{onboarding-BfSg5GnT.js → onboarding-QAtuyHtA.js} +7 -7
  91. package/dist/{onboarding.finalize-B8MFYp8E.js → onboarding.finalize-BhlQmJlX.js} +12 -12
  92. package/dist/{onboarding.finalize-DMJTZPb_.js → onboarding.finalize-MuO2mvHv.js} +11 -11
  93. package/dist/{onboarding.gateway-config-Cm5jIfRz.js → onboarding.gateway-config-Dg12RcXA.js} +3 -3
  94. package/dist/{onboarding.gateway-config-wAyLcGRu.js → onboarding.gateway-config-uIRsaxMy.js} +3 -3
  95. package/dist/{pi-embedded-CzKPTG9K.js → pi-embedded-BUYKq7Wv.js} +41 -5
  96. package/dist/{plugin-registry-R7nyNT_4.js → plugin-registry-DEhkDNDx.js} +1 -1
  97. package/dist/{plugin-registry-CQAtbgft.js → plugin-registry-tXiHw0vr.js} +1 -1
  98. package/dist/plugin-sdk/{channel-web-D1qaoERA.js → channel-web-C7aP_KKZ.js} +1 -1
  99. package/dist/plugin-sdk/gateway/protocol/index.d.ts +9 -3
  100. package/dist/plugin-sdk/gateway/protocol/schema/sessions.d.ts +39 -0
  101. package/dist/plugin-sdk/gateway/protocol/schema/types.d.ts +3 -1
  102. package/dist/plugin-sdk/index.js +3 -3
  103. package/dist/plugin-sdk/{manager-CVuMChKq.js → manager-CvrDwB1Q.js} +1 -1
  104. package/dist/plugin-sdk/{reply-LZax-i7K.js → reply-BI7Rf3_S.js} +41 -5
  105. package/dist/plugin-sdk/{synthesis-DnknLqQP.js → synthesis-B3z0Jqt1.js} +2 -2
  106. package/dist/plugin-sdk/{web-DGGSyBgc.js → web-D2WrY-DI.js} +3 -3
  107. package/dist/{plugins-cli-DGWVBlc8.js → plugins-cli-ByG6o7D2.js} +7 -7
  108. package/dist/{plugins-cli-CyaM2yPX.js → plugins-cli-D1vPxTOQ.js} +7 -7
  109. package/dist/{program-2jsiC85C.js → program-Q44fKoq6.js} +12 -12
  110. package/dist/{program-context-DQg-ZH6A.js → program-context-C3QEc34t.js} +30 -30
  111. package/dist/{prompt-select-styled-Csj7D4id.js → prompt-select-styled-BSZrZcW2.js} +8 -8
  112. package/dist/{prompt-select-styled-CQJkA--o.js → prompt-select-styled-DBVeLysq.js} +8 -8
  113. package/dist/{provider-auth-helpers-DSq3qfws.js → provider-auth-helpers-Bm4cf-Ms.js} +1 -1
  114. package/dist/{provider-auth-helpers-C1rUolDI.js → provider-auth-helpers-rH91VXG-.js} +1 -1
  115. package/dist/{push-apns-Dv3XQClG.js → push-apns-CRD9IH1s.js} +1 -1
  116. package/dist/{push-apns-FvyXV3Um.js → push-apns-Cj10sUbK.js} +1 -1
  117. package/dist/{register.agent-DCIdzwFG.js → register.agent-DGDnsvVd.js} +10 -10
  118. package/dist/{register.agent-Cs5QU2Cd.js → register.agent-Dfu85lRL.js} +11 -11
  119. package/dist/{register.configure-BBKyd--9.js → register.configure-BcdyiQui.js} +13 -13
  120. package/dist/{register.configure-C64fHXoT.js → register.configure-FCTbPCwe.js} +13 -13
  121. package/dist/{register.maintenance-DRUMeCun.js → register.maintenance-DvDwpW6B.js} +12 -12
  122. package/dist/{register.maintenance-D99fy4mM.js → register.maintenance-Y8P9AnLe.js} +13 -13
  123. package/dist/{register.message-BL30Nofx.js → register.message-C57ubt4f.js} +7 -7
  124. package/dist/{register.message-CelO3y3f.js → register.message-mTqwOntI.js} +7 -7
  125. package/dist/{register.onboard-Cb9K2U81.js → register.onboard-MIChlygg.js} +9 -9
  126. package/dist/{register.onboard-j6fg7rSF.js → register.onboard-YCmMzAW-.js} +9 -9
  127. package/dist/{register.setup-xyGsh3Fi.js → register.setup-DzUZ2x6y.js} +9 -9
  128. package/dist/{register.setup-BfbJZE5C.js → register.setup-sQeN5xag.js} +9 -9
  129. package/dist/{register.status-health-sessions-CpnBFwbx.js → register.status-health-sessions-DaPK2tow.js} +9 -9
  130. package/dist/{register.status-health-sessions-BE4TcJ1J.js → register.status-health-sessions-DsptpS7K.js} +9 -9
  131. package/dist/{register.subclis-8cGjLTmN.js → register.subclis-17z5d7uO.js} +20 -20
  132. package/dist/{reply-CaGCmutq.js → reply-2awhibgG.js} +7 -7
  133. package/dist/{rpc-St4eAsjR.js → rpc-BKlQ97aZ.js} +1 -1
  134. package/dist/{rpc-C3ZUAjXK.js → rpc-DC4ol5Xa.js} +1 -1
  135. package/dist/{run-main-BzZuJeMa.js → run-main-CfVO6DFS.js} +20 -20
  136. package/dist/{security-cli-BSvxNP9m.js → security-cli-BfiJ3e0Y.js} +3 -3
  137. package/dist/{security-cli-B8gavsuQ.js → security-cli-CIB7kqEk.js} +3 -3
  138. package/dist/{server-methods-DEV38b_O.js → server-methods-Bdgs89ve.js} +73 -12
  139. package/dist/{server-methods-BKlZejQC.js → server-methods-D_g3GJhv.js} +73 -12
  140. package/dist/{server-node-events-3FL5gBKp.js → server-node-events-BZN3RZ8H.js} +7 -7
  141. package/dist/{server-node-events-BX5JLPyV.js → server-node-events-Cvgmf8fS.js} +7 -7
  142. package/dist/{status-L76LBY6B.js → status-Ca_VZkZV.js} +6 -6
  143. package/dist/{status-h7VP4Vpq.js → status-CwqBkxi2.js} +1 -1
  144. package/dist/{status-uBCH1pzQ.js → status-DcxWlds6.js} +1 -1
  145. package/dist/{status-zNfi0s3F.js → status-Dkr4Celv.js} +6 -6
  146. package/dist/{subagent-registry-DlIPWOrx.js → subagent-registry-CncIZPCd.js} +7 -7
  147. package/dist/{synthesis-BfB-Lbjy.js → synthesis-CTC73eY9.js} +6 -6
  148. package/dist/{synthesis-1XabTYcd.js → synthesis-CxvpkXBW.js} +6 -6
  149. package/dist/{synthesis-D3EObLPS.js → synthesis-DOmJ2Gay.js} +2 -2
  150. package/dist/{synthesis-D1xCmGZi.js → synthesis-lD0Vb_9q.js} +2 -2
  151. package/dist/{system-cli-BN9MXNk7.js → system-cli-BERSpUjO.js} +3 -3
  152. package/dist/{system-cli-CD5latLh.js → system-cli-C61hzNPk.js} +3 -3
  153. package/dist/{tui-DLkE0D7e.js → tui-CI_zqapL.js} +2 -2
  154. package/dist/{tui-Cu4TZK3I.js → tui-Dg_cvgVP.js} +2 -2
  155. package/dist/{tui-cli-DC9Bq-N_.js → tui-cli-BD1cbShC.js} +3 -3
  156. package/dist/{tui-cli-BfuEq3Q-.js → tui-cli-DtBW_VCL.js} +3 -3
  157. package/dist/{unified-runner-KFxqPxWe.js → unified-runner-JQaSdhSg.js} +41 -5
  158. package/dist/{update-cli-CwtAWyeY.js → update-cli-BO1uw-SU.js} +14 -14
  159. package/dist/{update-cli-bTfRfI4b.js → update-cli-CplnPSZ5.js} +13 -13
  160. package/dist/{update-runner-BixvbAbN.js → update-runner-DFp9PDMN.js} +1 -1
  161. package/dist/{update-runner-DeT8NIX6.js → update-runner-Df4mjndq.js} +1 -1
  162. package/dist/{web-YSRcfzpP.js → web-BEDc6iEz.js} +2 -2
  163. package/dist/{web-CO0AUYgu.js → web-CCEVjDcU.js} +6 -6
  164. package/dist/{web-Bwrtjkmy.js → web-CZoQ03ZE.js} +2 -2
  165. package/dist/{web-N4FG6nyF.js → web-Dn33Cd3-.js} +7 -7
  166. package/extensions/bluebubbles/package.json +1 -1
  167. package/extensions/copilot-proxy/package.json +1 -1
  168. package/extensions/diagnostics-otel/package.json +1 -1
  169. package/extensions/discord/package.json +1 -1
  170. package/extensions/feishu/package.json +1 -1
  171. package/extensions/google-antigravity-auth/package.json +1 -1
  172. package/extensions/google-gemini-cli-auth/package.json +1 -1
  173. package/extensions/googlechat/package.json +1 -1
  174. package/extensions/imessage/package.json +1 -1
  175. package/extensions/irc/package.json +1 -1
  176. package/extensions/learning-loop/package.json +1 -1
  177. package/extensions/line/package.json +1 -1
  178. package/extensions/llm-task/package.json +1 -1
  179. package/extensions/matrix/CHANGELOG.md +6 -0
  180. package/extensions/matrix/package.json +1 -1
  181. package/extensions/mattermost/package.json +1 -1
  182. package/extensions/memory-core/package.json +1 -1
  183. package/extensions/memory-lancedb/package.json +1 -1
  184. package/extensions/minimax-portal-auth/package.json +1 -1
  185. package/extensions/msteams/CHANGELOG.md +6 -0
  186. package/extensions/msteams/package.json +1 -1
  187. package/extensions/nextcloud-talk/package.json +1 -1
  188. package/extensions/nostr/CHANGELOG.md +6 -0
  189. package/extensions/nostr/package.json +1 -1
  190. package/extensions/open-prose/package.json +1 -1
  191. package/extensions/outlook/package.json +1 -1
  192. package/extensions/pipeline/package.json +1 -1
  193. package/extensions/signal/package.json +1 -1
  194. package/extensions/slack/package.json +1 -1
  195. package/extensions/telegram/package.json +1 -1
  196. package/extensions/tlon/package.json +1 -1
  197. package/extensions/twitch/CHANGELOG.md +6 -0
  198. package/extensions/twitch/package.json +1 -1
  199. package/extensions/voice-call/CHANGELOG.md +6 -0
  200. package/extensions/voice-call/package.json +1 -1
  201. package/extensions/whatsapp/package.json +1 -1
  202. package/extensions/zalo/CHANGELOG.md +6 -0
  203. package/extensions/zalo/package.json +1 -1
  204. package/extensions/zalouser/CHANGELOG.md +6 -0
  205. package/extensions/zalouser/package.json +1 -1
  206. package/package.json +1 -1
@@ -14,11 +14,16 @@
14
14
  const historyBtn = document.getElementById("history-btn");
15
15
  const archiveToast = document.getElementById("session-archive-toast");
16
16
  const archiveToastLink = document.getElementById("session-archive-link");
17
+ const searchInput = document.getElementById("history-search-input");
18
+ const searchClear = document.getElementById("history-search-clear");
17
19
 
18
20
  let isOpen = false;
19
21
  let toastTimer = null;
20
22
  let __viewingFile = null;
21
23
  const DELETE_CONFIRM_MS = 5000;
24
+ const SEARCH_DEBOUNCE_MS = 250;
25
+ let searchDebounceTimer = null;
26
+ let activeSearchToken = 0;
22
27
 
23
28
  // ── Open / close ──────────────────────────────────────────────────────
24
29
  function openDrawer() {
@@ -35,6 +40,13 @@
35
40
  overlay.classList.remove("open");
36
41
  drawer.setAttribute("aria-hidden", "true");
37
42
  __viewingFile = null;
43
+ showToolCalls = false;
44
+ if (searchInput && searchInput.value) {
45
+ searchInput.value = "";
46
+ if (searchClear) {
47
+ searchClear.hidden = true;
48
+ }
49
+ }
38
50
  }
39
51
 
40
52
  historyBtn.addEventListener("click", () => (isOpen ? closeDrawer() : openDrawer()));
@@ -46,6 +58,48 @@
46
58
  }
47
59
  });
48
60
 
61
+ // ── Cross-session search ─────────────────────────────────────────────
62
+ if (searchInput) {
63
+ searchInput.addEventListener("input", () => {
64
+ const value = searchInput.value;
65
+ if (searchClear) {
66
+ searchClear.hidden = !value;
67
+ }
68
+ if (searchDebounceTimer) {
69
+ clearTimeout(searchDebounceTimer);
70
+ }
71
+ searchDebounceTimer = setTimeout(() => {
72
+ const trimmed = value.trim();
73
+ if (!trimmed) {
74
+ void loadSessionList();
75
+ } else {
76
+ void runSessionSearch(trimmed);
77
+ }
78
+ }, SEARCH_DEBOUNCE_MS);
79
+ });
80
+ searchInput.addEventListener("keydown", (e) => {
81
+ if (e.key === "Escape" && searchInput.value) {
82
+ e.stopPropagation();
83
+ searchInput.value = "";
84
+ if (searchClear) {
85
+ searchClear.hidden = true;
86
+ }
87
+ void loadSessionList();
88
+ }
89
+ });
90
+ }
91
+ if (searchClear) {
92
+ searchClear.addEventListener("click", () => {
93
+ if (!searchInput) {
94
+ return;
95
+ }
96
+ searchInput.value = "";
97
+ searchClear.hidden = true;
98
+ searchInput.focus();
99
+ void loadSessionList();
100
+ });
101
+ }
102
+
49
103
  // ── Session list ──────────────────────────────────────────────────────
50
104
  async function loadSessionList() {
51
105
  drawerBody.innerHTML = '<div class="history-loading">Loading sessions…</div>';
@@ -228,6 +282,132 @@
228
282
  archived: { label: "ARCHIVED", className: "badge-archived" },
229
283
  };
230
284
 
285
+ // ── Cross-session search ─────────────────────────────────────────────
286
+ async function runSessionSearch(query) {
287
+ if (!window.gateway?.connected) {
288
+ drawerBody.innerHTML = '<div class="history-empty">Gateway not connected.</div>';
289
+ return;
290
+ }
291
+ const token = ++activeSearchToken;
292
+ drawerBody.innerHTML = '<div class="history-loading">Searching…</div>';
293
+
294
+ let result;
295
+ try {
296
+ result = await window.gateway.rpc("sessions.search", { query, limit: 24 });
297
+ } catch (err) {
298
+ if (token !== activeSearchToken) {
299
+ return;
300
+ }
301
+ drawerBody.innerHTML =
302
+ '<div class="history-empty">Search failed: ' +
303
+ escHtml(err?.message ?? String(err)) +
304
+ "</div>";
305
+ return;
306
+ }
307
+
308
+ // Drop stale responses if a newer search was kicked off mid-flight.
309
+ if (token !== activeSearchToken) {
310
+ return;
311
+ }
312
+
313
+ const matches = Array.isArray(result?.matches) ? result.matches : [];
314
+ if (!matches.length) {
315
+ drawerBody.innerHTML = `<div class="history-search-status">No matches for ${escHtml(
316
+ query,
317
+ )}.</div>`;
318
+ return;
319
+ }
320
+
321
+ drawerBody.innerHTML = "";
322
+ const status = document.createElement("div");
323
+ status.className = "history-search-status";
324
+ status.textContent = `${matches.length} match${matches.length === 1 ? "" : "es"} for "${query}"`;
325
+ drawerBody.appendChild(status);
326
+
327
+ const section = document.createElement("section");
328
+ section.className = "history-section";
329
+ for (const match of matches) {
330
+ section.appendChild(renderSearchMatch(match, query));
331
+ }
332
+ drawerBody.appendChild(section);
333
+ }
334
+
335
+ function renderSearchMatch(match, query) {
336
+ const item = document.createElement("div");
337
+ item.className = "history-session-item history-session-search-match";
338
+
339
+ const title =
340
+ match.label ||
341
+ match.displayName ||
342
+ match.sessionKey ||
343
+ `session ${match.sessionId.slice(0, 8)}`;
344
+ const when = match.updatedAt ? formatTimestamp(new Date(match.updatedAt).toISOString()) : "—";
345
+ const lineRange =
346
+ match.lineStart === match.lineEnd
347
+ ? `line ${match.lineStart}`
348
+ : `lines ${match.lineStart}–${match.lineEnd}`;
349
+ const score = typeof match.score === "number" ? match.score.toFixed(2) : "—";
350
+ const snippetHtml = highlightSnippet(match.snippet ?? "", query);
351
+
352
+ const canLoad = Boolean(match.sessionKey);
353
+ const footerHtml = canLoad
354
+ ? `<footer class="history-session-actions">
355
+ <button class="history-load-btn">Load Session</button>
356
+ </footer>`
357
+ : "";
358
+
359
+ item.innerHTML = `
360
+ <header class="history-session-header">
361
+ <span class="history-session-badge badge-past">MATCH</span>
362
+ <span class="history-session-date">${escHtml(title)}</span>
363
+ </header>
364
+ <div class="history-match-snippet">${snippetHtml}</div>
365
+ <div class="history-match-meta">
366
+ <span>${escHtml(when)}</span>
367
+ <span>${escHtml(lineRange)}</span>
368
+ <span>score ${escHtml(score)}</span>
369
+ </div>
370
+ ${footerHtml}
371
+ `;
372
+
373
+ const loadBtn = item.querySelector(".history-load-btn");
374
+ loadBtn?.addEventListener("click", async (e) => {
375
+ e.stopPropagation();
376
+ if (!match.sessionKey) {
377
+ return;
378
+ }
379
+ // Adopt-by-file using the session's current transcript file (basename).
380
+ await loadRow({ file: match.sessionId + ".jsonl" });
381
+ });
382
+
383
+ item.addEventListener("click", (e) => {
384
+ const target = e.target;
385
+ if (target instanceof Element && target.closest("button")) {
386
+ return;
387
+ }
388
+ void loadTranscript(match.sessionId + ".jsonl", title);
389
+ });
390
+
391
+ return item;
392
+ }
393
+
394
+ function highlightSnippet(text, query) {
395
+ if (!text) {
396
+ return "";
397
+ }
398
+ if (!query) {
399
+ return escHtml(text);
400
+ }
401
+ const safeText = escHtml(text);
402
+ const escapedQuery = query.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
403
+ try {
404
+ const re = new RegExp(escapedQuery, "gi");
405
+ return safeText.replace(re, (m) => `<mark>${m}</mark>`);
406
+ } catch {
407
+ return safeText;
408
+ }
409
+ }
410
+
231
411
  // ── Actions ───────────────────────────────────────────────────────────
232
412
 
233
413
  async function toggleFavorite(row, favBtn) {
@@ -331,6 +511,12 @@
331
511
  }
332
512
 
333
513
  // ── Transcript viewer ─────────────────────────────────────────────────
514
+ // Per-drawer-session preference: whether the transcript modal includes
515
+ // tool_use / tool_result content blocks alongside chat text. Defaults
516
+ // off (matches the historical view); the toggle button in the banner
517
+ // flips it for the current viewing session, then resets on close.
518
+ let showToolCalls = false;
519
+
334
520
  async function loadTranscript(file, label) {
335
521
  __viewingFile = file;
336
522
  drawerBody.innerHTML = '<div class="history-loading">Loading transcript…</div>';
@@ -345,16 +531,31 @@
345
531
  return;
346
532
  }
347
533
 
534
+ renderTranscript(messages, label);
535
+ }
536
+
537
+ function renderTranscript(messages, label) {
348
538
  drawerBody.innerHTML = "";
349
539
 
350
540
  const banner = document.createElement("div");
351
541
  banner.className = "archive-banner";
352
542
  banner.innerHTML = `
353
543
  <span class="archive-banner-label">◈ ${escHtml(label)}</span>
354
- <button class="archive-banner-back" id="archive-back-btn">← All Sessions</button>
544
+ <div class="archive-banner-actions">
545
+ <button class="archive-banner-toggle ${showToolCalls ? "active" : ""}"
546
+ id="archive-tools-toggle"
547
+ aria-pressed="${showToolCalls ? "true" : "false"}">
548
+ ${showToolCalls ? "Hide tool calls" : "Show tool calls"}
549
+ </button>
550
+ <button class="archive-banner-back" id="archive-back-btn">← All Sessions</button>
551
+ </div>
355
552
  `;
356
553
  drawerBody.appendChild(banner);
357
554
  drawerBody.querySelector("#archive-back-btn").addEventListener("click", loadSessionList);
555
+ drawerBody.querySelector("#archive-tools-toggle").addEventListener("click", () => {
556
+ showToolCalls = !showToolCalls;
557
+ renderTranscript(messages, label);
558
+ });
358
559
 
359
560
  const container = document.createElement("div");
360
561
  container.className = "history-transcript";
@@ -363,25 +564,104 @@
363
564
  if (!relevant.length) {
364
565
  container.innerHTML = '<div class="history-empty">No chat messages in this session.</div>';
365
566
  } else {
567
+ let renderedAny = false;
366
568
  for (const msg of relevant) {
569
+ const text = extractMsgText(msg);
570
+ const tools = showToolCalls ? extractToolBlocks(msg) : [];
571
+ if (!text.trim() && tools.length === 0) {
572
+ continue;
573
+ }
574
+ renderedAny = true;
367
575
  const el = document.createElement("div");
368
576
  el.className = `history-msg ${msg.role}`;
369
577
  const roleLabel = msg.role === "user" ? "YOU" : "SYMI";
370
- const text = extractMsgText(msg);
371
- if (!text.trim()) {
372
- continue;
578
+
579
+ let html = `<div class="history-msg-role ${msg.role}">${roleLabel}</div>`;
580
+ if (text.trim()) {
581
+ html += `<div class="history-msg-text">${escHtml(text)}</div>`;
373
582
  }
374
- el.innerHTML = `
375
- <div class="history-msg-role ${msg.role}">${roleLabel}</div>
376
- <div class="history-msg-text">${escHtml(text)}</div>
377
- `;
583
+ for (const block of tools) {
584
+ html += renderToolBlock(block);
585
+ }
586
+ el.innerHTML = html;
378
587
  container.appendChild(el);
379
588
  }
589
+ if (!renderedAny) {
590
+ container.innerHTML = '<div class="history-empty">No chat messages in this session.</div>';
591
+ }
380
592
  }
381
593
 
382
594
  drawerBody.appendChild(container);
383
595
  }
384
596
 
597
+ function extractToolBlocks(msg) {
598
+ if (!Array.isArray(msg.content)) {
599
+ return [];
600
+ }
601
+ const out = [];
602
+ for (const block of msg.content) {
603
+ if (!block || typeof block !== "object") {
604
+ continue;
605
+ }
606
+ if (block.type === "tool_use") {
607
+ out.push({
608
+ kind: "use",
609
+ name: typeof block.name === "string" ? block.name : "tool",
610
+ input: block.input ?? null,
611
+ });
612
+ } else if (block.type === "tool_result") {
613
+ let resultText = "";
614
+ if (typeof block.content === "string") {
615
+ resultText = block.content;
616
+ } else if (Array.isArray(block.content)) {
617
+ resultText = block.content
618
+ .filter((c) => c && (c.type === "text" || typeof c === "string"))
619
+ .map((c) => (typeof c === "string" ? c : (c.text ?? "")))
620
+ .join("\n");
621
+ }
622
+ out.push({
623
+ kind: "result",
624
+ isError: block.is_error === true,
625
+ text: resultText,
626
+ });
627
+ }
628
+ }
629
+ return out;
630
+ }
631
+
632
+ function renderToolBlock(block) {
633
+ const MAX_INPUT_CHARS = 400;
634
+ const MAX_OUTPUT_CHARS = 600;
635
+ if (block.kind === "use") {
636
+ let body = "";
637
+ try {
638
+ body = block.input == null ? "" : JSON.stringify(block.input, null, 2);
639
+ } catch {
640
+ body = String(block.input);
641
+ }
642
+ if (body.length > MAX_INPUT_CHARS) {
643
+ body = body.slice(0, MAX_INPUT_CHARS) + "\n… [truncated]";
644
+ }
645
+ return `
646
+ <div class="history-tool-block history-tool-use">
647
+ <div class="history-tool-head">⚙ ${escHtml(block.name)}</div>
648
+ ${body ? `<pre class="history-tool-body">${escHtml(body)}</pre>` : ""}
649
+ </div>
650
+ `;
651
+ }
652
+ let text = block.text ?? "";
653
+ if (text.length > MAX_OUTPUT_CHARS) {
654
+ text = text.slice(0, MAX_OUTPUT_CHARS) + "\n… [truncated]";
655
+ }
656
+ const cls = block.isError ? "history-tool-result-error" : "history-tool-result";
657
+ return `
658
+ <div class="history-tool-block ${cls}">
659
+ <div class="history-tool-head">${block.isError ? "✗ tool error" : "✓ tool result"}</div>
660
+ ${text ? `<pre class="history-tool-body">${escHtml(text)}</pre>` : ""}
661
+ </div>
662
+ `;
663
+ }
664
+
385
665
  // ── Archive toast (shown after /new) ──────────────────────────────────
386
666
  window.showArchiveToast = function () {
387
667
  if (toastTimer) {
@@ -6,8 +6,8 @@ import "./agent-scope-D-jRCY0d.js";
6
6
  import "./github-copilot-token-DuFIqfeC.js";
7
7
  import "./manifest-registry-D5bnO5uA.js";
8
8
  import "./config-DXt3pc08.js";
9
- import "./client-Cmq13-uF.js";
10
- import "./call-CAGvQYXj.js";
9
+ import "./client-CJIMV1WD.js";
10
+ import "./call-M4YyUnwu.js";
11
11
  import "./message-channel-C9dERklz.js";
12
12
  import "./pairing-token-Byh6drgn.js";
13
13
  import { n as listChannelPlugins } from "./plugins-CwSlLxM8.js";
@@ -18,7 +18,7 @@ import { n as formatDurationHuman } from "./format-duration-Bb9uCG1L.js";
18
18
  import { i as parseAbsoluteTimeMs, n as resolveCronStaggerMs } from "./stagger-BDqsqTKI.js";
19
19
  import { t as formatDocsLink } from "./links-CxyMXTsn.js";
20
20
  import "./progress-HK2tT7Yf.js";
21
- import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-DbSbyIcL.js";
21
+ import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-BEfosIsg.js";
22
22
  import { n as parsePositiveIntOrUndefined } from "./helpers-Cr6oe0QU.js";
23
23
 
24
24
  //#region src/cli/cron-cli/shared.ts
@@ -16,15 +16,15 @@ import { n as listChannelPlugins } from "./plugins-DKDeQZF0.js";
16
16
  import "./accounts-DDuIpcln.js";
17
17
  import "./bindings-DFaVVCsf.js";
18
18
  import "./logging-w5jq5901.js";
19
- import "./client-CYsBIR3j.js";
20
- import "./call-BkJK3eYP.js";
19
+ import "./client-pd8kwOFJ.js";
20
+ import "./call-DYfKEdwh.js";
21
21
  import "./pairing-token-pooyuU2J.js";
22
22
  import { t as formatDocsLink } from "./links-DGINhC21.js";
23
23
  import "./progress-WhkkDU0H.js";
24
24
  import { n as formatDurationHuman } from "./format-duration-DeLiQNNv.js";
25
25
  import { i as parseAbsoluteTimeMs, n as resolveCronStaggerMs } from "./stagger-CZ1Rrj7O.js";
26
26
  import { n as parsePositiveIntOrUndefined } from "./helpers-Znu8d1r-.js";
27
- import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-QsFn5Zr1.js";
27
+ import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-DZrB7Sl_.js";
28
28
 
29
29
  //#region src/cli/cron-cli/shared.ts
30
30
  const getCronChannelOptions = () => ["last", ...listChannelPlugins().map((plugin) => plugin.id)].join("|");
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { At as getResolvedLoggerSettings, Dt as theme, Et as isRich, Tt as colorize, Ut as resolveGatewayPort, Wt as resolveIsNixMode, Yt as resolveStateDir, _ as defaultRuntime, lt as shortenHomePath, zt as resolveConfigPath } from "./entry.js";
3
3
  import { t as formatCliCommand } from "./command-format-BtYOfWxC.js";
4
4
  import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, r as createConfigIO } from "./config-DXt3pc08.js";
5
- import { n as callGateway } from "./call-CAGvQYXj.js";
5
+ import { n as callGateway } from "./call-M4YyUnwu.js";
6
6
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-C9dERklz.js";
7
7
  import { l as resolveGatewayBindHost } from "./net-DZ5Ayk-W.js";
8
8
  import { n as pickPrimaryTailnetIPv4 } from "./tailnet-Cmumpn76.js";
@@ -11,7 +11,7 @@ import { i as formatPortDiagnostics, n as inspectPortUsage } from "./ports-2xFXb
11
11
  import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-l9TQg-aP.js";
12
12
  import { t as formatDocsLink } from "./links-CxyMXTsn.js";
13
13
  import { n as withProgress } from "./progress-HK2tT7Yf.js";
14
- import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-DjlGq6iG.js";
14
+ import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-DWDNKmkJ.js";
15
15
  import { n as isWSLEnv } from "./wsl-Nbg0CUop.js";
16
16
  import { n as inheritOptionFromParent } from "./command-options-DbRrl8qF.js";
17
17
  import { i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-D_elkkFW.js";
@@ -9,10 +9,10 @@ import { n as pickPrimaryTailnetIPv4 } from "./tailnet-B2SPYrh4.js";
9
9
  import { u as resolveGatewayBindHost } from "./ws-C7EXRv8z.js";
10
10
  import { a as resolveGatewayAuth } from "./auth-B741uFtk.js";
11
11
  import { a as inspectPortUsage, s as formatPortDiagnostics } from "./ports-BOmtxoTv.js";
12
- import { n as callGateway } from "./call-BkJK3eYP.js";
12
+ import { n as callGateway } from "./call-DYfKEdwh.js";
13
13
  import { t as formatDocsLink } from "./links-DGINhC21.js";
14
14
  import { n as withProgress } from "./progress-WhkkDU0H.js";
15
- import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-B7jBYbCU.js";
15
+ import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-CBxazphs.js";
16
16
  import { n as isWSLEnv } from "./wsl-CEKon8h9.js";
17
17
  import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-DF8wPn-_.js";
18
18
  import { n as inheritOptionFromParent } from "./command-options-DOOvAdsg.js";
@@ -10583,6 +10583,40 @@ const SessionsPreviewParamsSchema = Type.Object({
10583
10583
  limit: Type.Optional(Type.Integer({ minimum: 1 })),
10584
10584
  maxChars: Type.Optional(Type.Integer({ minimum: 20 }))
10585
10585
  }, { additionalProperties: false });
10586
+ /**
10587
+ * Hybrid (vector + FTS) search across session transcripts. Piggybacks on
10588
+ * the memory-search infrastructure with a `source = "sessions"` filter and
10589
+ * remaps the raw chunk path back to the owning session-key via the agent's
10590
+ * sessions.json index.
10591
+ */
10592
+ const SessionsSearchParamsSchema = Type.Object({
10593
+ query: Type.String({ minLength: 1 }),
10594
+ limit: Type.Optional(Type.Integer({
10595
+ minimum: 1,
10596
+ maximum: 50
10597
+ })),
10598
+ minScore: Type.Optional(Type.Number({
10599
+ minimum: 0,
10600
+ maximum: 1
10601
+ })),
10602
+ agentId: Type.Optional(NonEmptyString)
10603
+ }, { additionalProperties: false });
10604
+ const SessionsSearchMatchSchema = Type.Object({
10605
+ sessionKey: Type.Union([Type.String(), Type.Null()]),
10606
+ sessionId: Type.String(),
10607
+ file: Type.String(),
10608
+ lineStart: Type.Integer(),
10609
+ lineEnd: Type.Integer(),
10610
+ snippet: Type.String(),
10611
+ score: Type.Number(),
10612
+ label: Type.Optional(Type.String()),
10613
+ displayName: Type.Optional(Type.String()),
10614
+ updatedAt: Type.Optional(Type.Integer())
10615
+ }, { additionalProperties: false });
10616
+ const SessionsSearchResultSchema = Type.Object({
10617
+ matches: Type.Array(SessionsSearchMatchSchema),
10618
+ agentId: Type.String()
10619
+ }, { additionalProperties: false });
10586
10620
  const SessionsResolveParamsSchema = Type.Object({
10587
10621
  key: Type.Optional(NonEmptyString),
10588
10622
  sessionId: Type.Optional(NonEmptyString),
@@ -10795,6 +10829,7 @@ const validateNodeEventParams = ajv.compile(NodeEventParamsSchema);
10795
10829
  const validatePushTestParams = ajv.compile(PushTestParamsSchema);
10796
10830
  const validateSessionsListParams = ajv.compile(SessionsListParamsSchema);
10797
10831
  const validateSessionsPreviewParams = ajv.compile(SessionsPreviewParamsSchema);
10832
+ const validateSessionsSearchParams = ajv.compile(SessionsSearchParamsSchema);
10798
10833
  const validateSessionsResolveParams = ajv.compile(SessionsResolveParamsSchema);
10799
10834
  const validateSessionsPatchParams = ajv.compile(SessionsPatchParamsSchema);
10800
10835
  const validateSessionsResetParams = ajv.compile(SessionsResetParamsSchema);
@@ -11190,6 +11225,7 @@ const METHOD_SCOPE_GROUPS = {
11190
11225
  "voicewake.get",
11191
11226
  "sessions.list",
11192
11227
  "sessions.preview",
11228
+ "sessions.search",
11193
11229
  "sessions.resolve",
11194
11230
  "sessions.usage",
11195
11231
  "sessions.usage.timeseries",
@@ -5,8 +5,8 @@ import "./agent-scope-D-jRCY0d.js";
5
5
  import "./github-copilot-token-DuFIqfeC.js";
6
6
  import "./manifest-registry-D5bnO5uA.js";
7
7
  import "./config-DXt3pc08.js";
8
- import { Bt as approveDevicePairing, Ut as listDevicePairing, Yt as summarizeDeviceTokens } from "./client-Cmq13-uF.js";
9
- import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-CAGvQYXj.js";
8
+ import { Vt as approveDevicePairing, Wt as listDevicePairing, Xt as summarizeDeviceTokens } from "./client-CJIMV1WD.js";
9
+ import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-M4YyUnwu.js";
10
10
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-C9dERklz.js";
11
11
  import "./pairing-token-Byh6drgn.js";
12
12
  import { n as isLoopbackHost } from "./net-DZ5Ayk-W.js";
@@ -12,8 +12,8 @@ import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-
12
12
  import "./config-PXAJCHa5.js";
13
13
  import "./manifest-registry-BDSRH8nU.js";
14
14
  import { r as isLoopbackHost } from "./ws-C7EXRv8z.js";
15
- import { Bt as approveDevicePairing, Ut as listDevicePairing, Yt as summarizeDeviceTokens } from "./client-CYsBIR3j.js";
16
- import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-BkJK3eYP.js";
15
+ import { Vt as approveDevicePairing, Wt as listDevicePairing, Xt as summarizeDeviceTokens } from "./client-pd8kwOFJ.js";
16
+ import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-DYfKEdwh.js";
17
17
  import "./pairing-token-pooyuU2J.js";
18
18
  import { n as formatTimeAgo } from "./format-relative-CviDPm2s.js";
19
19
  import { n as withProgress } from "./progress-WhkkDU0H.js";
@@ -1,7 +1,7 @@
1
1
  import { r as resolveCliName } from "./command-format-BtYOfWxC.js";
2
2
  import { t as resolveSymiPackageRoot } from "./symi-root-BNuQ4lAT.js";
3
3
  import { t as note } from "./note-DewoEWtc.js";
4
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-BVG9ZtBG.js";
4
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-B6s_3rEE.js";
5
5
  import { spawnSync } from "node:child_process";
6
6
  import path from "node:path";
7
7
 
@@ -1,7 +1,7 @@
1
1
  import { t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
2
2
  import { r as resolveCliName } from "./command-format-COaS-S7B.js";
3
3
  import { t as note } from "./note-ByDX0v9V.js";
4
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-D-xVtDhj.js";
4
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-DVD79pVj.js";
5
5
  import path from "node:path";
6
6
  import { spawnSync } from "node:child_process";
7
7
 
package/dist/entry.js CHANGED
@@ -2500,7 +2500,7 @@ if (!ensureExperimentalWarningSuppressed()) {
2500
2500
  applyCliProfileEnv({ profile: parsed.profile });
2501
2501
  process$1.argv = parsed.argv;
2502
2502
  }
2503
- import("./run-main-BzZuJeMa.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
2503
+ import("./run-main-CfVO6DFS.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
2504
2504
  console.error("[symi] Failed to start CLI:", error instanceof Error ? error.stack ?? error.message : error);
2505
2505
  process$1.exitCode = 1;
2506
2506
  });
@@ -11,19 +11,19 @@ import "./env-DPCHYPeH.js";
11
11
  import "./message-channel-aT-I_DTX.js";
12
12
  import "./config-PXAJCHa5.js";
13
13
  import "./manifest-registry-BDSRH8nU.js";
14
- import "./client-CYsBIR3j.js";
15
- import "./call-BkJK3eYP.js";
14
+ import "./client-pd8kwOFJ.js";
15
+ import "./call-DYfKEdwh.js";
16
16
  import "./pairing-token-pooyuU2J.js";
17
17
  import { n as formatTimeAgo } from "./format-relative-CviDPm2s.js";
18
18
  import { t as formatDocsLink } from "./links-DGINhC21.js";
19
19
  import "./progress-WhkkDU0H.js";
20
20
  import { c as readExecApprovalsSnapshot, p as saveExecApprovals } from "./exec-approvals-DEigTi7M.js";
21
- import { n as callGatewayFromCli } from "./gateway-rpc-QsFn5Zr1.js";
21
+ import { n as callGatewayFromCli } from "./gateway-rpc-DZrB7Sl_.js";
22
22
  import "./systemd-Xs16roN5.js";
23
23
  import "./service-DzLem5vL.js";
24
24
  import { t as renderTable } from "./table-BWuvjnmY.js";
25
25
  import { t as describeUnknownError } from "./shared-pJIdlnB5.js";
26
- import { i as resolveNodeId, r as nodesCallOpts } from "./rpc-St4eAsjR.js";
26
+ import { i as resolveNodeId, r as nodesCallOpts } from "./rpc-BKlQ97aZ.js";
27
27
  import JSON5 from "json5";
28
28
  import fs from "node:fs/promises";
29
29
 
@@ -5,20 +5,20 @@ import "./agent-scope-D-jRCY0d.js";
5
5
  import "./github-copilot-token-DuFIqfeC.js";
6
6
  import "./manifest-registry-D5bnO5uA.js";
7
7
  import "./config-DXt3pc08.js";
8
- import "./client-Cmq13-uF.js";
9
- import "./call-CAGvQYXj.js";
8
+ import "./client-CJIMV1WD.js";
9
+ import "./call-M4YyUnwu.js";
10
10
  import "./message-channel-C9dERklz.js";
11
11
  import "./pairing-token-Byh6drgn.js";
12
12
  import { n as formatTimeAgo } from "./format-relative-BDwAggS5.js";
13
13
  import { c as readExecApprovalsSnapshot, p as saveExecApprovals } from "./exec-approvals-D-pkxJFE.js";
14
14
  import { t as formatDocsLink } from "./links-CxyMXTsn.js";
15
15
  import "./progress-HK2tT7Yf.js";
16
- import { n as callGatewayFromCli } from "./gateway-rpc-DbSbyIcL.js";
16
+ import { n as callGatewayFromCli } from "./gateway-rpc-BEfosIsg.js";
17
17
  import "./systemd-CJ5L2ee4.js";
18
18
  import "./service-RxN7lQKN.js";
19
19
  import { t as renderTable } from "./table-Bka4fasy.js";
20
20
  import { t as describeUnknownError } from "./shared-vevi4OAS.js";
21
- import { i as resolveNodeId, r as nodesCallOpts } from "./rpc-C3ZUAjXK.js";
21
+ import { i as resolveNodeId, r as nodesCallOpts } from "./rpc-DC4ol5Xa.js";
22
22
  import JSON5 from "json5";
23
23
  import fs from "node:fs/promises";
24
24
 
@@ -7,7 +7,7 @@ import { a as resolveAgentIdentity } from "./reply-prefix-K_J_nfgx.js";
7
7
  import "./github-copilot-token-BbsJ0Qbo.js";
8
8
  import "./env-CQ_DQOwT.js";
9
9
  import "./tokens-Cn6drXx2.js";
10
- import { O as resolveAgentTimeoutMs, m as runEmbeddedPiAgent } from "./pi-embedded-CzKPTG9K.js";
10
+ import { O as resolveAgentTimeoutMs, m as runEmbeddedPiAgent } from "./pi-embedded-BUYKq7Wv.js";
11
11
  import "./plugins-71oIavrF.js";
12
12
  import "./accounts-DDEyGwby.js";
13
13
  import "./bindings-DYVakimr.js";
@@ -35,7 +35,7 @@ import "./accounts-DImOt9jX.js";
35
35
  import { n as resolveSessionFilePath, s as resolveStorePath } from "./paths-DkMamAQ-.js";
36
36
  import "./tool-images-ChC2CXaN.js";
37
37
  import "./image-MNvheU8U.js";
38
- import "./manager-CtwApSQo.js";
38
+ import "./manager-D6E6EGWa.js";
39
39
  import "./gemini-auth-DVcG-42i.js";
40
40
  import "./retry-QGp0jvVi.js";
41
41
  import "./sqlite-Bo4pHfp8.js";