wednesdayai 0.4.12-dev.716 → 0.4.12-dev.719

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 (437) hide show
  1. package/dist/{agent-scope-cbxkoURo.js → agent-scope-DxKPMu8w.js} +3 -3
  2. package/dist/{agent-turn-enqueue-N-q0v3mc.js → agent-turn-enqueue-DEStltEg.js} +4 -4
  3. package/dist/{agent-turn-enqueue-Cqo34Swm.js → agent-turn-enqueue-DzWOPhgy.js} +4 -4
  4. package/dist/{agent-turn-execute-Bw9hhkAP.js → agent-turn-execute-CzOC4mHw.js} +124 -97
  5. package/dist/{agent-turn-recovery-adapter-BkIal4FW.js → agent-turn-recovery-adapter-CdLD3DuI.js} +1 -1
  6. package/dist/{agent-turn-recovery-adapter-CLY2Dn04.js → agent-turn-recovery-adapter-DnvjgbK0.js} +1 -1
  7. package/dist/{agent-turn-runner-Vd3aTCni.js → agent-turn-runner-BEvwtTis.js} +1 -1
  8. package/dist/{agent-turn-runner-Bvj00mHU.js → agent-turn-runner-BsxQBFRB.js} +5 -5
  9. package/dist/{agent-turn-runner-CUCOdxhH.js → agent-turn-runner-C1u8sVfA.js} +1 -1
  10. package/dist/{agent-turn-runner-CImqp_RN.js → agent-turn-runner-DpICdamt.js} +1 -1
  11. package/dist/{agents-BBoIqOw6.js → agents-C61lzbyw.js} +4 -4
  12. package/dist/{agents.config-Ctnm8o8d.js → agents.config-BcD-ZJ0N.js} +1 -1
  13. package/dist/{agents.config-C8RJrfbr.js → agents.config-DAh5Ah1J.js} +1 -1
  14. package/dist/{api-key-rotation-BMnyfyGD.js → api-key-rotation-Br7_jaAV.js} +2 -2
  15. package/dist/{artifacts-DUhYSSmK.js → artifacts-QHme-vnS.js} +4 -4
  16. package/dist/{audio-preflight-yuM9Q3qh.js → audio-preflight-B_5sTSyb.js} +27 -27
  17. package/dist/{audio-preflight-bEi-KkBn.js → audio-preflight-CehYz7wU.js} +6 -6
  18. package/dist/{audio-preflight-BKQpd1eU.js → audio-preflight-uatGs8bC.js} +6 -6
  19. package/dist/{audio-transcription-runner-CGTNNwbm.js → audio-transcription-runner-BvZFFknx.js} +1 -1
  20. package/dist/{audio-transcription-runner-BD7UgbNj.js → audio-transcription-runner-CJ8YdMv-.js} +1 -1
  21. package/dist/{audio-transcription-runner-CgPA8_eG.js → audio-transcription-runner-XFfvRPXl.js} +11 -11
  22. package/dist/{audit-CcNEpaG6.js → audit-C0WHA5BX.js} +3 -3
  23. package/dist/{audit-BM8WZyx6.js → audit-UMAK8rQC.js} +3 -3
  24. package/dist/{auth-choice-DTg-b2da.js → auth-choice-BHU_G3if.js} +1 -1
  25. package/dist/{auth-choice-VnJYar-i.js → auth-choice-CHzuLxTp.js} +1 -1
  26. package/dist/{banner-_g-nCJoZ.js → banner-BAtbMrrp.js} +1 -1
  27. package/dist/build-info.json +3 -3
  28. package/dist/bundled/boot-md/handler.js +58 -58
  29. package/dist/bundled/bootstrap-extra-files/handler.js +6 -6
  30. package/dist/bundled/command-logger/handler.js +2 -2
  31. package/dist/bundled/session-journal/handler.js +58 -58
  32. package/dist/bundled/session-memory/handler.js +58 -58
  33. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  34. package/dist/{channel-activity-BJHm_pDV.js → channel-activity-DNq7LYjU.js} +3 -3
  35. package/dist/{channel-options-BX8MFfPW.js → channel-options-CsgHOF5l.js} +1 -1
  36. package/dist/{channel-options-Dod3uWTl.js → channel-options-DRnowLFK.js} +1 -1
  37. package/dist/{channels-cli-MbAArXF1.js → channels-cli-BN4oTmr6.js} +23 -23
  38. package/dist/{channels-cli-DyfFtAZa.js → channels-cli-Cn1IUfM3.js} +23 -23
  39. package/dist/{chrome-BkJgMZjT.js → chrome-FHxGdLnd.js} +23 -23
  40. package/dist/{chunk-eNEsWhab.js → chunk-BhntPUH_.js} +3 -3
  41. package/dist/cli/daemon-cli.js +1 -1
  42. package/dist/{cli-DF91S8Cf.js → cli-BGAvAUiU.js} +17 -17
  43. package/dist/{cli-CdrO5h4P.js → cli-CFIRmNaZ.js} +17 -17
  44. package/dist/{command-queue-DmXWCoY0.js → command-queue-DtybAhHH.js} +1 -1
  45. package/dist/{command-queue-DucYxKKF.js → command-queue-SzKgkaS6.js} +1 -1
  46. package/dist/{command-queue-URs9pYSC.js → command-queue-zXu22yak.js} +1 -1
  47. package/dist/{command-registry-NOHWjbDr.js → command-registry-DBfEAwIt.js} +9 -9
  48. package/dist/{commands-registry-DdQg21ct.js → commands-registry-DC0fovy_.js} +2 -2
  49. package/dist/{completion-cli-BfKoz1jW.js → completion-cli-BfRsix3J.js} +2 -2
  50. package/dist/{completion-cli-BQ5pz74O.js → completion-cli-L5YP0rxV.js} +1 -1
  51. package/dist/{config-cli-cFzUpYdg.js → config-cli-D4Gxd0pm.js} +1 -1
  52. package/dist/{config-cli-BGFZu6JD.js → config-cli-dgRsXbD3.js} +1 -1
  53. package/dist/{configure-DYAZJ3GF.js → configure-BN-JNKf7.js} +5 -5
  54. package/dist/{configure-DrrwPxlu.js → configure-DtRyMLwO.js} +5 -5
  55. package/dist/{daemon-cli-B3Q460ai.js → daemon-cli-CiPY543O.js} +5 -5
  56. package/dist/{daemon-cli-C5cAb15Z.js → daemon-cli-YmPcKhvo.js} +5 -5
  57. package/dist/daemon-cli.js +44 -3
  58. package/dist/{daemon-install-DGU1qIIK.js → daemon-install-BuETscSF.js} +3 -3
  59. package/dist/{daemon-install-CBIxgo4p.js → daemon-install-CGg5r1wy.js} +3 -3
  60. package/dist/{deliver-C5SDo7TP.js → deliver-Aw7d03gL.js} +1 -1
  61. package/dist/{deliver-fwGuXC0n.js → deliver-CXqNQ8yi.js} +24 -24
  62. package/dist/{deliver-8xg5ISEI.js → deliver-D37woOwV.js} +1 -1
  63. package/dist/{diagnostic-BB6k_yiT.js → diagnostic-Bbg-zObh.js} +5 -5
  64. package/dist/{diagnostic-D7DvV7NT.js → diagnostic-Cid_Tw67.js} +1 -1
  65. package/dist/{diagnostic-Dv8UWiI0.js → diagnostic-lG00b_zg.js} +1 -1
  66. package/dist/{diagnostics-C4-TUVnm.js → diagnostics-C6ntZHc3.js} +1 -1
  67. package/dist/{diagnostics-FIcvxigK.js → diagnostics-Ds3p_NPY.js} +1 -1
  68. package/dist/{dm-policy-shared-BLJbsZzf.js → dm-policy-shared-BJNH9gNN.js} +1 -1
  69. package/dist/{doctor-completion-B94pFOFt.js → doctor-completion-ChF4A40n.js} +1 -1
  70. package/dist/{doctor-completion-CtR8yetH.js → doctor-completion-DIFx6d6S.js} +1 -1
  71. package/dist/entry.js +2 -2
  72. package/dist/{exec-approvals-cli-t7rAulRf.js → exec-approvals-cli-BAJ3sxzP.js} +3 -3
  73. package/dist/{exec-approvals-cli-DsXabPF_.js → exec-approvals-cli-DIUYxvM0.js} +3 -3
  74. package/dist/extensionAPI.js +2 -2
  75. package/dist/{fetch-BzXaK9px.js → fetch-BoHKSk-O.js} +8 -8
  76. package/dist/{fetch-guard-0mkjBgri.js → fetch-guard-TJjLK0FV.js} +3 -3
  77. package/dist/{frontmatter-PMByWrfP.js → frontmatter-saAwiKEb.js} +5 -5
  78. package/dist/{fs-safe-DwICJjkN.js → fs-safe-LRpYbPaA.js} +4 -4
  79. package/dist/{gateway-cli-C_veSlCx.js → gateway-cli-BJ9wa3Hc.js} +48 -48
  80. package/dist/{gateway-cli-DI7_gxH-.js → gateway-cli-CVnksdlt.js} +48 -48
  81. package/dist/{github-copilot-token-WSjo05vB.js → github-copilot-token-zGOMIGSh.js} +7 -7
  82. package/dist/{health-Cooqit6V.js → health-Cxv6ou16.js} +2 -2
  83. package/dist/{health-DFat5vO5.js → health-Q4hCJ8O2.js} +2 -2
  84. package/dist/{hooks-cli-CB-96Su8.js → hooks-cli-ChZY2urb.js} +19 -19
  85. package/dist/{hooks-cli-yNAgxRQS.js → hooks-cli-DOHX--ha.js} +19 -19
  86. package/dist/{image-ops-O8pHxo7i.js → image-ops-D_fm2PuR.js} +1 -1
  87. package/dist/index.js +21 -21
  88. package/dist/{inspect-DVHAPbcZ.js → inspect-BXlZnWkg.js} +1 -1
  89. package/dist/{inspect-gvjq38z1.js → inspect-LfUprDjx.js} +1 -1
  90. package/dist/{installs-CpnJwZZ_.js → installs-78zhoWuO.js} +1 -1
  91. package/dist/{installs-CdLdL1gD.js → installs-Du8n8Do9.js} +1 -1
  92. package/dist/{ir-fzpdYPWw.js → ir-C4MMLUJr.js} +5 -5
  93. package/dist/{legacy-names-CLlrMq8r.js → legacy-names-vLJrYADD.js} +1 -1
  94. package/dist/{lifecycle-core-BdCcww82.js → lifecycle-core-CuMY0U_8.js} +3 -3
  95. package/dist/{lifecycle-core-B3-ezmTx.js → lifecycle-core-M-5Z8Xml.js} +3 -3
  96. package/dist/llm-slug-generator.js +58 -58
  97. package/dist/{logger-DNehzD_s.js → logger-a0-zAY5a.js} +1 -1
  98. package/dist/{manager-DH-MILAU.js → manager-DdA_cy40.js} +12 -12
  99. package/dist/{markdown-tables-UWspJNAH.js → markdown-tables-Dd7jV1JF.js} +2 -2
  100. package/dist/{model-selection-9qbqwsOT.js → model-selection-CdZITU0t.js} +86 -86
  101. package/dist/{models-Dlat36jl.js → models-BbhdUY5g.js} +1 -1
  102. package/dist/{models-cli-vjFaOcNS.js → models-cli-BekoSHw2.js} +18 -18
  103. package/dist/{models-cli-DMjHkAqq.js → models-cli-BmL2dpSq.js} +17 -17
  104. package/dist/{node-cli-yC-cX-mJ.js → node-cli-BTywy8AL.js} +8 -8
  105. package/dist/{node-cli-m0j_YD0V.js → node-cli-BVgH-DXq.js} +8 -8
  106. package/dist/{node-service-BnwLXY5x.js → node-service-BnyKZNqa.js} +1 -1
  107. package/dist/{node-service-r64yexlb.js → node-service-Ys7JZFz-.js} +1 -1
  108. package/dist/{npm-pack-install-DcBobJp3.js → npm-pack-install-B-cOWuiF.js} +1 -1
  109. package/dist/{npm-pack-install-B7wQANiM.js → npm-pack-install-opyKYSmS.js} +1 -1
  110. package/dist/{npm-resolution-B0rqOBgy.js → npm-resolution-51BBOWpQ.js} +2 -2
  111. package/dist/{npm-resolution-SdoNL0ud.js → npm-resolution-6WKQ6nBu.js} +2 -2
  112. package/dist/{onboard-B9-DxI_m.js → onboard-Cj-sLY2K.js} +3 -3
  113. package/dist/{onboard-D8MZoOum.js → onboard-CnRiqboN.js} +3 -3
  114. package/dist/{onboard-channels-P7F-dNwm.js → onboard-channels-DAwHVQ1P.js} +2 -2
  115. package/dist/{onboard-channels-28JqVvAv.js → onboard-channels-DYRTySsa.js} +2 -2
  116. package/dist/{onboarding-BfpXrIw7.js → onboarding-CujUbWy2.js} +3 -3
  117. package/dist/{onboarding-0WSY8o8f.js → onboarding-DidWWI3X.js} +3 -3
  118. package/dist/{onboarding.finalize-QITC8MsS.js → onboarding.finalize-CDE1nAu8.js} +26 -26
  119. package/dist/{onboarding.finalize-BnIw1M2b.js → onboarding.finalize-DTqRxVZH.js} +25 -25
  120. package/dist/{operator-commands-CtYCnspr.js → operator-commands-Bfd55UfE.js} +2 -2
  121. package/dist/{operator-commands-CIz47IKl.js → operator-commands-Ct0WXISe.js} +2 -2
  122. package/dist/{outbound-attachment-DVKqk30B.js → outbound-attachment-CqtMGpsJ.js} +2 -2
  123. package/dist/{outbound-message-hooks-S_VhlJs3.js → outbound-message-hooks-RBQbGzGm.js} +4 -4
  124. package/dist/{path-alias-guards-Cd5yHmTq.js → path-alias-guards-Zj-NwKjV.js} +1 -1
  125. package/dist/{paths-Cvc9EM8Y.js → paths-C6TxBCvO.js} +5 -5
  126. package/dist/{pi-embedded-wjGM_bNN.js → pi-embedded-B6sr5IdC.js} +102 -75
  127. package/dist/{pi-embedded-BBId5n_k.js → pi-embedded-B9bOSjfE.js} +279 -252
  128. package/dist/{pi-embedded-helpers-BU47jdPO.js → pi-embedded-helpers-BAjtRn7m.js} +1 -1
  129. package/dist/{pi-embedded-helpers-DVvJRC5S.js → pi-embedded-helpers-BYLOFsUc.js} +24 -24
  130. package/dist/{pi-embedded-helpers-i0-tPaxH.js → pi-embedded-helpers-CPorV-Mk.js} +1 -1
  131. package/dist/{pi-embedded-recovery-adapter-CNdSU-s7.js → pi-embedded-recovery-adapter-B8Goyik3.js} +8 -8
  132. package/dist/{pi-embedded-recovery-adapter-DL78oCTf.js → pi-embedded-recovery-adapter-Cs1EJElw.js} +8 -8
  133. package/dist/{pi-embedded-recovery-adapter-1Lgt8q1h.js → pi-embedded-recovery-adapter-ZPyX9YC1.js} +2 -2
  134. package/dist/{pi-embedded-recovery-adapter-B2AFWrYt.js → pi-embedded-recovery-adapter-swbNIWgT.js} +2 -2
  135. package/dist/{pi-embedded-utils-8OzPnJMh.js → pi-embedded-utils-CT_f_S3Y.js} +1 -1
  136. package/dist/{pi-embedded-utils-BoaQCwP7.js → pi-embedded-utils-DOtaZ7KV.js} +3 -3
  137. package/dist/{pi-embedded-utils-BtOzugyp.js → pi-embedded-utils-lp-U3XQ9.js} +1 -1
  138. package/dist/{pi-model-discovery-CsC6yTDG.js → pi-model-discovery-B9KKtGuw.js} +7 -7
  139. package/dist/{pi-tools.policy-DPm2eos4.js → pi-tools.policy-r9H_A-NQ.js} +1 -1
  140. package/dist/{plugin-registry-CPS5bO_-.js → plugin-registry-CwGfmKsn.js} +1 -1
  141. package/dist/{plugin-registry-CC8YsXPr.js → plugin-registry-EHKfjAoe.js} +1 -1
  142. package/dist/plugin-sdk/{agent-scope-BYp_CjdU.js → agent-scope-BLF4nZUv.js} +2 -2
  143. package/dist/plugin-sdk/{agent-turn-execute-Dd5AJiKY.js → agent-turn-execute-BVPDW02i.js} +2 -2
  144. package/dist/plugin-sdk/agent-turn-execute-zuw0S_Lh.js +61 -0
  145. package/dist/plugin-sdk/agent-turn-runner-BcrkoR1M.js +11 -0
  146. package/dist/plugin-sdk/{agent-turn-runner-DL5jOnXC.js → agent-turn-runner-DDIT9POj.js} +1 -1
  147. package/dist/plugin-sdk/{agent-turn-runner-B9_FKVSu.js → agent-turn-runner-DjK-LdTA.js} +6 -6
  148. package/dist/plugin-sdk/{api-key-rotation-CDNf_4cI.js → api-key-rotation-XDUKz2gd.js} +2 -2
  149. package/dist/plugin-sdk/{artifacts-BMLMg3MG.js → artifacts-HAYpGlG1.js} +1 -1
  150. package/dist/plugin-sdk/{audio-preflight-BmKL6FNP.js → audio-preflight-BS29OWk3.js} +2 -2
  151. package/dist/plugin-sdk/audio-preflight-DE04bi4M.js +28 -0
  152. package/dist/plugin-sdk/{audio-transcription-runner-TBjJv_mZ.js → audio-transcription-runner-BNafitZj.js} +10 -10
  153. package/dist/plugin-sdk/{auth-profiles-DHZjW8Vk.js → auth-profiles-CCJQoedi.js} +5 -5
  154. package/dist/plugin-sdk/{channel-activity-Dr4PYej7.js → channel-activity-BKwRzYJb.js} +3 -3
  155. package/dist/plugin-sdk/{chrome-BDy1zYAr.js → chrome-D0eLSqkP.js} +4 -4
  156. package/dist/plugin-sdk/{chunk-DGQdf0JN.js → chunk-CDvvv9SU.js} +3 -3
  157. package/dist/plugin-sdk/{chunk-BTSnO1wn.js → chunk-DI-5pBck.js} +6 -6
  158. package/dist/plugin-sdk/{command-detection-DdTnFMU3.js → command-detection-WNHSrul-.js} +186 -159
  159. package/dist/plugin-sdk/{command-queue-CeaLVs8O.js → command-queue-BnJsJc_w.js} +8 -8
  160. package/dist/plugin-sdk/{command-queue-DFSOdqCK.js → command-queue-CHiQj9Ji.js} +1 -1
  161. package/dist/plugin-sdk/{commands-registry-8sy0wsK_.js → commands-registry-Do_g2It_.js} +6 -6
  162. package/dist/plugin-sdk/{commands-registry-N6f_lsxF.js → commands-registry-DpLk11E7.js} +2 -2
  163. package/dist/plugin-sdk/{config-Biusjzx-.js → config-CQNfmIC8.js} +7 -7
  164. package/dist/plugin-sdk/deliver-D4fWK65M.js +32 -0
  165. package/dist/plugin-sdk/{deliver-BgHA8c9F.js → deliver-L6eu6zyG.js} +11 -11
  166. package/dist/plugin-sdk/{diagnostic-D6hSjxiv.js → diagnostic-C7lPoqyv.js} +5 -5
  167. package/dist/plugin-sdk/{diagnostic-Bni_8VyY.js → diagnostic-DfxuMWHd.js} +7 -7
  168. package/dist/plugin-sdk/{fetch-guard-C1a1KfEb.js → fetch-guard-CZT8FU1i.js} +3 -3
  169. package/dist/plugin-sdk/{fs-safe-CbZ6uRVv.js → fs-safe-B0JgGdXa.js} +3 -3
  170. package/dist/plugin-sdk/{hook-runner-global-BvxlnAyu.js → hook-runner-global-WRI53ibi.js} +3 -3
  171. package/dist/plugin-sdk/{image-ops-DY_SZfXk.js → image-ops-kuILYHZv.js} +1 -1
  172. package/dist/plugin-sdk/index.js +54 -54
  173. package/dist/plugin-sdk/{ir-BNohi6ZW.js → ir-Bm7oqkwT.js} +5 -5
  174. package/dist/plugin-sdk/{local-roots-Bm7nDW20.js → local-roots-D-CHzVr1.js} +7 -7
  175. package/dist/plugin-sdk/{logger-D6KsqbNW.js → logger-BSK-0Yjx.js} +1 -1
  176. package/dist/plugin-sdk/manager-BlYRVNJI.js +16 -0
  177. package/dist/plugin-sdk/{manager-B_vK9MbM.js → manager-D2jffdjH.js} +8 -8
  178. package/dist/plugin-sdk/{markdown-tables-G4vK24xc.js → markdown-tables-DIWQQ2W1.js} +2 -2
  179. package/dist/plugin-sdk/markdown-tables-cZSKCBuW.js +10 -0
  180. package/dist/plugin-sdk/{outbound-attachment-Cw7T2Mrt.js → outbound-attachment-CtKKNyms.js} +2 -2
  181. package/dist/plugin-sdk/{path-alias-guards-CVybi_GQ.js → path-alias-guards-CHfCMaeX.js} +1 -1
  182. package/dist/plugin-sdk/{pi-embedded-helpers-B_jgacW8.js → pi-embedded-helpers-BRymkO_1.js} +11 -11
  183. package/dist/plugin-sdk/{pi-embedded-utils-DOXEm_H8.js → pi-embedded-utils-BHmc3RVS.js} +3 -3
  184. package/dist/plugin-sdk/{pi-model-discovery-DWw1ReX-.js → pi-model-discovery-4X7_2_nP.js} +6 -6
  185. package/dist/plugin-sdk/{pi-model-discovery-DWUrLRLg.js → pi-model-discovery-6BBajZds.js} +1 -1
  186. package/dist/plugin-sdk/provider-dispatcher-B4PdTha5.js +61 -0
  187. package/dist/plugin-sdk/{provider-dispatcher-C4-urx2x.js → provider-dispatcher-D7UK3G8K.js} +2 -2
  188. package/dist/plugin-sdk/provider-image-CNlYbRab.js +22 -0
  189. package/dist/plugin-sdk/{provider-image-CEQrHWYz.js → provider-image-DBye3Ln5.js} +5 -5
  190. package/dist/plugin-sdk/provider-media-understanding.js +7 -7
  191. package/dist/plugin-sdk/proxy-D2uiu68M.js +7 -0
  192. package/dist/plugin-sdk/{proxy-BWc9guJs.js → proxy-DJ2nskkh.js} +1 -1
  193. package/dist/plugin-sdk/{proxy-fetch-BYkGxQnh.js → proxy-fetch-CuQpjpkI.js} +1 -1
  194. package/dist/plugin-sdk/{pw-ai-DQv6Xhce.js → pw-ai-BJrhPMHJ.js} +10 -10
  195. package/dist/plugin-sdk/{qmd-manager-CpV0SFnY.js → qmd-manager-DhW_frb3.js} +8 -8
  196. package/dist/plugin-sdk/{query-expansion-CwmHvvV_.js → query-expansion-NpBeKA8F.js} +3 -3
  197. package/dist/plugin-sdk/{recorder-BXZMRSjO.js → recorder-DdbAQ2HO.js} +4 -4
  198. package/dist/plugin-sdk/{redact-C88Ryyfs.js → redact-CUjmZn2Y.js} +1 -1
  199. package/dist/plugin-sdk/{replies-l2hZAzbt.js → replies-Dw3jvqpR.js} +4 -4
  200. package/dist/plugin-sdk/replies-XUkqz_7S.js +25 -0
  201. package/dist/plugin-sdk/{reply-directives-BwxzQXmX.js → reply-directives-BS8Ge06Z.js} +2 -2
  202. package/dist/plugin-sdk/{reply-prefix-qLQRxqrf.js → reply-prefix-Dt1hESHJ.js} +1 -1
  203. package/dist/plugin-sdk/reply-prefix-MU3uY52y.js +7 -0
  204. package/dist/plugin-sdk/{resolve-route-50KoArP9.js → resolve-route-BpLuk-wC.js} +4 -4
  205. package/dist/plugin-sdk/{resolve-route-6v1HVvWk.js → resolve-route-DiQTL1qI.js} +6 -6
  206. package/dist/plugin-sdk/{runs-CiohhBb8.js → runs-D6fAvItC.js} +7 -7
  207. package/dist/plugin-sdk/runs-R28wdt7j.js +25 -0
  208. package/dist/plugin-sdk/{send-Cv2CGnsK.js → send-BDwTyH6I.js} +8 -8
  209. package/dist/plugin-sdk/{send-DM6RpDCL.js → send-CE_6VOiQ.js} +7 -7
  210. package/dist/plugin-sdk/{send-Cx6gHjnA.js → send-Ce2XBaKF.js} +6 -6
  211. package/dist/plugin-sdk/send-Cg2VXcO0.js +27 -0
  212. package/dist/plugin-sdk/{send-BMSqETcU.js → send-CpXGZgrS.js} +6 -6
  213. package/dist/plugin-sdk/send-DAs6FmWB.js +23 -0
  214. package/dist/plugin-sdk/{send-DO0C4Uva.js → send-GMYUhBtJ.js} +19 -19
  215. package/dist/plugin-sdk/{send-DG4MQPPm.js → send-R0HB1-l-.js} +13 -13
  216. package/dist/plugin-sdk/send-UIQH_kN6.js +25 -0
  217. package/dist/plugin-sdk/send-tASIQF-Q.js +24 -0
  218. package/dist/plugin-sdk/{session-meta-CiqJP0pO.js → session-meta-BU2WXD0N.js} +2 -2
  219. package/dist/plugin-sdk/session-meta-Dd1ZONel.js +10 -0
  220. package/dist/plugin-sdk/{skill-commands-CE_SkRQk.js → skill-commands-BYfWIPfV.js} +5 -5
  221. package/dist/plugin-sdk/skill-commands-C7ZE3rKj.js +14 -0
  222. package/dist/plugin-sdk/{skills-CjW6uGTa.js → skills-BuJjEYto.js} +6 -6
  223. package/dist/plugin-sdk/src/agents/pi-embedded-runner/run/attempt.d.ts +3 -0
  224. package/dist/plugin-sdk/src/agents/pi-embedded-runner/tool-result-context-guard.d.ts +12 -3
  225. package/dist/plugin-sdk/{ssrf-BUCEDxp5.js → ssrf-DiAz1Z_z.js} +2 -2
  226. package/dist/plugin-sdk/{store-yBNTHg3N.js → store-Bl3Yjf_w.js} +2 -2
  227. package/dist/plugin-sdk/{subagent-registry-B0gD-Lof.js → subagent-registry-Bxwla-0-.js} +2 -2
  228. package/dist/plugin-sdk/subagent-registry-CTZBVVPF.js +61 -0
  229. package/dist/plugin-sdk/{subsystem-CUUKL6Fr.js → subsystem-B2x33s9h.js} +4 -4
  230. package/dist/plugin-sdk/{tables-DKYi6grj.js → tables-CTmQQyfU.js} +1 -1
  231. package/dist/plugin-sdk/testing.js +2 -2
  232. package/dist/plugin-sdk/{tokens-ysZUkYZZ.js → tokens-DxJSOoJn.js} +1 -1
  233. package/dist/plugin-sdk/{tool-loop-detection-LsvZ1dIY.js → tool-loop-detection-Buouaxew.js} +1 -1
  234. package/dist/plugin-sdk/{tools-PVG4MyCb.js → tools-iyXmO6p1.js} +106 -79
  235. package/dist/plugin-sdk/user-run-recording-BMikDBXR.js +11 -0
  236. package/dist/plugin-sdk/{user-run-recording-BMaK7jNR.js → user-run-recording-juCW_uQ-.js} +2 -2
  237. package/dist/{plugins-cli-yjyVyPjc.js → plugins-cli-B0I1Xkrz.js} +22 -22
  238. package/dist/{plugins-cli-Cpq4XXoA.js → plugins-cli-CmYpruM_.js} +22 -22
  239. package/dist/{program-CLZlTcBu.js → program-CA1rDqtK.js} +23 -23
  240. package/dist/{program-context-DN3ucEgK.js → program-context-BCo6By7P.js} +24 -24
  241. package/dist/{prompt-select-styled-CtLCU2VG.js → prompt-select-styled-BAmwLkut.js} +12 -12
  242. package/dist/{prompt-select-styled-BNUoeaMg.js → prompt-select-styled-cL1dmYcO.js} +12 -12
  243. package/dist/{provider-image-Bi2L9LWh.js → provider-image-BllyLBJM.js} +5 -5
  244. package/dist/{provider-image-CZlpEJVI.js → provider-image-CIpRvhkS.js} +1 -1
  245. package/dist/{provider-image-UXLX6qTH.js → provider-image-D9B_J5Ys.js} +1 -1
  246. package/dist/{proxy-env-i0jn5uxB.js → proxy-env-CzGKpJY_.js} +2 -2
  247. package/dist/{proxy-C9sq6M-h.js → proxy-fWL7CKDP.js} +1 -1
  248. package/dist/{proxy-fetch-CK5AQAYw.js → proxy-fetch-DCI0KuH6.js} +1 -1
  249. package/dist/{push-apns-DYlVj3Sd.js → push-apns-Bhf8qK68.js} +2 -2
  250. package/dist/{push-apns-uBiZYT2e.js → push-apns-BmrddV2R.js} +2 -2
  251. package/dist/{pw-ai-CZJk6UyG.js → pw-ai-CKjrjwfw.js} +1 -1
  252. package/dist/{pw-ai-pYtWxKPR.js → pw-ai-CXSJw34w.js} +14 -14
  253. package/dist/{pw-ai-2o8dgziH.js → pw-ai-Cd08hlBj.js} +1 -1
  254. package/dist/{qmd-manager-p036XU01.js → qmd-manager-BwZ0V5fL.js} +10 -10
  255. package/dist/{query-expansion-30x7RlZY.js → query-expansion-31VWpPCz.js} +5 -5
  256. package/dist/{reconcile-bundled-Dx64x8xr.js → reconcile-bundled-Bl6XpmI5.js} +1 -1
  257. package/dist/{reconcile-bundled-oQwTCU_A.js → reconcile-bundled-TswjG3xv.js} +1 -1
  258. package/dist/{recorder-C_ViZLf1.js → recorder-DNRxe9C8.js} +4 -4
  259. package/dist/{recovery-adapter-BvRiQZIb.js → recovery-adapter-DOizlZvv.js} +8 -8
  260. package/dist/{recovery-adapter-BcPtMfaC.js → recovery-adapter-DW0R_vFE.js} +1 -1
  261. package/dist/{recovery-adapter-BT7EyQzh.js → recovery-adapter-DyPV7syS.js} +8 -8
  262. package/dist/{recovery-adapter-CTqGLqLj.js → recovery-adapter-mi8jbyvy.js} +1 -1
  263. package/dist/{redact-BOHmCPP_.js → redact-DZne_lu8.js} +1 -1
  264. package/dist/{register.agent-DpYKNZhv.js → register.agent-B3BSgQcW.js} +22 -22
  265. package/dist/{register.agent-DxsC-Szl.js → register.agent-CSHtI9uN.js} +23 -23
  266. package/dist/{register.configure-CiYkPB_K.js → register.configure-CYwDM9d3.js} +26 -26
  267. package/dist/{register.configure-Ceru0oh0.js → register.configure-Cu4CPpm4.js} +26 -26
  268. package/dist/{register.maintenance-BCSq69vI.js → register.maintenance-BXiHFIyG.js} +28 -28
  269. package/dist/{register.maintenance-D-kzdtog.js → register.maintenance-C6vjRY-I.js} +29 -29
  270. package/dist/{register.message-B3NWvxgd.js → register.message-BsBClRov.js} +18 -18
  271. package/dist/{register.message-D-e6_UXf.js → register.message-DNpBTvto.js} +18 -18
  272. package/dist/{register.onboard-BPko9BHz.js → register.onboard-BKQLGJhh.js} +2 -2
  273. package/dist/{register.onboard-BHBpxcRv.js → register.onboard-t_7lOkRu.js} +2 -2
  274. package/dist/{register.setup-BE-sR-Dc.js → register.setup-B7QHn0Qv.js} +2 -2
  275. package/dist/{register.setup-Bjx48C4T.js → register.setup-DEg7fSPZ.js} +2 -2
  276. package/dist/{register.status-health-sessions-CQQWiYcu.js → register.status-health-sessions-7E-y6cw7.js} +24 -24
  277. package/dist/{register.status-health-sessions-BczZXjHB.js → register.status-health-sessions-D9iuSOb8.js} +24 -24
  278. package/dist/{register.subclis-Bn9Re4fV.js → register.subclis-R6keQnon.js} +16 -16
  279. package/dist/{replies-BsctLhfp.js → replies-NkETqb6B.js} +4 -4
  280. package/dist/{reply-BzUdF5qW.js → reply-B4TgvJrJ.js} +124 -97
  281. package/dist/{reply-directives-D9wYtPPy.js → reply-directives-DGITtNUL.js} +2 -2
  282. package/dist/{reply-prefix-C7WlN3qm.js → reply-prefix-DVkNDBNe.js} +1 -1
  283. package/dist/{resolve-route-BV8k5qjX.js → resolve-route-jDAjkfZE.js} +5 -5
  284. package/dist/{run-main-Cfccgza4.js → run-main-CMTfGYjG.js} +30 -30
  285. package/dist/{runs-DVNBpgv0.js → runs-B0TxOQnF.js} +3 -3
  286. package/dist/{runs-i5IuTzQX.js → runs-BMp7jOLL.js} +3 -3
  287. package/dist/{runs-BauIdJqy.js → runs-DGWNXyKA.js} +8 -8
  288. package/dist/{sandbox-QsMPF2u6.js → sandbox-CQwpubTx.js} +1 -1
  289. package/dist/{sandbox-bbN1dfIo.js → sandbox-DbfWdQha.js} +1 -1
  290. package/dist/{sandbox-cli-CuG1HCrw.js → sandbox-cli-CSjghLhl.js} +2 -2
  291. package/dist/{sandbox-cli-nx3ctiYX.js → sandbox-cli-DwhgE7u4.js} +2 -2
  292. package/dist/{security-cli-BmfAwh-0.js → security-cli-DSB1NLa6.js} +4 -4
  293. package/dist/{security-cli-BfZEQFxV.js → security-cli-DlMcCXl1.js} +4 -4
  294. package/dist/{send-Tx-ew59_.js → send-CNLmncRW.js} +6 -6
  295. package/dist/{send-CvkM5xAx.js → send-DAYMV49d.js} +1 -1
  296. package/dist/{send-Dd2SE0h0.js → send-DEFcgo-1.js} +27 -27
  297. package/dist/{send-BGps2i_C.js → send-Do1AlhD5.js} +8 -8
  298. package/dist/{send-BiDcVZSc.js → send-Dq8ChBfS.js} +6 -6
  299. package/dist/{send-Ba3pDq6E.js → send-ENMm5qbW.js} +7 -7
  300. package/dist/{send-BKkvuHI9.js → send-l57G-s8y.js} +1 -1
  301. package/dist/{server-BMSgu_SV.js → server-BAGUd2MH.js} +4 -4
  302. package/dist/{server-DRVR_pkr.js → server-IDopagLT.js} +4 -4
  303. package/dist/{server-context-CTilcbO4.js → server-context-BUX61Gwl.js} +2 -2
  304. package/dist/{server-context-Bbi-nqKD.js → server-context-FPrSnBNG.js} +2 -2
  305. package/dist/{server-lifecycle-DrAGY_SC.js → server-lifecycle-7QoL5fyb.js} +1 -1
  306. package/dist/{server-lifecycle-BIOS9ErD.js → server-lifecycle-DXRap2AR.js} +1 -1
  307. package/dist/{server-node-events-B3c2ctcO.js → server-node-events-DSTI4JnV.js} +18 -18
  308. package/dist/{server-node-events-lwnuZDvV.js → server-node-events-MOX6FUiJ.js} +18 -18
  309. package/dist/{service-Hy5BSgmp.js → service-C_LTJsJU.js} +1 -1
  310. package/dist/{service-RnhuB5cG.js → service-Dkcqg-rd.js} +1 -1
  311. package/dist/{session-meta-DH__PMKt.js → session-meta-DuK_BrWT.js} +2 -2
  312. package/dist/{sessions-DCXadUdD.js → sessions-CgVN798h.js} +4 -4
  313. package/dist/{sessions-Cy_VVMEN.js → sessions-Dcu0bdQ7.js} +4 -4
  314. package/dist/{shared-Bc-7t0_-.js → shared-6Uo_6p6X.js} +1 -1
  315. package/dist/{shared-CJd0QML9.js → shared-Cj18nzyW.js} +1 -1
  316. package/dist/{skill-commands-CRZajtK_.js → skill-commands-BhMQp_i8.js} +9 -9
  317. package/dist/{skills-DOc6uEd1.js → skills-ckuLxkyg.js} +21 -21
  318. package/dist/{status-PwhjcAYw.js → status-B3eNMcE3.js} +7 -7
  319. package/dist/{status-Dh0qVJb_.js → status-C5pbfqhh.js} +7 -7
  320. package/dist/{store-xxN6qyAh.js → store-gQ6FSjVk.js} +2 -2
  321. package/dist/{subsystem-BCjklMkJ.js → subsystem-CPYnUTN4.js} +64 -64
  322. package/dist/{systemd-B5tdOLBg.js → systemd-BJqlwupF.js} +1 -1
  323. package/dist/{systemd-DsBMxUv1.js → systemd-D6tSdsgx.js} +1 -1
  324. package/dist/{systemd-hints-DH86kn6U.js → systemd-hints-Cp0IfOPD.js} +45 -4
  325. package/dist/{systemd-hints-WHzM5Tf8.js → systemd-hints-DzBfweRH.js} +45 -4
  326. package/dist/{systemd-linger-BPzLwumk.js → systemd-linger-Dk1GWduD.js} +1 -1
  327. package/dist/{systemd-linger-EvpJ4ZxF.js → systemd-linger-NvIOU-Ez.js} +1 -1
  328. package/dist/{tables-o3ZpyPWV.js → tables-DEyD0zuy.js} +1 -1
  329. package/dist/{task-pipeline-boot-CcSZVGUe.js → task-pipeline-boot-BLEjtMkt.js} +17 -17
  330. package/dist/{task-pipeline-boot-UcskPjY2.js → task-pipeline-boot-DKqT4VdZ.js} +17 -17
  331. package/dist/{tokens-9Mla_HDp.js → tokens-9BPY4SaX.js} +1 -1
  332. package/dist/{tool-loop-detection-8uvf8mSd.js → tool-loop-detection-C1fqyXXD.js} +2 -2
  333. package/dist/{tui-WSQKUD4o.js → tui-5QhX2Lcm.js} +1 -1
  334. package/dist/{tui-dccCFhet.js → tui-CetFSZIt.js} +1 -1
  335. package/dist/{tui-cli-C3Sopj4_.js → tui-cli-Bo-8qeoa.js} +4 -4
  336. package/dist/{tui-cli-CpRsjtOO.js → tui-cli-DFak7s89.js} +4 -4
  337. package/dist/{update-D86-cS_v.js → update-B3jJ2yVe.js} +1 -1
  338. package/dist/{update-DJaR3w6x.js → update-Dwt-MeRL.js} +1 -1
  339. package/dist/{update-cli-BSxfgTyN.js → update-cli-D5knJbn5.js} +34 -34
  340. package/dist/{update-cli-f5iTpbNn.js → update-cli-Dhxx3iie.js} +33 -33
  341. package/dist/{update-runner-DwM4xj8C.js → update-runner-18yD5NLo.js} +1 -1
  342. package/dist/{update-runner-DqE_9Axt.js → update-runner-DohE1D7D.js} +1 -1
  343. package/dist/{user-run-recording-CAk1Ketk.js → user-run-recording-B0XAAUwL.js} +2 -2
  344. package/dist/{validation-cli-C8XHeLjI.js → validation-cli-CAge8d_F.js} +18 -18
  345. package/dist/{validation-cli-jSmCMkkm.js → validation-cli-Dfac8Duq.js} +18 -18
  346. package/dist/{with-timeout-BvxLQUTs.js → with-timeout-1SSQaGSz.js} +2 -2
  347. package/dist/{with-timeout-CII3PkDO.js → with-timeout-DD5bV7yq.js} +2 -2
  348. package/dist/{workspace-Dbn4gFdH.js → workspace-B707AGIc.js} +9 -9
  349. package/extensions/acpx/package.json +1 -1
  350. package/extensions/anthropic/package.json +1 -1
  351. package/extensions/bifrost/package.json +1 -1
  352. package/extensions/bluebubbles/package.json +1 -1
  353. package/extensions/copilot-proxy/package.json +1 -1
  354. package/extensions/deepgram/package.json +1 -1
  355. package/extensions/deepinfra/package.json +1 -1
  356. package/extensions/diagnostics-otel/package.json +1 -1
  357. package/extensions/diffs/package.json +1 -1
  358. package/extensions/discord/package.json +1 -1
  359. package/extensions/dream-cycle/package.json +1 -1
  360. package/extensions/elevenlabs/package.json +1 -1
  361. package/extensions/feishu/package.json +1 -1
  362. package/extensions/gemini-search/package.json +1 -1
  363. package/extensions/google/package.json +1 -1
  364. package/extensions/google-gemini-cli-auth/package.json +1 -1
  365. package/extensions/googlechat/package.json +1 -1
  366. package/extensions/grok-search/package.json +1 -1
  367. package/extensions/groq/package.json +1 -1
  368. package/extensions/imessage/package.json +1 -1
  369. package/extensions/irc/package.json +1 -1
  370. package/extensions/kimi-search/package.json +1 -1
  371. package/extensions/learning-core/package.json +1 -1
  372. package/extensions/learning-core/src/bounded-store-reads.conformance.test.ts +23 -411
  373. package/extensions/learning-core/src/bounded-store-reads.pg.integration.test.ts +52 -0
  374. package/extensions/learning-core/src/bounded-store-reads.test-helpers.ts +387 -0
  375. package/extensions/learning-core/src/lesson-store-conformance.pg.integration.test.ts +77 -0
  376. package/extensions/learning-core/src/lesson-store-conformance.test-helpers.ts +1406 -0
  377. package/extensions/learning-core/src/lesson-store-conformance.test.ts +27 -1509
  378. package/extensions/learning-core/src/lesson-store-postgres.test.ts +9 -7
  379. package/extensions/line/package.json +1 -1
  380. package/extensions/llm-task/package.json +1 -1
  381. package/extensions/lobster/package.json +1 -1
  382. package/extensions/matrix/CHANGELOG.md +1 -1
  383. package/extensions/matrix/package.json +1 -1
  384. package/extensions/mattermost/package.json +1 -1
  385. package/extensions/memory-core/package.json +1 -1
  386. package/extensions/memory-lancedb/package.json +1 -1
  387. package/extensions/minimax/package.json +1 -1
  388. package/extensions/minimax-portal-auth/package.json +1 -1
  389. package/extensions/mistral/package.json +1 -1
  390. package/extensions/moonshot/package.json +1 -1
  391. package/extensions/msteams/CHANGELOG.md +1 -1
  392. package/extensions/msteams/package.json +1 -1
  393. package/extensions/nextcloud-talk/package.json +1 -1
  394. package/extensions/nostr/CHANGELOG.md +1 -1
  395. package/extensions/nostr/package.json +1 -1
  396. package/extensions/open-prose/package.json +1 -1
  397. package/extensions/openai/package.json +1 -1
  398. package/extensions/openai-realtime/package.json +1 -1
  399. package/extensions/openrouter/package.json +1 -1
  400. package/extensions/perplexity-search/package.json +1 -1
  401. package/extensions/searxng-search/package.json +1 -1
  402. package/extensions/signal/package.json +1 -1
  403. package/extensions/slack/package.json +1 -1
  404. package/extensions/synology-chat/package.json +1 -1
  405. package/extensions/telegram/package.json +1 -1
  406. package/extensions/tlon/package.json +1 -1
  407. package/extensions/twitch/CHANGELOG.md +1 -1
  408. package/extensions/twitch/package.json +1 -1
  409. package/extensions/voice-call/CHANGELOG.md +1 -1
  410. package/extensions/voice-call/package.json +1 -1
  411. package/extensions/whatsapp/package.json +1 -1
  412. package/extensions/zai/package.json +1 -1
  413. package/extensions/zalo/CHANGELOG.md +1 -1
  414. package/extensions/zalo/package.json +1 -1
  415. package/extensions/zalouser/CHANGELOG.md +1 -1
  416. package/extensions/zalouser/package.json +1 -1
  417. package/package.json +1 -1
  418. package/dist/plugin-sdk/agent-turn-execute-BCE3FS2s.js +0 -61
  419. package/dist/plugin-sdk/agent-turn-runner-gf0ARmuP.js +0 -11
  420. package/dist/plugin-sdk/audio-preflight-DlGohKMs.js +0 -28
  421. package/dist/plugin-sdk/deliver-DBCz1GqU.js +0 -32
  422. package/dist/plugin-sdk/manager-ByaW_O4Y.js +0 -16
  423. package/dist/plugin-sdk/markdown-tables-J4hZ7eWU.js +0 -10
  424. package/dist/plugin-sdk/provider-dispatcher-Byy-KtUn.js +0 -61
  425. package/dist/plugin-sdk/provider-image-B_dJDOl5.js +0 -22
  426. package/dist/plugin-sdk/proxy-DwbYzxBy.js +0 -7
  427. package/dist/plugin-sdk/replies-B9uDLFOE.js +0 -25
  428. package/dist/plugin-sdk/reply-prefix-BQMEQam1.js +0 -7
  429. package/dist/plugin-sdk/runs-BQhYekhr.js +0 -25
  430. package/dist/plugin-sdk/send-CeWqZTK0.js +0 -23
  431. package/dist/plugin-sdk/send-CzcKgBBf.js +0 -25
  432. package/dist/plugin-sdk/send-Dvna5ey-.js +0 -27
  433. package/dist/plugin-sdk/send-xPV0QIjh.js +0 -24
  434. package/dist/plugin-sdk/session-meta-n4SCcAbJ.js +0 -10
  435. package/dist/plugin-sdk/skill-commands-BOV3NIbU.js +0 -14
  436. package/dist/plugin-sdk/subagent-registry-CZBK6615.js +0 -61
  437. package/dist/plugin-sdk/user-run-recording-DiKcNdjn.js +0 -11
