@symerian/symi 2.6.10 → 2.6.12

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 (157) hide show
  1. package/dist/{acp-cli-DT0rEuUE.js → acp-cli-Cu4icbJT.js} +2 -2
  2. package/dist/{agents-DDqXWXbP.js → agents-Cz2na8n6.js} +4 -4
  3. package/dist/{agents.config-Bu_N-bn_.js → agents.config-BeOO73lT.js} +1 -1
  4. package/dist/{agents.config-CEt-ES9z.js → agents.config-BoP9QtHX.js} +1 -1
  5. package/dist/{audio-preflight-C40mKAp7.js → audio-preflight-CPBOQV4I.js} +4 -4
  6. package/dist/{audio-preflight-BcSzL_0I.js → audio-preflight-CWnxkaac.js} +8 -8
  7. package/dist/{audio-preflight-BVaaZWkg.js → audio-preflight-DHTaS5U1.js} +4 -4
  8. package/dist/{audit-BIE9JAxf.js → audit-CrITRV6w.js} +5 -5
  9. package/dist/{auth-choice-Djy_YmfW.js → auth-choice-D-czhFdL.js} +4 -4
  10. package/dist/{auth-choice-Bmd-rbuU.js → auth-choice-DTe3UF8T.js} +1 -1
  11. package/dist/{banner-BNkhjU8E.js → banner-CSZ39UAE.js} +1 -1
  12. package/dist/{browser-cli-nNQ60Koh.js → browser-cli-BG4qPxpM.js} +3 -3
  13. package/dist/build-info.json +3 -3
  14. package/dist/bundled/boot-md/handler.js +6 -6
  15. package/dist/bundled/session-memory/handler.js +6 -6
  16. package/dist/{call-7djMRPgl.js → call-CJaS1iRF.js} +1 -1
  17. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  18. package/dist/{channel-options-D8ByM6g0.js → channel-options-CySdnaWJ.js} +1 -1
  19. package/dist/{channel-options-NLrg-j_d.js → channel-options-FlKM6QP8.js} +1 -1
  20. package/dist/{channel-web-BUQWBln9.js → channel-web-BEFE-0qE.js} +2 -2
  21. package/dist/{channels-cli-C5DWcDDG.js → channels-cli-D6zAPAP3.js} +4 -4
  22. package/dist/{channels-cli-qBgicVqp.js → channels-cli-RkhiaITs.js} +19 -19
  23. package/dist/{chrome-CDJYxX5a.js → chrome-D2SKJnR7.js} +7 -7
  24. package/dist/{chrome-DkaXoP36.js → chrome-DYZwl5Gv.js} +7 -7
  25. package/dist/{chrome-DBKZkx0x.js → chrome-DtPkPq9T.js} +7 -7
  26. package/dist/cli/daemon-cli.js +1 -1
  27. package/dist/{cli-UHMMUbWL.js → cli-Bjw4Mr_t.js} +16 -16
  28. package/dist/{cli-Bx78WeyO.js → cli-v8nSF61Z.js} +1 -1
  29. package/dist/{client-Z6SFrwob.js → client-CQSyCS4M.js} +3 -3
  30. package/dist/{command-registry-BSGsNY71.js → command-registry-CojVJ8At.js} +9 -9
  31. package/dist/{completion-cli-B915TqN4.js → completion-cli-D3N7Bpqe.js} +2 -2
  32. package/dist/{completion-cli-CajQzz5J.js → completion-cli-rD9RSIqQ.js} +1 -1
  33. package/dist/{config-cli-BM9FX48b.js → config-cli-CCG1Hizl.js} +1 -1
  34. package/dist/{config-cli-CeErUiHR.js → config-cli-DFYbGvDQ.js} +1 -1
  35. package/dist/{configure-DggNPSKd.js → configure-DdWNM_S-.js} +3 -3
  36. package/dist/{configure-CbiNzEIk.js → configure-v2ocSUJ3.js} +8 -8
  37. package/dist/{control-service-DdeFa44u.js → control-service-Bz7rxLWq.js} +3 -3
  38. package/dist/{cron-cli-C_1RndRW.js → cron-cli-DBIlCvp3.js} +3 -3
  39. package/dist/{daemon-cli-C2fkpr13.js → daemon-cli-DscwlsKW.js} +2 -2
  40. package/dist/{deliver-BH0l3UKW.js → deliver-C-37cZUe.js} +1 -1
  41. package/dist/{deliver-Bu624MY6.js → deliver-CWR_98sK.js} +1 -1
  42. package/dist/{deliver-C46-vyqg.js → deliver-dODxSv3b.js} +1 -1
  43. package/dist/{devices-cli-ERMql8Dq.js → devices-cli-Dds-25Ve.js} +2 -2
  44. package/dist/{doctor-completion-BfLDfA98.js → doctor-completion-F_AI3hun.js} +1 -1
  45. package/dist/{doctor-completion-BP_qD5Bt.js → doctor-completion-vTHV1Opp.js} +1 -1
  46. package/dist/entry.js +1 -1
  47. package/dist/{exec-approvals-cli-BEU-xJFu.js → exec-approvals-cli-BliRl8VB.js} +4 -4
  48. package/dist/extensionAPI.js +6 -6
  49. package/dist/{gateway-cli-LmMxDk7B.js → gateway-cli-DLaTC2ps.js} +28 -28
  50. package/dist/{gateway-cli-qMBjCmLH.js → gateway-cli-Di1ExMCg.js} +9 -9
  51. package/dist/{gateway-rpc-BWZzo3L9.js → gateway-rpc-BxkKeCZ0.js} +1 -1
  52. package/dist/{glass-ui-ws-CXpW0epd.js → glass-ui-ws-Bfn56Lok.js} +7 -7
  53. package/dist/{glass-ui-ws-DbV46Nrg.js → glass-ui-ws-CbaWZjN3.js} +23 -23
  54. package/dist/{health-BctmvDJ0.js → health-CqQIZeIm.js} +1 -1
  55. package/dist/{health-pukFTT09.js → health-DbJOe12X.js} +3 -3
  56. package/dist/{hooks-cli-BMQOn6QU.js → hooks-cli-B9pOqbW_.js} +17 -17
  57. package/dist/{hooks-cli-DcQN6UeT.js → hooks-cli-D60an6P1.js} +2 -2
  58. package/dist/{image-CuzFLQWC.js → image-CXu8W39c.js} +1 -1
  59. package/dist/{image-CtCUVPCD.js → image-D9uvDTrc.js} +1 -1
  60. package/dist/{image-CHzdaNJ4.js → image-DcpMiprB.js} +1 -1
  61. package/dist/index.js +21 -21
  62. package/dist/llm-slug-generator.js +6 -6
  63. package/dist/{logs-cli-V5qUbmVy.js → logs-cli-xOzIPrHm.js} +3 -3
  64. package/dist/{model-catalog-Da6fXK5K.js → model-catalog-DvBJ8pMD.js} +1 -1
  65. package/dist/{model-picker-B6QoK7pe.js → model-picker-Ddo3jHe-.js} +1 -1
  66. package/dist/{models-cli-DAKvip7R.js → models-cli-4EwiSo4p.js} +18 -18
  67. package/dist/{models-cli-DHOMkJmd.js → models-cli-Du60Ivll.js} +3 -3
  68. package/dist/{models-yF2XRbPQ.js → models-hMbDU9ot.js} +2 -2
  69. package/dist/{node-cli-r5-MNz9_.js → node-cli-C_G-Q3h-.js} +6 -6
  70. package/dist/{nodes-cli-DQed-Snk.js → nodes-cli-BcnuJajV.js} +3 -3
  71. package/dist/{onboard-BhqTlAS0.js → onboard-5yW9nvG6.js} +2 -2
  72. package/dist/{onboard-BafMA6T9.js → onboard-DJqYAPxi.js} +5 -5
  73. package/dist/{onboard-channels-CHe-XSLv.js → onboard-channels-B39Hvc_L.js} +1 -1
  74. package/dist/{onboard-channels-CZB5bhSJ.js → onboard-channels-BSzHnDcL.js} +1 -1
  75. package/dist/{onboard-custom-BduhuM_4.js → onboard-custom-C7O-zfQ1.js} +1 -1
  76. package/dist/{onboard-helpers-CiLCJJVQ.js → onboard-helpers-ZmZYzlq3.js} +1 -1
  77. package/dist/{onboard-remote-C1nRkyWo.js → onboard-remote-zUjD7UtM.js} +1 -1
  78. package/dist/{onboard-skills-9GLwG44a.js → onboard-skills-BB0YhUmF.js} +1 -1
  79. package/dist/{onboarding-D5yCx7Yb.js → onboarding-C7g_ZvRW.js} +9 -9
  80. package/dist/{onboarding-BXVYtRYj.js → onboarding-D7Y_e4zX.js} +3 -3
  81. package/dist/{onboarding.finalize-BX4DUaoK.js → onboarding.finalize-C3rqwVvV.js} +21 -21
  82. package/dist/{onboarding.finalize-DF5Zx0Zc.js → onboarding.finalize-OYNmD4ly.js} +6 -6
  83. package/dist/{onboarding.gateway-config-TSh7IejG.js → onboarding.gateway-config-CJUgDC6Y.js} +3 -3
  84. package/dist/{pi-auth-json-Tqz9D47K.js → pi-auth-json-DayrlDg_.js} +1 -1
  85. package/dist/{pi-embedded-DV6dp0BP.js → pi-embedded-Bp_9g-wj.js} +68 -17
  86. package/dist/{pi-embedded-helpers-lgx_U5KS.js → pi-embedded-helpers-B8kqLWns.js} +4 -4
  87. package/dist/{pi-embedded-helpers-D-dUrQOR.js → pi-embedded-helpers-CNPyv_ax.js} +1 -1
  88. package/dist/{pi-embedded-helpers-CfqDGQ9J.js → pi-embedded-helpers-pubKo8HQ.js} +4 -4
  89. package/dist/{pi-tools.policy-CgGK6Jq8.js → pi-tools.policy-CIDBbw6x.js} +1 -1
  90. package/dist/{plugin-registry-BSmy8tIV.js → plugin-registry-C4lpIiGz.js} +1 -1
  91. package/dist/{plugin-registry-BwnzEvIz.js → plugin-registry-CUjBEHAz.js} +1 -1
  92. package/dist/plugin-sdk/{channel-web-BdY2z7lg.js → channel-web-CQNBQiKF.js} +1 -1
  93. package/dist/plugin-sdk/index.js +2 -2
  94. package/dist/plugin-sdk/{reply-BvxntA3R.js → reply-S1JHdV1Y.js} +54 -3
  95. package/dist/plugin-sdk/{web-CorFnJCI.js → web-GZFVijBY.js} +2 -2
  96. package/dist/{plugins-cli-BMmiYArH.js → plugins-cli-1pbqkgc2.js} +17 -17
  97. package/dist/{plugins-cli-CrN718uZ.js → plugins-cli-NpSGD1FH.js} +2 -2
  98. package/dist/{program-NGbjPxJh.js → program-CvHqOriK.js} +7 -7
  99. package/dist/{program-context-BqxG0w61.js → program-context-gkaZBN4U.js} +30 -30
  100. package/dist/{prompt-select-styled-B7SzTPf7.js → prompt-select-styled-DNaDChFa.js} +8 -8
  101. package/dist/{prompt-select-styled-B1LZVYl0.js → prompt-select-styled-We9EmwdJ.js} +4 -4
  102. package/dist/{provider-auth-helpers--A-4LKUl.js → provider-auth-helpers-BD1qo8xm.js} +1 -1
  103. package/dist/{provider-auth-helpers-CNEhLjMl.js → provider-auth-helpers-aA2Nm1dz.js} +1 -1
  104. package/dist/{push-apns-DgT_gz_P.js → push-apns-Cp9F-674.js} +1 -1
  105. package/dist/{push-apns-Cem8OlK7.js → push-apns-DseyExUl.js} +1 -1
  106. package/dist/{pw-ai-De-KR9_s.js → pw-ai-1htA-NnS.js} +1 -1
  107. package/dist/{pw-ai-m0mj2KWK.js → pw-ai-B5asscAD.js} +1 -1
  108. package/dist/{pw-ai-CC0xm0TY.js → pw-ai-DqL87js3.js} +1 -1
  109. package/dist/{register.agent-vP7gkHzk.js → register.agent-BQ2_6Nm3.js} +6 -6
  110. package/dist/{register.agent-DT0doE92.js → register.agent-CBYb5PmK.js} +21 -21
  111. package/dist/{register.configure-B_W1y_ag.js → register.configure-CjLPSjMa.js} +6 -6
  112. package/dist/{register.configure-BnkkCig3.js → register.configure-o-37DMn9.js} +25 -25
  113. package/dist/{register.maintenance-C0akYVa2.js → register.maintenance-B119maJ4.js} +22 -22
  114. package/dist/{register.maintenance-Br5q9f-j.js → register.maintenance-B5VGGPfr.js} +8 -8
  115. package/dist/{register.message-CRaEakG_.js → register.message-C0vKP2cl.js} +2 -2
  116. package/dist/{register.message-mCGVBJsU.js → register.message-Dqit98AR.js} +17 -17
  117. package/dist/{register.onboard-CV_3MiHm.js → register.onboard-BHj8YY-f.js} +4 -4
  118. package/dist/{register.onboard-BvsYOovb.js → register.onboard-DfCy6ZXS.js} +21 -21
  119. package/dist/{register.setup-DFcMhPAd.js → register.setup-BO4Kdk1x.js} +4 -4
  120. package/dist/{register.setup-BQqw49hm.js → register.setup-CUK-FwzD.js} +21 -21
  121. package/dist/{register.status-health-sessions-DlgKRa9S.js → register.status-health-sessions-BIXO_68y.js} +3 -3
  122. package/dist/{register.status-health-sessions-SAm9yGnr.js → register.status-health-sessions-CvcX-h97.js} +19 -19
  123. package/dist/{register.subclis-CdANuuHY.js → register.subclis-B0T9tMmL.js} +9 -9
  124. package/dist/{reply-CiPQDsZl.js → reply-DPaH7oQp.js} +75 -24
  125. package/dist/{routes-BO8eMYxn.js → routes-Ba9CUQ8M.js} +2 -2
  126. package/dist/{rpc-BcyzUwtC.js → rpc-BfhojW8g.js} +1 -1
  127. package/dist/{run-main-z8u07ybv.js → run-main-DLFhMwmE.js} +14 -14
  128. package/dist/{runner-DUBExAb5.js → runner-BcQ0sF9T.js} +1 -1
  129. package/dist/{runner-DxdRmWfW.js → runner-CUglpiFP.js} +2 -2
  130. package/dist/{runner-CU9l0uJh.js → runner-WAG0M5s9.js} +1 -1
  131. package/dist/{sandbox-B7qoYkRl.js → sandbox-C-T6hOMv.js} +3 -3
  132. package/dist/{sandbox-cli-C-hbJJWM.js → sandbox-cli-BllVdQzR.js} +4 -4
  133. package/dist/{security-cli-CNzBZn7V.js → security-cli-BFLtWWHy.js} +8 -8
  134. package/dist/{server-context-B-ra1emS.js → server-context-CEpFjqSk.js} +4 -4
  135. package/dist/{server-methods-D9jBWl7O.js → server-methods-CCAxdyvF.js} +14 -14
  136. package/dist/{server-methods-Dwsrsy7D.js → server-methods-DMIR4YTm.js} +7 -7
  137. package/dist/{server-node-events-9T-Sm9Q4.js → server-node-events-BQ7wsfbY.js} +17 -17
  138. package/dist/{server-node-events-CUKIb7Xq.js → server-node-events-BvOiDPkg.js} +2 -2
  139. package/dist/{status-UWWMuety.js → status-BPGU6b1g.js} +5 -5
  140. package/dist/{status-CB6N6XaA.js → status-CpCo3PvK.js} +1 -1
  141. package/dist/{status-Dqm_DV3z.js → status-D4RE4eR4.js} +2 -2
  142. package/dist/{status-DPk2qV91.js → status-gpmp_Ca5.js} +1 -1
  143. package/dist/{subagent-registry-DTIudfq4.js → subagent-registry-CzBf7A_o.js} +54 -3
  144. package/dist/{system-cli-_0h_FSPB.js → system-cli-UMsMEurS.js} +3 -3
  145. package/dist/{tui-D0s_9S8b.js → tui-CriznorL.js} +3 -3
  146. package/dist/{tui-cli-gm9fv3M8.js → tui-cli-CSIdfCTR.js} +8 -8
  147. package/dist/{unified-runner-DdeRGc1w.js → unified-runner-CnKhgGr-.js} +68 -17
  148. package/dist/{update-cli-C55vGnoj.js → update-cli-16QmlAYc.js} +8 -8
  149. package/dist/{update-cli-D8jX4yKe.js → update-cli-B8lzwxOj.js} +23 -23
  150. package/dist/{update-runner-B0ORHPYT.js → update-runner-CEjq0Uxs.js} +1 -1
  151. package/dist/{update-runner-CGsqW9Gu.js → update-runner-DLCpL3Pj.js} +1 -1
  152. package/dist/{web-DsGfc1GN.js → web-BPQuKyCM.js} +17 -17
  153. package/dist/{web-CRFt1vNo.js → web-BiZqjSRz.js} +1 -1
  154. package/dist/{web-nKQzj7wJ.js → web-CQ7OlTVM.js} +6 -6
  155. package/dist/{web-BC4kDUZw.js → web-D7tHOzz3.js} +6 -6
  156. package/dist/{with-timeout-BFdGltxb.js → with-timeout-gmK6RciS.js} +1 -1
  157. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  import "./paths-Cqn-zk3M.js";
