@xopcai/xopc 0.0.149 → 0.0.151

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 (2914) hide show
  1. package/README.md +10 -0
  2. package/README.zh-CN.md +10 -0
  3. package/dist/browser-ext/manifest.json +1 -1
  4. package/dist/extensions/dashscope/src/image-generation-provider.js +0 -2
  5. package/dist/extensions/demo-memory/src/index.js +0 -2
  6. package/dist/extensions/fal/src/image-generation-provider.js +0 -2
  7. package/dist/extensions/feishu/src/actions/message-action-handler.js +0 -2
  8. package/dist/extensions/feishu/src/adapters/cli-login.js +0 -2
  9. package/dist/extensions/feishu/src/adapters/gateway-setup.js +0 -2
  10. package/dist/extensions/feishu/src/adapters/onboard-cli.js +0 -2
  11. package/dist/extensions/feishu/src/auth/app-registration.js +0 -2
  12. package/dist/extensions/feishu/src/auth/pairing.js +0 -2
  13. package/dist/extensions/feishu/src/auth/paths.js +0 -2
  14. package/dist/extensions/feishu/src/directory/directory-adapter.js +0 -2
  15. package/dist/extensions/feishu/src/format.js +0 -2
  16. package/dist/extensions/feishu/src/index.js +0 -2
  17. package/dist/extensions/feishu/src/outbound/actions.js +0 -2
  18. package/dist/extensions/feishu/src/outbound/media-load.js +0 -2
  19. package/dist/extensions/feishu/src/outbound/outbound-adapter.js +0 -2
  20. package/dist/extensions/feishu/src/pairing/feishu-pairing-prompt.js +0 -2
  21. package/dist/extensions/feishu/src/pairing-config-resolver.js +0 -2
  22. package/dist/extensions/feishu/src/plugin.js +0 -2
  23. package/dist/extensions/feishu/src/schema/config-schema.js +0 -2
  24. package/dist/extensions/feishu/src/state/accounts.js +0 -2
  25. package/dist/extensions/feishu/src/state/message-bindings.js +0 -2
  26. package/dist/extensions/feishu/src/state/thread-bindings.js +0 -2
  27. package/dist/extensions/feishu/src/status/doctor.js +0 -2
  28. package/dist/extensions/feishu/src/status/status-adapter.js +0 -2
  29. package/dist/extensions/feishu/src/streaming/streaming-adapter.js +0 -2
  30. package/dist/extensions/feishu/src/subagent-hooks.js +0 -2
  31. package/dist/extensions/feishu/src/tools/docx/docx-batch-insert.js +0 -2
  32. package/dist/extensions/feishu/src/tools/docx/docx-color-text.d.ts +6 -3386
  33. package/dist/extensions/feishu/src/tools/docx/docx-color-text.js +0 -2
  34. package/dist/extensions/feishu/src/tools/docx/docx-table-ops.d.ts +16 -16927
  35. package/dist/extensions/feishu/src/tools/docx/docx-table-ops.js +0 -2
  36. package/dist/extensions/feishu/src/tools/tools.js +0 -2
  37. package/dist/extensions/feishu/src/transport/client/client.js +2 -4
  38. package/dist/extensions/feishu/src/transport/client/lark-sdk-logger.js +0 -2
  39. package/dist/extensions/feishu/src/transport/client/lark-sdk.d.ts +3 -0
  40. package/dist/extensions/feishu/src/transport/client/lark-sdk.js +14 -0
  41. package/dist/extensions/feishu/src/transport/reliability/dedupe.js +0 -2
  42. package/dist/extensions/feishu/src/transport/reliability/inbound-pipeline.js +0 -2
  43. package/dist/extensions/feishu/src/transport/socket-mode/monitor.js +0 -2
  44. package/dist/extensions/feishu/src/transport/socket-mode/retry.js +0 -2
  45. package/dist/extensions/feishu/src/transport/text/mentions.js +0 -2
  46. package/dist/extensions/feishu/src/transport/webhook/monitor.js +3 -5
  47. package/dist/extensions/feishu/src/ui/config-surface.js +0 -2
  48. package/dist/extensions/feishu/src/workflow-progress.js +0 -2
  49. package/dist/extensions/google/src/image-generation-provider.js +0 -2
  50. package/dist/extensions/minimax/src/image-generation-provider.js +0 -2
  51. package/dist/extensions/openai/src/image-generation-provider.js +0 -2
  52. package/dist/extensions/telegram/src/access-control.js +0 -2
  53. package/dist/extensions/telegram/src/account-manager.js +0 -2
  54. package/dist/extensions/telegram/src/actions/message-actions.js +0 -2
  55. package/dist/extensions/telegram/src/adapters/command-adapter.js +0 -2
  56. package/dist/extensions/telegram/src/adapters/config-adapter.js +0 -2
  57. package/dist/extensions/telegram/src/adapters/debounce-keys.js +0 -2
  58. package/dist/extensions/telegram/src/adapters/gateway-adapter.js +0 -2
  59. package/dist/extensions/telegram/src/adapters/gateway-setup.js +0 -2
  60. package/dist/extensions/telegram/src/adapters/inbound-access.js +0 -2
  61. package/dist/extensions/telegram/src/adapters/index.js +0 -2
  62. package/dist/extensions/telegram/src/adapters/onboard-cli.js +0 -2
  63. package/dist/extensions/telegram/src/adapters/outbound-adapter.js +0 -2
  64. package/dist/extensions/telegram/src/adapters/security-adapter.js +0 -2
  65. package/dist/extensions/telegram/src/adapters/setup-wizard.js +0 -2
  66. package/dist/extensions/telegram/src/adapters/status-adapter.js +0 -2
  67. package/dist/extensions/telegram/src/adapters/streaming-adapter.js +0 -2
  68. package/dist/extensions/telegram/src/api-root.js +0 -2
  69. package/dist/extensions/telegram/src/approval-delivery.js +0 -2
  70. package/dist/extensions/telegram/src/approval-store.js +0 -2
  71. package/dist/extensions/telegram/src/caption.js +0 -2
  72. package/dist/extensions/telegram/src/command-handler.js +0 -2
  73. package/dist/extensions/telegram/src/config-schema.js +0 -2
  74. package/dist/extensions/telegram/src/conversation-id.js +0 -2
  75. package/dist/extensions/telegram/src/dedupe.js +0 -2
  76. package/dist/extensions/telegram/src/delivery-chat-id.js +0 -2
  77. package/dist/extensions/telegram/src/doctor.js +0 -2
  78. package/dist/extensions/telegram/src/draft-stream-lifecycle.js +0 -2
  79. package/dist/extensions/telegram/src/draft-stream-loop.js +0 -2
  80. package/dist/extensions/telegram/src/draft-stream.js +0 -2
  81. package/dist/extensions/telegram/src/errors.js +0 -2
  82. package/dist/extensions/telegram/src/exec-approval-handler.js +0 -2
  83. package/dist/extensions/telegram/src/exec-approvals.js +0 -2
  84. package/dist/extensions/telegram/src/focus-handler.js +0 -2
  85. package/dist/extensions/telegram/src/format.js +0 -2
  86. package/dist/extensions/telegram/src/group-config-resolver.js +0 -2
  87. package/dist/extensions/telegram/src/inbound-coalescer.js +0 -2
  88. package/dist/extensions/telegram/src/inbound-processor.js +0 -2
  89. package/dist/extensions/telegram/src/index.js +0 -2
  90. package/dist/extensions/telegram/src/inline-keyboards.js +0 -2
  91. package/dist/extensions/telegram/src/network-errors.js +0 -2
  92. package/dist/extensions/telegram/src/outbound-sender.js +0 -2
  93. package/dist/extensions/telegram/src/pairing-config-resolver.js +0 -2
  94. package/dist/extensions/telegram/src/plugin-defaults.js +0 -2
  95. package/dist/extensions/telegram/src/plugin.js +0 -2
  96. package/dist/extensions/telegram/src/polling-session.js +0 -2
  97. package/dist/extensions/telegram/src/proxy-fetch.js +0 -2
  98. package/dist/extensions/telegram/src/reactions.js +0 -2
  99. package/dist/extensions/telegram/src/reply-params.js +0 -2
  100. package/dist/extensions/telegram/src/routing-integration.js +0 -2
  101. package/dist/extensions/telegram/src/send-options.js +0 -2
  102. package/dist/extensions/telegram/src/sent-cache.js +0 -2
  103. package/dist/extensions/telegram/src/startup-errors.js +0 -2
  104. package/dist/extensions/telegram/src/telegram-actions.js +0 -2
  105. package/dist/extensions/telegram/src/telegram-draft-errors.js +0 -2
  106. package/dist/extensions/telegram/src/thread-bindings.js +0 -2
  107. package/dist/extensions/telegram/src/timeout-abort.js +0 -2
  108. package/dist/extensions/telegram/src/token-resolver.js +0 -2
  109. package/dist/extensions/telegram/src/update-offset-store.js +0 -2
  110. package/dist/extensions/telegram/src/workflow-progress.js +0 -2
  111. package/dist/extensions/telegram/xopc.extension.json +1 -1
  112. package/dist/extensions/weixin/src/adapters/onboard-cli.js +0 -2
  113. package/dist/extensions/weixin/src/api/api.js +0 -2
  114. package/dist/extensions/weixin/src/api/config-cache.js +0 -2
  115. package/dist/extensions/weixin/src/api/session-guard.js +0 -2
  116. package/dist/extensions/weixin/src/api/types.js +0 -2
  117. package/dist/extensions/weixin/src/auth/accounts.js +0 -2
  118. package/dist/extensions/weixin/src/auth/login-qr.js +0 -2
  119. package/dist/extensions/weixin/src/auth/pairing.js +0 -2
  120. package/dist/extensions/weixin/src/auth/weixin-account-id.js +0 -2
  121. package/dist/extensions/weixin/src/cdn/aes-ecb.js +0 -2
  122. package/dist/extensions/weixin/src/cdn/cdn-upload.js +0 -2
  123. package/dist/extensions/weixin/src/cdn/cdn-url.js +0 -2
  124. package/dist/extensions/weixin/src/cdn/pic-decrypt.js +0 -2
  125. package/dist/extensions/weixin/src/cdn/upload.js +0 -2
  126. package/dist/extensions/weixin/src/cli/gateway-qr-login.js +0 -2
  127. package/dist/extensions/weixin/src/cli/qr-login.js +0 -2
  128. package/dist/extensions/weixin/src/config-schema.js +0 -2
  129. package/dist/extensions/weixin/src/config-surface.js +0 -2
  130. package/dist/extensions/weixin/src/delivery-to.js +0 -2
  131. package/dist/extensions/weixin/src/index.js +0 -2
  132. package/dist/extensions/weixin/src/media/data-url.js +0 -2
  133. package/dist/extensions/weixin/src/media/media-download.js +0 -2
  134. package/dist/extensions/weixin/src/media/mime.js +0 -2
  135. package/dist/extensions/weixin/src/media/silk-transcode.js +0 -2
  136. package/dist/extensions/weixin/src/messaging/context-token-init.js +0 -2
  137. package/dist/extensions/weixin/src/messaging/debug-mode.js +0 -2
  138. package/dist/extensions/weixin/src/messaging/error-notice.js +0 -2
  139. package/dist/extensions/weixin/src/messaging/inbound.js +0 -2
  140. package/dist/extensions/weixin/src/messaging/markdown-filter.js +0 -2
  141. package/dist/extensions/weixin/src/messaging/process-message.js +0 -2
  142. package/dist/extensions/weixin/src/messaging/send-media.js +0 -2
  143. package/dist/extensions/weixin/src/messaging/send.js +0 -2
  144. package/dist/extensions/weixin/src/messaging/slash-commands.js +0 -2
  145. package/dist/extensions/weixin/src/messaging/typing-ticket-store.js +0 -2
  146. package/dist/extensions/weixin/src/monitor/monitor.js +0 -2
  147. package/dist/extensions/weixin/src/outbound-send.js +0 -2
  148. package/dist/extensions/weixin/src/pairing-config-resolver.js +0 -2
  149. package/dist/extensions/weixin/src/plugin.js +0 -2
  150. package/dist/extensions/weixin/src/routing-integration.js +0 -2
  151. package/dist/extensions/weixin/src/storage/state-dir.js +0 -2
  152. package/dist/extensions/weixin/src/storage/sync-buf.js +0 -2
  153. package/dist/extensions/weixin/src/util/logger.js +0 -2
  154. package/dist/extensions/weixin/src/util/random.js +0 -2
  155. package/dist/extensions/weixin/src/util/redact.js +0 -2
  156. package/dist/extensions/weixin/src/workflow-progress.js +0 -2
  157. package/dist/gateway/static/root/assets/{activity-store-B4s0ipx2.js → activity-store-uu1xu9Pl.js} +1 -1
  158. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-BSccACje.js → agent-avatar-dicebear-BuO-OVfD.js} +1 -1
  159. package/dist/gateway/static/root/assets/agents-Bpv3h31T.js +2 -0
  160. package/dist/gateway/static/root/assets/{api-BMdUsNCV.js → api-CwL38LEV.js} +1 -1
  161. package/dist/gateway/static/root/assets/{app-management-settings-panel-DrLGhYkI.js → app-management-settings-panel-B6OU3Eol.js} +1 -1
  162. package/dist/gateway/static/root/assets/appearance-settings-BaP4GFvN.js +1 -0
  163. package/dist/gateway/static/root/assets/apps-page-DZKNIMRg.js +1 -0
  164. package/dist/gateway/static/root/assets/{archive-plugin-BQ17IK9x.js → archive-plugin-CJX3zIh_.js} +1 -1
  165. package/dist/gateway/static/root/assets/{attachment-load-HXvgWHXu.js → attachment-load-CI1ejk_l.js} +1 -1
  166. package/dist/gateway/static/root/assets/{automation-suggestion-card-CjIWpsch.js → automation-suggestion-card-CjmhICbv.js} +1 -1
  167. package/dist/gateway/static/root/assets/automations-page-BtZl3B8m.js +6 -0
  168. package/dist/gateway/static/root/assets/{binary-plugins-DifWJzNZ.js → binary-plugins-CZ8nOXqK.js} +1 -1
  169. package/dist/gateway/static/root/assets/{block-editor-DtRzIkPU.js → block-editor-BoSfyS_j.js} +46 -46
  170. package/dist/gateway/static/root/assets/browser-settings-page-CL1UiPcb.js +8 -0
  171. package/dist/gateway/static/root/assets/{capability-presets-api-DazKjWW1.js → capability-presets-api-XzDKxPZ8.js} +1 -1
  172. package/dist/gateway/static/root/assets/{capability-presets-settings-panel-Cvrw4fD1.js → capability-presets-settings-panel-Dc_uHYgl.js} +2 -2
  173. package/dist/gateway/static/root/assets/{channel-recipient-api-Bea6if_6.js → channel-recipient-api-DYLBAhFF.js} +1 -1
  174. package/dist/gateway/static/root/assets/channels-settings-mALvXpJj.js +1 -0
  175. package/dist/gateway/static/root/assets/channels-status-swr-CZuEsO5b.js +1 -0
  176. package/dist/gateway/static/root/assets/{connector-logo-BjbYbJjQ.js → connector-logo-BSjlInHT.js} +1 -1
  177. package/dist/gateway/static/root/assets/connectors-page-Cm_E3mmI.js +2 -0
  178. package/dist/gateway/static/root/assets/desktop-pet-DcJc91-C.js +1 -0
  179. package/dist/gateway/static/root/assets/desktop-pet-settings-CdeqTa3Q.js +1 -0
  180. package/dist/gateway/static/root/assets/{directory-picker-path-field-C8zZNUzC.js → directory-picker-path-field-Cp3fpm0k.js} +1 -1
  181. package/dist/gateway/static/root/assets/{dreaming-settings-gJSw7Adk.js → dreaming-settings-Bwj1O3zr.js} +3 -3
  182. package/dist/gateway/static/root/assets/{extension-debug-page-DFE5ADJ0.js → extension-debug-page-D_1xpKbZ.js} +1 -1
  183. package/dist/gateway/static/root/assets/{extension-page-CfR-aW8G.js → extension-page-CqZNCj96.js} +1 -1
  184. package/dist/gateway/static/root/assets/{extension-settings-page-CFIEbs2L.js → extension-settings-page-5MWbtQaQ.js} +1 -1
  185. package/dist/gateway/static/root/assets/{gateway-config-api-B6M_ra8U.js → gateway-config-api-Co_IaS34.js} +1 -1
  186. package/dist/gateway/static/root/assets/gateway-settings-kmeWm2Pt.js +1 -0
  187. package/dist/gateway/static/root/assets/{gateway-startup-retry-DNA3OOzV.js → gateway-startup-retry-BM_xvzl0.js} +1 -1
  188. package/dist/gateway/static/root/assets/goal-create-dialog-FoO-R4_U.js +1 -0
  189. package/dist/gateway/static/root/assets/goal-detail-page-CkJq7N5g.js +4 -0
  190. package/dist/gateway/static/root/assets/{goals-config-api-D88opgcs.js → goals-config-api-DrtsYjXz.js} +1 -1
  191. package/dist/gateway/static/root/assets/goals-page-DRAN-R64.js +2 -0
  192. package/dist/gateway/static/root/assets/{goals-settings-D07UL8Jo.js → goals-settings-wq9TKhIZ.js} +1 -1
  193. package/dist/gateway/static/root/assets/{heartbeat-settings-YCSNOcXC.js → heartbeat-settings-B5zDoHbo.js} +1 -1
  194. package/dist/gateway/static/root/assets/index-DIlxvrlG.css +1 -0
  195. package/dist/gateway/static/root/assets/index-apLU0Hun.js +196 -0
  196. package/dist/gateway/static/root/assets/keyboard-shortcuts-settings-3tC9iD21.js +1 -0
  197. package/dist/gateway/static/root/assets/local-app-workbench-page-CT-vDTLK.js +2 -0
  198. package/dist/gateway/static/root/assets/{local-apps-page-CKvtLzsF.js → local-apps-page-B9ruF9GV.js} +1 -1
  199. package/dist/gateway/static/root/assets/locale-store-GfSwnwIZ.js +1 -0
  200. package/dist/gateway/static/root/assets/logs-page-Ca1X8X2P.js +7 -0
  201. package/dist/gateway/static/root/assets/{markdown-split-BVSFG99p.js → markdown-split-CzuhSQAB.js} +1 -1
  202. package/dist/gateway/static/root/assets/{media-plugins-DdOjIVk3.js → media-plugins-a3R4y-EL.js} +1 -1
  203. package/dist/gateway/static/root/assets/messages-B0B40tpO.js +5 -0
  204. package/dist/gateway/static/root/assets/models-hub-panel-CbTlz9Of.js +2 -0
  205. package/dist/gateway/static/root/assets/{notes-page-ZbLR3awn.js → notes-page-BCxDy2dV.js} +1 -1
  206. package/dist/gateway/static/root/assets/notes-workbench-z6sBX9B2.js +4 -0
  207. package/dist/gateway/static/root/assets/{page-tabs-DMlQERNg.js → page-tabs-CJfk6M78.js} +1 -1
  208. package/dist/gateway/static/root/assets/{preview-open-alternatives-CbiJRPxK.js → preview-open-alternatives-MFopTSgF.js} +1 -1
  209. package/dist/gateway/static/root/assets/project-detail-page-DU29deIr.js +1 -0
  210. package/dist/gateway/static/root/assets/projects-page-Ck3DLTlZ.js +1 -0
  211. package/dist/gateway/static/root/assets/remote-access-hub-gLsLyAyi.js +1 -0
  212. package/dist/gateway/static/root/assets/{save-bar-controls-BZTj3hxl.js → save-bar-controls-D0uhU3Z8.js} +1 -1
  213. package/dist/gateway/static/root/assets/{schedule-field-CxYDObjT.js → schedule-field-NGOH-7wV.js} +1 -1
  214. package/dist/gateway/static/root/assets/{schema-form-CBbXgpKQ.js → schema-form-BJz5LoqG.js} +1 -1
  215. package/dist/gateway/static/root/assets/schemas-DgQq6Z5S.js +64 -0
  216. package/dist/gateway/static/root/assets/sessions-page-TmNoWpa_.js +1 -0
  217. package/dist/gateway/static/root/assets/settings-advanced-gate-CtPhh2m9.js +1 -0
  218. package/dist/gateway/static/root/assets/{settings-collapsible-section-BySKZ8rp.js → settings-collapsible-section-oDnUHnX_.js} +1 -1
  219. package/dist/gateway/static/root/assets/{settings-form-section-CjINay6t.js → settings-form-section-DND90dDt.js} +1 -1
  220. package/dist/gateway/static/root/assets/settings-loading-skeleton-CEJtaoQp.js +1 -0
  221. package/dist/gateway/static/root/assets/{settings-page-BNrVwuL7.js → settings-page-B1LJlRi9.js} +1 -1
  222. package/dist/gateway/static/root/assets/{settings-page-layout-HdlQOOqp.js → settings-page-layout-CsrLuDsW.js} +1 -1
  223. package/dist/gateway/static/root/assets/setup-status-panel-BPCJPHHY.js +1 -0
  224. package/dist/gateway/static/root/assets/{share-preview-page-DC-eQONB.js → share-preview-page-C1PwLh-p.js} +1 -1
  225. package/dist/gateway/static/root/assets/shares-settings-DCuqr7js.js +1 -0
  226. package/dist/gateway/static/root/assets/skill-reload-api-kn1Vypcy.js +1 -0
  227. package/dist/gateway/static/root/assets/skills-page-k6VIqTkK.js +2 -0
  228. package/dist/gateway/static/root/assets/{system-settings-panel-CVa90q2f.js → system-settings-panel-BEsrEkSx.js} +1 -1
  229. package/dist/gateway/static/root/assets/{theme-store-D1cOpgsy.js → theme-store-Bi6hMBDb.js} +1 -1
  230. package/dist/gateway/static/root/assets/{typed-models-lib-DIKF9vpz.js → typed-models-lib-dOypdlMf.js} +1 -1
  231. package/dist/gateway/static/root/assets/{use-channel-catalog-DnvpI0Ys.js → use-channel-catalog-f8A-PVuq.js} +1 -1
  232. package/dist/gateway/static/root/assets/user-context-page-B9Y_Ciav.js +1 -0
  233. package/dist/gateway/static/root/assets/{user-profile-fields-editor-y8gTmkPX.js → user-profile-fields-editor-DGC38Lx7.js} +1 -1
  234. package/dist/gateway/static/root/assets/{user-profile-settings-panel-C3pvqe28.js → user-profile-settings-panel-DFkZ-tan.js} +1 -1
  235. package/dist/gateway/static/root/assets/{utils-BK2vwu_3.js → utils-CEIYZihF.js} +1 -1
  236. package/dist/gateway/static/root/assets/voice-api-key-field-DK6gaQsA.js +1 -0
  237. package/dist/gateway/static/root/assets/work-discovery-page-DSJb9Kq7.js +1 -0
  238. package/dist/gateway/static/root/assets/work-item-detail-page-DVavwV3D.js +1 -0
  239. package/dist/gateway/static/root/assets/work-page-foJDp0nz.js +1 -0
  240. package/dist/gateway/static/root/assets/workflow-run-setup-panel-BYqZpFCC.js +3 -0
  241. package/dist/gateway/static/root/assets/workflows-page-DgO0WAzs.js +11 -0
  242. package/dist/gateway/static/root/favicon.svg +1 -187
  243. package/dist/gateway/static/root/index.html +8 -7
  244. package/dist/gateway/static/root/logo-dark.svg +1 -185
  245. package/dist/gateway/static/root/logo.svg +1 -185
  246. package/dist/package.js +1 -3
  247. package/dist/src/activity/context.js +0 -2
  248. package/dist/src/activity/emitter.js +0 -2
  249. package/dist/src/activity/service.js +0 -2
  250. package/dist/src/agent/agent-manager.d.ts +1 -0
  251. package/dist/src/agent/agent-manager.js +1 -2
  252. package/dist/src/agent/agent-scope.js +0 -2
  253. package/dist/src/agent/background-review/coordinator.js +0 -2
  254. package/dist/src/agent/background-review/prompts.js +0 -2
  255. package/dist/src/agent/background-review/run-background-review.js +0 -2
  256. package/dist/src/agent/background-review/settings.js +0 -2
  257. package/dist/src/agent/bootstrap/bootstrap-cache.js +0 -2
  258. package/dist/src/agent/bootstrap/bootstrap-context.js +0 -2
  259. package/dist/src/agent/bootstrap/bootstrap-files.js +0 -2
  260. package/dist/src/agent/bootstrap/filter-bootstrap-files.js +0 -2
  261. package/dist/src/agent/bootstrap/load-bootstrap-files.js +0 -2
  262. package/dist/src/agent/bootstrap/project-agents-context.js +0 -2
  263. package/dist/src/agent/capabilities/definitions.js +0 -2
  264. package/dist/src/agent/capabilities/registry.js +0 -2
  265. package/dist/src/agent/child-agent-factory.js +0 -2
  266. package/dist/src/agent/client-error-format.js +0 -2
  267. package/dist/src/agent/code-intelligence/binary.js +0 -2
  268. package/dist/src/agent/code-intelligence/runtime.js +0 -2
  269. package/dist/src/agent/code-intelligence/tools.js +0 -2
  270. package/dist/src/agent/coding/turn-diff-tracker.js +0 -2
  271. package/dist/src/agent/context/expand-at-file-mentions.js +0 -2
  272. package/dist/src/agent/context/project-context.js +0 -2
  273. package/dist/src/agent/context/workspace-seed.js +0 -2
  274. package/dist/src/agent/context/workspace-state.js +0 -2
  275. package/dist/src/agent/context/workspace.js +0 -2
  276. package/dist/src/agent/embedded/run-for-session.js +0 -2
  277. package/dist/src/agent/embedded/run-turn.js +0 -2
  278. package/dist/src/agent/embedded/runs.js +0 -2
  279. package/dist/src/agent/embedded/session-manager-init.js +0 -2
  280. package/dist/src/agent/embedded/session-runner.js +0 -2
  281. package/dist/src/agent/embedded/session-tool-result-guard.js +0 -2
  282. package/dist/src/agent/embedded/sqlite-hydrating-session-manager.js +0 -2
  283. package/dist/src/agent/embedded/subscribe-session.js +0 -2
  284. package/dist/src/agent/embedded/system-prompt-override.js +0 -2
  285. package/dist/src/agent/embedded/tool-result-context-guard.js +0 -2
  286. package/dist/src/agent/embedded/tool-result-truncation.js +0 -2
  287. package/dist/src/agent/embedded/xopc-auth-storage.js +0 -2
  288. package/dist/src/agent/embedded/xopc-stream-bridge.js +0 -2
  289. package/dist/src/agent/embedded/xopc-tools-bridge.js +0 -2
  290. package/dist/src/agent/failover-error.js +0 -2
  291. package/dist/src/agent/fallback/candidates.js +0 -2
  292. package/dist/src/agent/fallback/reason.js +0 -2
  293. package/dist/src/agent/feedback/feedback-coordinator.js +0 -2
  294. package/dist/src/agent/goals/checklist-judge.js +0 -2
  295. package/dist/src/agent/goals/checklist-types.js +0 -2
  296. package/dist/src/agent/goals/evaluate-turn.js +0 -2
  297. package/dist/src/agent/goals/goal-locale.js +0 -2
  298. package/dist/src/agent/goals/judge.js +0 -2
  299. package/dist/src/agent/goals/persistent-goal-service.js +0 -2
  300. package/dist/src/agent/goals/post-turn.js +0 -2
  301. package/dist/src/agent/goals/state.js +0 -2
  302. package/dist/src/agent/image/generation/bundled-registry.js +0 -2
  303. package/dist/src/agent/image/generation/bundled.js +0 -2
  304. package/dist/src/agent/image/generation/image-assets.js +0 -2
  305. package/dist/src/agent/image/generation/model-ref.js +0 -2
  306. package/dist/src/agent/image/generation/normalization.js +0 -2
  307. package/dist/src/agent/image/generation/openai-compatible-image-provider.js +0 -2
  308. package/dist/src/agent/image/generation/provider-registry.js +0 -2
  309. package/dist/src/agent/image/generation/runtime.js +0 -2
  310. package/dist/src/agent/image/image-helpers.js +0 -2
  311. package/dist/src/agent/image/image-model-fallback.js +0 -2
  312. package/dist/src/agent/image/inbound-image-handling.js +0 -2
  313. package/dist/src/agent/image/load-image-media.js +0 -2
  314. package/dist/src/agent/image/tool-model-config.js +0 -2
  315. package/dist/src/agent/image/understanding/pi-ai-provider.js +0 -2
  316. package/dist/src/agent/image/understanding/provider-registry.js +0 -2
  317. package/dist/src/agent/image/understanding/runtime.js +0 -2
  318. package/dist/src/agent/image/vision-detection.js +0 -2
  319. package/dist/src/agent/inbound/attachment-pipeline.js +0 -2
  320. package/dist/src/agent/inbound/inbound-loop.js +0 -2
  321. package/dist/src/agent/inbound/turn-dispatcher.js +0 -2
  322. package/dist/src/agent/ipc/bus.js +0 -2
  323. package/dist/src/agent/ipc/inbox.js +0 -2
  324. package/dist/src/agent/ipc/socket.js +0 -2
  325. package/dist/src/agent/ipc/types.js +0 -2
  326. package/dist/src/agent/lifecycle/handlers/compaction.js +0 -2
  327. package/dist/src/agent/lifecycle/hook-handler.js +0 -2
  328. package/dist/src/agent/lifecycle/manager.js +0 -2
  329. package/dist/src/agent/lifecycle/progress.js +0 -2
  330. package/dist/src/agent/lifecycle/timeout-wrapper.js +0 -2
  331. package/dist/src/agent/lifecycle/typing.js +0 -2
  332. package/dist/src/agent/mcp/bundle-mcp-config.js +0 -2
  333. package/dist/src/agent/mcp/bundle-mcp-materialize.js +0 -2
  334. package/dist/src/agent/mcp/bundle-mcp-names.js +0 -2
  335. package/dist/src/agent/mcp/bundle-mcp-policy.js +0 -2
  336. package/dist/src/agent/mcp/bundle-mcp-runtime.js +0 -2
  337. package/dist/src/agent/mcp/embedded-mcp.js +0 -2
  338. package/dist/src/agent/mcp/mcp-config-shared.js +0 -2
  339. package/dist/src/agent/mcp/mcp-http.js +0 -2
  340. package/dist/src/agent/mcp/mcp-stdio-transport.js +0 -2
  341. package/dist/src/agent/mcp/mcp-stdio.js +0 -2
  342. package/dist/src/agent/mcp/mcp-tool-meta.js +0 -2
  343. package/dist/src/agent/mcp/mcp-transport-config.js +0 -2
  344. package/dist/src/agent/mcp/mcp-transport.js +0 -2
  345. package/dist/src/agent/mcp/resolve-embedded-mcp-tools.js +0 -2
  346. package/dist/src/agent/media-generation/model-ref.js +0 -2
  347. package/dist/src/agent/media-generation/normalization.types.js +0 -2
  348. package/dist/src/agent/media-generation/runtime-shared.js +0 -2
  349. package/dist/src/agent/memory/agent-message-access.js +0 -2
  350. package/dist/src/agent/memory/builtin-memory-store.js +0 -2
  351. package/dist/src/agent/memory/builtin-provider.js +0 -2
  352. package/dist/src/agent/memory/compaction.js +0 -2
  353. package/dist/src/agent/memory/context/planner.js +0 -2
  354. package/dist/src/agent/memory/context-fence.js +0 -2
  355. package/dist/src/agent/memory/create-memory-manager.js +0 -2
  356. package/dist/src/agent/memory/dreaming/config.js +0 -2
  357. package/dist/src/agent/memory/dreaming/constants.js +0 -2
  358. package/dist/src/agent/memory/dreaming/deep-promotion.js +0 -2
  359. package/dist/src/agent/memory/dreaming/events.js +0 -2
  360. package/dist/src/agent/memory/dreaming/last-run.js +0 -2
  361. package/dist/src/agent/memory/dreaming/light-sweep.js +0 -2
  362. package/dist/src/agent/memory/dreaming/preview.js +0 -2
  363. package/dist/src/agent/memory/dreaming/promotion-lifecycle.js +0 -2
  364. package/dist/src/agent/memory/dreaming/rem-patterns.js +0 -2
  365. package/dist/src/agent/memory/dreaming/scope.js +0 -2
  366. package/dist/src/agent/memory/dreaming/short-term-store.js +0 -2
  367. package/dist/src/agent/memory/dreaming/utils.js +0 -2
  368. package/dist/src/agent/memory/lifecycle.js +0 -2
  369. package/dist/src/agent/memory/manager.js +0 -2
  370. package/dist/src/agent/memory/memory-config.js +0 -2
  371. package/dist/src/agent/memory/message-sanitizer.js +0 -2
  372. package/dist/src/agent/memory/plugin-discovery.js +0 -2
  373. package/dist/src/agent/memory/sensitivity.js +0 -2
  374. package/dist/src/agent/memory/source-origin.js +0 -2
  375. package/dist/src/agent/memory/stub-memory-provider.js +0 -2
  376. package/dist/src/agent/memory/summary-generator.js +0 -2
  377. package/dist/src/agent/memory/understanding/correction.js +0 -2
  378. package/dist/src/agent/memory/understanding/quality.js +0 -2
  379. package/dist/src/agent/memory/understanding/service.js +0 -2
  380. package/dist/src/agent/memory/user-context-coordinator.js +0 -2
  381. package/dist/src/agent/memory/user-message-text.js +0 -2
  382. package/dist/src/agent/memory/window.js +0 -2
  383. package/dist/src/agent/messaging/command-handler.js +0 -2
  384. package/dist/src/agent/messaging/message-router.js +0 -2
  385. package/dist/src/agent/messaging/outbound-coordinator.js +0 -2
  386. package/dist/src/agent/messaging/stream-manager.js +0 -2
  387. package/dist/src/agent/middleware/context.js +0 -2
  388. package/dist/src/agent/middleware/self-verify.js +0 -2
  389. package/dist/src/agent/models/manager.js +0 -2
  390. package/dist/src/agent/models/request-limiter.js +0 -2
  391. package/dist/src/agent/models/selection.js +0 -2
  392. package/dist/src/agent/orchestration/agent-event-handler.js +0 -2
  393. package/dist/src/agent/orchestration/agent-orchestrator.js +0 -2
  394. package/dist/src/agent/orchestration/llm-turn-retry.js +0 -2
  395. package/dist/src/agent/orchestration/loop-guard.js +0 -2
  396. package/dist/src/agent/orchestration/run-agent-turn-with-timeout.js +0 -2
  397. package/dist/src/agent/prompt/cache-boundary.js +0 -2
  398. package/dist/src/agent/prompt/memory/index.js +0 -2
  399. package/dist/src/agent/prompt/safety.js +0 -2
  400. package/dist/src/agent/prompt/sanitize-for-prompt.js +0 -2
  401. package/dist/src/agent/prompt/sections/behavior.js +0 -2
  402. package/dist/src/agent/prompt/sections/memory-skills.js +0 -2
  403. package/dist/src/agent/prompt/sections/messaging-runtime.js +0 -2
  404. package/dist/src/agent/prompt/sections/project-context.js +0 -2
  405. package/dist/src/agent/prompt/sections/tooling.js +0 -2
  406. package/dist/src/agent/prompt/sections/workspace-runtime.js +0 -2
  407. package/dist/src/agent/prompt/service-prompt-builder.js +0 -2
  408. package/dist/src/agent/prompt/subagent-context.js +0 -2
  409. package/dist/src/agent/prompt/system-prompt-params.js +0 -2
  410. package/dist/src/agent/prompt/system-prompt.js +0 -2
  411. package/dist/src/agent/prompt/system-reminder.js +0 -2
  412. package/dist/src/agent/reply/apply-turn-user-enrichment.js +0 -2
  413. package/dist/src/agent/reply/post-compaction-context.js +0 -2
  414. package/dist/src/agent/reply/startup-context.js +0 -2
  415. package/dist/src/agent/reply/workspace-boundary-read.js +0 -2
  416. package/dist/src/agent/sandbox/command-validator.js +0 -2
  417. package/dist/src/agent/sandbox/exec-policy.js +0 -2
  418. package/dist/src/agent/sandbox/path-policy.js +0 -2
  419. package/dist/src/agent/sandbox/sanitize-env-vars.js +0 -2
  420. package/dist/src/agent/sandbox/types.js +0 -2
  421. package/dist/src/agent/service/async-queue.js +0 -2
  422. package/dist/src/agent/service/btw-query.js +0 -2
  423. package/dist/src/agent/service/build-direct-message-content.js +0 -2
  424. package/dist/src/agent/service/direct-turn-helpers.js +0 -2
  425. package/dist/src/agent/service/parse-outbound-session-key.js +0 -2
  426. package/dist/src/agent/service/process-direct-one-shot.js +0 -2
  427. package/dist/src/agent/service/process-direct-streaming.js +0 -2
  428. package/dist/src/agent/service/session-context-report.js +0 -2
  429. package/dist/src/agent/service/webchat-tts.js +0 -2
  430. package/dist/src/agent/service-inbound-utils.js +0 -2
  431. package/dist/src/agent/service.js +1 -2
  432. package/dist/src/agent/service.types.d.ts +2 -0
  433. package/dist/src/agent/session/session-config-service.js +0 -2
  434. package/dist/src/agent/session/session-context.js +0 -2
  435. package/dist/src/agent/session/session-hydrator.js +0 -2
  436. package/dist/src/agent/session/session-inspector.js +0 -2
  437. package/dist/src/agent/session/session-lifecycle.js +0 -2
  438. package/dist/src/agent/session/session-state-bag.js +0 -2
  439. package/dist/src/agent/session/tracker.js +0 -2
  440. package/dist/src/agent/skills/config.js +0 -2
  441. package/dist/src/agent/skills/filesystem-watcher.js +0 -2
  442. package/dist/src/agent/skills/format-skills-prompt.js +0 -2
  443. package/dist/src/agent/skills/hub-hash.js +0 -2
  444. package/dist/src/agent/skills/hub-lock.js +0 -2
  445. package/dist/src/agent/skills/hub-pull.js +0 -2
  446. package/dist/src/agent/skills/index.js +0 -2
  447. package/dist/src/agent/skills/install-target.js +0 -2
  448. package/dist/src/agent/skills/installer.js +0 -2
  449. package/dist/src/agent/skills/managed-store.js +0 -2
  450. package/dist/src/agent/skills/marketplace/adapters/clawhub/adapter.js +0 -2
  451. package/dist/src/agent/skills/marketplace/adapters/skillhub/adapter.js +0 -2
  452. package/dist/src/agent/skills/marketplace/adapters/store/adapter.js +0 -2
  453. package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.js +0 -2
  454. package/dist/src/agent/skills/marketplace/marketplace-category-order.js +0 -2
  455. package/dist/src/agent/skills/marketplace/registry.js +0 -2
  456. package/dist/src/agent/skills/marketplace/resolve-adapter.js +0 -2
  457. package/dist/src/agent/skills/parse-skill-metadata.js +0 -2
  458. package/dist/src/agent/skills/required-env-vars.js +0 -2
  459. package/dist/src/agent/skills/scanner.js +0 -2
  460. package/dist/src/agent/skills/skill-manage-ops.js +0 -2
  461. package/dist/src/agent/skills/skill-manager.js +0 -2
  462. package/dist/src/agent/skills/skill-markdown-preview-from-raw.js +0 -2
  463. package/dist/src/agent/skills/skill-tool-gating.js +0 -2
  464. package/dist/src/agent/skills/skill-view-path.js +0 -2
  465. package/dist/src/agent/skills/skills-marketplace.js +0 -2
  466. package/dist/src/agent/skills/test-framework.js +0 -2
  467. package/dist/src/agent/skills/watcher.js +0 -2
  468. package/dist/src/agent/skills/workspace-skills-dir.js +0 -2
  469. package/dist/src/agent/source-context/injector.js +0 -2
  470. package/dist/src/agent/source-context/types.js +0 -2
  471. package/dist/src/agent/starter-agents.js +0 -2
  472. package/dist/src/agent/streaming/reasoning-visibility-sse.js +0 -2
  473. package/dist/src/agent/tool-manuals/browser.js +0 -2
  474. package/dist/src/agent/tool-manuals/index.js +0 -2
  475. package/dist/src/agent/tool-manuals/xopc-use.d.ts +1 -1
  476. package/dist/src/agent/tool-manuals/xopc-use.js +41 -4
  477. package/dist/src/agent/tools/apply-patch.js +0 -2
  478. package/dist/src/agent/tools/automation-tool.js +45 -8
  479. package/dist/src/agent/tools/browser/tool/browser-use-tool.js +0 -2
  480. package/dist/src/agent/tools/browser/tool/schemas.js +0 -2
  481. package/dist/src/agent/tools/chain-tracker.js +0 -2
  482. package/dist/src/agent/tools/clarify-tool.js +0 -2
  483. package/dist/src/agent/tools/cli-clarify.js +0 -2
  484. package/dist/src/agent/tools/communication.js +0 -2
  485. package/dist/src/agent/tools/composio-tool.js +0 -2
  486. package/dist/src/agent/tools/concurrency.js +0 -2
  487. package/dist/src/agent/tools/create-share-tool.js +0 -2
  488. package/dist/src/agent/tools/curated-memory-tool.js +0 -2
  489. package/dist/src/agent/tools/delegate-tool.js +0 -2
  490. package/dist/src/agent/tools/desktop-pet-tool.d.ts +12 -0
  491. package/dist/src/agent/tools/desktop-pet-tool.js +28 -2
  492. package/dist/src/agent/tools/dreaming-tool.js +0 -2
  493. package/dist/src/agent/tools/edit-diff.js +0 -2
  494. package/dist/src/agent/tools/error-pattern-matcher.js +0 -2
  495. package/dist/src/agent/tools/error-tracker.js +0 -2
  496. package/dist/src/agent/tools/exec-command.js +0 -2
  497. package/dist/src/agent/tools/execute-code-tool.js +0 -2
  498. package/dist/src/agent/tools/executor.js +0 -2
  499. package/dist/src/agent/tools/factory.d.ts +2 -0
  500. package/dist/src/agent/tools/factory.js +3 -4
  501. package/dist/src/agent/tools/find.js +0 -2
  502. package/dist/src/agent/tools/goal-evidence-recorder.js +0 -2
  503. package/dist/src/agent/tools/goal-tool.d.ts +7 -1
  504. package/dist/src/agent/tools/goal-tool.js +34 -7
  505. package/dist/src/agent/tools/grep.js +0 -2
  506. package/dist/src/agent/tools/image-generate-tool.js +0 -2
  507. package/dist/src/agent/tools/image-tool.js +0 -2
  508. package/dist/src/agent/tools/list-dir.js +0 -2
  509. package/dist/src/agent/tools/media-read-tool.js +0 -2
  510. package/dist/src/agent/tools/memory-tool.js +0 -2
  511. package/dist/src/agent/tools/metadata.js +0 -2
  512. package/dist/src/agent/tools/read.js +0 -2
  513. package/dist/src/agent/tools/search/http.js +0 -2
  514. package/dist/src/agent/tools/search/providers/bing-api.js +0 -2
  515. package/dist/src/agent/tools/search/providers/bing-html.js +0 -2
  516. package/dist/src/agent/tools/search/providers/brave.js +0 -2
  517. package/dist/src/agent/tools/search/providers/duckduckgo-html.js +0 -2
  518. package/dist/src/agent/tools/search/providers/searxng.js +0 -2
  519. package/dist/src/agent/tools/search/providers/tavily.js +0 -2
  520. package/dist/src/agent/tools/search/region.js +0 -2
  521. package/dist/src/agent/tools/search/registry.js +0 -2
  522. package/dist/src/agent/tools/search/resolve-config.js +0 -2
  523. package/dist/src/agent/tools/send-media.js +0 -2
  524. package/dist/src/agent/tools/session-search-tool.js +0 -2
  525. package/dist/src/agent/tools/session-status-tool.js +0 -2
  526. package/dist/src/agent/tools/skill-install-tool.js +0 -2
  527. package/dist/src/agent/tools/skill-manage-tool.js +0 -2
  528. package/dist/src/agent/tools/skills-tools.js +0 -2
  529. package/dist/src/agent/tools/structured-output.js +0 -2
  530. package/dist/src/agent/tools/todo-tool.js +0 -2
  531. package/dist/src/agent/tools/tool-manual-tool.js +0 -2
  532. package/dist/src/agent/tools/tool-paths.js +0 -2
  533. package/dist/src/agent/tools/truncate.js +0 -2
  534. package/dist/src/agent/tools/tts-tool.js +0 -2
  535. package/dist/src/agent/tools/update-plan-tool.js +0 -2
  536. package/dist/src/agent/tools/url-safety.js +0 -2
  537. package/dist/src/agent/tools/usage-analyzer.js +0 -2
  538. package/dist/src/agent/tools/web-extract.js +0 -2
  539. package/dist/src/agent/tools/web.js +4 -4
  540. package/dist/src/agent/tools/workflow-tool.js +32 -4
  541. package/dist/src/agent/tools/write.js +23 -5
  542. package/dist/src/agent/tools/xopc-use-tool.d.ts +6 -2
  543. package/dist/src/agent/tools/xopc-use-tool.js +216 -8
  544. package/dist/src/agent/transcript/google-api.js +0 -2
  545. package/dist/src/agent/transcript/model-selection.js +0 -2
  546. package/dist/src/agent/transcript/provider-capabilities.js +0 -2
  547. package/dist/src/agent/transcript/session-transcript-repair.js +0 -2
  548. package/dist/src/agent/transcript/strip-tool-messages.js +0 -2
  549. package/dist/src/agent/transcript/thinking-types.js +0 -2
  550. package/dist/src/agent/transcript/thinking.js +0 -2
  551. package/dist/src/agent/transcript/tool-call-id.js +0 -2
  552. package/dist/src/agent/transcript/transcript-hygiene.js +0 -2
  553. package/dist/src/agent/transcript/transcript-policy.js +0 -2
  554. package/dist/src/agent/workflow/agent-progress.js +0 -2
  555. package/dist/src/agent/workflow/builtins/index.js +0 -2
  556. package/dist/src/agent/workflow/catalog.js +0 -2
  557. package/dist/src/agent/workflow/progress-broker.js +0 -2
  558. package/dist/src/agent/workflow/snapshot-empty.js +0 -2
  559. package/dist/src/agent/workflow/snapshot.js +0 -2
  560. package/dist/src/agent/workflow/step-labels.js +0 -2
  561. package/dist/src/agent/workflow/structured-output-tool.js +0 -2
  562. package/dist/src/agent/workflow/subagent-runner.js +0 -2
  563. package/dist/src/agent/workflow/workflow-child-tools.js +0 -2
  564. package/dist/src/agent/workspace-runtime/registry.js +0 -2
  565. package/dist/src/agent-manifest/index.js +0 -2
  566. package/dist/src/agent-manifest/preset-chain.js +0 -2
  567. package/dist/src/agent-manifest/prompt.js +0 -2
  568. package/dist/src/agent-manifest/resolver.js +0 -2
  569. package/dist/src/agent-manifest/schema.js +0 -2
  570. package/dist/src/agent-manifest/validator.js +0 -2
  571. package/dist/src/agent-runtime/boundary-guard.js +0 -2
  572. package/dist/src/agent-runtime/memory-runtime.js +0 -2
  573. package/dist/src/agent-runtime/model-router.js +0 -2
  574. package/dist/src/agent-runtime/run-trace.js +0 -2
  575. package/dist/src/agent-runtime/runtime-profile.js +0 -2
  576. package/dist/src/agent-runtime/tool-registry.js +0 -2
  577. package/dist/src/agent-runtime/workflow-runtime.js +0 -2
  578. package/dist/src/ai-assist/text-assist.js +0 -2
  579. package/dist/src/auth/credentials.js +0 -2
  580. package/dist/src/auth/index.js +0 -2
  581. package/dist/src/auth/oauth/anthropic.js +0 -2
  582. package/dist/src/auth/oauth/github-copilot.js +0 -2
  583. package/dist/src/auth/oauth/google-oauth/google-antigravity.js +0 -2
  584. package/dist/src/auth/oauth/google-oauth/google-gemini-cli.js +0 -2
  585. package/dist/src/auth/oauth/google-oauth/oauth-page.js +0 -2
  586. package/dist/src/auth/oauth/google-oauth/pkce.js +0 -2
  587. package/dist/src/auth/oauth/kimi-coding.js +0 -2
  588. package/dist/src/auth/oauth/minimax-cn.js +0 -2
  589. package/dist/src/auth/oauth/minimax.js +0 -2
  590. package/dist/src/auth/oauth/openai-codex.js +0 -2
  591. package/dist/src/auth/oauth/pkce.js +0 -2
  592. package/dist/src/auth/profiles/oauth.js +0 -2
  593. package/dist/src/auth/profiles/order.js +0 -2
  594. package/dist/src/auth/profiles/profiles.js +0 -2
  595. package/dist/src/auth/profiles/store.js +0 -2
  596. package/dist/src/auth/sync-provider-auth.js +0 -2
  597. package/dist/src/automations/api/routes.js +0 -2
  598. package/dist/src/automations/domain/schedule.js +0 -2
  599. package/dist/src/automations/domain/validation.js +0 -2
  600. package/dist/src/automations/draft/automation-draft-prompt.js +0 -2
  601. package/dist/src/automations/draft/automation-draft-service.js +0 -2
  602. package/dist/src/automations/draft/automation-draft-validator.js +0 -2
  603. package/dist/src/automations/product-events.js +0 -2
  604. package/dist/src/automations/service/action-executor.js +0 -2
  605. package/dist/src/automations/service/automation-service.js +0 -2
  606. package/dist/src/automations/storage/automation-repository.js +0 -2
  607. package/dist/src/automations/storage/automation-run-repository.js +0 -2
  608. package/dist/src/browser/actions/extension-registry-bridge.js +0 -2
  609. package/dist/src/browser/actions/registry.js +0 -2
  610. package/dist/src/browser/backend-from-config.js +0 -2
  611. package/dist/src/browser/browser-command-timeout.js +0 -2
  612. package/dist/src/browser/cache-dir-policy.js +0 -2
  613. package/dist/src/browser/cdp-local-launcher.js +0 -2
  614. package/dist/src/browser/cdp-supervisor.js +0 -2
  615. package/dist/src/browser/free-port.js +0 -2
  616. package/dist/src/browser/humanize.js +0 -2
  617. package/dist/src/browser/install-lock.js +0 -2
  618. package/dist/src/browser/manager.js +0 -2
  619. package/dist/src/browser/pipeline/output.js +0 -2
  620. package/dist/src/browser/pipeline/runner.js +0 -2
  621. package/dist/src/browser/pipeline/schema.js +0 -2
  622. package/dist/src/browser/pipeline/source.js +0 -2
  623. package/dist/src/browser/pipeline/template.js +0 -2
  624. package/dist/src/browser/providers/browser-ext-install.js +0 -2
  625. package/dist/src/browser/providers/browser-use.js +0 -2
  626. package/dist/src/browser/providers/browserbase.js +0 -2
  627. package/dist/src/browser/providers/cloakbrowser.js +0 -2
  628. package/dist/src/browser/providers/extension-ws-acquire.js +0 -2
  629. package/dist/src/browser/providers/extension.js +0 -2
  630. package/dist/src/browser/providers/playwright-doctor.js +13 -4
  631. package/dist/src/browser/providers/playwright-install.js +0 -2
  632. package/dist/src/browser/readiness.js +0 -2
  633. package/dist/src/browser/schemas.js +0 -2
  634. package/dist/src/browser/session-lifecycle.js +0 -2
  635. package/dist/src/browser/snapshot-helpers.js +0 -2
  636. package/dist/src/browser/stealth.js +0 -2
  637. package/dist/src/browser/url-policy.js +0 -2
  638. package/dist/src/capabilities/store-connector.js +0 -2
  639. package/dist/src/channels/attachments/attachment-classifiers.js +0 -2
  640. package/dist/src/channels/attachments/inbound-persist.js +0 -2
  641. package/dist/src/channels/attachments/inbound-types.js +0 -2
  642. package/dist/src/channels/attachments/outbound-tts-persist.js +0 -2
  643. package/dist/src/channels/attachments/voice-stt-webchat.js +0 -2
  644. package/dist/src/channels/catalog/channel-catalog-service.js +0 -2
  645. package/dist/src/channels/config-helpers.js +0 -2
  646. package/dist/src/channels/envelope-timestamp.js +0 -2
  647. package/dist/src/channels/exec-approval-runtime.js +0 -2
  648. package/dist/src/channels/health-monitor.js +0 -2
  649. package/dist/src/channels/heartbeat-scheduler.js +0 -2
  650. package/dist/src/channels/internal-outbound.js +0 -2
  651. package/dist/src/channels/lifecycle-supervisor.js +0 -2
  652. package/dist/src/channels/manager.js +0 -2
  653. package/dist/src/channels/media.js +0 -2
  654. package/dist/src/channels/outbound/deliver.js +0 -2
  655. package/dist/src/channels/outbound/normalize.js +0 -2
  656. package/dist/src/channels/outbound/persist-store.js +0 -2
  657. package/dist/src/channels/outbound/queue.js +0 -2
  658. package/dist/src/channels/outbound-sender.js +0 -2
  659. package/dist/src/channels/pairing/allow-from-file.js +0 -2
  660. package/dist/src/channels/pairing/approve-cli.js +0 -2
  661. package/dist/src/channels/pairing/pairing-challenge.js +0 -2
  662. package/dist/src/channels/pairing/pairing-constants.js +0 -2
  663. package/dist/src/channels/pairing/pairing-events.js +0 -2
  664. package/dist/src/channels/pairing/pairing-messages.js +0 -2
  665. package/dist/src/channels/pairing/pairing-service.js +0 -2
  666. package/dist/src/channels/pairing/pairing-store-adapter.js +0 -2
  667. package/dist/src/channels/pairing/pairing-store.js +0 -2
  668. package/dist/src/channels/pairing/paths.js +0 -2
  669. package/dist/src/channels/pairing/preseed-allow-from.js +0 -2
  670. package/dist/src/channels/pipeline.js +0 -2
  671. package/dist/src/channels/plugin-registry.js +0 -2
  672. package/dist/src/channels/plugins/registry.js +0 -2
  673. package/dist/src/channels/restart-policy.js +0 -2
  674. package/dist/src/channels/security-helpers.js +0 -2
  675. package/dist/src/channels/security.js +0 -2
  676. package/dist/src/channels/setup-wizard-discovery.js +0 -2
  677. package/dist/src/chat-commands/agent-edit.js +0 -2
  678. package/dist/src/chat-commands/builtins/config.js +0 -2
  679. package/dist/src/chat-commands/builtins/context.js +0 -2
  680. package/dist/src/chat-commands/builtins/goal.js +0 -2
  681. package/dist/src/chat-commands/builtins/model.js +0 -2
  682. package/dist/src/chat-commands/builtins/review.js +0 -2
  683. package/dist/src/chat-commands/builtins/session.js +0 -2
  684. package/dist/src/chat-commands/builtins/skill.js +0 -2
  685. package/dist/src/chat-commands/builtins/subgoal.js +0 -2
  686. package/dist/src/chat-commands/builtins/system.js +0 -2
  687. package/dist/src/chat-commands/builtins/thinking.js +0 -2
  688. package/dist/src/chat-commands/builtins/tts.js +0 -2
  689. package/dist/src/chat-commands/builtins/workflow.js +0 -2
  690. package/dist/src/chat-commands/command-parse.js +0 -2
  691. package/dist/src/chat-commands/config-paths.js +0 -2
  692. package/dist/src/chat-commands/config-value.js +0 -2
  693. package/dist/src/chat-commands/context.js +0 -2
  694. package/dist/src/chat-commands/format-output.js +0 -2
  695. package/dist/src/chat-commands/index.js +0 -2
  696. package/dist/src/chat-commands/processor.js +0 -2
  697. package/dist/src/chat-commands/registry.js +0 -2
  698. package/dist/src/chat-commands/session-key.js +0 -2
  699. package/dist/src/cli/argv-invocation.js +0 -2
  700. package/dist/src/cli/argv.js +0 -2
  701. package/dist/src/cli/bin.js +0 -2
  702. package/dist/src/cli/cli-log-level-preset.js +0 -2
  703. package/dist/src/cli/command-catalog.js +0 -2
  704. package/dist/src/cli/command-loaders.js +0 -2
  705. package/dist/src/cli/command-manifest.js +0 -2
  706. package/dist/src/cli/command-path-matches.js +0 -2
  707. package/dist/src/cli/command-path-policy.js +0 -2
  708. package/dist/src/cli/command-startup-policy.js +0 -2
  709. package/dist/src/cli/commands/agent/interactive.js +0 -2
  710. package/dist/src/cli/commands/agent/sessions.js +0 -2
  711. package/dist/src/cli/commands/agent/stream-renderer.js +0 -2
  712. package/dist/src/cli/commands/agent.js +0 -2
  713. package/dist/src/cli/commands/agents.js +0 -2
  714. package/dist/src/cli/commands/auth.js +0 -2
  715. package/dist/src/cli/commands/browser-cli-helpers.js +0 -2
  716. package/dist/src/cli/commands/browser.js +0 -2
  717. package/dist/src/cli/commands/channels.js +0 -2
  718. package/dist/src/cli/commands/config.js +0 -2
  719. package/dist/src/cli/commands/connectors.js +0 -2
  720. package/dist/src/cli/commands/doctor/checks/channel-config.js +0 -2
  721. package/dist/src/cli/commands/doctor/checks/channel-pairing-pending.js +0 -2
  722. package/dist/src/cli/commands/doctor/checks/channel-plugins.js +0 -2
  723. package/dist/src/cli/commands/doctor/checks/config-health.js +0 -2
  724. package/dist/src/cli/commands/doctor/checks/database-schema.js +0 -2
  725. package/dist/src/cli/commands/doctor/checks/gateway-health.js +0 -2
  726. package/dist/src/cli/commands/doctor/checks/gateway-service.js +0 -2
  727. package/dist/src/cli/commands/doctor/checks/migrations.js +0 -2
  728. package/dist/src/cli/commands/doctor/checks/node-version.js +0 -2
  729. package/dist/src/cli/commands/doctor/checks/provider-auth.js +0 -2
  730. package/dist/src/cli/commands/doctor/checks/security-audit.js +0 -2
  731. package/dist/src/cli/commands/doctor/checks/session-integrity.js +0 -2
  732. package/dist/src/cli/commands/doctor/checks/state-integrity.js +0 -2
  733. package/dist/src/cli/commands/doctor/checks/version-check.js +0 -2
  734. package/dist/src/cli/commands/doctor/checks/workspace-status.js +0 -2
  735. package/dist/src/cli/commands/doctor/flow.js +0 -2
  736. package/dist/src/cli/commands/doctor/format.js +0 -2
  737. package/dist/src/cli/commands/doctor/index.js +0 -2
  738. package/dist/src/cli/commands/extension-create.js +0 -2
  739. package/dist/src/cli/commands/extension-dev.js +0 -2
  740. package/dist/src/cli/commands/extension-marketplace.js +0 -2
  741. package/dist/src/cli/commands/extension-pack.js +0 -2
  742. package/dist/src/cli/commands/extension.js +0 -2
  743. package/dist/src/cli/commands/gateway/call.js +0 -2
  744. package/dist/src/cli/commands/gateway/health.js +0 -2
  745. package/dist/src/cli/commands/gateway/lifecycle-core.js +0 -2
  746. package/dist/src/cli/commands/gateway/lifecycle.js +0 -2
  747. package/dist/src/cli/commands/gateway/logs.js +0 -2
  748. package/dist/src/cli/commands/gateway/probe.js +0 -2
  749. package/dist/src/cli/commands/gateway/restart-health.js +0 -2
  750. package/dist/src/cli/commands/gateway/restart.js +0 -2
  751. package/dist/src/cli/commands/gateway/run-foreground.js +0 -2
  752. package/dist/src/cli/commands/gateway/service.js +0 -2
  753. package/dist/src/cli/commands/gateway/shared.js +0 -2
  754. package/dist/src/cli/commands/gateway/status.js +0 -2
  755. package/dist/src/cli/commands/gateway/stop.js +0 -2
  756. package/dist/src/cli/commands/gateway/subcommands.js +0 -2
  757. package/dist/src/cli/commands/gateway/token.js +0 -2
  758. package/dist/src/cli/commands/gateway-ssh-tunnel.js +0 -2
  759. package/dist/src/cli/commands/gateway.js +0 -2
  760. package/dist/src/cli/commands/goal.js +0 -2
  761. package/dist/src/cli/commands/image.js +0 -2
  762. package/dist/src/cli/commands/init.js +0 -2
  763. package/dist/src/cli/commands/logs.js +0 -2
  764. package/dist/src/cli/commands/models.js +0 -2
  765. package/dist/src/cli/commands/onboard/channels/index.js +0 -2
  766. package/dist/src/cli/commands/onboard/channels/onboard-to-configurator.js +0 -2
  767. package/dist/src/cli/commands/onboard/channels/registry.js +0 -2
  768. package/dist/src/cli/commands/onboard/channels/wizard-to-configurator.js +0 -2
  769. package/dist/src/cli/commands/onboard/gateway.js +0 -2
  770. package/dist/src/cli/commands/onboard/model.js +0 -2
  771. package/dist/src/cli/commands/onboard.js +0 -2
  772. package/dist/src/cli/commands/profile.js +0 -2
  773. package/dist/src/cli/commands/project.js +0 -2
  774. package/dist/src/cli/commands/providers.js +0 -2
  775. package/dist/src/cli/commands/resume.js +0 -2
  776. package/dist/src/cli/commands/search.js +0 -2
  777. package/dist/src/cli/commands/session/actions.js +0 -2
  778. package/dist/src/cli/commands/session/utils.js +0 -2
  779. package/dist/src/cli/commands/session.js +0 -2
  780. package/dist/src/cli/commands/setup-shared/output.js +0 -2
  781. package/dist/src/cli/commands/setup-shared/prompts.js +0 -2
  782. package/dist/src/cli/commands/setup-shared/runner.js +0 -2
  783. package/dist/src/cli/commands/setup-shared/types.js +0 -2
  784. package/dist/src/cli/commands/setup.js +0 -2
  785. package/dist/src/cli/commands/skills-test.js +0 -2
  786. package/dist/src/cli/commands/skills.js +0 -2
  787. package/dist/src/cli/commands/tailscale.js +0 -2
  788. package/dist/src/cli/commands/tui-runner.js +0 -2
  789. package/dist/src/cli/commands/tui.js +0 -2
  790. package/dist/src/cli/commands/tunnel.js +0 -2
  791. package/dist/src/cli/commands/update.js +0 -2
  792. package/dist/src/cli/commands/voice.js +0 -2
  793. package/dist/src/cli/context.js +0 -2
  794. package/dist/src/cli/extension-cli-register.js +0 -2
  795. package/dist/src/cli/gateway-run-argv.js +0 -2
  796. package/dist/src/cli/gateway-run-fast-path.js +0 -2
  797. package/dist/src/cli/index.js +0 -2
  798. package/dist/src/cli/registry.js +0 -2
  799. package/dist/src/cli/templates.js +0 -2
  800. package/dist/src/cli/utils/colors.js +0 -2
  801. package/dist/src/cli/utils/gateway-client-options.js +0 -2
  802. package/dist/src/cli/utils/gateway-client.js +0 -2
  803. package/dist/src/cli/utils/init-workspace-core.js +0 -2
  804. package/dist/src/cli/utils/init-workspace.js +0 -2
  805. package/dist/src/cli/utils/oauth-login.js +0 -2
  806. package/dist/src/cli/utils/oauth-providers.js +0 -2
  807. package/dist/src/cli/utils/session.js +0 -2
  808. package/dist/src/commands/agents.config.js +0 -2
  809. package/dist/src/config/agent-profile.js +0 -2
  810. package/dist/src/config/agent-typed-models.js +0 -2
  811. package/dist/src/config/commands.flags.js +0 -2
  812. package/dist/src/config/default-model.js +0 -2
  813. package/dist/src/config/diff.js +0 -2
  814. package/dist/src/config/gateway-bind.js +0 -2
  815. package/dist/src/config/index.js +0 -2
  816. package/dist/src/config/loader.js +0 -2
  817. package/dist/src/config/mcp-config-normalize.js +0 -2
  818. package/dist/src/config/model-input.js +0 -2
  819. package/dist/src/config/models-json.js +0 -2
  820. package/dist/src/config/paths-state.js +0 -2
  821. package/dist/src/config/paths.js +0 -2
  822. package/dist/src/config/profile.js +0 -2
  823. package/dist/src/config/public-url.js +0 -2
  824. package/dist/src/config/reload.js +0 -2
  825. package/dist/src/config/resolve-config-value.js +0 -2
  826. package/dist/src/config/rules.js +0 -2
  827. package/dist/src/config/runtime-overrides.js +0 -2
  828. package/dist/src/config/schema.js +0 -2
  829. package/dist/src/config/validate-channel-configs.js +0 -2
  830. package/dist/src/config/voice.js +0 -2
  831. package/dist/src/config/web-patch.js +0 -2
  832. package/dist/src/config/workspace-defaults.js +0 -2
  833. package/dist/src/config/workspace-dirs.js +0 -2
  834. package/dist/src/config/workspace-path-helpers.js +0 -2
  835. package/dist/src/config/workspace-path.js +0 -2
  836. package/dist/src/connectors/approval.js +0 -2
  837. package/dist/src/connectors/auth-provider-registry.js +0 -2
  838. package/dist/src/connectors/builtin-catalog.js +0 -2
  839. package/dist/src/connectors/catalog.js +0 -2
  840. package/dist/src/connectors/composio-catalog.js +0 -2
  841. package/dist/src/connectors/composio-logo.js +0 -2
  842. package/dist/src/connectors/composio-sessions.js +9 -5
  843. package/dist/src/connectors/composio-triggers.js +0 -2
  844. package/dist/src/connectors/composio.js +0 -2
  845. package/dist/src/connectors/connector-memory-sync.js +0 -2
  846. package/dist/src/connectors/health.js +0 -2
  847. package/dist/src/connectors/install.js +0 -2
  848. package/dist/src/connectors/instances.js +0 -2
  849. package/dist/src/connectors/integration-strategy.js +0 -2
  850. package/dist/src/connectors/lifecycle.js +0 -2
  851. package/dist/src/connectors/materialize.js +0 -2
  852. package/dist/src/connectors/policy.js +0 -2
  853. package/dist/src/connectors/providers.js +0 -2
  854. package/dist/src/connectors/registries/modelscope.js +0 -2
  855. package/dist/src/connectors/registries/official-mcp.js +0 -2
  856. package/dist/src/connectors/registries/search.js +0 -2
  857. package/dist/src/connectors/registries/smithery.js +0 -2
  858. package/dist/src/connectors/runtime-adapter-registry.js +0 -2
  859. package/dist/src/connectors/secret-store.js +0 -2
  860. package/dist/src/connectors/setup-secrets.js +0 -2
  861. package/dist/src/connectors/supervisor.js +0 -2
  862. package/dist/src/connectors/usage.js +0 -2
  863. package/dist/src/connectors/workflow-preflight.js +0 -2
  864. package/dist/src/daemon/constants.js +0 -2
  865. package/dist/src/daemon/install-plan.js +0 -2
  866. package/dist/src/daemon/launchd.js +0 -2
  867. package/dist/src/daemon/schtasks.js +0 -2
  868. package/dist/src/daemon/service-audit.js +0 -2
  869. package/dist/src/daemon/service.js +0 -2
  870. package/dist/src/daemon/systemd.js +0 -2
  871. package/dist/src/document-understanding/extract.js +0 -2
  872. package/dist/src/errors/index.js +0 -2
  873. package/dist/src/extensions/activation-context.js +0 -2
  874. package/dist/src/extensions/activation-planner.js +0 -2
  875. package/dist/src/extensions/api.js +0 -2
  876. package/dist/src/extensions/bundle-mcp.js +0 -2
  877. package/dist/src/extensions/bundled-extension-activation.js +0 -2
  878. package/dist/src/extensions/diagnostics.js +0 -2
  879. package/dist/src/extensions/discover-extensions.js +0 -2
  880. package/dist/src/extensions/engine-check.js +0 -2
  881. package/dist/src/extensions/extension-metadata-snapshot.js +0 -2
  882. package/dist/src/extensions/extension-registry-impl.js +0 -2
  883. package/dist/src/extensions/health.js +0 -2
  884. package/dist/src/extensions/hooks.js +0 -2
  885. package/dist/src/extensions/index.js +0 -2
  886. package/dist/src/extensions/install-transaction.js +0 -2
  887. package/dist/src/extensions/install.js +0 -2
  888. package/dist/src/extensions/loader.js +0 -2
  889. package/dist/src/extensions/lockfile.js +0 -2
  890. package/dist/src/extensions/manifest-registry.js +0 -2
  891. package/dist/src/extensions/marketplace.js +0 -2
  892. package/dist/src/extensions/media-provider-contracts.js +0 -2
  893. package/dist/src/extensions/normalize-manifest.js +0 -2
  894. package/dist/src/extensions/onboard-helpers.js +0 -2
  895. package/dist/src/extensions/package-contract.js +0 -2
  896. package/dist/src/extensions/sdk/channel-entry.js +0 -2
  897. package/dist/src/extensions/sdk/channel-helpers.js +0 -2
  898. package/dist/src/extensions/sdk/index.js +0 -2
  899. package/dist/src/extensions/sdk/lazy.js +0 -2
  900. package/dist/src/extensions/sdk/testing.js +0 -2
  901. package/dist/src/extensions/security.js +0 -2
  902. package/dist/src/extensions/slots.js +0 -2
  903. package/dist/src/extensions/speech-provider-contracts.js +0 -2
  904. package/dist/src/extensions/store-zip-limits.js +0 -2
  905. package/dist/src/extensions/typed-event-bus.js +0 -2
  906. package/dist/src/extensions/types/hooks.js +0 -2
  907. package/dist/src/extensions/types/providers.js +0 -2
  908. package/dist/src/extensions/update.js +0 -2
  909. package/dist/src/extensions/when-context.js +0 -2
  910. package/dist/src/extensions/when-expression.js +0 -2
  911. package/dist/src/gateway/agent-builtin-tools.js +0 -2
  912. package/dist/src/gateway/agent-run-relay.js +0 -2
  913. package/dist/src/gateway/agents-admin.js +0 -2
  914. package/dist/src/gateway/auth.js +0 -2
  915. package/dist/src/gateway/capability-presets-admin.js +0 -2
  916. package/dist/src/gateway/chat-limits.js +0 -2
  917. package/dist/src/gateway/chat-stream/mapper.js +28 -14
  918. package/dist/src/gateway/chat-stream/pet-feedback.d.ts +13 -0
  919. package/dist/src/gateway/chat-stream/pet-feedback.js +45 -0
  920. package/dist/src/gateway/chat-stream/protocol.d.ts +26 -0
  921. package/dist/src/gateway/clarify-bridge.js +3 -3
  922. package/dist/src/gateway/clarify-runtime.js +0 -2
  923. package/dist/src/gateway/client-ip.js +0 -2
  924. package/dist/src/gateway/config-tools-web.js +0 -2
  925. package/dist/src/gateway/credential.js +0 -2
  926. package/dist/src/gateway/discovery/mdns.js +0 -2
  927. package/dist/src/gateway/dreaming-automation-reconciler.js +0 -2
  928. package/dist/src/gateway/ensure-network-cors.js +0 -2
  929. package/dist/src/gateway/file-path-classifier.js +0 -2
  930. package/dist/src/gateway/file-reference-registry.js +0 -2
  931. package/dist/src/gateway/global-defaults-admin.js +0 -2
  932. package/dist/src/gateway/heartbeat/service.js +0 -2
  933. package/dist/src/gateway/hono/app.js +0 -2
  934. package/dist/src/gateway/hono/lib/agent-model.js +0 -2
  935. package/dist/src/gateway/hono/lib/config-payload.js +0 -2
  936. package/dist/src/gateway/hono/lib/extension-assets.js +0 -2
  937. package/dist/src/gateway/hono/lib/extension-store.js +0 -2
  938. package/dist/src/gateway/hono/lib/mask-secret-length.js +0 -2
  939. package/dist/src/gateway/hono/lib/route-logger.js +0 -2
  940. package/dist/src/gateway/hono/lib/safe-providers-config.js +0 -2
  941. package/dist/src/gateway/hono/lib/safe-voice-config.js +0 -2
  942. package/dist/src/gateway/hono/lib/startup-unavailable.js +0 -2
  943. package/dist/src/gateway/hono/lib/static-ui.js +0 -2
  944. package/dist/src/gateway/hono/middleware/auth.js +0 -2
  945. package/dist/src/gateway/hono/middleware/log-context.js +0 -2
  946. package/dist/src/gateway/hono/middleware/logger.js +0 -2
  947. package/dist/src/gateway/hono/middleware/route-errors.js +0 -2
  948. package/dist/src/gateway/hono/middleware/scopes.js +0 -2
  949. package/dist/src/gateway/hono/middleware/strict-rate-limit.js +0 -2
  950. package/dist/src/gateway/hono/oauth-async.js +0 -2
  951. package/dist/src/gateway/hono/oauth.js +0 -2
  952. package/dist/src/gateway/hono/routes/activity.js +0 -2
  953. package/dist/src/gateway/hono/routes/agent-stream.js +0 -2
  954. package/dist/src/gateway/hono/routes/agents.js +0 -2
  955. package/dist/src/gateway/hono/routes/ai-assist.js +0 -2
  956. package/dist/src/gateway/hono/routes/auth-registry-extensions.js +0 -2
  957. package/dist/src/gateway/hono/routes/browser-install.js +0 -2
  958. package/dist/src/gateway/hono/routes/browser.js +0 -2
  959. package/dist/src/gateway/hono/routes/capabilities.js +0 -2
  960. package/dist/src/gateway/hono/routes/capability-presets.js +0 -2
  961. package/dist/src/gateway/hono/routes/channels.js +0 -2
  962. package/dist/src/gateway/hono/routes/commands-skills.js +0 -2
  963. package/dist/src/gateway/hono/routes/config-patch/agents.js +0 -2
  964. package/dist/src/gateway/hono/routes/config-patch/channels.js +0 -2
  965. package/dist/src/gateway/hono/routes/config-patch/gateway.js +0 -2
  966. package/dist/src/gateway/hono/routes/config-patch/misc.js +0 -2
  967. package/dist/src/gateway/hono/routes/config-patch/result.js +0 -2
  968. package/dist/src/gateway/hono/routes/config.js +0 -2
  969. package/dist/src/gateway/hono/routes/connectors.js +0 -2
  970. package/dist/src/gateway/hono/routes/doctor.js +0 -2
  971. package/dist/src/gateway/hono/routes/dreaming.js +0 -2
  972. package/dist/src/gateway/hono/routes/exposure.js +0 -2
  973. package/dist/src/gateway/hono/routes/extension-gateway.js +0 -2
  974. package/dist/src/gateway/hono/routes/global-defaults.js +0 -2
  975. package/dist/src/gateway/hono/routes/goals.js +0 -2
  976. package/dist/src/gateway/hono/routes/home.js +0 -2
  977. package/dist/src/gateway/hono/routes/host-fs.js +0 -2
  978. package/dist/src/gateway/hono/routes/index.js +0 -2
  979. package/dist/src/gateway/hono/routes/lazy-bundles.js +0 -2
  980. package/dist/src/gateway/hono/routes/lazy-fallback.js +0 -2
  981. package/dist/src/gateway/hono/routes/local-apps.js +0 -2
  982. package/dist/src/gateway/hono/routes/logs.js +0 -2
  983. package/dist/src/gateway/hono/routes/mcp.js +0 -2
  984. package/dist/src/gateway/hono/routes/media.js +0 -2
  985. package/dist/src/gateway/hono/routes/memory.js +0 -2
  986. package/dist/src/gateway/hono/routes/migrations.js +0 -2
  987. package/dist/src/gateway/hono/routes/mobile.js +0 -2
  988. package/dist/src/gateway/hono/routes/models.js +0 -2
  989. package/dist/src/gateway/hono/routes/notes.js +3 -3
  990. package/dist/src/gateway/hono/routes/projects.js +0 -2
  991. package/dist/src/gateway/hono/routes/public-gateway.js +0 -2
  992. package/dist/src/gateway/hono/routes/search.js +0 -2
  993. package/dist/src/gateway/hono/routes/sessions.js +0 -2
  994. package/dist/src/gateway/hono/routes/shares.js +0 -2
  995. package/dist/src/gateway/hono/routes/site-shares.js +0 -2
  996. package/dist/src/gateway/hono/routes/status.js +0 -2
  997. package/dist/src/gateway/hono/routes/tui.js +0 -2
  998. package/dist/src/gateway/hono/routes/tunnel.js +0 -2
  999. package/dist/src/gateway/hono/routes/update.js +0 -2
  1000. package/dist/src/gateway/hono/routes/voice.js +0 -2
  1001. package/dist/src/gateway/hono/routes/work-discovery.js +0 -2
  1002. package/dist/src/gateway/hono/routes/workflows.js +0 -2
  1003. package/dist/src/gateway/hono/routes/workspace.js +0 -2
  1004. package/dist/src/gateway/hono/routes/you.js +0 -2
  1005. package/dist/src/gateway/hono/sse-json.js +0 -2
  1006. package/dist/src/gateway/hono/sse.js +0 -2
  1007. package/dist/src/gateway/host.js +0 -2
  1008. package/dist/src/gateway/image-capabilities.js +0 -2
  1009. package/dist/src/gateway/listen.js +0 -2
  1010. package/dist/src/gateway/lock.js +0 -2
  1011. package/dist/src/gateway/ports.js +0 -2
  1012. package/dist/src/gateway/protocol.js +0 -2
  1013. package/dist/src/gateway/public-url.js +0 -2
  1014. package/dist/src/gateway/rate-limit/auth-policy.js +0 -2
  1015. package/dist/src/gateway/rate-limit/buckets.js +0 -2
  1016. package/dist/src/gateway/rate-limit/env-flags.js +0 -2
  1017. package/dist/src/gateway/resolve-channel-connect-defer.js +0 -2
  1018. package/dist/src/gateway/resolve-webchat-session-key.js +0 -2
  1019. package/dist/src/gateway/respawn.js +0 -2
  1020. package/dist/src/gateway/run-loop.js +0 -2
  1021. package/dist/src/gateway/runtime-config.js +0 -2
  1022. package/dist/src/gateway/security/audit.js +0 -2
  1023. package/dist/src/gateway/security/csp.js +0 -2
  1024. package/dist/src/gateway/security/dangerous-tools.js +0 -2
  1025. package/dist/src/gateway/security/external-content.js +0 -2
  1026. package/dist/src/gateway/security/known-weak-secrets.js +0 -2
  1027. package/dist/src/gateway/security/loopback.js +0 -2
  1028. package/dist/src/gateway/security/operator-scopes.js +0 -2
  1029. package/dist/src/gateway/security/origin-check.js +0 -2
  1030. package/dist/src/gateway/security/preauth-connection-budget.js +0 -2
  1031. package/dist/src/gateway/security/secret-equal.js +0 -2
  1032. package/dist/src/gateway/server-tailscale.js +0 -2
  1033. package/dist/src/gateway/server.js +0 -2
  1034. package/dist/src/gateway/service/agent-runner.js +0 -2
  1035. package/dist/src/gateway/service/config-coordinator.js +0 -2
  1036. package/dist/src/gateway/service/marketplace-service.js +0 -2
  1037. package/dist/src/gateway/service/run-gateway-agent.js +0 -2
  1038. package/dist/src/gateway/service/session-chat-ids.js +0 -2
  1039. package/dist/src/gateway/service/sessions-api.js +0 -2
  1040. package/dist/src/gateway/service/sse-hub.js +0 -2
  1041. package/dist/src/gateway/service.js +1 -2
  1042. package/dist/src/gateway/session-reset-service.js +0 -2
  1043. package/dist/src/gateway/startup-readiness.js +0 -2
  1044. package/dist/src/gateway/startup-trace.js +0 -2
  1045. package/dist/src/gateway/tailscale-auth.js +0 -2
  1046. package/dist/src/gateway/tailscale-lifecycle.js +0 -2
  1047. package/dist/src/gateway/tls-server.js +0 -2
  1048. package/dist/src/gateway/trusted-proxy.js +0 -2
  1049. package/dist/src/gateway/user-turn-input.js +0 -2
  1050. package/dist/src/gateway/workspace-editor-path.js +0 -2
  1051. package/dist/src/gateway/workspace-file-search.js +0 -2
  1052. package/dist/src/gateway/workspace-fs-file-list.js +0 -2
  1053. package/dist/src/gateway/workspace-heartbeat-path.js +0 -2
  1054. package/dist/src/gateway/workspace-ripgrep.js +0 -2
  1055. package/dist/src/gateway/ws-security.js +0 -2
  1056. package/dist/src/generated/bundled-image-generation-providers.js +0 -2
  1057. package/dist/src/goals/goal-contract-draft.js +0 -2
  1058. package/dist/src/goals/goal-evidence-review.js +0 -2
  1059. package/dist/src/goals/goal-notifications.js +0 -2
  1060. package/dist/src/goals/goal-queue-store.js +0 -2
  1061. package/dist/src/goals/goal-runner.js +0 -2
  1062. package/dist/src/goals/goal-service.js +0 -2
  1063. package/dist/src/goals/goal-store.js +0 -2
  1064. package/dist/src/goals/goal-workflow-judge.js +0 -2
  1065. package/dist/src/heartbeat/active-hours.js +0 -2
  1066. package/dist/src/heartbeat/content-check.js +0 -2
  1067. package/dist/src/heartbeat/event-prompt.js +0 -2
  1068. package/dist/src/heartbeat/tokens.js +0 -2
  1069. package/dist/src/heartbeat/wake.js +0 -2
  1070. package/dist/src/i18n/format.js +0 -2
  1071. package/dist/src/i18n/goals-bundle.js +0 -2
  1072. package/dist/src/i18n/locale.js +0 -2
  1073. package/dist/src/i18n/locales/goals.en.js +0 -2
  1074. package/dist/src/i18n/locales/goals.zh.js +0 -2
  1075. package/dist/src/i18n/locales/share-tool.en.js +0 -2
  1076. package/dist/src/i18n/locales/share-tool.zh.js +0 -2
  1077. package/dist/src/i18n/share-tool-bundle.js +0 -2
  1078. package/dist/src/index.js +0 -2
  1079. package/dist/src/infra/brew.js +0 -2
  1080. package/dist/src/infra/bus/queue.js +0 -2
  1081. package/dist/src/infra/debounce.js +0 -2
  1082. package/dist/src/infra/exec.js +0 -2
  1083. package/dist/src/infra/gateway-process-argv.js +0 -2
  1084. package/dist/src/infra/gateway-processes.js +0 -2
  1085. package/dist/src/infra/host-env-security-policy.js +0 -2
  1086. package/dist/src/infra/host-env-security.js +0 -2
  1087. package/dist/src/infra/http-proxy-env.js +0 -2
  1088. package/dist/src/infra/is-main.js +0 -2
  1089. package/dist/src/infra/json-utf8-bytes.js +0 -2
  1090. package/dist/src/infra/node-sqlite.js +0 -2
  1091. package/dist/src/infra/package-json.js +0 -2
  1092. package/dist/src/infra/package-update-steps.js +0 -2
  1093. package/dist/src/infra/path-env.js +0 -2
  1094. package/dist/src/infra/path-prepend.js +0 -2
  1095. package/dist/src/infra/ports.js +0 -2
  1096. package/dist/src/infra/rate-limit/failure-limiter.js +0 -2
  1097. package/dist/src/infra/rate-limit/keyed-store.js +0 -2
  1098. package/dist/src/infra/rate-limit/rate-limiter.js +0 -2
  1099. package/dist/src/infra/restart.js +0 -2
  1100. package/dist/src/infra/retry.js +0 -2
  1101. package/dist/src/infra/run-command.js +0 -2
  1102. package/dist/src/infra/sqlite-errors.js +0 -2
  1103. package/dist/src/infra/ssh-tunnel.js +0 -2
  1104. package/dist/src/infra/stable-node-path.js +0 -2
  1105. package/dist/src/infra/tailscale.js +0 -2
  1106. package/dist/src/infra/undici-fetch.js +0 -2
  1107. package/dist/src/infra/unhandled-rejections.js +0 -2
  1108. package/dist/src/infra/update-channels.js +0 -2
  1109. package/dist/src/infra/update-check.js +0 -2
  1110. package/dist/src/infra/update-global.js +0 -2
  1111. package/dist/src/infra/update-lock.js +0 -2
  1112. package/dist/src/infra/update-log.js +0 -2
  1113. package/dist/src/infra/update-restart.js +0 -2
  1114. package/dist/src/infra/update-runner.js +0 -2
  1115. package/dist/src/infra/update-startup.js +0 -2
  1116. package/dist/src/infra/warning-filter.js +0 -2
  1117. package/dist/src/infra/write-file-atomic.js +0 -2
  1118. package/dist/src/knowledge/connected-knowledge-pipeline.js +0 -2
  1119. package/dist/src/knowledge/coordinator.js +0 -2
  1120. package/dist/src/knowledge/ingestion-service.js +0 -2
  1121. package/dist/src/local-apps/acceptance.js +0 -2
  1122. package/dist/src/local-apps/preview-runtime-bridge.js +0 -2
  1123. package/dist/src/local-apps/runtime-entry.js +0 -2
  1124. package/dist/src/local-apps/scaffold.js +0 -2
  1125. package/dist/src/local-apps/service.js +0 -2
  1126. package/dist/src/local-apps/store.js +0 -2
  1127. package/dist/src/markdown/chunk.js +0 -2
  1128. package/dist/src/markdown/code-spans.js +0 -2
  1129. package/dist/src/markdown/fences.js +0 -2
  1130. package/dist/src/markdown/frontmatter.js +0 -2
  1131. package/dist/src/markdown/ir.js +0 -2
  1132. package/dist/src/markdown/render.js +0 -2
  1133. package/dist/src/markdown/tables.js +0 -2
  1134. package/dist/src/mcp/channel-bridge.js +0 -2
  1135. package/dist/src/mcp/channel-server.js +0 -2
  1136. package/dist/src/mcp/channel-shared.js +0 -2
  1137. package/dist/src/mcp/channel-tools.js +0 -2
  1138. package/dist/src/mcp/gateway-http-client.js +0 -2
  1139. package/dist/src/media/media-reference.js +0 -2
  1140. package/dist/src/media/paths.js +0 -2
  1141. package/dist/src/media/session-references.js +0 -2
  1142. package/dist/src/media/store.js +0 -2
  1143. package/dist/src/media/uri.js +0 -2
  1144. package/dist/src/media-shared/http/api-key-rotation.js +0 -2
  1145. package/dist/src/media-shared/http/deadline.js +0 -2
  1146. package/dist/src/media-shared/http/private-network.js +0 -2
  1147. package/dist/src/media-shared/http/provider-http-errors.js +0 -2
  1148. package/dist/src/media-shared/http/provider-http.js +0 -2
  1149. package/dist/src/media-shared/http/resolve-provider-http-request-config.js +0 -2
  1150. package/dist/src/media-shared/http/ssrf-guard.js +0 -2
  1151. package/dist/src/media-shared/http/test-helpers/mock-server.js +0 -2
  1152. package/dist/src/media-understanding/audio-transcription-runner.js +0 -2
  1153. package/dist/src/media-understanding/openai-compatible-audio.js +0 -2
  1154. package/dist/src/media-understanding/registry.js +0 -2
  1155. package/dist/src/media-understanding/resolve-entries.js +0 -2
  1156. package/dist/src/media-understanding/runner.js +0 -2
  1157. package/dist/src/migrations/config/default-capability-preset.js +0 -2
  1158. package/dist/src/migrations/registry.js +0 -2
  1159. package/dist/src/migrations/runner.js +0 -2
  1160. package/dist/src/mobile/notification-service.js +0 -2
  1161. package/dist/src/mobile/notification-store.js +0 -2
  1162. package/dist/src/mobile/notification-types.js +0 -2
  1163. package/dist/src/notes/agent-context.js +0 -2
  1164. package/dist/src/notes/attachment-ref.js +0 -2
  1165. package/dist/src/notes/note-attachment-sync.js +0 -2
  1166. package/dist/src/notes/note-index-meta.js +0 -2
  1167. package/dist/src/notes/note-markdown.js +0 -2
  1168. package/dist/src/notes/paths.js +0 -2
  1169. package/dist/src/notes/service.d.ts +3 -1
  1170. package/dist/src/notes/service.js +19 -5
  1171. package/dist/src/notes/store.js +0 -2
  1172. package/dist/src/package-version.js +0 -2
  1173. package/dist/src/pets/factory.d.ts +13 -0
  1174. package/dist/src/pets/factory.js +23 -2
  1175. package/dist/src/pets/manifest.js +0 -2
  1176. package/dist/src/pets/validator.js +0 -2
  1177. package/dist/src/process/kill-tree.js +0 -2
  1178. package/dist/src/project-trust/trust-store.js +0 -2
  1179. package/dist/src/projects/automation-bind.js +0 -2
  1180. package/dist/src/projects/goal-bind.js +0 -2
  1181. package/dist/src/projects/memory-bind.js +0 -2
  1182. package/dist/src/projects/project-agent-suggestion.js +0 -2
  1183. package/dist/src/projects/project-agent.js +0 -2
  1184. package/dist/src/projects/project-kind.js +0 -2
  1185. package/dist/src/projects/project-loop.js +0 -2
  1186. package/dist/src/projects/project-service.js +0 -2
  1187. package/dist/src/projects/project-store.js +0 -2
  1188. package/dist/src/projects/session-bind.js +0 -2
  1189. package/dist/src/projects/workflow-bind.js +0 -2
  1190. package/dist/src/projects/workspace-project.js +0 -2
  1191. package/dist/src/projects/workspace.js +0 -2
  1192. package/dist/src/providers/auth-runtime/auth-profile-store.js +0 -2
  1193. package/dist/src/providers/auth-runtime/is-configured.js +0 -2
  1194. package/dist/src/providers/auth-runtime/oauth.js +0 -2
  1195. package/dist/src/providers/auth-runtime/resolve-api-key.js +0 -2
  1196. package/dist/src/providers/auth-runtime/resolve-auth.js +0 -2
  1197. package/dist/src/providers/constants.js +0 -2
  1198. package/dist/src/providers/domestic-presets.js +0 -2
  1199. package/dist/src/providers/env-keys.js +0 -2
  1200. package/dist/src/providers/extension-stream-bridge.js +0 -2
  1201. package/dist/src/providers/index.js +0 -2
  1202. package/dist/src/providers/model-call.js +0 -2
  1203. package/dist/src/providers/model-discovery.js +0 -2
  1204. package/dist/src/providers/model-registry.js +0 -2
  1205. package/dist/src/providers/model-supplements.js +0 -2
  1206. package/dist/src/providers/plugin-registry.js +0 -2
  1207. package/dist/src/providers/presentation.js +0 -2
  1208. package/dist/src/remote-access/exposure-guards.js +0 -2
  1209. package/dist/src/remote-access/exposure-manager.js +0 -2
  1210. package/dist/src/review/review-git.js +0 -2
  1211. package/dist/src/review/review-types.js +0 -2
  1212. package/dist/src/routing/account-id.js +0 -2
  1213. package/dist/src/routing/agent-session-key.js +0 -2
  1214. package/dist/src/routing/bindings.js +0 -2
  1215. package/dist/src/routing/index.js +0 -2
  1216. package/dist/src/routing/resolve-route.js +0 -2
  1217. package/dist/src/routing/resolve-tui-session-key.js +0 -2
  1218. package/dist/src/routing/session-key-utils.js +0 -2
  1219. package/dist/src/routing/session-key.js +0 -2
  1220. package/dist/src/session/abort-cutoff.js +0 -2
  1221. package/dist/src/session/chat-export.js +0 -2
  1222. package/dist/src/session/client-history.js +0 -2
  1223. package/dist/src/session/compaction-checkpoints.js +0 -2
  1224. package/dist/src/session/config-store.js +0 -2
  1225. package/dist/src/session/init-session-turn.js +0 -2
  1226. package/dist/src/session/lifecycle-timestamps.js +0 -2
  1227. package/dist/src/session/load-jsonl-entries.js +0 -2
  1228. package/dist/src/session/manager.js +0 -2
  1229. package/dist/src/session/patch-metadata.js +0 -2
  1230. package/dist/src/session/reset-policy.js +0 -2
  1231. package/dist/src/session/reset-triggers.js +0 -2
  1232. package/dist/src/session/reset-type.js +0 -2
  1233. package/dist/src/session/resolve-session.js +0 -2
  1234. package/dist/src/session/session-context-for-llm.js +0 -2
  1235. package/dist/src/session/session-id.js +0 -2
  1236. package/dist/src/session/session-title.js +0 -2
  1237. package/dist/src/session/session-workspace.js +0 -2
  1238. package/dist/src/session/store.js +0 -2
  1239. package/dist/src/session/stored-rows-to-file-entries.js +0 -2
  1240. package/dist/src/session/thinking-resolve.js +0 -2
  1241. package/dist/src/session/transcript-events.js +0 -2
  1242. package/dist/src/session/transcript-format.js +0 -2
  1243. package/dist/src/session/transcript-outline.js +0 -2
  1244. package/dist/src/session/transcript-stats.js +0 -2
  1245. package/dist/src/session/types.js +0 -2
  1246. package/dist/src/session/user-round-delete.js +0 -2
  1247. package/dist/src/share/share-audit.js +0 -2
  1248. package/dist/src/share/share-auto.js +0 -2
  1249. package/dist/src/share/share-config.js +0 -2
  1250. package/dist/src/share/share-landing.js +0 -2
  1251. package/dist/src/share/share-rate-limit.js +0 -2
  1252. package/dist/src/share/share-store.js +0 -2
  1253. package/dist/src/share/share-thumbnail.js +0 -2
  1254. package/dist/src/share/share-types.js +0 -2
  1255. package/dist/src/share/share-url.js +0 -2
  1256. package/dist/src/share/share-zip.js +0 -2
  1257. package/dist/src/share/site-proxy.js +0 -2
  1258. package/dist/src/share/site-share-config.js +0 -2
  1259. package/dist/src/share/site-share-router.js +0 -2
  1260. package/dist/src/share/site-share-store.js +0 -2
  1261. package/dist/src/share/site-share-types.js +0 -2
  1262. package/dist/src/share/site-static-serve.js +0 -2
  1263. package/dist/src/storage/sqlite/activity-repository.js +0 -2
  1264. package/dist/src/storage/sqlite/config-repository.js +0 -2
  1265. package/dist/src/storage/sqlite/connection.js +0 -2
  1266. package/dist/src/storage/sqlite/connector-repository.js +0 -2
  1267. package/dist/src/storage/sqlite/fts.js +0 -2
  1268. package/dist/src/storage/sqlite/knowledge-repository.js +0 -2
  1269. package/dist/src/storage/sqlite/memory-index-repository.js +0 -2
  1270. package/dist/src/storage/sqlite/memory-records-repository.js +0 -2
  1271. package/dist/src/storage/sqlite/memory-reference-consent-repository.js +0 -2
  1272. package/dist/src/storage/sqlite/migrations/discover.js +0 -2
  1273. package/dist/src/storage/sqlite/migrations/errors.js +0 -2
  1274. package/dist/src/storage/sqlite/migrations/runner.js +0 -2
  1275. package/dist/src/storage/sqlite/note-agent-context-repository.js +0 -2
  1276. package/dist/src/storage/sqlite/notes-repository.js +0 -2
  1277. package/dist/src/storage/sqlite/paths.js +0 -2
  1278. package/dist/src/storage/sqlite/row-mappers.js +0 -2
  1279. package/dist/src/storage/sqlite/schema-version.js +0 -2
  1280. package/dist/src/storage/sqlite/schema.js +0 -2
  1281. package/dist/src/storage/sqlite/session-metadata.js +0 -2
  1282. package/dist/src/storage/sqlite/session-repository.js +0 -2
  1283. package/dist/src/storage/sqlite/transaction.js +0 -2
  1284. package/dist/src/storage/sqlite/transcript-repository.js +0 -2
  1285. package/dist/src/storage/sqlite/user-profile-setup-repository.js +0 -2
  1286. package/dist/src/storage/sqlite/user-trust-repository.js +0 -2
  1287. package/dist/src/tui/backends/embedded-backend.js +0 -2
  1288. package/dist/src/tui/backends/gateway-sse-backend.js +0 -2
  1289. package/dist/src/tui/chat-history.js +0 -2
  1290. package/dist/src/tui/clipboard-image.js +0 -2
  1291. package/dist/src/tui/clipboard-text.js +0 -2
  1292. package/dist/src/tui/components/assistant-message.js +0 -2
  1293. package/dist/src/tui/components/bash-execution.js +0 -2
  1294. package/dist/src/tui/components/bash-summary.js +0 -2
  1295. package/dist/src/tui/components/branch-message-summary.js +0 -2
  1296. package/dist/src/tui/components/branch-summary.js +0 -2
  1297. package/dist/src/tui/components/chat-log.js +0 -2
  1298. package/dist/src/tui/components/compaction-summary.js +0 -2
  1299. package/dist/src/tui/components/custom-editor.js +0 -2
  1300. package/dist/src/tui/components/custom-message.js +0 -2
  1301. package/dist/src/tui/components/dynamic-border.js +0 -2
  1302. package/dist/src/tui/components/extension-dialog.js +0 -2
  1303. package/dist/src/tui/components/fuzzy-filter.js +0 -2
  1304. package/dist/src/tui/components/scoped-models-selector.js +0 -2
  1305. package/dist/src/tui/components/searchable-select-list.js +0 -2
  1306. package/dist/src/tui/components/session-selector.js +0 -2
  1307. package/dist/src/tui/components/settings-selector.js +0 -2
  1308. package/dist/src/tui/components/thinking-selector.js +0 -2
  1309. package/dist/src/tui/components/tool-execution.js +0 -2
  1310. package/dist/src/tui/components/tui-bottom-bar.js +0 -2
  1311. package/dist/src/tui/components/tui-header.js +0 -2
  1312. package/dist/src/tui/components/user-message.js +0 -2
  1313. package/dist/src/tui/components/visual-truncate.js +0 -2
  1314. package/dist/src/tui/extension-host/autocomplete.js +0 -2
  1315. package/dist/src/tui/extension-host/host.js +0 -2
  1316. package/dist/src/tui/extension-host/load-extensions.js +0 -2
  1317. package/dist/src/tui/extension-host/runtime-context.js +0 -2
  1318. package/dist/src/tui/extension-host/runtime.js +0 -2
  1319. package/dist/src/tui/extension-host/surface.js +0 -2
  1320. package/dist/src/tui/extension-host/tool-renderers.js +0 -2
  1321. package/dist/src/tui/format-tui-hotkeys.js +0 -2
  1322. package/dist/src/tui/sse-consumer.js +0 -2
  1323. package/dist/src/tui/theme/dark.js +0 -2
  1324. package/dist/src/tui/theme/light.js +0 -2
  1325. package/dist/src/tui/theme-manager.js +0 -2
  1326. package/dist/src/tui/theme.js +0 -2
  1327. package/dist/src/tui/tool-summary.js +0 -2
  1328. package/dist/src/tui/tui-agent-events.js +0 -2
  1329. package/dist/src/tui/tui-command-formatters.js +0 -2
  1330. package/dist/src/tui/tui-commands.js +0 -2
  1331. package/dist/src/tui/tui-context-usage.js +0 -2
  1332. package/dist/src/tui/tui-extension-user-message.js +0 -2
  1333. package/dist/src/tui/tui-fd-path.js +0 -2
  1334. package/dist/src/tui/tui-file-autocomplete.js +0 -2
  1335. package/dist/src/tui/tui-follow-up-queue.js +0 -2
  1336. package/dist/src/tui/tui-git-branch.js +0 -2
  1337. package/dist/src/tui/tui-keybindings-file.js +0 -2
  1338. package/dist/src/tui/tui-lifecycle.js +0 -2
  1339. package/dist/src/tui/tui-local-shell.js +0 -2
  1340. package/dist/src/tui/tui-model-picker.js +0 -2
  1341. package/dist/src/tui/tui-oauth-login.js +0 -2
  1342. package/dist/src/tui/tui-overlays.js +0 -2
  1343. package/dist/src/tui/tui-picker-overlay.js +0 -2
  1344. package/dist/src/tui/tui-run-state.js +0 -2
  1345. package/dist/src/tui/tui-run-status-format.js +0 -2
  1346. package/dist/src/tui/tui-runtime-hints.js +0 -2
  1347. package/dist/src/tui/tui-scoped-models.js +0 -2
  1348. package/dist/src/tui/tui-session-actions.js +0 -2
  1349. package/dist/src/tui/tui-session-format.js +0 -2
  1350. package/dist/src/tui/tui-session-snapshot.js +0 -2
  1351. package/dist/src/tui/tui-session-stats.js +0 -2
  1352. package/dist/src/tui/tui-settings.js +0 -2
  1353. package/dist/src/tui/tui-skills-autocomplete.js +0 -2
  1354. package/dist/src/tui/tui-startup-resources.js +0 -2
  1355. package/dist/src/tui/tui-startup-text.js +0 -2
  1356. package/dist/src/tui/tui-stdio-filter.js +0 -2
  1357. package/dist/src/tui/tui-submit.js +0 -2
  1358. package/dist/src/tui/tui-suspend.js +0 -2
  1359. package/dist/src/tui/tui-timeline-picker.js +0 -2
  1360. package/dist/src/tui/tui-timeline.js +0 -2
  1361. package/dist/src/tui/tui-tool-diff.js +0 -2
  1362. package/dist/src/tui/tui-tool-result.js +0 -2
  1363. package/dist/src/tui/tui-transcript-tree-picker.js +0 -2
  1364. package/dist/src/tui/tui-transcript-tree.js +0 -2
  1365. package/dist/src/tui/tui-types.js +0 -2
  1366. package/dist/src/tui/tui-workflow-slash.js +0 -2
  1367. package/dist/src/tui/tui.js +0 -2
  1368. package/dist/src/tui/xopc-tui-keybindings.js +0 -2
  1369. package/dist/src/tunnel/broker-client.js +0 -2
  1370. package/dist/src/tunnel/consent.js +0 -2
  1371. package/dist/src/tunnel/enable-lan-pairing.js +0 -2
  1372. package/dist/src/tunnel/env.js +0 -2
  1373. package/dist/src/tunnel/frp-subdomain-host.js +0 -2
  1374. package/dist/src/tunnel/frpc-binary.js +0 -2
  1375. package/dist/src/tunnel/frpc-config.js +0 -2
  1376. package/dist/src/tunnel/frpc-extract.js +0 -2
  1377. package/dist/src/tunnel/frpc-process.js +0 -2
  1378. package/dist/src/tunnel/gateway-lifecycle.js +0 -2
  1379. package/dist/src/tunnel/pair-context.js +0 -2
  1380. package/dist/src/tunnel/pair-url.js +0 -2
  1381. package/dist/src/tunnel/pairing-rate-limit.js +0 -2
  1382. package/dist/src/tunnel/pairing.js +0 -2
  1383. package/dist/src/tunnel/tunnel-audit.js +0 -2
  1384. package/dist/src/tunnel/tunnel-config.js +0 -2
  1385. package/dist/src/tunnel/tunnel-persist.js +0 -2
  1386. package/dist/src/tunnel/tunnel-qr.js +0 -2
  1387. package/dist/src/tunnel/tunnel-rate-limit.js +0 -2
  1388. package/dist/src/tunnel/tunnel-service.js +0 -2
  1389. package/dist/src/tunnel/tunnel-state.js +0 -2
  1390. package/dist/src/tunnel/well-known.js +0 -2
  1391. package/dist/src/user-context/config.js +0 -2
  1392. package/dist/src/user-context/import.js +0 -2
  1393. package/dist/src/user-context/owner.js +0 -2
  1394. package/dist/src/user-context/profile.js +0 -2
  1395. package/dist/src/user-context/projection.js +0 -2
  1396. package/dist/src/user-context/runtime.js +0 -2
  1397. package/dist/src/user-context/source-recommendations.js +0 -2
  1398. package/dist/src/user-context/trust-policy.js +0 -2
  1399. package/dist/src/utils/global-singleton.js +0 -2
  1400. package/dist/src/utils/helpers.js +0 -2
  1401. package/dist/src/utils/index.js +0 -2
  1402. package/dist/src/utils/is-record.js +0 -2
  1403. package/dist/src/utils/logger/audit.js +0 -2
  1404. package/dist/src/utils/logger/config.js +0 -2
  1405. package/dist/src/utils/logger/context.js +0 -2
  1406. package/dist/src/utils/logger/exporters.js +0 -2
  1407. package/dist/src/utils/logger/index.js +0 -2
  1408. package/dist/src/utils/logger/log-store.js +0 -2
  1409. package/dist/src/utils/logger/log-stream.js +0 -2
  1410. package/dist/src/utils/logger/pino-record.js +0 -2
  1411. package/dist/src/utils/logger/redact.js +0 -2
  1412. package/dist/src/utils/logger/rotation.js +0 -2
  1413. package/dist/src/utils/logger/shutdown.js +0 -2
  1414. package/dist/src/utils/logger/stats.js +0 -2
  1415. package/dist/src/utils/logger/streams.js +0 -2
  1416. package/dist/src/utils/logger/types.js +0 -2
  1417. package/dist/src/utils/logger.js +0 -2
  1418. package/dist/src/utils/redact-sensitive-url.js +0 -2
  1419. package/dist/src/utils/sanitize-log.js +0 -2
  1420. package/dist/src/utils/string-coerce.js +0 -2
  1421. package/dist/src/voice/language-profile.js +0 -2
  1422. package/dist/src/voice/local/model-files.js +0 -2
  1423. package/dist/src/voice/local/model-manager.js +0 -2
  1424. package/dist/src/voice/local/models.js +0 -2
  1425. package/dist/src/voice/local/runtime-client.js +0 -2
  1426. package/dist/src/voice/local/runtime-dispatcher.js +0 -2
  1427. package/dist/src/voice/local/runtime-worker.js +12 -4
  1428. package/dist/src/voice/local/wav.js +0 -2
  1429. package/dist/src/voice/metadata/builtin.js +0 -2
  1430. package/dist/src/voice/metadata/registry.js +0 -2
  1431. package/dist/src/voice/stt/availability.js +0 -2
  1432. package/dist/src/voice/stt/config-slice.js +0 -2
  1433. package/dist/src/voice/stt/factory.js +0 -2
  1434. package/dist/src/voice/stt/index.js +0 -2
  1435. package/dist/src/voice/stt/list-providers.js +0 -2
  1436. package/dist/src/voice/stt/mention.js +0 -2
  1437. package/dist/src/voice/stt/preflight.js +0 -2
  1438. package/dist/src/voice/stt/providers/alibaba-transcription.js +0 -2
  1439. package/dist/src/voice/stt/providers/local-transcription.js +0 -2
  1440. package/dist/src/voice/stt/providers/openai-transcription.js +0 -2
  1441. package/dist/src/voice/stt/transcribe-core.js +0 -2
  1442. package/dist/src/voice/stt/types.js +0 -2
  1443. package/dist/src/voice/tts/audio.js +0 -2
  1444. package/dist/src/voice/tts/config-slice.js +0 -2
  1445. package/dist/src/voice/tts/directives.js +0 -2
  1446. package/dist/src/voice/tts/factory.js +0 -2
  1447. package/dist/src/voice/tts/list-providers.js +0 -2
  1448. package/dist/src/voice/tts/merge-config.js +0 -2
  1449. package/dist/src/voice/tts/openai-compatible-speech.js +0 -2
  1450. package/dist/src/voice/tts/payload.js +0 -2
  1451. package/dist/src/voice/tts/preprocess.js +0 -2
  1452. package/dist/src/voice/tts/providers/alibaba-speech.js +0 -2
  1453. package/dist/src/voice/tts/providers/edge-speech.js +0 -2
  1454. package/dist/src/voice/tts/providers/minimax-speech.js +0 -2
  1455. package/dist/src/voice/tts/providers/openai-speech.js +0 -2
  1456. package/dist/src/voice/tts/sentence-boundary.js +0 -2
  1457. package/dist/src/voice/tts/service.js +0 -2
  1458. package/dist/src/voice/tts/speak-core.js +0 -2
  1459. package/dist/src/voice/tts/speech-registry.js +0 -2
  1460. package/dist/src/voice/tts/status-tracker.js +0 -2
  1461. package/dist/src/voice/tts/summarize.js +0 -2
  1462. package/dist/src/voice/tts/types.js +0 -2
  1463. package/dist/src/work-discovery/analyzer.js +0 -2
  1464. package/dist/src/work-discovery/probe.js +0 -2
  1465. package/dist/src/work-discovery/repository.js +0 -2
  1466. package/dist/src/work-discovery/service.js +0 -2
  1467. package/dist/src/work-items/agent-context.js +0 -2
  1468. package/dist/src/work-items/work-item-service.js +0 -2
  1469. package/dist/src/work-items/work-item-store.js +0 -2
  1470. package/dist/src/work-items/work-item-workflow-judge.js +0 -2
  1471. package/dist/src/workflows/authoring/workflow-draft-store.js +0 -2
  1472. package/dist/src/workflows/domain/definition-utils.js +0 -2
  1473. package/dist/src/workflows/domain/run.js +0 -2
  1474. package/dist/src/workflows/domain/schema-validation.js +0 -2
  1475. package/dist/src/workflows/domain/validation.js +0 -2
  1476. package/dist/src/workflows/draft/workflow-draft-prompt.js +0 -2
  1477. package/dist/src/workflows/draft/workflow-draft-service.js +0 -2
  1478. package/dist/src/workflows/draft/workflow-draft-validator.js +0 -2
  1479. package/dist/src/workflows/engine/projector.js +0 -2
  1480. package/dist/src/workflows/engine/workflow-engine.js +0 -2
  1481. package/dist/src/workflows/registry/catalog-workflow-definition-registry.js +0 -2
  1482. package/dist/src/workflows/runtime/graph-workflow-runtime.js +0 -2
  1483. package/dist/src/workflows/service/run-view-to-snapshot.js +0 -2
  1484. package/dist/src/workflows/service/workflow-run-service.js +1 -3
  1485. package/dist/src/workflows/service/workflow-session-bridge.js +0 -2
  1486. package/dist/src/workflows/service/workflow-session-key.js +0 -2
  1487. package/dist/src/workflows/store/event-store.js +0 -2
  1488. package/dist/src/workflows/store/paths.js +0 -2
  1489. package/dist/src/workflows/store/run-index-store.js +0 -2
  1490. package/dist/src/workflows/store/run-store.js +0 -2
  1491. package/package.json +43 -12
  1492. package/skills/creative/hatch-pet/SKILL.md +1 -0
  1493. package/dist/extensions/dashscope/src/image-generation-provider.js.map +0 -1
  1494. package/dist/extensions/demo-memory/src/index.js.map +0 -1
  1495. package/dist/extensions/fal/src/image-generation-provider.js.map +0 -1
  1496. package/dist/extensions/feishu/src/actions/message-action-handler.js.map +0 -1
  1497. package/dist/extensions/feishu/src/adapters/cli-login.js.map +0 -1
  1498. package/dist/extensions/feishu/src/adapters/gateway-setup.js.map +0 -1
  1499. package/dist/extensions/feishu/src/adapters/onboard-cli.js.map +0 -1
  1500. package/dist/extensions/feishu/src/auth/app-registration.js.map +0 -1
  1501. package/dist/extensions/feishu/src/auth/pairing.js.map +0 -1
  1502. package/dist/extensions/feishu/src/auth/paths.js.map +0 -1
  1503. package/dist/extensions/feishu/src/directory/directory-adapter.js.map +0 -1
  1504. package/dist/extensions/feishu/src/format.js.map +0 -1
  1505. package/dist/extensions/feishu/src/index.js.map +0 -1
  1506. package/dist/extensions/feishu/src/outbound/actions.js.map +0 -1
  1507. package/dist/extensions/feishu/src/outbound/media-load.js.map +0 -1
  1508. package/dist/extensions/feishu/src/outbound/outbound-adapter.js.map +0 -1
  1509. package/dist/extensions/feishu/src/pairing/feishu-pairing-prompt.js.map +0 -1
  1510. package/dist/extensions/feishu/src/pairing-config-resolver.js.map +0 -1
  1511. package/dist/extensions/feishu/src/plugin.js.map +0 -1
  1512. package/dist/extensions/feishu/src/schema/config-schema.js.map +0 -1
  1513. package/dist/extensions/feishu/src/state/accounts.js.map +0 -1
  1514. package/dist/extensions/feishu/src/state/message-bindings.js.map +0 -1
  1515. package/dist/extensions/feishu/src/state/thread-bindings.js.map +0 -1
  1516. package/dist/extensions/feishu/src/status/doctor.js.map +0 -1
  1517. package/dist/extensions/feishu/src/status/status-adapter.js.map +0 -1
  1518. package/dist/extensions/feishu/src/streaming/streaming-adapter.js.map +0 -1
  1519. package/dist/extensions/feishu/src/subagent-hooks.js.map +0 -1
  1520. package/dist/extensions/feishu/src/tools/docx/docx-batch-insert.js.map +0 -1
  1521. package/dist/extensions/feishu/src/tools/docx/docx-color-text.js.map +0 -1
  1522. package/dist/extensions/feishu/src/tools/docx/docx-table-ops.js.map +0 -1
  1523. package/dist/extensions/feishu/src/tools/tools.js.map +0 -1
  1524. package/dist/extensions/feishu/src/transport/client/client.js.map +0 -1
  1525. package/dist/extensions/feishu/src/transport/client/lark-sdk-logger.js.map +0 -1
  1526. package/dist/extensions/feishu/src/transport/reliability/dedupe.js.map +0 -1
  1527. package/dist/extensions/feishu/src/transport/reliability/inbound-pipeline.js.map +0 -1
  1528. package/dist/extensions/feishu/src/transport/socket-mode/monitor.js.map +0 -1
  1529. package/dist/extensions/feishu/src/transport/socket-mode/retry.js.map +0 -1
  1530. package/dist/extensions/feishu/src/transport/text/mentions.js.map +0 -1
  1531. package/dist/extensions/feishu/src/transport/webhook/monitor.js.map +0 -1
  1532. package/dist/extensions/feishu/src/ui/config-surface.js.map +0 -1
  1533. package/dist/extensions/feishu/src/workflow-progress.js.map +0 -1
  1534. package/dist/extensions/google/src/image-generation-provider.js.map +0 -1
  1535. package/dist/extensions/minimax/src/image-generation-provider.js.map +0 -1
  1536. package/dist/extensions/openai/src/image-generation-provider.js.map +0 -1
  1537. package/dist/extensions/telegram/src/access-control.js.map +0 -1
  1538. package/dist/extensions/telegram/src/account-manager.js.map +0 -1
  1539. package/dist/extensions/telegram/src/actions/message-actions.js.map +0 -1
  1540. package/dist/extensions/telegram/src/adapters/command-adapter.js.map +0 -1
  1541. package/dist/extensions/telegram/src/adapters/config-adapter.js.map +0 -1
  1542. package/dist/extensions/telegram/src/adapters/debounce-keys.js.map +0 -1
  1543. package/dist/extensions/telegram/src/adapters/gateway-adapter.js.map +0 -1
  1544. package/dist/extensions/telegram/src/adapters/gateway-setup.js.map +0 -1
  1545. package/dist/extensions/telegram/src/adapters/inbound-access.js.map +0 -1
  1546. package/dist/extensions/telegram/src/adapters/index.js.map +0 -1
  1547. package/dist/extensions/telegram/src/adapters/onboard-cli.js.map +0 -1
  1548. package/dist/extensions/telegram/src/adapters/outbound-adapter.js.map +0 -1
  1549. package/dist/extensions/telegram/src/adapters/security-adapter.js.map +0 -1
  1550. package/dist/extensions/telegram/src/adapters/setup-wizard.js.map +0 -1
  1551. package/dist/extensions/telegram/src/adapters/status-adapter.js.map +0 -1
  1552. package/dist/extensions/telegram/src/adapters/streaming-adapter.js.map +0 -1
  1553. package/dist/extensions/telegram/src/api-root.js.map +0 -1
  1554. package/dist/extensions/telegram/src/approval-delivery.js.map +0 -1
  1555. package/dist/extensions/telegram/src/approval-store.js.map +0 -1
  1556. package/dist/extensions/telegram/src/caption.js.map +0 -1
  1557. package/dist/extensions/telegram/src/command-handler.js.map +0 -1
  1558. package/dist/extensions/telegram/src/config-schema.js.map +0 -1
  1559. package/dist/extensions/telegram/src/conversation-id.js.map +0 -1
  1560. package/dist/extensions/telegram/src/dedupe.js.map +0 -1
  1561. package/dist/extensions/telegram/src/delivery-chat-id.js.map +0 -1
  1562. package/dist/extensions/telegram/src/doctor.js.map +0 -1
  1563. package/dist/extensions/telegram/src/draft-stream-lifecycle.js.map +0 -1
  1564. package/dist/extensions/telegram/src/draft-stream-loop.js.map +0 -1
  1565. package/dist/extensions/telegram/src/draft-stream.js.map +0 -1
  1566. package/dist/extensions/telegram/src/errors.js.map +0 -1
  1567. package/dist/extensions/telegram/src/exec-approval-handler.js.map +0 -1
  1568. package/dist/extensions/telegram/src/exec-approvals.js.map +0 -1
  1569. package/dist/extensions/telegram/src/focus-handler.js.map +0 -1
  1570. package/dist/extensions/telegram/src/format.js.map +0 -1
  1571. package/dist/extensions/telegram/src/group-config-resolver.js.map +0 -1
  1572. package/dist/extensions/telegram/src/inbound-coalescer.js.map +0 -1
  1573. package/dist/extensions/telegram/src/inbound-processor.js.map +0 -1
  1574. package/dist/extensions/telegram/src/index.js.map +0 -1
  1575. package/dist/extensions/telegram/src/inline-keyboards.js.map +0 -1
  1576. package/dist/extensions/telegram/src/network-errors.js.map +0 -1
  1577. package/dist/extensions/telegram/src/outbound-sender.js.map +0 -1
  1578. package/dist/extensions/telegram/src/pairing-config-resolver.js.map +0 -1
  1579. package/dist/extensions/telegram/src/plugin-defaults.js.map +0 -1
  1580. package/dist/extensions/telegram/src/plugin.js.map +0 -1
  1581. package/dist/extensions/telegram/src/polling-session.js.map +0 -1
  1582. package/dist/extensions/telegram/src/proxy-fetch.js.map +0 -1
  1583. package/dist/extensions/telegram/src/reactions.js.map +0 -1
  1584. package/dist/extensions/telegram/src/reply-params.js.map +0 -1
  1585. package/dist/extensions/telegram/src/routing-integration.js.map +0 -1
  1586. package/dist/extensions/telegram/src/send-options.js.map +0 -1
  1587. package/dist/extensions/telegram/src/sent-cache.js.map +0 -1
  1588. package/dist/extensions/telegram/src/startup-errors.js.map +0 -1
  1589. package/dist/extensions/telegram/src/telegram-actions.js.map +0 -1
  1590. package/dist/extensions/telegram/src/telegram-draft-errors.js.map +0 -1
  1591. package/dist/extensions/telegram/src/thread-bindings.js.map +0 -1
  1592. package/dist/extensions/telegram/src/timeout-abort.js.map +0 -1
  1593. package/dist/extensions/telegram/src/token-resolver.js.map +0 -1
  1594. package/dist/extensions/telegram/src/update-offset-store.js.map +0 -1
  1595. package/dist/extensions/telegram/src/workflow-progress.js.map +0 -1
  1596. package/dist/extensions/weixin/src/adapters/onboard-cli.js.map +0 -1
  1597. package/dist/extensions/weixin/src/api/api.js.map +0 -1
  1598. package/dist/extensions/weixin/src/api/config-cache.js.map +0 -1
  1599. package/dist/extensions/weixin/src/api/session-guard.js.map +0 -1
  1600. package/dist/extensions/weixin/src/api/types.js.map +0 -1
  1601. package/dist/extensions/weixin/src/auth/accounts.js.map +0 -1
  1602. package/dist/extensions/weixin/src/auth/login-qr.js.map +0 -1
  1603. package/dist/extensions/weixin/src/auth/pairing.js.map +0 -1
  1604. package/dist/extensions/weixin/src/auth/weixin-account-id.js.map +0 -1
  1605. package/dist/extensions/weixin/src/cdn/aes-ecb.js.map +0 -1
  1606. package/dist/extensions/weixin/src/cdn/cdn-upload.js.map +0 -1
  1607. package/dist/extensions/weixin/src/cdn/cdn-url.js.map +0 -1
  1608. package/dist/extensions/weixin/src/cdn/pic-decrypt.js.map +0 -1
  1609. package/dist/extensions/weixin/src/cdn/upload.js.map +0 -1
  1610. package/dist/extensions/weixin/src/cli/gateway-qr-login.js.map +0 -1
  1611. package/dist/extensions/weixin/src/cli/qr-login.js.map +0 -1
  1612. package/dist/extensions/weixin/src/config-schema.js.map +0 -1
  1613. package/dist/extensions/weixin/src/config-surface.js.map +0 -1
  1614. package/dist/extensions/weixin/src/delivery-to.js.map +0 -1
  1615. package/dist/extensions/weixin/src/index.js.map +0 -1
  1616. package/dist/extensions/weixin/src/media/data-url.js.map +0 -1
  1617. package/dist/extensions/weixin/src/media/media-download.js.map +0 -1
  1618. package/dist/extensions/weixin/src/media/mime.js.map +0 -1
  1619. package/dist/extensions/weixin/src/media/silk-transcode.js.map +0 -1
  1620. package/dist/extensions/weixin/src/messaging/context-token-init.js.map +0 -1
  1621. package/dist/extensions/weixin/src/messaging/debug-mode.js.map +0 -1
  1622. package/dist/extensions/weixin/src/messaging/error-notice.js.map +0 -1
  1623. package/dist/extensions/weixin/src/messaging/inbound.js.map +0 -1
  1624. package/dist/extensions/weixin/src/messaging/markdown-filter.js.map +0 -1
  1625. package/dist/extensions/weixin/src/messaging/process-message.js.map +0 -1
  1626. package/dist/extensions/weixin/src/messaging/send-media.js.map +0 -1
  1627. package/dist/extensions/weixin/src/messaging/send.js.map +0 -1
  1628. package/dist/extensions/weixin/src/messaging/slash-commands.js.map +0 -1
  1629. package/dist/extensions/weixin/src/messaging/typing-ticket-store.js.map +0 -1
  1630. package/dist/extensions/weixin/src/monitor/monitor.js.map +0 -1
  1631. package/dist/extensions/weixin/src/outbound-send.js.map +0 -1
  1632. package/dist/extensions/weixin/src/pairing-config-resolver.js.map +0 -1
  1633. package/dist/extensions/weixin/src/plugin.js.map +0 -1
  1634. package/dist/extensions/weixin/src/routing-integration.js.map +0 -1
  1635. package/dist/extensions/weixin/src/storage/state-dir.js.map +0 -1
  1636. package/dist/extensions/weixin/src/storage/sync-buf.js.map +0 -1
  1637. package/dist/extensions/weixin/src/util/logger.js.map +0 -1
  1638. package/dist/extensions/weixin/src/util/random.js.map +0 -1
  1639. package/dist/extensions/weixin/src/util/redact.js.map +0 -1
  1640. package/dist/extensions/weixin/src/workflow-progress.js.map +0 -1
  1641. package/dist/gateway/static/root/assets/agents-DZDOcgz5.js +0 -2
  1642. package/dist/gateway/static/root/assets/appearance-settings-BNasnY9D.js +0 -1
  1643. package/dist/gateway/static/root/assets/apps-page-Cmr-Hvm9.js +0 -1
  1644. package/dist/gateway/static/root/assets/automations-page-TWgUAI8t.js +0 -6
  1645. package/dist/gateway/static/root/assets/browser-settings-page-DBsFItW_.js +0 -8
  1646. package/dist/gateway/static/root/assets/channels-settings-BBkzrBYy.js +0 -1
  1647. package/dist/gateway/static/root/assets/channels-status-swr-CuU6ez3y.js +0 -1
  1648. package/dist/gateway/static/root/assets/connectors-page-DLsZCAw7.js +0 -2
  1649. package/dist/gateway/static/root/assets/desktop-pet-C6V-PHwi.js +0 -1
  1650. package/dist/gateway/static/root/assets/desktop-pet-settings-5Fcz47XQ.js +0 -1
  1651. package/dist/gateway/static/root/assets/gateway-settings-BrxzyVW2.js +0 -1
  1652. package/dist/gateway/static/root/assets/goal-create-dialog-DRVRLc5Z.js +0 -1
  1653. package/dist/gateway/static/root/assets/goal-detail-page-8F7NElzP.js +0 -4
  1654. package/dist/gateway/static/root/assets/goals-page-BaoLiV8G.js +0 -2
  1655. package/dist/gateway/static/root/assets/index-CH7XN6KY.js +0 -259
  1656. package/dist/gateway/static/root/assets/index-Dfnl9tp_.css +0 -1
  1657. package/dist/gateway/static/root/assets/keyboard-shortcuts-settings-BHnh5OoY.js +0 -1
  1658. package/dist/gateway/static/root/assets/local-app-workbench-page-Boe8n4zH.js +0 -2
  1659. package/dist/gateway/static/root/assets/locale-store-BneNAR8R.js +0 -1
  1660. package/dist/gateway/static/root/assets/logs-page-Cb4Uptct.js +0 -7
  1661. package/dist/gateway/static/root/assets/messages-t1yPaVCt.js +0 -5
  1662. package/dist/gateway/static/root/assets/models-hub-panel-CNiUKZUV.js +0 -2
  1663. package/dist/gateway/static/root/assets/notes-workbench-C9__VkD6.js +0 -4
  1664. package/dist/gateway/static/root/assets/project-detail-page-CZhuB5kO.js +0 -1
  1665. package/dist/gateway/static/root/assets/projects-page-BOq4WVdR.js +0 -1
  1666. package/dist/gateway/static/root/assets/remote-access-hub-BxGq0ebQ.js +0 -1
  1667. package/dist/gateway/static/root/assets/sessions-page-B6gSU_Au.js +0 -1
  1668. package/dist/gateway/static/root/assets/settings-advanced-gate-DwuBL834.js +0 -1
  1669. package/dist/gateway/static/root/assets/settings-loading-skeleton-vitElc-n.js +0 -1
  1670. package/dist/gateway/static/root/assets/setup-status-panel-BJeA4mmk.js +0 -1
  1671. package/dist/gateway/static/root/assets/shares-settings-DB2KYA2_.js +0 -1
  1672. package/dist/gateway/static/root/assets/skill-reload-api-DQtZiejw.js +0 -1
  1673. package/dist/gateway/static/root/assets/skills-page-Pm0fNe_p.js +0 -2
  1674. package/dist/gateway/static/root/assets/user-context-page-DnLqQyRG.js +0 -1
  1675. package/dist/gateway/static/root/assets/voice-api-key-field-BiFIIWC4.js +0 -1
  1676. package/dist/gateway/static/root/assets/work-discovery-page-D2-_bC0J.js +0 -1
  1677. package/dist/gateway/static/root/assets/work-item-detail-page-B0FPG4eJ.js +0 -1
  1678. package/dist/gateway/static/root/assets/work-page-BDeVxts_.js +0 -1
  1679. package/dist/gateway/static/root/assets/workflow-run-setup-panel-BPzS67fU.js +0 -3
  1680. package/dist/gateway/static/root/assets/workflows-page-xPhmrRLs.js +0 -11
  1681. package/dist/gateway/static/root/favicon-icon.svg +0 -187
  1682. package/dist/package.js.map +0 -1
  1683. package/dist/src/activity/context.js.map +0 -1
  1684. package/dist/src/activity/emitter.js.map +0 -1
  1685. package/dist/src/activity/service.js.map +0 -1
  1686. package/dist/src/agent/agent-manager.js.map +0 -1
  1687. package/dist/src/agent/agent-scope.js.map +0 -1
  1688. package/dist/src/agent/background-review/coordinator.js.map +0 -1
  1689. package/dist/src/agent/background-review/prompts.js.map +0 -1
  1690. package/dist/src/agent/background-review/run-background-review.js.map +0 -1
  1691. package/dist/src/agent/background-review/settings.js.map +0 -1
  1692. package/dist/src/agent/bootstrap/bootstrap-cache.js.map +0 -1
  1693. package/dist/src/agent/bootstrap/bootstrap-context.js.map +0 -1
  1694. package/dist/src/agent/bootstrap/bootstrap-files.js.map +0 -1
  1695. package/dist/src/agent/bootstrap/filter-bootstrap-files.js.map +0 -1
  1696. package/dist/src/agent/bootstrap/load-bootstrap-files.js.map +0 -1
  1697. package/dist/src/agent/bootstrap/project-agents-context.js.map +0 -1
  1698. package/dist/src/agent/capabilities/definitions.js.map +0 -1
  1699. package/dist/src/agent/capabilities/registry.js.map +0 -1
  1700. package/dist/src/agent/child-agent-factory.js.map +0 -1
  1701. package/dist/src/agent/client-error-format.js.map +0 -1
  1702. package/dist/src/agent/code-intelligence/binary.js.map +0 -1
  1703. package/dist/src/agent/code-intelligence/runtime.js.map +0 -1
  1704. package/dist/src/agent/code-intelligence/tools.js.map +0 -1
  1705. package/dist/src/agent/coding/turn-diff-tracker.js.map +0 -1
  1706. package/dist/src/agent/context/expand-at-file-mentions.js.map +0 -1
  1707. package/dist/src/agent/context/project-context.js.map +0 -1
  1708. package/dist/src/agent/context/workspace-seed.js.map +0 -1
  1709. package/dist/src/agent/context/workspace-state.js.map +0 -1
  1710. package/dist/src/agent/context/workspace.js.map +0 -1
  1711. package/dist/src/agent/embedded/run-for-session.js.map +0 -1
  1712. package/dist/src/agent/embedded/run-turn.js.map +0 -1
  1713. package/dist/src/agent/embedded/runs.js.map +0 -1
  1714. package/dist/src/agent/embedded/session-manager-init.js.map +0 -1
  1715. package/dist/src/agent/embedded/session-runner.js.map +0 -1
  1716. package/dist/src/agent/embedded/session-tool-result-guard.js.map +0 -1
  1717. package/dist/src/agent/embedded/sqlite-hydrating-session-manager.js.map +0 -1
  1718. package/dist/src/agent/embedded/subscribe-session.js.map +0 -1
  1719. package/dist/src/agent/embedded/system-prompt-override.js.map +0 -1
  1720. package/dist/src/agent/embedded/tool-result-context-guard.js.map +0 -1
  1721. package/dist/src/agent/embedded/tool-result-truncation.js.map +0 -1
  1722. package/dist/src/agent/embedded/xopc-auth-storage.js.map +0 -1
  1723. package/dist/src/agent/embedded/xopc-stream-bridge.js.map +0 -1
  1724. package/dist/src/agent/embedded/xopc-tools-bridge.js.map +0 -1
  1725. package/dist/src/agent/failover-error.js.map +0 -1
  1726. package/dist/src/agent/fallback/candidates.js.map +0 -1
  1727. package/dist/src/agent/fallback/reason.js.map +0 -1
  1728. package/dist/src/agent/feedback/feedback-coordinator.js.map +0 -1
  1729. package/dist/src/agent/goals/checklist-judge.js.map +0 -1
  1730. package/dist/src/agent/goals/checklist-types.js.map +0 -1
  1731. package/dist/src/agent/goals/evaluate-turn.js.map +0 -1
  1732. package/dist/src/agent/goals/goal-locale.js.map +0 -1
  1733. package/dist/src/agent/goals/judge.js.map +0 -1
  1734. package/dist/src/agent/goals/persistent-goal-service.js.map +0 -1
  1735. package/dist/src/agent/goals/post-turn.js.map +0 -1
  1736. package/dist/src/agent/goals/state.js.map +0 -1
  1737. package/dist/src/agent/image/generation/bundled-registry.js.map +0 -1
  1738. package/dist/src/agent/image/generation/bundled.js.map +0 -1
  1739. package/dist/src/agent/image/generation/image-assets.js.map +0 -1
  1740. package/dist/src/agent/image/generation/model-ref.js.map +0 -1
  1741. package/dist/src/agent/image/generation/normalization.js.map +0 -1
  1742. package/dist/src/agent/image/generation/openai-compatible-image-provider.js.map +0 -1
  1743. package/dist/src/agent/image/generation/provider-registry.js.map +0 -1
  1744. package/dist/src/agent/image/generation/runtime.js.map +0 -1
  1745. package/dist/src/agent/image/image-helpers.js.map +0 -1
  1746. package/dist/src/agent/image/image-model-fallback.js.map +0 -1
  1747. package/dist/src/agent/image/inbound-image-handling.js.map +0 -1
  1748. package/dist/src/agent/image/load-image-media.js.map +0 -1
  1749. package/dist/src/agent/image/tool-model-config.js.map +0 -1
  1750. package/dist/src/agent/image/understanding/pi-ai-provider.js.map +0 -1
  1751. package/dist/src/agent/image/understanding/provider-registry.js.map +0 -1
  1752. package/dist/src/agent/image/understanding/runtime.js.map +0 -1
  1753. package/dist/src/agent/image/vision-detection.js.map +0 -1
  1754. package/dist/src/agent/inbound/attachment-pipeline.js.map +0 -1
  1755. package/dist/src/agent/inbound/inbound-loop.js.map +0 -1
  1756. package/dist/src/agent/inbound/turn-dispatcher.js.map +0 -1
  1757. package/dist/src/agent/ipc/bus.js.map +0 -1
  1758. package/dist/src/agent/ipc/inbox.js.map +0 -1
  1759. package/dist/src/agent/ipc/socket.js.map +0 -1
  1760. package/dist/src/agent/ipc/types.js.map +0 -1
  1761. package/dist/src/agent/lifecycle/handlers/compaction.js.map +0 -1
  1762. package/dist/src/agent/lifecycle/hook-handler.js.map +0 -1
  1763. package/dist/src/agent/lifecycle/manager.js.map +0 -1
  1764. package/dist/src/agent/lifecycle/progress.js.map +0 -1
  1765. package/dist/src/agent/lifecycle/timeout-wrapper.js.map +0 -1
  1766. package/dist/src/agent/lifecycle/typing.js.map +0 -1
  1767. package/dist/src/agent/mcp/bundle-mcp-config.js.map +0 -1
  1768. package/dist/src/agent/mcp/bundle-mcp-materialize.js.map +0 -1
  1769. package/dist/src/agent/mcp/bundle-mcp-names.js.map +0 -1
  1770. package/dist/src/agent/mcp/bundle-mcp-policy.js.map +0 -1
  1771. package/dist/src/agent/mcp/bundle-mcp-runtime.js.map +0 -1
  1772. package/dist/src/agent/mcp/embedded-mcp.js.map +0 -1
  1773. package/dist/src/agent/mcp/mcp-config-shared.js.map +0 -1
  1774. package/dist/src/agent/mcp/mcp-http.js.map +0 -1
  1775. package/dist/src/agent/mcp/mcp-stdio-transport.js.map +0 -1
  1776. package/dist/src/agent/mcp/mcp-stdio.js.map +0 -1
  1777. package/dist/src/agent/mcp/mcp-tool-meta.js.map +0 -1
  1778. package/dist/src/agent/mcp/mcp-transport-config.js.map +0 -1
  1779. package/dist/src/agent/mcp/mcp-transport.js.map +0 -1
  1780. package/dist/src/agent/mcp/resolve-embedded-mcp-tools.js.map +0 -1
  1781. package/dist/src/agent/media-generation/model-ref.js.map +0 -1
  1782. package/dist/src/agent/media-generation/normalization.types.js.map +0 -1
  1783. package/dist/src/agent/media-generation/runtime-shared.js.map +0 -1
  1784. package/dist/src/agent/memory/agent-message-access.js.map +0 -1
  1785. package/dist/src/agent/memory/builtin-memory-store.js.map +0 -1
  1786. package/dist/src/agent/memory/builtin-provider.js.map +0 -1
  1787. package/dist/src/agent/memory/compaction.js.map +0 -1
  1788. package/dist/src/agent/memory/context/planner.js.map +0 -1
  1789. package/dist/src/agent/memory/context-fence.js.map +0 -1
  1790. package/dist/src/agent/memory/create-memory-manager.js.map +0 -1
  1791. package/dist/src/agent/memory/dreaming/config.js.map +0 -1
  1792. package/dist/src/agent/memory/dreaming/constants.js.map +0 -1
  1793. package/dist/src/agent/memory/dreaming/deep-promotion.js.map +0 -1
  1794. package/dist/src/agent/memory/dreaming/events.js.map +0 -1
  1795. package/dist/src/agent/memory/dreaming/last-run.js.map +0 -1
  1796. package/dist/src/agent/memory/dreaming/light-sweep.js.map +0 -1
  1797. package/dist/src/agent/memory/dreaming/preview.js.map +0 -1
  1798. package/dist/src/agent/memory/dreaming/promotion-lifecycle.js.map +0 -1
  1799. package/dist/src/agent/memory/dreaming/rem-patterns.js.map +0 -1
  1800. package/dist/src/agent/memory/dreaming/scope.js.map +0 -1
  1801. package/dist/src/agent/memory/dreaming/short-term-store.js.map +0 -1
  1802. package/dist/src/agent/memory/dreaming/utils.js.map +0 -1
  1803. package/dist/src/agent/memory/lifecycle.js.map +0 -1
  1804. package/dist/src/agent/memory/manager.js.map +0 -1
  1805. package/dist/src/agent/memory/memory-config.js.map +0 -1
  1806. package/dist/src/agent/memory/message-sanitizer.js.map +0 -1
  1807. package/dist/src/agent/memory/plugin-discovery.js.map +0 -1
  1808. package/dist/src/agent/memory/sensitivity.js.map +0 -1
  1809. package/dist/src/agent/memory/source-origin.js.map +0 -1
  1810. package/dist/src/agent/memory/stub-memory-provider.js.map +0 -1
  1811. package/dist/src/agent/memory/summary-generator.js.map +0 -1
  1812. package/dist/src/agent/memory/understanding/correction.js.map +0 -1
  1813. package/dist/src/agent/memory/understanding/quality.js.map +0 -1
  1814. package/dist/src/agent/memory/understanding/service.js.map +0 -1
  1815. package/dist/src/agent/memory/user-context-coordinator.js.map +0 -1
  1816. package/dist/src/agent/memory/user-message-text.js.map +0 -1
  1817. package/dist/src/agent/memory/window.js.map +0 -1
  1818. package/dist/src/agent/messaging/command-handler.js.map +0 -1
  1819. package/dist/src/agent/messaging/message-router.js.map +0 -1
  1820. package/dist/src/agent/messaging/outbound-coordinator.js.map +0 -1
  1821. package/dist/src/agent/messaging/stream-manager.js.map +0 -1
  1822. package/dist/src/agent/middleware/context.js.map +0 -1
  1823. package/dist/src/agent/middleware/self-verify.js.map +0 -1
  1824. package/dist/src/agent/models/manager.js.map +0 -1
  1825. package/dist/src/agent/models/request-limiter.js.map +0 -1
  1826. package/dist/src/agent/models/selection.js.map +0 -1
  1827. package/dist/src/agent/orchestration/agent-event-handler.js.map +0 -1
  1828. package/dist/src/agent/orchestration/agent-orchestrator.js.map +0 -1
  1829. package/dist/src/agent/orchestration/llm-turn-retry.js.map +0 -1
  1830. package/dist/src/agent/orchestration/loop-guard.js.map +0 -1
  1831. package/dist/src/agent/orchestration/run-agent-turn-with-timeout.js.map +0 -1
  1832. package/dist/src/agent/prompt/cache-boundary.js.map +0 -1
  1833. package/dist/src/agent/prompt/memory/index.js.map +0 -1
  1834. package/dist/src/agent/prompt/safety.js.map +0 -1
  1835. package/dist/src/agent/prompt/sanitize-for-prompt.js.map +0 -1
  1836. package/dist/src/agent/prompt/sections/behavior.js.map +0 -1
  1837. package/dist/src/agent/prompt/sections/memory-skills.js.map +0 -1
  1838. package/dist/src/agent/prompt/sections/messaging-runtime.js.map +0 -1
  1839. package/dist/src/agent/prompt/sections/project-context.js.map +0 -1
  1840. package/dist/src/agent/prompt/sections/tooling.js.map +0 -1
  1841. package/dist/src/agent/prompt/sections/workspace-runtime.js.map +0 -1
  1842. package/dist/src/agent/prompt/service-prompt-builder.js.map +0 -1
  1843. package/dist/src/agent/prompt/subagent-context.js.map +0 -1
  1844. package/dist/src/agent/prompt/system-prompt-params.js.map +0 -1
  1845. package/dist/src/agent/prompt/system-prompt.js.map +0 -1
  1846. package/dist/src/agent/prompt/system-reminder.js.map +0 -1
  1847. package/dist/src/agent/reply/apply-turn-user-enrichment.js.map +0 -1
  1848. package/dist/src/agent/reply/post-compaction-context.js.map +0 -1
  1849. package/dist/src/agent/reply/startup-context.js.map +0 -1
  1850. package/dist/src/agent/reply/workspace-boundary-read.js.map +0 -1
  1851. package/dist/src/agent/sandbox/command-validator.js.map +0 -1
  1852. package/dist/src/agent/sandbox/exec-policy.js.map +0 -1
  1853. package/dist/src/agent/sandbox/path-policy.js.map +0 -1
  1854. package/dist/src/agent/sandbox/sanitize-env-vars.js.map +0 -1
  1855. package/dist/src/agent/sandbox/types.js.map +0 -1
  1856. package/dist/src/agent/service/async-queue.js.map +0 -1
  1857. package/dist/src/agent/service/btw-query.js.map +0 -1
  1858. package/dist/src/agent/service/build-direct-message-content.js.map +0 -1
  1859. package/dist/src/agent/service/direct-turn-helpers.js.map +0 -1
  1860. package/dist/src/agent/service/parse-outbound-session-key.js.map +0 -1
  1861. package/dist/src/agent/service/process-direct-one-shot.js.map +0 -1
  1862. package/dist/src/agent/service/process-direct-streaming.js.map +0 -1
  1863. package/dist/src/agent/service/session-context-report.js.map +0 -1
  1864. package/dist/src/agent/service/webchat-tts.js.map +0 -1
  1865. package/dist/src/agent/service-inbound-utils.js.map +0 -1
  1866. package/dist/src/agent/service.js.map +0 -1
  1867. package/dist/src/agent/session/session-config-service.js.map +0 -1
  1868. package/dist/src/agent/session/session-context.js.map +0 -1
  1869. package/dist/src/agent/session/session-hydrator.js.map +0 -1
  1870. package/dist/src/agent/session/session-inspector.js.map +0 -1
  1871. package/dist/src/agent/session/session-lifecycle.js.map +0 -1
  1872. package/dist/src/agent/session/session-state-bag.js.map +0 -1
  1873. package/dist/src/agent/session/tracker.js.map +0 -1
  1874. package/dist/src/agent/skills/config.js.map +0 -1
  1875. package/dist/src/agent/skills/filesystem-watcher.js.map +0 -1
  1876. package/dist/src/agent/skills/format-skills-prompt.js.map +0 -1
  1877. package/dist/src/agent/skills/hub-hash.js.map +0 -1
  1878. package/dist/src/agent/skills/hub-lock.js.map +0 -1
  1879. package/dist/src/agent/skills/hub-pull.js.map +0 -1
  1880. package/dist/src/agent/skills/index.js.map +0 -1
  1881. package/dist/src/agent/skills/install-target.js.map +0 -1
  1882. package/dist/src/agent/skills/installer.js.map +0 -1
  1883. package/dist/src/agent/skills/managed-store.js.map +0 -1
  1884. package/dist/src/agent/skills/marketplace/adapters/clawhub/adapter.js.map +0 -1
  1885. package/dist/src/agent/skills/marketplace/adapters/skillhub/adapter.js.map +0 -1
  1886. package/dist/src/agent/skills/marketplace/adapters/store/adapter.js.map +0 -1
  1887. package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.js.map +0 -1
  1888. package/dist/src/agent/skills/marketplace/marketplace-category-order.js.map +0 -1
  1889. package/dist/src/agent/skills/marketplace/registry.js.map +0 -1
  1890. package/dist/src/agent/skills/marketplace/resolve-adapter.js.map +0 -1
  1891. package/dist/src/agent/skills/parse-skill-metadata.js.map +0 -1
  1892. package/dist/src/agent/skills/required-env-vars.js.map +0 -1
  1893. package/dist/src/agent/skills/scanner.js.map +0 -1
  1894. package/dist/src/agent/skills/skill-manage-ops.js.map +0 -1
  1895. package/dist/src/agent/skills/skill-manager.js.map +0 -1
  1896. package/dist/src/agent/skills/skill-markdown-preview-from-raw.js.map +0 -1
  1897. package/dist/src/agent/skills/skill-tool-gating.js.map +0 -1
  1898. package/dist/src/agent/skills/skill-view-path.js.map +0 -1
  1899. package/dist/src/agent/skills/skills-marketplace.js.map +0 -1
  1900. package/dist/src/agent/skills/test-framework.js.map +0 -1
  1901. package/dist/src/agent/skills/watcher.js.map +0 -1
  1902. package/dist/src/agent/skills/workspace-skills-dir.js.map +0 -1
  1903. package/dist/src/agent/source-context/injector.js.map +0 -1
  1904. package/dist/src/agent/source-context/types.js.map +0 -1
  1905. package/dist/src/agent/starter-agents.js.map +0 -1
  1906. package/dist/src/agent/streaming/reasoning-visibility-sse.js.map +0 -1
  1907. package/dist/src/agent/tool-manuals/browser.js.map +0 -1
  1908. package/dist/src/agent/tool-manuals/index.js.map +0 -1
  1909. package/dist/src/agent/tool-manuals/xopc-use.js.map +0 -1
  1910. package/dist/src/agent/tools/apply-patch.js.map +0 -1
  1911. package/dist/src/agent/tools/automation-tool.js.map +0 -1
  1912. package/dist/src/agent/tools/browser/tool/browser-use-tool.js.map +0 -1
  1913. package/dist/src/agent/tools/browser/tool/schemas.js.map +0 -1
  1914. package/dist/src/agent/tools/chain-tracker.js.map +0 -1
  1915. package/dist/src/agent/tools/clarify-tool.js.map +0 -1
  1916. package/dist/src/agent/tools/cli-clarify.js.map +0 -1
  1917. package/dist/src/agent/tools/communication.js.map +0 -1
  1918. package/dist/src/agent/tools/composio-tool.js.map +0 -1
  1919. package/dist/src/agent/tools/concurrency.js.map +0 -1
  1920. package/dist/src/agent/tools/create-share-tool.js.map +0 -1
  1921. package/dist/src/agent/tools/curated-memory-tool.js.map +0 -1
  1922. package/dist/src/agent/tools/delegate-tool.js.map +0 -1
  1923. package/dist/src/agent/tools/desktop-pet-tool.js.map +0 -1
  1924. package/dist/src/agent/tools/dreaming-tool.js.map +0 -1
  1925. package/dist/src/agent/tools/edit-diff.js.map +0 -1
  1926. package/dist/src/agent/tools/error-pattern-matcher.js.map +0 -1
  1927. package/dist/src/agent/tools/error-tracker.js.map +0 -1
  1928. package/dist/src/agent/tools/exec-command.js.map +0 -1
  1929. package/dist/src/agent/tools/execute-code-tool.js.map +0 -1
  1930. package/dist/src/agent/tools/executor.js.map +0 -1
  1931. package/dist/src/agent/tools/factory.js.map +0 -1
  1932. package/dist/src/agent/tools/find.js.map +0 -1
  1933. package/dist/src/agent/tools/goal-evidence-recorder.js.map +0 -1
  1934. package/dist/src/agent/tools/goal-tool.js.map +0 -1
  1935. package/dist/src/agent/tools/grep.js.map +0 -1
  1936. package/dist/src/agent/tools/image-generate-tool.js.map +0 -1
  1937. package/dist/src/agent/tools/image-tool.js.map +0 -1
  1938. package/dist/src/agent/tools/list-dir.js.map +0 -1
  1939. package/dist/src/agent/tools/media-read-tool.js.map +0 -1
  1940. package/dist/src/agent/tools/memory-tool.js.map +0 -1
  1941. package/dist/src/agent/tools/metadata.js.map +0 -1
  1942. package/dist/src/agent/tools/read.js.map +0 -1
  1943. package/dist/src/agent/tools/search/http.js.map +0 -1
  1944. package/dist/src/agent/tools/search/providers/bing-api.js.map +0 -1
  1945. package/dist/src/agent/tools/search/providers/bing-html.js.map +0 -1
  1946. package/dist/src/agent/tools/search/providers/brave.js.map +0 -1
  1947. package/dist/src/agent/tools/search/providers/duckduckgo-html.js.map +0 -1
  1948. package/dist/src/agent/tools/search/providers/searxng.js.map +0 -1
  1949. package/dist/src/agent/tools/search/providers/tavily.js.map +0 -1
  1950. package/dist/src/agent/tools/search/region.js.map +0 -1
  1951. package/dist/src/agent/tools/search/registry.js.map +0 -1
  1952. package/dist/src/agent/tools/search/resolve-config.js.map +0 -1
  1953. package/dist/src/agent/tools/send-media.js.map +0 -1
  1954. package/dist/src/agent/tools/session-search-tool.js.map +0 -1
  1955. package/dist/src/agent/tools/session-status-tool.js.map +0 -1
  1956. package/dist/src/agent/tools/skill-install-tool.js.map +0 -1
  1957. package/dist/src/agent/tools/skill-manage-tool.js.map +0 -1
  1958. package/dist/src/agent/tools/skills-tools.js.map +0 -1
  1959. package/dist/src/agent/tools/structured-output.js.map +0 -1
  1960. package/dist/src/agent/tools/todo-tool.js.map +0 -1
  1961. package/dist/src/agent/tools/tool-manual-tool.js.map +0 -1
  1962. package/dist/src/agent/tools/tool-paths.js.map +0 -1
  1963. package/dist/src/agent/tools/truncate.js.map +0 -1
  1964. package/dist/src/agent/tools/tts-tool.js.map +0 -1
  1965. package/dist/src/agent/tools/update-plan-tool.js.map +0 -1
  1966. package/dist/src/agent/tools/url-safety.js.map +0 -1
  1967. package/dist/src/agent/tools/usage-analyzer.js.map +0 -1
  1968. package/dist/src/agent/tools/web-extract.js.map +0 -1
  1969. package/dist/src/agent/tools/web.js.map +0 -1
  1970. package/dist/src/agent/tools/workflow-tool.js.map +0 -1
  1971. package/dist/src/agent/tools/write.js.map +0 -1
  1972. package/dist/src/agent/tools/xopc-use-tool.js.map +0 -1
  1973. package/dist/src/agent/transcript/google-api.js.map +0 -1
  1974. package/dist/src/agent/transcript/model-selection.js.map +0 -1
  1975. package/dist/src/agent/transcript/provider-capabilities.js.map +0 -1
  1976. package/dist/src/agent/transcript/session-transcript-repair.js.map +0 -1
  1977. package/dist/src/agent/transcript/strip-tool-messages.js.map +0 -1
  1978. package/dist/src/agent/transcript/thinking-types.js.map +0 -1
  1979. package/dist/src/agent/transcript/thinking.js.map +0 -1
  1980. package/dist/src/agent/transcript/tool-call-id.js.map +0 -1
  1981. package/dist/src/agent/transcript/transcript-hygiene.js.map +0 -1
  1982. package/dist/src/agent/transcript/transcript-policy.js.map +0 -1
  1983. package/dist/src/agent/workflow/agent-progress.js.map +0 -1
  1984. package/dist/src/agent/workflow/builtins/index.js.map +0 -1
  1985. package/dist/src/agent/workflow/catalog.js.map +0 -1
  1986. package/dist/src/agent/workflow/progress-broker.js.map +0 -1
  1987. package/dist/src/agent/workflow/snapshot-empty.js.map +0 -1
  1988. package/dist/src/agent/workflow/snapshot.js.map +0 -1
  1989. package/dist/src/agent/workflow/step-labels.js.map +0 -1
  1990. package/dist/src/agent/workflow/structured-output-tool.js.map +0 -1
  1991. package/dist/src/agent/workflow/subagent-runner.js.map +0 -1
  1992. package/dist/src/agent/workflow/workflow-child-tools.js.map +0 -1
  1993. package/dist/src/agent/workspace-runtime/registry.js.map +0 -1
  1994. package/dist/src/agent-manifest/index.js.map +0 -1
  1995. package/dist/src/agent-manifest/preset-chain.js.map +0 -1
  1996. package/dist/src/agent-manifest/prompt.js.map +0 -1
  1997. package/dist/src/agent-manifest/resolver.js.map +0 -1
  1998. package/dist/src/agent-manifest/schema.js.map +0 -1
  1999. package/dist/src/agent-manifest/validator.js.map +0 -1
  2000. package/dist/src/agent-runtime/boundary-guard.js.map +0 -1
  2001. package/dist/src/agent-runtime/memory-runtime.js.map +0 -1
  2002. package/dist/src/agent-runtime/model-router.js.map +0 -1
  2003. package/dist/src/agent-runtime/run-trace.js.map +0 -1
  2004. package/dist/src/agent-runtime/runtime-profile.js.map +0 -1
  2005. package/dist/src/agent-runtime/tool-registry.js.map +0 -1
  2006. package/dist/src/agent-runtime/workflow-runtime.js.map +0 -1
  2007. package/dist/src/ai-assist/text-assist.js.map +0 -1
  2008. package/dist/src/auth/credentials.js.map +0 -1
  2009. package/dist/src/auth/index.js.map +0 -1
  2010. package/dist/src/auth/oauth/anthropic.js.map +0 -1
  2011. package/dist/src/auth/oauth/github-copilot.js.map +0 -1
  2012. package/dist/src/auth/oauth/google-oauth/google-antigravity.js.map +0 -1
  2013. package/dist/src/auth/oauth/google-oauth/google-gemini-cli.js.map +0 -1
  2014. package/dist/src/auth/oauth/google-oauth/oauth-page.js.map +0 -1
  2015. package/dist/src/auth/oauth/google-oauth/pkce.js.map +0 -1
  2016. package/dist/src/auth/oauth/kimi-coding.js.map +0 -1
  2017. package/dist/src/auth/oauth/minimax-cn.js.map +0 -1
  2018. package/dist/src/auth/oauth/minimax.js.map +0 -1
  2019. package/dist/src/auth/oauth/openai-codex.js.map +0 -1
  2020. package/dist/src/auth/oauth/pkce.js.map +0 -1
  2021. package/dist/src/auth/profiles/oauth.js.map +0 -1
  2022. package/dist/src/auth/profiles/order.js.map +0 -1
  2023. package/dist/src/auth/profiles/profiles.js.map +0 -1
  2024. package/dist/src/auth/profiles/store.js.map +0 -1
  2025. package/dist/src/auth/sync-provider-auth.js.map +0 -1
  2026. package/dist/src/automations/api/routes.js.map +0 -1
  2027. package/dist/src/automations/domain/schedule.js.map +0 -1
  2028. package/dist/src/automations/domain/validation.js.map +0 -1
  2029. package/dist/src/automations/draft/automation-draft-prompt.js.map +0 -1
  2030. package/dist/src/automations/draft/automation-draft-service.js.map +0 -1
  2031. package/dist/src/automations/draft/automation-draft-validator.js.map +0 -1
  2032. package/dist/src/automations/product-events.js.map +0 -1
  2033. package/dist/src/automations/service/action-executor.js.map +0 -1
  2034. package/dist/src/automations/service/automation-service.js.map +0 -1
  2035. package/dist/src/automations/storage/automation-repository.js.map +0 -1
  2036. package/dist/src/automations/storage/automation-run-repository.js.map +0 -1
  2037. package/dist/src/browser/actions/extension-registry-bridge.js.map +0 -1
  2038. package/dist/src/browser/actions/registry.js.map +0 -1
  2039. package/dist/src/browser/backend-from-config.js.map +0 -1
  2040. package/dist/src/browser/browser-command-timeout.js.map +0 -1
  2041. package/dist/src/browser/cache-dir-policy.js.map +0 -1
  2042. package/dist/src/browser/cdp-local-launcher.js.map +0 -1
  2043. package/dist/src/browser/cdp-supervisor.js.map +0 -1
  2044. package/dist/src/browser/free-port.js.map +0 -1
  2045. package/dist/src/browser/humanize.js.map +0 -1
  2046. package/dist/src/browser/install-lock.js.map +0 -1
  2047. package/dist/src/browser/manager.js.map +0 -1
  2048. package/dist/src/browser/pipeline/output.js.map +0 -1
  2049. package/dist/src/browser/pipeline/runner.js.map +0 -1
  2050. package/dist/src/browser/pipeline/schema.js.map +0 -1
  2051. package/dist/src/browser/pipeline/source.js.map +0 -1
  2052. package/dist/src/browser/pipeline/template.js.map +0 -1
  2053. package/dist/src/browser/providers/browser-ext-install.js.map +0 -1
  2054. package/dist/src/browser/providers/browser-use.js.map +0 -1
  2055. package/dist/src/browser/providers/browserbase.js.map +0 -1
  2056. package/dist/src/browser/providers/cloakbrowser.js.map +0 -1
  2057. package/dist/src/browser/providers/extension-ws-acquire.js.map +0 -1
  2058. package/dist/src/browser/providers/extension.js.map +0 -1
  2059. package/dist/src/browser/providers/playwright-doctor.js.map +0 -1
  2060. package/dist/src/browser/providers/playwright-install.js.map +0 -1
  2061. package/dist/src/browser/readiness.js.map +0 -1
  2062. package/dist/src/browser/schemas.js.map +0 -1
  2063. package/dist/src/browser/session-lifecycle.js.map +0 -1
  2064. package/dist/src/browser/snapshot-helpers.js.map +0 -1
  2065. package/dist/src/browser/stealth.js.map +0 -1
  2066. package/dist/src/browser/url-policy.js.map +0 -1
  2067. package/dist/src/capabilities/store-connector.js.map +0 -1
  2068. package/dist/src/channels/attachments/attachment-classifiers.js.map +0 -1
  2069. package/dist/src/channels/attachments/inbound-persist.js.map +0 -1
  2070. package/dist/src/channels/attachments/inbound-types.js.map +0 -1
  2071. package/dist/src/channels/attachments/outbound-tts-persist.js.map +0 -1
  2072. package/dist/src/channels/attachments/voice-stt-webchat.js.map +0 -1
  2073. package/dist/src/channels/catalog/channel-catalog-service.js.map +0 -1
  2074. package/dist/src/channels/config-helpers.js.map +0 -1
  2075. package/dist/src/channels/envelope-timestamp.js.map +0 -1
  2076. package/dist/src/channels/exec-approval-runtime.js.map +0 -1
  2077. package/dist/src/channels/health-monitor.js.map +0 -1
  2078. package/dist/src/channels/heartbeat-scheduler.js.map +0 -1
  2079. package/dist/src/channels/internal-outbound.js.map +0 -1
  2080. package/dist/src/channels/lifecycle-supervisor.js.map +0 -1
  2081. package/dist/src/channels/manager.js.map +0 -1
  2082. package/dist/src/channels/media.js.map +0 -1
  2083. package/dist/src/channels/outbound/deliver.js.map +0 -1
  2084. package/dist/src/channels/outbound/normalize.js.map +0 -1
  2085. package/dist/src/channels/outbound/persist-store.js.map +0 -1
  2086. package/dist/src/channels/outbound/queue.js.map +0 -1
  2087. package/dist/src/channels/outbound-sender.js.map +0 -1
  2088. package/dist/src/channels/pairing/allow-from-file.js.map +0 -1
  2089. package/dist/src/channels/pairing/approve-cli.js.map +0 -1
  2090. package/dist/src/channels/pairing/pairing-challenge.js.map +0 -1
  2091. package/dist/src/channels/pairing/pairing-constants.js.map +0 -1
  2092. package/dist/src/channels/pairing/pairing-events.js.map +0 -1
  2093. package/dist/src/channels/pairing/pairing-messages.js.map +0 -1
  2094. package/dist/src/channels/pairing/pairing-service.js.map +0 -1
  2095. package/dist/src/channels/pairing/pairing-store-adapter.js.map +0 -1
  2096. package/dist/src/channels/pairing/pairing-store.js.map +0 -1
  2097. package/dist/src/channels/pairing/paths.js.map +0 -1
  2098. package/dist/src/channels/pairing/preseed-allow-from.js.map +0 -1
  2099. package/dist/src/channels/pipeline.js.map +0 -1
  2100. package/dist/src/channels/plugin-registry.js.map +0 -1
  2101. package/dist/src/channels/plugins/registry.js.map +0 -1
  2102. package/dist/src/channels/restart-policy.js.map +0 -1
  2103. package/dist/src/channels/security-helpers.js.map +0 -1
  2104. package/dist/src/channels/security.js.map +0 -1
  2105. package/dist/src/channels/setup-wizard-discovery.js.map +0 -1
  2106. package/dist/src/chat-commands/agent-edit.js.map +0 -1
  2107. package/dist/src/chat-commands/builtins/config.js.map +0 -1
  2108. package/dist/src/chat-commands/builtins/context.js.map +0 -1
  2109. package/dist/src/chat-commands/builtins/goal.js.map +0 -1
  2110. package/dist/src/chat-commands/builtins/model.js.map +0 -1
  2111. package/dist/src/chat-commands/builtins/review.js.map +0 -1
  2112. package/dist/src/chat-commands/builtins/session.js.map +0 -1
  2113. package/dist/src/chat-commands/builtins/skill.js.map +0 -1
  2114. package/dist/src/chat-commands/builtins/subgoal.js.map +0 -1
  2115. package/dist/src/chat-commands/builtins/system.js.map +0 -1
  2116. package/dist/src/chat-commands/builtins/thinking.js.map +0 -1
  2117. package/dist/src/chat-commands/builtins/tts.js.map +0 -1
  2118. package/dist/src/chat-commands/builtins/workflow.js.map +0 -1
  2119. package/dist/src/chat-commands/command-parse.js.map +0 -1
  2120. package/dist/src/chat-commands/config-paths.js.map +0 -1
  2121. package/dist/src/chat-commands/config-value.js.map +0 -1
  2122. package/dist/src/chat-commands/context.js.map +0 -1
  2123. package/dist/src/chat-commands/format-output.js.map +0 -1
  2124. package/dist/src/chat-commands/index.js.map +0 -1
  2125. package/dist/src/chat-commands/processor.js.map +0 -1
  2126. package/dist/src/chat-commands/registry.js.map +0 -1
  2127. package/dist/src/chat-commands/session-key.js.map +0 -1
  2128. package/dist/src/cli/argv-invocation.js.map +0 -1
  2129. package/dist/src/cli/argv.js.map +0 -1
  2130. package/dist/src/cli/bin.js.map +0 -1
  2131. package/dist/src/cli/cli-log-level-preset.js.map +0 -1
  2132. package/dist/src/cli/command-catalog.js.map +0 -1
  2133. package/dist/src/cli/command-loaders.js.map +0 -1
  2134. package/dist/src/cli/command-manifest.js.map +0 -1
  2135. package/dist/src/cli/command-path-matches.js.map +0 -1
  2136. package/dist/src/cli/command-path-policy.js.map +0 -1
  2137. package/dist/src/cli/command-startup-policy.js.map +0 -1
  2138. package/dist/src/cli/commands/agent/interactive.js.map +0 -1
  2139. package/dist/src/cli/commands/agent/sessions.js.map +0 -1
  2140. package/dist/src/cli/commands/agent/stream-renderer.js.map +0 -1
  2141. package/dist/src/cli/commands/agent.js.map +0 -1
  2142. package/dist/src/cli/commands/agents.js.map +0 -1
  2143. package/dist/src/cli/commands/auth.js.map +0 -1
  2144. package/dist/src/cli/commands/browser-cli-helpers.js.map +0 -1
  2145. package/dist/src/cli/commands/browser.js.map +0 -1
  2146. package/dist/src/cli/commands/channels.js.map +0 -1
  2147. package/dist/src/cli/commands/config.js.map +0 -1
  2148. package/dist/src/cli/commands/connectors.js.map +0 -1
  2149. package/dist/src/cli/commands/doctor/checks/channel-config.js.map +0 -1
  2150. package/dist/src/cli/commands/doctor/checks/channel-pairing-pending.js.map +0 -1
  2151. package/dist/src/cli/commands/doctor/checks/channel-plugins.js.map +0 -1
  2152. package/dist/src/cli/commands/doctor/checks/config-health.js.map +0 -1
  2153. package/dist/src/cli/commands/doctor/checks/database-schema.js.map +0 -1
  2154. package/dist/src/cli/commands/doctor/checks/gateway-health.js.map +0 -1
  2155. package/dist/src/cli/commands/doctor/checks/gateway-service.js.map +0 -1
  2156. package/dist/src/cli/commands/doctor/checks/migrations.js.map +0 -1
  2157. package/dist/src/cli/commands/doctor/checks/node-version.js.map +0 -1
  2158. package/dist/src/cli/commands/doctor/checks/provider-auth.js.map +0 -1
  2159. package/dist/src/cli/commands/doctor/checks/security-audit.js.map +0 -1
  2160. package/dist/src/cli/commands/doctor/checks/session-integrity.js.map +0 -1
  2161. package/dist/src/cli/commands/doctor/checks/state-integrity.js.map +0 -1
  2162. package/dist/src/cli/commands/doctor/checks/version-check.js.map +0 -1
  2163. package/dist/src/cli/commands/doctor/checks/workspace-status.js.map +0 -1
  2164. package/dist/src/cli/commands/doctor/flow.js.map +0 -1
  2165. package/dist/src/cli/commands/doctor/format.js.map +0 -1
  2166. package/dist/src/cli/commands/doctor/index.js.map +0 -1
  2167. package/dist/src/cli/commands/extension-create.js.map +0 -1
  2168. package/dist/src/cli/commands/extension-dev.js.map +0 -1
  2169. package/dist/src/cli/commands/extension-marketplace.js.map +0 -1
  2170. package/dist/src/cli/commands/extension-pack.js.map +0 -1
  2171. package/dist/src/cli/commands/extension.js.map +0 -1
  2172. package/dist/src/cli/commands/gateway/call.js.map +0 -1
  2173. package/dist/src/cli/commands/gateway/health.js.map +0 -1
  2174. package/dist/src/cli/commands/gateway/lifecycle-core.js.map +0 -1
  2175. package/dist/src/cli/commands/gateway/lifecycle.js.map +0 -1
  2176. package/dist/src/cli/commands/gateway/logs.js.map +0 -1
  2177. package/dist/src/cli/commands/gateway/probe.js.map +0 -1
  2178. package/dist/src/cli/commands/gateway/restart-health.js.map +0 -1
  2179. package/dist/src/cli/commands/gateway/restart.js.map +0 -1
  2180. package/dist/src/cli/commands/gateway/run-foreground.js.map +0 -1
  2181. package/dist/src/cli/commands/gateway/service.js.map +0 -1
  2182. package/dist/src/cli/commands/gateway/shared.js.map +0 -1
  2183. package/dist/src/cli/commands/gateway/status.js.map +0 -1
  2184. package/dist/src/cli/commands/gateway/stop.js.map +0 -1
  2185. package/dist/src/cli/commands/gateway/subcommands.js.map +0 -1
  2186. package/dist/src/cli/commands/gateway/token.js.map +0 -1
  2187. package/dist/src/cli/commands/gateway-ssh-tunnel.js.map +0 -1
  2188. package/dist/src/cli/commands/gateway.js.map +0 -1
  2189. package/dist/src/cli/commands/goal.js.map +0 -1
  2190. package/dist/src/cli/commands/image.js.map +0 -1
  2191. package/dist/src/cli/commands/init.js.map +0 -1
  2192. package/dist/src/cli/commands/logs.js.map +0 -1
  2193. package/dist/src/cli/commands/models.js.map +0 -1
  2194. package/dist/src/cli/commands/onboard/channels/index.js.map +0 -1
  2195. package/dist/src/cli/commands/onboard/channels/onboard-to-configurator.js.map +0 -1
  2196. package/dist/src/cli/commands/onboard/channels/registry.js.map +0 -1
  2197. package/dist/src/cli/commands/onboard/channels/wizard-to-configurator.js.map +0 -1
  2198. package/dist/src/cli/commands/onboard/gateway.js.map +0 -1
  2199. package/dist/src/cli/commands/onboard/model.js.map +0 -1
  2200. package/dist/src/cli/commands/onboard.js.map +0 -1
  2201. package/dist/src/cli/commands/profile.js.map +0 -1
  2202. package/dist/src/cli/commands/project.js.map +0 -1
  2203. package/dist/src/cli/commands/providers.js.map +0 -1
  2204. package/dist/src/cli/commands/resume.js.map +0 -1
  2205. package/dist/src/cli/commands/search.js.map +0 -1
  2206. package/dist/src/cli/commands/session/actions.js.map +0 -1
  2207. package/dist/src/cli/commands/session/utils.js.map +0 -1
  2208. package/dist/src/cli/commands/session.js.map +0 -1
  2209. package/dist/src/cli/commands/setup-shared/output.js.map +0 -1
  2210. package/dist/src/cli/commands/setup-shared/prompts.js.map +0 -1
  2211. package/dist/src/cli/commands/setup-shared/runner.js.map +0 -1
  2212. package/dist/src/cli/commands/setup-shared/types.js.map +0 -1
  2213. package/dist/src/cli/commands/setup.js.map +0 -1
  2214. package/dist/src/cli/commands/skills-test.js.map +0 -1
  2215. package/dist/src/cli/commands/skills.js.map +0 -1
  2216. package/dist/src/cli/commands/tailscale.js.map +0 -1
  2217. package/dist/src/cli/commands/tui-runner.js.map +0 -1
  2218. package/dist/src/cli/commands/tui.js.map +0 -1
  2219. package/dist/src/cli/commands/tunnel.js.map +0 -1
  2220. package/dist/src/cli/commands/update.js.map +0 -1
  2221. package/dist/src/cli/commands/voice.js.map +0 -1
  2222. package/dist/src/cli/context.js.map +0 -1
  2223. package/dist/src/cli/extension-cli-register.js.map +0 -1
  2224. package/dist/src/cli/gateway-run-argv.js.map +0 -1
  2225. package/dist/src/cli/gateway-run-fast-path.js.map +0 -1
  2226. package/dist/src/cli/index.js.map +0 -1
  2227. package/dist/src/cli/registry.js.map +0 -1
  2228. package/dist/src/cli/templates.js.map +0 -1
  2229. package/dist/src/cli/utils/colors.js.map +0 -1
  2230. package/dist/src/cli/utils/gateway-client-options.js.map +0 -1
  2231. package/dist/src/cli/utils/gateway-client.js.map +0 -1
  2232. package/dist/src/cli/utils/init-workspace-core.js.map +0 -1
  2233. package/dist/src/cli/utils/init-workspace.js.map +0 -1
  2234. package/dist/src/cli/utils/oauth-login.js.map +0 -1
  2235. package/dist/src/cli/utils/oauth-providers.js.map +0 -1
  2236. package/dist/src/cli/utils/session.js.map +0 -1
  2237. package/dist/src/commands/agents.config.js.map +0 -1
  2238. package/dist/src/config/agent-profile.js.map +0 -1
  2239. package/dist/src/config/agent-typed-models.js.map +0 -1
  2240. package/dist/src/config/commands.flags.js.map +0 -1
  2241. package/dist/src/config/default-model.js.map +0 -1
  2242. package/dist/src/config/diff.js.map +0 -1
  2243. package/dist/src/config/gateway-bind.js.map +0 -1
  2244. package/dist/src/config/index.js.map +0 -1
  2245. package/dist/src/config/loader.js.map +0 -1
  2246. package/dist/src/config/mcp-config-normalize.js.map +0 -1
  2247. package/dist/src/config/model-input.js.map +0 -1
  2248. package/dist/src/config/models-json.js.map +0 -1
  2249. package/dist/src/config/paths-state.js.map +0 -1
  2250. package/dist/src/config/paths.js.map +0 -1
  2251. package/dist/src/config/profile.js.map +0 -1
  2252. package/dist/src/config/public-url.js.map +0 -1
  2253. package/dist/src/config/reload.js.map +0 -1
  2254. package/dist/src/config/resolve-config-value.js.map +0 -1
  2255. package/dist/src/config/rules.js.map +0 -1
  2256. package/dist/src/config/runtime-overrides.js.map +0 -1
  2257. package/dist/src/config/schema.js.map +0 -1
  2258. package/dist/src/config/validate-channel-configs.js.map +0 -1
  2259. package/dist/src/config/voice.js.map +0 -1
  2260. package/dist/src/config/web-patch.js.map +0 -1
  2261. package/dist/src/config/workspace-defaults.js.map +0 -1
  2262. package/dist/src/config/workspace-dirs.js.map +0 -1
  2263. package/dist/src/config/workspace-path-helpers.js.map +0 -1
  2264. package/dist/src/config/workspace-path.js.map +0 -1
  2265. package/dist/src/connectors/approval.js.map +0 -1
  2266. package/dist/src/connectors/auth-provider-registry.js.map +0 -1
  2267. package/dist/src/connectors/builtin-catalog.js.map +0 -1
  2268. package/dist/src/connectors/catalog.js.map +0 -1
  2269. package/dist/src/connectors/composio-catalog.js.map +0 -1
  2270. package/dist/src/connectors/composio-logo.js.map +0 -1
  2271. package/dist/src/connectors/composio-sessions.js.map +0 -1
  2272. package/dist/src/connectors/composio-triggers.js.map +0 -1
  2273. package/dist/src/connectors/composio.js.map +0 -1
  2274. package/dist/src/connectors/connector-memory-sync.js.map +0 -1
  2275. package/dist/src/connectors/health.js.map +0 -1
  2276. package/dist/src/connectors/install.js.map +0 -1
  2277. package/dist/src/connectors/instances.js.map +0 -1
  2278. package/dist/src/connectors/integration-strategy.js.map +0 -1
  2279. package/dist/src/connectors/lifecycle.js.map +0 -1
  2280. package/dist/src/connectors/materialize.js.map +0 -1
  2281. package/dist/src/connectors/policy.js.map +0 -1
  2282. package/dist/src/connectors/providers.js.map +0 -1
  2283. package/dist/src/connectors/registries/modelscope.js.map +0 -1
  2284. package/dist/src/connectors/registries/official-mcp.js.map +0 -1
  2285. package/dist/src/connectors/registries/search.js.map +0 -1
  2286. package/dist/src/connectors/registries/smithery.js.map +0 -1
  2287. package/dist/src/connectors/runtime-adapter-registry.js.map +0 -1
  2288. package/dist/src/connectors/secret-store.js.map +0 -1
  2289. package/dist/src/connectors/setup-secrets.js.map +0 -1
  2290. package/dist/src/connectors/supervisor.js.map +0 -1
  2291. package/dist/src/connectors/usage.js.map +0 -1
  2292. package/dist/src/connectors/workflow-preflight.js.map +0 -1
  2293. package/dist/src/daemon/constants.js.map +0 -1
  2294. package/dist/src/daemon/install-plan.js.map +0 -1
  2295. package/dist/src/daemon/launchd.js.map +0 -1
  2296. package/dist/src/daemon/schtasks.js.map +0 -1
  2297. package/dist/src/daemon/service-audit.js.map +0 -1
  2298. package/dist/src/daemon/service.js.map +0 -1
  2299. package/dist/src/daemon/systemd.js.map +0 -1
  2300. package/dist/src/document-understanding/extract.js.map +0 -1
  2301. package/dist/src/errors/index.js.map +0 -1
  2302. package/dist/src/extensions/activation-context.js.map +0 -1
  2303. package/dist/src/extensions/activation-planner.js.map +0 -1
  2304. package/dist/src/extensions/api.js.map +0 -1
  2305. package/dist/src/extensions/bundle-mcp.js.map +0 -1
  2306. package/dist/src/extensions/bundled-extension-activation.js.map +0 -1
  2307. package/dist/src/extensions/diagnostics.js.map +0 -1
  2308. package/dist/src/extensions/discover-extensions.js.map +0 -1
  2309. package/dist/src/extensions/engine-check.js.map +0 -1
  2310. package/dist/src/extensions/extension-metadata-snapshot.js.map +0 -1
  2311. package/dist/src/extensions/extension-registry-impl.js.map +0 -1
  2312. package/dist/src/extensions/health.js.map +0 -1
  2313. package/dist/src/extensions/hooks.js.map +0 -1
  2314. package/dist/src/extensions/index.js.map +0 -1
  2315. package/dist/src/extensions/install-transaction.js.map +0 -1
  2316. package/dist/src/extensions/install.js.map +0 -1
  2317. package/dist/src/extensions/loader.js.map +0 -1
  2318. package/dist/src/extensions/lockfile.js.map +0 -1
  2319. package/dist/src/extensions/manifest-registry.js.map +0 -1
  2320. package/dist/src/extensions/marketplace.js.map +0 -1
  2321. package/dist/src/extensions/media-provider-contracts.js.map +0 -1
  2322. package/dist/src/extensions/normalize-manifest.js.map +0 -1
  2323. package/dist/src/extensions/onboard-helpers.js.map +0 -1
  2324. package/dist/src/extensions/package-contract.js.map +0 -1
  2325. package/dist/src/extensions/sdk/channel-entry.js.map +0 -1
  2326. package/dist/src/extensions/sdk/channel-helpers.js.map +0 -1
  2327. package/dist/src/extensions/sdk/index.js.map +0 -1
  2328. package/dist/src/extensions/sdk/lazy.js.map +0 -1
  2329. package/dist/src/extensions/sdk/testing.js.map +0 -1
  2330. package/dist/src/extensions/security.js.map +0 -1
  2331. package/dist/src/extensions/slots.js.map +0 -1
  2332. package/dist/src/extensions/speech-provider-contracts.js.map +0 -1
  2333. package/dist/src/extensions/store-zip-limits.js.map +0 -1
  2334. package/dist/src/extensions/typed-event-bus.js.map +0 -1
  2335. package/dist/src/extensions/types/hooks.js.map +0 -1
  2336. package/dist/src/extensions/types/providers.js.map +0 -1
  2337. package/dist/src/extensions/update.js.map +0 -1
  2338. package/dist/src/extensions/when-context.js.map +0 -1
  2339. package/dist/src/extensions/when-expression.js.map +0 -1
  2340. package/dist/src/gateway/agent-builtin-tools.js.map +0 -1
  2341. package/dist/src/gateway/agent-run-relay.js.map +0 -1
  2342. package/dist/src/gateway/agents-admin.js.map +0 -1
  2343. package/dist/src/gateway/auth.js.map +0 -1
  2344. package/dist/src/gateway/capability-presets-admin.js.map +0 -1
  2345. package/dist/src/gateway/chat-limits.js.map +0 -1
  2346. package/dist/src/gateway/chat-stream/mapper.js.map +0 -1
  2347. package/dist/src/gateway/clarify-bridge.js.map +0 -1
  2348. package/dist/src/gateway/clarify-runtime.js.map +0 -1
  2349. package/dist/src/gateway/client-ip.js.map +0 -1
  2350. package/dist/src/gateway/config-tools-web.js.map +0 -1
  2351. package/dist/src/gateway/credential.js.map +0 -1
  2352. package/dist/src/gateway/discovery/mdns.js.map +0 -1
  2353. package/dist/src/gateway/dreaming-automation-reconciler.js.map +0 -1
  2354. package/dist/src/gateway/ensure-network-cors.js.map +0 -1
  2355. package/dist/src/gateway/file-path-classifier.js.map +0 -1
  2356. package/dist/src/gateway/file-reference-registry.js.map +0 -1
  2357. package/dist/src/gateway/global-defaults-admin.js.map +0 -1
  2358. package/dist/src/gateway/heartbeat/service.js.map +0 -1
  2359. package/dist/src/gateway/hono/app.js.map +0 -1
  2360. package/dist/src/gateway/hono/lib/agent-model.js.map +0 -1
  2361. package/dist/src/gateway/hono/lib/config-payload.js.map +0 -1
  2362. package/dist/src/gateway/hono/lib/extension-assets.js.map +0 -1
  2363. package/dist/src/gateway/hono/lib/extension-store.js.map +0 -1
  2364. package/dist/src/gateway/hono/lib/mask-secret-length.js.map +0 -1
  2365. package/dist/src/gateway/hono/lib/route-logger.js.map +0 -1
  2366. package/dist/src/gateway/hono/lib/safe-providers-config.js.map +0 -1
  2367. package/dist/src/gateway/hono/lib/safe-voice-config.js.map +0 -1
  2368. package/dist/src/gateway/hono/lib/startup-unavailable.js.map +0 -1
  2369. package/dist/src/gateway/hono/lib/static-ui.js.map +0 -1
  2370. package/dist/src/gateway/hono/middleware/auth.js.map +0 -1
  2371. package/dist/src/gateway/hono/middleware/log-context.js.map +0 -1
  2372. package/dist/src/gateway/hono/middleware/logger.js.map +0 -1
  2373. package/dist/src/gateway/hono/middleware/route-errors.js.map +0 -1
  2374. package/dist/src/gateway/hono/middleware/scopes.js.map +0 -1
  2375. package/dist/src/gateway/hono/middleware/strict-rate-limit.js.map +0 -1
  2376. package/dist/src/gateway/hono/oauth-async.js.map +0 -1
  2377. package/dist/src/gateway/hono/oauth.js.map +0 -1
  2378. package/dist/src/gateway/hono/routes/activity.js.map +0 -1
  2379. package/dist/src/gateway/hono/routes/agent-stream.js.map +0 -1
  2380. package/dist/src/gateway/hono/routes/agents.js.map +0 -1
  2381. package/dist/src/gateway/hono/routes/ai-assist.js.map +0 -1
  2382. package/dist/src/gateway/hono/routes/auth-registry-extensions.js.map +0 -1
  2383. package/dist/src/gateway/hono/routes/browser-install.js.map +0 -1
  2384. package/dist/src/gateway/hono/routes/browser.js.map +0 -1
  2385. package/dist/src/gateway/hono/routes/capabilities.js.map +0 -1
  2386. package/dist/src/gateway/hono/routes/capability-presets.js.map +0 -1
  2387. package/dist/src/gateway/hono/routes/channels.js.map +0 -1
  2388. package/dist/src/gateway/hono/routes/commands-skills.js.map +0 -1
  2389. package/dist/src/gateway/hono/routes/config-patch/agents.js.map +0 -1
  2390. package/dist/src/gateway/hono/routes/config-patch/channels.js.map +0 -1
  2391. package/dist/src/gateway/hono/routes/config-patch/gateway.js.map +0 -1
  2392. package/dist/src/gateway/hono/routes/config-patch/misc.js.map +0 -1
  2393. package/dist/src/gateway/hono/routes/config-patch/result.js.map +0 -1
  2394. package/dist/src/gateway/hono/routes/config.js.map +0 -1
  2395. package/dist/src/gateway/hono/routes/connectors.js.map +0 -1
  2396. package/dist/src/gateway/hono/routes/doctor.js.map +0 -1
  2397. package/dist/src/gateway/hono/routes/dreaming.js.map +0 -1
  2398. package/dist/src/gateway/hono/routes/exposure.js.map +0 -1
  2399. package/dist/src/gateway/hono/routes/extension-gateway.js.map +0 -1
  2400. package/dist/src/gateway/hono/routes/global-defaults.js.map +0 -1
  2401. package/dist/src/gateway/hono/routes/goals.js.map +0 -1
  2402. package/dist/src/gateway/hono/routes/home.js.map +0 -1
  2403. package/dist/src/gateway/hono/routes/host-fs.js.map +0 -1
  2404. package/dist/src/gateway/hono/routes/index.js.map +0 -1
  2405. package/dist/src/gateway/hono/routes/lazy-bundles.js.map +0 -1
  2406. package/dist/src/gateway/hono/routes/lazy-fallback.js.map +0 -1
  2407. package/dist/src/gateway/hono/routes/local-apps.js.map +0 -1
  2408. package/dist/src/gateway/hono/routes/logs.js.map +0 -1
  2409. package/dist/src/gateway/hono/routes/mcp.js.map +0 -1
  2410. package/dist/src/gateway/hono/routes/media.js.map +0 -1
  2411. package/dist/src/gateway/hono/routes/memory.js.map +0 -1
  2412. package/dist/src/gateway/hono/routes/migrations.js.map +0 -1
  2413. package/dist/src/gateway/hono/routes/mobile.js.map +0 -1
  2414. package/dist/src/gateway/hono/routes/models.js.map +0 -1
  2415. package/dist/src/gateway/hono/routes/notes.js.map +0 -1
  2416. package/dist/src/gateway/hono/routes/projects.js.map +0 -1
  2417. package/dist/src/gateway/hono/routes/public-gateway.js.map +0 -1
  2418. package/dist/src/gateway/hono/routes/search.js.map +0 -1
  2419. package/dist/src/gateway/hono/routes/sessions.js.map +0 -1
  2420. package/dist/src/gateway/hono/routes/shares.js.map +0 -1
  2421. package/dist/src/gateway/hono/routes/site-shares.js.map +0 -1
  2422. package/dist/src/gateway/hono/routes/status.js.map +0 -1
  2423. package/dist/src/gateway/hono/routes/tui.js.map +0 -1
  2424. package/dist/src/gateway/hono/routes/tunnel.js.map +0 -1
  2425. package/dist/src/gateway/hono/routes/update.js.map +0 -1
  2426. package/dist/src/gateway/hono/routes/voice.js.map +0 -1
  2427. package/dist/src/gateway/hono/routes/work-discovery.js.map +0 -1
  2428. package/dist/src/gateway/hono/routes/workflows.js.map +0 -1
  2429. package/dist/src/gateway/hono/routes/workspace.js.map +0 -1
  2430. package/dist/src/gateway/hono/routes/you.js.map +0 -1
  2431. package/dist/src/gateway/hono/sse-json.js.map +0 -1
  2432. package/dist/src/gateway/hono/sse.js.map +0 -1
  2433. package/dist/src/gateway/host.js.map +0 -1
  2434. package/dist/src/gateway/image-capabilities.js.map +0 -1
  2435. package/dist/src/gateway/listen.js.map +0 -1
  2436. package/dist/src/gateway/lock.js.map +0 -1
  2437. package/dist/src/gateway/ports.js.map +0 -1
  2438. package/dist/src/gateway/protocol.js.map +0 -1
  2439. package/dist/src/gateway/public-url.js.map +0 -1
  2440. package/dist/src/gateway/rate-limit/auth-policy.js.map +0 -1
  2441. package/dist/src/gateway/rate-limit/buckets.js.map +0 -1
  2442. package/dist/src/gateway/rate-limit/env-flags.js.map +0 -1
  2443. package/dist/src/gateway/resolve-channel-connect-defer.js.map +0 -1
  2444. package/dist/src/gateway/resolve-webchat-session-key.js.map +0 -1
  2445. package/dist/src/gateway/respawn.js.map +0 -1
  2446. package/dist/src/gateway/run-loop.js.map +0 -1
  2447. package/dist/src/gateway/runtime-config.js.map +0 -1
  2448. package/dist/src/gateway/security/audit.js.map +0 -1
  2449. package/dist/src/gateway/security/csp.js.map +0 -1
  2450. package/dist/src/gateway/security/dangerous-tools.js.map +0 -1
  2451. package/dist/src/gateway/security/external-content.js.map +0 -1
  2452. package/dist/src/gateway/security/known-weak-secrets.js.map +0 -1
  2453. package/dist/src/gateway/security/loopback.js.map +0 -1
  2454. package/dist/src/gateway/security/operator-scopes.js.map +0 -1
  2455. package/dist/src/gateway/security/origin-check.js.map +0 -1
  2456. package/dist/src/gateway/security/preauth-connection-budget.js.map +0 -1
  2457. package/dist/src/gateway/security/secret-equal.js.map +0 -1
  2458. package/dist/src/gateway/server-tailscale.js.map +0 -1
  2459. package/dist/src/gateway/server.js.map +0 -1
  2460. package/dist/src/gateway/service/agent-runner.js.map +0 -1
  2461. package/dist/src/gateway/service/config-coordinator.js.map +0 -1
  2462. package/dist/src/gateway/service/marketplace-service.js.map +0 -1
  2463. package/dist/src/gateway/service/run-gateway-agent.js.map +0 -1
  2464. package/dist/src/gateway/service/session-chat-ids.js.map +0 -1
  2465. package/dist/src/gateway/service/sessions-api.js.map +0 -1
  2466. package/dist/src/gateway/service/sse-hub.js.map +0 -1
  2467. package/dist/src/gateway/service.js.map +0 -1
  2468. package/dist/src/gateway/session-reset-service.js.map +0 -1
  2469. package/dist/src/gateway/startup-readiness.js.map +0 -1
  2470. package/dist/src/gateway/startup-trace.js.map +0 -1
  2471. package/dist/src/gateway/tailscale-auth.js.map +0 -1
  2472. package/dist/src/gateway/tailscale-lifecycle.js.map +0 -1
  2473. package/dist/src/gateway/tls-server.js.map +0 -1
  2474. package/dist/src/gateway/trusted-proxy.js.map +0 -1
  2475. package/dist/src/gateway/user-turn-input.js.map +0 -1
  2476. package/dist/src/gateway/workspace-editor-path.js.map +0 -1
  2477. package/dist/src/gateway/workspace-file-search.js.map +0 -1
  2478. package/dist/src/gateway/workspace-fs-file-list.js.map +0 -1
  2479. package/dist/src/gateway/workspace-heartbeat-path.js.map +0 -1
  2480. package/dist/src/gateway/workspace-ripgrep.js.map +0 -1
  2481. package/dist/src/gateway/ws-security.js.map +0 -1
  2482. package/dist/src/generated/bundled-image-generation-providers.js.map +0 -1
  2483. package/dist/src/goals/goal-contract-draft.js.map +0 -1
  2484. package/dist/src/goals/goal-evidence-review.js.map +0 -1
  2485. package/dist/src/goals/goal-notifications.js.map +0 -1
  2486. package/dist/src/goals/goal-queue-store.js.map +0 -1
  2487. package/dist/src/goals/goal-runner.js.map +0 -1
  2488. package/dist/src/goals/goal-service.js.map +0 -1
  2489. package/dist/src/goals/goal-store.js.map +0 -1
  2490. package/dist/src/goals/goal-workflow-judge.js.map +0 -1
  2491. package/dist/src/heartbeat/active-hours.js.map +0 -1
  2492. package/dist/src/heartbeat/content-check.js.map +0 -1
  2493. package/dist/src/heartbeat/event-prompt.js.map +0 -1
  2494. package/dist/src/heartbeat/tokens.js.map +0 -1
  2495. package/dist/src/heartbeat/wake.js.map +0 -1
  2496. package/dist/src/i18n/format.js.map +0 -1
  2497. package/dist/src/i18n/goals-bundle.js.map +0 -1
  2498. package/dist/src/i18n/locale.js.map +0 -1
  2499. package/dist/src/i18n/locales/goals.en.js.map +0 -1
  2500. package/dist/src/i18n/locales/goals.zh.js.map +0 -1
  2501. package/dist/src/i18n/locales/share-tool.en.js.map +0 -1
  2502. package/dist/src/i18n/locales/share-tool.zh.js.map +0 -1
  2503. package/dist/src/i18n/share-tool-bundle.js.map +0 -1
  2504. package/dist/src/index.js.map +0 -1
  2505. package/dist/src/infra/brew.js.map +0 -1
  2506. package/dist/src/infra/bus/queue.js.map +0 -1
  2507. package/dist/src/infra/debounce.js.map +0 -1
  2508. package/dist/src/infra/exec.js.map +0 -1
  2509. package/dist/src/infra/gateway-process-argv.js.map +0 -1
  2510. package/dist/src/infra/gateway-processes.js.map +0 -1
  2511. package/dist/src/infra/host-env-security-policy.js.map +0 -1
  2512. package/dist/src/infra/host-env-security.js.map +0 -1
  2513. package/dist/src/infra/http-proxy-env.js.map +0 -1
  2514. package/dist/src/infra/is-main.js.map +0 -1
  2515. package/dist/src/infra/json-utf8-bytes.js.map +0 -1
  2516. package/dist/src/infra/node-sqlite.js.map +0 -1
  2517. package/dist/src/infra/package-json.js.map +0 -1
  2518. package/dist/src/infra/package-update-steps.js.map +0 -1
  2519. package/dist/src/infra/path-env.js.map +0 -1
  2520. package/dist/src/infra/path-prepend.js.map +0 -1
  2521. package/dist/src/infra/ports.js.map +0 -1
  2522. package/dist/src/infra/rate-limit/failure-limiter.js.map +0 -1
  2523. package/dist/src/infra/rate-limit/keyed-store.js.map +0 -1
  2524. package/dist/src/infra/rate-limit/rate-limiter.js.map +0 -1
  2525. package/dist/src/infra/restart.js.map +0 -1
  2526. package/dist/src/infra/retry.js.map +0 -1
  2527. package/dist/src/infra/run-command.js.map +0 -1
  2528. package/dist/src/infra/sqlite-errors.js.map +0 -1
  2529. package/dist/src/infra/ssh-tunnel.js.map +0 -1
  2530. package/dist/src/infra/stable-node-path.js.map +0 -1
  2531. package/dist/src/infra/tailscale.js.map +0 -1
  2532. package/dist/src/infra/undici-fetch.js.map +0 -1
  2533. package/dist/src/infra/unhandled-rejections.js.map +0 -1
  2534. package/dist/src/infra/update-channels.js.map +0 -1
  2535. package/dist/src/infra/update-check.js.map +0 -1
  2536. package/dist/src/infra/update-global.js.map +0 -1
  2537. package/dist/src/infra/update-lock.js.map +0 -1
  2538. package/dist/src/infra/update-log.js.map +0 -1
  2539. package/dist/src/infra/update-restart.js.map +0 -1
  2540. package/dist/src/infra/update-runner.js.map +0 -1
  2541. package/dist/src/infra/update-startup.js.map +0 -1
  2542. package/dist/src/infra/warning-filter.js.map +0 -1
  2543. package/dist/src/infra/write-file-atomic.js.map +0 -1
  2544. package/dist/src/knowledge/connected-knowledge-pipeline.js.map +0 -1
  2545. package/dist/src/knowledge/coordinator.js.map +0 -1
  2546. package/dist/src/knowledge/ingestion-service.js.map +0 -1
  2547. package/dist/src/local-apps/acceptance.js.map +0 -1
  2548. package/dist/src/local-apps/preview-runtime-bridge.js.map +0 -1
  2549. package/dist/src/local-apps/runtime-entry.js.map +0 -1
  2550. package/dist/src/local-apps/scaffold.js.map +0 -1
  2551. package/dist/src/local-apps/service.js.map +0 -1
  2552. package/dist/src/local-apps/store.js.map +0 -1
  2553. package/dist/src/markdown/chunk.js.map +0 -1
  2554. package/dist/src/markdown/code-spans.js.map +0 -1
  2555. package/dist/src/markdown/fences.js.map +0 -1
  2556. package/dist/src/markdown/frontmatter.js.map +0 -1
  2557. package/dist/src/markdown/ir.js.map +0 -1
  2558. package/dist/src/markdown/render.js.map +0 -1
  2559. package/dist/src/markdown/tables.js.map +0 -1
  2560. package/dist/src/mcp/channel-bridge.js.map +0 -1
  2561. package/dist/src/mcp/channel-server.js.map +0 -1
  2562. package/dist/src/mcp/channel-shared.js.map +0 -1
  2563. package/dist/src/mcp/channel-tools.js.map +0 -1
  2564. package/dist/src/mcp/gateway-http-client.js.map +0 -1
  2565. package/dist/src/media/media-reference.js.map +0 -1
  2566. package/dist/src/media/paths.js.map +0 -1
  2567. package/dist/src/media/session-references.js.map +0 -1
  2568. package/dist/src/media/store.js.map +0 -1
  2569. package/dist/src/media/uri.js.map +0 -1
  2570. package/dist/src/media-shared/http/api-key-rotation.js.map +0 -1
  2571. package/dist/src/media-shared/http/deadline.js.map +0 -1
  2572. package/dist/src/media-shared/http/private-network.js.map +0 -1
  2573. package/dist/src/media-shared/http/provider-http-errors.js.map +0 -1
  2574. package/dist/src/media-shared/http/provider-http.js.map +0 -1
  2575. package/dist/src/media-shared/http/resolve-provider-http-request-config.js.map +0 -1
  2576. package/dist/src/media-shared/http/ssrf-guard.js.map +0 -1
  2577. package/dist/src/media-shared/http/test-helpers/mock-server.js.map +0 -1
  2578. package/dist/src/media-understanding/audio-transcription-runner.js.map +0 -1
  2579. package/dist/src/media-understanding/openai-compatible-audio.js.map +0 -1
  2580. package/dist/src/media-understanding/registry.js.map +0 -1
  2581. package/dist/src/media-understanding/resolve-entries.js.map +0 -1
  2582. package/dist/src/media-understanding/runner.js.map +0 -1
  2583. package/dist/src/migrations/config/default-capability-preset.js.map +0 -1
  2584. package/dist/src/migrations/registry.js.map +0 -1
  2585. package/dist/src/migrations/runner.js.map +0 -1
  2586. package/dist/src/mobile/notification-service.js.map +0 -1
  2587. package/dist/src/mobile/notification-store.js.map +0 -1
  2588. package/dist/src/mobile/notification-types.js.map +0 -1
  2589. package/dist/src/notes/agent-context.js.map +0 -1
  2590. package/dist/src/notes/attachment-ref.js.map +0 -1
  2591. package/dist/src/notes/note-attachment-sync.js.map +0 -1
  2592. package/dist/src/notes/note-index-meta.js.map +0 -1
  2593. package/dist/src/notes/note-markdown.js.map +0 -1
  2594. package/dist/src/notes/paths.js.map +0 -1
  2595. package/dist/src/notes/service.js.map +0 -1
  2596. package/dist/src/notes/store.js.map +0 -1
  2597. package/dist/src/package-version.js.map +0 -1
  2598. package/dist/src/pets/factory.js.map +0 -1
  2599. package/dist/src/pets/manifest.js.map +0 -1
  2600. package/dist/src/pets/validator.js.map +0 -1
  2601. package/dist/src/process/kill-tree.js.map +0 -1
  2602. package/dist/src/project-trust/trust-store.js.map +0 -1
  2603. package/dist/src/projects/automation-bind.js.map +0 -1
  2604. package/dist/src/projects/goal-bind.js.map +0 -1
  2605. package/dist/src/projects/memory-bind.js.map +0 -1
  2606. package/dist/src/projects/project-agent-suggestion.js.map +0 -1
  2607. package/dist/src/projects/project-agent.js.map +0 -1
  2608. package/dist/src/projects/project-kind.js.map +0 -1
  2609. package/dist/src/projects/project-loop.js.map +0 -1
  2610. package/dist/src/projects/project-service.js.map +0 -1
  2611. package/dist/src/projects/project-store.js.map +0 -1
  2612. package/dist/src/projects/session-bind.js.map +0 -1
  2613. package/dist/src/projects/workflow-bind.js.map +0 -1
  2614. package/dist/src/projects/workspace-project.js.map +0 -1
  2615. package/dist/src/projects/workspace.js.map +0 -1
  2616. package/dist/src/providers/auth-runtime/auth-profile-store.js.map +0 -1
  2617. package/dist/src/providers/auth-runtime/is-configured.js.map +0 -1
  2618. package/dist/src/providers/auth-runtime/oauth.js.map +0 -1
  2619. package/dist/src/providers/auth-runtime/resolve-api-key.js.map +0 -1
  2620. package/dist/src/providers/auth-runtime/resolve-auth.js.map +0 -1
  2621. package/dist/src/providers/constants.js.map +0 -1
  2622. package/dist/src/providers/domestic-presets.js.map +0 -1
  2623. package/dist/src/providers/env-keys.js.map +0 -1
  2624. package/dist/src/providers/extension-stream-bridge.js.map +0 -1
  2625. package/dist/src/providers/index.js.map +0 -1
  2626. package/dist/src/providers/model-call.js.map +0 -1
  2627. package/dist/src/providers/model-discovery.js.map +0 -1
  2628. package/dist/src/providers/model-registry.js.map +0 -1
  2629. package/dist/src/providers/model-supplements.js.map +0 -1
  2630. package/dist/src/providers/plugin-registry.js.map +0 -1
  2631. package/dist/src/providers/presentation.js.map +0 -1
  2632. package/dist/src/remote-access/exposure-guards.js.map +0 -1
  2633. package/dist/src/remote-access/exposure-manager.js.map +0 -1
  2634. package/dist/src/review/review-git.js.map +0 -1
  2635. package/dist/src/review/review-types.js.map +0 -1
  2636. package/dist/src/routing/account-id.js.map +0 -1
  2637. package/dist/src/routing/agent-session-key.js.map +0 -1
  2638. package/dist/src/routing/bindings.js.map +0 -1
  2639. package/dist/src/routing/index.js.map +0 -1
  2640. package/dist/src/routing/resolve-route.js.map +0 -1
  2641. package/dist/src/routing/resolve-tui-session-key.js.map +0 -1
  2642. package/dist/src/routing/session-key-utils.js.map +0 -1
  2643. package/dist/src/routing/session-key.js.map +0 -1
  2644. package/dist/src/session/abort-cutoff.js.map +0 -1
  2645. package/dist/src/session/chat-export.js.map +0 -1
  2646. package/dist/src/session/client-history.js.map +0 -1
  2647. package/dist/src/session/compaction-checkpoints.js.map +0 -1
  2648. package/dist/src/session/config-store.js.map +0 -1
  2649. package/dist/src/session/init-session-turn.js.map +0 -1
  2650. package/dist/src/session/lifecycle-timestamps.js.map +0 -1
  2651. package/dist/src/session/load-jsonl-entries.js.map +0 -1
  2652. package/dist/src/session/manager.js.map +0 -1
  2653. package/dist/src/session/patch-metadata.js.map +0 -1
  2654. package/dist/src/session/reset-policy.js.map +0 -1
  2655. package/dist/src/session/reset-triggers.js.map +0 -1
  2656. package/dist/src/session/reset-type.js.map +0 -1
  2657. package/dist/src/session/resolve-session.js.map +0 -1
  2658. package/dist/src/session/session-context-for-llm.js.map +0 -1
  2659. package/dist/src/session/session-id.js.map +0 -1
  2660. package/dist/src/session/session-title.js.map +0 -1
  2661. package/dist/src/session/session-workspace.js.map +0 -1
  2662. package/dist/src/session/store.js.map +0 -1
  2663. package/dist/src/session/stored-rows-to-file-entries.js.map +0 -1
  2664. package/dist/src/session/thinking-resolve.js.map +0 -1
  2665. package/dist/src/session/transcript-events.js.map +0 -1
  2666. package/dist/src/session/transcript-format.js.map +0 -1
  2667. package/dist/src/session/transcript-outline.js.map +0 -1
  2668. package/dist/src/session/transcript-stats.js.map +0 -1
  2669. package/dist/src/session/types.js.map +0 -1
  2670. package/dist/src/session/user-round-delete.js.map +0 -1
  2671. package/dist/src/share/share-audit.js.map +0 -1
  2672. package/dist/src/share/share-auto.js.map +0 -1
  2673. package/dist/src/share/share-config.js.map +0 -1
  2674. package/dist/src/share/share-landing.js.map +0 -1
  2675. package/dist/src/share/share-rate-limit.js.map +0 -1
  2676. package/dist/src/share/share-store.js.map +0 -1
  2677. package/dist/src/share/share-thumbnail.js.map +0 -1
  2678. package/dist/src/share/share-types.js.map +0 -1
  2679. package/dist/src/share/share-url.js.map +0 -1
  2680. package/dist/src/share/share-zip.js.map +0 -1
  2681. package/dist/src/share/site-proxy.js.map +0 -1
  2682. package/dist/src/share/site-share-config.js.map +0 -1
  2683. package/dist/src/share/site-share-router.js.map +0 -1
  2684. package/dist/src/share/site-share-store.js.map +0 -1
  2685. package/dist/src/share/site-share-types.js.map +0 -1
  2686. package/dist/src/share/site-static-serve.js.map +0 -1
  2687. package/dist/src/storage/sqlite/activity-repository.js.map +0 -1
  2688. package/dist/src/storage/sqlite/config-repository.js.map +0 -1
  2689. package/dist/src/storage/sqlite/connection.js.map +0 -1
  2690. package/dist/src/storage/sqlite/connector-repository.js.map +0 -1
  2691. package/dist/src/storage/sqlite/fts.js.map +0 -1
  2692. package/dist/src/storage/sqlite/knowledge-repository.js.map +0 -1
  2693. package/dist/src/storage/sqlite/memory-index-repository.js.map +0 -1
  2694. package/dist/src/storage/sqlite/memory-records-repository.js.map +0 -1
  2695. package/dist/src/storage/sqlite/memory-reference-consent-repository.js.map +0 -1
  2696. package/dist/src/storage/sqlite/migrations/discover.js.map +0 -1
  2697. package/dist/src/storage/sqlite/migrations/errors.js.map +0 -1
  2698. package/dist/src/storage/sqlite/migrations/runner.js.map +0 -1
  2699. package/dist/src/storage/sqlite/note-agent-context-repository.js.map +0 -1
  2700. package/dist/src/storage/sqlite/notes-repository.js.map +0 -1
  2701. package/dist/src/storage/sqlite/paths.js.map +0 -1
  2702. package/dist/src/storage/sqlite/row-mappers.js.map +0 -1
  2703. package/dist/src/storage/sqlite/schema-version.js.map +0 -1
  2704. package/dist/src/storage/sqlite/schema.js.map +0 -1
  2705. package/dist/src/storage/sqlite/session-metadata.js.map +0 -1
  2706. package/dist/src/storage/sqlite/session-repository.js.map +0 -1
  2707. package/dist/src/storage/sqlite/transaction.js.map +0 -1
  2708. package/dist/src/storage/sqlite/transcript-repository.js.map +0 -1
  2709. package/dist/src/storage/sqlite/user-profile-setup-repository.js.map +0 -1
  2710. package/dist/src/storage/sqlite/user-trust-repository.js.map +0 -1
  2711. package/dist/src/tui/backends/embedded-backend.js.map +0 -1
  2712. package/dist/src/tui/backends/gateway-sse-backend.js.map +0 -1
  2713. package/dist/src/tui/chat-history.js.map +0 -1
  2714. package/dist/src/tui/clipboard-image.js.map +0 -1
  2715. package/dist/src/tui/clipboard-text.js.map +0 -1
  2716. package/dist/src/tui/components/assistant-message.js.map +0 -1
  2717. package/dist/src/tui/components/bash-execution.js.map +0 -1
  2718. package/dist/src/tui/components/bash-summary.js.map +0 -1
  2719. package/dist/src/tui/components/branch-message-summary.js.map +0 -1
  2720. package/dist/src/tui/components/branch-summary.js.map +0 -1
  2721. package/dist/src/tui/components/chat-log.js.map +0 -1
  2722. package/dist/src/tui/components/compaction-summary.js.map +0 -1
  2723. package/dist/src/tui/components/custom-editor.js.map +0 -1
  2724. package/dist/src/tui/components/custom-message.js.map +0 -1
  2725. package/dist/src/tui/components/dynamic-border.js.map +0 -1
  2726. package/dist/src/tui/components/extension-dialog.js.map +0 -1
  2727. package/dist/src/tui/components/fuzzy-filter.js.map +0 -1
  2728. package/dist/src/tui/components/scoped-models-selector.js.map +0 -1
  2729. package/dist/src/tui/components/searchable-select-list.js.map +0 -1
  2730. package/dist/src/tui/components/session-selector.js.map +0 -1
  2731. package/dist/src/tui/components/settings-selector.js.map +0 -1
  2732. package/dist/src/tui/components/thinking-selector.js.map +0 -1
  2733. package/dist/src/tui/components/tool-execution.js.map +0 -1
  2734. package/dist/src/tui/components/tui-bottom-bar.js.map +0 -1
  2735. package/dist/src/tui/components/tui-header.js.map +0 -1
  2736. package/dist/src/tui/components/user-message.js.map +0 -1
  2737. package/dist/src/tui/components/visual-truncate.js.map +0 -1
  2738. package/dist/src/tui/extension-host/autocomplete.js.map +0 -1
  2739. package/dist/src/tui/extension-host/host.js.map +0 -1
  2740. package/dist/src/tui/extension-host/load-extensions.js.map +0 -1
  2741. package/dist/src/tui/extension-host/runtime-context.js.map +0 -1
  2742. package/dist/src/tui/extension-host/runtime.js.map +0 -1
  2743. package/dist/src/tui/extension-host/surface.js.map +0 -1
  2744. package/dist/src/tui/extension-host/tool-renderers.js.map +0 -1
  2745. package/dist/src/tui/format-tui-hotkeys.js.map +0 -1
  2746. package/dist/src/tui/sse-consumer.js.map +0 -1
  2747. package/dist/src/tui/theme/dark.js.map +0 -1
  2748. package/dist/src/tui/theme/light.js.map +0 -1
  2749. package/dist/src/tui/theme-manager.js.map +0 -1
  2750. package/dist/src/tui/theme.js.map +0 -1
  2751. package/dist/src/tui/tool-summary.js.map +0 -1
  2752. package/dist/src/tui/tui-agent-events.js.map +0 -1
  2753. package/dist/src/tui/tui-command-formatters.js.map +0 -1
  2754. package/dist/src/tui/tui-commands.js.map +0 -1
  2755. package/dist/src/tui/tui-context-usage.js.map +0 -1
  2756. package/dist/src/tui/tui-extension-user-message.js.map +0 -1
  2757. package/dist/src/tui/tui-fd-path.js.map +0 -1
  2758. package/dist/src/tui/tui-file-autocomplete.js.map +0 -1
  2759. package/dist/src/tui/tui-follow-up-queue.js.map +0 -1
  2760. package/dist/src/tui/tui-git-branch.js.map +0 -1
  2761. package/dist/src/tui/tui-keybindings-file.js.map +0 -1
  2762. package/dist/src/tui/tui-lifecycle.js.map +0 -1
  2763. package/dist/src/tui/tui-local-shell.js.map +0 -1
  2764. package/dist/src/tui/tui-model-picker.js.map +0 -1
  2765. package/dist/src/tui/tui-oauth-login.js.map +0 -1
  2766. package/dist/src/tui/tui-overlays.js.map +0 -1
  2767. package/dist/src/tui/tui-picker-overlay.js.map +0 -1
  2768. package/dist/src/tui/tui-run-state.js.map +0 -1
  2769. package/dist/src/tui/tui-run-status-format.js.map +0 -1
  2770. package/dist/src/tui/tui-runtime-hints.js.map +0 -1
  2771. package/dist/src/tui/tui-scoped-models.js.map +0 -1
  2772. package/dist/src/tui/tui-session-actions.js.map +0 -1
  2773. package/dist/src/tui/tui-session-format.js.map +0 -1
  2774. package/dist/src/tui/tui-session-snapshot.js.map +0 -1
  2775. package/dist/src/tui/tui-session-stats.js.map +0 -1
  2776. package/dist/src/tui/tui-settings.js.map +0 -1
  2777. package/dist/src/tui/tui-skills-autocomplete.js.map +0 -1
  2778. package/dist/src/tui/tui-startup-resources.js.map +0 -1
  2779. package/dist/src/tui/tui-startup-text.js.map +0 -1
  2780. package/dist/src/tui/tui-stdio-filter.js.map +0 -1
  2781. package/dist/src/tui/tui-submit.js.map +0 -1
  2782. package/dist/src/tui/tui-suspend.js.map +0 -1
  2783. package/dist/src/tui/tui-timeline-picker.js.map +0 -1
  2784. package/dist/src/tui/tui-timeline.js.map +0 -1
  2785. package/dist/src/tui/tui-tool-diff.js.map +0 -1
  2786. package/dist/src/tui/tui-tool-result.js.map +0 -1
  2787. package/dist/src/tui/tui-transcript-tree-picker.js.map +0 -1
  2788. package/dist/src/tui/tui-transcript-tree.js.map +0 -1
  2789. package/dist/src/tui/tui-types.js.map +0 -1
  2790. package/dist/src/tui/tui-workflow-slash.js.map +0 -1
  2791. package/dist/src/tui/tui.js.map +0 -1
  2792. package/dist/src/tui/xopc-tui-keybindings.js.map +0 -1
  2793. package/dist/src/tunnel/broker-client.js.map +0 -1
  2794. package/dist/src/tunnel/consent.js.map +0 -1
  2795. package/dist/src/tunnel/enable-lan-pairing.js.map +0 -1
  2796. package/dist/src/tunnel/env.js.map +0 -1
  2797. package/dist/src/tunnel/frp-subdomain-host.js.map +0 -1
  2798. package/dist/src/tunnel/frpc-binary.js.map +0 -1
  2799. package/dist/src/tunnel/frpc-config.js.map +0 -1
  2800. package/dist/src/tunnel/frpc-extract.js.map +0 -1
  2801. package/dist/src/tunnel/frpc-process.js.map +0 -1
  2802. package/dist/src/tunnel/gateway-lifecycle.js.map +0 -1
  2803. package/dist/src/tunnel/pair-context.js.map +0 -1
  2804. package/dist/src/tunnel/pair-url.js.map +0 -1
  2805. package/dist/src/tunnel/pairing-rate-limit.js.map +0 -1
  2806. package/dist/src/tunnel/pairing.js.map +0 -1
  2807. package/dist/src/tunnel/tunnel-audit.js.map +0 -1
  2808. package/dist/src/tunnel/tunnel-config.js.map +0 -1
  2809. package/dist/src/tunnel/tunnel-persist.js.map +0 -1
  2810. package/dist/src/tunnel/tunnel-qr.js.map +0 -1
  2811. package/dist/src/tunnel/tunnel-rate-limit.js.map +0 -1
  2812. package/dist/src/tunnel/tunnel-service.js.map +0 -1
  2813. package/dist/src/tunnel/tunnel-state.js.map +0 -1
  2814. package/dist/src/tunnel/well-known.js.map +0 -1
  2815. package/dist/src/user-context/config.js.map +0 -1
  2816. package/dist/src/user-context/import.js.map +0 -1
  2817. package/dist/src/user-context/owner.js.map +0 -1
  2818. package/dist/src/user-context/profile.js.map +0 -1
  2819. package/dist/src/user-context/projection.js.map +0 -1
  2820. package/dist/src/user-context/runtime.js.map +0 -1
  2821. package/dist/src/user-context/source-recommendations.js.map +0 -1
  2822. package/dist/src/user-context/trust-policy.js.map +0 -1
  2823. package/dist/src/utils/global-singleton.js.map +0 -1
  2824. package/dist/src/utils/helpers.js.map +0 -1
  2825. package/dist/src/utils/index.js.map +0 -1
  2826. package/dist/src/utils/is-record.js.map +0 -1
  2827. package/dist/src/utils/logger/audit.js.map +0 -1
  2828. package/dist/src/utils/logger/config.js.map +0 -1
  2829. package/dist/src/utils/logger/context.js.map +0 -1
  2830. package/dist/src/utils/logger/exporters.js.map +0 -1
  2831. package/dist/src/utils/logger/index.js.map +0 -1
  2832. package/dist/src/utils/logger/log-store.js.map +0 -1
  2833. package/dist/src/utils/logger/log-stream.js.map +0 -1
  2834. package/dist/src/utils/logger/pino-record.js.map +0 -1
  2835. package/dist/src/utils/logger/redact.js.map +0 -1
  2836. package/dist/src/utils/logger/rotation.js.map +0 -1
  2837. package/dist/src/utils/logger/shutdown.js.map +0 -1
  2838. package/dist/src/utils/logger/stats.js.map +0 -1
  2839. package/dist/src/utils/logger/streams.js.map +0 -1
  2840. package/dist/src/utils/logger/types.js.map +0 -1
  2841. package/dist/src/utils/logger.js.map +0 -1
  2842. package/dist/src/utils/redact-sensitive-url.js.map +0 -1
  2843. package/dist/src/utils/sanitize-log.js.map +0 -1
  2844. package/dist/src/utils/string-coerce.js.map +0 -1
  2845. package/dist/src/voice/language-profile.js.map +0 -1
  2846. package/dist/src/voice/local/model-files.js.map +0 -1
  2847. package/dist/src/voice/local/model-manager.js.map +0 -1
  2848. package/dist/src/voice/local/models.js.map +0 -1
  2849. package/dist/src/voice/local/runtime-client.js.map +0 -1
  2850. package/dist/src/voice/local/runtime-dispatcher.js.map +0 -1
  2851. package/dist/src/voice/local/runtime-worker.js.map +0 -1
  2852. package/dist/src/voice/local/wav.js.map +0 -1
  2853. package/dist/src/voice/metadata/builtin.js.map +0 -1
  2854. package/dist/src/voice/metadata/registry.js.map +0 -1
  2855. package/dist/src/voice/stt/availability.js.map +0 -1
  2856. package/dist/src/voice/stt/config-slice.js.map +0 -1
  2857. package/dist/src/voice/stt/factory.js.map +0 -1
  2858. package/dist/src/voice/stt/index.js.map +0 -1
  2859. package/dist/src/voice/stt/list-providers.js.map +0 -1
  2860. package/dist/src/voice/stt/mention.js.map +0 -1
  2861. package/dist/src/voice/stt/preflight.js.map +0 -1
  2862. package/dist/src/voice/stt/providers/alibaba-transcription.js.map +0 -1
  2863. package/dist/src/voice/stt/providers/local-transcription.js.map +0 -1
  2864. package/dist/src/voice/stt/providers/openai-transcription.js.map +0 -1
  2865. package/dist/src/voice/stt/transcribe-core.js.map +0 -1
  2866. package/dist/src/voice/stt/types.js.map +0 -1
  2867. package/dist/src/voice/tts/audio.js.map +0 -1
  2868. package/dist/src/voice/tts/config-slice.js.map +0 -1
  2869. package/dist/src/voice/tts/directives.js.map +0 -1
  2870. package/dist/src/voice/tts/factory.js.map +0 -1
  2871. package/dist/src/voice/tts/list-providers.js.map +0 -1
  2872. package/dist/src/voice/tts/merge-config.js.map +0 -1
  2873. package/dist/src/voice/tts/openai-compatible-speech.js.map +0 -1
  2874. package/dist/src/voice/tts/payload.js.map +0 -1
  2875. package/dist/src/voice/tts/preprocess.js.map +0 -1
  2876. package/dist/src/voice/tts/providers/alibaba-speech.js.map +0 -1
  2877. package/dist/src/voice/tts/providers/edge-speech.js.map +0 -1
  2878. package/dist/src/voice/tts/providers/minimax-speech.js.map +0 -1
  2879. package/dist/src/voice/tts/providers/openai-speech.js.map +0 -1
  2880. package/dist/src/voice/tts/sentence-boundary.js.map +0 -1
  2881. package/dist/src/voice/tts/service.js.map +0 -1
  2882. package/dist/src/voice/tts/speak-core.js.map +0 -1
  2883. package/dist/src/voice/tts/speech-registry.js.map +0 -1
  2884. package/dist/src/voice/tts/status-tracker.js.map +0 -1
  2885. package/dist/src/voice/tts/summarize.js.map +0 -1
  2886. package/dist/src/voice/tts/types.js.map +0 -1
  2887. package/dist/src/work-discovery/analyzer.js.map +0 -1
  2888. package/dist/src/work-discovery/probe.js.map +0 -1
  2889. package/dist/src/work-discovery/repository.js.map +0 -1
  2890. package/dist/src/work-discovery/service.js.map +0 -1
  2891. package/dist/src/work-items/agent-context.js.map +0 -1
  2892. package/dist/src/work-items/work-item-service.js.map +0 -1
  2893. package/dist/src/work-items/work-item-store.js.map +0 -1
  2894. package/dist/src/work-items/work-item-workflow-judge.js.map +0 -1
  2895. package/dist/src/workflows/authoring/workflow-draft-store.js.map +0 -1
  2896. package/dist/src/workflows/domain/definition-utils.js.map +0 -1
  2897. package/dist/src/workflows/domain/run.js.map +0 -1
  2898. package/dist/src/workflows/domain/schema-validation.js.map +0 -1
  2899. package/dist/src/workflows/domain/validation.js.map +0 -1
  2900. package/dist/src/workflows/draft/workflow-draft-prompt.js.map +0 -1
  2901. package/dist/src/workflows/draft/workflow-draft-service.js.map +0 -1
  2902. package/dist/src/workflows/draft/workflow-draft-validator.js.map +0 -1
  2903. package/dist/src/workflows/engine/projector.js.map +0 -1
  2904. package/dist/src/workflows/engine/workflow-engine.js.map +0 -1
  2905. package/dist/src/workflows/registry/catalog-workflow-definition-registry.js.map +0 -1
  2906. package/dist/src/workflows/runtime/graph-workflow-runtime.js.map +0 -1
  2907. package/dist/src/workflows/service/run-view-to-snapshot.js.map +0 -1
  2908. package/dist/src/workflows/service/workflow-run-service.js.map +0 -1
  2909. package/dist/src/workflows/service/workflow-session-bridge.js.map +0 -1
  2910. package/dist/src/workflows/service/workflow-session-key.js.map +0 -1
  2911. package/dist/src/workflows/store/event-store.js.map +0 -1
  2912. package/dist/src/workflows/store/paths.js.map +0 -1
  2913. package/dist/src/workflows/store/run-index-store.js.map +0 -1
  2914. package/dist/src/workflows/store/run-store.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"rem-patterns.js","names":[],"sources":["../../../../../src/agent/memory/dreaming/rem-patterns.ts"],"sourcesContent":["import fs from 'node:fs/promises';\nimport path from 'node:path';\n\nimport { createLogger } from '../../../utils/logger.js';\nimport { DREAMING_DIR_RELATIVE, DREAMS_MD_FILENAME, MS_PER_DAY } from './constants.js';\nimport type { DreamingRemConfig } from './config.js';\nimport {\n bumpEntryPhaseSignal,\n loadDreamingStore,\n saveDreamingStore,\n withDreamingStoreLock,\n type DreamingStoreEntry,\n} from './short-term-store.js';\nimport { isoDay } from './utils.js';\nimport { inferMemorySensitivity } from '../sensitivity.js';\nimport { activateRemInsight, remPatternKey } from './promotion-lifecycle.js';\nimport {\n DREAMING_LAST_RUN_FORMAT_VERSION,\n type DreamingRemLastRun,\n} from './last-run.js';\n\nconst log = createLogger('Dreaming:REM');\n\n// ── Pattern types ──────────────────────────────────────────────────────\n\ntype PatternCluster = {\n representative: DreamingStoreEntry;\n members: DreamingStoreEntry[];\n strength: number;\n /** Shared query hashes across members. */\n sharedQueries: string[];\n /** Distinct source files involved. */\n distinctPaths: string[];\n};\n\n// ── Config defaults ────────────────────────────────────────────────────\n\nfunction resolveConfig(overrides?: Partial<DreamingRemConfig>): DreamingRemConfig {\n return {\n enabled: overrides?.enabled === true,\n cron: typeof overrides?.cron === 'string' ? overrides.cron : '0 5 * * 0',\n lookbackDays: Math.max(1, Math.floor(Number(overrides?.lookbackDays) || 7)),\n limit: Math.max(0, Math.floor(Number(overrides?.limit) || 10)),\n minPatternStrength: Math.max(0, Math.min(1, Number(overrides?.minPatternStrength) || 0.75)),\n };\n}\n\n// ── Core REM pattern discovery ─────────────────────────────────────────\n\n/**\n * REM phase: cross-session pattern discovery.\n *\n * Scans the short-term store for entries that share query hashes or\n * appear across multiple indexed memory sources, then clusters them to identify\n * recurring themes/patterns. Bumps `remHits` on touched entries and\n * optionally writes a pattern summary to DREAMS.md.\n *\n * Runs weekly; expensive but insightful.\n */\nexport async function runRemPatterns(params: {\n agentId: string;\n workspaceDir: string;\n dreamingRoot: string;\n config?: Partial<DreamingRemConfig>;\n sensitiveWritePolicy?: 'deny' | 'confirm' | 'allow';\n promotionWritePolicy?: 'deny' | 'confirm' | 'allow';\n now?: Date;\n}): Promise<{\n ok: boolean;\n reason: string;\n patternsDiscovered: number;\n entriesAnalyzed: number;\n}> {\n const cfg = resolveConfig(params.config);\n const now = params.now ?? new Date();\n const startedAt = now.toISOString();\n const runId = `rem:${startedAt}:${process.pid}`;\n const startMs = Date.now();\n const nowMs = now.getTime();\n\n if (!cfg.enabled) {\n await writeLastRun(params.dreamingRoot, {\n runId, startedAt, cfg, ok: true, reason: 'REM patterns disabled', startMs,\n rem: { patternsDiscovered: 0, entriesAnalyzed: 0 },\n });\n return { ok: true, reason: 'REM patterns disabled', patternsDiscovered: 0, entriesAnalyzed: 0 };\n }\n\n try {\n return await withDreamingStoreLock(params.dreamingRoot, async () => {\n const { store } = await loadDreamingStore({ dreamingRoot: params.dreamingRoot });\n\n // Filter entries within the lookback window.\n const cutoffMs = nowMs - cfg.lookbackDays * MS_PER_DAY;\n const recentEntries = Object.values(store.entries ?? {}).filter(\n (entry): entry is DreamingStoreEntry => {\n if (!entry || typeof entry !== 'object') return false;\n if (!entry.lastRecalledAt) return false;\n const lastMs = Date.parse(entry.lastRecalledAt);\n return Number.isFinite(lastMs) && lastMs >= cutoffMs;\n },\n );\n\n if (recentEntries.length < 2) {\n await writeLastRun(params.dreamingRoot, {\n runId, startedAt, cfg, ok: true, reason: 'not enough recent entries for pattern analysis', startMs,\n rem: { patternsDiscovered: 0, entriesAnalyzed: recentEntries.length },\n });\n return {\n ok: true,\n reason: 'not enough recent entries for pattern analysis',\n patternsDiscovered: 0,\n entriesAnalyzed: recentEntries.length,\n };\n }\n\n // Discover patterns by clustering entries that share query hashes.\n const clusters = discoverPatternClusters(recentEntries, cfg.minPatternStrength);\n const topClusters = clusters\n .filter((cluster) => {\n const sensitivity = inferMemorySensitivity(cluster.members.map((member) => member.snippet).join('\\n'));\n return sensitivity === 'normal' || params.sensitiveWritePolicy === 'allow';\n })\n .slice(0, cfg.limit);\n\n // Bump remHits on all entries that belong to a discovered pattern.\n const touchedKeys = new Set<string>();\n for (const cluster of topClusters) {\n for (const member of cluster.members) {\n if (!touchedKeys.has(member.key)) {\n touchedKeys.add(member.key);\n const storeEntry = store.entries[member.key];\n if (storeEntry) {\n bumpEntryPhaseSignal(storeEntry, 'remHits');\n }\n }\n }\n }\n\n store.updatedAt = now.toISOString();\n await saveDreamingStore({ dreamingRoot: params.dreamingRoot, store });\n\n if (params.promotionWritePolicy === 'allow') {\n for (const cluster of topClusters) {\n const sensitivity = inferMemorySensitivity(cluster.members.map((member) => member.snippet).join('\\n'));\n activateRemInsight({\n agentId: params.agentId,\n workspaceId: params.workspaceDir,\n memberKeys: cluster.members.map((member) => member.key),\n representative: cluster.representative.snippet,\n distinctPaths: cluster.distinctPaths,\n strength: cluster.strength,\n observedAt: now.toISOString(),\n evidence: cluster.members.map((member) => member.snippet),\n sensitivity,\n });\n }\n }\n\n // Write pattern summary to DREAMS.md (append).\n if (topClusters.length > 0) {\n await appendPatternSummary(params.dreamingRoot, topClusters, now);\n }\n\n log.info(\n {\n dreamingRoot: params.dreamingRoot,\n patterns: topClusters.length,\n entriesAnalyzed: recentEntries.length,\n touched: touchedKeys.size,\n },\n 'REM pattern discovery complete',\n );\n\n await writeLastRun(params.dreamingRoot, {\n runId, startedAt, cfg, ok: true, reason: 'REM patterns complete', startMs,\n rem: { patternsDiscovered: topClusters.length, entriesAnalyzed: recentEntries.length },\n });\n\n return {\n ok: true,\n reason: 'REM patterns complete',\n patternsDiscovered: topClusters.length,\n entriesAnalyzed: recentEntries.length,\n };\n });\n } catch (err) {\n const errorMessage = err instanceof Error ? err.message : String(err);\n log.error({ err, errorMessage, dreamingRoot: params.dreamingRoot }, `REM pattern discovery failed: ${errorMessage}`);\n await writeLastRun(params.dreamingRoot, {\n runId, startedAt, cfg, ok: false, reason: `REM error: ${errorMessage}`, startMs,\n rem: { patternsDiscovered: 0, entriesAnalyzed: 0 }, errorMessage,\n }).catch(() => undefined);\n return { ok: false, reason: errorMessage, patternsDiscovered: 0, entriesAnalyzed: 0 };\n }\n}\n\n// ── Pattern clustering ─────────────────────────────────────────────────\n\n/**\n * Build an inverted index of queryHash → entries, then form clusters\n * where multiple entries share overlapping query hashes. Each cluster's\n * \"strength\" is the ratio of shared queries to total unique queries.\n */\nfunction discoverPatternClusters(\n entries: DreamingStoreEntry[],\n minStrength: number,\n): PatternCluster[] {\n // Build inverted index: queryHash → entry keys.\n const hashToEntries = new Map<string, DreamingStoreEntry[]>();\n for (const entry of entries) {\n for (const queryHash of entry.queryHashes ?? []) {\n const group = hashToEntries.get(queryHash);\n if (group) {\n group.push(entry);\n } else {\n hashToEntries.set(queryHash, [entry]);\n }\n }\n }\n\n // Find query hashes that appear in 2+ distinct entries from different paths.\n const significantHashes: Array<{ hash: string; entries: DreamingStoreEntry[] }> = [];\n for (const [hash, group] of hashToEntries) {\n const uniquePaths = new Set(group.map((e) => e.path));\n if (group.length >= 2 && uniquePaths.size >= 2) {\n significantHashes.push({ hash, entries: group });\n }\n }\n\n if (significantHashes.length === 0) return [];\n\n // Merge overlapping groups into clusters using union-find.\n const keyToCluster = new Map<string, Set<string>>();\n const keyToEntry = new Map<string, DreamingStoreEntry>();\n\n for (const entry of entries) {\n keyToEntry.set(entry.key, entry);\n }\n\n for (const { entries: groupEntries } of significantHashes) {\n const keys = groupEntries.map((e) => e.key);\n // Find or create the cluster for the first key.\n let mergedCluster = keyToCluster.get(keys[0]!);\n if (!mergedCluster) {\n mergedCluster = new Set<string>();\n mergedCluster.add(keys[0]!);\n keyToCluster.set(keys[0]!, mergedCluster);\n }\n // Merge all other keys into this cluster.\n for (const key of keys.slice(1)) {\n const existingCluster = keyToCluster.get(key);\n if (existingCluster && existingCluster !== mergedCluster) {\n for (const existingKey of existingCluster) {\n mergedCluster.add(existingKey);\n keyToCluster.set(existingKey, mergedCluster);\n }\n } else {\n mergedCluster.add(key);\n keyToCluster.set(key, mergedCluster);\n }\n }\n }\n\n // Deduplicate cluster sets.\n const seenClusters = new Set<Set<string>>();\n const rawClusters: Set<string>[] = [];\n for (const cluster of keyToCluster.values()) {\n if (!seenClusters.has(cluster) && cluster.size >= 2) {\n seenClusters.add(cluster);\n rawClusters.push(cluster);\n }\n }\n\n // Score each cluster.\n const scoredClusters: PatternCluster[] = [];\n for (const clusterKeys of rawClusters) {\n const members: DreamingStoreEntry[] = [];\n for (const key of clusterKeys) {\n const entry = keyToEntry.get(key);\n if (entry) members.push(entry);\n }\n if (members.length < 2) continue;\n\n // Shared queries: hashes that appear in 2+ members.\n const hashCounts = new Map<string, number>();\n for (const member of members) {\n for (const hash of member.queryHashes ?? []) {\n hashCounts.set(hash, (hashCounts.get(hash) ?? 0) + 1);\n }\n }\n const sharedQueries = [...hashCounts.entries()]\n .filter(([, count]) => count >= 2)\n .map(([hash]) => hash);\n\n const allUniqueHashes = new Set<string>();\n for (const member of members) {\n for (const hash of member.queryHashes ?? []) allUniqueHashes.add(hash);\n }\n\n const strength = allUniqueHashes.size > 0 ? sharedQueries.length / allUniqueHashes.size : 0;\n if (strength < minStrength) continue;\n\n const distinctPaths = [...new Set(members.map((m) => m.path))];\n\n // Representative: the member with the highest totalSignalCount.\n const representative = members.reduce((best, current) =>\n (current.totalSignalCount ?? 0) > (best.totalSignalCount ?? 0) ? current : best,\n );\n\n scoredClusters.push({\n representative,\n members,\n strength,\n sharedQueries,\n distinctPaths,\n });\n }\n\n // Sort by strength descending, then by member count.\n scoredClusters.sort((a, b) => {\n if (b.strength !== a.strength) return b.strength - a.strength;\n return b.members.length - a.members.length;\n });\n\n return scoredClusters;\n}\n\n// ── DREAMS.md writer ───────────────────────────────────────────────────\n\nasync function appendPatternSummary(\n dreamingRoot: string,\n clusters: PatternCluster[],\n now: Date,\n): Promise<void> {\n const dreamsPath = path.join(dreamingRoot, DREAMS_MD_FILENAME);\n const existing = await fs.readFile(dreamsPath, 'utf-8').catch((err: unknown) => {\n if ((err as NodeJS.ErrnoException)?.code === 'ENOENT') return '';\n throw err;\n });\n\n const day = isoDay(now);\n const lines: string[] = [];\n const newClusters = clusters.filter((cluster) =>\n !existing.includes(`xopc-rem-pattern id=\"${remPatternKey(cluster.members.map((member) => member.key))}\"`),\n );\n if (newClusters.length === 0) return;\n\n if (existing.trim().length === 0) {\n lines.push('# Dream Diary', '');\n }\n\n lines.push(`## REM Pattern Discovery — ${day}`, '');\n lines.push(`*${now.toISOString()}*`, '');\n\n for (let i = 0; i < newClusters.length; i++) {\n const cluster = newClusters[i]!;\n lines.push(`<!-- xopc-rem-pattern id=\"${remPatternKey(cluster.members.map((member) => member.key))}\" -->`);\n lines.push(\n `### Pattern ${i + 1}: ${cluster.distinctPaths.length} files, strength=${cluster.strength.toFixed(2)}`,\n );\n lines.push('');\n lines.push(`**Files involved:** ${cluster.distinctPaths.join(', ')}`);\n lines.push(`**Shared query themes:** ${cluster.sharedQueries.length} overlapping queries`);\n lines.push(`**Members:** ${cluster.members.length} snippets`);\n lines.push('');\n // Include the representative snippet.\n const rep = cluster.representative;\n lines.push(`> ${rep.snippet?.slice(0, 200) ?? '(no snippet)'}`);\n lines.push(`> — ${rep.path}:${rep.startLine}-${rep.endLine}`);\n lines.push('');\n }\n\n lines.push('---', '');\n\n const separator = existing.trim().length > 0 && !existing.endsWith('\\n') ? '\\n' : '';\n const next = `${existing}${separator}${lines.join('\\n')}`;\n await fs.writeFile(dreamsPath, next, 'utf-8');\n}\n\n// ── Last-run writer ────────────────────────────────────────────────────\n\nasync function writeLastRun(\n dreamingRoot: string,\n params: {\n runId: string;\n startedAt: string;\n cfg: DreamingRemConfig;\n ok: boolean;\n reason: string;\n startMs: number;\n rem: DreamingRemLastRun['rem'];\n errorMessage?: string;\n },\n): Promise<void> {\n const finishedAt = new Date().toISOString();\n const durationMs = Math.max(0, Date.now() - params.startMs);\n\n const lastRun: DreamingRemLastRun = {\n version: DREAMING_LAST_RUN_FORMAT_VERSION,\n phase: 'rem',\n runId: params.runId,\n startedAt: params.startedAt,\n finishedAt,\n durationMs,\n ok: params.ok,\n reason: params.reason,\n config: params.cfg,\n rem: params.rem,\n ...(params.errorMessage ? { errorMessage: params.errorMessage } : {}),\n };\n\n const lastRunPath = path.join(dreamingRoot, DREAMING_DIR_RELATIVE, 'last-run-rem.json');\n await fs.mkdir(path.dirname(lastRunPath), { recursive: true });\n const tmp = `${lastRunPath}.${process.pid}.${Date.now()}.tmp`;\n await fs.writeFile(tmp, `${JSON.stringify(lastRun, null, 2)}\\n`, 'utf-8');\n await fs.rename(tmp, lastRunPath);\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"scope.js","names":[],"sources":["../../../../../src/agent/memory/dreaming/scope.ts"],"sourcesContent":["import path from 'node:path';\n\nimport type { Config } from '../../../config/schema.js';\nimport {\n normalizeAgentId,\n resolveAgentWorkspaceDir,\n resolveDefaultAgentId,\n} from '../../agent-scope.js';\nimport { resolveUserDir } from '../../../config/paths.js';\nimport type { DreamingResolvedConfig } from './config.js';\nimport { resolveDreamingConfig } from './config.js';\n\nexport type DreamingAgentScope = {\n agentId: string;\n workspaceDir: string;\n memoriesDir: string;\n memoryPath: string;\n dreamsPath: string;\n config: DreamingResolvedConfig;\n memory: Config['userContext']['memory'];\n};\n\nexport function resolveDreamingRoot(): string {\n return path.join(resolveUserDir(), 'memories');\n}\n\nexport function resolveDreamingAgentScope(config: Config, requestedAgentId?: string | null): DreamingAgentScope {\n const agentId = normalizeAgentId(requestedAgentId || resolveDefaultAgentId(config));\n const memoriesDir = resolveDreamingRoot();\n return {\n agentId,\n workspaceDir: resolveAgentWorkspaceDir(config, agentId),\n memoriesDir,\n memoryPath: path.join(memoriesDir, 'MEMORY.md'),\n dreamsPath: path.join(memoriesDir, 'DREAMS.md'),\n config: resolveDreamingConfig(config, agentId),\n memory: config.userContext.memory,\n };\n}\n"],"mappings":";;;;;kBAO8B;YAC4B;AAc1D,SAAgB,sBAA8B;AAC5C,QAAO,KAAK,KAAK,gBAAgB,EAAE,WAAW;;AAGhD,SAAgB,0BAA0B,QAAgB,kBAAsD;CAC9G,MAAM,UAAU,iBAAiB,oBAAoB,sBAAsB,OAAO,CAAC;CACnF,MAAM,cAAc,qBAAqB;AACzC,QAAO;EACL;EACA,cAAc,yBAAyB,QAAQ,QAAQ;EACvD;EACA,YAAY,KAAK,KAAK,aAAa,YAAY;EAC/C,YAAY,KAAK,KAAK,aAAa,YAAY;EAC/C,QAAQ,sBAAsB,QAAQ,QAAQ;EAC9C,QAAQ,OAAO,YAAY;EAC5B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"short-term-store.js","names":[],"sources":["../../../../../src/agent/memory/dreaming/short-term-store.ts"],"sourcesContent":["import fs from 'node:fs/promises';\nimport path from 'node:path';\nimport { createHash, randomUUID } from 'node:crypto';\n\nimport type { MemorySearchOptions } from '../../prompt/memory/index.js';\nimport { createLogger } from '../../../utils/logger.js';\nimport {\n SHORT_TERM_PROMOTION_LOCK_RELATIVE,\n SHORT_TERM_RECALL_STORE_RELATIVE,\n} from './constants.js';\nimport { buildEntryKey, clamp01, isoDay, normalizeMemoryPath } from './utils.js';\n\nconst log = createLogger('Dreaming:Store');\nconst STORE_MAX_ENTRIES = 2_000;\nconst STORE_MAX_AGE_MS = 90 * 24 * 60 * 60 * 1_000;\nconst PROMOTED_MAX_AGE_MS = 30 * 24 * 60 * 60 * 1_000;\nconst LOCK_STALE_MS = 60_000;\n\nexport type DreamingStoreEntry = {\n key: string;\n path: string;\n startLine: number;\n endLine: number;\n snippet: string;\n\n // ── Signal dimensions ────────────────────────────────────────────────\n /** Number of times this snippet was returned by a memory recall query. */\n recallCount: number;\n /** Number of times recorded from source-side sweep phases. */\n sourceCount: number;\n /** Number of times replayed from grounded context (agent-initiated). */\n groundedCount: number;\n /** Number of times the light phase touched this entry. */\n lightHits: number;\n /** Number of times the REM phase touched this entry. */\n remHits: number;\n /** Cross-phase hit count (light + deep + rem combined touches). */\n phaseHitCount: number;\n /** Weighted aggregate of all signal dimensions. */\n totalSignalCount: number;\n\n // ── Score tracking ───────────────────────────────────────────────────\n totalScore: number;\n maxScore: number;\n queryHashes: string[];\n recallDays: string[];\n\n // ── Timestamps ───────────────────────────────────────────────────────\n firstRecalledAt: string;\n lastRecalledAt: string;\n lastObservedAt?: string;\n promotedAt?: string;\n};\n\nexport type DreamingStore = {\n version: 1;\n updatedAt: string;\n entries: Record<string, DreamingStoreEntry>;\n};\n\ntype MemoryMatch = Awaited<ReturnType<typeof import('../../prompt/memory/index.js').memorySearch>>[number];\n\nfunction isRecordableMemoryPath(rel: string): boolean {\n const p = normalizeMemoryPath(rel);\n return p.length > 0 && !p.startsWith('../') && !path.isAbsolute(p);\n}\n\nfunction hashQuery(query: string): string {\n return createHash('sha1').update(query.trim().toLowerCase()).digest('hex').slice(0, 12);\n}\n\nfunction mergeRecentDistinct(existing: string[], nextValue: string, limit: number): string[] {\n const seen = new Set<string>();\n const normalized = existing\n .filter((v): v is string => typeof v === 'string')\n .map((v) => v.trim())\n .filter((v) => v.length > 0 && !seen.has(v) && (seen.add(v), true));\n if (nextValue && !normalized.includes(nextValue)) {\n normalized.push(nextValue);\n }\n return normalized.length <= limit ? normalized : normalized.slice(-limit);\n}\n\nfunction mergeQueryHashes(existing: string[], nextHash: string): string[] {\n const out = mergeRecentDistinct(existing, nextHash, 32);\n return out;\n}\n\nfunction emptyStore(nowIso: string): DreamingStore {\n return { version: 1, updatedAt: nowIso, entries: {} };\n}\n\nasync function ensureDreamDir(dreamingRoot: string): Promise<string> {\n const dir = path.join(dreamingRoot, path.dirname(SHORT_TERM_RECALL_STORE_RELATIVE));\n await fs.mkdir(dir, { recursive: true });\n return dir;\n}\n\nasync function readStore(dreamingRoot: string, nowIso: string): Promise<DreamingStore> {\n const storePath = path.join(dreamingRoot, SHORT_TERM_RECALL_STORE_RELATIVE);\n try {\n const raw = await fs.readFile(storePath, 'utf-8');\n const parsed = JSON.parse(raw) as unknown;\n if (!parsed || typeof parsed !== 'object') {\n throw new Error('Dreaming store root must be an object');\n }\n const rec = parsed as Partial<DreamingStore>;\n if (rec.version !== 1 || !rec.entries || typeof rec.entries !== 'object') {\n throw new Error('Dreaming store has an unsupported or invalid shape');\n }\n return {\n version: 1,\n updatedAt: typeof rec.updatedAt === 'string' ? rec.updatedAt : nowIso,\n entries: rec.entries as Record<string, DreamingStoreEntry>,\n };\n } catch (err) {\n const code = (err as NodeJS.ErrnoException | undefined)?.code;\n if (code === 'ENOENT') return emptyStore(nowIso);\n const quarantinePath = `${storePath}.corrupt-${Date.now()}`;\n await fs.rename(storePath, quarantinePath).catch(() => undefined);\n log.warn({ err, dreamingRoot, quarantinePath }, 'Failed to read dreaming store; quarantined corrupt data');\n return emptyStore(nowIso);\n }\n}\n\nfunction pruneStore(store: DreamingStore, nowMs = Date.now()): void {\n for (const [key, entry] of Object.entries(store.entries)) {\n const lastSeenMs = Math.max(\n Date.parse(entry.lastRecalledAt || entry.firstRecalledAt),\n entry.lastObservedAt ? Date.parse(entry.lastObservedAt) : 0,\n );\n const promotedMs = entry.promotedAt ? Date.parse(entry.promotedAt) : Number.NaN;\n if (\n (Number.isFinite(promotedMs) && nowMs - promotedMs > PROMOTED_MAX_AGE_MS)\n || (Number.isFinite(lastSeenMs) && nowMs - lastSeenMs > STORE_MAX_AGE_MS)\n ) {\n delete store.entries[key];\n }\n }\n const entries = Object.values(store.entries);\n if (entries.length <= STORE_MAX_ENTRIES) return;\n entries.sort((left, right) => {\n if (Boolean(left.promotedAt) !== Boolean(right.promotedAt)) return left.promotedAt ? 1 : -1;\n const signalDelta = (right.totalSignalCount ?? 0) - (left.totalSignalCount ?? 0);\n if (signalDelta !== 0) return signalDelta;\n return Date.parse(right.lastRecalledAt) - Date.parse(left.lastRecalledAt);\n });\n const keep = new Set(entries.slice(0, STORE_MAX_ENTRIES).map((entry) => entry.key));\n for (const key of Object.keys(store.entries)) {\n if (!keep.has(key)) delete store.entries[key];\n }\n}\n\nasync function writeStore(dreamingRoot: string, store: DreamingStore): Promise<void> {\n pruneStore(store);\n await ensureDreamDir(dreamingRoot);\n const storePath = path.join(dreamingRoot, SHORT_TERM_RECALL_STORE_RELATIVE);\n const tmp = `${storePath}.${process.pid}.${Date.now()}.${randomUUID()}.tmp`;\n await fs.writeFile(tmp, `${JSON.stringify(store, null, 2)}\\n`, 'utf-8');\n await fs.rename(tmp, storePath);\n}\n\nexport async function recordDreamingRecalls(params: {\n dreamingRoot: string;\n query: string;\n matches: MemoryMatch[];\n options?: MemorySearchOptions;\n now?: Date;\n}): Promise<{ recorded: number; skipped: number; storePath: string }> {\n const dreamingRoot = params.dreamingRoot.trim();\n const query = params.query.trim();\n if (!dreamingRoot || !query) {\n return { recorded: 0, skipped: params.matches.length, storePath: SHORT_TERM_RECALL_STORE_RELATIVE };\n }\n return withDreamingStoreLock(dreamingRoot, async () => {\n const now = params.now ?? new Date();\n const nowIso = now.toISOString();\n const dayBucket = isoDay(now);\n const qHash = hashQuery(query);\n const store = await readStore(dreamingRoot, nowIso);\n\n let recorded = 0;\n let skipped = 0;\n for (const match of params.matches) {\n const file = typeof match?.file === 'string' ? match.file : '';\n if (!file || !isRecordableMemoryPath(file)) {\n skipped += 1;\n continue;\n }\n const lines = typeof match?.lines === 'string' ? match.lines.trim() : '';\n const lineNumbers = Array.isArray(match?.lineNumbers) ? match.lineNumbers : [];\n const startLine = Math.max(1, Math.min(...lineNumbers.filter((n) => Number.isFinite(n) && n > 0)));\n const endLine = Math.max(startLine, Math.max(...lineNumbers.filter((n) => Number.isFinite(n) && n > 0)));\n if (!Number.isFinite(startLine) || !Number.isFinite(endLine)) {\n skipped += 1;\n continue;\n }\n const score = clamp01(Number(match.score));\n const key = buildEntryKey({ path: file, startLine, endLine });\n const existing = store.entries[key];\n const snippet = lines.length > 0 ? lines.slice(0, 360) : file;\n\n const next: DreamingStoreEntry = existing\n ? {\n ...existing,\n snippet,\n recallCount: Math.max(0, Math.floor(existing.recallCount + 1)),\n sourceCount: existing.sourceCount ?? 0,\n groundedCount: existing.groundedCount ?? 0,\n lightHits: existing.lightHits ?? 0,\n remHits: existing.remHits ?? 0,\n phaseHitCount: existing.phaseHitCount ?? 0,\n totalSignalCount: Math.max(0, (existing.totalSignalCount ?? existing.recallCount ?? 0) + 1),\n totalScore: Math.max(0, existing.totalScore + score),\n maxScore: Math.max(existing.maxScore, score),\n queryHashes: mergeQueryHashes(existing.queryHashes ?? [], qHash),\n recallDays: mergeRecentDistinct(existing.recallDays ?? [], dayBucket, 16),\n lastRecalledAt: nowIso,\n }\n : {\n key,\n path: normalizeMemoryPath(file),\n startLine,\n endLine,\n snippet,\n recallCount: 1,\n sourceCount: 0,\n groundedCount: 0,\n lightHits: 0,\n remHits: 0,\n phaseHitCount: 0,\n totalSignalCount: 1,\n totalScore: score,\n maxScore: score,\n queryHashes: [qHash],\n recallDays: [dayBucket],\n firstRecalledAt: nowIso,\n lastRecalledAt: nowIso,\n };\n\n store.entries[key] = next;\n recorded += 1;\n }\n\n if (recorded > 0) {\n store.updatedAt = nowIso;\n await writeStore(dreamingRoot, store);\n }\n\n return { recorded, skipped, storePath: SHORT_TERM_RECALL_STORE_RELATIVE };\n });\n}\n\n/** Serialize all read-modify-write operations against the shared Dreaming store. */\nexport async function withDreamingStoreLock<T>(\n dreamingRoot: string,\n task: () => Promise<T>,\n): Promise<T> {\n const lockPath = path.join(dreamingRoot, SHORT_TERM_PROMOTION_LOCK_RELATIVE);\n await ensureDreamDir(dreamingRoot);\n\n const startedAt = Date.now();\n const timeoutMs = 10_000;\n const retryDelayMs = 50;\n\n while (true) {\n try {\n const handle = await fs.open(lockPath, 'wx');\n await handle.writeFile(`${process.pid}:${Date.now()}\\n`, 'utf-8').catch(() => undefined);\n try {\n return await task();\n } finally {\n await handle.close().catch(() => undefined);\n await fs.unlink(lockPath).catch(() => undefined);\n }\n } catch (err) {\n const code = (err as NodeJS.ErrnoException | undefined)?.code;\n if (code !== 'EEXIST') {\n throw err;\n }\n const lockStat = await fs.stat(lockPath).catch(() => null);\n if (lockStat && Date.now() - lockStat.mtimeMs > LOCK_STALE_MS && await lockOwnerIsDead(lockPath)) {\n await fs.unlink(lockPath).catch(() => undefined);\n log.warn({ lockPath, ageMs: Date.now() - lockStat.mtimeMs }, 'Removed stale dreaming lock');\n continue;\n }\n if (Date.now() - startedAt >= timeoutMs) {\n throw new Error(`Timed out waiting for dreaming promotion lock at ${lockPath}`);\n }\n await new Promise((r) => setTimeout(r, retryDelayMs));\n }\n }\n}\n\n/** @deprecated Use the store-level name; retained for callers outside this module. */\nexport async function withDreamingPromotionLock<T>(\n dreamingRoot: string,\n task: () => Promise<T>,\n): Promise<T> {\n return withDreamingStoreLock(dreamingRoot, task);\n}\n\nasync function lockOwnerIsDead(lockPath: string): Promise<boolean> {\n const raw = await fs.readFile(lockPath, 'utf-8').catch(() => '');\n const pid = Number.parseInt(raw.split(':', 1)[0] ?? '', 10);\n if (!Number.isFinite(pid) || pid <= 0) return true;\n try {\n process.kill(pid, 0);\n return false;\n } catch (error) {\n return (error as NodeJS.ErrnoException | undefined)?.code === 'ESRCH';\n }\n}\n\nexport async function loadDreamingStore(params: {\n dreamingRoot: string;\n}): Promise<{ store: DreamingStore; storePath: string }> {\n const nowIso = new Date().toISOString();\n const store = await readStore(params.dreamingRoot, nowIso);\n return { store, storePath: SHORT_TERM_RECALL_STORE_RELATIVE };\n}\n\nexport async function saveDreamingStore(params: {\n dreamingRoot: string;\n store: DreamingStore;\n}): Promise<void> {\n await writeStore(params.dreamingRoot, params.store);\n}\n\nexport async function resetDreamingStore(params: {\n dreamingRoot: string;\n now?: Date;\n}): Promise<number> {\n return withDreamingStoreLock(params.dreamingRoot, async () => {\n const nowIso = (params.now ?? new Date()).toISOString();\n const store = await readStore(params.dreamingRoot, nowIso);\n const removed = Object.keys(store.entries).length;\n await writeStore(params.dreamingRoot, emptyStore(nowIso));\n return removed;\n });\n}\n\n/** Remove only a stale lock whose owning process is no longer alive. */\nexport async function clearStaleDreamingLock(dreamingRoot: string): Promise<boolean> {\n const lockPath = path.join(dreamingRoot, SHORT_TERM_PROMOTION_LOCK_RELATIVE);\n const lockStat = await fs.stat(lockPath).catch((error: unknown) => {\n if ((error as NodeJS.ErrnoException | undefined)?.code === 'ENOENT') return null;\n throw error;\n });\n if (!lockStat) return false;\n const ageMs = Date.now() - lockStat.mtimeMs;\n if (ageMs <= LOCK_STALE_MS || !(await lockOwnerIsDead(lockPath))) {\n throw new Error(`Dreaming lock is active and cannot be cleared: ${lockPath}`);\n }\n await fs.unlink(lockPath);\n log.warn({ lockPath, ageMs }, 'Cleared stale dreaming lock');\n return true;\n}\n\n// ── Phase-level signal helpers ─────────────────────────────────────────\n\ntype PhaseSignalField = 'sourceCount' | 'groundedCount' | 'lightHits' | 'remHits';\n\n/**\n * Increment a phase-specific signal counter on an existing store entry.\n * Also bumps `phaseHitCount` and `totalSignalCount`.\n * Returns `true` if the entry existed and was updated.\n */\nexport function bumpEntryPhaseSignal(\n entry: DreamingStoreEntry,\n field: PhaseSignalField,\n increment = 1,\n): void {\n entry[field] = (entry[field] ?? 0) + increment;\n entry.phaseHitCount = (entry.phaseHitCount ?? 0) + increment;\n entry.totalSignalCount = (entry.totalSignalCount ?? 0) + increment;\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","names":[],"sources":["../../../../../src/agent/memory/dreaming/utils.ts"],"sourcesContent":["import fs from 'node:fs/promises';\nimport path from 'node:path';\nimport { createHash } from 'node:crypto';\n\nimport type { DreamingDeepConfig } from './config.js';\nimport {\n DEFAULT_DEEP_CRON,\n DEFAULT_MAX_AGE_DAYS,\n DEFAULT_RECENCY_HALF_LIFE_DAYS,\n DIVERSITY_DIMENSION_COUNT,\n DIVERSITY_WEIGHT,\n MS_PER_DAY,\n REINFORCEMENT_WEIGHT,\n} from './constants.js';\n// `DreamingStoreEntry` lives in `./short-term-store.js`, which imports value\n// helpers from THIS file — so importing it back creates a circular cycle.\n// `computeCandidateScore` only reads three numeric/string fields; declaring a\n// narrow structural type keeps the helper decoupled.\ntype DreamingStoreEntryScoringView = {\n recallCount: number;\n totalScore: number;\n lastRecalledAt?: string;\n queryHashes?: readonly string[];\n sourceCount: number;\n groundedCount: number;\n lightHits: number;\n remHits: number;\n};\n\n// ── Path + keying ─────────────────────────────────────────────────────\n\n/** Normalize a workspace-relative memory path: forward slashes, no odd ../ escapes at start. */\nexport function normalizeMemoryPath(rel: string): string {\n if (typeof rel !== 'string' || !rel.trim()) return '';\n const s = rel.trim().replace(/\\\\/g, '/');\n return path.posix\n .normalize(s)\n .replace(/^(\\.\\/)+/, '')\n .replace(/\\/+/g, '/');\n}\n\n/**\n * Stable id for a short-term store entry (path + line range).\n * Format: `{normalizedPath}#{start}-{end}` (1-based, inclusive end).\n */\nexport function buildEntryKey(parts: { path: string; startLine: number; endLine: number }): string {\n const p = normalizeMemoryPath(parts.path);\n const a = Math.max(1, Math.floor(parts.startLine));\n const b = Math.max(a, Math.floor(parts.endLine));\n return `${p}#${a}-${b}`;\n}\n\n/** YYYY-MM-DD in local time. */\nexport function isoDay(d: Date): string {\n const y = d.getFullYear();\n const m = String(d.getMonth() + 1).padStart(2, '0');\n const day = String(d.getDate()).padStart(2, '0');\n return `${y}-${m}-${day}`;\n}\n\n// ── Numbers + deep config defaults ────────────────────────────────────\n\nexport function clamp01(value: number): number {\n if (!Number.isFinite(value)) return 0;\n return Math.max(0, Math.min(1, value));\n}\n\nfunction toPositiveInt(value: unknown, fallback: number): number {\n const num = typeof value === 'string' ? Number(value) : Number(value);\n if (!Number.isFinite(num)) return fallback;\n const floored = Math.floor(num);\n return floored > 0 ? floored : fallback;\n}\n\nfunction toNonNegInt(value: unknown, fallback: number): number {\n const num = typeof value === 'string' ? Number(value) : Number(value);\n if (!Number.isFinite(num)) return fallback;\n const floored = Math.floor(num);\n return floored >= 0 ? floored : fallback;\n}\n\nfunction clampScore(value: number, fallback: number): number {\n if (!Number.isFinite(value)) return fallback;\n return Math.max(0, Math.min(1, value));\n}\n\nfunction trimmedCron(value: unknown, fallback: string): string {\n return typeof value === 'string' && value.trim() ? value.trim() : fallback;\n}\n\n/** Fills in deep-phase defaults; mirrors `resolveDreamingConfig` deep object when only partial overrides are given. */\nexport function resolveDeepDefaults(overrides?: Partial<DreamingDeepConfig>): DreamingDeepConfig {\n return {\n enabled: overrides?.enabled !== false,\n cron: trimmedCron(overrides?.cron, DEFAULT_DEEP_CRON),\n minScore: clampScore(Number(overrides?.minScore), 0.8),\n minRecallCount: toPositiveInt(overrides?.minRecallCount, 3),\n minUniqueQueries: toPositiveInt(overrides?.minUniqueQueries, 3),\n limit: toNonNegInt(overrides?.limit, 10),\n recencyHalfLifeDays: toPositiveInt(overrides?.recencyHalfLifeDays, DEFAULT_RECENCY_HALF_LIFE_DAYS),\n maxAgeDays: toPositiveInt(overrides?.maxAgeDays, DEFAULT_MAX_AGE_DAYS),\n };\n}\n\n// ── Scoring (deep promotion) ─────────────────────────────────────────\n\nexport function computeCandidateScore(\n entry: DreamingStoreEntryScoringView,\n nowMs: number,\n recencyHalfLifeDays: number,\n): { avgScore: number; score: number; recencyDecay: number } {\n const recall = Math.max(0, entry.recallCount);\n const avgRaw = recall > 0 ? entry.totalScore / recall : 0;\n const avgScore = clamp01(avgRaw);\n\n let recencyDecay = 1;\n if (entry.lastRecalledAt) {\n const last = Date.parse(entry.lastRecalledAt);\n if (Number.isFinite(last)) {\n const days = Math.max(0, (nowMs - last) / MS_PER_DAY);\n const hl = Math.max(0.1, recencyHalfLifeDays);\n recencyDecay = 0.5 ** (days / hl);\n }\n }\n\n const logRecall = Math.log(1 + recall);\n const reinforcement = REINFORCEMENT_WEIGHT * Math.min(logRecall, 3);\n\n const qCount = entry.queryHashes?.length ?? 0;\n const uniqueQueryTerm = Math.min(1, qCount / 6) * DIVERSITY_WEIGHT;\n\n const dims = [entry.sourceCount, entry.groundedCount, entry.lightHits, entry.remHits].filter(\n (n) => n > 0,\n ).length;\n const signalDiversity = ((dims / DIVERSITY_DIMENSION_COUNT) * DIVERSITY_WEIGHT) / 2;\n\n const score = clamp01(avgScore * recencyDecay + reinforcement * 0.25 + uniqueQueryTerm + signalDiversity);\n\n return { avgScore, score, recencyDecay };\n}\n\nexport function compareCandidatesByScore(\n a: { score: number; key: string },\n b: { score: number; key: string },\n): number {\n if (b.score !== a.score) return b.score - a.score;\n return a.key.localeCompare(b.key);\n}\n\n// ── File slices + integrity ─────────────────────────────────────────\n\nexport async function readFileLines(fullPath: string): Promise<string[] | null> {\n try {\n const raw = await fs.readFile(fullPath, 'utf-8');\n return raw.split(/\\r?\\n/);\n } catch (err) {\n if ((err as NodeJS.ErrnoException | undefined)?.code === 'ENOENT') return null;\n throw err;\n }\n}\n\n/** 1-based inclusive line range. Joins with newlines. */\nexport function sliceRange(lines: string[], startLine: number, endLine: number): string {\n const a = Math.max(1, Math.floor(startLine));\n const b = Math.max(a, Math.floor(endLine));\n const out = lines.slice(a - 1, b);\n return out.join('\\n').trimEnd();\n}\n\nexport function isExpiredEntry(\n lastRecalledAt: string | undefined,\n nowMs: number,\n maxAgeDays: number,\n): boolean {\n if (!lastRecalledAt) return true;\n const t = Date.parse(lastRecalledAt);\n if (!Number.isFinite(t)) return true;\n return (nowMs - t) / MS_PER_DAY > maxAgeDays;\n}\n\n/** Reject empty, tiny, or absurdly long snippets; blocks obvious “tool error” text. */\nexport function isContaminatedSnippet(snippet: string): boolean {\n const s = snippet.trim();\n if (s.length < 3) return true;\n if (s.length > 12_000) return true;\n if (!/\\p{L}/u.test(s) && !/\\d/.test(s)) return true;\n return false;\n}\n\nexport function normalizeSnippetForHash(text: string): string {\n return text\n .toLowerCase()\n .replace(/\\s+/g, ' ')\n .replace(/['\"`]/g, '')\n .trim();\n}\n\nexport function snippetHash(text: string): string {\n const n = normalizeSnippetForHash(text);\n return createHash('sha1').update(n, 'utf8').digest('hex').slice(0, 20);\n}\n\nexport function extractPromotionMarkers(markdown: string): { keys: Set<string>; hashes: Set<string> } {\n const keys = new Set<string>();\n const hashes = new Set<string>();\n let m: RegExpExecArray | null;\n const re = /<!--\\s*xopc-memory-promotion\\s+key=\"([^\"]*)\"\\s+hash=\"([^\"]*)\"\\s*-->/g;\n while ((m = re.exec(markdown)) !== null) {\n if (m[1]) keys.add(m[1]);\n if (m[2]) hashes.add(m[2]);\n }\n return { keys, hashes };\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"lifecycle.js","names":[],"sources":["../../../../src/agent/memory/lifecycle.ts"],"sourcesContent":["import type { MemoryRecord, MemoryStatus } from './types.js';\n\nexport type MemoryStabilityBand = 'strong' | 'working' | 'fragile';\n\nconst DAY_MS = 86_400_000;\n\nfunction clamp01(value: number): number {\n return Math.max(0, Math.min(1, value));\n}\n\nfunction reviewIntervalDays(record: Pick<MemoryRecord, 'durability' | 'explicitness'>): number {\n if (record.durability === 'ephemeral') return 14;\n if (record.durability === 'recurring') return record.explicitness === 'explicit' ? 120 : 60;\n if (record.explicitness === 'explicit') return 365;\n if (record.explicitness === 'observed') return 180;\n return 90;\n}\n\nexport function nextMemoryReviewAt(\n record: Pick<MemoryRecord, 'durability' | 'explicitness'>,\n fromMs = Date.now(),\n): string {\n return new Date(fromMs + reviewIntervalDays(record) * DAY_MS).toISOString();\n}\n\nexport function resolveMemoryStability(record: MemoryRecord, nowMs = Date.now()): {\n score: number;\n band: MemoryStabilityBand;\n reviewAt: string;\n reviewDue: boolean;\n expired: boolean;\n} {\n const confidence = clamp01(record.confidence ?? 0.5);\n const explicitness = record.explicitness === 'explicit' ? 1 : record.explicitness === 'observed' ? 0.7 : 0.45;\n const durability = record.durability === 'durable' ? 1 : record.durability === 'recurring' ? 0.85 : 0.55;\n const evidence = record.evidence ?? [];\n const evidenceConfidence = evidence.length > 0\n ? evidence.reduce((sum, item) => sum + clamp01(item.confidence ?? confidence), 0) / evidence.length\n : confidence * 0.8;\n const evidenceStrength = clamp01(evidenceConfidence * 0.75 + Math.min(evidence.length, 4) * 0.0625);\n const updatedAtMs = Date.parse(record.updatedAt);\n const ageDays = Number.isFinite(updatedAtMs) ? Math.max(0, (nowMs - updatedAtMs) / DAY_MS) : 0;\n const halfLifeDays = record.durability === 'ephemeral' ? 21 : record.durability === 'recurring' ? 120 : 365;\n const freshnessFloor = record.explicitness === 'explicit' ? 0.72 : record.explicitness === 'observed' ? 0.48 : 0.28;\n const freshness = freshnessFloor + (1 - freshnessFloor) * Math.pow(0.5, ageDays / halfLifeDays);\n const raw = confidence * 0.32\n + explicitness * 0.2\n + clamp01(record.importance) * 0.16\n + durability * 0.14\n + evidenceStrength * 0.18;\n const score = Math.round(clamp01(raw * freshness) * 1000) / 1000;\n const band: MemoryStabilityBand = score >= 0.75 ? 'strong' : score >= 0.5 ? 'working' : 'fragile';\n const inferredReviewAt = nextMemoryReviewAt(record, Number.isFinite(updatedAtMs) ? updatedAtMs : nowMs);\n const reviewAt = record.reviewAfter && Number.isFinite(Date.parse(record.reviewAfter))\n ? record.reviewAfter\n : inferredReviewAt;\n const expired = Boolean(\n (record.expiresAt && Date.parse(record.expiresAt) <= nowMs)\n || (record.validTo && Date.parse(record.validTo) <= nowMs),\n );\n const reviewDue = record.status === 'candidate'\n || record.status === 'needs_review'\n || record.status === 'stale'\n || Date.parse(reviewAt) <= nowMs;\n return { score, band, reviewAt, reviewDue, expired };\n}\n\nexport function effectiveMemoryStatus(record: MemoryRecord, nowMs = Date.now()): MemoryStatus {\n const lifecycle = resolveMemoryStability(record, nowMs);\n if (lifecycle.expired && record.status === 'active') return 'stale';\n if (lifecycle.reviewDue && record.status === 'active') return 'needs_review';\n return record.status ?? 'active';\n}\n"],"mappings":";AAIA,MAAM,SAAS;AAEf,SAAS,QAAQ,OAAuB;AACtC,QAAO,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,MAAM,CAAC;;AAGxC,SAAS,mBAAmB,QAAmE;AAC7F,KAAI,OAAO,eAAe,YAAa,QAAO;AAC9C,KAAI,OAAO,eAAe,YAAa,QAAO,OAAO,iBAAiB,aAAa,MAAM;AACzF,KAAI,OAAO,iBAAiB,WAAY,QAAO;AAC/C,KAAI,OAAO,iBAAiB,WAAY,QAAO;AAC/C,QAAO;;AAGT,SAAgB,mBACd,QACA,SAAS,KAAK,KAAK,EACX;AACR,QAAO,IAAI,KAAK,SAAS,mBAAmB,OAAO,GAAG,OAAO,CAAC,aAAa;;AAG7E,SAAgB,uBAAuB,QAAsB,QAAQ,KAAK,KAAK,EAM7E;CACA,MAAM,aAAa,QAAQ,OAAO,cAAc,GAAI;CACpD,MAAM,eAAe,OAAO,iBAAiB,aAAa,IAAI,OAAO,iBAAiB,aAAa,KAAM;CACzG,MAAM,aAAa,OAAO,eAAe,YAAY,IAAI,OAAO,eAAe,cAAc,MAAO;CACpG,MAAM,WAAW,OAAO,YAAY,EAAE;CAItC,MAAM,mBAAmB,SAHE,SAAS,SAAS,IACzC,SAAS,QAAQ,KAAK,SAAS,MAAM,QAAQ,KAAK,cAAc,WAAW,EAAE,EAAE,GAAG,SAAS,SAC3F,aAAa,MACqC,MAAO,KAAK,IAAI,SAAS,QAAQ,EAAE,GAAG,MAAO;CACnG,MAAM,cAAc,KAAK,MAAM,OAAO,UAAU;CAChD,MAAM,UAAU,OAAO,SAAS,YAAY,GAAG,KAAK,IAAI,IAAI,QAAQ,eAAe,OAAO,GAAG;CAC7F,MAAM,eAAe,OAAO,eAAe,cAAc,KAAK,OAAO,eAAe,cAAc,MAAM;CACxG,MAAM,iBAAiB,OAAO,iBAAiB,aAAa,MAAO,OAAO,iBAAiB,aAAa,MAAO;CAC/G,MAAM,YAAY,kBAAkB,IAAI,kBAAkB,KAAK,IAAI,IAAK,UAAU,aAAa;CAC/F,MAAM,MAAM,aAAa,MACrB,eAAe,KACf,QAAQ,OAAO,WAAW,GAAG,MAC7B,aAAa,MACb,mBAAmB;CACvB,MAAM,QAAQ,KAAK,MAAM,QAAQ,MAAM,UAAU,GAAG,IAAK,GAAG;CAC5D,MAAM,OAA4B,SAAS,MAAO,WAAW,SAAS,KAAM,YAAY;CACxF,MAAM,mBAAmB,mBAAmB,QAAQ,OAAO,SAAS,YAAY,GAAG,cAAc,MAAM;CACvG,MAAM,WAAW,OAAO,eAAe,OAAO,SAAS,KAAK,MAAM,OAAO,YAAY,CAAC,GAClF,OAAO,cACP;CACJ,MAAM,UAAU,QACb,OAAO,aAAa,KAAK,MAAM,OAAO,UAAU,IAAI,SACjD,OAAO,WAAW,KAAK,MAAM,OAAO,QAAQ,IAAI,MACrD;AAKD,QAAO;EAAE;EAAO;EAAM;EAAU,WAJd,OAAO,WAAW,eAC/B,OAAO,WAAW,kBAClB,OAAO,WAAW,WAClB,KAAK,MAAM,SAAS,IAAI;EACc;EAAS;;AAGtD,SAAgB,sBAAsB,QAAsB,QAAQ,KAAK,KAAK,EAAgB;CAC5F,MAAM,YAAY,uBAAuB,QAAQ,MAAM;AACvD,KAAI,UAAU,WAAW,OAAO,WAAW,SAAU,QAAO;AAC5D,KAAI,UAAU,aAAa,OAAO,WAAW,SAAU,QAAO;AAC9D,QAAO,OAAO,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"manager.js","names":[],"sources":["../../../../src/agent/memory/manager.ts"],"sourcesContent":["import type { AgentTool } from '@earendil-works/pi-agent-core';\n\nimport { appendMemoryTraceEvent, setKnowledgeSourceItemSynthesisStatus } from '../../storage/sqlite/index.js';\nimport { createLogger } from '../../utils/logger.js';\nimport type { MemoryProvider, MemoryProviderInitOptions } from './provider.js';\nimport { UserUnderstandingService } from './understanding/service.js';\nimport type { UnderstandingCandidate } from './understanding/types.js';\nimport type {\n MemoryDeleteRequest,\n MemoryListRequest,\n MemoryReadRequest,\n MemoryReadResult,\n MemorySearchRequest,\n MemorySearchResult,\n MemorySyncEvent,\n MemoryUpdateRequest,\n MemoryWriteRequest,\n MemoryWriteResult,\n MemoryRecord,\n MemorySignal,\n MemoryKind,\n} from './types.js';\n\nconst log = createLogger('MemoryManager');\n\nexport type MemorySearchStrategy = 'local-first' | 'external-first' | 'fanout' | 'local-only' | 'external-only';\nexport type MemoryWriteStrategy = 'local-first' | 'external-first' | 'write-through' | 'local-only' | 'external-only';\n\nexport interface MemoryRoutingOptions {\n searchStrategy?: MemorySearchStrategy;\n writeStrategy?: MemoryWriteStrategy;\n replicateTo?: string[];\n}\n\nexport interface MemoryManagerOptions extends MemoryRoutingOptions {\n loadProviders?: () => Promise<MemoryProvider[]>;\n writePolicy?: MemoryWritePolicy;\n}\n\nexport interface MemoryWritePolicy {\n allowExternalWrites?: boolean;\n allowedProviderIds?: string[];\n autoWriteKinds?: MemoryKind[];\n requireUserProfileApproval?: boolean;\n}\n\nexport class MemoryManager {\n private providers: MemoryProvider[] = [];\n private toolToProvider = new Map<string, MemoryProvider>();\n private readonly routing: Required<MemoryRoutingOptions>;\n private readonly loadProviders?: () => Promise<MemoryProvider[]>;\n private readonly writePolicy: Required<Pick<MemoryWritePolicy, 'allowExternalWrites' | 'requireUserProfileApproval'>> &\n Omit<MemoryWritePolicy, 'allowExternalWrites' | 'requireUserProfileApproval'>;\n private pluginProvidersLoaded = false;\n private readonly understanding: UserUnderstandingService;\n private readonly lastTurnSourceItem = new Map<string, string>();\n private understandingAgentId: string | undefined;\n\n constructor(options: MemoryManagerOptions = {}) {\n this.routing = {\n searchStrategy: options.searchStrategy ?? 'fanout',\n writeStrategy: options.writeStrategy ?? 'local-first',\n replicateTo: options.replicateTo ?? [],\n };\n this.loadProviders = options.loadProviders;\n this.writePolicy = {\n allowExternalWrites: options.writePolicy?.allowExternalWrites ?? false,\n requireUserProfileApproval: options.writePolicy?.requireUserProfileApproval ?? false,\n allowedProviderIds: options.writePolicy?.allowedProviderIds,\n autoWriteKinds: options.writePolicy?.autoWriteKinds,\n };\n this.understanding = new UserUnderstandingService({\n write: (request) => this.write(request),\n list: (canonicalKey) => this.list({ canonicalKey }),\n });\n }\n\n addProvider(provider: MemoryProvider): void {\n this.providers.push(provider);\n\n for (const schema of provider.getToolSchemas?.() ?? []) {\n const toolName = schema.name;\n if (!toolName) {\n continue;\n }\n if (!this.toolToProvider.has(toolName)) {\n this.toolToProvider.set(toolName, provider);\n } else {\n log.warn(\n { toolName, existing: this.toolToProvider.get(toolName)?.id, ignored: provider.id },\n 'Memory tool name conflict',\n );\n }\n }\n\n log.info(\n { id: provider.id, toolCount: provider.getToolSchemas?.().length ?? 0, capabilities: provider.capabilities },\n 'Memory provider registered',\n );\n }\n\n get providersList(): MemoryProvider[] {\n return [...this.providers];\n }\n\n /**\n * Non-builtin static instructions (builtin uses curated snapshot in system prompt builder).\n */\n buildExternalSystemPrompt(): string {\n const blocks: string[] = [];\n for (const p of this.providers) {\n if (p.capabilities.local) {\n continue;\n }\n try {\n const block = p.systemPromptBlock?.();\n if (block?.trim()) {\n blocks.push(block.trim());\n }\n } catch (err) {\n log.warn({ err, id: p.id }, 'systemPromptBlock failed');\n }\n }\n return blocks.join('\\n\\n');\n }\n\n queuePrefetchAll(query: string, options?: { sessionId?: string }): void {\n for (const p of this.providers) {\n try {\n p.queuePrefetch?.(query, options);\n } catch (err) {\n log.debug({ err, id: p.id }, 'queuePrefetch failed (non-fatal)');\n }\n }\n }\n\n async syncAll(userContent: string, assistantContent: string, options?: { sessionId?: string }): Promise<void> {\n await this.captureTurnUnderstanding(userContent, assistantContent, options);\n await this.syncProvidersForTurn(userContent, assistantContent, options);\n }\n\n async captureTurnUnderstanding(\n userContent: string,\n assistantContent: string,\n options?: { agentId?: string; sessionId?: string; correctionTargetRecordIds?: string[] },\n ): Promise<import('./understanding/types.js').UnderstandingReviewResult> {\n const review = await this.understanding.reviewTurn({\n agentId: options?.agentId ?? this.understandingAgentId,\n userContent,\n assistantContent,\n sessionKey: options?.sessionId,\n correctionTargetRecordIds: options?.correctionTargetRecordIds,\n });\n if (options?.sessionId && review.sourceItemId) {\n this.lastTurnSourceItem.set(options.sessionId, review.sourceItemId);\n }\n return review;\n }\n\n async syncProvidersForTurn(\n userContent: string,\n assistantContent: string,\n options?: { sessionId?: string },\n ): Promise<void> {\n const event: MemorySyncEvent = {\n type: 'turn',\n userContent,\n assistantContent,\n sessionId: options?.sessionId,\n };\n for (const p of this.providers) {\n const started = Date.now();\n try {\n await p.sync?.(event);\n this.trace('sync', p.id, event, {\n resultCount: 1,\n durationMs: Date.now() - started,\n sessionKey: options?.sessionId,\n });\n } catch (err) {\n this.trace('sync', p.id, event, {\n error: err instanceof Error ? err.message : String(err),\n durationMs: Date.now() - started,\n sessionKey: options?.sessionId,\n });\n log.warn({ err, id: p.id }, 'memory sync failed');\n }\n }\n }\n\n async applyUnderstandingCandidates(\n candidates: UnderstandingCandidate[],\n context: {\n agentId?: string;\n sessionKey?: string;\n sourceText?: string;\n reviewSource?: 'turn' | 'background';\n } = {},\n ): Promise<void> {\n const sourceItemId = context.sessionKey\n ? this.lastTurnSourceItem.get(context.sessionKey)\n : undefined;\n await this.understanding.applyCandidates(candidates, {\n ...context,\n agentId: context.agentId ?? this.understandingAgentId,\n sourceItemId,\n });\n if (sourceItemId) {\n setKnowledgeSourceItemSynthesisStatus([sourceItemId], 'completed');\n }\n }\n\n getAdditionalTools(): AgentTool[] {\n const out: AgentTool[] = [];\n const seen = new Set<string>();\n for (const p of this.providers) {\n if (p.capabilities.local) {\n continue;\n }\n try {\n for (const t of p.getToolSchemas?.() ?? []) {\n if (t.name && !seen.has(t.name)) {\n seen.add(t.name);\n out.push(t);\n }\n }\n } catch (err) {\n log.warn({ err, id: p.id }, 'getToolSchemas failed');\n }\n }\n return out;\n }\n\n async handleToolCall(toolName: string, args: Record<string, unknown>): Promise<string> {\n const provider = this.toolToProvider.get(toolName);\n if (!provider) {\n throw new Error(`No memory provider handles tool '${toolName}'`);\n }\n if (!provider.handleToolCall) {\n throw new Error(`Memory provider '${provider.id}' does not handle tool calls`);\n }\n return provider.handleToolCall(toolName, args);\n }\n\n async search(request: MemorySearchRequest): Promise<MemorySearchResult[]> {\n const providers = this.providersForSearch();\n const results: MemorySearchResult[] = [];\n\n for (const p of providers) {\n if (!p.capabilities.search || !p.search) continue;\n const started = Date.now();\n try {\n const providerResults = await p.search(request);\n this.trace('search', p.id, request, {\n resultCount: providerResults.length,\n selectedRecordIds: providerResults.map((result) => result.record.id),\n durationMs: Date.now() - started,\n sessionKey: request.scope?.sessionKey,\n });\n results.push(...providerResults);\n if (providerResults.length > 0 && this.routing.searchStrategy !== 'fanout') {\n break;\n }\n } catch (err) {\n this.trace('search', p.id, request, {\n error: err instanceof Error ? err.message : String(err),\n durationMs: Date.now() - started,\n sessionKey: request.scope?.sessionKey,\n });\n log.warn({ err, id: p.id }, 'memory search failed');\n }\n }\n\n const seen = new Set<string>();\n return results\n .sort((a, b) => b.score - a.score)\n .filter((result) => this.canReadRecord(result.record, request.scope))\n .filter((result) => {\n const key = `${result.citation.providerId}:${result.citation.recordId}`;\n if (seen.has(key)) return false;\n seen.add(key);\n return true;\n })\n .slice(0, request.maxResults ?? 5);\n }\n\n async read(request: MemoryReadRequest): Promise<MemoryReadResult | null> {\n for (const p of this.providersForSearch()) {\n if (!p.capabilities.read || !p.read) continue;\n const started = Date.now();\n try {\n const result = await p.read(request);\n this.trace('read', p.id, request, {\n resultCount: result ? 1 : 0,\n selectedRecordIds: result ? [result.record.id] : [],\n durationMs: Date.now() - started,\n sessionKey: request.scope?.sessionKey,\n });\n if (result && this.canReadRecord(result.record, request.scope)) return result;\n } catch (err) {\n this.trace('read', p.id, request, {\n error: err instanceof Error ? err.message : String(err),\n durationMs: Date.now() - started,\n sessionKey: request.scope?.sessionKey,\n });\n log.warn({ err, id: p.id }, 'memory read failed');\n }\n }\n return null;\n }\n\n async get(id: string): Promise<MemoryRecord | null> {\n for (const p of this.providers) {\n if (!p.capabilities.read) continue;\n try {\n const direct = await p.get?.(id);\n if (direct && this.canReadRecord(direct)) return direct;\n } catch (err) {\n log.warn({ err, id: p.id, recordId: id }, 'memory get failed');\n }\n }\n return null;\n }\n\n async list(request: MemoryListRequest): Promise<MemoryRecord[]> {\n const out: MemoryRecord[] = [];\n for (const p of this.providersForSearch()) {\n if (!p.capabilities.read || !p.list) continue;\n try {\n out.push(...(await p.list(request)).filter((record) => this.canReadRecord(record, request.scope)));\n } catch (err) {\n log.warn({ err, id: p.id }, 'memory list failed');\n }\n }\n return out;\n }\n\n async write(request: MemoryWriteRequest): Promise<MemoryWriteResult> {\n return this.writeWithStrategy('write', request);\n }\n\n async update(request: MemoryUpdateRequest): Promise<MemoryWriteResult> {\n return this.writeWithStrategy('update', request);\n }\n\n async delete(request: MemoryDeleteRequest): Promise<MemoryWriteResult> {\n return this.writeWithStrategy('delete', request);\n }\n\n private canReadRecord(record: MemoryRecord, scope?: MemorySearchRequest['scope']): boolean {\n void record;\n void scope;\n return true;\n }\n\n onMemoryWrite(action: 'add' | 'replace' | 'remove', target: 'memory' | 'user', content: string): void {\n for (const p of this.providers) {\n if (p.capabilities.local) {\n continue;\n }\n try {\n p.sync?.({ type: 'write', action, target, content });\n } catch (err) {\n log.debug({ err, id: p.id }, 'memory write sync failed');\n }\n }\n }\n\n recordSignal(signal: MemorySignal): void {\n for (const p of this.providers) {\n const started = Date.now();\n try {\n p.sync?.({ type: 'signal', signal });\n this.trace('sync', p.id, { type: 'signal', signal }, {\n resultCount: 1,\n durationMs: Date.now() - started,\n });\n } catch (err) {\n this.trace('sync', p.id, { type: 'signal', signal }, {\n error: err instanceof Error ? err.message : String(err),\n durationMs: Date.now() - started,\n });\n log.debug({ err, id: p.id, source: signal.source }, 'memory signal sync failed');\n }\n }\n }\n\n async initializeAll(sessionId: string, options?: MemoryProviderInitOptions): Promise<void> {\n this.understandingAgentId = options?.agentId;\n await this.loadPluginProvidersOnce();\n for (const p of this.providers) {\n try {\n await p.initialize(sessionId, options);\n } catch (err) {\n log.warn({ err, id: p.id }, 'initialize failed');\n }\n }\n }\n\n private async loadPluginProvidersOnce(): Promise<void> {\n if (this.pluginProvidersLoaded || !this.loadProviders) return;\n this.pluginProvidersLoaded = true;\n try {\n const providers = await this.loadProviders();\n const existingIds = new Set(this.providers.map((p) => p.id));\n for (const provider of providers) {\n if (existingIds.has(provider.id)) {\n log.warn({ id: provider.id }, 'Skipped duplicate memory provider');\n continue;\n }\n this.addProvider(provider);\n existingIds.add(provider.id);\n }\n } catch (err) {\n log.warn({ err }, 'Memory provider plugin loading failed');\n }\n }\n\n async shutdownAll(): Promise<void> {\n this.lastTurnSourceItem.clear();\n for (const p of [...this.providers].reverse()) {\n try {\n await p.shutdown();\n } catch (err) {\n log.warn({ err, id: p.id }, 'shutdown failed');\n }\n }\n }\n\n private providersForSearch(): MemoryProvider[] {\n const locals = this.providers.filter((p) => p.capabilities.local);\n const externals = this.providers.filter((p) => !p.capabilities.local);\n switch (this.routing.searchStrategy) {\n case 'local-only':\n return locals;\n case 'external-only':\n return externals;\n case 'external-first':\n return [...externals, ...locals];\n case 'local-first':\n case 'fanout':\n default:\n return [...locals, ...externals];\n }\n }\n\n private providersForWrite(): MemoryProvider[] {\n const locals = this.providers.filter((p) => p.capabilities.local);\n const externals = this.providers.filter((p) => !p.capabilities.local);\n switch (this.routing.writeStrategy) {\n case 'local-only':\n return locals;\n case 'external-only':\n return externals;\n case 'external-first':\n return [...externals, ...locals];\n case 'write-through':\n case 'local-first':\n default:\n return [...locals, ...externals];\n }\n }\n\n private async writeWithStrategy(\n operation: 'write' | 'update' | 'delete',\n request: MemoryWriteRequest | MemoryUpdateRequest | MemoryDeleteRequest,\n ): Promise<MemoryWriteResult> {\n const providers =\n operation === 'write' && (request as MemoryWriteRequest).status === 'candidate'\n ? this.providers.filter((provider) => provider.capabilities.local)\n : this.providersForWrite();\n const errors: string[] = [];\n let firstSuccess: MemoryWriteResult | null = null;\n\n for (const p of providers) {\n const fn = p[operation];\n if (!this.providerAllowedForWrite(p, operation, request)) {\n this.trace(operation, p.id, request, {\n skippedReason: 'policy',\n sessionKey: request.scope?.sessionKey,\n });\n continue;\n }\n const canWrite =\n (operation === 'write' && p.capabilities.write) ||\n (operation === 'update' && p.capabilities.update) ||\n (operation === 'delete' && p.capabilities.delete);\n if (!canWrite || !fn) continue;\n const started = Date.now();\n try {\n const result = await fn.call(p, request as never);\n this.trace(operation, p.id, request, {\n resultCount: result.record ? 1 : 0,\n selectedRecordIds: result.record ? [result.record.id] : [],\n error: result.success ? undefined : result.error,\n durationMs: Date.now() - started,\n sessionKey: request.scope?.sessionKey,\n });\n if (result.success) {\n firstSuccess ??= result;\n if (this.routing.writeStrategy !== 'write-through') {\n return result;\n }\n } else if (result.error) {\n errors.push(`${p.id}: ${result.error}`);\n }\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n this.trace(operation, p.id, request, {\n error: message,\n durationMs: Date.now() - started,\n sessionKey: request.scope?.sessionKey,\n });\n errors.push(`${p.id}: ${message}`);\n log.warn({ err, id: p.id, operation }, 'memory write operation failed');\n }\n }\n\n if (firstSuccess) return firstSuccess;\n return { success: false, error: errors.join('; ') || `No provider supports memory ${operation}` };\n }\n\n private providerAllowedForWrite(\n provider: MemoryProvider,\n operation: 'write' | 'update' | 'delete',\n request: MemoryWriteRequest | MemoryUpdateRequest | MemoryDeleteRequest,\n ): boolean {\n if (!provider.capabilities.local && !this.writePolicy.allowExternalWrites) {\n return false;\n }\n if (\n !provider.capabilities.local &&\n this.writePolicy.allowedProviderIds &&\n this.writePolicy.allowedProviderIds.length > 0 &&\n !this.writePolicy.allowedProviderIds.includes(provider.id)\n ) {\n return false;\n }\n if (operation === 'write') {\n const writeRequest = request as MemoryWriteRequest;\n if (writeRequest.status === 'candidate' && !provider.capabilities.local) {\n return false;\n }\n if (\n this.writePolicy.autoWriteKinds &&\n this.writePolicy.autoWriteKinds.length > 0 &&\n !this.writePolicy.autoWriteKinds.includes(writeRequest.kind)\n ) {\n return false;\n }\n if (\n this.writePolicy.requireUserProfileApproval &&\n writeRequest.kind === 'user_profile' &&\n !writeRequest.approved\n ) {\n return false;\n }\n }\n if (operation === 'update' && this.writePolicy.requireUserProfileApproval) {\n const updateRequest = request as MemoryUpdateRequest;\n if (updateRequest.target === 'user' && !updateRequest.approved) {\n return false;\n }\n }\n return true;\n }\n\n private trace(\n phase: 'search' | 'read' | 'write' | 'update' | 'delete' | 'sync' | 'inject' | 'test',\n providerId: string,\n request: unknown,\n meta: {\n sessionKey?: string;\n resultCount?: number;\n selectedRecordIds?: string[];\n skippedReason?: string;\n error?: string;\n durationMs?: number;\n } = {},\n ): void {\n try {\n appendMemoryTraceEvent({\n phase,\n providerId,\n request: sanitizeTraceRequest(request),\n ...meta,\n });\n } catch (err) {\n log.debug({ err, providerId, phase }, 'memory trace append failed');\n }\n }\n}\n\nfunction sanitizeTraceRequest(request: unknown): unknown {\n if (!request || typeof request !== 'object') return request;\n const copy = { ...(request as Record<string, unknown>) };\n if (typeof copy.content === 'string' && copy.content.length > 500) {\n copy.content = `${copy.content.slice(0, 500)}…`;\n }\n return copy;\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory-config.js","names":[],"sources":["../../../../src/agent/memory/memory-config.ts"],"sourcesContent":["import { join } from 'node:path';\n\nimport type { Config } from '../../config/schema.js';\nimport { resolveUserMemoryPath } from '../../config/paths.js';\nimport { resolveUserDir } from '../../config/paths.js';\n\nimport type { MemoryStoreConfig } from './types.js';\n\n/** When false, shared curated memory and external memory providers are off. */\nexport function isMemorySubsystemEnabled(config: Config | undefined): boolean {\n if (!config) return true;\n return config.userContext.enabled && config.userContext.memory.mode !== 'off';\n}\n\n/** Curated memory tool + shared user `memories/` store (not injected into system prompt). */\nexport function isCuratedMemoryInPrompt(config: Config | undefined): boolean {\n if (!config) return true;\n return config.userContext.enabled && config.userContext.memory.sources.includes('curated');\n}\n\nexport function resolveBuiltinMemoryStoreConfig(\n workspaceDir: string,\n config: Config | undefined,\n _requestedAgentId?: string,\n): MemoryStoreConfig {\n const memoriesDir = config != null ? join(resolveUserDir(), 'memories') : join(workspaceDir, 'memories');\n return {\n workspaceDir,\n memoriesDir,\n userMemoryPath: config != null ? resolveUserMemoryPath() : join(workspaceDir, 'user', 'MEMORY.md'),\n memoryCharLimit: config?.userContext.memory.retention?.maxChars ?? 2200,\n userCharLimit: 1375,\n userProfileEnabled: config?.userContext.memory.sources.includes('userProfile') ?? true,\n };\n}\n\n/**\n * Whether to prefix the user message with prefetched external memory this turn.\n * `first-turn` only injects on turn 1. `contextCadence` N injects on turns 1, N+1, 2N+1, …\n */\nexport function shouldPlanUserContextThisTurn(\n _config: Config | undefined,\n turnNumber: number,\n): boolean {\n return turnNumber >= 1;\n}\n\nexport function shouldRegisterCuratedMemoryTool(config: Config | undefined): boolean {\n return isCuratedMemoryInPrompt(config);\n}\n"],"mappings":";;;YAG8D;;AAM9D,SAAgB,yBAAyB,QAAqC;AAC5E,KAAI,CAAC,OAAQ,QAAO;AACpB,QAAO,OAAO,YAAY,WAAW,OAAO,YAAY,OAAO,SAAS;;;AAI1E,SAAgB,wBAAwB,QAAqC;AAC3E,KAAI,CAAC,OAAQ,QAAO;AACpB,QAAO,OAAO,YAAY,WAAW,OAAO,YAAY,OAAO,QAAQ,SAAS,UAAU;;AAG5F,SAAgB,gCACd,cACA,QACA,mBACmB;AAEnB,QAAO;EACL;EACA,aAHkB,UAAU,OAAO,KAAK,gBAAgB,EAAE,WAAW,GAAG,KAAK,cAAc,WAAW;EAItG,gBAAgB,UAAU,OAAO,uBAAuB,GAAG,KAAK,cAAc,QAAQ,YAAY;EAClG,iBAAiB,QAAQ,YAAY,OAAO,WAAW,YAAY;EACnE,eAAe;EACf,oBAAoB,QAAQ,YAAY,OAAO,QAAQ,SAAS,cAAc,IAAI;EACnF;;;;;;AAOH,SAAgB,8BACd,SACA,YACS;AACT,QAAO,cAAc;;AAGvB,SAAgB,gCAAgC,QAAqC;AACnF,QAAO,wBAAwB,OAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"message-sanitizer.js","names":["msg"],"sources":["../../../../src/agent/memory/message-sanitizer.ts"],"sourcesContent":["/**\n * Message Sanitizer - Cleans messages before saving to history\n *\n * Handles edge cases where LLM API calls fail and produce invalid messages\n * that would cause subsequent API calls to fail (creating a vicious cycle).\n *\n * Key issues addressed:\n * - Empty content from API errors\n * - Messages with stopReason: \"error\"\n * - Messages with errorMessage field\n * - Invalid tool_call_id references\n */\n\nimport type { AgentMessage } from '@earendil-works/pi-agent-core';\nimport { createLogger } from '../../utils/logger.js';\nimport { readAgentMessageContent } from './agent-message-access.js';\n\nconst log = createLogger('MessageSanitizer');\n\n/**\n * Single multimodal / structured block is meaningful for history persistence.\n * Handles blocks without `type` (e.g. { data, mimeType } only) that some providers emit.\n */\nfunction isMeaningfulContentBlock(item: unknown): boolean {\n if (typeof item === 'string') {\n return item.trim().length > 0;\n }\n if (!item || typeof item !== 'object') {\n return false;\n }\n const o = item as Record<string, unknown>;\n const t = o.type;\n\n if (t === 'text') {\n return String(o.text ?? '').trim().length > 0;\n }\n if (t === 'toolCall') {\n return String(o.name ?? '').trim().length > 0;\n }\n if (t === 'thinking') {\n return true;\n }\n if (\n t === 'image' ||\n t === 'image_url' ||\n t === 'input_image' ||\n t === 'file' ||\n t === 'audio' ||\n t === 'video'\n ) {\n return true;\n }\n if (o.image_url !== undefined || o.imageUrl !== undefined) {\n return true;\n }\n if (o.inlineData !== undefined || o.inline_data !== undefined) {\n return true;\n }\n if (typeof o.data === 'string' && o.data.length > 0 && typeof o.mimeType === 'string') {\n return true;\n }\n if (typeof t === 'string' && t.length > 0) {\n return true;\n }\n return false;\n}\n\n/**\n * Check if a message has valid, non-empty content\n */\nfunction hasValidContent(message: AgentMessage): boolean {\n const msg = message as AgentMessage & {\n tool_calls?: unknown[];\n toolCalls?: unknown[];\n };\n if (message.role === 'assistant') {\n if (Array.isArray(msg.tool_calls) && msg.tool_calls.length > 0) return true;\n if (Array.isArray(msg.toolCalls) && msg.toolCalls.length > 0) return true;\n }\n\n const content = readAgentMessageContent(message);\n\n // String content must be non-empty\n if (typeof content === 'string') {\n return content.trim().length > 0;\n }\n\n // Array content must have at least one meaningful item\n if (Array.isArray(content)) {\n return content.some((item) => isMeaningfulContentBlock(item));\n }\n\n return false;\n}\n\n/**\n * Check if a message is an error message from a failed LLM call\n */\nfunction isErrorMessage(message: AgentMessage): boolean {\n // Only check assistant messages\n if (message.role !== 'assistant') {\n return false;\n }\n\n const msg = message as { stopReason?: string; errorMessage?: string };\n if (msg.stopReason === 'error') {\n return true;\n }\n\n // User interrupt: keep partial assistant text in session history when non-empty\n if (msg.stopReason === 'aborted') {\n return !hasValidContent(message);\n }\n\n // Check for errorMessage field (added by pi-agent-core on API errors)\n if (msg.errorMessage) {\n return true;\n }\n\n return false;\n}\n\n/**\n * Check if a message might cause issues in subsequent API calls\n */\nfunction isProblematicMessage(message: AgentMessage): boolean {\n // Only check assistant messages\n if (message.role !== 'assistant') {\n return false;\n }\n\n // Error messages are problematic\n if (isErrorMessage(message)) {\n return true;\n }\n\n // Empty content is problematic\n if (!hasValidContent(message)) {\n return true;\n }\n\n return false;\n}\n\n/**\n * Options for message sanitization\n */\nexport interface SanitizeOptions {\n /** Remove error messages (default: true) */\n removeErrors?: boolean;\n /** Remove empty messages (default: true) */\n removeEmpty?: boolean;\n /** Keep at least N recent messages (default: 0) */\n keepRecent?: number;\n /** Log removed messages (default: true in development) */\n logRemovals?: boolean;\n}\n\n/**\n * Result of sanitization\n */\nexport interface SanitizeResult {\n /** Sanitized messages */\n messages: AgentMessage[];\n /** Number of messages removed */\n removed: number;\n /** Reasons for removal */\n reasons: Array<{ index: number; reason: string }>;\n}\n\n/**\n * Sanitize messages before saving to history.\n *\n * Removes:\n * - Assistant messages with stopReason: \"error\"\n * - Assistant messages with stopReason: \"aborted\" only when empty (partial interrupted text is kept)\n * - Assistant messages with errorMessage field\n * - Assistant messages with empty/invalid content\n *\n * @param messages - Messages to sanitize\n * @param options - Sanitization options\n * @returns Sanitized messages and removal details\n */\nexport function sanitizeMessages(\n messages: AgentMessage[],\n options: SanitizeOptions = {}\n): SanitizeResult {\n const {\n removeErrors = true,\n removeEmpty = true,\n keepRecent = 0,\n logRemovals = process.env.NODE_ENV !== 'test',\n } = options;\n\n const reasons: Array<{ index: number; reason: string }> = [];\n const result: AgentMessage[] = [];\n\n // Track recent messages to preserve\n const preserveIndices = new Set<number>();\n if (keepRecent > 0) {\n for (let i = Math.max(0, messages.length - keepRecent); i < messages.length; i++) {\n preserveIndices.add(i);\n }\n }\n\n for (let i = 0; i < messages.length; i++) {\n const message = messages[i];\n const originalIndex = i;\n\n // Skip non-assistant messages\n if (message.role !== 'assistant') {\n result.push(message);\n continue;\n }\n\n // Check if this message should be preserved (recent message)\n if (preserveIndices.has(i)) {\n result.push(message);\n continue;\n }\n\n // Check for error messages\n if (removeErrors && isErrorMessage(message)) {\n reasons.push({\n index: originalIndex,\n reason: `Error message: stopReason=${message.stopReason}, errorMessage=${(message as any).errorMessage || 'none'}`,\n });\n continue;\n }\n\n // Check for empty content\n if (removeEmpty && !hasValidContent(message)) {\n reasons.push({\n index: originalIndex,\n reason: 'Empty or invalid content',\n });\n continue;\n }\n\n result.push(message);\n }\n\n const removed = messages.length - result.length;\n\n if (logRemovals && removed > 0) {\n log.info(\n {\n removed,\n original: messages.length,\n sanitized: result.length,\n reasons: reasons.slice(0, 5), // Log first 5 reasons\n },\n 'Sanitized messages'\n );\n }\n\n return { messages: result, removed, reasons };\n}\n\n/**\n * Clean trailing error messages from message history.\n *\n * This is useful for cleaning up after a failed turn, ensuring\n * the conversation can continue from the last valid state.\n *\n * @param messages - Messages to clean\n * @returns Cleaned messages\n */\nexport function cleanTrailingErrors(messages: AgentMessage[]): AgentMessage[] {\n const result = [...messages];\n\n // Remove trailing error/empty messages\n while (result.length > 0) {\n const last = result[result.length - 1];\n if (last.role === 'assistant' && isProblematicMessage(last)) {\n const msg = last as any;\n log.debug({ stopReason: msg.stopReason }, 'Removing trailing error message');\n result.pop();\n } else {\n break;\n }\n }\n\n return result;\n}\n\n/**\n * Validate a single message for potential issues.\n * Returns null if valid, or an error description if problematic.\n */\nexport function validateMessage(message: AgentMessage): string | null {\n if (message.role === 'assistant') {\n if (isErrorMessage(message)) {\n const msg = message as any;\n return `Error message: stopReason=${msg.stopReason}`;\n }\n if (!hasValidContent(message)) {\n return 'Empty or invalid content';\n }\n }\n\n // Check for tool result messages with error indicators\n if (message.role === 'toolResult') {\n const content = (message as any).content;\n if (typeof content === 'string' && content.includes('tool_call_id is not found')) {\n return 'Contains invalid tool_call_id reference';\n }\n }\n\n return null;\n}\n\n/**\n * Quick check if messages contain any problematic entries.\n * Useful for debugging and monitoring.\n */\nexport function hasProblematicMessages(messages: AgentMessage[]): boolean {\n return messages.some((m) => isProblematicMessage(m));\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-discovery.js","names":[],"sources":["../../../../src/agent/memory/plugin-discovery.ts"],"sourcesContent":["import { stat } from 'node:fs/promises';\nimport { isAbsolute, join } from 'node:path';\nimport { pathToFileURL } from 'node:url';\n\nimport type { Config } from '../../config/schema.js';\nimport { discoverExtensionsFromDisk } from '../../extensions/discover-extensions.js';\nimport type { DiscoveredExtension } from '../../extensions/types/loader.js';\nimport type { MemoryProvider } from './provider.js';\nimport type { MemoryProviderManifest } from './types.js';\n\nexport interface MemoryPluginMetadata {\n name: string;\n description: string;\n available: boolean;\n manifest?: MemoryProviderManifest;\n}\n\nexport interface MemoryPluginProviderContext {\n config?: Config;\n manifest?: MemoryProviderManifest;\n extension?: {\n id: string;\n path: string;\n source: DiscoveredExtension['source'];\n config?: Record<string, unknown>;\n };\n}\n\ntype MemoryPluginModule = {\n isAvailable?: () => boolean;\n description?: string;\n manifest?: MemoryProviderManifest;\n createMemoryProvider?: (\n context: MemoryPluginProviderContext,\n ) => MemoryProvider | Promise<MemoryProvider>;\n};\n\nexport async function discoverMemoryPlugins(config?: Config): Promise<MemoryPluginMetadata[]> {\n const plugins: MemoryPluginMetadata[] = [];\n for (const extension of discoverMemoryProviderExtensions(config)) {\n for (const providerId of extension.manifest.contracts?.memoryProviders ?? []) {\n plugins.push({\n name: providerId,\n description: extension.manifest.description ?? `${extension.manifest.name} memory provider`,\n available: true,\n manifest: {\n type: 'memory-provider',\n id: providerId,\n displayName: extension.manifest.name || providerId,\n entry: extension.manifest.main,\n capabilities: {},\n },\n });\n }\n }\n return plugins.sort((a, b) => a.name.localeCompare(b.name));\n}\n\nexport async function loadMemoryPluginProviders(params: {\n config?: Config;\n} = {}): Promise<MemoryProvider[]> {\n const providers: MemoryProvider[] = [];\n for (const extension of discoverMemoryProviderExtensions(params.config)) {\n const module = await loadMemoryProviderModule(extension);\n if (!module?.createMemoryProvider) continue;\n if (module.isAvailable?.() === false) continue;\n\n const declaredProviderIds = extension.manifest.contracts?.memoryProviders ?? [];\n const fallbackId = declaredProviderIds[0] ?? extension.id;\n const manifest = normalizeMemoryProviderManifest(fallbackId, module.manifest) ?? {\n type: 'memory-provider',\n id: fallbackId,\n displayName: extension.manifest.name || fallbackId,\n entry: extension.manifest.main,\n capabilities: {},\n };\n\n const provider = await module.createMemoryProvider({\n config: params.config,\n manifest,\n extension: {\n id: extension.id,\n path: extension.path,\n source: extension.source,\n config: extensionConfig(params.config, extension.id),\n },\n });\n providers.push(provider);\n }\n return providers;\n}\n\nfunction discoverMemoryProviderExtensions(config?: Config): DiscoveredExtension[] {\n if (areExtensionsDisabled(config)) return [];\n const disabled = new Set(extensionIds(config?.extensions?.disabled));\n const enabled = config?.extensions?.enabled;\n const enabledSet = Array.isArray(enabled) ? new Set(extensionIds(enabled)) : null;\n return discoverExtensionsFromDisk({}, config as unknown as Record<string, unknown> | undefined)\n .filter((extension) => (extension.manifest.contracts?.memoryProviders?.length ?? 0) > 0)\n .filter((extension) => !disabled.has(extension.id))\n .filter((extension) => extension.manifest.enabledByDefault === true || enabledSet?.has(extension.id));\n}\n\nasync function loadMemoryProviderModule(extension: DiscoveredExtension): Promise<MemoryPluginModule | null> {\n if (!extension.manifest.main) return null;\n const entryPath = isAbsolute(extension.manifest.main)\n ? extension.manifest.main\n : join(extension.path, extension.manifest.main);\n const resolved = await resolveModuleEntry(entryPath);\n try {\n const mod = (await import(pathToFileURL(resolved).href)) as MemoryPluginModule | { default?: MemoryPluginModule };\n return 'default' in mod && mod.default ? mod.default : (mod as MemoryPluginModule);\n } catch {\n return null;\n }\n}\n\nasync function resolveModuleEntry(entryPath: string): Promise<string> {\n for (const candidate of entryCandidates(entryPath)) {\n try {\n await stat(candidate);\n return candidate;\n } catch {\n // Try the next candidate; source tests use .ts, builds use .js.\n }\n }\n return entryPath;\n}\n\nfunction entryCandidates(entryPath: string): string[] {\n const candidates = [entryPath];\n if (entryPath.endsWith('.js')) {\n candidates.push(`${entryPath.slice(0, -3)}.ts`);\n }\n return candidates;\n}\n\nfunction extensionIds(value: unknown): string[] {\n return Array.isArray(value) ? value.filter((item): item is string => typeof item === 'string') : [];\n}\n\nfunction areExtensionsDisabled(config?: Config): boolean {\n return config?.extensions?.enabled === false;\n}\n\nfunction extensionConfig(config: Config | undefined, extensionId: string): Record<string, unknown> | undefined {\n const raw = config?.extensions?.[extensionId as keyof Config['extensions']];\n return raw && typeof raw === 'object' && !Array.isArray(raw) ? (raw as Record<string, unknown>) : undefined;\n}\n\nfunction normalizeMemoryProviderManifest(\n fallbackId: string,\n manifest: MemoryProviderManifest | undefined,\n): MemoryProviderManifest | undefined {\n if (!manifest || manifest.type !== 'memory-provider') return undefined;\n const id = typeof manifest.id === 'string' && manifest.id.trim() ? manifest.id.trim() : fallbackId;\n const displayName =\n typeof manifest.displayName === 'string' && manifest.displayName.trim()\n ? manifest.displayName.trim()\n : id;\n return {\n type: 'memory-provider',\n id,\n displayName,\n ...(manifest.entry ? { entry: manifest.entry } : {}),\n capabilities: manifest.capabilities ?? {},\n ...(manifest.configSchema ? { configSchema: manifest.configSchema } : {}),\n };\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sensitivity.js","names":[],"sources":["../../../../src/agent/memory/sensitivity.ts"],"sourcesContent":["import type { MemorySensitivity } from './types.js';\n\nexport function inferMemorySensitivity(content: string): MemorySensitivity {\n if (\n /\\b(api[_-]?key|access[_-]?key|token|password|secret|credential|private[_-]?key|bearer)\\b/i.test(content)\n || /密钥|密码|令牌|私钥/.test(content)\n || /\\b(?:sk|gh[opsu]|xox[abprs])-[a-z0-9_-]{8,}\\b/i.test(content)\n || /\\bAKIA[A-Z0-9]{12,}\\b/.test(content)\n || /-----BEGIN [A-Z ]*PRIVATE KEY-----/.test(content)\n ) return 'secret';\n if (\n /\\b(ssn|social security|bank account|credit card|medical record)\\b/i.test(content)\n || /身份证|银行卡|信用卡|医疗记录/.test(content)\n ) return 'regulated';\n return /家庭|住址|生日|健康|关系|family|address|birthday|health/i.test(content)\n ? 'personal'\n : 'normal';\n}\n\nexport function redactSensitiveMemoryText(content: string): string {\n return content\n .replace(/-----BEGIN [A-Z ]*PRIVATE KEY-----[\\s\\S]*?-----END [A-Z ]*PRIVATE KEY-----/g, '[REDACTED PRIVATE KEY]')\n .replace(/\\b(api[_-]?key|access[_-]?key|token|password|secret|credential|private[_-]?key|bearer)\\b\\s*[:=]?\\s*[^\\s,;]+/gi, '$1=[REDACTED]')\n .replace(/(密钥|密码|令牌|私钥)\\s*[::=]?\\s*[^\\s,;]+/g, '$1=[REDACTED]')\n .replace(/\\b(?:sk|gh[opsu]|xox[abprs])-[a-z0-9_-]{8,}\\b/gi, '[REDACTED TOKEN]')\n .replace(/\\bAKIA[A-Z0-9]{12,}\\b/g, '[REDACTED ACCESS KEY]');\n}\n"],"mappings":";AAEA,SAAgB,uBAAuB,SAAoC;AACzE,KACE,4FAA4F,KAAK,QAAQ,IACtG,cAAc,KAAK,QAAQ,IAC3B,iDAAiD,KAAK,QAAQ,IAC9D,wBAAwB,KAAK,QAAQ,IACrC,qCAAqC,KAAK,QAAQ,CACrD,QAAO;AACT,KACE,qEAAqE,KAAK,QAAQ,IAC/E,mBAAmB,KAAK,QAAQ,CACnC,QAAO;AACT,QAAO,iDAAiD,KAAK,QAAQ,GACjE,aACA;;AAGN,SAAgB,0BAA0B,SAAyB;AACjE,QAAO,QACJ,QAAQ,+EAA+E,yBAAyB,CAChH,QAAQ,iHAAiH,gBAAgB,CACzI,QAAQ,sCAAsC,gBAAgB,CAC9D,QAAQ,mDAAmD,mBAAmB,CAC9E,QAAQ,0BAA0B,wBAAwB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"source-origin.js","names":[],"sources":["../../../../src/agent/memory/source-origin.ts"],"sourcesContent":["import type { MemoryRecord } from './types.js';\n\nexport type MemoryContextOrigin = 'told_by_user' | 'observed' | 'inferred' | 'connected_source';\n\nconst INTERNAL_MEMORY_PROVIDERS = new Set([\n 'local',\n 'builtin',\n 'user-understanding',\n 'dreaming',\n 'workflow-run',\n]);\n\nexport function classifyMemoryContextOrigin(record: MemoryRecord): MemoryContextOrigin {\n const provider = record.source.provider?.trim().toLowerCase();\n if (provider && !INTERNAL_MEMORY_PROVIDERS.has(provider)) return 'connected_source';\n if (record.explicitness === 'explicit') return 'told_by_user';\n if (record.explicitness === 'observed') return 'observed';\n return 'inferred';\n}\n"],"mappings":";AAIA,MAAM,4BAA4B,IAAI,IAAI;CACxC;CACA;CACA;CACA;CACA;CACD,CAAC;AAEF,SAAgB,4BAA4B,QAA2C;CACrF,MAAM,WAAW,OAAO,OAAO,UAAU,MAAM,CAAC,aAAa;AAC7D,KAAI,YAAY,CAAC,0BAA0B,IAAI,SAAS,CAAE,QAAO;AACjE,KAAI,OAAO,iBAAiB,WAAY,QAAO;AAC/C,KAAI,OAAO,iBAAiB,WAAY,QAAO;AAC/C,QAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"stub-memory-provider.js","names":[],"sources":["../../../../src/agent/memory/stub-memory-provider.ts"],"sourcesContent":["import type { MemoryProvider, MemoryProviderInitOptions } from './provider.js';\n\n/**\n * Placeholder external provider — enables wiring tests without cloud deps.\n */\nexport class StubMemoryProvider implements MemoryProvider {\n readonly id = 'stub';\n readonly displayName = 'Stub Memory Provider';\n readonly capabilities = {\n search: true,\n read: false,\n write: false,\n update: false,\n delete: false,\n keywordSearch: false,\n semanticSearch: false,\n hybridSearch: false,\n citations: false,\n sync: true,\n local: false,\n };\n\n isAvailable(): boolean {\n return true;\n }\n\n async initialize(_sessionId: string, _options?: MemoryProviderInitOptions): Promise<void> {}\n\n systemPromptBlock(): string {\n return 'External memory provider: stub (wiring only; no cloud backend).';\n }\n\n queuePrefetch(): void {}\n\n sync(): void {}\n\n getToolSchemas() {\n return [];\n }\n\n async handleToolCall(toolName: string): Promise<string> {\n return JSON.stringify({ error: `stub provider has no tools (${toolName})` });\n }\n\n async search(): Promise<[]> {\n return [];\n }\n\n async shutdown(): Promise<void> {}\n}\n"],"mappings":";;;;AAKA,IAAa,qBAAb,MAA0D;CACxD,KAAc;CACd,cAAuB;CACvB,eAAwB;EACtB,QAAQ;EACR,MAAM;EACN,OAAO;EACP,QAAQ;EACR,QAAQ;EACR,eAAe;EACf,gBAAgB;EAChB,cAAc;EACd,WAAW;EACX,MAAM;EACN,OAAO;EACR;CAED,cAAuB;AACrB,SAAO;;CAGT,MAAM,WAAW,YAAoB,UAAqD;CAE1F,oBAA4B;AAC1B,SAAO;;CAGT,gBAAsB;CAEtB,OAAa;CAEb,iBAAiB;AACf,SAAO,EAAE;;CAGX,MAAM,eAAe,UAAmC;AACtD,SAAO,KAAK,UAAU,EAAE,OAAO,+BAA+B,SAAS,IAAI,CAAC;;CAG9E,MAAM,SAAsB;AAC1B,SAAO,EAAE;;CAGX,MAAM,WAA0B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"summary-generator.js","names":[],"sources":["../../../../src/agent/memory/summary-generator.ts"],"sourcesContent":["/**\n * Summary Generator - Generates structured summaries for context compaction\n * \n * Creates structured summaries that preserve:\n * - User requests and intents\n * - Tool call history (deduplicated by file path)\n * - Key decisions and outcomes\n * - Modified files list\n * - Usage statistics\n */\n\nimport type { AgentMessage } from '@earendil-works/pi-agent-core';\nimport type { ToolResultMessage, Message } from '@earendil-works/pi-ai';\nimport { createLogger } from '../../utils/logger.js';\nimport { readAgentMessageContent } from './agent-message-access.js';\n\nconst log = createLogger('SummaryGenerator');\n\nexport interface ToolCallSummary {\n toolName: string;\n filePath?: string;\n operation: 'read' | 'write' | 'search' | 'command' | 'other';\n success: boolean;\n briefResult?: string;\n timestamp?: number;\n}\n\nexport interface ConversationSummary {\n userRequests: string[]; // User's core requests\n toolCalls: ToolCallSummary[]; // Tool call history\n keyDecisions: string[]; // Key decisions made\n filesModified: string[]; // List of modified files\n totalToolCalls: number; // Total tool calls (before dedup)\n successfulToolCalls: number; // Successful tool calls\n failedToolCalls: number; // Failed tool calls\n}\n\nexport interface SummaryGenerationOptions {\n maxUserRequests: number; // Max user requests to keep (default: 10)\n maxToolCalls: number; // Max tool calls to keep after dedup (default: 50)\n deduplicateByFile: boolean; // Deduplicate tool calls by file path (default: true)\n includeUsage: boolean; // Include usage statistics (default: true)\n}\n\nconst DEFAULT_OPTIONS: SummaryGenerationOptions = {\n maxUserRequests: 10,\n maxToolCalls: 50,\n deduplicateByFile: true,\n includeUsage: true,\n};\n\n/**\n * Categorize tool operation based on tool name\n */\nfunction categorizeToolOperation(toolName: string): 'read' | 'write' | 'search' | 'command' | 'other' {\n const name = toolName.toLowerCase();\n \n if (['read', 'read_file', 'read_multiple', 'glob', 'list_dir', 'ls', 'memory_get'].some(n => name.includes(n))) {\n return 'read';\n }\n \n if (['write', 'write_file', 'write_multiple', 'edit', 'patch', 'create', 'mkdir'].some(n => name.includes(n))) {\n return 'write';\n }\n \n if (['grep', 'search', 'find', 'find_files', 'memory_search', 'web_search'].some(n => name.includes(n))) {\n return 'search';\n }\n \n if (['bash', 'exec', 'run', 'command'].some(n => name.includes(n))) {\n return 'command';\n }\n \n return 'other';\n}\n\n/**\n * Extract text content from message\n */\nfunction extractTextContent(content: unknown): string {\n if (typeof content === 'string') {\n return content;\n }\n \n if (Array.isArray(content)) {\n return content\n .filter(c => c.type === 'text')\n .map(c => (c as { text?: string }).text || '')\n .join('\\n');\n }\n \n return '';\n}\n\n/**\n * Type guard: Check if message has tool calls (assistant message)\n */\nfunction hasToolCalls(msg: AgentMessage): msg is AgentMessage & { toolCalls?: unknown[] } {\n return msg.role === 'assistant' && 'toolCalls' in msg;\n}\n\n/**\n * Type guard: Check if message is a tool result\n */\nfunction isToolResult(msg: AgentMessage): msg is AgentMessage & { name?: string; role: 'toolResult' } {\n return msg.role === 'toolResult' && 'name' in msg;\n}\n\n/**\n * Deduplicate tool calls by file path (keep last operation per file)\n */\nfunction deduplicateByFilePath(toolCalls: ToolCallSummary[]): ToolCallSummary[] {\n const byFile = new Map<string, ToolCallSummary>();\n const otherCalls: ToolCallSummary[] = [];\n\n for (const call of toolCalls) {\n if (call.filePath) {\n // Keep the last operation for each file\n byFile.set(call.filePath, call);\n } else {\n // Keep all non-file operations\n otherCalls.push(call);\n }\n }\n\n return [...Array.from(byFile.values()), ...otherCalls];\n}\n\n/**\n * Generate structured summary from messages\n */\nexport function generateStructuredSummary(\n messages: AgentMessage[],\n options: Partial<SummaryGenerationOptions> = {}\n): ConversationSummary {\n const opts = { ...DEFAULT_OPTIONS, ...options };\n \n const summary: ConversationSummary = {\n userRequests: [],\n toolCalls: [],\n keyDecisions: [],\n filesModified: [],\n totalToolCalls: 0,\n successfulToolCalls: 0,\n failedToolCalls: 0,\n };\n\n let lastAssistantMessage: AgentMessage | null = null;\n\n for (const msg of messages) {\n // Extract user requests\n if (msg.role === 'user') {\n const text = extractTextContent(readAgentMessageContent(msg));\n if (text.trim().length > 20) {\n summary.userRequests.push(text.slice(0, 500)); // Limit each request length\n }\n }\n\n // Extract tool calls from assistant messages\n if (hasToolCalls(msg)) {\n lastAssistantMessage = msg;\n \n const toolCalls = (msg as Message & { toolCalls?: Array<{ name: string; args?: Record<string, unknown> }> }).toolCalls;\n if (toolCalls && toolCalls.length > 0) {\n summary.totalToolCalls += toolCalls.length;\n\n for (const call of toolCalls) {\n const toolSummary: ToolCallSummary = {\n toolName: call.name,\n operation: categorizeToolOperation(call.name),\n success: true, // Will be updated from tool_result\n filePath: String(call.args?.path || call.args?.file_path || call.args?.filePath || ''),\n timestamp: msg.timestamp,\n };\n summary.toolCalls.push(toolSummary);\n\n if (['write', 'edit'].includes(toolSummary.operation) && toolSummary.filePath) {\n summary.filesModified.push(toolSummary.filePath);\n }\n }\n }\n }\n\n // Extract tool results to determine success/failure\n if (isToolResult(msg)) {\n const toolMsg = msg as ToolResultMessage;\n const toolName = toolMsg.toolName;\n \n // Find the corresponding tool call and update success status\n const toolCall = summary.toolCalls\n .slice()\n .reverse()\n .find((tc: ToolCallSummary) => tc.toolName === toolName && !tc.timestamp); // Match by name, prefer unmatched\n \n if (toolCall) {\n const resultText = extractTextContent(readAgentMessageContent(toolMsg));\n \n // Detect failure from result content\n const isError = resultText.toLowerCase().includes('error') || \n resultText.toLowerCase().includes('failed') ||\n resultText.startsWith('Error:');\n \n toolCall.success = !isError;\n toolCall.briefResult = resultText.slice(0, 200);\n\n if (isError) {\n summary.failedToolCalls++;\n } else {\n summary.successfulToolCalls++;\n }\n }\n }\n }\n\n // Deduplicate tool calls by file path if enabled\n if (opts.deduplicateByFile) {\n summary.toolCalls = deduplicateByFilePath(summary.toolCalls);\n }\n\n // Limit tool calls\n if (summary.toolCalls.length > opts.maxToolCalls) {\n summary.toolCalls = summary.toolCalls.slice(-opts.maxToolCalls);\n }\n\n // Limit user requests\n if (summary.userRequests.length > opts.maxUserRequests) {\n summary.userRequests = summary.userRequests.slice(-opts.maxUserRequests);\n }\n\n // Deduplicate files modified\n summary.filesModified = [...new Set(summary.filesModified)];\n\n // Extract key decisions from last assistant message\n if (lastAssistantMessage) {\n const decisions = extractKeyDecisions(lastAssistantMessage);\n summary.keyDecisions = decisions;\n }\n\n log.debug(\n {\n userRequests: summary.userRequests.length,\n toolCalls: summary.toolCalls.length,\n filesModified: summary.filesModified.length,\n totalToolCalls: summary.totalToolCalls,\n successfulToolCalls: summary.successfulToolCalls,\n failedToolCalls: summary.failedToolCalls,\n },\n 'Generated structured summary'\n );\n\n return summary;\n}\n\n/**\n * Extract key decisions from assistant message\n */\nfunction extractKeyDecisions(msg: AgentMessage): string[] {\n const content = extractTextContent(readAgentMessageContent(msg));\n const decisions: string[] = [];\n\n // Look for decision patterns\n const decisionPatterns = [\n /(?:I'll|I will|Let's|We should|Decision:|Decided to|Chose to)\\s+(.+?)(?:\\.|\\n)/gi,\n /(?:Based on|After analyzing|Given that)\\s+(.+?)(?:\\.|\\n)/gi,\n /(?:The best approach|The solution|The answer) is\\s+(.+?)(?:\\.|\\n)/gi,\n ];\n\n for (const pattern of decisionPatterns) {\n const matches = content.match(pattern);\n if (matches) {\n decisions.push(...matches.slice(0, 5).map(m => m.trim()));\n }\n }\n\n // Limit decisions\n return decisions.slice(0, 10);\n}\n\n/**\n * Format structured summary as text for injection into context\n */\nexport function formatSummaryAsText(summary: ConversationSummary, includeUsage: boolean = true): string {\n const lines: string[] = [];\n\n lines.push('[Previous Conversation Summary]');\n\n // User requests\n if (summary.userRequests.length > 0) {\n lines.push('');\n lines.push('User Requests:');\n for (const req of summary.userRequests.slice(-5)) {\n lines.push(` - ${req.slice(0, 150)}${req.length > 150 ? '...' : ''}`);\n }\n }\n\n // Tool calls summary\n if (summary.toolCalls.length > 0) {\n lines.push('');\n lines.push('Tool Operations:');\n \n // Group by operation type\n const byType = new Map<string, ToolCallSummary[]>();\n for (const call of summary.toolCalls) {\n const list = byType.get(call.operation) || [];\n list.push(call);\n byType.set(call.operation, list);\n }\n\n for (const [type, calls] of byType.entries()) {\n const files = calls.filter(c => c.filePath).map(c => c.filePath!);\n const successCount = calls.filter(c => c.success).length;\n lines.push(` ${type.toUpperCase()}: ${calls.length} operations (${successCount}/${calls.length} successful)`);\n if (files.length > 0) {\n lines.push(` Files: ${files.slice(0, 10).join(', ')}${files.length > 10 ? '...' : ''}`);\n }\n }\n }\n\n // Files modified\n if (summary.filesModified.length > 0) {\n lines.push('');\n lines.push('Files Modified:');\n for (const file of summary.filesModified.slice(-10)) {\n lines.push(` - ${file}`);\n }\n }\n\n // Key decisions\n if (summary.keyDecisions.length > 0) {\n lines.push('');\n lines.push('Key Decisions:');\n for (const decision of summary.keyDecisions.slice(-5)) {\n lines.push(` - ${decision}`);\n }\n }\n\n // Usage statistics\n if (includeUsage) {\n lines.push('');\n lines.push('Statistics:');\n lines.push(` Total tool calls: ${summary.totalToolCalls}`);\n lines.push(` Successful: ${summary.successfulToolCalls}`);\n lines.push(` Failed: ${summary.failedToolCalls}`);\n lines.push(` Files modified: ${summary.filesModified.length}`);\n }\n\n return lines.join('\\n');\n}\n\n/**\n * Generate compact summary message for context injection\n */\nexport function createSummaryMessage(summary: ConversationSummary): AgentMessage {\n const text = formatSummaryAsText(summary, true);\n \n return {\n role: 'user',\n content: [{ type: 'text', text }],\n timestamp: Date.now(),\n };\n}\n"],"mappings":";;;;aAaqD;AAGrD,MAAM,MAAM,aAAa,mBAAmB;AA4B5C,MAAM,kBAA4C;CAChD,iBAAiB;CACjB,cAAc;CACd,mBAAmB;CACnB,cAAc;CACf;;;;AAKD,SAAS,wBAAwB,UAAqE;CACpG,MAAM,OAAO,SAAS,aAAa;AAEnC,KAAI;EAAC;EAAQ;EAAa;EAAiB;EAAQ;EAAY;EAAM;EAAa,CAAC,MAAK,MAAK,KAAK,SAAS,EAAE,CAAC,CAC5G,QAAO;AAGT,KAAI;EAAC;EAAS;EAAc;EAAkB;EAAQ;EAAS;EAAU;EAAQ,CAAC,MAAK,MAAK,KAAK,SAAS,EAAE,CAAC,CAC3G,QAAO;AAGT,KAAI;EAAC;EAAQ;EAAU;EAAQ;EAAc;EAAiB;EAAa,CAAC,MAAK,MAAK,KAAK,SAAS,EAAE,CAAC,CACrG,QAAO;AAGT,KAAI;EAAC;EAAQ;EAAQ;EAAO;EAAU,CAAC,MAAK,MAAK,KAAK,SAAS,EAAE,CAAC,CAChE,QAAO;AAGT,QAAO;;;;;AAMT,SAAS,mBAAmB,SAA0B;AACpD,KAAI,OAAO,YAAY,SACrB,QAAO;AAGT,KAAI,MAAM,QAAQ,QAAQ,CACxB,QAAO,QACJ,QAAO,MAAK,EAAE,SAAS,OAAO,CAC9B,KAAI,MAAM,EAAwB,QAAQ,GAAG,CAC7C,KAAK,KAAK;AAGf,QAAO;;;;;AAMT,SAAS,aAAa,KAAoE;AACxF,QAAO,IAAI,SAAS,eAAe,eAAe;;;;;AAMpD,SAAS,aAAa,KAAgF;AACpG,QAAO,IAAI,SAAS,gBAAgB,UAAU;;;;;AAMhD,SAAS,sBAAsB,WAAiD;CAC9E,MAAM,yBAAS,IAAI,KAA8B;CACjD,MAAM,aAAgC,EAAE;AAExC,MAAK,MAAM,QAAQ,UACjB,KAAI,KAAK,SAEP,QAAO,IAAI,KAAK,UAAU,KAAK;KAG/B,YAAW,KAAK,KAAK;AAIzB,QAAO,CAAC,GAAG,MAAM,KAAK,OAAO,QAAQ,CAAC,EAAE,GAAG,WAAW;;;;;AAMxD,SAAgB,0BACd,UACA,UAA6C,EAAE,EAC1B;CACrB,MAAM,OAAO;EAAE,GAAG;EAAiB,GAAG;EAAS;CAE/C,MAAM,UAA+B;EACnC,cAAc,EAAE;EAChB,WAAW,EAAE;EACb,cAAc,EAAE;EAChB,eAAe,EAAE;EACjB,gBAAgB;EAChB,qBAAqB;EACrB,iBAAiB;EAClB;CAED,IAAI,uBAA4C;AAEhD,MAAK,MAAM,OAAO,UAAU;AAE1B,MAAI,IAAI,SAAS,QAAQ;GACvB,MAAM,OAAO,mBAAmB,wBAAwB,IAAI,CAAC;AAC7D,OAAI,KAAK,MAAM,CAAC,SAAS,GACvB,SAAQ,aAAa,KAAK,KAAK,MAAM,GAAG,IAAI,CAAC;;AAKjD,MAAI,aAAa,IAAI,EAAE;AACrB,0BAAuB;GAEvB,MAAM,YAAa,IAA0F;AAC7G,OAAI,aAAa,UAAU,SAAS,GAAG;AACrC,YAAQ,kBAAkB,UAAU;AAEpC,SAAK,MAAM,QAAQ,WAAW;KAC5B,MAAM,cAA+B;MACnC,UAAU,KAAK;MACf,WAAW,wBAAwB,KAAK,KAAK;MAC7C,SAAS;MACT,UAAU,OAAO,KAAK,MAAM,QAAQ,KAAK,MAAM,aAAa,KAAK,MAAM,YAAY,GAAG;MACtF,WAAW,IAAI;MAChB;AACD,aAAQ,UAAU,KAAK,YAAY;AAEnC,SAAI,CAAC,SAAS,OAAO,CAAC,SAAS,YAAY,UAAU,IAAI,YAAY,SACnE,SAAQ,cAAc,KAAK,YAAY,SAAS;;;;AAOxD,MAAI,aAAa,IAAI,EAAE;GACrB,MAAM,UAAU;GAChB,MAAM,WAAW,QAAQ;GAGzB,MAAM,WAAW,QAAQ,UACtB,OAAO,CACP,SAAS,CACT,MAAM,OAAwB,GAAG,aAAa,YAAY,CAAC,GAAG,UAAU;AAE3E,OAAI,UAAU;IACZ,MAAM,aAAa,mBAAmB,wBAAwB,QAAQ,CAAC;IAGvE,MAAM,UAAU,WAAW,aAAa,CAAC,SAAS,QAAQ,IAC3C,WAAW,aAAa,CAAC,SAAS,SAAS,IAC3C,WAAW,WAAW,SAAS;AAE9C,aAAS,UAAU,CAAC;AACpB,aAAS,cAAc,WAAW,MAAM,GAAG,IAAI;AAE/C,QAAI,QACF,SAAQ;QAER,SAAQ;;;;AAOhB,KAAI,KAAK,kBACP,SAAQ,YAAY,sBAAsB,QAAQ,UAAU;AAI9D,KAAI,QAAQ,UAAU,SAAS,KAAK,aAClC,SAAQ,YAAY,QAAQ,UAAU,MAAM,CAAC,KAAK,aAAa;AAIjE,KAAI,QAAQ,aAAa,SAAS,KAAK,gBACrC,SAAQ,eAAe,QAAQ,aAAa,MAAM,CAAC,KAAK,gBAAgB;AAI1E,SAAQ,gBAAgB,CAAC,GAAG,IAAI,IAAI,QAAQ,cAAc,CAAC;AAG3D,KAAI,qBAEF,SAAQ,eADU,oBAAoB,qBACN;AAGlC,KAAI,MACF;EACE,cAAc,QAAQ,aAAa;EACnC,WAAW,QAAQ,UAAU;EAC7B,eAAe,QAAQ,cAAc;EACrC,gBAAgB,QAAQ;EACxB,qBAAqB,QAAQ;EAC7B,iBAAiB,QAAQ;EAC1B,EACD,+BACD;AAED,QAAO;;;;;AAMT,SAAS,oBAAoB,KAA6B;CACxD,MAAM,UAAU,mBAAmB,wBAAwB,IAAI,CAAC;CAChE,MAAM,YAAsB,EAAE;AAS9B,MAAK,MAAM,WAAW;EALpB;EACA;EACA;EAGoC,EAAE;EACtC,MAAM,UAAU,QAAQ,MAAM,QAAQ;AACtC,MAAI,QACF,WAAU,KAAK,GAAG,QAAQ,MAAM,GAAG,EAAE,CAAC,KAAI,MAAK,EAAE,MAAM,CAAC,CAAC;;AAK7D,QAAO,UAAU,MAAM,GAAG,GAAG;;;;;AAM/B,SAAgB,oBAAoB,SAA8B,eAAwB,MAAc;CACtG,MAAM,QAAkB,EAAE;AAE1B,OAAM,KAAK,kCAAkC;AAG7C,KAAI,QAAQ,aAAa,SAAS,GAAG;AACnC,QAAM,KAAK,GAAG;AACd,QAAM,KAAK,iBAAiB;AAC5B,OAAK,MAAM,OAAO,QAAQ,aAAa,MAAM,GAAG,CAC9C,OAAM,KAAK,OAAO,IAAI,MAAM,GAAG,IAAI,GAAG,IAAI,SAAS,MAAM,QAAQ,KAAK;;AAK1E,KAAI,QAAQ,UAAU,SAAS,GAAG;AAChC,QAAM,KAAK,GAAG;AACd,QAAM,KAAK,mBAAmB;EAG9B,MAAM,yBAAS,IAAI,KAAgC;AACnD,OAAK,MAAM,QAAQ,QAAQ,WAAW;GACpC,MAAM,OAAO,OAAO,IAAI,KAAK,UAAU,IAAI,EAAE;AAC7C,QAAK,KAAK,KAAK;AACf,UAAO,IAAI,KAAK,WAAW,KAAK;;AAGlC,OAAK,MAAM,CAAC,MAAM,UAAU,OAAO,SAAS,EAAE;GAC5C,MAAM,QAAQ,MAAM,QAAO,MAAK,EAAE,SAAS,CAAC,KAAI,MAAK,EAAE,SAAU;GACjE,MAAM,eAAe,MAAM,QAAO,MAAK,EAAE,QAAQ,CAAC;AAClD,SAAM,KAAK,KAAK,KAAK,aAAa,CAAC,IAAI,MAAM,OAAO,eAAe,aAAa,GAAG,MAAM,OAAO,cAAc;AAC9G,OAAI,MAAM,SAAS,EACjB,OAAM,KAAK,cAAc,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,KAAK,GAAG,MAAM,SAAS,KAAK,QAAQ,KAAK;;;AAMhG,KAAI,QAAQ,cAAc,SAAS,GAAG;AACpC,QAAM,KAAK,GAAG;AACd,QAAM,KAAK,kBAAkB;AAC7B,OAAK,MAAM,QAAQ,QAAQ,cAAc,MAAM,IAAI,CACjD,OAAM,KAAK,OAAO,OAAO;;AAK7B,KAAI,QAAQ,aAAa,SAAS,GAAG;AACnC,QAAM,KAAK,GAAG;AACd,QAAM,KAAK,iBAAiB;AAC5B,OAAK,MAAM,YAAY,QAAQ,aAAa,MAAM,GAAG,CACnD,OAAM,KAAK,OAAO,WAAW;;AAKjC,KAAI,cAAc;AAChB,QAAM,KAAK,GAAG;AACd,QAAM,KAAK,cAAc;AACzB,QAAM,KAAK,uBAAuB,QAAQ,iBAAiB;AAC3D,QAAM,KAAK,iBAAiB,QAAQ,sBAAsB;AAC1D,QAAM,KAAK,aAAa,QAAQ,kBAAkB;AAClD,QAAM,KAAK,qBAAqB,QAAQ,cAAc,SAAS;;AAGjE,QAAO,MAAM,KAAK,KAAK;;;;;AAMzB,SAAgB,qBAAqB,SAA4C;AAG/E,QAAO;EACL,MAAM;EACN,SAAS,CAAC;GAAE,MAAM;GAAQ,MAJf,oBAAoB,SAAS,KAIV;GAAE,CAAC;EACjC,WAAW,KAAK,KAAK;EACtB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"correction.js","names":[],"sources":["../../../../../src/agent/memory/understanding/correction.ts"],"sourcesContent":["const UNDERSTANDING_CORRECTION_PATTERNS: RegExp[] = [\n /(?:你|您)(?:记错|理解错|搞错)(?:了)?(?:我|我的)/,\n /(?:这|那)(?:不是|并非)我的(?:偏好|习惯|情况|信息|边界)/,\n /我(?:没有|从没|从未)(?:说过|表示过|要求过)(?:这|那|这个|那个)/,\n /(?:不要|别再)(?:认为|假设|记成)(?:我|我的)/,\n /you (?:remembered|understood|got) (?:me|my .+?) wrong\\b/i,\n /that(?:'s| is) not my (?:preference|habit|situation|information|boundary)\\b/i,\n /i (?:never|did not|didn't) (?:say|said|tell you|told you|ask for|asked for) that\\b/i,\n /do not assume that about me\\b/i,\n];\n\nconst UNDERSTANDING_CORRECTION_CONTENT_PATTERNS: RegExp[] = [\n /(?:你|您)(?:记错|理解错|搞错)(?:了)?(?:我|我的)(?:偏好|习惯|情况|信息|边界|工作方式)?[,,::;;。]\\s*(?:其实|实际上|正确的是)?\\s*(.+)$/,\n /(?:这|那)(?:不是|并非)我的(?:偏好|习惯|情况|信息|边界)[,,::;;。]\\s*(.+)$/,\n /you (?:remembered|understood|got) (?:me|my .+?) wrong\\b[,:;.]?\\s*(?:actually[,:]?\\s*)?(.+)$/i,\n /that(?:'s| is) not my (?:preference|habit|situation|information|boundary)\\b[,:;.]?\\s*(.+)$/i,\n];\n\nfunction normalizeCorrectionContent(content: string): string | null {\n const normalized = content\n .replace(/^[“”‘’\"'\\s]+|[“”‘’\"'\\s]+$/g, '')\n .replace(/\\s+/g, ' ')\n .trim();\n return normalized.length >= 4 ? normalized.slice(0, 600) : null;\n}\n\nexport function isExplicitUnderstandingCorrection(text: string): boolean {\n const normalized = text.replace(/\\s+/g, ' ').trim();\n return normalized.length > 0\n && UNDERSTANDING_CORRECTION_PATTERNS.some((pattern) => pattern.test(normalized));\n}\n\n/** Returns only a concrete replacement statement; pure denials intentionally return null. */\nexport function extractExplicitUnderstandingCorrectionContent(text: string): string | null {\n const normalized = text.replace(/\\s+/g, ' ').trim();\n if (!isExplicitUnderstandingCorrection(normalized)) return null;\n for (const pattern of UNDERSTANDING_CORRECTION_CONTENT_PATTERNS) {\n const match = pattern.exec(normalized);\n if (!match?.[1]) continue;\n const content = normalizeCorrectionContent(match[1]);\n if (content) return content;\n }\n return null;\n}\n"],"mappings":";AAAA,MAAM,oCAA8C;CAClD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAED,MAAM,4CAAsD;CAC1D;CACA;CACA;CACA;CACD;AAED,SAAS,2BAA2B,SAAgC;CAClE,MAAM,aAAa,QAChB,QAAQ,8BAA8B,GAAG,CACzC,QAAQ,QAAQ,IAAI,CACpB,MAAM;AACT,QAAO,WAAW,UAAU,IAAI,WAAW,MAAM,GAAG,IAAI,GAAG;;AAG7D,SAAgB,kCAAkC,MAAuB;CACvE,MAAM,aAAa,KAAK,QAAQ,QAAQ,IAAI,CAAC,MAAM;AACnD,QAAO,WAAW,SAAS,KACtB,kCAAkC,MAAM,YAAY,QAAQ,KAAK,WAAW,CAAC;;;AAIpF,SAAgB,8CAA8C,MAA6B;CACzF,MAAM,aAAa,KAAK,QAAQ,QAAQ,IAAI,CAAC,MAAM;AACnD,KAAI,CAAC,kCAAkC,WAAW,CAAE,QAAO;AAC3D,MAAK,MAAM,WAAW,2CAA2C;EAC/D,MAAM,QAAQ,QAAQ,KAAK,WAAW;AACtC,MAAI,CAAC,QAAQ,GAAI;EACjB,MAAM,UAAU,2BAA2B,MAAM,GAAG;AACpD,MAAI,QAAS,QAAO;;AAEtB,QAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"quality.js","names":[],"sources":["../../../../../src/agent/memory/understanding/quality.ts"],"sourcesContent":["import type { UserUnderstandingQualityMetrics } from '../../../storage/sqlite/index.js';\n\nexport interface UnderstandingCadenceDecision {\n baseIntervalTurns: number;\n effectiveIntervalTurns: number;\n slowed: boolean;\n reasons: Array<'candidate_backlog' | 'low_acceptance' | 'low_recall_quality'>;\n}\n\nexport function resolveAdaptiveUnderstandingCadence(\n baseIntervalTurns: number,\n metrics: UserUnderstandingQualityMetrics,\n enabled = true,\n): UnderstandingCadenceDecision {\n const base = Math.max(1, Math.min(1_000, Math.floor(baseIntervalTurns)));\n const reasons: UnderstandingCadenceDecision['reasons'] = [];\n if (enabled) {\n if (metrics.records.candidate >= 20 || metrics.records.agingCandidates >= 10) {\n reasons.push('candidate_backlog');\n }\n if (\n metrics.decisions.total >= 10\n && metrics.decisions.acceptanceRate != null\n && metrics.decisions.acceptanceRate < 0.25\n ) {\n reasons.push('low_acceptance');\n }\n if (\n metrics.recall.total >= 10\n && metrics.recall.helpfulRate != null\n && metrics.recall.helpfulRate < 0.4\n ) {\n reasons.push('low_recall_quality');\n }\n }\n return {\n baseIntervalTurns: base,\n effectiveIntervalTurns: reasons.length > 0 ? Math.min(1_000, base * 2) : base,\n slowed: reasons.length > 0,\n reasons,\n };\n}\n"],"mappings":";AASA,SAAgB,oCACd,mBACA,SACA,UAAU,MACoB;CAC9B,MAAM,OAAO,KAAK,IAAI,GAAG,KAAK,IAAI,KAAO,KAAK,MAAM,kBAAkB,CAAC,CAAC;CACxE,MAAM,UAAmD,EAAE;AAC3D,KAAI,SAAS;AACX,MAAI,QAAQ,QAAQ,aAAa,MAAM,QAAQ,QAAQ,mBAAmB,GACxE,SAAQ,KAAK,oBAAoB;AAEnC,MACE,QAAQ,UAAU,SAAS,MACxB,QAAQ,UAAU,kBAAkB,QACpC,QAAQ,UAAU,iBAAiB,IAEtC,SAAQ,KAAK,iBAAiB;AAEhC,MACE,QAAQ,OAAO,SAAS,MACrB,QAAQ,OAAO,eAAe,QAC9B,QAAQ,OAAO,cAAc,GAEhC,SAAQ,KAAK,qBAAqB;;AAGtC,QAAO;EACL,mBAAmB;EACnB,wBAAwB,QAAQ,SAAS,IAAI,KAAK,IAAI,KAAO,OAAO,EAAE,GAAG;EACzE,QAAQ,QAAQ,SAAS;EACzB;EACD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"service.js","names":[],"sources":["../../../../../src/agent/memory/understanding/service.ts"],"sourcesContent":["import { createHash, randomUUID } from 'node:crypto';\n\nimport {\n appendMemoryTraceEvent,\n attachMemoryEvidence,\n markMemoryRecordsConflicted,\n upsertKnowledgeSourceItems,\n} from '../../../storage/sqlite/index.js';\nimport { createLogger } from '../../../utils/logger.js';\nimport type {\n MemoryEvidence,\n MemoryKind,\n MemoryRecord,\n MemorySensitivity,\n MemoryWriteRequest,\n MemoryWriteResult,\n} from '../types.js';\nimport { nextMemoryReviewAt } from '../lifecycle.js';\nimport { extractExplicitUnderstandingCorrectionContent } from './correction.js';\nimport type { UnderstandingCandidate, UnderstandingReviewResult } from './types.js';\nimport { inferMemorySensitivity, redactSensitiveMemoryText } from '../sensitivity.js';\n\nconst log = createLogger('UserUnderstanding');\nconst MAX_CANDIDATE_CHARS = 600;\n\nconst EXPLICIT_PATTERNS: RegExp[] = [\n /\\b(?:please\\s+)?remember(?:\\s+that)?\\s+(.+)/i,\n /\\bkeep\\s+in\\s+mind(?:\\s+that)?\\s+(.+)/i,\n /(?:请)?记住[::\\s]*(.+)/,\n /以后(?:都)?(?:请)?[::\\s]*(.+)/,\n /下次(?:请)?[::\\s]*(.+)/,\n];\n\nfunction normalizeContent(raw: string): string {\n return raw\n .replace(/^[\"'“”‘’\\s]+|[\"'“”‘’\\s]+$/g, '')\n .replace(/\\s+/g, ' ')\n .trim()\n .slice(0, MAX_CANDIDATE_CHARS);\n}\n\nfunction inferKind(content: string): MemoryKind {\n if (/\\b(don't|do not|never|avoid)\\b/i.test(content) || /不要|别再|禁止|底线/.test(content)) {\n return 'boundary';\n }\n if (/\\b(prefer|preference|like)\\b/i.test(content) || /喜欢|偏好|习惯/.test(content)) {\n return 'preference';\n }\n if (/\\b(tool|command|pnpm|npm|git|ripgrep|rg)\\b/i.test(content) || /工具|命令/.test(content)) {\n return 'tool_preference';\n }\n if (/\\b(project|repo|codebase|workspace)\\b/i.test(content) || /项目|仓库|代码库/.test(content)) {\n return 'project_context';\n }\n if (/\\b(goal|plan|commit|deadline)\\b/i.test(content) || /目标|计划|承诺|截止/.test(content)) {\n return 'commitment';\n }\n if (/\\b(next time|lesson|failed|error)\\b/i.test(content) || /下次|教训|失败|错误/.test(content)) {\n return 'task_lesson';\n }\n return 'curated_note';\n}\n\nconst SENSITIVITY_RANK: Record<MemorySensitivity, number> = {\n normal: 0,\n personal: 1,\n regulated: 2,\n secret: 3,\n};\n\nfunction stricterSensitivity(content: string, declared: MemorySensitivity): MemorySensitivity {\n const inferred = inferMemorySensitivity(content);\n return SENSITIVITY_RANK[inferred] > SENSITIVITY_RANK[declared] ? inferred : declared;\n}\n\nfunction canonicalKey(kind: MemoryKind, content: string): string {\n const normalized = content\n .toLocaleLowerCase()\n .replace(/[^\\p{L}\\p{N}]+/gu, ' ')\n .trim();\n return `${kind}:${createHash('sha256').update(normalized).digest('hex').slice(0, 20)}`;\n}\n\nexport function extractExplicitUnderstandingCandidates(userContent: string): UnderstandingCandidate[] {\n const correction = extractExplicitUnderstandingCorrectionContent(userContent);\n if (correction) {\n const kind = inferKind(correction);\n return [{\n kind,\n content: correction,\n canonicalKey: canonicalKey(kind, correction),\n confidence: 0.95,\n importance: kind === 'boundary' ? 0.9 : 0.8,\n explicitness: 'explicit',\n durability: 'durable',\n sensitivity: inferMemorySensitivity(correction),\n disclosurePolicy: kind === 'boundary' ? 'silent' : 'referenceable',\n tags: ['user-understanding', 'explicit-user-correction'],\n }];\n }\n const lines = userContent.split(/\\r?\\n/).map((line) => line.trim()).filter(Boolean);\n for (const line of lines.length > 0 ? lines : [userContent.trim()]) {\n for (const pattern of EXPLICIT_PATTERNS) {\n const content = normalizeContent(pattern.exec(line)?.[1] ?? '');\n if (content.length < 8) continue;\n const kind = inferKind(content);\n return [{\n kind,\n content,\n canonicalKey: canonicalKey(kind, content),\n confidence: 0.92,\n importance: kind === 'boundary' ? 0.9 : 0.75,\n explicitness: 'explicit',\n durability: 'durable',\n sensitivity: inferMemorySensitivity(content),\n disclosurePolicy: kind === 'boundary' ? 'silent' : 'referenceable',\n tags: ['user-understanding', 'explicit-user-request'],\n }];\n }\n }\n return [];\n}\n\nexport interface UserUnderstandingServiceOptions {\n write: (request: MemoryWriteRequest) => Promise<MemoryWriteResult>;\n list: (canonicalKey: string) => Promise<MemoryRecord[]>;\n}\n\nexport class UserUnderstandingService {\n constructor(private readonly options: UserUnderstandingServiceOptions) {}\n\n async reviewTurn(params: {\n agentId?: string;\n userContent: string;\n assistantContent: string;\n sessionKey?: string;\n correctionTargetRecordIds?: string[];\n }): Promise<UnderstandingReviewResult> {\n const candidates = extractExplicitUnderstandingCandidates(params.userContent);\n const sourceText = `User:\\n${params.userContent.trim()}\\n\\nAssistant:\\n${params.assistantContent.trim()}`;\n const normalizedText = redactSensitiveMemoryText(sourceText);\n const contentHash = createHash('sha256').update(sourceText).digest('hex');\n const stored = upsertKnowledgeSourceItems([{\n sourceInstanceId: params.sessionKey ? `session:${params.sessionKey}` : 'session:unknown',\n externalId: contentHash,\n itemType: 'conversation_turn',\n authorRole: 'user',\n occurredAt: new Date().toISOString(),\n contentHash,\n normalizedText,\n metadata: params.sessionKey ? { sessionKey: params.sessionKey } : {},\n sensitivity: 'personal',\n retentionClass: 'bounded',\n synthesisStatus: 'pending',\n }]);\n const sourceItemId = stored.items[0]?.id;\n const result = await this.applyCandidates(candidates, {\n agentId: params.agentId,\n sessionKey: params.sessionKey,\n sourceItemId,\n sourceText: params.userContent,\n reviewSource: 'turn',\n supersedesRecordIds: params.correctionTargetRecordIds,\n });\n return { ...result, sourceItemId };\n }\n\n async applyCandidates(\n candidates: UnderstandingCandidate[],\n context: {\n agentId?: string;\n sessionKey?: string;\n sourceItemId?: string;\n sourceText?: string;\n reviewSource?: 'turn' | 'background';\n supersedesRecordIds?: string[];\n },\n ): Promise<Omit<UnderstandingReviewResult, 'sourceItemId'>> {\n const startedAt = Date.now();\n let created = 0;\n let deduplicated = 0;\n let rejected = 0;\n const recordIds: string[] = [];\n const createdRecords: UnderstandingReviewResult['createdRecords'] = [];\n const correctionTargets = [...new Set(context.supersedesRecordIds ?? [])];\n const conflictGroupId = correctionTargets.length > 1 ? randomUUID() : undefined;\n if (conflictGroupId) markMemoryRecordsConflicted(correctionTargets, conflictGroupId);\n for (const candidate of candidates.slice(0, 10)) {\n const content = normalizeContent(candidate.content);\n const sensitivity = stricterSensitivity(content, candidate.sensitivity);\n if (\n content.length < 4\n || candidate.confidence < 0.55\n || sensitivity === 'secret'\n || sensitivity === 'regulated'\n ) {\n rejected += 1;\n continue;\n }\n const evidenceText = context.sourceText\n ? redactSensitiveMemoryText(context.sourceText).slice(0, MAX_CANDIDATE_CHARS)\n : undefined;\n const key = candidate.canonicalKey ?? canonicalKey(candidate.kind, content);\n const supersedesRecordId = correctionTargets.length === 1\n ? correctionTargets[0]\n : undefined;\n const existing = await this.options.list(key);\n const evidence: MemoryEvidence = {\n ...(context.sourceItemId ? { sourceItemId: context.sourceItemId } : {}),\n relation: 'supports',\n ...(context.sessionKey ? { sessionKey: context.sessionKey } : {}),\n ...(evidenceText ? { sourceText: evidenceText } : {}),\n observedAt: new Date().toISOString(),\n confidence: candidate.confidence,\n };\n if (existing[0]) {\n deduplicated += 1;\n recordIds.push(existing[0].id);\n if (context.sourceItemId) {\n attachMemoryEvidence({\n recordId: existing[0].id,\n sourceItemId: context.sourceItemId,\n relation: 'supports',\n excerpt: evidenceText,\n confidence: candidate.confidence,\n });\n }\n continue;\n }\n const write = await this.options.write({\n kind: candidate.kind,\n content,\n canonicalKey: key,\n scope: context.agentId || context.sessionKey\n ? { userId: 'local-owner', sessionKey: context.sessionKey }\n : undefined,\n target: candidate.kind === 'preference' ? 'user' : 'memory',\n tags: [...new Set(['user-understanding', ...(candidate.tags ?? [])])],\n source: { provider: 'user-understanding' },\n confidence: candidate.confidence,\n status: 'candidate',\n sensitivity,\n explicitness: candidate.explicitness,\n durability: candidate.durability,\n importance: candidate.importance,\n disclosurePolicy: candidate.disclosurePolicy,\n evidence: [evidence],\n validFrom: candidate.validFrom,\n validTo: candidate.validTo,\n reviewAfter: nextMemoryReviewAt({\n durability: candidate.durability,\n explicitness: candidate.explicitness,\n }),\n supersedesRecordId,\n conflictGroupId,\n });\n if (write.success) {\n created += 1;\n if (write.record) {\n recordIds.push(write.record.id);\n createdRecords.push({ id: write.record.id, content: write.record.content, kind: write.record.kind });\n }\n if (write.record && context.sourceItemId) {\n attachMemoryEvidence({\n recordId: write.record.id,\n sourceItemId: context.sourceItemId,\n relation: 'supports',\n excerpt: evidenceText,\n confidence: candidate.confidence,\n });\n }\n } else {\n rejected += 1;\n log.debug({ errorMessage: write.error, canonicalKey: key }, 'Understanding candidate was not stored');\n }\n }\n try {\n appendMemoryTraceEvent({\n sessionKey: context.sessionKey,\n phase: 'understanding',\n providerId: 'user-understanding',\n request: {\n ...(context.agentId ? { agentId: context.agentId } : {}),\n source: context.reviewSource ?? 'turn',\n proposed: candidates.length,\n created,\n deduplicated,\n rejected,\n },\n resultCount: created,\n selectedRecordIds: recordIds,\n durationMs: Date.now() - startedAt,\n });\n } catch (err) {\n log.debug({ err, sessionKey: context.sessionKey }, 'Understanding quality trace append failed');\n }\n return { proposed: candidates.length, created, deduplicated, rejected, createdRecords };\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"user-context-coordinator.js","names":[],"sources":["../../../../src/agent/memory/user-context-coordinator.ts"],"sourcesContent":["import type { AgentMessage } from '@earendil-works/pi-agent-core';\n\nimport type { Config } from '../../config/schema.js';\nimport { setLatestMemoryInjectFeedback } from '../../storage/sqlite/index.js';\nimport { createLogger } from '../../utils/logger.js';\nimport { UserContextPlanner } from './context/planner.js';\nimport type { UserContextPlan } from './context/types.js';\nimport type { MemoryManager } from './manager.js';\nimport {\n shouldPlanUserContextThisTurn,\n} from './memory-config.js';\nimport { isExplicitUnderstandingCorrection } from './understanding/correction.js';\nimport { extractAgentUserPlainText } from './user-message-text.js';\n\nconst log = createLogger('UserContextCoordinator');\n\nexport interface UserContextCoordinatorOptions {\n getConfig: () => Config | undefined;\n isEnabledForSession: (sessionKey: string) => boolean;\n getAgentIdForSession: (sessionKey: string) => string;\n getMemoryManagerForSession: (sessionKey: string) => MemoryManager;\n getLastAssistantContent: (sessionKey: string) => string | null;\n}\n\nexport class UserContextCoordinator {\n private readonly userTurn = new Map<string, number>();\n private readonly correctionTargets = new Map<string, string[]>();\n private readonly planner = new UserContextPlanner();\n\n constructor(private readonly options: UserContextCoordinatorOptions) {}\n\n forgetSession(sessionKey: string): void {\n this.userTurn.delete(sessionKey);\n this.correctionTargets.delete(sessionKey);\n }\n\n clear(): void {\n this.userTurn.clear();\n this.correctionTargets.clear();\n }\n\n async prepare(userMessage: AgentMessage, sessionKey: string): Promise<UserContextPlan> {\n const empty = (): UserContextPlan => ({\n traceId: '',\n modelMessage: userMessage,\n items: [],\n rejected: [],\n consentRequests: [],\n estimatedTokens: 0,\n });\n const config = this.options.getConfig();\n if (!this.options.isEnabledForSession(sessionKey)) return empty();\n const query = extractAgentUserPlainText(userMessage);\n this.correctionTargets.delete(sessionKey);\n let excludedRecordIds: string[] | undefined;\n if (isExplicitUnderstandingCorrection(query)) {\n try {\n const trace = setLatestMemoryInjectFeedback({\n sessionKey,\n requireSelectedRecords: true,\n feedback: {\n outcome: 'not_helpful',\n source: 'system',\n reason: 'detected_explicit_user_correction',\n },\n });\n if (trace?.selectedRecordIds.length) {\n this.correctionTargets.set(sessionKey, trace.selectedRecordIds);\n excludedRecordIds = trace.selectedRecordIds;\n }\n } catch (err) {\n log.debug({ err, sessionKey }, 'Understanding correction feedback was not persisted');\n }\n }\n const turn = (this.userTurn.get(sessionKey) ?? 0) + 1;\n this.userTurn.set(sessionKey, turn);\n if (!shouldPlanUserContextThisTurn(config, turn)) return empty();\n return this.planner.plan({\n memoryManager: this.options.getMemoryManagerForSession(sessionKey),\n agentId: this.options.getAgentIdForSession(sessionKey),\n sessionKey,\n query,\n userMessage,\n excludedRecordIds,\n });\n }\n\n async afterTurn(sessionKey: string, userPlainText: string): Promise<import('./understanding/types.js').UnderstandingReviewResult | undefined> {\n if (!this.options.isEnabledForSession(sessionKey)) return undefined;\n const memoryManager = this.options.getMemoryManagerForSession(sessionKey);\n const assistantContent = this.options.getLastAssistantContent(sessionKey) ?? '';\n const correctionTargetRecordIds = this.correctionTargets.get(sessionKey);\n this.correctionTargets.delete(sessionKey);\n try {\n const review = await memoryManager.captureTurnUnderstanding(\n userPlainText,\n assistantContent,\n {\n agentId: this.options.getAgentIdForSession(sessionKey),\n sessionId: sessionKey,\n correctionTargetRecordIds,\n },\n );\n void memoryManager.syncProvidersForTurn(userPlainText, assistantContent, { sessionId: sessionKey });\n memoryManager.queuePrefetchAll(userPlainText, { sessionId: sessionKey });\n return review;\n } catch (err) {\n log.warn({ err, sessionKey }, 'Turn understanding capture failed');\n }\n void memoryManager.syncProvidersForTurn(userPlainText, assistantContent, { sessionId: sessionKey });\n memoryManager.queuePrefetchAll(userPlainText, { sessionId: sessionKey });\n return undefined;\n }\n}\n"],"mappings":";;;;;;;;;aAIqD;AAUrD,MAAM,MAAM,aAAa,yBAAyB;AAUlD,IAAa,yBAAb,MAAoC;CAClC,2BAA4B,IAAI,KAAqB;CACrD,oCAAqC,IAAI,KAAuB;CAChE,UAA2B,IAAI,oBAAoB;CAEnD,YAAY,SAAyD;AAAxC,OAAA,UAAA;;CAE7B,cAAc,YAA0B;AACtC,OAAK,SAAS,OAAO,WAAW;AAChC,OAAK,kBAAkB,OAAO,WAAW;;CAG3C,QAAc;AACZ,OAAK,SAAS,OAAO;AACrB,OAAK,kBAAkB,OAAO;;CAGhC,MAAM,QAAQ,aAA2B,YAA8C;EACrF,MAAM,eAAgC;GACpC,SAAS;GACT,cAAc;GACd,OAAO,EAAE;GACT,UAAU,EAAE;GACZ,iBAAiB,EAAE;GACnB,iBAAiB;GAClB;EACD,MAAM,SAAS,KAAK,QAAQ,WAAW;AACvC,MAAI,CAAC,KAAK,QAAQ,oBAAoB,WAAW,CAAE,QAAO,OAAO;EACjE,MAAM,QAAQ,0BAA0B,YAAY;AACpD,OAAK,kBAAkB,OAAO,WAAW;EACzC,IAAI;AACJ,MAAI,kCAAkC,MAAM,CAC1C,KAAI;GACF,MAAM,QAAQ,8BAA8B;IAC1C;IACA,wBAAwB;IACxB,UAAU;KACR,SAAS;KACT,QAAQ;KACR,QAAQ;KACT;IACF,CAAC;AACF,OAAI,OAAO,kBAAkB,QAAQ;AACnC,SAAK,kBAAkB,IAAI,YAAY,MAAM,kBAAkB;AAC/D,wBAAoB,MAAM;;WAErB,KAAK;AACZ,OAAI,MAAM;IAAE;IAAK;IAAY,EAAE,sDAAsD;;EAGzF,MAAM,QAAQ,KAAK,SAAS,IAAI,WAAW,IAAI,KAAK;AACpD,OAAK,SAAS,IAAI,YAAY,KAAK;AACnC,MAAI,CAAC,8BAA8B,QAAQ,KAAK,CAAE,QAAO,OAAO;AAChE,SAAO,KAAK,QAAQ,KAAK;GACvB,eAAe,KAAK,QAAQ,2BAA2B,WAAW;GAClE,SAAS,KAAK,QAAQ,qBAAqB,WAAW;GACtD;GACA;GACA;GACA;GACD,CAAC;;CAGJ,MAAM,UAAU,YAAoB,eAA0G;AAC5I,MAAI,CAAC,KAAK,QAAQ,oBAAoB,WAAW,CAAE,QAAO,KAAA;EAC1D,MAAM,gBAAgB,KAAK,QAAQ,2BAA2B,WAAW;EACzE,MAAM,mBAAmB,KAAK,QAAQ,wBAAwB,WAAW,IAAI;EAC7E,MAAM,4BAA4B,KAAK,kBAAkB,IAAI,WAAW;AACxE,OAAK,kBAAkB,OAAO,WAAW;AACzC,MAAI;GACF,MAAM,SAAS,MAAM,cAAc,yBACjC,eACA,kBACA;IACE,SAAS,KAAK,QAAQ,qBAAqB,WAAW;IACtD,WAAW;IACX;IACD,CACF;AACI,iBAAc,qBAAqB,eAAe,kBAAkB,EAAE,WAAW,YAAY,CAAC;AACnG,iBAAc,iBAAiB,eAAe,EAAE,WAAW,YAAY,CAAC;AACxE,UAAO;WACA,KAAK;AACZ,OAAI,KAAK;IAAE;IAAK;IAAY,EAAE,oCAAoC;;AAE/D,gBAAc,qBAAqB,eAAe,kBAAkB,EAAE,WAAW,YAAY,CAAC;AACnG,gBAAc,iBAAiB,eAAe,EAAE,WAAW,YAAY,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"user-message-text.js","names":[],"sources":["../../../../src/agent/memory/user-message-text.ts"],"sourcesContent":["import type { AgentMessage } from '@earendil-works/pi-agent-core';\n\nimport { readAgentMessageContent } from './agent-message-access.js';\nimport { extractTextContent } from '../context/workspace.js';\n\n/** Plain text from a user-role agent message (string or parts array). */\nexport function extractAgentUserPlainText(message: AgentMessage): string {\n const c = readAgentMessageContent(message);\n if (typeof c === 'string') {\n return c;\n }\n if (Array.isArray(c)) {\n return extractTextContent(c as Array<{ type: string; text?: string }>);\n }\n return '';\n}\n"],"mappings":";;;;AAMA,SAAgB,0BAA0B,SAA+B;CACvE,MAAM,IAAI,wBAAwB,QAAQ;AAC1C,KAAI,OAAO,MAAM,SACf,QAAO;AAET,KAAI,MAAM,QAAQ,EAAE,CAClB,QAAO,mBAAmB,EAA4C;AAExE,QAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"window.js","names":[],"sources":["../../../../src/agent/memory/window.ts"],"sourcesContent":["// Sliding Window Memory - Keep only recent messages\nimport type { AgentMessage } from '@earendil-works/pi-agent-core';\nimport type { Message } from '@earendil-works/pi-ai';\n\nexport interface WindowConfig {\n maxMessages: number;\n keepRecentMessages: number;\n preserveSystemMessages: boolean;\n}\n\nconst DEFAULT_CONFIG: WindowConfig = {\n maxMessages: 100,\n keepRecentMessages: 20,\n preserveSystemMessages: true,\n};\n\nexport class SlidingWindow {\n constructor(private config: Partial<WindowConfig> = {}) {\n this.config = { ...DEFAULT_CONFIG, ...config };\n }\n\n /**\n * Trim messages to keep within window size\n */\n trim(messages: AgentMessage[]): AgentMessage[] {\n if (messages.length <= this.config.maxMessages) {\n return messages;\n }\n\n const { maxMessages, keepRecentMessages, preserveSystemMessages } = this.config;\n\n // Separate system-like messages (role not in standard set)\n const systemMessages = messages.filter(m => {\n const role = (m as Message).role;\n return role !== 'user' && role !== 'assistant' && role !== 'toolResult';\n });\n const otherMessages = messages.filter(m => {\n const role = (m as Message).role;\n return role === 'user' || role === 'assistant' || role === 'toolResult';\n });\n\n if (preserveSystemMessages && systemMessages.length > 0) {\n if (systemMessages.length >= maxMessages) {\n return systemMessages.slice(-maxMessages);\n }\n\n const availableForRecent = maxMessages - systemMessages.length;\n const recentMessages = otherMessages.slice(-Math.min(keepRecentMessages, availableForRecent));\n \n return [...systemMessages, ...recentMessages];\n } else {\n return messages.slice(-maxMessages);\n }\n }\n\n /**\n * Check if messages need trimming\n */\n needsTrim(messages: AgentMessage[]): boolean {\n return messages.length > this.config.maxMessages;\n }\n\n /**\n * Get stats about current window\n */\n getStats(messages: AgentMessage[]): {\n total: number;\n system: number;\n user: number;\n assistant: number;\n tool: number;\n needsTrim: boolean;\n } {\n return {\n total: messages.length,\n system: messages.filter(m => {\n const role = (m as Message).role;\n return role !== 'user' && role !== 'assistant' && role !== 'toolResult';\n }).length,\n user: messages.filter(m => (m as Message).role === 'user').length,\n assistant: messages.filter(m => (m as Message).role === 'assistant').length,\n tool: messages.filter(m => (m as Message).role === 'toolResult').length,\n needsTrim: this.needsTrim(messages),\n };\n }\n}\n"],"mappings":";AAUA,MAAM,iBAA+B;CACnC,aAAa;CACb,oBAAoB;CACpB,wBAAwB;CACzB;AAED,IAAa,gBAAb,MAA2B;CACzB,YAAY,SAAwC,EAAE,EAAE;AAApC,OAAA,SAAA;AAClB,OAAK,SAAS;GAAE,GAAG;GAAgB,GAAG;GAAQ;;;;;CAMhD,KAAK,UAA0C;AAC7C,MAAI,SAAS,UAAU,KAAK,OAAO,YACjC,QAAO;EAGT,MAAM,EAAE,aAAa,oBAAoB,2BAA2B,KAAK;EAGzE,MAAM,iBAAiB,SAAS,QAAO,MAAK;GAC1C,MAAM,OAAQ,EAAc;AAC5B,UAAO,SAAS,UAAU,SAAS,eAAe,SAAS;IAC3D;EACF,MAAM,gBAAgB,SAAS,QAAO,MAAK;GACzC,MAAM,OAAQ,EAAc;AAC5B,UAAO,SAAS,UAAU,SAAS,eAAe,SAAS;IAC3D;AAEF,MAAI,0BAA0B,eAAe,SAAS,GAAG;AACvD,OAAI,eAAe,UAAU,YAC3B,QAAO,eAAe,MAAM,CAAC,YAAY;GAG3C,MAAM,qBAAqB,cAAc,eAAe;GACxD,MAAM,iBAAiB,cAAc,MAAM,CAAC,KAAK,IAAI,oBAAoB,mBAAmB,CAAC;AAE7F,UAAO,CAAC,GAAG,gBAAgB,GAAG,eAAe;QAE7C,QAAO,SAAS,MAAM,CAAC,YAAY;;;;;CAOvC,UAAU,UAAmC;AAC3C,SAAO,SAAS,SAAS,KAAK,OAAO;;;;;CAMvC,SAAS,UAOP;AACA,SAAO;GACL,OAAO,SAAS;GAChB,QAAQ,SAAS,QAAO,MAAK;IAC3B,MAAM,OAAQ,EAAc;AAC5B,WAAO,SAAS,UAAU,SAAS,eAAe,SAAS;KAC3D,CAAC;GACH,MAAM,SAAS,QAAO,MAAM,EAAc,SAAS,OAAO,CAAC;GAC3D,WAAW,SAAS,QAAO,MAAM,EAAc,SAAS,YAAY,CAAC;GACrE,MAAM,SAAS,QAAO,MAAM,EAAc,SAAS,aAAa,CAAC;GACjE,WAAW,KAAK,UAAU,SAAS;GACpC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"command-handler.js","names":[],"sources":["../../../../src/agent/messaging/command-handler.ts"],"sourcesContent":["/**\n * Command Handler - Parses and executes commands\n *\n * Handles command execution using the unified command system.\n */\n\nimport type { MessageBus } from '../../infra/bus/index.js';\nimport type { Config } from '../../config/schema.js';\nimport { isProviderConfiguredSync } from '../../providers/index.js';\nimport type { SessionConfigStore, SessionStore } from '../../session/index.js';\nimport type { ThinkLevel } from '../transcript/thinking-types.js';\nimport type { CompactionResult } from '../memory/compaction.js';\nimport { createLogger } from '../../utils/logger.js';\nimport {\n commandRegistry,\n createCommandContext,\n type BtwQueryOptions,\n type CommandContext as UnifiedCommandContext,\n type CommandStreamEvent,\n} from '../../chat-commands/index.js';\nimport { getAllProviders, getModelsByProvider, getProviderDisplayName } from '../../providers/index.js';\nimport type { PersistentGoalApis } from '../goals/persistent-goal-apis.js';\nimport type { WorkflowRunServiceLike } from '../../workflows/service/workflow-run-service.types.js';\nimport type {\n SkillInstallToolOptions,\n SkillInstallToolResult,\n} from '../tools/skill-install-tool.js';\n\nconst log = createLogger('CommandHandler');\n\n/** Gateway console direct stream uses SSE tokens; there is no ChannelPlugin outbound for `webchat`. */\nfunction shouldSkipBusOutboundForChannel(channel: string): boolean {\n return channel === 'webchat';\n}\n\nexport interface CommandContext {\n sessionKey: string;\n channel: string;\n chatId: string;\n senderId: string;\n isGroup: boolean;\n /** From inbound message metadata (thread/account, etc.) for `/goal` continuation routing. */\n inboundMetadata?: Record<string, unknown>;\n}\n\nexport interface CommandHandlerConfig {\n config: Config;\n bus: MessageBus;\n sessionStore: SessionStore;\n sessionConfigStore?: SessionConfigStore;\n /** After /think persists, sync pi-agent */\n applySessionThinkingLevel?: (sessionKey: string, level: ThinkLevel) => void;\n getCurrentModel: () => string;\n switchModelForSession: (sessionKey: string, modelId: string) => Promise<boolean>;\n /** Drop in-memory agent after session file is cleared (e.g. /new) */\n invalidateAgentSession?: (sessionKey: string) => void;\n /** Reset session in place (archive transcript, new session id; preserve overrides) */\n resetSession?: (sessionKey: string) => Promise<{ sessionId: string; previousSessionId: string } | null>;\n /** Cancel streaming preview + in-flight LLM work for this session (e.g. /abort) */\n abortSessionTurn?: (sessionKey: string) => Promise<void>;\n /** Reload skills from disk and refresh active agent prompts. */\n reloadSkills?: () => void | Promise<void>;\n /** Install a managed skill from an explicit source and refresh active agent prompts. */\n installSkillFromSource?: (opts: SkillInstallToolOptions) => Promise<SkillInstallToolResult>;\n\n compactSession?: (\n sessionKey: string,\n options?: { instructions?: string; force?: boolean },\n ) => Promise<CompactionResult>;\n\n btwQuery?: (\n sessionKey: string,\n question: string,\n options?: BtwQueryOptions,\n ) => Promise<{ text: string; error?: string }>;\n\n getSessionContextReport?: (\n sessionKey: string,\n mode: 'list' | 'detail' | 'json',\n ) => Promise<string>;\n\n getPersistentGoalApisForCommand: (routing: {\n sessionKey: string;\n channel: string;\n chatId: string;\n inboundMetadata?: Record<string, unknown>;\n }) => PersistentGoalApis;\n getWorkflowRunService?: () => WorkflowRunServiceLike | undefined;\n}\n\nexport class CommandHandler {\n private config: Config;\n private bus: MessageBus;\n private sessionStore: SessionStore;\n private sessionConfigStore?: SessionConfigStore;\n private applySessionThinkingLevel?: (sessionKey: string, level: ThinkLevel) => void;\n private getCurrentModel: () => string;\n private switchModelForSession: (sessionKey: string, modelId: string) => Promise<boolean>;\n private invalidateAgentSession?: (sessionKey: string) => void;\n private abortSessionTurn?: (sessionKey: string) => Promise<void>;\n private reloadSkills?: CommandHandlerConfig['reloadSkills'];\n private installSkillFromSource?: CommandHandlerConfig['installSkillFromSource'];\n private compactSession?: CommandHandlerConfig['compactSession'];\n private btwQuery?: CommandHandlerConfig['btwQuery'];\n private getSessionContextReport?: CommandHandlerConfig['getSessionContextReport'];\n private getPersistentGoalApisForCommand: CommandHandlerConfig['getPersistentGoalApisForCommand'];\n private resetSession?: CommandHandlerConfig['resetSession'];\n private getWorkflowRunService?: CommandHandlerConfig['getWorkflowRunService'];\n\n constructor(handlerConfig: CommandHandlerConfig) {\n this.config = handlerConfig.config;\n this.bus = handlerConfig.bus;\n this.sessionStore = handlerConfig.sessionStore;\n this.sessionConfigStore = handlerConfig.sessionConfigStore;\n this.applySessionThinkingLevel = handlerConfig.applySessionThinkingLevel;\n this.getCurrentModel = handlerConfig.getCurrentModel;\n this.switchModelForSession = handlerConfig.switchModelForSession;\n this.invalidateAgentSession = handlerConfig.invalidateAgentSession;\n this.abortSessionTurn = handlerConfig.abortSessionTurn;\n this.reloadSkills = handlerConfig.reloadSkills;\n this.installSkillFromSource = handlerConfig.installSkillFromSource;\n this.compactSession = handlerConfig.compactSession;\n this.btwQuery = handlerConfig.btwQuery;\n this.getSessionContextReport = handlerConfig.getSessionContextReport;\n this.getPersistentGoalApisForCommand = handlerConfig.getPersistentGoalApisForCommand;\n this.resetSession = handlerConfig.resetSession;\n this.getWorkflowRunService = handlerConfig.getWorkflowRunService;\n }\n\n /** Replace config reference after hot reload or gateway PATCH so commands see current defaults. */\n updateAgentConfig(config: Config): void {\n this.config = config;\n }\n\n /**\n * Build the unified command context shared by all execute paths.\n * When `recorder` is set, every reply text is also captured (for SSE / CLI aggregation).\n */\n private buildCommandContext(\n context: CommandContext,\n recorder?: (text: string) => void,\n emitEvent?: (event: CommandStreamEvent) => void | Promise<void>,\n ): UnifiedCommandContext {\n const skipBusOutbound = shouldSkipBusOutboundForChannel(context.channel);\n\n return createCommandContext({\n sessionKey: context.sessionKey,\n source: context.channel as 'telegram' | 'webui' | 'cli' | 'api' | 'system' | 'gateway',\n channelId: context.channel,\n chatId: context.chatId,\n senderId: context.senderId,\n isGroup: context.isGroup,\n config: this.config,\n bus: this.bus,\n sessionStore: this.sessionStore,\n sessionConfigStore: this.sessionConfigStore,\n applySessionThinkingLevel: this.applySessionThinkingLevel,\n\n replyHandler: async (text: string, _options?) => {\n recorder?.(text);\n if (skipBusOutbound) return;\n await this.bus.publishOutbound({\n channel: context.channel,\n chat_id: context.chatId,\n content: text,\n type: 'message',\n });\n },\n\n typingHandler: async (typing: boolean) => {\n if (skipBusOutbound) return;\n await this.bus.publishOutbound({\n channel: context.channel,\n chat_id: context.chatId,\n type: typing ? 'typing_on' : 'typing_off',\n });\n },\n\n supportedFeatures: ['markdown', 'typing'],\n\n getCurrentModel: this.getCurrentModel,\n\n switchModel: async (modelId: string) => {\n return this.switchModelForSession(context.sessionKey, modelId);\n },\n\n listModels: async () => {\n const providers = getAllProviders();\n const models: Array<{ id: string; name: string; provider: string }> = [];\n\n for (const providerId of providers) {\n if (isProviderConfiguredSync(providerId)) {\n const providerModels = getModelsByProvider(providerId);\n for (const m of providerModels) {\n models.push({\n id: `${m.provider}/${m.id}`,\n name: m.name || m.id,\n provider: getProviderDisplayName(providerId),\n });\n }\n }\n }\n\n return models;\n },\n\n getUsage: async () => {\n const messages = await this.sessionStore.load(context.sessionKey);\n let promptTokens = 0;\n let completionTokens = 0;\n\n for (const msg of messages) {\n if ('usage' in msg && msg.usage) {\n const usage = msg.usage as { input?: number; output?: number };\n promptTokens += usage.input || 0;\n completionTokens += usage.output || 0;\n }\n }\n\n return {\n promptTokens,\n completionTokens,\n totalTokens: promptTokens + completionTokens,\n messageCount: messages.length,\n };\n },\n\n invalidateAgentSession: this.invalidateAgentSession,\n\n resetSession: this.resetSession\n ? async (sk) => {\n await this.resetSession!(sk);\n }\n : undefined,\n\n abortCurrentTurn: this.abortSessionTurn\n ? async () => {\n await this.abortSessionTurn!(context.sessionKey);\n }\n : undefined,\n reloadSkills: this.reloadSkills\n ? async () => {\n await this.reloadSkills!();\n }\n : undefined,\n installSkillFromSource: this.installSkillFromSource\n ? (opts) => this.installSkillFromSource!({ ...opts, sessionKey: context.sessionKey })\n : undefined,\n\n compactSession: this.compactSession,\n btwQuery: this.btwQuery,\n emitEvent,\n getSessionContextReport: this.getSessionContextReport,\n persistentGoalApis: this.getPersistentGoalApisForCommand({\n sessionKey: context.sessionKey,\n channel: context.channel,\n chatId: context.chatId,\n inboundMetadata: context.inboundMetadata,\n }),\n workflowRunService: this.getWorkflowRunService?.(),\n });\n }\n\n /**\n * Execute a command using the unified command system\n */\n async executeCommand(\n commandName: string,\n args: string,\n context: CommandContext,\n ): Promise<boolean> {\n if (!commandRegistry.has(commandName)) {\n return false;\n }\n\n log.info({ command: commandName, sessionKey: context.sessionKey }, 'Executing command via new system');\n\n const cmdCtx = this.buildCommandContext(context);\n const result = await commandRegistry.execute(commandName, cmdCtx, args);\n\n if (result.content && !shouldSkipBusOutboundForChannel(context.channel)) {\n await this.bus.publishOutbound({\n channel: context.channel,\n chat_id: context.chatId,\n content: result.content,\n type: 'message',\n });\n }\n\n return true;\n }\n\n /**\n * Run command and return all user-visible text (ctx.reply + result.content) for SSE/CLI.\n * Same bus side effects as {@link executeCommand}.\n */\n async executeCommandAndAggregateReply(\n commandName: string,\n args: string,\n context: CommandContext,\n options?: { emitEvent?: (event: CommandStreamEvent) => void | Promise<void> },\n ): Promise<{ handled: boolean; aggregatedText: string; metadata?: Record<string, unknown> }> {\n if (!commandRegistry.has(commandName)) {\n return { handled: false, aggregatedText: '' };\n }\n\n log.info({ command: commandName, sessionKey: context.sessionKey }, 'Executing command (aggregate reply)');\n\n const segments: string[] = [];\n const wrapped = this.buildCommandContext(context, (text) => segments.push(text), options?.emitEvent);\n const result = await commandRegistry.execute(commandName, wrapped, args);\n\n if (result.content) {\n segments.push(result.content);\n if (!shouldSkipBusOutboundForChannel(context.channel)) {\n await this.bus.publishOutbound({\n channel: context.channel,\n chat_id: context.chatId,\n content: result.content,\n type: 'message',\n });\n }\n }\n\n const aggregatedText = segments.filter((s) => s && s.trim()).join('\\n\\n');\n return { handled: true, aggregatedText, metadata: result.metadata };\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"message-router.js","names":[],"sources":["../../../../src/agent/messaging/message-router.ts"],"sourcesContent":["/**\n * Message Router - Routes inbound messages to appropriate handlers\n *\n * Handles message classification, session key resolution, and routing logic.\n */\n\nimport type { InboundMessage } from '../../infra/bus/index.js';\nimport { parseSlashCommand } from '../../chat-commands/command-parse.js';\nimport type { AgentContext } from '../service.types.js';\n\nexport interface MessageRoutingResult {\n context: AgentContext;\n isCommand: boolean;\n command?: string;\n commandArgs?: string;\n}\n\nexport class MessageRouter {\n /**\n * Route an inbound message and determine handling strategy\n */\n async routeMessage(msg: InboundMessage): Promise<MessageRoutingResult> {\n const sessionKey = this.resolveSessionKey(msg);\n\n const context: AgentContext = {\n channel: msg.channel,\n chatId: msg.chat_id,\n sessionKey,\n senderId: (msg.metadata?.senderId as string) || msg.sender_id,\n isGroup: (msg.metadata?.isGroup as boolean) || false,\n };\n\n const commandInfo = parseSlashCommand(msg.content);\n\n return {\n context,\n isCommand: commandInfo !== null,\n command: commandInfo?.command,\n commandArgs: commandInfo?.args,\n };\n }\n\n /**\n * Resolve session key from message metadata or derive from channel/chat_id\n */\n private resolveSessionKey(msg: InboundMessage): string {\n // Use sessionKey from metadata if available (for channels with custom session key format like Telegram)\n if (msg.metadata?.sessionKey) {\n return msg.metadata.sessionKey as string;\n }\n\n // For system messages, parse origin channel from chat_id\n if (msg.channel === 'system') {\n if (msg.chat_id.includes(':')) {\n const [ch, ...rest] = msg.chat_id.split(':');\n return `${ch}:${rest.join(':')}`;\n }\n }\n\n // Default: combine channel and chat_id\n return `${msg.channel}:${msg.chat_id}`;\n }\n}\n"],"mappings":";;AAiBA,IAAa,gBAAb,MAA2B;;;;CAIzB,MAAM,aAAa,KAAoD;EACrE,MAAM,aAAa,KAAK,kBAAkB,IAAI;EAE9C,MAAM,UAAwB;GAC5B,SAAS,IAAI;GACb,QAAQ,IAAI;GACZ;GACA,UAAW,IAAI,UAAU,YAAuB,IAAI;GACpD,SAAU,IAAI,UAAU,WAAuB;GAChD;EAED,MAAM,cAAc,kBAAkB,IAAI,QAAQ;AAElD,SAAO;GACL;GACA,WAAW,gBAAgB;GAC3B,SAAS,aAAa;GACtB,aAAa,aAAa;GAC3B;;;;;CAMH,kBAA0B,KAA6B;AAErD,MAAI,IAAI,UAAU,WAChB,QAAO,IAAI,SAAS;AAItB,MAAI,IAAI,YAAY;OACd,IAAI,QAAQ,SAAS,IAAI,EAAE;IAC7B,MAAM,CAAC,IAAI,GAAG,QAAQ,IAAI,QAAQ,MAAM,IAAI;AAC5C,WAAO,GAAG,GAAG,GAAG,KAAK,KAAK,IAAI;;;AAKlC,SAAO,GAAG,IAAI,QAAQ,GAAG,IAAI"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"outbound-coordinator.js","names":[],"sources":["../../../../src/agent/messaging/outbound-coordinator.ts"],"sourcesContent":["/**\n * OutboundCoordinator — owns the post-turn outbound pipeline.\n *\n * Concentrates the responsibilities that used to be scattered across\n * `AgentService`:\n * - typing-on / typing-off lifecycle for channels that surface \"is typing…\"\n * - final assistant response delivery (silence guard + hook + bus publish)\n * - cross-cutting `webchat_turn_complete` hook + `/goal` post-turn\n * - thin pass-through for extension `message_sending` / `message_sent` hooks\n *\n * The class is intentionally framework-agnostic: it pulls everything it needs\n * via the constructor config (no direct AgentService reference), so it is\n * unit-testable and lets the parent `AgentService` shrink to a coordinator.\n */\n\nimport type { MessageBus, InboundMessage } from '../../infra/bus/index.js';\nimport type { Config } from '../../config/schema.js';\nimport type { HookHandler } from '../lifecycle/hook-handler.js';\nimport type { SessionContext } from '../session/index.js';\nimport { createTypingController, type TypingController } from '../lifecycle/typing.js';\nimport { DEFAULT_ACK_MAX_CHARS, NO_REPLY, shouldSilence } from '../../heartbeat/tokens.js';\nimport { createLogger } from '../../utils/logger.js';\nimport type { StreamManager } from './stream-manager.js';\n\nconst log = createLogger('OutboundCoordinator');\n\nexport interface OutboundCoordinatorConfig {\n bus: MessageBus;\n hookHandler: HookHandler;\n streamManager: StreamManager;\n /** Reads the effective config snapshot (honours runtime overrides). */\n getConfig: () => Config | undefined;\n /** Resolves the last visible assistant text for a session (in-memory + agent fallback). */\n getLastAssistantPlainText: (sessionKey: string) => string;\n /**\n * Run the `/goal` post-turn verdict for a completed user turn. Owned by\n * `PersistentGoalService`; OutboundCoordinator only forwards.\n */\n runPersistentGoalPostTurn: (payload: SessionTurnCompletePayload) => Promise<void>;\n}\n\nexport interface SessionTurnCompletePayload {\n sessionKey: string;\n channel: string;\n chatId: string;\n inboundUserText: string;\n assistantPlainText: string;\n aborted: boolean;\n streamError?: string;\n skipPersistentGoalPostTurn?: boolean;\n outboundMetadata?: Record<string, unknown>;\n}\n\nexport class OutboundCoordinator {\n private readonly bus: MessageBus;\n private readonly hookHandler: HookHandler;\n private readonly streamManager: StreamManager;\n private readonly getConfig: () => Config | undefined;\n private readonly getLastAssistantPlainText: (sessionKey: string) => string;\n private readonly runPersistentGoalPostTurn: OutboundCoordinatorConfig['runPersistentGoalPostTurn'];\n\n constructor(config: OutboundCoordinatorConfig) {\n this.bus = config.bus;\n this.hookHandler = config.hookHandler;\n this.streamManager = config.streamManager;\n this.getConfig = config.getConfig;\n this.getLastAssistantPlainText = config.getLastAssistantPlainText;\n this.runPersistentGoalPostTurn = config.runPersistentGoalPostTurn;\n }\n\n /**\n * Build the typing indicator controller for an inbound message. Returns\n * `null` for the CLI channel (no typing UI). Caller is responsible for\n * `start()` and `stop()` (`stop()` should run AFTER the final outbound so\n * Telegram/Weixin see `typing_off` only once the message is delivered).\n */\n createTypingControllerForInbound(msg: InboundMessage): TypingController | null {\n if (msg.channel === 'cli') {\n return null;\n }\n const meta = msg.metadata as Record<string, unknown> | undefined;\n return createTypingController({\n intervalSeconds: 5,\n onStart: async () => {\n await this.bus.publishOutbound({\n channel: msg.channel,\n chat_id: msg.chat_id,\n content: '',\n type: 'typing_on',\n metadata: {\n accountId: meta?.accountId,\n threadId: meta?.threadId,\n sessionWebhook: meta?.sessionWebhook,\n conversationId: meta?.conversationId,\n },\n });\n },\n onStop: async () => {\n await this.bus.publishOutbound({\n channel: msg.channel,\n chat_id: msg.chat_id,\n content: '',\n type: 'typing_off',\n metadata: {\n accountId: meta?.accountId,\n threadId: meta?.threadId,\n sessionWebhook: meta?.sessionWebhook,\n conversationId: meta?.conversationId,\n },\n });\n },\n });\n }\n\n /**\n * Publish the assistant's visible text as the final bus message. Honours the\n * stream-manager \"channel already streamed the final text\" hint, the heartbeat\n * silence guard, and the extension `message_sending` hook.\n */\n async sendFinalResponse(msg: InboundMessage, sessionContext: SessionContext): Promise<void> {\n if (this.streamManager.consumeSkipFinalOutbound()) {\n return;\n }\n\n const finalContent = this.getLastAssistantPlainText(sessionContext.sessionKey);\n if (!finalContent?.trim()) {\n return;\n }\n\n const ackMax = this.getConfig()?.gateway?.heartbeat?.ackMaxChars ?? DEFAULT_ACK_MAX_CHARS;\n if (shouldSilence(finalContent, ackMax) || finalContent.trim() === NO_REPLY) {\n log.debug({ sessionKey: sessionContext.sessionKey }, 'Silent reply — skipping outbound');\n return;\n }\n\n const hookResult = await this.hookHandler.runMessageSending(\n sessionContext.chatId,\n finalContent,\n sessionContext.channel,\n );\n if (!hookResult.send) {\n return;\n }\n\n await this.bus.publishOutbound({\n channel: sessionContext.channel,\n chat_id: sessionContext.chatId,\n content: hookResult.content || finalContent,\n type: 'message',\n metadata: {\n accountId: msg.metadata?.accountId,\n threadId: msg.metadata?.threadId,\n inboundMessageId: msg.metadata?.messageId,\n transcribedVoice: sessionContext.metadata?.transcribedVoice,\n sessionWebhook: msg.metadata?.sessionWebhook,\n conversationId: msg.metadata?.conversationId,\n },\n });\n }\n\n /**\n * Post-turn hook + `/goal` checklist evaluation. Wired into both the bus-driven\n * inbound finally block and the webchat direct-stream finally. The goal verdict\n * itself lives in `PersistentGoalService`; we just trigger the extension hook\n * here and delegate the `/goal` work.\n */\n async emitSessionTurnComplete(payload: SessionTurnCompletePayload): Promise<void> {\n await this.hookHandler.triggerWithSessionKey(payload.sessionKey, 'webchat_turn_complete', {\n sessionKey: payload.sessionKey,\n channel: payload.channel,\n chatId: payload.chatId,\n inboundUserText: payload.inboundUserText,\n assistantPlainText: payload.assistantPlainText,\n aborted: payload.aborted,\n ...(payload.streamError !== undefined ? { streamError: payload.streamError } : {}),\n });\n\n await this.runPersistentGoalPostTurn(payload);\n }\n\n /** Extension hook pass-through (Gateway ChannelManager). */\n invokeOutboundMessageSending(\n to: string,\n content: string,\n channel: string,\n ): Promise<{ send: boolean; content?: string; reason?: string }> {\n return this.hookHandler.runMessageSending(to, content, channel);\n }\n\n /** Extension hook pass-through (Gateway ChannelManager). */\n invokeOutboundMessageSent(\n to: string,\n content: string,\n success: boolean,\n error: string | undefined,\n channel: string,\n ): Promise<void> {\n return this.hookHandler.runMessageSent(to, content, success, error, channel);\n }\n}\n"],"mappings":";;;;;aAqBqD;AAGrD,MAAM,MAAM,aAAa,sBAAsB;AA6B/C,IAAa,sBAAb,MAAiC;CAC/B;CACA;CACA;CACA;CACA;CACA;CAEA,YAAY,QAAmC;AAC7C,OAAK,MAAM,OAAO;AAClB,OAAK,cAAc,OAAO;AAC1B,OAAK,gBAAgB,OAAO;AAC5B,OAAK,YAAY,OAAO;AACxB,OAAK,4BAA4B,OAAO;AACxC,OAAK,4BAA4B,OAAO;;;;;;;;CAS1C,iCAAiC,KAA8C;AAC7E,MAAI,IAAI,YAAY,MAClB,QAAO;EAET,MAAM,OAAO,IAAI;AACjB,SAAO,uBAAuB;GAC5B,iBAAiB;GACjB,SAAS,YAAY;AACnB,UAAM,KAAK,IAAI,gBAAgB;KAC7B,SAAS,IAAI;KACb,SAAS,IAAI;KACb,SAAS;KACT,MAAM;KACN,UAAU;MACR,WAAW,MAAM;MACjB,UAAU,MAAM;MAChB,gBAAgB,MAAM;MACtB,gBAAgB,MAAM;MACvB;KACF,CAAC;;GAEJ,QAAQ,YAAY;AAClB,UAAM,KAAK,IAAI,gBAAgB;KAC7B,SAAS,IAAI;KACb,SAAS,IAAI;KACb,SAAS;KACT,MAAM;KACN,UAAU;MACR,WAAW,MAAM;MACjB,UAAU,MAAM;MAChB,gBAAgB,MAAM;MACtB,gBAAgB,MAAM;MACvB;KACF,CAAC;;GAEL,CAAC;;;;;;;CAQJ,MAAM,kBAAkB,KAAqB,gBAA+C;AAC1F,MAAI,KAAK,cAAc,0BAA0B,CAC/C;EAGF,MAAM,eAAe,KAAK,0BAA0B,eAAe,WAAW;AAC9E,MAAI,CAAC,cAAc,MAAM,CACvB;AAIF,MAAI,cAAc,cADH,KAAK,WAAW,EAAE,SAAS,WAAW,eAAA,IACd,IAAI,aAAa,MAAM,KAAA,YAAe;AAC3E,OAAI,MAAM,EAAE,YAAY,eAAe,YAAY,EAAE,mCAAmC;AACxF;;EAGF,MAAM,aAAa,MAAM,KAAK,YAAY,kBACxC,eAAe,QACf,cACA,eAAe,QAChB;AACD,MAAI,CAAC,WAAW,KACd;AAGF,QAAM,KAAK,IAAI,gBAAgB;GAC7B,SAAS,eAAe;GACxB,SAAS,eAAe;GACxB,SAAS,WAAW,WAAW;GAC/B,MAAM;GACN,UAAU;IACR,WAAW,IAAI,UAAU;IACzB,UAAU,IAAI,UAAU;IACxB,kBAAkB,IAAI,UAAU;IAChC,kBAAkB,eAAe,UAAU;IAC3C,gBAAgB,IAAI,UAAU;IAC9B,gBAAgB,IAAI,UAAU;IAC/B;GACF,CAAC;;;;;;;;CASJ,MAAM,wBAAwB,SAAoD;AAChF,QAAM,KAAK,YAAY,sBAAsB,QAAQ,YAAY,yBAAyB;GACxF,YAAY,QAAQ;GACpB,SAAS,QAAQ;GACjB,QAAQ,QAAQ;GAChB,iBAAiB,QAAQ;GACzB,oBAAoB,QAAQ;GAC5B,SAAS,QAAQ;GACjB,GAAI,QAAQ,gBAAgB,KAAA,IAAY,EAAE,aAAa,QAAQ,aAAa,GAAG,EAAE;GAClF,CAAC;AAEF,QAAM,KAAK,0BAA0B,QAAQ;;;CAI/C,6BACE,IACA,SACA,SAC+D;AAC/D,SAAO,KAAK,YAAY,kBAAkB,IAAI,SAAS,QAAQ;;;CAIjE,0BACE,IACA,SACA,SACA,OACA,SACe;AACf,SAAO,KAAK,YAAY,eAAe,IAAI,SAAS,SAAS,OAAO,QAAQ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"stream-manager.js","names":[],"sources":["../../../../src/agent/messaging/stream-manager.ts"],"sourcesContent":["/**\n * Stream Manager - Manages stream handles for progress updates\n *\n * Handles creation and lifecycle of stream handles for sending progress updates\n * and streaming responses.\n */\n\nimport type { ProgressStage } from '../lifecycle/progress.js';\n\nexport interface StreamHandle {\n update: (text: string) => void;\n updateReasoning?: (text: string) => void;\n updateProgress?: (text: string, stage: ProgressStage, detail?: string) => void;\n setProgress?: (stage: ProgressStage, detail?: string) => void;\n end: () => Promise<void>;\n abort: () => Promise<void>;\n messageId: () => number | undefined;\n skipFinalOutbound?: () => boolean;\n}\n\nexport class StreamManager {\n private currentHandle: StreamHandle | null = null;\n private skipFinalOutboundPending = false;\n\n /**\n * Set the current stream handle\n */\n setHandle(handle: StreamHandle): void {\n this.currentHandle = handle;\n }\n\n /**\n * Get the current stream handle\n */\n getHandle(): StreamHandle | null {\n return this.currentHandle;\n }\n\n /**\n * Clear the current stream handle\n */\n clearHandle(): void {\n this.currentHandle = null;\n }\n\n /**\n * Check if a stream handle is currently active\n */\n hasActiveHandle(): boolean {\n return this.currentHandle !== null;\n }\n\n /**\n * Update the stream with text content\n */\n update(text: string): void {\n this.currentHandle?.update(text);\n }\n\n updateReasoning(text: string): void {\n this.currentHandle?.updateReasoning?.(text);\n }\n\n /**\n * End the stream and clear the handle\n */\n async end(): Promise<void> {\n if (this.currentHandle) {\n const handle = this.currentHandle;\n await handle.end();\n this.skipFinalOutboundPending = handle.skipFinalOutbound?.() ?? false;\n this.clearHandle();\n } else {\n this.skipFinalOutboundPending = false;\n }\n }\n\n /**\n * Abort the stream and clear the handle\n */\n async abort(): Promise<void> {\n if (this.currentHandle) {\n await this.currentHandle.abort();\n this.skipFinalOutboundPending = false;\n this.clearHandle();\n }\n }\n\n /**\n * Whether the channel already delivered the final assistant text (e.g. Telegram streaming).\n * Consumes the flag for one outbound decision.\n */\n consumeSkipFinalOutbound(): boolean {\n const v = this.skipFinalOutboundPending;\n this.skipFinalOutboundPending = false;\n return v;\n }\n\n /**\n * Get the current message ID from the stream handle\n */\n getMessageId(): number | undefined {\n return this.currentHandle?.messageId();\n }\n\n /**\n * Update progress via the stream handle\n */\n updateProgress(text: string, stage: ProgressStage, detail?: string): void {\n if (this.currentHandle?.updateProgress) {\n this.currentHandle.updateProgress(text, stage, detail);\n }\n }\n\n /**\n * Set progress stage via the stream handle\n */\n setProgress(stage: ProgressStage, detail?: string): void {\n if (this.currentHandle?.setProgress) {\n this.currentHandle.setProgress(stage, detail);\n }\n }\n}\n"],"mappings":";AAoBA,IAAa,gBAAb,MAA2B;CACzB,gBAA6C;CAC7C,2BAAmC;;;;CAKnC,UAAU,QAA4B;AACpC,OAAK,gBAAgB;;;;;CAMvB,YAAiC;AAC/B,SAAO,KAAK;;;;;CAMd,cAAoB;AAClB,OAAK,gBAAgB;;;;;CAMvB,kBAA2B;AACzB,SAAO,KAAK,kBAAkB;;;;;CAMhC,OAAO,MAAoB;AACzB,OAAK,eAAe,OAAO,KAAK;;CAGlC,gBAAgB,MAAoB;AAClC,OAAK,eAAe,kBAAkB,KAAK;;;;;CAM7C,MAAM,MAAqB;AACzB,MAAI,KAAK,eAAe;GACtB,MAAM,SAAS,KAAK;AACpB,SAAM,OAAO,KAAK;AAClB,QAAK,2BAA2B,OAAO,qBAAqB,IAAI;AAChE,QAAK,aAAa;QAElB,MAAK,2BAA2B;;;;;CAOpC,MAAM,QAAuB;AAC3B,MAAI,KAAK,eAAe;AACtB,SAAM,KAAK,cAAc,OAAO;AAChC,QAAK,2BAA2B;AAChC,QAAK,aAAa;;;;;;;CAQtB,2BAAoC;EAClC,MAAM,IAAI,KAAK;AACf,OAAK,2BAA2B;AAChC,SAAO;;;;;CAMT,eAAmC;AACjC,SAAO,KAAK,eAAe,WAAW;;;;;CAMxC,eAAe,MAAc,OAAsB,QAAuB;AACxE,MAAI,KAAK,eAAe,eACtB,MAAK,cAAc,eAAe,MAAM,OAAO,OAAO;;;;;CAO1D,YAAY,OAAsB,QAAuB;AACvD,MAAI,KAAK,eAAe,YACtB,MAAK,cAAc,YAAY,OAAO,OAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.js","names":["baseLogger"],"sources":["../../../../src/agent/middleware/context.ts"],"sourcesContent":["/**\n * Request-scoped context for structured logging fields (requestId, sessionId, userId, …).\n *\n * Wire `onRequest` / `onResponse` around a handling scope; use `getContext` with\n * `logger.withContext` when you need request fields on log lines.\n *\n * import { ContextMiddleware } from './middleware/index.js';\n */\n\nimport { randomBytes } from 'crypto';\nimport type { LogContext } from '../../utils/logger.js';\nimport { logger as baseLogger } from '../../utils/logger.js';\n\nconst log = baseLogger.child({ module: 'ContextMiddleware' });\n\nexport interface RequestContext {\n sessionKey: string;\n userId?: string;\n channel?: string;\n chatId?: string;\n metadata?: Record<string, unknown>;\n}\n\nexport class ContextMiddleware {\n private currentContext: LogContext = {};\n private contextDepth = 0;\n\n private generateRequestId(): string {\n const timestamp = Date.now().toString(36);\n const random = randomBytes(4).toString('hex');\n return `req_${timestamp}_${random}`;\n }\n\n private extractSessionId(sessionKey: string): string {\n const parts = sessionKey.split(':');\n return parts.slice(0, 2).join(':');\n }\n\n onRequest(context: RequestContext): string {\n this.contextDepth++;\n const requestId = this.generateRequestId();\n\n this.currentContext = {\n requestId,\n sessionId: this.extractSessionId(context.sessionKey),\n userId: context.userId,\n module: context.channel,\n service: 'xopc',\n ...context.metadata,\n };\n\n log.debug(\n {\n requestId,\n sessionId: this.currentContext.sessionId,\n userId: context.userId,\n depth: this.contextDepth,\n },\n 'Request context started',\n );\n\n return requestId;\n }\n\n onResponse(): void {\n this.contextDepth--;\n\n if (this.contextDepth <= 0) {\n this.currentContext = {};\n this.contextDepth = 0;\n }\n\n log.debug({ depth: this.contextDepth }, 'Request context ended');\n }\n\n getContext(): LogContext {\n return { ...this.currentContext };\n }\n\n getRequestId(): string | undefined {\n return this.currentContext.requestId;\n }\n\n extendContext(fields: Record<string, unknown>): void {\n this.currentContext = { ...this.currentContext, ...fields };\n }\n}\n"],"mappings":";;;;;;;;;;;;aAW6D;AAE7D,MAAM,MAAMA,OAAW,MAAM,EAAE,QAAQ,qBAAqB,CAAC;AAU7D,IAAa,oBAAb,MAA+B;CAC7B,iBAAqC,EAAE;CACvC,eAAuB;CAEvB,oBAAoC;AAGlC,SAAO,OAFW,KAAK,KAAK,CAAC,SAAS,GAEf,CAAC,GADT,YAAY,EAAE,CAAC,SAAS,MACN;;CAGnC,iBAAyB,YAA4B;AAEnD,SADc,WAAW,MAAM,IACnB,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,IAAI;;CAGpC,UAAU,SAAiC;AACzC,OAAK;EACL,MAAM,YAAY,KAAK,mBAAmB;AAE1C,OAAK,iBAAiB;GACpB;GACA,WAAW,KAAK,iBAAiB,QAAQ,WAAW;GACpD,QAAQ,QAAQ;GAChB,QAAQ,QAAQ;GAChB,SAAS;GACT,GAAG,QAAQ;GACZ;AAED,MAAI,MACF;GACE;GACA,WAAW,KAAK,eAAe;GAC/B,QAAQ,QAAQ;GAChB,OAAO,KAAK;GACb,EACD,0BACD;AAED,SAAO;;CAGT,aAAmB;AACjB,OAAK;AAEL,MAAI,KAAK,gBAAgB,GAAG;AAC1B,QAAK,iBAAiB,EAAE;AACxB,QAAK,eAAe;;AAGtB,MAAI,MAAM,EAAE,OAAO,KAAK,cAAc,EAAE,wBAAwB;;CAGlE,aAAyB;AACvB,SAAO,EAAE,GAAG,KAAK,gBAAgB;;CAGnC,eAAmC;AACjC,SAAO,KAAK,eAAe;;CAG7B,cAAc,QAAuC;AACnD,OAAK,iBAAiB;GAAE,GAAG,KAAK;GAAgB,GAAG;GAAQ"}