@@ -1,7 +1,7 @@
1
1
  import "./paths-BBP4yd-2.js";
2
2
  import { g as resolveUserPath, p as pathExists } from "./utils-CMEUUHmM.js";
3
3
  import "./thinking-DDYFn78t.js";
4
- import "./reply-BzUdF5qW.js";
4
+ import "./reply-B4TgvJrJ.js";
5
5
  import { v as DEFAULT_BOOTSTRAP_FILENAME } from "./agent-scope-CWTkr4pS.js";
6
6
  import { h as restoreTerminalState } from "./subsystem-DDZBycwS.js";
7
7
  import "./logger-0VqfDbvM.js";
@@ -21,11 +21,11 @@ import "./task-run-types-B5uIC1Y7.js";
21
21
  import "./static-server-C-iTMRyz.js";
22
22
  import "./path-alias-guards-BSmwo1rT.js";
23
23
  import "./fs-safe-DD7KXuvI.js";
24
- import "./audio-transcription-runner-CGTNNwbm.js";
24
+ import "./audio-transcription-runner-BvZFFknx.js";
25
25
  import "./fetch-guard-CjyGDRXN.js";
26
26
  import "./ssrf-B85AIIOO.js";
27
27
  import "./proxy-fetch-Czv8kxaL.js";
