@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":"extension-marketplace.js","names":["marketplace.findExtension","marketplace.listExtensions","marketplace.searchExtensions","marketplace.fetchRegistry","marketplace.getExtensionMarketplaceStoreBaseUrl"],"sources":["../../../../src/cli/commands/extension-marketplace.ts"],"sourcesContent":["import { createHash } from 'node:crypto';\nimport { execSync } from 'node:child_process';\nimport { existsSync, readFileSync, statSync, rmSync } from 'node:fs';\nimport { join, resolve } from 'node:path';\n\nimport { confirm } from '@inquirer/prompts';\nimport { Command } from 'commander';\nimport semver from 'semver';\n\nimport {\n downloadExtensionStoreZipBuffer,\n resolveExtensionZipDownloadUrl,\n resolveExtensionsStoreBaseUrl,\n verifyStoreArtifactSha256,\n} from '../../agent/skills/marketplace/adapters/store/store-api-client.js';\nimport { loadConfig } from '../../config/loader.js';\nimport { resolveExtensionsDir } from '../../config/paths.js';\nimport type { InstallResult } from '../../extensions/install.js';\nimport {\n installFromLocal,\n installFromNpm,\n peekExtensionManifestFromStoreZip,\n} from '../../extensions/install.js';\nimport {\n commitStagedExtensionInstall,\n finalizeStagedExtensionInstall,\n rollbackStagedExtensionInstall,\n stageExtensionStoreZip,\n} from '../../extensions/install-transaction.js';\nimport { getExtensionLockfileManager } from '../../extensions/lockfile.js';\nimport * as marketplace from '../../extensions/marketplace.js';\nimport { colors } from '../utils/colors.js';\nimport { getContextWithOpts } from '../context.js';\nimport { validateExtensionPackageDirectory } from './extension-pack.js';\n\nconst MANIFEST = 'xopc.extension.json';\n\nfunction readJsonObject(path: string): Record<string, unknown> | undefined {\n try {\n const raw = JSON.parse(readFileSync(path, 'utf-8')) as unknown;\n return typeof raw === 'object' && raw !== null && !Array.isArray(raw)\n ? (raw as Record<string, unknown>)\n : undefined;\n } catch {\n return undefined;\n }\n}\n\nfunction readInstalledSnapshots(targetDir: string, extensionId: string): {\n manifest?: Record<string, unknown>;\n packageJson?: Record<string, unknown>;\n} {\n const root = join(targetDir, extensionId);\n return {\n manifest: readJsonObject(join(root, MANIFEST)),\n packageJson: readJsonObject(join(root, 'package.json')),\n };\n}\n\nfunction sha256Integrity(buffer: Buffer): string {\n return `sha256-${createHash('sha256').update(buffer).digest('base64')}`;\n}\n\nfunction printManifestSummary(params: {\n source: 'store' | 'npm' | 'local';\n packageName: string;\n version?: string;\n integrity?: string;\n manifest?: Record<string, unknown>;\n}): void {\n const manifest = params.manifest;\n console.log('');\n console.log(colors.cyan('Extension install review'));\n console.log(` Source: ${params.source}`);\n console.log(` Package: ${params.packageName}${params.version ? `@${params.version}` : ''}`);\n if (params.integrity) console.log(` Integrity: ${params.integrity}`);\n if (manifest) {\n console.log(` ID: ${String(manifest.id ?? '(unknown)')}`);\n console.log(` Name: ${String(manifest.name ?? manifest.id ?? '(unknown)')}`);\n const engines = manifest.engines as Record<string, unknown> | undefined;\n if (engines?.xopc) console.log(` engines.xopc: ${String(engines.xopc)}`);\n const permissions = manifest.permissions as Record<string, unknown> | undefined;\n if (permissions) {\n console.log(' Permissions:');\n for (const [key, value] of Object.entries(permissions)) {\n console.log(` ${key}: ${Array.isArray(value) ? value.join(', ') : String(value)}`);\n }\n }\n const contracts = manifest.contracts as Record<string, unknown> | undefined;\n if (contracts) {\n console.log(' Contracts:');\n for (const [key, value] of Object.entries(contracts)) {\n if (Array.isArray(value) && value.length > 0) console.log(` ${key}: ${value.join(', ')}`);\n }\n }\n }\n console.log('');\n}\n\nasync function confirmInstall(params: Parameters<typeof printManifestSummary>[0] & { yes?: boolean }): Promise<boolean> {\n printManifestSummary(params);\n if (params.yes || !process.stdin.isTTY) return true;\n return await confirm({ message: 'Install this extension?', default: false });\n}\n\nfunction parseNameAtVersion(raw: string): { name: string; version?: string } {\n const t = raw.trim();\n const at = t.lastIndexOf('@');\n if (at <= 0 || at === t.length - 1) return { name: t };\n const maybeVer = t.slice(at + 1);\n const v = semver.valid(maybeVer);\n if (v) return { name: t.slice(0, at), version: v };\n return { name: t };\n}\n\nfunction looksLikeLocalPath(raw: string): boolean {\n const p = raw.trim();\n if (p.startsWith('./') || p.startsWith('../')) return true;\n if (p === '.' || p === '..') return true;\n try {\n const abs = resolve(process.cwd(), p);\n return existsSync(abs) && statSync(abs).isDirectory();\n } catch {\n return false;\n }\n}\n\n/** xopc-store package names: lowercase letters, digits, hyphen (see xopc-store scan). */\nconst STORE_NAME_RE = /^[a-z0-9-]{1,64}$/;\n\nasync function upsertNpmExtensionLock(\n lock: ReturnType<typeof getExtensionLockfileManager>,\n targetDir: string,\n result: InstallResult,\n spec: string,\n): Promise<void> {\n if (!result.extensionId) return;\n const reg = await marketplace.findExtension(result.extensionId);\n const resolved = reg?.npmPackage ?? spec;\n let ver = reg?.version ?? '0.0.0';\n try {\n const raw = readFileSync(join(targetDir, result.extensionId, MANIFEST), 'utf-8');\n const m = JSON.parse(raw) as { version?: string };\n const mv = typeof m.version === 'string' ? semver.valid(m.version) : null;\n if (mv) ver = mv;\n } catch {\n /* keep registry / fallback version */\n }\n await lock.upsert(result.extensionId, {\n name: result.extensionId,\n version: ver,\n resolved,\n source: 'npm',\n ...readInstalledSnapshots(targetDir, result.extensionId),\n });\n}\n\nasync function installExtensionFromStoreWithLock(params: {\n storeBase: string;\n packageName: string;\n version?: string;\n targetDir: string;\n lock: ReturnType<typeof getExtensionLockfileManager>;\n force?: boolean;\n yes?: boolean;\n}): Promise<{ ok: true; extensionId: string; version: string } | { ok: false; error: string }> {\n try {\n const { downloadUrl, version, sha256 } = await resolveExtensionZipDownloadUrl(\n params.storeBase,\n params.packageName,\n params.version,\n );\n console.log(\n colors.cyan('📦'),\n `Downloading ${params.packageName}@${version} from xopc-store (${params.storeBase})…`,\n );\n const buf = await downloadExtensionStoreZipBuffer(params.storeBase, downloadUrl);\n verifyStoreArtifactSha256(buf, sha256);\n const actualIntegrity = sha256Integrity(buf);\n const manifest = peekExtensionManifestFromStoreZip(buf);\n const accepted = await confirmInstall({\n source: 'store',\n packageName: params.packageName,\n version,\n integrity: actualIntegrity,\n manifest,\n yes: params.yes,\n });\n if (!accepted) {\n return { ok: false, error: 'Install cancelled' };\n }\n\n const transaction = await stageExtensionStoreZip(buf, params.targetDir);\n const lockSnapshot = await params.lock.load();\n let lockWriteStarted = false;\n try {\n commitStagedExtensionInstall(transaction, params.force ?? false);\n lockWriteStarted = true;\n await params.lock.upsert(transaction.extensionId, {\n name: transaction.extensionId,\n version,\n resolved: params.packageName,\n source: 'store',\n artifactUrl: downloadUrl,\n integrity: actualIntegrity,\n ...readInstalledSnapshots(params.targetDir, transaction.extensionId),\n });\n } catch (err) {\n const rollbackErrors: string[] = [];\n try {\n rollbackStagedExtensionInstall(transaction);\n } catch (rollbackErr) {\n rollbackErrors.push(`files: ${rollbackErr instanceof Error ? rollbackErr.message : String(rollbackErr)}`);\n }\n if (lockWriteStarted) {\n try {\n await params.lock.save(lockSnapshot);\n } catch (rollbackErr) {\n rollbackErrors.push(`lockfile: ${rollbackErr instanceof Error ? rollbackErr.message : String(rollbackErr)}`);\n }\n }\n const message = err instanceof Error ? err.message : String(err);\n const suffix = rollbackErrors.length > 0\n ? ` Rollback incomplete (${rollbackErrors.join('; ')}).`\n : '';\n throw new Error(`${message}${suffix}`, { cause: err });\n }\n\n try {\n finalizeStagedExtensionInstall(transaction);\n } catch (cleanupErr) {\n const message = cleanupErr instanceof Error ? cleanupErr.message : String(cleanupErr);\n console.warn(colors.yellow('warning:'), `Installed extension, but temporary backup cleanup failed: ${message}`);\n }\n return { ok: true, extensionId: transaction.extensionId, version };\n } catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n return { ok: false, error: msg };\n }\n}\n\nexport function createExtensionInstallCommand(): Command {\n return new Command('install')\n .description(\n 'Install extension from xopc-store (store.xopc.ai), npm, or a local directory into ~/.xopc/extensions',\n )\n .argument(\n '<target>',\n 'Explicit source spec: store:<id>, npm:<package>, or a local extension directory',\n )\n .option(\n '-f, --force',\n 'Replace an existing store or local extension with the same manifest id',\n false,\n )\n .option('-y, --yes', 'Skip interactive install confirmation', false)\n .action(\n async (\n target: string,\n opts: { force: boolean; yes: boolean },\n ) => {\n const ctx = getContextWithOpts();\n const cfg = loadConfig(ctx.configPath);\n const targetDir = resolveExtensionsDir();\n const lock = getExtensionLockfileManager();\n\n let installTarget = target.trim();\n const storeExplicit = /^store:/i.test(installTarget);\n const npmExplicit = /^npm:/i.test(installTarget);\n if (storeExplicit) {\n installTarget = installTarget.replace(/^store:/i, '').trim();\n } else if (npmExplicit) {\n installTarget = installTarget.replace(/^npm:/i, '').trim();\n }\n if (!installTarget) {\n console.error(colors.red('error:'), 'Missing target');\n process.exit(1);\n }\n\n const storeBase = resolveExtensionsStoreBaseUrl(cfg);\n\n if (storeExplicit) {\n const { name: pkgName, version: ver } = parseNameAtVersion(installTarget);\n if (!STORE_NAME_RE.test(pkgName)) {\n console.error(\n colors.red('error:'),\n 'Invalid store package name (lowercase letters, digits, hyphen only)',\n );\n process.exit(1);\n }\n const r = await installExtensionFromStoreWithLock({\n storeBase,\n packageName: pkgName,\n version: ver,\n targetDir,\n lock,\n force: opts.force,\n yes: opts.yes,\n });\n if (r.ok === false) {\n console.error(colors.red('error:'), r.error);\n process.exit(1);\n }\n console.log(colors.green('✓'), `${r.extensionId}@${r.version} (store)`);\n return;\n }\n\n if (npmExplicit) {\n const spec = installTarget;\n console.log(colors.cyan('📦'), `Installing from npm: ${spec}…`);\n const result = await installFromNpm(spec, targetDir);\n if (!result.ok) {\n console.error(colors.red('error:'), result.error ?? 'install failed');\n process.exit(1);\n }\n await upsertNpmExtensionLock(lock, targetDir, result, spec);\n console.log(colors.green('✓'), result.extensionId ?? 'ok', '(npm)');\n return;\n }\n\n if (looksLikeLocalPath(installTarget)) {\n const sourceDir = resolve(process.cwd(), installTarget);\n if (opts.force) {\n const manifestPath = join(sourceDir, MANIFEST);\n if (existsSync(manifestPath)) {\n try {\n const raw = readFileSync(manifestPath, 'utf-8');\n const m = JSON.parse(raw) as { id?: string };\n const extId =\n typeof m.id === 'string' &&\n m.id &&\n !m.id.includes('/') &&\n !m.id.includes('\\\\')\n ? m.id\n : undefined;\n if (extId && existsSync(join(targetDir, extId))) {\n rmSync(join(targetDir, extId), { recursive: true, force: true });\n }\n } catch {\n /* installFromLocal will surface manifest errors */\n }\n }\n }\n console.log(colors.cyan('📂'), 'Installing from local directory…');\n const result = await installFromLocal(sourceDir, targetDir);\n if (!result.ok) {\n console.error(colors.red('error:'), result.error ?? 'install failed');\n process.exit(1);\n }\n console.log(colors.green('✓'), result.extensionId ?? 'ok');\n return;\n }\n\n console.error(\n colors.red('error:'),\n 'Extension installs require an explicit source: store:<id>, npm:<package>, or a local directory path.',\n );\n process.exit(1);\n },\n );\n}\n\nexport function createExtensionSearchCommand(): Command {\n return new Command('search')\n .description('Search extensions listed on xopc-store')\n .argument('[keyword]', 'Search text (omit to list all)', '')\n .option('--category <cat>', 'Filter by category')\n .option('--json', 'JSON output')\n .action(async (keyword: string, opts: { category?: string; json?: boolean }) => {\n try {\n let rows;\n if (opts.category?.trim()) {\n rows = await marketplace.listExtensions(opts.category.trim());\n if (keyword.trim()) {\n const k = keyword.trim().toLowerCase();\n rows = rows.filter(\n (e) =>\n e.id.toLowerCase().includes(k) ||\n e.name.toLowerCase().includes(k) ||\n (e.description ?? '').toLowerCase().includes(k),\n );\n }\n } else if (keyword.trim()) {\n rows = await marketplace.searchExtensions(keyword.trim());\n } else {\n const reg = await marketplace.fetchRegistry();\n rows = reg.extensions;\n }\n\n if (opts.json) {\n console.log(JSON.stringify(rows, null, 2));\n return;\n }\n\n if (rows.length === 0) {\n console.log('No extensions found.');\n return;\n }\n\n console.log(`xopc-store: ${marketplace.getExtensionMarketplaceStoreBaseUrl()}`);\n console.log('');\n for (const e of rows) {\n const badge = e.verified ? ` ${colors.green('✓')}` : '';\n console.log(`${colors.cyan(e.name)}${badge} ${colors.gray(e.version ?? '')}`);\n console.log(` id: ${e.id} npm: ${e.npmPackage}`);\n if (e.description) console.log(` ${e.description}`);\n if (e.categories?.length) console.log(` categories: ${e.categories.join(', ')}`);\n console.log('');\n }\n } catch (err) {\n console.error(colors.red('Error:'), err instanceof Error ? err.message : String(err));\n process.exit(1);\n }\n });\n}\n\nexport function createExtensionPublishCommand(): Command {\n return new Command('publish')\n .description('Publish extension to npm (public)')\n .argument('[directory]', 'Extension root', '.')\n .option('--dry-run', 'npm publish --dry-run', false)\n .option('--access <level>', 'npm access', 'public')\n .action((dir: string, opts: { dryRun: boolean; access: string }) => {\n const root = resolve(dir || '.');\n const manifestPath = join(root, MANIFEST);\n const pkgPath = join(root, 'package.json');\n if (!existsSync(manifestPath) || !existsSync(pkgPath)) {\n console.error(colors.red('error:'), `Need ${MANIFEST} and package.json in ${root}`);\n process.exit(1);\n }\n const validation = validateExtensionPackageDirectory(root);\n for (const d of validation.diagnostics) {\n const label = d.level === 'error' ? colors.red('error') : d.level === 'warning' ? colors.yellow('warning') : colors.cyan('info');\n console.log(`${label}:`, d.message);\n }\n if (!validation.ok || !validation.manifest?.id) {\n console.error(colors.red('error:'), 'Package is not publishable as an independent extension.');\n process.exit(1);\n }\n\n const args = ['publish', `--access=${opts.access}`];\n if (opts.dryRun) args.push('--dry-run');\n console.log(colors.cyan('Running:'), `npm ${args.join(' ')}`);\n try {\n execSync(`npm ${args.join(' ')}`, { cwd: root, stdio: 'inherit' });\n } catch {\n process.exit(1);\n }\n });\n}\n\nexport function createExtensionUpdateCommand(): Command {\n return new Command('update')\n .description('Re-install extension(s) from the lockfile (npm or xopc-store) under ~/.xopc/extensions')\n .argument('[extensionId]', 'Specific extension id (default: all in lockfile)')\n .action(async (extensionId: string | undefined) => {\n const ctx = getContextWithOpts();\n const cfg = loadConfig(ctx.configPath);\n const targetDir = resolveExtensionsDir();\n const storeBase = resolveExtensionsStoreBaseUrl(cfg);\n\n const lock = getExtensionLockfileManager();\n const data = await lock.load();\n const ids = extensionId?.trim()\n ? [extensionId.trim()]\n : Object.keys(data.extensions);\n\n if (ids.length === 0) {\n console.log('No extensions in lockfile.');\n return;\n }\n\n for (const id of ids) {\n const entry = data.extensions[id];\n if (!entry) {\n console.log(colors.yellow('skip'), id, '(not in lockfile)');\n continue;\n }\n if (entry.source === 'store') {\n const pkgName = entry.resolved?.trim() || id;\n console.log(colors.cyan('Updating'), id, '←', `store:${pkgName}`);\n if (existsSync(join(targetDir, id))) {\n rmSync(join(targetDir, id), { recursive: true, force: true });\n }\n const r = await installExtensionFromStoreWithLock({\n storeBase,\n packageName: pkgName,\n targetDir,\n lock,\n yes: true,\n });\n if (r.ok === false) {\n console.error(colors.red('error:'), r.error ?? id);\n process.exit(1);\n }\n console.log(colors.green('✓'), id);\n continue;\n }\n if (entry.source !== 'npm') {\n console.log(colors.yellow('skip'), id, `(source ${entry.source})`);\n continue;\n }\n const spec = entry.resolved?.trim() || (await npmPackageForId(id));\n if (!spec) {\n console.log(colors.yellow('skip'), id, '(could not resolve npm package)');\n continue;\n }\n console.log(colors.cyan('Updating'), id, '←', spec);\n if (existsSync(join(targetDir, id))) {\n rmSync(join(targetDir, id), { recursive: true, force: true });\n }\n const result = await installFromNpm(spec, targetDir);\n if (!result.ok) {\n console.error(colors.red('error:'), result.error ?? id);\n process.exit(1);\n }\n await lock.upsert(id, {\n name: id,\n version: entry.version,\n resolved: spec,\n source: 'npm',\n ...readInstalledSnapshots(targetDir, id),\n });\n console.log(colors.green('✓'), id);\n }\n });\n}\n\nasync function npmPackageForId(id: string): Promise<string | undefined> {\n const found = await marketplace.findExtension(id);\n return found?.npmPackage;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;aAeoD;YACS;AAmB7D,MAAM,WAAW;AAEjB,SAAS,eAAe,MAAmD;AACzE,KAAI;EACF,MAAM,MAAM,KAAK,MAAM,aAAa,MAAM,QAAQ,CAAC;AACnD,SAAO,OAAO,QAAQ,YAAY,QAAQ,QAAQ,CAAC,MAAM,QAAQ,IAAI,GAChE,MACD,KAAA;SACE;AACN;;;AAIJ,SAAS,uBAAuB,WAAmB,aAGjD;CACA,MAAM,OAAO,KAAK,WAAW,YAAY;AACzC,QAAO;EACL,UAAU,eAAe,KAAK,MAAM,SAAS,CAAC;EAC9C,aAAa,eAAe,KAAK,MAAM,eAAe,CAAC;EACxD;;AAGH,SAAS,gBAAgB,QAAwB;AAC/C,QAAO,UAAU,WAAW,SAAS,CAAC,OAAO,OAAO,CAAC,OAAO,SAAS;;AAGvE,SAAS,qBAAqB,QAMrB;CACP,MAAM,WAAW,OAAO;AACxB,SAAQ,IAAI,GAAG;AACf,SAAQ,IAAI,OAAO,KAAK,2BAA2B,CAAC;AACpD,SAAQ,IAAI,aAAa,OAAO,SAAS;AACzC,SAAQ,IAAI,cAAc,OAAO,cAAc,OAAO,UAAU,IAAI,OAAO,YAAY,KAAK;AAC5F,KAAI,OAAO,UAAW,SAAQ,IAAI,gBAAgB,OAAO,YAAY;AACrE,KAAI,UAAU;AACZ,UAAQ,IAAI,SAAS,OAAO,SAAS,MAAM,YAAY,GAAG;AAC1D,UAAQ,IAAI,WAAW,OAAO,SAAS,QAAQ,SAAS,MAAM,YAAY,GAAG;EAC7E,MAAM,UAAU,SAAS;AACzB,MAAI,SAAS,KAAM,SAAQ,IAAI,mBAAmB,OAAO,QAAQ,KAAK,GAAG;EACzE,MAAM,cAAc,SAAS;AAC7B,MAAI,aAAa;AACf,WAAQ,IAAI,iBAAiB;AAC7B,QAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,YAAY,CACpD,SAAQ,IAAI,OAAO,IAAI,IAAI,MAAM,QAAQ,MAAM,GAAG,MAAM,KAAK,KAAK,GAAG,OAAO,MAAM,GAAG;;EAGzF,MAAM,YAAY,SAAS;AAC3B,MAAI,WAAW;AACb,WAAQ,IAAI,eAAe;AAC3B,QAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,UAAU,CAClD,KAAI,MAAM,QAAQ,MAAM,IAAI,MAAM,SAAS,EAAG,SAAQ,IAAI,OAAO,IAAI,IAAI,MAAM,KAAK,KAAK,GAAG;;;AAIlG,SAAQ,IAAI,GAAG;;AAGjB,eAAe,eAAe,QAA0F;AACtH,sBAAqB,OAAO;AAC5B,KAAI,OAAO,OAAO,CAAC,QAAQ,MAAM,MAAO,QAAO;AAC/C,QAAO,MAAM,QAAQ;EAAE,SAAS;EAA2B,SAAS;EAAO,CAAC;;AAG9E,SAAS,mBAAmB,KAAiD;CAC3E,MAAM,IAAI,IAAI,MAAM;CACpB,MAAM,KAAK,EAAE,YAAY,IAAI;AAC7B,KAAI,MAAM,KAAK,OAAO,EAAE,SAAS,EAAG,QAAO,EAAE,MAAM,GAAG;CACtD,MAAM,WAAW,EAAE,MAAM,KAAK,EAAE;CAChC,MAAM,IAAI,OAAO,MAAM,SAAS;AAChC,KAAI,EAAG,QAAO;EAAE,MAAM,EAAE,MAAM,GAAG,GAAG;EAAE,SAAS;EAAG;AAClD,QAAO,EAAE,MAAM,GAAG;;AAGpB,SAAS,mBAAmB,KAAsB;CAChD,MAAM,IAAI,IAAI,MAAM;AACpB,KAAI,EAAE,WAAW,KAAK,IAAI,EAAE,WAAW,MAAM,CAAE,QAAO;AACtD,KAAI,MAAM,OAAO,MAAM,KAAM,QAAO;AACpC,KAAI;EACF,MAAM,MAAM,QAAQ,QAAQ,KAAK,EAAE,EAAE;AACrC,SAAO,WAAW,IAAI,IAAI,SAAS,IAAI,CAAC,aAAa;SAC/C;AACN,SAAO;;;;AAKX,MAAM,gBAAgB;AAEtB,eAAe,uBACb,MACA,WACA,QACA,MACe;AACf,KAAI,CAAC,OAAO,YAAa;CACzB,MAAM,MAAM,MAAMA,cAA0B,OAAO,YAAY;CAC/D,MAAM,WAAW,KAAK,cAAc;CACpC,IAAI,MAAM,KAAK,WAAW;AAC1B,KAAI;EACF,MAAM,MAAM,aAAa,KAAK,WAAW,OAAO,aAAa,SAAS,EAAE,QAAQ;EAChF,MAAM,IAAI,KAAK,MAAM,IAAI;EACzB,MAAM,KAAK,OAAO,EAAE,YAAY,WAAW,OAAO,MAAM,EAAE,QAAQ,GAAG;AACrE,MAAI,GAAI,OAAM;SACR;AAGR,OAAM,KAAK,OAAO,OAAO,aAAa;EACpC,MAAM,OAAO;EACb,SAAS;EACT;EACA,QAAQ;EACR,GAAG,uBAAuB,WAAW,OAAO,YAAY;EACzD,CAAC;;AAGJ,eAAe,kCAAkC,QAQ8C;AAC7F,KAAI;EACF,MAAM,EAAE,aAAa,SAAS,WAAW,MAAM,+BAC7C,OAAO,WACP,OAAO,aACP,OAAO,QACR;AACD,UAAQ,IACN,OAAO,KAAK,KAAK,EACjB,eAAe,OAAO,YAAY,GAAG,QAAQ,oBAAoB,OAAO,UAAU,IACnF;EACD,MAAM,MAAM,MAAM,gCAAgC,OAAO,WAAW,YAAY;AAChF,4BAA0B,KAAK,OAAO;EACtC,MAAM,kBAAkB,gBAAgB,IAAI;EAC5C,MAAM,WAAW,kCAAkC,IAAI;AASvD,MAAI,CAAC,MARkB,eAAe;GACpC,QAAQ;GACR,aAAa,OAAO;GACpB;GACA,WAAW;GACX;GACA,KAAK,OAAO;GACb,CAAC,CAEA,QAAO;GAAE,IAAI;GAAO,OAAO;GAAqB;EAGlD,MAAM,cAAc,MAAM,uBAAuB,KAAK,OAAO,UAAU;EACvE,MAAM,eAAe,MAAM,OAAO,KAAK,MAAM;EAC7C,IAAI,mBAAmB;AACvB,MAAI;AACF,gCAA6B,aAAa,OAAO,SAAS,MAAM;AAChE,sBAAmB;AACnB,SAAM,OAAO,KAAK,OAAO,YAAY,aAAa;IAChD,MAAM,YAAY;IAClB;IACA,UAAU,OAAO;IACjB,QAAQ;IACR,aAAa;IACb,WAAW;IACX,GAAG,uBAAuB,OAAO,WAAW,YAAY,YAAY;IACrE,CAAC;WACK,KAAK;GACZ,MAAM,iBAA2B,EAAE;AACnC,OAAI;AACF,mCAA+B,YAAY;YACpC,aAAa;AACpB,mBAAe,KAAK,UAAU,uBAAuB,QAAQ,YAAY,UAAU,OAAO,YAAY,GAAG;;AAE3G,OAAI,iBACF,KAAI;AACF,UAAM,OAAO,KAAK,KAAK,aAAa;YAC7B,aAAa;AACpB,mBAAe,KAAK,aAAa,uBAAuB,QAAQ,YAAY,UAAU,OAAO,YAAY,GAAG;;GAGhH,MAAM,UAAU,eAAe,QAAQ,IAAI,UAAU,OAAO,IAAI;GAChE,MAAM,SAAS,eAAe,SAAS,IACnC,yBAAyB,eAAe,KAAK,KAAK,CAAC,MACnD;AACJ,SAAM,IAAI,MAAM,GAAG,UAAU,UAAU,EAAE,OAAO,KAAK,CAAC;;AAGxD,MAAI;AACF,kCAA+B,YAAY;WACpC,YAAY;GACnB,MAAM,UAAU,sBAAsB,QAAQ,WAAW,UAAU,OAAO,WAAW;AACrF,WAAQ,KAAK,OAAO,OAAO,WAAW,EAAE,6DAA6D,UAAU;;AAEjH,SAAO;GAAE,IAAI;GAAM,aAAa,YAAY;GAAa;GAAS;UAC3D,GAAG;AAEV,SAAO;GAAE,IAAI;GAAO,OADR,aAAa,QAAQ,EAAE,UAAU,OAAO,EAAE;GACtB;;;AAIpC,SAAgB,gCAAyC;AACvD,QAAO,IAAI,QAAQ,UAAU,CAC1B,YACC,uGACD,CACA,SACC,YACA,kFACD,CACA,OACC,eACA,0EACA,MACD,CACA,OAAO,aAAa,yCAAyC,MAAM,CACnE,OACC,OACE,QACA,SACG;EAEH,MAAM,MAAM,WADA,oBACc,CAAC,WAAW;EACtC,MAAM,YAAY,sBAAsB;EACxC,MAAM,OAAO,6BAA6B;EAE1C,IAAI,gBAAgB,OAAO,MAAM;EACjC,MAAM,gBAAgB,WAAW,KAAK,cAAc;EACpD,MAAM,cAAc,SAAS,KAAK,cAAc;AAChD,MAAI,cACF,iBAAgB,cAAc,QAAQ,YAAY,GAAG,CAAC,MAAM;WACnD,YACT,iBAAgB,cAAc,QAAQ,UAAU,GAAG,CAAC,MAAM;AAE5D,MAAI,CAAC,eAAe;AAClB,WAAQ,MAAM,OAAO,IAAI,SAAS,EAAE,iBAAiB;AACrD,WAAQ,KAAK,EAAE;;EAGjB,MAAM,YAAY,8BAA8B,IAAI;AAEpD,MAAI,eAAe;GACjB,MAAM,EAAE,MAAM,SAAS,SAAS,QAAQ,mBAAmB,cAAc;AACzE,OAAI,CAAC,cAAc,KAAK,QAAQ,EAAE;AAChC,YAAQ,MACN,OAAO,IAAI,SAAS,EACpB,sEACD;AACD,YAAQ,KAAK,EAAE;;GAEjB,MAAM,IAAI,MAAM,kCAAkC;IAChD;IACA,aAAa;IACb,SAAS;IACT;IACA;IACA,OAAO,KAAK;IACZ,KAAK,KAAK;IACX,CAAC;AACF,OAAI,EAAE,OAAO,OAAO;AAClB,YAAQ,MAAM,OAAO,IAAI,SAAS,EAAE,EAAE,MAAM;AAC5C,YAAQ,KAAK,EAAE;;AAEjB,WAAQ,IAAI,OAAO,MAAM,IAAI,EAAE,GAAG,EAAE,YAAY,GAAG,EAAE,QAAQ,UAAU;AACvE;;AAGF,MAAI,aAAa;GACf,MAAM,OAAO;AACb,WAAQ,IAAI,OAAO,KAAK,KAAK,EAAE,wBAAwB,KAAK,GAAG;GAC/D,MAAM,SAAS,MAAM,eAAe,MAAM,UAAU;AACpD,OAAI,CAAC,OAAO,IAAI;AACd,YAAQ,MAAM,OAAO,IAAI,SAAS,EAAE,OAAO,SAAS,iBAAiB;AACrE,YAAQ,KAAK,EAAE;;AAEjB,SAAM,uBAAuB,MAAM,WAAW,QAAQ,KAAK;AAC3D,WAAQ,IAAI,OAAO,MAAM,IAAI,EAAE,OAAO,eAAe,MAAM,QAAQ;AACnE;;AAGF,MAAI,mBAAmB,cAAc,EAAE;GACrC,MAAM,YAAY,QAAQ,QAAQ,KAAK,EAAE,cAAc;AACvD,OAAI,KAAK,OAAO;IACd,MAAM,eAAe,KAAK,WAAW,SAAS;AAC9C,QAAI,WAAW,aAAa,CAC1B,KAAI;KACF,MAAM,MAAM,aAAa,cAAc,QAAQ;KAC/C,MAAM,IAAI,KAAK,MAAM,IAAI;KACzB,MAAM,QACJ,OAAO,EAAE,OAAO,YAChB,EAAE,MACF,CAAC,EAAE,GAAG,SAAS,IAAI,IACnB,CAAC,EAAE,GAAG,SAAS,KAAK,GAChB,EAAE,KACF,KAAA;AACN,SAAI,SAAS,WAAW,KAAK,WAAW,MAAM,CAAC,CAC7C,QAAO,KAAK,WAAW,MAAM,EAAE;MAAE,WAAW;MAAM,OAAO;MAAM,CAAC;YAE5D;;AAKZ,WAAQ,IAAI,OAAO,KAAK,KAAK,EAAE,mCAAmC;GAClE,MAAM,SAAS,MAAM,iBAAiB,WAAW,UAAU;AAC3D,OAAI,CAAC,OAAO,IAAI;AACd,YAAQ,MAAM,OAAO,IAAI,SAAS,EAAE,OAAO,SAAS,iBAAiB;AACrE,YAAQ,KAAK,EAAE;;AAEjB,WAAQ,IAAI,OAAO,MAAM,IAAI,EAAE,OAAO,eAAe,KAAK;AAC1D;;AAGF,UAAQ,MACN,OAAO,IAAI,SAAS,EACpB,uGACD;AACD,UAAQ,KAAK,EAAE;GAElB;;AAGL,SAAgB,+BAAwC;AACtD,QAAO,IAAI,QAAQ,SAAS,CACzB,YAAY,yCAAyC,CACrD,SAAS,aAAa,kCAAkC,GAAG,CAC3D,OAAO,oBAAoB,qBAAqB,CAChD,OAAO,UAAU,cAAc,CAC/B,OAAO,OAAO,SAAiB,SAAgD;AAC9E,MAAI;GACF,IAAI;AACJ,OAAI,KAAK,UAAU,MAAM,EAAE;AACzB,WAAO,MAAMC,eAA2B,KAAK,SAAS,MAAM,CAAC;AAC7D,QAAI,QAAQ,MAAM,EAAE;KAClB,MAAM,IAAI,QAAQ,MAAM,CAAC,aAAa;AACtC,YAAO,KAAK,QACT,MACC,EAAE,GAAG,aAAa,CAAC,SAAS,EAAE,IAC9B,EAAE,KAAK,aAAa,CAAC,SAAS,EAAE,KAC/B,EAAE,eAAe,IAAI,aAAa,CAAC,SAAS,EAAE,CAClD;;cAEM,QAAQ,MAAM,CACvB,QAAO,MAAMC,iBAA6B,QAAQ,MAAM,CAAC;OAGzD,SAAO,MADWC,eAA2B,EAClC;AAGb,OAAI,KAAK,MAAM;AACb,YAAQ,IAAI,KAAK,UAAU,MAAM,MAAM,EAAE,CAAC;AAC1C;;AAGF,OAAI,KAAK,WAAW,GAAG;AACrB,YAAQ,IAAI,uBAAuB;AACnC;;AAGF,WAAQ,IAAI,eAAeC,qCAAiD,GAAG;AAC/E,WAAQ,IAAI,GAAG;AACf,QAAK,MAAM,KAAK,MAAM;IACpB,MAAM,QAAQ,EAAE,WAAW,IAAI,OAAO,MAAM,IAAI,KAAK;AACrD,YAAQ,IAAI,GAAG,OAAO,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,KAAK,EAAE,WAAW,GAAG,GAAG;AAC7E,YAAQ,IAAI,SAAS,EAAE,GAAG,SAAS,EAAE,aAAa;AAClD,QAAI,EAAE,YAAa,SAAQ,IAAI,KAAK,EAAE,cAAc;AACpD,QAAI,EAAE,YAAY,OAAQ,SAAQ,IAAI,iBAAiB,EAAE,WAAW,KAAK,KAAK,GAAG;AACjF,YAAQ,IAAI,GAAG;;WAEV,KAAK;AACZ,WAAQ,MAAM,OAAO,IAAI,SAAS,EAAE,eAAe,QAAQ,IAAI,UAAU,OAAO,IAAI,CAAC;AACrF,WAAQ,KAAK,EAAE;;GAEjB;;AAGN,SAAgB,gCAAyC;AACvD,QAAO,IAAI,QAAQ,UAAU,CAC1B,YAAY,oCAAoC,CAChD,SAAS,eAAe,kBAAkB,IAAI,CAC9C,OAAO,aAAa,yBAAyB,MAAM,CACnD,OAAO,oBAAoB,cAAc,SAAS,CAClD,QAAQ,KAAa,SAA8C;EAClE,MAAM,OAAO,QAAQ,OAAO,IAAI;EAChC,MAAM,eAAe,KAAK,MAAM,SAAS;EACzC,MAAM,UAAU,KAAK,MAAM,eAAe;AAC1C,MAAI,CAAC,WAAW,aAAa,IAAI,CAAC,WAAW,QAAQ,EAAE;AACrD,WAAQ,MAAM,OAAO,IAAI,SAAS,EAAE,QAAQ,SAAS,uBAAuB,OAAO;AACnF,WAAQ,KAAK,EAAE;;EAEjB,MAAM,aAAa,kCAAkC,KAAK;AAC1D,OAAK,MAAM,KAAK,WAAW,aAAa;GACtC,MAAM,QAAQ,EAAE,UAAU,UAAU,OAAO,IAAI,QAAQ,GAAG,EAAE,UAAU,YAAY,OAAO,OAAO,UAAU,GAAG,OAAO,KAAK,OAAO;AAChI,WAAQ,IAAI,GAAG,MAAM,IAAI,EAAE,QAAQ;;AAErC,MAAI,CAAC,WAAW,MAAM,CAAC,WAAW,UAAU,IAAI;AAC9C,WAAQ,MAAM,OAAO,IAAI,SAAS,EAAE,0DAA0D;AAC9F,WAAQ,KAAK,EAAE;;EAGjB,MAAM,OAAO,CAAC,WAAW,YAAY,KAAK,SAAS;AACnD,MAAI,KAAK,OAAQ,MAAK,KAAK,YAAY;AACvC,UAAQ,IAAI,OAAO,KAAK,WAAW,EAAE,OAAO,KAAK,KAAK,IAAI,GAAG;AAC7D,MAAI;AACF,YAAS,OAAO,KAAK,KAAK,IAAI,IAAI;IAAE,KAAK;IAAM,OAAO;IAAW,CAAC;UAC5D;AACN,WAAQ,KAAK,EAAE;;GAEjB;;AAGN,SAAgB,+BAAwC;AACtD,QAAO,IAAI,QAAQ,SAAS,CACzB,YAAY,yFAAyF,CACrG,SAAS,iBAAiB,mDAAmD,CAC7E,OAAO,OAAO,gBAAoC;EAEjD,MAAM,MAAM,WADA,oBACc,CAAC,WAAW;EACtC,MAAM,YAAY,sBAAsB;EACxC,MAAM,YAAY,8BAA8B,IAAI;EAEpD,MAAM,OAAO,6BAA6B;EAC1C,MAAM,OAAO,MAAM,KAAK,MAAM;EAC9B,MAAM,MAAM,aAAa,MAAM,GAC3B,CAAC,YAAY,MAAM,CAAC,GACpB,OAAO,KAAK,KAAK,WAAW;AAEhC,MAAI,IAAI,WAAW,GAAG;AACpB,WAAQ,IAAI,6BAA6B;AACzC;;AAGF,OAAK,MAAM,MAAM,KAAK;GACpB,MAAM,QAAQ,KAAK,WAAW;AAC9B,OAAI,CAAC,OAAO;AACV,YAAQ,IAAI,OAAO,OAAO,OAAO,EAAE,IAAI,oBAAoB;AAC3D;;AAEF,OAAI,MAAM,WAAW,SAAS;IAC5B,MAAM,UAAU,MAAM,UAAU,MAAM,IAAI;AAC1C,YAAQ,IAAI,OAAO,KAAK,WAAW,EAAE,IAAI,KAAK,SAAS,UAAU;AACjE,QAAI,WAAW,KAAK,WAAW,GAAG,CAAC,CACjC,QAAO,KAAK,WAAW,GAAG,EAAE;KAAE,WAAW;KAAM,OAAO;KAAM,CAAC;IAE/D,MAAM,IAAI,MAAM,kCAAkC;KAChD;KACA,aAAa;KACb;KACA;KACA,KAAK;KACN,CAAC;AACF,QAAI,EAAE,OAAO,OAAO;AAClB,aAAQ,MAAM,OAAO,IAAI,SAAS,EAAE,EAAE,SAAS,GAAG;AAClD,aAAQ,KAAK,EAAE;;AAEjB,YAAQ,IAAI,OAAO,MAAM,IAAI,EAAE,GAAG;AAClC;;AAEF,OAAI,MAAM,WAAW,OAAO;AAC1B,YAAQ,IAAI,OAAO,OAAO,OAAO,EAAE,IAAI,WAAW,MAAM,OAAO,GAAG;AAClE;;GAEF,MAAM,OAAO,MAAM,UAAU,MAAM,IAAK,MAAM,gBAAgB,GAAG;AACjE,OAAI,CAAC,MAAM;AACT,YAAQ,IAAI,OAAO,OAAO,OAAO,EAAE,IAAI,kCAAkC;AACzE;;AAEF,WAAQ,IAAI,OAAO,KAAK,WAAW,EAAE,IAAI,KAAK,KAAK;AACnD,OAAI,WAAW,KAAK,WAAW,GAAG,CAAC,CACjC,QAAO,KAAK,WAAW,GAAG,EAAE;IAAE,WAAW;IAAM,OAAO;IAAM,CAAC;GAE/D,MAAM,SAAS,MAAM,eAAe,MAAM,UAAU;AACpD,OAAI,CAAC,OAAO,IAAI;AACd,YAAQ,MAAM,OAAO,IAAI,SAAS,EAAE,OAAO,SAAS,GAAG;AACvD,YAAQ,KAAK,EAAE;;AAEjB,SAAM,KAAK,OAAO,IAAI;IACpB,MAAM;IACN,SAAS,MAAM;IACf,UAAU;IACV,QAAQ;IACR,GAAG,uBAAuB,WAAW,GAAG;IACzC,CAAC;AACF,WAAQ,IAAI,OAAO,MAAM,IAAI,EAAE,GAAG;;GAEpC;;AAGN,eAAe,gBAAgB,IAAyC;AAEtE,SAAO,MADaJ,cAA0B,GAAG,GACnC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"extension-pack.js","names":[],"sources":["../../../../src/cli/commands/extension-pack.ts"],"sourcesContent":["import { createHash } from 'node:crypto';\nimport { execSync } from 'node:child_process';\nimport { existsSync, readFileSync, readdirSync, mkdirSync, statSync, writeFileSync } from 'node:fs';\nimport { basename, join, relative, resolve } from 'node:path';\n\nimport AdmZip from 'adm-zip';\nimport { Command } from 'commander';\n\nimport { checkEngineCompatibility } from '../../extensions/engine-check.js';\nimport type { ExtensionManifest } from '../../extensions/types/index.js';\nimport { normalizeExtensionManifest } from '../../extensions/normalize-manifest.js';\nimport { collectExtensionPackageDependencyIssues } from '../../extensions/package-contract.js';\nimport { PACKAGE_VERSION } from '../../package-version.js';\nimport { createLogger } from '../../utils/logger.js';\nimport { colors } from '../utils/colors.js';\n\nconst log = createLogger('ExtensionPack');\nconst MANIFEST = 'xopc.extension.json';\n\ninterface PackContext {\n extensionDir: string;\n manifest: ExtensionManifest;\n packageJson: Record<string, unknown>;\n diagnostics: PackDiagnostic[];\n}\n\nexport interface PackDiagnostic {\n level: 'error' | 'warning' | 'info';\n message: string;\n}\n\nexport interface ExtensionPackageValidationResult {\n extensionDir: string;\n manifest: ExtensionManifest | null;\n packageJson: Record<string, unknown> | null;\n diagnostics: PackDiagnostic[];\n ok: boolean;\n}\n\nfunction isRecord(x: unknown): x is Record<string, unknown> {\n return typeof x === 'object' && x !== null && !Array.isArray(x);\n}\n\nfunction loadJson(path: string): unknown {\n return JSON.parse(readFileSync(path, 'utf-8') as string) as unknown;\n}\n\nfunction loadManifestAtRoot(\n root: string,\n diagnostics: PackDiagnostic[],\n): ExtensionManifest | null {\n const manifestPath = join(root, MANIFEST);\n if (!existsSync(manifestPath)) {\n diagnostics.push({ level: 'error', message: `Missing ${MANIFEST} in ${root}` });\n return null;\n }\n try {\n const raw = loadJson(manifestPath);\n if (!isRecord(raw)) {\n diagnostics.push({ level: 'error', message: `${MANIFEST} must be a JSON object` });\n return null;\n }\n return normalizeExtensionManifest(raw);\n } catch (e) {\n diagnostics.push({\n level: 'error',\n message: `Failed to parse ${MANIFEST}: ${e instanceof Error ? e.message : String(e)}`,\n });\n return null;\n }\n}\n\nfunction collectContributionPaths(manifest: ExtensionManifest, extRoot: string): string[] {\n const out: string[] = [];\n const ui = manifest.ui;\n if (ui?.main) out.push(join(extRoot, ui.main));\n if (ui?.icon) out.push(join(extRoot, ui.icon));\n const c = ui?.contributions;\n if (!c) return out;\n for (const p of c.sidebarPanels ?? []) {\n if (p.entrypoint) out.push(join(extRoot, p.entrypoint));\n }\n for (const p of c.settingsPanels ?? []) {\n if (p.entrypoint) out.push(join(extRoot, p.entrypoint));\n }\n for (const p of c.chatWidgets ?? []) {\n if (p.entrypoint) out.push(join(extRoot, p.entrypoint));\n }\n for (const p of c.pages ?? []) {\n if (p.entrypoint) out.push(join(extRoot, p.entrypoint));\n }\n for (const p of c.statusBarItems ?? []) {\n if (p.entrypoint) out.push(join(extRoot, p.entrypoint));\n }\n return out;\n}\n\nfunction resolveMainFile(root: string, main: string): string | null {\n const p = join(root, main);\n return existsSync(p) ? p : null;\n}\n\nfunction validateManifest(ctx: PackContext): void {\n const { manifest, extensionDir, diagnostics } = ctx;\n if (!manifest.id || !String(manifest.id).trim()) {\n diagnostics.push({ level: 'error', message: 'Manifest \"id\" is required' });\n }\n if (!manifest.main) {\n diagnostics.push({ level: 'error', message: 'Manifest \"main\" is required and must point at built JavaScript' });\n }\n const mainFile = manifest.main ? resolveMainFile(extensionDir, manifest.main) : null;\n if (!mainFile) {\n diagnostics.push({\n level: 'error',\n message: `Main entry not found: ${manifest.main ?? '(missing)'}`,\n });\n }\n\n if (manifest.ui?.main) {\n const p = join(extensionDir, manifest.ui.main);\n if (!existsSync(p)) {\n diagnostics.push({ level: 'error', message: `ui.main missing: ${manifest.ui.main}` });\n }\n }\n\n for (const p of collectContributionPaths(manifest, extensionDir)) {\n if (!existsSync(p)) {\n diagnostics.push({ level: 'error', message: `UI contribution entry missing: ${p}` });\n }\n }\n\n if (manifest.main && !/\\.(mjs|cjs|js)$/i.test(manifest.main)) {\n diagnostics.push({\n level: 'error',\n message: `Strict package contract requires manifest.main to point at built JavaScript, got \"${manifest.main}\"`,\n });\n }\n\n if (!manifest.engines?.xopc) {\n diagnostics.push({\n level: 'error',\n message: 'manifest engines.xopc is required for independent extension packages',\n });\n } else {\n const r = checkEngineCompatibility(PACKAGE_VERSION, manifest.engines.xopc);\n if (r.parseWarning) {\n diagnostics.push({\n level: 'error',\n message: `engines.xopc parse issue — ${r.reason ?? 'unknown'}`,\n });\n } else if (!r.compatible) {\n diagnostics.push({\n level: 'error',\n message: `engines.xopc not satisfied by current xopc ${PACKAGE_VERSION}: ${r.reason ?? manifest.engines.xopc}`,\n });\n }\n }\n}\n\nfunction validatePackageJson(ctx: PackContext): void {\n const { packageJson, diagnostics, extensionDir } = ctx;\n for (const issue of collectExtensionPackageDependencyIssues(packageJson, {\n strictRuntimeSdkDeps: true,\n })) {\n diagnostics.push({\n level: 'error',\n message: issue.message,\n });\n }\n\n const files = packageJson.files;\n if (Array.isArray(files)) {\n if (!files.some((f) => f === MANIFEST || f === '**/xopc.extension.json')) {\n diagnostics.push({\n level: 'error',\n message: `package.json \"files\" must include \"${MANIFEST}\" so the archive ships the manifest`,\n });\n }\n }\n\n const keywords = packageJson.keywords;\n if (Array.isArray(keywords) && !keywords.includes('xopc-extension')) {\n diagnostics.push({\n level: 'info',\n message: 'Consider adding \"xopc-extension\" to package.json keywords for discoverability',\n });\n } else if (!Array.isArray(keywords)) {\n diagnostics.push({ level: 'info', message: 'Consider adding keywords: [\"xopc-extension\", ...]' });\n }\n\n if (!existsSync(join(extensionDir, 'package.json'))) {\n diagnostics.push({ level: 'error', message: 'package.json is missing' });\n }\n}\n\nconst SECRET_FILE_RE = /(^|\\/)(\\.env(?:\\..*)?|\\.npmrc|\\.yarnrc|id_rsa|id_ed25519|.*\\.(?:pem|key|p12|pfx))$/i;\nconst SECRET_TEXT_RE = /(sk-[A-Za-z0-9_-]{20,}|xox[baprs]-[A-Za-z0-9-]{20,}|AKIA[0-9A-Z]{16}|-----BEGIN (?:RSA |OPENSSH |EC |DSA )?PRIVATE KEY-----)/;\n\nfunction scanUnsafeFiles(root: string, diagnostics: PackDiagnostic[]): void {\n const walk = (dir: string) => {\n for (const entry of readdirSync(dir, { withFileTypes: true })) {\n const full = join(dir, entry.name);\n const rel = relative(root, full).replace(/\\\\/g, '/');\n if (shouldExcludeFromArtifact(rel)) continue;\n if (SECRET_FILE_RE.test(rel)) {\n diagnostics.push({ level: 'error', message: `Unsafe secret-like file would be packaged: ${rel}` });\n continue;\n }\n if (entry.isDirectory()) {\n walk(full);\n } else if (entry.isFile()) {\n const size = statSync(full).size;\n if (size <= 1024 * 1024 && /\\.(?:js|mjs|cjs|json|html|css|md|txt|map)$/i.test(entry.name)) {\n const text = readFileSync(full, 'utf-8');\n if (SECRET_TEXT_RE.test(text)) {\n diagnostics.push({ level: 'error', message: `Potential secret token found in packaged file: ${rel}` });\n }\n }\n }\n }\n };\n walk(root);\n}\n\nexport function validateExtensionPackageDirectory(dir: string): ExtensionPackageValidationResult {\n const extensionDir = resolve(dir || '.');\n const diagnostics: PackDiagnostic[] = [];\n if (!existsSync(extensionDir) || !existsSync(join(extensionDir, 'package.json'))) {\n diagnostics.push({ level: 'error', message: `Not an extension project (no package.json): ${extensionDir}` });\n return { extensionDir, manifest: null, packageJson: null, diagnostics, ok: false };\n }\n const manifest = loadManifestAtRoot(extensionDir, diagnostics);\n let packageJson: Record<string, unknown> | null = null;\n try {\n packageJson = loadJson(join(extensionDir, 'package.json')) as Record<string, unknown>;\n if (!isRecord(packageJson)) throw new Error('package.json must be an object');\n } catch (e) {\n diagnostics.push({ level: 'error', message: e instanceof Error ? e.message : String(e) });\n }\n if (manifest && packageJson) {\n const ctx: PackContext = { extensionDir, manifest, packageJson, diagnostics };\n validateManifest(ctx);\n validatePackageJson(ctx);\n scanUnsafeFiles(extensionDir, diagnostics);\n }\n return {\n extensionDir,\n manifest,\n packageJson,\n diagnostics,\n ok: !diagnostics.some((d) => d.level === 'error'),\n };\n}\n\nfunction shouldExcludeFromArtifact(rel: string): boolean {\n const parts = rel.split(/[\\\\/]+/);\n if (parts.some((p) => p === 'node_modules' || p === '.git' || p === '.turbo' || p === '.cache')) return true;\n const name = parts.at(-1) ?? rel;\n if (name === '.DS_Store') return true;\n if (name.endsWith('.tgz') || name.endsWith('.zip') || name.endsWith('.sha256') || name.endsWith('.manifest.json')) return true;\n if (name.endsWith('.tsbuildinfo')) return true;\n return false;\n}\n\nfunction addDirectoryToZip(zip: AdmZip, root: string, dir: string): void {\n for (const entry of readdirSync(dir, { withFileTypes: true })) {\n const full = join(dir, entry.name);\n const rel = relative(root, full).replace(/\\\\/g, '/');\n if (shouldExcludeFromArtifact(rel)) continue;\n if (entry.isDirectory()) {\n addDirectoryToZip(zip, root, full);\n } else if (entry.isFile()) {\n zip.addFile(rel, readFileSync(full));\n }\n }\n}\n\nexport function writeStoreReadyArtifact(params: {\n extensionDir: string;\n outDir: string;\n manifest: ExtensionManifest;\n packageJson: Record<string, unknown>;\n}): string {\n mkdirSync(params.outDir, { recursive: true });\n const name = String(params.packageJson.name ?? params.manifest.id)\n .replace(/^@/, '')\n .replace(/[\\\\/]+/g, '-')\n .replace(/[^A-Za-z0-9._-]+/g, '-');\n const version = String(params.manifest.version ?? params.packageJson.version ?? '0.0.0');\n const base = `${name}-${version}`;\n const zipPath = join(params.outDir, `${base}.zip`);\n const zip = new AdmZip();\n addDirectoryToZip(zip, params.extensionDir, params.extensionDir);\n zip.writeZip(zipPath);\n\n const buffer = readFileSync(zipPath);\n const sha256Hex = createHash('sha256').update(buffer).digest('hex');\n const integrity = `sha256-${createHash('sha256').update(buffer).digest('base64')}`;\n writeFileSync(join(params.outDir, `${base}.sha256`), `${sha256Hex} ${basename(zipPath)}\\n`);\n writeFileSync(\n join(params.outDir, `${base}.manifest.json`),\n JSON.stringify(\n {\n id: params.manifest.id,\n name: params.manifest.name,\n version,\n artifact: basename(zipPath),\n sha256: sha256Hex,\n integrity,\n manifest: params.manifest,\n packageJson: params.packageJson,\n },\n null,\n 2,\n ),\n );\n return zipPath;\n}\n\nfunction printDiagnostics(d: PackDiagnostic[]): void {\n for (const x of d) {\n if (x.level === 'error') {\n console.error(`${colors.red('error')}:`, x.message);\n } else if (x.level === 'warning') {\n console.log(`${colors.yellow('warning')}:`, x.message);\n } else {\n console.log(`${colors.cyan('info')}:`, x.message);\n }\n }\n}\n\nexport function createExtensionPackCommand(): Command {\n return new Command('pack')\n .description('Package an extension as a store-ready .zip artifact set')\n .argument('[dir]', 'Extension directory (default: current working directory)', '.')\n .option('--out <dir>', 'Output directory for the artifact set (default: extension directory)', '')\n .option('--no-build-ui', 'Skip automatic \"npm run build:ui\" when defined')\n .option('--dry-run', 'Validate only; do not create an archive', false)\n .action((dir: string, opts: { out?: string; buildUi: boolean; dryRun: boolean }) => {\n const validation = validateExtensionPackageDirectory(dir || '.');\n const { extensionDir, manifest, packageJson, diagnostics } = validation;\n const outDir = opts.out && opts.out.length > 0 ? resolve(opts.out) : extensionDir;\n printDiagnostics(diagnostics);\n\n if (!validation.ok || !manifest || !packageJson) {\n console.error(colors.red('Pack validation failed (fix errors above).'));\n process.exit(1);\n }\n\n if (opts.dryRun) {\n console.log(colors.green('OK'), ' — dry run; no archive created');\n return;\n }\n\n const scripts = isRecord(packageJson.scripts) ? (packageJson.scripts as Record<string, unknown>) : null;\n if (opts.buildUi && scripts && typeof scripts['build:ui'] === 'string') {\n try {\n console.log(colors.cyan('Running'), 'npm run build:ui …');\n execSync('npm run build:ui', { cwd: extensionDir, stdio: 'inherit' });\n } catch (e) {\n console.error(\n colors.red('error:'),\n `UI build failed: ${e instanceof Error ? e.message : String(e)}`,\n );\n process.exit(1);\n }\n }\n\n let artifactPath: string;\n try {\n artifactPath = writeStoreReadyArtifact({ extensionDir, outDir, manifest, packageJson });\n } catch (e) {\n log.error({ err: e }, 'pack failed');\n console.error(colors.red('error:'), e instanceof Error ? e.message : String(e));\n process.exit(1);\n }\n\n console.log('');\n console.log(colors.green('Pack complete:'), artifactPath);\n console.log(colors.cyan('Generated:'), '.zip artifact, .sha256 checksum, .manifest.json metadata');\n console.log(colors.cyan('Next:'), 'upload the generated artifact set to store.xopc.ai or install the zip via the store pipeline.');\n });\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"extension.js","names":[],"sources":["../../../../src/cli/commands/extension.ts"],"sourcesContent":["import { createHash } from 'node:crypto';\nimport { existsSync, readFileSync, readdirSync, statSync } from 'node:fs';\nimport { join } from 'node:path';\n\nimport { Command } from 'commander';\n\nimport { loadConfig, saveConfig } from '../../config/loader.js';\nimport { resolveExtensionsDir } from '../../config/paths.js';\nimport { checkEngineCompatibility } from '../../extensions/engine-check.js';\nimport { ExtensionLoader } from '../../extensions/loader.js';\nimport { collectExtensionPackageDependencyIssues } from '../../extensions/package-contract.js';\nimport { PACKAGE_VERSION } from '../../package-version.js';\nimport { createLogger } from '../../utils/logger.js';\nimport { getExtensionLockfileManager } from '../../extensions/lockfile.js';\nimport {\n getExtensionHealthChecker,\n checkAllExtensionsHealth,\n} from '../../extensions/health.js';\nimport { getContextWithOpts } from '../context.js';\nimport { colors } from '../utils/colors.js';\nimport { createExtensionPackCommand } from './extension-pack.js';\nimport { createExtensionCreateCommand } from './extension-create.js';\nimport { createExtensionDevCommand } from './extension-dev.js';\nimport {\n createExtensionInstallCommand,\n createExtensionPublishCommand,\n createExtensionSearchCommand,\n createExtensionUpdateCommand,\n} from './extension-marketplace.js';\n\nconst log = createLogger('ExtensionCommands');\n\n// ============================================\n// Extension List Command\n// ============================================\n\nexport function createExtensionListCommand(): Command {\n return new Command('list')\n .description('List installed extensions')\n .option('--json', 'Output as JSON')\n .action(async (options) => {\n try {\n const lockfileManager = getExtensionLockfileManager();\n const extensions = await lockfileManager.list();\n\n if (options.json) {\n console.log(JSON.stringify(extensions, null, 2));\n return;\n }\n\n if (extensions.length === 0) {\n console.log('No extensions installed.');\n return;\n }\n\n console.log(`Installed extensions (${extensions.length}):`);\n console.log();\n\n for (const ext of extensions) {\n console.log(`${colors.cyan(ext.name)}@${ext.version}`);\n console.log(` Source: ${ext.source}`);\n console.log(` Resolved: ${ext.resolved}`);\n console.log(` Installed: ${new Date(ext.installedAt).toLocaleString()}`);\n console.log();\n }\n } catch (error) {\n log.error({ error }, 'Failed to list extensions');\n console.error(colors.red('Error:'), error instanceof Error ? error.message : String(error));\n process.exit(1);\n }\n });\n}\n\n// ============================================\n// Extension Inspect Command\n// ============================================\n\nfunction hashInstalledExtensionDir(extensionDir: string): string | undefined {\n if (!existsSync(extensionDir)) return undefined;\n const hash = createHash('sha256');\n const walk = (dir: string, prefix = '') => {\n const entries = readdirSync(dir, { withFileTypes: true })\n .filter((entry) => entry.name !== 'node_modules')\n .sort((a, b) => a.name.localeCompare(b.name));\n for (const entry of entries) {\n const rel = prefix ? `${prefix}/${entry.name}` : entry.name;\n const full = join(dir, entry.name);\n if (entry.isDirectory()) {\n walk(full, rel);\n } else if (entry.isFile()) {\n const st = statSync(full);\n hash.update(`file\\0${rel}\\0${st.size}\\0`);\n hash.update(readFileSync(full));\n hash.update('\\0');\n }\n }\n };\n walk(extensionDir);\n return `dir-sha256-${hash.digest('base64')}`;\n}\n\nfunction readJson(path: string): Record<string, unknown> | undefined {\n try {\n const raw = JSON.parse(readFileSync(path, 'utf-8')) as unknown;\n return typeof raw === 'object' && raw !== null && !Array.isArray(raw)\n ? (raw as Record<string, unknown>)\n : undefined;\n } catch {\n return undefined;\n }\n}\n\nexport function createExtensionInspectCommand(): Command {\n return new Command('inspect')\n .description('Inspect an installed extension manifest and package contract')\n .argument('<extension>', 'Extension id')\n .option('--json', 'Output as JSON')\n .option('--runtime', 'Load the extension and include runtime registrations')\n .action(async (extensionId: string, options: { json?: boolean; runtime?: boolean }) => {\n try {\n const lockfileManager = getExtensionLockfileManager();\n const lockEntry = await lockfileManager.get(extensionId);\n const extensionDir = join(resolveExtensionsDir(), extensionId);\n const manifest = readJson(join(extensionDir, 'xopc.extension.json')) ?? lockEntry?.manifest;\n const packageJson = readJson(join(extensionDir, 'package.json')) ?? lockEntry?.packageJson;\n let runtime: Record<string, unknown> | undefined;\n if (options.runtime) {\n const loader = new ExtensionLoader({\n workspaceDir: process.cwd(),\n extensionsDir: resolveExtensionsDir(),\n });\n const api = await loader.loadExtension({\n id: extensionId,\n name: String(manifest?.name ?? extensionId),\n path: extensionDir,\n source: 'global',\n enabled: true,\n config: {},\n });\n const registry = loader.getRegistry();\n runtime = api\n ? {\n loaded: true,\n tools: Array.from(registry.tools.keys()),\n commands: Array.from(registry.commands.keys()),\n hooks: Array.from(registry.hooks.keys()),\n channels: registry.channelPlugins.map((p) => p.id),\n httpRoutes: Array.from(registry.httpRoutes.keys()),\n gatewayMethods: Array.from(registry.gatewayMethods.keys()),\n services: Array.from(registry.services.keys()),\n cliCommands: registry.getCliRegistrations().flatMap((r) => r.commands),\n tui: registry.getTuiRegistrations().map((r) => r.extensionId),\n }\n : { loaded: false, diagnostics: loader.getDiagnostics().getAll() };\n }\n\n const runtimeContractCheck = buildRuntimeContractCheck(manifest, runtime);\n const result = {\n id: extensionId,\n installed: Boolean(lockEntry),\n path: existsSync(extensionDir) ? extensionDir : undefined,\n lockEntry,\n manifest,\n packageJson,\n runtime,\n runtimeContractCheck,\n };\n\n if (options.json) {\n console.log(JSON.stringify(result, null, 2));\n return;\n }\n\n if (!lockEntry && !manifest) {\n console.error(colors.red('error:'), `Extension not found: ${extensionId}`);\n process.exit(1);\n }\n\n console.log(`${colors.cyan(String(manifest?.name ?? extensionId))} (${extensionId})`);\n if (manifest?.version || lockEntry?.version) {\n console.log(` Version: ${String(manifest?.version ?? lockEntry?.version)}`);\n }\n if (lockEntry) {\n console.log(` Source: ${lockEntry.source}`);\n console.log(` Resolved: ${lockEntry.resolved}`);\n if (lockEntry.integrity) console.log(` Integrity: ${lockEntry.integrity}`);\n }\n if (manifest?.main) console.log(` Main: ${String(manifest.main)}`);\n const engines = manifest?.engines as Record<string, unknown> | undefined;\n if (engines?.xopc) console.log(` engines.xopc: ${String(engines.xopc)}`);\n const contracts = manifest?.contracts as Record<string, unknown> | undefined;\n if (contracts) {\n console.log(' Contracts:');\n for (const [key, value] of Object.entries(contracts)) {\n if (Array.isArray(value) && value.length > 0) {\n console.log(` ${key}: ${value.join(', ')}`);\n }\n }\n }\n if (runtime) {\n console.log(' Runtime:');\n if (runtime.loaded === false) {\n console.log(' loaded: false');\n } else {\n for (const [key, value] of Object.entries(runtime)) {\n if (key === 'loaded') continue;\n if (Array.isArray(value) && value.length > 0) {\n console.log(` ${key}: ${value.join(', ')}`);\n }\n }\n }\n if (runtimeContractCheck.length > 0) {\n console.log(' Runtime contract check:');\n for (const check of runtimeContractCheck) {\n const marker = check.status === 'registered' ? colors.green('✓') : colors.red('✗');\n const suffix = check.status === 'missing' ? ' declared but not registered' : '';\n console.log(` ${marker} ${check.contract}.${check.declared}${suffix}`);\n }\n }\n }\n } catch (error) {\n log.error({ error }, 'Failed to inspect extension');\n console.error(colors.red('Error:'), error instanceof Error ? error.message : String(error));\n process.exit(1);\n }\n });\n}\n\n// ============================================\n// Extension Freeze Command\n// ============================================\n\nexport function createExtensionFreezeCommand(): Command {\n return new Command('freeze')\n .description('Lock current extension versions')\n .action(async () => {\n try {\n const lockfileManager = getExtensionLockfileManager();\n await lockfileManager.freeze();\n\n console.log(colors.green('✓'), 'Extension versions locked');\n } catch (error) {\n log.error({ error }, 'Failed to freeze extensions');\n console.error(colors.red('Error:'), error instanceof Error ? error.message : String(error));\n process.exit(1);\n }\n });\n}\n\n// ============================================\n// Extension Health Command\n// ============================================\n\nexport function createExtensionHealthCommand(): Command {\n return new Command('health')\n .description('Check extension health')\n .option('--json', 'Output as JSON')\n .action(async (options) => {\n try {\n const checker = getExtensionHealthChecker();\n const report = await checkAllExtensionsHealth();\n\n if (options.json) {\n console.log(JSON.stringify(report, null, 2));\n return;\n }\n\n console.log(checker.formatReport(report));\n\n // Exit with error code if there are errors\n if (report.summary.error > 0) {\n process.exit(1);\n }\n } catch (error) {\n log.error({ error }, 'Failed to check extension health');\n console.error(colors.red('Error:'), error instanceof Error ? error.message : String(error));\n process.exit(1);\n }\n });\n}\n\n// ============================================\n// Extension Verify Command\n// ============================================\n\nexport function createExtensionVerifyCommand(): Command {\n return new Command('verify')\n .description('Verify extension integrity')\n .argument('[extension]', 'Specific extension to verify (default: all)')\n .action(async (extensionId) => {\n try {\n const lockfileManager = getExtensionLockfileManager();\n\n if (extensionId) {\n const result = await lockfileManager.verify(extensionId);\n\n if (result.valid) {\n console.log(colors.green('✓'), `Extension \"${extensionId}\" is valid`);\n } else {\n console.log(colors.red('✗'), `Extension \"${extensionId}\" is invalid: ${result.reason}`);\n process.exit(1);\n }\n } else {\n const results = await lockfileManager.verifyAll();\n let hasErrors = false;\n\n for (const result of results) {\n if (result.valid) {\n console.log(colors.green('✓'), result.extensionId);\n } else {\n console.log(colors.red('✗'), `${result.extensionId}: ${result.reason}`);\n hasErrors = true;\n }\n }\n\n if (hasErrors) {\n process.exit(1);\n }\n }\n } catch (error) {\n log.error({ error }, 'Failed to verify extensions');\n console.error(colors.red('Error:'), error instanceof Error ? error.message : String(error));\n process.exit(1);\n }\n });\n}\n\n// ============================================\n// Extension Doctor Command\n// ============================================\n\ninterface DoctorIssue {\n level: 'error' | 'warning';\n extensionId: string;\n message: string;\n}\n\nfunction listContractValues(manifest: Record<string, unknown>, key: string): string[] {\n const contracts = manifest.contracts;\n if (typeof contracts !== 'object' || contracts === null || Array.isArray(contracts)) return [];\n const value = (contracts as Record<string, unknown>)[key];\n return Array.isArray(value) ? value.filter((x): x is string => typeof x === 'string') : [];\n}\n\nfunction contractAllows(values: string[], candidate: string): boolean {\n return values.some((value) => value === candidate || (value.endsWith('*') && candidate.startsWith(value.slice(0, -1))));\n}\n\nfunction buildRuntimeContractCheck(\n manifest: Record<string, unknown> | undefined,\n runtime: Record<string, unknown> | undefined,\n): Array<{ contract: string; declared: string; status: 'registered' | 'missing' }> {\n if (!manifest || !runtime || runtime.loaded === false) return [];\n const out: Array<{ contract: string; declared: string; status: 'registered' | 'missing' }> = [];\n for (const key of ['tools', 'commands', 'hooks', 'channels', 'httpRoutes', 'gatewayMethods', 'services', 'cliCommands', 'tui']) {\n const declared = listContractValues(manifest, key);\n const registered = Array.isArray(runtime[key]) ? (runtime[key] as unknown[]).filter((x): x is string => typeof x === 'string') : [];\n for (const item of declared) {\n if (item.endsWith('*')) continue;\n out.push({\n contract: key,\n declared: item,\n status: registered.includes(item) ? 'registered' : 'missing',\n });\n }\n }\n return out;\n}\n\nfunction collectStringLiteralCalls(source: string, method: string): string[] {\n const out: string[] = [];\n const re = new RegExp(`\\\\.${method}\\\\(\\\\s*['\\\"]([^'\\\"]+)['\\\"]`, 'g');\n for (const match of source.matchAll(re)) {\n if (match[1]) out.push(match[1]);\n }\n return out;\n}\n\nfunction collectObjectNameRegistrations(source: string, method: string, field: string): string[] {\n const out: string[] = [];\n const re = new RegExp(`\\\\.${method}\\\\(\\\\s*\\\\{[\\\\s\\\\S]*?\\\\b${field}\\\\s*:\\\\s*['\\\"]([^'\\\"]+)['\\\"]`, 'g');\n for (const match of source.matchAll(re)) {\n if (match[1]) out.push(match[1]);\n }\n return out;\n}\n\nfunction diagnoseExtensionPackage(extensionId: string, extensionDir: string): DoctorIssue[] {\n const issues: DoctorIssue[] = [];\n const manifest = readJson(join(extensionDir, 'xopc.extension.json'));\n if (!manifest) {\n return [{ level: 'error', extensionId, message: 'Missing xopc.extension.json' }];\n }\n\n const main = typeof manifest.main === 'string' ? manifest.main : '';\n if (!main) {\n issues.push({ level: 'error', extensionId, message: 'manifest.main is required' });\n } else if (!/\\.(js|mjs|cjs)$/i.test(main)) {\n issues.push({ level: 'error', extensionId, message: `manifest.main must point at built JavaScript, got ${main}` });\n } else if (!existsSync(join(extensionDir, main))) {\n issues.push({ level: 'error', extensionId, message: `manifest.main target does not exist: ${main}` });\n }\n\n const engines = manifest.engines;\n const xopcRange = typeof engines === 'object' && engines !== null && !Array.isArray(engines)\n ? (engines as Record<string, unknown>).xopc\n : undefined;\n if (typeof xopcRange !== 'string' || !xopcRange.trim()) {\n issues.push({ level: 'error', extensionId, message: 'engines.xopc is required' });\n } else {\n const engineCheck = checkEngineCompatibility(PACKAGE_VERSION, xopcRange);\n if (engineCheck.parseWarning || !engineCheck.compatible) {\n issues.push({\n level: 'error',\n extensionId,\n message: engineCheck.reason ?? `xopc ${PACKAGE_VERSION} does not satisfy engines.xopc ${xopcRange}`,\n });\n }\n }\n\n const pkg = readJson(join(extensionDir, 'package.json'));\n if (pkg) {\n for (const issue of collectExtensionPackageDependencyIssues(pkg, { strictRuntimeSdkDeps: true })) {\n issues.push({ level: 'error', extensionId, message: issue.message });\n }\n }\n\n if (main && existsSync(join(extensionDir, main))) {\n const source = readFileSync(join(extensionDir, main), 'utf-8');\n const checks: Array<{ contract: string; values: string[] }> = [\n { contract: 'hooks', values: collectStringLiteralCalls(source, 'registerHook') },\n { contract: 'hooks', values: collectStringLiteralCalls(source, 'onHook') },\n { contract: 'httpRoutes', values: collectStringLiteralCalls(source, 'registerHttpRoute') },\n { contract: 'gatewayMethods', values: collectStringLiteralCalls(source, 'registerGatewayMethod') },\n { contract: 'tools', values: collectObjectNameRegistrations(source, 'registerTool', 'name') },\n { contract: 'commands', values: collectObjectNameRegistrations(source, 'registerCommand', 'name') },\n { contract: 'services', values: collectObjectNameRegistrations(source, 'registerService', 'id') },\n ];\n for (const check of checks) {\n const declared = listContractValues(manifest, check.contract);\n for (const value of check.values) {\n if (!contractAllows(declared, value)) {\n issues.push({\n level: 'error',\n extensionId,\n message: `Runtime registers ${check.contract}:${value} but manifest contracts.${check.contract} does not declare it`,\n });\n }\n }\n }\n }\n\n return issues;\n}\n\nexport function createExtensionDoctorCommand(): Command {\n return new Command('doctor')\n .description('Diagnose installed extension package contracts')\n .option('--json', 'Output as JSON')\n .option('--fix', 'Refresh lockfile snapshots and installed file integrity for valid installed extensions')\n .action(async (options: { json?: boolean; fix?: boolean }) => {\n try {\n const ctx = getContextWithOpts();\n const cfg = loadConfig(ctx.configPath) as Record<string, unknown>;\n const extensionsConfig =\n typeof cfg.extensions === 'object' && cfg.extensions !== null && !Array.isArray(cfg.extensions)\n ? (cfg.extensions as Record<string, unknown>)\n : undefined;\n const enabledIds = Array.isArray(extensionsConfig?.enabled)\n ? extensionsConfig.enabled.filter((x): x is string => typeof x === 'string')\n : [];\n const lockfileManager = getExtensionLockfileManager();\n const extensions = await lockfileManager.list();\n const issues: DoctorIssue[] = [];\n const lockDir = resolveExtensionsDir();\n const lockedIds = new Set(extensions.map((entry) => entry.name));\n for (const entry of extensions) {\n const extensionDir = join(lockDir, entry.name);\n if (!existsSync(extensionDir)) {\n issues.push({ level: 'error', extensionId: entry.name, message: 'Lockfile entry exists but extension directory is missing; reinstall the extension' });\n continue;\n }\n const entryIssues = diagnoseExtensionPackage(entry.name, extensionDir);\n issues.push(...entryIssues);\n if (options.fix && entryIssues.length === 0) {\n await lockfileManager.upsert(entry.name, {\n ...entry,\n manifest: readJson(join(extensionDir, 'xopc.extension.json')),\n packageJson: readJson(join(extensionDir, 'package.json')),\n installedIntegrity: hashInstalledExtensionDir(extensionDir),\n });\n }\n }\n\n for (const enabledId of enabledIds) {\n if (!lockedIds.has(enabledId) && !existsSync(join(lockDir, enabledId))) {\n if (options.fix && extensionsConfig) {\n extensionsConfig.enabled = enabledIds.filter((id) => id !== enabledId);\n issues.push({ level: 'warning', extensionId: enabledId, message: 'Removed from extensions.enabled because it is not installed' });\n } else {\n issues.push({ level: 'error', extensionId: enabledId, message: 'Configured in extensions.enabled but not installed' });\n }\n }\n }\n if (options.fix && extensionsConfig) {\n await saveConfig(cfg as Parameters<typeof saveConfig>[0], ctx.configPath);\n }\n\n if (existsSync(lockDir)) {\n for (const dirent of readdirSync(lockDir, { withFileTypes: true })) {\n if (!dirent.isDirectory() || lockedIds.has(dirent.name)) continue;\n const extensionDir = join(lockDir, dirent.name);\n const entryIssues = diagnoseExtensionPackage(dirent.name, extensionDir);\n if (entryIssues.length > 0) {\n issues.push(...entryIssues);\n issues.push({ level: 'error', extensionId: dirent.name, message: 'Extension directory is not recorded in the lockfile and cannot be auto-fixed until package contract errors are resolved' });\n continue;\n }\n if (!options.fix) {\n issues.push({ level: 'warning', extensionId: dirent.name, message: 'Extension directory is not recorded in the lockfile' });\n }\n if (options.fix) {\n const manifest = readJson(join(extensionDir, 'xopc.extension.json'));\n const packageJson = readJson(join(extensionDir, 'package.json'));\n await lockfileManager.upsert(dirent.name, {\n name: dirent.name,\n version: String(manifest?.version ?? packageJson?.version ?? '0.0.0'),\n resolved: extensionDir,\n source: 'local',\n manifest,\n packageJson,\n installedIntegrity: hashInstalledExtensionDir(extensionDir),\n });\n }\n }\n }\n\n if (options.json) {\n console.log(JSON.stringify({ ok: issues.every((i) => i.level !== 'error'), issues }, null, 2));\n return;\n }\n\n if (issues.length === 0) {\n console.log(colors.green('✓'), options.fix\n ? 'All installed extensions satisfy the package contract; lockfile snapshots refreshed'\n : 'All installed extensions satisfy the package contract');\n return;\n }\n for (const issue of issues) {\n const marker = issue.level === 'error' ? colors.red('✗') : colors.yellow('⚠');\n console.log(marker, `${issue.extensionId}: ${issue.message}`);\n }\n if (issues.some((i) => i.level === 'error')) process.exit(1);\n } catch (error) {\n log.error({ error }, 'Failed to run extension doctor');\n console.error(colors.red('Error:'), error instanceof Error ? error.message : String(error));\n process.exit(1);\n }\n });\n}\n\n// ============================================\n// Extension Audit Command\n// ============================================\n\nexport function createExtensionAuditCommand(): Command {\n return new Command('audit')\n .description('Audit extensions for security issues')\n .action(async () => {\n try {\n const checker = getExtensionHealthChecker();\n\n // Check for orphaned extensions\n const orphaned = await checker.findOrphaned();\n\n if (orphaned.length > 0) {\n console.log(colors.yellow('⚠'), 'Orphaned extensions found:');\n for (const ext of orphaned) {\n console.log(` - ${ext}`);\n }\n console.log();\n console.log('These extensions are installed but not in the lockfile.');\n console.log('Run `xopc extensions freeze` to add them.');\n } else {\n console.log(colors.green('✓'), 'No orphaned extensions found');\n }\n\n // Run health check\n const report = await checkAllExtensionsHealth();\n\n if (report.summary.error > 0 || report.summary.warning > 0) {\n console.log();\n console.log(checker.formatReport(report));\n } else {\n console.log(colors.green('✓'), 'All extensions are healthy');\n }\n } catch (error) {\n log.error({ error }, 'Failed to audit extensions');\n console.error(colors.red('Error:'), error instanceof Error ? error.message : String(error));\n process.exit(1);\n }\n });\n}\n\n// ============================================\n// Register All Commands\n// ============================================\n\nexport function registerExtensionCommands(program: Command): void {\n const extensions = new Command('extensions')\n .description('Manage extensions')\n .addCommand(createExtensionListCommand())\n .addCommand(createExtensionInspectCommand())\n .addCommand(createExtensionFreezeCommand())\n .addCommand(createExtensionHealthCommand())\n .addCommand(createExtensionVerifyCommand())\n .addCommand(createExtensionDoctorCommand())\n .addCommand(createExtensionAuditCommand())\n .addCommand(createExtensionPackCommand())\n .addCommand(createExtensionCreateCommand())\n .addCommand(createExtensionDevCommand())\n .addCommand(createExtensionInstallCommand())\n .addCommand(createExtensionSearchCommand())\n .addCommand(createExtensionPublishCommand())\n .addCommand(createExtensionUpdateCommand());\n\n program.addCommand(extensions);\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"call.js","names":[],"sources":["../../../../../src/cli/commands/gateway/call.ts"],"sourcesContent":["import { Command } from 'commander';\n\nimport {\n addGatewayClientOptions,\n parseGatewayClientOptions,\n} from '../../utils/gateway-client-options.js';\nimport { getContextWithOpts } from '../../context.js';\nimport { resolveConfigPath } from '../../../config/paths.js';\n\nconst METHOD_ALIASES: Record<string, { method: 'GET' | 'POST'; path: string }> = {\n health: { method: 'GET', path: '/api/health' },\n status: { method: 'GET', path: '/api/status' },\n config: { method: 'GET', path: '/api/config' },\n sessions: { method: 'GET', path: '/api/sessions' },\n models: { method: 'GET', path: '/api/models' },\n channels: { method: 'GET', path: '/api/channels/status' },\n automations: { method: 'GET', path: '/api/automations' },\n logs: { method: 'GET', path: '/api/logs' },\n agents: { method: 'GET', path: '/api/agents' },\n};\n\nexport function createCallCommand(): Command {\n const cmd = new Command('call')\n .description('Call a gateway API method')\n .argument(\n '<method>',\n `Method name or API path. Built-in aliases: ${Object.keys(METHOD_ALIASES).join(', ')}`,\n )\n .option('--params <json>', 'JSON body for POST/PATCH/DELETE requests', '{}')\n .option('--http-method <method>', 'HTTP method when using a raw path', 'GET');\n\n addGatewayClientOptions(cmd);\n\n cmd.action(async (methodArg: string, options: { params?: string; httpMethod?: string }) => {\n const ctx = getContextWithOpts();\n const configPath = ctx.configPath || resolveConfigPath();\n const { callGatewayApi } = await import('../../utils/gateway-client.js');\n const clientOpts = { ...parseGatewayClientOptions(options as Record<string, unknown>), configPath };\n\n const alias = METHOD_ALIASES[methodArg.toLowerCase()];\n let httpMethod: 'GET' | 'POST' | 'PATCH' | 'DELETE';\n let apiPath: string;\n\n if (alias) {\n httpMethod = alias.method;\n apiPath = alias.path;\n } else if (methodArg.startsWith('/')) {\n httpMethod = (options.httpMethod?.toUpperCase() ?? 'GET') as 'GET' | 'POST' | 'PATCH' | 'DELETE';\n apiPath = methodArg;\n } else {\n httpMethod = (options.httpMethod?.toUpperCase() ?? 'GET') as 'GET' | 'POST' | 'PATCH' | 'DELETE';\n apiPath = `/api/${methodArg}`;\n }\n\n let body: unknown | undefined;\n if (httpMethod !== 'GET' && options.params && options.params !== '{}') {\n try {\n body = JSON.parse(options.params);\n } catch {\n console.error(`❌ Invalid JSON in --params: ${options.params}`);\n process.exit(1);\n }\n }\n\n const result = await callGatewayApi(httpMethod, apiPath, clientOpts, body);\n\n if (clientOpts.json || result.ok) {\n console.log(\n JSON.stringify(\n result.ok\n ? result.data\n : { error: result.error, status: result.status, durationMs: result.durationMs },\n null,\n 2,\n ),\n );\n }\n\n if (!result.ok) {\n if (!clientOpts.json) {\n console.error(`❌ Gateway call failed: ${result.error} (status ${result.status}, ${result.durationMs}ms)`);\n }\n process.exit(1);\n }\n });\n\n return cmd;\n}\n"],"mappings":";;;;;YAO6D;AAE7D,MAAM,iBAA2E;CAC/E,QAAQ;EAAE,QAAQ;EAAO,MAAM;EAAe;CAC9C,QAAQ;EAAE,QAAQ;EAAO,MAAM;EAAe;CAC9C,QAAQ;EAAE,QAAQ;EAAO,MAAM;EAAe;CAC9C,UAAU;EAAE,QAAQ;EAAO,MAAM;EAAiB;CAClD,QAAQ;EAAE,QAAQ;EAAO,MAAM;EAAe;CAC9C,UAAU;EAAE,QAAQ;EAAO,MAAM;EAAwB;CACzD,aAAa;EAAE,QAAQ;EAAO,MAAM;EAAoB;CACxD,MAAM;EAAE,QAAQ;EAAO,MAAM;EAAa;CAC1C,QAAQ;EAAE,QAAQ;EAAO,MAAM;EAAe;CAC/C;AAED,SAAgB,oBAA6B;CAC3C,MAAM,MAAM,IAAI,QAAQ,OAAO,CAC5B,YAAY,4BAA4B,CACxC,SACC,YACA,8CAA8C,OAAO,KAAK,eAAe,CAAC,KAAK,KAAK,GACrF,CACA,OAAO,mBAAmB,4CAA4C,KAAK,CAC3E,OAAO,0BAA0B,qCAAqC,MAAM;AAE/E,yBAAwB,IAAI;AAE5B,KAAI,OAAO,OAAO,WAAmB,YAAsD;EAEzF,MAAM,aADM,oBACU,CAAC,cAAc,mBAAmB;EACxD,MAAM,EAAE,mBAAmB,MAAM,OAAO;EACxC,MAAM,aAAa;GAAE,GAAG,0BAA0B,QAAmC;GAAE;GAAY;EAEnG,MAAM,QAAQ,eAAe,UAAU,aAAa;EACpD,IAAI;EACJ,IAAI;AAEJ,MAAI,OAAO;AACT,gBAAa,MAAM;AACnB,aAAU,MAAM;aACP,UAAU,WAAW,IAAI,EAAE;AACpC,gBAAc,QAAQ,YAAY,aAAa,IAAI;AACnD,aAAU;SACL;AACL,gBAAc,QAAQ,YAAY,aAAa,IAAI;AACnD,aAAU,QAAQ;;EAGpB,IAAI;AACJ,MAAI,eAAe,SAAS,QAAQ,UAAU,QAAQ,WAAW,KAC/D,KAAI;AACF,UAAO,KAAK,MAAM,QAAQ,OAAO;UAC3B;AACN,WAAQ,MAAM,+BAA+B,QAAQ,SAAS;AAC9D,WAAQ,KAAK,EAAE;;EAInB,MAAM,SAAS,MAAM,eAAe,YAAY,SAAS,YAAY,KAAK;AAE1E,MAAI,WAAW,QAAQ,OAAO,GAC5B,SAAQ,IACN,KAAK,UACH,OAAO,KACH,OAAO,OACP;GAAE,OAAO,OAAO;GAAO,QAAQ,OAAO;GAAQ,YAAY,OAAO;GAAY,EACjF,MACA,EACD,CACF;AAGH,MAAI,CAAC,OAAO,IAAI;AACd,OAAI,CAAC,WAAW,KACd,SAAQ,MAAM,0BAA0B,OAAO,MAAM,WAAW,OAAO,OAAO,IAAI,OAAO,WAAW,KAAK;AAE3G,WAAQ,KAAK,EAAE;;GAEjB;AAEF,QAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"health.js","names":[],"sources":["../../../../../src/cli/commands/gateway/health.ts"],"sourcesContent":["import { Command } from 'commander';\n\nimport {\n addGatewayClientOptions,\n parseGatewayClientOptions,\n} from '../../utils/gateway-client-options.js';\nimport { getContextWithOpts } from '../../context.js';\nimport { resolveConfigPath } from '../../../config/paths.js';\n\ninterface HealthResponse {\n status: string;\n version?: string;\n uptime?: number;\n}\n\ninterface StatusResponse {\n status: string;\n version?: string;\n channels?: Record<string, { status: string; accounts?: number }>;\n uptime?: number;\n}\n\nfunction formatUptime(seconds?: number): string {\n if (!seconds || seconds <= 0) return 'unknown';\n const days = Math.floor(seconds / 86400);\n const hours = Math.floor((seconds % 86400) / 3600);\n const minutes = Math.floor((seconds % 3600) / 60);\n const parts: string[] = [];\n if (days > 0) parts.push(`${days}d`);\n if (hours > 0) parts.push(`${hours}h`);\n parts.push(`${minutes}m`);\n return parts.join(' ');\n}\n\nexport function createHealthCommand(): Command {\n const cmd = new Command('health').description('Check gateway health and channel status');\n\n addGatewayClientOptions(cmd);\n\n cmd.action(async (options) => {\n const ctx = getContextWithOpts();\n const configPath = ctx.configPath || resolveConfigPath();\n const { callGatewayApi } = await import('../../utils/gateway-client.js');\n const clientOpts = { ...parseGatewayClientOptions(options as Record<string, unknown>), configPath };\n\n const healthResult = await callGatewayApi<HealthResponse>('GET', '/api/health', {\n ...clientOpts,\n timeoutMs: clientOpts.timeoutMs ?? 5000,\n });\n\n if (!healthResult.ok) {\n if (clientOpts.json) {\n console.log(\n JSON.stringify(\n {\n status: 'unreachable',\n error: healthResult.error,\n durationMs: healthResult.durationMs,\n },\n null,\n 2,\n ),\n );\n } else {\n console.error(`❌ Gateway unreachable: ${healthResult.error}`);\n console.error('');\n console.error('💡 Is the gateway running? Try: xopc gateway');\n }\n process.exit(1);\n }\n\n const statusResult = await callGatewayApi<StatusResponse>('GET', '/api/status', clientOpts);\n\n if (clientOpts.json) {\n console.log(\n JSON.stringify(\n {\n status: 'ok',\n durationMs: healthResult.durationMs,\n health: healthResult.data,\n ...(statusResult.ok ? { details: statusResult.data } : {}),\n },\n null,\n 2,\n ),\n );\n process.exit(0);\n }\n\n console.log(`✅ Gateway Health: OK (${healthResult.durationMs}ms)`);\n console.log('');\n\n if (healthResult.data?.version) {\n console.log(` Version: ${healthResult.data.version}`);\n }\n if (healthResult.data?.uptime != null) {\n console.log(` Uptime: ${formatUptime(healthResult.data.uptime)}`);\n }\n\n if (statusResult.ok && statusResult.data?.channels) {\n console.log('');\n console.log('📡 Channels:');\n for (const [name, info] of Object.entries(statusResult.data.channels)) {\n const statusIcon = info.status === 'connected' ? '✅' : info.status === 'disabled' ? '⚪' : '❌';\n const accountsLabel = info.accounts != null ? ` (${info.accounts} account(s))` : '';\n console.log(` ${statusIcon} ${name}: ${info.status}${accountsLabel}`);\n }\n } else if (statusResult.status === 401) {\n console.log('');\n console.log('🔒 Detailed status requires authentication. Pass --token <token>.');\n }\n\n process.exit(0);\n });\n\n return cmd;\n}\n"],"mappings":";;;;;YAO6D;AAe7D,SAAS,aAAa,SAA0B;AAC9C,KAAI,CAAC,WAAW,WAAW,EAAG,QAAO;CACrC,MAAM,OAAO,KAAK,MAAM,UAAU,MAAM;CACxC,MAAM,QAAQ,KAAK,MAAO,UAAU,QAAS,KAAK;CAClD,MAAM,UAAU,KAAK,MAAO,UAAU,OAAQ,GAAG;CACjD,MAAM,QAAkB,EAAE;AAC1B,KAAI,OAAO,EAAG,OAAM,KAAK,GAAG,KAAK,GAAG;AACpC,KAAI,QAAQ,EAAG,OAAM,KAAK,GAAG,MAAM,GAAG;AACtC,OAAM,KAAK,GAAG,QAAQ,GAAG;AACzB,QAAO,MAAM,KAAK,IAAI;;AAGxB,SAAgB,sBAA+B;CAC7C,MAAM,MAAM,IAAI,QAAQ,SAAS,CAAC,YAAY,0CAA0C;AAExF,yBAAwB,IAAI;AAE5B,KAAI,OAAO,OAAO,YAAY;EAE5B,MAAM,aADM,oBACU,CAAC,cAAc,mBAAmB;EACxD,MAAM,EAAE,mBAAmB,MAAM,OAAO;EACxC,MAAM,aAAa;GAAE,GAAG,0BAA0B,QAAmC;GAAE;GAAY;EAEnG,MAAM,eAAe,MAAM,eAA+B,OAAO,eAAe;GAC9E,GAAG;GACH,WAAW,WAAW,aAAa;GACpC,CAAC;AAEF,MAAI,CAAC,aAAa,IAAI;AACpB,OAAI,WAAW,KACb,SAAQ,IACN,KAAK,UACH;IACE,QAAQ;IACR,OAAO,aAAa;IACpB,YAAY,aAAa;IAC1B,EACD,MACA,EACD,CACF;QACI;AACL,YAAQ,MAAM,0BAA0B,aAAa,QAAQ;AAC7D,YAAQ,MAAM,GAAG;AACjB,YAAQ,MAAM,+CAA+C;;AAE/D,WAAQ,KAAK,EAAE;;EAGjB,MAAM,eAAe,MAAM,eAA+B,OAAO,eAAe,WAAW;AAE3F,MAAI,WAAW,MAAM;AACnB,WAAQ,IACN,KAAK,UACH;IACE,QAAQ;IACR,YAAY,aAAa;IACzB,QAAQ,aAAa;IACrB,GAAI,aAAa,KAAK,EAAE,SAAS,aAAa,MAAM,GAAG,EAAE;IAC1D,EACD,MACA,EACD,CACF;AACD,WAAQ,KAAK,EAAE;;AAGjB,UAAQ,IAAI,yBAAyB,aAAa,WAAW,KAAK;AAClE,UAAQ,IAAI,GAAG;AAEf,MAAI,aAAa,MAAM,QACrB,SAAQ,IAAI,eAAe,aAAa,KAAK,UAAU;AAEzD,MAAI,aAAa,MAAM,UAAU,KAC/B,SAAQ,IAAI,eAAe,aAAa,aAAa,KAAK,OAAO,GAAG;AAGtE,MAAI,aAAa,MAAM,aAAa,MAAM,UAAU;AAClD,WAAQ,IAAI,GAAG;AACf,WAAQ,IAAI,eAAe;AAC3B,QAAK,MAAM,CAAC,MAAM,SAAS,OAAO,QAAQ,aAAa,KAAK,SAAS,EAAE;IACrE,MAAM,aAAa,KAAK,WAAW,cAAc,MAAM,KAAK,WAAW,aAAa,MAAM;IAC1F,MAAM,gBAAgB,KAAK,YAAY,OAAO,KAAK,KAAK,SAAS,gBAAgB;AACjF,YAAQ,IAAI,MAAM,WAAW,GAAG,KAAK,IAAI,KAAK,SAAS,gBAAgB;;aAEhE,aAAa,WAAW,KAAK;AACtC,WAAQ,IAAI,GAAG;AACf,WAAQ,IAAI,oEAAoE;;AAGlF,UAAQ,KAAK,EAAE;GACf;AAEF,QAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"lifecycle-core.js","names":[],"sources":["../../../../../src/cli/commands/gateway/lifecycle-core.ts"],"sourcesContent":["/**\n * Daemon lifecycle core — OpenClaw-aligned service start/stop/restart with onNotLoaded fallback.\n */\n\nimport { createLogger } from '../../../utils/logger.js';\nimport type {\n DaemonLifecycleOptions,\n GatewayService,\n} from '../../../daemon/types.js';\nimport {\n clearGatewayRestartIntentSync,\n writeGatewayRestartIntentSync,\n} from '../../../infra/restart.js';\n\nconst log = createLogger('DaemonLifecycle');\n\nexport type ServiceRecoveryResult = {\n result: 'started' | 'stopped' | 'restarted';\n message?: string;\n warnings?: string[];\n loaded?: boolean;\n};\n\ntype ServiceRecoveryContext = {\n json: boolean;\n fail: (message: string, hints?: string[], diagnostics?: string[], options?: DaemonLifecycleOptions) => void;\n};\n\ntype RestartPostCheckContext = {\n options: DaemonLifecycleOptions;\n fail: (message: string, hints?: string[], diagnostics?: string[], options?: DaemonLifecycleOptions) => void;\n};\n\nfunction emitResult(\n options: DaemonLifecycleOptions,\n payload: {\n ok: boolean;\n result?: string;\n message?: string;\n error?: string;\n hints?: string[];\n warnings?: string[];\n },\n): void {\n if (options.json) {\n console.log(JSON.stringify(payload, null, 2));\n return;\n }\n if (payload.ok) {\n if (payload.message) {\n console.log(`✅ ${payload.message}`);\n }\n for (const warning of payload.warnings ?? []) {\n console.warn(`⚠️ ${warning}`);\n }\n return;\n }\n if (payload.error) {\n console.error(`❌ ${payload.error}`);\n }\n for (const hint of payload.hints ?? []) {\n console.log(`💡 ${hint}`);\n }\n}\n\nfunction createFail(options: DaemonLifecycleOptions) {\n return (\n message: string,\n hints?: string[],\n diagnostics?: string[],\n opts: DaemonLifecycleOptions = options,\n ) => {\n emitResult(opts, { ok: false, error: message, hints });\n for (const line of diagnostics ?? []) {\n if (!opts.json) {\n console.log(` ${line}`);\n }\n }\n process.exit(1);\n };\n}\n\nasync function resolveServiceLoadedOrFail(\n service: GatewayService,\n fail: ServiceRecoveryContext['fail'],\n): Promise<boolean | null> {\n try {\n return await service.isLoaded({ env: process.env });\n } catch (err) {\n fail(`Gateway service check failed: ${String(err)}`);\n return null;\n }\n}\n\nasync function handleServiceNotLoaded(params: {\n service: GatewayService;\n renderStartHints: () => string[];\n options: DaemonLifecycleOptions;\n}): Promise<void> {\n emitResult(params.options, {\n ok: true,\n result: 'not-loaded',\n message: `Gateway service ${params.service.notLoadedText}.`,\n hints: params.renderStartHints(),\n });\n}\n\nasync function checkAndWarnTokenDrift(\n service: GatewayService,\n options: DaemonLifecycleOptions,\n): Promise<string[]> {\n const warnings: string[] = [];\n try {\n const command = await service.readCommand(process.env);\n const serviceToken = command?.environment?.XOPC_GATEWAY_TOKEN;\n if (!serviceToken) {\n return warnings;\n }\n const { loadConfig } = await import('../../../config/index.js');\n const { resolveConfigPath } = await import('../../../config/paths.js');\n const config = loadConfig(resolveConfigPath());\n const configToken = config?.gateway?.auth?.token;\n if (configToken && serviceToken !== configToken) {\n const warning =\n 'Token drift detected: service token differs from config. Run `xopc gateway service install --force` to sync.';\n warnings.push(warning);\n if (!options.json) {\n console.warn(`⚠️ ${warning}`);\n }\n }\n } catch {\n // Best-effort\n }\n return warnings;\n}\n\nexport async function runServiceStop(params: {\n service: GatewayService;\n opts?: DaemonLifecycleOptions;\n onNotLoaded?: (ctx: ServiceRecoveryContext) => Promise<ServiceRecoveryResult | null>;\n}): Promise<void> {\n const options = params.opts ?? {};\n const fail = createFail(options);\n const loaded = await resolveServiceLoadedOrFail(params.service, fail);\n if (loaded === null) {\n return;\n }\n\n if (!loaded) {\n try {\n const handled = await params.onNotLoaded?.({ json: Boolean(options.json), fail });\n if (handled) {\n emitResult(options, {\n ok: true,\n result: handled.result,\n message: handled.message,\n warnings: handled.warnings,\n });\n return;\n }\n } catch (err) {\n fail(`Gateway stop failed: ${String(err)}`);\n return;\n }\n await handleServiceNotLoaded({\n service: params.service,\n renderStartHints: () => ['xopc gateway service install', 'xopc gateway'],\n options,\n });\n return;\n }\n\n try {\n await params.service.stop({ env: process.env, disable: options.disable });\n emitResult(options, {\n ok: true,\n result: 'stopped',\n message: options.disable\n ? 'Gateway stopped and disabled (will not respawn).'\n : 'Gateway stopped.',\n });\n } catch (err) {\n log.error({ err }, 'Failed to stop gateway');\n fail(`Gateway stop failed: ${String(err)}`);\n }\n}\n\nexport async function runServiceRestart(params: {\n service: GatewayService;\n opts?: DaemonLifecycleOptions;\n renderStartHints: () => string[];\n checkTokenDrift?: boolean;\n onNotLoaded?: (ctx: ServiceRecoveryContext) => Promise<ServiceRecoveryResult | null>;\n postRestartCheck?: (ctx: RestartPostCheckContext) => Promise<void>;\n}): Promise<void> {\n const options = params.opts ?? {};\n const fail = createFail(options);\n const warnings: string[] = [];\n let handledRecovery: ServiceRecoveryResult | null = null;\n\n const loaded = await resolveServiceLoadedOrFail(params.service, fail);\n if (loaded === null) {\n return;\n }\n\n if (!loaded) {\n try {\n handledRecovery = (await params.onNotLoaded?.({ json: Boolean(options.json), fail })) ?? null;\n } catch (err) {\n fail(`Gateway restart failed: ${String(err)}`);\n return;\n }\n if (!handledRecovery) {\n await handleServiceNotLoaded({\n service: params.service,\n renderStartHints: params.renderStartHints,\n options,\n });\n return;\n }\n if (handledRecovery.warnings?.length) {\n warnings.push(...handledRecovery.warnings);\n }\n }\n\n if (loaded && params.checkTokenDrift) {\n warnings.push(...(await checkAndWarnTokenDrift(params.service, options)));\n }\n\n try {\n if (loaded) {\n let wroteRestartIntent = false;\n const runtime = await params.service.readRuntime(process.env).catch(() => null);\n wroteRestartIntent = writeGatewayRestartIntentSync({ targetPid: runtime?.pid });\n try {\n await params.service.restart({ env: process.env });\n } catch (err) {\n if (wroteRestartIntent) {\n clearGatewayRestartIntentSync();\n }\n throw err;\n }\n }\n\n if (params.postRestartCheck) {\n await params.postRestartCheck({ options, fail });\n }\n\n if (options.wait) {\n const timeoutMs = parseWaitTimeout(options.wait);\n const { loadConfig } = await import('../../../config/index.js');\n const { resolveConfigPath } = await import('../../../config/paths.js');\n const config = loadConfig(resolveConfigPath());\n const port = typeof config.gateway?.port === 'number' ? config.gateway.port : 18790;\n const { waitForRestartHealth } = await import('./restart-health.js');\n const snapshot = await waitForRestartHealth({\n service: params.service,\n port,\n timeoutMs,\n onProgress: () => {\n if (!options.json) {\n process.stdout.write('.');\n }\n },\n });\n if (!options.json) {\n process.stdout.write('\\n');\n }\n if (!snapshot.healthy) {\n fail(`Restart health check failed: ${snapshot.waitOutcome ?? 'timeout'}`, [\n 'xopc gateway logs',\n ]);\n return;\n }\n emitResult(options, {\n ok: true,\n result: 'healthy',\n message: `Gateway restarted and healthy (pid ${snapshot.runtime?.pid ?? 'unknown'}, ${snapshot.elapsedMs ?? 0}ms).`,\n warnings: warnings.length ? warnings : undefined,\n });\n return;\n }\n\n emitResult(options, {\n ok: true,\n result: 'restarted',\n message: handledRecovery?.message ?? 'Gateway restart completed.',\n warnings: warnings.length ? warnings : undefined,\n });\n } catch (err) {\n log.error({ err }, 'Failed to restart gateway');\n fail(`Gateway restart failed: ${String(err)}`, params.renderStartHints());\n } finally {\n clearGatewayRestartIntentSync();\n }\n}\n\nexport async function executeDaemonUninstall(options: DaemonLifecycleOptions = {}): Promise<void> {\n const { resolveGatewayService, isDaemonAvailableAsync } = await import('../../../daemon/service.js');\n const available = await isDaemonAvailableAsync();\n if (!available) {\n emitResult(options, { ok: false, error: 'Daemon service not available on this platform' });\n process.exit(1);\n }\n const service = await resolveGatewayService();\n const loaded = await service.isLoaded({ env: process.env }).catch(() => false);\n if (loaded) {\n try {\n await service.stop({ env: process.env });\n } catch {\n // Best-effort\n }\n }\n try {\n await service.uninstall({ env: process.env });\n emitResult(options, { ok: true, result: 'uninstalled', message: 'Gateway service uninstalled.' });\n } catch (err) {\n log.error({ err }, 'Failed to uninstall gateway service');\n emitResult(options, { ok: false, error: `Failed to uninstall: ${String(err)}` });\n process.exit(1);\n }\n}\n\nfunction parseWaitTimeout(wait: string): number {\n const match = wait.match(/^(\\d+)(s|m|ms)?$/);\n if (!match) return 60_000;\n const value = parseInt(match[1], 10);\n const unit = match[2] || 's';\n switch (unit) {\n case 'ms':\n return value;\n case 'm':\n return value * 60_000;\n case 's':\n default:\n return value * 1000;\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"lifecycle.js","names":[],"sources":["../../../../../src/cli/commands/gateway/lifecycle.ts"],"sourcesContent":["/**\n * Gateway lifecycle orchestration — OpenClaw-aligned service + unmanaged fallback.\n */\n\nimport { isRestartEnabled } from '../../../config/commands.flags.js';\nimport { loadConfig } from '../../../config/index.js';\nimport { resolveConfigPath } from '../../../config/paths.js';\nimport { resolveGatewayService } from '../../../daemon/service.js';\nimport {\n findVerifiedGatewayListenerPidsOnPortSync,\n formatGatewayPidList,\n signalVerifiedGatewayPidSync,\n} from '../../../infra/gateway-processes.js';\nimport { authorizeGatewaySigusr1Restart, writeGatewayRestartIntentSync } from '../../../infra/restart.js';\nimport {\n DEFAULT_RESTART_HEALTH_ATTEMPTS,\n DEFAULT_RESTART_HEALTH_DELAY_MS,\n renderGatewayPortHealthDiagnostics,\n waitForGatewayHealthyListener,\n} from './restart-health.js';\nimport {\n parsePortFromArgs,\n renderGatewayServiceStartHints,\n resolveGatewayPortFromConfig,\n} from './shared.js';\nimport {\n runServiceRestart,\n runServiceStop,\n type ServiceRecoveryResult,\n} from './lifecycle-core.js';\n\nconst POST_RESTART_HEALTH_ATTEMPTS = DEFAULT_RESTART_HEALTH_ATTEMPTS;\nconst POST_RESTART_HEALTH_DELAY_MS = DEFAULT_RESTART_HEALTH_DELAY_MS;\n\nasync function resolveGatewayLifecyclePort(service?: Awaited<ReturnType<typeof resolveGatewayService>>): Promise<number> {\n const resolvedService = service ?? (await resolveGatewayService());\n const command = await resolvedService.readCommand(process.env).catch(() => null);\n const portFromArgs = parsePortFromArgs(command?.programArguments);\n return portFromArgs ?? resolveGatewayPortFromConfig();\n}\n\nfunction resolveVerifiedGatewayListenerPids(port: number): number[] {\n return findVerifiedGatewayListenerPidsOnPortSync(port).filter(\n (pid): pid is number => Number.isFinite(pid) && pid > 0,\n );\n}\n\nasync function assertUnmanagedGatewayRestartEnabled(port: number): Promise<void> {\n const config = loadConfig(resolveConfigPath());\n if (!isRestartEnabled(config)) {\n throw new Error(\n 'Gateway restart is disabled in config (commands.restart=false); unmanaged SIGUSR1 restart would be ignored',\n );\n }\n\n try {\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), 1000);\n const response = await fetch(`http://127.0.0.1:${port}/api/health`, {\n method: 'GET',\n signal: controller.signal,\n });\n clearTimeout(timeout);\n if (!response.ok) {\n return;\n }\n } catch {\n // Best-effort probe; unmanaged restart may still target a starting gateway.\n }\n}\n\nasync function stopGatewayWithoutServiceManager(port: number): Promise<ServiceRecoveryResult | null> {\n const pids = resolveVerifiedGatewayListenerPids(port);\n if (pids.length === 0) {\n return null;\n }\n for (const pid of pids) {\n signalVerifiedGatewayPidSync(pid, 'SIGTERM');\n }\n return {\n result: 'stopped',\n message: `Gateway stop signal sent to unmanaged process${pids.length === 1 ? '' : 'es'} on port ${port}: ${formatGatewayPidList(pids)}.`,\n };\n}\n\nasync function restartGatewayWithoutServiceManager(port: number): Promise<ServiceRecoveryResult | null> {\n await assertUnmanagedGatewayRestartEnabled(port);\n const pids = resolveVerifiedGatewayListenerPids(port);\n if (pids.length === 0) {\n return null;\n }\n if (pids.length > 1) {\n throw new Error(\n `multiple gateway processes are listening on port ${port}: ${formatGatewayPidList(pids)}; use \"xopc gateway status\" before retrying restart`,\n );\n }\n const targetPid = pids[0];\n\n if (process.platform === 'win32') {\n // Windows does not support SIGUSR1. Write a restart intent file and send\n // SIGTERM; the gateway run-loop's onSigterm handler checks for the intent\n // and treats it as a restart instead of a stop.\n writeGatewayRestartIntentSync({ targetPid });\n signalVerifiedGatewayPidSync(targetPid, 'SIGTERM');\n } else {\n authorizeGatewaySigusr1Restart();\n signalVerifiedGatewayPidSync(targetPid, 'SIGUSR1');\n }\n\n return {\n result: 'restarted',\n message: `Gateway restart signal sent to unmanaged process on port ${port}: ${targetPid}.`,\n };\n}\n\nexport async function runDaemonStop(options: { json?: boolean; disable?: boolean } = {}): Promise<void> {\n const service = await resolveGatewayService();\n let gatewayPortPromise: Promise<number> | undefined;\n\n await runServiceStop({\n service,\n opts: options,\n onNotLoaded: async () => {\n gatewayPortPromise ??= resolveGatewayLifecyclePort(service);\n return stopGatewayWithoutServiceManager(await gatewayPortPromise);\n },\n });\n}\n\nexport async function runDaemonRestart(options: {\n json?: boolean;\n wait?: string;\n} = {}): Promise<void> {\n const service = await resolveGatewayService();\n let restartedWithoutServiceManager = false;\n const restartPort = await resolveGatewayLifecyclePort(service);\n const restartHealthAttempts = POST_RESTART_HEALTH_ATTEMPTS;\n const restartWaitSeconds = Math.round(\n (restartHealthAttempts * POST_RESTART_HEALTH_DELAY_MS) / 1000,\n );\n\n await runServiceRestart({\n service,\n opts: options,\n renderStartHints: renderGatewayServiceStartHints,\n checkTokenDrift: true,\n onNotLoaded: async () => {\n const handled = await restartGatewayWithoutServiceManager(restartPort);\n if (handled) {\n restartedWithoutServiceManager = true;\n }\n return handled;\n },\n postRestartCheck: async ({ options: opts, fail }) => {\n if (!restartedWithoutServiceManager) {\n return;\n }\n const health = await waitForGatewayHealthyListener({\n port: restartPort,\n attempts: restartHealthAttempts,\n delayMs: POST_RESTART_HEALTH_DELAY_MS,\n });\n if (health.healthy) {\n return;\n }\n const diagnostics = renderGatewayPortHealthDiagnostics(health);\n fail(\n `Gateway restart timed out after ${restartWaitSeconds}s waiting for health checks.`,\n ['xopc gateway status', 'xopc doctor'],\n diagnostics,\n opts,\n );\n },\n });\n}\n"],"mappings":";;;;;;;;;;;;;;YAM6D;AAyB7D,MAAM,+BAA+B;AACrC,MAAM,+BAAA;AAEN,eAAe,4BAA4B,SAA8E;AAIvH,QADqB,mBAAkB,OAFf,WAAY,MAAM,uBAAuB,EAC3B,YAAY,QAAQ,IAAI,CAAC,YAAY,KAAK,GAChC,iBAC7B,IAAI,8BAA8B;;AAGvD,SAAS,mCAAmC,MAAwB;AAClE,QAAO,0CAA0C,KAAK,CAAC,QACpD,QAAuB,OAAO,SAAS,IAAI,IAAI,MAAM,EACvD;;AAGH,eAAe,qCAAqC,MAA6B;AAE/E,KAAI,CAAC,iBADU,WAAW,mBAAmB,CACjB,CAAC,CAC3B,OAAM,IAAI,MACR,6GACD;AAGH,KAAI;EACF,MAAM,aAAa,IAAI,iBAAiB;EACxC,MAAM,UAAU,iBAAiB,WAAW,OAAO,EAAE,IAAK;EAC1D,MAAM,WAAW,MAAM,MAAM,oBAAoB,KAAK,cAAc;GAClE,QAAQ;GACR,QAAQ,WAAW;GACpB,CAAC;AACF,eAAa,QAAQ;AACrB,MAAI,CAAC,SAAS,GACZ;SAEI;;AAKV,eAAe,iCAAiC,MAAqD;CACnG,MAAM,OAAO,mCAAmC,KAAK;AACrD,KAAI,KAAK,WAAW,EAClB,QAAO;AAET,MAAK,MAAM,OAAO,KAChB,8BAA6B,KAAK,UAAU;AAE9C,QAAO;EACL,QAAQ;EACR,SAAS,gDAAgD,KAAK,WAAW,IAAI,KAAK,KAAK,WAAW,KAAK,IAAI,qBAAqB,KAAK,CAAC;EACvI;;AAGH,eAAe,oCAAoC,MAAqD;AACtG,OAAM,qCAAqC,KAAK;CAChD,MAAM,OAAO,mCAAmC,KAAK;AACrD,KAAI,KAAK,WAAW,EAClB,QAAO;AAET,KAAI,KAAK,SAAS,EAChB,OAAM,IAAI,MACR,oDAAoD,KAAK,IAAI,qBAAqB,KAAK,CAAC,qDACzF;CAEH,MAAM,YAAY,KAAK;AAEvB,KAAI,QAAQ,aAAa,SAAS;AAIhC,gCAA8B,EAAE,WAAW,CAAC;AAC5C,+BAA6B,WAAW,UAAU;QAC7C;AACL,kCAAgC;AAChC,+BAA6B,WAAW,UAAU;;AAGpD,QAAO;EACL,QAAQ;EACR,SAAS,4DAA4D,KAAK,IAAI,UAAU;EACzF;;AAGH,eAAsB,cAAc,UAAiD,EAAE,EAAiB;CACtG,MAAM,UAAU,MAAM,uBAAuB;CAC7C,IAAI;AAEJ,OAAM,eAAe;EACnB;EACA,MAAM;EACN,aAAa,YAAY;AACvB,0BAAuB,4BAA4B,QAAQ;AAC3D,UAAO,iCAAiC,MAAM,mBAAmB;;EAEpE,CAAC;;AAGJ,eAAsB,iBAAiB,UAGnC,EAAE,EAAiB;CACrB,MAAM,UAAU,MAAM,uBAAuB;CAC7C,IAAI,iCAAiC;CACrC,MAAM,cAAc,MAAM,4BAA4B,QAAQ;CAC9D,MAAM,wBAAwB;CAC9B,MAAM,qBAAqB,KAAK,MAC7B,wBAAwB,+BAAgC,IAC1D;AAED,OAAM,kBAAkB;EACtB;EACA,MAAM;EACN,kBAAkB;EAClB,iBAAiB;EACjB,aAAa,YAAY;GACvB,MAAM,UAAU,MAAM,oCAAoC,YAAY;AACtE,OAAI,QACF,kCAAiC;AAEnC,UAAO;;EAET,kBAAkB,OAAO,EAAE,SAAS,MAAM,WAAW;AACnD,OAAI,CAAC,+BACH;GAEF,MAAM,SAAS,MAAM,8BAA8B;IACjD,MAAM;IACN,UAAU;IACV,SAAS;IACV,CAAC;AACF,OAAI,OAAO,QACT;GAEF,MAAM,cAAc,mCAAmC,OAAO;AAC9D,QACE,mCAAmC,mBAAmB,+BACtD,CAAC,uBAAuB,cAAc,EACtC,aACA,KACD;;EAEJ,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"logs.js","names":[],"sources":["../../../../../src/cli/commands/gateway/logs.ts"],"sourcesContent":["import { Command } from 'commander';\nimport { existsSync, statSync, watch } from 'node:fs';\nimport { readFile } from 'node:fs/promises';\nimport path from 'node:path';\n\nimport { getContextWithOpts } from '../../context.js';\n\nfunction parseLineCount(value: string | number | undefined): number {\n const parsed = parseInt(String(value ?? '50'), 10);\n return Number.isFinite(parsed) && parsed > 0 ? parsed : 50;\n}\n\nfunction resolveGatewayLogPath(configPath: string): string {\n const logDir = process.env.XOPC_LOG_DIR || path.join(path.dirname(configPath), 'logs');\n return path.join(logDir, 'app.log');\n}\n\nasync function readLastLines(filePath: string, lineCount: number): Promise<string> {\n if (!existsSync(filePath)) {\n return 'No logs found\\n';\n }\n\n const content = await readFile(filePath, 'utf8');\n const lines = content.split(/\\r?\\n/);\n const trailingEmptyLine = lines.at(-1) === '';\n const logLines = trailingEmptyLine ? lines.slice(0, -1) : lines;\n const selectedLines = logLines.slice(-lineCount);\n return `${selectedLines.join('\\n')}${selectedLines.length > 0 ? '\\n' : ''}`;\n}\n\nasync function followLogFile(filePath: string, lineCount: number): Promise<void> {\n process.stdout.write(await readLastLines(filePath, lineCount));\n let lastSize = existsSync(filePath) ? statSync(filePath).size : 0;\n\n const directory = path.dirname(filePath);\n const fileName = path.basename(filePath);\n watch(directory, async (_eventType, changedFileName) => {\n if (changedFileName && changedFileName.toString() !== fileName) {\n return;\n }\n if (!existsSync(filePath)) {\n lastSize = 0;\n return;\n }\n\n const nextSize = statSync(filePath).size;\n if (nextSize < lastSize) {\n lastSize = 0;\n }\n if (nextSize === lastSize) {\n return;\n }\n\n const content = await readFile(filePath, 'utf8');\n process.stdout.write(content.slice(lastSize));\n lastSize = nextSize;\n });\n}\n\n/**\n * Create logs subcommand\n */\nexport function createLogsCommand(): Command {\n return new Command('logs')\n .description('View gateway logs')\n .option('--lines <n>', 'Number of lines to show', '50')\n .option('--follow', 'Follow log output (like tail -f)')\n .action(async (options) => {\n const ctx = getContextWithOpts();\n const lineCount = parseLineCount(options.lines);\n const logPath = resolveGatewayLogPath(ctx.configPath);\n\n try {\n if (options.follow) {\n console.log(`📜 Following gateway logs (Ctrl+C to exit)...\\n`);\n await followLogFile(logPath, lineCount);\n return;\n }\n\n const output = await readLastLines(logPath, lineCount);\n console.log(`📜 Last ${lineCount} lines of gateway logs:\\n`);\n console.log(output);\n process.exit(0);\n } catch (err) {\n console.error('❌ Failed to read logs:', err);\n process.exit(1);\n }\n });\n}\n\nexport const gatewayLogsTestInternals = {\n parseLineCount,\n readLastLines,\n resolveGatewayLogPath,\n};\n"],"mappings":";;;;;;AAOA,SAAS,eAAe,OAA4C;CAClE,MAAM,SAAS,SAAS,OAAO,SAAS,KAAK,EAAE,GAAG;AAClD,QAAO,OAAO,SAAS,OAAO,IAAI,SAAS,IAAI,SAAS;;AAG1D,SAAS,sBAAsB,YAA4B;CACzD,MAAM,SAAS,QAAQ,IAAI,gBAAgB,KAAK,KAAK,KAAK,QAAQ,WAAW,EAAE,OAAO;AACtF,QAAO,KAAK,KAAK,QAAQ,UAAU;;AAGrC,eAAe,cAAc,UAAkB,WAAoC;AACjF,KAAI,CAAC,WAAW,SAAS,CACvB,QAAO;CAIT,MAAM,SAAQ,MADQ,SAAS,UAAU,OAAO,EAC1B,MAAM,QAAQ;CAGpC,MAAM,iBAFoB,MAAM,GAAG,GAAG,KAAK,KACN,MAAM,MAAM,GAAG,GAAG,GAAG,OAC3B,MAAM,CAAC,UAAU;AAChD,QAAO,GAAG,cAAc,KAAK,KAAK,GAAG,cAAc,SAAS,IAAI,OAAO;;AAGzE,eAAe,cAAc,UAAkB,WAAkC;AAC/E,SAAQ,OAAO,MAAM,MAAM,cAAc,UAAU,UAAU,CAAC;CAC9D,IAAI,WAAW,WAAW,SAAS,GAAG,SAAS,SAAS,CAAC,OAAO;CAEhE,MAAM,YAAY,KAAK,QAAQ,SAAS;CACxC,MAAM,WAAW,KAAK,SAAS,SAAS;AACxC,OAAM,WAAW,OAAO,YAAY,oBAAoB;AACtD,MAAI,mBAAmB,gBAAgB,UAAU,KAAK,SACpD;AAEF,MAAI,CAAC,WAAW,SAAS,EAAE;AACzB,cAAW;AACX;;EAGF,MAAM,WAAW,SAAS,SAAS,CAAC;AACpC,MAAI,WAAW,SACb,YAAW;AAEb,MAAI,aAAa,SACf;EAGF,MAAM,UAAU,MAAM,SAAS,UAAU,OAAO;AAChD,UAAQ,OAAO,MAAM,QAAQ,MAAM,SAAS,CAAC;AAC7C,aAAW;GACX;;;;;AAMJ,SAAgB,oBAA6B;AAC3C,QAAO,IAAI,QAAQ,OAAO,CACvB,YAAY,oBAAoB,CAChC,OAAO,eAAe,2BAA2B,KAAK,CACtD,OAAO,YAAY,mCAAmC,CACtD,OAAO,OAAO,YAAY;EACzB,MAAM,MAAM,oBAAoB;EAChC,MAAM,YAAY,eAAe,QAAQ,MAAM;EAC/C,MAAM,UAAU,sBAAsB,IAAI,WAAW;AAErD,MAAI;AACF,OAAI,QAAQ,QAAQ;AAClB,YAAQ,IAAI,kDAAkD;AAC9D,UAAM,cAAc,SAAS,UAAU;AACvC;;GAGF,MAAM,SAAS,MAAM,cAAc,SAAS,UAAU;AACtD,WAAQ,IAAI,WAAW,UAAU,2BAA2B;AAC5D,WAAQ,IAAI,OAAO;AACnB,WAAQ,KAAK,EAAE;WACR,KAAK;AACZ,WAAQ,MAAM,0BAA0B,IAAI;AAC5C,WAAQ,KAAK,EAAE;;GAEjB;;AAGN,MAAa,2BAA2B;CACtC;CACA;CACA;CACD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"probe.js","names":[],"sources":["../../../../../src/cli/commands/gateway/probe.ts"],"sourcesContent":["import { Command } from 'commander';\n\nimport { resolveConfigPath } from '../../../config/paths.js';\nimport { addGatewayClientOptions, parseGatewayClientOptions } from '../../utils/gateway-client-options.js';\nimport { getContextWithOpts } from '../../context.js';\n\ntype GatewayClientModule = typeof import('../../utils/gateway-client.js');\n\ninterface ProbeTarget {\n label: string;\n url: string;\n}\n\ninterface ProbeResultEntry {\n label: string;\n url: string;\n reachable: boolean;\n authenticated: boolean;\n durationMs: number;\n version?: string;\n error?: string;\n}\n\nfunction resolveProbeTargets(opts: { url?: string; port: number }): ProbeTarget[] {\n const targets: ProbeTarget[] = [];\n const port = opts.port;\n targets.push({ label: 'localhost', url: `http://127.0.0.1:${port}` });\n\n if (opts.url) {\n const normalized = opts.url.replace(/\\/+$/, '');\n if (!normalized.includes('127.0.0.1') && !normalized.includes('localhost')) {\n targets.push({ label: 'remote', url: normalized });\n }\n }\n\n return targets;\n}\n\nasync function probeTarget(\n callGatewayApi: GatewayClientModule['callGatewayApi'],\n target: ProbeTarget,\n credential?: import('../../../gateway/credential.js').GatewayCredential,\n timeoutMs?: number,\n): Promise<ProbeResultEntry> {\n const healthResult = await callGatewayApi<{\n status: string;\n version?: string;\n }>('GET', '/api/health', {\n url: target.url,\n timeoutMs: timeoutMs ?? 5000,\n });\n\n if (!healthResult.ok) {\n return {\n label: target.label,\n url: target.url,\n reachable: false,\n authenticated: false,\n durationMs: healthResult.durationMs,\n error: healthResult.error,\n };\n }\n\n let authenticated = false;\n if (credential) {\n const statusResult = await callGatewayApi('GET', '/api/status', {\n url: target.url,\n credential,\n timeoutMs: timeoutMs ?? 5000,\n });\n authenticated = statusResult.ok;\n }\n\n return {\n label: target.label,\n url: target.url,\n reachable: true,\n authenticated,\n durationMs: healthResult.durationMs,\n version: healthResult.data?.version,\n };\n}\n\nexport function createProbeCommand(): Command {\n const cmd = new Command('probe').description('Probe gateway reachability and auth capability');\n\n addGatewayClientOptions(cmd);\n\n cmd.action(async (options) => {\n const ctx = getContextWithOpts();\n const configPath = ctx.configPath || resolveConfigPath();\n const [{ loadConfig }, { callGatewayApi, resolveGatewayCredential }] = await Promise.all([\n import('../../../config/index.js'),\n import('../../utils/gateway-client.js'),\n ]);\n const config = loadConfig(configPath);\n const port = config?.gateway?.port ?? 18790;\n\n const clientOpts = {\n ...parseGatewayClientOptions(options as Record<string, unknown>),\n configPath,\n };\n const credential = resolveGatewayCredential(clientOpts);\n const targets = resolveProbeTargets({ url: clientOpts.url, port });\n const results: ProbeResultEntry[] = [];\n\n for (const target of targets) {\n const result = await probeTarget(callGatewayApi, target, credential, clientOpts.timeoutMs);\n results.push(result);\n }\n\n if (clientOpts.json) {\n console.log(JSON.stringify({ targets: results }, null, 2));\n const anyReachable = results.some((r) => r.reachable);\n process.exit(anyReachable ? 0 : 1);\n }\n\n console.log('🔍 Gateway Probe');\n console.log('');\n\n for (const result of results) {\n if (result.reachable) {\n console.log(`✅ ${result.label} (${result.url})`);\n console.log(` Reachable: yes (${result.durationMs}ms)`);\n console.log(` Auth: ${result.authenticated ? '✅ authenticated' : '🔒 not authenticated (pass --token)'}`);\n if (result.version) {\n console.log(` Version: ${result.version}`);\n }\n } else {\n console.log(`❌ ${result.label} (${result.url})`);\n console.log(' Reachable: no');\n console.log(` Error: ${result.error}`);\n }\n console.log('');\n }\n\n const anyReachable = results.some((r) => r.reachable);\n if (!anyReachable) {\n console.log('💡 Is the gateway running? Try: xopc gateway');\n }\n process.exit(anyReachable ? 0 : 1);\n });\n\n return cmd;\n}\n"],"mappings":";;;;;YAE6D;AAqB7D,SAAS,oBAAoB,MAAqD;CAChF,MAAM,UAAyB,EAAE;CACjC,MAAM,OAAO,KAAK;AAClB,SAAQ,KAAK;EAAE,OAAO;EAAa,KAAK,oBAAoB;EAAQ,CAAC;AAErE,KAAI,KAAK,KAAK;EACZ,MAAM,aAAa,KAAK,IAAI,QAAQ,QAAQ,GAAG;AAC/C,MAAI,CAAC,WAAW,SAAS,YAAY,IAAI,CAAC,WAAW,SAAS,YAAY,CACxE,SAAQ,KAAK;GAAE,OAAO;GAAU,KAAK;GAAY,CAAC;;AAItD,QAAO;;AAGT,eAAe,YACb,gBACA,QACA,YACA,WAC2B;CAC3B,MAAM,eAAe,MAAM,eAGxB,OAAO,eAAe;EACvB,KAAK,OAAO;EACZ,WAAW,aAAa;EACzB,CAAC;AAEF,KAAI,CAAC,aAAa,GAChB,QAAO;EACL,OAAO,OAAO;EACd,KAAK,OAAO;EACZ,WAAW;EACX,eAAe;EACf,YAAY,aAAa;EACzB,OAAO,aAAa;EACrB;CAGH,IAAI,gBAAgB;AACpB,KAAI,WAMF,kBAAgB,MALW,eAAe,OAAO,eAAe;EAC9D,KAAK,OAAO;EACZ;EACA,WAAW,aAAa;EACzB,CAAC,EAC2B;AAG/B,QAAO;EACL,OAAO,OAAO;EACd,KAAK,OAAO;EACZ,WAAW;EACX;EACA,YAAY,aAAa;EACzB,SAAS,aAAa,MAAM;EAC7B;;AAGH,SAAgB,qBAA8B;CAC5C,MAAM,MAAM,IAAI,QAAQ,QAAQ,CAAC,YAAY,iDAAiD;AAE9F,yBAAwB,IAAI;AAE5B,KAAI,OAAO,OAAO,YAAY;EAE5B,MAAM,aADM,oBACU,CAAC,cAAc,mBAAmB;EACxD,MAAM,CAAC,EAAE,cAAc,EAAE,gBAAgB,8BAA8B,MAAM,QAAQ,IAAI,CACvF,OAAO,6BACP,OAAO,iCACR,CAAC;EAEF,MAAM,OADS,WAAW,WACP,EAAE,SAAS,QAAQ;EAEtC,MAAM,aAAa;GACjB,GAAG,0BAA0B,QAAmC;GAChE;GACD;EACD,MAAM,aAAa,yBAAyB,WAAW;EACvD,MAAM,UAAU,oBAAoB;GAAE,KAAK,WAAW;GAAK;GAAM,CAAC;EAClE,MAAM,UAA8B,EAAE;AAEtC,OAAK,MAAM,UAAU,SAAS;GAC5B,MAAM,SAAS,MAAM,YAAY,gBAAgB,QAAQ,YAAY,WAAW,UAAU;AAC1F,WAAQ,KAAK,OAAO;;AAGtB,MAAI,WAAW,MAAM;AACnB,WAAQ,IAAI,KAAK,UAAU,EAAE,SAAS,SAAS,EAAE,MAAM,EAAE,CAAC;GAC1D,MAAM,eAAe,QAAQ,MAAM,MAAM,EAAE,UAAU;AACrD,WAAQ,KAAK,eAAe,IAAI,EAAE;;AAGpC,UAAQ,IAAI,mBAAmB;AAC/B,UAAQ,IAAI,GAAG;AAEf,OAAK,MAAM,UAAU,SAAS;AAC5B,OAAI,OAAO,WAAW;AACpB,YAAQ,IAAI,KAAK,OAAO,MAAM,IAAI,OAAO,IAAI,GAAG;AAChD,YAAQ,IAAI,sBAAsB,OAAO,WAAW,KAAK;AACzD,YAAQ,IAAI,YAAY,OAAO,gBAAgB,oBAAoB,wCAAwC;AAC3G,QAAI,OAAO,QACT,SAAQ,IAAI,eAAe,OAAO,UAAU;UAEzC;AACL,YAAQ,IAAI,KAAK,OAAO,MAAM,IAAI,OAAO,IAAI,GAAG;AAChD,YAAQ,IAAI,mBAAmB;AAC/B,YAAQ,IAAI,aAAa,OAAO,QAAQ;;AAE1C,WAAQ,IAAI,GAAG;;EAGjB,MAAM,eAAe,QAAQ,MAAM,MAAM,EAAE,UAAU;AACrD,MAAI,CAAC,aACH,SAAQ,IAAI,+CAA+C;AAE7D,UAAQ,KAAK,eAAe,IAAI,EAAE;GAClC;AAEF,QAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"restart-health.js","names":[],"sources":["../../../../../src/cli/commands/gateway/restart-health.ts"],"sourcesContent":["/**\n * Restart Health - Wait loop after restart to verify gateway is healthy\n *\n * Polls service runtime + port usage + HTTP health probe to confirm:\n * 1. Service is running with a new PID\n * 2. Port is being listened on by the new process\n * 3. HTTP /api/health responds successfully\n * 4. Version matches expected (optional)\n */\n\nimport { createLogger } from '../../../utils/logger.js';\nimport type { GatewayServiceRuntime } from '../../../daemon/types.js';\nimport type { PortUsage } from '../../../infra/ports.js';\nimport { formatPortDiagnostics, inspectPortUsage } from '../../../infra/ports.js';\n\nconst log = createLogger('RestartHealth');\n\nexport const DEFAULT_RESTART_HEALTH_TIMEOUT_MS = 60_000;\nexport const DEFAULT_RESTART_HEALTH_DELAY_MS = 500;\nexport const DEFAULT_RESTART_HEALTH_ATTEMPTS = Math.ceil(\n DEFAULT_RESTART_HEALTH_TIMEOUT_MS / DEFAULT_RESTART_HEALTH_DELAY_MS,\n);\n\nexport type GatewayRestartWaitOutcome =\n | 'healthy'\n | 'version-mismatch'\n | 'stale-pids'\n | 'stopped-free'\n | 'timeout';\n\nexport interface GatewayRestartSnapshot {\n runtime?: GatewayServiceRuntime;\n portUsage?: PortUsage;\n healthy: boolean;\n staleGatewayPids: number[];\n gatewayVersion?: string | null;\n expectedVersion?: string;\n versionMismatch?: { expected: string; actual: string | null };\n waitOutcome?: GatewayRestartWaitOutcome;\n elapsedMs?: number;\n}\n\ninterface RestartHealthService {\n readRuntime: (env?: Record<string, string | undefined>) => Promise<GatewayServiceRuntime>;\n}\n\n/**\n * Wait for gateway restart to complete and verify health.\n *\n * Loop:\n * 1. Check service runtime → get PID\n * 2. inspectPortUsage → confirm port is busy with new process\n * 3. HTTP probe /api/health → confirm reachable\n * 4. Version match (if expectedVersion provided)\n */\nexport async function waitForRestartHealth(params: {\n service: RestartHealthService;\n port: number;\n expectedVersion?: string;\n timeoutMs?: number;\n delayMs?: number;\n token?: string;\n onProgress?: (snapshot: GatewayRestartSnapshot) => void;\n}): Promise<GatewayRestartSnapshot> {\n const {\n service,\n port,\n expectedVersion,\n timeoutMs = DEFAULT_RESTART_HEALTH_TIMEOUT_MS,\n delayMs = DEFAULT_RESTART_HEALTH_DELAY_MS,\n token,\n onProgress,\n } = params;\n\n const { inspectPortUsage, classifyPortListener } = await import('../../../infra/ports.js');\n\n const startedAt = Date.now();\n\n while (Date.now() - startedAt < timeoutMs) {\n const elapsed = Date.now() - startedAt;\n\n // 1. Check service runtime\n const runtime = await service.readRuntime();\n\n if (runtime.status !== 'running' || !runtime.pid) {\n const snapshot: GatewayRestartSnapshot = {\n runtime,\n healthy: false,\n staleGatewayPids: [],\n elapsedMs: elapsed,\n };\n onProgress?.(snapshot);\n await sleep(delayMs);\n continue;\n }\n\n // 2. Check port usage\n const portUsage = await inspectPortUsage(port);\n\n if (portUsage.status !== 'busy') {\n const snapshot: GatewayRestartSnapshot = {\n runtime,\n portUsage,\n healthy: false,\n staleGatewayPids: [],\n elapsedMs: elapsed,\n };\n onProgress?.(snapshot);\n await sleep(delayMs);\n continue;\n }\n\n // 3. Verify port listener matches runtime PID\n const gatewayListeners = portUsage.listeners.filter(\n (l) => classifyPortListener(l, runtime.pid) === 'gateway',\n );\n const staleListeners = portUsage.listeners.filter(\n (l) => l.pid && l.pid !== runtime.pid && classifyPortListener(l) === 'gateway',\n );\n const staleGatewayPids = staleListeners.map((l) => l.pid!).filter(Boolean);\n\n if (gatewayListeners.length === 0) {\n const snapshot: GatewayRestartSnapshot = {\n runtime,\n portUsage,\n healthy: false,\n staleGatewayPids,\n elapsedMs: elapsed,\n };\n onProgress?.(snapshot);\n await sleep(delayMs);\n continue;\n }\n\n // 4. HTTP health probe\n const healthResult = await probeHealth(port, token);\n\n if (!healthResult.ok) {\n const snapshot: GatewayRestartSnapshot = {\n runtime,\n portUsage,\n healthy: false,\n staleGatewayPids,\n elapsedMs: elapsed,\n };\n onProgress?.(snapshot);\n await sleep(delayMs);\n continue;\n }\n\n // 5. Version check (optional)\n const gatewayVersion = healthResult.version ?? null;\n\n if (expectedVersion && gatewayVersion && gatewayVersion !== expectedVersion) {\n const snapshot: GatewayRestartSnapshot = {\n runtime,\n portUsage,\n healthy: false,\n staleGatewayPids,\n gatewayVersion,\n expectedVersion,\n versionMismatch: { expected: expectedVersion, actual: gatewayVersion },\n waitOutcome: 'version-mismatch',\n elapsedMs: elapsed,\n };\n onProgress?.(snapshot);\n return snapshot;\n }\n\n // Success!\n const snapshot: GatewayRestartSnapshot = {\n runtime,\n portUsage,\n healthy: true,\n staleGatewayPids,\n gatewayVersion,\n expectedVersion,\n waitOutcome: 'healthy',\n elapsedMs: elapsed,\n };\n onProgress?.(snapshot);\n\n log.info({ pid: runtime.pid, elapsedMs: elapsed, port }, 'Restart health confirmed');\n return snapshot;\n }\n\n // Timeout\n const finalRuntime = await service.readRuntime();\n const finalSnapshot: GatewayRestartSnapshot = {\n runtime: finalRuntime,\n healthy: false,\n staleGatewayPids: [],\n waitOutcome: 'timeout',\n elapsedMs: Date.now() - startedAt,\n };\n\n log.warn({ timeoutMs, port }, 'Restart health check timed out');\n return finalSnapshot;\n}\n\n// ─── HTTP Health Probe ───\n\ninterface HealthProbeResult {\n ok: boolean;\n version?: string;\n error?: string;\n}\n\nasync function probeHealth(port: number, token?: string): Promise<HealthProbeResult> {\n try {\n const headers: Record<string, string> = {};\n if (token) {\n headers['Authorization'] = `Bearer ${token}`;\n }\n\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), 3000);\n\n const response = await fetch(`http://127.0.0.1:${port}/api/health`, {\n method: 'GET',\n headers,\n signal: controller.signal,\n });\n\n clearTimeout(timeout);\n\n if (!response.ok) {\n return { ok: false, error: `HTTP ${response.status}` };\n }\n\n const body = await response.json() as { version?: string };\n return { ok: true, version: body.version };\n } catch (err) {\n return { ok: false, error: err instanceof Error ? err.message : String(err) };\n }\n}\n\n// ─── Utility ───\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport type GatewayPortHealthSnapshot = {\n portUsage?: PortUsage;\n healthy: boolean;\n};\n\nasync function inspectGatewayPortHealth(port: number, token?: string): Promise<GatewayPortHealthSnapshot> {\n let portUsage: PortUsage;\n try {\n portUsage = await inspectPortUsage(port);\n } catch (err) {\n portUsage = {\n port,\n status: 'unknown',\n listeners: [],\n hints: [],\n errors: [String(err)],\n };\n }\n\n let healthy = false;\n if (portUsage.status === 'busy') {\n const healthResult = await probeHealth(port, token);\n healthy = healthResult.ok;\n }\n\n return { portUsage, healthy };\n}\n\nexport async function waitForGatewayHealthyListener(params: {\n port: number;\n attempts?: number;\n delayMs?: number;\n token?: string;\n}): Promise<GatewayPortHealthSnapshot> {\n const attempts = params.attempts ?? DEFAULT_RESTART_HEALTH_ATTEMPTS;\n const delayMs = params.delayMs ?? DEFAULT_RESTART_HEALTH_DELAY_MS;\n\n let snapshot = await inspectGatewayPortHealth(params.port, params.token);\n for (let attempt = 0; attempt < attempts; attempt += 1) {\n if (snapshot.healthy) {\n return snapshot;\n }\n await sleep(delayMs);\n snapshot = await inspectGatewayPortHealth(params.port, params.token);\n }\n return snapshot;\n}\n\nexport function renderGatewayPortHealthDiagnostics(snapshot: GatewayPortHealthSnapshot): string[] {\n const lines: string[] = [];\n if (!snapshot.portUsage) {\n lines.push('Gateway port health unavailable.');\n return lines;\n }\n if (snapshot.portUsage.status === 'busy') {\n lines.push(...formatPortDiagnostics(snapshot.portUsage));\n } else {\n lines.push(`Gateway port ${snapshot.portUsage.port} status: ${snapshot.portUsage.status}.`);\n }\n if (snapshot.portUsage.errors?.length) {\n lines.push(`Port diagnostics errors: ${snapshot.portUsage.errors.join('; ')}`);\n }\n return lines;\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"restart.js","names":[],"sources":["../../../../../src/cli/commands/gateway/restart.ts"],"sourcesContent":["import { Command } from 'commander';\n\n/**\n * Create restart subcommand - delegates to daemon lifecycle core\n */\nexport function createRestartCommand(): Command {\n return new Command('restart')\n .description('Restart the gateway service')\n .option('--wait <timeout>', 'Wait for health after restart (e.g. \"30s\", \"1m\")')\n .option('--json', 'Output JSON')\n .action(async (options) => {\n const { runDaemonRestart } = await import('./lifecycle.js');\n await runDaemonRestart(options);\n });\n}\n"],"mappings":";;;;;AAKA,SAAgB,uBAAgC;AAC9C,QAAO,IAAI,QAAQ,UAAU,CAC1B,YAAY,8BAA8B,CAC1C,OAAO,oBAAoB,uDAAmD,CAC9E,OAAO,UAAU,cAAc,CAC/B,OAAO,OAAO,YAAY;EACzB,MAAM,EAAE,qBAAqB,MAAM,OAAO;AAC1C,QAAM,iBAAiB,QAAQ;GAC/B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"run-foreground.js","names":[],"sources":["../../../../../src/cli/commands/gateway/run-foreground.ts"],"sourcesContent":["import type { CLIContext } from '../../registry.js';\n\nexport type GatewayRunCliOptions = {\n bind?: string;\n port?: string | number;\n token?: string;\n tailscale?: string;\n tailscaleResetOnExit?: boolean;\n force?: boolean;\n hotReload?: boolean;\n foreground?: boolean;\n};\n\nasync function ensureGatewayReady(\n configPath: string,\n workspacePath: string,\n port: number,\n): Promise<void> {\n const { initWorkspace } = await import('../../utils/init-workspace.js');\n const result = await initWorkspace({\n configPath,\n workspacePath,\n gatewayPort: port,\n });\n\n if (result.configCreated || result.workspaceCreated) {\n console.log('');\n console.log('👋 Welcome to xopc! Running first-time setup before starting the gateway...');\n console.log('');\n console.log('✅ First-time setup complete!');\n console.log(` Config: ${configPath}`);\n console.log(` Workspace: ${workspacePath}`);\n console.log(` Token: ${result.token.slice(0, 8)}...${result.token.slice(-8)}`);\n console.log('');\n console.log('💡 Tip: run `xopc onboard` anytime to configure models, channels, and more.');\n console.log('');\n }\n}\n\nexport async function runGatewayFromCliOptions(\n options: GatewayRunCliOptions,\n ctx: CLIContext,\n): Promise<void> {\n const tailscaleModes = new Set(['off', 'serve', 'funnel']);\n const tailscaleRaw =\n typeof options.tailscale === 'string' ? options.tailscale.trim().toLowerCase() : undefined;\n const tailscaleOverride =\n tailscaleRaw && tailscaleModes.has(tailscaleRaw)\n ? (tailscaleRaw as 'off' | 'serve' | 'funnel')\n : undefined;\n if (tailscaleRaw && !tailscaleOverride) {\n console.error(`Invalid --tailscale mode \"${tailscaleRaw}\". Use: off, serve, funnel.`);\n process.exit(1);\n }\n\n if (tailscaleOverride && tailscaleOverride !== 'off') {\n process.env.XOPC_GATEWAY_TAILSCALE_MODE = tailscaleOverride;\n }\n if (options.tailscaleResetOnExit === true) {\n process.env.XOPC_GATEWAY_TAILSCALE_RESET_ON_EXIT = '1';\n }\n\n const [{ loadConfig }, { resolveConfigPath }, { runGatewayLoop }, gatewayPorts, migrations] = await Promise.all([\n import('../../../config/index.js'),\n import('../../../config/paths.js'),\n import('../../../gateway/run-loop.js'),\n import('../../../gateway/ports.js'),\n import('../../../migrations/runner.js'),\n ]);\n const { checkPortAvailable, forceFreePortAndWait } = gatewayPorts;\n migrations.runBootstrapMigrationsSync(ctx.configPath);\n const config = loadConfig(ctx.configPath);\n\n const bindFromFlagRaw =\n typeof options.bind === 'string' && options.bind.trim().length > 0\n ? options.bind.trim().toLowerCase()\n : undefined;\n const bindModes = new Set(['auto', 'loopback', 'lan', 'tailnet', 'custom']);\n const bindFromFlag = bindFromFlagRaw && bindModes.has(bindFromFlagRaw)\n ? (bindFromFlagRaw as import('../../../config/schema.js').GatewayBindMode)\n : undefined;\n if (bindFromFlagRaw && !bindFromFlag) {\n console.error(`Invalid --bind mode \"${bindFromFlagRaw}\". Use: loopback, lan, auto, custom, tailnet.`);\n process.exit(1);\n }\n\n const portRaw = options.port;\n const portFromFlag =\n portRaw !== undefined && portRaw !== null && String(portRaw).trim().length > 0\n ? parseInt(String(portRaw), 10)\n : undefined;\n\n const { resolveGatewayListenPlan } = await import('../../../gateway/listen.js');\n const listenPlan = resolveGatewayListenPlan({\n cfg: config,\n bindOverride: bindFromFlag,\n });\n const bindHost = listenPlan.bindHost;\n const port =\n portFromFlag !== undefined && Number.isFinite(portFromFlag)\n ? portFromFlag\n : (typeof config.gateway.port === 'number' ? config.gateway.port : 18790);\n\n await ensureGatewayReady(ctx.configPath, ctx.workspacePath, port);\n\n const effectiveConfig = loadConfig(ctx.configPath);\n const { resolveGatewayAuth, assertGatewayAuthConfigured } = await import('../../../gateway/auth.js');\n const { assertGatewayRuntimeConfig } = await import('../../../gateway/runtime-config.js');\n\n let auth = resolveGatewayAuth({ authConfig: effectiveConfig.gateway?.auth });\n if (typeof options.token === 'string' && options.token.trim().length > 0) {\n auth = { mode: 'token', token: options.token.trim() };\n }\n try {\n assertGatewayAuthConfigured(auth);\n assertGatewayRuntimeConfig({\n cfg: effectiveConfig,\n auth,\n bindOverride: bindFromFlag,\n port,\n });\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n console.error(`Gateway refused to start: ${message}`);\n process.exit(1);\n }\n\n if (options.force) {\n try {\n const result = await forceFreePortAndWait(port, {\n timeoutMs: 2000,\n sigtermTimeoutMs: 700,\n });\n if (result.killed.length > 0) {\n console.log(`Force killed ${result.killed.length} process(es) on port ${port}`);\n if (result.escalatedToSigkill) {\n console.log('Escalated to SIGKILL');\n }\n }\n } catch (err) {\n console.error(`Failed to free port ${port}: ${String(err)}`);\n process.exit(1);\n }\n }\n\n const portAvailable = await checkPortAvailable(port, bindHost);\n if (!portAvailable) {\n console.error(`Port ${port} is already in use. Use --force to kill existing process.`);\n process.exit(1);\n }\n\n console.log('🚀 Starting xopc gateway...');\n console.log(` Bind: ${listenPlan.bindMode} (${bindHost})`);\n console.log(` Port: ${port}`);\n console.log('');\n console.log('Press Ctrl+C to stop');\n console.log('');\n\n await runGatewayLoop({\n configPath: ctx.configPath || resolveConfigPath(),\n port,\n start: async () => {\n const { GatewayServer } = await import('../../../gateway/index.js');\n const server = new GatewayServer({\n bindHost: listenPlan.bindHost,\n bind: listenPlan.bindMode,\n customBindHost: listenPlan.customBindHost,\n port,\n token: options.token || config?.gateway?.auth?.token,\n verbose: ctx.isVerbose,\n configPath: ctx.configPath,\n enableHotReload: options.hotReload,\n });\n await server.start();\n\n const displayHost = bindHost === '0.0.0.0' ? 'localhost' : bindHost;\n const token = options.token || config?.gateway?.auth?.token;\n console.log('✅ Gateway started');\n console.log(` URL: http://${displayHost}:${port}`);\n if (token) {\n console.log(` Token: ${token.slice(0, 8)}...${token.slice(-8)}`);\n }\n console.log('');\n\n return server;\n },\n });\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"service.js","names":[],"sources":["../../../../../src/cli/commands/gateway/service.ts"],"sourcesContent":["import { Command } from 'commander';\nimport { resolveConfigPath } from '../../../config/paths.js';\nimport { getContextWithOpts } from '../../context.js';\nimport { createRestartCommand } from './restart.js';\nimport { createStopCommand } from './stop.js';\n\n/**\n * Create service install subcommand - actually installs the OS service\n */\nexport function createInstallCommand(): Command {\n return new Command('install')\n .description('Install gateway as OS service (LaunchAgent / systemd / Task)')\n .option('--port <port>', 'Gateway port')\n .option('--token <token>', 'Gateway auth token')\n .option('--force', 'Force reinstall if already installed')\n .option('--json', 'Output JSON')\n .action(async (options) => {\n const ctx = getContextWithOpts();\n const configPath = ctx.configPath || resolveConfigPath();\n\n const [{ loadConfig }, { resolveGatewayService, isDaemonAvailableAsync, getPlatformName }, { buildGatewayInstallArgs }] =\n await Promise.all([\n import('../../../config/index.js'),\n import('../../../daemon/service.js'),\n import('../../../daemon/install-plan.js'),\n ]);\n\n const config = loadConfig(configPath);\n const port = options.port ? parseInt(options.port, 10) : (config?.gateway?.port || 18790);\n const bind = config?.gateway?.bind ?? 'loopback';\n const token = options.token || config?.gateway?.auth?.token;\n\n const available = await isDaemonAvailableAsync();\n if (!available) {\n if (options.json) {\n console.log(JSON.stringify({ ok: false, error: 'Daemon not available' }));\n } else {\n console.error(`❌ OS service not available on ${getPlatformName()}`);\n }\n process.exit(1);\n }\n\n const service = await resolveGatewayService();\n\n // Check if already installed\n const loaded = await service.isLoaded({ env: process.env });\n if (loaded && !options.force) {\n if (options.json) {\n console.log(JSON.stringify({ ok: true, result: 'already-installed' }));\n } else {\n console.log('ℹ️ Service already installed. Use --force to reinstall.');\n }\n return;\n }\n\n // Uninstall first if force\n if (loaded && options.force) {\n try {\n await service.uninstall({ env: process.env });\n } catch {\n // Best-effort\n }\n }\n\n // Build install args and install\n const installArgs = buildGatewayInstallArgs({ port, bind, token });\n installArgs.stdout = process.stdout;\n\n try {\n await service.install(installArgs);\n\n if (options.json) {\n console.log(JSON.stringify({ ok: true, result: 'installed', label: service.label, port }));\n } else {\n console.log('');\n console.log(`✅ Gateway service installed`);\n console.log(` Service: ${service.label}`);\n console.log(` Port: ${port}`);\n console.log('');\n console.log('💡 The service will start automatically on login.');\n console.log(' Use `xopc gateway status` to verify.');\n }\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n if (options.json) {\n console.log(JSON.stringify({ ok: false, error: message }));\n } else {\n console.error(`❌ Failed to install service: ${message}`);\n }\n process.exit(1);\n }\n });\n}\n\n/**\n * Create service uninstall subcommand\n */\nexport function createUninstallCommand(): Command {\n return new Command('uninstall')\n .description('Uninstall gateway OS service')\n .option('--json', 'Output JSON')\n .action(async (options) => {\n const { executeDaemonUninstall } = await import('./lifecycle-core.js');\n await executeDaemonUninstall(options);\n });\n}\n\n/**\n * Create service start subcommand - starts via daemon service manager\n */\nexport function createServiceStartCommand(): Command {\n return new Command('start')\n .description('Start gateway via OS service manager')\n .option('--json', 'Output JSON')\n .action(async (options) => {\n const [{ resolveGatewayService, startGatewayService, isDaemonAvailableAsync }] =\n await Promise.all([import('../../../daemon/service.js')]);\n\n const available = await isDaemonAvailableAsync();\n if (!available) {\n console.error('❌ Daemon not available on this platform');\n process.exit(1);\n }\n\n const service = await resolveGatewayService();\n const result = await startGatewayService({ service });\n\n if (options.json) {\n console.log(JSON.stringify({ ok: result.outcome === 'started', outcome: result.outcome }));\n return;\n }\n\n switch (result.outcome) {\n case 'started':\n console.log('✅ Gateway service started');\n break;\n case 'missing-install':\n console.error('❌ Service not installed. Run: xopc gateway service install');\n process.exit(1);\n break;\n case 'repair-required':\n console.error('⚠️ Service needs repair:');\n for (const issue of result.issues || []) {\n console.error(` - ${issue.message}`);\n }\n console.log('💡 Run: xopc gateway service install --force');\n process.exit(1);\n break;\n default:\n console.log(`ℹ️ Service start outcome: ${result.outcome}`);\n }\n });\n}\n\n/**\n * Create service status subcommand\n */\nexport function createServiceStatusCommand(): Command {\n return new Command('status')\n .description('Show OS service status')\n .option('--json', 'Output JSON')\n .action(async (options) => {\n const [{ resolveGatewayService, isDaemonAvailableAsync, getPlatformName }] =\n await Promise.all([import('../../../daemon/service.js')]);\n\n const available = await isDaemonAvailableAsync();\n if (!available) {\n if (options.json) {\n console.log(JSON.stringify({ available: false, platform: process.platform }));\n } else {\n console.log(`ℹ️ Daemon not available on ${getPlatformName()}`);\n }\n return;\n }\n\n const service = await resolveGatewayService();\n const [loaded, runtime, command] = await Promise.all([\n service.isLoaded({ env: process.env }),\n service.readRuntime(),\n service.readCommand(),\n ]);\n\n if (options.json) {\n console.log(JSON.stringify({ available: true, loaded, runtime, command, label: service.label }, null, 2));\n return;\n }\n\n console.log('📊 Gateway Service Status');\n console.log('');\n console.log(` Platform: ${getPlatformName()}`);\n console.log(` Service: ${loaded ? service.loadedText : service.notLoadedText}`);\n console.log(` Runtime: ${runtime.status}${runtime.pid ? ` (pid ${runtime.pid})` : ''}`);\n\n if (command) {\n const portMatch = command.programArguments.join(' ').match(/--port\\s+(\\d+)/);\n if (portMatch) {\n console.log(` Port: ${portMatch[1]}`);\n }\n const version = command.environment?.XOPC_SERVICE_VERSION;\n if (version) {\n console.log(` Version: ${version}`);\n }\n }\n\n if (!loaded) {\n console.log('');\n console.log('💡 Install with: xopc gateway service install');\n }\n });\n}\n\n/**\n * Gateway OS service command group (`xopc gateway service …`).\n */\nexport function createServiceCommand(): Command {\n const cmd = new Command('service').description(\n 'Manage gateway OS service (LaunchAgent / systemd / Task)',\n );\n cmd.addCommand(createInstallCommand());\n cmd.addCommand(createUninstallCommand());\n cmd.addCommand(createServiceStartCommand());\n cmd.addCommand(createServiceStatusCommand());\n cmd.addCommand(createStopCommand());\n cmd.addCommand(createRestartCommand());\n return cmd;\n}\n"],"mappings":";;;;;;YAC6D;;;;AAQ7D,SAAgB,uBAAgC;AAC9C,QAAO,IAAI,QAAQ,UAAU,CAC1B,YAAY,+DAA+D,CAC3E,OAAO,iBAAiB,eAAe,CACvC,OAAO,mBAAmB,qBAAqB,CAC/C,OAAO,WAAW,uCAAuC,CACzD,OAAO,UAAU,cAAc,CAC/B,OAAO,OAAO,YAAY;EAEzB,MAAM,aADM,oBACU,CAAC,cAAc,mBAAmB;EAExD,MAAM,CAAC,EAAE,cAAc,EAAE,uBAAuB,wBAAwB,mBAAmB,EAAE,6BAC3F,MAAM,QAAQ,IAAI;GAChB,OAAO;GACP,OAAO;GACP,OAAO;GACR,CAAC;EAEJ,MAAM,SAAS,WAAW,WAAW;EACrC,MAAM,OAAO,QAAQ,OAAO,SAAS,QAAQ,MAAM,GAAG,GAAI,QAAQ,SAAS,QAAQ;EACnF,MAAM,OAAO,QAAQ,SAAS,QAAQ;EACtC,MAAM,QAAQ,QAAQ,SAAS,QAAQ,SAAS,MAAM;AAGtD,MAAI,CAAC,MADmB,wBAAwB,EAChC;AACd,OAAI,QAAQ,KACV,SAAQ,IAAI,KAAK,UAAU;IAAE,IAAI;IAAO,OAAO;IAAwB,CAAC,CAAC;OAEzE,SAAQ,MAAM,iCAAiC,iBAAiB,GAAG;AAErE,WAAQ,KAAK,EAAE;;EAGjB,MAAM,UAAU,MAAM,uBAAuB;EAG7C,MAAM,SAAS,MAAM,QAAQ,SAAS,EAAE,KAAK,QAAQ,KAAK,CAAC;AAC3D,MAAI,UAAU,CAAC,QAAQ,OAAO;AAC5B,OAAI,QAAQ,KACV,SAAQ,IAAI,KAAK,UAAU;IAAE,IAAI;IAAM,QAAQ;IAAqB,CAAC,CAAC;OAEtE,SAAQ,IAAI,2DAA2D;AAEzE;;AAIF,MAAI,UAAU,QAAQ,MACpB,KAAI;AACF,SAAM,QAAQ,UAAU,EAAE,KAAK,QAAQ,KAAK,CAAC;UACvC;EAMV,MAAM,cAAc,wBAAwB;GAAE;GAAM;GAAM;GAAO,CAAC;AAClE,cAAY,SAAS,QAAQ;AAE7B,MAAI;AACF,SAAM,QAAQ,QAAQ,YAAY;AAElC,OAAI,QAAQ,KACV,SAAQ,IAAI,KAAK,UAAU;IAAE,IAAI;IAAM,QAAQ;IAAa,OAAO,QAAQ;IAAO;IAAM,CAAC,CAAC;QACrF;AACL,YAAQ,IAAI,GAAG;AACf,YAAQ,IAAI,8BAA8B;AAC1C,YAAQ,IAAI,eAAe,QAAQ,QAAQ;AAC3C,YAAQ,IAAI,YAAY,OAAO;AAC/B,YAAQ,IAAI,GAAG;AACf,YAAQ,IAAI,oDAAoD;AAChE,YAAQ,IAAI,0CAA0C;;WAEjD,KAAK;GACZ,MAAM,UAAU,eAAe,QAAQ,IAAI,UAAU,OAAO,IAAI;AAChE,OAAI,QAAQ,KACV,SAAQ,IAAI,KAAK,UAAU;IAAE,IAAI;IAAO,OAAO;IAAS,CAAC,CAAC;OAE1D,SAAQ,MAAM,gCAAgC,UAAU;AAE1D,WAAQ,KAAK,EAAE;;GAEjB;;;;;AAMN,SAAgB,yBAAkC;AAChD,QAAO,IAAI,QAAQ,YAAY,CAC5B,YAAY,+BAA+B,CAC3C,OAAO,UAAU,cAAc,CAC/B,OAAO,OAAO,YAAY;EACzB,MAAM,EAAE,2BAA2B,MAAM,OAAO;AAChD,QAAM,uBAAuB,QAAQ;GACrC;;;;;AAMN,SAAgB,4BAAqC;AACnD,QAAO,IAAI,QAAQ,QAAQ,CACxB,YAAY,uCAAuC,CACnD,OAAO,UAAU,cAAc,CAC/B,OAAO,OAAO,YAAY;EACzB,MAAM,CAAC,EAAE,uBAAuB,qBAAqB,4BACnD,MAAM,QAAQ,IAAI,CAAC,OAAO,8BAA8B,CAAC;AAG3D,MAAI,CAAC,MADmB,wBAAwB,EAChC;AACd,WAAQ,MAAM,0CAA0C;AACxD,WAAQ,KAAK,EAAE;;EAIjB,MAAM,SAAS,MAAM,oBAAoB,EAAE,SAAA,MADrB,uBAAuB,EACO,CAAC;AAErD,MAAI,QAAQ,MAAM;AAChB,WAAQ,IAAI,KAAK,UAAU;IAAE,IAAI,OAAO,YAAY;IAAW,SAAS,OAAO;IAAS,CAAC,CAAC;AAC1F;;AAGF,UAAQ,OAAO,SAAf;GACE,KAAK;AACH,YAAQ,IAAI,4BAA4B;AACxC;GACF,KAAK;AACH,YAAQ,MAAM,6DAA6D;AAC3E,YAAQ,KAAK,EAAE;AACf;GACF,KAAK;AACH,YAAQ,MAAM,4BAA4B;AAC1C,SAAK,MAAM,SAAS,OAAO,UAAU,EAAE,CACrC,SAAQ,MAAM,QAAQ,MAAM,UAAU;AAExC,YAAQ,IAAI,+CAA+C;AAC3D,YAAQ,KAAK,EAAE;AACf;GACF,QACE,SAAQ,IAAI,8BAA8B,OAAO,UAAU;;GAE/D;;;;;AAMN,SAAgB,6BAAsC;AACpD,QAAO,IAAI,QAAQ,SAAS,CACzB,YAAY,yBAAyB,CACrC,OAAO,UAAU,cAAc,CAC/B,OAAO,OAAO,YAAY;EACzB,MAAM,CAAC,EAAE,uBAAuB,wBAAwB,qBACtD,MAAM,QAAQ,IAAI,CAAC,OAAO,8BAA8B,CAAC;AAG3D,MAAI,CAAC,MADmB,wBAAwB,EAChC;AACd,OAAI,QAAQ,KACV,SAAQ,IAAI,KAAK,UAAU;IAAE,WAAW;IAAO,UAAU,QAAQ;IAAU,CAAC,CAAC;OAE7E,SAAQ,IAAI,+BAA+B,iBAAiB,GAAG;AAEjE;;EAGF,MAAM,UAAU,MAAM,uBAAuB;EAC7C,MAAM,CAAC,QAAQ,SAAS,WAAW,MAAM,QAAQ,IAAI;GACnD,QAAQ,SAAS,EAAE,KAAK,QAAQ,KAAK,CAAC;GACtC,QAAQ,aAAa;GACrB,QAAQ,aAAa;GACtB,CAAC;AAEF,MAAI,QAAQ,MAAM;AAChB,WAAQ,IAAI,KAAK,UAAU;IAAE,WAAW;IAAM;IAAQ;IAAS;IAAS,OAAO,QAAQ;IAAO,EAAE,MAAM,EAAE,CAAC;AACzG;;AAGF,UAAQ,IAAI,4BAA4B;AACxC,UAAQ,IAAI,GAAG;AACf,UAAQ,IAAI,gBAAgB,iBAAiB,GAAG;AAChD,UAAQ,IAAI,gBAAgB,SAAS,QAAQ,aAAa,QAAQ,gBAAgB;AAClF,UAAQ,IAAI,gBAAgB,QAAQ,SAAS,QAAQ,MAAM,SAAS,QAAQ,IAAI,KAAK,KAAK;AAE1F,MAAI,SAAS;GACX,MAAM,YAAY,QAAQ,iBAAiB,KAAK,IAAI,CAAC,MAAM,iBAAiB;AAC5E,OAAI,UACF,SAAQ,IAAI,gBAAgB,UAAU,KAAK;GAE7C,MAAM,UAAU,QAAQ,aAAa;AACrC,OAAI,QACF,SAAQ,IAAI,gBAAgB,UAAU;;AAI1C,MAAI,CAAC,QAAQ;AACX,WAAQ,IAAI,GAAG;AACf,WAAQ,IAAI,gDAAgD;;GAE9D;;;;;AAMN,SAAgB,uBAAgC;CAC9C,MAAM,MAAM,IAAI,QAAQ,UAAU,CAAC,YACjC,2DACD;AACD,KAAI,WAAW,sBAAsB,CAAC;AACtC,KAAI,WAAW,wBAAwB,CAAC;AACxC,KAAI,WAAW,2BAA2B,CAAC;AAC3C,KAAI,WAAW,4BAA4B,CAAC;AAC5C,KAAI,WAAW,mBAAmB,CAAC;AACnC,KAAI,WAAW,sBAAsB,CAAC;AACtC,QAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"shared.js","names":[],"sources":["../../../../../src/cli/commands/gateway/shared.ts"],"sourcesContent":["import { loadConfig } from '../../../config/index.js';\nimport { resolveConfigPath } from '../../../config/paths.js';\nimport {\n resolveGatewayLaunchAgentLabel,\n resolveGatewaySystemdServiceName,\n resolveGatewayWindowsTaskName,\n} from '../../../daemon/constants.js';\n\nexport function parsePortFromArgs(programArguments: string[] | undefined): number | null {\n if (!programArguments?.length) {\n return null;\n }\n for (let i = 0; i < programArguments.length; i += 1) {\n const arg = programArguments[i];\n if (arg === '--port') {\n const next = programArguments[i + 1];\n const parsed = parseInt(String(next), 10);\n if (Number.isFinite(parsed) && parsed > 0) {\n return parsed;\n }\n }\n if (arg?.startsWith('--port=')) {\n const parsed = parseInt(arg.split('=', 2)[1] ?? '', 10);\n if (Number.isFinite(parsed) && parsed > 0) {\n return parsed;\n }\n }\n }\n return null;\n}\n\nexport function resolveGatewayPortFromConfig(configPath?: string): number {\n const config = loadConfig(configPath ?? resolveConfigPath());\n return typeof config.gateway?.port === 'number' ? config.gateway.port : 18790;\n}\n\nexport function renderGatewayServiceStartHints(env: NodeJS.ProcessEnv = process.env): string[] {\n const profile = env.XOPC_PROFILE;\n const systemdName = resolveGatewaySystemdServiceName(profile);\n const launchAgent = resolveGatewayLaunchAgentLabel(profile);\n const windowsTask = resolveGatewayWindowsTaskName(profile);\n\n switch (process.platform) {\n case 'darwin':\n return [\n 'xopc gateway service install',\n 'xopc gateway',\n `LaunchAgent: ~/Library/LaunchAgents/${launchAgent}.plist`,\n ];\n case 'linux':\n return [\n 'xopc gateway service install',\n 'xopc gateway',\n `systemd user service: ${systemdName}.service`,\n ];\n case 'win32':\n return [\n 'xopc gateway service install',\n 'xopc gateway',\n `Scheduled task: ${windowsTask}`,\n ];\n default:\n return ['xopc gateway service install', 'xopc gateway'];\n }\n}\n"],"mappings":";;;;;YAC6D;AAO7D,SAAgB,kBAAkB,kBAAuD;AACvF,KAAI,CAAC,kBAAkB,OACrB,QAAO;AAET,MAAK,IAAI,IAAI,GAAG,IAAI,iBAAiB,QAAQ,KAAK,GAAG;EACnD,MAAM,MAAM,iBAAiB;AAC7B,MAAI,QAAQ,UAAU;GACpB,MAAM,OAAO,iBAAiB,IAAI;GAClC,MAAM,SAAS,SAAS,OAAO,KAAK,EAAE,GAAG;AACzC,OAAI,OAAO,SAAS,OAAO,IAAI,SAAS,EACtC,QAAO;;AAGX,MAAI,KAAK,WAAW,UAAU,EAAE;GAC9B,MAAM,SAAS,SAAS,IAAI,MAAM,KAAK,EAAE,CAAC,MAAM,IAAI,GAAG;AACvD,OAAI,OAAO,SAAS,OAAO,IAAI,SAAS,EACtC,QAAO;;;AAIb,QAAO;;AAGT,SAAgB,6BAA6B,YAA6B;CACxE,MAAM,SAAS,WAAW,cAAc,mBAAmB,CAAC;AAC5D,QAAO,OAAO,OAAO,SAAS,SAAS,WAAW,OAAO,QAAQ,OAAO;;AAG1E,SAAgB,+BAA+B,MAAyB,QAAQ,KAAe;CAC7F,MAAM,UAAU,IAAI;CACpB,MAAM,cAAc,iCAAiC,QAAQ;CAC7D,MAAM,cAAc,+BAA+B,QAAQ;CAC3D,MAAM,cAAc,8BAA8B,QAAQ;AAE1D,SAAQ,QAAQ,UAAhB;EACE,KAAK,SACH,QAAO;GACL;GACA;GACA,uCAAuC,YAAY;GACpD;EACH,KAAK,QACH,QAAO;GACL;GACA;GACA,yBAAyB,YAAY;GACtC;EACH,KAAK,QACH,QAAO;GACL;GACA;GACA,mBAAmB;GACpB;EACH,QACE,QAAO,CAAC,gCAAgC,eAAe"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"status.js","names":["optsProbe"],"sources":["../../../../../src/cli/commands/gateway/status.ts"],"sourcesContent":["import { Command } from 'commander';\n\nimport { resolveConfigPath } from '../../../config/paths.js';\nimport { getContextWithOpts } from '../../context.js';\nimport {\n addGatewayClientOptions,\n parseGatewayClientOptions,\n} from '../../utils/gateway-client-options.js';\n\ninterface StatusResponse {\n status: string;\n version?: string;\n channels?: Record<string, { status: string }>;\n uptime?: number;\n}\n\nfunction formatUptime(seconds?: number): string {\n if (!seconds || seconds <= 0) return 'unknown';\n const days = Math.floor(seconds / 86400);\n const hours = Math.floor((seconds % 86400) / 3600);\n const minutes = Math.floor((seconds % 3600) / 60);\n const parts: string[] = [];\n if (days > 0) parts.push(`${days}d`);\n if (hours > 0) parts.push(`${hours}h`);\n parts.push(`${minutes}m`);\n return parts.join(' ');\n}\n\nexport function createStatusCommand(): Command {\n const cmd = new Command('status').description('Check gateway status (service + connectivity)');\n\n addGatewayClientOptions(cmd);\n cmd.option('--no-probe', 'Skip HTTP probe (only check service/lock)');\n\n cmd.action(async (options) => {\n const ctx = getContextWithOpts();\n const configPath = ctx.configPath || resolveConfigPath();\n const [\n { loadConfig },\n { acquireGatewayLock, GatewayLockError },\n { callGatewayApi, resolveGatewayUrl },\n { resolveGatewayService, isDaemonAvailableAsync, getPlatformName },\n ] = await Promise.all([\n import('../../../config/index.js'),\n import('../../../gateway/lock.js'),\n import('../../utils/gateway-client.js'),\n import('../../../daemon/service.js'),\n ]);\n const config = loadConfig(configPath);\n const port = config?.gateway?.port ?? 18790;\n const clientOpts = { ...parseGatewayClientOptions(options as Record<string, unknown>), configPath };\n const gatewayUrl = resolveGatewayUrl({ url: clientOpts.url, configPath });\n\n // ─── Service Status ───\n let serviceLoaded = false;\n let serviceRuntime: { status: string; pid?: number; lastExitStatus?: number } | null = null;\n let serviceVersion: string | undefined;\n\n const daemonAvailable = await isDaemonAvailableAsync();\n if (daemonAvailable) {\n try {\n const service = await resolveGatewayService();\n serviceLoaded = await service.isLoaded({ env: process.env });\n if (serviceLoaded) {\n serviceRuntime = await service.readRuntime();\n const command = await service.readCommand();\n serviceVersion = command?.environment?.XOPC_SERVICE_VERSION;\n }\n } catch {\n // Best-effort service check\n }\n }\n\n // ─── Lock Check ───\n let lockAlive = false;\n let lockPid: number | undefined;\n\n try {\n const lock = await acquireGatewayLock(configPath, { timeoutMs: 100, port });\n await lock.release();\n lockAlive = false;\n } catch (err) {\n if (err instanceof GatewayLockError) {\n lockAlive = true;\n const pidMatch = err.message.match(/pid\\s+(\\d+)/);\n if (pidMatch) lockPid = parseInt(pidMatch[1], 10);\n } else {\n console.error('❌ Failed to check status:', err);\n process.exit(1);\n }\n }\n\n // ─── HTTP Probe ───\n const optsProbe = options as { probe?: boolean };\n const shouldProbe = optsProbe.probe !== false;\n\n let probeResult: {\n ok: boolean;\n data?: StatusResponse;\n error?: string;\n durationMs: number;\n } | null = null;\n\n if (shouldProbe) {\n const healthProbe = await callGatewayApi<{ status: string }>('GET', '/api/health', {\n ...clientOpts,\n timeoutMs: clientOpts.timeoutMs ?? 5000,\n });\n\n if (healthProbe.ok) {\n const statusProbe = await callGatewayApi<StatusResponse>('GET', '/api/status', clientOpts);\n probeResult = statusProbe.ok\n ? statusProbe\n : { ok: true, durationMs: healthProbe.durationMs, data: { status: 'ok' } };\n } else {\n probeResult = { ok: false, error: healthProbe.error, durationMs: healthProbe.durationMs };\n }\n }\n\n // ─── JSON Output ───\n if (clientOpts.json) {\n console.log(\n JSON.stringify(\n {\n running: lockAlive || (probeResult?.ok ?? false),\n service: daemonAvailable\n ? {\n platform: getPlatformName(),\n loaded: serviceLoaded,\n runtime: serviceRuntime,\n version: serviceVersion,\n }\n : null,\n lock: { alive: lockAlive, pid: lockPid },\n probe: probeResult\n ? {\n reachable: probeResult.ok,\n durationMs: probeResult.durationMs,\n ...(probeResult.data ?? {}),\n ...(probeResult.error ? { error: probeResult.error } : {}),\n }\n : null,\n url: gatewayUrl,\n port,\n },\n null,\n 2,\n ),\n );\n process.exit(probeResult?.ok || lockAlive ? 0 : 1);\n }\n\n // ─── Human Output ───\n const isRunning = lockAlive || (probeResult?.ok ?? false) || serviceRuntime?.status === 'running';\n\n if (!isRunning) {\n console.log('⚠️ Gateway is not running');\n if (daemonAvailable) {\n console.log(` Service: ${serviceLoaded ? 'installed (not running)' : 'not installed'}`);\n }\n if (probeResult && !probeResult.ok) {\n console.log(` Probe: ${probeResult.error} (${probeResult.durationMs}ms)`);\n }\n console.log('');\n console.log('💡 Start with: xopc gateway');\n if (!serviceLoaded && daemonAvailable) {\n console.log(' Or install service: xopc gateway service install');\n }\n process.exit(1);\n }\n\n console.log('Gateway Status');\n console.log('');\n\n // Service info\n if (daemonAvailable && serviceLoaded) {\n const runtimeStatus = serviceRuntime?.status ?? 'unknown';\n const pid = serviceRuntime?.pid || lockPid;\n console.log(` Service: ${getPlatformName()} (loaded)`);\n console.log(` Runtime: ${runtimeStatus}${pid ? ` (pid ${pid})` : ''}`);\n } else if (lockPid) {\n console.log(` PID: ${lockPid}`);\n }\n\n console.log(` Port: ${port}`);\n console.log(` URL: ${gatewayUrl}`);\n\n // Version from service or probe\n const version = probeResult?.data?.version || serviceVersion;\n if (version) {\n console.log(` Version: ${version}`);\n }\n\n // Uptime from probe\n if (probeResult?.ok && probeResult.data?.uptime != null) {\n console.log(` Uptime: ${formatUptime(probeResult.data.uptime)}`);\n }\n\n // Probe result\n if (probeResult?.ok) {\n console.log(` Probe: OK (${probeResult.durationMs}ms)`);\n } else if (probeResult && !probeResult.ok) {\n console.log(` Probe: Failed (${probeResult.error})`);\n } else if (!shouldProbe) {\n console.log(' Probe: skipped');\n }\n\n // Token\n const token = config?.gateway?.auth?.token;\n if (token) {\n console.log(` Token: configured ✓`);\n }\n\n // Channels\n if (probeResult?.ok && probeResult.data?.channels) {\n const channels = probeResult.data.channels;\n if (Object.keys(channels).length > 0) {\n console.log('');\n console.log('Channels:');\n for (const [name, info] of Object.entries(channels)) {\n const icon = info.status === 'connected' ? '✅' : info.status === 'disabled' ? '⚪' : '❌';\n console.log(` ${icon} ${name}: ${info.status}`);\n }\n }\n }\n\n process.exit(0);\n });\n\n return cmd;\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"stop.js","names":[],"sources":["../../../../../src/cli/commands/gateway/stop.ts"],"sourcesContent":["import { Command } from 'commander';\n\n/**\n * Create stop subcommand - delegates to daemon lifecycle core\n */\nexport function createStopCommand(): Command {\n return new Command('stop')\n .description('Stop the gateway service')\n .option('--disable', 'Disable KeepAlive so gateway does not respawn')\n .option('--json', 'Output JSON')\n .action(async (options) => {\n const { runDaemonStop } = await import('./lifecycle.js');\n await runDaemonStop(options);\n });\n}\n"],"mappings":";;;;;AAKA,SAAgB,oBAA6B;AAC3C,QAAO,IAAI,QAAQ,OAAO,CACvB,YAAY,2BAA2B,CACvC,OAAO,aAAa,gDAAgD,CACpE,OAAO,UAAU,cAAc,CAC/B,OAAO,OAAO,YAAY;EACzB,MAAM,EAAE,kBAAkB,MAAM,OAAO;AACvC,QAAM,cAAc,QAAQ;GAC5B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"subcommands.js","names":[],"sources":["../../../../../src/cli/commands/gateway/subcommands.ts"],"sourcesContent":["import type { Command } from 'commander';\n\nimport type { CLIContext } from '../../registry.js';\nimport {\n isKnownGatewaySubcommand,\n resolveGatewaySubcommandName,\n} from '../../gateway-run-argv.js';\nimport { resolveCliArgvInvocation } from '../../argv-invocation.js';\n\ntype GatewaySubcommandLoader = () => Promise<Command>;\n\nconst GATEWAY_SUBCOMMAND_LOADERS: Record<string, GatewaySubcommandLoader> = {\n token: async () => (await import('./token.js')).createTokenCommand(),\n status: async () => (await import('./status.js')).createStatusCommand(),\n health: async () => (await import('./health.js')).createHealthCommand(),\n call: async () => (await import('./call.js')).createCallCommand(),\n probe: async () => (await import('./probe.js')).createProbeCommand(),\n stop: async () => (await import('./stop.js')).createStopCommand(),\n restart: async () => (await import('./restart.js')).createRestartCommand(),\n logs: async () => (await import('./logs.js')).createLogsCommand(),\n service: async () => (await import('./service.js')).createServiceCommand(),\n};\n\nasync function attachAllGatewaySubcommands(cmd: Command, ctx: CLIContext): Promise<void> {\n for (const loader of Object.values(GATEWAY_SUBCOMMAND_LOADERS)) {\n cmd.addCommand(await loader());\n }\n const { registerGatewaySshTunnelCommand } = await import('../gateway-ssh-tunnel.js');\n registerGatewaySshTunnelCommand(cmd, ctx);\n}\n\nfunction shouldEagerLoadGatewaySubcommands(argv: string[]): boolean {\n const invocation = resolveCliArgvInvocation(argv);\n if (!invocation.hasHelpOrVersion) {\n return false;\n }\n const gatewayPath = resolveGatewaySubcommandName(argv);\n return gatewayPath === undefined;\n}\n\nexport async function prepareGatewayCommandForArgv(cmd: Command, ctx: CLIContext): Promise<void> {\n const subcommand = resolveGatewaySubcommandName(ctx.argv);\n if (subcommand === 'ssh-tunnel') {\n const { registerGatewaySshTunnelCommand } = await import('../gateway-ssh-tunnel.js');\n registerGatewaySshTunnelCommand(cmd, ctx);\n return;\n }\n if (subcommand && isKnownGatewaySubcommand(subcommand)) {\n const loader = GATEWAY_SUBCOMMAND_LOADERS[subcommand];\n if (loader) {\n cmd.addCommand(await loader());\n }\n return;\n }\n if (shouldEagerLoadGatewaySubcommands(ctx.argv)) {\n await attachAllGatewaySubcommands(cmd, ctx);\n }\n}\n"],"mappings":";;;AAWA,MAAM,6BAAsE;CAC1E,OAAO,aAAa,MAAM,OAAO,eAAe,oBAAoB;CACpE,QAAQ,aAAa,MAAM,OAAO,gBAAgB,qBAAqB;CACvE,QAAQ,aAAa,MAAM,OAAO,gBAAgB,qBAAqB;CACvE,MAAM,aAAa,MAAM,OAAO,cAAc,mBAAmB;CACjE,OAAO,aAAa,MAAM,OAAO,eAAe,oBAAoB;CACpE,MAAM,aAAa,MAAM,OAAO,cAAc,mBAAmB;CACjE,SAAS,aAAa,MAAM,OAAO,iBAAiB,sBAAsB;CAC1E,MAAM,aAAa,MAAM,OAAO,cAAc,mBAAmB;CACjE,SAAS,aAAa,MAAM,OAAO,iBAAiB,sBAAsB;CAC3E;AAED,eAAe,4BAA4B,KAAc,KAAgC;AACvF,MAAK,MAAM,UAAU,OAAO,OAAO,2BAA2B,CAC5D,KAAI,WAAW,MAAM,QAAQ,CAAC;CAEhC,MAAM,EAAE,oCAAoC,MAAM,OAAO;AACzD,iCAAgC,KAAK,IAAI;;AAG3C,SAAS,kCAAkC,MAAyB;AAElE,KAAI,CADe,yBAAyB,KAC7B,CAAC,iBACd,QAAO;AAGT,QADoB,6BAA6B,KAC/B,KAAK,KAAA;;AAGzB,eAAsB,6BAA6B,KAAc,KAAgC;CAC/F,MAAM,aAAa,6BAA6B,IAAI,KAAK;AACzD,KAAI,eAAe,cAAc;EAC/B,MAAM,EAAE,oCAAoC,MAAM,OAAO;AACzD,kCAAgC,KAAK,IAAI;AACzC;;AAEF,KAAI,cAAc,yBAAyB,WAAW,EAAE;EACtD,MAAM,SAAS,2BAA2B;AAC1C,MAAI,OACF,KAAI,WAAW,MAAM,QAAQ,CAAC;AAEhC;;AAEF,KAAI,kCAAkC,IAAI,KAAK,CAC7C,OAAM,4BAA4B,KAAK,IAAI"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"token.js","names":[],"sources":["../../../../../src/cli/commands/gateway/token.ts"],"sourcesContent":["import { Command } from 'commander';\nimport crypto from 'crypto';\nimport { resolveConfigPath } from '../../../config/paths.js';\nimport { getContextWithOpts } from '../../context.js';\n\n/**\n * Create the token subcommand for managing gateway authentication token.\n */\nexport function createTokenCommand(): Command {\n return new Command('token')\n .description('Manage gateway authentication token')\n .option('--generate', 'Generate a new token and save to config')\n .option('--mode <mode>', 'Auth mode: token or none', 'token')\n .action(async (options) => {\n const ctx = getContextWithOpts();\n const configPath = ctx.configPath || resolveConfigPath();\n const [{ loadConfig, saveConfig }, { createLogger }] = await Promise.all([\n import('../../../config/index.js'),\n import('../../../utils/logger.js'),\n ]);\n const log = createLogger('GatewayTokenCommand');\n\n try {\n const config = loadConfig(configPath);\n\n if (options.generate) {\n const newToken = crypto.randomBytes(24).toString('hex');\n\n config.gateway = config.gateway || {};\n config.gateway.auth = {\n mode: 'token',\n token: newToken,\n };\n\n await saveConfig(config, configPath);\n\n console.log('✅ Generated new gateway token:');\n console.log('');\n console.log(` ${newToken}`);\n console.log('');\n console.log('📝 Saved to config file. Use this token in the X-Api-Key header or as:');\n console.log(` xopc gateway --token ${newToken}`);\n console.log('');\n console.log('Or set environment variable:');\n console.log(` export XOPC_GATEWAY_TOKEN=${newToken}`);\n process.exit(0);\n } else {\n const currentToken = config.gateway?.auth?.token;\n const mode = config.gateway?.auth?.mode || 'token';\n\n if (mode === 'none') {\n console.log('⚠️ Gateway authentication is disabled (mode: none)');\n console.log('');\n console.log('To enable authentication, run:');\n console.log(' xopc gateway token --generate');\n } else if (currentToken) {\n const tokenPreview = `${currentToken.slice(0, 8)}...${currentToken.slice(-8)}`;\n console.log('🔑 Current gateway token:');\n console.log('');\n console.log(` ${currentToken}`);\n console.log('');\n console.log(`Preview: ${tokenPreview}`);\n console.log('');\n console.log('Usage:');\n console.log(` xopc gateway --token ${currentToken}`);\n console.log('');\n console.log('Or set environment variable:');\n console.log(` export XOPC_GATEWAY_TOKEN=${currentToken}`);\n } else {\n console.log('⚠️ No token configured. A token will be auto-generated on startup.');\n console.log('');\n console.log('To set a persistent token, run:');\n console.log(' xopc gateway token --generate');\n }\n process.exit(0);\n }\n } catch (error) {\n log.error({ err: error }, 'Failed to manage token');\n process.exit(1);\n }\n });\n}\n"],"mappings":";;;;;YAE6D;;;;AAM7D,SAAgB,qBAA8B;AAC5C,QAAO,IAAI,QAAQ,QAAQ,CACxB,YAAY,sCAAsC,CAClD,OAAO,cAAc,0CAA0C,CAC/D,OAAO,iBAAiB,4BAA4B,QAAQ,CAC5D,OAAO,OAAO,YAAY;EAEzB,MAAM,aADM,oBACU,CAAC,cAAc,mBAAmB;EACxD,MAAM,CAAC,EAAE,YAAY,cAAc,EAAE,kBAAkB,MAAM,QAAQ,IAAI,CACvE,OAAO,6BACP,OAAO,4BACR,CAAC;EACF,MAAM,MAAM,aAAa,sBAAsB;AAE/C,MAAI;GACF,MAAM,SAAS,WAAW,WAAW;AAErC,OAAI,QAAQ,UAAU;IACpB,MAAM,WAAW,OAAO,YAAY,GAAG,CAAC,SAAS,MAAM;AAEvD,WAAO,UAAU,OAAO,WAAW,EAAE;AACrC,WAAO,QAAQ,OAAO;KACpB,MAAM;KACN,OAAO;KACR;AAED,UAAM,WAAW,QAAQ,WAAW;AAEpC,YAAQ,IAAI,iCAAiC;AAC7C,YAAQ,IAAI,GAAG;AACf,YAAQ,IAAI,MAAM,WAAW;AAC7B,YAAQ,IAAI,GAAG;AACf,YAAQ,IAAI,yEAAyE;AACrF,YAAQ,IAAI,2BAA2B,WAAW;AAClD,YAAQ,IAAI,GAAG;AACf,YAAQ,IAAI,+BAA+B;AAC3C,YAAQ,IAAI,gCAAgC,WAAW;AACvD,YAAQ,KAAK,EAAE;UACV;IACL,MAAM,eAAe,OAAO,SAAS,MAAM;AAG3C,SAFa,OAAO,SAAS,MAAM,QAAQ,aAE9B,QAAQ;AACnB,aAAQ,IAAI,sDAAsD;AAClE,aAAQ,IAAI,GAAG;AACf,aAAQ,IAAI,iCAAiC;AAC7C,aAAQ,IAAI,mCAAmC;eACtC,cAAc;KACvB,MAAM,eAAe,GAAG,aAAa,MAAM,GAAG,EAAE,CAAC,KAAK,aAAa,MAAM,GAAG;AAC5E,aAAQ,IAAI,4BAA4B;AACxC,aAAQ,IAAI,GAAG;AACf,aAAQ,IAAI,MAAM,eAAe;AACjC,aAAQ,IAAI,GAAG;AACf,aAAQ,IAAI,YAAY,eAAe;AACvC,aAAQ,IAAI,GAAG;AACf,aAAQ,IAAI,SAAS;AACrB,aAAQ,IAAI,2BAA2B,eAAe;AACtD,aAAQ,IAAI,GAAG;AACf,aAAQ,IAAI,+BAA+B;AAC3C,aAAQ,IAAI,gCAAgC,eAAe;WACtD;AACL,aAAQ,IAAI,sEAAsE;AAClF,aAAQ,IAAI,GAAG;AACf,aAAQ,IAAI,kCAAkC;AAC9C,aAAQ,IAAI,mCAAmC;;AAEjD,YAAQ,KAAK,EAAE;;WAEV,OAAO;AACd,OAAI,MAAM,EAAE,KAAK,OAAO,EAAE,yBAAyB;AACnD,WAAQ,KAAK,EAAE;;GAEjB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"gateway-ssh-tunnel.js","names":[],"sources":["../../../../src/cli/commands/gateway-ssh-tunnel.ts"],"sourcesContent":["import { Command } from 'commander';\n\nimport { startSshPortForward } from '../../infra/ssh-tunnel.js';\nimport { formatExamples, type CLIContext } from '../registry.js';\n\nexport function registerGatewaySshTunnelCommand(parent: Command, ctx: CLIContext): void {\n parent.addCommand(createGatewaySshTunnelCommand(ctx));\n}\n\nfunction createGatewaySshTunnelCommand(_ctx: CLIContext): Command {\n return new Command('ssh-tunnel')\n .description('Open an SSH local port forward to a remote gateway (loopback on the remote host)')\n .option('--target <user@host>', 'SSH target (required)')\n .option('--identity <path>', 'SSH identity file')\n .option('--local-port <number>', 'Local port to bind (default 18790)', '18790')\n .option('--remote-port <number>', 'Remote gateway port (default 18790)', '18790')\n .addHelpText(\n 'after',\n formatExamples([\n 'xopc gateway ssh-tunnel --target user@vps.example.com',\n 'xopc gateway ssh-tunnel --target user@host --local-port 18790 --remote-port 18790',\n ]),\n )\n .action(async (options) => {\n const target = typeof options.target === 'string' ? options.target.trim() : '';\n if (!target) {\n console.error('Missing required --target user@host');\n process.exit(1);\n }\n\n const localPort = parseInt(String(options.localPort ?? '18790'), 10);\n const remotePort = parseInt(String(options.remotePort ?? '18790'), 10);\n if (!Number.isFinite(localPort) || !Number.isFinite(remotePort)) {\n console.error('Invalid --local-port or --remote-port');\n process.exit(1);\n }\n\n console.log(`Opening SSH tunnel localhost:${localPort} -> remote 127.0.0.1:${remotePort} via ${target}...`);\n\n let tunnel: Awaited<ReturnType<typeof startSshPortForward>>;\n try {\n tunnel = await startSshPortForward({\n target,\n identity: typeof options.identity === 'string' ? options.identity : undefined,\n localPortPreferred: localPort,\n remotePort,\n });\n } catch (err) {\n const em = err instanceof Error ? err.message : String(err);\n console.error(`SSH tunnel failed: ${em}`);\n process.exit(1);\n }\n\n console.log(`SSH tunnel active on http://127.0.0.1:${tunnel.localPort} (pid ${tunnel.pid ?? 'unknown'})`);\n console.log('Press Ctrl+C to close the tunnel');\n\n const shutdown = async () => {\n await tunnel.stop();\n process.exit(0);\n };\n process.on('SIGINT', () => void shutdown());\n process.on('SIGTERM', () => void shutdown());\n\n await new Promise<void>(() => {\n // keep alive until signal\n });\n });\n}\n"],"mappings":";;;;AAKA,SAAgB,gCAAgC,QAAiB,KAAuB;AACtF,QAAO,WAAW,8BAA8B,IAAI,CAAC;;AAGvD,SAAS,8BAA8B,MAA2B;AAChE,QAAO,IAAI,QAAQ,aAAa,CAC7B,YAAY,mFAAmF,CAC/F,OAAO,wBAAwB,wBAAwB,CACvD,OAAO,qBAAqB,oBAAoB,CAChD,OAAO,yBAAyB,sCAAsC,QAAQ,CAC9E,OAAO,0BAA0B,uCAAuC,QAAQ,CAChF,YACC,SACA,eAAe,CACb,yDACA,oFACD,CAAC,CACH,CACA,OAAO,OAAO,YAAY;EACzB,MAAM,SAAS,OAAO,QAAQ,WAAW,WAAW,QAAQ,OAAO,MAAM,GAAG;AAC5E,MAAI,CAAC,QAAQ;AACX,WAAQ,MAAM,sCAAsC;AACpD,WAAQ,KAAK,EAAE;;EAGjB,MAAM,YAAY,SAAS,OAAO,QAAQ,aAAa,QAAQ,EAAE,GAAG;EACpE,MAAM,aAAa,SAAS,OAAO,QAAQ,cAAc,QAAQ,EAAE,GAAG;AACtE,MAAI,CAAC,OAAO,SAAS,UAAU,IAAI,CAAC,OAAO,SAAS,WAAW,EAAE;AAC/D,WAAQ,MAAM,wCAAwC;AACtD,WAAQ,KAAK,EAAE;;AAGjB,UAAQ,IAAI,gCAAgC,UAAU,uBAAuB,WAAW,OAAO,OAAO,KAAK;EAE3G,IAAI;AACJ,MAAI;AACF,YAAS,MAAM,oBAAoB;IACjC;IACA,UAAU,OAAO,QAAQ,aAAa,WAAW,QAAQ,WAAW,KAAA;IACpE,oBAAoB;IACpB;IACD,CAAC;WACK,KAAK;GACZ,MAAM,KAAK,eAAe,QAAQ,IAAI,UAAU,OAAO,IAAI;AAC3D,WAAQ,MAAM,sBAAsB,KAAK;AACzC,WAAQ,KAAK,EAAE;;AAGjB,UAAQ,IAAI,yCAAyC,OAAO,UAAU,QAAQ,OAAO,OAAO,UAAU,GAAG;AACzG,UAAQ,IAAI,mCAAmC;EAE/C,MAAM,WAAW,YAAY;AAC3B,SAAM,OAAO,MAAM;AACnB,WAAQ,KAAK,EAAE;;AAEjB,UAAQ,GAAG,gBAAgB,KAAK,UAAU,CAAC;AAC3C,UAAQ,GAAG,iBAAiB,KAAK,UAAU,CAAC;AAE5C,QAAM,IAAI,cAAoB,GAE5B;GACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"gateway.js","names":[],"sources":["../../../../src/cli/commands/gateway.ts"],"sourcesContent":["import { Command } from 'commander';\n\nimport { register, formatExamples, type CLIContext } from '../registry.js';\nimport { getContextWithOpts } from '../context.js';\nimport { runGatewayFromCliOptions } from './gateway/run-foreground.js';\nimport { prepareGatewayCommandForArgv } from './gateway/subcommands.js';\n\nfunction createGatewayCommand(_ctx: CLIContext): Command {\n const cmd = new Command('gateway')\n .description('Start the xopc gateway server')\n .addHelpText(\n 'after',\n formatExamples([\n 'xopc gateway # Start gateway (foreground)',\n 'xopc gateway service install # Install OS service (background)',\n 'xopc gateway --bind lan # Listen on all interfaces (LAN)',\n 'xopc gateway --port 8080 # Custom port',\n 'xopc gateway --force # Force kill existing process',\n 'xopc gateway stop # Stop gateway',\n 'xopc gateway restart # Restart gateway',\n 'xopc gateway status # Check gateway status',\n 'xopc gateway health # Check gateway health',\n 'xopc gateway call status # Call gateway API (alias)',\n 'xopc gateway probe # Probe reachability / auth',\n 'xopc gateway logs # View recent logs',\n 'xopc gateway token # Show current token',\n 'xopc gateway token --generate # Generate new token',\n ]),\n )\n .option(\n '--bind <mode>',\n 'Bind mode: loopback | lan | auto | custom | tailnet',\n )\n .option('--port <number>', 'Port to listen on (defaults to gateway.port in config, else 18790)')\n .option('--token <token>', 'Authentication token')\n .option('--tailscale <mode>', 'Tailscale exposure: off | serve | funnel (overrides config for this run)')\n .option('--tailscale-reset-on-exit', 'Reset Tailscale serve/funnel on gateway shutdown', false)\n .option('--force', 'Force kill existing process on port', false)\n .option('--no-hot-reload', 'Disable config hot reload')\n .option('--foreground', 'Start gateway in foreground mode (blocks terminal)', true)\n .action(async (options) => {\n const ctx = getContextWithOpts();\n await runGatewayFromCliOptions(options, ctx);\n });\n\n return cmd;\n}\n\nregister({\n id: 'gateway',\n name: 'gateway',\n description: 'Start the xopc gateway server',\n factory: createGatewayCommand,\n metadata: {\n category: 'runtime',\n examples: [\n 'xopc gateway',\n 'xopc gateway service install',\n 'xopc gateway --port 8080',\n ],\n },\n});\n\nexport { createGatewayCommand, prepareGatewayCommandForArgv };\n"],"mappings":";;;;;;AAOA,SAAS,qBAAqB,MAA2B;AAsCvD,QArCY,IAAI,QAAQ,UAAU,CAC/B,YAAY,gCAAgC,CAC5C,YACC,SACA,eAAe;EACb;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC,CACH,CACA,OACC,iBACA,sDACD,CACA,OAAO,mBAAmB,qEAAqE,CAC/F,OAAO,mBAAmB,uBAAuB,CACjD,OAAO,sBAAsB,2EAA2E,CACxG,OAAO,6BAA6B,oDAAoD,MAAM,CAC9F,OAAO,WAAW,uCAAuC,MAAM,CAC/D,OAAO,mBAAmB,4BAA4B,CACtD,OAAO,gBAAgB,sDAAsD,KAAK,CAClF,OAAO,OAAO,YAAY;AAEzB,QAAM,yBAAyB,SADnB,oBAC+B,CAAC;GAGtC;;AAGZ,SAAS;CACP,IAAI;CACJ,MAAM;CACN,aAAa;CACb,SAAS;CACT,UAAU;EACR,UAAU;EACV,UAAU;GACR;GACA;GACA;GACD;EACF;CACF,CAAC"}