@symerian/symi 2.4.3 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/dist/{agents-BrpbYYTb.js → agents-BEPfMqrg.js} +4 -4
  2. package/dist/{agents.config-j4SWyB6K.js → agents.config-D60gMagv.js} +1 -1
  3. package/dist/{agents.config-Bf8u_0ts.js → agents.config-DPv-AmZD.js} +1 -1
  4. package/dist/{audio-preflight-C40mKAp7.js → audio-preflight-CPBOQV4I.js} +4 -4
  5. package/dist/{auth-choice-BYB9fJiu.js → auth-choice-BeHaRQfM.js} +1 -1
  6. package/dist/{auth-choice-DlrjQI-v.js → auth-choice-CTeG2A5P.js} +1 -1
  7. package/dist/{banner-DRJJmkv1.js → banner-DihS8WHF.js} +1 -1
  8. package/dist/build-info.json +3 -3
  9. package/dist/bundled/boot-md/handler.js +1 -1
  10. package/dist/bundled/session-memory/handler.js +1 -1
  11. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  12. package/dist/{channel-options-CxSIp3x-.js → channel-options-BJphNYiq.js} +1 -1
  13. package/dist/{channel-options-BQz0F4El.js → channel-options-D2Zf6a2L.js} +1 -1
  14. package/dist/{channel-web-BY4lhNxW.js → channel-web-BnZ6c0_u.js} +1 -1
  15. package/dist/{channels-cli-B5Nj_nHr.js → channels-cli-CF9LDCSC.js} +10 -10
  16. package/dist/{channels-cli--rkhLJvR.js → channels-cli-COMko9mZ.js} +4 -4
  17. package/dist/{chrome-CDJYxX5a.js → chrome-D2SKJnR7.js} +7 -7
  18. package/dist/{cli-Ds6poYQ6.js → cli-DXpAHJS4.js} +1 -1
  19. package/dist/{cli-CATf6JAq.js → cli-DYNTJxmZ.js} +7 -7
  20. package/dist/{command-registry-CsDAPQfS.js → command-registry-X_FmrHib.js} +9 -9
  21. package/dist/{completion-cli-B_f5PMBc.js → completion-cli-D1aObtjM.js} +1 -1
  22. package/dist/{completion-cli-CSdjFWHy.js → completion-cli-Dhj0jCR_.js} +2 -2
  23. package/dist/{config-cli-C_GarUko.js → config-cli-BDpBT1b-.js} +1 -1
  24. package/dist/{config-cli-B_KCvdli.js → config-cli-BrmaXVj4.js} +1 -1
  25. package/dist/{configure-vfmJApU8.js → configure-CkCFJCKp.js} +3 -3
  26. package/dist/{configure-CM-z8YCS.js → configure-oMqP6jIk.js} +3 -3
  27. package/dist/{deliver-BH0l3UKW.js → deliver-C-37cZUe.js} +1 -1
  28. package/dist/{deliver-CceEhg3d.js → deliver-CWR_98sK.js} +54 -54
  29. package/dist/{doctor-completion-BWJvfjTC.js → doctor-completion-vhqAoURB.js} +1 -1
  30. package/dist/{doctor-completion-llX6EnGy.js → doctor-completion-wGoyzRH8.js} +1 -1
  31. package/dist/entry.js +1 -1
  32. package/dist/extensionAPI.js +6 -6
  33. package/dist/{gateway-cli-BApdH1bD.js → gateway-cli-BBPEwiAc.js} +9 -9
  34. package/dist/{gateway-cli-70k2-I4K.js → gateway-cli-uDuGdJsH.js} +17 -17
  35. package/dist/{glass-ui-ws-Z_wtGa_A.js → glass-ui-ws-DiqQflvy.js} +7 -7
  36. package/dist/{glass-ui-ws-Be_AOhp7.js → glass-ui-ws-TCkne4L4.js} +13 -13
  37. package/dist/{health-BBGgp_dC.js → health-1KsVR3eN.js} +2 -2
  38. package/dist/{health-BmaWws9G.js → health-CPYlV7Zg.js} +1 -1
  39. package/dist/{hooks-cli-C5eV9sxP.js → hooks-cli-CL266d2E.js} +8 -8
  40. package/dist/{hooks-cli-W_aoP9nb.js → hooks-cli-PKy2h3eb.js} +2 -2
  41. package/dist/{image-CHzdaNJ4.js → image-DcpMiprB.js} +1 -1
  42. package/dist/index.js +12 -12
  43. package/dist/llm-slug-generator.js +1 -1
  44. package/dist/{models-COaQWNz5.js → models-BsS_l1gY.js} +2 -2
  45. package/dist/{models-cli-DeG1qheS.js → models-cli-CmR7k-2e.js} +8 -8
  46. package/dist/{models-cli-DH17yK8M.js → models-cli-CvxkLybz.js} +3 -3
  47. package/dist/{onboard-1wGdR0wt.js → onboard-Bgo_BcMo.js} +2 -2
  48. package/dist/{onboard-nQYq_dsr.js → onboard-D2GpwLzg.js} +2 -2
  49. package/dist/{onboard-channels-D93AAHMd.js → onboard-channels-3WFDi7Ts.js} +1 -1
  50. package/dist/{onboard-channels-BCUkNB26.js → onboard-channels-BNTeFCna.js} +1 -1
  51. package/dist/{onboarding-Peg7PNOz.js → onboarding-BUumoJYB.js} +3 -3
  52. package/dist/{onboarding-gQRA57l_.js → onboarding-CbkyewZp.js} +3 -3
  53. package/dist/{onboarding.finalize-C4DSBMrV.js → onboarding.finalize-B2_mgA4K.js} +6 -6
  54. package/dist/{onboarding.finalize-D26o-hBA.js → onboarding.finalize-sESCY9Iq.js} +11 -11
  55. package/dist/{pi-embedded-XE5y7qIF.js → pi-embedded-BIIdwXKr.js} +24743 -24406
  56. package/dist/{pi-embedded-CAJ6egA1.js → pi-embedded-BOF7XlCO.js} +24751 -24414
  57. package/dist/{pi-embedded-helpers-lgx_U5KS.js → pi-embedded-helpers-B8kqLWns.js} +4 -4
  58. package/dist/{plugin-registry-D_BAH1V5.js → plugin-registry-BDfC2z-e.js} +1 -1
  59. package/dist/{plugin-registry-C0iHnZ7j.js → plugin-registry-IXa-nyg0.js} +1 -1
  60. package/dist/plugin-sdk/{accounts-BToL3HlP.js → accounts-BtaOa4z_.js} +1 -1
  61. package/dist/plugin-sdk/{accounts-D9zGZU5t.js → accounts-Ddm33hQm.js} +3 -3
  62. package/dist/plugin-sdk/{accounts-Dtszw3Zn.js → accounts-s-AdhXVR.js} +1 -1
  63. package/dist/plugin-sdk/{active-listener-bEk__wbB.js → active-listener-BXYeALs0.js} +1 -1
  64. package/dist/plugin-sdk/{agent-scope-C3gMMKCU.js → agent-scope-CYYpcO9W.js} +2 -2
  65. package/dist/plugin-sdk/agents/output-normalizer.d.ts +69 -0
  66. package/dist/plugin-sdk/agents/tools/browser-tool.schema.d.ts +1 -1
  67. package/dist/plugin-sdk/agents/unified-runner.d.ts +122 -0
  68. package/dist/plugin-sdk/{api-key-rotation-CVBMpnPc.js → api-key-rotation-D_sMvI5W.js} +1 -1
  69. package/dist/plugin-sdk/{audio-preflight-DoQQKlxa.js → audio-preflight-VpItkiy3.js} +24 -24
  70. package/dist/plugin-sdk/{bindings-BbwoUGPx.js → bindings-C7hRtgYW.js} +2 -2
  71. package/dist/plugin-sdk/{channel-activity-Ji7f0gqq.js → channel-activity-DoC1xtDu.js} +1 -1
  72. package/dist/plugin-sdk/{channel-web-ilY3YUmF.js → channel-web-HznAZS1r.js} +22 -22
  73. package/dist/plugin-sdk/{chrome-C7c_0I5M.js → chrome-B7RdxmJ0.js} +3 -3
  74. package/dist/plugin-sdk/{chunk-jvk9axTQ.js → chunk-Dw2XBYXv.js} +1 -1
  75. package/dist/plugin-sdk/{command-format-DSdvQ_M5.js → command-format-GKSevep4.js} +1 -1
  76. package/dist/plugin-sdk/{commands-registry-CQFbmUMs.js → commands-registry-COIaslGl.js} +4 -4
  77. package/dist/plugin-sdk/{config-DDkdiUOR.js → config-KlTNfkFF.js} +9 -9
  78. package/dist/plugin-sdk/{deliver-BUns_L9e.js → deliver-BZ99UKQq.js} +125 -125
  79. package/dist/plugin-sdk/{diagnostic-mFf4i4G9.js → diagnostic-05pm5Rxi.js} +1 -1
  80. package/dist/plugin-sdk/{image-BOYy0Ump.js → image-CLOPx7yW.js} +4 -4
  81. package/dist/plugin-sdk/{image-ops-Bnp6LXEx.js → image-ops-BlQR__MN.js} +1 -1
  82. package/dist/plugin-sdk/index.js +53 -53
  83. package/dist/plugin-sdk/{ir-Fb3qpcis.js → ir-BJ6BHE5b.js} +4 -4
  84. package/dist/plugin-sdk/{local-roots-Ckk1QfzI.js → local-roots-BHLNSI8U.js} +3 -3
  85. package/dist/plugin-sdk/{login-Bh3DZPam.js → login-DQMXuxOk.js} +7 -7
  86. package/dist/plugin-sdk/{login-qr-DbR7odSr.js → login-qr-BjVZSoCi.js} +9 -9
  87. package/dist/plugin-sdk/{manager-DckktAQ3.js → manager-CBSBFuFz.js} +8 -8
  88. package/dist/plugin-sdk/{manifest-registry-B3ugY9-f.js → manifest-registry-CPnHl_K3.js} +1 -1
  89. package/dist/plugin-sdk/{markdown-tables-Dfaqilz6.js → markdown-tables-BoYFajMu.js} +1 -1
  90. package/dist/plugin-sdk/{message-channel-BdI5Ra9S.js → message-channel-COTAJzHd.js} +1 -1
  91. package/dist/plugin-sdk/{model-selection-OpU8HN50.js → model-selection-CsbEfrS0.js} +4 -4
  92. package/dist/plugin-sdk/{outbound-rF6G8Xpr.js → outbound-B0e8KdaR.js} +7 -7
  93. package/dist/plugin-sdk/{outbound-attachment-DnVQfTG2.js → outbound-attachment-CnslKL38.js} +2 -2
  94. package/dist/plugin-sdk/{pi-auth-json-CJk8t14T.js → pi-auth-json-qWi7ZIYV.js} +5 -5
  95. package/dist/plugin-sdk/{pi-embedded-helpers-BveUP4hk.js → pi-embedded-helpers-CW630epe.js} +17 -17
  96. package/dist/plugin-sdk/{plugins-BbAvhC25.js → plugins-BNByVCIH.js} +4 -4
  97. package/dist/plugin-sdk/{pw-ai-DjGUsee-.js → pw-ai-CnbPIPY9.js} +8 -8
  98. package/dist/plugin-sdk/{qmd-manager-mjKcdwVr.js → qmd-manager-CH0XbIHf.js} +4 -4
  99. package/dist/plugin-sdk/{registry--_pGht6S.js → registry-D0xTnUWt.js} +2 -2
  100. package/dist/plugin-sdk/{replies-fI39rPGa.js → replies-LLcQL3w6.js} +3 -3
  101. package/dist/plugin-sdk/{reply-CSgeVqcV.js → reply-DpnW-aMb.js} +40129 -39792
  102. package/dist/plugin-sdk/{reply-prefix-BHuV5t70.js → reply-prefix-uxfMZW4p.js} +1 -1
  103. package/dist/plugin-sdk/{resolve-outbound-target-BkCUbYGV.js → resolve-outbound-target-BiyAyTWz.js} +2 -2
  104. package/dist/plugin-sdk/{resolve-route-D3JH_D2N.js → resolve-route-B3CCBumQ.js} +3 -3
  105. package/dist/plugin-sdk/{retry-ilSJqnz9.js → retry-CwQ_iIj8.js} +1 -1
  106. package/dist/plugin-sdk/{runner-BVqnEfNe.js → runner-CGBT7tgF.js} +9 -9
  107. package/dist/plugin-sdk/{send-BtANzsAo.js → send-B2CEnVLL.js} +6 -6
  108. package/dist/plugin-sdk/{send-BHbXh8Ly.js → send-C5h_YxNb.js} +7 -7
  109. package/dist/plugin-sdk/{send-D6LMZJ_h.js → send-CRsR8-vO.js} +10 -10
  110. package/dist/plugin-sdk/{send-Bxdu6ZZy.js → send-CjOBB3Vo.js} +10 -10
  111. package/dist/plugin-sdk/{send-BMfJIhCk.js → send-pYqe432l.js} +6 -6
  112. package/dist/plugin-sdk/{session-kI0tzViQ.js → session-BsOrxiMj.js} +4 -4
  113. package/dist/plugin-sdk/{skill-commands-DCNXVERE.js → skill-commands-ff_01_r3.js} +5 -5
  114. package/dist/plugin-sdk/{skills-B1GeRYlu.js → skills-_yTP47Cd.js} +7 -7
  115. package/dist/plugin-sdk/{sqlite-Cq_7Cg4E.js → sqlite-CxAR5ttJ.js} +1 -1
  116. package/dist/plugin-sdk/{store-Do3t33-c.js → store-BdrNabcU.js} +2 -2
  117. package/dist/plugin-sdk/{subsystem-Coz2AgU8.js → subsystem-B2uDN3TV.js} +1 -1
  118. package/dist/plugin-sdk/{tables-DR0NmBeH.js → tables-DNwXwNFa.js} +1 -1
  119. package/dist/plugin-sdk/{target-errors-B7YyMnIi.js → target-errors-Paro1BjP.js} +2 -2
  120. package/dist/plugin-sdk/{thinking-DCNUIAHY.js → thinking-CXqf7WTe.js} +5 -5
  121. package/dist/plugin-sdk/{tokens-CWMflosr.js → tokens-bC3UVmVH.js} +1 -1
  122. package/dist/plugin-sdk/{tool-images-D7Lno-TE.js → tool-images-HJ2sfZDV.js} +2 -2
  123. package/dist/plugin-sdk/{tool-loop-detection-edmW8ZiF.js → tool-loop-detection-BVA6fax-.js} +2 -2
  124. package/dist/plugin-sdk/web-CGNEXRkp.js +65 -0
  125. package/dist/plugin-sdk/{whatsapp-actions-CcBzDuL-.js → whatsapp-actions-DfseosPO.js} +21 -21
  126. package/dist/{plugins-cli-LqQNHF1I.js → plugins-cli-DAxj0T7n.js} +2 -2
  127. package/dist/{plugins-cli-BhOXY_Ay.js → plugins-cli-DsYvb9az.js} +8 -8
  128. package/dist/{program-Bx47hl_J.js → program-C_UFd0ph.js} +7 -7
  129. package/dist/{program-context-JFmxYLfK.js → program-context-C-1s9IMf.js} +17 -17
  130. package/dist/{prompt-select-styled-BeJhp9PS.js → prompt-select-styled-CYRG7OzR.js} +4 -4
  131. package/dist/{prompt-select-styled--d3H0JCo.js → prompt-select-styled-uEjL8GAK.js} +4 -4
  132. package/dist/{provider-auth-helpers-Ds_HwlgY.js → provider-auth-helpers-CJUiVhCt.js} +1 -1
  133. package/dist/{provider-auth-helpers-BzczCfh8.js → provider-auth-helpers-CpOR6tLS.js} +1 -1
  134. package/dist/{push-apns-CT8-VcK5.js → push-apns-21LKYvkS.js} +1 -1
  135. package/dist/{push-apns-DvcqkHld.js → push-apns-Ciljlk7J.js} +1 -1
  136. package/dist/{pw-ai-De-KR9_s.js → pw-ai-1htA-NnS.js} +1 -1
  137. package/dist/{register.agent-DMvHFw16.js → register.agent-BSv7WO-U.js} +6 -6
  138. package/dist/{register.agent-yoXoJ_5O.js → register.agent-stsk6Gip.js} +11 -11
  139. package/dist/{register.configure-BqrNBkwZ.js → register.configure-C8oDtnaI.js} +12 -12
  140. package/dist/{register.configure-B8UDTEcS.js → register.configure-DNQTd6SJ.js} +6 -6
  141. package/dist/{register.maintenance-CvaHYkoX.js → register.maintenance-B3f3jkUo.js} +13 -13
  142. package/dist/{register.maintenance-CYhp47Hs.js → register.maintenance-dTI3y4Eh.js} +8 -8
  143. package/dist/{register.message-CgtrjEFw.js → register.message-Cbb4nH_0.js} +8 -8
  144. package/dist/{register.message-BnLBwUw9.js → register.message-K9BDeFyy.js} +2 -2
  145. package/dist/{register.onboard-mCscJN7t.js → register.onboard-BBfmwa3j.js} +10 -10
  146. package/dist/{register.onboard-CoySBEdQ.js → register.onboard-Djz7Di9K.js} +4 -4
  147. package/dist/{register.setup-BmE-pwMT.js → register.setup-B6hkCLH0.js} +4 -4
  148. package/dist/{register.setup-CzrsIQMG.js → register.setup-Dmu1jt3n.js} +10 -10
  149. package/dist/{register.status-health-sessions-CP7JWQHw.js → register.status-health-sessions-CvwhBkbb.js} +3 -3
  150. package/dist/{register.status-health-sessions-DhTfQ530.js → register.status-health-sessions-DaSrMm3l.js} +9 -9
  151. package/dist/{register.subclis-wsgQ6wk8.js → register.subclis-Dv1WM9Kj.js} +9 -9
  152. package/dist/{reply-DkwaBRX-.js → reply-BvVsPU7v.js} +39623 -39286
  153. package/dist/{run-main-mKcFqx7h.js → run-main-55CDVAv6.js} +14 -14
  154. package/dist/{runner-DUBExAb5.js → runner-BcQ0sF9T.js} +1 -1
  155. package/dist/{send-CXxQ_f7L.js → send-DWYkPSUs.js} +1 -1
  156. package/dist/{send-tanEMpHN.js → send-DkfYiRx5.js} +1 -1
  157. package/dist/{server-methods-CbeCo-6O.js → server-methods-Bf8SpXoW.js} +10 -10
  158. package/dist/{server-methods-EQ0JkHOg.js → server-methods-CDDLS3ke.js} +7 -7
  159. package/dist/{server-node-events-C1FDqJb9.js → server-node-events-B9iZK3qE.js} +8 -8
  160. package/dist/{server-node-events-CBHpc_25.js → server-node-events-Dx0L419d.js} +2 -2
  161. package/dist/{status-jVJSC_Ga.js → status-5XgxbiNb.js} +1 -1
  162. package/dist/{status-Cksz7z4T.js → status-C-kU0UFm.js} +1 -1
  163. package/dist/{status-CnogoaI_.js → status-C-vthqzQ.js} +2 -2
  164. package/dist/{status-B1r3Wp0-.js → status-DEymUALi.js} +2 -2
  165. package/dist/{subagent-registry-Jwg44JMf.js → subagent-registry-CZah-77E.js} +24597 -24260
  166. package/dist/{update-cli-C22V-tFW.js → update-cli-B21iNb0v.js} +13 -13
  167. package/dist/{update-cli-BEBDpJF4.js → update-cli-BSk-OFnI.js} +8 -8
  168. package/dist/{update-runner-le1Hcqx4.js → update-runner-B5bKK21U.js} +1 -1
  169. package/dist/{update-runner-BQg__DB5.js → update-runner-DPwXk0QQ.js} +1 -1
  170. package/dist/{web-BSs2eYJa.js → web-CB23XCVF.js} +8 -8
  171. package/dist/{web-CviyqTad.js → web-DSgWG_2m.js} +1 -1
  172. package/dist/{web-KYh3LgI0.js → web-DVvZ_mDC.js} +6 -6
  173. package/dist/{web-DajtZMaX.js → web-mkZpWfVs.js} +1 -1
  174. package/package.json +1 -1
  175. package/dist/plugin-sdk/web-BVg5EjiY.js +0 -65
  176. /package/dist/{delivery-queue-Df1uodAG.js → delivery-queue-CxuV9EeG.js} +0 -0
  177. /package/dist/{outbound-attachment-D_QuKi8U.js → outbound-attachment-mQQiYZ3C.js} +0 -0
  178. /package/dist/{session-cost-usage-BG4AXrGN.js → session-cost-usage-UxUgrslM.js} +0 -0