28
- import "./pi-embedded-helpers-i0-tPaxH.js";
28
+ import "./pi-embedded-helpers-CPorV-Mk.js";
29
29
  import "./local-roots-_qt4-Ma5.js";
30
30
  import "./image-ops-DcqCZEUY.js";
31
31
  import "./redact-CQtYLB4a.js";
@@ -33,17 +33,17 @@ import "./errors-z_JCBnTo.js";
33
33
  import "./models-config-Burwt3mB.js";
34
34
  import "./model-catalog-C7itJJDM.js";
35
35
  import "./api-key-rotation-BEt1ZchD.js";
36
- import "./provider-image-CZlpEJVI.js";
36
+ import "./provider-image-CIpRvhkS.js";
37
37
  import "./pi-model-discovery-CfUi22Es.js";
38
- import "./pi-embedded-utils-BtOzugyp.js";
39
- import "./sandbox-bbN1dfIo.js";
38
+ import "./pi-embedded-utils-lp-U3XQ9.js";
39
+ import "./sandbox-DbfWdQha.js";
40
40
  import "./tool-catalog-B6wH7-iE.js";
41
41
  import "./extension-relay-auth-C-1c9CZk.js";
42
42
  import "./tailscale-DbsrfsUT.js";
43
43
  import "./tailnet-G5phL2pY.js";