2
2
  import { h as pathExists, y as resolveUserPath } from "./utils-B-0b9bGM.js";
3
3
  import "./thinking-EAliFiVK.js";
4
- import "./reply-CiPQDsZl.js";
4
+ import "./reply-DPaH7oQp.js";
5
5
  import "./registry-Cja8eT7G.js";
6
6
  import { p as restoreTerminalState } from "./subsystem-D9vIQve0.js";
7
7
  import "./exec-CWkblSrI.js";
@@ -15,19 +15,19 @@ import "./message-channel-aT-I_DTX.js";
15
15
  import "./send-CZr1hVHY.js";
16
16
  import "./config-CHwyw6l5.js";
17
17
  import "./manifest-registry-C4BxOMWX.js";
18
- import "./runner-DxdRmWfW.js";
19
- import "./image-CtCUVPCD.js";
18
+ import "./runner-CUglpiFP.js";
19
+ import "./image-D9uvDTrc.js";
20
20
  import "./models-config-qyOXrOli.js";
21
21
  import "./pi-model-discovery-4uUnLc3n.js";
22
- import "./pi-embedded-helpers-D-dUrQOR.js";
23
- import "./sandbox-B7qoYkRl.js";
24
- import "./chrome-DBKZkx0x.js";
22
+ import "./pi-embedded-helpers-CNPyv_ax.js";
23
+ import "./sandbox-C-T6hOMv.js";
24
+ import "./chrome-DtPkPq9T.js";
25
25
  import "./tailscale-D5dKabOc.js";