@@ -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,
@@ -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 { b as loadSymiPlugins } from "./subagent-registry-Jwg44JMf.js";
5
+ import { m as loadSymiPlugins } from "./subagent-registry-CZah-77E.js";
6
6
 
7
7
  //#region src/cli/plugin-registry.ts
8
8
  var plugin_registry_exports = /* @__PURE__ */ __exportAll({ ensurePluginRegistryLoaded: () => ensurePluginRegistryLoaded });
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { vt as loadSymiPlugins } from "./reply-DkwaBRX-.js";
2
+ import { ft as loadSymiPlugins } from "./reply-BvVsPU7v.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";
@@ -1,5 +1,5 @@
1
1
  import { p as normalizeAccountId } from "./session-key-C_0eELjb.js";
2
- import { _ as createAccountListHelpers } from "./accounts-D9zGZU5t.js";
2
+ import { _ as createAccountListHelpers } from "./accounts-Ddm33hQm.js";
3
3
 
4
4
  //#region src/signal/accounts.ts
5
5
  const { listAccountIds, resolveDefaultAccountId } = createAccountListHelpers("signal");
@@ -1,8 +1,8 @@
1
1
  import { f as DEFAULT_ACCOUNT_ID, p as normalizeAccountId } from "./session-key-C_0eELjb.js";