44
44
  import "./ws-BuVK_u9S.js";
45
45
  import "./auth-DeLQvx-N.js";
46
- import "./server-context-Bbi-nqKD.js";
46
+ import "./server-context-FPrSnBNG.js";
47
47
  import "./frontmatter-B8Zb_8go.js";
48
48
  import "./skills-Buc1RWDY.js";
49
49
  import "./store-DoqX9VsZ.js";
@@ -57,7 +57,7 @@ import "./outbound-message-hooks-t1DDjQX_.js";
57
57
  import "./commands-tFdLuF5k.js";
58
58
  import "./commands-registry-BMswme6t.js";
59
59
  import "./registry-D9ygkK-J.js";
60
- import "./agent-turn-enqueue-Cqo34Swm.js";
60
+ import "./agent-turn-enqueue-DzWOPhgy.js";
61
61
  import "./client-BbpMX08n.js";
62
62
  import { n as docsSiteUrl } from "./docs-site-CQKzDXJz.js";
63
63
  import "./call-Cl6Q0T5z.js";
@@ -70,13 +70,13 @@ import "./exec-safe-bin-runtime-policy-KSPaR73B.js";
70
70
  import "./nodes-screen-BRZLdw3g.js";
71
71
  import "./system-run-command-AF8TLlEl.js";