26
26
  import "./auth-B741uFtk.js";
27
- import "./server-context-B-ra1emS.js";
27
+ import "./server-context-CEpFjqSk.js";
28
28
  import "./frontmatter-DWQhtOo7.js";
29
29
  import "./skills-6jdJQ5ZL.js";
30
- import "./routes-BO8eMYxn.js";
30
+ import "./routes-Ba9CUQ8M.js";
31
31
  import "./redact-f-Q-hFt_.js";
32
32
  import "./errors-BF3TeRH2.js";
33
33
  import "./fs-safe-CUjO1ca2.js";
@@ -53,10 +53,10 @@ import "./fetch-guard-DOPkVbh3.js";
53
53
  import "./api-key-rotation-CzuPlV2t.js";
54
54
  import "./local-roots-aAFLQGkY.js";
55
55
  import "./sqlite-Dx3J_aSE.js";
56
- import "./model-catalog-Da6fXK5K.js";
56
+ import "./model-catalog-DvBJ8pMD.js";
57
57
  import "./tokens-BuceUQDl.js";
58
- import "./with-timeout-BFdGltxb.js";
59
- import "./deliver-Bu624MY6.js";
58
+ import "./with-timeout-gmK6RciS.js";
59
+ import "./deliver-CWR_98sK.js";
60
60
  import "./diagnostic-DjBRPfu9.js";
61
61
  import "./diagnostic-session-state-CUslJyKP.js";
62
62
  import "./send-Cutb0ZDY.js";
@@ -72,8 +72,8 @@ import "./ir-DZam9q5M.js";
72
72
  import "./render-CXDO_kgw.js";
73
73
  import "./commands-BNLCWX6e.js";
74
74
  import "./commands-registry-BT0-zzs3.js";
75
- import "./client-Z6SFrwob.js";
76
- import "./call-7djMRPgl.js";
75
+ import "./client-CQSyCS4M.js";
76
+ import "./call-CJaS1iRF.js";
77
77
  import "./pairing-token-CX3NN_qj.js";
78
78
  import "./channel-activity-BOiuJS3t.js";
79
79
  import "./fetch-DTNGXEzX.js";
@@ -93,27 +93,27 @@ import "./session-cost-usage-UxUgrslM.js";
93
93
  import "./outbound-attachment-mQQiYZ3C.js";
94
94
  import "./delivery-queue-CxuV9EeG.js";
95
95
  import "./send-DWYkPSUs.js";
96
- import { b as waitForGatewayReachable, f as openUrl, g as resolveControlUiLinks, i as detectBrowserOpenSupport, m as probeGatewayReachable, o as formatControlUiSshHint } from "./onboard-helpers-CiLCJJVQ.js";
96
+ import { b as waitForGatewayReachable, f as openUrl, g as resolveControlUiLinks, i as detectBrowserOpenSupport, m as probeGatewayReachable, o as formatControlUiSshHint } from "./onboard-helpers-ZmZYzlq3.js";
97
97
  import "./prompt-style-8JqOYj0q.js";
98
98
  import "./pairing-labels-2S6x2UoV.js";
99
99
  import "./exec-approvals-Kn31mBcW.js";
100
100
  import "./nodes-screen-VBGXKdLk.js";
101
- import "./pi-tools.policy-CgGK6Jq8.js";
102
- import "./control-service-DdeFa44u.js";
101
+ import "./pi-tools.policy-CIDBbw6x.js";
102
+ import "./control-service-Bz7rxLWq.js";
103
103
  import "./stagger-BUClb97_.js";
104
104
  import "./channel-selection-DuWs0Aak.js";
105
105
  import "./runtime-guard-B37eizu-.js";
106
- import "./program-context-BqxG0w61.js";
106
+ import "./program-context-gkaZBN4U.js";
107
107
  import "./note-DeHoW7xO.js";