2
2
  import { a as resolveOAuthDir } from "./paths-DR2yt_mP.js";
3
- import { P as resolveUserPath, W as info, X as success, k as jidToE164, tt as getChildLogger } from "./registry--_pGht6S.js";
4
- import { i as defaultRuntime } from "./subsystem-Coz2AgU8.js";
5
- import { t as formatCliCommand } from "./command-format-DSdvQ_M5.js";
3
+ import { P as resolveUserPath, W as info, X as success, k as jidToE164, tt as getChildLogger } from "./registry-D0xTnUWt.js";
4
+ import { i as defaultRuntime } from "./subsystem-B2uDN3TV.js";
5
+ import { t as formatCliCommand } from "./command-format-GKSevep4.js";
6
6
  import fs from "node:fs";
7
7
  import path from "node:path";
8
8
  import fs$1 from "node:fs/promises";
@@ -1,5 +1,5 @@
1
1
  import { p as normalizeAccountId } from "./session-key-C_0eELjb.js";
2
- import { _ as createAccountListHelpers } from "./accounts-D9zGZU5t.js";
2
+ import { _ as createAccountListHelpers } from "./accounts-Ddm33hQm.js";
3
3
 
4
4
  //#region src/imessage/accounts.ts
5
5
  const { listAccountIds, resolveDefaultAccountId } = createAccountListHelpers("imessage");