72
72
  import "./diagnostic-session-state-C6JXU3l4.js";
73
- import "./diagnostic-D7DvV7NT.js";
74
- import "./runs-DVNBpgv0.js";
75
- import "./command-queue-DmXWCoY0.js";
73
+ import "./diagnostic-Cid_Tw67.js";
74
+ import "./runs-B0TxOQnF.js";
75
+ import "./command-queue-DtybAhHH.js";
76
76
  import "./reply-prefix-D0xrt6Z-.js";
77
- import "./deliver-8xg5ISEI.js";
78
- import "./with-timeout-CII3PkDO.js";
79
- import "./send-CvkM5xAx.js";
77
+ import "./deliver-D37woOwV.js";
78
+ import "./with-timeout-DD5bV7yq.js";
79
+ import "./send-DAYMV49d.js";
80
80
  import "./model-BI6n6kVo.js";
81
81
  import "./session-consumer-agents-DWh7Mygv.js";
82
82
  import "./chunk-BDQQgsxn.js";
@@ -92,7 +92,7 @@ import "./outbound-attachment-Bg7WvYcG.js";
92
92
  import "./delivery-queue-DhBE3s1K.js";
93
93
  import "./send-26KAC8EW.js";
94
94
  import "./resolve-route-DnhX9nWr.js";