108
- import { r as installCompletion } from "./completion-cli-CajQzz5J.js";
108
+ import { r as installCompletion } from "./completion-cli-rD9RSIqQ.js";
109
109
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-2mwX-jqj.js";
110
110
  import { r as isSystemdUserServiceAvailable } from "./systemd-riq8uNJQ.js";
111
111
  import { t as resolveGatewayService } from "./service-Cl74hx8J.js";
112
- import { r as healthCommand } from "./health-pukFTT09.js";
112
+ import { r as healthCommand } from "./health-DbJOe12X.js";
113
113
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-Z947tKLt.js";
114
114
  import { t as formatHealthCheckFailure } from "./health-format-DSwnXZPU.js";
115
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-BP_qD5Bt.js";
116
- import { t as runTui } from "./tui-D0s_9S8b.js";
115
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-vTHV1Opp.js";
116
+ import { t as runTui } from "./tui-CriznorL.js";
117
117
  import os from "node:os";
118
118
  import path from "node:path";
119
119
  import fs from "node:fs/promises";
@@ -14,7 +14,7 @@ import "./client-DMBZpU6X.js";
14
14
  import "./call-BcE47FtD.js";
15
15
  import "./message-channel-C9dERklz.js";
16
16
  import "./pairing-token-Byh6drgn.js";
17
- import "./subagent-registry-DTIudfq4.js";
17
+ import "./subagent-registry-CzBf7A_o.js";
18
18
  import "./sessions-CJXnZVjR.js";
19
19
  import "./tokens-Csntmwwn.js";
20
20
  import "./plugins-CwSlLxM8.js";
@@ -99,18 +99,18 @@ import "./prompt-style-DwCXob2h.js";
99
99
  import "./pairing-labels-D1HDboV2.js";
100
100
  import "./pi-tools.policy-De00gPXt.js";
101
101
  import "./note-DDecZomM.js";
102
- import "./register.subclis-CdANuuHY.js";
103
- import "./command-registry-BSGsNY71.js";
102
+ import "./register.subclis-B0T9tMmL.js";
103
+ import "./command-registry-CojVJ8At.js";
104
104
  import "./program-context-CqzR_m-7.js";
105
- import { r as installCompletion } from "./completion-cli-B915TqN4.js";
105
+ import { r as installCompletion } from "./completion-cli-D3N7Bpqe.js";
106
106
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-CfRwa6qh.js";
107
107
  import "./runtime-guard-D7waq_Ho.js";
108
108
  import { r as isSystemdUserServiceAvailable } from "./systemd-DlMdyFDY.js";
109
109
  import { t as resolveGatewayService } from "./service-Cm9j9WzQ.js";
110
- import { r as healthCommand } from "./health-BctmvDJ0.js";
110
+ import { r as healthCommand } from "./health-CqQIZeIm.js";
111
111
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-BseSWee1.js";
112
112
  import { t as formatHealthCheckFailure } from "./health-format-CzgUHmmX.js";
113
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-BfLDfA98.js";
113
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-F_AI3hun.js";
114
114
  import { t as runTui } from "./tui-BJB80muc.js";
115
115
  import os from "node:os";
116
116
  import path from "node:path";
@@ -21,10 +21,10 @@ import "./accounts-DyJN4_vR.js";
21
21
  import "./bindings-DFaVVCsf.js";
22
22
  import "./logging-w5jq5901.js";
23
23
  import "./paths-CyhzMxFA.js";
24
- import "./client-Z6SFrwob.js";
25
- import "./call-7djMRPgl.js";
24
+ import "./client-CQSyCS4M.js";
25
+ import "./call-CJaS1iRF.js";
26
26
  import "./pairing-token-CX3NN_qj.js";
27
- import { h as randomToken, u as normalizeGatewayTokenInput, y as validateGatewayPasswordInput } from "./onboard-helpers-CiLCJJVQ.js";
27
+ import { h as randomToken, u as normalizeGatewayTokenInput, y as validateGatewayPasswordInput } from "./onboard-helpers-ZmZYzlq3.js";
28
28
  import "./prompt-style-8JqOYj0q.js";
29
29
  import { i as TAILSCALE_MISSING_BIN_NOTE_LINES, n as TAILSCALE_DOCS_LINES, r as TAILSCALE_EXPOSURE_OPTIONS, t as validateIPv4AddressInput } from "./ipv4-CxY-xbsH.js";
30
30
 
@@ -8,6 +8,6 @@ import "./model-selection-CyFvYcRt.js";
8
8
  import "./github-copilot-token-DAu1a6BX.js";
9
9
  import "./boolean-BsqeuxE6.js";
10
10
  import "./env-DPCHYPeH.js";
11
- import { t as ensurePiAuthJsonFromAuthProfiles } from "./system-cli-_0h_FSPB.js";
11
+ import { t as ensurePiAuthJsonFromAuthProfiles } from "./system-cli-UMsMEurS.js";
12
12
 
13
13
  export { ensurePiAuthJsonFromAuthProfiles };