@@ -1,5 +1,5 @@
1
1
  import { f as DEFAULT_ACCOUNT_ID } from "./session-key-C_0eELjb.js";
2
- import { t as formatCliCommand } from "./command-format-DSdvQ_M5.js";
2
+ import { t as formatCliCommand } from "./command-format-GKSevep4.js";
3
3
 
4
4
  //#region src/web/active-listener.ts
5
5
  const listeners = /* @__PURE__ */ new Map();
@@ -1,7 +1,7 @@
1
1
  import { _ as isCronSessionKey, s as normalizeAgentId, t as DEFAULT_AGENT_ID, v as isSubagentSessionKey, y as parseAgentSessionKey } from "./session-key-C_0eELjb.js";
2
2
  import { s as resolveStateDir, u as resolveRequiredHomeDir } from "./paths-DR2yt_mP.js";
3
- import { P as resolveUserPath, U as danger, W as info, Y as shouldLogVerbose, Z as warn, j as pathExists, nt as getLogger, q as logVerboseConsole } from "./registry--_pGht6S.js";
4
- import { i as defaultRuntime, t as createSubsystemLogger } from "./subsystem-Coz2AgU8.js";
3
+ import { P as resolveUserPath, U as danger, W as info, Y as shouldLogVerbose, Z as warn, j as pathExists, nt as getLogger, q as logVerboseConsole } from "./registry-D0xTnUWt.js";
4
+ import { i as defaultRuntime, t as createSubsystemLogger } from "./subsystem-B2uDN3TV.js";
5
5
  import fs from "node:fs";
6
6
  import path from "node:path";