95
- import "./pi-tools.policy-DPm2eos4.js";
95
+ import "./pi-tools.policy-r9H_A-NQ.js";
96
96
  import "./tables-CzW-cMQN.js";
97
97
  import "./proxy-Df2WAHRA.js";
98
98
  import "./replies-DoejQAqN.js";
@@ -106,7 +106,7 @@ import { b as waitForGatewayReachable, f as openUrl, g as resolveControlUiLinks,
106
106
  import "./prompt-style-D0wRuIYC.js";
107
107
  import "./pairing-labels-CGUWaZ3f.js";
108
108
  import "./session-meta-DzjDKcgW.js";
109
- import "./agent-turn-runner-Vd3aTCni.js";
109
+ import "./agent-turn-runner-BEvwtTis.js";
110
110
  import "./memory-cli-DZyEfnsr.js";
111
111
  import "./manager-DehDxi2A.js";
112
112
  import "./query-expansion-BD3CL_NZ.js";
@@ -114,25 +114,25 @@ import "./links-BhLGjTwm.js";
114
114
  import "./cli-utils-DWSfnwCw.js";
115
115
  import "./help-format-DqpZruAs.js";
116
116
  import "./progress-DRMfDm7h.js";
117
- import "./server-lifecycle-DrAGY_SC.js";
117
+ import "./server-lifecycle-7QoL5fyb.js";
118
118
  import "./stagger-BIZMWR_z.js";
119
119
  import "./heartbeat-tick-CsyeD75h.js";
120
120
  import "./redact-snapshot-Cm6wsMRx.js";
121
121
  import "./session-cost-usage-pjXSgi_U.js";
122
122
  import "./runtime-guard-DYUXYZIl.js";
123
- import "./program-context-DN3ucEgK.js";
123
+ import "./program-context-BCo6By7P.js";
124
124
  import "./note-DCbCarQS.js";
125
- import { r as installCompletion } from "./completion-cli-BQ5pz74O.js";
125
+ import { r as installCompletion } from "./completion-cli-L5YP0rxV.js";
126
126
  import { n as gatewayInstallErrorHint, t as buildGatewayInstallPlan } from "./daemon-install-helpers-C8mJ0UpL.js";
127
127
  import { n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-BYJFVHH_.js";
128
- import { t as resolveGatewayService } from "./service-Hy5BSgmp.js";
129
- import { r as isSystemdUserServiceAvailable } from "./systemd-DsBMxUv1.js";
130
- import { r as healthCommand } from "./health-DFat5vO5.js";
128
+ import { t as resolveGatewayService } from "./service-C_LTJsJU.js";
129
+ import { r as isSystemdUserServiceAvailable } from "./systemd-D6tSdsgx.js";
130
+ import { r as healthCommand } from "./health-Q4hCJ8O2.js";
131
131
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-DonecnKL.js";
132
132
  import { t as resolveOnboardingSecretInputString } from "./onboarding.secret-input-BCxy1JxD.js";
133
133
  import { t as formatHealthCheckFailure } from "./health-format-_VGfj3fm.js";
134
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-B94pFOFt.js";
135
- import { t as runTui } from "./tui-dccCFhet.js";
134
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-ChF4A40n.js";
135
+ import { t as runTui } from "./tui-CetFSZIt.js";
136
136
  import os from "node:os";
137
137
  import path from "node:path";
138
138
  import fs from "node:fs/promises";
@@ -197,7 +197,7 @@ async function finalizeOnboardingWizard(options) {
197
197
  const systemdAvailable = process.platform === "linux" ? await isSystemdUserServiceAvailable() : true;
198
198
  if (process.platform === "linux" && !systemdAvailable) await prompter.note("Systemd user services are unavailable. Skipping lingering checks and service install.", "Systemd");
199
199
  if (process.platform === "linux" && systemdAvailable) {
200
- const { ensureSystemdUserLingerInteractive } = await import("./systemd-linger-EvpJ4ZxF.js").then((n) => n.r);
200
+ const { ensureSystemdUserLingerInteractive } = await import("./systemd-linger-NvIOU-Ez.js").then((n) => n.r);
201
201
  await ensureSystemdUserLingerInteractive({
202
202
  runtime,
203
203
  prompter: {
@@ -1,12 +1,12 @@
1
1
  import { g as resolveStateDir } from "./paths-BBP4yd-2.js";
2
- import { Mn as resolveHeartbeatDeliveryTarget, b as runHeartbeatOnce, dr as peekSystemEventEntries, lr as enqueueSystemEvent, v as resolveHeartbeatConfig } from "./reply-BzUdF5qW.js";
2
+ import { Mn as resolveHeartbeatDeliveryTarget, b as runHeartbeatOnce, dr as peekSystemEventEntries, lr as enqueueSystemEvent, v as resolveHeartbeatConfig } from "./reply-B4TgvJrJ.js";
3
3
  import { r as listAgentIds } from "./agent-scope-CWTkr4pS.js";
4
4
  import { t as createSubsystemLogger } from "./subsystem-DDZBycwS.js";
5
5
  import { T as HEARTBEAT_SESSION_KEY_SEGMENT, b as toAgentStoreSessionKey, d as normalizeAgentId } from "./session-key-B1wN38jV.js";
6
6
  import { oi as loadSessionStore } from "./model-selection-k68XU4oS.js";
7
7
  import { m as resolveStorePath } from "./artifacts-qv_OgPMd.js";
8
8
  import { t as redactIdentifier } from "./redact-identifier-CSPL9LuH.js";
9
- import { A as registerBeforeCreate, w as isArtifactRegistrationError } from "./agent-turn-runner-Vd3aTCni.js";
9
+ import { A as registerBeforeCreate, w as isArtifactRegistrationError } from "./agent-turn-runner-BEvwtTis.js";
10
10
  import fs from "node:fs";
11
11
  import path from "node:path";
12
12
 
@@ -4,9 +4,9 @@ import { Nn as loadSessionStore } from "./config-BPACL-n5.js";
4
4
  import { T as HEARTBEAT_SESSION_KEY_SEGMENT, b as toAgentStoreSessionKey, d as normalizeAgentId } from "./session-key-D4YLCjDF.js";
5
5
  import { r as listAgentIds } from "./agent-scope-Dt0TVWFY.js";
6
6
  import { m as resolveStorePath } from "./artifacts-C9Cr_S5Y.js";
7
- import { a as runHeartbeatOnce, gn as enqueueSystemEvent, r as resolveHeartbeatConfig, vn as peekSystemEventEntries, vt as resolveHeartbeatDeliveryTarget } from "./agent-turn-execute-Bw9hhkAP.js";
7
+ import { a as runHeartbeatOnce, gn as enqueueSystemEvent, r as resolveHeartbeatConfig, vn as peekSystemEventEntries, vt as resolveHeartbeatDeliveryTarget } from "./agent-turn-execute-CzOC4mHw.js";
8
8
  import { t as redactIdentifier } from "./redact-identifier-BcqQpFrh.js";
9
- import { A as registerBeforeCreate, w as isArtifactRegistrationError } from "./agent-turn-runner-CUCOdxhH.js";
9
+ import { A as registerBeforeCreate, w as isArtifactRegistrationError } from "./agent-turn-runner-C1u8sVfA.js";
10
10
  import path from "node:path";
11
11
  import fs from "node:fs";
12
12
 
@@ -1,5 +1,5 @@
1
- import { i as saveMediaBuffer } from "./store-xxN6qyAh.js";
2
- import { a as loadWebMedia } from "./ir-fzpdYPWw.js";
1
+ import { i as saveMediaBuffer } from "./store-gQ6FSjVk.js";
2
+ import { a as loadWebMedia } from "./ir-C4MMLUJr.js";
3
3
  import { t as buildOutboundMediaLoadOptions } from "./load-options-DzQsLh91.js";
4
4
 
5
5
  //#region src/media/outbound-attachment.ts
@@ -1,7 +1,7 @@
1
- import { f as resolveSessionAgentId } from "./agent-scope-cbxkoURo.js";
2
- import { f as logVerbose, t as createSubsystemLogger } from "./subsystem-BCjklMkJ.js";
3
- import { ar as mergePromptContributions, ln as getConfiguredSessionStorageRuntime, pr as emitDiagnosticEvent, sn as getConversationReadQuery } from "./model-selection-9qbqwsOT.js";
4
- import { n as createInternalHookEvent, o as triggerInternalHook } from "./legacy-names-CLlrMq8r.js";
1
+ import { f as resolveSessionAgentId } from "./agent-scope-DxKPMu8w.js";
2
+ import { f as logVerbose, t as createSubsystemLogger } from "./subsystem-CPYnUTN4.js";
3
+ import { ar as mergePromptContributions, ln as getConfiguredSessionStorageRuntime, pr as emitDiagnosticEvent, sn as getConversationReadQuery } from "./model-selection-CdZITU0t.js";
4
+ import { n as createInternalHookEvent, o as triggerInternalHook } from "./legacy-names-vLJrYADD.js";
5
5
  import { createHash } from "node:crypto";
6
6
 
7
7
  //#region src/plugins/message-identity.ts
@@ -1,4 +1,4 @@
1
- import { L as BOUNDARY_PATH_ALIAS_POLICIES, R as resolveBoundaryPath, V as isNotFoundPathError } from "./subsystem-BCjklMkJ.js";
1
+ import { L as BOUNDARY_PATH_ALIAS_POLICIES, R as resolveBoundaryPath, V as isNotFoundPathError } from "./subsystem-CPYnUTN4.js";
2
2
  import fs from "node:fs/promises";
3
3
  import os from "node:os";
4
4
 
@@ -1,6 +1,6 @@
1
1
  import os from "node:os";
2
2
  import path from "node:path";
3
- import fs from "node:fs";
3
+ import syncFs from "node:fs";
4
4
 
5
5
  //#region src/infra/home-dir.ts
6
6
  function normalize(value) {
@@ -94,10 +94,10 @@ function resolveStateDir(env = process.env, homedir = envHomedir(env)) {
94
94
  const newDir = newStateDir(effectiveHomedir);
95
95
  if (env.OPENCLAW_TEST_FAST === "1") return newDir;
96
96
  const legacyDirs = legacyStateDirs(effectiveHomedir);
97
- if (fs.existsSync(newDir)) return newDir;
97
+ if (syncFs.existsSync(newDir)) return newDir;
98
98
  const existingLegacy = legacyDirs.find((dir) => {
99
99
  try {
100
- return fs.existsSync(dir);
100
+ return syncFs.existsSync(dir);
101
101
  } catch {
102
102
  return false;
103
103
  }
@@ -137,7 +137,7 @@ function resolveConfigPathCandidate(env = process.env, homedir = envHomedir(env)
137
137
  if (env.OPENCLAW_TEST_FAST === "1") return resolveCanonicalConfigPath(env, resolveStateDir(env, homedir));
138
138
  const existing = resolveDefaultConfigCandidates(env, homedir).find((candidate) => {
139
139
  try {
140
- return fs.existsSync(candidate);
140
+ return syncFs.existsSync(candidate);
141
141
  } catch {
142
142
  return false;
143
143
  }
@@ -155,7 +155,7 @@ function resolveConfigPath(env = process.env, stateDir = resolveStateDir(env, en
155
155
  const stateOverride = env.OPENCLAW_STATE_DIR?.trim();
156
156
  const existing = [path.join(stateDir, CONFIG_FILENAME), ...LEGACY_CONFIG_FILENAMES.map((name) => path.join(stateDir, name))].find((candidate) => {
157
157
  try {
158
- return fs.existsSync(candidate);
158
+ return syncFs.existsSync(candidate);
159
159
  } catch {
160
160
  return false;
161
161
  }
@@ -11,7 +11,7 @@ import { c as resolveSessionFilePathOptions, d as resolveSessionTranscriptsDirFo
11
11
  import { n as resolveConversationLabel, r as normalizeChatType } from "./conversation-label-CrORLc0j.js";
12
12
  import { a as createSlackWebClient, c as validateSlackBlocksArray, d as resolveSlackChannelId, i as normalizeSlackOutboundText, l as buildSlackBlocksFallbackText, o as resolveSlackWebClientOptions, s as parseSlackBlocksInput, t as sendMessageSlack, u as parseSlackTarget } from "./send-D_7dTJRR.js";
13
13
  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 isDiscordGroupAllowedByPolicy, d as parseDiscordModalCustomId, dt as resolveDiscordAllowListMatch, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordChannelConfigWithFallback, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordOwnerAccess, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as normalizeDiscordAllowList, m as resolveDiscordComponentEntry, mt as resolveDiscordMemberAccessState, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordGuildEntry, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordSlug, 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-D1kCxvys.js";
14
- import { a as clearDelayedReleaseHold, c as mergeDelayedAgentTurn, d as KeyedAsyncQueue, i as agentTurnIdempotencyKey, l as peekDelayedAgentTurn, n as getAgentTurnRuntime, o as enqueueAgentTurn, r as tryGetAgentTurnRuntime, s as isClaimableAgentTurnWorkId, u as setDelayedReleaseHold } from "./agent-turn-runner-CImqp_RN.js";
14
+ import { a as clearDelayedReleaseHold, c as mergeDelayedAgentTurn, d as KeyedAsyncQueue, i as agentTurnIdempotencyKey, l as peekDelayedAgentTurn, n as getAgentTurnRuntime, o as enqueueAgentTurn, r as tryGetAgentTurnRuntime, s as isClaimableAgentTurnWorkId, u as setDelayedReleaseHold } from "./agent-turn-runner-DpICdamt.js";
15
15
  import { a as stripSilentToken, i as isSilentReplyText, n as SILENT_REPLY_TOKEN, r as isSilentReplyPrefixText, t as HEARTBEAT_TOKEN } from "./tokens-CjVVH60D.js";
16
16
  import { n as generateSecureUuid, t as generateSecureToken } from "./secure-random-CXrBi7Jq.js";
17
17
  import { _ as resolveProviderPromptCacheKey, a as toInternalMessageReceivedContext, c as toPluginMessageReceivedEvent, d as resolveOutboundSessionId, f as getGlobalHookRunner, g as buildPluginTurnIdentity, h as buildPluginRuntimeIdentity, i as toInternalMessagePreprocessedContext, l as fireAndForgetHook, m as promptBuildResultToContribution, n as createMessageSentEmitter, o as toInternalMessageTranscribedContext, p as initializeGlobalHookRunner, r as deriveInboundMessageHookContext, s as toPluginMessageContext, t as applyMessageSendingHook, u as buildOutboundSessionContext, v as resolveProviderRuntimeIdentity } from "./outbound-message-hooks-oGBX9HAb.js";
@@ -98149,7 +98149,7 @@ function estimateMessageChars$1(message) {
98149
98149
  if (message.role === "toolResult") return estimateTextAndImageChars(message.content);
98150
98150
  return 256;
98151
98151
  }
98152
- function estimateContextChars$1(messages) {
98152
+ function estimateContextChars(messages) {
98153
98153
  return messages.reduce((sum, m) => sum + estimateMessageChars$1(m), 0);
98154
98154
  }
98155
98155
  function findAssistantCutoffIndex(messages, keepLastAssistants) {
@@ -98197,7 +98197,7 @@ function pruneContextMessages(params) {
98197
98197
  const firstUserIndex = findFirstUserIndex(messages);
98198
98198
  const pruneStartIndex = firstUserIndex === null ? messages.length : firstUserIndex;
98199
98199
  const isToolPrunable = params.isToolPrunable ?? makeToolPrunablePredicate(settings.tools);
98200
- let totalChars = estimateContextChars$1(messages);
98200
+ let totalChars = estimateContextChars(messages);
98201
98201
  let ratio = totalChars / charWindow;
98202
98202
  if (ratio < settings.softTrimRatio) return messages;
98203
98203
  const prunableToolIndexes = [];
@@ -103520,32 +103520,35 @@ function estimateMessageCharsCached(msg, cache) {
103520
103520
  cache.set(msg, estimated);
103521
103521
  return estimated;
103522
103522
  }
103523
- function estimateContextChars(messages, cache) {
103524
- return messages.reduce((sum, msg) => sum + estimateMessageCharsCached(msg, cache), 0);
103525
- }
103526
- function invalidateMessageCharsCacheEntry(cache, msg) {
103527
- cache.delete(msg);
103528
- }
103529
103523
 
103530
103524
  //#endregion
103531
103525
  //#region src/agents/pi-embedded-runner/tool-result-context-guard.ts
103532
- const CONTEXT_INPUT_HEADROOM_RATIO = .75;
103526
+ const AGGREGATE_TOOL_RESULT_CONTEXT_SHARE = .5;
103533
103527
  const SINGLE_TOOL_RESULT_CONTEXT_SHARE = .5;
103528
+ const MIN_TRIMMED_TOOL_RESULT_CHARS = 2e3;
103529
+ const TAIL_SHARE = .3;
103530
+ const MAX_TAIL_CHARS = 4e3;
103531
+ const TOOL_RESULT_TEXT_WEIGHT = CHARS_PER_TOKEN_ESTIMATE / TOOL_RESULT_CHARS_PER_TOKEN_ESTIMATE;
103534
103532
  const CONTEXT_LIMIT_TRUNCATION_NOTICE = "[truncated: output exceeded context limit]";
103535
- const CONTEXT_LIMIT_TRUNCATION_SUFFIX = `\n${CONTEXT_LIMIT_TRUNCATION_NOTICE}`;
103536
103533
  const PREEMPTIVE_TOOL_RESULT_COMPACTION_PLACEHOLDER = "[compacted: tool output removed to free context]";
103537
- function truncateTextToBudget(text, maxChars) {
103534
+ function formatOmissionMarker(omittedChars) {
103535
+ return `\n\n${CONTEXT_LIMIT_TRUNCATION_NOTICE} [${omittedChars} chars omitted between head and tail]\n\n`;
103536
+ }
103537
+ function truncateTextHeadTail(text, maxChars) {
103538
103538
  if (text.length <= maxChars) return text;
103539
- if (maxChars <= 0) return CONTEXT_LIMIT_TRUNCATION_NOTICE;
103540
- const bodyBudget = Math.max(0, maxChars - CONTEXT_LIMIT_TRUNCATION_SUFFIX.length);
103539
+ const bodyBudget = maxChars - formatOmissionMarker(text.length).length;
103541
103540
  if (bodyBudget <= 0) return CONTEXT_LIMIT_TRUNCATION_NOTICE;
103542
- let cutPoint = bodyBudget;
103543
- const newline = text.lastIndexOf("\n", bodyBudget);
103544
- if (newline > bodyBudget * .7) cutPoint = newline;
103545
- return text.slice(0, cutPoint) + CONTEXT_LIMIT_TRUNCATION_SUFFIX;
103541
+ const tailBudget = Math.min(Math.floor(bodyBudget * TAIL_SHARE), MAX_TAIL_CHARS);
103542
+ let head = sliceUtf16Safe(text, 0, bodyBudget - tailBudget);
103543
+ const headNewline = head.lastIndexOf("\n");
103544
+ if (headNewline > head.length * .8) head = head.slice(0, headNewline);
103545
+ let tail = tailBudget > 0 ? sliceUtf16Safe(text, -tailBudget) : "";
103546
+ const tailNewline = tail.indexOf("\n");
103547
+ if (tailNewline !== -1 && tailNewline < tail.length * .2) tail = tail.slice(tailNewline + 1);
103548
+ return head + formatOmissionMarker(text.length - head.length - tail.length) + tail;
103546
103549
  }
103547
103550
  function replaceToolResultText(msg, text) {
103548
- const content = msg.content;
103551
+ const content = "content" in msg ? msg.content : void 0;
103549
103552
  const replacementContent = typeof content === "string" || content === void 0 ? text : [{
103550
103553
  type: "text",
103551
103554
  text
@@ -103557,68 +103560,89 @@ function replaceToolResultText(msg, text) {
103557
103560
  };
103558
103561
  }
103559
103562
  function truncateToolResultToChars(msg, maxChars, cache) {
103560
- if (!isToolResultMessage(msg)) return msg;
103561
103563
  if (estimateMessageCharsCached(msg, cache) <= maxChars) return msg;
103562
103564
  const rawText = getToolResultText(msg);
103563
103565
  if (!rawText) return replaceToolResultText(msg, CONTEXT_LIMIT_TRUNCATION_NOTICE);
103564
- return replaceToolResultText(msg, truncateTextToBudget(rawText, maxChars));
103565
- }
103566
- function compactExistingToolResultsInPlace(params) {
103567
- const { messages, charsNeeded, cache } = params;
103568
- if (charsNeeded <= 0) return 0;
103569
- let reduced = 0;
103570
- for (let i = 0; i < messages.length; i++) {
103571
- const msg = messages[i];
103572
- if (!isToolResultMessage(msg)) continue;
103573
- const before = estimateMessageCharsCached(msg, cache);
103574
- if (before <= 48) continue;
103575
- applyMessageMutationInPlace(msg, replaceToolResultText(msg, PREEMPTIVE_TOOL_RESULT_COMPACTION_PLACEHOLDER), cache);
103576
- const after = estimateMessageCharsCached(msg, cache);
103577
- if (after >= before) continue;
103578
- reduced += before - after;
103579
- if (reduced >= charsNeeded) break;
103580
- }
103581
- return reduced;
103582
- }
103583
- function applyMessageMutationInPlace(target, source, cache) {
103584
- if (target === source) return;
103585
- const targetRecord = target;
103586
- const sourceRecord = source;
103587
- for (const key of Object.keys(targetRecord)) if (!(key in sourceRecord)) delete targetRecord[key];
103588
- Object.assign(targetRecord, sourceRecord);
103589
- if (cache) invalidateMessageCharsCacheEntry(cache, target);
103590
- }
103591
- function enforceToolResultContextBudgetInPlace(params) {
103592
- const { messages, contextBudgetChars, maxSingleToolResultChars } = params;
103593
- const estimateCache = createMessageCharEstimateCache();
103594
- for (const message of messages) {
103566
+ return replaceToolResultText(msg, truncateTextHeadTail(rawText, Math.floor(maxChars / TOOL_RESULT_TEXT_WEIGHT)));
103567
+ }
103568
+ function enforceToolResultContextBudget(params) {
103569
+ const { messages, aggregateBudgetChars, maxSingleToolResultChars } = params;
103570
+ const cache = createMessageCharEstimateCache();
103571
+ const currentRoundStart = messages.findLastIndex((message) => message.role === "user") + 1;
103572
+ let guarded;
103573
+ let originalChars = 0;
103574
+ let totalChars = 0;
103575
+ let cappedCount = 0;
103576
+ const earlierRoundIndexes = [];
103577
+ for (const [index, message] of messages.entries()) {
103595
103578
  if (!isToolResultMessage(message)) continue;
103596
- applyMessageMutationInPlace(message, truncateToolResultToChars(message, maxSingleToolResultChars, estimateCache), estimateCache);
103597
- }
103598
- let currentChars = estimateContextChars(messages, estimateCache);
103599
- if (currentChars <= contextBudgetChars) return;
103600
- compactExistingToolResultsInPlace({
103579
+ originalChars += estimateMessageCharsCached(message, cache);
103580
+ const capped = truncateToolResultToChars(message, maxSingleToolResultChars, cache);
103581
+ if (capped !== message) {
103582
+ guarded ??= messages.slice();
103583
+ guarded[index] = capped;
103584
+ cappedCount += 1;
103585
+ }
103586
+ totalChars += estimateMessageCharsCached(capped, cache);
103587
+ if (index < currentRoundStart) earlierRoundIndexes.push(index);
103588
+ }
103589
+ const minTrimmedChars = MIN_TRIMMED_TOOL_RESULT_CHARS * TOOL_RESULT_TEXT_WEIGHT;
103590
+ let trimmedCount = 0;
103591
+ let clearedCount = 0;
103592
+ for (const clear of [false, true]) for (const index of earlierRoundIndexes) {
103593
+ if (totalChars <= aggregateBudgetChars) break;
103594
+ const current = (guarded ?? messages)[index];
103595
+ if (!current) continue;
103596
+ const before = estimateMessageCharsCached(current, cache);
103597
+ let next = current;
103598
+ if (clear) next = replaceToolResultText(current, PREEMPTIVE_TOOL_RESULT_COMPACTION_PLACEHOLDER);
103599
+ else if (before > minTrimmedChars) next = truncateToolResultToChars(current, Math.max(minTrimmedChars, before - (totalChars - aggregateBudgetChars)), cache);
103600
+ const after = estimateMessageCharsCached(next, cache);
103601
+ if (after >= before) continue;
103602
+ guarded ??= messages.slice();
103603
+ guarded[index] = next;
103604
+ totalChars -= before - after;
103605
+ if (clear) clearedCount += 1;
103606
+ else trimmedCount += 1;
103607
+ }
103608
+ if (!guarded) return messages;
103609
+ log$29.info("tool-result context guard reduced tool output", {
103610
+ aggregateBudgetChars,
103611
+ maxSingleToolResultChars,
103612
+ toolResultCharsBefore: originalChars,
103613
+ toolResultCharsAfter: totalChars,
103614
+ freedChars: originalChars - totalChars,
103615
+ cappedCount,
103616
+ trimmedCount,
103617
+ clearedCount,
103618
+ currentRoundToolResults: messages.slice(currentRoundStart).filter(isToolResultMessage).length
103619
+ });
103620
+ return guarded;
103621
+ }
103622
+ /**
103623
+ * Bounds tool-result text in a model-call message list without mutating it. Every result is
103624
+ * head/tail-capped to half the window; when all tool results together exceed half the window,
103625
+ * earlier-round results are trimmed (then, as a last resort, replaced) oldest-first. Results
103626
+ * after the last user message are never evicted for the aggregate budget.
103627
+ */
103628
+ function createToolResultContextGuard(params) {
103629
+ const contextWindowTokens = Math.max(1, Math.floor(params.contextWindowTokens));
103630
+ const aggregateBudgetChars = Math.max(1024, Math.floor(contextWindowTokens * CHARS_PER_TOKEN_ESTIMATE * AGGREGATE_TOOL_RESULT_CONTEXT_SHARE));
103631
+ const maxSingleToolResultChars = Math.max(1024, Math.floor(contextWindowTokens * TOOL_RESULT_CHARS_PER_TOKEN_ESTIMATE * SINGLE_TOOL_RESULT_CONTEXT_SHARE));
103632
+ return (messages) => enforceToolResultContextBudget({
103601
103633
  messages,
103602
- charsNeeded: currentChars - contextBudgetChars,
103603
- cache: estimateCache
103634
+ aggregateBudgetChars,
103635
+ maxSingleToolResultChars
103604
103636
  });
103605
103637
  }
103606
103638
  function installToolResultContextGuard(params) {
103607
- const contextWindowTokens = Math.max(1, Math.floor(params.contextWindowTokens));
103608
- const contextBudgetChars = Math.max(1024, Math.floor(contextWindowTokens * CHARS_PER_TOKEN_ESTIMATE * CONTEXT_INPUT_HEADROOM_RATIO));
103609
- const maxSingleToolResultChars = Math.max(1024, Math.floor(contextWindowTokens * TOOL_RESULT_CHARS_PER_TOKEN_ESTIMATE * SINGLE_TOOL_RESULT_CONTEXT_SHARE));
103639
+ const guard = createToolResultContextGuard(params);
103610
103640
  const mutableAgent = params.agent;
103611
103641
  const originalTransformContext = mutableAgent.transformContext;
103612
- mutableAgent.transformContext = (async (messages, signal) => {
103642
+ mutableAgent.transformContext = async (messages, signal) => {
103613
103643
  const transformed = originalTransformContext ? await originalTransformContext.call(mutableAgent, messages, signal) : messages;
103614
- const contextMessages = Array.isArray(transformed) ? transformed : messages;
103615
- enforceToolResultContextBudgetInPlace({
103616
- messages: contextMessages,
103617
- contextBudgetChars,
103618
- maxSingleToolResultChars
103619
- });
103620
- return contextMessages;
103621
- });
103644
+ return guard(Array.isArray(transformed) ? transformed : messages);
103645
+ };
103622
103646
  return () => {
103623
103647
  mutableAgent.transformContext = originalTransformContext;
103624
103648
  };
@@ -104950,7 +104974,7 @@ function installAttemptInputTransform(params) {
104950
104974
  }).catch((err) => {
104951
104975
  log$29.warn(`context projection artifact persist failed: ${String(err)}`);
104952
104976
  });
104953
- const finalMessages = await runTransformLlmInputHooks({
104977
+ const hookFinalMessages = await runTransformLlmInputHooks({
104954
104978
  messages: currentMessages,
104955
104979
  hookRunner: params.hookRunner,
104956
104980
  hookCtx: params.hookCtx,
@@ -104959,6 +104983,7 @@ function installAttemptInputTransform(params) {
104959
104983
  }).catch((err) => {
104960
104984
  log$29.warn(`transform_llm_input hook failed: ${String(err)}`);
104961
104985
  }) ?? currentMessages;
104986
+ const finalMessages = params.guardToolResults ? params.guardToolResults(hookFinalMessages) : hookFinalMessages;
104962
104987
  params.onFinalInputMessages?.(finalMessages);
104963
104988
  return finalMessages;
104964
104989
  };
@@ -105586,10 +105611,7 @@ async function runEmbeddedAttempt(params) {
105586
105611
  }));
105587
105612
  applySystemPromptOverrideToSession(session, systemPromptText);
105588
105613
  const activeSession = session;
105589
- removeToolResultContextGuard = installToolResultContextGuard({
105590
- agent: activeSession.agent,
105591
- contextWindowTokens: Math.max(1, Math.floor(params.model.contextWindow ?? params.model.maxTokens ?? DEFAULT_CONTEXT_TOKENS))
105592
- });
105614
+ const toolResultContextWindowTokens = Math.max(1, Math.floor(params.model.contextWindow ?? params.model.maxTokens ?? DEFAULT_CONTEXT_TOKENS));
105593
105615
  const cacheTrace = createCacheTrace({
105594
105616
  cfg: params.config,
105595
105617
  env: process.env,
@@ -106000,6 +106022,7 @@ async function runEmbeddedAttempt(params) {
106000
106022
  cleanUserText: params.prompt,
106001
106023
  provider: params.provider,
106002
106024
  modelId: params.modelId,
106025
+ guardToolResults: createToolResultContextGuard({ contextWindowTokens: toolResultContextWindowTokens }),
106003
106026
  onFinalInputMessages: (messages) => {
106004
106027
  modelCallContext.inputMessages = messages;
106005
106028
  modelCallContext.systemPrompt = systemPromptText;
@@ -106039,6 +106062,10 @@ async function runEmbeddedAttempt(params) {
106039
106062
  else await abortable(activeSession.prompt(params.prompt));
106040
106063
  } finally {
106041
106064
  removeAttemptInputTransform();
106065
+ removeToolResultContextGuard = installToolResultContextGuard({
106066
+ agent: activeSession.agent,
106067
+ contextWindowTokens: toolResultContextWindowTokens
106068
+ });
106042
106069
  }
106043
106070
  } catch (err) {
106044
106071
  promptError = err;