@@ -14,7 +14,7 @@ import { a as logoutWeb, i as logWebSelfId, l as readWebSelfId, p as webAuthExis
14
14
  import { t as normalizeChatType } from "./chat-type-DFDuk3FY.js";
15
15
  import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-D-hWrHoH.js";
16
16
  import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-C1IYd3g7.js";
17
- import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-BH0l3UKW.js";
17
+ import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-C-37cZUe.js";
18
18
  import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-D0xmLpej.js";
19
19
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-C1vRJs5w.js";
20
20
  import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-8zZqL37v.js";
@@ -22,10 +22,10 @@ import { $ as isVoiceCompatibleAudio, A as extractTelegramLocation, B as normali
22
22
  import { d as detectMime, f as extensionForMime, g as isGifMedia, h as isAudioFileName, i as getImageMetadata, m as imageMimeFromFormat, s as resizeToJpeg, x as mediaKindFromMime, y as MAX_IMAGE_BYTES } from "./image-ops-ByaQt43P.js";
23
23
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-j5tVLINv.js";
24
24
  import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel, d as GATEWAY_CLIENT_MODES, f as GATEWAY_CLIENT_NAMES, i as isInternalMessageChannel, l as resolveMessageChannel, n as isDeliverableMessageChannel, o as listDeliverableMessageChannels, r as isGatewayMessageChannel, s as normalizeMessageChannel, t as INTERNAL_MESSAGE_CHANNEL, u as GATEWAY_CLIENT_IDS } from "./message-channel-BQINJQIT.js";
25
- import { $ as mergeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as updateSessionStoreEntry, Jt as ensureSessionHeader, K as updateLastRoute, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as deliveryContextKey, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as resolveCacheTtlMs$1, Xt as resolveBootstrapTotalMaxChars, Y as isCacheEnabled, Yt as resolveBootstrapMaxChars, Z as deliveryContextFromSession, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as DEFAULT_RESET_TRIGGERS, a as isMessagingToolDuplicateNormalized, at as countToolResults, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as applyInputProvenanceToUserMessage, d as isAntigravityClaude, dt as resolveSessionKey, et as normalizeDeliveryContext, f as isGoogleModelApi, ft as evaluateSessionFreshness, g as formatBillingErrorMessage, gt as resolveThreadFlag, h as formatAssistantErrorText, ht as resolveSessionResetType, it as capArrayByJsonBytes, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as hasInterSessionUserProvenance, m as classifyFailoverReason, mt as resolveSessionResetPolicy, n as validateGeminiTurns, nt as normalizeAccountId$3, o as normalizeTextForComparison, ot as extractToolCallNames, p as BILLING_ERROR_USER_MESSAGE, pt as resolveChannelResetConfig, q as updateSessionStore, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as archiveSessionTranscripts, s as sanitizeSessionMessagesImages, st as INPUT_PROVENANCE_KIND_VALUES, t as validateAnthropicTurns, tt as normalizeSessionDeliveryFields, u as downgradeOpenAIReasoningBlocks, ut as normalizeInputProvenance, v as getApiErrorPayloadFingerprint, vt as resolveFreshSessionTotalTokens, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, yt as canonicalizeMainSessionAlias, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-lgx_U5KS.js";
25
+ import { $ as mergeDeliveryContext, A as isTransientHttpError, At as DEFAULT_UPLOAD_DIR, Bt as expandToolGroups, C as isContextOverflowError, Ct as resolveGroupSessionKey, D as isRateLimitAssistantError, Dt as registerBrowserRoutes, E as isLikelyContextOverflowError, Et as createBrowserRouteContext, F as resolveSandboxContext, Ft as resolveSandboxConfigForAgent, Gt as compileGlobPatterns, H as loadSessionStore, Ht as normalizeToolName, I as resolveSandboxRuntimeStatus, It as applyOwnerOnlyToolPolicy, J as updateSessionStoreEntry, Jt as ensureSessionHeader, K as updateLastRoute, Kt as matchesAnyGlobPattern, L as extractDeliveryInfo, Lt as buildPluginToolGroups, M as parseImageSizeError, Mt as getBridgeAuthForPort, N as sanitizeUserFacingText, Nt as ensureBrowserControlAuth, O as isRawApiErrorPayload, Ot as resolveBrowserConfig, P as ensureSandboxWorkspaceForSession, Pt as resolveBrowserControlAuth, Q as deliveryContextKey, R as parseSessionThreadInfo, Rt as collectExplicitAllowlist, S as isCompactionFailureError, St as deriveSessionMetaPatch, T as isFailoverErrorMessage, Tt as resolveSessionLockMaxHoldFromTimeout, U as readSessionUpdatedAt, Ut as resolveToolProfilePolicy, V as resolveAndPersistSessionFile, Vt as mergeAlsoAllowPolicy, W as recordSessionMetaFromInbound, Wt as stripPluginOnlyAllowlist, X as resolveCacheTtlMs$1, Xt as resolveBootstrapTotalMaxChars, Y as isCacheEnabled, Yt as resolveBootstrapMaxChars, Z as deliveryContextFromSession, Zt as sanitizeGoogleTurnOrdering, _ as formatRawAssistantErrorForUi, _t as DEFAULT_RESET_TRIGGERS, a as isMessagingToolDuplicateNormalized, at as countToolResults, b as isBillingAssistantError, bt as resolveExplicitAgentSessionKey, c as extractToolCallsFromAssistant, ct as applyInputProvenanceToUserMessage, d as isAntigravityClaude, dt as resolveSessionKey, et as normalizeDeliveryContext, f as isGoogleModelApi, ft as evaluateSessionFreshness, g as formatBillingErrorMessage, gt as resolveThreadFlag, h as formatAssistantErrorText, ht as resolveSessionResetType, it as capArrayByJsonBytes, j as parseImageDimensionError, jt as resolveExistingPathsWithinRoot, k as isTimeoutErrorMessage, kt as resolveProfile, l as extractToolResultId, lt as hasInterSessionUserProvenance, m as classifyFailoverReason, mt as resolveSessionResetPolicy, n as validateGeminiTurns, nt as normalizeAccountId$3, o as normalizeTextForComparison, ot as extractToolCallNames, p as BILLING_ERROR_USER_MESSAGE, pt as resolveChannelResetConfig, q as updateSessionStore, qt as buildBootstrapContextFiles, r as pickFallbackThinkingLevel, rt as archiveSessionTranscripts, s as sanitizeSessionMessagesImages, st as INPUT_PROVENANCE_KIND_VALUES, t as validateAnthropicTurns, tt as normalizeSessionDeliveryFields, u as downgradeOpenAIReasoningBlocks, ut as normalizeInputProvenance, v as getApiErrorPayloadFingerprint, vt as resolveFreshSessionTotalTokens, w as isFailoverAssistantError, wt as acquireSessionWriteLock, x as isCloudCodeAssistFormatError, xt as resolveMainSessionKey, y as isAuthAssistantError, yt as canonicalizeMainSessionAlias, z as appendAssistantMessageToSessionTranscript, zt as expandPolicyWithPluginGroups } from "./pi-embedded-helpers-B8kqLWns.js";
26
26
  import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-BmV60pPT.js";
27
27
  import { c as normalizePluginsConfig, f as isPathInsideWithRealpath, i as safeStatSync, l as resolveEnableState, n as discoverSymiPlugins, p as isDangerousHostEnvVarName, r as isPathInside, s as applyTestPluginDefaults, t as loadPluginManifestRegistry, u as resolveMemorySlotDecision } from "./manifest-registry-D-mTF1cj.js";
28
- import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-CDJYxX5a.js";
28
+ import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-D2SKJnR7.js";
29
29
  import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-BNpGMnp-.js";
30
30
  import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-CPfngF0S.js";
31
31
  import { i as isBlockedHostnameOrIp, o as normalizeHostname, t as SsrFBlockedError } from "./ssrf-CxfFyMRZ.js";
@@ -36,7 +36,7 @@ import { t as resolveIMessageAccount } from "./accounts-DImOt9jX.js";
36
36
  import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-DkMamAQ-.js";
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
- 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-CHzdaNJ4.js";
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-DcpMiprB.js";
40
40
  import { i as resolveMemorySearchConfig, n as probeOllamaEmbeddingModels, r as resolveOllamaBaseUrl } from "./manager-jpn5vRTY.js";
41
41
  import { d as listMemoryFiles, f as normalizeExtraMemoryPaths, g as runTasksWithConcurrency } from "./sqlite-BNh23mUR.js";
42
42
  import { n as retryAsync } from "./retry-QGp0jvVi.js";
@@ -49,7 +49,7 @@ import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-F0moAwIl.js";
49
49
  import { _ as resolveNativeCommandsEnabled, a as listChatCommandsForConfig, c as normalizeCommandBody, d as resolveCommandArgMenu, f as serializeCommandArgs, g as isRestartEnabled, h as isNativeCommandsExplicitlyDisabled, i as listChatCommands, l as parseCommandArgs, m as isCommandFlagEnabled, o as listNativeCommandSpecs, p as shouldHandleTextCommands, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgChoices, v as resolveNativeSkillsEnabled } from "./commands-registry-C_aYUwpl.js";
50
50
  import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-DklY7Cj7.js";
51
51
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-QOi5vzUt.js";
52
- import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-DUBExAb5.js";
52
+ import { _ as resolveMediaUnderstandingScope, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as normalizeMediaUnderstandingChatType, h as resolveTimeoutMs$1, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveConcurrency, n as createMediaAttachmentCache, o as runCapability, p as registerUnhandledRejectionHandler, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as CLI_OUTPUT_MAX_BUFFER, y as applyTemplate } from "./runner-BcQ0sF9T.js";
53
53
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-DtLn7YU3.js";
54
54
  import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-DtXYsHEc.js";
55
55
  import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-D9q-fIPB.js";
@@ -79,7 +79,7 @@ import { EdgeTTS } from "node-edge-tts";
79
79
  import AjvPkg from "ajv";
80
80
  import { createServer } from "node:http";
81
81
  import { ProxyAgent, fetch as fetch$1 } from "undici";
82
- import WebSocket$1, { WebSocket } from "ws";
82
+ import WebSocket, { WebSocket as WebSocket$1 } from "ws";
83
83
  import { Buffer as Buffer$1 } from "node:buffer";
84
84
  import { createJiti } from "jiti";
85
85
  import { Type } from "@sinclair/typebox";
@@ -5714,7 +5714,7 @@ var GatewayClient = class {
5714
5714
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
5715
5715
  });
5716
5716
  }
