@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":"health.js","names":[],"sources":["../../../src/connectors/health.ts"],"sourcesContent":["import { getWorkspacePath } from '../config/workspace-path-helpers.js';\nimport {\n listBundleMcpServerCapabilitiesForGateway,\n} from '../agent/mcp/bundle-mcp-materialize.js';\nimport type { Config } from '../config/schema.js';\nimport { getConnectorInstance } from './instances.js';\nimport { materializeConnectorMcpServer } from './materialize.js';\nimport type { ConnectorDefinition, ConnectorHealthResult, ConnectorHealthStatus, ConnectorInstallInput } from './types.js';\n\nfunction classifyConnectorHealthError(error: unknown): ConnectorHealthStatus {\n const message = error instanceof Error ? error.message : String(error);\n if (/timed out|timeout/i.test(message)) {\n return 'timeout';\n }\n if (/ECONN|ENOTFOUND|network|fetch failed/i.test(message)) {\n return 'network_failed';\n }\n if (/401|unauthorized|forbidden|permission denied/i.test(message)) {\n return 'unauthorized';\n }\n if (/missing|required|credential|api key|token/i.test(message)) {\n return 'missing_secret';\n }\n if (/tools|listTools/i.test(message)) {\n return 'tools_list_failed';\n }\n if (/spawn|command|start|connect/i.test(message)) {\n return 'startup_failed';\n }\n return 'unknown_error';\n}\n\nfunction healthActionForStatus(status: ConnectorHealthStatus): string | undefined {\n if (status === 'missing_secret') {\n return 'Reconnect the connector and provide the required secret.';\n }\n if (status === 'timeout' || status === 'network_failed') {\n return 'Check network access and retry the connector health check.';\n }\n if (status === 'startup_failed') {\n return 'Verify the connector runtime dependency is installed and reachable.';\n }\n if (status === 'unauthorized') {\n return 'Reconnect the connector or refresh its credentials.';\n }\n return undefined;\n}\n\nexport async function testConnectorInstance(config: Config, serverId: string): Promise<ConnectorHealthResult> {\n const instance = getConnectorInstance(config, serverId);\n if (!instance) {\n return {\n serverId,\n ok: false,\n status: 'server_not_found',\n toolCount: 0,\n resourceCount: 0,\n promptCount: 0,\n tools: [],\n resources: [],\n prompts: [],\n error: `Connector instance not found: ${serverId}`,\n };\n }\n\n if (!instance.enabled) {\n return {\n serverId,\n ok: false,\n status: 'disabled',\n toolCount: 0,\n resourceCount: 0,\n promptCount: 0,\n tools: [],\n resources: [],\n prompts: [],\n action: 'Enable the connector before running a health check.',\n };\n }\n\n const workspaceDir = getWorkspacePath(config) || './workspace';\n try {\n const capabilities = await listBundleMcpServerCapabilitiesForGateway({\n workspaceDir,\n cfg: config,\n serverId,\n });\n return {\n serverId,\n ok: true,\n status: 'ok',\n toolCount: capabilities.toolCount,\n resourceCount: capabilities.resourceCount,\n promptCount: capabilities.promptCount,\n tools: capabilities.tools,\n resources: capabilities.resources,\n prompts: capabilities.prompts,\n };\n } catch (error) {\n const status = classifyConnectorHealthError(error);\n return {\n serverId,\n ok: false,\n status,\n toolCount: 0,\n resourceCount: 0,\n promptCount: 0,\n tools: [],\n resources: [],\n prompts: [],\n error: error instanceof Error ? error.message : String(error),\n action: healthActionForStatus(status),\n };\n }\n}\n\nexport async function previewConnectorDefinition(\n config: Config,\n definition: ConnectorDefinition,\n input: ConnectorInstallInput = {},\n): Promise<ConnectorHealthResult> {\n if (definition.runtime.type !== 'mcp') {\n return {\n serverId: definition.id,\n ok: false,\n status: 'unknown_error',\n toolCount: 0,\n resourceCount: 0,\n promptCount: 0,\n tools: [],\n resources: [],\n prompts: [],\n error: `Connector type \"${definition.runtime.type}\" does not support MCP capability preview.`,\n };\n }\n\n try {\n const { serverId, server } = materializeConnectorMcpServer(definition, input);\n const workspaceDir = getWorkspacePath(config) || './workspace';\n const previewConfig: Config = {\n ...config,\n mcp: {\n ...(config.mcp ?? {}),\n servers: {\n ...(config.mcp?.servers ?? {}),\n [serverId]: server,\n },\n },\n };\n const capabilities = await listBundleMcpServerCapabilitiesForGateway({\n workspaceDir,\n cfg: previewConfig,\n serverId,\n });\n return {\n serverId,\n ok: true,\n status: 'ok',\n toolCount: capabilities.toolCount,\n resourceCount: capabilities.resourceCount,\n promptCount: capabilities.promptCount,\n tools: capabilities.tools,\n resources: capabilities.resources,\n prompts: capabilities.prompts,\n };\n } catch (error) {\n const status = classifyConnectorHealthError(error);\n return {\n serverId: definition.id,\n ok: false,\n status,\n toolCount: 0,\n resourceCount: 0,\n promptCount: 0,\n tools: [],\n resources: [],\n prompts: [],\n error: error instanceof Error ? error.message : String(error),\n action: healthActionForStatus(status),\n };\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"install.js","names":[],"sources":["../../../src/connectors/install.ts"],"sourcesContent":["import { CredentialResolver } from '../auth/credentials.js';\nimport type { Config } from '../config/schema.js';\nimport { getConnectorDefinition } from './catalog.js';\nimport { assertPreferredConnectorStrategy } from './integration-strategy.js';\nimport { getConnectorInstance } from './instances.js';\nimport { getConnectorRuntimeAdapter } from './runtime-adapter-registry.js';\nimport type { ConnectorDefinition, ConnectorInstallInput, ConnectorInstance } from './types.js';\n\nexport async function installConnectorDefinition(\n config: Config,\n definition: ConnectorDefinition,\n input: ConnectorInstallInput,\n resolver = new CredentialResolver(),\n): Promise<ConnectorInstance> {\n assertPreferredConnectorStrategy(definition);\n return await getConnectorRuntimeAdapter(definition.runtime.type).install({ config, definition, input, resolver });\n}\n\nexport async function installConnector(\n config: Config,\n connectorId: string,\n input: ConnectorInstallInput,\n resolver = new CredentialResolver(),\n): Promise<ConnectorInstance> {\n const definition = getConnectorDefinition(connectorId);\n if (!definition) throw new Error(`Unknown connector: ${connectorId}`);\n return await installConnectorDefinition(config, definition, input, resolver);\n}\n\nexport function updateConnectorConfig(\n config: Config,\n instanceId: string,\n input: ConnectorInstallInput,\n): ConnectorInstance {\n const instance = getConnectorInstance(config, instanceId);\n if (!instance) throw new Error(`Connector instance not found: ${instanceId}`);\n const definition = getConnectorDefinition(instance.connectorId);\n if (!definition) throw new Error(`Unknown connector: ${instance.connectorId}`);\n const adapter = getConnectorRuntimeAdapter(definition.runtime.type);\n if (!adapter.update) throw new Error(`Connector type \"${definition.runtime.type}\" does not support config updates.`);\n return adapter.update({ config, definition, input, resolver: new CredentialResolver(), instanceId });\n}\n\nexport function uninstallConnector(config: Config, instanceId: string): ConnectorInstance {\n const instance = getConnectorInstance(config, instanceId);\n if (!instance) {\n if (config.mcp?.servers?.[instanceId] || config.connectors?.instances?.[instanceId]) {\n throw new Error(`Connector instance \"${instanceId}\" is not managed by Connectors.`);\n }\n throw new Error(`Connector instance not found: ${instanceId}`);\n }\n const definition = getConnectorDefinition(instance.connectorId);\n if (!definition) throw new Error(`Unknown connector: ${instance.connectorId}`);\n getConnectorRuntimeAdapter(definition.runtime.type).uninstall({ config, definition, instance });\n return instance;\n}\n"],"mappings":";;;;;;kBAA4D;AAQ5D,eAAsB,2BACpB,QACA,YACA,OACA,WAAW,IAAI,oBAAoB,EACP;AAC5B,kCAAiC,WAAW;AAC5C,QAAO,MAAM,2BAA2B,WAAW,QAAQ,KAAK,CAAC,QAAQ;EAAE;EAAQ;EAAY;EAAO;EAAU,CAAC;;AAGnH,eAAsB,iBACpB,QACA,aACA,OACA,WAAW,IAAI,oBAAoB,EACP;CAC5B,MAAM,aAAa,uBAAuB,YAAY;AACtD,KAAI,CAAC,WAAY,OAAM,IAAI,MAAM,sBAAsB,cAAc;AACrE,QAAO,MAAM,2BAA2B,QAAQ,YAAY,OAAO,SAAS;;AAG9E,SAAgB,sBACd,QACA,YACA,OACmB;CACnB,MAAM,WAAW,qBAAqB,QAAQ,WAAW;AACzD,KAAI,CAAC,SAAU,OAAM,IAAI,MAAM,iCAAiC,aAAa;CAC7E,MAAM,aAAa,uBAAuB,SAAS,YAAY;AAC/D,KAAI,CAAC,WAAY,OAAM,IAAI,MAAM,sBAAsB,SAAS,cAAc;CAC9E,MAAM,UAAU,2BAA2B,WAAW,QAAQ,KAAK;AACnE,KAAI,CAAC,QAAQ,OAAQ,OAAM,IAAI,MAAM,mBAAmB,WAAW,QAAQ,KAAK,oCAAoC;AACpH,QAAO,QAAQ,OAAO;EAAE;EAAQ;EAAY;EAAO,UAAU,IAAI,oBAAoB;EAAE;EAAY,CAAC;;AAGtG,SAAgB,mBAAmB,QAAgB,YAAuC;CACxF,MAAM,WAAW,qBAAqB,QAAQ,WAAW;AACzD,KAAI,CAAC,UAAU;AACb,MAAI,OAAO,KAAK,UAAU,eAAe,OAAO,YAAY,YAAY,YACtE,OAAM,IAAI,MAAM,uBAAuB,WAAW,iCAAiC;AAErF,QAAM,IAAI,MAAM,iCAAiC,aAAa;;CAEhE,MAAM,aAAa,uBAAuB,SAAS,YAAY;AAC/D,KAAI,CAAC,WAAY,OAAM,IAAI,MAAM,sBAAsB,SAAS,cAAc;AAC9E,4BAA2B,WAAW,QAAQ,KAAK,CAAC,UAAU;EAAE;EAAQ;EAAY;EAAU,CAAC;AAC/F,QAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"instances.js","names":[],"sources":["../../../src/connectors/instances.ts"],"sourcesContent":["import type { Config } from '../config/schema.js';\nimport { getConnectorDefinition } from './catalog.js';\nimport { isManagedConnectorServer } from './materialize.js';\nimport { getConnectorAuditFromMarker, getConnectorUsageFromMarker } from './usage.js';\nimport type { ConnectorInstance } from './types.js';\n\nfunction readMarkerConfig(marker: unknown): Record<string, unknown> | undefined {\n if (!marker || typeof marker !== 'object' || Array.isArray(marker)) return undefined;\n const config = (marker as Record<string, unknown>).config;\n return config && typeof config === 'object' && !Array.isArray(config)\n ? config as Record<string, unknown>\n : undefined;\n}\n\nfunction secretStatusForServer(server: Record<string, unknown>): Record<string, boolean> {\n const marker = server.xopcConnector as { connectorId?: string } | undefined;\n const definition = marker?.connectorId ? getConnectorDefinition(marker.connectorId) : undefined;\n const env = server.env && typeof server.env === 'object' && !Array.isArray(server.env)\n ? (server.env as Record<string, unknown>)\n : {};\n const status: Record<string, boolean> = {};\n for (const secret of definition?.setup.secrets ?? []) {\n const value = env[secret.key];\n status[secret.key] = Boolean(\n value &&\n typeof value === 'object' &&\n !Array.isArray(value) &&\n 'xopcSecretRef' in value,\n );\n }\n return status;\n}\n\nfunction connectorInstanceFromRecord(instanceId: string, record: Record<string, unknown>): ConnectorInstance[] {\n const marker = record.xopcConnector;\n if (!marker || typeof marker !== 'object' || Array.isArray(marker)) return [];\n const markerRecord = marker as Record<string, unknown>;\n if (markerRecord.managed !== true || typeof markerRecord.connectorId !== 'string') return [];\n const connectorId = markerRecord.connectorId;\n const definition = getConnectorDefinition(connectorId);\n const runtime = record.runtime && typeof record.runtime === 'object' && !Array.isArray(record.runtime)\n ? record.runtime as Record<string, unknown>\n : {};\n const runtimeType = runtime.type;\n if (\n runtimeType !== 'composio' &&\n runtimeType !== 'channel' &&\n runtimeType !== 'nativeTool' &&\n runtimeType !== 'memorySource'\n ) return [];\n if (\n runtimeType === 'composio' &&\n (typeof runtime.toolkit !== 'string' || (runtime.role !== 'credential' && runtime.role !== 'toolkit'))\n ) return [];\n const enabled = markerRecord.enabled !== false;\n return [{\n instanceId,\n connectorId,\n displayName: definition?.displayName ?? (typeof markerRecord.displayName === 'string' ? markerRecord.displayName : connectorId),\n enabled,\n status: enabled ? 'installed' : 'disabled',\n connectionStatus: enabled ? 'unknown' : 'disabled',\n authStatus: definition?.auth.mode === 'none' ? 'none' : 'unknown',\n lastConnectedAt: typeof markerRecord.lastConnectedAt === 'string' ? markerRecord.lastConnectedAt : undefined,\n lastError: typeof markerRecord.lastError === 'string' ? markerRecord.lastError : undefined,\n secretStatus: {},\n config: readMarkerConfig(markerRecord),\n materialized: runtimeType === 'composio'\n ? {\n type: 'composio',\n id: instanceId,\n toolkit: runtime.toolkit as string,\n role: runtime.role as 'credential' | 'toolkit',\n }\n : runtimeType === 'channel'\n ? { type: 'channel', id: instanceId }\n : runtimeType === 'nativeTool'\n ? { type: 'nativeTool', id: instanceId }\n : { type: 'memorySource', id: instanceId },\n usage: getConnectorUsageFromMarker(marker),\n audit: getConnectorAuditFromMarker(marker),\n }];\n}\n\nexport function listConnectorInstances(config: Config): ConnectorInstance[] {\n const servers = config.mcp?.servers ?? {};\n const mcpInstances = Object.entries(servers)\n .flatMap(([serverId, server]) => {\n if (!isManagedConnectorServer(server)) {\n return [];\n }\n const connectorId = server.xopcConnector.connectorId;\n const definition = getConnectorDefinition(connectorId);\n const enabled = server.xopcConnector.enabled !== false;\n const usage = getConnectorUsageFromMarker(server.xopcConnector);\n const lastHealthStatus = usage.lastHealthStatus;\n const connectionStatus: ConnectorInstance['connectionStatus'] = !enabled\n ? 'disabled'\n : lastHealthStatus === 'ok'\n ? 'connected'\n : lastHealthStatus === 'unauthorized'\n ? 'unauthorized'\n : lastHealthStatus\n ? 'error'\n : 'unknown';\n const authStatus: ConnectorInstance['authStatus'] = definition?.auth.mode === 'none'\n ? 'none'\n : lastHealthStatus === 'missing_secret'\n ? 'missing'\n : lastHealthStatus === 'unauthorized'\n ? 'unauthorized'\n : 'unknown';\n const status: ConnectorInstance['status'] = enabled ? (lastHealthStatus === 'ok' ? 'connected' : 'installed') : 'disabled';\n return [\n {\n instanceId: serverId,\n connectorId,\n displayName: definition?.displayName ?? server.xopcConnector.displayName ?? connectorId,\n enabled,\n status,\n connectionStatus,\n authStatus,\n lastConnectedAt: server.xopcConnector.lastConnectedAt,\n lastError: server.xopcConnector.lastError,\n secretStatus: secretStatusForServer(server),\n config: readMarkerConfig(server.xopcConnector),\n materialized: {\n type: 'mcp' as const,\n serverId,\n },\n usage,\n audit: getConnectorAuditFromMarker(server.xopcConnector),\n },\n ];\n });\n const genericInstances = Object.entries(config.connectors?.instances ?? {})\n .flatMap(([instanceId, record]) => (\n record && typeof record === 'object' && !Array.isArray(record)\n ? connectorInstanceFromRecord(instanceId, record as Record<string, unknown>)\n : []\n ));\n return [...mcpInstances, ...genericInstances]\n .sort((left, right) => left.displayName.localeCompare(right.displayName));\n}\n\nexport function getConnectorInstance(config: Config, instanceId: string): ConnectorInstance | undefined {\n return listConnectorInstances(config).find((instance) => instance.instanceId === instanceId);\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"integration-strategy.js","names":[],"sources":["../../../src/connectors/integration-strategy.ts"],"sourcesContent":["import type { ConnectorDefinition, ConnectorIntegrationStrategy } from './types.js';\n\nconst COMPOSIO_STRATEGY_OVERRIDES: Readonly<Record<string, ConnectorIntegrationStrategy>> = {\n telegram: {\n lane: 'native',\n workload: 'core',\n preferred: false,\n alternative: { kind: 'channel', id: 'telegram' },\n },\n};\n\nexport function composioIntegrationStrategy(toolkit: string): ConnectorIntegrationStrategy {\n return COMPOSIO_STRATEGY_OVERRIDES[toolkit.trim().toLowerCase()] ?? {\n lane: 'composio',\n workload: 'long_tail',\n preferred: true,\n };\n}\n\nexport function assertPreferredConnectorStrategy(definition: ConnectorDefinition): void {\n const strategy = definition.integrationStrategy;\n if (!strategy || strategy.preferred) return;\n const alternative = strategy.alternative;\n if (alternative?.kind === 'channel') {\n throw new Error(\n `Connector \"${definition.displayName}\" is reserved for the native ${alternative.id} channel. Configure it under Channels instead.`,\n );\n }\n if (alternative?.kind === 'connector') {\n throw new Error(\n `Connector \"${definition.displayName}\" is a fallback integration. Install the preferred MCP connector \"${alternative.id}\" instead.`,\n );\n }\n throw new Error(`Connector \"${definition.displayName}\" is not available in the preferred integration lane.`);\n}\n"],"mappings":";AAEA,MAAM,8BAAsF,EAC1F,UAAU;CACR,MAAM;CACN,UAAU;CACV,WAAW;CACX,aAAa;EAAE,MAAM;EAAW,IAAI;EAAY;CACjD,EACF;AAED,SAAgB,4BAA4B,SAA+C;AACzF,QAAO,4BAA4B,QAAQ,MAAM,CAAC,aAAa,KAAK;EAClE,MAAM;EACN,UAAU;EACV,WAAW;EACZ;;AAGH,SAAgB,iCAAiC,YAAuC;CACtF,MAAM,WAAW,WAAW;AAC5B,KAAI,CAAC,YAAY,SAAS,UAAW;CACrC,MAAM,cAAc,SAAS;AAC7B,KAAI,aAAa,SAAS,UACxB,OAAM,IAAI,MACR,cAAc,WAAW,YAAY,+BAA+B,YAAY,GAAG,gDACpF;AAEH,KAAI,aAAa,SAAS,YACxB,OAAM,IAAI,MACR,cAAc,WAAW,YAAY,oEAAoE,YAAY,GAAG,YACzH;AAEH,OAAM,IAAI,MAAM,cAAc,WAAW,YAAY,uDAAuD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"lifecycle.js","names":[],"sources":["../../../src/connectors/lifecycle.ts"],"sourcesContent":["import type { Config } from '../config/schema.js';\nimport { isManagedConnectorServer } from './materialize.js';\nimport type { ConnectorInstance } from './types.js';\nimport { getConnectorInstance } from './instances.js';\n\nexport function setConnectorEnabled(config: Config, instanceId: string, enabled: boolean): ConnectorInstance {\n const server = config.mcp?.servers?.[instanceId];\n const connectorRecord = config.connectors?.instances?.[instanceId];\n if (!server && !connectorRecord) {\n throw new Error(`Connector instance not found: ${instanceId}`);\n }\n if (server) {\n if (!isManagedConnectorServer(server)) {\n throw new Error(`MCP server \"${instanceId}\" is not managed by Connectors.`);\n }\n server.xopcConnector.enabled = enabled;\n } else if (connectorRecord && typeof connectorRecord === 'object' && !Array.isArray(connectorRecord)) {\n const marker = (connectorRecord as Record<string, unknown>).xopcConnector;\n if (!marker || typeof marker !== 'object' || Array.isArray(marker)) {\n throw new Error(`Connector instance \"${instanceId}\" is not managed by Connectors.`);\n }\n (marker as Record<string, unknown>).enabled = enabled;\n }\n const instance = getConnectorInstance(config, instanceId);\n if (!instance) {\n throw new Error(`Connector instance not found: ${instanceId}`);\n }\n return instance;\n}\n"],"mappings":";;;AAKA,SAAgB,oBAAoB,QAAgB,YAAoB,SAAqC;CAC3G,MAAM,SAAS,OAAO,KAAK,UAAU;CACrC,MAAM,kBAAkB,OAAO,YAAY,YAAY;AACvD,KAAI,CAAC,UAAU,CAAC,gBACd,OAAM,IAAI,MAAM,iCAAiC,aAAa;AAEhE,KAAI,QAAQ;AACV,MAAI,CAAC,yBAAyB,OAAO,CACnC,OAAM,IAAI,MAAM,eAAe,WAAW,iCAAiC;AAE7E,SAAO,cAAc,UAAU;YACtB,mBAAmB,OAAO,oBAAoB,YAAY,CAAC,MAAM,QAAQ,gBAAgB,EAAE;EACpG,MAAM,SAAU,gBAA4C;AAC5D,MAAI,CAAC,UAAU,OAAO,WAAW,YAAY,MAAM,QAAQ,OAAO,CAChE,OAAM,IAAI,MAAM,uBAAuB,WAAW,iCAAiC;AAEpF,SAAmC,UAAU;;CAEhD,MAAM,WAAW,qBAAqB,QAAQ,WAAW;AACzD,KAAI,CAAC,SACH,OAAM,IAAI,MAAM,iCAAiC,aAAa;AAEhE,QAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"materialize.js","names":[],"sources":["../../../src/connectors/materialize.ts"],"sourcesContent":["import { McpServerSchema } from '../config/schema.js';\nimport { createConnectorSecretReference } from './secret-store.js';\nimport type { ConnectorDefinition, ConnectorInstallInput, ManagedConnectorMarker } from './types.js';\n\nconst SERVER_ID_PATTERN = /^[a-z][a-z0-9_-]{0,63}$/;\nconst TEMPLATE_PATTERN = /^\\{\\{(secrets|config)\\.([A-Za-z0-9_.-]+)\\}\\}$/;\n\nexport function assertValidConnectorServerId(serverId: string): void {\n if (!SERVER_ID_PATTERN.test(serverId)) {\n throw new Error('Connector server name must start with a lowercase letter and only contain lowercase letters, numbers, dashes, and underscores.');\n }\n}\n\nfunction readInputValue(\n definition: ConnectorDefinition,\n input: ConnectorInstallInput,\n scope: 'secrets' | 'config',\n key: string,\n): unknown {\n if (scope === 'secrets') {\n return createConnectorSecretReference(definition.id, key);\n }\n return input.config?.[key];\n}\n\nfunction resolveTemplateValue(value: unknown, definition: ConnectorDefinition, input: ConnectorInstallInput): unknown {\n if (typeof value !== 'string') {\n return value;\n }\n const match = TEMPLATE_PATTERN.exec(value.trim());\n if (!match) {\n return value;\n }\n return readInputValue(definition, input, match[1] as 'secrets' | 'config', match[2]);\n}\n\nfunction materializeTemplate(value: unknown, definition: ConnectorDefinition, input: ConnectorInstallInput): unknown {\n const resolved = resolveTemplateValue(value, definition, input);\n if (Array.isArray(resolved)) {\n return resolved.map((item) => materializeTemplate(item, definition, input));\n }\n if (resolved && typeof resolved === 'object') {\n const output: Record<string, unknown> = {};\n for (const [key, child] of Object.entries(resolved as Record<string, unknown>)) {\n const materializedChild = materializeTemplate(child, definition, input);\n if (materializedChild !== undefined) {\n output[key] = materializedChild;\n }\n }\n return output;\n }\n return resolved;\n}\n\nfunction assertRequiredInputs(definition: ConnectorDefinition, input: ConnectorInstallInput): void {\n for (const secret of definition.setup.secrets ?? []) {\n const value = input.secrets?.[secret.key];\n if (secret.required && (typeof value !== 'string' || value.trim().length === 0)) {\n throw new Error(`Missing required secret: ${secret.key}`);\n }\n }\n for (const field of definition.setup.config ?? []) {\n const value = input.config?.[field.key];\n if (field.required && (value === undefined || value === null || value === '')) {\n throw new Error(`Missing required config: ${field.key}`);\n }\n }\n}\n\nexport function materializeConnectorMcpServer(\n definition: ConnectorDefinition,\n input: ConnectorInstallInput,\n): { serverId: string; server: Record<string, unknown> } {\n assertRequiredInputs(definition, input);\n if (definition.runtime.type !== 'mcp') {\n throw new Error(`Unsupported connector runtime: ${definition.runtime.type}`);\n }\n\n const rawServerId = materializeTemplate(definition.runtime.serverId, definition, input);\n if (typeof rawServerId !== 'string') {\n throw new Error('Connector server name must be a string.');\n }\n const serverId = rawServerId.trim();\n assertValidConnectorServerId(serverId);\n\n const rawServer = materializeTemplate(definition.runtime.serverTemplate, definition, input);\n if (!rawServer || typeof rawServer !== 'object' || Array.isArray(rawServer)) {\n throw new Error('Connector MCP server template must resolve to a JSON object.');\n }\n\n const marker: ManagedConnectorMarker = {\n managed: true,\n connectorId: definition.id,\n version: definition.version,\n displayName: definition.displayName,\n source: definition.source,\n artifactSha256: definition.provenance?.sha256,\n ...(input.config && Object.keys(input.config).length > 0 ? { config: input.config } : {}),\n };\n const server = {\n ...(rawServer as Record<string, unknown>),\n xopcConnector: marker,\n };\n const parsed = McpServerSchema.safeParse(server);\n if (!parsed.success) {\n throw new Error(parsed.error.issues[0]?.message ?? 'Invalid MCP server config.');\n }\n return { serverId, server };\n}\n\nexport function isManagedConnectorServer(server: unknown): server is Record<string, unknown> & { xopcConnector: ManagedConnectorMarker } {\n if (!server || typeof server !== 'object' || Array.isArray(server)) {\n return false;\n }\n const marker = (server as Record<string, unknown>).xopcConnector;\n return Boolean(\n marker &&\n typeof marker === 'object' &&\n !Array.isArray(marker) &&\n (marker as Record<string, unknown>).managed === true &&\n typeof (marker as Record<string, unknown>).connectorId === 'string',\n );\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"policy.js","names":[],"sources":["../../../src/connectors/policy.ts"],"sourcesContent":["import type {\n ConnectorActionMetadata,\n ConnectorExecutionDecision,\n ConnectorInstallationPolicy,\n ConnectorScope,\n} from './types.js';\n\nconst SCOPE_ORDER: Record<ConnectorScope, number> = {\n read: 1,\n write: 2,\n admin: 3,\n};\n\nexport type ConnectorPolicyEvaluation = {\n decision: ConnectorExecutionDecision;\n reason: string;\n};\n\nfunction requiresConfirmation(\n policy: ConnectorInstallationPolicy['confirmationPolicy'],\n scope: ConnectorScope,\n): boolean {\n if (policy === 'always') return true;\n if (policy === 'writes') return scope === 'write' || scope === 'admin';\n if (policy === 'admin') return scope === 'admin';\n return false;\n}\n\n/** Evaluate every local policy layer before an external connector action is called. */\nexport function evaluateConnectorExecutionPolicy(input: {\n installation: ConnectorInstallationPolicy;\n action: Pick<ConnectorActionMetadata, 'scope' | 'curated'>;\n agentId?: string;\n connectionId?: string;\n confirmed?: boolean;\n}): ConnectorPolicyEvaluation {\n const { installation, action } = input;\n if (!installation.enabled) {\n return { decision: 'denied', reason: 'Connector is disabled.' };\n }\n if (\n installation.allowedAgentIds.length > 0 &&\n (!input.agentId || !installation.allowedAgentIds.includes(input.agentId))\n ) {\n return { decision: 'denied', reason: 'Agent is not allowed to use this connector.' };\n }\n if (\n installation.selectedConnectionIds.length > 0 &&\n (!input.connectionId || !installation.selectedConnectionIds.includes(input.connectionId))\n ) {\n return { decision: 'denied', reason: 'Connection is not allowed by this connector policy.' };\n }\n if (SCOPE_ORDER[installation.maxScope] < SCOPE_ORDER[action.scope]) {\n return {\n decision: 'denied',\n reason: `Action requires ${action.scope} scope; connector allows ${installation.maxScope}.`,\n };\n }\n if (!action.curated && installation.maxScope !== 'admin') {\n return {\n decision: 'denied',\n reason: 'Unverified connector actions require admin scope.',\n };\n }\n if (!input.confirmed && requiresConfirmation(installation.confirmationPolicy, action.scope)) {\n return {\n decision: 'confirmation_required',\n reason: `Action requires ${action.scope} confirmation.`,\n };\n }\n return { decision: 'allowed', reason: 'Connector policy allows this action.' };\n}\n"],"mappings":";AAOA,MAAM,cAA8C;CAClD,MAAM;CACN,OAAO;CACP,OAAO;CACR;AAOD,SAAS,qBACP,QACA,OACS;AACT,KAAI,WAAW,SAAU,QAAO;AAChC,KAAI,WAAW,SAAU,QAAO,UAAU,WAAW,UAAU;AAC/D,KAAI,WAAW,QAAS,QAAO,UAAU;AACzC,QAAO;;;AAIT,SAAgB,iCAAiC,OAMnB;CAC5B,MAAM,EAAE,cAAc,WAAW;AACjC,KAAI,CAAC,aAAa,QAChB,QAAO;EAAE,UAAU;EAAU,QAAQ;EAA0B;AAEjE,KACE,aAAa,gBAAgB,SAAS,MACrC,CAAC,MAAM,WAAW,CAAC,aAAa,gBAAgB,SAAS,MAAM,QAAQ,EAExE,QAAO;EAAE,UAAU;EAAU,QAAQ;EAA+C;AAEtF,KACE,aAAa,sBAAsB,SAAS,MAC3C,CAAC,MAAM,gBAAgB,CAAC,aAAa,sBAAsB,SAAS,MAAM,aAAa,EAExF,QAAO;EAAE,UAAU;EAAU,QAAQ;EAAuD;AAE9F,KAAI,YAAY,aAAa,YAAY,YAAY,OAAO,OAC1D,QAAO;EACL,UAAU;EACV,QAAQ,mBAAmB,OAAO,MAAM,2BAA2B,aAAa,SAAS;EAC1F;AAEH,KAAI,CAAC,OAAO,WAAW,aAAa,aAAa,QAC/C,QAAO;EACL,UAAU;EACV,QAAQ;EACT;AAEH,KAAI,CAAC,MAAM,aAAa,qBAAqB,aAAa,oBAAoB,OAAO,MAAM,CACzF,QAAO;EACL,UAAU;EACV,QAAQ,mBAAmB,OAAO,MAAM;EACzC;AAEH,QAAO;EAAE,UAAU;EAAW,QAAQ;EAAwC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"providers.js","names":[],"sources":["../../../src/connectors/providers.ts"],"sourcesContent":["import { BUILTIN_CONNECTORS } from './builtin-catalog.js';\nimport { COMPOSIO_CONNECTORS } from './composio.js';\nimport type { ConnectorDefinition } from './types.js';\n\nexport type ConnectorProvider = {\n id: string;\n displayName: string;\n listConnectors(): readonly ConnectorDefinition[];\n};\n\nexport const builtinConnectorProvider: ConnectorProvider = {\n id: 'builtin',\n displayName: 'Built-in connectors',\n listConnectors() {\n return BUILTIN_CONNECTORS;\n },\n};\n\nexport const composioConnectorProvider: ConnectorProvider = {\n id: 'composio',\n displayName: 'Composio connectors',\n listConnectors() {\n return COMPOSIO_CONNECTORS;\n },\n};\n\nconst CONNECTOR_PROVIDERS: readonly ConnectorProvider[] = [builtinConnectorProvider, composioConnectorProvider];\n\nexport function listConnectorProviders(): ConnectorProvider[] {\n return [...CONNECTOR_PROVIDERS];\n}\n\nexport function listConnectorProviderDefinitions(): ConnectorDefinition[] {\n return CONNECTOR_PROVIDERS.flatMap((provider) => provider.listConnectors());\n}\n"],"mappings":";;;AAUA,MAAa,2BAA8C;CACzD,IAAI;CACJ,aAAa;CACb,iBAAiB;AACf,SAAO;;CAEV;AAED,MAAa,4BAA+C;CAC1D,IAAI;CACJ,aAAa;CACb,iBAAiB;AACf,SAAO;;CAEV;AAED,MAAM,sBAAoD,CAAC,0BAA0B,0BAA0B;AAE/G,SAAgB,yBAA8C;AAC5D,QAAO,CAAC,GAAG,oBAAoB;;AAGjC,SAAgB,mCAA0D;AACxE,QAAO,oBAAoB,SAAS,aAAa,SAAS,gBAAgB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"modelscope.js","names":[],"sources":["../../../../src/connectors/registries/modelscope.ts"],"sourcesContent":["import type { ConnectorDefinition, ConnectorSecretField } from '../types.js';\nimport type { ConnectorRegistryAdapter, ConnectorRegistrySearchParams, ConnectorRegistrySearchResult } from './types.js';\n\nconst DEFAULT_BASE_URL = 'https://www.modelscope.cn';\n\nfunction modelscopeBaseUrl(): string {\n return process.env.XOPC_MODELSCOPE_REGISTRY_URL?.trim().replace(/\\/+$/, '') || DEFAULT_BASE_URL;\n}\n\nfunction readString(value: unknown): string | undefined {\n return typeof value === 'string' && value.trim() ? value.trim() : undefined;\n}\n\nfunction readArray(value: unknown): unknown[] {\n return Array.isArray(value) ? value : [];\n}\n\nfunction readRecord(value: unknown): Record<string, unknown> | undefined {\n return value && typeof value === 'object' && !Array.isArray(value) ? value as Record<string, unknown> : undefined;\n}\n\nfunction isHttpUrl(value: string | undefined): value is string {\n return value?.startsWith('http://') || value?.startsWith('https://') || false;\n}\n\nfunction slugFrom(value: string): string {\n return value\n .trim()\n .toLowerCase()\n .replace(/^@/, '')\n .replace(/[^a-z0-9_-]+/g, '-')\n .replace(/^-+|-+$/g, '')\n .slice(0, 64) || 'modelscope-mcp';\n}\n\nfunction categoryFromModelScope(categories: unknown): ConnectorDefinition['category'] {\n const text = readArray(categories).map((item) => readString(item)).filter(Boolean).join(' ').toLowerCase();\n if (text.includes('browser')) return 'browser';\n if (text.includes('automation')) return 'automation';\n if (text.includes('database') || text.includes('data')) return 'data';\n if (text.includes('code') || text.includes('developer')) return 'code';\n if (text.includes('docs') || text.includes('knowledge')) return 'docs';\n return 'custom';\n}\n\nfunction secretFieldsFromEnvSchema(schema: unknown): ConnectorSecretField[] {\n const record = readRecord(schema);\n const properties = readRecord(record?.properties);\n if (!properties) return [];\n const required = new Set(readArray(record?.required).map((item) => readString(item)).filter((item): item is string => Boolean(item)));\n return Object.entries(properties).map(([key, value]) => {\n const field = readRecord(value);\n return {\n key,\n label: key,\n description: readString(field?.description),\n required: required.size === 0 ? true : required.has(key),\n } satisfies ConnectorSecretField;\n });\n}\n\nfunction readMcpServerConfigs(value: unknown): Record<string, unknown>[] {\n const configItems = Array.isArray(value) ? value : [value];\n const configs: Record<string, unknown>[] = [];\n for (const config of configItems) {\n const configRecord = readRecord(config);\n if (!configRecord) continue;\n const mcpServers = readRecord(configRecord?.mcpServers);\n if (!mcpServers) {\n configs.push(configRecord);\n continue;\n }\n for (const value of Object.values(mcpServers)) {\n const serverConfig = readRecord(value);\n if (serverConfig) configs.push(serverConfig);\n }\n }\n return configs;\n}\n\nfunction firstMcpServerConfig(\n server: Record<string, unknown>,\n predicate: (config: Record<string, unknown>) => boolean = (config) => Boolean(readString(config.command)),\n): Record<string, unknown> | undefined {\n for (const config of readMcpServerConfigs(server.ServerConfig ?? server.serverConfig)) {\n if (predicate(config)) return config;\n }\n return undefined;\n}\n\nfunction secretFieldsFromServerConfig(server: Record<string, unknown>): ConnectorSecretField[] {\n const config = firstMcpServerConfig(server, (candidate) => Boolean(readRecord(candidate.env)))\n ?? firstMcpServerConfig(server);\n const env = readRecord(config?.env);\n if (!env) return [];\n return Object.keys(env).map((key) => ({\n key,\n label: key,\n description: `Environment variable required by the ModelScope MCP server config.`,\n required: true,\n } satisfies ConnectorSecretField));\n}\n\nfunction mergeSecretFields(...groups: ConnectorSecretField[][]): ConnectorSecretField[] {\n const merged = new Map<string, ConnectorSecretField>();\n for (const group of groups) {\n for (const field of group) {\n const previous = merged.get(field.key);\n merged.set(field.key, {\n ...field,\n description: previous?.description ?? field.description,\n required: previous?.required ?? field.required,\n });\n }\n }\n return [...merged.values()];\n}\n\nfunction normalizeEnv(env: unknown, secrets: ConnectorSecretField[]): Record<string, unknown> | undefined {\n const envRecord = readRecord(env);\n const output: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(envRecord ?? {})) {\n output[key] = secrets.some((field) => field.key === key) ? `{{secrets.${key}}}` : value;\n }\n for (const field of secrets) {\n if (output[field.key] === undefined) output[field.key] = `{{secrets.${field.key}}}`;\n }\n return Object.keys(output).length ? output : undefined;\n}\n\nfunction transportFromConfig(config: Record<string, unknown>, fallback: 'sse' | 'streamable-http'): 'sse' | 'streamable-http' {\n const raw = readString(config.transport ?? config.type)?.toLowerCase();\n return raw?.includes('sse') ? 'sse' : fallback;\n}\n\nfunction normalizeServerTemplate(server: Record<string, unknown>, secrets: ConnectorSecretField[]): Record<string, unknown> | undefined {\n const deployedUrl = readString(server.DeployedUrl ?? server.deployedUrl);\n if (isHttpUrl(deployedUrl)) {\n const transport = readString(server.DeployedUrlTransportType ?? server.deployedUrlTransportType)?.toLowerCase();\n return { url: deployedUrl, transport: transport === 'sse' ? 'sse' : 'streamable-http' };\n }\n\n for (const key of ['StreamableHTTPServerConfig', 'streamableHTTPServerConfig', 'SSEServerConfig', 'sseServerConfig']) {\n const fallbackTransport = key.toLowerCase().includes('sse') ? 'sse' : 'streamable-http';\n for (const config of readMcpServerConfigs(server[key])) {\n const url = readString(config.url ?? config.endpoint);\n if (isHttpUrl(url)) {\n return { url, transport: transportFromConfig(config, fallbackTransport) };\n }\n }\n }\n\n const remoteConfig = firstMcpServerConfig(server, (candidate) => isHttpUrl(readString(candidate.url ?? candidate.endpoint)));\n const remoteUrl = readString(remoteConfig?.url ?? remoteConfig?.endpoint);\n if (isHttpUrl(remoteUrl) && remoteConfig) {\n return { url: remoteUrl, transport: transportFromConfig(remoteConfig, 'streamable-http') };\n }\n\n const config = firstMcpServerConfig(server);\n const command = readString(config?.command);\n if (!command) return undefined;\n const args = readArray(config?.args).map((arg) => String(arg));\n const env = normalizeEnv(config.env, secrets);\n return {\n command,\n ...(args.length ? { args } : {}),\n ...(env ? { env } : {}),\n ...(readString(config.cwd) ? { cwd: readString(config.cwd) } : {}),\n };\n}\n\nfunction connectorFromModelScopeServer(server: Record<string, unknown>): ConnectorDefinition | undefined {\n const name = readString(server.Name ?? server.name);\n const path = readString(server.Path ?? server.path ?? server.FromSitePath ?? server.fromSitePath);\n const displayName = readString(server.ChineseName ?? server.DisplayName ?? server.displayName) || name;\n if (!name || !displayName) return undefined;\n\n const qualifiedName = path ? `${path}/${name}` : name;\n const serverId = slugFrom(qualifiedName);\n const secrets = mergeSecretFields(\n secretFieldsFromEnvSchema(server.EnvSchema ?? server.envSchema),\n secretFieldsFromServerConfig(server),\n );\n const serverTemplate = normalizeServerTemplate(server, secrets);\n if (!serverTemplate) return undefined;\n\n const isRemote = typeof serverTemplate.url === 'string';\n const tags = [\n ...readArray(server.Category ?? server.category).map((tag) => readString(tag)).filter((tag): tag is string => Boolean(tag)),\n ...readArray(server.Tags ?? server.tags).map((tag) => readString(tag)).filter((tag): tag is string => Boolean(tag)),\n 'modelscope',\n 'registry',\n 'mcp',\n ];\n\n return {\n id: `modelscope-${serverId}`,\n version: readString(server.Version ?? server.version) ?? 'registry',\n displayName,\n description: readString(server.Abstract ?? server.AbstractCN ?? server.description) ?? 'MCP server from ModelScope MCP registry.',\n category: categoryFromModelScope(server.Category ?? server.category),\n kind: 'mcp',\n source: 'registry',\n capabilities: isRemote\n ? ['tools', 'resources', 'prompts', 'runtime.mcp.streamableHttp']\n : ['tools', 'resources', 'prompts', 'runtime.mcp.stdio'],\n tags: Array.from(new Set(tags)).slice(0, 8),\n auth: { mode: secrets.length ? 'apiKey' : 'none' },\n setup: { secrets: secrets.length ? secrets : undefined },\n runtime: {\n type: 'mcp',\n serverId,\n serverTemplate,\n },\n };\n}\n\nfunction readNumber(value: unknown): number {\n return typeof value === 'number' && Number.isFinite(value) ? value : 0;\n}\n\nfunction extractMcpServers(payload: unknown): { servers: Record<string, unknown>[]; total?: number } {\n const root = readRecord(payload);\n const data = readRecord(root?.Data);\n const nestedData = readRecord(data?.Data) ?? data;\n const mcp = readRecord(nestedData?.Mcp ?? nestedData?.McpServer ?? nestedData?.mcp);\n const servers = readArray(mcp?.McpServers ?? mcp?.servers ?? mcp?.items)\n .map((item) => readRecord(item))\n .filter((item): item is Record<string, unknown> => Boolean(item));\n const total = typeof mcp?.TotalCount === 'number' ? mcp.TotalCount : undefined;\n return { servers, total };\n}\n\nasync function fetchModelScopeMcp(params: ConnectorRegistrySearchParams): Promise<unknown> {\n const url = new URL('/api/v1/dolphin/agg', modelscopeBaseUrl());\n const body = {\n PageSize: Math.min(Math.max(params.pageSize ?? 24, 1), 100),\n PageNumber: Math.max(params.page ?? 1, 1),\n Query: params.query?.trim() ?? '',\n Criterion: [],\n };\n const response = await fetch(url, {\n method: 'PUT',\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n 'x-modelscope-accept-language': 'zh_CN',\n },\n body: JSON.stringify(body),\n });\n if (!response.ok) throw new Error(`ModelScope registry returned ${response.status}`);\n return response.json();\n}\n\nexport const modelscopeRegistryAdapter: ConnectorRegistryAdapter = {\n source: 'modelscope',\n displayName: 'ModelScope',\n async search(params: ConnectorRegistrySearchParams): Promise<ConnectorRegistrySearchResult> {\n const payload = await fetchModelScopeMcp(params);\n const { servers, total } = extractMcpServers(payload);\n const pageSize = Math.min(Math.max(params.pageSize ?? 24, 1), 100);\n return {\n source: 'modelscope',\n connectors: servers\n .toSorted((a, b) => readNumber(b.CallVolume ?? b.callVolume) - readNumber(a.CallVolume ?? a.callVolume))\n .map(connectorFromModelScopeServer)\n .filter((item): item is ConnectorDefinition => Boolean(item)),\n totalPages: total === undefined ? undefined : Math.ceil(total / pageSize),\n };\n },\n};\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"official-mcp.js","names":[],"sources":["../../../../src/connectors/registries/official-mcp.ts"],"sourcesContent":["import type { ConnectorDefinition } from '../types.js';\nimport type { ConnectorRegistryAdapter, ConnectorRegistrySearchParams, ConnectorRegistrySearchResult } from './types.js';\n\nconst DEFAULT_BASE_URL = 'https://registry.modelcontextprotocol.io';\n\nfunction officialRegistryBaseUrl(): string {\n return process.env.XOPC_MCP_OFFICIAL_REGISTRY_URL?.trim().replace(/\\/+$/, '') || DEFAULT_BASE_URL;\n}\n\nfunction readString(value: unknown): string | undefined {\n return typeof value === 'string' && value.trim() ? value.trim() : undefined;\n}\n\nfunction readArray(value: unknown): unknown[] {\n return Array.isArray(value) ? value : [];\n}\n\nfunction slugFrom(value: string): string {\n return value\n .trim()\n .toLowerCase()\n .replace(/^@/, '')\n .replace(/[^a-z0-9_-]+/g, '-')\n .replace(/^-+|-+$/g, '')\n .slice(0, 64) || 'registry-mcp';\n}\n\nfunction normalizePackageCommand(pkg: Record<string, unknown>): { command: string; args: string[] } | undefined {\n const registryType = readString(pkg.registryType ?? pkg.registry_type ?? pkg.type)?.toLowerCase();\n const name = readString(pkg.name ?? pkg.packageName ?? pkg.package_name);\n if (!name) return undefined;\n if (registryType === 'pypi' || registryType === 'python') {\n return { command: 'uvx', args: [name] };\n }\n if (registryType === 'npm' || registryType === 'node' || !registryType) {\n return { command: 'npx', args: ['-y', name] };\n }\n return undefined;\n}\n\nfunction normalizeRemote(server: Record<string, unknown>): { url: string; transport: 'streamable-http' } | undefined {\n const remotes = readArray(server.remotes ?? server.remote ?? server.deployments);\n for (const raw of remotes) {\n if (!raw || typeof raw !== 'object' || Array.isArray(raw)) continue;\n const row = raw as Record<string, unknown>;\n const url = readString(row.url ?? row.endpoint ?? row.deploymentUrl ?? row.deployment_url);\n if (url?.startsWith('http://') || url?.startsWith('https://')) {\n return { url, transport: 'streamable-http' };\n }\n }\n const url = readString(server.url ?? server.endpoint);\n if (url?.startsWith('http://') || url?.startsWith('https://')) {\n return { url, transport: 'streamable-http' };\n }\n return undefined;\n}\n\nfunction connectorFromOfficialServer(server: Record<string, unknown>): ConnectorDefinition | undefined {\n const qualifiedName = readString(server.name ?? server.id ?? server.qualifiedName ?? server.qualified_name);\n const displayName = readString(server.displayName ?? server.display_name ?? server.title ?? server.name) ?? qualifiedName;\n if (!qualifiedName || !displayName) return undefined;\n\n const packages = readArray(server.packages);\n const packageRuntime = packages\n .map((item) => (item && typeof item === 'object' && !Array.isArray(item) ? normalizePackageCommand(item as Record<string, unknown>) : undefined))\n .find(Boolean);\n const remoteRuntime = normalizeRemote(server);\n const serverId = slugFrom(qualifiedName);\n const serverTemplate = packageRuntime\n ? { command: packageRuntime.command, args: packageRuntime.args }\n : remoteRuntime\n ? { url: remoteRuntime.url, transport: remoteRuntime.transport }\n : undefined;\n if (!serverTemplate) return undefined;\n\n const tags = [\n ...readArray(server.tags).map((tag) => readString(tag)).filter((tag): tag is string => Boolean(tag)),\n 'registry',\n 'mcp',\n ];\n const description = readString(server.description) ?? 'MCP server from the official Model Context Protocol registry.';\n const capabilities: ConnectorDefinition['capabilities'] = packageRuntime\n ? ['tools', 'resources', 'prompts', 'runtime.mcp.stdio']\n : ['tools', 'resources', 'prompts', 'runtime.mcp.streamableHttp'];\n\n return {\n id: `mcp-official-${serverId}`,\n version: readString(server.version) ?? 'registry',\n displayName,\n description,\n category: 'custom',\n kind: 'mcp',\n source: 'registry',\n capabilities,\n tags: Array.from(new Set(tags)).slice(0, 8),\n auth: { mode: 'none' },\n setup: {},\n runtime: {\n type: 'mcp',\n serverId,\n serverTemplate,\n },\n };\n}\n\nasync function fetchJson(url: URL): Promise<unknown> {\n const response = await fetch(url, { headers: { Accept: 'application/json' } });\n if (!response.ok) {\n throw new Error(`Official MCP registry returned ${response.status}`);\n }\n return response.json();\n}\n\nfunction normalizeServerRecord(item: unknown): Record<string, unknown> | undefined {\n if (!item || typeof item !== 'object' || Array.isArray(item)) return undefined;\n const record = item as Record<string, unknown>;\n const nested = record.server;\n if (nested && typeof nested === 'object' && !Array.isArray(nested)) {\n return nested as Record<string, unknown>;\n }\n return record;\n}\n\nfunction extractServers(payload: unknown): Record<string, unknown>[] {\n if (Array.isArray(payload)) return payload.map(normalizeServerRecord).filter((item): item is Record<string, unknown> => Boolean(item));\n if (!payload || typeof payload !== 'object' || Array.isArray(payload)) return [];\n const data = payload as Record<string, unknown>;\n for (const key of ['servers', 'items', 'results', 'data']) {\n const value = data[key];\n if (Array.isArray(value)) {\n return value.map(normalizeServerRecord).filter((item): item is Record<string, unknown> => Boolean(item));\n }\n }\n return [];\n}\n\nexport const officialMcpRegistryAdapter: ConnectorRegistryAdapter = {\n source: 'mcp_official',\n displayName: 'Official MCP registry',\n async search(params: ConnectorRegistrySearchParams): Promise<ConnectorRegistrySearchResult> {\n const base = officialRegistryBaseUrl();\n const url = new URL('/v0/servers', base);\n const query = params.query?.trim();\n if (query) url.searchParams.set('q', query);\n url.searchParams.set('limit', String(Math.min(Math.max(params.pageSize ?? 24, 1), 100)));\n if (params.page && params.page > 1) url.searchParams.set('page', String(params.page));\n const payload = await fetchJson(url);\n return {\n source: 'mcp_official',\n connectors: extractServers(payload).map(connectorFromOfficialServer).filter((item): item is ConnectorDefinition => Boolean(item)),\n };\n },\n};\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"search.js","names":[],"sources":["../../../../src/connectors/registries/search.ts"],"sourcesContent":["import { createLogger } from '../../utils/logger.js';\nimport { modelscopeRegistryAdapter } from './modelscope.js';\nimport { officialMcpRegistryAdapter } from './official-mcp.js';\nimport { smitheryRegistryAdapter } from './smithery.js';\nimport type { ConnectorRegistryAdapter, ConnectorRegistrySearchParams, ConnectorRegistrySearchResult } from './types.js';\n\nconst log = createLogger('Connectors:Registry');\n\nconst registryAdapters = new Map<string, ConnectorRegistryAdapter>();\nconst REGISTRY_CACHE_TTL_MS = 10 * 60 * 1000;\nconst registrySearchCache = new Map<string, { expiresAt: number; promise: Promise<ConnectorRegistrySearchResult[]> }>();\n\nexport type ConnectorRegistryRegistration = {\n adapter: ConnectorRegistryAdapter;\n};\n\nexport function registerConnectorRegistryAdapter(registration: ConnectorRegistryRegistration): void {\n registryAdapters.set(registration.adapter.source, registration.adapter);\n registrySearchCache.clear();\n}\n\nexport function unregisterConnectorRegistryAdapter(source: string): boolean {\n const removed = registryAdapters.delete(source);\n if (removed) registrySearchCache.clear();\n return removed;\n}\n\nregisterConnectorRegistryAdapter({ adapter: officialMcpRegistryAdapter });\nregisterConnectorRegistryAdapter({ adapter: smitheryRegistryAdapter });\nregisterConnectorRegistryAdapter({ adapter: modelscopeRegistryAdapter });\n\nfunction cacheKey(params: ConnectorRegistrySearchParams): string {\n return JSON.stringify({\n source: params.source ?? 'all',\n query: params.query?.trim() ?? '',\n page: params.page ?? 1,\n pageSize: params.pageSize ?? 24,\n browse: params.browse ?? false,\n });\n}\n\nexport function listConnectorRegistries(): Array<{ id: string; displayName: string }> {\n return [...registryAdapters.values()].map((registry) => ({ id: registry.source, displayName: registry.displayName }));\n}\n\nexport function isConnectorRegistrySource(source: string): boolean {\n return registryAdapters.has(source);\n}\n\nasync function runRegistrySearch(params: ConnectorRegistrySearchParams): Promise<ConnectorRegistrySearchResult[]> {\n const source = params.source ?? 'all';\n const registries = source === 'all'\n ? [...registryAdapters.values()]\n : [...registryAdapters.values()].filter((registry) => registry.source === source);\n return Promise.all(registries.map(async (registry) => {\n try {\n return await registry.search(params);\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n log.warn({ source: registry.source, errorMessage }, `Connector registry search failed: ${errorMessage}`);\n return { source: registry.source, connectors: [], error: errorMessage } satisfies ConnectorRegistrySearchResult;\n }\n }));\n}\n\nexport async function searchConnectorRegistries(params: ConnectorRegistrySearchParams): Promise<ConnectorRegistrySearchResult[]> {\n if (!params.query?.trim() && !params.browse) {\n const source = params.source ?? 'all';\n const registries = source === 'all'\n ? [...registryAdapters.values()]\n : [...registryAdapters.values()].filter((registry) => registry.source === source);\n return registries.map((registry) => ({ source: registry.source, connectors: [] }));\n }\n const key = cacheKey(params);\n const now = Date.now();\n const cached = registrySearchCache.get(key);\n if (cached && cached.expiresAt > now) {\n return cached.promise;\n }\n const promise = runRegistrySearch(params);\n registrySearchCache.set(key, { expiresAt: now + REGISTRY_CACHE_TTL_MS, promise });\n try {\n return await promise;\n } catch (error) {\n registrySearchCache.delete(key);\n throw error;\n }\n}\n"],"mappings":";;;;;;aAAqD;AAMrD,MAAM,MAAM,aAAa,sBAAsB;AAE/C,MAAM,mCAAmB,IAAI,KAAuC;AACpE,MAAM,wBAAwB,MAAU;AACxC,MAAM,sCAAsB,IAAI,KAAuF;AAMvH,SAAgB,iCAAiC,cAAmD;AAClG,kBAAiB,IAAI,aAAa,QAAQ,QAAQ,aAAa,QAAQ;AACvE,qBAAoB,OAAO;;AAG7B,SAAgB,mCAAmC,QAAyB;CAC1E,MAAM,UAAU,iBAAiB,OAAO,OAAO;AAC/C,KAAI,QAAS,qBAAoB,OAAO;AACxC,QAAO;;AAGT,iCAAiC,EAAE,SAAS,4BAA4B,CAAC;AACzE,iCAAiC,EAAE,SAAS,yBAAyB,CAAC;AACtE,iCAAiC,EAAE,SAAS,2BAA2B,CAAC;AAExE,SAAS,SAAS,QAA+C;AAC/D,QAAO,KAAK,UAAU;EACpB,QAAQ,OAAO,UAAU;EACzB,OAAO,OAAO,OAAO,MAAM,IAAI;EAC/B,MAAM,OAAO,QAAQ;EACrB,UAAU,OAAO,YAAY;EAC7B,QAAQ,OAAO,UAAU;EAC1B,CAAC;;AAGJ,SAAgB,0BAAsE;AACpF,QAAO,CAAC,GAAG,iBAAiB,QAAQ,CAAC,CAAC,KAAK,cAAc;EAAE,IAAI,SAAS;EAAQ,aAAa,SAAS;EAAa,EAAE;;AAGvH,SAAgB,0BAA0B,QAAyB;AACjE,QAAO,iBAAiB,IAAI,OAAO;;AAGrC,eAAe,kBAAkB,QAAiF;CAChH,MAAM,SAAS,OAAO,UAAU;CAChC,MAAM,aAAa,WAAW,QAC1B,CAAC,GAAG,iBAAiB,QAAQ,CAAC,GAC9B,CAAC,GAAG,iBAAiB,QAAQ,CAAC,CAAC,QAAQ,aAAa,SAAS,WAAW,OAAO;AACnF,QAAO,QAAQ,IAAI,WAAW,IAAI,OAAO,aAAa;AACpD,MAAI;AACF,UAAO,MAAM,SAAS,OAAO,OAAO;WAC7B,OAAO;GACd,MAAM,eAAe,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;AAC3E,OAAI,KAAK;IAAE,QAAQ,SAAS;IAAQ;IAAc,EAAE,qCAAqC,eAAe;AACxG,UAAO;IAAE,QAAQ,SAAS;IAAQ,YAAY,EAAE;IAAE,OAAO;IAAc;;GAEzE,CAAC;;AAGL,eAAsB,0BAA0B,QAAiF;AAC/H,KAAI,CAAC,OAAO,OAAO,MAAM,IAAI,CAAC,OAAO,QAAQ;EAC3C,MAAM,SAAS,OAAO,UAAU;AAIhC,UAHmB,WAAW,QAC1B,CAAC,GAAG,iBAAiB,QAAQ,CAAC,GAC9B,CAAC,GAAG,iBAAiB,QAAQ,CAAC,CAAC,QAAQ,aAAa,SAAS,WAAW,OAAO,EACjE,KAAK,cAAc;GAAE,QAAQ,SAAS;GAAQ,YAAY,EAAE;GAAE,EAAE;;CAEpF,MAAM,MAAM,SAAS,OAAO;CAC5B,MAAM,MAAM,KAAK,KAAK;CACtB,MAAM,SAAS,oBAAoB,IAAI,IAAI;AAC3C,KAAI,UAAU,OAAO,YAAY,IAC/B,QAAO,OAAO;CAEhB,MAAM,UAAU,kBAAkB,OAAO;AACzC,qBAAoB,IAAI,KAAK;EAAE,WAAW,MAAM;EAAuB;EAAS,CAAC;AACjF,KAAI;AACF,SAAO,MAAM;UACN,OAAO;AACd,sBAAoB,OAAO,IAAI;AAC/B,QAAM"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"smithery.js","names":[],"sources":["../../../../src/connectors/registries/smithery.ts"],"sourcesContent":["import type { ConnectorDefinition } from '../types.js';\nimport type { ConnectorRegistryAdapter, ConnectorRegistrySearchParams, ConnectorRegistrySearchResult } from './types.js';\n\nconst DEFAULT_BASE_URL = 'https://registry.smithery.ai';\n\nfunction smitheryApiKey(): string | undefined {\n return process.env.XOPC_SMITHERY_API_KEY?.trim() || process.env.SMITHERY_API_KEY?.trim() || undefined;\n}\n\nfunction smitheryBaseUrl(): string {\n return process.env.XOPC_SMITHERY_REGISTRY_URL?.trim().replace(/\\/+$/, '') || DEFAULT_BASE_URL;\n}\n\nfunction readString(value: unknown): string | undefined {\n return typeof value === 'string' && value.trim() ? value.trim() : undefined;\n}\n\nfunction slugFrom(value: string): string {\n return value\n .trim()\n .toLowerCase()\n .replace(/^@/, '')\n .replace(/[^a-z0-9_-]+/g, '-')\n .replace(/^-+|-+$/g, '')\n .slice(0, 64) || 'smithery-mcp';\n}\n\nfunction connectorFromSmitheryServer(server: Record<string, unknown>, apiKey?: string): ConnectorDefinition | undefined {\n const qualifiedName = readString(server.qualifiedName ?? server.qualified_name ?? server.name ?? server.id);\n const displayName = readString(server.displayName ?? server.display_name ?? server.name) ?? qualifiedName;\n if (!qualifiedName || !displayName) return undefined;\n const serverId = slugFrom(qualifiedName);\n const encodedPath = qualifiedName.split('/').map((part) => encodeURIComponent(part)).join('/');\n const url = `https://server.smithery.ai/${encodedPath}/mcp`;\n const headers = apiKey ? { Authorization: `Bearer ${apiKey}` } : undefined;\n return {\n id: `smithery-${serverId}`,\n version: readString(server.version) ?? 'registry',\n displayName,\n description: readString(server.description) ?? 'MCP server hosted through Smithery.',\n category: 'custom',\n kind: 'mcp',\n source: 'registry',\n capabilities: apiKey\n ? ['tools', 'resources', 'prompts', 'auth.apiKey', 'runtime.mcp.streamableHttp']\n : ['tools', 'resources', 'prompts', 'runtime.mcp.streamableHttp'],\n tags: ['smithery', 'registry', 'mcp'],\n auth: { mode: apiKey ? 'apiKey' : 'none' },\n setup: {},\n runtime: {\n type: 'mcp',\n serverId,\n serverTemplate: {\n url,\n transport: 'streamable-http',\n ...(headers ? { headers } : {}),\n },\n },\n };\n}\n\nfunction extractServers(payload: unknown): Record<string, unknown>[] {\n if (Array.isArray(payload)) return payload.filter((item): item is Record<string, unknown> => Boolean(item && typeof item === 'object' && !Array.isArray(item)));\n if (!payload || typeof payload !== 'object' || Array.isArray(payload)) return [];\n const data = payload as Record<string, unknown>;\n for (const key of ['servers', 'items', 'results', 'data']) {\n const value = data[key];\n if (Array.isArray(value)) {\n return value.filter((item): item is Record<string, unknown> => Boolean(item && typeof item === 'object' && !Array.isArray(item)));\n }\n }\n return [];\n}\n\nexport const smitheryRegistryAdapter: ConnectorRegistryAdapter = {\n source: 'smithery',\n displayName: 'Smithery',\n async search(params: ConnectorRegistrySearchParams): Promise<ConnectorRegistrySearchResult> {\n const apiKey = smitheryApiKey();\n const url = new URL('/servers', smitheryBaseUrl());\n const query = params.query?.trim();\n if (query) url.searchParams.set('q', query);\n url.searchParams.set('pageSize', String(Math.min(Math.max(params.pageSize ?? 24, 1), 100)));\n if (params.page && params.page > 1) url.searchParams.set('page', String(params.page));\n const response = await fetch(url, {\n headers: {\n Accept: 'application/json',\n ...(apiKey ? { Authorization: `Bearer ${apiKey}` } : {}),\n },\n });\n if (!response.ok) throw new Error(`Smithery registry returned ${response.status}`);\n const payload = await response.json();\n return {\n source: 'smithery',\n connectors: extractServers(payload).map((server) => connectorFromSmitheryServer(server, apiKey)).filter((item): item is ConnectorDefinition => Boolean(item)),\n };\n },\n};\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime-adapter-registry.js","names":[],"sources":["../../../src/connectors/runtime-adapter-registry.ts"],"sourcesContent":["import type { CredentialResolver } from '../auth/credentials.js';\nimport type { Config } from '../config/schema.js';\nimport {\n deleteConnectorInstallation,\n getConnectorInstallation,\n isXopcDatabaseOpen,\n upsertConnectorInstallation,\n} from '../storage/sqlite/index.js';\nimport { saveComposioApiKey } from './composio.js';\nimport { assertComposioApiKeyConfigured } from './composio-sessions.js';\nimport { listConnectorInstances } from './instances.js';\nimport { isManagedConnectorServer, materializeConnectorMcpServer } from './materialize.js';\nimport { saveConnectorSecrets } from './secret-store.js';\nimport { appendConnectorAuditRecord } from './usage.js';\nimport type {\n ConnectorDefinition,\n ConnectorInstallInput,\n ConnectorInstance,\n ConnectorRuntimeDefinition,\n} from './types.js';\n\nexport type ConnectorRuntimeInstallContext = {\n config: Config;\n definition: ConnectorDefinition;\n input: ConnectorInstallInput;\n resolver: CredentialResolver;\n};\n\nexport type ConnectorRuntimeUninstallContext = {\n config: Config;\n definition: ConnectorDefinition;\n instance: ConnectorInstance;\n};\n\nexport type ConnectorRuntimeUpdateContext = ConnectorRuntimeInstallContext & { instanceId: string };\n\nexport type ConnectorRuntimeAdapter = {\n type: ConnectorRuntimeDefinition['type'];\n install(context: ConnectorRuntimeInstallContext): Promise<ConnectorInstance>;\n uninstall(context: ConnectorRuntimeUninstallContext): void;\n update?(context: ConnectorRuntimeUpdateContext): ConnectorInstance;\n};\n\nconst adapters = new Map<ConnectorRuntimeDefinition['type'], ConnectorRuntimeAdapter>();\n\nexport function registerConnectorRuntimeAdapter(adapter: ConnectorRuntimeAdapter): void {\n if (adapters.has(adapter.type)) throw new Error(`Connector runtime adapter is already registered: ${adapter.type}`);\n adapters.set(adapter.type, adapter);\n}\n\nfunction installedInstance(config: Config, instanceId: string, connectorId: string): ConnectorInstance {\n const instance = listConnectorInstances(config).find((candidate) => candidate.instanceId === instanceId);\n if (!instance) throw new Error(`Connector \"${connectorId}\" was installed but could not be resolved.`);\n return instance;\n}\n\nfunction installRecord(config: Config, definition: ConnectorDefinition, extra: Record<string, unknown> = {}): ConnectorInstance {\n const instanceId = definition.id;\n config.connectors = config.connectors ?? {};\n config.connectors.instances = {\n ...(config.connectors.instances ?? {}),\n [instanceId]: {\n xopcConnector: {\n managed: true,\n connectorId: definition.id,\n version: definition.version,\n enabled: true,\n displayName: definition.displayName,\n source: definition.source,\n artifactSha256: definition.provenance?.sha256,\n },\n runtime: definition.runtime,\n ...extra,\n },\n };\n return installedInstance(config, instanceId, definition.id);\n}\n\nfunction uninstallRecord(config: Config, instanceId: string): void {\n const record = config.connectors?.instances?.[instanceId];\n if (!record) throw new Error(`Connector instance not found: ${instanceId}`);\n const nextInstances = { ...(config.connectors?.instances ?? {}) };\n delete nextInstances[instanceId];\n config.connectors = { ...(config.connectors ?? {}), instances: nextInstances };\n}\n\nregisterConnectorRuntimeAdapter({\n type: 'mcp',\n async install({ config, definition, input, resolver }) {\n if (definition.runtime.type !== 'mcp') throw new Error(`Invalid MCP connector definition: ${definition.id}`);\n const { serverId, server } = materializeConnectorMcpServer(definition, input);\n const existingServer = config.mcp?.servers?.[serverId];\n if (existingServer && !isManagedConnectorServer(existingServer)) {\n throw new Error(`MCP server \"${serverId}\" already exists and is not managed by Connectors.`);\n }\n await saveConnectorSecrets(definition, input, resolver);\n config.mcp = config.mcp ?? {};\n config.mcp.servers = { ...(config.mcp.servers ?? {}), [serverId]: server };\n const instance = installedInstance(config, serverId, definition.id);\n appendConnectorAuditRecord(config, serverId, { action: 'installed' });\n return instance;\n },\n uninstall({ config, instance }) {\n const server = config.mcp?.servers?.[instance.instanceId];\n if (!server || !isManagedConnectorServer(server)) {\n throw new Error(`MCP server \"${instance.instanceId}\" is not managed by Connectors.`);\n }\n appendConnectorAuditRecord(config, instance.instanceId, { action: 'removed' });\n const nextServers = { ...(config.mcp?.servers ?? {}) };\n delete nextServers[instance.instanceId];\n config.mcp = { ...(config.mcp ?? {}), servers: nextServers };\n },\n update({ config, definition, input, instanceId }) {\n if (definition.runtime.type !== 'mcp') throw new Error(`Invalid MCP connector definition: ${definition.id}`);\n const existingServer = config.mcp?.servers?.[instanceId];\n if (!existingServer || !isManagedConnectorServer(existingServer)) {\n throw new Error(`MCP server \"${instanceId}\" is not managed by Connectors.`);\n }\n if ((definition.setup.secrets ?? []).length > 0) {\n throw new Error('Connectors with secrets must be reinstalled to change configuration.');\n }\n const { serverId, server } = materializeConnectorMcpServer(definition, input);\n if (serverId !== instanceId) {\n throw new Error(`Connector config update cannot change server id from \"${instanceId}\" to \"${serverId}\".`);\n }\n config.mcp = config.mcp ?? {};\n config.mcp.servers = {\n ...(config.mcp.servers ?? {}),\n [serverId]: {\n ...server,\n xopcConnector: {\n ...existingServer.xopcConnector,\n ...(server.xopcConnector as Record<string, unknown>),\n enabled: existingServer.xopcConnector.enabled,\n lastConnectedAt: existingServer.xopcConnector.lastConnectedAt,\n lastError: existingServer.xopcConnector.lastError,\n },\n },\n };\n return installedInstance(config, serverId, definition.id);\n },\n});\n\nregisterConnectorRuntimeAdapter({\n type: 'composio',\n async install({ config, definition, input, resolver }) {\n if (definition.runtime.type !== 'composio') throw new Error(`Invalid Composio connector definition: ${definition.id}`);\n if (definition.runtime.role === 'credential') await saveComposioApiKey(input, resolver);\n if (definition.runtime.role === 'toolkit') await assertComposioApiKeyConfigured(resolver);\n const instance = installRecord(\n config,\n definition,\n definition.runtime.role === 'toolkit' ? { scope: 'read' } : {},\n );\n if (definition.runtime.role === 'toolkit' && isXopcDatabaseOpen()) {\n const installationId = `${definition.id}-local-owner`;\n const existing = getConnectorInstallation(installationId);\n upsertConnectorInstallation({\n id: installationId,\n connectorId: definition.id,\n principalId: 'local-owner',\n enabled: true,\n allowedAgentIds: existing?.allowedAgentIds ?? [],\n maxScope: 'read',\n confirmationPolicy: existing?.confirmationPolicy ?? 'writes',\n selectedConnectionIds: existing?.selectedConnectionIds ?? [],\n createdAt: existing?.createdAt,\n });\n }\n return instance;\n },\n uninstall({ config, definition, instance }) {\n if (definition.runtime.type !== 'composio') throw new Error(`Invalid Composio connector definition: ${definition.id}`);\n uninstallRecord(config, instance.instanceId);\n if (definition.runtime.role === 'toolkit' && isXopcDatabaseOpen()) {\n deleteConnectorInstallation(`${definition.id}-local-owner`);\n }\n },\n});\n\nfor (const type of ['channel', 'nativeTool', 'memorySource'] as const) {\n registerConnectorRuntimeAdapter({\n type,\n async install({ config, definition }) {\n return installRecord(config, definition);\n },\n uninstall({ config, instance }) {\n uninstallRecord(config, instance.instanceId);\n },\n });\n}\n\nexport function getConnectorRuntimeAdapter(type: ConnectorRuntimeDefinition['type']): ConnectorRuntimeAdapter {\n const adapter = adapters.get(type);\n if (!adapter) throw new Error(`Unknown connector runtime adapter: ${type}`);\n return adapter;\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"secret-store.js","names":[],"sources":["../../../src/connectors/secret-store.ts"],"sourcesContent":["import { CredentialResolver } from '../auth/credentials.js';\nimport { consumeConnectorSetupSecretRef } from './setup-secrets.js';\nimport type { ConnectorDefinition, ConnectorInstallInput, ConnectorSecretReference } from './types.js';\n\nfunction normalizeSecretSegment(value: string): string {\n return value.trim().toLowerCase().replace(/[^a-z0-9_-]+/g, '-').replace(/^-+|-+$/g, '');\n}\n\nexport function connectorSecretProviderId(connectorId: string, fieldKey: string): string {\n const normalizedConnectorId = normalizeSecretSegment(connectorId);\n const normalizedFieldKey = normalizeSecretSegment(fieldKey);\n return `connector-${normalizedConnectorId}-${normalizedFieldKey}`;\n}\n\nexport function createConnectorSecretReference(connectorId: string, fieldKey: string): ConnectorSecretReference {\n return {\n xopcSecretRef: {\n provider: connectorSecretProviderId(connectorId, fieldKey),\n fieldKey,\n },\n };\n}\n\nexport function isConnectorSecretReference(value: unknown): value is ConnectorSecretReference {\n if (!value || typeof value !== 'object' || Array.isArray(value)) {\n return false;\n }\n const ref = (value as Record<string, unknown>).xopcSecretRef;\n return Boolean(\n ref &&\n typeof ref === 'object' &&\n !Array.isArray(ref) &&\n typeof (ref as Record<string, unknown>).provider === 'string' &&\n typeof (ref as Record<string, unknown>).fieldKey === 'string',\n );\n}\n\nexport async function saveConnectorSecrets(\n definition: ConnectorDefinition,\n input: ConnectorInstallInput,\n resolver = new CredentialResolver(),\n): Promise<void> {\n for (const secret of definition.setup.secrets ?? []) {\n const rawValue = input.secrets?.[secret.key];\n const resolvedValue = typeof rawValue === 'string' && rawValue.trim().startsWith('secret://')\n ? consumeConnectorSetupSecretRef(rawValue)\n : rawValue;\n if (typeof resolvedValue !== 'string' || resolvedValue.trim().length === 0) {\n continue;\n }\n await resolver.saveApiKey(connectorSecretProviderId(definition.id, secret.key), resolvedValue.trim(), {\n profileName: 'default',\n });\n }\n}\n\nasync function resolveSecretReference(\n reference: ConnectorSecretReference,\n resolver: CredentialResolver,\n): Promise<string | undefined> {\n const value = await resolver.resolveApiKey(reference.xopcSecretRef.provider);\n return value ?? undefined;\n}\n\nexport async function resolveConnectorSecretReferences(\n value: unknown,\n resolver = new CredentialResolver(),\n): Promise<unknown> {\n if (isConnectorSecretReference(value)) {\n return resolveSecretReference(value, resolver);\n }\n if (Array.isArray(value)) {\n const items = await Promise.all(value.map((item) => resolveConnectorSecretReferences(item, resolver)));\n return items.filter((item) => item !== undefined);\n }\n if (value && typeof value === 'object') {\n const output: Record<string, unknown> = {};\n for (const [key, child] of Object.entries(value as Record<string, unknown>)) {\n const resolved = await resolveConnectorSecretReferences(child, resolver);\n if (resolved !== undefined) {\n output[key] = resolved;\n }\n }\n return output;\n }\n return value;\n}\n"],"mappings":";;;kBAA4D;AAI5D,SAAS,uBAAuB,OAAuB;AACrD,QAAO,MAAM,MAAM,CAAC,aAAa,CAAC,QAAQ,iBAAiB,IAAI,CAAC,QAAQ,YAAY,GAAG;;AAGzF,SAAgB,0BAA0B,aAAqB,UAA0B;AAGvF,QAAO,aAFuB,uBAAuB,YAEZ,CAAC,GADf,uBAAuB,SACa;;AAGjE,SAAgB,+BAA+B,aAAqB,UAA4C;AAC9G,QAAO,EACL,eAAe;EACb,UAAU,0BAA0B,aAAa,SAAS;EAC1D;EACD,EACF;;AAGH,SAAgB,2BAA2B,OAAmD;AAC5F,KAAI,CAAC,SAAS,OAAO,UAAU,YAAY,MAAM,QAAQ,MAAM,CAC7D,QAAO;CAET,MAAM,MAAO,MAAkC;AAC/C,QAAO,QACL,OACE,OAAO,QAAQ,YACf,CAAC,MAAM,QAAQ,IAAI,IACnB,OAAQ,IAAgC,aAAa,YACrD,OAAQ,IAAgC,aAAa,SACxD;;AAGH,eAAsB,qBACpB,YACA,OACA,WAAW,IAAI,oBAAoB,EACpB;AACf,MAAK,MAAM,UAAU,WAAW,MAAM,WAAW,EAAE,EAAE;EACnD,MAAM,WAAW,MAAM,UAAU,OAAO;EACxC,MAAM,gBAAgB,OAAO,aAAa,YAAY,SAAS,MAAM,CAAC,WAAW,YAAY,GACzF,+BAA+B,SAAS,GACxC;AACJ,MAAI,OAAO,kBAAkB,YAAY,cAAc,MAAM,CAAC,WAAW,EACvE;AAEF,QAAM,SAAS,WAAW,0BAA0B,WAAW,IAAI,OAAO,IAAI,EAAE,cAAc,MAAM,EAAE,EACpG,aAAa,WACd,CAAC;;;AAIN,eAAe,uBACb,WACA,UAC6B;AAE7B,QAAO,MADa,SAAS,cAAc,UAAU,cAAc,SAAS,IAC5D,KAAA;;AAGlB,eAAsB,iCACpB,OACA,WAAW,IAAI,oBAAoB,EACjB;AAClB,KAAI,2BAA2B,MAAM,CACnC,QAAO,uBAAuB,OAAO,SAAS;AAEhD,KAAI,MAAM,QAAQ,MAAM,CAEtB,SAAO,MADa,QAAQ,IAAI,MAAM,KAAK,SAAS,iCAAiC,MAAM,SAAS,CAAC,CAAC,EACzF,QAAQ,SAAS,SAAS,KAAA,EAAU;AAEnD,KAAI,SAAS,OAAO,UAAU,UAAU;EACtC,MAAM,SAAkC,EAAE;AAC1C,OAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,MAAiC,EAAE;GAC3E,MAAM,WAAW,MAAM,iCAAiC,OAAO,SAAS;AACxE,OAAI,aAAa,KAAA,EACf,QAAO,OAAO;;AAGlB,SAAO;;AAET,QAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup-secrets.js","names":[],"sources":["../../../src/connectors/setup-secrets.ts"],"sourcesContent":["import crypto from 'node:crypto';\n\nconst REQUEST_TIMEOUT_MS = 5 * 60 * 1000;\nconst IDLE_TTL_MS = 15 * 60 * 1000;\n\nexport type ConnectorSetupSecretRequest = {\n ref: string;\n key: string;\n label?: string;\n createdAt: number;\n expiresAt: number;\n};\n\ntype PendingSecret = ConnectorSetupSecretRequest & {\n value?: string;\n lastTouchedAt: number;\n};\n\nconst pendingSecrets = new Map<string, PendingSecret>();\n\nfunction nowMs(): number {\n return Date.now();\n}\n\nfunction createSecretRef(): string {\n return `secret://${crypto.randomBytes(6).toString('hex')}`;\n}\n\nexport function createConnectorSetupSecretRequest(params: { key: string; label?: string }): ConnectorSetupSecretRequest {\n sweepExpiredConnectorSetupSecrets();\n const createdAt = nowMs();\n const request: PendingSecret = {\n ref: createSecretRef(),\n key: params.key,\n label: params.label,\n createdAt,\n expiresAt: createdAt + REQUEST_TIMEOUT_MS,\n lastTouchedAt: createdAt,\n };\n pendingSecrets.set(request.ref, request);\n return { ref: request.ref, key: request.key, label: request.label, createdAt: request.createdAt, expiresAt: request.expiresAt };\n}\n\nexport function submitConnectorSetupSecret(ref: string, value: string): boolean {\n sweepExpiredConnectorSetupSecrets();\n const entry = pendingSecrets.get(ref.trim());\n if (!entry || entry.expiresAt < nowMs() || typeof value !== 'string' || value.length === 0) {\n return false;\n }\n entry.value = value;\n entry.lastTouchedAt = nowMs();\n return true;\n}\n\nexport function resolveConnectorSetupSecretRef(ref: string): string | undefined {\n sweepExpiredConnectorSetupSecrets();\n const entry = pendingSecrets.get(ref.trim());\n if (!entry?.value) return undefined;\n entry.lastTouchedAt = nowMs();\n return entry.value;\n}\n\nexport function consumeConnectorSetupSecretRef(ref: string): string | undefined {\n const value = resolveConnectorSetupSecretRef(ref);\n if (value !== undefined) {\n pendingSecrets.delete(ref.trim());\n }\n return value;\n}\n\nexport function sweepExpiredConnectorSetupSecrets(): number {\n const now = nowMs();\n let removed = 0;\n for (const [ref, entry] of pendingSecrets) {\n if (entry.expiresAt < now || entry.lastTouchedAt + IDLE_TTL_MS < now) {\n pendingSecrets.delete(ref);\n removed += 1;\n }\n }\n return removed;\n}\n"],"mappings":";;AAEA,MAAM,qBAAqB,MAAS;AACpC,MAAM,cAAc,MAAU;AAe9B,MAAM,iCAAiB,IAAI,KAA4B;AAEvD,SAAS,QAAgB;AACvB,QAAO,KAAK,KAAK;;AAGnB,SAAS,kBAA0B;AACjC,QAAO,YAAY,OAAO,YAAY,EAAE,CAAC,SAAS,MAAM;;AAG1D,SAAgB,kCAAkC,QAAsE;AACtH,oCAAmC;CACnC,MAAM,YAAY,OAAO;CACzB,MAAM,UAAyB;EAC7B,KAAK,iBAAiB;EACtB,KAAK,OAAO;EACZ,OAAO,OAAO;EACd;EACA,WAAW,YAAY;EACvB,eAAe;EAChB;AACD,gBAAe,IAAI,QAAQ,KAAK,QAAQ;AACxC,QAAO;EAAE,KAAK,QAAQ;EAAK,KAAK,QAAQ;EAAK,OAAO,QAAQ;EAAO,WAAW,QAAQ;EAAW,WAAW,QAAQ;EAAW;;AAGjI,SAAgB,2BAA2B,KAAa,OAAwB;AAC9E,oCAAmC;CACnC,MAAM,QAAQ,eAAe,IAAI,IAAI,MAAM,CAAC;AAC5C,KAAI,CAAC,SAAS,MAAM,YAAY,OAAO,IAAI,OAAO,UAAU,YAAY,MAAM,WAAW,EACvF,QAAO;AAET,OAAM,QAAQ;AACd,OAAM,gBAAgB,OAAO;AAC7B,QAAO;;AAGT,SAAgB,+BAA+B,KAAiC;AAC9E,oCAAmC;CACnC,MAAM,QAAQ,eAAe,IAAI,IAAI,MAAM,CAAC;AAC5C,KAAI,CAAC,OAAO,MAAO,QAAO,KAAA;AAC1B,OAAM,gBAAgB,OAAO;AAC7B,QAAO,MAAM;;AAGf,SAAgB,+BAA+B,KAAiC;CAC9E,MAAM,QAAQ,+BAA+B,IAAI;AACjD,KAAI,UAAU,KAAA,EACZ,gBAAe,OAAO,IAAI,MAAM,CAAC;AAEnC,QAAO;;AAGT,SAAgB,oCAA4C;CAC1D,MAAM,MAAM,OAAO;CACnB,IAAI,UAAU;AACd,MAAK,MAAM,CAAC,KAAK,UAAU,eACzB,KAAI,MAAM,YAAY,OAAO,MAAM,gBAAgB,cAAc,KAAK;AACpE,iBAAe,OAAO,IAAI;AAC1B,aAAW;;AAGf,QAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"supervisor.js","names":[],"sources":["../../../src/connectors/supervisor.ts"],"sourcesContent":["import type { Config } from '../config/schema.js';\nimport { createLogger } from '../utils/logger.js';\nimport { testConnectorInstance } from './health.js';\nimport { listConnectorInstances } from './instances.js';\nimport { recordConnectorHealthUsage } from './usage.js';\n\nconst log = createLogger('Connectors:Supervisor');\n\nexport type ConnectorSupervisorOptions = {\n getConfig: () => Config;\n saveConfig: (config: Config) => Promise<{ saved: boolean; error?: string }>;\n intervalMs?: number;\n initialDelayMs?: number;\n};\n\nexport type ConnectorSupervisor = {\n runNow(): Promise<void>;\n stop(): void;\n};\n\nfunction resolveIntervalMs(input?: number): number {\n const env = Number(process.env.XOPC_CONNECTOR_SUPERVISOR_INTERVAL_MS ?? '');\n const value = input ?? (Number.isFinite(env) && env > 0 ? env : 60_000);\n return Math.max(10_000, Math.min(value, 30 * 60_000));\n}\n\nexport function startConnectorSupervisor(options: ConnectorSupervisorOptions): ConnectorSupervisor {\n const intervalMs = resolveIntervalMs(options.intervalMs);\n let timer: NodeJS.Timeout | null = null;\n let running = false;\n let stopped = false;\n\n async function runNow(): Promise<void> {\n if (running || stopped) return;\n running = true;\n const config = options.getConfig();\n let changed = false;\n try {\n const instances = listConnectorInstances(config).filter((instance) => instance.enabled);\n for (const instance of instances) {\n if (instance.materialized.type !== 'mcp') continue;\n try {\n const result = await testConnectorInstance(config, instance.materialized.serverId);\n recordConnectorHealthUsage(config, instance.instanceId, result);\n changed = true;\n if (!result.ok) {\n log.warn(\n { instanceId: instance.instanceId, status: result.status, errorMessage: result.error },\n `Connector health check failed: ${result.status}`,\n );\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n log.warn({ instanceId: instance.instanceId, errorMessage }, `Connector supervisor check failed: ${errorMessage}`);\n }\n }\n if (changed) {\n const saved = await options.saveConfig(config);\n if (!saved.saved) {\n log.warn({ errorMessage: saved.error }, `Connector supervisor could not save health state: ${saved.error}`);\n }\n }\n } finally {\n running = false;\n }\n }\n\n const initialDelayMs = options.initialDelayMs ?? 15_000;\n timer = setTimeout(() => {\n void runNow();\n timer = setInterval(() => void runNow(), intervalMs);\n }, Math.max(0, initialDelayMs));\n timer.unref?.();\n\n return {\n runNow,\n stop() {\n stopped = true;\n if (timer) {\n clearTimeout(timer);\n clearInterval(timer);\n timer = null;\n }\n },\n };\n}\n"],"mappings":";;;;;;aACkD;AAKlD,MAAM,MAAM,aAAa,wBAAwB;AAcjD,SAAS,kBAAkB,OAAwB;CACjD,MAAM,MAAM,OAAO,QAAQ,IAAI,yCAAyC,GAAG;AAE3E,QAAO,KAAK,IAAI,KAAQ,KAAK,IADf,UAAU,OAAO,SAAS,IAAI,IAAI,MAAM,IAAI,MAAM,MACxB,KAAK,IAAO,CAAC;;AAGvD,SAAgB,yBAAyB,SAA0D;CACjG,MAAM,aAAa,kBAAkB,QAAQ,WAAW;CACxD,IAAI,QAA+B;CACnC,IAAI,UAAU;CACd,IAAI,UAAU;CAEd,eAAe,SAAwB;AACrC,MAAI,WAAW,QAAS;AACxB,YAAU;EACV,MAAM,SAAS,QAAQ,WAAW;EAClC,IAAI,UAAU;AACd,MAAI;GACF,MAAM,YAAY,uBAAuB,OAAO,CAAC,QAAQ,aAAa,SAAS,QAAQ;AACvF,QAAK,MAAM,YAAY,WAAW;AAChC,QAAI,SAAS,aAAa,SAAS,MAAO;AAC1C,QAAI;KACF,MAAM,SAAS,MAAM,sBAAsB,QAAQ,SAAS,aAAa,SAAS;AAClF,gCAA2B,QAAQ,SAAS,YAAY,OAAO;AAC/D,eAAU;AACV,SAAI,CAAC,OAAO,GACV,KAAI,KACF;MAAE,YAAY,SAAS;MAAY,QAAQ,OAAO;MAAQ,cAAc,OAAO;MAAO,EACtF,kCAAkC,OAAO,SAC1C;aAEI,OAAO;KACd,MAAM,eAAe,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;AAC3E,SAAI,KAAK;MAAE,YAAY,SAAS;MAAY;MAAc,EAAE,sCAAsC,eAAe;;;AAGrH,OAAI,SAAS;IACX,MAAM,QAAQ,MAAM,QAAQ,WAAW,OAAO;AAC9C,QAAI,CAAC,MAAM,MACT,KAAI,KAAK,EAAE,cAAc,MAAM,OAAO,EAAE,qDAAqD,MAAM,QAAQ;;YAGvG;AACR,aAAU;;;CAId,MAAM,iBAAiB,QAAQ,kBAAkB;AACjD,SAAQ,iBAAiB;AAClB,UAAQ;AACb,UAAQ,kBAAkB,KAAK,QAAQ,EAAE,WAAW;IACnD,KAAK,IAAI,GAAG,eAAe,CAAC;AAC/B,OAAM,SAAS;AAEf,QAAO;EACL;EACA,OAAO;AACL,aAAU;AACV,OAAI,OAAO;AACT,iBAAa,MAAM;AACnB,kBAAc,MAAM;AACpB,YAAQ;;;EAGb"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"usage.js","names":[],"sources":["../../../src/connectors/usage.ts"],"sourcesContent":["import type { Config } from '../config/schema.js';\nimport { isManagedConnectorServer } from './materialize.js';\nimport type { ConnectorAuditRecord, ConnectorHealthResult, ConnectorUsageRecord } from './types.js';\n\nconst MAX_AUDIT_RECORDS = 50;\n\nfunction getManagedConnectorMarker(config: Config, instanceId: string): Record<string, unknown> | undefined {\n const server = config.mcp?.servers?.[instanceId];\n if (!isManagedConnectorServer(server)) {\n return undefined;\n }\n return server.xopcConnector as Record<string, unknown>;\n}\n\nexport function getConnectorUsageFromMarker(marker: unknown): ConnectorUsageRecord {\n if (!marker || typeof marker !== 'object' || Array.isArray(marker)) {\n return {};\n }\n const usage = (marker as Record<string, unknown>).usage;\n if (!usage || typeof usage !== 'object' || Array.isArray(usage)) {\n return {};\n }\n const record = usage as Record<string, unknown>;\n return {\n lastHealthCheckAt: typeof record.lastHealthCheckAt === 'string' ? record.lastHealthCheckAt : undefined,\n lastHealthStatus: typeof record.lastHealthStatus === 'string' ? record.lastHealthStatus as ConnectorUsageRecord['lastHealthStatus'] : undefined,\n lastToolCount: typeof record.lastToolCount === 'number' ? record.lastToolCount : undefined,\n lastResourceCount: typeof record.lastResourceCount === 'number' ? record.lastResourceCount : undefined,\n lastPromptCount: typeof record.lastPromptCount === 'number' ? record.lastPromptCount : undefined,\n };\n}\n\nexport function getConnectorAuditFromMarker(marker: unknown): ConnectorAuditRecord[] {\n if (!marker || typeof marker !== 'object' || Array.isArray(marker)) {\n return [];\n }\n const audit = (marker as Record<string, unknown>).audit;\n if (!Array.isArray(audit)) {\n return [];\n }\n return audit.flatMap((entry) => {\n if (!entry || typeof entry !== 'object' || Array.isArray(entry)) {\n return [];\n }\n const record = entry as Record<string, unknown>;\n if (typeof record.at !== 'string' || typeof record.action !== 'string') {\n return [];\n }\n return [{\n at: record.at,\n action: record.action as ConnectorAuditRecord['action'],\n status: typeof record.status === 'string' ? record.status as ConnectorAuditRecord['status'] : undefined,\n ok: typeof record.ok === 'boolean' ? record.ok : undefined,\n toolCount: typeof record.toolCount === 'number' ? record.toolCount : undefined,\n resourceCount: typeof record.resourceCount === 'number' ? record.resourceCount : undefined,\n promptCount: typeof record.promptCount === 'number' ? record.promptCount : undefined,\n }];\n });\n}\n\nexport function appendConnectorAuditRecord(\n config: Config,\n instanceId: string,\n record: Omit<ConnectorAuditRecord, 'at'>,\n): void {\n const marker = getManagedConnectorMarker(config, instanceId);\n if (!marker) {\n return;\n }\n const existing = Array.isArray(marker.audit) ? marker.audit : [];\n marker.audit = [\n ...existing.slice(-MAX_AUDIT_RECORDS + 1),\n { ...record, at: new Date().toISOString() },\n ];\n}\n\nexport function recordConnectorHealthUsage(\n config: Config,\n instanceId: string,\n result: ConnectorHealthResult,\n): void {\n const marker = getManagedConnectorMarker(config, instanceId);\n if (!marker) {\n return;\n }\n const checkedAt = new Date().toISOString();\n marker.usage = {\n lastHealthCheckAt: checkedAt,\n lastHealthStatus: result.status,\n lastToolCount: result.toolCount,\n lastResourceCount: result.resourceCount,\n lastPromptCount: result.promptCount,\n } satisfies ConnectorUsageRecord;\n if (result.ok) {\n marker.lastConnectedAt = checkedAt;\n delete marker.lastError;\n } else if (result.error) {\n marker.lastError = result.error;\n }\n appendConnectorAuditRecord(config, instanceId, {\n action: 'health_check',\n status: result.status,\n ok: result.ok,\n toolCount: result.toolCount,\n resourceCount: result.resourceCount,\n promptCount: result.promptCount,\n });\n}\n"],"mappings":";;AAIA,MAAM,oBAAoB;AAE1B,SAAS,0BAA0B,QAAgB,YAAyD;CAC1G,MAAM,SAAS,OAAO,KAAK,UAAU;AACrC,KAAI,CAAC,yBAAyB,OAAO,CACnC;AAEF,QAAO,OAAO;;AAGhB,SAAgB,4BAA4B,QAAuC;AACjF,KAAI,CAAC,UAAU,OAAO,WAAW,YAAY,MAAM,QAAQ,OAAO,CAChE,QAAO,EAAE;CAEX,MAAM,QAAS,OAAmC;AAClD,KAAI,CAAC,SAAS,OAAO,UAAU,YAAY,MAAM,QAAQ,MAAM,CAC7D,QAAO,EAAE;CAEX,MAAM,SAAS;AACf,QAAO;EACL,mBAAmB,OAAO,OAAO,sBAAsB,WAAW,OAAO,oBAAoB,KAAA;EAC7F,kBAAkB,OAAO,OAAO,qBAAqB,WAAW,OAAO,mBAA+D,KAAA;EACtI,eAAe,OAAO,OAAO,kBAAkB,WAAW,OAAO,gBAAgB,KAAA;EACjF,mBAAmB,OAAO,OAAO,sBAAsB,WAAW,OAAO,oBAAoB,KAAA;EAC7F,iBAAiB,OAAO,OAAO,oBAAoB,WAAW,OAAO,kBAAkB,KAAA;EACxF;;AAGH,SAAgB,4BAA4B,QAAyC;AACnF,KAAI,CAAC,UAAU,OAAO,WAAW,YAAY,MAAM,QAAQ,OAAO,CAChE,QAAO,EAAE;CAEX,MAAM,QAAS,OAAmC;AAClD,KAAI,CAAC,MAAM,QAAQ,MAAM,CACvB,QAAO,EAAE;AAEX,QAAO,MAAM,SAAS,UAAU;AAC9B,MAAI,CAAC,SAAS,OAAO,UAAU,YAAY,MAAM,QAAQ,MAAM,CAC7D,QAAO,EAAE;EAEX,MAAM,SAAS;AACf,MAAI,OAAO,OAAO,OAAO,YAAY,OAAO,OAAO,WAAW,SAC5D,QAAO,EAAE;AAEX,SAAO,CAAC;GACN,IAAI,OAAO;GACX,QAAQ,OAAO;GACf,QAAQ,OAAO,OAAO,WAAW,WAAW,OAAO,SAA2C,KAAA;GAC9F,IAAI,OAAO,OAAO,OAAO,YAAY,OAAO,KAAK,KAAA;GACjD,WAAW,OAAO,OAAO,cAAc,WAAW,OAAO,YAAY,KAAA;GACrE,eAAe,OAAO,OAAO,kBAAkB,WAAW,OAAO,gBAAgB,KAAA;GACjF,aAAa,OAAO,OAAO,gBAAgB,WAAW,OAAO,cAAc,KAAA;GAC5E,CAAC;GACF;;AAGJ,SAAgB,2BACd,QACA,YACA,QACM;CACN,MAAM,SAAS,0BAA0B,QAAQ,WAAW;AAC5D,KAAI,CAAC,OACH;AAGF,QAAO,QAAQ,CACb,IAFe,MAAM,QAAQ,OAAO,MAAM,GAAG,OAAO,QAAQ,EAAE,EAElD,MAAM,CAAC,oBAAoB,EAAE,EACzC;EAAE,GAAG;EAAQ,qBAAI,IAAI,MAAM,EAAC,aAAa;EAAE,CAC5C;;AAGH,SAAgB,2BACd,QACA,YACA,QACM;CACN,MAAM,SAAS,0BAA0B,QAAQ,WAAW;AAC5D,KAAI,CAAC,OACH;CAEF,MAAM,6BAAY,IAAI,MAAM,EAAC,aAAa;AAC1C,QAAO,QAAQ;EACb,mBAAmB;EACnB,kBAAkB,OAAO;EACzB,eAAe,OAAO;EACtB,mBAAmB,OAAO;EAC1B,iBAAiB,OAAO;EACzB;AACD,KAAI,OAAO,IAAI;AACb,SAAO,kBAAkB;AACzB,SAAO,OAAO;YACL,OAAO,MAChB,QAAO,YAAY,OAAO;AAE5B,4BAA2B,QAAQ,YAAY;EAC7C,QAAQ;EACR,QAAQ,OAAO;EACf,IAAI,OAAO;EACX,WAAW,OAAO;EAClB,eAAe,OAAO;EACtB,aAAa,OAAO;EACrB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"workflow-preflight.js","names":[],"sources":["../../../src/connectors/workflow-preflight.ts"],"sourcesContent":["import type { Config } from '../config/schema.js';\nimport { listConnectorConnections, getConnectorInstallation } from '../storage/sqlite/connector-repository.js';\nimport type { WorkflowConnectorRequirement, WorkflowDefinition } from '../workflows/domain/definition.js';\nimport { getComposioToolkitScope } from './composio.js';\nimport { getConnectorDefinition } from './catalog.js';\nimport { listConnectorInstances } from './instances.js';\nimport type { ConnectorScope } from './types.js';\n\nexport type ConnectorPreflightIssueCode =\n | 'not_installed'\n | 'disabled'\n | 'agent_not_allowed'\n | 'scope_too_narrow'\n | 'connection_missing'\n | 'reauthorization_required';\n\nexport type ConnectorPreflightIssue = {\n connectorId: string;\n code: ConnectorPreflightIssueCode;\n message: string;\n recoveryPath: string;\n};\n\nexport type ConnectorPreflightResult = {\n ok: boolean;\n issues: ConnectorPreflightIssue[];\n optionalIssues: ConnectorPreflightIssue[];\n};\n\nconst SCOPE_ORDER: Record<ConnectorScope, number> = { read: 1, write: 2, admin: 3 };\n\nfunction issue(requirement: WorkflowConnectorRequirement, code: ConnectorPreflightIssueCode, message: string): ConnectorPreflightIssue {\n return {\n connectorId: requirement.connectorId,\n code,\n message,\n recoveryPath: `/connectors?connector=${encodeURIComponent(requirement.connectorId)}`,\n };\n}\n\nexport function preflightWorkflowConnectors(input: {\n definition: WorkflowDefinition;\n config: Config;\n agentId: string;\n principalId?: string;\n}): ConnectorPreflightResult {\n const principalId = input.principalId ?? 'local-owner';\n const instances = listConnectorInstances(input.config);\n const issues: ConnectorPreflightIssue[] = [];\n const optionalIssues: ConnectorPreflightIssue[] = [];\n const add = (requirement: WorkflowConnectorRequirement, value: ConnectorPreflightIssue): void => {\n (requirement.optional ? optionalIssues : issues).push(value);\n };\n\n for (const requirement of input.definition.connectors ?? []) {\n const instance = instances.find((candidate) => candidate.connectorId === requirement.connectorId);\n if (!instance) {\n add(requirement, issue(requirement, 'not_installed', `${requirement.connectorId} is not installed.`));\n continue;\n }\n if (!instance.enabled) {\n add(requirement, issue(requirement, 'disabled', `${requirement.connectorId} is disabled.`));\n continue;\n }\n const definition = getConnectorDefinition(requirement.connectorId);\n if (definition?.runtime.type !== 'composio' || definition.runtime.role !== 'toolkit') continue;\n\n const toolkit = definition.runtime.toolkit;\n const installation = getConnectorInstallation(`${requirement.connectorId}-${principalId}`);\n if (installation?.allowedAgentIds.length && !installation.allowedAgentIds.includes(input.agentId)) {\n add(requirement, issue(requirement, 'agent_not_allowed', `${input.agentId} is not allowed to use ${requirement.connectorId}.`));\n continue;\n }\n const allowedScope = installation?.maxScope ?? getComposioToolkitScope(input.config, toolkit);\n const requiredScope = requirement.scope ?? 'read';\n if (SCOPE_ORDER[allowedScope] < SCOPE_ORDER[requiredScope]) {\n add(requirement, issue(requirement, 'scope_too_narrow', `${requirement.connectorId} requires ${requiredScope} scope but allows ${allowedScope}.`));\n continue;\n }\n if (requirement.connectionRequired === false) continue;\n const connections = listConnectorConnections({ principalId, connectorId: requirement.connectorId });\n const selected = installation?.selectedConnectionIds.length\n ? connections.filter((connection) => installation.selectedConnectionIds.includes(connection.id))\n : connections;\n if (selected.some((connection) => connection.status === 'active')) continue;\n const needsAuthorization = selected.some((connection) => connection.status === 'expired' || connection.status === 'failed');\n add(requirement, issue(\n requirement,\n needsAuthorization ? 'reauthorization_required' : 'connection_missing',\n needsAuthorization\n ? `${requirement.connectorId} needs to be reconnected.`\n : `${requirement.connectorId} has no active account connection.`,\n ));\n }\n return { ok: issues.length === 0, issues, optionalIssues };\n}\n"],"mappings":";;;;;AA6BA,MAAM,cAA8C;CAAE,MAAM;CAAG,OAAO;CAAG,OAAO;CAAG;AAEnF,SAAS,MAAM,aAA2C,MAAmC,SAA0C;AACrI,QAAO;EACL,aAAa,YAAY;EACzB;EACA;EACA,cAAc,yBAAyB,mBAAmB,YAAY,YAAY;EACnF;;AAGH,SAAgB,4BAA4B,OAKf;CAC3B,MAAM,cAAc,MAAM,eAAe;CACzC,MAAM,YAAY,uBAAuB,MAAM,OAAO;CACtD,MAAM,SAAoC,EAAE;CAC5C,MAAM,iBAA4C,EAAE;CACpD,MAAM,OAAO,aAA2C,UAAyC;AAC/F,GAAC,YAAY,WAAW,iBAAiB,QAAQ,KAAK,MAAM;;AAG9D,MAAK,MAAM,eAAe,MAAM,WAAW,cAAc,EAAE,EAAE;EAC3D,MAAM,WAAW,UAAU,MAAM,cAAc,UAAU,gBAAgB,YAAY,YAAY;AACjG,MAAI,CAAC,UAAU;AACb,OAAI,aAAa,MAAM,aAAa,iBAAiB,GAAG,YAAY,YAAY,oBAAoB,CAAC;AACrG;;AAEF,MAAI,CAAC,SAAS,SAAS;AACrB,OAAI,aAAa,MAAM,aAAa,YAAY,GAAG,YAAY,YAAY,eAAe,CAAC;AAC3F;;EAEF,MAAM,aAAa,uBAAuB,YAAY,YAAY;AAClE,MAAI,YAAY,QAAQ,SAAS,cAAc,WAAW,QAAQ,SAAS,UAAW;EAEtF,MAAM,UAAU,WAAW,QAAQ;EACnC,MAAM,eAAe,yBAAyB,GAAG,YAAY,YAAY,GAAG,cAAc;AAC1F,MAAI,cAAc,gBAAgB,UAAU,CAAC,aAAa,gBAAgB,SAAS,MAAM,QAAQ,EAAE;AACjG,OAAI,aAAa,MAAM,aAAa,qBAAqB,GAAG,MAAM,QAAQ,yBAAyB,YAAY,YAAY,GAAG,CAAC;AAC/H;;EAEF,MAAM,eAAe,cAAc,YAAY,wBAAwB,MAAM,QAAQ,QAAQ;EAC7F,MAAM,gBAAgB,YAAY,SAAS;AAC3C,MAAI,YAAY,gBAAgB,YAAY,gBAAgB;AAC1D,OAAI,aAAa,MAAM,aAAa,oBAAoB,GAAG,YAAY,YAAY,YAAY,cAAc,oBAAoB,aAAa,GAAG,CAAC;AAClJ;;AAEF,MAAI,YAAY,uBAAuB,MAAO;EAC9C,MAAM,cAAc,yBAAyB;GAAE;GAAa,aAAa,YAAY;GAAa,CAAC;EACnG,MAAM,WAAW,cAAc,sBAAsB,SACjD,YAAY,QAAQ,eAAe,aAAa,sBAAsB,SAAS,WAAW,GAAG,CAAC,GAC9F;AACJ,MAAI,SAAS,MAAM,eAAe,WAAW,WAAW,SAAS,CAAE;EACnE,MAAM,qBAAqB,SAAS,MAAM,eAAe,WAAW,WAAW,aAAa,WAAW,WAAW,SAAS;AAC3H,MAAI,aAAa,MACf,aACA,qBAAqB,6BAA6B,sBAClD,qBACI,GAAG,YAAY,YAAY,6BAC3B,GAAG,YAAY,YAAY,oCAChC,CAAC;;AAEJ,QAAO;EAAE,IAAI,OAAO,WAAW;EAAG;EAAQ;EAAgB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","names":[],"sources":["../../../src/daemon/constants.ts"],"sourcesContent":["/**\n * Daemon Constants - Service labels, paths, and configuration values\n */\n\nimport os from 'node:os';\nimport path from 'node:path';\n\nconst SERVICE_BASE_LABEL = 'ai.xopc.gateway';\n\nexport function resolveGatewayLaunchAgentLabel(profile?: string): string {\n const normalized = normalizeProfile(profile);\n return normalized ? `${SERVICE_BASE_LABEL}.${normalized}` : SERVICE_BASE_LABEL;\n}\n\nexport function resolveGatewaySystemdServiceName(profile?: string): string {\n const normalized = normalizeProfile(profile);\n return normalized ? `xopc-gateway-${normalized}` : 'xopc-gateway';\n}\n\nexport function resolveGatewayWindowsTaskName(profile?: string): string {\n const normalized = normalizeProfile(profile);\n return normalized ? `xopc-gateway-${normalized}` : 'xopc-gateway';\n}\n\nexport function resolveLaunchAgentPlistPath(profile?: string): string {\n const label = resolveGatewayLaunchAgentLabel(profile);\n return path.join(os.homedir(), 'Library', 'LaunchAgents', `${label}.plist`);\n}\n\nexport function resolveSystemdUnitPath(profile?: string): string {\n const name = resolveGatewaySystemdServiceName(profile);\n return path.join(os.homedir(), '.config', 'systemd', 'user', `${name}.service`);\n}\n\nexport function formatGatewayServiceDescription(params?: {\n profile?: string;\n version?: string;\n}): string {\n const profile = normalizeProfile(params?.profile);\n const version = params?.version?.trim();\n const parts: string[] = [];\n if (profile) parts.push(`profile: ${profile}`);\n if (version) parts.push(`v${version}`);\n if (parts.length === 0) return 'xopc Gateway';\n return `xopc Gateway (${parts.join(', ')})`;\n}\n\nfunction normalizeProfile(profile?: string): string | null {\n const trimmed = profile?.trim();\n if (!trimmed || trimmed.toLowerCase() === 'default') return null;\n return trimmed;\n}\n\n// ─── Numeric Constants ───\n\nexport const DEFAULT_GATEWAY_PORT = 18790;\nexport const LAUNCH_AGENT_THROTTLE_INTERVAL_SECONDS = 10;\nexport const LAUNCH_AGENT_EXIT_TIMEOUT_SECONDS = 20;\nexport const SYSTEMD_RESTART_SEC = 5;\nexport const SYSTEMD_START_LIMIT_BURST = 5;\nexport const SYSTEMD_START_LIMIT_INTERVAL_SEC = 60;\nexport const SERVICE_VERSION_ENV_KEY = 'XOPC_SERVICE_VERSION';\n"],"mappings":";;;;;;AAOA,MAAM,qBAAqB;AAE3B,SAAgB,+BAA+B,SAA0B;CACvE,MAAM,aAAa,iBAAiB,QAAQ;AAC5C,QAAO,aAAa,GAAG,mBAAmB,GAAG,eAAe;;AAG9D,SAAgB,iCAAiC,SAA0B;CACzE,MAAM,aAAa,iBAAiB,QAAQ;AAC5C,QAAO,aAAa,gBAAgB,eAAe;;AAGrD,SAAgB,8BAA8B,SAA0B;CACtE,MAAM,aAAa,iBAAiB,QAAQ;AAC5C,QAAO,aAAa,gBAAgB,eAAe;;AAGrD,SAAgB,4BAA4B,SAA0B;CACpE,MAAM,QAAQ,+BAA+B,QAAQ;AACrD,QAAO,KAAK,KAAK,GAAG,SAAS,EAAE,WAAW,gBAAgB,GAAG,MAAM,QAAQ;;AAG7E,SAAgB,uBAAuB,SAA0B;CAC/D,MAAM,OAAO,iCAAiC,QAAQ;AACtD,QAAO,KAAK,KAAK,GAAG,SAAS,EAAE,WAAW,WAAW,QAAQ,GAAG,KAAK,UAAU;;AAGjF,SAAgB,gCAAgC,QAGrC;CACT,MAAM,UAAU,iBAAiB,QAAQ,QAAQ;CACjD,MAAM,UAAU,QAAQ,SAAS,MAAM;CACvC,MAAM,QAAkB,EAAE;AAC1B,KAAI,QAAS,OAAM,KAAK,YAAY,UAAU;AAC9C,KAAI,QAAS,OAAM,KAAK,IAAI,UAAU;AACtC,KAAI,MAAM,WAAW,EAAG,QAAO;AAC/B,QAAO,iBAAiB,MAAM,KAAK,KAAK,CAAC;;AAG3C,SAAS,iBAAiB,SAAiC;CACzD,MAAM,UAAU,SAAS,MAAM;AAC/B,KAAI,CAAC,WAAW,QAAQ,aAAa,KAAK,UAAW,QAAO;AAC5D,QAAO;;AAKT,MAAa,uBAAuB;AACpC,MAAa,yCAAyC;AACtD,MAAa,oCAAoC;AACjD,MAAa,sBAAsB;AACnC,MAAa,4BAA4B;AACzC,MAAa,mCAAmC;AAChD,MAAa,0BAA0B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"install-plan.js","names":[],"sources":["../../../src/daemon/install-plan.ts"],"sourcesContent":["/**\n * Install Plan Builder - Build gateway installation configuration\n *\n * Aligned with OpenClaw: adds XOPC_SERVICE_VERSION, StandardOut/ErrorPath,\n * supports binary runtime detection, and --foreground arg passing.\n */\n\nimport { existsSync } from 'node:fs';\nimport path from 'node:path';\nimport { homedir } from 'node:os';\nimport { fileURLToPath } from 'node:url';\nimport { createLogger } from '../utils/logger.js';\nimport { SERVICE_VERSION_ENV_KEY, formatGatewayServiceDescription } from './constants.js';\nimport { PACKAGE_VERSION } from '../package-version.js';\nimport type { GatewayServiceInstallArgs, GatewayServiceEnv } from './types.js';\n\nconst log = createLogger('InstallPlan');\n\nexport interface InstallPlan {\n programArguments: string[];\n workingDirectory: string;\n environment: Record<string, string>;\n description: string;\n}\n\n// ─── Path Resolution ───\n\nfunction resolveDefaultConfigPath(): string {\n const envConfig = process.env.XOPC_CONFIG || process.env.XOPC_CONFIG_PATH;\n if (envConfig) return envConfig;\n return path.join(homedir(), '.xopc', 'xopc.json');\n}\n\nfunction resolveDefaultWorkspace(): string {\n const envWorkspace = process.env.XOPC_WORKSPACE;\n if (envWorkspace) return envWorkspace;\n return path.join(homedir(), '.xopc', 'workspace');\n}\n\nfunction resolveLogDir(): string {\n return path.join(homedir(), '.xopc', 'logs');\n}\n\n// ─── Binary Detection ───\n\nfunction isSEABinary(): boolean {\n // Node.js SEA (Single Executable Application) detection\n return !!(process as NodeJS.Process & { pkg?: unknown }).pkg ||\n process.execPath.endsWith('xopc') ||\n process.execPath.endsWith('xopc.exe');\n}\n\nfunction resolveEntryPoint(): string {\n if (isSEABinary()) {\n return process.execPath;\n }\n // Must match package.json \"bin\" in built packages, while source/dev runs use bin.ts.\n // index.js only exports runCli and exits immediately when executed directly.\n const thisDir = path.dirname(fileURLToPath(import.meta.url));\n const sourceEntryPoint = path.join(thisDir, '..', 'cli', 'bin.ts');\n if (existsSync(sourceEntryPoint)) {\n return sourceEntryPoint;\n }\n return path.join(thisDir, '..', 'cli', 'bin.js');\n}\n\nfunction resolveServiceNodeArgs(): string[] {\n const serviceNodeArgs: string[] = [];\n const skipValueFlags = new Set(['-e', '--eval', '-p', '--print', '--test-name-pattern']);\n\n for (let index = 0; index < process.execArgv.length; index += 1) {\n const arg = process.execArgv[index];\n if (!arg) continue;\n if (arg.startsWith('--inspect') || arg.startsWith('--debug')) continue;\n if (skipValueFlags.has(arg)) {\n index += 1;\n continue;\n }\n if ([...skipValueFlags].some((flag) => arg.startsWith(`${flag}=`))) continue;\n serviceNodeArgs.push(arg);\n }\n\n return serviceNodeArgs;\n}\n\n// ─── Plan Builder ───\n\nexport function buildGatewayInstallPlan(params: {\n port: number;\n bind?: import('../config/schema.js').GatewayBindMode;\n token?: string;\n env?: GatewayServiceEnv;\n runtime?: 'node' | 'binary';\n version?: string;\n}): InstallPlan {\n const configPath = resolveDefaultConfigPath();\n const workspace = resolveDefaultWorkspace();\n const version = params.version || PACKAGE_VERSION;\n\n // Determine program + arguments\n let programArguments: string[];\n\n if (params.runtime === 'binary' || isSEABinary()) {\n // SEA binary: direct execution\n const binaryPath = process.execPath;\n programArguments = [binaryPath, 'gateway', '--foreground', '--port', params.port.toString()];\n } else {\n // Node.js runtime\n const nodeArgs = resolveServiceNodeArgs();\n const entryPoint = resolveEntryPoint();\n programArguments = [\n process.execPath,\n ...nodeArgs,\n entryPoint,\n 'gateway',\n '--foreground',\n '--port', params.port.toString(),\n ];\n }\n\n if (params.bind && params.bind !== 'loopback') {\n programArguments.push('--bind', params.bind);\n }\n\n // Build environment\n const environment: Record<string, string> = {\n XOPC_CONFIG: configPath,\n XOPC_WORKSPACE: workspace,\n XOPC_LOG_LEVEL: process.env.XOPC_LOG_LEVEL || 'info',\n XOPC_LOG_FILE: 'true',\n XOPC_LOG_CONSOLE: 'false',\n XOPC_LOG_DIR: resolveLogDir(),\n [SERVICE_VERSION_ENV_KEY]: version,\n XOPC_SERVICE_MARKER: '1',\n };\n\n if (params.token) {\n environment.XOPC_GATEWAY_TOKEN = params.token;\n }\n\n // Copy relevant API key env vars\n const relevantEnvVars = [\n 'OPENAI_API_KEY',\n 'ANTHROPIC_API_KEY',\n 'GOOGLE_API_KEY',\n 'BRAVE_API_KEY',\n 'DASHSCOPE_API_KEY',\n 'XOPC_LOG_RETENTION_DAYS',\n ];\n\n for (const key of relevantEnvVars) {\n if (process.env[key]) {\n environment[key] = process.env[key]!;\n }\n }\n\n // Add custom env from params (non-XOPC keys only; XOPC keys already handled)\n if (params.env) {\n for (const [key, value] of Object.entries(params.env)) {\n if (value !== undefined && !key.startsWith('XOPC_')) {\n environment[key] = value;\n }\n }\n }\n\n // Service description\n const profile = params.env?.XOPC_PROFILE?.trim() || undefined;\n const description = formatGatewayServiceDescription({ profile, version });\n\n log.info({\n programArguments: programArguments.slice(0, 3),\n envKeys: Object.keys(environment),\n version,\n }, 'Built gateway install plan');\n\n return {\n programArguments,\n workingDirectory: path.dirname(configPath),\n environment,\n description,\n };\n}\n\n// ─── Install Args Builder ───\n\nexport function buildGatewayInstallArgs(params: {\n port: number;\n bind?: import('../config/schema.js').GatewayBindMode;\n token?: string;\n env?: GatewayServiceEnv;\n runtime?: 'node' | 'binary';\n version?: string;\n}): GatewayServiceInstallArgs {\n const plan = buildGatewayInstallPlan(params);\n\n return {\n env: params.env || process.env,\n programArguments: plan.programArguments,\n workingDirectory: plan.workingDirectory,\n environment: plan.environment,\n description: plan.description,\n };\n}\n\n// ─── Validation ───\n\n/** Check if the program in an install plan still exists on disk */\nexport function validateInstallPlanProgram(programArguments: string[]): boolean {\n if (programArguments.length === 0) return false;\n const program = programArguments[0];\n return existsSync(program);\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"launchd.js","names":["resolvePlistPathFromConstants"],"sources":["../../../src/daemon/launchd.ts"],"sourcesContent":["/**\n * LaunchAgent Service - macOS user service management\n *\n * Aligned with OpenClaw launchd implementation:\n * - KeepAlive with SuccessfulExit=false\n * - ThrottleInterval for restart throttling\n * - ExitTimeOut for graceful shutdown\n * - launchctl bootstrap/bootout for modern service management\n * - launchctl kickstart -k for restart\n */\n\nimport { writeFile, mkdir, readFile, rm } from 'node:fs/promises';\nimport { existsSync } from 'node:fs';\nimport { spawn, spawnSync } from 'node:child_process';\nimport path from 'node:path';\nimport os from 'node:os';\nimport { createLogger } from '../utils/logger.js';\nimport {\n resolveGatewayLaunchAgentLabel,\n resolveLaunchAgentPlistPath as resolvePlistPathFromConstants,\n LAUNCH_AGENT_THROTTLE_INTERVAL_SECONDS,\n LAUNCH_AGENT_EXIT_TIMEOUT_SECONDS,\n} from './constants.js';\nimport type {\n GatewayService,\n GatewayServiceInstallArgs,\n GatewayServiceControlArgs,\n GatewayServiceEnvArgs,\n GatewayServiceRuntime,\n GatewayServiceCommandConfig,\n GatewayServiceEnv,\n GatewayServiceRestartResult,\n} from './types.js';\n\nconst log = createLogger('LaunchdService');\n\n// ─── Domain / Path Resolution ───\n\nfunction resolveGuiDomain(): string {\n const uid = typeof process.getuid === 'function' ? process.getuid() : 501;\n return `gui/${uid}`;\n}\n\nfunction resolveProfileFromEnv(env?: GatewayServiceEnv): string | undefined {\n return env?.XOPC_PROFILE?.trim() || undefined;\n}\n\nexport function resolveLaunchAgentPlistPath(env?: GatewayServiceEnv): string {\n return resolvePlistPathFromConstants(resolveProfileFromEnv(env));\n}\n\nfunction resolveLabelFromEnv(env?: GatewayServiceEnv): string {\n return resolveGatewayLaunchAgentLabel(resolveProfileFromEnv(env));\n}\n\nfunction resolveServiceTarget(env?: GatewayServiceEnv): string {\n return `${resolveGuiDomain()}/${resolveLabelFromEnv(env)}`;\n}\n\nfunction resolveLogDir(): string {\n return path.join(os.homedir(), '.xopc', 'logs');\n}\n\n// ─── Plist Generation ───\n\nfunction escapeXml(str: string): string {\n return str\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(/\"/g, '&quot;')\n .replace(/'/g, '&apos;');\n}\n\nexport function buildLaunchAgentPlist(params: {\n label: string;\n programArguments: string[];\n workingDirectory?: string;\n environment: Record<string, string>;\n stdoutPath?: string;\n stderrPath?: string;\n}): string {\n const envDict = Object.entries(params.environment)\n .map(([k, v]) => ` <key>${k}</key>\\n <string>${escapeXml(v)}</string>`)\n .join('\\n');\n\n const programArgs = params.programArguments\n .map((arg) => ` <string>${escapeXml(arg)}</string>`)\n .join('\\n');\n\n let plist = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n <key>Label</key>\n <string>${escapeXml(params.label)}</string>\n <key>ProgramArguments</key>\n <array>\n${programArgs}\n </array>\n`;\n\n if (params.workingDirectory) {\n plist += ` <key>WorkingDirectory</key>\n <string>${escapeXml(params.workingDirectory)}</string>\n`;\n }\n\n if (Object.keys(params.environment).length > 0) {\n plist += ` <key>EnvironmentVariables</key>\n <dict>\n${envDict}\n </dict>\n`;\n }\n\n if (params.stdoutPath) {\n plist += ` <key>StandardOutPath</key>\n <string>${escapeXml(params.stdoutPath)}</string>\n`;\n }\n\n if (params.stderrPath) {\n plist += ` <key>StandardErrorPath</key>\n <string>${escapeXml(params.stderrPath)}</string>\n`;\n }\n\n plist += ` <key>RunAtLoad</key>\n <true/>\n <key>KeepAlive</key>\n <true/>\n <key>ThrottleInterval</key>\n <integer>${LAUNCH_AGENT_THROTTLE_INTERVAL_SECONDS}</integer>\n <key>ExitTimeOut</key>\n <integer>${LAUNCH_AGENT_EXIT_TIMEOUT_SECONDS}</integer>\n <key>ProcessType</key>\n <string>Interactive</string>\n</dict>\n</plist>`;\n\n return plist;\n}\n\n// ─── launchctl Execution ───\n\ninterface LaunchctlResult {\n stdout: string;\n stderr: string;\n exitCode: number | null;\n}\n\nasync function launchctl(args: string[]): Promise<LaunchctlResult> {\n return new Promise<LaunchctlResult>((resolve, reject) => {\n const child = spawn('launchctl', args, {\n stdio: ['ignore', 'pipe', 'pipe'],\n });\n\n let stdout = '';\n let stderr = '';\n\n child.stdout?.on('data', (data) => { stdout += data.toString(); });\n child.stderr?.on('data', (data) => { stderr += data.toString(); });\n\n child.on('close', (code) => {\n resolve({ stdout, stderr, exitCode: code });\n });\n child.on('error', (err) => {\n reject(new Error(`launchctl spawn failed: ${err.message}`));\n });\n });\n}\n\nasync function launchctlExec(args: string[]): Promise<string> {\n const result = await launchctl(args);\n if (result.stderr.trim()) {\n log.debug({ stderr: result.stderr.trim(), args }, 'launchctl stderr');\n }\n return result.stdout;\n}\n\n// ─── Availability Check ───\n\nexport function isLaunchdAvailable(): boolean {\n if (process.platform !== 'darwin') return false;\n try {\n const result = spawnSync('launchctl', ['version'], {\n stdio: ['ignore', 'pipe', 'ignore'],\n timeout: 3000,\n });\n return result.status === 0;\n } catch {\n return false;\n }\n}\n\n// ─── Plist Parsing ───\n\nfunction parsePlistProgramArguments(content: string): string[] {\n const argsMatch = content.match(\n /<key>ProgramArguments<\\/key>\\s*<array>([\\s\\S]*?)<\\/array>/,\n );\n if (!argsMatch) return [];\n\n const programArgs: string[] = [];\n const stringMatches = argsMatch[1].matchAll(/<string>([\\s\\S]*?)<\\/string>/g);\n for (const m of stringMatches) {\n programArgs.push(unescapeXml(m[1]));\n }\n return programArgs;\n}\n\nfunction parsePlistEnvironment(content: string): Record<string, string> {\n const envMatch = content.match(\n /<key>EnvironmentVariables<\\/key>\\s*<dict>([\\s\\S]*?)<\\/dict>/,\n );\n if (!envMatch) return {};\n\n const environment: Record<string, string> = {};\n const pairs = envMatch[1].matchAll(\n /<key>([\\s\\S]*?)<\\/key>\\s*<string>([\\s\\S]*?)<\\/string>/g,\n );\n for (const pair of pairs) {\n environment[unescapeXml(pair[1])] = unescapeXml(pair[2]);\n }\n return environment;\n}\n\nfunction parsePlistStringValue(content: string, key: string): string | undefined {\n const regex = new RegExp(`<key>${key}</key>\\\\s*<string>([\\\\s\\\\S]*?)</string>`);\n const match = content.match(regex);\n return match ? unescapeXml(match[1]) : undefined;\n}\n\nfunction unescapeXml(str: string): string {\n return str\n .replace(/&amp;/g, '&')\n .replace(/&lt;/g, '<')\n .replace(/&gt;/g, '>')\n .replace(/&quot;/g, '\"')\n .replace(/&apos;/g, \"'\");\n}\n\n// ─── Service Implementation ───\n\nexport const launchdService: GatewayService = {\n label: resolveGatewayLaunchAgentLabel(),\n loadedText: 'LaunchAgent (loaded)',\n notLoadedText: 'LaunchAgent (not loaded)',\n\n async install(args: GatewayServiceInstallArgs): Promise<void> {\n const label = resolveLabelFromEnv(args.env);\n const plistPath = resolveLaunchAgentPlistPath(args.env);\n const logDir = resolveLogDir();\n\n // Ensure directories exist\n await mkdir(path.dirname(plistPath), { recursive: true });\n await mkdir(logDir, { recursive: true });\n\n // Build environment\n const environment: Record<string, string> = {};\n if (args.environment) {\n Object.assign(environment, args.environment);\n }\n\n // Build plist\n const plist = buildLaunchAgentPlist({\n label,\n programArguments: args.programArguments,\n workingDirectory: args.workingDirectory,\n environment,\n stdoutPath: path.join(logDir, 'gateway.log'),\n stderrPath: path.join(logDir, 'gateway.err.log'),\n });\n\n // Write plist file\n await writeFile(plistPath, plist, 'utf8');\n args.stdout?.write(`Written: ${plistPath}\\n`);\n\n // Bootstrap the service\n const domain = resolveGuiDomain();\n const result = await launchctl(['bootstrap', domain, plistPath]);\n if (result.exitCode !== 0 && result.exitCode !== 37) {\n // exit 37 = already loaded, acceptable\n const detail = result.stderr.trim() || result.stdout.trim();\n if (detail) {\n log.warn({ detail, exitCode: result.exitCode }, 'launchctl bootstrap warning');\n }\n }\n\n log.info({ label, plistPath }, 'LaunchAgent installed and bootstrapped');\n },\n\n async uninstall(args: GatewayServiceControlArgs): Promise<void> {\n const serviceTarget = resolveServiceTarget(args.env);\n const plistPath = resolveLaunchAgentPlistPath(args.env);\n\n // Bootout the service (stops + unloads)\n try {\n await launchctlExec(['bootout', serviceTarget]);\n } catch {\n // Ignore if not loaded\n }\n\n // Remove plist file\n if (existsSync(plistPath)) {\n await rm(plistPath);\n args.stdout?.write(`Removed: ${plistPath}\\n`);\n }\n\n log.info({ plistPath }, 'LaunchAgent uninstalled');\n },\n\n async stop(args: GatewayServiceControlArgs): Promise<void> {\n const serviceTarget = resolveServiceTarget(args.env);\n\n if (args.disable) {\n // Disable + bootout: service won't respawn\n const plistPath = resolveLaunchAgentPlistPath(args.env);\n try {\n await launchctlExec(['bootout', serviceTarget]);\n } catch {\n // Ignore\n }\n if (existsSync(plistPath)) {\n await rm(plistPath);\n }\n log.info('LaunchAgent stopped and disabled (plist removed)');\n } else {\n try {\n await launchctlExec(['bootout', serviceTarget]);\n } catch {\n // Service might not be running or loaded.\n log.debug('LaunchAgent bootout failed (may not be loaded)');\n }\n log.info('LaunchAgent stopped and unloaded');\n }\n },\n\n async restart(args: GatewayServiceControlArgs): Promise<GatewayServiceRestartResult> {\n const serviceTarget = resolveServiceTarget(args.env);\n\n // Use kickstart -k for reliable restart (kills current + starts new)\n const result = await launchctl(['kickstart', '-k', serviceTarget]);\n\n if (result.exitCode === 0) {\n log.info('LaunchAgent restarted via kickstart');\n return { outcome: 'restarted' };\n }\n\n // Fallback: bootout + bootstrap\n const plistPath = resolveLaunchAgentPlistPath(args.env);\n const domain = resolveGuiDomain();\n\n try {\n await launchctlExec(['bootout', serviceTarget]);\n } catch {\n // Ignore\n }\n\n const bootstrapResult = await launchctl(['bootstrap', domain, plistPath]);\n if (bootstrapResult.exitCode === 0 || bootstrapResult.exitCode === 37) {\n log.info('LaunchAgent restarted via bootout+bootstrap');\n return { outcome: 'restarted' };\n }\n\n throw new Error(\n `Failed to restart LaunchAgent: ${bootstrapResult.stderr.trim() || 'unknown error'}`,\n );\n },\n\n async isLoaded(args: GatewayServiceEnvArgs): Promise<boolean> {\n const serviceTarget = resolveServiceTarget(args.env);\n const result = await launchctl(['print', serviceTarget]);\n return result.exitCode === 0;\n },\n\n async readRuntime(env?: GatewayServiceEnv): Promise<GatewayServiceRuntime> {\n const serviceTarget = resolveServiceTarget(env);\n\n try {\n const result = await launchctl(['print', serviceTarget]);\n if (result.exitCode !== 0) {\n return { status: 'stopped' };\n }\n\n const output = result.stdout;\n\n // Parse PID\n let pid: number | undefined;\n const pidMatch = output.match(/pid\\s*=\\s*(\\d+)/);\n if (pidMatch) {\n const parsed = parseInt(pidMatch[1], 10);\n if (parsed > 0) pid = parsed;\n }\n\n // Parse last exit status\n let lastExitStatus: number | undefined;\n const exitMatch = output.match(/last exit code\\s*=\\s*(\\d+)/i);\n if (exitMatch) {\n lastExitStatus = parseInt(exitMatch[1], 10);\n }\n\n // Determine status from PID presence\n const status = pid ? 'running' : 'stopped';\n\n return { status, pid, lastExitStatus };\n } catch {\n return { status: 'unknown' };\n }\n },\n\n async readCommand(env?: GatewayServiceEnv): Promise<GatewayServiceCommandConfig | null> {\n const plistPath = resolveLaunchAgentPlistPath(env);\n if (!existsSync(plistPath)) return null;\n\n const content = await readFile(plistPath, 'utf8');\n\n const programArguments = parsePlistProgramArguments(content);\n if (programArguments.length === 0) return null;\n\n const environment = parsePlistEnvironment(content);\n const workingDirectory = parsePlistStringValue(content, 'WorkingDirectory');\n\n return {\n programArguments,\n workingDirectory,\n environment,\n sourcePath: plistPath,\n };\n },\n};\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"schtasks.js","names":[],"sources":["../../../src/daemon/schtasks.ts"],"sourcesContent":["/**\n * Scheduled Task Service - Windows service management via schtasks\n *\n * Aligned with OpenClaw Windows implementation:\n * - Task with ONLOGON trigger for persistence\n * - RepetitionInterval for keep-alive behavior\n * - Proper start/stop/restart lifecycle\n */\n\nimport { spawn, spawnSync } from 'node:child_process';\nimport { mkdirSync, readFileSync, writeFileSync, rmSync } from 'node:fs';\nimport path from 'node:path';\nimport os from 'node:os';\n\nimport { createLogger } from '../utils/logger.js';\nimport { resolveGatewayWindowsTaskName } from './constants.js';\nimport type {\n GatewayService,\n GatewayServiceInstallArgs,\n GatewayServiceControlArgs,\n GatewayServiceEnvArgs,\n GatewayServiceRuntime,\n GatewayServiceCommandConfig,\n GatewayServiceEnv,\n GatewayServiceRestartResult,\n} from './types.js';\n\nconst log = createLogger('SchtasksService');\n\n// ─── Resolution ───\n\nfunction resolveProfileFromEnv(env?: GatewayServiceEnv): string | undefined {\n return env?.XOPC_PROFILE?.trim() || undefined;\n}\n\nfunction resolveTaskName(env?: GatewayServiceEnv): string {\n return resolveGatewayWindowsTaskName(resolveProfileFromEnv(env));\n}\n\n// ─── Command Execution ───\n\ninterface SchtasksResult {\n stdout: string;\n stderr: string;\n exitCode: number | null;\n}\n\nasync function schtasks(args: string[]): Promise<SchtasksResult> {\n return new Promise<SchtasksResult>((resolve, reject) => {\n const child = spawn('schtasks', args, {\n stdio: ['ignore', 'pipe', 'pipe'],\n });\n\n let stdout = '';\n let stderr = '';\n\n child.stdout?.on('data', (data) => { stdout += data.toString(); });\n child.stderr?.on('data', (data) => { stderr += data.toString(); });\n\n child.on('close', (code) => {\n resolve({ stdout, stderr, exitCode: code });\n });\n child.on('error', (err) => {\n reject(new Error(`schtasks spawn failed: ${err.message}`));\n });\n });\n}\n\nasync function schtasksExec(args: string[]): Promise<string> {\n const result = await schtasks(args);\n if (result.exitCode !== 0) {\n const detail = result.stderr.trim() || result.stdout.trim();\n throw new Error(`schtasks failed (exit ${result.exitCode}): ${detail}`);\n }\n return result.stdout;\n}\n\n// ─── Environment Sidecar ───\n// schtasks does not natively support per-task environment variables.\n// We persist them in a JSON sidecar so readCommand can return them\n// for version-mismatch detection and other diagnostics.\n\nfunction resolveTaskDaemonDir(): string {\n return path.join(os.homedir(), '.xopc', 'daemon');\n}\n\nfunction resolveTaskEnvSidecarPath(taskName: string): string {\n return path.join(resolveTaskDaemonDir(), `${taskName}.env.json`);\n}\n\nfunction resolveTaskCommandSidecarPath(taskName: string): string {\n return path.join(resolveTaskDaemonDir(), `${taskName}.command.json`);\n}\n\nfunction resolveTaskWrapperPath(taskName: string): string {\n return path.join(resolveTaskDaemonDir(), `${taskName}.cmd`);\n}\n\nfunction resolveTaskXmlPath(taskName: string): string {\n return path.join(resolveTaskDaemonDir(), `${taskName}.xml`);\n}\n\nfunction escapeCmdSetValue(value: string): string {\n return value\n .replace(/\\^/g, '^^')\n .replace(/%/g, '%%')\n .replace(/\"/g, '^\"')\n .replace(/&/g, '^&')\n .replace(/</g, '^<')\n .replace(/>/g, '^>')\n .replace(/\\|/g, '^|');\n}\n\nfunction quoteCmdArg(value: string): string {\n return `\"${value.replace(/\"/g, '\\\\\"')}\"`;\n}\n\nfunction escapeXmlValue(value: string): string {\n return value\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(/\"/g, '&quot;')\n .replace(/'/g, '&apos;');\n}\n\nfunction buildTaskWrapperContent(params: {\n programArguments: string[];\n workingDirectory?: string;\n environment?: Record<string, string>;\n}): string {\n const lines = ['@echo off'];\n for (const [key, value] of Object.entries(params.environment ?? {})) {\n lines.push(`set \"${key}=${escapeCmdSetValue(value)}\"`);\n }\n if (params.workingDirectory) {\n lines.push(`cd /d ${quoteCmdArg(params.workingDirectory)}`);\n }\n lines.push(params.programArguments.map(quoteCmdArg).join(' '));\n return `${lines.join('\\r\\n')}\\r\\n`;\n}\n\nfunction buildTaskXml(params: {\n description: string;\n wrapperPath: string;\n workingDirectory?: string;\n}): string {\n const escapedDescription = escapeXmlValue(params.description);\n const escapedWrapperPath = escapeXmlValue(params.wrapperPath);\n const escapedWorkingDirectory = params.workingDirectory ? escapeXmlValue(params.workingDirectory) : '';\n const workingDirectoryXml = escapedWorkingDirectory\n ? `\\n <WorkingDirectory>${escapedWorkingDirectory}</WorkingDirectory>`\n : '';\n\n return `<?xml version=\"1.0\" encoding=\"UTF-16\"?>\n<Task version=\"1.4\" xmlns=\"http://schemas.microsoft.com/windows/2004/02/mit/task\">\n <RegistrationInfo>\n <Description>${escapedDescription}</Description>\n </RegistrationInfo>\n <Triggers>\n <LogonTrigger>\n <Enabled>true</Enabled>\n </LogonTrigger>\n </Triggers>\n <Principals>\n <Principal id=\"Author\">\n <LogonType>InteractiveToken</LogonType>\n <RunLevel>LeastPrivilege</RunLevel>\n </Principal>\n </Principals>\n <Settings>\n <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>\n <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>\n <StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>\n <AllowHardTerminate>true</AllowHardTerminate>\n <StartWhenAvailable>true</StartWhenAvailable>\n <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>\n <IdleSettings>\n <StopOnIdleEnd>false</StopOnIdleEnd>\n <RestartOnIdle>false</RestartOnIdle>\n </IdleSettings>\n <AllowStartOnDemand>true</AllowStartOnDemand>\n <Enabled>true</Enabled>\n <Hidden>false</Hidden>\n <RunOnlyIfIdle>false</RunOnlyIfIdle>\n <WakeToRun>false</WakeToRun>\n <ExecutionTimeLimit>PT0S</ExecutionTimeLimit>\n <Priority>7</Priority>\n <RestartOnFailure>\n <Interval>PT1M</Interval>\n <Count>999</Count>\n </RestartOnFailure>\n </Settings>\n <Actions Context=\"Author\">\n <Exec>\n <Command>${escapedWrapperPath}</Command>${workingDirectoryXml}\n </Exec>\n </Actions>\n</Task>\n`;\n}\n\nfunction writeTaskEnvSidecar(taskName: string, environment: Record<string, string>): void {\n const sidecarPath = resolveTaskEnvSidecarPath(taskName);\n try {\n mkdirSync(path.dirname(sidecarPath), { recursive: true });\n writeFileSync(sidecarPath, JSON.stringify(environment, null, 2), 'utf8');\n } catch (err) {\n log.warn({ err, sidecarPath }, 'Failed to write task environment sidecar');\n }\n}\n\nfunction readTaskEnvSidecar(taskName: string): Record<string, string> | undefined {\n const sidecarPath = resolveTaskEnvSidecarPath(taskName);\n try {\n const raw = readFileSync(sidecarPath, 'utf8');\n const parsed = JSON.parse(raw);\n if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {\n return parsed as Record<string, string>;\n }\n } catch {\n // Sidecar missing or corrupt — not fatal\n }\n return undefined;\n}\n\nfunction writeTaskCommandSidecar(taskName: string, args: GatewayServiceInstallArgs): void {\n const sidecarPath = resolveTaskCommandSidecarPath(taskName);\n try {\n writeFileSync(sidecarPath, JSON.stringify({\n programArguments: args.programArguments,\n workingDirectory: args.workingDirectory,\n }, null, 2), 'utf8');\n } catch (err) {\n log.warn({ err, sidecarPath }, 'Failed to write task command sidecar');\n }\n}\n\nfunction readTaskCommandSidecar(taskName: string): Pick<GatewayServiceCommandConfig, 'programArguments' | 'workingDirectory'> | null {\n const sidecarPath = resolveTaskCommandSidecarPath(taskName);\n try {\n const raw = readFileSync(sidecarPath, 'utf8');\n const parsed = JSON.parse(raw);\n if (\n parsed\n && typeof parsed === 'object'\n && Array.isArray(parsed.programArguments)\n && parsed.programArguments.every((arg: unknown) => typeof arg === 'string')\n ) {\n return {\n programArguments: parsed.programArguments,\n workingDirectory: typeof parsed.workingDirectory === 'string' ? parsed.workingDirectory : undefined,\n };\n }\n } catch {\n // Sidecar missing or corrupt — not fatal\n }\n return null;\n}\n\nfunction writeTaskSupportFiles(taskName: string, args: GatewayServiceInstallArgs): {\n wrapperPath: string;\n xmlPath: string;\n} {\n const wrapperPath = resolveTaskWrapperPath(taskName);\n const xmlPath = resolveTaskXmlPath(taskName);\n mkdirSync(resolveTaskDaemonDir(), { recursive: true });\n writeFileSync(wrapperPath, buildTaskWrapperContent({\n programArguments: args.programArguments,\n workingDirectory: args.workingDirectory,\n environment: args.environment,\n }), 'utf8');\n writeFileSync(xmlPath, buildTaskXml({\n description: args.description || 'xopc Gateway Service',\n wrapperPath,\n workingDirectory: args.workingDirectory,\n }), 'utf16le');\n writeTaskEnvSidecar(taskName, args.environment ?? {});\n writeTaskCommandSidecar(taskName, args);\n return { wrapperPath, xmlPath };\n}\n\nfunction removeTaskSupportFiles(taskName: string): void {\n for (const filePath of [\n resolveTaskEnvSidecarPath(taskName),\n resolveTaskCommandSidecarPath(taskName),\n resolveTaskWrapperPath(taskName),\n resolveTaskXmlPath(taskName),\n ]) {\n try {\n rmSync(filePath, { force: true });\n } catch {\n // Best-effort\n }\n }\n}\n\nexport const schtasksTestInternals = {\n buildTaskWrapperContent,\n buildTaskXml,\n escapeCmdSetValue,\n quoteCmdArg,\n resolveTaskCommandSidecarPath,\n resolveTaskWrapperPath,\n resolveTaskXmlPath,\n};\n\n// ─── Availability Check ───\n\nexport function isSchtasksAvailable(): boolean {\n if (process.platform !== 'win32') return false;\n try {\n const result = spawnSync('schtasks', ['/query', '/?'], {\n stdio: ['ignore', 'ignore', 'ignore'],\n timeout: 3000,\n });\n return result.status === 0;\n } catch {\n return false;\n }\n}\n\n// ─── Service Implementation ───\n\nexport const schtasksService: GatewayService = {\n label: resolveGatewayWindowsTaskName(),\n loadedText: 'Scheduled Task (installed)',\n notLoadedText: 'Scheduled Task (not installed)',\n\n async install(args: GatewayServiceInstallArgs): Promise<void> {\n const taskName = resolveTaskName(args.env);\n\n // Delete existing task first (ignore errors)\n try {\n await schtasks(['/delete', '/tn', taskName, '/f']);\n } catch {\n // Ignore\n }\n\n const { wrapperPath, xmlPath } = writeTaskSupportFiles(taskName, args);\n await schtasksExec(['/create', '/tn', taskName, '/xml', xmlPath, '/f']);\n\n args.stdout?.write(`Created scheduled task: ${taskName}\\n`);\n args.stdout?.write(` Wrapper: ${wrapperPath}\\n`);\n args.stdout?.write(` Command: ${args.programArguments.join(' ')}\\n`);\n\n log.info({ taskName, wrapperPath }, 'Scheduled task installed');\n },\n\n async uninstall(args: GatewayServiceControlArgs): Promise<void> {\n const taskName = resolveTaskName(args.env);\n\n // Stop if running\n try {\n await schtasks(['/end', '/tn', taskName]);\n } catch {\n // Ignore\n }\n\n // Delete task\n try {\n await schtasksExec(['/delete', '/tn', taskName, '/f']);\n args.stdout?.write(`Deleted scheduled task: ${taskName}\\n`);\n } catch (err) {\n log.debug({ err }, 'Uninstall task not found');\n }\n\n // Clean up support files\n removeTaskSupportFiles(taskName);\n\n log.info({ taskName }, 'Scheduled task uninstalled');\n },\n\n async stop(args: GatewayServiceControlArgs): Promise<void> {\n const taskName = resolveTaskName(args.env);\n\n try {\n await schtasksExec(['/end', '/tn', taskName]);\n } catch {\n log.debug('Task not running');\n }\n\n if (args.disable) {\n try {\n await schtasksExec(['/change', '/tn', taskName, '/disable']);\n } catch {\n // Ignore\n }\n }\n\n log.info('Scheduled task stopped');\n },\n\n async restart(args: GatewayServiceControlArgs): Promise<GatewayServiceRestartResult> {\n const taskName = resolveTaskName(args.env);\n\n // End current run\n try {\n await schtasks(['/end', '/tn', taskName]);\n } catch {\n // Ignore\n }\n\n // Small delay for process cleanup\n await new Promise((resolve) => setTimeout(resolve, 500));\n\n // Start new run\n await schtasksExec(['/run', '/tn', taskName]);\n\n log.info('Scheduled task restarted');\n return { outcome: 'restarted' };\n },\n\n async isLoaded(args: GatewayServiceEnvArgs): Promise<boolean> {\n const taskName = resolveTaskName(args.env);\n const result = await schtasks(['/query', '/tn', taskName]);\n return result.exitCode === 0;\n },\n\n async readRuntime(env?: GatewayServiceEnv): Promise<GatewayServiceRuntime> {\n const taskName = resolveTaskName(env);\n\n try {\n const result = await schtasks(['/query', '/tn', taskName, '/fo', 'list', '/v']);\n if (result.exitCode !== 0) {\n return { status: 'unknown' };\n }\n\n const output = result.stdout;\n let status: 'running' | 'stopped' | 'unknown' = 'unknown';\n\n const statusMatch = output.match(/Status:\\s*(\\w+)/i);\n if (statusMatch) {\n const statusStr = statusMatch[1].toLowerCase();\n if (statusStr === 'running') {\n status = 'running';\n } else if (statusStr === 'ready' || statusStr === 'disabled') {\n status = 'stopped';\n }\n }\n\n // Parse last result code\n let lastExitStatus: number | undefined;\n const resultMatch = output.match(/Last Result:\\s*(\\d+)/i);\n if (resultMatch) {\n lastExitStatus = parseInt(resultMatch[1], 10);\n }\n\n return { status, lastExitStatus };\n } catch {\n return { status: 'unknown' };\n }\n },\n\n async readCommand(env?: GatewayServiceEnv): Promise<GatewayServiceCommandConfig | null> {\n const taskName = resolveTaskName(env);\n\n try {\n const result = await schtasks(['/query', '/tn', taskName, '/fo', 'list', '/v']);\n if (result.exitCode !== 0) return null;\n\n const commandSidecar = readTaskCommandSidecar(taskName);\n if (!commandSidecar) return null;\n\n return {\n programArguments: commandSidecar.programArguments,\n workingDirectory: commandSidecar.workingDirectory,\n environment: readTaskEnvSidecar(taskName),\n };\n } catch {\n return null;\n }\n },\n};\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"service-audit.js","names":[],"sources":["../../../src/daemon/service-audit.ts"],"sourcesContent":["/**\n * Service Audit - Validate installed service configuration against current state\n *\n * Checks for:\n * - Version mismatch (installed vs current)\n * - Token drift (service token vs config token)\n * - Missing program binary\n * - Port mismatch\n * - Platform-specific configuration issues\n */\n\nimport { existsSync } from 'node:fs';\nimport { readFile } from 'node:fs/promises';\nimport { PACKAGE_VERSION } from '../package-version.js';\nimport { SERVICE_VERSION_ENV_KEY } from './constants.js';\nimport type { GatewayService, GatewayServiceCommandConfig, GatewayServiceEnv } from './types.js';\n\n// ─── Types ───\n\nexport type ServiceAuditCode =\n | 'version-mismatch'\n | 'token-drift'\n | 'missing-program'\n | 'temporary-program'\n | 'port-mismatch'\n | 'launchd-keep-alive'\n | 'launchd-run-at-load';\n\nexport interface ServiceAuditIssue {\n code: ServiceAuditCode;\n message: string;\n detail?: string;\n level?: 'recommended' | 'aggressive';\n}\n\nexport interface ServiceAuditResult {\n ok: boolean;\n issues: ServiceAuditIssue[];\n}\n\n// ─── Main Audit Function ───\n\n/** Audit installed service configuration against current config and version */\nexport async function auditGatewayServiceConfig(params: {\n service: GatewayService;\n env?: GatewayServiceEnv;\n expectedToken?: string;\n expectedPort?: number;\n currentVersion?: string;\n}): Promise<ServiceAuditResult> {\n const {\n service,\n env = process.env,\n expectedToken,\n expectedPort,\n currentVersion = PACKAGE_VERSION,\n } = params;\n\n const issues: ServiceAuditIssue[] = [];\n\n // Read command from installed service\n const command = await service.readCommand(env);\n if (!command) {\n issues.push({\n code: 'missing-program',\n message: 'Service command configuration is not readable.',\n level: 'recommended',\n });\n return { ok: false, issues };\n }\n\n // Check program exists\n auditProgramExists(command, issues);\n\n // Check version mismatch\n auditVersionMismatch(command, currentVersion, issues);\n\n // Check token drift\n if (expectedToken) {\n const tokenIssue = checkTokenDrift({\n serviceToken: command.environment?.[`XOPC_GATEWAY_TOKEN`],\n configToken: expectedToken,\n });\n if (tokenIssue) {\n issues.push(tokenIssue);\n }\n }\n\n // Check port mismatch\n if (expectedPort) {\n auditPortMismatch(command, expectedPort, issues);\n }\n\n // Platform-specific checks\n if (process.platform === 'darwin' && command.sourcePath) {\n await auditLaunchdPlist(command.sourcePath, issues);\n }\n\n return { ok: issues.length === 0, issues };\n}\n\n// ─── Individual Checks ───\n\nfunction auditProgramExists(command: GatewayServiceCommandConfig, issues: ServiceAuditIssue[]): void {\n if (command.programArguments.length === 0) {\n issues.push({\n code: 'missing-program',\n message: 'Service has no program arguments configured.',\n level: 'recommended',\n });\n return;\n }\n\n const program = command.programArguments[0];\n if (!existsSync(program)) {\n issues.push({\n code: 'missing-program',\n message: `Service program not found on disk: ${program}`,\n detail: program,\n level: 'recommended',\n });\n }\n}\n\nfunction auditVersionMismatch(\n command: GatewayServiceCommandConfig,\n currentVersion: string,\n issues: ServiceAuditIssue[],\n): void {\n const serviceVersion = command.environment?.[SERVICE_VERSION_ENV_KEY];\n if (!serviceVersion) return;\n\n if (serviceVersion !== currentVersion) {\n issues.push({\n code: 'version-mismatch',\n message: `Service version ${serviceVersion} does not match current ${currentVersion}.`,\n detail: `${serviceVersion} → ${currentVersion}`,\n level: 'recommended',\n });\n }\n}\n\nfunction auditPortMismatch(\n command: GatewayServiceCommandConfig,\n expectedPort: number,\n issues: ServiceAuditIssue[],\n): void {\n const servicePort = readCommandPort(command.programArguments);\n if (servicePort === undefined || servicePort === expectedPort) return;\n\n issues.push({\n code: 'port-mismatch',\n message: `Service port ${servicePort} does not match config port ${expectedPort}.`,\n detail: `${servicePort} → ${expectedPort}`,\n level: 'recommended',\n });\n}\n\nasync function auditLaunchdPlist(plistPath: string, issues: ServiceAuditIssue[]): Promise<void> {\n try {\n const content = await readFile(plistPath, 'utf8');\n\n const hasRunAtLoad = /<key>RunAtLoad<\\/key>\\s*<true\\s*\\/>/i.test(content);\n const hasKeepAlive = /<key>KeepAlive<\\/key>/i.test(content);\n\n if (!hasRunAtLoad) {\n issues.push({\n code: 'launchd-run-at-load',\n message: 'LaunchAgent is missing RunAtLoad=true.',\n detail: plistPath,\n level: 'recommended',\n });\n }\n\n if (!hasKeepAlive) {\n issues.push({\n code: 'launchd-keep-alive',\n message: 'LaunchAgent is missing KeepAlive configuration.',\n detail: plistPath,\n level: 'recommended',\n });\n }\n } catch {\n // File not readable; skip plist-specific checks\n }\n}\n\n// ─── Token Drift ───\n\n/**\n * Check if the service's embedded token differs from the config file token.\n * Returns an issue if drift is detected.\n */\nexport function checkTokenDrift(params: {\n serviceToken: string | undefined;\n configToken: string | undefined;\n}): ServiceAuditIssue | null {\n const serviceToken = params.serviceToken?.trim();\n const configToken = params.configToken?.trim();\n\n // No service token = no drift (token loaded at runtime)\n if (!serviceToken) return null;\n\n // No config token = can't compare\n if (!configToken) return null;\n\n if (serviceToken !== configToken) {\n return {\n code: 'token-drift',\n message: 'Config token differs from service token. The daemon will use the old token after restart.',\n detail: 'Run `xopc gateway service install --force` to sync.',\n level: 'recommended',\n };\n }\n\n return null;\n}\n\n// ─── Helpers ───\n\nfunction readCommandPort(programArguments: string[]): number | undefined {\n for (let i = 0; i < programArguments.length; i++) {\n const arg = programArguments[i];\n if (arg === '--port' && i + 1 < programArguments.length) {\n const port = parseInt(programArguments[i + 1], 10);\n return Number.isFinite(port) && port > 0 && port <= 65535 ? port : undefined;\n }\n if (arg.startsWith('--port=')) {\n const port = parseInt(arg.slice('--port='.length), 10);\n return Number.isFinite(port) && port > 0 && port <= 65535 ? port : undefined;\n }\n }\n return undefined;\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"service.js","names":[],"sources":["../../../src/daemon/service.ts"],"sourcesContent":["/**\n * Daemon Service Abstraction - Cross-platform service management\n *\n * Provides:\n * - Platform-specific service resolution (launchd / systemd / schtasks)\n * - Availability detection\n * - Unified start logic with repair detection\n */\n\nimport { existsSync } from 'node:fs';\nimport { createLogger } from '../utils/logger.js';\nimport { PACKAGE_VERSION } from '../package-version.js';\nimport { SERVICE_VERSION_ENV_KEY } from './constants.js';\nimport type {\n GatewayService,\n GatewayServiceEnv,\n GatewayServiceState,\n GatewayServiceStartResult,\n GatewayServiceStartRepairIssue,\n} from './types.js';\n\nconst log = createLogger('DaemonService');\n\nlet _isDaemonAvailable: boolean | null = null;\n\n// ─── Service Resolution ───\n\nexport async function resolveGatewayService(): Promise<GatewayService> {\n const platform = process.platform;\n\n if (platform === 'darwin') {\n const { launchdService } = await import('./launchd.js');\n return launchdService;\n }\n\n if (platform === 'linux') {\n const { systemdService } = await import('./systemd.js');\n return systemdService;\n }\n\n if (platform === 'win32') {\n const { schtasksService } = await import('./schtasks.js');\n return schtasksService;\n }\n\n throw new Error(`Unsupported platform for daemon services: ${platform}`);\n}\n\n// ─── Availability ───\n\nexport async function isDaemonAvailableAsync(): Promise<boolean> {\n if (_isDaemonAvailable !== null) {\n return _isDaemonAvailable;\n }\n\n const platform = process.platform;\n\n try {\n if (platform === 'darwin') {\n const { isLaunchdAvailable } = await import('./launchd.js');\n _isDaemonAvailable = isLaunchdAvailable();\n } else if (platform === 'linux') {\n const { isSystemdAvailable } = await import('./systemd.js');\n _isDaemonAvailable = isSystemdAvailable();\n } else if (platform === 'win32') {\n const { isSchtasksAvailable } = await import('./schtasks.js');\n _isDaemonAvailable = isSchtasksAvailable();\n } else {\n _isDaemonAvailable = false;\n }\n } catch (err) {\n log.error({ err }, 'Failed to check daemon availability');\n _isDaemonAvailable = false;\n }\n\n return _isDaemonAvailable!;\n}\n\nexport function isDaemonAvailable(): boolean {\n const platform = process.platform;\n return platform === 'linux' || platform === 'darwin' || platform === 'win32';\n}\n\n// ─── Start with Repair Detection ───\n\nexport async function startGatewayService(params: {\n service: GatewayService;\n env?: GatewayServiceEnv;\n}): Promise<GatewayServiceStartResult> {\n const { service, env } = params;\n const serviceEnv = env || process.env;\n\n const initialState = await gatherServiceState(service, serviceEnv);\n if (!initialState.installed) {\n return { outcome: 'missing-install', state: initialState };\n }\n\n // Read command to check for repair issues. On macOS, a stopped LaunchAgent can\n // be installed on disk but not loaded into launchd yet.\n const issues = detectStartRepairIssues(initialState.command);\n\n if (issues.length > 0) {\n return { outcome: 'repair-required', state: initialState, issues };\n }\n\n // Start via restart (which handles both cold-start and running scenarios)\n const restartResult = await service.restart({ env: serviceEnv });\n const state = await gatherServiceState(service, serviceEnv);\n\n return {\n outcome: restartResult.outcome === 'restarted' ? 'started' : 'scheduled',\n state,\n };\n}\n\nfunction detectStartRepairIssues(\n command: { programArguments: string[]; environment?: Record<string, string> } | null,\n): GatewayServiceStartRepairIssue[] {\n const issues: GatewayServiceStartRepairIssue[] = [];\n\n if (!command || command.programArguments.length === 0) {\n issues.push({ code: 'missing-program', message: 'Service command configuration is missing' });\n return issues;\n }\n\n const program = command.programArguments[0];\n\n // Check if program exists on disk\n if (!existsSync(program)) {\n issues.push({\n code: 'missing-program',\n message: `Service program not found: ${program}`,\n });\n return issues;\n }\n\n // Check version mismatch\n const serviceVersion = command.environment?.[SERVICE_VERSION_ENV_KEY];\n if (serviceVersion && serviceVersion !== PACKAGE_VERSION) {\n issues.push({\n code: 'version-mismatch',\n message: `Service version ${serviceVersion} does not match current ${PACKAGE_VERSION}`,\n });\n }\n\n return issues;\n}\n\n// ─── State Gathering ───\n\nasync function gatherServiceState(\n service: GatewayService,\n env: GatewayServiceEnv,\n): Promise<GatewayServiceState> {\n const [loaded, runtime, command] = await Promise.all([\n service.isLoaded({ env }),\n service.readRuntime(env),\n service.readCommand(env),\n ]);\n\n return {\n installed: loaded || command !== null,\n loaded,\n running: runtime.status === 'running',\n env,\n command,\n runtime,\n };\n}\n\n// ─── Display Helpers ───\n\nexport function getPlatformName(): string {\n switch (process.platform) {\n case 'darwin':\n return 'macOS (launchd)';\n case 'linux':\n return 'Linux (systemd)';\n case 'win32':\n return 'Windows (Task Scheduler)';\n default:\n return process.platform;\n }\n}\n\nexport function getServiceLabel(): string {\n return 'xopc-gateway';\n}\n\n/** Describe what a restart operation will do on the current platform */\nexport function describeGatewayServiceRestart(): string {\n switch (process.platform) {\n case 'darwin':\n return 'launchctl kickstart -k (LaunchAgent restart)';\n case 'linux':\n return 'systemctl --user restart (systemd restart)';\n case 'win32':\n return 'schtasks /end + /run (Scheduled Task restart)';\n default:\n return 'platform restart';\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"systemd.js","names":["resolveUnitPathFromConstants","constants"],"sources":["../../../src/daemon/systemd.ts"],"sourcesContent":["/**\n * Systemd Service - Linux user service management\n *\n * Aligned with OpenClaw systemd implementation:\n * - Restart=always with RestartPreventExitStatus=78\n * - StartLimitBurst/StartLimitIntervalSec for rate limiting\n * - KillMode=control-group\n * - network-online.target dependency\n */\n\nimport { writeFile, mkdir, readFile, rm, access, constants } from 'node:fs/promises';\nimport { existsSync } from 'node:fs';\nimport { spawn, spawnSync } from 'node:child_process';\nimport path from 'node:path';\nimport os from 'node:os';\nimport { createLogger } from '../utils/logger.js';\nimport {\n resolveGatewaySystemdServiceName,\n resolveSystemdUnitPath as resolveUnitPathFromConstants,\n SYSTEMD_RESTART_SEC,\n SYSTEMD_START_LIMIT_BURST,\n SYSTEMD_START_LIMIT_INTERVAL_SEC,\n} from './constants.js';\nimport type {\n GatewayService,\n GatewayServiceInstallArgs,\n GatewayServiceControlArgs,\n GatewayServiceEnvArgs,\n GatewayServiceRuntime,\n GatewayServiceCommandConfig,\n GatewayServiceEnv,\n GatewayServiceRestartResult,\n} from './types.js';\n\nconst log = createLogger('SystemdService');\n\n// ─── Path Resolution ───\n\nfunction resolveProfileFromEnv(env?: GatewayServiceEnv): string | undefined {\n return env?.XOPC_PROFILE?.trim() || undefined;\n}\n\nfunction resolveServiceName(env?: GatewayServiceEnv): string {\n return resolveGatewaySystemdServiceName(resolveProfileFromEnv(env));\n}\n\nexport function resolveSystemdUserUnitPath(env?: GatewayServiceEnv): string {\n return resolveUnitPathFromConstants(resolveProfileFromEnv(env));\n}\n\n// ─── Unit File Generation ───\n\nfunction escapeSystemdUnitValue(value: string): string {\n return value\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/\"/g, '\\\\\"')\n .replace(/%/g, '%%');\n}\n\nfunction quoteSystemdExecArg(arg: string): string {\n const escapedArg = escapeSystemdUnitValue(arg);\n if (/^[A-Za-z0-9_@%+=:,./-]+$/.test(arg)) {\n return escapedArg;\n }\n return `\"${escapedArg}\"`;\n}\n\nexport function buildSystemdUnit(params: {\n description: string;\n programArguments: string[];\n workingDirectory?: string;\n environment: Record<string, string>;\n}): string {\n const envLines = Object.entries(params.environment)\n .map(([key, value]) => `Environment=\"${key}=${escapeSystemdUnitValue(value)}\"`)\n .join('\\n');\n\n const execStart = params.programArguments.map(quoteSystemdExecArg).join(' ');\n\n let unit = `[Unit]\nDescription=${params.description}\nAfter=network-online.target\nWants=network-online.target\n\n[Service]\nType=simple\nExecStart=${execStart}\n`;\n\n if (params.workingDirectory) {\n unit += `WorkingDirectory=${params.workingDirectory}\\n`;\n }\n\n if (envLines) {\n unit += `${envLines}\\n`;\n }\n\n unit += `Restart=always\nRestartSec=${SYSTEMD_RESTART_SEC}\nRestartPreventExitStatus=78\nKillMode=control-group\nStartLimitBurst=${SYSTEMD_START_LIMIT_BURST}\nStartLimitIntervalSec=${SYSTEMD_START_LIMIT_INTERVAL_SEC}\n\n[Install]\nWantedBy=default.target\n`;\n\n return unit;\n}\n\n// ─── systemctl Execution ───\n\ninterface SystemctlResult {\n stdout: string;\n stderr: string;\n exitCode: number | null;\n}\n\nasync function systemctl(args: string[]): Promise<SystemctlResult> {\n return new Promise<SystemctlResult>((resolve, reject) => {\n const child = spawn('systemctl', ['--user', ...args], {\n stdio: ['ignore', 'pipe', 'pipe'],\n });\n\n let stdout = '';\n let stderr = '';\n\n child.stdout?.on('data', (data) => { stdout += data.toString(); });\n child.stderr?.on('data', (data) => { stderr += data.toString(); });\n\n child.on('close', (code) => {\n resolve({ stdout, stderr, exitCode: code });\n });\n child.on('error', (err) => {\n reject(new Error(`systemctl spawn failed: ${err.message}`));\n });\n });\n}\n\nasync function systemctlExec(args: string[]): Promise<void> {\n const result = await systemctl(args);\n if (result.exitCode !== 0) {\n const detail = result.stderr.trim() || result.stdout.trim();\n throw new Error(`systemctl ${args.join(' ')} failed (exit ${result.exitCode}): ${detail}`);\n }\n}\n\n// ─── Availability Check ───\n\nexport function isSystemdAvailable(): boolean {\n if (process.platform !== 'linux') return false;\n try {\n const result = spawnSync('systemctl', ['--user', '--version'], {\n stdio: ['ignore', 'pipe', 'ignore'],\n timeout: 3000,\n });\n return result.status === 0;\n } catch {\n return false;\n }\n}\n\n// ─── Linger Management ───\n\nfunction getUsername(): string {\n return os.userInfo().username;\n}\n\nasync function isLingerEnabled(): Promise<boolean> {\n try {\n const lingerPath = `/var/lib/systemd/linger/${getUsername()}`;\n await access(lingerPath, constants.F_OK);\n return true;\n } catch {\n return false;\n }\n}\n\nexport async function enableLinger(): Promise<void> {\n if (!isSystemdAvailable()) {\n throw new Error('systemd is not available');\n }\n\n const alreadyEnabled = await isLingerEnabled();\n if (alreadyEnabled) {\n log.info('User lingering already enabled');\n return;\n }\n\n const result = spawnSync('loginctl', ['enable-linger', getUsername()], {\n stdio: ['ignore', 'pipe', 'pipe'],\n timeout: 5000,\n });\n\n if (result.status !== 0) {\n log.warn(\n { command: `loginctl enable-linger ${getUsername()}` },\n 'Failed to enable systemd user linger; gateway may not survive logout',\n );\n throw new Error(\n `Failed to enable user lingering. Run: sudo loginctl enable-linger ${getUsername()}`,\n );\n }\n\n log.info('Enabled user lingering');\n}\n\n// ─── Unit File Parsing ───\n\nfunction parseUnitEnvironment(content: string): Record<string, string> {\n const environment: Record<string, string> = {};\n const matches = content.matchAll(/^Environment=\"([^=]+)=(.*)\"/gm);\n for (const match of matches) {\n environment[match[1]] = match[2];\n }\n return environment;\n}\n\n// ─── Service Implementation ───\n\nexport const systemdService: GatewayService = {\n label: resolveGatewaySystemdServiceName(),\n loadedText: 'systemd (enabled)',\n notLoadedText: 'systemd (not installed)',\n\n async install(args: GatewayServiceInstallArgs): Promise<void> {\n const serviceName = resolveServiceName(args.env);\n const unitPath = resolveSystemdUserUnitPath(args.env);\n\n // Ensure directory exists\n await mkdir(path.dirname(unitPath), { recursive: true });\n\n // Build environment\n const environment: Record<string, string> = {};\n if (args.environment) {\n Object.assign(environment, args.environment);\n }\n\n // Build unit content\n const description = args.description || 'xopc Gateway Service';\n const unit = buildSystemdUnit({\n description,\n programArguments: args.programArguments,\n workingDirectory: args.workingDirectory,\n environment,\n });\n\n // Write unit file\n await writeFile(unitPath, unit, 'utf8');\n args.stdout?.write(`Written: ${unitPath}\\n`);\n\n // Reload systemd daemon\n await systemctlExec(['daemon-reload']);\n\n // Enable service\n await systemctlExec(['enable', serviceName]);\n\n try {\n await enableLinger();\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n args.stdout?.write(`Warning: ${message}\\n`);\n log.warn({ err }, 'Systemd user linger is not enabled; gateway may stop after logout');\n }\n\n log.info({ serviceName, unitPath }, 'Systemd service installed and enabled');\n },\n\n async uninstall(args: GatewayServiceControlArgs): Promise<void> {\n const serviceName = resolveServiceName(args.env);\n const unitPath = resolveSystemdUserUnitPath(args.env);\n\n // Stop if running\n try {\n await systemctlExec(['stop', serviceName]);\n } catch {\n // Ignore\n }\n\n // Disable service\n try {\n await systemctlExec(['disable', serviceName]);\n } catch {\n // Ignore\n }\n\n // Remove unit file\n if (existsSync(unitPath)) {\n await rm(unitPath);\n args.stdout?.write(`Removed: ${unitPath}\\n`);\n }\n\n // Reload daemon\n await systemctlExec(['daemon-reload']);\n\n log.info({ serviceName, unitPath }, 'Systemd service uninstalled');\n },\n\n async stop(args: GatewayServiceControlArgs): Promise<void> {\n const serviceName = resolveServiceName(args.env);\n\n if (args.disable) {\n // Stop + disable: prevents restart\n await systemctlExec(['stop', serviceName]);\n await systemctlExec(['disable', serviceName]);\n log.info('Systemd service stopped and disabled');\n } else {\n await systemctlExec(['stop', serviceName]);\n log.info('Systemd service stopped');\n }\n },\n\n async restart(args: GatewayServiceControlArgs): Promise<GatewayServiceRestartResult> {\n const serviceName = resolveServiceName(args.env);\n await systemctlExec(['restart', serviceName]);\n log.info('Systemd service restarted');\n return { outcome: 'restarted' };\n },\n\n async isLoaded(args: GatewayServiceEnvArgs): Promise<boolean> {\n const serviceName = resolveServiceName(args.env);\n const result = await systemctl(['is-enabled', serviceName]);\n return result.exitCode === 0;\n },\n\n async readRuntime(env?: GatewayServiceEnv): Promise<GatewayServiceRuntime> {\n const serviceName = resolveServiceName(env);\n\n try {\n const result = await systemctl([\n 'show', serviceName,\n '--property=ActiveState,MainPID,ExecMainStatus',\n ]);\n\n if (result.exitCode !== 0) {\n return { status: 'unknown' };\n }\n\n const lines = result.stdout.trim().split('\\n');\n let status: 'running' | 'stopped' | 'unknown' = 'unknown';\n let pid: number | undefined;\n let lastExitStatus: number | undefined;\n\n for (const line of lines) {\n const eqIdx = line.indexOf('=');\n if (eqIdx < 0) continue;\n const key = line.slice(0, eqIdx);\n const value = line.slice(eqIdx + 1);\n\n if (key === 'ActiveState') {\n status = value === 'active' ? 'running' : value === 'inactive' ? 'stopped' : 'unknown';\n } else if (key === 'MainPID') {\n const parsed = parseInt(value, 10);\n if (parsed > 0) pid = parsed;\n } else if (key === 'ExecMainStatus') {\n lastExitStatus = parseInt(value, 10);\n }\n }\n\n return { status, pid, lastExitStatus };\n } catch {\n return { status: 'unknown' };\n }\n },\n\n async readCommand(env?: GatewayServiceEnv): Promise<GatewayServiceCommandConfig | null> {\n const unitPath = resolveSystemdUserUnitPath(env);\n if (!existsSync(unitPath)) return null;\n\n const content = await readFile(unitPath, 'utf8');\n const execStartMatch = content.match(/^ExecStart=(.+)$/m);\n const workDirMatch = content.match(/^WorkingDirectory=(.+)$/m);\n\n if (!execStartMatch) return null;\n\n const execStart = execStartMatch[1].trim();\n const programArguments = execStart.split(/\\s+/);\n const environment = parseUnitEnvironment(content);\n\n return {\n programArguments,\n workingDirectory: workDirMatch?.[1],\n environment,\n sourcePath: unitPath,\n };\n },\n};\n"],"mappings":"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"}