@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":"site-share-config.js","names":[],"sources":["../../../src/share/site-share-config.ts"],"sourcesContent":["import { z } from 'zod';\n\nimport type { Config } from '../config/schema.js';\nimport {\n SITE_SHARE_CONFIG_DEFAULTS,\n type SiteShareConfig,\n} from './site-share-types.js';\n\nconst SiteShareStaticPatchSchema = z.object({\n enabled: z.boolean().optional(),\n maxRootDirSize: z.number().int().min(1_048_576).max(10_737_418_240).optional(),\n maxFileCount: z.number().int().min(1).max(100_000).optional(),\n rewriteEnabledByDefault: z.boolean().optional(),\n});\n\nconst SiteShareProxyPatchSchema = z.object({\n enabled: z.boolean().optional(),\n allowedUpstreamHosts: z.array(z.string().min(1)).optional(),\n allowedUpstreamPorts: z.array(z.number().int().min(1).max(65535)).optional(),\n forwardWebSocket: z.boolean().optional(),\n bodySizeLimit: z.number().int().min(0).max(1_073_741_824).optional(),\n requestTimeoutMs: z.number().int().min(1_000).max(600_000).optional(),\n wsIdleTimeoutMs: z.number().int().min(10_000).max(3_600_000).optional(),\n rewriteSetCookiePath: z.boolean().optional(),\n});\n\nconst SiteSharePatchSchema = z.object({\n enabled: z.boolean().optional(),\n publicHostSuffix: z.string().min(1).optional(),\n defaultTtlMs: z.number().int().min(60_000).max(604_800_000).optional(),\n maxTtlMs: z.number().int().min(60_000).max(2_592_000_000).optional(),\n maxActiveSites: z.number().int().min(1).max(1_000).optional(),\n static: SiteShareStaticPatchSchema.optional(),\n proxy: SiteShareProxyPatchSchema.optional(),\n});\n\nexport function resolveSiteShareConfig(service: { currentConfig: Config }): SiteShareConfig {\n const raw = (service.currentConfig.gateway as Record<string, unknown> | undefined)?.siteShare;\n return mergeWithDefaults(raw);\n}\n\nexport function mergeWithDefaults(raw: unknown): SiteShareConfig {\n const base = SITE_SHARE_CONFIG_DEFAULTS;\n if (!raw || typeof raw !== 'object' || Array.isArray(raw)) {\n return JSON.parse(JSON.stringify(base)) as SiteShareConfig;\n }\n const r = raw as Partial<SiteShareConfig> & {\n static?: Partial<SiteShareConfig['static']>;\n proxy?: Partial<SiteShareConfig['proxy']>;\n };\n return {\n enabled: r.enabled ?? base.enabled,\n publicHostSuffix: r.publicHostSuffix ?? base.publicHostSuffix,\n defaultTtlMs: r.defaultTtlMs ?? base.defaultTtlMs,\n maxTtlMs: r.maxTtlMs ?? base.maxTtlMs,\n maxActiveSites: r.maxActiveSites ?? base.maxActiveSites,\n static: {\n enabled: r.static?.enabled ?? base.static.enabled,\n maxRootDirSize: r.static?.maxRootDirSize ?? base.static.maxRootDirSize,\n maxFileCount: r.static?.maxFileCount ?? base.static.maxFileCount,\n rewriteEnabledByDefault: r.static?.rewriteEnabledByDefault ?? base.static.rewriteEnabledByDefault,\n },\n proxy: {\n enabled: r.proxy?.enabled ?? base.proxy.enabled,\n allowedUpstreamHosts: r.proxy?.allowedUpstreamHosts ?? [...base.proxy.allowedUpstreamHosts],\n allowedUpstreamPorts: r.proxy?.allowedUpstreamPorts ?? [...base.proxy.allowedUpstreamPorts],\n forwardWebSocket: r.proxy?.forwardWebSocket ?? base.proxy.forwardWebSocket,\n bodySizeLimit: r.proxy?.bodySizeLimit ?? base.proxy.bodySizeLimit,\n requestTimeoutMs: r.proxy?.requestTimeoutMs ?? base.proxy.requestTimeoutMs,\n wsIdleTimeoutMs: r.proxy?.wsIdleTimeoutMs ?? base.proxy.wsIdleTimeoutMs,\n rewriteSetCookiePath: r.proxy?.rewriteSetCookiePath ?? base.proxy.rewriteSetCookiePath,\n },\n };\n}\n\nexport function mergeSiteShareConfigPatch(\n config: Config,\n patch: Record<string, unknown>,\n): { ok: true } | { ok: false; message: string } {\n const parsed = SiteSharePatchSchema.safeParse(patch);\n if (!parsed.success) {\n return { ok: false, message: parsed.error.issues.map((i) => i.message).join('; ') };\n }\n if (!config.gateway) {\n config.gateway = {\n bind: 'loopback',\n port: 18790,\n auth: { mode: 'token' },\n heartbeat: { enabled: true, intervalMs: 1_800_000, includeSystemPromptSection: false },\n maxSseConnections: 100,\n corsOrigins: [],\n };\n }\n\n const cfg = config.gateway as Record<string, unknown>;\n const current = mergeWithDefaults(cfg.siteShare);\n const next: SiteShareConfig = {\n ...current,\n ...parsed.data,\n static: parsed.data.static ? { ...current.static, ...parsed.data.static } : current.static,\n proxy: parsed.data.proxy ? { ...current.proxy, ...parsed.data.proxy } : current.proxy,\n };\n if (next.defaultTtlMs > next.maxTtlMs) {\n return { ok: false, message: 'siteShare.defaultTtlMs must not exceed siteShare.maxTtlMs' };\n }\n cfg.siteShare = next as unknown as Record<string, unknown>;\n return { ok: true };\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"site-share-router.js","names":[],"sources":["../../../src/share/site-share-router.ts"],"sourcesContent":["import type { Context, Hono } from 'hono';\n\nimport { resolveMimeType } from './share-store.js';\nimport { getSiteShareStore } from './site-share-store.js';\nimport { resolveSiteShareConfig } from './site-share-config.js';\nimport { serveStaticSiteRequest } from './site-static-serve.js';\nimport { forwardHttpRequest, handleProxyWebSocketUpgrade } from './site-proxy.js';\nimport { renderShareExpiredPage } from './share-landing.js';\nimport { getClientIpFromHeaders } from '../gateway/security/loopback.js';\nimport { createLogger } from '../utils/logger.js';\nimport type { GatewayService } from '../gateway/service.js';\nimport type { IncomingMessage } from 'node:http';\nimport type { Socket } from 'node:net';\n\nconst log = createLogger('SiteShareRouter');\n\nconst SITE_SUBPATH_PREFIX = '/site/';\n\n/**\n * Extract the share label from the request Host header when the public host\n * suffix matches. Returns `null` if the request did not target a site-share\n * subdomain.\n */\nexport function extractSiteShareLabel(host: string | null | undefined, suffix: string): string | null {\n if (!host) return null;\n const lowered = host.toLowerCase().split(':')[0];\n const normSuffix = suffix.toLowerCase();\n if (lowered === normSuffix) return null;\n if (!lowered.endsWith(`.${normSuffix}`)) return null;\n const label = lowered.slice(0, -1 * (normSuffix.length + 1));\n if (!label || label.includes('.')) return null;\n return label;\n}\n\n/**\n * Hono middleware. Intercepts requests whose Host header is `*.share.xopc.ai`\n * (or matches the configured suffix), routes them to the matching site share.\n * Falls through to next() when the host does not match.\n *\n * Also handles the subpath fallback `/site/:token/*` for environments without\n * wildcard DNS — same handler logic, just different prefix extraction.\n */\nexport function createSiteShareMiddleware(service: GatewayService) {\n return async (c: Context, next: () => Promise<void>) => {\n const config = resolveSiteShareConfig(service);\n if (!config.enabled) return next();\n const store = getSiteShareStore(config);\n store.updateConfig(config);\n\n const host = c.req.header('host');\n const label = extractSiteShareLabel(host, config.publicHostSuffix);\n const url = new URL(c.req.url);\n const clientIp = getClientIpFromHeaders({ get: (n: string) => c.req.header(n) ?? undefined });\n\n let record = null as ReturnType<typeof store.getByToken>;\n let innerPath = url.pathname;\n let basePrefix = '';\n\n if (label) {\n record = store.resolveByHostLabel(label);\n if (!record) return next();\n } else if (url.pathname.startsWith(SITE_SUBPATH_PREFIX)) {\n const rest = url.pathname.slice(SITE_SUBPATH_PREFIX.length);\n const slash = rest.indexOf('/');\n const token = slash < 0 ? rest : rest.slice(0, slash);\n const tail = slash < 0 ? '' : rest.slice(slash);\n record = store.getByToken(token) ?? store.getBySubdomain(token);\n if (!record) return next();\n innerPath = tail || '/';\n basePrefix = `${SITE_SUBPATH_PREFIX}${token}`;\n } else {\n return next();\n }\n\n const validation = store.validateAccess(record);\n if (!validation.valid) {\n return c.html(renderShareExpiredPage(validation.reason as never), 410);\n }\n\n if (record.source.kind === 'static') {\n try {\n const result = await serveStaticSiteRequest(record, innerPath, basePrefix);\n store.recordRequest(record.id, clientIp);\n return result;\n } catch (err) {\n log.warn({ err, shareId: record.id }, 'static serve failed');\n return new Response('Internal error', { status: 500 });\n }\n }\n\n if (record.source.kind === 'proxy') {\n const ctx = {\n innerPath,\n basePrefix,\n clientIp,\n originalUrl: url,\n forwardedProto: url.protocol === 'https:' ? ('https' as const) : ('http' as const),\n };\n const { response } = await forwardHttpRequest(record, store, c.req.raw, ctx);\n return response;\n }\n\n return next();\n };\n}\n\n/** Standalone HTTP upgrade handler that bridges WebSocket requests to the proxy share. */\nexport function handleSiteShareUpgrade(\n service: GatewayService,\n req: IncomingMessage,\n socket: Socket,\n head: Buffer,\n): boolean {\n const config = resolveSiteShareConfig(service);\n if (!config.enabled) return false;\n if (!config.proxy.enabled || !config.proxy.forwardWebSocket) return false;\n\n const store = getSiteShareStore(config);\n store.updateConfig(config);\n\n const host = (req.headers.host ?? '').toString();\n const label = extractSiteShareLabel(host, config.publicHostSuffix);\n const url = new URL(req.url ?? '/', `http://${host || 'localhost'}`);\n\n let record: ReturnType<typeof store.getByToken> = null;\n let innerPath = url.pathname;\n let basePrefix = '';\n if (label) {\n record = store.resolveByHostLabel(label);\n } else if (url.pathname.startsWith(SITE_SUBPATH_PREFIX)) {\n const rest = url.pathname.slice(SITE_SUBPATH_PREFIX.length);\n const slash = rest.indexOf('/');\n const token = slash < 0 ? rest : rest.slice(0, slash);\n const tail = slash < 0 ? '' : rest.slice(slash);\n record = store.getByToken(token) ?? store.getBySubdomain(token);\n innerPath = tail || '/';\n basePrefix = `${SITE_SUBPATH_PREFIX}${token}`;\n }\n if (!record) return false;\n const validation = store.validateAccess(record);\n if (!validation.valid) {\n try {\n socket.write('HTTP/1.1 410 Gone\\r\\nConnection: close\\r\\n\\r\\n');\n } catch {\n /* ignore */\n }\n socket.destroy();\n return true;\n }\n if (record.source.kind !== 'proxy') {\n try {\n socket.write('HTTP/1.1 400 Bad Request\\r\\nConnection: close\\r\\n\\r\\n');\n } catch {\n /* ignore */\n }\n socket.destroy();\n return true;\n }\n\n const clientIp = (req.socket.remoteAddress ?? '').replace(/^::ffff:/, '') || '0.0.0.0';\n handleProxyWebSocketUpgrade({\n record,\n store,\n req,\n socket,\n head,\n innerPath,\n basePrefix,\n clientIp,\n });\n return true;\n}\n\n/** Register the middleware on a Hono app — call from createHonoApp. */\nexport function registerSiteShareMiddleware(app: Hono, service: GatewayService): void {\n app.use(createSiteShareMiddleware(service));\n}\n\nvoid resolveMimeType;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"site-share-store.js","names":["resolvePath","relPathPosix"],"sources":["../../../src/share/site-share-store.ts"],"sourcesContent":["import { randomBytes, randomUUID } from 'node:crypto';\nimport { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';\nimport { stat, readdir, lstat, realpath } from 'node:fs/promises';\nimport { join, relative as relPathPosix, resolve as resolvePath } from 'node:path';\n\nimport { resolveStateDir } from '../config/paths.js';\nimport { isPathUnderWorkspace } from '../gateway/workspace-editor-path.js';\nimport { createLogger } from '../utils/logger.js';\nimport {\n SITE_SHARE_CONFIG_DEFAULTS,\n type CreateSiteShareParams,\n type SiteShareConfig,\n type SiteShareRecord,\n type SiteShareStoreData,\n type SiteSource,\n} from './site-share-types.js';\n\nconst log = createLogger('SiteShareStore');\n\nconst SITE_SHARES_FILE = 'site-shares.json';\nconst CLEANUP_INTERVAL_MS = 10 * 60_000;\nconst EXPIRED_RETENTION_MS = 24 * 60 * 60_000;\nconst MAX_STORED = 200;\nconst REQUEST_COUNT_DEBOUNCE_MS = 5_000;\nconst SUBDOMAIN_PATTERN = /^[a-z0-9]([a-z0-9-]{0,30}[a-z0-9])?$/;\n\nfunction resolveStorePath(): string {\n return join(resolveStateDir(), SITE_SHARES_FILE);\n}\n\nexport class SiteShareStore {\n private shares = new Map<string, SiteShareRecord>();\n private byToken = new Map<string, string>();\n private bySubdomain = new Map<string, string>();\n private config: SiteShareConfig;\n private dirty = false;\n private debounceTimer: ReturnType<typeof setTimeout> | null = null;\n private cleanupTimer: ReturnType<typeof setInterval> | null = null;\n /** Optional cleanup hook invoked when a record is dropped (e.g. delete staging dir). */\n private onCleanup: ((record: SiteShareRecord) => void) | null = null;\n\n constructor(config?: Partial<SiteShareConfig>) {\n this.config = { ...SITE_SHARE_CONFIG_DEFAULTS, ...config };\n this.load();\n this.startCleanupTimer();\n }\n\n updateConfig(config: Partial<SiteShareConfig>): void {\n this.config = { ...this.config, ...config };\n }\n\n setCleanupHook(hook: (record: SiteShareRecord) => void): void {\n this.onCleanup = hook;\n }\n\n getConfig(): SiteShareConfig {\n return JSON.parse(JSON.stringify(this.config)) as SiteShareConfig;\n }\n\n // ── CRUD ────────────────────────────────────────────────────────────────────\n\n async create(\n params: CreateSiteShareParams & {\n workspaceRoot: string | null;\n gatewayTokenHash: string;\n },\n ): Promise<SiteShareRecord> {\n if (!this.config.enabled) throw new Error('Site sharing is disabled');\n\n const active = this.getActiveShares();\n if (active.length >= this.config.maxActiveSites) {\n throw new Error(`Maximum active site shares reached (${this.config.maxActiveSites})`);\n }\n\n const ttlMs = params.ttlMs ?? this.config.defaultTtlMs;\n if (ttlMs < 60_000 || ttlMs > this.config.maxTtlMs) {\n throw new Error(`TTL must be between 60s and ${this.config.maxTtlMs / 1000}s`);\n }\n\n const source = await this.buildSource(params);\n\n const subdomain = this.resolveSubdomain(params.subdomain);\n const id = randomUUID();\n const token = randomBytes(24).toString('base64url');\n const now = new Date();\n const record: SiteShareRecord = {\n id,\n token,\n subdomain,\n source,\n createdAt: now.toISOString(),\n expiresAt: new Date(now.getTime() + ttlMs).toISOString(),\n revoked: false,\n description: params.description,\n createdByTokenHash: params.gatewayTokenHash,\n requestCount: 0,\n uniqueClientCount: 0,\n maxRequests: params.maxRequests ?? null,\n };\n\n this.shares.set(id, record);\n this.byToken.set(token, id);\n if (subdomain) this.bySubdomain.set(subdomain, id);\n this.persistSync();\n\n log.info(\n { id, tokenPrefix: token.slice(0, 8), subdomain, kind: source.kind },\n `Site share created (${source.kind})`,\n );\n\n return record;\n }\n\n private async buildSource(params: CreateSiteShareParams & { workspaceRoot: string | null }): Promise<SiteSource> {\n if (params.kind === 'static') {\n if (!this.config.static.enabled) throw new Error('Static site sharing is disabled');\n if (!params.workspaceRoot) throw new Error('workspaceRoot required for static site shares');\n if (!params.path) throw new Error('path required for static site shares');\n const relPath = params.path.trim().replace(/\\\\/g, '/').replace(/^\\/+/, '');\n if (!relPath) throw new Error('Empty path');\n if (relPath.includes('..') || relPath.includes('\\0')) throw new Error('Invalid path');\n const absRoot = resolvePath(params.workspaceRoot, relPath);\n const relToRoot = relPathPosix(resolvePath(params.workspaceRoot), absRoot);\n if (relToRoot.startsWith('..') || relToRoot.split(/[/\\\\]/).includes('..')) {\n throw new Error('Path is outside workspace');\n }\n const real = await realpath(absRoot);\n if (!isPathUnderWorkspace(params.workspaceRoot, real)) {\n throw new Error('Path target is outside workspace');\n }\n const stats = await stat(absRoot);\n if (!stats.isDirectory()) throw new Error('Static source must be a directory');\n const summary = await scanStatic(absRoot, this.config.static.maxFileCount, this.config.static.maxRootDirSize);\n log.debug({ ...summary, rootDir: absRoot }, 'Static site scanned');\n return {\n kind: 'static',\n rootDir: absRoot,\n workspaceRoot: params.workspaceRoot,\n workspaceRelativePath: relPath,\n spaFallback: params.spaFallback ?? true,\n rewriteMode: params.rewriteMode ?? (this.config.static.rewriteEnabledByDefault ? 'html-css' : 'none'),\n };\n }\n\n if (params.kind === 'proxy') {\n if (!this.config.proxy.enabled) throw new Error('Proxy site sharing is disabled');\n if (!params.upstreamUrl) throw new Error('upstreamUrl required for proxy shares');\n const validated = validateUpstreamUrl(params.upstreamUrl, this.config.proxy);\n return {\n kind: 'proxy',\n upstreamUrl: validated,\n rewriteSetCookiePath: this.config.proxy.rewriteSetCookiePath,\n forwardWebSocket: params.forwardWebSocket ?? this.config.proxy.forwardWebSocket,\n forwardedHeaders: 'minimal',\n };\n }\n\n throw new Error(`Unsupported site share kind: ${params.kind}`);\n }\n\n private resolveSubdomain(preferred?: string): string | null {\n if (!preferred) return null;\n const lower = preferred.trim().toLowerCase();\n if (!SUBDOMAIN_PATTERN.test(lower)) {\n throw new Error('Subdomain must match /^[a-z0-9]([a-z0-9-]{0,30}[a-z0-9])?$/');\n }\n if (this.bySubdomain.has(lower)) {\n throw new Error(`Subdomain '${lower}' already in use`);\n }\n return lower;\n }\n\n getById(id: string): SiteShareRecord | null {\n return this.shares.get(id) ?? null;\n }\n\n getByToken(token: string): SiteShareRecord | null {\n const id = this.byToken.get(token);\n return id ? this.shares.get(id) ?? null : null;\n }\n\n getBySubdomain(subdomain: string): SiteShareRecord | null {\n const id = this.bySubdomain.get(subdomain.toLowerCase());\n return id ? this.shares.get(id) ?? null : null;\n }\n\n /**\n * Look up a record by token first, then by subdomain. Subdomain label may\n * itself be the share token (when user didn't pick a custom subdomain).\n */\n resolveByHostLabel(label: string): SiteShareRecord | null {\n return this.getByToken(label) ?? this.getBySubdomain(label);\n }\n\n getActiveShares(): SiteShareRecord[] {\n const now = Date.now();\n return [...this.shares.values()].filter(\n (r) => !r.revoked && now < new Date(r.expiresAt).getTime(),\n );\n }\n\n getAllShares(): SiteShareRecord[] {\n return [...this.shares.values()].sort(\n (a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime(),\n );\n }\n\n validateAccess(record: SiteShareRecord): { valid: boolean; reason?: string } {\n if (record.revoked) return { valid: false, reason: 'revoked' };\n if (Date.now() >= new Date(record.expiresAt).getTime()) return { valid: false, reason: 'expired' };\n if (record.maxRequests !== null && record.requestCount >= record.maxRequests) {\n return { valid: false, reason: 'max_requests' };\n }\n return { valid: true };\n }\n\n /** Increment counters when a request lands. Debounced persist. */\n recordRequest(id: string, clientIp: string): void {\n const record = this.shares.get(id);\n if (!record) return;\n record.requestCount++;\n const recent = (record.recentClientIps ??= []);\n if (!recent.includes(clientIp)) {\n recent.unshift(clientIp);\n if (recent.length > 200) recent.length = 200;\n record.uniqueClientCount = recent.length;\n }\n this.scheduleDebouncedPersist();\n }\n\n setThumbnailStatus(id: string, status: 'pending' | 'ready' | 'failed'): void {\n const record = this.shares.get(id);\n if (!record) return;\n record.thumbnailStatus = status;\n if (status === 'ready') record.thumbnailGeneratedAt = new Date().toISOString();\n if (status === 'failed') record.thumbnailFailedAt = new Date().toISOString();\n this.persistSync();\n }\n\n revoke(id: string): boolean {\n const record = this.shares.get(id);\n if (!record) return false;\n record.revoked = true;\n this.persistSync();\n if (this.onCleanup) {\n try {\n this.onCleanup(record);\n } catch (err) {\n log.warn({ err, id }, 'Site share cleanup hook threw on revoke');\n }\n }\n log.info({ id, tokenPrefix: record.token.slice(0, 8) }, 'Site share revoked');\n return true;\n }\n\n revokeMany(ids: string[]): number {\n let count = 0;\n for (const id of ids) {\n const record = this.shares.get(id);\n if (record && !record.revoked) {\n record.revoked = true;\n count++;\n }\n }\n if (count > 0) this.persistSync();\n return count;\n }\n\n revokeExpired(): number {\n const now = Date.now();\n let count = 0;\n for (const record of this.shares.values()) {\n if (!record.revoked && now >= new Date(record.expiresAt).getTime()) {\n record.revoked = true;\n count++;\n }\n }\n if (count > 0) this.persistSync();\n return count;\n }\n\n update(id: string, patch: { extendTtlMs?: number; maxRequests?: number | null }): SiteShareRecord | null {\n const record = this.shares.get(id);\n if (!record) return null;\n if (patch.extendTtlMs !== undefined) {\n record.expiresAt = new Date(Date.now() + patch.extendTtlMs).toISOString();\n }\n if (patch.maxRequests !== undefined) {\n record.maxRequests = patch.maxRequests;\n }\n this.persistSync();\n return record;\n }\n\n // ── Persistence ─────────────────────────────────────────────────────────────\n\n private load(): void {\n const path = resolveStorePath();\n if (!existsSync(path)) return;\n try {\n const raw = readFileSync(path, 'utf8');\n const data = JSON.parse(raw) as SiteShareStoreData;\n if (data.version !== 1 || !Array.isArray(data.shares)) return;\n const now = Date.now();\n let cleaned = 0;\n for (const record of data.shares) {\n const expiredMs = now - new Date(record.expiresAt).getTime();\n if (expiredMs > EXPIRED_RETENTION_MS) {\n cleaned++;\n continue;\n }\n this.shares.set(record.id, record);\n this.byToken.set(record.token, record.id);\n if (record.subdomain) this.bySubdomain.set(record.subdomain, record.id);\n }\n if (cleaned > 0) {\n log.info({ cleaned }, `Cleaned ${cleaned} expired site-share records on load`);\n this.persistSync();\n }\n } catch (err) {\n log.warn({ err }, 'Failed to load site-shares.json');\n }\n }\n\n private persistSync(): void {\n const path = resolveStorePath();\n mkdirSync(resolveStateDir(), { recursive: true });\n let records = [...this.shares.values()];\n if (records.length > MAX_STORED) {\n records.sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime());\n records = records.slice(0, MAX_STORED);\n this.shares.clear();\n this.byToken.clear();\n this.bySubdomain.clear();\n for (const r of records) {\n this.shares.set(r.id, r);\n this.byToken.set(r.token, r.id);\n if (r.subdomain) this.bySubdomain.set(r.subdomain, r.id);\n }\n }\n const data: SiteShareStoreData = { version: 1, shares: records };\n writeFileSync(path, `${JSON.stringify(data, null, 2)}\\n`, 'utf8');\n }\n\n private scheduleDebouncedPersist(): void {\n this.dirty = true;\n if (this.debounceTimer) return;\n this.debounceTimer = setTimeout(() => {\n this.debounceTimer = null;\n if (this.dirty) {\n this.dirty = false;\n this.persistSync();\n }\n }, REQUEST_COUNT_DEBOUNCE_MS);\n this.debounceTimer.unref?.();\n }\n\n private startCleanupTimer(): void {\n this.cleanupTimer = setInterval(() => {\n const now = Date.now();\n let removed = 0;\n for (const [id, record] of this.shares) {\n const expiredMs = now - new Date(record.expiresAt).getTime();\n if (expiredMs > EXPIRED_RETENTION_MS) {\n this.shares.delete(id);\n this.byToken.delete(record.token);\n if (record.subdomain) this.bySubdomain.delete(record.subdomain);\n if (this.onCleanup) {\n try {\n this.onCleanup(record);\n } catch (err) {\n log.warn({ err, id }, 'Site share cleanup hook threw');\n }\n }\n removed++;\n }\n }\n if (removed > 0) {\n this.persistSync();\n log.debug({ removed }, `Cleaned ${removed} expired site shares`);\n }\n }, CLEANUP_INTERVAL_MS);\n this.cleanupTimer.unref?.();\n }\n\n shutdown(): void {\n if (this.cleanupTimer) {\n clearInterval(this.cleanupTimer);\n this.cleanupTimer = null;\n }\n if (this.debounceTimer) {\n clearTimeout(this.debounceTimer);\n this.debounceTimer = null;\n }\n if (this.dirty) {\n this.dirty = false;\n this.persistSync();\n }\n }\n}\n\n// ── Helpers ───────────────────────────────────────────────────────────────────\n\nasync function scanStatic(\n root: string,\n maxFileCount: number,\n maxRootDirSize: number,\n): Promise<{ fileCount: number; totalSize: number }> {\n let fileCount = 0;\n let totalSize = 0;\n\n async function walk(dir: string, depth: number): Promise<void> {\n if (depth > 16) return;\n const dirents = await readdir(dir, { withFileTypes: true });\n for (const dirent of dirents) {\n if (fileCount >= maxFileCount) throw new Error(`Static site exceeds maxFileCount (${maxFileCount})`);\n const abs = resolvePath(dir, dirent.name);\n const lst = await lstat(abs);\n if (lst.isSymbolicLink()) continue; // never follow symlinks in a public static root\n if (lst.isFile()) {\n fileCount++;\n totalSize += lst.size;\n if (totalSize > maxRootDirSize) {\n const mb = (maxRootDirSize / 1_048_576).toFixed(0);\n throw new Error(`Static site exceeds maxRootDirSize (${mb} MB)`);\n }\n } else if (lst.isDirectory()) {\n await walk(abs, depth + 1);\n }\n }\n }\n\n await walk(root, 0);\n return { fileCount, totalSize };\n}\n\nfunction validateUpstreamUrl(raw: string, cfg: SiteShareConfig['proxy']): string {\n let parsed: URL;\n try {\n parsed = new URL(raw);\n } catch {\n throw new Error('upstreamUrl must be a valid URL');\n }\n if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:') {\n throw new Error('upstreamUrl must use http or https');\n }\n const host = parsed.hostname.toLowerCase();\n if (!cfg.allowedUpstreamHosts.map((h) => h.toLowerCase()).includes(host)) {\n throw new Error(`upstream host '${host}' is not in allowedUpstreamHosts`);\n }\n const port = parsed.port ? Number(parsed.port) : parsed.protocol === 'https:' ? 443 : 80;\n if (!cfg.allowedUpstreamPorts.includes(port)) {\n throw new Error(`upstream port ${port} is not in allowedUpstreamPorts`);\n }\n // Strip path / search / hash — proxy uses base only\n return `${parsed.protocol}//${parsed.host}`;\n}\n\n// ── Singleton ─────────────────────────────────────────────────────────────────\n\nlet singleton: SiteShareStore | null = null;\n\nexport function getSiteShareStore(config?: Partial<SiteShareConfig>): SiteShareStore {\n if (!singleton) singleton = new SiteShareStore(config);\n return singleton;\n}\n\nexport function resetSiteShareStoreForTests(): void {\n singleton?.shutdown();\n singleton = null;\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"site-share-types.js","names":[],"sources":["../../../src/share/site-share-types.ts"],"sourcesContent":["export type SiteSourceKind = 'static' | 'proxy';\n\nexport interface SiteStaticSource {\n kind: 'static';\n /** Absolute filesystem root of the static site directory. */\n rootDir: string;\n /** Workspace root captured at creation for re-validation. */\n workspaceRoot: string;\n /** Workspace-relative POSIX path for display. */\n workspaceRelativePath: string;\n /** Send index.html (status 200) for unmatched paths under root (SPA). */\n spaFallback: boolean;\n /** Whether HTML/CSS absolute-path rewriting is applied. */\n rewriteMode: 'none' | 'html-only' | 'html-css';\n /** Regex string matched against URL path; matches get an immutable cache. */\n immutableAssetsRegex?: string;\n}\n\nexport interface SiteProxySource {\n kind: 'proxy';\n /** Upstream base URL (e.g. http://127.0.0.1:3000). */\n upstreamUrl: string;\n /** Forward Set-Cookie path attribute (subpath mode only). */\n rewriteSetCookiePath: boolean;\n /** Whether to handle WebSocket upgrades. */\n forwardWebSocket: boolean;\n /** Per-request forwarded headers strategy. */\n forwardedHeaders: 'minimal' | 'full';\n}\n\nexport type SiteSource = SiteStaticSource | SiteProxySource;\n\nexport interface SiteShareRecord {\n id: string;\n /** Token used both as the URL subdomain label (subdomain mode) and as `/site/:token/` subpath fallback. */\n token: string;\n /** Optional creator-chosen subdomain (must be unique, only [a-z0-9-]). */\n subdomain: string | null;\n source: SiteSource;\n createdAt: string;\n expiresAt: string;\n revoked: boolean;\n description?: string;\n createdByTokenHash: string;\n requestCount: number;\n uniqueClientCount: number;\n /** Hard cap on total requests served (null = unlimited). */\n maxRequests: number | null;\n /** Cached client IPs that have counted toward uniqueClientCount (last 200). */\n recentClientIps?: string[];\n /** Thumbnail generation status (parallels ShareRecord). */\n thumbnailStatus?: 'pending' | 'ready' | 'failed';\n thumbnailGeneratedAt?: string;\n thumbnailFailedAt?: string;\n}\n\nexport interface SiteShareStoreData {\n version: 1;\n shares: SiteShareRecord[];\n}\n\nexport interface CreateSiteShareParams {\n /** 'static' uses workspace path; 'proxy' uses upstreamUrl. */\n kind: SiteSourceKind;\n /** Static: workspace-relative path of build output. */\n path?: string;\n /** Proxy: full upstream URL (must be loopback or whitelisted). */\n upstreamUrl?: string;\n /** Default 6h. */\n ttlMs?: number;\n /** Optional friendly description. */\n description?: string;\n /** Optional preferred subdomain (will fall back to token if taken). */\n subdomain?: string;\n /** Optional max request count. */\n maxRequests?: number | null;\n /** Static: SPA fallback (default true for static). */\n spaFallback?: boolean;\n /** Static: rewrite mode (default 'none'). */\n rewriteMode?: 'none' | 'html-only' | 'html-css';\n /** Proxy: forward WS (default true if enabled in config). */\n forwardWebSocket?: boolean;\n sessionKey?: string;\n agentId?: string;\n}\n\nexport interface SiteShareConfig {\n enabled: boolean;\n publicHostSuffix: string;\n defaultTtlMs: number;\n maxTtlMs: number;\n maxActiveSites: number;\n static: {\n enabled: boolean;\n maxRootDirSize: number;\n maxFileCount: number;\n rewriteEnabledByDefault: boolean;\n };\n proxy: {\n enabled: boolean;\n allowedUpstreamHosts: string[];\n allowedUpstreamPorts: number[];\n forwardWebSocket: boolean;\n bodySizeLimit: number;\n requestTimeoutMs: number;\n wsIdleTimeoutMs: number;\n rewriteSetCookiePath: boolean;\n };\n}\n\nexport const SITE_SHARE_CONFIG_DEFAULTS: SiteShareConfig = {\n enabled: true,\n publicHostSuffix: 'share.xopc.ai',\n defaultTtlMs: 21_600_000,\n maxTtlMs: 604_800_000,\n maxActiveSites: 5,\n static: {\n enabled: true,\n maxRootDirSize: 524_288_000,\n maxFileCount: 10_000,\n rewriteEnabledByDefault: false,\n },\n proxy: {\n enabled: true,\n allowedUpstreamHosts: ['127.0.0.1', 'localhost', '::1'],\n allowedUpstreamPorts: [3000, 3001, 4321, 5173, 8000, 8080, 8888, 9000],\n forwardWebSocket: true,\n bodySizeLimit: 52_428_800,\n requestTimeoutMs: 30_000,\n wsIdleTimeoutMs: 300_000,\n rewriteSetCookiePath: true,\n },\n};\n"],"mappings":";AA8GA,MAAa,6BAA8C;CACzD,SAAS;CACT,kBAAkB;CAClB,cAAc;CACd,UAAU;CACV,gBAAgB;CAChB,QAAQ;EACN,SAAS;EACT,gBAAgB;EAChB,cAAc;EACd,yBAAyB;EAC1B;CACD,OAAO;EACL,SAAS;EACT,sBAAsB;GAAC;GAAa;GAAa;GAAM;EACvD,sBAAsB;GAAC;GAAM;GAAM;GAAM;GAAM;GAAM;GAAM;GAAM;GAAK;EACtE,kBAAkB;EAClB,eAAe;EACf,kBAAkB;EAClB,iBAAiB;EACjB,sBAAsB;EACvB;CACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"site-static-serve.js","names":["resolvePath","relPathPosix"],"sources":["../../../src/share/site-static-serve.ts"],"sourcesContent":["import { createReadStream } from 'node:fs';\nimport { stat, readFile } from 'node:fs/promises';\nimport { resolve as resolvePath, relative as relPathPosix, join } from 'node:path';\nimport { Readable } from 'node:stream';\n\nimport { isPathUnderWorkspace } from '../gateway/workspace-editor-path.js';\nimport { resolveMimeType, shareResponseContentType } from './share-store.js';\nimport type { SiteShareRecord, SiteStaticSource } from './site-share-types.js';\n\nconst HASHED_ASSET_RE = /\\.[a-f0-9]{8,}\\.(?:js|mjs|css|woff2?|ttf|otf|svg|png|jpg|jpeg|gif|webp|avif|ico)$/i;\nconst REWRITABLE_TYPES = new Set(['text/html', 'text/css']);\n\n/**\n * Serve a request for a static site share.\n *\n * `urlPath` is the in-site path (already stripped of any subdomain/subpath base).\n * `basePrefix` is the path prefix that the share is mounted under, used by the\n * HTML rewriter to make root-relative URLs (`/assets/x`) point back into the\n * share. Pass '' when serving on a subdomain (root mode).\n */\nexport async function serveStaticSiteRequest(\n record: SiteShareRecord,\n urlPath: string,\n basePrefix: string,\n): Promise<Response> {\n if (record.source.kind !== 'static') {\n return new Response('not_static', { status: 400 });\n }\n const source = record.source;\n\n const sanitized = sanitizePath(urlPath);\n if (sanitized.startsWith('..')) return new Response('forbidden', { status: 403 });\n\n const absInitial = resolvePath(source.rootDir, sanitized);\n const inside = await pathInsideRoot(source.rootDir, source.workspaceRoot, absInitial);\n if (!inside.ok) {\n if (source.spaFallback) {\n return serveIndexFallback(source, basePrefix);\n }\n return new Response('not_found', { status: 404 });\n }\n\n let abs = inside.abs;\n let stats;\n try {\n stats = await stat(abs);\n } catch {\n if (source.spaFallback) return serveIndexFallback(source, basePrefix);\n return new Response('not_found', { status: 404 });\n }\n\n if (stats.isDirectory()) {\n const indexPath = join(abs, 'index.html');\n try {\n const indexStat = await stat(indexPath);\n if (indexStat.isFile()) {\n abs = indexPath;\n stats = indexStat;\n } else if (source.spaFallback) {\n return serveIndexFallback(source, basePrefix);\n } else {\n return new Response('not_found', { status: 404 });\n }\n } catch {\n if (source.spaFallback) return serveIndexFallback(source, basePrefix);\n return new Response('not_found', { status: 404 });\n }\n }\n\n const fileName = abs.split(/[\\\\/]/).pop() ?? 'file';\n const mime = resolveMimeType(fileName);\n\n const cacheHeader = decideCacheHeader(sanitized, mime);\n\n if (source.rewriteMode !== 'none' && REWRITABLE_TYPES.has(mime)) {\n const raw = await readFile(abs, 'utf8');\n const rewritten = rewriteAbsolutePaths(raw, mime, basePrefix, source.rewriteMode);\n const bytes = Buffer.from(rewritten, 'utf8');\n return new Response(bytes, {\n status: 200,\n headers: buildHeaders(mime, bytes.length, cacheHeader, fileName),\n });\n }\n\n const stream = createReadStream(abs);\n const webStream = Readable.toWeb(stream) as ReadableStream;\n return new Response(webStream, {\n status: 200,\n headers: buildHeaders(mime, stats.size, cacheHeader, fileName),\n });\n}\n\nasync function serveIndexFallback(source: SiteStaticSource, basePrefix: string): Promise<Response> {\n const indexPath = join(source.rootDir, 'index.html');\n try {\n const raw = await readFile(indexPath, 'utf8');\n const rewritten =\n source.rewriteMode !== 'none' ? rewriteAbsolutePaths(raw, 'text/html', basePrefix, source.rewriteMode) : raw;\n const bytes = Buffer.from(rewritten, 'utf8');\n return new Response(bytes, {\n status: 200,\n headers: buildHeaders('text/html', bytes.length, 'no-cache', 'index.html'),\n });\n } catch {\n return new Response('not_found', { status: 404 });\n }\n}\n\nfunction buildHeaders(\n mime: string,\n contentLength: number,\n cacheControl: string,\n fileName: string,\n): Record<string, string> {\n return {\n 'Content-Type': shareResponseContentType(mime),\n 'Content-Length': String(contentLength),\n 'Cache-Control': cacheControl,\n 'X-Content-Type-Options': 'nosniff',\n 'Referrer-Policy': 'no-referrer',\n // Don't force attachment — site-share is meant to be browsed.\n 'Content-Disposition': `inline; filename=\"${fileName.replace(/[^\\x20-\\x7e]/g, '_').replace(/\"/g, '')}\"`,\n };\n}\n\nfunction decideCacheHeader(urlPath: string, mime: string): string {\n if (HASHED_ASSET_RE.test(urlPath)) {\n return 'public, max-age=31536000, immutable';\n }\n if (mime === 'text/html') return 'no-cache';\n return 'public, max-age=600';\n}\n\nfunction sanitizePath(input: string): string {\n let p = input.replace(/\\\\/g, '/');\n p = p.replace(/^\\/+/, '');\n if (p.includes('\\0')) return '..';\n if (p.split('/').includes('..')) return '..';\n return p;\n}\n\nasync function pathInsideRoot(\n rootDir: string,\n workspaceRoot: string,\n abs: string,\n): Promise<{ ok: true; abs: string } | { ok: false }> {\n const relToRoot = relPathPosix(rootDir, abs);\n if (relToRoot.startsWith('..') || relToRoot.split(/[/\\\\]/).includes('..')) {\n return { ok: false };\n }\n if (!isPathUnderWorkspace(workspaceRoot, abs)) {\n return { ok: false };\n }\n return { ok: true, abs };\n}\n\n// ── HTML/CSS rewriting ────────────────────────────────────────────────────────\n//\n// Best-effort root-relative path prefixing. For SPAs built with `base: '/'`,\n// the produced HTML/CSS contains `/assets/...` references that need to be\n// prefixed with the share's `basePrefix`. JS-generated URLs at runtime are NOT\n// handled here — recommend the user set `base` at build time when possible.\n\nfunction rewriteAbsolutePaths(\n body: string,\n mime: string,\n basePrefix: string,\n mode: 'none' | 'html-only' | 'html-css',\n): string {\n if (mode === 'none' || !basePrefix) return body;\n if (mime === 'text/html') {\n return rewriteHtml(body, basePrefix);\n }\n if (mime === 'text/css' && mode === 'html-css') {\n return rewriteCss(body, basePrefix);\n }\n return body;\n}\n\nfunction rewriteHtml(html: string, basePrefix: string): string {\n // Match attribute values like src=\"/x\", href='/y', srcset=\"/a, /b 2x\"\n const attrRe = /\\s(href|src|action|poster|formaction|data)\\s*=\\s*(\"|')\\/([^\"']*?)\\2/gi;\n let out = html.replace(attrRe, (_match, attr, quote, rest) => {\n if (rest.startsWith('/')) return _match; // protocol-relative '//'\n return ` ${attr}=${quote}${basePrefix}/${rest}${quote}`;\n });\n\n const srcsetRe = /\\s(srcset|imagesrcset)\\s*=\\s*(\"|')([^\"']*)\\2/gi;\n out = out.replace(srcsetRe, (_match, attr, quote, value) => {\n const fixed = value\n .split(',')\n .map((part: string) => {\n const trimmed = part.trim();\n const [url, descriptor] = trimmed.split(/\\s+/, 2);\n if (!url || !url.startsWith('/') || url.startsWith('//')) return trimmed;\n return descriptor ? `${basePrefix}${url} ${descriptor}` : `${basePrefix}${url}`;\n })\n .join(', ');\n return ` ${attr}=${quote}${fixed}${quote}`;\n });\n\n // Inject <base> tag for clarity (helps relative URLs inside the page)\n out = out.replace(/<head([^>]*)>/i, `<head$1><base href=\"${basePrefix}/\">`);\n\n return out;\n}\n\nfunction rewriteCss(css: string, basePrefix: string): string {\n // url(/x) — only absolute-root references\n return css.replace(/url\\(\\s*(\"|'|)\\/([^)\"']*?)\\1\\s*\\)/g, (_m, quote, rest) => {\n if (rest.startsWith('/')) return _m;\n return `url(${quote}${basePrefix}/${rest}${quote})`;\n });\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"activity-repository.js","names":[],"sources":["../../../../src/storage/sqlite/activity-repository.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto';\n\nimport type {\n ActivityEvent,\n ActivityEventWithRelations,\n ActivityListResult,\n ActivityObjectRef,\n ActivityRelatedProject,\n ActivityScope,\n ActivitySource,\n ActivityPrincipal,\n CreateObjectLinkInput,\n ListActivityOptions,\n ListObjectActivityOptions,\n ListProjectActivityOptions,\n ObjectLink,\n RecordActivityInput,\n} from '../../activity/types.js';\nimport { getSqliteDatabase, runSqliteWriteTransaction } from './transaction.js';\n\ntype ActivityEventRow = {\n id: string;\n type: string;\n primary_object_kind: string;\n primary_object_id: string;\n primary_object_title: string | null;\n actor_json: string;\n initiator_json: string | null;\n source_json: string;\n payload_json: string;\n visibility: string;\n importance: string;\n created_at: number;\n};\n\ntype ActivityScopeRow = {\n activity_id: string;\n scope_kind: string;\n scope_id: string;\n reason: string;\n};\n\ntype ActivityRelatedProjectRow = {\n activity_id: string;\n project_id: string;\n reason: string;\n confidence: number;\n computed_at: number;\n};\n\ntype ObjectLinkRow = {\n id: string;\n from_kind: string;\n from_id: string;\n from_title: string | null;\n to_kind: string;\n to_id: string;\n to_title: string | null;\n relation: string;\n source: string;\n created_at: number;\n};\n\ntype CountRow = { count: number };\ntype SqlParam = string | number | bigint | null;\n\nfunction parseJson<T>(json: string, fallback: T): T {\n try {\n return JSON.parse(json) as T;\n } catch {\n return fallback;\n }\n}\n\nfunction eventFromRow(row: ActivityEventRow): ActivityEvent {\n return {\n id: row.id,\n type: row.type,\n primaryObject: {\n kind: row.primary_object_kind as ActivityObjectRef['kind'],\n id: row.primary_object_id,\n title: row.primary_object_title ?? undefined,\n },\n actor: parseJson<ActivityPrincipal>(row.actor_json, { kind: 'system' }),\n initiator: row.initiator_json ? parseJson<ActivityPrincipal | undefined>(row.initiator_json, undefined) : undefined,\n source: parseJson<ActivitySource>(row.source_json, { kind: 'system' }),\n payload: parseJson<Record<string, unknown>>(row.payload_json, {}),\n visibility: row.visibility as ActivityEvent['visibility'],\n importance: row.importance as ActivityEvent['importance'],\n createdAt: row.created_at,\n };\n}\n\nfunction scopeFromRow(row: ActivityScopeRow): ActivityScope {\n return {\n activityId: row.activity_id,\n scopeKind: row.scope_kind as ActivityScope['scopeKind'],\n scopeId: row.scope_id,\n reason: row.reason as ActivityScope['reason'],\n };\n}\n\nfunction relatedProjectFromRow(row: ActivityRelatedProjectRow): ActivityRelatedProject {\n return {\n activityId: row.activity_id,\n projectId: row.project_id,\n reason: row.reason as ActivityRelatedProject['reason'],\n confidence: row.confidence,\n computedAt: row.computed_at,\n };\n}\n\nfunction objectLinkFromRow(row: ObjectLinkRow): ObjectLink {\n return {\n id: row.id,\n from: {\n kind: row.from_kind as ActivityObjectRef['kind'],\n id: row.from_id,\n title: row.from_title ?? undefined,\n },\n to: {\n kind: row.to_kind as ActivityObjectRef['kind'],\n id: row.to_id,\n title: row.to_title ?? undefined,\n },\n relation: row.relation as ObjectLink['relation'],\n source: row.source as ObjectLink['source'],\n createdAt: row.created_at,\n };\n}\n\nfunction listScopesForActivity(activityId: string): ActivityScope[] {\n return getSqliteDatabase()\n .prepare(\n `SELECT activity_id, scope_kind, scope_id, reason\n FROM activity_scopes\n WHERE activity_id = ?\n ORDER BY scope_kind ASC, scope_id ASC, reason ASC`,\n )\n .all(activityId)\n .map((row) => scopeFromRow(row as ActivityScopeRow));\n}\n\nfunction listRelatedProjectsForActivity(activityId: string): ActivityRelatedProject[] {\n return getSqliteDatabase()\n .prepare(\n `SELECT activity_id, project_id, reason, confidence, computed_at\n FROM activity_related_projects\n WHERE activity_id = ?\n ORDER BY project_id ASC, reason ASC`,\n )\n .all(activityId)\n .map((row) => relatedProjectFromRow(row as ActivityRelatedProjectRow));\n}\n\nfunction eventWithRelations(row: ActivityEventRow): ActivityEventWithRelations {\n const event = eventFromRow(row);\n return {\n ...event,\n scopes: listScopesForActivity(event.id),\n relatedProjects: listRelatedProjectsForActivity(event.id),\n };\n}\n\nfunction normalizeLimit(limit: number | undefined): number {\n return Math.max(1, Math.min(100, Math.floor(limit ?? 50)));\n}\n\nfunction normalizeOffset(offset: number | undefined): number {\n return Math.max(0, Math.floor(offset ?? 0));\n}\n\nfunction visibilityClause(visibility: string | undefined, params: SqlParam[]): string {\n if (!visibility) return '';\n params.push(visibility);\n return 'WHERE visibility = ?';\n}\n\nfunction listResult(rows: ActivityEventRow[], total: number, limit: number, offset: number): ActivityListResult {\n return {\n items: rows.map(eventWithRelations),\n total,\n limit,\n offset,\n hasMore: offset + rows.length < total,\n };\n}\n\nexport function recordActivityEvent(input: RecordActivityInput): ActivityEventWithRelations {\n const id = input.id ?? randomUUID();\n const now = input.nowMs ?? Date.now();\n const visibility = input.visibility ?? 'timeline';\n const importance = input.importance ?? 'normal';\n const payload = input.payload ?? {};\n\n runSqliteWriteTransaction((db) => {\n db.prepare(\n `INSERT INTO activity_events (\n id, type, primary_object_kind, primary_object_id, primary_object_title,\n actor_json, initiator_json, source_json, payload_json,\n visibility, importance, created_at\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,\n ).run(\n id,\n input.type,\n input.primaryObject.kind,\n input.primaryObject.id,\n input.primaryObject.title ?? null,\n JSON.stringify(input.actor),\n input.initiator ? JSON.stringify(input.initiator) : null,\n JSON.stringify(input.source),\n JSON.stringify(payload),\n visibility,\n importance,\n now,\n );\n\n for (const scope of input.scopes ?? []) {\n db.prepare(\n `INSERT OR IGNORE INTO activity_scopes (activity_id, scope_kind, scope_id, reason)\n VALUES (?, ?, ?, ?)`,\n ).run(id, scope.scopeKind, scope.scopeId, scope.reason);\n }\n\n for (const related of input.relatedProjects ?? []) {\n db.prepare(\n `INSERT OR REPLACE INTO activity_related_projects (\n activity_id, project_id, reason, confidence, computed_at\n ) VALUES (?, ?, ?, ?, ?)`,\n ).run(id, related.projectId, related.reason, related.confidence, related.computedAt ?? now);\n }\n });\n\n const event = getActivityEventRecord(id);\n if (!event) {\n throw new Error(`Activity event was not persisted: ${id}`);\n }\n return event;\n}\n\nexport function getActivityEventRecord(id: string): ActivityEventWithRelations | null {\n const row = getSqliteDatabase()\n .prepare(\n `SELECT *\n FROM activity_events\n WHERE id = ?`,\n )\n .get(id) as ActivityEventRow | undefined;\n return row ? eventWithRelations(row) : null;\n}\n\nexport function listActivityRecords(options: ListActivityOptions = {}): ActivityListResult {\n const limit = normalizeLimit(options.limit);\n const offset = normalizeOffset(options.offset);\n const params: SqlParam[] = [];\n const where = visibilityClause(options.visibility, params);\n const total = (getSqliteDatabase()\n .prepare(`SELECT COUNT(*) AS count FROM activity_events ${where}`)\n .get(...params) as CountRow).count;\n const rows = getSqliteDatabase()\n .prepare(\n `SELECT *\n FROM activity_events\n ${where}\n ORDER BY created_at DESC, id DESC\n LIMIT ? OFFSET ?`,\n )\n .all(...params, limit, offset)\n .map((row) => row as ActivityEventRow);\n return listResult(rows, total, limit, offset);\n}\n\nexport function listObjectActivityRecords(options: ListObjectActivityOptions): ActivityListResult {\n const limit = normalizeLimit(options.limit);\n const offset = normalizeOffset(options.offset);\n const params: SqlParam[] = [options.object.kind, options.object.id];\n const visibility = options.visibility ? 'AND visibility = ?' : '';\n if (options.visibility) params.push(options.visibility);\n const total = (getSqliteDatabase()\n .prepare(\n `SELECT COUNT(*) AS count\n FROM activity_events\n WHERE primary_object_kind = ? AND primary_object_id = ?\n ${visibility}`,\n )\n .get(...params) as CountRow).count;\n const rows = getSqliteDatabase()\n .prepare(\n `SELECT *\n FROM activity_events\n WHERE primary_object_kind = ? AND primary_object_id = ?\n ${visibility}\n ORDER BY created_at DESC, id DESC\n LIMIT ? OFFSET ?`,\n )\n .all(...params, limit, offset)\n .map((row) => row as ActivityEventRow);\n return listResult(rows, total, limit, offset);\n}\n\nexport function listProjectActivityRecords(options: ListProjectActivityOptions): ActivityListResult {\n const limit = normalizeLimit(options.limit);\n const offset = normalizeOffset(options.offset);\n const params: SqlParam[] = ['project', options.projectId];\n const relatedClause = options.includeRelated\n ? `OR EXISTS (\n SELECT 1 FROM activity_related_projects ar\n WHERE ar.activity_id = ae.id AND ar.project_id = ?\n )`\n : '';\n if (options.includeRelated) params.push(options.projectId);\n const visibilityClauseSql = options.visibility ? 'AND ae.visibility = ?' : '';\n if (options.visibility) params.push(options.visibility);\n\n const baseWhere = `EXISTS (\n SELECT 1 FROM activity_scopes s\n WHERE s.activity_id = ae.id AND s.scope_kind = ? AND s.scope_id = ?\n ) ${relatedClause}`;\n\n const total = (getSqliteDatabase()\n .prepare(\n `SELECT COUNT(*) AS count\n FROM activity_events ae\n WHERE (${baseWhere})\n ${visibilityClauseSql}`,\n )\n .get(...params) as CountRow).count;\n const rows = getSqliteDatabase()\n .prepare(\n `SELECT ae.*\n FROM activity_events ae\n WHERE (${baseWhere})\n ${visibilityClauseSql}\n ORDER BY ae.created_at DESC, ae.id DESC\n LIMIT ? OFFSET ?`,\n )\n .all(...params, limit, offset)\n .map((row) => row as ActivityEventRow);\n return listResult(rows, total, limit, offset);\n}\n\nexport function createObjectLinkRecord(input: CreateObjectLinkInput): ObjectLink {\n const id = input.id ?? randomUUID();\n const now = input.nowMs ?? Date.now();\n runSqliteWriteTransaction((db) => {\n db.prepare(\n `INSERT INTO object_links (\n id, from_kind, from_id, from_title, to_kind, to_id, to_title, relation, source, created_at\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,\n ).run(\n id,\n input.from.kind,\n input.from.id,\n input.from.title ?? null,\n input.to.kind,\n input.to.id,\n input.to.title ?? null,\n input.relation,\n input.source,\n now,\n );\n });\n const row = getSqliteDatabase()\n .prepare(`SELECT * FROM object_links WHERE id = ?`)\n .get(id) as ObjectLinkRow | undefined;\n if (!row) {\n throw new Error(`Object link was not persisted: ${id}`);\n }\n return objectLinkFromRow(row);\n}\n\nexport function listObjectLinkRecords(object: ActivityObjectRef): ObjectLink[] {\n return getSqliteDatabase()\n .prepare(\n `SELECT *\n FROM object_links\n WHERE (from_kind = ? AND from_id = ?) OR (to_kind = ? AND to_id = ?)\n ORDER BY created_at DESC, id DESC`,\n )\n .all(object.kind, object.id, object.kind, object.id)\n .map((row) => objectLinkFromRow(row as ObjectLinkRow));\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"config-repository.js","names":[],"sources":["../../../../src/storage/sqlite/config-repository.ts"],"sourcesContent":["import type { DatabaseSync } from 'node:sqlite';\n\nimport type { SessionAgentConfig } from '../../session/config-types.js';\nimport { sessionConfigRowToConfig, type SessionConfigRow } from './row-mappers.js';\nimport { ensureSessionInTransaction } from './session-repository.js';\nimport { getSqliteDatabase, runSqliteWriteTransaction } from './transaction.js';\n\nfunction readConfigRow(db: DatabaseSync, sessionKey: string): SessionConfigRow | undefined {\n return db\n .prepare(\n `SELECT session_key, thinking_level, reasoning_level, verbose_level, elevated_mode,\n model_override, provider_override, working_directory_override, updated_at\n FROM session_config WHERE session_key = ?`,\n )\n .get(sessionKey) as SessionConfigRow | undefined;\n}\n\nexport function getSessionConfig(sessionKey: string): SessionAgentConfig | null {\n const db = getSqliteDatabase();\n const row = readConfigRow(db, sessionKey);\n if (!row) {\n return null;\n }\n return sessionConfigRowToConfig(row);\n}\n\nexport function setSessionConfig(sessionKey: string, config: SessionAgentConfig, cwd: string): SessionAgentConfig {\n return runSqliteWriteTransaction((db) => {\n ensureSessionInTransaction(db, sessionKey, cwd);\n const updatedAt = Date.now();\n const next = { ...config, updatedAt };\n db.prepare(\n `INSERT INTO session_config (\n session_key, thinking_level, reasoning_level, verbose_level, elevated_mode,\n model_override, provider_override, working_directory_override, updated_at\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)\n ON CONFLICT(session_key) DO UPDATE SET\n thinking_level = excluded.thinking_level,\n reasoning_level = excluded.reasoning_level,\n verbose_level = excluded.verbose_level,\n elevated_mode = excluded.elevated_mode,\n model_override = excluded.model_override,\n provider_override = excluded.provider_override,\n working_directory_override = excluded.working_directory_override,\n updated_at = excluded.updated_at`,\n ).run(\n sessionKey,\n next.thinkingLevel ?? null,\n next.reasoningLevel ?? null,\n next.verboseLevel ?? null,\n next.elevatedMode ?? null,\n next.modelOverride ?? null,\n next.providerOverride ?? null,\n next.workingDirectoryOverride ?? null,\n updatedAt,\n );\n return next;\n });\n}\n\nexport function updateSessionConfig(\n sessionKey: string,\n partial: Partial<SessionAgentConfig>,\n cwd: string,\n): SessionAgentConfig {\n const existing = getSessionConfig(sessionKey);\n return setSessionConfig(sessionKey, { ...existing, ...partial }, cwd);\n}\n\nexport function deleteSessionConfig(sessionKey: string): void {\n runSqliteWriteTransaction((db) => {\n db.prepare(`DELETE FROM session_config WHERE session_key = ?`).run(sessionKey);\n });\n}\n\nexport function hasSessionConfig(sessionKey: string): boolean {\n const db = getSqliteDatabase();\n const row = db\n .prepare(`SELECT 1 AS ok FROM session_config WHERE session_key = ?`)\n .get(sessionKey) as { ok?: number } | undefined;\n return row?.ok === 1;\n}\n"],"mappings":";;;;AAOA,SAAS,cAAc,IAAkB,YAAkD;AACzF,QAAO,GACJ,QACC;;kDAGD,CACA,IAAI,WAAW;;AAGpB,SAAgB,iBAAiB,YAA+C;CAE9E,MAAM,MAAM,cADD,mBACiB,EAAE,WAAW;AACzC,KAAI,CAAC,IACH,QAAO;AAET,QAAO,yBAAyB,IAAI;;AAGtC,SAAgB,iBAAiB,YAAoB,QAA4B,KAAiC;AAChH,QAAO,2BAA2B,OAAO;AACvC,6BAA2B,IAAI,YAAY,IAAI;EAC/C,MAAM,YAAY,KAAK,KAAK;EAC5B,MAAM,OAAO;GAAE,GAAG;GAAQ;GAAW;AACrC,KAAG,QACD;;;;;;;;;;;;0CAaD,CAAC,IACA,YACA,KAAK,iBAAiB,MACtB,KAAK,kBAAkB,MACvB,KAAK,gBAAgB,MACrB,KAAK,gBAAgB,MACrB,KAAK,iBAAiB,MACtB,KAAK,oBAAoB,MACzB,KAAK,4BAA4B,MACjC,UACD;AACD,SAAO;GACP;;AAGJ,SAAgB,oBACd,YACA,SACA,KACoB;AAEpB,QAAO,iBAAiB,YAAY;EAAE,GADrB,iBAAiB,WACe;EAAE,GAAG;EAAS,EAAE,IAAI;;AAGvE,SAAgB,oBAAoB,YAA0B;AAC5D,4BAA2B,OAAO;AAChC,KAAG,QAAQ,mDAAmD,CAAC,IAAI,WAAW;GAC9E;;AAGJ,SAAgB,iBAAiB,YAA6B;AAK5D,QAJW,mBACG,CACX,QAAQ,2DAA2D,CACnE,IAAI,WACG,EAAE,OAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"connection.js","names":[],"sources":["../../../../src/storage/sqlite/connection.ts"],"sourcesContent":["import fs from 'node:fs';\nimport childProcess from 'node:child_process';\nimport path from 'node:path';\nimport type { DatabaseSync } from 'node:sqlite';\n\nimport { requireNodeSqlite } from '../../infra/node-sqlite.js';\nimport { installSqliteTransientRejectionHandler } from '../../infra/unhandled-rejections.js';\nimport { createLogger } from '../../utils/logger.js';\nimport { resolveXopcDatabasePath } from './paths.js';\nimport { ensureXopcDatabaseSchema } from './schema.js';\n\nconst log = createLogger('Sqlite:Connection');\n\nconst XOPC_SQLITE_BUSY_TIMEOUT_MS = 30_000;\nconst DB_DIR_MODE = 0o700;\nconst DB_FILE_MODE = 0o600;\nconst DB_SIDECAR_SUFFIXES = ['', '-shm', '-wal'] as const;\nconst LINUX_NFS_SUPER_MAGIC = 0x6969;\nconst PROC_MOUNTINFO_PATH = '/proc/self/mountinfo';\nconst MAX_TIMER_TIMEOUT_MS = 2 ** 31 - 1;\n\ntype IntervalHandle = ReturnType<typeof setInterval> & { unref?: () => void };\ntype SqliteWalCheckpointMode = 'PASSIVE' | 'FULL' | 'RESTART' | 'TRUNCATE';\n\nexport type SqliteWalMaintenance = {\n checkpoint: () => boolean;\n close: () => boolean;\n};\n\nexport type SqliteConnectionPragmaOptions = {\n autoCheckpointPages?: number;\n checkpointIntervalMs?: number;\n checkpointMode?: SqliteWalCheckpointMode;\n busyTimeoutMs?: number;\n foreignKeys?: boolean;\n synchronous?: 'NORMAL';\n databasePath?: string;\n onCheckpointError?: (error: unknown) => void;\n};\n\nfunction normalizeNonNegativeInteger(value: number, label: string): number {\n if (!Number.isInteger(value) || value < 0) {\n throw new Error(`${label} must be a non-negative integer`);\n }\n return value;\n}\n\n// ---------------------------------------------------------------------------\n// NFS detection — refuse WAL on NFS-backed volumes (openclaw parity)\n// ---------------------------------------------------------------------------\n\nfunction findExistingVolumePath(targetPath: string): string | null {\n let current = path.resolve(targetPath);\n while (true) {\n try {\n const stats = fs.statSync(current);\n return stats.isDirectory() ? current : path.dirname(current);\n } catch {\n const parent = path.dirname(current);\n if (parent === current) return null;\n current = parent;\n }\n }\n}\n\nfunction decodeMountPath(value: string): string {\n return value.replace(/\\\\([0-7]{3})/g, (_match, octal: string) =>\n String.fromCharCode(Number.parseInt(octal, 8)),\n );\n}\n\nfunction parseProcMountInfoEntries(\n contents: string,\n): Array<{ mountPoint: string; fsType: string }> {\n const entries: Array<{ mountPoint: string; fsType: string }> = [];\n for (const line of contents.split('\\n')) {\n const separator = line.indexOf(' - ');\n if (separator === -1) continue;\n const fields = line.slice(0, separator).split(' ');\n const suffixFields = line.slice(separator + 3).split(' ');\n const mountPoint = fields[4];\n const fsType = suffixFields[0];\n if (mountPoint && fsType) {\n entries.push({ mountPoint: decodeMountPath(mountPoint), fsType });\n }\n }\n return entries;\n}\n\nfunction parseMountCommandEntries(contents: string): Array<{ mountPoint: string; fsType: string }> {\n const entries: Array<{ mountPoint: string; fsType: string }> = [];\n for (const line of contents.split('\\n')) {\n // Linux: /dev/sda1 on /mnt type ext4 (rw,relatime)\n const linuxMatch = /^.* on (.+) type ([^,\\s)]+) \\(/.exec(line);\n if (linuxMatch) {\n entries.push({ mountPoint: linuxMatch[1], fsType: linuxMatch[2] });\n continue;\n }\n // macOS/BSD: //host/share on /Volumes/share (nfs, nodev, nosuid)\n const bsdMatch = /^.* on (.+) \\(([^,\\s)]+)/.exec(line);\n if (bsdMatch) {\n entries.push({ mountPoint: bsdMatch[1], fsType: bsdMatch[2] });\n }\n }\n return entries;\n}\n\nfunction readMountEntries(): Array<{ mountPoint: string; fsType: string }> {\n try {\n return parseProcMountInfoEntries(fs.readFileSync(PROC_MOUNTINFO_PATH, 'utf8'));\n } catch {\n // macOS/BSD: fall through to mount command\n }\n try {\n return parseMountCommandEntries(String(childProcess.execFileSync('mount', [])));\n } catch {\n return [];\n }\n}\n\nfunction isPathWithinMount(targetPath: string, mountPoint: string): boolean {\n const resolvedTarget = path.resolve(targetPath);\n const resolvedMountPoint = path.resolve(mountPoint);\n return (\n resolvedTarget === resolvedMountPoint ||\n resolvedMountPoint === path.parse(resolvedMountPoint).root ||\n resolvedTarget.startsWith(`${resolvedMountPoint}${path.sep}`)\n );\n}\n\nfunction isNfsMountType(fsType: string): boolean {\n return fsType.toLowerCase().startsWith('nfs');\n}\n\nfunction isNfsMountEntryPath(targetPath: string): boolean {\n const mountEntry = readMountEntries()\n .filter((entry) => isPathWithinMount(targetPath, entry.mountPoint))\n .toSorted((a, b) => b.mountPoint.length - a.mountPoint.length)[0];\n return mountEntry ? isNfsMountType(mountEntry.fsType) : false;\n}\n\nfunction isNfsBackedPath(targetPath: string): boolean {\n if (typeof fs.statfsSync !== 'function') {\n return isNfsMountEntryPath(targetPath);\n }\n const checkedPath = findExistingVolumePath(targetPath);\n if (!checkedPath) return false;\n try {\n if (fs.statfsSync(checkedPath).type === LINUX_NFS_SUPER_MAGIC) return true;\n } catch {\n return isNfsMountEntryPath(checkedPath);\n }\n return isNfsMountEntryPath(checkedPath);\n}\n\nfunction readJournalModeResult(row: unknown): string | null {\n if (!row || typeof row !== 'object') return null;\n const record = row as Record<string, unknown>;\n const value = record.journal_mode ?? Object.values(record)[0];\n return typeof value === 'string' ? value.toLowerCase() : null;\n}\n\nfunction requireRollbackJournalMode(db: DatabaseSync, dbPath: string): void {\n const row = db.prepare('PRAGMA journal_mode = DELETE;').get();\n const mode = readJournalModeResult(row);\n if (mode !== 'delete') {\n throw new Error(\n `xopc.db at ${dbPath} is on an NFS-backed volume but SQLite kept journal_mode=${mode ?? 'unknown'}. ` +\n `WAL mode is unsafe on NFS. Move ~/.xopc to a local filesystem, or set XOPC_STATE_DIR to a local path.`,\n );\n }\n}\n\n// ---------------------------------------------------------------------------\n// Unified PRAGMA + WAL configuration (openclaw parity)\n// ---------------------------------------------------------------------------\n\nfunction configureSqliteConnectionPragmas(\n db: DatabaseSync,\n options: SqliteConnectionPragmaOptions = {},\n): SqliteWalMaintenance {\n // Set busy_timeout before journal_mode to avoid lock-retry ordering issues\n const busyTimeoutMs = options.busyTimeoutMs ?? XOPC_SQLITE_BUSY_TIMEOUT_MS;\n db.exec(`PRAGMA busy_timeout = ${normalizeNonNegativeInteger(busyTimeoutMs, 'busyTimeoutMs')};`);\n\n // NFS detection: refuse WAL, force DELETE mode\n if (options.databasePath && isNfsBackedPath(options.databasePath)) {\n requireRollbackJournalMode(db, options.databasePath);\n // No WAL checkpoint timer needed on DELETE mode\n return { checkpoint: () => true, close: () => true };\n }\n\n // WAL setup\n db.exec('PRAGMA journal_mode = WAL;');\n const autoCheckpointPages = normalizeNonNegativeInteger(\n options.autoCheckpointPages ?? 1000,\n 'autoCheckpointPages',\n );\n db.exec(`PRAGMA wal_autocheckpoint = ${autoCheckpointPages};`);\n\n // Remaining pragmas in safe order\n if (options.synchronous) db.exec(`PRAGMA synchronous = ${options.synchronous};`);\n if (options.foreignKeys) db.exec('PRAGMA foreign_keys = ON;');\n\n // Periodic checkpoint timer\n const checkpointMode = options.checkpointMode ?? 'TRUNCATE';\n const periodicCheckpointMode = options.checkpointMode ?? 'PASSIVE';\n const checkpointIntervalMs = normalizeNonNegativeInteger(\n options.checkpointIntervalMs ?? 30 * 60 * 1000,\n 'checkpointIntervalMs',\n );\n\n const runCheckpoint = (mode: SqliteWalCheckpointMode): boolean => {\n try {\n db.exec(`PRAGMA wal_checkpoint(${mode});`);\n return true;\n } catch (error) {\n options.onCheckpointError?.(error);\n return false;\n }\n };\n\n let timer: IntervalHandle | null = null;\n if (checkpointIntervalMs > 0) {\n const timerIntervalMs = Math.min(checkpointIntervalMs, MAX_TIMER_TIMEOUT_MS);\n timer = setInterval(() => runCheckpoint(periodicCheckpointMode), timerIntervalMs) as IntervalHandle;\n timer.unref?.();\n }\n\n return {\n checkpoint: () => runCheckpoint(checkpointMode),\n close: () => {\n if (timer) { clearInterval(timer); timer = null; }\n return runCheckpoint(checkpointMode);\n },\n };\n}\n\n// ---------------------------------------------------------------------------\n// Database lifecycle\n// ---------------------------------------------------------------------------\n\nexport type XopcDatabase = {\n db: DatabaseSync;\n path: string;\n walMaintenance: SqliteWalMaintenance;\n};\n\nexport type OpenXopcDatabaseOptions = {\n path?: string;\n env?: NodeJS.ProcessEnv;\n};\n\nlet cachedDatabase: XopcDatabase | null = null;\n\nfunction ensureDatabasePermissions(pathname: string): void {\n const dir = pathname.slice(0, Math.max(pathname.lastIndexOf('/'), pathname.lastIndexOf('\\\\')));\n if (dir) {\n fs.mkdirSync(dir, { recursive: true });\n fs.chmodSync(dir, DB_DIR_MODE);\n }\n for (const suffix of DB_SIDECAR_SUFFIXES) {\n const candidate = `${pathname}${suffix}`;\n if (!fs.existsSync(candidate)) continue;\n fs.chmodSync(candidate, DB_FILE_MODE);\n }\n}\n\nfunction openDatabaseAtPath(pathname: string): XopcDatabase {\n installSqliteTransientRejectionHandler();\n ensureDatabasePermissions(pathname);\n\n const { DatabaseSync } = requireNodeSqlite();\n const db = new DatabaseSync(pathname);\n\n // Single call: busy_timeout (30s) → WAL/NFS detection → synchronous → foreign_keys → checkpoint timer\n const walMaintenance = configureSqliteConnectionPragmas(db, {\n databasePath: pathname,\n synchronous: 'NORMAL',\n foreignKeys: true,\n onCheckpointError: (error) => {\n const em = error instanceof Error ? error.message : String(error);\n log.warn({ err: error instanceof Error ? error : undefined, errorMessage: em }, `SQLite WAL checkpoint failed: ${em}`);\n },\n });\n\n ensureXopcDatabaseSchema(db);\n ensureDatabasePermissions(pathname);\n\n log.info({ path: pathname }, 'Opened xopc SQLite database');\n return { db, path: pathname, walMaintenance };\n}\n\nexport function openXopcDatabase(options: OpenXopcDatabaseOptions = {}): XopcDatabase {\n const env = options.env ?? process.env;\n const pathname = options.path ?? resolveXopcDatabasePath(env);\n\n if (cachedDatabase && cachedDatabase.path === pathname) {\n return cachedDatabase;\n }\n\n if (cachedDatabase) {\n closeXopcDatabase();\n }\n\n cachedDatabase = openDatabaseAtPath(pathname);\n return cachedDatabase;\n}\n\nexport function getXopcDatabase(): XopcDatabase {\n if (!cachedDatabase) {\n throw new Error('xopc SQLite database is not open; call openXopcDatabase() first');\n }\n return cachedDatabase;\n}\n\n/**\n * Ensure the xopc SQLite database is open and return it.\n * Opens with default path if not already open. Use this instead of\n * the repetitive `if (!isXopcDatabaseOpen()) { openXopcDatabase(); }` pattern.\n */\nexport function requireXopcDatabase(options?: OpenXopcDatabaseOptions): XopcDatabase {\n if (!cachedDatabase) {\n openXopcDatabase(options ?? {});\n }\n return cachedDatabase!;\n}\n\nexport function isXopcDatabaseOpen(): boolean {\n return cachedDatabase !== null;\n}\n\nexport function closeXopcDatabase(): void {\n if (!cachedDatabase) {\n return;\n }\n\n const { db, path, walMaintenance } = cachedDatabase;\n try {\n walMaintenance.close();\n } catch (error) {\n const em = error instanceof Error ? error.message : String(error);\n log.warn({ err: error instanceof Error ? error : undefined, errorMessage: em, path }, `SQLite close checkpoint failed: ${em}`);\n }\n\n try {\n db.close();\n } catch (error) {\n const em = error instanceof Error ? error.message : String(error);\n log.warn({ err: error instanceof Error ? error : undefined, errorMessage: em, path }, `SQLite database close failed: ${em}`);\n }\n\n cachedDatabase = null;\n log.debug({ path }, 'Closed xopc SQLite database');\n}\n\n/** Test-only: reset singleton without touching files on disk. */\nexport function resetXopcDatabaseSingletonForTest(): void {\n cachedDatabase = null;\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"connector-repository.js","names":[],"sources":["../../../../src/storage/sqlite/connector-repository.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto';\n\nimport type {\n ConnectorActionMetadata,\n ConnectorApprovalRecord,\n ConnectorConnection,\n ConnectorDefinition,\n ConnectorExecutionAuditRecord,\n ConnectorInstallationPolicy,\n} from '../../connectors/types.js';\nimport { getSqliteDatabase, runSqliteWriteTransaction } from './transaction.js';\n\ntype InstallationRow = {\n id: string;\n connector_id: string;\n principal_id: string;\n enabled: number;\n allowed_agent_ids_json: string;\n max_scope: ConnectorInstallationPolicy['maxScope'];\n confirmation_policy: ConnectorInstallationPolicy['confirmationPolicy'];\n selected_connection_ids_json: string;\n created_at: string;\n updated_at: string;\n};\n\ntype ConnectionRow = {\n id: string;\n installation_id: string | null;\n connector_id: string;\n provider: string;\n principal_id: string;\n provider_connection_id: string;\n alias: string | null;\n identity_json: string;\n status: ConnectorConnection['status'];\n is_default: number;\n connected_at: string | null;\n expires_at: string | null;\n last_error: string | null;\n metadata_json: string;\n created_at: string;\n updated_at: string;\n};\n\ntype ActionRow = {\n connector_id: string;\n action_id: string;\n toolkit: string | null;\n scope: ConnectorActionMetadata['scope'];\n curated: number;\n input_schema_json: string | null;\n schema_version: string | null;\n cached_at: string;\n};\n\ntype AuditRow = {\n id: string;\n installation_id: string | null;\n connection_id: string | null;\n connector_id: string;\n principal_id: string;\n agent_id: string | null;\n session_key: string | null;\n action_id: string;\n scope: ConnectorExecutionAuditRecord['scope'];\n decision: ConnectorExecutionAuditRecord['decision'];\n result_status: ConnectorExecutionAuditRecord['resultStatus'];\n duration_ms: number | null;\n error_code: string | null;\n created_at: string;\n};\n\ntype CatalogRow = {\n connector_id: string;\n provider: string;\n definition_json: string;\n fetched_at: string;\n expires_at: string | null;\n};\n\ntype ApprovalRow = {\n id: string;\n principal_id: string;\n connector_id: string;\n connection_id: string | null;\n agent_id: string | null;\n session_key: string | null;\n action_id: string;\n scope: ConnectorApprovalRecord['scope'];\n arguments_hash: string;\n arguments_preview_json: string;\n status: ConnectorApprovalRecord['status'];\n expires_at: string;\n created_at: string;\n decided_at: string | null;\n consumed_at: string | null;\n};\n\nexport type CachedConnectorCatalogEntry = {\n connectorId: string;\n provider: string;\n definition: ConnectorDefinition;\n fetchedAt: string;\n expiresAt?: string;\n};\n\nfunction parseStringArray(value: string): string[] {\n try {\n const parsed = JSON.parse(value);\n return Array.isArray(parsed) ? parsed.filter((item): item is string => typeof item === 'string') : [];\n } catch {\n return [];\n }\n}\n\nfunction parseObject(value: string): Record<string, unknown> {\n try {\n const parsed = JSON.parse(value);\n return parsed && typeof parsed === 'object' && !Array.isArray(parsed)\n ? parsed as Record<string, unknown>\n : {};\n } catch {\n return {};\n }\n}\n\nfunction installationFromRow(row: InstallationRow): ConnectorInstallationPolicy {\n return {\n id: row.id,\n connectorId: row.connector_id,\n principalId: row.principal_id,\n enabled: row.enabled === 1,\n allowedAgentIds: parseStringArray(row.allowed_agent_ids_json),\n maxScope: row.max_scope,\n confirmationPolicy: row.confirmation_policy,\n selectedConnectionIds: parseStringArray(row.selected_connection_ids_json),\n createdAt: row.created_at,\n updatedAt: row.updated_at,\n };\n}\n\nfunction connectionFromRow(row: ConnectionRow): ConnectorConnection {\n return {\n id: row.id,\n installationId: row.installation_id ?? undefined,\n connectorId: row.connector_id,\n provider: row.provider,\n principalId: row.principal_id,\n providerConnectionId: row.provider_connection_id,\n alias: row.alias ?? undefined,\n identity: parseObject(row.identity_json),\n status: row.status,\n isDefault: row.is_default === 1,\n connectedAt: row.connected_at ?? undefined,\n expiresAt: row.expires_at ?? undefined,\n lastError: row.last_error ?? undefined,\n metadata: parseObject(row.metadata_json),\n createdAt: row.created_at,\n updatedAt: row.updated_at,\n };\n}\n\nfunction actionFromRow(row: ActionRow): ConnectorActionMetadata {\n return {\n connectorId: row.connector_id,\n actionId: row.action_id,\n toolkit: row.toolkit ?? undefined,\n scope: row.scope,\n curated: row.curated === 1,\n inputSchema: row.input_schema_json == null ? undefined : JSON.parse(row.input_schema_json),\n schemaVersion: row.schema_version ?? undefined,\n cachedAt: row.cached_at,\n };\n}\n\nfunction auditFromRow(row: AuditRow): ConnectorExecutionAuditRecord {\n return {\n id: row.id,\n installationId: row.installation_id ?? undefined,\n connectionId: row.connection_id ?? undefined,\n connectorId: row.connector_id,\n principalId: row.principal_id,\n agentId: row.agent_id ?? undefined,\n sessionKey: row.session_key ?? undefined,\n actionId: row.action_id,\n scope: row.scope,\n decision: row.decision,\n resultStatus: row.result_status,\n durationMs: row.duration_ms ?? undefined,\n errorCode: row.error_code ?? undefined,\n createdAt: row.created_at,\n };\n}\n\nfunction catalogFromRow(row: CatalogRow): CachedConnectorCatalogEntry | undefined {\n try {\n const definition = JSON.parse(row.definition_json) as ConnectorDefinition;\n if (!definition || typeof definition !== 'object' || definition.id !== row.connector_id) return undefined;\n return {\n connectorId: row.connector_id,\n provider: row.provider,\n definition,\n fetchedAt: row.fetched_at,\n expiresAt: row.expires_at ?? undefined,\n };\n } catch {\n return undefined;\n }\n}\n\nfunction approvalFromRow(row: ApprovalRow): ConnectorApprovalRecord {\n return {\n id: row.id,\n principalId: row.principal_id,\n connectorId: row.connector_id,\n connectionId: row.connection_id ?? undefined,\n agentId: row.agent_id ?? undefined,\n sessionKey: row.session_key ?? undefined,\n actionId: row.action_id,\n scope: row.scope,\n argumentsHash: row.arguments_hash,\n argumentsPreview: parseObject(row.arguments_preview_json),\n status: row.status,\n expiresAt: row.expires_at,\n createdAt: row.created_at,\n decidedAt: row.decided_at ?? undefined,\n consumedAt: row.consumed_at ?? undefined,\n };\n}\n\nexport function createConnectorApproval(\n input: Omit<ConnectorApprovalRecord, 'id' | 'status' | 'createdAt'> & Partial<Pick<ConnectorApprovalRecord, 'id' | 'status' | 'createdAt'>>,\n): ConnectorApprovalRecord {\n const record: ConnectorApprovalRecord = {\n ...input,\n id: input.id ?? randomUUID(),\n status: input.status ?? 'pending',\n createdAt: input.createdAt ?? new Date().toISOString(),\n };\n runSqliteWriteTransaction((db) => {\n db.prepare(`\n INSERT INTO connector_approvals (\n id, principal_id, connector_id, connection_id, agent_id, session_key, action_id,\n scope, arguments_hash, arguments_preview_json, status, expires_at, created_at,\n decided_at, consumed_at\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n `).run(\n record.id,\n record.principalId,\n record.connectorId,\n record.connectionId ?? null,\n record.agentId ?? null,\n record.sessionKey ?? null,\n record.actionId,\n record.scope,\n record.argumentsHash,\n JSON.stringify(record.argumentsPreview),\n record.status,\n record.expiresAt,\n record.createdAt,\n record.decidedAt ?? null,\n record.consumedAt ?? null,\n );\n });\n return record;\n}\n\nexport function getConnectorApproval(id: string): ConnectorApprovalRecord | undefined {\n const row = getSqliteDatabase().prepare('SELECT * FROM connector_approvals WHERE id = ?').get(id) as ApprovalRow | undefined;\n return row ? approvalFromRow(row) : undefined;\n}\n\nexport function listConnectorApprovals(options: {\n principalId?: string;\n sessionKey?: string;\n status?: ConnectorApprovalRecord['status'];\n limit?: number;\n} = {}): ConnectorApprovalRecord[] {\n const clauses: string[] = [];\n const values: Array<string | number> = [];\n if (options.principalId) {\n clauses.push('principal_id = ?');\n values.push(options.principalId);\n }\n if (options.sessionKey) {\n clauses.push('session_key = ?');\n values.push(options.sessionKey);\n }\n if (options.status) {\n clauses.push('status = ?');\n values.push(options.status);\n }\n const where = clauses.length > 0 ? ` WHERE ${clauses.join(' AND ')}` : '';\n values.push(Math.max(1, Math.min(options.limit ?? 100, 500)));\n const rows = getSqliteDatabase().prepare(\n `SELECT * FROM connector_approvals${where} ORDER BY created_at DESC, rowid DESC LIMIT ?`,\n ).all(...values) as ApprovalRow[];\n return rows.map(approvalFromRow);\n}\n\nexport function decideConnectorApproval(id: string, decision: 'approved' | 'denied', now = new Date()): ConnectorApprovalRecord | undefined {\n return runSqliteWriteTransaction((db) => {\n const current = db.prepare('SELECT * FROM connector_approvals WHERE id = ?').get(id) as ApprovalRow | undefined;\n if (!current) return undefined;\n if (current.status !== 'pending' || Date.parse(current.expires_at) <= now.getTime()) {\n if (current.status === 'pending') {\n db.prepare(\"UPDATE connector_approvals SET status = 'expired', decided_at = ? WHERE id = ?\")\n .run(now.toISOString(), id);\n }\n const updated = db.prepare('SELECT * FROM connector_approvals WHERE id = ?').get(id) as ApprovalRow;\n return approvalFromRow(updated);\n }\n db.prepare('UPDATE connector_approvals SET status = ?, decided_at = ? WHERE id = ?')\n .run(decision, now.toISOString(), id);\n const updated = db.prepare('SELECT * FROM connector_approvals WHERE id = ?').get(id) as ApprovalRow;\n return approvalFromRow(updated);\n });\n}\n\nexport function consumeConnectorApproval(id: string, argumentsHash: string, now = new Date()): ConnectorApprovalRecord | undefined {\n return runSqliteWriteTransaction((db) => {\n const current = db.prepare('SELECT * FROM connector_approvals WHERE id = ?').get(id) as ApprovalRow | undefined;\n if (!current || current.arguments_hash !== argumentsHash) return undefined;\n if (current.status !== 'approved' || Date.parse(current.expires_at) <= now.getTime()) {\n if (current.status === 'approved' && Date.parse(current.expires_at) <= now.getTime()) {\n db.prepare(\"UPDATE connector_approvals SET status = 'expired' WHERE id = ?\").run(id);\n }\n return undefined;\n }\n db.prepare(\"UPDATE connector_approvals SET status = 'consumed', consumed_at = ? WHERE id = ? AND status = 'approved'\")\n .run(now.toISOString(), id);\n const updated = db.prepare('SELECT * FROM connector_approvals WHERE id = ?').get(id) as ApprovalRow;\n return approvalFromRow(updated);\n });\n}\n\nexport function upsertConnectorCatalogEntry(input: CachedConnectorCatalogEntry): CachedConnectorCatalogEntry {\n runSqliteWriteTransaction((db) => {\n db.prepare(`\n INSERT INTO connector_catalog_entries (connector_id, provider, definition_json, fetched_at, expires_at)\n VALUES (?, ?, ?, ?, ?)\n ON CONFLICT(connector_id) DO UPDATE SET\n provider = excluded.provider,\n definition_json = excluded.definition_json,\n fetched_at = excluded.fetched_at,\n expires_at = excluded.expires_at\n `).run(\n input.connectorId,\n input.provider,\n JSON.stringify(input.definition),\n input.fetchedAt,\n input.expiresAt ?? null,\n );\n });\n return input;\n}\n\nexport function getCachedConnectorCatalogEntry(connectorId: string): CachedConnectorCatalogEntry | undefined {\n const row = getSqliteDatabase().prepare(\n 'SELECT * FROM connector_catalog_entries WHERE connector_id = ?',\n ).get(connectorId) as CatalogRow | undefined;\n return row ? catalogFromRow(row) : undefined;\n}\n\nexport function listCachedConnectorCatalogEntries(provider?: string): CachedConnectorCatalogEntry[] {\n const rows = (provider\n ? getSqliteDatabase().prepare('SELECT * FROM connector_catalog_entries WHERE provider = ? ORDER BY connector_id').all(provider)\n : getSqliteDatabase().prepare('SELECT * FROM connector_catalog_entries ORDER BY provider, connector_id').all()) as CatalogRow[];\n return rows.flatMap((row) => {\n const entry = catalogFromRow(row);\n return entry ? [entry] : [];\n });\n}\n\nexport function upsertConnectorInstallation(\n input: Omit<ConnectorInstallationPolicy, 'createdAt' | 'updatedAt'> & Partial<Pick<ConnectorInstallationPolicy, 'createdAt' | 'updatedAt'>>,\n): ConnectorInstallationPolicy {\n const now = new Date().toISOString();\n return runSqliteWriteTransaction((db) => {\n db.prepare(`\n INSERT INTO connector_installations (\n id, connector_id, principal_id, enabled, allowed_agent_ids_json, max_scope,\n confirmation_policy, selected_connection_ids_json, created_at, updated_at\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n ON CONFLICT(id) DO UPDATE SET\n connector_id = excluded.connector_id,\n principal_id = excluded.principal_id,\n enabled = excluded.enabled,\n allowed_agent_ids_json = excluded.allowed_agent_ids_json,\n max_scope = excluded.max_scope,\n confirmation_policy = excluded.confirmation_policy,\n selected_connection_ids_json = excluded.selected_connection_ids_json,\n updated_at = excluded.updated_at\n `).run(\n input.id,\n input.connectorId,\n input.principalId,\n input.enabled ? 1 : 0,\n JSON.stringify(input.allowedAgentIds),\n input.maxScope,\n input.confirmationPolicy,\n JSON.stringify(input.selectedConnectionIds),\n input.createdAt ?? now,\n input.updatedAt ?? now,\n );\n return getConnectorInstallation(input.id)!;\n });\n}\n\nexport function getConnectorInstallation(id: string): ConnectorInstallationPolicy | undefined {\n const row = getSqliteDatabase().prepare('SELECT * FROM connector_installations WHERE id = ?').get(id) as InstallationRow | undefined;\n return row ? installationFromRow(row) : undefined;\n}\n\nexport function listConnectorInstallations(principalId?: string): ConnectorInstallationPolicy[] {\n const rows = (principalId\n ? getSqliteDatabase().prepare('SELECT * FROM connector_installations WHERE principal_id = ? ORDER BY connector_id').all(principalId)\n : getSqliteDatabase().prepare('SELECT * FROM connector_installations ORDER BY principal_id, connector_id').all()) as InstallationRow[];\n return rows.map(installationFromRow);\n}\n\nexport function deleteConnectorInstallation(id: string): boolean {\n return runSqliteWriteTransaction((db) => db.prepare('DELETE FROM connector_installations WHERE id = ?').run(id).changes > 0);\n}\n\nexport function upsertConnectorConnection(\n input: Omit<ConnectorConnection, 'createdAt' | 'updatedAt'> & Partial<Pick<ConnectorConnection, 'createdAt' | 'updatedAt'>>,\n): ConnectorConnection {\n const now = new Date().toISOString();\n return runSqliteWriteTransaction((db) => {\n if (input.isDefault) {\n db.prepare('UPDATE connector_connections SET is_default = 0 WHERE principal_id = ? AND connector_id = ? AND id <> ?')\n .run(input.principalId, input.connectorId, input.id);\n }\n db.prepare(`\n INSERT INTO connector_connections (\n id, installation_id, connector_id, provider, principal_id, provider_connection_id,\n alias, identity_json, status, is_default, connected_at, expires_at, last_error,\n metadata_json, created_at, updated_at\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n ON CONFLICT(id) DO UPDATE SET\n installation_id = excluded.installation_id,\n connector_id = excluded.connector_id,\n provider = excluded.provider,\n principal_id = excluded.principal_id,\n provider_connection_id = excluded.provider_connection_id,\n alias = excluded.alias,\n identity_json = excluded.identity_json,\n status = excluded.status,\n is_default = excluded.is_default,\n connected_at = excluded.connected_at,\n expires_at = excluded.expires_at,\n last_error = excluded.last_error,\n metadata_json = excluded.metadata_json,\n updated_at = excluded.updated_at\n `).run(\n input.id,\n input.installationId ?? null,\n input.connectorId,\n input.provider,\n input.principalId,\n input.providerConnectionId,\n input.alias ?? null,\n JSON.stringify(input.identity),\n input.status,\n input.isDefault ? 1 : 0,\n input.connectedAt ?? null,\n input.expiresAt ?? null,\n input.lastError ?? null,\n JSON.stringify(input.metadata),\n input.createdAt ?? now,\n input.updatedAt ?? now,\n );\n return getConnectorConnection(input.id)!;\n });\n}\n\nexport function getConnectorConnection(id: string): ConnectorConnection | undefined {\n const row = getSqliteDatabase().prepare('SELECT * FROM connector_connections WHERE id = ?').get(id) as ConnectionRow | undefined;\n return row ? connectionFromRow(row) : undefined;\n}\n\nexport function listConnectorConnections(options: { principalId?: string; connectorId?: string } = {}): ConnectorConnection[] {\n const clauses: string[] = [];\n const values: string[] = [];\n if (options.principalId) {\n clauses.push('principal_id = ?');\n values.push(options.principalId);\n }\n if (options.connectorId) {\n clauses.push('connector_id = ?');\n values.push(options.connectorId);\n }\n const where = clauses.length > 0 ? ` WHERE ${clauses.join(' AND ')}` : '';\n const rows = getSqliteDatabase().prepare(`SELECT * FROM connector_connections${where} ORDER BY is_default DESC, updated_at DESC`).all(...values) as ConnectionRow[];\n return rows.map(connectionFromRow);\n}\n\nexport function deleteConnectorConnection(id: string): boolean {\n return runSqliteWriteTransaction((db) => db.prepare('DELETE FROM connector_connections WHERE id = ?').run(id).changes > 0);\n}\n\nexport function upsertConnectorActionMetadata(input: ConnectorActionMetadata): ConnectorActionMetadata {\n return runSqliteWriteTransaction((db) => {\n db.prepare(`\n INSERT INTO connector_action_metadata (\n connector_id, action_id, toolkit, scope, curated, input_schema_json, schema_version, cached_at\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)\n ON CONFLICT(connector_id, action_id) DO UPDATE SET\n toolkit = excluded.toolkit,\n scope = excluded.scope,\n curated = excluded.curated,\n input_schema_json = excluded.input_schema_json,\n schema_version = excluded.schema_version,\n cached_at = excluded.cached_at\n `).run(\n input.connectorId,\n input.actionId,\n input.toolkit ?? null,\n input.scope,\n input.curated ? 1 : 0,\n input.inputSchema === undefined ? null : JSON.stringify(input.inputSchema),\n input.schemaVersion ?? null,\n input.cachedAt,\n );\n return input;\n });\n}\n\nexport function listConnectorActionMetadata(connectorId: string): ConnectorActionMetadata[] {\n const rows = getSqliteDatabase().prepare(\n 'SELECT * FROM connector_action_metadata WHERE connector_id = ? ORDER BY action_id',\n ).all(connectorId) as ActionRow[];\n return rows.map(actionFromRow);\n}\n\nexport function appendConnectorExecutionAudit(\n input: Omit<ConnectorExecutionAuditRecord, 'id' | 'createdAt'> & Partial<Pick<ConnectorExecutionAuditRecord, 'id' | 'createdAt'>>,\n): ConnectorExecutionAuditRecord {\n const record: ConnectorExecutionAuditRecord = {\n ...input,\n id: input.id ?? randomUUID(),\n createdAt: input.createdAt ?? new Date().toISOString(),\n };\n runSqliteWriteTransaction((db) => {\n db.prepare(`\n INSERT INTO connector_execution_audit (\n id, installation_id, connection_id, connector_id, principal_id, agent_id,\n session_key, action_id, scope, decision, result_status, duration_ms, error_code, created_at\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n `).run(\n record.id,\n record.installationId ?? null,\n record.connectionId ?? null,\n record.connectorId,\n record.principalId,\n record.agentId ?? null,\n record.sessionKey ?? null,\n record.actionId,\n record.scope,\n record.decision,\n record.resultStatus,\n record.durationMs ?? null,\n record.errorCode ?? null,\n record.createdAt,\n );\n });\n return record;\n}\n\nexport function listConnectorExecutionAudit(options: { principalId?: string; connectorId?: string; limit?: number } = {}): ConnectorExecutionAuditRecord[] {\n const clauses: string[] = [];\n const values: Array<string | number> = [];\n if (options.principalId) {\n clauses.push('principal_id = ?');\n values.push(options.principalId);\n }\n if (options.connectorId) {\n clauses.push('connector_id = ?');\n values.push(options.connectorId);\n }\n const where = clauses.length > 0 ? ` WHERE ${clauses.join(' AND ')}` : '';\n values.push(Math.max(1, Math.min(options.limit ?? 100, 500)));\n const rows = getSqliteDatabase().prepare(\n `SELECT * FROM connector_execution_audit${where} ORDER BY created_at DESC, rowid DESC LIMIT ?`,\n ).all(...values) as AuditRow[];\n return rows.map(auditFromRow);\n}\n\nexport function claimConnectorWebhookDelivery(input: {\n id: string;\n provider: string;\n payloadHash: string;\n now?: Date;\n leaseMs?: number;\n}): 'claimed' | 'processed' | 'in_flight' {\n const now = input.now ?? new Date();\n return runSqliteWriteTransaction((db) => {\n const current = db.prepare('SELECT status, processing_at, payload_hash FROM connector_webhook_deliveries WHERE id = ?')\n .get(input.id) as { status: string; processing_at: string | null; payload_hash: string } | undefined;\n if (!current) {\n db.prepare(`\n INSERT INTO connector_webhook_deliveries (\n id, provider, payload_hash, status, attempts, received_at, processing_at\n ) VALUES (?, ?, ?, 'processing', 1, ?, ?)\n `).run(input.id, input.provider, input.payloadHash, now.toISOString(), now.toISOString());\n return 'claimed';\n }\n if (current.payload_hash !== input.payloadHash) throw new Error('Webhook delivery id was reused with a different payload.');\n if (current.status === 'processed') return 'processed';\n const leaseMs = input.leaseMs ?? 5 * 60_000;\n if (current.status === 'processing' && current.processing_at && Date.parse(current.processing_at) + leaseMs > now.getTime()) {\n return 'in_flight';\n }\n db.prepare(`\n UPDATE connector_webhook_deliveries\n SET status = 'processing', attempts = attempts + 1, processing_at = ?, last_error = NULL\n WHERE id = ?\n `).run(now.toISOString(), input.id);\n return 'claimed';\n });\n}\n\nexport function completeConnectorWebhookDelivery(id: string, now = new Date()): void {\n runSqliteWriteTransaction((db) => {\n db.prepare(`\n UPDATE connector_webhook_deliveries\n SET status = 'processed', processed_at = ?, processing_at = NULL, last_error = NULL\n WHERE id = ?\n `).run(now.toISOString(), id);\n });\n}\n\nexport function releaseConnectorWebhookDelivery(id: string, error: unknown): void {\n const message = error instanceof Error ? error.message : String(error);\n runSqliteWriteTransaction((db) => {\n db.prepare(`\n UPDATE connector_webhook_deliveries\n SET status = 'pending', processing_at = NULL, last_error = ?\n WHERE id = ? AND status = 'processing'\n `).run(message.slice(0, 500), id);\n });\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"fts.js","names":[],"sources":["../../../../src/storage/sqlite/fts.ts"],"sourcesContent":["/** Quote a user query for FTS5 phrase/prefix-safe matching. */\nexport function escapeFts5Query(raw: string): string {\n const trimmed = raw.trim();\n if (!trimmed) {\n return '';\n }\n return `\"${trimmed.replace(/\"/g, '\"\"')}\"`;\n}\n\nconst FTS_SEARCH_STOP_WORDS = new Set([\n 'a', 'an', 'and', 'are', 'can', 'did', 'do', 'does', 'for', 'how', 'i', 'in', 'is',\n 'it', 'me', 'my', 'of', 'on', 'or', 'the', 'to', 'was', 'what', 'when', 'where',\n 'which', 'who', 'why', 'with', 'you', 'your',\n]);\n\n/** Build a syntax-safe, recall-oriented query for natural-language memory search. */\nexport function buildFts5SearchQuery(raw: string): string {\n const terms = raw\n .normalize('NFKC')\n .match(/[\\p{L}\\p{N}_]+/gu)\n ?.map((term) => term.toLocaleLowerCase())\n .filter((term) => term.length > 1 && !FTS_SEARCH_STOP_WORDS.has(term));\n if (!terms?.length) return escapeFts5Query(raw);\n return [...new Set(terms)]\n .slice(0, 12)\n .map((term) => escapeFts5Query(term))\n .join(' OR ');\n}\n\n/** Normalize FTS5 BM25 ranks, where a more-negative rank is a better match. */\nexport function fts5RankToScore(rank: number, bestRank: number, worstRank: number): number {\n if (![rank, bestRank, worstRank].every(Number.isFinite)) return 0;\n if (bestRank === worstRank) return 0.75;\n const normalized = (worstRank - rank) / (worstRank - bestRank);\n return 0.5 + 0.5 * Math.max(0, Math.min(1, normalized));\n}\n\nfunction lexicalFeatures(raw: string): Set<string> {\n const normalized = raw.normalize('NFKC').toLocaleLowerCase();\n const features = new Set<string>();\n for (const term of normalized.match(/[\\p{L}\\p{N}_]+/gu) ?? []) {\n if (term.length > 1 && !FTS_SEARCH_STOP_WORDS.has(term)) features.add(`word:${term}`);\n }\n for (const sequence of normalized.match(/\\p{Script=Han}+/gu) ?? []) {\n const chars = [...sequence];\n for (let index = 0; index < chars.length - 1; index += 1) {\n features.add(`han:${chars[index]}${chars[index + 1]}`);\n }\n }\n return features;\n}\n\n/** Bounded lexical fallback for reformulations unsupported by unicode61 tokenization. */\nexport function memoryLexicalSimilarity(query: string, content: string): number {\n const queryFeatures = lexicalFeatures(query);\n const contentFeatures = lexicalFeatures(content);\n if (queryFeatures.size === 0 || contentFeatures.size === 0) return 0;\n let shared = 0;\n for (const feature of queryFeatures) {\n if (contentFeatures.has(feature)) shared += 1;\n }\n return (2 * shared) / (queryFeatures.size + contentFeatures.size);\n}\n"],"mappings":";;AACA,SAAgB,gBAAgB,KAAqB;CACnD,MAAM,UAAU,IAAI,MAAM;AAC1B,KAAI,CAAC,QACH,QAAO;AAET,QAAO,IAAI,QAAQ,QAAQ,MAAM,OAAK,CAAC;;AAGzC,MAAM,wBAAwB,IAAI,IAAI;CACpC;CAAK;CAAM;CAAO;CAAO;CAAO;CAAO;CAAM;CAAQ;CAAO;CAAO;CAAK;CAAM;CAC9E;CAAM;CAAM;CAAM;CAAM;CAAM;CAAM;CAAO;CAAM;CAAO;CAAQ;CAAQ;CACxE;CAAS;CAAO;CAAO;CAAQ;CAAO;CACvC,CAAC;;AAGF,SAAgB,qBAAqB,KAAqB;CACxD,MAAM,QAAQ,IACX,UAAU,OAAO,CACjB,MAAM,mBAAmB,EACxB,KAAK,SAAS,KAAK,mBAAmB,CAAC,CACxC,QAAQ,SAAS,KAAK,SAAS,KAAK,CAAC,sBAAsB,IAAI,KAAK,CAAC;AACxE,KAAI,CAAC,OAAO,OAAQ,QAAO,gBAAgB,IAAI;AAC/C,QAAO,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC,CACvB,MAAM,GAAG,GAAG,CACZ,KAAK,SAAS,gBAAgB,KAAK,CAAC,CACpC,KAAK,OAAO;;;AAIjB,SAAgB,gBAAgB,MAAc,UAAkB,WAA2B;AACzF,KAAI,CAAC;EAAC;EAAM;EAAU;EAAU,CAAC,MAAM,OAAO,SAAS,CAAE,QAAO;AAChE,KAAI,aAAa,UAAW,QAAO;CACnC,MAAM,cAAc,YAAY,SAAS,YAAY;AACrD,QAAO,KAAM,KAAM,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,WAAW,CAAC;;AAGzD,SAAS,gBAAgB,KAA0B;CACjD,MAAM,aAAa,IAAI,UAAU,OAAO,CAAC,mBAAmB;CAC5D,MAAM,2BAAW,IAAI,KAAa;AAClC,MAAK,MAAM,QAAQ,WAAW,MAAM,mBAAmB,IAAI,EAAE,CAC3D,KAAI,KAAK,SAAS,KAAK,CAAC,sBAAsB,IAAI,KAAK,CAAE,UAAS,IAAI,QAAQ,OAAO;AAEvF,MAAK,MAAM,YAAY,WAAW,MAAM,oBAAoB,IAAI,EAAE,EAAE;EAClE,MAAM,QAAQ,CAAC,GAAG,SAAS;AAC3B,OAAK,IAAI,QAAQ,GAAG,QAAQ,MAAM,SAAS,GAAG,SAAS,EACrD,UAAS,IAAI,OAAO,MAAM,SAAS,MAAM,QAAQ,KAAK;;AAG1D,QAAO;;;AAIT,SAAgB,wBAAwB,OAAe,SAAyB;CAC9E,MAAM,gBAAgB,gBAAgB,MAAM;CAC5C,MAAM,kBAAkB,gBAAgB,QAAQ;AAChD,KAAI,cAAc,SAAS,KAAK,gBAAgB,SAAS,EAAG,QAAO;CACnE,IAAI,SAAS;AACb,MAAK,MAAM,WAAW,cACpB,KAAI,gBAAgB,IAAI,QAAQ,CAAE,WAAU;AAE9C,QAAQ,IAAI,UAAW,cAAc,OAAO,gBAAgB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"knowledge-repository.js","names":[],"sources":["../../../../src/storage/sqlite/knowledge-repository.ts"],"sourcesContent":["import { randomUUID } from 'node:crypto';\n\nimport type {\n KnowledgeSourceChange,\n KnowledgeSourceItem,\n KnowledgeSourceItemInput,\n KnowledgeSyncRun,\n KnowledgeSyncRunStatus,\n KnowledgeSynthesisPipeline,\n KnowledgeSynthesisStatus,\n} from '../../knowledge/types.js';\nimport type { MemoryEvidence, MemoryEvidenceRelation } from '../../agent/memory/types.js';\nimport { getSqliteDatabase, runSqliteWriteTransaction } from './transaction.js';\n\ntype KnowledgeSourceItemRow = {\n item_id: string;\n source_instance_id: string;\n external_id: string;\n item_type: string;\n author_role: string | null;\n occurred_at: number | null;\n source_updated_at: number | null;\n content_hash: string;\n normalized_text: string | null;\n payload_ref: string | null;\n metadata_json: string;\n sensitivity: string;\n retention_class: string;\n synthesis_pipeline: string;\n synthesis_status: string;\n synthesis_attempts: number;\n synthesis_claimed_at: number | null;\n synthesis_claimed_by: string | null;\n synthesis_error: string | null;\n deleted_at: number | null;\n created_at: number;\n updated_at: number;\n};\n\ntype KnowledgeSourceChangeRow = {\n sequence: number;\n change_id: string;\n source_instance_id: string;\n source_item_id: string;\n change_kind: string;\n old_hash: string | null;\n new_hash: string | null;\n changed_at: number;\n};\n\ntype KnowledgeSyncRunRow = {\n run_id: string;\n source_instance_id: string;\n status: string;\n cursor_before: string | null;\n cursor_after: string | null;\n items_seen: number;\n items_created: number;\n items_updated: number;\n warnings_json: string;\n error: string | null;\n started_at: number;\n finished_at: number | null;\n};\n\ntype MemoryEvidenceRow = {\n evidence_id: string;\n record_id: string;\n source_item_id: string | null;\n relation: string;\n excerpt: string | null;\n confidence: number | null;\n observed_at: number | null;\n created_at: number;\n};\n\nfunction parseTimestamp(value: string | undefined): number | null {\n if (!value) return null;\n const parsed = Date.parse(value);\n return Number.isFinite(parsed) ? parsed : null;\n}\n\nfunction timestampToIso(value: number | null): string | undefined {\n return value == null ? undefined : new Date(value).toISOString();\n}\n\nfunction parseRecord(json: string): Record<string, unknown> {\n try {\n const parsed = JSON.parse(json) as unknown;\n return parsed && typeof parsed === 'object' && !Array.isArray(parsed)\n ? parsed as Record<string, unknown>\n : {};\n } catch {\n return {};\n }\n}\n\nfunction parseStrings(json: string): string[] {\n try {\n const parsed = JSON.parse(json) as unknown;\n return Array.isArray(parsed) ? parsed.filter((item): item is string => typeof item === 'string') : [];\n } catch {\n return [];\n }\n}\n\nfunction sourceItemFromRow(row: KnowledgeSourceItemRow): KnowledgeSourceItem {\n return {\n id: row.item_id,\n sourceInstanceId: row.source_instance_id,\n externalId: row.external_id,\n itemType: row.item_type,\n ...(row.author_role ? { authorRole: row.author_role as KnowledgeSourceItem['authorRole'] } : {}),\n ...(timestampToIso(row.occurred_at) ? { occurredAt: timestampToIso(row.occurred_at) } : {}),\n ...(timestampToIso(row.source_updated_at) ? { sourceUpdatedAt: timestampToIso(row.source_updated_at) } : {}),\n contentHash: row.content_hash,\n ...(row.normalized_text ? { normalizedText: row.normalized_text } : {}),\n ...(row.payload_ref ? { payloadRef: row.payload_ref } : {}),\n metadata: parseRecord(row.metadata_json),\n sensitivity: row.sensitivity as KnowledgeSourceItem['sensitivity'],\n retentionClass: row.retention_class as KnowledgeSourceItem['retentionClass'],\n synthesisPipeline: row.synthesis_pipeline as KnowledgeSourceItem['synthesisPipeline'],\n synthesisStatus: row.synthesis_status as KnowledgeSourceItem['synthesisStatus'],\n synthesisAttempts: row.synthesis_attempts,\n ...(timestampToIso(row.synthesis_claimed_at) ? { synthesisClaimedAt: timestampToIso(row.synthesis_claimed_at) } : {}),\n ...(row.synthesis_claimed_by ? { synthesisClaimedBy: row.synthesis_claimed_by } : {}),\n ...(row.synthesis_error ? { synthesisError: row.synthesis_error } : {}),\n ...(timestampToIso(row.deleted_at) ? { deletedAt: timestampToIso(row.deleted_at) } : {}),\n createdAt: new Date(row.created_at).toISOString(),\n updatedAt: new Date(row.updated_at).toISOString(),\n };\n}\n\nfunction sourceChangeFromRow(row: KnowledgeSourceChangeRow): KnowledgeSourceChange {\n return {\n sequence: row.sequence,\n id: row.change_id,\n sourceInstanceId: row.source_instance_id,\n sourceItemId: row.source_item_id,\n kind: row.change_kind as KnowledgeSourceChange['kind'],\n ...(row.old_hash ? { oldHash: row.old_hash } : {}),\n ...(row.new_hash ? { newHash: row.new_hash } : {}),\n changedAt: new Date(row.changed_at).toISOString(),\n };\n}\n\nfunction syncRunFromRow(row: KnowledgeSyncRunRow): KnowledgeSyncRun {\n return {\n id: row.run_id,\n sourceInstanceId: row.source_instance_id,\n status: row.status as KnowledgeSyncRunStatus,\n ...(row.cursor_before ? { cursorBefore: row.cursor_before } : {}),\n ...(row.cursor_after ? { cursorAfter: row.cursor_after } : {}),\n itemsSeen: row.items_seen,\n itemsCreated: row.items_created,\n itemsUpdated: row.items_updated,\n warnings: parseStrings(row.warnings_json),\n ...(row.error ? { error: row.error } : {}),\n startedAt: new Date(row.started_at).toISOString(),\n ...(timestampToIso(row.finished_at) ? { finishedAt: timestampToIso(row.finished_at) } : {}),\n };\n}\n\nexport function startKnowledgeSyncRun(input: {\n sourceInstanceId: string;\n cursorBefore?: string;\n nowMs?: number;\n}): KnowledgeSyncRun {\n const id = randomUUID();\n const now = input.nowMs ?? Date.now();\n runSqliteWriteTransaction((db) => {\n db.prepare(\n `INSERT INTO knowledge_sync_runs (\n run_id, source_instance_id, status, cursor_before, started_at\n ) VALUES (?, ?, 'running', ?, ?)`,\n ).run(id, input.sourceInstanceId, input.cursorBefore ?? null, now);\n });\n return {\n id,\n sourceInstanceId: input.sourceInstanceId,\n status: 'running',\n ...(input.cursorBefore ? { cursorBefore: input.cursorBefore } : {}),\n itemsSeen: 0,\n itemsCreated: 0,\n itemsUpdated: 0,\n warnings: [],\n startedAt: new Date(now).toISOString(),\n };\n}\n\nexport function finishKnowledgeSyncRun(input: {\n runId: string;\n status: Exclude<KnowledgeSyncRunStatus, 'running'>;\n cursorAfter?: string;\n itemsSeen?: number;\n itemsCreated?: number;\n itemsUpdated?: number;\n warnings?: string[];\n error?: string;\n nowMs?: number;\n}): KnowledgeSyncRun {\n const now = input.nowMs ?? Date.now();\n runSqliteWriteTransaction((db) => {\n db.prepare(\n `UPDATE knowledge_sync_runs SET\n status = ?, cursor_after = ?, items_seen = ?, items_created = ?,\n items_updated = ?, warnings_json = ?, error = ?, finished_at = ?\n WHERE run_id = ?`,\n ).run(\n input.status,\n input.cursorAfter ?? null,\n input.itemsSeen ?? 0,\n input.itemsCreated ?? 0,\n input.itemsUpdated ?? 0,\n JSON.stringify(input.warnings ?? []),\n input.error ?? null,\n now,\n input.runId,\n );\n });\n const row = getSqliteDatabase()\n .prepare(`SELECT * FROM knowledge_sync_runs WHERE run_id = ?`)\n .get(input.runId) as KnowledgeSyncRunRow | undefined;\n if (!row) throw new Error(`Knowledge sync run not found: ${input.runId}`);\n return syncRunFromRow(row);\n}\n\nexport function listKnowledgeSyncRuns(options: {\n sourceInstanceId?: string;\n status?: KnowledgeSyncRunStatus;\n limit?: number;\n} = {}): KnowledgeSyncRun[] {\n const where: string[] = [];\n const params: Array<string | number> = [];\n if (options.sourceInstanceId) {\n where.push('source_instance_id = ?');\n params.push(options.sourceInstanceId);\n }\n if (options.status) {\n where.push('status = ?');\n params.push(options.status);\n }\n const limit = Math.max(1, Math.min(500, options.limit ?? 100));\n const rows = getSqliteDatabase()\n .prepare(\n `SELECT * FROM knowledge_sync_runs\n ${where.length > 0 ? `WHERE ${where.join(' AND ')}` : ''}\n ORDER BY started_at DESC LIMIT ?`,\n )\n .all(...params, limit) as KnowledgeSyncRunRow[];\n return rows.map(syncRunFromRow);\n}\n\nexport function getKnowledgeSourceCursor(sourceInstanceId: string): string | undefined {\n const row = getSqliteDatabase()\n .prepare(`SELECT cursor FROM knowledge_source_state WHERE source_instance_id = ?`)\n .get(sourceInstanceId) as { cursor: string | null } | undefined;\n return row?.cursor ?? undefined;\n}\n\nexport function setKnowledgeSourceCursor(sourceInstanceId: string, cursor: string | undefined): void {\n runSqliteWriteTransaction((db) => {\n db.prepare(\n `INSERT INTO knowledge_source_state (source_instance_id, cursor, updated_at)\n VALUES (?, ?, ?)\n ON CONFLICT(source_instance_id) DO UPDATE SET\n cursor = excluded.cursor,\n updated_at = excluded.updated_at`,\n ).run(sourceInstanceId, cursor ?? null, Date.now());\n });\n}\n\nexport function upsertKnowledgeSourceItems(\n inputs: KnowledgeSourceItemInput[],\n nowMs = Date.now(),\n): { items: KnowledgeSourceItem[]; created: number; updated: number; unchanged: number } {\n return runSqliteWriteTransaction((db) => {\n const items: KnowledgeSourceItem[] = [];\n let created = 0;\n let updated = 0;\n let unchanged = 0;\n for (const input of inputs) {\n const existing = db.prepare(\n `SELECT * FROM knowledge_source_items\n WHERE source_instance_id = ? AND external_id = ?`,\n ).get(input.sourceInstanceId, input.externalId) as KnowledgeSourceItemRow | undefined;\n const id = existing?.item_id ?? input.id ?? randomUUID();\n if (existing?.content_hash === input.contentHash && existing.deleted_at === parseTimestamp(input.deletedAt)) {\n unchanged += 1;\n items.push(sourceItemFromRow(existing));\n continue;\n }\n db.prepare(\n `INSERT INTO knowledge_source_items (\n item_id, source_instance_id, external_id, item_type, author_role,\n occurred_at, source_updated_at, content_hash, normalized_text,\n payload_ref, metadata_json, sensitivity, retention_class,\n synthesis_pipeline, synthesis_status, deleted_at, created_at, updated_at\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n ON CONFLICT(source_instance_id, external_id) DO UPDATE SET\n item_type = excluded.item_type,\n author_role = excluded.author_role,\n occurred_at = excluded.occurred_at,\n source_updated_at = excluded.source_updated_at,\n content_hash = excluded.content_hash,\n normalized_text = excluded.normalized_text,\n payload_ref = excluded.payload_ref,\n metadata_json = excluded.metadata_json,\n sensitivity = excluded.sensitivity,\n retention_class = excluded.retention_class,\n synthesis_pipeline = excluded.synthesis_pipeline,\n synthesis_status = excluded.synthesis_status,\n synthesis_attempts = 0,\n synthesis_claimed_at = NULL,\n synthesis_claimed_by = NULL,\n synthesis_error = NULL,\n deleted_at = excluded.deleted_at,\n updated_at = excluded.updated_at`,\n ).run(\n id,\n input.sourceInstanceId,\n input.externalId,\n input.itemType,\n input.authorRole ?? null,\n parseTimestamp(input.occurredAt),\n parseTimestamp(input.sourceUpdatedAt),\n input.contentHash,\n input.normalizedText ?? null,\n input.payloadRef ?? null,\n JSON.stringify(input.metadata ?? {}),\n input.sensitivity ?? 'normal',\n input.retentionClass ?? 'bounded',\n input.synthesisPipeline ?? 'user_understanding',\n input.synthesisStatus ?? 'pending',\n parseTimestamp(input.deletedAt),\n existing?.created_at ?? nowMs,\n nowMs,\n );\n const row = db.prepare(`SELECT * FROM knowledge_source_items WHERE item_id = ?`).get(id) as KnowledgeSourceItemRow;\n items.push(sourceItemFromRow(row));\n const changeKind = input.deletedAt ? 'deleted' : existing ? 'modified' : 'added';\n db.prepare(\n `INSERT INTO knowledge_source_changes (\n change_id, source_instance_id, source_item_id, change_kind,\n old_hash, new_hash, changed_at\n ) VALUES (?, ?, ?, ?, ?, ?, ?)`,\n ).run(\n randomUUID(),\n input.sourceInstanceId,\n id,\n changeKind,\n existing?.content_hash ?? null,\n input.deletedAt ? null : input.contentHash,\n nowMs,\n );\n if (existing) updated += 1;\n else created += 1;\n }\n return { items, created, updated, unchanged };\n });\n}\n\nexport function getKnowledgeSourceItem(itemId: string): KnowledgeSourceItem | null {\n const row = getSqliteDatabase()\n .prepare(`SELECT * FROM knowledge_source_items WHERE item_id = ?`)\n .get(itemId) as KnowledgeSourceItemRow | undefined;\n return row ? sourceItemFromRow(row) : null;\n}\n\nexport function listKnowledgeSourceChanges(options: {\n sourceInstanceId?: string;\n afterSequence?: number;\n limit?: number;\n} = {}): KnowledgeSourceChange[] {\n const where: string[] = [];\n const params: Array<string | number> = [];\n if (options.sourceInstanceId) {\n where.push('source_instance_id = ?');\n params.push(options.sourceInstanceId);\n }\n if (options.afterSequence != null) {\n where.push('sequence > ?');\n params.push(Math.max(0, options.afterSequence));\n }\n const limit = Math.max(1, Math.min(1_000, options.limit ?? 100));\n const rows = getSqliteDatabase().prepare(\n `SELECT * FROM knowledge_source_changes\n ${where.length > 0 ? `WHERE ${where.join(' AND ')}` : ''}\n ORDER BY sequence ASC LIMIT ?`,\n ).all(...params, limit) as KnowledgeSourceChangeRow[];\n return rows.map(sourceChangeFromRow);\n}\n\nexport function getKnowledgeConsumerWatermark(consumerId: string, sourceInstanceId: string): number {\n const row = getSqliteDatabase().prepare(\n `SELECT last_sequence FROM knowledge_consumer_watermarks\n WHERE consumer_id = ? AND source_instance_id = ?`,\n ).get(consumerId, sourceInstanceId) as { last_sequence: number } | undefined;\n return row?.last_sequence ?? 0;\n}\n\nexport function setKnowledgeConsumerWatermark(\n consumerId: string,\n sourceInstanceId: string,\n sequence: number,\n nowMs = Date.now(),\n): void {\n runSqliteWriteTransaction((db) => {\n db.prepare(\n `INSERT INTO knowledge_consumer_watermarks (\n consumer_id, source_instance_id, last_sequence, updated_at\n ) VALUES (?, ?, ?, ?)\n ON CONFLICT(consumer_id, source_instance_id) DO UPDATE SET\n last_sequence = MAX(last_sequence, excluded.last_sequence),\n updated_at = excluded.updated_at`,\n ).run(consumerId, sourceInstanceId, Math.max(0, sequence), nowMs);\n });\n}\n\nexport function listKnowledgeSourceItems(options: {\n sourceInstanceId?: string;\n synthesisStatus?: KnowledgeSynthesisStatus;\n includeDeleted?: boolean;\n limit?: number;\n offset?: number;\n} = {}): KnowledgeSourceItem[] {\n const where: string[] = [];\n const params: Array<string | number> = [];\n if (options.sourceInstanceId) {\n where.push('source_instance_id = ?');\n params.push(options.sourceInstanceId);\n }\n if (options.synthesisStatus) {\n where.push('synthesis_status = ?');\n params.push(options.synthesisStatus);\n }\n if (!options.includeDeleted) where.push('deleted_at IS NULL');\n const limit = Math.max(1, Math.min(500, options.limit ?? 100));\n const offset = Math.max(0, options.offset ?? 0);\n const rows = getSqliteDatabase()\n .prepare(\n `SELECT * FROM knowledge_source_items\n ${where.length > 0 ? `WHERE ${where.join(' AND ')}` : ''}\n ORDER BY COALESCE(source_updated_at, occurred_at, updated_at) DESC\n LIMIT ? OFFSET ?`,\n )\n .all(...params, limit, offset) as KnowledgeSourceItemRow[];\n return rows.map(sourceItemFromRow);\n}\n\nexport function setKnowledgeSourceItemSynthesisStatus(\n itemIds: string[],\n status: KnowledgeSynthesisStatus,\n nowMs = Date.now(),\n): number {\n if (itemIds.length === 0) return 0;\n return runSqliteWriteTransaction((db) => {\n const placeholders = itemIds.map(() => '?').join(', ');\n const result = db.prepare(\n `UPDATE knowledge_source_items SET synthesis_status = ?, updated_at = ?\n WHERE item_id IN (${placeholders})`,\n ).run(status, nowMs, ...itemIds);\n return Number(result.changes);\n });\n}\n\nexport function claimKnowledgeSourceItems(options: {\n workerId: string;\n sourceInstanceId?: string;\n synthesisPipeline?: KnowledgeSynthesisPipeline;\n limit?: number;\n leaseMs?: number;\n retryDelayMs?: number;\n maxAttempts?: number;\n nowMs?: number;\n}): KnowledgeSourceItem[] {\n const now = options.nowMs ?? Date.now();\n const leaseCutoff = now - Math.max(1_000, options.leaseMs ?? 5 * 60_000);\n const retryCutoff = now - Math.max(1_000, options.retryDelayMs ?? 30_000);\n const limit = Math.max(1, Math.min(100, options.limit ?? 20));\n const maxAttempts = Math.max(1, options.maxAttempts ?? 3);\n return runSqliteWriteTransaction((db) => {\n const rows = db.prepare(\n `SELECT * FROM knowledge_source_items\n WHERE synthesis_attempts < ?\n ${options.sourceInstanceId ? 'AND source_instance_id = ?' : ''}\n ${options.synthesisPipeline ? 'AND synthesis_pipeline = ?' : ''}\n AND (\n synthesis_status = 'pending'\n OR (synthesis_status = 'failed' AND updated_at < ?)\n OR (synthesis_status = 'processing' AND synthesis_claimed_at < ?)\n )\n ORDER BY COALESCE(source_updated_at, occurred_at, updated_at) ASC\n LIMIT ?`,\n ).all(\n maxAttempts,\n ...(options.sourceInstanceId ? [options.sourceInstanceId] : []),\n ...(options.synthesisPipeline ? [options.synthesisPipeline] : []),\n retryCutoff,\n leaseCutoff,\n limit,\n ) as KnowledgeSourceItemRow[];\n if (rows.length === 0) return [];\n const ids = rows.map((row) => row.item_id);\n const placeholders = ids.map(() => '?').join(', ');\n db.prepare(\n `UPDATE knowledge_source_items SET\n synthesis_status = 'processing',\n synthesis_attempts = synthesis_attempts + 1,\n synthesis_claimed_at = ?,\n synthesis_claimed_by = ?,\n synthesis_error = NULL,\n updated_at = ?\n WHERE item_id IN (${placeholders})`,\n ).run(now, options.workerId, now, ...ids);\n const claimed = db.prepare(\n `SELECT * FROM knowledge_source_items WHERE item_id IN (${placeholders})`,\n ).all(...ids) as KnowledgeSourceItemRow[];\n return claimed.map(sourceItemFromRow);\n });\n}\n\nexport function completeKnowledgeSourceItemSynthesis(input: {\n itemId: string;\n workerId: string;\n status: 'completed' | 'failed' | 'ignored';\n error?: string;\n nowMs?: number;\n}): boolean {\n const now = input.nowMs ?? Date.now();\n return runSqliteWriteTransaction((db) => {\n const result = db.prepare(\n `UPDATE knowledge_source_items SET\n synthesis_status = ?,\n synthesis_claimed_at = NULL,\n synthesis_claimed_by = NULL,\n synthesis_error = ?,\n updated_at = ?\n WHERE item_id = ? AND synthesis_status = 'processing' AND synthesis_claimed_by = ?`,\n ).run(input.status, input.error ?? null, now, input.itemId, input.workerId);\n return Number(result.changes) > 0;\n });\n}\n\nexport function attachMemoryEvidence(input: {\n recordId: string;\n sourceItemId?: string;\n relation?: MemoryEvidenceRelation;\n excerpt?: string;\n confidence?: number;\n observedAt?: string;\n nowMs?: number;\n}): MemoryEvidence {\n let evidenceId: string = randomUUID();\n const now = input.nowMs ?? Date.now();\n const observedAt = parseTimestamp(input.observedAt);\n runSqliteWriteTransaction((db) => {\n db.prepare(\n `INSERT INTO memory_evidence (\n evidence_id, record_id, source_item_id, relation, excerpt,\n confidence, observed_at, created_at\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)\n ON CONFLICT DO UPDATE SET\n excerpt = COALESCE(excluded.excerpt, memory_evidence.excerpt),\n confidence = MAX(COALESCE(memory_evidence.confidence, 0), COALESCE(excluded.confidence, 0)),\n observed_at = MAX(COALESCE(memory_evidence.observed_at, 0), COALESCE(excluded.observed_at, 0))`,\n ).run(\n evidenceId,\n input.recordId,\n input.sourceItemId ?? null,\n input.relation ?? 'supports',\n input.excerpt ?? null,\n input.confidence ?? null,\n observedAt,\n now,\n );\n if (input.sourceItemId) {\n const stored = db.prepare(\n `SELECT evidence_id FROM memory_evidence\n WHERE record_id = ? AND source_item_id = ? AND relation = ?`,\n ).get(input.recordId, input.sourceItemId, input.relation ?? 'supports') as { evidence_id: string } | undefined;\n evidenceId = stored?.evidence_id ?? evidenceId;\n }\n });\n return {\n evidenceId,\n ...(input.sourceItemId ? { sourceItemId: input.sourceItemId } : {}),\n relation: input.relation ?? 'supports',\n ...(input.excerpt ? { sourceText: input.excerpt } : {}),\n ...(input.confidence != null ? { confidence: input.confidence } : {}),\n ...(observedAt != null ? { observedAt: new Date(observedAt).toISOString() } : {}),\n };\n}\n\nexport function deleteMemoryEvidenceForRecord(\n recordId: string,\n relation?: MemoryEvidenceRelation,\n): number {\n return runSqliteWriteTransaction((db) => {\n const result = relation\n ? db.prepare(`DELETE FROM memory_evidence WHERE record_id = ? AND relation = ?`).run(recordId, relation)\n : db.prepare(`DELETE FROM memory_evidence WHERE record_id = ?`).run(recordId);\n return Number(result.changes);\n });\n}\n\nexport function listMemoryEvidence(recordId: string): MemoryEvidence[] {\n const rows = getSqliteDatabase()\n .prepare(`SELECT * FROM memory_evidence WHERE record_id = ? ORDER BY created_at ASC`)\n .all(recordId) as MemoryEvidenceRow[];\n return rows.map((row) => ({\n evidenceId: row.evidence_id,\n ...(row.source_item_id ? { sourceItemId: row.source_item_id } : {}),\n relation: row.relation as MemoryEvidenceRelation,\n ...(row.excerpt ? { sourceText: row.excerpt } : {}),\n ...(row.confidence != null ? { confidence: row.confidence } : {}),\n ...(timestampToIso(row.observed_at) ? { observedAt: timestampToIso(row.observed_at) } : {}),\n }));\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory-index-repository.js","names":[],"sources":["../../../../src/storage/sqlite/memory-index-repository.ts"],"sourcesContent":["import { createHash } from 'node:crypto';\nimport { existsSync, readFileSync, statSync } from 'node:fs';\nimport { join, relative } from 'node:path';\n\nimport { buildFts5SearchQuery, fts5RankToScore, memoryLexicalSimilarity } from './fts.js';\nimport { getSqliteDatabase, runSqliteWriteTransaction } from './transaction.js';\n\nexport type MemorySearchHit = {\n path: string;\n lines: string;\n score: number;\n lineNumbers: number[];\n};\n\nconst AGENT_MEMORY_FILENAME = 'MEMORY.md';\nconst USER_MEMORY_DISPLAY_PATH = 'user/MEMORY.md';\nconst MEMORY_SYNC_CACHE_TTL_MS = 30_000;\n\ntype MemorySyncCache = {\n timestamp: number;\n paths: string[];\n};\n\nconst memorySyncCache = new Map<string, MemorySyncCache>();\n\nfunction getDailyMemoryPath(baseDir: string, date?: Date): string {\n const d = date || new Date();\n const year = d.getFullYear();\n const month = String(d.getMonth() + 1).padStart(2, '0');\n const day = String(d.getDate()).padStart(2, '0');\n return join(baseDir, 'memory', `${year}-${month}-${day}.md`);\n}\n\nfunction getCuratedMemoryPaths(memoriesDir: string | undefined, userMemoryPath: string | undefined): string[] {\n return [\n ...(memoriesDir ? [join(memoriesDir, AGENT_MEMORY_FILENAME)] : []),\n ...(userMemoryPath ? [userMemoryPath] : []),\n ].filter((p) => existsSync(p));\n}\n\nfunction collectMemoryPaths(baseDir: string, memoriesDir?: string, userMemoryPath?: string): string[] {\n const paths: string[] = [];\n paths.push(...getCuratedMemoryPaths(memoriesDir, userMemoryPath));\n\n const longTermPath = join(baseDir, 'MEMORY.md');\n if (existsSync(longTermPath)) {\n paths.push(longTermPath);\n }\n\n const memoryDir = join(baseDir, 'memory');\n if (existsSync(memoryDir)) {\n const today = new Date();\n for (let i = 0; i < 30; i++) {\n const date = new Date(today);\n date.setDate(date.getDate() - i);\n const path = getDailyMemoryPath(baseDir, date);\n if (existsSync(path)) {\n paths.push(path);\n }\n }\n }\n\n return paths;\n}\n\nfunction displayPath(\n baseDir: string,\n memoriesDir: string | undefined,\n userMemoryPath: string | undefined,\n absPath: string,\n): string {\n const normalized = absPath.replace(/\\\\/g, '/');\n if (userMemoryPath && normalized === userMemoryPath.replace(/\\\\/g, '/')) {\n return USER_MEMORY_DISPLAY_PATH;\n }\n if (memoriesDir) {\n const memoriesRoot = memoriesDir.replace(/\\\\/g, '/');\n if (normalized.startsWith(memoriesRoot)) {\n const filename = normalized.slice(memoriesRoot.length).replace(/^\\//, '');\n if (filename === AGENT_MEMORY_FILENAME) {\n return filename;\n }\n }\n }\n return relative(baseDir, absPath).replace(/\\\\/g, '/');\n}\n\nfunction contentHash(content: string): string {\n return createHash('sha256').update(content).digest('hex');\n}\n\nfunction indexFile(\n db: ReturnType<typeof getSqliteDatabase>,\n userId: string,\n baseDir: string,\n memoriesDir: string | undefined,\n userMemoryPath: string | undefined,\n absPath: string,\n): void {\n const content = readFileSync(absPath, 'utf-8');\n const mtimeMs = statSync(absPath).mtimeMs;\n const hash = contentHash(content);\n const relPath = displayPath(baseDir, memoriesDir, userMemoryPath, absPath);\n const fileId = `${userId}:${relPath}`;\n\n const existing = db\n .prepare(`SELECT content_hash, mtime_ms FROM memory_files WHERE file_id = ?`)\n .get(fileId) as { content_hash: string; mtime_ms: number } | undefined;\n if (existing && existing.content_hash === hash && existing.mtime_ms === mtimeMs) {\n return;\n }\n\n db.prepare(`DELETE FROM memory_fts WHERE chunk_id IN (SELECT chunk_id FROM memory_chunks WHERE file_id = ?)`).run(\n fileId,\n );\n db.prepare(`DELETE FROM memory_chunks WHERE file_id = ?`).run(fileId);\n db.prepare(`DELETE FROM memory_files WHERE file_id = ?`).run(fileId);\n\n db.prepare(\n `INSERT INTO memory_files (file_id, user_id, path, mtime_ms, content_hash)\n VALUES (?, ?, ?, ?, ?)`,\n ).run(fileId, userId, relPath, mtimeMs, hash);\n\n const lines = content.split('\\n');\n const insertChunk = db.prepare(\n `INSERT INTO memory_chunks (chunk_id, file_id, start_line, end_line, content)\n VALUES (?, ?, ?, ?, ?)`,\n );\n const insertFts = db.prepare(\n `INSERT INTO memory_fts (content, chunk_id, user_id, path, start_line, end_line)\n VALUES (?, ?, ?, ?, ?, ?)`,\n );\n\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i];\n if (!line.trim()) continue;\n const lineNo = i + 1;\n const chunkId = `${fileId}:${lineNo}`;\n insertChunk.run(chunkId, fileId, lineNo, lineNo, line);\n insertFts.run(line, chunkId, userId, relPath, lineNo, lineNo);\n }\n}\n\nexport function syncMemoryIndex(params: {\n userId: string;\n workspaceDir: string;\n memoriesDir?: string;\n userMemoryPath?: string;\n}): void {\n const cacheKey = `${params.userId}:${params.workspaceDir}:${params.memoriesDir ?? ''}:${params.userMemoryPath ?? ''}`;\n const now = Date.now();\n const cached = memorySyncCache.get(cacheKey);\n if (cached && now - cached.timestamp < MEMORY_SYNC_CACHE_TTL_MS) {\n return;\n }\n\n const paths = collectMemoryPaths(params.workspaceDir, params.memoriesDir, params.userMemoryPath);\n memorySyncCache.set(cacheKey, { timestamp: now, paths });\n runSqliteWriteTransaction((db) => {\n const seen = new Set<string>();\n for (const absPath of paths) {\n seen.add(`${params.userId}:${displayPath(params.workspaceDir, params.memoriesDir, params.userMemoryPath, absPath)}`);\n indexFile(db, params.userId, params.workspaceDir, params.memoriesDir, params.userMemoryPath, absPath);\n }\n\n const stale = db\n .prepare(`SELECT file_id FROM memory_files WHERE user_id = ?`)\n .all(params.userId) as Array<{ file_id: string }>;\n for (const row of stale) {\n if (!seen.has(row.file_id)) {\n db.prepare(\n `DELETE FROM memory_fts WHERE chunk_id IN (SELECT chunk_id FROM memory_chunks WHERE file_id = ?)`,\n ).run(row.file_id);\n db.prepare(`DELETE FROM memory_chunks WHERE file_id = ?`).run(row.file_id);\n db.prepare(`DELETE FROM memory_files WHERE file_id = ?`).run(row.file_id);\n }\n }\n });\n}\n\nexport function searchMemoryIndex(params: {\n userId: string;\n query: string;\n maxResults?: number;\n minScore?: number;\n}): MemorySearchHit[] {\n const { userId, query, maxResults = 5, minScore = 0.3 } = params;\n const ftsQuery = buildFts5SearchQuery(query);\n if (!ftsQuery) {\n return [];\n }\n\n const db = getSqliteDatabase();\n const rows = db\n .prepare(\n `SELECT chunk_id, path, start_line, end_line, content, bm25(memory_fts) AS rank\n FROM memory_fts\n WHERE memory_fts MATCH ? AND user_id = ?\n ORDER BY rank\n LIMIT ?`,\n )\n .all(ftsQuery, userId, maxResults * 3) as Array<{\n chunk_id: string;\n path: string;\n start_line: number;\n end_line: number;\n content: string;\n rank: number;\n }>;\n\n if (rows.length === 0) {\n const fallbackRows = db.prepare(\n `SELECT chunk_id, path, start_line, end_line, content\n FROM memory_fts\n WHERE user_id = ?\n LIMIT 500`,\n ).all(userId) as Array<{\n chunk_id: string;\n path: string;\n start_line: number;\n end_line: number;\n content: string;\n }>;\n return fallbackRows\n .map((row) => ({\n path: row.path,\n lines: row.content,\n score: memoryLexicalSimilarity(query, row.content),\n lineNumbers: [row.start_line],\n }))\n .filter((result) => result.score >= minScore)\n .sort((a, b) => b.score - a.score)\n .slice(0, maxResults);\n }\n\n const bestRank = Math.min(...rows.map((row) => row.rank));\n const worstRank = Math.max(...rows.map((row) => row.rank));\n const results: MemorySearchHit[] = [];\n for (const row of rows) {\n const score = fts5RankToScore(row.rank, bestRank, worstRank);\n if (score < minScore) continue;\n results.push({\n path: row.path,\n lines: row.content,\n score,\n lineNumbers: [row.start_line],\n });\n }\n\n results.sort((a, b) => b.score - a.score);\n return results.slice(0, maxResults);\n}\n"],"mappings":"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"}