7
7
  import os from "node:os";
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Output Normalizer — single processing layer for all model output.
3
+ *
4
+ * All output from the model (text deltas, tool call arguments, final text)
5
+ * passes through ONE normalizer before reaching the agent loop, tool dispatch,
6
+ * event pipeline, or any client.
7
+ *
8
+ * Replaces the scattered filters across emitChatDelta, emitChatFinal, render.js,
9
+ * pi-tools.ts, and attempt.ts with one coherent processing point.
10
+ *
11
+ * Design: model output is untrusted input. The normalizer validates and cleans
12
+ * it the same way you'd sanitize user input at a system boundary.
13
+ *
14
+ * @module
15
+ */
16
+ import type { ModelProfile } from "../config/model-profiles.js";
17
+ export interface NormalizeTextResult {
18
+ /** Cleaned text delta. */
19
+ text: string;
20
+ /** If set, the stream should be aborted immediately. */
21
+ abort?: {
22
+ reason: string;
23
+ };
24
+ }
25
+ export interface OutputNormalizer {
26
+ /** Process a text delta from the model stream. Returns cleaned text
27
+ * and optional abort signal (combined — no separate shouldAbort check). */
28
+ normalizeTextDelta(delta: string): NormalizeTextResult;
29
+ /** Process tool call arguments. Returns cleaned args with all string
30
+ * values stripped of control tokens. */
31
+ normalizeToolArgs(args: Record<string, unknown>): Record<string, unknown>;
32
+ /** Process the final accumulated text. Strips tokens, detects and removes
33
+ * trailing monologue blocks. Called once when the model turn completes. */
34
+ normalizeFinalText(text: string): string;
35
+ /** Reset state for a new model turn. */
36
+ reset(): void;
37
+ }
38
+ /**
39
+ * Layer 2: Structural monologue detection.
40
+ * Detects a trailing block that:
41
+ * 1. Starts after a double newline
42
+ * 2. Opens with a self-referential phrase
43
+ * 3. Contains a numbered list with assessment keywords
44
+ * 4. Sits at the end of the text
45
+ */
46
+ declare function detectMonologueStructural(text: string): number | null;
47
+ /**
48
+ * Strip monologue from final text using the hierarchy:
49
+ * Layer 2 (structural) first, Layer 3 (regex) as fallback.
50
+ * Layer 1 (prompt tuning) happens before the model produces output.
51
+ */
52
+ declare function stripMonologue(text: string): string;
53
+ declare function detectRepetition(text: string, minBlock: number): boolean;
54
+ declare function sanitizeArgs(args: Record<string, unknown>, modelId: string): Record<string, unknown>;
55
+ /**
56
+ * Create an output normalizer configured for the given model profile.
57
+ *
58
+ * For Claude: passthrough (no stripping, no monologue, no aggressive cleaning).
59
+ * For Gemma/vLLM: full normalization pipeline.
60
+ * For unknown: conservative defaults.
61
+ */
62
+ export declare function createOutputNormalizer(profile: ModelProfile, modelId: string): OutputNormalizer;
63
+ export declare const __testing: {
64
+ detectMonologueStructural: typeof detectMonologueStructural;
65
+ stripMonologue: typeof stripMonologue;
66
+ detectRepetition: typeof detectRepetition;
67
+ sanitizeArgs: typeof sanitizeArgs;
68
+ };
69
+ export {};
@@ -27,7 +27,7 @@ export declare const BrowserToolSchema: import("@sinclair/typebox").TObject<{
27
27
  accept: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
28
28
  promptText: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
29
29
  request: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
30
- kind: import("@sinclair/typebox").TUnsafe<"fill" | "close" | "resize" | "type" | "wait" | "select" | "click" | "drag" | "evaluate" | "hover" | "press">;
30
+ kind: import("@sinclair/typebox").TUnsafe<"fill" | "close" | "resize" | "type" | "wait" | "select" | "evaluate" | "click" | "drag" | "hover" | "press">;
31
31
  targetId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
32
32
  ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
33
33
  doubleClick: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
@@ -0,0 +1,122 @@
1
+ /**
2
+ * Unified Agent Runner — the single entry point for all agent execution.
3
+ *
4
+ * All surfaces (CLI, Gateway/Glass UI, channel dispatch) call runAgentTurn()
5
+ * to execute an agent turn. Internally adapts the clean AgentTurnParams
6
+ * interface to the existing runEmbeddedPiAgent() pipeline, which handles
7
+ * session management, model fallback, system prompt building, etc.
8
+ *
9
+ * Design principles (from agent-zero):
10
+ * - Single execution path for all surfaces
11
+ * - Streaming determined by callback presence, not separate code paths
12
+ * - Clean interface hiding internal complexity
13
+ *
14
+ * @module
15
+ */
16
+ import type { ImageContent } from "@mariozechner/pi-ai";
17
+ import type { ReasoningLevel, ThinkLevel } from "../auto-reply/thinking.js";
18
+ import type { SymiConfig } from "../config/config.js";
19
+ import type { ModelProfile } from "../config/model-profiles.js";
20
+ import type { ClientToolDefinition } from "./pi-embedded-runner/run/params.js";
21
+ import type { EmbeddedPiRunResult } from "./pi-embedded-runner/types.js";
22
+ import type { SkillSnapshot } from "./skills.js";
23
+ export interface AgentTurnParams {
24
+ sessionId: string;
25
+ sessionKey: string;
26
+ agentId?: string;
27
+ runId?: string;
28
+ workspaceDir: string;
29
+ agentDir?: string;
30
+ config: SymiConfig;
31
+ skillsSnapshot?: SkillSnapshot;
32
+ prompt: string;
33
+ images?: ImageContent[];
34
+ extraSystemPrompt?: string;
35
+ clientTools?: ClientToolDefinition[];
36
+ disableTools?: boolean;
37
+ provider?: string;
38
+ modelId?: string;
39
+ authProfileId?: string;
40
+ authProfileIdSource?: "auto" | "user";
41
+ thinkLevel?: ThinkLevel;
42
+ reasoningLevel?: ReasoningLevel;
43
+ timeoutMs: number;
44
+ abortSignal?: AbortSignal;
45
+ channel?: ChannelContext;
46
+ callbacks?: AgentTurnCallbacks;
47
+ }
48
+ export interface ChannelContext {
49
+ messageChannel?: string;
50
+ messageProvider?: string;
51
+ agentAccountId?: string;
52
+ messageTo?: string;
53
+ messageThreadId?: string | number;
54
+ groupId?: string | null;
55
+ groupChannel?: string | null;
56
+ groupSpace?: string | null;
57
+ spawnedBy?: string | null;
58
+ senderId?: string | null;
59
+ senderName?: string | null;
60
+ senderUsername?: string | null;
61
+ senderE164?: string | null;
62
+ senderIsOwner?: boolean;
63
+ currentChannelId?: string;
64
+ currentThreadTs?: string;
65
+ replyToMode?: "off" | "first" | "all";
66
+ hasRepliedRef?: {
67
+ value: boolean;
68
+ };
69
+ }
70
+ export interface AgentTurnCallbacks {
71
+ /** Streaming text delta. */
72
+ onDelta?: (text: string) => void | Promise<void>;
73
+ /** Final complete response. */
74
+ onFinal?: (text: string, metadata: ResponseMetadata) => void | Promise<void>;
75
+ /** Tool execution started. */
76
+ onToolStart?: (name: string, args: Record<string, unknown>) => void | Promise<void>;
77
+ /** Tool execution completed. */
78
+ onToolResult?: (name: string, result: string) => void | Promise<void>;
79
+ /** Thinking/reasoning output. */
80
+ onThinking?: (text: string) => void | Promise<void>;
81
+ /** Error during execution. */
82
+ onError?: (error: Error) => void | Promise<void>;
83
+ /** Agent lifecycle phase change. */
84
+ onLifecycle?: (phase: "start" | "thinking" | "streaming" | "end" | "error") => void | Promise<void>;
85
+ /** Raw agent event (for Glass UI event broadcasting). */
86
+ onAgentEvent?: (evt: {
87
+ stream: string;
88
+ data: Record<string, unknown>;
89
+ }) => void;
90
+ }
91
+ export interface ResponseMetadata {
92
+ provider: string;
93
+ modelId: string;
94
+ tokenCount: number;
95
+ durationMs: number;
96
+ toolsUsed: string[];
97
+ }
98
+ export interface AgentTurnResult {
99
+ /** Final response text (from payloads). */
100
+ text: string;
101
+ /** Duration of the agent run. */
102
+ durationMs: number;
103
+ /** Provider used. */
104
+ provider: string;
105
+ /** Model used. */
106
+ modelId: string;
107
+ /** Resolved model profile used for this turn. */
108
+ profile: ModelProfile;
109
+ /** Whether a messaging tool sent a message (suppresses duplicate delivery). */
110
+ didSendViaMessagingTool: boolean;
111
+ /** The raw result from the internal runner (for callers that need full detail). */
112
+ rawResult: EmbeddedPiRunResult;
113
+ }
114
+ /**
115
+ * Execute a single agent turn. This is the unified entry point.
116
+ *
117
+ * Translates the clean AgentTurnParams interface to the internal
118
+ * RunEmbeddedPiAgentParams and calls runEmbeddedPiAgent(). The proven
119
+ * internals (session management, model fallback, system prompt building,
120
+ * tool creation, pi-agent-core integration) are preserved.
121
+ */
122
+ export declare function runAgentTurn(params: AgentTurnParams): Promise<AgentTurnResult>;
@@ -1,4 +1,4 @@
1
- import { c as normalizeProviderId } from "./model-selection-OpU8HN50.js";
1
+ import { c as normalizeProviderId } from "./model-selection-CsbEfrS0.js";
2
2
  import { n as formatErrorMessage } from "./errors-Bv8oZiTO.js";
3
3
 
4
4
  //#region src/infra/gemini-auth.ts
@@ -1,34 +1,34 @@
1
- import "./accounts-D9zGZU5t.js";
1
+ import "./accounts-Ddm33hQm.js";
2
2
  import "./paths-DR2yt_mP.js";
3
3
  import "./github-copilot-token-D9X2phUj.js";
4
- import "./plugins-BbAvhC25.js";
5
- import { K as logVerbose, Y as shouldLogVerbose } from "./registry--_pGht6S.js";
6
- import "./config-DDkdiUOR.js";
7
- import "./subsystem-Coz2AgU8.js";
8
- import "./command-format-DSdvQ_M5.js";
9
- import "./model-selection-OpU8HN50.js";
10
- import "./agent-scope-C3gMMKCU.js";
11
- import "./manifest-registry-B3ugY9-f.js";
4
+ import "./plugins-BNByVCIH.js";
5
+ import { K as logVerbose, Y as shouldLogVerbose } from "./registry-D0xTnUWt.js";
6
+ import "./config-KlTNfkFF.js";
7
+ import "./subsystem-B2uDN3TV.js";
8
+ import "./command-format-GKSevep4.js";
9
+ import "./model-selection-CsbEfrS0.js";
10
+ import "./agent-scope-CYYpcO9W.js";
11
+ import "./manifest-registry-CPnHl_K3.js";
12
12
  import "./redact-DPnDWsnT.js";
13
13
  import "./errors-Bv8oZiTO.js";
14
- import "./image-ops-Bnp6LXEx.js";
14
+ import "./image-ops-BlQR__MN.js";
15
15
  import "./ssrf-DKZ8eBrk.js";
16
- import "./local-roots-Ckk1QfzI.js";
17
- import "./message-channel-BdI5Ra9S.js";
18
- import "./bindings-BbwoUGPx.js";
19
- import "./tool-images-D7Lno-TE.js";
20
- import { a as resolveMediaAttachmentLocalRoots, n as createMediaAttachmentCache, o as runCapability, r as normalizeMediaAttachments, t as buildProviderRegistry, u as isAudioAttachment } from "./runner-BVqnEfNe.js";
21
- import "./skills-B1GeRYlu.js";
22
- import "./chrome-C7c_0I5M.js";
23
- import "./thinking-DCNUIAHY.js";
24
- import "./accounts-Dtszw3Zn.js";
25
- import "./accounts-BToL3HlP.js";
26
- import "./pi-embedded-helpers-BveUP4hk.js";
16
+ import "./local-roots-BHLNSI8U.js";
17
+ import "./message-channel-COTAJzHd.js";
18
+ import "./bindings-C7hRtgYW.js";
19
+ import "./tool-images-HJ2sfZDV.js";
20
+ import { a as resolveMediaAttachmentLocalRoots, n as createMediaAttachmentCache, o as runCapability, r as normalizeMediaAttachments, t as buildProviderRegistry, u as isAudioAttachment } from "./runner-CGBT7tgF.js";
21
+ import "./skills-_yTP47Cd.js";
22
+ import "./chrome-B7RdxmJ0.js";
23
+ import "./thinking-CXqf7WTe.js";
24
+ import "./accounts-s-AdhXVR.js";
25
+ import "./accounts-BtaOa4z_.js";
26
+ import "./pi-embedded-helpers-CW630epe.js";
27
27
  import "./paths-A0xdf3yk.js";
28
- import "./store-Do3t33-c.js";
29
- import "./image-BOYy0Ump.js";
28
+ import "./store-BdrNabcU.js";
29
+ import "./image-CLOPx7yW.js";
30
30
  import "./pi-model-discovery-LbcEa65a.js";
31
- import "./api-key-rotation-CVBMpnPc.js";
31
+ import "./api-key-rotation-D_sMvI5W.js";
32
32
 
33
33
  //#region src/media-understanding/audio-preflight.ts
34
34
  /**
@@ -1,6 +1,6 @@
1
1
  import { p as normalizeAccountId, s as normalizeAgentId } from "./session-key-C_0eELjb.js";
2
- import { s as normalizeChatChannelId } from "./registry--_pGht6S.js";
3
- import { c as resolveDefaultAgentId } from "./agent-scope-C3gMMKCU.js";
2
+ import { s as normalizeChatChannelId } from "./registry-D0xTnUWt.js";
3
+ import { c as resolveDefaultAgentId } from "./agent-scope-CYYpcO9W.js";
4
4
 
5
5
  //#region src/routing/bindings.ts
6
6
  function normalizeBindingChannelId(raw) {
@@ -1,4 +1,4 @@
1
- import { n as retryAsync, t as resolveRetryConfig } from "./retry-ilSJqnz9.js";
1
+ import { n as retryAsync, t as resolveRetryConfig } from "./retry-CwQ_iIj8.js";
2
2
  import { n as formatErrorMessage } from "./errors-Bv8oZiTO.js";
3
3
  import { RateLimitError } from "@buape/carbon";
4
4
 
@@ -1,28 +1,28 @@
1
1
  import { a as buildGroupHistoryKey, n as DEFAULT_MAIN_KEY, r as buildAgentMainSessionKey, s as normalizeAgentId } from "./session-key-C_0eELjb.js";
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-CSgeVqcV.js";
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
- import { n as loadConfig } from "./config-DDkdiUOR.js";
6
- import { i as defaultRuntime, t as createSubsystemLogger } from "./subsystem-Coz2AgU8.js";
7
- import { t as formatCliCommand } from "./command-format-DSdvQ_M5.js";
8
- import { n as recordChannelActivity } from "./channel-activity-Ji7f0gqq.js";
9
- import { t as getAgentScopedMediaLocalRoots } from "./local-roots-Ckk1QfzI.js";
10
- import { a as loadWebMedia } from "./ir-Fb3qpcis.js";
11
- import { c as resolveChunkMode, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit } from "./chunk-jvk9axTQ.js";
12
- import { n as resolveMarkdownTableMode } from "./markdown-tables-Dfaqilz6.js";
13
- import { t as convertMarkdownTables } from "./tables-DR0NmBeH.js";
14
- import { G as readChannelAllowFromStore, J as upsertChannelPairingRequest, K as readChannelAllowFromStoreSync, nt as toLocationContext, tt as formatLocationText } from "./send-D6LMZJ_h.js";
15
- import { f as registerUnhandledRejectionHandler } from "./runner-BVqnEfNe.js";
16
- import { l as resolveIdentityNamePrefix, n as createReplyPrefixOptions, u as resolveMessagePrefix } from "./reply-prefix-BHuV5t70.js";
17
- import { F as resolveChannelGroupRequireMention, P as resolveChannelGroupPolicy } from "./thinking-DCNUIAHY.js";
18
- import { Xt as resolveGroupSessionKey, _t as updateLastRoute, gt as recordSessionMetaFromInbound, ht as readSessionUpdatedAt, mt as loadSessionStore } from "./pi-embedded-helpers-BveUP4hk.js";
2
+ import { f as readWebSelfId, o as getWebAuthAgeMs, r as resolveWhatsAppAccount } from "./accounts-Ddm33hQm.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-DpnW-aMb.js";
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-D0xTnUWt.js";
5
+ import { n as loadConfig } from "./config-KlTNfkFF.js";
6
+ import { i as defaultRuntime, t as createSubsystemLogger } from "./subsystem-B2uDN3TV.js";
7
+ import { t as formatCliCommand } from "./command-format-GKSevep4.js";
8
+ import { n as recordChannelActivity } from "./channel-activity-DoC1xtDu.js";
9
+ import { t as getAgentScopedMediaLocalRoots } from "./local-roots-BHLNSI8U.js";
10
+ import { a as loadWebMedia } from "./ir-BJ6BHE5b.js";
11
+ import { c as resolveChunkMode, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit } from "./chunk-Dw2XBYXv.js";
12
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-BoYFajMu.js";
13
+ import { t as convertMarkdownTables } from "./tables-DNwXwNFa.js";
14
+ import { G as readChannelAllowFromStore, J as upsertChannelPairingRequest, K as readChannelAllowFromStoreSync, nt as toLocationContext, tt as formatLocationText } from "./send-CRsR8-vO.js";
15
+ import { f as registerUnhandledRejectionHandler } from "./runner-CGBT7tgF.js";
16
+ import { l as resolveIdentityNamePrefix, n as createReplyPrefixOptions, u as resolveMessagePrefix } from "./reply-prefix-uxfMZW4p.js";
17
+ import { F as resolveChannelGroupRequireMention, P as resolveChannelGroupPolicy } from "./thinking-CXqf7WTe.js";
18
+ import { Xt as resolveGroupSessionKey, _t as updateLastRoute, gt as recordSessionMetaFromInbound, ht as readSessionUpdatedAt, mt as loadSessionStore } from "./pi-embedded-helpers-CW630epe.js";
19
19
  import { s as resolveStorePath } from "./paths-A0xdf3yk.js";
20
- import { i as saveMediaBuffer } from "./store-Do3t33-c.js";
20
+ import { i as saveMediaBuffer } from "./store-BdrNabcU.js";
21
21
  import { t as finalizeInboundContext } from "./inbound-context-D5EzMeL_.js";
22
- import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-D3JH_D2N.js";
23
- import { r as setActiveWebListener } from "./active-listener-bEk__wbB.js";
24
- import { i as markdownToWhatsApp, r as sendReactionWhatsApp } from "./outbound-rF6G8Xpr.js";
25
- import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-kI0tzViQ.js";
22
+ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-B3CCBumQ.js";
23
+ import { r as setActiveWebListener } from "./active-listener-BXYeALs0.js";
24
+ import { i as markdownToWhatsApp, r as sendReactionWhatsApp } from "./outbound-B0e8KdaR.js";
25
+ import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-BsOrxiMj.js";
26
26
  import { randomUUID } from "node:crypto";
27
27
  import { DisconnectReason, downloadMediaMessage, extractMessageContent, getContentType, isJidGroup, normalizeMessageContent } from "@whiskeysockets/baileys";
28
28
 
@@ -1,6 +1,6 @@
1
- import { b as CONFIG_DIR } from "./registry--_pGht6S.js";
2
- import { n as loadConfig } from "./config-DDkdiUOR.js";
3
- import { t as createSubsystemLogger } from "./subsystem-Coz2AgU8.js";
1
+ import { b as CONFIG_DIR } from "./registry-D0xTnUWt.js";
2
+ import { n as loadConfig } from "./config-KlTNfkFF.js";
3
+ import { t as createSubsystemLogger } from "./subsystem-B2uDN3TV.js";
4
4
  import { i as isErrno } from "./errors-Bv8oZiTO.js";
5
5
  import { s as resolvePinnedHostnameWithPolicy } from "./ssrf-DKZ8eBrk.js";
6
6
  import fs from "node:fs";
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { p as normalizeAccountId } from "./session-key-C_0eELjb.js";
3
- import { t as INTERNAL_MESSAGE_CHANNEL } from "./message-channel-BdI5Ra9S.js";
3
+ import { t as INTERNAL_MESSAGE_CHANNEL } from "./message-channel-COTAJzHd.js";
4
4
 
5
5
  //#region src/markdown/fences.ts
6
6
  function parseFenceSpans(buffer) {
@@ -1,4 +1,4 @@
1
- import { t as createSubsystemLogger } from "./subsystem-Coz2AgU8.js";
1
+ import { t as createSubsystemLogger } from "./subsystem-B2uDN3TV.js";
2
2
  import path from "node:path";
3
3
 
4
4
  //#region src/utils/boolean.ts
@@ -1,8 +1,8 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { r as normalizeChannelId } from "./plugins-BbAvhC25.js";
3
- import { H as isPlainObject, T as escapeRegExp, c as getActivePluginRegistry } from "./registry--_pGht6S.js";
4
- import { J as DEFAULT_MODEL, Y as DEFAULT_PROVIDER, u as resolveConfiguredModelRef } from "./model-selection-OpU8HN50.js";
5
- import { f as listChannelDocks, r as listThinkingLevels } from "./thinking-DCNUIAHY.js";
2
+ import { r as normalizeChannelId } from "./plugins-BNByVCIH.js";
3
+ import { H as isPlainObject, T as escapeRegExp, c as getActivePluginRegistry } from "./registry-D0xTnUWt.js";
4
+ import { J as DEFAULT_MODEL, Y as DEFAULT_PROVIDER, u as resolveConfiguredModelRef } from "./model-selection-CsbEfrS0.js";
5
+ import { f as listChannelDocks, r as listThinkingLevels } from "./thinking-CXqf7WTe.js";
6
6
 
7
7
  //#region src/config/commands.ts
8
8
  function resolveAutoDefault(providerId) {
@@ -1,14 +1,14 @@
1
1
  import { s as normalizeAgentId, t as DEFAULT_AGENT_ID } from "./session-key-C_0eELjb.js";
2
2
  import { n as resolveConfigPath, r as resolveDefaultConfigCandidates, s as resolveStateDir, u as resolveRequiredHomeDir } from "./paths-DR2yt_mP.js";
3
- import { D as isRecord, H as isPlainObject$1, M as resolveConfigDir, P as resolveUserPath, s as normalizeChatChannelId, t as CHANNEL_IDS } from "./registry--_pGht6S.js";
4
- import { $ as shouldDeferShellEnvFallback, Q as resolveShellEnvFallbackTimeoutMs, Z as loadShellEnvFallback, et as shouldEnableShellEnvFallback, l as parseModelRef, q as DEFAULT_CONTEXT_TOKENS } from "./model-selection-OpU8HN50.js";
5
- import { c as resolveDefaultAgentId, s as resolveAgentWorkspaceDir } from "./agent-scope-C3gMMKCU.js";
6
- import { c as normalizePluginsConfig, d as isPathInside, l as resolveEnableState, m as normalizeEnvVarKey, p as isDangerousHostEnvVarName, t as loadPluginManifestRegistry, u as resolveMemorySlotDecision } from "./manifest-registry-B3ugY9-f.js";
3
+ import { D as isRecord, H as isPlainObject$1, M as resolveConfigDir, P as resolveUserPath, s as normalizeChatChannelId, t as CHANNEL_IDS } from "./registry-D0xTnUWt.js";
4
+ import { $ as shouldDeferShellEnvFallback, Q as resolveShellEnvFallbackTimeoutMs, Z as loadShellEnvFallback, et as shouldEnableShellEnvFallback, l as parseModelRef, q as DEFAULT_CONTEXT_TOKENS } from "./model-selection-CsbEfrS0.js";
5
+ import { c as resolveDefaultAgentId, s as resolveAgentWorkspaceDir } from "./agent-scope-CYYpcO9W.js";
6
+ import { c as normalizePluginsConfig, d as isPathInside, l as resolveEnableState, m as normalizeEnvVarKey, p as isDangerousHostEnvVarName, t as loadPluginManifestRegistry, u as resolveMemorySlotDecision } from "./manifest-registry-CPnHl_K3.js";
7
7
  import { createRequire } from "node:module";
8
8
  import fs from "node:fs";
9
9
  import path from "node:path";
10
10
  import os from "node:os";
11
- import json5 from "json5";
11
+ import JSON5 from "json5";
12
12
  import crypto from "node:crypto";
13
13
  import { isDeepStrictEqual } from "node:util";
14
14
  import dotenv from "dotenv";
@@ -892,7 +892,7 @@ function safeRealpath(target) {
892
892
  }
893
893
  const defaultResolver = {
894
894
  readFile: (p) => fs.readFileSync(p, "utf-8"),
895
- parseJson: (raw) => json5.parse(raw)
895
+ parseJson: (raw) => JSON5.parse(raw)
896
896
  };
897
897
  /**
898
898
  * Resolves all $include directives in a parsed config object.
@@ -5584,7 +5584,7 @@ function resolveConfigPathForDeps(deps) {
5584
5584
  function normalizeDeps(overrides = {}) {
5585
5585
  return {
5586
5586
  fs: overrides.fs ?? fs,
5587
- json5: overrides.json5 ?? json5,
5587
+ json5: overrides.json5 ?? JSON5,
5588
5588
  env: overrides.env ?? process.env,
5589
5589
  homedir: overrides.homedir ?? (() => resolveRequiredHomeDir(overrides.env ?? process.env, os.homedir)),
5590
5590
  configPath: overrides.configPath ?? "",
@@ -5595,11 +5595,11 @@ function maybeLoadDotEnvForConfig(env) {
5595
5595
  if (env !== process.env) return;
5596
5596
  loadDotEnv({ quiet: true });
5597
5597
  }
5598
- function parseConfigJson5(raw, json5$1 = json5) {
5598
+ function parseConfigJson5(raw, json5 = JSON5) {
5599
5599
  try {
5600
5600
  return {
5601
5601
  ok: true,
5602
- parsed: json5$1.parse(raw)
5602
+ parsed: json5.parse(raw)
5603
5603
  };
5604
5604
  } catch (err) {
5605
5605
  return {