@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":"goal-service.js","names":[],"sources":["../../../src/goals/goal-service.ts"],"sourcesContent":["import type { Config } from '../config/schema.js';\nimport { defaultMaxTurns } from '../agent/goals/state.js';\nimport { publishAutomationProductEvent } from '../automations/product-events.js';\nimport { GoalStore } from './goal-store.js';\nimport type {\n CreateGoalInput,\n Goal,\n GoalChecklistAddedBy,\n GoalChecklistStatus,\n GoalContextAttachment,\n GoalContractInput,\n GoalEvidenceRequirementStatus,\n GoalEvidenceReviewSource,\n GoalJudgeDecision,\n GoalListQuery,\n GoalSource,\n GoalStatus,\n GoalUiLocale,\n GoalWithDetails,\n} from './types.js';\n\nfunction normalizeTitle(title: string): string {\n const t = title.trim();\n if (!t) throw new Error('Goal title is required');\n return t;\n}\n\nfunction toTerminalStatus(verdict: GoalJudgeDecision['verdict']): GoalStatus {\n if (verdict === 'done') return 'done';\n if (verdict === 'blocked') return 'blocked';\n if (verdict === 'needs_input') return 'needs_input';\n return 'active';\n}\n\nexport interface GoalCompletionReadiness {\n ready: boolean;\n missingEvidence: string[];\n pendingApproval: string[];\n pendingOutcome: string[];\n}\n\nfunction completionReviewReason(readiness: GoalCompletionReadiness): string {\n const pending = [\n ...readiness.missingEvidence,\n ...readiness.pendingApproval,\n ...readiness.pendingOutcome,\n ];\n return pending.length\n ? `Completion review required: ${pending.join('; ')}`\n : 'Completion review required.';\n}\n\nfunction publishGoalEvent(\n type: 'goal.created' | 'goal.status_changed',\n goal: Goal,\n extra?: Record<string, unknown>,\n): void {\n publishAutomationProductEvent({\n type,\n source: 'goals',\n payload: {\n goalId: goal.id,\n title: goal.title,\n status: goal.status,\n priority: goal.priority,\n sessionKey: goal.activeSessionKey,\n agentId: goal.agentId,\n source: goal.source,\n ...extra,\n },\n });\n}\n\nfunction publishGoalStatusEvent(\n goal: Goal,\n previousStatus?: GoalStatus,\n reason?: string,\n): void {\n if (previousStatus === goal.status) return;\n publishGoalEvent('goal.status_changed', goal, {\n previousStatus,\n reason,\n });\n}\n\nexport class GoalService {\n private readonly store: GoalStore;\n\n constructor(store = new GoalStore()) {\n this.store = store;\n }\n\n create(input: Omit<CreateGoalInput, 'maxTurns' | 'agentId'> & {\n maxTurns?: number;\n agentId?: string;\n config?: Config;\n }): Goal {\n const sessionKey = input.sessionKey;\n const cfg = input.config?.goals;\n const goal = this.store.create({\n title: normalizeTitle(input.title),\n description: input.description,\n agentId: input.agentId ?? 'main',\n sessionKey,\n priority: input.priority,\n deadlineAt: input.deadlineAt,\n judgeModelRef: input.judgeModelRef ?? cfg?.judgeModelRef,\n maxTurns: input.maxTurns ?? defaultMaxTurns(cfg),\n uiLocale: input.uiLocale,\n source: input.source,\n projectId: input.projectId,\n contract: input.contract,\n });\n publishGoalEvent('goal.created', goal);\n return goal;\n }\n\n get(goalId: string): GoalWithDetails | null {\n const goal = this.store.get(goalId);\n if (!goal) return null;\n return {\n ...goal,\n checklist: this.store.listChecklist(goalId),\n latestRun: this.store.listRuns(goalId, 1)[0],\n contextMessage: this.store.getContextMessage(goalId) ?? undefined,\n contract: this.store.getContract(goalId) ?? undefined,\n evidenceRequirements: this.store.listEvidenceRequirements(goalId),\n };\n }\n\n getActiveForSession(sessionKey: string): GoalWithDetails | null {\n const goal = this.store.getActiveForSession(sessionKey);\n return goal ? this.get(goal.id) : null;\n }\n\n list(query: GoalListQuery = {}): GoalWithDetails[] {\n return this.store.list(query).map((goal) => ({\n ...goal,\n checklist: this.store.listChecklist(goal.id),\n latestRun: this.store.listRuns(goal.id, 1)[0],\n contextMessage: this.store.getContextMessage(goal.id) ?? undefined,\n contract: this.store.getContract(goal.id) ?? undefined,\n evidenceRequirements: this.store.listEvidenceRequirements(goal.id),\n }));\n }\n\n setContextMessage(input: {\n goalId: string;\n text: string;\n attachments?: GoalContextAttachment[];\n }): GoalWithDetails | null {\n if (!this.store.get(input.goalId)) return null;\n this.store.setContextMessage(input);\n return this.get(input.goalId);\n }\n\n setContract(goalId: string, input: GoalContractInput): GoalWithDetails | null {\n if (!this.store.get(goalId)) return null;\n this.store.setContract(goalId, input);\n if (input.criteria) {\n this.store.replaceChecklist(\n goalId,\n input.criteria\n .map((text) => text.trim())\n .filter(Boolean)\n .map((text) => ({ text, status: 'pending', addedBy: 'user' })),\n );\n }\n return this.get(goalId);\n }\n\n update(goalId: string, patch: Partial<Pick<\n Goal,\n | 'title'\n | 'description'\n | 'priority'\n | 'deadlineAt'\n | 'maxTurns'\n | 'judgeModelRef'\n | 'nextAction'\n | 'blockedReason'\n | 'activeSessionKey'\n | 'uiLocale'\n | 'projectId'\n >>): GoalWithDetails | null {\n const normalized: typeof patch = { ...patch };\n if (typeof normalized.title === 'string') {\n normalized.title = normalizeTitle(normalized.title);\n }\n if (typeof normalized.description === 'string') {\n normalized.description = normalized.description.trim() || undefined;\n }\n if (typeof normalized.judgeModelRef === 'string') {\n normalized.judgeModelRef = normalized.judgeModelRef.trim() || undefined;\n }\n if (typeof normalized.nextAction === 'string') {\n normalized.nextAction = normalized.nextAction.trim() || undefined;\n }\n if (typeof normalized.blockedReason === 'string') {\n normalized.blockedReason = normalized.blockedReason.trim() || undefined;\n }\n if (typeof normalized.maxTurns === 'number') {\n normalized.maxTurns = Math.max(1, Math.min(500, Math.floor(normalized.maxTurns)));\n }\n const goal = this.store.update(goalId, normalized);\n return goal ? this.get(goal.id) : null;\n }\n\n setStatus(goalId: string, status: GoalStatus, opts?: { reason?: string }): GoalWithDetails | null {\n const previous = this.store.get(goalId);\n const now = Date.now();\n const goal = this.store.update(goalId, {\n status,\n completedAt: status === 'done' ? now : undefined,\n archivedAt: status === 'archived' ? now : undefined,\n blockedReason: status === 'blocked' || status === 'needs_input' ? opts?.reason : undefined,\n });\n if (goal) publishGoalStatusEvent(goal, previous?.status, opts?.reason);\n return goal ? this.get(goal.id) : null;\n }\n\n pause(goalId: string, reason = 'user-paused'): GoalWithDetails | null {\n const previous = this.store.get(goalId);\n const goal = this.store.update(goalId, {\n status: 'paused',\n blockedReason: reason,\n completedAt: undefined,\n archivedAt: undefined,\n });\n if (goal) publishGoalStatusEvent(goal, previous?.status, reason);\n return goal ? this.get(goal.id) : null;\n }\n\n resume(goalId: string): GoalWithDetails | null {\n const previous = this.store.get(goalId);\n const goal = this.store.update(goalId, {\n status: 'active',\n blockedReason: undefined,\n completedAt: undefined,\n archivedAt: undefined,\n turnsUsed: 0,\n });\n if (goal) publishGoalStatusEvent(goal, previous?.status);\n return goal ? this.get(goal.id) : null;\n }\n\n reopen(goalId: string): GoalWithDetails | null {\n const previous = this.store.get(goalId);\n const goal = this.store.update(goalId, {\n status: 'active',\n blockedReason: undefined,\n completedAt: undefined,\n archivedAt: undefined,\n turnsUsed: 0,\n });\n if (goal) publishGoalStatusEvent(goal, previous?.status);\n return goal ? this.get(goal.id) : null;\n }\n\n complete(goalId: string): GoalWithDetails | null {\n return this.setStatus(goalId, 'done');\n }\n\n archive(goalId: string): GoalWithDetails | null {\n return this.setStatus(goalId, 'archived');\n }\n\n unarchive(goalId: string): GoalWithDetails | null {\n const previous = this.store.get(goalId);\n const goal = this.store.update(goalId, {\n status: 'paused',\n archivedAt: undefined,\n completedAt: undefined,\n blockedReason: undefined,\n });\n if (goal) publishGoalStatusEvent(goal, previous?.status);\n return goal ? this.get(goal.id) : null;\n }\n\n attachSession(goalId: string, sessionKey: string): GoalWithDetails | null {\n const goal = this.store.update(goalId, { activeSessionKey: sessionKey });\n return goal ? this.get(goal.id) : null;\n }\n\n updateChecklist(goalId: string, op: {\n type: 'add';\n text: string;\n addedBy?: GoalChecklistAddedBy;\n } | {\n type: 'mark';\n itemId: string;\n status: GoalChecklistStatus;\n evidenceSummary?: string;\n } | {\n type: 'remove';\n itemId: string;\n } | {\n type: 'reset';\n }): GoalWithDetails | null {\n if (op.type === 'add') {\n const text = op.text.trim();\n if (!text) throw new Error('Checklist item text is required');\n this.store.addChecklistItem({ goalId, text, addedBy: op.addedBy ?? 'user' });\n } else if (op.type === 'mark') {\n this.store.updateChecklistItem(op.itemId, {\n status: op.status,\n evidenceSummary: op.evidenceSummary,\n });\n } else if (op.type === 'remove') {\n this.store.removeChecklistItem(op.itemId);\n } else {\n this.store.clearChecklist(goalId);\n }\n return this.get(goalId);\n }\n\n recordJudgeDecision(input: {\n goalId: string;\n sessionKey: string;\n source: GoalSource;\n decision: GoalJudgeDecision;\n }): GoalWithDetails | null {\n const goal = this.store.get(input.goalId);\n if (!goal) return null;\n const previousStatus = goal.status;\n const nextStatus = toTerminalStatus(input.decision.verdict);\n const turnsUsed = goal.turnsUsed + 1;\n const budgetStatus = turnsUsed >= goal.maxTurns && nextStatus === 'active' ? 'paused' : nextStatus;\n const readiness = budgetStatus === 'done' ? this.getCompletionReadiness(input.goalId) : null;\n const status = readiness && !readiness.ready ? 'needs_input' : budgetStatus;\n const reason = readiness && !readiness.ready\n ? completionReviewReason(readiness)\n : status === 'paused' && turnsUsed >= goal.maxTurns\n ? `turn budget exhausted (${turnsUsed}/${goal.maxTurns})`\n : input.decision.reason;\n\n const run = this.store.appendRun({\n goalId: input.goalId,\n sessionKey: input.sessionKey,\n source: input.source,\n status: 'succeeded',\n finishedAt: Date.now(),\n verdict: input.decision.verdict,\n reason: input.decision.reason,\n nextAction: input.decision.nextAction,\n assistantPreview: input.decision.assistantPreview,\n checklistProgress: input.decision.checklistProgress,\n confidence: input.decision.confidence,\n missingEvidence: input.decision.missingEvidence,\n userQuestion: input.decision.userQuestion,\n completedChecklistItemIds: input.decision.completedChecklistItemIds,\n });\n\n const updated = this.store.update(input.goalId, {\n status,\n turnsUsed,\n currentRunId: run.id,\n nextAction: input.decision.nextAction,\n blockedReason: status === 'blocked' || status === 'needs_input' || status === 'paused' ? reason : undefined,\n completedAt: status === 'done' ? Date.now() : undefined,\n });\n if (updated) publishGoalStatusEvent(updated, previousStatus, reason);\n\n return this.get(input.goalId);\n }\n\n syncPostTurnState(input: {\n goalId: string;\n sessionKey: string;\n source: GoalSource;\n status: GoalStatus;\n turnsUsed: number;\n maxTurns: number;\n reason?: string;\n nextAction?: string;\n assistantPreview?: string;\n verdict: 'continue' | 'done' | 'blocked' | 'needs_input' | 'decompose';\n confidence?: number;\n missingEvidence?: string[];\n userQuestion?: string;\n completedChecklistItemIds?: string[];\n checklist?: Array<{\n text: string;\n status: 'pending' | 'completed' | 'impossible';\n addedBy: 'user' | 'judge';\n addedAt?: number;\n completedAt?: number;\n evidenceSummary?: string;\n }>;\n }): GoalWithDetails | null {\n const goal = this.store.get(input.goalId);\n if (!goal) return null;\n const previousStatus = goal.status;\n if (input.checklist) {\n this.store.replaceChecklist(input.goalId, input.checklist);\n }\n const total = input.checklist?.length ?? this.store.listChecklist(input.goalId).length;\n const done = (input.checklist ?? this.store.listChecklist(input.goalId)).filter(\n (it) => it.status === 'completed' || it.status === 'impossible',\n ).length;\n const run = this.store.appendRun({\n goalId: input.goalId,\n sessionKey: input.sessionKey,\n source: input.source,\n status: 'succeeded',\n finishedAt: Date.now(),\n verdict: input.verdict,\n reason: input.reason,\n nextAction: input.nextAction,\n assistantPreview: input.assistantPreview,\n checklistProgress: total > 0 ? { done, total } : undefined,\n confidence: input.confidence,\n missingEvidence: input.missingEvidence,\n userQuestion: input.userQuestion,\n completedChecklistItemIds: input.completedChecklistItemIds,\n });\n for (const item of input.checklist ?? []) {\n if ((item.status === 'completed' || item.status === 'impossible') && item.evidenceSummary?.trim()) {\n this.store.addEvidence({\n goalId: input.goalId,\n runId: run.id,\n kind: 'message',\n title: `Checklist evidence: ${item.text.slice(0, 80)}`,\n summary: item.evidenceSummary.trim(),\n });\n }\n }\n for (const missing of input.missingEvidence ?? []) {\n if (!missing.trim()) continue;\n this.store.addEvidence({\n goalId: input.goalId,\n runId: run.id,\n kind: 'message',\n title: `Missing evidence: ${missing.slice(0, 80)}`,\n summary: missing,\n });\n }\n if (input.userQuestion?.trim()) {\n this.store.addEvidence({\n goalId: input.goalId,\n runId: run.id,\n kind: 'message',\n title: 'User input requested',\n summary: input.userQuestion.trim(),\n });\n }\n const readiness = input.status === 'done' ? this.getCompletionReadiness(input.goalId) : null;\n const status = readiness && !readiness.ready ? 'needs_input' : input.status;\n const completionReason = readiness && !readiness.ready ? completionReviewReason(readiness) : input.reason;\n const updated = this.store.update(input.goalId, {\n status,\n turnsUsed: input.turnsUsed,\n maxTurns: input.maxTurns,\n currentRunId: run.id,\n nextAction: input.nextAction,\n blockedReason:\n status === 'blocked' || status === 'needs_input' || status === 'paused'\n ? completionReason\n : undefined,\n completedAt: status === 'done' ? Date.now() : undefined,\n });\n if (updated) publishGoalStatusEvent(updated, previousStatus, completionReason);\n return this.get(input.goalId);\n }\n\n listRuns(goalId: string, limit?: number) {\n return this.store.listRuns(goalId, limit);\n }\n\n listRunsForSession(sessionKey: string, limit?: number) {\n return this.store.listRunsForSession(sessionKey, limit);\n }\n\n listEvents(goalId: string, limit?: number) {\n return this.store.listEvents(goalId, limit);\n }\n\n addEvidence(input: Parameters<GoalStore['addEvidence']>[0]) {\n return this.store.addEvidence(input);\n }\n\n listEvidence(goalId: string, limit?: number) {\n return this.store.listEvidence(goalId, limit);\n }\n\n listEvidenceRequirements(goalId: string) {\n return this.store.listEvidenceRequirements(goalId);\n }\n\n linkEvidenceRequirement(input: Parameters<GoalStore['linkEvidenceRequirement']>[0]) {\n return this.store.linkEvidenceRequirement(input);\n }\n\n reviewEvidenceRequirement(input: {\n goalId: string;\n requirementId: string;\n status: GoalEvidenceRequirementStatus;\n reason: string;\n confidence?: number;\n reviewedBy: GoalEvidenceReviewSource;\n }) {\n return this.store.reviewEvidenceRequirement(input);\n }\n\n getCompletionReadiness(goalId: string): GoalCompletionReadiness | null {\n const goal = this.get(goalId);\n if (!goal) return null;\n const required = goal.evidenceRequirements;\n const missingEvidence = required.filter((item) => item.evidenceIds.length === 0).map((item) => item.text);\n const pendingApproval = required\n .filter((item) => item.evidenceIds.length > 0 && item.status !== 'approved')\n .map((item) => item.text);\n const metric = goal.contract?.outcomeMetric;\n const outcomeAchieved = metric?.currentValue != null && (\n metric.direction === 'increase'\n ? metric.currentValue >= metric.targetValue\n : metric.currentValue <= metric.targetValue\n );\n const pendingOutcome = metric && !outcomeAchieved\n ? [metric.currentValue == null\n ? `${metric.name}: current value is not recorded`\n : `${metric.name}: current value ${metric.currentValue} has not reached target ${metric.targetValue}`]\n : [];\n return {\n ready: missingEvidence.length === 0 && pendingApproval.length === 0 && pendingOutcome.length === 0,\n missingEvidence,\n pendingApproval,\n pendingOutcome,\n };\n }\n}\n\nexport function normalizeGoalUiLocale(raw: unknown): GoalUiLocale | undefined {\n return raw === 'en' || raw === 'zh' ? raw : undefined;\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"goal-store.js","names":[],"sources":["../../../src/goals/goal-store.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto';\n\nimport { getSqliteDatabase, runSqliteWriteTransaction } from '../storage/sqlite/transaction.js';\nimport type {\n CreateGoalInput,\n Goal,\n GoalChecklistAddedBy,\n GoalChecklistItem,\n GoalChecklistStatus,\n GoalContextAttachment,\n GoalContextMessage,\n GoalContract,\n GoalContractInput,\n GoalEvent,\n GoalEvidence,\n GoalEvidenceRequirement,\n GoalEvidenceRequirementStatus,\n GoalEvidenceReviewSource,\n GoalListQuery,\n GoalOutcomeMetric,\n GoalPriority,\n GoalRun,\n GoalRunStatus,\n GoalRunVerdict,\n GoalSource,\n GoalStatus,\n} from './types.js';\n\ntype GoalRow = {\n goal_id: string;\n title: string;\n description: string | null;\n status: string;\n agent_id: string;\n priority: string;\n deadline_at: number | null;\n created_at: number;\n updated_at: number;\n completed_at: number | null;\n archived_at: number | null;\n active_session_key: string | null;\n current_run_id: string | null;\n next_action: string | null;\n blocked_reason: string | null;\n judge_model_ref: string | null;\n max_turns: number;\n turns_used: number;\n ui_locale: string | null;\n source: string;\n project_id: string | null;\n};\n\ntype ChecklistRow = {\n item_id: string;\n goal_id: string;\n text: string;\n status: string;\n added_by: string;\n added_at: number;\n completed_at: number | null;\n evidence_summary: string | null;\n sort_order: number;\n};\n\ntype GoalRunRow = {\n run_id: string;\n goal_id: string;\n session_key: string;\n source: string;\n status: string;\n started_at: number;\n finished_at: number | null;\n verdict: string | null;\n reason: string | null;\n next_action: string | null;\n assistant_preview: string | null;\n checklist_done: number | null;\n checklist_total: number | null;\n confidence: number | null;\n missing_evidence_json: string | null;\n user_question: string | null;\n completed_checklist_item_ids_json: string | null;\n};\n\ntype EventRow = {\n event_id: string;\n goal_id: string;\n run_id: string | null;\n kind: string;\n message: string;\n data_json: string | null;\n created_at: number;\n};\n\ntype EvidenceRow = {\n evidence_id: string;\n goal_id: string;\n run_id: string | null;\n kind: GoalEvidence['kind'];\n title: string;\n summary: string | null;\n uri: string | null;\n data_json: string | null;\n created_at: number;\n};\n\ntype GoalContextRow = {\n goal_id: string;\n text: string;\n attachments_json: string;\n created_at: number;\n updated_at: number;\n};\n\ntype GoalContractRow = {\n goal_id: string;\n version: number;\n objective: string;\n scope_boundary: string | null;\n evidence_plan_json: string;\n outcome_metric_json: string | null;\n created_at: number;\n updated_at: number;\n};\n\ntype GoalEvidenceRequirementRow = {\n requirement_id: string;\n goal_id: string;\n text: string;\n status: GoalEvidenceRequirementStatus;\n review_reason: string | null;\n review_confidence: number | null;\n reviewed_by: GoalEvidenceReviewSource | null;\n reviewed_at: number | null;\n requires_human_approval: number;\n created_at: number;\n updated_at: number;\n sort_order: number;\n};\n\nfunction goalFromRow(row: GoalRow): Goal {\n return {\n id: row.goal_id,\n title: row.title,\n description: row.description ?? undefined,\n status: row.status as GoalStatus,\n agentId: row.agent_id,\n priority: row.priority as GoalPriority,\n deadlineAt: row.deadline_at ?? undefined,\n createdAt: row.created_at,\n updatedAt: row.updated_at,\n completedAt: row.completed_at ?? undefined,\n archivedAt: row.archived_at ?? undefined,\n activeSessionKey: row.active_session_key ?? undefined,\n currentRunId: row.current_run_id ?? undefined,\n nextAction: row.next_action ?? undefined,\n blockedReason: row.blocked_reason ?? undefined,\n judgeModelRef: row.judge_model_ref ?? undefined,\n maxTurns: row.max_turns,\n turnsUsed: row.turns_used,\n uiLocale: row.ui_locale === 'en' || row.ui_locale === 'zh' ? row.ui_locale : undefined,\n source: row.source as GoalSource,\n projectId: row.project_id ?? undefined,\n };\n}\n\nfunction checklistFromRow(row: ChecklistRow): GoalChecklistItem {\n return {\n id: row.item_id,\n goalId: row.goal_id,\n text: row.text,\n status: row.status as GoalChecklistStatus,\n addedBy: row.added_by as GoalChecklistAddedBy,\n addedAt: row.added_at,\n completedAt: row.completed_at ?? undefined,\n evidenceSummary: row.evidence_summary ?? undefined,\n sortOrder: row.sort_order,\n };\n}\n\nfunction runFromRow(row: GoalRunRow): GoalRun {\n return {\n id: row.run_id,\n goalId: row.goal_id,\n sessionKey: row.session_key,\n source: row.source as GoalSource,\n status: row.status as GoalRunStatus,\n startedAt: row.started_at,\n finishedAt: row.finished_at ?? undefined,\n verdict: row.verdict ? (row.verdict as GoalRunVerdict) : undefined,\n reason: row.reason ?? undefined,\n nextAction: row.next_action ?? undefined,\n assistantPreview: row.assistant_preview ?? undefined,\n checklistProgress:\n row.checklist_done != null && row.checklist_total != null\n ? { done: row.checklist_done, total: row.checklist_total }\n : undefined,\n confidence: row.confidence ?? undefined,\n missingEvidence: parseJsonStringArray(row.missing_evidence_json),\n userQuestion: row.user_question ?? undefined,\n completedChecklistItemIds: parseJsonStringArray(row.completed_checklist_item_ids_json),\n };\n}\n\nfunction parseJsonField(raw: string | null): unknown {\n if (!raw) return undefined;\n try {\n return JSON.parse(raw) as unknown;\n } catch {\n return undefined;\n }\n}\n\nfunction parseJsonStringArray(raw: string | null): string[] | undefined {\n const value = parseJsonField(raw);\n if (!Array.isArray(value)) return undefined;\n const rows = value.filter((item): item is string => typeof item === 'string' && item.trim().length > 0);\n return rows.length ? rows : undefined;\n}\n\nfunction parseGoalContextAttachments(raw: string): GoalContextAttachment[] {\n const parsed = parseJsonField(raw);\n if (!Array.isArray(parsed)) return [];\n return parsed.filter((item): item is GoalContextAttachment => {\n if (!item || typeof item !== 'object') return false;\n const ref = item as Partial<GoalContextAttachment>;\n return (\n typeof ref.id === 'string' &&\n (ref.bucket === 'inbound' || ref.bucket === 'tts' || ref.bucket === 'outbound' || ref.bucket === 'work-item') &&\n typeof ref.type === 'string' &&\n typeof ref.mimeType === 'string' &&\n typeof ref.name === 'string' &&\n typeof ref.size === 'number' &&\n typeof ref.uri === 'string' &&\n typeof ref.path === 'string'\n );\n });\n}\n\nfunction goalContextFromRow(row: GoalContextRow): GoalContextMessage {\n return {\n goalId: row.goal_id,\n text: row.text,\n attachments: parseGoalContextAttachments(row.attachments_json),\n createdAt: row.created_at,\n updatedAt: row.updated_at,\n };\n}\n\nfunction goalContractFromRow(row: GoalContractRow): GoalContract {\n return {\n goalId: row.goal_id,\n version: row.version,\n objective: row.objective,\n scopeBoundary: row.scope_boundary ?? undefined,\n evidencePlan: parseJsonStringArray(row.evidence_plan_json) ?? [],\n outcomeMetric: parseGoalOutcomeMetric(row.outcome_metric_json),\n createdAt: row.created_at,\n updatedAt: row.updated_at,\n };\n}\n\nfunction parseGoalOutcomeMetric(raw: string | null): GoalOutcomeMetric | undefined {\n const value = parseJsonField(raw);\n if (!value || typeof value !== 'object' || Array.isArray(value)) return undefined;\n const metric = value as Partial<GoalOutcomeMetric>;\n if (\n typeof metric.name !== 'string' || !metric.name.trim() ||\n typeof metric.baselineValue !== 'number' || !Number.isFinite(metric.baselineValue) ||\n typeof metric.targetValue !== 'number' || !Number.isFinite(metric.targetValue) ||\n (metric.direction !== 'increase' && metric.direction !== 'decrease')\n ) return undefined;\n return {\n name: metric.name.trim(),\n baselineValue: metric.baselineValue,\n targetValue: metric.targetValue,\n currentValue: typeof metric.currentValue === 'number' && Number.isFinite(metric.currentValue)\n ? metric.currentValue\n : undefined,\n unit: typeof metric.unit === 'string' && metric.unit.trim() ? metric.unit.trim() : undefined,\n direction: metric.direction,\n sourceUrl: typeof metric.sourceUrl === 'string' && metric.sourceUrl.trim() ? metric.sourceUrl.trim() : undefined,\n measuredAt: typeof metric.measuredAt === 'number' && Number.isFinite(metric.measuredAt)\n ? metric.measuredAt\n : undefined,\n };\n}\n\nfunction normalizeGoalOutcomeMetric(input: GoalContractInput['outcomeMetric']): GoalOutcomeMetric | undefined {\n if (!input) return undefined;\n return {\n name: input.name.trim(),\n baselineValue: input.baselineValue,\n targetValue: input.targetValue,\n currentValue: input.currentValue,\n unit: input.unit?.trim() || undefined,\n direction: input.direction ?? (input.targetValue >= input.baselineValue ? 'increase' : 'decrease'),\n sourceUrl: input.sourceUrl?.trim() || undefined,\n measuredAt: input.measuredAt,\n };\n}\n\nfunction normalizeStringList(items: string[] | undefined, limit = 20): string[] {\n if (!items) return [];\n const seen = new Set<string>();\n const result: string[] = [];\n for (const item of items) {\n const text = item.trim();\n const key = text.toLocaleLowerCase();\n if (!text || seen.has(key)) continue;\n seen.add(key);\n result.push(text);\n if (result.length >= limit) break;\n }\n return result;\n}\n\nfunction normalizeContract(\n input: GoalContractInput | undefined,\n goalId: string,\n fallbackObjective: string,\n now: number,\n version = 1,\n createdAt = now,\n): GoalContract | undefined {\n if (!input) return undefined;\n return {\n goalId,\n version,\n objective: input.objective?.trim() || fallbackObjective,\n scopeBoundary: input.scopeBoundary?.trim() || undefined,\n evidencePlan: normalizeStringList(input.evidencePlan),\n outcomeMetric: normalizeGoalOutcomeMetric(input.outcomeMetric),\n createdAt,\n updatedAt: now,\n };\n}\n\nfunction insertGoalContract(db: ReturnType<typeof getSqliteDatabase>, contract: GoalContract): void {\n db.prepare(\n `INSERT INTO goal_contracts (\n goal_id, version, objective, scope_boundary, evidence_plan_json, outcome_metric_json, created_at, updated_at\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)`,\n ).run(\n contract.goalId,\n contract.version,\n contract.objective,\n contract.scopeBoundary ?? null,\n JSON.stringify(contract.evidencePlan),\n contract.outcomeMetric ? JSON.stringify(contract.outcomeMetric) : null,\n contract.createdAt,\n contract.updatedAt,\n );\n}\n\nfunction eventFromRow(row: EventRow): GoalEvent {\n return {\n id: row.event_id,\n goalId: row.goal_id,\n runId: row.run_id ?? undefined,\n kind: row.kind,\n message: row.message,\n data: parseJsonField(row.data_json),\n createdAt: row.created_at,\n };\n}\n\nfunction evidenceFromRow(row: EvidenceRow): GoalEvidence {\n return {\n id: row.evidence_id,\n goalId: row.goal_id,\n runId: row.run_id ?? undefined,\n kind: row.kind,\n title: row.title,\n summary: row.summary ?? undefined,\n uri: row.uri ?? undefined,\n data: parseJsonField(row.data_json),\n createdAt: row.created_at,\n };\n}\n\nfunction evidenceRequirementFromRow(row: GoalEvidenceRequirementRow, evidenceIds: string[] = []): GoalEvidenceRequirement {\n return {\n id: row.requirement_id,\n goalId: row.goal_id,\n text: row.text,\n status: row.status,\n evidenceIds,\n reviewReason: row.review_reason ?? undefined,\n reviewConfidence: row.review_confidence ?? undefined,\n reviewedBy: row.reviewed_by ?? undefined,\n reviewedAt: row.reviewed_at ?? undefined,\n requiresHumanApproval: Boolean(row.requires_human_approval),\n createdAt: row.created_at,\n updatedAt: row.updated_at,\n sortOrder: row.sort_order,\n };\n}\n\nfunction syncEvidenceRequirements(\n db: ReturnType<typeof getSqliteDatabase>,\n goalId: string,\n evidencePlan: string[],\n now: number,\n): void {\n const existing = db\n .prepare(`SELECT * FROM goal_evidence_requirements WHERE goal_id = ?`)\n .all(goalId) as GoalEvidenceRequirementRow[];\n const byText = new Map(existing.map((item) => [item.text.toLocaleLowerCase(), item]));\n const desired = new Set(evidencePlan.map((text) => text.toLocaleLowerCase()));\n for (const item of existing) {\n if (!desired.has(item.text.toLocaleLowerCase())) {\n db.prepare(`DELETE FROM goal_evidence_requirements WHERE requirement_id = ?`).run(item.requirement_id);\n }\n }\n for (const [index, text] of evidencePlan.entries()) {\n const current = byText.get(text.toLocaleLowerCase());\n if (current) {\n db.prepare(\n `UPDATE goal_evidence_requirements\n SET text = ?, sort_order = ?, updated_at = ?\n WHERE requirement_id = ?`,\n ).run(text, index + 1, now, current.requirement_id);\n } else {\n db.prepare(\n `INSERT INTO goal_evidence_requirements (\n requirement_id, goal_id, text, status, requires_human_approval, created_at, updated_at, sort_order\n ) VALUES (?, ?, ?, 'pending', 1, ?, ?, ?)`,\n ).run(randomUUID(), goalId, text, now, now, index + 1);\n }\n }\n}\n\nfunction clampLimit(n: number | undefined, fallback: number): number {\n return Math.min(500, Math.max(1, Math.floor(n ?? fallback)));\n}\n\nfunction insertGoalEvent(db: ReturnType<typeof getSqliteDatabase>, input: {\n goalId: string;\n runId?: string;\n kind: string;\n message: string;\n data?: unknown;\n createdAt?: number;\n}): GoalEvent {\n const event: GoalEvent = {\n id: randomUUID(),\n goalId: input.goalId,\n runId: input.runId,\n kind: input.kind,\n message: input.message,\n data: input.data,\n createdAt: input.createdAt ?? Date.now(),\n };\n db.prepare(\n `INSERT INTO goal_events (event_id, goal_id, run_id, kind, message, data_json, created_at)\n VALUES (?, ?, ?, ?, ?, ?, ?)`,\n ).run(\n event.id,\n event.goalId,\n event.runId ?? null,\n event.kind,\n event.message,\n event.data === undefined ? null : JSON.stringify(event.data),\n event.createdAt,\n );\n return event;\n}\n\nexport class GoalStore {\n create(input: CreateGoalInput): Goal {\n const now = Date.now();\n const goal: Goal = {\n id: randomUUID(),\n title: input.title.trim(),\n description: input.description?.trim() || undefined,\n status: 'active',\n agentId: input.agentId,\n priority: input.priority ?? 'normal',\n deadlineAt: input.deadlineAt,\n createdAt: now,\n updatedAt: now,\n activeSessionKey: input.sessionKey,\n judgeModelRef: input.judgeModelRef?.trim() || undefined,\n maxTurns: Math.max(1, Math.min(500, Math.floor(input.maxTurns))),\n turnsUsed: 0,\n uiLocale: input.uiLocale,\n source: input.source ?? 'chat',\n projectId: input.projectId?.trim() || undefined,\n };\n const contract = normalizeContract(input.contract, goal.id, goal.title, now);\n const criteria = normalizeStringList(input.contract?.criteria);\n\n runSqliteWriteTransaction((db) => {\n db.prepare(\n `INSERT INTO goals (\n goal_id, title, description, status, agent_id, priority, deadline_at,\n created_at, updated_at, active_session_key, judge_model_ref,\n max_turns, turns_used, ui_locale, source, project_id\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,\n ).run(\n goal.id,\n goal.title,\n goal.description ?? null,\n goal.status,\n goal.agentId,\n goal.priority,\n goal.deadlineAt ?? null,\n goal.createdAt,\n goal.updatedAt,\n goal.activeSessionKey ?? null,\n goal.judgeModelRef ?? null,\n goal.maxTurns,\n goal.turnsUsed,\n goal.uiLocale ?? null,\n goal.source,\n goal.projectId ?? null,\n );\n if (goal.activeSessionKey) {\n db.prepare(\n `INSERT OR REPLACE INTO goal_session_links (goal_id, session_key, linked_at)\n VALUES (?, ?, ?)`,\n ).run(goal.id, goal.activeSessionKey, now);\n }\n if (contract) {\n insertGoalContract(db, contract);\n syncEvidenceRequirements(db, goal.id, contract.evidencePlan, now);\n for (const [index, text] of criteria.entries()) {\n db.prepare(\n `INSERT INTO goal_checklist_items (\n item_id, goal_id, text, status, added_by, added_at, sort_order\n ) VALUES (?, ?, ?, 'pending', 'user', ?, ?)`,\n ).run(randomUUID(), goal.id, text, now, index + 1);\n }\n insertGoalEvent(db, {\n goalId: goal.id,\n kind: 'contract_created',\n message: contract.objective,\n data: { version: contract.version, criteriaCount: criteria.length, evidenceCount: contract.evidencePlan.length },\n createdAt: now,\n });\n }\n insertGoalEvent(db, { goalId: goal.id, kind: 'created', message: 'Goal created', createdAt: now });\n });\n\n return goal;\n }\n\n get(goalId: string): Goal | null {\n const row = getSqliteDatabase()\n .prepare(`SELECT * FROM goals WHERE goal_id = ?`)\n .get(goalId) as GoalRow | undefined;\n return row ? goalFromRow(row) : null;\n }\n\n setContextMessage(input: {\n goalId: string;\n text: string;\n attachments?: GoalContextAttachment[];\n }): GoalContextMessage {\n return runSqliteWriteTransaction((db) => {\n const now = Date.now();\n const existing = db\n .prepare(`SELECT created_at FROM goal_context_messages WHERE goal_id = ?`)\n .get(input.goalId) as { created_at: number } | undefined;\n db.prepare(\n `INSERT INTO goal_context_messages (goal_id, text, attachments_json, created_at, updated_at)\n VALUES (?, ?, ?, ?, ?)\n ON CONFLICT(goal_id) DO UPDATE SET\n text = excluded.text,\n attachments_json = excluded.attachments_json,\n updated_at = excluded.updated_at`,\n ).run(\n input.goalId,\n input.text.trim(),\n JSON.stringify(input.attachments ?? []),\n existing?.created_at ?? now,\n now,\n );\n insertGoalEvent(db, {\n goalId: input.goalId,\n kind: 'context_updated',\n message: input.text.trim() || `${input.attachments?.length ?? 0} attachment(s)`,\n data: { attachmentCount: input.attachments?.length ?? 0 },\n createdAt: now,\n });\n const row = db\n .prepare(`SELECT * FROM goal_context_messages WHERE goal_id = ?`)\n .get(input.goalId) as GoalContextRow;\n return goalContextFromRow(row);\n });\n }\n\n getContextMessage(goalId: string): GoalContextMessage | null {\n const row = getSqliteDatabase()\n .prepare(`SELECT * FROM goal_context_messages WHERE goal_id = ?`)\n .get(goalId) as GoalContextRow | undefined;\n return row ? goalContextFromRow(row) : null;\n }\n\n getContract(goalId: string): GoalContract | null {\n const row = getSqliteDatabase()\n .prepare(`SELECT * FROM goal_contracts WHERE goal_id = ?`)\n .get(goalId) as GoalContractRow | undefined;\n return row ? goalContractFromRow(row) : null;\n }\n\n setContract(goalId: string, input: GoalContractInput): GoalContract | null {\n const goal = this.get(goalId);\n if (!goal) return null;\n return runSqliteWriteTransaction((db) => {\n const existing = db\n .prepare(`SELECT * FROM goal_contracts WHERE goal_id = ?`)\n .get(goalId) as GoalContractRow | undefined;\n const now = Date.now();\n const contract = normalizeContract(\n {\n ...input,\n objective: input.objective ?? existing?.objective,\n scopeBoundary: input.scopeBoundary ?? existing?.scope_boundary ?? undefined,\n evidencePlan: input.evidencePlan ?? parseJsonStringArray(existing?.evidence_plan_json ?? null) ?? [],\n outcomeMetric: input.outcomeMetric === undefined\n ? parseGoalOutcomeMetric(existing?.outcome_metric_json ?? null)\n : input.outcomeMetric,\n },\n goalId,\n goal.title,\n now,\n (existing?.version ?? 0) + 1,\n existing?.created_at ?? now,\n );\n if (!contract) return null;\n db.prepare(\n `INSERT INTO goal_contracts (\n goal_id, version, objective, scope_boundary, evidence_plan_json, outcome_metric_json, created_at, updated_at\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)\n ON CONFLICT(goal_id) DO UPDATE SET\n version = excluded.version,\n objective = excluded.objective,\n scope_boundary = excluded.scope_boundary,\n evidence_plan_json = excluded.evidence_plan_json,\n outcome_metric_json = excluded.outcome_metric_json,\n updated_at = excluded.updated_at`,\n ).run(\n contract.goalId,\n contract.version,\n contract.objective,\n contract.scopeBoundary ?? null,\n JSON.stringify(contract.evidencePlan),\n contract.outcomeMetric ? JSON.stringify(contract.outcomeMetric) : null,\n contract.createdAt,\n contract.updatedAt,\n );\n syncEvidenceRequirements(db, goalId, contract.evidencePlan, now);\n insertGoalEvent(db, {\n goalId,\n kind: 'contract_updated',\n message: contract.objective,\n data: {\n version: contract.version,\n evidenceCount: contract.evidencePlan.length,\n hasOutcomeMetric: Boolean(contract.outcomeMetric),\n },\n createdAt: now,\n });\n return contract;\n });\n }\n\n getActiveForSession(sessionKey: string): Goal | null {\n const row = getSqliteDatabase()\n .prepare(\n `SELECT * FROM goals\n WHERE active_session_key = ?\n AND status IN ('active', 'paused', 'blocked', 'needs_input', 'done')\n ORDER BY updated_at DESC\n LIMIT 1`,\n )\n .get(sessionKey) as GoalRow | undefined;\n return row ? goalFromRow(row) : null;\n }\n\n list(query: GoalListQuery = {}): Goal[] {\n const conditions: string[] = [];\n const params: Array<string | number> = [];\n if (query.status) {\n const statuses = Array.isArray(query.status) ? query.status : [query.status];\n conditions.push(`status IN (${statuses.map(() => '?').join(', ')})`);\n params.push(...statuses);\n }\n if (query.agentId) {\n conditions.push(`agent_id = ?`);\n params.push(query.agentId);\n }\n if (query.sessionKey) {\n conditions.push(`goal_id IN (SELECT goal_id FROM goal_session_links WHERE session_key = ?)`);\n params.push(query.sessionKey);\n }\n if (query.projectId) {\n conditions.push(`project_id = ?`);\n params.push(query.projectId);\n }\n const where = conditions.length ? `WHERE ${conditions.join(' AND ')}` : '';\n const limit = clampLimit(query.limit, 50);\n const offset = Math.max(0, Math.floor(query.offset ?? 0));\n const rows = getSqliteDatabase()\n .prepare(`SELECT * FROM goals ${where} ORDER BY updated_at DESC LIMIT ? OFFSET ?`)\n .all(...params, limit, offset) as GoalRow[];\n return rows.map(goalFromRow);\n }\n\n update(goalId: string, patch: Partial<Pick<\n Goal,\n | 'title'\n | 'description'\n | 'status'\n | 'priority'\n | 'deadlineAt'\n | 'completedAt'\n | 'archivedAt'\n | 'activeSessionKey'\n | 'currentRunId'\n | 'nextAction'\n | 'blockedReason'\n | 'judgeModelRef'\n | 'maxTurns'\n | 'turnsUsed'\n | 'uiLocale'\n | 'projectId'\n >>): Goal | null {\n const before = this.get(goalId);\n if (!before) return null;\n const next = { ...before, ...patch, updatedAt: Date.now() };\n runSqliteWriteTransaction((db) => {\n db.prepare(\n `UPDATE goals SET\n title = ?, description = ?, status = ?, priority = ?, deadline_at = ?,\n updated_at = ?, completed_at = ?, archived_at = ?, active_session_key = ?,\n current_run_id = ?, next_action = ?, blocked_reason = ?, judge_model_ref = ?,\n max_turns = ?, turns_used = ?, ui_locale = ?, project_id = ?\n WHERE goal_id = ?`,\n ).run(\n next.title,\n next.description ?? null,\n next.status,\n next.priority,\n next.deadlineAt ?? null,\n next.updatedAt,\n next.completedAt ?? null,\n next.archivedAt ?? null,\n next.activeSessionKey ?? null,\n next.currentRunId ?? null,\n next.nextAction ?? null,\n next.blockedReason ?? null,\n next.judgeModelRef ?? null,\n next.maxTurns,\n next.turnsUsed,\n next.uiLocale ?? null,\n next.projectId ?? null,\n goalId,\n );\n if (next.activeSessionKey) {\n db.prepare(\n `INSERT OR REPLACE INTO goal_session_links (goal_id, session_key, linked_at)\n VALUES (?, ?, ?)`,\n ).run(goalId, next.activeSessionKey, next.updatedAt);\n }\n });\n return this.get(goalId);\n }\n\n listChecklist(goalId: string): GoalChecklistItem[] {\n const rows = getSqliteDatabase()\n .prepare(`SELECT * FROM goal_checklist_items WHERE goal_id = ? ORDER BY sort_order ASC, added_at ASC`)\n .all(goalId) as ChecklistRow[];\n return rows.map(checklistFromRow);\n }\n\n addChecklistItem(input: {\n goalId: string;\n text: string;\n addedBy: GoalChecklistAddedBy;\n status?: GoalChecklistStatus;\n }): GoalChecklistItem {\n return runSqliteWriteTransaction((db) => {\n const maxRow = db\n .prepare(`SELECT COALESCE(MAX(sort_order), 0) AS max_sort FROM goal_checklist_items WHERE goal_id = ?`)\n .get(input.goalId) as { max_sort: number };\n const now = Date.now();\n const item: GoalChecklistItem = {\n id: randomUUID(),\n goalId: input.goalId,\n text: input.text.trim(),\n status: input.status ?? 'pending',\n addedBy: input.addedBy,\n addedAt: now,\n sortOrder: maxRow.max_sort + 1,\n };\n db.prepare(\n `INSERT INTO goal_checklist_items (\n item_id, goal_id, text, status, added_by, added_at, sort_order\n ) VALUES (?, ?, ?, ?, ?, ?, ?)`,\n ).run(item.id, item.goalId, item.text, item.status, item.addedBy, item.addedAt, item.sortOrder);\n insertGoalEvent(db, {\n goalId: input.goalId,\n kind: 'checklist_added',\n message: item.text,\n data: { itemId: item.id, addedBy: item.addedBy },\n createdAt: now,\n });\n return item;\n });\n }\n\n updateChecklistItem(\n itemId: string,\n patch: Partial<Pick<GoalChecklistItem, 'text' | 'status' | 'evidenceSummary'>>,\n ): GoalChecklistItem | null {\n return runSqliteWriteTransaction((db) => {\n const row = db\n .prepare(`SELECT * FROM goal_checklist_items WHERE item_id = ?`)\n .get(itemId) as ChecklistRow | undefined;\n if (!row) return null;\n const before = checklistFromRow(row);\n const status = patch.status ?? before.status;\n const completedAt =\n status === 'completed' || status === 'impossible'\n ? (before.completedAt ?? Date.now())\n : null;\n db.prepare(\n `UPDATE goal_checklist_items SET text = ?, status = ?, completed_at = ?, evidence_summary = ?\n WHERE item_id = ?`,\n ).run(\n patch.text?.trim() || before.text,\n status,\n completedAt,\n patch.evidenceSummary ?? before.evidenceSummary ?? null,\n itemId,\n );\n insertGoalEvent(db, {\n goalId: before.goalId,\n kind: 'checklist_updated',\n message: patch.text?.trim() || before.text,\n data: { itemId, status },\n });\n const next = db\n .prepare(`SELECT * FROM goal_checklist_items WHERE item_id = ?`)\n .get(itemId) as ChecklistRow;\n return checklistFromRow(next);\n });\n }\n\n removeChecklistItem(itemId: string): boolean {\n return runSqliteWriteTransaction((db) => {\n const row = db\n .prepare(`SELECT goal_id, text FROM goal_checklist_items WHERE item_id = ?`)\n .get(itemId) as { goal_id: string; text: string } | undefined;\n if (!row) return false;\n db.prepare(`DELETE FROM goal_checklist_items WHERE item_id = ?`).run(itemId);\n insertGoalEvent(db, {\n goalId: row.goal_id,\n kind: 'checklist_removed',\n message: row.text,\n data: { itemId },\n });\n return true;\n });\n }\n\n clearChecklist(goalId: string): void {\n runSqliteWriteTransaction((db) => {\n db.prepare(`DELETE FROM goal_checklist_items WHERE goal_id = ?`).run(goalId);\n insertGoalEvent(db, { goalId, kind: 'checklist_cleared', message: 'Checklist cleared' });\n });\n }\n\n replaceChecklist(goalId: string, items: Array<{\n text: string;\n status: GoalChecklistStatus;\n addedBy: GoalChecklistAddedBy;\n addedAt?: number;\n completedAt?: number;\n evidenceSummary?: string;\n }>): GoalChecklistItem[] {\n return runSqliteWriteTransaction((db) => {\n db.prepare(`DELETE FROM goal_checklist_items WHERE goal_id = ?`).run(goalId);\n const now = Date.now();\n const next: GoalChecklistItem[] = [];\n for (let i = 0; i < items.length; i++) {\n const raw = items[i]!;\n const item: GoalChecklistItem = {\n id: randomUUID(),\n goalId,\n text: raw.text.trim(),\n status: raw.status,\n addedBy: raw.addedBy,\n addedAt: raw.addedAt ?? now,\n completedAt: raw.completedAt,\n evidenceSummary: raw.evidenceSummary,\n sortOrder: i + 1,\n };\n if (!item.text) continue;\n db.prepare(\n `INSERT INTO goal_checklist_items (\n item_id, goal_id, text, status, added_by, added_at, completed_at, evidence_summary, sort_order\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,\n ).run(\n item.id,\n item.goalId,\n item.text,\n item.status,\n item.addedBy,\n item.addedAt,\n item.completedAt ?? null,\n item.evidenceSummary ?? null,\n item.sortOrder,\n );\n next.push(item);\n }\n insertGoalEvent(db, {\n goalId,\n kind: 'checklist_replaced',\n message: `Checklist replaced (${next.length} items)`,\n });\n return next;\n });\n }\n\n appendRun(run: Omit<GoalRun, 'id' | 'startedAt'> & { id?: string; startedAt?: number }): GoalRun {\n const record: GoalRun = {\n id: run.id ?? randomUUID(),\n goalId: run.goalId,\n sessionKey: run.sessionKey,\n source: run.source,\n status: run.status,\n startedAt: run.startedAt ?? Date.now(),\n finishedAt: run.finishedAt,\n verdict: run.verdict,\n reason: run.reason,\n nextAction: run.nextAction,\n assistantPreview: run.assistantPreview,\n checklistProgress: run.checklistProgress,\n };\n runSqliteWriteTransaction((db) => {\n db.prepare(\n `INSERT INTO goal_runs (\n run_id, goal_id, session_key, source, status, started_at, finished_at,\n verdict, reason, next_action, assistant_preview, checklist_done, checklist_total,\n confidence, missing_evidence_json, user_question, completed_checklist_item_ids_json\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,\n ).run(\n record.id,\n record.goalId,\n record.sessionKey,\n record.source,\n record.status,\n record.startedAt,\n record.finishedAt ?? null,\n record.verdict ?? null,\n record.reason ?? null,\n record.nextAction ?? null,\n record.assistantPreview ?? null,\n record.checklistProgress?.done ?? null,\n record.checklistProgress?.total ?? null,\n record.confidence ?? null,\n record.missingEvidence ? JSON.stringify(record.missingEvidence) : null,\n record.userQuestion ?? null,\n record.completedChecklistItemIds ? JSON.stringify(record.completedChecklistItemIds) : null,\n );\n db.prepare(`UPDATE goals SET current_run_id = ?, updated_at = ? WHERE goal_id = ?`).run(\n record.id,\n record.finishedAt ?? record.startedAt,\n record.goalId,\n );\n insertGoalEvent(db, {\n goalId: record.goalId,\n runId: record.id,\n kind: 'run_recorded',\n message: record.reason ?? record.status,\n data: {\n verdict: record.verdict,\n status: record.status,\n confidence: record.confidence,\n missingEvidence: record.missingEvidence,\n userQuestion: record.userQuestion,\n completedChecklistItemIds: record.completedChecklistItemIds,\n },\n createdAt: record.finishedAt ?? record.startedAt,\n });\n });\n return record;\n }\n\n listRuns(goalId: string, limit?: number): GoalRun[] {\n const rows = getSqliteDatabase()\n .prepare(`SELECT * FROM goal_runs WHERE goal_id = ? ORDER BY started_at DESC LIMIT ?`)\n .all(goalId, clampLimit(limit, 50)) as GoalRunRow[];\n return rows.map(runFromRow);\n }\n\n listRunsForSession(sessionKey: string, limit?: number): GoalRun[] {\n const rows = getSqliteDatabase()\n .prepare(`SELECT * FROM goal_runs WHERE session_key = ? ORDER BY started_at DESC LIMIT ?`)\n .all(sessionKey, clampLimit(limit, 50)) as GoalRunRow[];\n return rows.map(runFromRow);\n }\n\n listEvents(goalId: string, limit?: number): GoalEvent[] {\n const rows = getSqliteDatabase()\n .prepare(`SELECT * FROM goal_events WHERE goal_id = ? ORDER BY created_at DESC LIMIT ?`)\n .all(goalId, clampLimit(limit, 100)) as EventRow[];\n return rows.map(eventFromRow);\n }\n\n addEvidence(input: Omit<GoalEvidence, 'id' | 'createdAt'> & { id?: string; createdAt?: number }): GoalEvidence {\n const evidence: GoalEvidence = {\n id: input.id ?? randomUUID(),\n goalId: input.goalId,\n runId: input.runId,\n kind: input.kind,\n title: input.title,\n summary: input.summary,\n uri: input.uri,\n data: input.data,\n createdAt: input.createdAt ?? Date.now(),\n };\n runSqliteWriteTransaction((db) => {\n db.prepare(\n `INSERT INTO goal_evidence (\n evidence_id, goal_id, run_id, kind, title, summary, uri, data_json, created_at\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,\n ).run(\n evidence.id,\n evidence.goalId,\n evidence.runId ?? null,\n evidence.kind,\n evidence.title,\n evidence.summary ?? null,\n evidence.uri ?? null,\n evidence.data === undefined ? null : JSON.stringify(evidence.data),\n evidence.createdAt,\n );\n insertGoalEvent(db, {\n goalId: evidence.goalId,\n runId: evidence.runId,\n kind: 'evidence_added',\n message: evidence.title,\n data: { evidenceId: evidence.id, kind: evidence.kind },\n createdAt: evidence.createdAt,\n });\n });\n return evidence;\n }\n\n listEvidence(goalId: string, limit?: number): GoalEvidence[] {\n const rows = getSqliteDatabase()\n .prepare(`SELECT * FROM goal_evidence WHERE goal_id = ? ORDER BY created_at DESC LIMIT ?`)\n .all(goalId, clampLimit(limit, 100)) as EvidenceRow[];\n const db = getSqliteDatabase();\n return rows.map((row) => ({\n ...evidenceFromRow(row),\n requirementIds: (db.prepare(\n `SELECT requirement_id FROM goal_evidence_requirement_links WHERE evidence_id = ? ORDER BY requirement_id`,\n ).all(row.evidence_id) as Array<{ requirement_id: string }>).map((item) => item.requirement_id),\n }));\n }\n\n listEvidenceRequirements(goalId: string): GoalEvidenceRequirement[] {\n const db = getSqliteDatabase();\n const rows = db\n .prepare(`SELECT * FROM goal_evidence_requirements WHERE goal_id = ? ORDER BY sort_order ASC`)\n .all(goalId) as GoalEvidenceRequirementRow[];\n return rows.map((row) => evidenceRequirementFromRow(\n row,\n (db.prepare(\n `SELECT evidence_id FROM goal_evidence_requirement_links WHERE requirement_id = ? ORDER BY created_at ASC`,\n ).all(row.requirement_id) as Array<{ evidence_id: string }>).map((item) => item.evidence_id),\n ));\n }\n\n linkEvidenceRequirement(input: {\n goalId: string;\n requirementId: string;\n evidenceId: string;\n linkedBy: 'user' | 'agent' | 'system';\n }): GoalEvidenceRequirement | null {\n return runSqliteWriteTransaction((db) => {\n const requirement = db.prepare(\n `SELECT * FROM goal_evidence_requirements WHERE requirement_id = ? AND goal_id = ?`,\n ).get(input.requirementId, input.goalId) as GoalEvidenceRequirementRow | undefined;\n const evidence = db.prepare(\n `SELECT evidence_id FROM goal_evidence WHERE evidence_id = ? AND goal_id = ?`,\n ).get(input.evidenceId, input.goalId) as { evidence_id: string } | undefined;\n if (!requirement || !evidence) return null;\n const now = Date.now();\n db.prepare(\n `INSERT OR IGNORE INTO goal_evidence_requirement_links (requirement_id, evidence_id, linked_by, created_at)\n VALUES (?, ?, ?, ?)`,\n ).run(input.requirementId, input.evidenceId, input.linkedBy, now);\n db.prepare(\n `UPDATE goal_evidence_requirements\n SET status = CASE WHEN status = 'rejected' THEN 'pending' ELSE status END,\n updated_at = ?\n WHERE requirement_id = ?`,\n ).run(now, input.requirementId);\n insertGoalEvent(db, {\n goalId: input.goalId,\n kind: 'evidence_requirement_linked',\n message: requirement.text,\n data: { requirementId: input.requirementId, evidenceId: input.evidenceId, linkedBy: input.linkedBy },\n createdAt: now,\n });\n const ids = (db.prepare(\n `SELECT evidence_id FROM goal_evidence_requirement_links WHERE requirement_id = ? ORDER BY created_at ASC`,\n ).all(input.requirementId) as Array<{ evidence_id: string }>).map((item) => item.evidence_id);\n const next = db.prepare(`SELECT * FROM goal_evidence_requirements WHERE requirement_id = ?`)\n .get(input.requirementId) as GoalEvidenceRequirementRow;\n return evidenceRequirementFromRow(next, ids);\n });\n }\n\n reviewEvidenceRequirement(input: {\n goalId: string;\n requirementId: string;\n status: GoalEvidenceRequirementStatus;\n reason: string;\n confidence?: number;\n reviewedBy: GoalEvidenceReviewSource;\n }): GoalEvidenceRequirement | null {\n return runSqliteWriteTransaction((db) => {\n const current = db.prepare(\n `SELECT * FROM goal_evidence_requirements WHERE requirement_id = ? AND goal_id = ?`,\n ).get(input.requirementId, input.goalId) as GoalEvidenceRequirementRow | undefined;\n if (!current) return null;\n const now = Date.now();\n db.prepare(\n `UPDATE goal_evidence_requirements\n SET status = ?, review_reason = ?, review_confidence = ?, reviewed_by = ?, reviewed_at = ?, updated_at = ?\n WHERE requirement_id = ?`,\n ).run(\n input.status,\n input.reason.trim(),\n input.confidence ?? null,\n input.reviewedBy,\n now,\n now,\n input.requirementId,\n );\n insertGoalEvent(db, {\n goalId: input.goalId,\n kind: input.reviewedBy === 'user' ? 'evidence_requirement_approved' : 'evidence_requirement_reviewed',\n message: current.text,\n data: { requirementId: input.requirementId, status: input.status, reason: input.reason.trim(), confidence: input.confidence },\n createdAt: now,\n });\n const ids = (db.prepare(\n `SELECT evidence_id FROM goal_evidence_requirement_links WHERE requirement_id = ? ORDER BY created_at ASC`,\n ).all(input.requirementId) as Array<{ evidence_id: string }>).map((item) => item.evidence_id);\n const next = db.prepare(`SELECT * FROM goal_evidence_requirements WHERE requirement_id = ?`)\n .get(input.requirementId) as GoalEvidenceRequirementRow;\n return evidenceRequirementFromRow(next, ids);\n });\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"goal-workflow-judge.js","names":[],"sources":["../../../src/goals/goal-workflow-judge.ts"],"sourcesContent":["import type { Config } from '../config/schema.js';\nimport { getAgentDefaultModelRef } from '../config/schema.js';\nimport { renderWorkflowText } from '../agent/workflow/snapshot.js';\nimport { evaluateAfterTurnHermesLike } from '../agent/goals/evaluate-turn.js';\nimport { resolveGoalUiLocale } from '../agent/goals/goal-locale.js';\nimport type { PersistentGoalState } from '../agent/goals/state.js';\nimport type { WorkflowRunView } from '../workflows/domain/index.js';\nimport { runViewToSnapshot } from '../workflows/service/run-view-to-snapshot.js';\nimport { createLogger } from '../utils/logger.js';\n\nimport { GoalService } from './goal-service.js';\n\nconst log = createLogger('GoalWorkflowJudge');\n\nexport interface GoalWorkflowJudgeInput {\n config: Config | undefined;\n view: WorkflowRunView;\n sessionKey: string;\n}\n\nexport class GoalWorkflowJudge {\n private readonly goals = new GoalService();\n\n async handleTerminalWorkflowRun(input: GoalWorkflowJudgeInput): Promise<void> {\n const goalId = input.view.run.metadata?.goalId?.trim();\n if (!goalId) return;\n\n const goal = this.goals.get(goalId);\n if (!goal) return;\n\n const resultText = renderWorkflowText(\n runViewToSnapshot(input.view),\n input.view.run.status === 'succeeded',\n { showResultPreviews: true },\n );\n\n if (input.view.run.status !== 'succeeded') {\n this.markBlockedFromFailedWorkflow({\n goalId,\n sessionKey: input.sessionKey,\n view: input.view,\n resultText,\n });\n return;\n }\n\n const judgeModelRef = input.config?.goals?.judgeModelRef?.trim()\n || goal.judgeModelRef?.trim()\n || (input.config ? getAgentDefaultModelRef(input.config) : undefined);\n if (!judgeModelRef) {\n log.warn({ goalId, workflowRunId: input.view.run.id }, 'Workflow goal judge skipped: no judge model');\n return;\n }\n\n const state: PersistentGoalState = {\n goal: goal.title,\n status: 'active',\n turnsUsed: goal.turnsUsed,\n maxTurns: goal.maxTurns,\n createdAt: goal.createdAt,\n lastTurnAt: goal.updatedAt,\n lastReason: goal.blockedReason,\n judgeModelRef: goal.judgeModelRef,\n decomposed: goal.checklist.length > 0 ? true : undefined,\n uiLocale: goal.uiLocale,\n checklist: goal.checklist.map((item) => ({\n text: item.text,\n status: item.status,\n addedBy: item.addedBy,\n addedAt: item.addedAt,\n completedAt: item.completedAt,\n evidence: item.evidenceSummary,\n })),\n };\n\n const decision = await evaluateAfterTurnHermesLike(state, resultText, judgeModelRef, undefined, {\n goalsSlice: input.config?.goals,\n historyExcerpt: resultText,\n uiLocale: resolveGoalUiLocale(state),\n });\n\n if (!decision.newState) return;\n const next = decision.newState;\n const completedChecklistItemIds = decision.completedChecklistItemIndexes\n ?.map((index) => goal.checklist[index]?.id)\n .filter((id): id is string => typeof id === 'string' && id.length > 0);\n\n const updatedGoal = this.goals.syncPostTurnState({\n goalId,\n sessionKey: input.sessionKey,\n source: 'workflow',\n status: next.status === 'done'\n ? 'done'\n : decision.verdict === 'blocked'\n ? 'blocked'\n : decision.verdict === 'needs_input'\n ? 'needs_input'\n : next.status === 'paused'\n ? 'paused'\n : 'active',\n turnsUsed: next.turnsUsed,\n maxTurns: next.maxTurns,\n reason: next.pausedReason ?? decision.reason,\n nextAction: decision.continuationPrompt ?? undefined,\n assistantPreview: resultText,\n verdict: decision.verdict === 'done'\n ? 'done'\n : decision.verdict === 'decompose'\n ? 'decompose'\n : decision.verdict === 'blocked'\n ? 'blocked'\n : decision.verdict === 'needs_input'\n ? 'needs_input'\n : 'continue',\n confidence: decision.confidence,\n missingEvidence: decision.missingEvidence,\n userQuestion: decision.userQuestion,\n completedChecklistItemIds,\n checklist: next.checklist?.map((item) => ({\n text: item.text,\n status: item.status,\n addedBy: item.addedBy,\n addedAt: item.addedAt,\n completedAt: item.completedAt,\n evidenceSummary: item.evidence,\n })),\n });\n\n this.recordWorkflowEvidence({\n goalId,\n runId: updatedGoal?.currentRunId,\n view: input.view,\n summary: decision.reason || `Workflow ${input.view.run.definitionId} succeeded`,\n });\n }\n\n private markBlockedFromFailedWorkflow(input: {\n goalId: string;\n sessionKey: string;\n view: WorkflowRunView;\n resultText: string;\n }): void {\n const current = this.goals.get(input.goalId);\n const reason = input.view.run.error?.message\n || `Workflow ${input.view.run.definitionId} finished with status ${input.view.run.status}`;\n const goal = this.goals.syncPostTurnState({\n goalId: input.goalId,\n sessionKey: input.sessionKey,\n source: 'workflow',\n status: 'blocked',\n turnsUsed: (current?.turnsUsed ?? 0) + 1,\n maxTurns: current?.maxTurns ?? 10,\n verdict: 'blocked',\n reason,\n nextAction: `Investigate workflow ${input.view.run.id} failure.`,\n assistantPreview: input.resultText,\n });\n this.recordWorkflowEvidence({\n goalId: input.goalId,\n runId: goal?.currentRunId,\n view: input.view,\n summary: reason,\n });\n }\n\n private recordWorkflowEvidence(input: {\n goalId: string;\n runId?: string;\n view: WorkflowRunView;\n summary: string;\n }): void {\n this.goals.addEvidence({\n goalId: input.goalId,\n runId: input.runId,\n kind: 'artifact',\n title: `Workflow ${input.view.run.definitionId} ${input.view.run.status}`,\n summary: input.summary,\n uri: `workflow:${input.view.run.id}`,\n data: {\n workflowRunId: input.view.run.id,\n status: input.view.run.status,\n metrics: input.view.run.metrics,\n },\n });\n for (const artifact of input.view.artifacts) {\n this.goals.addEvidence({\n goalId: input.goalId,\n runId: input.runId,\n kind: 'artifact',\n title: artifact.title || artifact.name,\n summary: `${artifact.mimeType} · ${artifact.sizeBytes} bytes`,\n uri: `workflow:${input.view.run.id}:artifact:${artifact.id}`,\n data: artifact,\n });\n }\n }\n}\n"],"mappings":";;;;;;;;;aAC8D;aAOZ;AAIlD,MAAM,MAAM,aAAa,oBAAoB;AAQ7C,IAAa,oBAAb,MAA+B;CAC7B,QAAyB,IAAI,aAAa;CAE1C,MAAM,0BAA0B,OAA8C;EAC5E,MAAM,SAAS,MAAM,KAAK,IAAI,UAAU,QAAQ,MAAM;AACtD,MAAI,CAAC,OAAQ;EAEb,MAAM,OAAO,KAAK,MAAM,IAAI,OAAO;AACnC,MAAI,CAAC,KAAM;EAEX,MAAM,aAAa,mBACjB,kBAAkB,MAAM,KAAK,EAC7B,MAAM,KAAK,IAAI,WAAW,aAC1B,EAAE,oBAAoB,MAAM,CAC7B;AAED,MAAI,MAAM,KAAK,IAAI,WAAW,aAAa;AACzC,QAAK,8BAA8B;IACjC;IACA,YAAY,MAAM;IAClB,MAAM,MAAM;IACZ;IACD,CAAC;AACF;;EAGF,MAAM,gBAAgB,MAAM,QAAQ,OAAO,eAAe,MAAM,IAC3D,KAAK,eAAe,MAAM,KACzB,MAAM,SAAS,wBAAwB,MAAM,OAAO,GAAG,KAAA;AAC7D,MAAI,CAAC,eAAe;AAClB,OAAI,KAAK;IAAE;IAAQ,eAAe,MAAM,KAAK,IAAI;IAAI,EAAE,8CAA8C;AACrG;;EAGF,MAAM,QAA6B;GACjC,MAAM,KAAK;GACX,QAAQ;GACR,WAAW,KAAK;GAChB,UAAU,KAAK;GACf,WAAW,KAAK;GAChB,YAAY,KAAK;GACjB,YAAY,KAAK;GACjB,eAAe,KAAK;GACpB,YAAY,KAAK,UAAU,SAAS,IAAI,OAAO,KAAA;GAC/C,UAAU,KAAK;GACf,WAAW,KAAK,UAAU,KAAK,UAAU;IACvC,MAAM,KAAK;IACX,QAAQ,KAAK;IACb,SAAS,KAAK;IACd,SAAS,KAAK;IACd,aAAa,KAAK;IAClB,UAAU,KAAK;IAChB,EAAE;GACJ;EAED,MAAM,WAAW,MAAM,4BAA4B,OAAO,YAAY,eAAe,KAAA,GAAW;GAC9F,YAAY,MAAM,QAAQ;GAC1B,gBAAgB;GAChB,UAAU,oBAAoB,MAAM;GACrC,CAAC;AAEF,MAAI,CAAC,SAAS,SAAU;EACxB,MAAM,OAAO,SAAS;EACtB,MAAM,4BAA4B,SAAS,+BACvC,KAAK,UAAU,KAAK,UAAU,QAAQ,GAAG,CAC1C,QAAQ,OAAqB,OAAO,OAAO,YAAY,GAAG,SAAS,EAAE;EAExE,MAAM,cAAc,KAAK,MAAM,kBAAkB;GAC/C;GACA,YAAY,MAAM;GAClB,QAAQ;GACR,QAAQ,KAAK,WAAW,SACpB,SACA,SAAS,YAAY,YACnB,YACA,SAAS,YAAY,gBACnB,gBACA,KAAK,WAAW,WACd,WACA;GACV,WAAW,KAAK;GAChB,UAAU,KAAK;GACf,QAAQ,KAAK,gBAAgB,SAAS;GACtC,YAAY,SAAS,sBAAsB,KAAA;GAC3C,kBAAkB;GAClB,SAAS,SAAS,YAAY,SAC1B,SACA,SAAS,YAAY,cACnB,cACA,SAAS,YAAY,YACnB,YACA,SAAS,YAAY,gBACnB,gBACA;GACV,YAAY,SAAS;GACrB,iBAAiB,SAAS;GAC1B,cAAc,SAAS;GACvB;GACA,WAAW,KAAK,WAAW,KAAK,UAAU;IACxC,MAAM,KAAK;IACX,QAAQ,KAAK;IACb,SAAS,KAAK;IACd,SAAS,KAAK;IACd,aAAa,KAAK;IAClB,iBAAiB,KAAK;IACvB,EAAE;GACJ,CAAC;AAEF,OAAK,uBAAuB;GAC1B;GACA,OAAO,aAAa;GACpB,MAAM,MAAM;GACZ,SAAS,SAAS,UAAU,YAAY,MAAM,KAAK,IAAI,aAAa;GACrE,CAAC;;CAGJ,8BAAsC,OAK7B;EACP,MAAM,UAAU,KAAK,MAAM,IAAI,MAAM,OAAO;EAC5C,MAAM,SAAS,MAAM,KAAK,IAAI,OAAO,WAChC,YAAY,MAAM,KAAK,IAAI,aAAa,wBAAwB,MAAM,KAAK,IAAI;EACpF,MAAM,OAAO,KAAK,MAAM,kBAAkB;GACxC,QAAQ,MAAM;GACd,YAAY,MAAM;GAClB,QAAQ;GACR,QAAQ;GACR,YAAY,SAAS,aAAa,KAAK;GACvC,UAAU,SAAS,YAAY;GAC/B,SAAS;GACT;GACA,YAAY,wBAAwB,MAAM,KAAK,IAAI,GAAG;GACtD,kBAAkB,MAAM;GACzB,CAAC;AACF,OAAK,uBAAuB;GAC1B,QAAQ,MAAM;GACd,OAAO,MAAM;GACb,MAAM,MAAM;GACZ,SAAS;GACV,CAAC;;CAGJ,uBAA+B,OAKtB;AACP,OAAK,MAAM,YAAY;GACrB,QAAQ,MAAM;GACd,OAAO,MAAM;GACb,MAAM;GACN,OAAO,YAAY,MAAM,KAAK,IAAI,aAAa,GAAG,MAAM,KAAK,IAAI;GACjE,SAAS,MAAM;GACf,KAAK,YAAY,MAAM,KAAK,IAAI;GAChC,MAAM;IACJ,eAAe,MAAM,KAAK,IAAI;IAC9B,QAAQ,MAAM,KAAK,IAAI;IACvB,SAAS,MAAM,KAAK,IAAI;IACzB;GACF,CAAC;AACF,OAAK,MAAM,YAAY,MAAM,KAAK,UAChC,MAAK,MAAM,YAAY;GACrB,QAAQ,MAAM;GACd,OAAO,MAAM;GACb,MAAM;GACN,OAAO,SAAS,SAAS,SAAS;GAClC,SAAS,GAAG,SAAS,SAAS,KAAK,SAAS,UAAU;GACtD,KAAK,YAAY,MAAM,KAAK,IAAI,GAAG,YAAY,SAAS;GACxD,MAAM;GACP,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"active-hours.js","names":[],"sources":["../../../src/heartbeat/active-hours.ts"],"sourcesContent":["export interface ActiveHoursWindow {\n start: string;\n end: string;\n /** IANA zone (e.g. Asia/Shanghai) or omit / `local` for host local time */\n timezone?: string;\n}\n\nfunction parseHm(s: string): { h: number; m: number } | null {\n const m = /^(\\d{1,2}):(\\d{2})$/.exec(s.trim());\n if (!m) return null;\n const h = Number(m[1]);\n const min = Number(m[2]);\n if (h < 0 || h > 23 || min < 0 || min > 59) return null;\n return { h, m: min };\n}\n\nfunction currentMinuteInZone(now: Date, timezone?: string): number {\n if (!timezone || timezone === 'local') {\n return now.getHours() * 60 + now.getMinutes();\n }\n const parts = new Intl.DateTimeFormat('en-GB', {\n timeZone: timezone,\n hour: '2-digit',\n minute: '2-digit',\n hour12: false,\n }).formatToParts(now);\n const hour = Number(parts.find((p) => p.type === 'hour')?.value ?? '0');\n const minute = Number(parts.find((p) => p.type === 'minute')?.value ?? '0');\n return hour * 60 + minute;\n}\n\n/**\n * Whether `now` falls inside [start, end) in the configured timezone (or local).\n * Supports windows that cross midnight when end <= start in clock terms.\n */\nexport function isWithinActiveHours(\n activeHours: ActiveHoursWindow,\n now = new Date(),\n): boolean {\n const startP = parseHm(activeHours.start);\n const endP = parseHm(activeHours.end);\n if (!startP || !endP) return true;\n\n const currentMin = currentMinuteInZone(now, activeHours.timezone);\n const startMin = startP.h * 60 + startP.m;\n const endMin = endP.h * 60 + endP.m;\n\n if (endMin > startMin) {\n return currentMin >= startMin && currentMin < endMin;\n }\n return currentMin >= startMin || currentMin < endMin;\n}\n"],"mappings":";AAOA,SAAS,QAAQ,GAA4C;CAC3D,MAAM,IAAI,sBAAsB,KAAK,EAAE,MAAM,CAAC;AAC9C,KAAI,CAAC,EAAG,QAAO;CACf,MAAM,IAAI,OAAO,EAAE,GAAG;CACtB,MAAM,MAAM,OAAO,EAAE,GAAG;AACxB,KAAI,IAAI,KAAK,IAAI,MAAM,MAAM,KAAK,MAAM,GAAI,QAAO;AACnD,QAAO;EAAE;EAAG,GAAG;EAAK;;AAGtB,SAAS,oBAAoB,KAAW,UAA2B;AACjE,KAAI,CAAC,YAAY,aAAa,QAC5B,QAAO,IAAI,UAAU,GAAG,KAAK,IAAI,YAAY;CAE/C,MAAM,QAAQ,IAAI,KAAK,eAAe,SAAS;EAC7C,UAAU;EACV,MAAM;EACN,QAAQ;EACR,QAAQ;EACT,CAAC,CAAC,cAAc,IAAI;CACrB,MAAM,OAAO,OAAO,MAAM,MAAM,MAAM,EAAE,SAAS,OAAO,EAAE,SAAS,IAAI;CACvE,MAAM,SAAS,OAAO,MAAM,MAAM,MAAM,EAAE,SAAS,SAAS,EAAE,SAAS,IAAI;AAC3E,QAAO,OAAO,KAAK;;;;;;AAOrB,SAAgB,oBACd,aACA,sBAAM,IAAI,MAAM,EACP;CACT,MAAM,SAAS,QAAQ,YAAY,MAAM;CACzC,MAAM,OAAO,QAAQ,YAAY,IAAI;AACrC,KAAI,CAAC,UAAU,CAAC,KAAM,QAAO;CAE7B,MAAM,aAAa,oBAAoB,KAAK,YAAY,SAAS;CACjE,MAAM,WAAW,OAAO,IAAI,KAAK,OAAO;CACxC,MAAM,SAAS,KAAK,IAAI,KAAK,KAAK;AAElC,KAAI,SAAS,SACX,QAAO,cAAc,YAAY,aAAa;AAEhD,QAAO,cAAc,YAAY,aAAa"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"content-check.js","names":[],"sources":["../../../src/heartbeat/content-check.ts"],"sourcesContent":["/**\n * True when HEARTBEAT.md has no actionable content (only headings, blanks, empty list items).\n */\nexport function isHeartbeatContentEmpty(content: string): boolean {\n const lines = content.split('\\n');\n for (const line of lines) {\n const trimmed = line.trim();\n if (!trimmed) continue;\n if (/^#+(\\s|$)/.test(trimmed)) continue;\n if (/^[-*+]\\s*(\\[[\\sXx]?\\]\\s*)?$/.test(trimmed)) continue;\n return false;\n }\n return true;\n}\n"],"mappings":";;;;AAGA,SAAgB,wBAAwB,SAA0B;CAChE,MAAM,QAAQ,QAAQ,MAAM,KAAK;AACjC,MAAK,MAAM,QAAQ,OAAO;EACxB,MAAM,UAAU,KAAK,MAAM;AAC3B,MAAI,CAAC,QAAS;AACd,MAAI,YAAY,KAAK,QAAQ,CAAE;AAC/B,MAAI,8BAA8B,KAAK,QAAQ,CAAE;AACjD,SAAO;;AAET,QAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"event-prompt.js","names":[],"sources":["../../../src/heartbeat/event-prompt.ts"],"sourcesContent":["/**\n * Append cron-style trigger lines to the heartbeat user prompt.\n */\nexport function appendCronEventLines(basePrompt: string, reasons: string[]): string {\n const cronReasons = reasons.filter((r) => r.startsWith('cron:'));\n if (cronReasons.length === 0) return basePrompt;\n return `${basePrompt}\\n\\nTriggered cron events:\\n${cronReasons.join('\\n')}`;\n}\n"],"mappings":";;;;AAGA,SAAgB,qBAAqB,YAAoB,SAA2B;CAClF,MAAM,cAAc,QAAQ,QAAQ,MAAM,EAAE,WAAW,QAAQ,CAAC;AAChE,KAAI,YAAY,WAAW,EAAG,QAAO;AACrC,QAAO,GAAG,WAAW,8BAA8B,YAAY,KAAK,KAAK"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"tokens.js","names":[],"sources":["../../../src/heartbeat/tokens.ts"],"sourcesContent":["export const HEARTBEAT_OK = 'HEARTBEAT_OK';\nexport const NO_REPLY = 'NO_REPLY';\nexport const DEFAULT_ACK_MAX_CHARS = 300;\n\n/**\n * Strip HEARTBEAT_OK token from model text.\n * Supports plain text, Markdown bold, inline code, trailing punctuation.\n */\nexport function stripHeartbeatToken(text: string): {\n stripped: string;\n hadToken: boolean;\n} {\n const hadToken = text.includes(HEARTBEAT_OK);\n const stripped = text\n .replace(/<[^>]*>/g, ' ')\n .replace(/\\*\\*HEARTBEAT_OK\\*\\*/g, '')\n .replace(/`HEARTBEAT_OK`/g, '')\n .replace(/HEARTBEAT_OK\\.?/g, '')\n .trim();\n return { stripped, hadToken };\n}\n\n/**\n * Whether the reply should not be sent to the user: HEARTBEAT_OK present and little else.\n */\nexport function shouldSilence(\n text: string,\n ackMaxChars: number = DEFAULT_ACK_MAX_CHARS,\n): boolean {\n const { stripped, hadToken } = stripHeartbeatToken(text);\n if (!hadToken) return false;\n return stripped.length <= ackMaxChars;\n}\n"],"mappings":";AAAA,MAAa,eAAe;AAC5B,MAAa,WAAW;AACxB,MAAa,wBAAwB;;;;;AAMrC,SAAgB,oBAAoB,MAGlC;CACA,MAAM,WAAW,KAAK,SAAS,aAAa;AAO5C,QAAO;EAAE,UANQ,KACd,QAAQ,YAAY,IAAI,CACxB,QAAQ,yBAAyB,GAAG,CACpC,QAAQ,mBAAmB,GAAG,CAC9B,QAAQ,oBAAoB,GAAG,CAC/B,MACc;EAAE;EAAU;;;;;AAM/B,SAAgB,cACd,MACA,cAAA,KACS;CACT,MAAM,EAAE,UAAU,aAAa,oBAAoB,KAAK;AACxD,KAAI,CAAC,SAAU,QAAO;AACtB,QAAO,SAAS,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"wake.js","names":[],"sources":["../../../src/heartbeat/wake.ts"],"sourcesContent":["export interface WakeRequest {\n reason?: string;\n agentId?: string;\n sessionKey?: string;\n coalesceMs?: number;\n}\n\nconst DEFAULT_COALESCE_MS = 250;\nconst RETRY_MS = 1_000;\n\n/**\n * Coalesces wake requests within coalesceMs and serializes handler execution.\n */\nexport function createHeartbeatWake(handler: (reasons: string[]) => Promise<void>) {\n let running = false;\n let timer: NodeJS.Timeout | undefined;\n let pendingReasons: string[] = [];\n\n function schedule(delayMs: number) {\n if (timer) clearTimeout(timer);\n timer = setTimeout(async () => {\n timer = undefined;\n if (running) {\n schedule(RETRY_MS);\n return;\n }\n running = true;\n const reasons = [...pendingReasons];\n pendingReasons = [];\n try {\n await handler(reasons);\n } finally {\n running = false;\n if (pendingReasons.length > 0) {\n schedule(DEFAULT_COALESCE_MS);\n }\n }\n }, delayMs);\n timer.unref?.();\n }\n\n return {\n request(opts?: WakeRequest) {\n pendingReasons.push(opts?.reason ?? 'interval');\n schedule(opts?.coalesceMs ?? DEFAULT_COALESCE_MS);\n },\n stop() {\n if (timer) {\n clearTimeout(timer);\n timer = undefined;\n }\n pendingReasons = [];\n },\n };\n}\n"],"mappings":";AAOA,MAAM,sBAAsB;AAC5B,MAAM,WAAW;;;;AAKjB,SAAgB,oBAAoB,SAA+C;CACjF,IAAI,UAAU;CACd,IAAI;CACJ,IAAI,iBAA2B,EAAE;CAEjC,SAAS,SAAS,SAAiB;AACjC,MAAI,MAAO,cAAa,MAAM;AAC9B,UAAQ,WAAW,YAAY;AAC7B,WAAQ,KAAA;AACR,OAAI,SAAS;AACX,aAAS,SAAS;AAClB;;AAEF,aAAU;GACV,MAAM,UAAU,CAAC,GAAG,eAAe;AACnC,oBAAiB,EAAE;AACnB,OAAI;AACF,UAAM,QAAQ,QAAQ;aACd;AACR,cAAU;AACV,QAAI,eAAe,SAAS,EAC1B,UAAS,oBAAoB;;KAGhC,QAAQ;AACX,QAAM,SAAS;;AAGjB,QAAO;EACL,QAAQ,MAAoB;AAC1B,kBAAe,KAAK,MAAM,UAAU,WAAW;AAC/C,YAAS,MAAM,cAAc,oBAAoB;;EAEnD,OAAO;AACL,OAAI,OAAO;AACT,iBAAa,MAAM;AACnB,YAAQ,KAAA;;AAEV,oBAAiB,EAAE;;EAEtB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"format.js","names":[],"sources":["../../../src/i18n/format.ts"],"sourcesContent":["/** Replace `{{key}}` placeholders (server i18n; keep keys ASCII). */\nexport function formatI18n(template: string, vars: Record<string, string | number>): string {\n let out = template;\n for (const [k, v] of Object.entries(vars)) {\n out = out.split(`{{${k}}}`).join(String(v));\n }\n return out;\n}\n"],"mappings":";;AACA,SAAgB,WAAW,UAAkB,MAA+C;CAC1F,IAAI,MAAM;AACV,MAAK,MAAM,CAAC,GAAG,MAAM,OAAO,QAAQ,KAAK,CACvC,OAAM,IAAI,MAAM,KAAK,EAAE,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;AAE7C,QAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"goals-bundle.js","names":["goalsEn.judgeReason","goalsEn","goalsZh"],"sources":["../../../src/i18n/goals-bundle.ts"],"sourcesContent":["import goalsEn from './locales/goals.en.json';\nimport goalsZh from './locales/goals.zh.json';\n\nimport { formatI18n } from './format.js';\nimport type { ServerLocale } from './locale.js';\nimport { serverLocaleOrFallback } from './locale.js';\n\nexport type GoalsMessages = typeof goalsEn;\n\nexport type JudgeReasonId = keyof GoalsMessages['judgeReason'];\n\n/** Canonical English strings for judge parse / API contract (from `goals.en.json`). */\nexport const JUDGE_REASON_EN = goalsEn.judgeReason;\n\nconst byLocale: Record<ServerLocale, GoalsMessages> = {\n en: goalsEn,\n zh: goalsZh,\n};\n\nexport function goalsMessages(locale: ServerLocale): GoalsMessages {\n return byLocale[serverLocaleOrFallback(locale)];\n}\n\nexport function goalsJudgeReason(id: JudgeReasonId, locale: ServerLocale): string {\n const m = goalsMessages(locale).judgeReason[id] ?? goalsEn.judgeReason[id];\n return m ?? String(id);\n}\n\nexport function goalsJudgeResponseLanguageNote(locale: ServerLocale): string {\n return goalsMessages(locale).judge.responseLanguageNote;\n}\n\nexport function goalsContinuationPlainTemplate(locale: ServerLocale): string {\n return goalsMessages(locale).continuation.plain;\n}\n\nexport function goalsContinuationChecklistTemplate(locale: ServerLocale): string {\n return goalsMessages(locale).continuation.checklist;\n}\n\nexport function goalsChecklistProgressSuffix(done: number, total: number, locale: ServerLocale): string {\n if (total <= 0) return '';\n return formatI18n(goalsMessages(locale).checklistProgressSuffix, { done, total });\n}\n\nexport function goalsEvaluateCopy(locale: ServerLocale) {\n const ev = goalsMessages(locale).evaluate;\n return {\n pauseBudget: (turnsUsed: number, maxTurns: number) =>\n formatI18n(ev.pauseBudget, { turnsUsed, maxTurns }),\n pauseParse: (failures: number) => formatI18n(ev.pauseParse, { failures }),\n goalAchieved: (reason: string) => formatI18n(ev.goalAchieved, { reason }),\n continuingWithProgress: (\n turnsUsed: number,\n maxTurns: number,\n progressSuffix: string,\n reason: string,\n ) => formatI18n(ev.continuingWithProgress, { turnsUsed, maxTurns, progressSuffix, reason }),\n continuing: (turnsUsed: number, maxTurns: number, reason: string) =>\n formatI18n(ev.continuing, { turnsUsed, maxTurns, reason }),\n checklistReady: (n: number) => formatI18n(ev.checklistReady, { n }),\n decomposedReason: (n: number) => formatI18n(ev.decomposedReason, { n }),\n decomposeFallbackReason: (detail: string) => formatI18n(ev.decomposeFallbackReason, { detail }),\n noChecklistFallback: () => ev.noChecklistFallback,\n };\n}\n"],"mappings":";;;;;;AAYA,MAAa,kBAAkBA;AAE/B,MAAM,WAAgD;CACpD,IAAIC;CACJ,IAAIC;CACL;AAED,SAAgB,cAAc,QAAqC;AACjE,QAAO,SAAS,uBAAuB,OAAO;;AAGhD,SAAgB,iBAAiB,IAAmB,QAA8B;AAEhF,QADU,cAAc,OAAO,CAAC,YAAY,OAAOF,YAAoB,OAC3D,OAAO,GAAG;;AAGxB,SAAgB,+BAA+B,QAA8B;AAC3E,QAAO,cAAc,OAAO,CAAC,MAAM;;AAGrC,SAAgB,+BAA+B,QAA8B;AAC3E,QAAO,cAAc,OAAO,CAAC,aAAa;;AAG5C,SAAgB,mCAAmC,QAA8B;AAC/E,QAAO,cAAc,OAAO,CAAC,aAAa;;AAG5C,SAAgB,6BAA6B,MAAc,OAAe,QAA8B;AACtG,KAAI,SAAS,EAAG,QAAO;AACvB,QAAO,WAAW,cAAc,OAAO,CAAC,yBAAyB;EAAE;EAAM;EAAO,CAAC;;AAGnF,SAAgB,kBAAkB,QAAsB;CACtD,MAAM,KAAK,cAAc,OAAO,CAAC;AACjC,QAAO;EACL,cAAc,WAAmB,aAC/B,WAAW,GAAG,aAAa;GAAE;GAAW;GAAU,CAAC;EACrD,aAAa,aAAqB,WAAW,GAAG,YAAY,EAAE,UAAU,CAAC;EACzE,eAAe,WAAmB,WAAW,GAAG,cAAc,EAAE,QAAQ,CAAC;EACzE,yBACE,WACA,UACA,gBACA,WACG,WAAW,GAAG,wBAAwB;GAAE;GAAW;GAAU;GAAgB;GAAQ,CAAC;EAC3F,aAAa,WAAmB,UAAkB,WAChD,WAAW,GAAG,YAAY;GAAE;GAAW;GAAU;GAAQ,CAAC;EAC5D,iBAAiB,MAAc,WAAW,GAAG,gBAAgB,EAAE,GAAG,CAAC;EACnE,mBAAmB,MAAc,WAAW,GAAG,kBAAkB,EAAE,GAAG,CAAC;EACvE,0BAA0B,WAAmB,WAAW,GAAG,yBAAyB,EAAE,QAAQ,CAAC;EAC/F,2BAA2B,GAAG;EAC/B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"locale.js","names":[],"sources":["../../../src/i18n/locale.ts"],"sourcesContent":["/** Locales supported by server-side message bundles (extend when adding JSON). */\nexport const SERVER_LOCALES = ['en', 'zh'] as const;\n\nexport type ServerLocale = (typeof SERVER_LOCALES)[number];\n\nexport const DEFAULT_SERVER_LOCALE: ServerLocale = 'en';\n\nconst SERVER_LOCALE_SET = new Set<string>(SERVER_LOCALES);\n\nexport function isServerLocale(v: string): v is ServerLocale {\n return SERVER_LOCALE_SET.has(v);\n}\n\n/** Map `zh-CN`, `EN`, etc. to a supported locale, or `undefined`. */\nexport function normalizeServerLocale(v: unknown): ServerLocale | undefined {\n if (v === 'zh' || v === 'en') return v;\n if (typeof v !== 'string') return undefined;\n const t = v.trim().toLowerCase();\n if (!t) return undefined;\n for (const loc of SERVER_LOCALES) {\n if (t === loc || t.startsWith(`${loc}-`)) return loc;\n }\n return undefined;\n}\n\n/** Unknown or missing → `DEFAULT_SERVER_LOCALE`. */\nexport function serverLocaleOrFallback(locale: ServerLocale | string | undefined | null): ServerLocale {\n if (locale && isServerLocale(String(locale))) return locale as ServerLocale;\n return normalizeServerLocale(locale) ?? DEFAULT_SERVER_LOCALE;\n}\n"],"mappings":";;AACA,MAAa,iBAAiB,CAAC,MAAM,KAAK;AAI1C,MAAa,wBAAsC;AAEnD,MAAM,oBAAoB,IAAI,IAAY,eAAe;AAEzD,SAAgB,eAAe,GAA8B;AAC3D,QAAO,kBAAkB,IAAI,EAAE;;;AAIjC,SAAgB,sBAAsB,GAAsC;AAC1E,KAAI,MAAM,QAAQ,MAAM,KAAM,QAAO;AACrC,KAAI,OAAO,MAAM,SAAU,QAAO,KAAA;CAClC,MAAM,IAAI,EAAE,MAAM,CAAC,aAAa;AAChC,KAAI,CAAC,EAAG,QAAO,KAAA;AACf,MAAK,MAAM,OAAO,eAChB,KAAI,MAAM,OAAO,EAAE,WAAW,GAAG,IAAI,GAAG,CAAE,QAAO;;;AAMrD,SAAgB,uBAAuB,QAAgE;AACrG,KAAI,UAAU,eAAe,OAAO,OAAO,CAAC,CAAE,QAAO;AACrD,QAAO,sBAAsB,OAAO,IAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"goals.en.js","names":[],"sources":["../../../../src/i18n/locales/goals.en.json"],"sourcesContent":[""],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"goals.zh.js","names":[],"sources":["../../../../src/i18n/locales/goals.zh.json"],"sourcesContent":[""],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"share-tool.en.js","names":[],"sources":["../../../../src/i18n/locales/share-tool.en.json"],"sourcesContent":[""],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"share-tool.zh.js","names":[],"sources":["../../../../src/i18n/locales/share-tool.zh.json"],"sourcesContent":[""],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"share-tool-bundle.js","names":["shareToolEn","shareToolZh"],"sources":["../../../src/i18n/share-tool-bundle.ts"],"sourcesContent":["import shareToolEn from './locales/share-tool.en.json';\nimport shareToolZh from './locales/share-tool.zh.json';\n\nimport { formatI18n } from './format.js';\nimport {\n DEFAULT_SERVER_LOCALE,\n normalizeServerLocale,\n serverLocaleOrFallback,\n type ServerLocale,\n} from './locale.js';\n\nexport type ShareToolMessages = typeof shareToolEn;\n\nconst byLocale: Record<ServerLocale, ShareToolMessages> = {\n en: shareToolEn,\n zh: shareToolZh,\n};\n\nexport function shareToolMessages(locale: ServerLocale): ShareToolMessages {\n return byLocale[serverLocaleOrFallback(locale)];\n}\n\n/**\n * Best-effort locale resolution for tools that don't yet receive an explicit\n * locale signal. Order: explicit arg → env (LANG / LC_ALL / LANGUAGE) → default.\n */\nexport function resolveToolLocale(explicit?: string | null): ServerLocale {\n if (explicit) {\n const n = normalizeServerLocale(explicit);\n if (n) return n;\n }\n for (const key of ['LC_ALL', 'LANG', 'LANGUAGE'] as const) {\n const v = process.env[key];\n if (!v) continue;\n // Unix env vars use `zh_CN.UTF-8`; normalizer expects `zh-CN`.\n const stripped = v.split('.')[0].replace(/_/g, '-');\n const n = normalizeServerLocale(stripped);\n if (n) return n;\n }\n return DEFAULT_SERVER_LOCALE;\n}\n\nexport function shareToolSuccessLines(\n locale: ServerLocale,\n vars: {\n kind: string;\n shareUrl: string;\n title: string;\n expiresAt: string;\n thumbnailUrl: string;\n reachability: string;\n reachabilityHint: string;\n isPublic: boolean;\n },\n): string[] {\n const m = shareToolMessages(locale).success;\n return [\n formatI18n(m.headline, { kind: vars.kind, shareUrl: vars.shareUrl }),\n vars.isPublic\n ? ''\n : formatI18n(m.reachabilityWarning, {\n reachability: vars.reachability,\n hint: vars.reachabilityHint,\n }),\n formatI18n(m.title, { title: vars.title }),\n formatI18n(m.expiresAt, { expiresAt: vars.expiresAt }),\n formatI18n(m.thumbnail, { thumbnailUrl: vars.thumbnailUrl }),\n ];\n}\n\nexport function shareToolErrorLine(locale: ServerLocale, message: string): string {\n return formatI18n(shareToolMessages(locale).error.prefix, { message });\n}\n"],"mappings":";;;;;AAaA,MAAM,WAAoD;CACxD,IAAIA;CACJ,IAAIC;CACL;AAED,SAAgB,kBAAkB,QAAyC;AACzE,QAAO,SAAS,uBAAuB,OAAO;;;;;;AAOhD,SAAgB,kBAAkB,UAAwC;AACxE,KAAI,UAAU;EACZ,MAAM,IAAI,sBAAsB,SAAS;AACzC,MAAI,EAAG,QAAO;;AAEhB,MAAK,MAAM,OAAO;EAAC;EAAU;EAAQ;EAAW,EAAW;EACzD,MAAM,IAAI,QAAQ,IAAI;AACtB,MAAI,CAAC,EAAG;EAGR,MAAM,IAAI,sBADO,EAAE,MAAM,IAAI,CAAC,GAAG,QAAQ,MAAM,IACP,CAAC;AACzC,MAAI,EAAG,QAAO;;AAEhB,QAAA;;AAGF,SAAgB,sBACd,QACA,MAUU;CACV,MAAM,IAAI,kBAAkB,OAAO,CAAC;AACpC,QAAO;EACL,WAAW,EAAE,UAAU;GAAE,MAAM,KAAK;GAAM,UAAU,KAAK;GAAU,CAAC;EACpE,KAAK,WACD,KACA,WAAW,EAAE,qBAAqB;GAChC,cAAc,KAAK;GACnB,MAAM,KAAK;GACZ,CAAC;EACN,WAAW,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC;EAC1C,WAAW,EAAE,WAAW,EAAE,WAAW,KAAK,WAAW,CAAC;EACtD,WAAW,EAAE,WAAW,EAAE,cAAc,KAAK,cAAc,CAAC;EAC7D;;AAGH,SAAgB,mBAAmB,QAAsB,SAAyB;AAChF,QAAO,WAAW,kBAAkB,OAAO,CAAC,MAAM,QAAQ,EAAE,SAAS,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["pkg.version"],"sources":["../../src/index.ts"],"sourcesContent":["/**\n * Optional package root entry; most integrations import `@xopcai/xopc/<subpath>`.\n */\nimport pkg from '../package.json' with { type: 'json' };\n\nexport const version: string = pkg.version;\n"],"mappings":";;;;;AAKA,MAAa,UAAkBA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"brew.js","names":[],"sources":["../../../src/infra/brew.ts"],"sourcesContent":["import os from 'node:os';\nimport path from 'node:path';\n\nfunction normalizePathValue(value: unknown): string | undefined {\n if (typeof value !== 'string') return undefined;\n const trimmed = value.trim();\n return trimmed || undefined;\n}\n\nexport function resolveBrewPathDirs(opts?: { homeDir?: string; env?: NodeJS.ProcessEnv }): string[] {\n const homeDir = opts?.homeDir ?? os.homedir();\n const env = opts?.env ?? process.env;\n const dirs: string[] = [];\n const prefix = normalizePathValue(env.HOMEBREW_PREFIX);\n if (prefix) {\n dirs.push(path.join(prefix, 'bin'), path.join(prefix, 'sbin'));\n }\n dirs.push(\n path.join(homeDir, '.linuxbrew', 'bin'),\n path.join(homeDir, '.linuxbrew', 'sbin'),\n '/home/linuxbrew/.linuxbrew/bin',\n '/home/linuxbrew/.linuxbrew/sbin',\n '/opt/homebrew/bin',\n '/usr/local/bin',\n );\n return dirs;\n}\n"],"mappings":";;;AAGA,SAAS,mBAAmB,OAAoC;AAC9D,KAAI,OAAO,UAAU,SAAU,QAAO,KAAA;AAEtC,QADgB,MAAM,MACR,IAAI,KAAA;;AAGpB,SAAgB,oBAAoB,MAAgE;CAClG,MAAM,UAAU,MAAM,WAAW,GAAG,SAAS;CAC7C,MAAM,MAAM,MAAM,OAAO,QAAQ;CACjC,MAAM,OAAiB,EAAE;CACzB,MAAM,SAAS,mBAAmB,IAAI,gBAAgB;AACtD,KAAI,OACF,MAAK,KAAK,KAAK,KAAK,QAAQ,MAAM,EAAE,KAAK,KAAK,QAAQ,OAAO,CAAC;AAEhE,MAAK,KACH,KAAK,KAAK,SAAS,cAAc,MAAM,EACvC,KAAK,KAAK,SAAS,cAAc,OAAO,EACxC,kCACA,mCACA,qBACA,iBACD;AACD,QAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"queue.js","names":[],"sources":["../../../../src/infra/bus/queue.ts"],"sourcesContent":["import { EventEmitter } from 'events';\nimport { InboundMessage, OutboundMessage } from '../../channels/transport-types.js';\n\ninterface MessageBusEvents {\n inbound: (msg: InboundMessage) => void;\n outbound: (msg: OutboundMessage) => void;\n}\n\n/**\n * Error thrown when MessageBus is shut down\n */\nclass MessageBusShutdownError extends Error {\n constructor() {\n super('MessageBus has been shut down');\n this.name = 'MessageBusShutdownError';\n }\n}\n\nclass MessageBus extends EventEmitter {\n private inboundQueue: InboundMessage[] = [];\n private outboundQueue: OutboundMessage[] = [];\n private inboundConsumers: ((msg: InboundMessage | Error) => void)[] = [];\n private outboundConsumers: ((msg: OutboundMessage | Error) => void)[] = [];\n private isShutdown = false;\n\n async publishInbound(msg: InboundMessage): Promise<void> {\n if (this.isShutdown) return; // Ignore if shut down\n\n // Emit event for listeners\n this.emit('inbound', msg);\n\n // Handle waiting consumers\n if (this.inboundConsumers.length > 0) {\n const consumer = this.inboundConsumers.shift()!;\n consumer(msg);\n } else {\n this.inboundQueue.push(msg);\n }\n }\n\n async publishOutbound(msg: OutboundMessage): Promise<void> {\n if (this.isShutdown) return; // Ignore if shut down\n\n // Emit event for listeners\n this.emit('outbound', msg);\n\n // Handle waiting consumers\n if (this.outboundConsumers.length > 0) {\n const consumer = this.outboundConsumers.shift()!;\n consumer(msg);\n } else {\n this.outboundQueue.push(msg);\n }\n }\n\n async consumeInbound(): Promise<InboundMessage> {\n if (this.isShutdown) {\n throw new MessageBusShutdownError();\n }\n\n return new Promise((resolve, reject) => {\n if (this.inboundQueue.length > 0) {\n return resolve(this.inboundQueue.shift()!);\n }\n\n // Store both resolve and reject for shutdown handling\n const consumer = (msg: InboundMessage | Error) => {\n if (msg instanceof Error) {\n reject(msg);\n } else {\n resolve(msg);\n }\n };\n\n this.inboundConsumers.push(consumer);\n });\n }\n\n async consumeOutbound(): Promise<OutboundMessage> {\n if (this.isShutdown) {\n throw new MessageBusShutdownError();\n }\n\n return new Promise((resolve, reject) => {\n if (this.outboundQueue.length > 0) {\n return resolve(this.outboundQueue.shift()!);\n }\n\n // Store both resolve and reject for shutdown handling\n const consumer = (msg: OutboundMessage | Error) => {\n if (msg instanceof Error) {\n reject(msg);\n } else {\n resolve(msg);\n }\n };\n\n this.outboundConsumers.push(consumer);\n });\n }\n\n /**\n * Shutdown the message bus and cancel all pending consumers\n */\n shutdown(): void {\n if (this.isShutdown) return;\n\n this.isShutdown = true;\n\n // Reject all pending consumers\n const error = new MessageBusShutdownError();\n\n for (const consumer of this.inboundConsumers) {\n consumer(error);\n }\n for (const consumer of this.outboundConsumers) {\n consumer(error);\n }\n\n this.clear();\n }\n\n /**\n * Check if the bus has been shut down\n */\n getShutdownState(): boolean {\n return this.isShutdown;\n }\n\n /**\n * Reset the bus state (for testing only)\n */\n reset(): void {\n this.isShutdown = false;\n this.clear();\n }\n\n // For testing: drain all queues\n clear(): void {\n this.inboundQueue = [];\n this.outboundQueue = [];\n this.inboundConsumers = [];\n this.outboundConsumers = [];\n }\n}\n\nexport const bus = new MessageBus();\nexport { MessageBus, MessageBusShutdownError };\nexport type { MessageBusEvents };\n"],"mappings":";;;;;AAWA,IAAM,0BAAN,cAAsC,MAAM;CAC1C,cAAc;AACZ,QAAM,gCAAgC;AACtC,OAAK,OAAO;;;AAIhB,IAAM,aAAN,cAAyB,aAAa;CACpC,eAAyC,EAAE;CAC3C,gBAA2C,EAAE;CAC7C,mBAAsE,EAAE;CACxE,oBAAwE,EAAE;CAC1E,aAAqB;CAErB,MAAM,eAAe,KAAoC;AACvD,MAAI,KAAK,WAAY;AAGrB,OAAK,KAAK,WAAW,IAAI;AAGzB,MAAI,KAAK,iBAAiB,SAAS,EAChB,MAAK,iBAAiB,OAC/B,CAAC,IAAI;MAEb,MAAK,aAAa,KAAK,IAAI;;CAI/B,MAAM,gBAAgB,KAAqC;AACzD,MAAI,KAAK,WAAY;AAGrB,OAAK,KAAK,YAAY,IAAI;AAG1B,MAAI,KAAK,kBAAkB,SAAS,EACjB,MAAK,kBAAkB,OAChC,CAAC,IAAI;MAEb,MAAK,cAAc,KAAK,IAAI;;CAIhC,MAAM,iBAA0C;AAC9C,MAAI,KAAK,WACP,OAAM,IAAI,yBAAyB;AAGrC,SAAO,IAAI,SAAS,SAAS,WAAW;AACtC,OAAI,KAAK,aAAa,SAAS,EAC7B,QAAO,QAAQ,KAAK,aAAa,OAAO,CAAE;GAI5C,MAAM,YAAY,QAAgC;AAChD,QAAI,eAAe,MACjB,QAAO,IAAI;QAEX,SAAQ,IAAI;;AAIhB,QAAK,iBAAiB,KAAK,SAAS;IACpC;;CAGJ,MAAM,kBAA4C;AAChD,MAAI,KAAK,WACP,OAAM,IAAI,yBAAyB;AAGrC,SAAO,IAAI,SAAS,SAAS,WAAW;AACtC,OAAI,KAAK,cAAc,SAAS,EAC9B,QAAO,QAAQ,KAAK,cAAc,OAAO,CAAE;GAI7C,MAAM,YAAY,QAAiC;AACjD,QAAI,eAAe,MACjB,QAAO,IAAI;QAEX,SAAQ,IAAI;;AAIhB,QAAK,kBAAkB,KAAK,SAAS;IACrC;;;;;CAMJ,WAAiB;AACf,MAAI,KAAK,WAAY;AAErB,OAAK,aAAa;EAGlB,MAAM,QAAQ,IAAI,yBAAyB;AAE3C,OAAK,MAAM,YAAY,KAAK,iBAC1B,UAAS,MAAM;AAEjB,OAAK,MAAM,YAAY,KAAK,kBAC1B,UAAS,MAAM;AAGjB,OAAK,OAAO;;;;;CAMd,mBAA4B;AAC1B,SAAO,KAAK;;;;;CAMd,QAAc;AACZ,OAAK,aAAa;AAClB,OAAK,OAAO;;CAId,QAAc;AACZ,OAAK,eAAe,EAAE;AACtB,OAAK,gBAAgB,EAAE;AACvB,OAAK,mBAAmB,EAAE;AAC1B,OAAK,oBAAoB,EAAE;;;AAI/B,MAAa,MAAM,IAAI,YAAY"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"debounce.js","names":[],"sources":["../../../src/infra/debounce.ts"],"sourcesContent":["/**\n * Inbound Debounce - Message debouncing for inbound traffic\n */\n\nexport interface InboundDebounceOptions<T> {\n debounceMs: number;\n buildKey: (item: T) => string | null | undefined;\n shouldDebounce?: (item: T) => boolean;\n resolveDebounceMs?: (item: T) => number | undefined;\n onFlush: (items: T[]) => Promise<void>;\n onError?: (err: unknown, items: T[]) => void;\n}\n\ninterface DebounceBuffer<T> {\n items: T[];\n timeout: ReturnType<typeof setTimeout> | null;\n debounceMs: number;\n}\n\nexport function createInboundDebouncer<T>(options: InboundDebounceOptions<T>) {\n const {\n debounceMs: defaultDebounceMs,\n buildKey,\n shouldDebounce,\n resolveDebounceMs,\n onFlush,\n onError,\n } = options;\n \n const buffers = new Map<string, DebounceBuffer<T>>();\n \n function resolveMs(item: T): number {\n const resolved = resolveDebounceMs?.(item);\n if (typeof resolved === 'number' && Number.isFinite(resolved)) {\n return Math.max(0, Math.trunc(resolved));\n }\n return Math.max(0, Math.trunc(defaultDebounceMs));\n }\n \n async function flushBuffer(key: string, buffer: DebounceBuffer<T>): Promise<void> {\n buffers.delete(key);\n if (buffer.timeout) {\n clearTimeout(buffer.timeout);\n buffer.timeout = null;\n }\n if (buffer.items.length === 0) return;\n try {\n await onFlush(buffer.items);\n } catch (err) {\n onError?.(err, buffer.items);\n }\n }\n \n async function flushKey(key: string): Promise<void> {\n const buffer = buffers.get(key);\n if (!buffer) return;\n await flushBuffer(key, buffer);\n }\n \n function scheduleFlush(key: string, buffer: DebounceBuffer<T>): void {\n if (buffer.timeout) clearTimeout(buffer.timeout);\n buffer.timeout = setTimeout(() => { void flushBuffer(key, buffer); }, buffer.debounceMs);\n buffer.timeout.unref?.();\n }\n \n async function enqueue(item: T): Promise<void> {\n const key = buildKey(item);\n const debounceMs = resolveMs(item);\n const canDebounce = debounceMs > 0 && (shouldDebounce?.(item) ?? true);\n \n if (!canDebounce) {\n if (key && buffers.has(key)) await flushKey(key);\n try { await onFlush([item]); } catch (err) { onError?.(err, [item]); }\n return;\n }\n \n if (!key) {\n try { await onFlush([item]); } catch (err) { onError?.(err, [item]); }\n return;\n }\n \n const existing = buffers.get(key);\n if (existing) {\n existing.items.push(item);\n existing.debounceMs = debounceMs;\n scheduleFlush(key, existing);\n } else {\n const buffer: DebounceBuffer<T> = { items: [item], timeout: null, debounceMs };\n buffers.set(key, buffer);\n scheduleFlush(key, buffer);\n }\n }\n \n async function flushAll(): Promise<void> {\n const keys = Array.from(buffers.keys());\n await Promise.all(keys.map(key => flushKey(key)));\n }\n \n function getBufferCount(): number {\n return buffers.size;\n }\n \n return { enqueue, flushKey, flushAll, getBufferCount };\n}\n\nexport function hasControlCommand(text: string): boolean {\n return text.trim().startsWith('/');\n}\n"],"mappings":";AAmBA,SAAgB,uBAA0B,SAAoC;CAC5E,MAAM,EACJ,YAAY,mBACZ,UACA,gBACA,mBACA,SACA,YACE;CAEJ,MAAM,0BAAU,IAAI,KAAgC;CAEpD,SAAS,UAAU,MAAiB;EAClC,MAAM,WAAW,oBAAoB,KAAK;AAC1C,MAAI,OAAO,aAAa,YAAY,OAAO,SAAS,SAAS,CAC3D,QAAO,KAAK,IAAI,GAAG,KAAK,MAAM,SAAS,CAAC;AAE1C,SAAO,KAAK,IAAI,GAAG,KAAK,MAAM,kBAAkB,CAAC;;CAGnD,eAAe,YAAY,KAAa,QAA0C;AAChF,UAAQ,OAAO,IAAI;AACnB,MAAI,OAAO,SAAS;AAClB,gBAAa,OAAO,QAAQ;AAC5B,UAAO,UAAU;;AAEnB,MAAI,OAAO,MAAM,WAAW,EAAG;AAC/B,MAAI;AACF,SAAM,QAAQ,OAAO,MAAM;WACpB,KAAK;AACZ,aAAU,KAAK,OAAO,MAAM;;;CAIhC,eAAe,SAAS,KAA4B;EAClD,MAAM,SAAS,QAAQ,IAAI,IAAI;AAC/B,MAAI,CAAC,OAAQ;AACb,QAAM,YAAY,KAAK,OAAO;;CAGhC,SAAS,cAAc,KAAa,QAAiC;AACnE,MAAI,OAAO,QAAS,cAAa,OAAO,QAAQ;AAChD,SAAO,UAAU,iBAAiB;AAAO,eAAY,KAAK,OAAO;KAAK,OAAO,WAAW;AACxF,SAAO,QAAQ,SAAS;;CAG1B,eAAe,QAAQ,MAAwB;EAC7C,MAAM,MAAM,SAAS,KAAK;EAC1B,MAAM,aAAa,UAAU,KAAK;AAGlC,MAAI,EAFgB,aAAa,MAAM,iBAAiB,KAAK,IAAI,QAE/C;AAChB,OAAI,OAAO,QAAQ,IAAI,IAAI,CAAE,OAAM,SAAS,IAAI;AAChD,OAAI;AAAE,UAAM,QAAQ,CAAC,KAAK,CAAC;YAAW,KAAK;AAAE,cAAU,KAAK,CAAC,KAAK,CAAC;;AACnE;;AAGF,MAAI,CAAC,KAAK;AACR,OAAI;AAAE,UAAM,QAAQ,CAAC,KAAK,CAAC;YAAW,KAAK;AAAE,cAAU,KAAK,CAAC,KAAK,CAAC;;AACnE;;EAGF,MAAM,WAAW,QAAQ,IAAI,IAAI;AACjC,MAAI,UAAU;AACZ,YAAS,MAAM,KAAK,KAAK;AACzB,YAAS,aAAa;AACtB,iBAAc,KAAK,SAAS;SACvB;GACL,MAAM,SAA4B;IAAE,OAAO,CAAC,KAAK;IAAE,SAAS;IAAM;IAAY;AAC9E,WAAQ,IAAI,KAAK,OAAO;AACxB,iBAAc,KAAK,OAAO;;;CAI9B,eAAe,WAA0B;EACvC,MAAM,OAAO,MAAM,KAAK,QAAQ,MAAM,CAAC;AACvC,QAAM,QAAQ,IAAI,KAAK,KAAI,QAAO,SAAS,IAAI,CAAC,CAAC;;CAGnD,SAAS,iBAAyB;AAChC,SAAO,QAAQ;;AAGjB,QAAO;EAAE;EAAS;EAAU;EAAU;EAAgB;;AAGxD,SAAgB,kBAAkB,MAAuB;AACvD,QAAO,KAAK,MAAM,CAAC,WAAW,IAAI"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"exec.js","names":[],"sources":["../../../src/infra/exec.ts"],"sourcesContent":["import { execFile, spawn } from 'node:child_process';\n\nexport type ExecResult = {\n stdout: string;\n stderr: string;\n};\n\nexport type ExecOptions = {\n timeoutMs?: number;\n maxBuffer?: number;\n cwd?: string;\n env?: NodeJS.ProcessEnv;\n};\n\nfunction execFileAsync(\n file: string,\n args: string[],\n opts: ExecOptions,\n): Promise<ExecResult> {\n return new Promise((resolve, reject) => {\n execFile(\n file,\n args,\n {\n encoding: 'utf8',\n maxBuffer: opts.maxBuffer ?? 1_024 * 1024,\n cwd: opts.cwd,\n env: opts.env,\n timeout: opts.timeoutMs,\n },\n (err, stdout, stderr) => {\n if (err) {\n const enriched = err as NodeJS.ErrnoException & { stdout?: string; stderr?: string };\n enriched.stdout = typeof stdout === 'string' ? stdout : String(stdout ?? '');\n enriched.stderr = typeof stderr === 'string' ? stderr : String(stderr ?? '');\n reject(enriched);\n return;\n }\n resolve({\n stdout: typeof stdout === 'string' ? stdout : String(stdout ?? ''),\n stderr: typeof stderr === 'string' ? stderr : String(stderr ?? ''),\n });\n },\n );\n });\n}\n\n/** Run a subprocess and capture stdout/stderr (OpenClaw-aligned). */\nexport async function runExec(\n file: string,\n args: string[],\n opts: ExecOptions = {},\n): Promise<ExecResult> {\n return execFileAsync(file, args, opts);\n}\n\nexport function spawnDetached(\n file: string,\n args: string[],\n opts: { stdio?: 'ignore' | 'pipe' },\n): ReturnType<typeof spawn> {\n return spawn(file, args, {\n stdio: opts.stdio ?? 'ignore',\n detached: false,\n });\n}\n"],"mappings":";;AAcA,SAAS,cACP,MACA,MACA,MACqB;AACrB,QAAO,IAAI,SAAS,SAAS,WAAW;AACtC,WACE,MACA,MACA;GACE,UAAU;GACV,WAAW,KAAK,aAAa,OAAQ;GACrC,KAAK,KAAK;GACV,KAAK,KAAK;GACV,SAAS,KAAK;GACf,GACA,KAAK,QAAQ,WAAW;AACvB,OAAI,KAAK;IACP,MAAM,WAAW;AACjB,aAAS,SAAS,OAAO,WAAW,WAAW,SAAS,OAAO,UAAU,GAAG;AAC5E,aAAS,SAAS,OAAO,WAAW,WAAW,SAAS,OAAO,UAAU,GAAG;AAC5E,WAAO,SAAS;AAChB;;AAEF,WAAQ;IACN,QAAQ,OAAO,WAAW,WAAW,SAAS,OAAO,UAAU,GAAG;IAClE,QAAQ,OAAO,WAAW,WAAW,SAAS,OAAO,UAAU,GAAG;IACnE,CAAC;IAEL;GACD;;;AAIJ,eAAsB,QACpB,MACA,MACA,OAAoB,EAAE,EACD;AACrB,QAAO,cAAc,MAAM,MAAM,KAAK;;AAGxC,SAAgB,cACd,MACA,MACA,MAC0B;AAC1B,QAAO,MAAM,MAAM,MAAM;EACvB,OAAO,KAAK,SAAS;EACrB,UAAU;EACX,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"gateway-process-argv.js","names":[],"sources":["../../../src/infra/gateway-process-argv.ts"],"sourcesContent":["function normalizeProcArg(arg: string): string {\n return arg.trim().replaceAll('\\\\', '/').toLowerCase();\n}\n\nexport function parseProcCmdline(raw: string): string[] {\n return raw\n .split('\\0')\n .map((entry) => entry.trim())\n .filter(Boolean);\n}\n\nexport function isGatewayArgv(args: string[], opts?: { allowGatewayBinary?: boolean }): boolean {\n const normalized = args.map(normalizeProcArg);\n if (!normalized.includes('gateway')) {\n return false;\n }\n\n const entryCandidates = [\n 'dist/cli/index.js',\n 'dist/src/cli/index.js',\n 'dist/index.js',\n 'xopc.mjs',\n 'scripts/run-node.mjs',\n 'src/cli/index.ts',\n ];\n if (normalized.some((arg) => entryCandidates.some((entry) => arg.endsWith(entry)))) {\n return true;\n }\n\n const exeCandidates = normalized.map((arg) => arg.replace(/\\.(bat|cmd|exe)$/i, ''));\n if (\n exeCandidates.some(\n (exe) =>\n exe.endsWith('/xopc') ||\n exe === 'xopc' ||\n (opts?.allowGatewayBinary === true && exe.endsWith('/xopc-gateway')),\n )\n ) {\n return true;\n }\n\n return false;\n}\n"],"mappings":";AAAA,SAAS,iBAAiB,KAAqB;AAC7C,QAAO,IAAI,MAAM,CAAC,WAAW,MAAM,IAAI,CAAC,aAAa;;AAGvD,SAAgB,iBAAiB,KAAuB;AACtD,QAAO,IACJ,MAAM,KAAK,CACX,KAAK,UAAU,MAAM,MAAM,CAAC,CAC5B,OAAO,QAAQ;;AAGpB,SAAgB,cAAc,MAAgB,MAAkD;CAC9F,MAAM,aAAa,KAAK,IAAI,iBAAiB;AAC7C,KAAI,CAAC,WAAW,SAAS,UAAU,CACjC,QAAO;CAGT,MAAM,kBAAkB;EACtB;EACA;EACA;EACA;EACA;EACA;EACD;AACD,KAAI,WAAW,MAAM,QAAQ,gBAAgB,MAAM,UAAU,IAAI,SAAS,MAAM,CAAC,CAAC,CAChF,QAAO;AAIT,KADsB,WAAW,KAAK,QAAQ,IAAI,QAAQ,qBAAqB,GAAG,CAEnE,CAAC,MACX,QACC,IAAI,SAAS,QAAQ,IACrB,QAAQ,UACP,MAAM,uBAAuB,QAAQ,IAAI,SAAS,gBAAgB,CACtE,CAED,QAAO;AAGT,QAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"gateway-processes.js","names":["fsSync"],"sources":["../../../src/infra/gateway-processes.ts"],"sourcesContent":["import { spawnSync } from 'node:child_process';\nimport fsSync from 'node:fs';\nimport { listPortListeners } from '../gateway/ports.js';\nimport { isGatewayArgv, parseProcCmdline } from './gateway-process-argv.js';\n\nexport function readGatewayProcessArgsSync(pid: number): string[] | null {\n if (process.platform === 'linux') {\n try {\n return parseProcCmdline(fsSync.readFileSync(`/proc/${pid}/cmdline`, 'utf8'));\n } catch {\n return null;\n }\n }\n if (process.platform === 'darwin') {\n const ps = spawnSync('ps', ['-o', 'command=', '-p', String(pid)], {\n encoding: 'utf8',\n timeout: 1000,\n });\n if (ps.error || ps.status !== 0) {\n return null;\n }\n const command = ps.stdout.trim();\n return command ? command.split(/\\s+/) : null;\n }\n if (process.platform === 'win32') {\n const ps = spawnSync(\n 'powershell',\n [\n '-NoProfile',\n '-Command',\n `(Get-CimInstance Win32_Process -Filter \"ProcessId=${pid}\").CommandLine`,\n ],\n { encoding: 'utf8', timeout: 3000 },\n );\n if (ps.error || ps.status !== 0) {\n return null;\n }\n const command = ps.stdout.trim();\n return command ? command.split(/\\s+/) : null;\n }\n return null;\n}\n\nexport function signalVerifiedGatewayPidSync(pid: number, signal: 'SIGTERM' | 'SIGUSR1'): void {\n const args = readGatewayProcessArgsSync(pid);\n if (!args || !isGatewayArgv(args, { allowGatewayBinary: true })) {\n throw new Error(`refusing to signal non-gateway process pid ${pid}`);\n }\n if (signal === 'SIGUSR1' && process.platform === 'win32') {\n throw new Error(\n 'SIGUSR1 is not supported on Windows; use SIGTERM with a restart intent file instead',\n );\n }\n process.kill(pid, signal);\n}\n\nexport function findGatewayPidsOnPortSync(port: number): number[] {\n try {\n return listPortListeners(port)\n .map((entry) => entry.pid)\n .filter((pid): pid is number => Number.isFinite(pid) && pid > 0);\n } catch {\n return [];\n }\n}\n\nexport function findVerifiedGatewayListenerPidsOnPortSync(port: number): number[] {\n return Array.from(new Set(findGatewayPidsOnPortSync(port)))\n .filter((pid) => pid !== process.pid)\n .filter((pid) => {\n const args = readGatewayProcessArgsSync(pid);\n return args != null && isGatewayArgv(args, { allowGatewayBinary: true });\n });\n}\n\nexport function formatGatewayPidList(pids: number[]): string {\n return pids.join(', ');\n}\n"],"mappings":";;;;;AAKA,SAAgB,2BAA2B,KAA8B;AACvE,KAAI,QAAQ,aAAa,QACvB,KAAI;AACF,SAAO,iBAAiBA,GAAO,aAAa,SAAS,IAAI,WAAW,OAAO,CAAC;SACtE;AACN,SAAO;;AAGX,KAAI,QAAQ,aAAa,UAAU;EACjC,MAAM,KAAK,UAAU,MAAM;GAAC;GAAM;GAAY;GAAM,OAAO,IAAI;GAAC,EAAE;GAChE,UAAU;GACV,SAAS;GACV,CAAC;AACF,MAAI,GAAG,SAAS,GAAG,WAAW,EAC5B,QAAO;EAET,MAAM,UAAU,GAAG,OAAO,MAAM;AAChC,SAAO,UAAU,QAAQ,MAAM,MAAM,GAAG;;AAE1C,KAAI,QAAQ,aAAa,SAAS;EAChC,MAAM,KAAK,UACT,cACA;GACE;GACA;GACA,qDAAqD,IAAI;GAC1D,EACD;GAAE,UAAU;GAAQ,SAAS;GAAM,CACpC;AACD,MAAI,GAAG,SAAS,GAAG,WAAW,EAC5B,QAAO;EAET,MAAM,UAAU,GAAG,OAAO,MAAM;AAChC,SAAO,UAAU,QAAQ,MAAM,MAAM,GAAG;;AAE1C,QAAO;;AAGT,SAAgB,6BAA6B,KAAa,QAAqC;CAC7F,MAAM,OAAO,2BAA2B,IAAI;AAC5C,KAAI,CAAC,QAAQ,CAAC,cAAc,MAAM,EAAE,oBAAoB,MAAM,CAAC,CAC7D,OAAM,IAAI,MAAM,8CAA8C,MAAM;AAEtE,KAAI,WAAW,aAAa,QAAQ,aAAa,QAC/C,OAAM,IAAI,MACR,sFACD;AAEH,SAAQ,KAAK,KAAK,OAAO;;AAG3B,SAAgB,0BAA0B,MAAwB;AAChE,KAAI;AACF,SAAO,kBAAkB,KAAK,CAC3B,KAAK,UAAU,MAAM,IAAI,CACzB,QAAQ,QAAuB,OAAO,SAAS,IAAI,IAAI,MAAM,EAAE;SAC5D;AACN,SAAO,EAAE;;;AAIb,SAAgB,0CAA0C,MAAwB;AAChF,QAAO,MAAM,KAAK,IAAI,IAAI,0BAA0B,KAAK,CAAC,CAAC,CACxD,QAAQ,QAAQ,QAAQ,QAAQ,IAAI,CACpC,QAAQ,QAAQ;EACf,MAAM,OAAO,2BAA2B,IAAI;AAC5C,SAAO,QAAQ,QAAQ,cAAc,MAAM,EAAE,oBAAoB,MAAM,CAAC;GACxE;;AAGN,SAAgB,qBAAqB,MAAwB;AAC3D,QAAO,KAAK,KAAK,KAAK"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"host-env-security-policy.js","names":[],"sources":["../../../src/infra/host-env-security-policy.json"],"sourcesContent":[""],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"host-env-security.js","names":["policyJson"],"sources":["../../../src/infra/host-env-security.ts"],"sourcesContent":["import policyJson from './host-env-security-policy.json' with { type: 'json' };\n\ntype HostEnvPolicy = {\n blockedEverywhereKeys?: string[];\n blockedPrefixes?: string[];\n blockedOverrideOnlyKeys?: string[];\n blockedOverridePrefixes?: string[];\n blockedInheritedPrefixes?: string[];\n allowedInheritedOverrideOnlyKeys?: string[];\n};\n\nconst policy = policyJson as HostEnvPolicy;\n\nconst blockedKeys = new Set(\n (policy.blockedEverywhereKeys ?? []).map((k) => k.toUpperCase()),\n);\nconst blockedPrefixes = (policy.blockedPrefixes ?? []).map((p) => p.toUpperCase());\n\nexport function isDangerousHostEnvVarName(rawKey: string): boolean {\n const key = rawKey.trim().toUpperCase();\n if (!key) {\n return false;\n }\n if (blockedKeys.has(key)) {\n return true;\n }\n return blockedPrefixes.some((prefix) => key.startsWith(prefix));\n}\n"],"mappings":";;AAWA,MAAM,SAASA;AAEf,MAAM,cAAc,IAAI,KACrB,OAAO,yBAAyB,EAAE,EAAE,KAAK,MAAM,EAAE,aAAa,CAAC,CACjE;AACD,MAAM,mBAAmB,OAAO,mBAAmB,EAAE,EAAE,KAAK,MAAM,EAAE,aAAa,CAAC;AAElF,SAAgB,0BAA0B,QAAyB;CACjE,MAAM,MAAM,OAAO,MAAM,CAAC,aAAa;AACvC,KAAI,CAAC,IACH,QAAO;AAET,KAAI,YAAY,IAAI,IAAI,CACtB,QAAO;AAET,QAAO,gBAAgB,MAAM,WAAW,IAAI,WAAW,OAAO,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"http-proxy-env.js","names":[],"sources":["../../../src/infra/http-proxy-env.ts"],"sourcesContent":["import { EnvHttpProxyAgent, setGlobalDispatcher } from 'undici';\n\nconst PROXY_ENV_KEYS = [\n 'http_proxy',\n 'HTTP_PROXY',\n 'https_proxy',\n 'HTTPS_PROXY',\n 'no_proxy',\n 'NO_PROXY',\n] as const;\n\ntype ProxyEnv = Record<string, string | undefined>;\n\nexport function hasProxyEnv(env: ProxyEnv = process.env): boolean {\n return PROXY_ENV_KEYS.some((key) => typeof env[key] === 'string' && env[key]!.trim().length > 0);\n}\n\nexport function installGlobalProxyDispatcherFromEnv(env: ProxyEnv = process.env): boolean {\n if (!hasProxyEnv(env)) {\n return false;\n }\n\n setGlobalDispatcher(new EnvHttpProxyAgent());\n return true;\n}\n\ninstallGlobalProxyDispatcherFromEnv();\n"],"mappings":";;AAEA,MAAM,iBAAiB;CACrB;CACA;CACA;CACA;CACA;CACA;CACD;AAID,SAAgB,YAAY,MAAgB,QAAQ,KAAc;AAChE,QAAO,eAAe,MAAM,QAAQ,OAAO,IAAI,SAAS,YAAY,IAAI,KAAM,MAAM,CAAC,SAAS,EAAE;;AAGlG,SAAgB,oCAAoC,MAAgB,QAAQ,KAAc;AACxF,KAAI,CAAC,YAAY,IAAI,CACnB,QAAO;AAGT,qBAAoB,IAAI,mBAAmB,CAAC;AAC5C,QAAO;;AAGT,qCAAqC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"is-main.js","names":[],"sources":["../../../src/infra/is-main.ts"],"sourcesContent":["/**\n * Is Main Module Utility\n */\n\ninterface IsMainModuleOptions {\n currentFile: string;\n}\n\n/**\n * Check if the current module is the main entry point\n */\nexport function isMainModule(options: IsMainModuleOptions): boolean {\n const isTestEnv = !!process.env.VITEST || !!process.env.TEST || !!process.env.NODE_ENV?.includes(\"test\");\n if (isTestEnv) {\n return false;\n }\n \n // Check if the current file is the main module\n try {\n const currentUrl = import.meta.url;\n return currentUrl.startsWith(\"file:\") && options.currentFile === process.argv[1];\n } catch {\n return false;\n }\n}\n"],"mappings":";;;;AAWA,SAAgB,aAAa,SAAuC;AAElE,KADkB,CAAC,CAAC,QAAQ,IAAI,UAAU,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAA,cAAuB,SAAS,OAAO,CAEtG,QAAO;AAIT,KAAI;AAEF,SADmB,OAAO,KAAK,IACb,WAAW,QAAQ,IAAI,QAAQ,gBAAgB,QAAQ,KAAK;SACxE;AACN,SAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"json-utf8-bytes.js","names":[],"sources":["../../../src/infra/json-utf8-bytes.ts"],"sourcesContent":["export function jsonUtf8Bytes(value: unknown): number {\n try {\n return Buffer.byteLength(JSON.stringify(value), \"utf8\");\n } catch {\n return Buffer.byteLength(String(value), \"utf8\");\n }\n}\n\nexport type BoundedJsonUtf8Bytes = {\n bytes: number;\n complete: boolean;\n};\n\nexport function jsonUtf8BytesOrInfinity(value: unknown): number {\n try {\n const serialized = JSON.stringify(value);\n return typeof serialized === \"string\"\n ? Buffer.byteLength(serialized, \"utf8\")\n : Number.POSITIVE_INFINITY;\n } catch {\n return Number.POSITIVE_INFINITY;\n }\n}\n\nfunction jsonStringByteLengthUpToLimit(value: string, remainingBytes: number): number {\n if (value.length + 2 > remainingBytes) {\n return remainingBytes + 1;\n }\n return jsonUtf8BytesOrInfinity(value);\n}\n\nfunction* enumerableOwnEntries(value: object): Generator<[string, unknown]> {\n const record = value as Record<string, unknown>;\n for (const key in record) {\n if (Object.prototype.propertyIsEnumerable.call(record, key)) {\n yield [key, record[key]];\n }\n }\n}\n\nexport function firstEnumerableOwnKeys(value: object, maxKeys: number): string[] {\n const keys: string[] = [];\n for (const key in value as Record<string, unknown>) {\n if (!Object.prototype.propertyIsEnumerable.call(value, key)) {\n continue;\n }\n keys.push(key);\n if (keys.length >= maxKeys) {\n break;\n }\n }\n return keys;\n}\n\nexport function boundedJsonUtf8Bytes(value: unknown, maxBytes: number): BoundedJsonUtf8Bytes {\n let bytes = 0;\n const seen = new WeakSet<object>();\n\n const add = (amount: number): void => {\n bytes += amount;\n if (bytes > maxBytes) {\n throw new Error(\"json_byte_limit_exceeded\");\n }\n };\n\n const visit = (entry: unknown, inArray: boolean): void => {\n if (entry === null) {\n add(4);\n return;\n }\n switch (typeof entry) {\n case \"string\":\n add(jsonStringByteLengthUpToLimit(entry, maxBytes - bytes));\n return;\n case \"number\":\n add(jsonUtf8BytesOrInfinity(Number.isFinite(entry) ? entry : null));\n return;\n case \"boolean\":\n add(entry ? 4 : 5);\n return;\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n if (inArray) {\n add(4);\n }\n return;\n case \"bigint\":\n throw new Error(\"json_byte_length_unsupported\");\n case \"object\":\n break;\n }\n\n const objectEntry = entry as object;\n if (seen.has(objectEntry)) {\n throw new Error(\"json_byte_length_circular\");\n }\n if (\n typeof (objectEntry as { toJSON?: unknown }).toJSON === \"function\" &&\n !(objectEntry instanceof Date)\n ) {\n throw new Error(\"json_byte_length_custom_to_json\");\n }\n seen.add(objectEntry);\n try {\n if (objectEntry instanceof Date) {\n visit(objectEntry.toJSON(), inArray);\n return;\n }\n if (Array.isArray(objectEntry)) {\n add(1);\n for (let index = 0; index < objectEntry.length; index += 1) {\n if (index > 0) {\n add(1);\n }\n visit(objectEntry[index], true);\n }\n add(1);\n return;\n }\n\n add(1);\n let wroteField = false;\n for (const [key, field] of enumerableOwnEntries(objectEntry)) {\n if (field === undefined || typeof field === \"function\" || typeof field === \"symbol\") {\n continue;\n }\n if (wroteField) {\n add(1);\n }\n wroteField = true;\n add(jsonStringByteLengthUpToLimit(key, maxBytes - bytes));\n add(1);\n visit(field, false);\n }\n add(1);\n } finally {\n seen.delete(objectEntry);\n }\n };\n\n try {\n visit(value, false);\n return { bytes, complete: true };\n } catch {\n return { bytes: Math.max(bytes, maxBytes + 1), complete: false };\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"node-sqlite.js","names":[],"sources":["../../../src/infra/node-sqlite.ts"],"sourcesContent":["import { createRequire } from 'node:module';\n\nimport { installProcessWarningFilter } from './warning-filter.js';\n\nconst require = createRequire(import.meta.url);\n\nexport function requireNodeSqlite(): typeof import('node:sqlite') {\n installProcessWarningFilter();\n try {\n return require('node:sqlite') as typeof import('node:sqlite');\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n throw new Error(\n `SQLite support is unavailable in this Node runtime (missing node:sqlite). ${message}`,\n { cause: err },\n );\n }\n}\n"],"mappings":";;;AAIA,MAAM,UAAU,cAAc,OAAO,KAAK,IAAI;AAE9C,SAAgB,oBAAkD;AAChE,8BAA6B;AAC7B,KAAI;AACF,SAAO,QAAQ,cAAc;UACtB,KAAK;EACZ,MAAM,UAAU,eAAe,QAAQ,IAAI,UAAU,OAAO,IAAI;AAChE,QAAM,IAAI,MACR,6EAA6E,WAC7E,EAAE,OAAO,KAAK,CACf"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"package-json.js","names":[],"sources":["../../../src/infra/package-json.ts"],"sourcesContent":["import fs from 'node:fs/promises';\nimport path from 'node:path';\n\nexport async function readPackageVersion(root: string): Promise<string | null> {\n try {\n const raw = await fs.readFile(path.join(root, 'package.json'), 'utf-8');\n const parsed = JSON.parse(raw) as { version?: string };\n const version = parsed?.version?.trim();\n return version || null;\n } catch {\n return null;\n }\n}\n\nexport async function readPackageName(root: string): Promise<string | null> {\n try {\n const raw = await fs.readFile(path.join(root, 'package.json'), 'utf-8');\n const parsed = JSON.parse(raw) as { name?: string };\n const name = parsed?.name?.trim();\n return name || null;\n } catch {\n return null;\n }\n}\n"],"mappings":";;;AAGA,eAAsB,mBAAmB,MAAsC;AAC7E,KAAI;EACF,MAAM,MAAM,MAAM,GAAG,SAAS,KAAK,KAAK,MAAM,eAAe,EAAE,QAAQ;AAGvE,SAFe,KAAK,MAAM,IACJ,EAAE,SAAS,MAAM,IACrB;SACZ;AACN,SAAO;;;AAIX,eAAsB,gBAAgB,MAAsC;AAC1E,KAAI;EACF,MAAM,MAAM,MAAM,GAAG,SAAS,KAAK,KAAK,MAAM,eAAe,EAAE,QAAQ;AAGvE,SAFe,KAAK,MAAM,IACP,EAAE,MAAM,MAAM,IAClB;SACT;AACN,SAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"package-update-steps.js","names":[],"sources":["../../../src/infra/package-update-steps.ts"],"sourcesContent":["import fs from 'node:fs/promises';\nimport path from 'node:path';\n\nimport { readPackageVersion } from './package-json.js';\nimport type { CommandRunner } from './run-command.js';\nimport {\n collectInstalledGlobalPackageErrors,\n globalInstallArgs,\n globalInstallFallbackArgs,\n resolveNpmGlobalPrefixLayoutFromGlobalRoot,\n resolveNpmGlobalPrefixLayoutFromPrefix,\n resolveExpectedInstalledVersionFromSpec,\n resolveGlobalInstallTarget,\n XOPC_PACKAGE_NAME,\n type NpmGlobalPrefixLayout,\n type ResolvedGlobalInstallTarget,\n} from './update-global.js';\n\nexport type PackageUpdateStepResult = {\n name: string;\n command: string;\n cwd: string;\n durationMs: number;\n exitCode: number | null;\n stdoutTail?: string | null;\n stderrTail?: string | null;\n};\n\nexport type PackageUpdateStepRunner = (params: {\n name: string;\n argv: string[];\n cwd?: string;\n timeoutMs: number;\n env?: NodeJS.ProcessEnv;\n}) => Promise<PackageUpdateStepResult>;\n\ntype StagedNpmInstall = {\n prefix: string;\n layout: NpmGlobalPrefixLayout;\n packageRoot: string;\n};\n\ntype NpmBinShimBackup = {\n backupDir: string;\n targetBinDir: string;\n entries: Array<{ name: string; hadExisting: boolean }>;\n};\n\nfunction formatError(err: unknown): string {\n return err instanceof Error ? err.message : String(err);\n}\n\nasync function pathExists(targetPath: string): Promise<boolean> {\n try {\n await fs.access(targetPath);\n return true;\n } catch {\n return false;\n }\n}\n\nasync function readPackageVersionIfPresent(packageRoot: string | null): Promise<string | null> {\n if (!packageRoot) return null;\n try {\n return await readPackageVersion(packageRoot);\n } catch {\n return null;\n }\n}\n\nasync function createStagedNpmInstall(\n installTarget: ResolvedGlobalInstallTarget,\n packageName: string,\n): Promise<StagedNpmInstall | null> {\n if (installTarget.manager !== 'npm') return null;\n const targetLayout = resolveNpmGlobalPrefixLayoutFromGlobalRoot(installTarget.globalRoot);\n if (!targetLayout) return null;\n await fs.mkdir(targetLayout.globalRoot, { recursive: true });\n const prefix = await fs.mkdtemp(path.join(targetLayout.globalRoot, '.xopc-update-stage-'));\n const layout = resolveNpmGlobalPrefixLayoutFromPrefix(prefix);\n return {\n prefix,\n layout,\n packageRoot: path.join(layout.globalRoot, packageName),\n };\n}\n\nasync function prepareStagedNpmInstall(\n installTarget: ResolvedGlobalInstallTarget,\n packageName: string,\n): Promise<{ stagedInstall: StagedNpmInstall | null; failedStep: PackageUpdateStepResult | null }> {\n const startedAt = Date.now();\n try {\n return { stagedInstall: await createStagedNpmInstall(installTarget, packageName), failedStep: null };\n } catch (err) {\n const targetLayout =\n installTarget.manager === 'npm'\n ? resolveNpmGlobalPrefixLayoutFromGlobalRoot(installTarget.globalRoot)\n : null;\n return {\n stagedInstall: null,\n failedStep: {\n name: 'global install stage',\n command: 'prepare staged npm install',\n cwd: targetLayout?.prefix ?? installTarget.globalRoot ?? process.cwd(),\n durationMs: Date.now() - startedAt,\n exitCode: 1,\n stdoutTail: null,\n stderrTail: formatError(err),\n },\n };\n }\n}\n\nasync function cleanupStagedNpmInstall(stage: StagedNpmInstall | null): Promise<void> {\n if (!stage) return;\n await fs.rm(stage.prefix, { recursive: true, force: true }).catch(() => undefined);\n}\n\nasync function copyPathEntry(source: string, destination: string): Promise<void> {\n const stat = await fs.lstat(source);\n await fs.rm(destination, { recursive: true, force: true }).catch(() => undefined);\n if (stat.isSymbolicLink()) {\n await fs.symlink(await fs.readlink(source), destination);\n return;\n }\n if (stat.isDirectory()) {\n await fs.cp(source, destination, { recursive: true, force: true, preserveTimestamps: false });\n return;\n }\n await fs.copyFile(source, destination);\n await fs.chmod(destination, stat.mode).catch(() => undefined);\n}\n\nasync function replaceNpmBinShims(params: {\n stageLayout: NpmGlobalPrefixLayout;\n targetLayout: NpmGlobalPrefixLayout;\n packageName: string;\n}): Promise<void> {\n let entries: string[] = [];\n try {\n entries = await fs.readdir(params.stageLayout.binDir);\n } catch {\n return;\n }\n\n const names = new Set([params.packageName, 'xopc']);\n const shimEntries = entries.filter((entry) => {\n const parsed = path.parse(entry);\n return names.has(entry) || names.has(parsed.name);\n });\n if (shimEntries.length === 0) return;\n\n const backup: NpmBinShimBackup = {\n backupDir: await fs.mkdtemp(path.join(params.targetLayout.globalRoot, '.xopc-shim-backup-')),\n targetBinDir: params.targetLayout.binDir,\n entries: [],\n };\n\n try {\n await fs.mkdir(params.targetLayout.binDir, { recursive: true });\n for (const entry of shimEntries) {\n const destination = path.join(params.targetLayout.binDir, entry);\n const hadExisting = await pathExists(destination);\n backup.entries.push({ name: entry, hadExisting });\n if (hadExisting) {\n await copyPathEntry(destination, path.join(backup.backupDir, entry));\n }\n }\n for (const entry of shimEntries) {\n await copyPathEntry(\n path.join(params.stageLayout.binDir, entry),\n path.join(params.targetLayout.binDir, entry),\n );\n }\n } catch (err) {\n await restoreNpmBinShimBackup(backup);\n throw err;\n } finally {\n await fs.rm(backup.backupDir, { recursive: true, force: true }).catch(() => undefined);\n }\n}\n\nasync function restoreNpmBinShimBackup(backup: NpmBinShimBackup): Promise<void> {\n await fs.mkdir(backup.targetBinDir, { recursive: true });\n for (const entry of backup.entries) {\n const destination = path.join(backup.targetBinDir, entry.name);\n await fs.rm(destination, { recursive: true, force: true }).catch(() => undefined);\n if (entry.hadExisting) {\n await copyPathEntry(path.join(backup.backupDir, entry.name), destination);\n }\n }\n}\n\nasync function swapStagedNpmInstall(params: {\n stage: StagedNpmInstall;\n installTarget: ResolvedGlobalInstallTarget;\n packageName: string;\n}): Promise<PackageUpdateStepResult> {\n const startedAt = Date.now();\n const targetLayout = resolveNpmGlobalPrefixLayoutFromGlobalRoot(params.installTarget.globalRoot);\n const targetPackageRoot = params.installTarget.packageRoot;\n if (!targetLayout || !targetPackageRoot) {\n return {\n name: 'global install swap',\n command: 'swap staged npm install',\n cwd: params.stage.prefix,\n durationMs: Date.now() - startedAt,\n exitCode: 1,\n stdoutTail: null,\n stderrTail: 'cannot resolve npm global prefix layout',\n };\n }\n\n const backupRoot = path.join(targetLayout.globalRoot, `.xopc-${process.pid}-${Date.now()}`);\n let movedExisting = false;\n let movedStaged = false;\n try {\n await fs.mkdir(targetLayout.globalRoot, { recursive: true });\n if (await pathExists(targetPackageRoot)) {\n await fs.rename(targetPackageRoot, backupRoot);\n movedExisting = true;\n }\n await fs.rename(params.stage.packageRoot, targetPackageRoot);\n movedStaged = true;\n await replaceNpmBinShims({\n stageLayout: params.stage.layout,\n targetLayout,\n packageName: params.packageName,\n });\n if (movedExisting) {\n await fs.rm(backupRoot, { recursive: true, force: true });\n }\n return {\n name: 'global install swap',\n command: `swap ${params.stage.packageRoot} -> ${targetPackageRoot}`,\n cwd: targetLayout.globalRoot,\n durationMs: Date.now() - startedAt,\n exitCode: 0,\n stdoutTail: movedExisting ? `replaced ${params.packageName}` : `installed ${params.packageName}`,\n stderrTail: null,\n };\n } catch (err) {\n if (movedStaged) {\n await fs.rm(targetPackageRoot, { recursive: true, force: true }).catch(() => undefined);\n }\n if (movedExisting) {\n await fs.rename(backupRoot, targetPackageRoot).catch(() => undefined);\n }\n return {\n name: 'global install swap',\n command: `swap ${params.stage.packageRoot} -> ${targetPackageRoot}`,\n cwd: targetLayout.globalRoot,\n durationMs: Date.now() - startedAt,\n exitCode: 1,\n stdoutTail: null,\n stderrTail: formatError(err),\n };\n }\n}\n\nexport async function runGlobalPackageUpdateSteps(params: {\n installTarget: ResolvedGlobalInstallTarget;\n installSpec: string;\n packageName: string;\n packageRoot?: string | null;\n runCommand: CommandRunner;\n runStep: PackageUpdateStepRunner;\n timeoutMs: number;\n env?: NodeJS.ProcessEnv;\n installCwd?: string;\n}): Promise<{\n steps: PackageUpdateStepResult[];\n verifiedPackageRoot: string | null;\n afterVersion: string | null;\n failedStep: PackageUpdateStepResult | null;\n}> {\n const installCwd = params.installCwd === undefined ? {} : { cwd: params.installCwd };\n const installEnv = params.env === undefined ? {} : { env: params.env };\n let stagedInstall: StagedNpmInstall | null = null;\n\n try {\n const preparedInstall = await prepareStagedNpmInstall(params.installTarget, params.packageName);\n stagedInstall = preparedInstall.stagedInstall;\n if (preparedInstall.failedStep) {\n return {\n steps: [preparedInstall.failedStep],\n verifiedPackageRoot: params.packageRoot ?? null,\n afterVersion: null,\n failedStep: preparedInstall.failedStep,\n };\n }\n\n const updateStep = await params.runStep({\n name: 'global update',\n argv: globalInstallArgs(\n params.installTarget,\n params.installSpec,\n params.packageRoot,\n stagedInstall?.prefix,\n ),\n ...installCwd,\n ...installEnv,\n timeoutMs: params.timeoutMs,\n });\n\n const steps = [updateStep];\n let finalInstallStep = updateStep;\n if (updateStep.exitCode !== 0) {\n await cleanupStagedNpmInstall(stagedInstall);\n stagedInstall = null;\n const preparedFallbackInstall = await prepareStagedNpmInstall(\n params.installTarget,\n params.packageName,\n );\n stagedInstall = preparedFallbackInstall.stagedInstall;\n if (preparedFallbackInstall.failedStep) {\n steps.push(preparedFallbackInstall.failedStep);\n return {\n steps,\n verifiedPackageRoot: params.packageRoot ?? null,\n afterVersion: null,\n failedStep: preparedFallbackInstall.failedStep,\n };\n }\n\n const fallbackArgv = globalInstallFallbackArgs(\n params.installTarget,\n params.installSpec,\n params.packageRoot,\n stagedInstall?.prefix,\n );\n if (fallbackArgv) {\n const fallbackStep = await params.runStep({\n name: 'global update (omit optional)',\n argv: fallbackArgv,\n ...installCwd,\n ...installEnv,\n timeoutMs: params.timeoutMs,\n });\n steps.push(fallbackStep);\n finalInstallStep = fallbackStep;\n } else {\n await cleanupStagedNpmInstall(stagedInstall);\n stagedInstall = null;\n }\n }\n\n const livePackageRoot =\n params.installTarget.packageRoot ??\n params.packageRoot ??\n (\n await resolveGlobalInstallTarget({\n manager: params.installTarget,\n runCommand: params.runCommand,\n timeoutMs: params.timeoutMs,\n pkgRoot: params.packageRoot,\n })\n ).packageRoot ??\n null;\n const verificationPackageRoot = stagedInstall?.packageRoot ?? livePackageRoot;\n let verifiedPackageRoot = livePackageRoot ?? verificationPackageRoot;\n\n let afterVersion: string | null = null;\n if (finalInstallStep.exitCode === 0 && verificationPackageRoot) {\n const candidateVersion = await readPackageVersion(verificationPackageRoot);\n if (!stagedInstall) {\n afterVersion = candidateVersion;\n }\n const expectedVersion = resolveExpectedInstalledVersionFromSpec(params.installSpec);\n const verificationErrors = await collectInstalledGlobalPackageErrors({\n packageRoot: verificationPackageRoot,\n expectedVersion,\n });\n if (verificationErrors.length > 0) {\n steps.push({\n name: 'global install verify',\n command: `verify ${verificationPackageRoot}`,\n cwd: verificationPackageRoot,\n durationMs: 0,\n exitCode: 1,\n stderrTail: verificationErrors.join('\\n'),\n stdoutTail: null,\n });\n }\n\n if (stagedInstall && verificationErrors.length === 0) {\n const swapStep = await swapStagedNpmInstall({\n stage: stagedInstall,\n installTarget: params.installTarget,\n packageName: params.packageName,\n });\n steps.push(swapStep);\n if (swapStep.exitCode === 0) {\n verifiedPackageRoot = params.installTarget.packageRoot ?? verifiedPackageRoot;\n afterVersion = candidateVersion;\n }\n }\n }\n\n const failedVerifyOrSwap = steps.find(\n (step) =>\n (step.name === 'global install verify' || step.name === 'global install swap') &&\n step.exitCode !== 0,\n );\n if (failedVerifyOrSwap && stagedInstall) {\n afterVersion = await readPackageVersionIfPresent(livePackageRoot);\n }\n\n const failedStep =\n finalInstallStep.exitCode !== 0\n ? finalInstallStep\n : (steps.find((step) => step !== updateStep && step.exitCode !== 0) ?? null);\n\n return { steps, verifiedPackageRoot, afterVersion, failedStep };\n } finally {\n await cleanupStagedNpmInstall(stagedInstall);\n }\n}\n\nexport const DEFAULT_PACKAGE_NAME = XOPC_PACKAGE_NAME;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"path-env.js","names":[],"sources":["../../../src/infra/path-env.ts"],"sourcesContent":["import fs from 'node:fs';\nimport os from 'node:os';\nimport path from 'node:path';\n\nimport { resolveBrewPathDirs } from './brew.js';\n\ntype EnsureXopcPathOpts = {\n execPath?: string;\n cwd?: string;\n homeDir?: string;\n platform?: NodeJS.Platform;\n pathEnv?: string;\n};\n\nfunction isTruthyEnvValue(value: string | undefined): boolean {\n if (!value) return false;\n const normalized = value.trim().toLowerCase();\n return normalized === '1' || normalized === 'true' || normalized === 'yes' || normalized === 'on';\n}\n\nfunction isExecutable(filePath: string): boolean {\n try {\n fs.accessSync(filePath, fs.constants.X_OK);\n return true;\n } catch {\n return false;\n }\n}\n\nfunction isDirectory(dirPath: string): boolean {\n try {\n return fs.statSync(dirPath).isDirectory();\n } catch {\n return false;\n }\n}\n\nfunction mergePath(params: { existing: string; prepend?: string[]; append?: string[] }): string {\n const partsExisting = params.existing\n .split(path.delimiter)\n .map((part) => part.trim())\n .filter(Boolean);\n const partsPrepend = (params.prepend ?? []).map((part) => part.trim()).filter(Boolean);\n const partsAppend = (params.append ?? []).map((part) => part.trim()).filter(Boolean);\n const seen = new Set<string>();\n const merged: string[] = [];\n for (const part of [...partsPrepend, ...partsExisting, ...partsAppend]) {\n if (seen.has(part)) continue;\n seen.add(part);\n merged.push(part);\n }\n return merged.join(path.delimiter);\n}\n\nfunction candidateBinDirs(opts: EnsureXopcPathOpts): { prepend: string[]; append: string[] } {\n const execPath = opts.execPath ?? process.execPath;\n const homeDir = opts.homeDir ?? os.homedir();\n const platform = opts.platform ?? process.platform;\n const prepend: string[] = [];\n const append: string[] = [];\n\n try {\n const execDir = path.dirname(execPath);\n if (isExecutable(execPath)) prepend.push(execDir);\n } catch {\n // ignore\n }\n\n try {\n const execDir = path.dirname(execPath);\n const siblingCli = path.join(execDir, 'xopc');\n if (isExecutable(siblingCli)) prepend.push(execDir);\n } catch {\n // ignore\n }\n\n prepend.push('/usr/bin', '/bin');\n append.push(...resolveBrewPathDirs({ homeDir }));\n if (platform === 'darwin') append.push(path.join(homeDir, 'Library', 'pnpm'));\n if (process.env.XDG_BIN_HOME) append.push(process.env.XDG_BIN_HOME);\n append.push(\n path.join(homeDir, '.local', 'bin'),\n path.join(homeDir, '.local', 'share', 'pnpm'),\n path.join(homeDir, '.bun', 'bin'),\n path.join(homeDir, '.nvm', 'versions', 'node'),\n );\n\n return { prepend: prepend.filter(isDirectory), append: append.filter(isDirectory) };\n}\n\n/** Bootstrap PATH for launchd/daemon environments (npm/pnpm/git subprocesses). */\nexport function ensureXopcCliOnPath(opts: EnsureXopcPathOpts = {}): void {\n if (isTruthyEnvValue(process.env.XOPC_PATH_BOOTSTRAPPED)) return;\n process.env.XOPC_PATH_BOOTSTRAPPED = '1';\n\n const existing = opts.pathEnv ?? process.env.PATH ?? '';\n const { prepend, append } = candidateBinDirs(opts);\n if (prepend.length === 0 && append.length === 0) return;\n\n const merged = mergePath({ existing, prepend, append });\n if (merged) process.env.PATH = merged;\n}\n\nexport function resolveExecPathBinPrepend(): string[] {\n const execPath = process.execPath?.trim();\n if (!execPath) return [];\n const execDir = path.dirname(execPath);\n return isDirectory(execDir) ? [execDir] : [];\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"path-prepend.js","names":[],"sources":["../../../src/infra/path-prepend.ts"],"sourcesContent":["import path from 'node:path';\n\n/** Find the actual key used for PATH (Windows may use `Path`). */\nexport function findPathKey(env: Record<string, string>): string {\n if ('PATH' in env) return 'PATH';\n for (const key of Object.keys(env)) {\n if (key.toUpperCase() === 'PATH') return key;\n }\n return 'PATH';\n}\n\nexport function normalizePathPrepend(entries?: string[]): string[] {\n if (!Array.isArray(entries)) return [];\n const seen = new Set<string>();\n const normalized: string[] = [];\n for (const entry of entries) {\n if (typeof entry !== 'string') continue;\n const trimmed = entry.trim();\n if (!trimmed || seen.has(trimmed)) continue;\n seen.add(trimmed);\n normalized.push(trimmed);\n }\n return normalized;\n}\n\nexport function mergePathPrepend(existing: string | undefined, prepend: string[]): string {\n if (prepend.length === 0) return existing ?? '';\n const partsExisting = (existing ?? '')\n .split(path.delimiter)\n .map((part) => part.trim())\n .filter(Boolean);\n const merged: string[] = [];\n const seen = new Set<string>();\n for (const part of [...prepend, ...partsExisting]) {\n if (seen.has(part)) continue;\n seen.add(part);\n merged.push(part);\n }\n return merged.join(path.delimiter);\n}\n\nexport function applyPathPrepend(\n env: Record<string, string>,\n prepend: string[] | undefined,\n options?: { requireExisting?: boolean },\n): void {\n if (!Array.isArray(prepend) || prepend.length === 0) return;\n const pathKey = findPathKey(env);\n if (options?.requireExisting && !env[pathKey]) return;\n const merged = mergePathPrepend(env[pathKey], prepend);\n if (merged) env[pathKey] = merged;\n}\n"],"mappings":";;;AAGA,SAAgB,YAAY,KAAqC;AAC/D,KAAI,UAAU,IAAK,QAAO;AAC1B,MAAK,MAAM,OAAO,OAAO,KAAK,IAAI,CAChC,KAAI,IAAI,aAAa,KAAK,OAAQ,QAAO;AAE3C,QAAO;;AAGT,SAAgB,qBAAqB,SAA8B;AACjE,KAAI,CAAC,MAAM,QAAQ,QAAQ,CAAE,QAAO,EAAE;CACtC,MAAM,uBAAO,IAAI,KAAa;CAC9B,MAAM,aAAuB,EAAE;AAC/B,MAAK,MAAM,SAAS,SAAS;AAC3B,MAAI,OAAO,UAAU,SAAU;EAC/B,MAAM,UAAU,MAAM,MAAM;AAC5B,MAAI,CAAC,WAAW,KAAK,IAAI,QAAQ,CAAE;AACnC,OAAK,IAAI,QAAQ;AACjB,aAAW,KAAK,QAAQ;;AAE1B,QAAO;;AAGT,SAAgB,iBAAiB,UAA8B,SAA2B;AACxF,KAAI,QAAQ,WAAW,EAAG,QAAO,YAAY;CAC7C,MAAM,iBAAiB,YAAY,IAChC,MAAM,KAAK,UAAU,CACrB,KAAK,SAAS,KAAK,MAAM,CAAC,CAC1B,OAAO,QAAQ;CAClB,MAAM,SAAmB,EAAE;CAC3B,MAAM,uBAAO,IAAI,KAAa;AAC9B,MAAK,MAAM,QAAQ,CAAC,GAAG,SAAS,GAAG,cAAc,EAAE;AACjD,MAAI,KAAK,IAAI,KAAK,CAAE;AACpB,OAAK,IAAI,KAAK;AACd,SAAO,KAAK,KAAK;;AAEnB,QAAO,OAAO,KAAK,KAAK,UAAU;;AAGpC,SAAgB,iBACd,KACA,SACA,SACM;AACN,KAAI,CAAC,MAAM,QAAQ,QAAQ,IAAI,QAAQ,WAAW,EAAG;CACrD,MAAM,UAAU,YAAY,IAAI;AAChC,KAAI,SAAS,mBAAmB,CAAC,IAAI,SAAU;CAC/C,MAAM,SAAS,iBAAiB,IAAI,UAAU,QAAQ;AACtD,KAAI,OAAQ,KAAI,WAAW"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ports.js","names":[],"sources":["../../../src/infra/ports.ts"],"sourcesContent":["/**\n * Port Inspection - Cross-platform port usage detection\n *\n * Provides utilities to:\n * - Check if a port is in use\n * - Identify which process is listening\n * - Classify whether a listener is the gateway\n */\n\nimport { spawn } from 'node:child_process';\nimport { createServer } from 'node:net';\n\n// ─── Types ───\n\nexport type PortUsageStatus = 'free' | 'busy' | 'unknown';\n\nexport interface PortListener {\n pid?: number;\n ppid?: number;\n command?: string;\n commandLine?: string;\n address?: string;\n}\n\nexport interface PortUsage {\n port: number;\n status: PortUsageStatus;\n listeners: PortListener[];\n hints: string[];\n errors?: string[];\n}\n\nexport type PortListenerKind = 'gateway' | 'other' | 'unknown';\n\n// ─── Core API ───\n\n/** Inspect port usage: check if busy and identify listeners */\nexport async function inspectPortUsage(port: number): Promise<PortUsage> {\n const errors: string[] = [];\n\n // First try OS-level listener detection\n let listeners: PortListener[] = [];\n try {\n listeners = await detectListeners(port);\n } catch (err) {\n errors.push(err instanceof Error ? err.message : String(err));\n }\n\n // Determine status\n let status: PortUsageStatus;\n if (listeners.length > 0) {\n status = 'busy';\n } else {\n // Fallback: try to bind the port\n status = await probePortAvailability(port);\n }\n\n // If busy but no listeners detected, clear the list\n if (status !== 'busy') {\n listeners = [];\n }\n\n const hints = buildPortHints(listeners, port);\n if (status === 'busy' && listeners.length === 0) {\n hints.push('Port is in use but process details unavailable (try running with elevated permissions).');\n }\n\n return {\n port,\n status,\n listeners,\n hints,\n errors: errors.length > 0 ? errors : undefined,\n };\n}\n\n/** Classify whether a port listener belongs to the gateway */\nexport function classifyPortListener(listener: PortListener, runtimePid?: number): PortListenerKind {\n // PID match\n if (runtimePid && listener.pid === runtimePid) {\n return 'gateway';\n }\n\n // Command/commandLine heuristics\n const cmd = (listener.command || listener.commandLine || '').toLowerCase();\n if (cmd.includes('xopc') || cmd.includes('gateway')) {\n return 'gateway';\n }\n\n if (listener.pid) {\n return 'other';\n }\n\n return 'unknown';\n}\n\n/** Format port diagnostics for display */\nexport function formatPortDiagnostics(usage: PortUsage): string[] {\n const lines: string[] = [];\n\n lines.push(`Port ${usage.port}: ${usage.status}`);\n\n for (const listener of usage.listeners) {\n const parts: string[] = [];\n if (listener.pid) parts.push(`pid=${listener.pid}`);\n if (listener.command) parts.push(`cmd=${listener.command}`);\n if (listener.address) parts.push(`addr=${listener.address}`);\n lines.push(` Listener: ${parts.join(' ')}`);\n }\n\n for (const hint of usage.hints) {\n lines.push(` 💡 ${hint}`);\n }\n\n return lines;\n}\n\n// ─── Platform Detection ───\n\nasync function detectListeners(port: number): Promise<PortListener[]> {\n if (process.platform === 'win32') {\n return detectWindowsListeners(port);\n }\n return detectUnixListeners(port);\n}\n\nasync function detectUnixListeners(port: number): Promise<PortListener[]> {\n // Try lsof first (available on macOS and most Linux)\n const lsofResult = await runCommand(['lsof', '-nP', `-iTCP:${port}`, '-sTCP:LISTEN', '-F', 'pcn']);\n if (lsofResult.exitCode === 0 && lsofResult.stdout.trim()) {\n return parseLsofOutput(lsofResult.stdout);\n }\n\n // Fallback to ss (Linux)\n const ssResult = await runCommand(['ss', '-tlnp', `sport = :${port}`]);\n if (ssResult.exitCode === 0 && ssResult.stdout.trim()) {\n return parseSsOutput(ssResult.stdout, port);\n }\n\n return [];\n}\n\nasync function detectWindowsListeners(port: number): Promise<PortListener[]> {\n const result = await runCommand(['netstat', '-ano', '-p', 'tcp']);\n if (result.exitCode !== 0) return [];\n\n const listeners: PortListener[] = [];\n const portToken = `:${port}`;\n\n for (const line of result.stdout.split(/\\r?\\n/)) {\n const trimmed = line.trim();\n if (!trimmed.includes('LISTENING') || !trimmed.includes(portToken)) continue;\n\n const parts = trimmed.split(/\\s+/);\n const pidStr = parts[parts.length - 1];\n const pid = parseInt(pidStr, 10);\n\n if (Number.isFinite(pid) && pid > 0) {\n listeners.push({ pid, address: parts[1] });\n }\n }\n\n return listeners;\n}\n\n// ─── Output Parsing ───\n\nfunction parseLsofOutput(output: string): PortListener[] {\n const listeners: PortListener[] = [];\n let current: Partial<PortListener> = {};\n\n for (const line of output.split('\\n')) {\n if (!line.trim()) continue;\n\n const type = line[0];\n const value = line.slice(1);\n\n switch (type) {\n case 'p':\n if (current.pid) {\n listeners.push(current as PortListener);\n }\n current = { pid: parseInt(value, 10) };\n break;\n case 'c':\n current.command = value;\n break;\n case 'n':\n current.address = value;\n break;\n }\n }\n\n if (current.pid) {\n listeners.push(current as PortListener);\n }\n\n return listeners;\n}\n\nfunction parseSsOutput(output: string, port: number): PortListener[] {\n const listeners: PortListener[] = [];\n\n for (const line of output.split('\\n')) {\n const trimmed = line.trim();\n if (!trimmed || !trimmed.includes('LISTEN')) continue;\n if (!trimmed.includes(`:${port}`)) continue;\n\n const listener: PortListener = {};\n\n // Extract PID from users:((\"name\",pid=N,...))\n const pidMatch = trimmed.match(/pid=(\\d+)/);\n if (pidMatch) {\n listener.pid = parseInt(pidMatch[1], 10);\n }\n\n const cmdMatch = trimmed.match(/users:\\(\\(\"([^\"]+)\"/);\n if (cmdMatch) {\n listener.command = cmdMatch[1];\n }\n\n // Extract local address\n const parts = trimmed.split(/\\s+/);\n const addrPart = parts.find((p) => p.includes(`:${port}`));\n if (addrPart) {\n listener.address = addrPart;\n }\n\n listeners.push(listener);\n }\n\n return listeners;\n}\n\n// ─── Port Probing ───\n\nasync function probePortAvailability(port: number): Promise<PortUsageStatus> {\n const hosts = ['127.0.0.1', '0.0.0.0'];\n\n for (const host of hosts) {\n const result = await tryListenOnPort(port, host);\n if (result === 'busy') return 'busy';\n }\n\n return 'free';\n}\n\nfunction tryListenOnPort(port: number, host: string): Promise<PortUsageStatus> {\n return new Promise((resolve) => {\n const server = createServer();\n\n server.once('error', (err: NodeJS.ErrnoException) => {\n if (err.code === 'EADDRINUSE') {\n resolve('busy');\n } else {\n resolve('unknown');\n }\n });\n\n server.listen(port, host, () => {\n server.close(() => resolve('free'));\n });\n });\n}\n\n// ─── Hints ───\n\nfunction buildPortHints(listeners: PortListener[], port: number): string[] {\n const hints: string[] = [];\n\n for (const listener of listeners) {\n const cmd = (listener.command || listener.commandLine || '').toLowerCase();\n if (cmd.includes('xopc') || cmd.includes('gateway')) {\n hints.push(`xopc gateway is already running (pid ${listener.pid}).`);\n }\n }\n\n if (hints.length === 0 && listeners.length > 0) {\n const pids = listeners.map((l) => l.pid).filter(Boolean);\n if (pids.length > 0) {\n hints.push(`Port ${port} is used by pid ${pids.join(', ')}.`);\n }\n }\n\n return hints;\n}\n\n// ─── Command Runner ───\n\ninterface CommandResult {\n stdout: string;\n stderr: string;\n exitCode: number | null;\n error?: string;\n}\n\nfunction runCommand(args: string[]): Promise<CommandResult> {\n return new Promise((resolve) => {\n try {\n const [cmd, ...cmdArgs] = args;\n const child = spawn(cmd, cmdArgs, {\n stdio: ['ignore', 'pipe', 'pipe'],\n timeout: 5000,\n });\n\n let stdout = '';\n let stderr = '';\n\n child.stdout?.on('data', (data) => { stdout += data.toString(); });\n child.stderr?.on('data', (data) => { stderr += data.toString(); });\n\n child.on('close', (code) => {\n resolve({ stdout, stderr, exitCode: code });\n });\n\n child.on('error', (err) => {\n resolve({ stdout: '', stderr: '', exitCode: null, error: err.message });\n });\n } catch (err) {\n resolve({ stdout: '', stderr: '', exitCode: null, error: String(err) });\n }\n });\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"failure-limiter.js","names":[],"sources":["../../../../src/infra/rate-limit/failure-limiter.ts"],"sourcesContent":["/**\n * Per-key brute-force protection limiter.\n *\n * Semantics:\n * - `fail(key)` records a failed attempt; reaching `maxFailures` within\n * `windowMs` triggers a `blockDurationMs` lockout.\n * - `succeed(key)` clears all state for the key (a successful auth wipes the\n * bucket so legitimate users aren't punished for prior typos).\n * - `check(key)` is read-only — returns the current block status.\n * - Failures from the same key within `burstCoalesceMs` collapse to a single\n * attempt. This absorbs SPA fan-out / SDK auto-retry storms without\n * weakening protection: a deliberate attacker is rate-limited to ~1\n * attempt/s per key, still astronomically slow against any token of\n * meaningful entropy.\n *\n * Pure counter — no policy knowledge (loopback exemption, key formatting,\n * etc. all live in the policy layer that calls into this limiter).\n */\n\nimport { KeyedStore, type Clock } from './keyed-store.js';\n\nexport type FailureLimiterConfig = {\n maxFailures: number;\n windowMs: number;\n blockDurationMs: number;\n /** @default 1000 */\n burstCoalesceMs?: number;\n /** Retain idle keys for this long. @default `windowMs + blockDurationMs` */\n staleAfterMs?: number;\n clock?: Clock;\n};\n\nexport type FailureCheck =\n | { blocked: false }\n | { blocked: true; retryAfterSec: number };\n\ntype State = {\n windowStart: number;\n count: number;\n blockedUntil?: number;\n lastFailureAtMs?: number;\n lastTouchedMs: number;\n};\n\nconst DEFAULT_BURST_COALESCE_MS = 1000;\n\nexport class FailureLimiter {\n private readonly store: KeyedStore<State>;\n private readonly clock: Clock;\n private readonly maxFailures: number;\n private readonly windowMs: number;\n private readonly blockDurationMs: number;\n private readonly burstCoalesceMs: number;\n\n constructor(cfg: FailureLimiterConfig) {\n this.maxFailures = Math.max(1, Math.floor(cfg.maxFailures));\n this.windowMs = Math.max(1000, Math.floor(cfg.windowMs));\n this.blockDurationMs = Math.max(1000, Math.floor(cfg.blockDurationMs));\n this.burstCoalesceMs = Math.max(0, Math.floor(cfg.burstCoalesceMs ?? DEFAULT_BURST_COALESCE_MS));\n this.clock = cfg.clock ?? Date.now;\n this.store = new KeyedStore<State>({\n staleAfterMs: cfg.staleAfterMs ?? this.windowMs + this.blockDurationMs,\n clock: this.clock,\n });\n }\n\n check(key: string): FailureCheck {\n const now = this.clock();\n const state = this.store.get(key);\n if (!state?.blockedUntil) return { blocked: false };\n if (now >= state.blockedUntil) {\n state.blockedUntil = undefined;\n state.count = 0;\n state.windowStart = now;\n state.lastTouchedMs = now;\n return { blocked: false };\n }\n return {\n blocked: true,\n retryAfterSec: Math.max(1, Math.ceil((state.blockedUntil - now) / 1000)),\n };\n }\n\n fail(key: string): void {\n const now = this.clock();\n let state = this.store.get(key);\n if (!state) {\n state = { windowStart: now, count: 0, lastTouchedMs: now };\n this.store.set(key, state);\n }\n\n state.lastTouchedMs = now;\n\n if (state.blockedUntil && now < state.blockedUntil) return;\n if (state.blockedUntil && now >= state.blockedUntil) {\n state.blockedUntil = undefined;\n state.count = 0;\n state.windowStart = now;\n }\n\n if (now - state.windowStart > this.windowMs) {\n state.count = 0;\n state.windowStart = now;\n }\n\n if (\n state.lastFailureAtMs !== undefined &&\n now - state.lastFailureAtMs < this.burstCoalesceMs\n ) {\n state.lastFailureAtMs = now;\n return;\n }\n\n state.lastFailureAtMs = now;\n state.count += 1;\n if (state.count >= this.maxFailures) {\n state.blockedUntil = now + this.blockDurationMs;\n }\n }\n\n succeed(key: string): void {\n this.store.delete(key);\n }\n\n /** @internal Test hook. */\n resetForTests(): void {\n this.store.clear();\n }\n\n destroy(): void {\n this.store.destroy();\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AA4CA,MAAM,4BAA4B;AAElC,IAAa,iBAAb,MAA4B;CAC1B;CACA;CACA;CACA;CACA;CACA;CAEA,YAAY,KAA2B;AACrC,OAAK,cAAc,KAAK,IAAI,GAAG,KAAK,MAAM,IAAI,YAAY,CAAC;AAC3D,OAAK,WAAW,KAAK,IAAI,KAAM,KAAK,MAAM,IAAI,SAAS,CAAC;AACxD,OAAK,kBAAkB,KAAK,IAAI,KAAM,KAAK,MAAM,IAAI,gBAAgB,CAAC;AACtE,OAAK,kBAAkB,KAAK,IAAI,GAAG,KAAK,MAAM,IAAI,mBAAmB,0BAA0B,CAAC;AAChG,OAAK,QAAQ,IAAI,SAAS,KAAK;AAC/B,OAAK,QAAQ,IAAI,WAAkB;GACjC,cAAc,IAAI,gBAAgB,KAAK,WAAW,KAAK;GACvD,OAAO,KAAK;GACb,CAAC;;CAGJ,MAAM,KAA2B;EAC/B,MAAM,MAAM,KAAK,OAAO;EACxB,MAAM,QAAQ,KAAK,MAAM,IAAI,IAAI;AACjC,MAAI,CAAC,OAAO,aAAc,QAAO,EAAE,SAAS,OAAO;AACnD,MAAI,OAAO,MAAM,cAAc;AAC7B,SAAM,eAAe,KAAA;AACrB,SAAM,QAAQ;AACd,SAAM,cAAc;AACpB,SAAM,gBAAgB;AACtB,UAAO,EAAE,SAAS,OAAO;;AAE3B,SAAO;GACL,SAAS;GACT,eAAe,KAAK,IAAI,GAAG,KAAK,MAAM,MAAM,eAAe,OAAO,IAAK,CAAC;GACzE;;CAGH,KAAK,KAAmB;EACtB,MAAM,MAAM,KAAK,OAAO;EACxB,IAAI,QAAQ,KAAK,MAAM,IAAI,IAAI;AAC/B,MAAI,CAAC,OAAO;AACV,WAAQ;IAAE,aAAa;IAAK,OAAO;IAAG,eAAe;IAAK;AAC1D,QAAK,MAAM,IAAI,KAAK,MAAM;;AAG5B,QAAM,gBAAgB;AAEtB,MAAI,MAAM,gBAAgB,MAAM,MAAM,aAAc;AACpD,MAAI,MAAM,gBAAgB,OAAO,MAAM,cAAc;AACnD,SAAM,eAAe,KAAA;AACrB,SAAM,QAAQ;AACd,SAAM,cAAc;;AAGtB,MAAI,MAAM,MAAM,cAAc,KAAK,UAAU;AAC3C,SAAM,QAAQ;AACd,SAAM,cAAc;;AAGtB,MACE,MAAM,oBAAoB,KAAA,KAC1B,MAAM,MAAM,kBAAkB,KAAK,iBACnC;AACA,SAAM,kBAAkB;AACxB;;AAGF,QAAM,kBAAkB;AACxB,QAAM,SAAS;AACf,MAAI,MAAM,SAAS,KAAK,YACtB,OAAM,eAAe,MAAM,KAAK;;CAIpC,QAAQ,KAAmB;AACzB,OAAK,MAAM,OAAO,IAAI;;;CAIxB,gBAAsB;AACpB,OAAK,MAAM,OAAO;;CAGpB,UAAgB;AACd,OAAK,MAAM,SAAS"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"keyed-store.js","names":[],"sources":["../../../../src/infra/rate-limit/keyed-store.ts"],"sourcesContent":["/**\n * Keyed in-memory store with periodic stale-entry sweep. Internal helper for\n * the rate-limit primitives — keep it package-private (re-export only via\n * `infra/rate-limit/index.ts` if a real consumer appears).\n *\n * Lifecycle: `new` → use → `destroy()`. Buckets created from this store are\n * registered in the gateway's bucket registry, which calls `destroy()` on\n * graceful shutdown so the cleanup timer doesn't leak.\n */\n\nexport type Clock = () => number;\n\nexport type KeyedStoreOptions = {\n /** Drop entries whose `lastTouchedMs` is older than this. */\n staleAfterMs: number;\n /** How often the sweep runs. Defaults to `staleAfterMs / 4` (capped at 10min). */\n cleanupIntervalMs?: number;\n /** Injected clock for deterministic tests. */\n clock?: Clock;\n};\n\nexport class KeyedStore<V extends { lastTouchedMs: number }> {\n private readonly map = new Map<string, V>();\n private readonly clock: Clock;\n private readonly staleAfterMs: number;\n private cleanupTimer?: NodeJS.Timeout;\n\n constructor(opts: KeyedStoreOptions) {\n this.clock = opts.clock ?? Date.now;\n this.staleAfterMs = Math.max(1000, opts.staleAfterMs);\n const interval = Math.min(\n 10 * 60 * 1000,\n Math.max(1000, opts.cleanupIntervalMs ?? Math.floor(this.staleAfterMs / 4)),\n );\n this.cleanupTimer = setInterval(() => this.sweep(), interval);\n this.cleanupTimer.unref?.();\n }\n\n get(key: string): V | undefined {\n return this.map.get(key);\n }\n\n set(key: string, value: V): void {\n this.map.set(key, value);\n }\n\n delete(key: string): void {\n this.map.delete(key);\n }\n\n size(): number {\n return this.map.size;\n }\n\n clear(): void {\n this.map.clear();\n }\n\n destroy(): void {\n if (this.cleanupTimer) {\n clearInterval(this.cleanupTimer);\n this.cleanupTimer = undefined;\n }\n this.map.clear();\n }\n\n private sweep(): void {\n const now = this.clock();\n for (const [k, v] of this.map.entries()) {\n if (now - v.lastTouchedMs > this.staleAfterMs) {\n this.map.delete(k);\n }\n }\n }\n}\n"],"mappings":";AAqBA,IAAa,aAAb,MAA6D;CAC3D,sBAAuB,IAAI,KAAgB;CAC3C;CACA;CACA;CAEA,YAAY,MAAyB;AACnC,OAAK,QAAQ,KAAK,SAAS,KAAK;AAChC,OAAK,eAAe,KAAK,IAAI,KAAM,KAAK,aAAa;EACrD,MAAM,WAAW,KAAK,IACpB,MAAU,KACV,KAAK,IAAI,KAAM,KAAK,qBAAqB,KAAK,MAAM,KAAK,eAAe,EAAE,CAAC,CAC5E;AACD,OAAK,eAAe,kBAAkB,KAAK,OAAO,EAAE,SAAS;AAC7D,OAAK,aAAa,SAAS;;CAG7B,IAAI,KAA4B;AAC9B,SAAO,KAAK,IAAI,IAAI,IAAI;;CAG1B,IAAI,KAAa,OAAgB;AAC/B,OAAK,IAAI,IAAI,KAAK,MAAM;;CAG1B,OAAO,KAAmB;AACxB,OAAK,IAAI,OAAO,IAAI;;CAGtB,OAAe;AACb,SAAO,KAAK,IAAI;;CAGlB,QAAc;AACZ,OAAK,IAAI,OAAO;;CAGlB,UAAgB;AACd,MAAI,KAAK,cAAc;AACrB,iBAAc,KAAK,aAAa;AAChC,QAAK,eAAe,KAAA;;AAEtB,OAAK,IAAI,OAAO;;CAGlB,QAAsB;EACpB,MAAM,MAAM,KAAK,OAAO;AACxB,OAAK,MAAM,CAAC,GAAG,MAAM,KAAK,IAAI,SAAS,CACrC,KAAI,MAAM,EAAE,gBAAgB,KAAK,aAC/B,MAAK,IAAI,OAAO,EAAE"}