5717
- this.ws = new WebSocket(url, wsOptions);
5717
+ this.ws = new WebSocket$1(url, wsOptions);
5718
5718
  this.ws.on("open", () => {
5719
5719
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
5720
5720
  const tlsError = this.validateTlsFingerprint();
@@ -5933,7 +5933,7 @@ var GatewayClient = class {
5933
5933
  return null;
5934
5934
  }
5935
5935
  async request(method, params, opts) {
5936
- if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
5936
+ if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
5937
5937
  const id = randomUUID();
5938
5938
  const frame = {
5939
5939
  type: "req",
@@ -7199,7 +7199,7 @@ async function routeReply(params) {
7199
7199
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
7200
7200
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
7201
7201
  try {
7202
- const { deliverOutboundPayloads } = await import("./deliver-BH0l3UKW.js").then((n) => n.n);
7202
+ const { deliverOutboundPayloads } = await import("./deliver-C-37cZUe.js").then((n) => n.n);
7203
7203
  return {
7204
7204
  ok: true,
7205
7205
  messageId: (await deliverOutboundPayloads({
@@ -42346,6 +42346,16 @@ function validateShellCommand(command) {
42346
42346
  //#endregion
42347
42347
  //#region src/agents/pi-tools.validate-wrapper.ts
42348
42348
  const log$1 = createSubsystemLogger("agents/tool-validate");
42349
+ /** Return a properly formatted tool result error that pi-agent-core can process. */
42350
+ function toolError(message) {
42351
+ return {
42352
+ content: [{
42353
+ type: "text",
42354
+ text: message
42355
+ }],
42356
+ details: {}
42357
+ };
42358
+ }
42349
42359
  const EXEC_TOOL_NAMES = new Set(["exec", "bash"]);
42350
42360
  const GEMMA_MODEL_ID = "gemma";
42351
42361
  /**
@@ -42401,15 +42411,56 @@ function sanitizeParams(params) {
42401
42411
  };
42402
42412
  }
42403
42413
  /**
42414
+ * Build a usage example string from a tool's JSON schema for helpful error messages.
42415
+ * Returns something like: web_search({ query: "<search terms>" })
42416
+ */
42417
+ function buildToolUsageExample(toolName, schema) {
42418
+ const props = schema?.properties;
42419
+ if (!props || typeof props !== "object") return `${toolName}({ ... })`;
42420
+ return `${toolName}({ ${Object.entries(props).slice(0, 4).map(([key, def]) => {
42421
+ const typeDef = def;
42422
+ if (Array.isArray(typeDef?.enum)) return `${key}: "${typeDef.enum[0]}"`;
42423
+ if (typeDef?.type === "string") return `${key}: "<${typeof typeDef.description === "string" ? typeDef.description.slice(0, 30) : key}>"`;
42424
+ return `${key}: ...`;
42425
+ }).join(", ")} })`;
42426
+ }
42427
+ /**
42428
+ * Extract required fields from a tool's JSON schema.
42429
+ */
42430
+ function getRequiredFields(schema) {
42431
+ const required = schema?.required;
42432
+ return Array.isArray(required) ? required.filter((r) => typeof r === "string") : [];
42433
+ }
42434
+ /**
42435
+ * Create a relaxed copy of a tool schema with required fields removed.
42436
+ * This allows args with missing fields to pass pi-agent-core's schema
42437
+ * validation, reaching our execute() wrapper where we can return a
42438
+ * helpful error message with a usage example.
42439
+ */
42440
+ function relaxSchema(schema) {
42441
+ if (!schema || typeof schema !== "object") return schema;
42442
+ const copy = { ...schema };
42443
+ delete copy.required;
42444
+ return copy;
42445
+ }
42446
+ /**
42404
42447
  * Wrap a single tool with universal argument sanitization.
42405
42448
  */
42406
42449
  function wrapToolWithArgValidation(tool) {
42407
42450
  const toolName = (tool.name ?? "").toLowerCase().trim();
42408
42451
  const isExecTool = EXEC_TOOL_NAMES.has(toolName);
42452
+ const originalRequired = getRequiredFields(tool.parameters);
42453
+ const usageExample = buildToolUsageExample(toolName, tool.parameters);
42409
42454
  const originalExecute = tool.execute;
42410
42455
  return {
42411
42456
  ...tool,
42457
+ parameters: relaxSchema(tool.parameters),
42412
42458
  execute(toolCallId, params, ...rest) {
42459
+ const missingFields = originalRequired.filter((field) => params[field] === void 0 || params[field] === null);
42460
+ if (missingFields.length > 0) {
42461
+ log$1.warn(`[validate] ${toolName} missing required fields: ${missingFields.join(", ")}`);
42462
+ return Promise.resolve(toolError(`Error: Missing required argument${missingFields.length > 1 ? "s" : ""}: ${missingFields.join(", ")}. Please try again with all required arguments.\nExample: ${usageExample}`));
42463
+ }
42413
42464
  const { cleaned, changed } = sanitizeParams(params);
42414
42465
  if (changed) log$1.debug(`[validate] sanitized args for ${toolName}: ${Object.keys(params).filter((k) => cleaned[k] !== params[k]).join(",")}`);
42415
42466
  const effectiveParams = changed ? cleaned : params;
@@ -42422,7 +42473,7 @@ function wrapToolWithArgValidation(tool) {
42422
42473
  const result = validateShellCommand(command);
42423
42474
  if (!result.valid) {
42424
42475
  log$1.warn(`[validate] exec command rejected: reason=${result.reason} raw=${command.slice(0, 100)}`);
42425
- return Promise.resolve({ output: `Error: ${result.reason}. The command appears to contain model control tokens. Please provide a clean shell command without any <|, |>, or XML-like tags. Only valid shell syntax is accepted.` });
42476
+ return Promise.resolve(toolError(`Error: ${result.reason}. The command appears to contain model control tokens. Please provide a clean shell command without any <|, |>, or XML-like tags. Only valid shell syntax is accepted.`));
42426
42477
  }
42427
42478
  if (result.cleaned !== command) {
42428
42479
  log$1.debug(`[validate] exec command cleaned: raw=${command.slice(0, 80)} → cleaned=${result.cleaned.slice(0, 80)}`);
@@ -50713,7 +50764,7 @@ async function deliverSessionMaintenanceWarning(params) {
50713
50764
  return;
50714
50765
  }
50715
50766
  try {
50716
- const { deliverOutboundPayloads } = await import("./deliver-BH0l3UKW.js").then((n) => n.n);
50767
+ const { deliverOutboundPayloads } = await import("./deliver-C-37cZUe.js").then((n) => n.n);
50717
50768
  await deliverOutboundPayloads({
50718
50769
  cfg: params.cfg,
50719
50770
  channel,
@@ -54159,7 +54210,7 @@ async function describeStickerImage(params) {
54159
54210
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
54160
54211
  try {
54161
54212
  const buffer = await fs$1.readFile(imagePath);
54162
- const { describeImageWithModel } = await import("./image-CHzdaNJ4.js").then((n) => n.n);
54213
+ const { describeImageWithModel } = await import("./image-DcpMiprB.js").then((n) => n.n);
54163
54214
  return (await describeImageWithModel({
54164
54215
  buffer,
54165
54216
  fileName: "sticker.webp",
@@ -56821,7 +56872,7 @@ async function preflightDiscordMessage(params) {
56821
56872
  let preflightTranscript;
56822
56873
  const hasAudioAttachment = message.attachments?.some((att) => att.contentType?.startsWith("audio/"));
56823
56874
  if (!isDirectMessage && shouldRequireMention && hasAudioAttachment && !baseText && mentionRegexes.length > 0) try {
56824
- const { transcribeFirstAudio } = await import("./audio-preflight-C40mKAp7.js");
56875
+ const { transcribeFirstAudio } = await import("./audio-preflight-CPBOQV4I.js");
56825
56876
  const audioPaths = message.attachments?.filter((att) => att.contentType?.startsWith("audio/")).map((att) => att.url) ?? [];
56826
56877
  if (audioPaths.length > 0) preflightTranscript = await transcribeFirstAudio({
56827
56878
  ctx: {
@@ -60604,7 +60655,7 @@ function isVoiceChannelType(type) {
60604
60655
  function createDefaultDeps() {
60605
60656
  return {
60606
60657
  sendMessageWhatsApp: async (...args) => {
60607
- const { sendMessageWhatsApp } = await import("./web-BC4kDUZw.js");
60658
+ const { sendMessageWhatsApp } = await import("./web-D7tHOzz3.js");
60608
60659
  return await sendMessageWhatsApp(...args);
60609
60660
  },
60610
60661
  sendMessageTelegram: async (...args) => {
@@ -63509,7 +63560,7 @@ function createDiscordGatewayPlugin(params) {
63509
63560
  super(options);
63510
63561
  }
63511
63562
  createWebSocket(url) {
63512
- return new WebSocket$1(url, { agent });
63563
+ return new WebSocket(url, { agent });
63513
63564
  }
63514
63565
  }
63515
63566
  return new ProxyGatewayPlugin();
@@ -73727,7 +73778,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
73727
73778
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
73728
73779
  let preflightTranscript;
73729
73780
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
73730
- const { transcribeFirstAudio } = await import("./audio-preflight-C40mKAp7.js");
73781
+ const { transcribeFirstAudio } = await import("./audio-preflight-CPBOQV4I.js");
73731
73782
  preflightTranscript = await transcribeFirstAudio({
73732
73783
  ctx: {
73733
73784
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -75884,7 +75935,7 @@ function loadWebLoginQr() {
75884
75935
  return webLoginQrPromise;
75885
75936
  }
75886
75937
  function loadWebChannel() {
75887
- webChannelPromise ??= import("./web-BC4kDUZw.js");
75938
+ webChannelPromise ??= import("./web-D7tHOzz3.js");
75888
75939
  return webChannelPromise;
75889
75940
  }
75890
75941
  function loadWhatsAppActions() {
@@ -10,7 +10,7 @@ import { t as normalizeChatType } from "./chat-type-DFDuk3FY.js";
10
10
  import { c as SafeOpenError, i as getImageMetadata, l as openFileWithinRoot, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-ByaQt43P.js";
11
11
  import { o as listDeliverableMessageChannels, s as normalizeMessageChannel } from "./message-channel-BQINJQIT.js";
12
12
  import { _ as parseDurationMs, a as writeConfigFile, n as loadConfig, s as parseByteSize, t as createConfigIO } from "./config-BmV60pPT.js";
13
- 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-CDJYxX5a.js";
13
+ 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-D2SKJnR7.js";
14
14
  import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-BNpGMnp-.js";
15
15
  import { n as formatErrorMessage, t as extractErrorCode } from "./errors-CPfngF0S.js";
16
16
  import { t as SsrFBlockedError } from "./ssrf-CxfFyMRZ.js";
@@ -931,7 +931,7 @@ function isModuleNotFoundError(err) {
931
931
  }
932
932
  async function loadPwAiModule(mode) {
933
933
  try {
934
- return await import("./pw-ai-De-KR9_s.js");
934
+ return await import("./pw-ai-1htA-NnS.js");
935
935
  } catch (err) {
936
936
  if (mode === "soft") return null;
937
937
  if (isModuleNotFoundError(err)) return null;
@@ -3471,11 +3471,11 @@ function createProfileContext(opts, profile) {
3471
3471
  const userDataDir = resolveSymiUserDataDir(profile.name);
3472
3472
  const profileState = getProfileState();
3473
3473
  if (await isHttpReachable(300) && !profileState.running) try {
3474
- await (await import("./pw-ai-De-KR9_s.js")).closePlaywrightBrowserConnection();
3474
+ await (await import("./pw-ai-1htA-NnS.js")).closePlaywrightBrowserConnection();
3475
3475
  } catch {}
3476
3476
  if (profileState.running) await stopRunningBrowser();
3477
3477
  try {
3478
- await (await import("./pw-ai-De-KR9_s.js")).closePlaywrightBrowserConnection();
3478
+ await (await import("./pw-ai-1htA-NnS.js")).closePlaywrightBrowserConnection();
3479
3479
  } catch {}
3480
3480
  if (!fs.existsSync(userDataDir)) return {
3481
3481
  moved: false,
@@ -1,6 +1,6 @@
1
1
  import { E as truncateUtf16Safe } from "./utils-B-0b9bGM.js";
2
2
  import { s as normalizeThinkLevel } from "./thinking-EAliFiVK.js";
3
- import { s as formatSandboxToolPolicyBlockedMessage } from "./sandbox-B7qoYkRl.js";
3
+ import { s as formatSandboxToolPolicyBlockedMessage } from "./sandbox-C-T6hOMv.js";
4
4
  import { t as sanitizeContentBlocksImages } from "./tool-images-DvUBlqjX.js";
5
5
  import path from "node:path";
6
6
  import fs from "node:fs/promises";
@@ -9,7 +9,7 @@ import { h as isPidAlive, m as resolveProcessScopedMap } from "./auth-profiles-D
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-5SdHIcHU.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-DkaXoP36.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-DYZwl5Gv.js";
13
13
  import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-Bs0AW1g3.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";
@@ -933,7 +933,7 @@ function isModuleNotFoundError(err) {
933
933
  }
934
934
  async function loadPwAiModule(mode) {
935
935
  try {
936
- return await import("./pw-ai-m0mj2KWK.js");
936
+ return await import("./pw-ai-B5asscAD.js");
937
937
  } catch (err) {
938
938
  if (mode === "soft") return null;
939
939
  if (isModuleNotFoundError(err)) return null;
@@ -3473,11 +3473,11 @@ function createProfileContext(opts, profile) {
3473
3473
  const userDataDir = resolveSymiUserDataDir(profile.name);
3474
3474
  const profileState = getProfileState();
3475
3475
  if (await isHttpReachable(300) && !profileState.running) try {
3476
- await (await import("./pw-ai-m0mj2KWK.js")).closePlaywrightBrowserConnection();
3476
+ await (await import("./pw-ai-B5asscAD.js")).closePlaywrightBrowserConnection();
3477
3477
  } catch {}
3478
3478
  if (profileState.running) await stopRunningBrowser();
3479
3479
  try {
3480
- await (await import("./pw-ai-m0mj2KWK.js")).closePlaywrightBrowserConnection();
3480
+ await (await import("./pw-ai-B5asscAD.js")).closePlaywrightBrowserConnection();
3481
3481
  } catch {}
3482
3482
  if (!fs.existsSync(userDataDir)) return {
3483
3483
  moved: false,
@@ -2,7 +2,7 @@ import { C as resolveThreadParentSessionKey, l as resolveAgentIdFromSessionKey }
2
2
  import { r as resolveAgentConfig } from "./agent-scope-CgUHAtCo.js";
3
3
  import { l as normalizeMessageChannel } from "./message-channel-aT-I_DTX.js";
4
4
  import { z as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./config-CHwyw6l5.js";
5
- import { T as matchesAnyGlobPattern, w as compileGlobPatterns, x as normalizeToolName, y as expandToolGroups } from "./sandbox-B7qoYkRl.js";
5
+ import { T as matchesAnyGlobPattern, w as compileGlobPatterns, x as normalizeToolName, y as expandToolGroups } from "./sandbox-C-T6hOMv.js";
6
6
  import { o as resolveChannelGroupToolsPolicy, t as getChannelDock } from "./dock-BhS32F6E.js";
7
7
 
8
8
  //#region src/agents/sandbox-tool-policy.ts
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { ft as loadSymiPlugins } from "./reply-CiPQDsZl.js";
2
+ import { ft as loadSymiPlugins } from "./reply-DPaH7oQp.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-DHBLS1Hl.js";
5
- import { m as loadSymiPlugins } from "./subagent-registry-DTIudfq4.js";
5
+ import { m as loadSymiPlugins } from "./subagent-registry-CzBf7A_o.js";
6
6
 
7
7
  //#region src/cli/plugin-registry.ts
8
8
  var plugin_registry_exports = /* @__PURE__ */ __exportAll({ ensurePluginRegistryLoaded: () => ensurePluginRegistryLoaded });
@@ -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 { E as enqueueSystemEvent, G as resolveMentionGating, W as shouldAckReactionForWhatsApp, X as buildHistoryContextFromEntries, Y as DEFAULT_GROUP_HISTORY_LIMIT, _ as resolveEnvelopeFormatOptions, c as computeBackoff, d as formatDurationPrecise, f as dispatchReplyWithBufferedBlockDispatcher, g as formatInboundEnvelope, h as resolveInboundDebounceMs, ht as createDedupeCache, l as sleepWithAbort, m as createInboundDebouncer, n as normalizeGroupActivation, nt as buildMentionRegexes, r as parseActivationCommand, rt as normalizeMentionText, t as getReplyFromConfig, tt as recordPendingHistoryEntryIfEnabled, u as buildPairingReply, v as hasControlCommand, y as shouldComputeCommandAuthorized } from "./reply-BvxntA3R.js";
3
+ import { E as enqueueSystemEvent, G as resolveMentionGating, W as shouldAckReactionForWhatsApp, X as buildHistoryContextFromEntries, Y as DEFAULT_GROUP_HISTORY_LIMIT, _ as resolveEnvelopeFormatOptions, c as computeBackoff, d as formatDurationPrecise, f as dispatchReplyWithBufferedBlockDispatcher, g as formatInboundEnvelope, h as resolveInboundDebounceMs, ht as createDedupeCache, l as sleepWithAbort, m as createInboundDebouncer, n as normalizeGroupActivation, nt as buildMentionRegexes, r as parseActivationCommand, rt as normalizeMentionText, t as getReplyFromConfig, tt as recordPendingHistoryEntryIfEnabled, u as buildPairingReply, v as hasControlCommand, y as shouldComputeCommandAuthorized } from "./reply-S1JHdV1Y.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-DDkdiUOR.js";
6
6
  import { i as defaultRuntime, t as createSubsystemLogger } from "./subsystem-Coz2AgU8.js";
@@ -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 clearHistoryEntriesIfEnabled, A as resolveDiscordUserAllowlist, B as logTypingFailure, C as stripMarkdown, Ct as unbindThreadBindingsBySessionKey, D as resolveSlackUserAllowlist, Dt as BLUEBUBBLES_ACTION_NAMES, Et as BLUEBUBBLES_ACTIONS, F as stringEnum, G as resolveMentionGating, H as removeAckReactionAfterReply, I as recordInboundSession, J as summarizeMapping, K as resolveMentionGatingWithBypass, L as resolveControlCommandGate, M as collectDiscordAuditChannelIds, N as formatDocsLink, O as resolveSlackChannelAllowlist, Ot as BLUEBUBBLES_GROUP_ACTIONS, P as optionalStringEnum, Q as clearHistoryEntries, R as logAckFailure, S as processLineMessage, St as listThreadBindingsBySessionKey, T as attachFooterText, Tt as resolveAllowlistMatchSimple, U as shouldAckReaction, V as createTypingCallbacks, W as shouldAckReactionForWhatsApp, Y as DEFAULT_GROUP_HISTORY_LIMIT, Z as buildPendingHistoryContextFromMap, _t as listDevicePairing, a as normalizeAccountId$1, at as isWSLEnv, bt as registerPluginHttpRoute, ct as DEFAULT_WEBHOOK_MAX_BODY_BYTES, dt as isRequestBodyLimitError, et as recordPendingHistoryEntry, ft as readJsonBodyWithLimit, gt as approveDevicePairing, ht as createDedupeCache, i as listLineAccountIds, it as isWSL2Sync, j as resolveDiscordChannelAllowlist, k as detectBinary, kt as CHANNEL_MESSAGE_ACTION_NAMES, lt as RequestBodyLimitError, mt as requestBodyErrorToText, o as resolveDefaultLineAccountId, ot as isWSLSync, pt as readRequestBodyWithLimit, q as mergeAllowlist, s as resolveLineAccount, st as DEFAULT_WEBHOOK_BODY_TIMEOUT_MS, tt as recordPendingHistoryEntryIfEnabled, ut as installRequestBodyLimitGuard, vt as rejectDevicePairing, w as createReceiptCard, wt as formatAllowlistMatchMeta, x as hasMarkdownToConvert, xt as autoBindSpawnedDiscordSubagent, yt as extractToolSend, z as logInboundDrop } from "./reply-BvxntA3R.js";
3
+ import { $ as clearHistoryEntriesIfEnabled, A as resolveDiscordUserAllowlist, B as logTypingFailure, C as stripMarkdown, Ct as unbindThreadBindingsBySessionKey, D as resolveSlackUserAllowlist, Dt as BLUEBUBBLES_ACTION_NAMES, Et as BLUEBUBBLES_ACTIONS, F as stringEnum, G as resolveMentionGating, H as removeAckReactionAfterReply, I as recordInboundSession, J as summarizeMapping, K as resolveMentionGatingWithBypass, L as resolveControlCommandGate, M as collectDiscordAuditChannelIds, N as formatDocsLink, O as resolveSlackChannelAllowlist, Ot as BLUEBUBBLES_GROUP_ACTIONS, P as optionalStringEnum, Q as clearHistoryEntries, R as logAckFailure, S as processLineMessage, St as listThreadBindingsBySessionKey, T as attachFooterText, Tt as resolveAllowlistMatchSimple, U as shouldAckReaction, V as createTypingCallbacks, W as shouldAckReactionForWhatsApp, Y as DEFAULT_GROUP_HISTORY_LIMIT, Z as buildPendingHistoryContextFromMap, _t as listDevicePairing, a as normalizeAccountId$1, at as isWSLEnv, bt as registerPluginHttpRoute, ct as DEFAULT_WEBHOOK_MAX_BODY_BYTES, dt as isRequestBodyLimitError, et as recordPendingHistoryEntry, ft as readJsonBodyWithLimit, gt as approveDevicePairing, ht as createDedupeCache, i as listLineAccountIds, it as isWSL2Sync, j as resolveDiscordChannelAllowlist, k as detectBinary, kt as CHANNEL_MESSAGE_ACTION_NAMES, lt as RequestBodyLimitError, mt as requestBodyErrorToText, o as resolveDefaultLineAccountId, ot as isWSLSync, pt as readRequestBodyWithLimit, q as mergeAllowlist, s as resolveLineAccount, st as DEFAULT_WEBHOOK_BODY_TIMEOUT_MS, tt as recordPendingHistoryEntryIfEnabled, ut as installRequestBodyLimitGuard, vt as rejectDevicePairing, w as createReceiptCard, wt as formatAllowlistMatchMeta, x as hasMarkdownToConvert, xt as autoBindSpawnedDiscordSubagent, yt as extractToolSend, z as logInboundDrop } from "./reply-S1JHdV1Y.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,7 +47,7 @@ import "./paths-A0xdf3yk.js";
47
47
  import { h as onDiagnosticEvent, m as isDiagnosticsEnabled, p as emitDiagnosticEvent } from "./diagnostic-mFf4i4G9.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-BdY2z7lg.js";
50
+ import { r as resolveWhatsAppHeartbeatRecipients } from "./channel-web-CQNBQiKF.js";
51
51
  import "./image-BOYy0Ump.js";
52
52
  import "./pi-model-discovery-LbcEa65a.js";
53
53
  import "./api-key-rotation-CVBMpnPc.js";