@xopcai/xopc 0.0.148 → 0.0.150

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 (2908) 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-B5h0UGWn.js → activity-store-B3YP7y9d.js} +1 -1
  158. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-Dy5VvLUq.js → agent-avatar-dicebear-BaP05tRU.js} +1 -1
  159. package/dist/gateway/static/root/assets/agents-QArUBYV7.js +2 -0
  160. package/dist/gateway/static/root/assets/{api-B3J2AmQW.js → api-BirUfJgj.js} +1 -1
  161. package/dist/gateway/static/root/assets/{app-management-settings-panel-BbSLDubO.js → app-management-settings-panel-D5Cg_a6I.js} +1 -1
  162. package/dist/gateway/static/root/assets/{appearance-settings-D9wK0UKA.js → appearance-settings-BBsAkJ56.js} +1 -1
  163. package/dist/gateway/static/root/assets/apps-page-D1uAUndU.js +1 -0
  164. package/dist/gateway/static/root/assets/{archive-plugin-DaDK-FYa.js → archive-plugin-D3OmrvFx.js} +1 -1
  165. package/dist/gateway/static/root/assets/{attachment-load-CKiBdU_s.js → attachment-load-Cgkm_5mb.js} +1 -1
  166. package/dist/gateway/static/root/assets/{automation-suggestion-card-8Qbnxq-p.js → automation-suggestion-card-CHvxSz-t.js} +1 -1
  167. package/dist/gateway/static/root/assets/automations-page-BWQk03Vu.js +6 -0
  168. package/dist/gateway/static/root/assets/{binary-plugins-ByZbwN2A.js → binary-plugins-dJR5UuzL.js} +1 -1
  169. package/dist/gateway/static/root/assets/{block-editor-DGaI2ucU.js → block-editor-v4_7o92L.js} +5 -5
  170. package/dist/gateway/static/root/assets/browser-settings-page-SruFGuBP.js +8 -0
  171. package/dist/gateway/static/root/assets/{capability-presets-api-DaPf3b5d.js → capability-presets-api-BcTjPLiD.js} +1 -1
  172. package/dist/gateway/static/root/assets/{capability-presets-settings-panel-C0iHFbY9.js → capability-presets-settings-panel-CddBf58y.js} +2 -2
  173. package/dist/gateway/static/root/assets/{channel-recipient-api-DrbkoYyF.js → channel-recipient-api-BbDlMRm5.js} +1 -1
  174. package/dist/gateway/static/root/assets/channels-settings-WI5tQ5tn.js +1 -0
  175. package/dist/gateway/static/root/assets/channels-status-swr-Dt2EROlf.js +1 -0
  176. package/dist/gateway/static/root/assets/{connector-logo-CiHea96v.js → connector-logo-BNthqff-.js} +1 -1
  177. package/dist/gateway/static/root/assets/connectors-page-DavHJ6rR.js +2 -0
  178. package/dist/gateway/static/root/assets/desktop-pet-CVajXkdj.js +1 -0
  179. package/dist/gateway/static/root/assets/desktop-pet-settings-SHI66eIi.js +1 -0
  180. package/dist/gateway/static/root/assets/{directory-picker-path-field-g_N_ROC-.js → directory-picker-path-field-BdWd7m-p.js} +1 -1
  181. package/dist/gateway/static/root/assets/{dreaming-settings-DnEe0Mxg.js → dreaming-settings-CXDhu3Me.js} +3 -3
  182. package/dist/gateway/static/root/assets/{extension-debug-page-DPkoOQED.js → extension-debug-page-CLJTGozU.js} +1 -1
  183. package/dist/gateway/static/root/assets/{extension-page-Cf_gDelx.js → extension-page-ClxpGfzA.js} +1 -1
  184. package/dist/gateway/static/root/assets/{extension-settings-page-YlXpJV9k.js → extension-settings-page-CDA3ZJ8k.js} +1 -1
  185. package/dist/gateway/static/root/assets/{gateway-config-api-BxHgXB-I.js → gateway-config-api-DpXL78pS.js} +1 -1
  186. package/dist/gateway/static/root/assets/gateway-settings-Co-mXFP_.js +1 -0
  187. package/dist/gateway/static/root/assets/{gateway-startup-retry-ChI88pp7.js → gateway-startup-retry-D0SU7dte.js} +1 -1
  188. package/dist/gateway/static/root/assets/{goal-create-dialog-ClzciTH5.js → goal-create-dialog-BO6G--Ec.js} +1 -1
  189. package/dist/gateway/static/root/assets/goal-detail-page-DK8eog4h.js +4 -0
  190. package/dist/gateway/static/root/assets/{goals-config-api-NoJKU8UZ.js → goals-config-api-r71aDqix.js} +1 -1
  191. package/dist/gateway/static/root/assets/goals-page-AcROW97U.js +2 -0
  192. package/dist/gateway/static/root/assets/{goals-settings-kQ1pBOM9.js → goals-settings-CZOLhkTH.js} +1 -1
  193. package/dist/gateway/static/root/assets/{heartbeat-settings-C6jSQCXQ.js → heartbeat-settings-F9S1gIFo.js} +1 -1
  194. package/dist/gateway/static/root/assets/index-C46C7Xee.css +1 -0
  195. package/dist/gateway/static/root/assets/{index-twNrYC3D.js → index-IPmCli0N.js} +70 -70
  196. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-CIQ6wLqH.js → keyboard-shortcuts-settings-B3CUVfZ8.js} +1 -1
  197. package/dist/gateway/static/root/assets/local-app-workbench-page-HVq6NUvQ.js +2 -0
  198. package/dist/gateway/static/root/assets/{local-apps-page-BO6odwNn.js → local-apps-page-n7YJfRkU.js} +1 -1
  199. package/dist/gateway/static/root/assets/{locale-store-BP67jtYG.js → locale-store-BvcHGPHU.js} +1 -1
  200. package/dist/gateway/static/root/assets/logs-page-Dgko6r04.js +7 -0
  201. package/dist/gateway/static/root/assets/{markdown-split-DbJZwtmM.js → markdown-split-1mnXr-JA.js} +1 -1
  202. package/dist/gateway/static/root/assets/{media-plugins-B0WH561o.js → media-plugins-D2bcxXrT.js} +1 -1
  203. package/dist/gateway/static/root/assets/messages-BH7paqYt.js +5 -0
  204. package/dist/gateway/static/root/assets/models-hub-panel-DD0cEfmR.js +2 -0
  205. package/dist/gateway/static/root/assets/{notes-page-B72S7M1Z.js → notes-page-Wjc2utlj.js} +1 -1
  206. package/dist/gateway/static/root/assets/notes-workbench-BkA2yg9K.js +4 -0
  207. package/dist/gateway/static/root/assets/{page-tabs-LjSEtOvG.js → page-tabs-vdljrKuG.js} +1 -1
  208. package/dist/gateway/static/root/assets/{preview-open-alternatives-Cn8Jp9jw.js → preview-open-alternatives-BHki0l-E.js} +1 -1
  209. package/dist/gateway/static/root/assets/project-detail-page-CXwVNLgg.js +1 -0
  210. package/dist/gateway/static/root/assets/projects-page-DlfvNcLh.js +1 -0
  211. package/dist/gateway/static/root/assets/remote-access-hub-BQyEX2Ui.js +1 -0
  212. package/dist/gateway/static/root/assets/{save-bar-controls-BDUPII5R.js → save-bar-controls-Vy4EmvEh.js} +1 -1
  213. package/dist/gateway/static/root/assets/{schedule-field-B1NY9MNs.js → schedule-field-CVcwC7k_.js} +1 -1
  214. package/dist/gateway/static/root/assets/{schema-form-CnsFMun1.js → schema-form-DhMA1vkR.js} +1 -1
  215. package/dist/gateway/static/root/assets/sessions-page-CqQEW8oT.js +1 -0
  216. package/dist/gateway/static/root/assets/settings-advanced-gate-M8fleFSc.js +1 -0
  217. package/dist/gateway/static/root/assets/{settings-collapsible-section-D9jJ6KlR.js → settings-collapsible-section-C0xcL0vB.js} +1 -1
  218. package/dist/gateway/static/root/assets/{settings-form-section-36IjMuUY.js → settings-form-section-Cgj4iVpx.js} +1 -1
  219. package/dist/gateway/static/root/assets/{settings-loading-skeleton-DyYMmawg.js → settings-loading-skeleton-CC_NmD69.js} +1 -1
  220. package/dist/gateway/static/root/assets/{settings-page-yv4TeHfF.js → settings-page-B7_JZ2rM.js} +1 -1
  221. package/dist/gateway/static/root/assets/{settings-page-layout-BAP5LguT.js → settings-page-layout-CKuQT4SG.js} +1 -1
  222. package/dist/gateway/static/root/assets/setup-status-panel-DvR8Y5YN.js +1 -0
  223. package/dist/gateway/static/root/assets/{share-preview-page-BBxZ9lX5.js → share-preview-page-BmVw-6SJ.js} +1 -1
  224. package/dist/gateway/static/root/assets/shares-settings-C0JYYhGx.js +1 -0
  225. package/dist/gateway/static/root/assets/skill-reload-api-DBFBczqN.js +1 -0
  226. package/dist/gateway/static/root/assets/skills-page-KAI9qBDD.js +2 -0
  227. package/dist/gateway/static/root/assets/{system-settings-panel-B3ceUo4i.js → system-settings-panel-D6d8VAk8.js} +1 -1
  228. package/dist/gateway/static/root/assets/{theme-store-_efiWyB8.js → theme-store-EbMQ3TYi.js} +1 -1
  229. package/dist/gateway/static/root/assets/{typed-models-lib-Dp1PvxGZ.js → typed-models-lib-D63hJX-S.js} +1 -1
  230. package/dist/gateway/static/root/assets/{use-channel-catalog-XHelnCa_.js → use-channel-catalog-D-I-qki9.js} +1 -1
  231. package/dist/gateway/static/root/assets/user-context-page-Cuft-EbR.js +1 -0
  232. package/dist/gateway/static/root/assets/{user-profile-fields-editor-nOOg0uBi.js → user-profile-fields-editor-CPaoS8Zl.js} +1 -1
  233. package/dist/gateway/static/root/assets/{user-profile-settings-panel-9fBPCoA9.js → user-profile-settings-panel-Bs13qcx1.js} +1 -1
  234. package/dist/gateway/static/root/assets/{utils-3AORlPIm.js → utils-3mnkFvPw.js} +1 -1
  235. package/dist/gateway/static/root/assets/voice-api-key-field-C716UEi9.js +1 -0
  236. package/dist/gateway/static/root/assets/work-discovery-page-CFSkHa0v.js +1 -0
  237. package/dist/gateway/static/root/assets/work-item-detail-page-DaapBdoZ.js +1 -0
  238. package/dist/gateway/static/root/assets/work-page-DMtX92vs.js +1 -0
  239. package/dist/gateway/static/root/assets/workflow-run-setup-panel-B9FnZNWZ.js +3 -0
  240. package/dist/gateway/static/root/assets/workflows-page-BgvE0_Iv.js +11 -0
  241. package/dist/gateway/static/root/favicon.svg +1 -187
  242. package/dist/gateway/static/root/index.html +7 -7
  243. package/dist/gateway/static/root/logo-dark.svg +1 -185
  244. package/dist/gateway/static/root/logo.svg +1 -185
  245. package/dist/package.js +1 -3
  246. package/dist/src/activity/context.js +0 -2
  247. package/dist/src/activity/emitter.js +0 -2
  248. package/dist/src/activity/service.js +0 -2
  249. package/dist/src/agent/agent-manager.js +0 -2
  250. package/dist/src/agent/agent-scope.js +0 -2
  251. package/dist/src/agent/background-review/coordinator.js +0 -2
  252. package/dist/src/agent/background-review/prompts.js +0 -2
  253. package/dist/src/agent/background-review/run-background-review.js +0 -2
  254. package/dist/src/agent/background-review/settings.js +0 -2
  255. package/dist/src/agent/bootstrap/bootstrap-cache.js +0 -2
  256. package/dist/src/agent/bootstrap/bootstrap-context.js +0 -2
  257. package/dist/src/agent/bootstrap/bootstrap-files.js +0 -2
  258. package/dist/src/agent/bootstrap/filter-bootstrap-files.js +0 -2
  259. package/dist/src/agent/bootstrap/load-bootstrap-files.js +0 -2
  260. package/dist/src/agent/bootstrap/project-agents-context.js +0 -2
  261. package/dist/src/agent/capabilities/definitions.js +0 -2
  262. package/dist/src/agent/capabilities/registry.js +0 -2
  263. package/dist/src/agent/child-agent-factory.js +0 -2
  264. package/dist/src/agent/client-error-format.js +0 -2
  265. package/dist/src/agent/code-intelligence/binary.js +0 -2
  266. package/dist/src/agent/code-intelligence/runtime.js +0 -2
  267. package/dist/src/agent/code-intelligence/tools.js +0 -2
  268. package/dist/src/agent/coding/turn-diff-tracker.js +0 -2
  269. package/dist/src/agent/context/expand-at-file-mentions.js +0 -2
  270. package/dist/src/agent/context/project-context.js +0 -2
  271. package/dist/src/agent/context/workspace-seed.js +0 -2
  272. package/dist/src/agent/context/workspace-state.js +0 -2
  273. package/dist/src/agent/context/workspace.js +0 -2
  274. package/dist/src/agent/embedded/run-for-session.js +0 -2
  275. package/dist/src/agent/embedded/run-turn.js +0 -2
  276. package/dist/src/agent/embedded/runs.js +0 -2
  277. package/dist/src/agent/embedded/session-manager-init.js +0 -2
  278. package/dist/src/agent/embedded/session-runner.js +0 -2
  279. package/dist/src/agent/embedded/session-tool-result-guard.js +0 -2
  280. package/dist/src/agent/embedded/sqlite-hydrating-session-manager.js +0 -2
  281. package/dist/src/agent/embedded/subscribe-session.js +0 -2
  282. package/dist/src/agent/embedded/system-prompt-override.js +0 -2
  283. package/dist/src/agent/embedded/tool-result-context-guard.js +0 -2
  284. package/dist/src/agent/embedded/tool-result-truncation.js +0 -2
  285. package/dist/src/agent/embedded/xopc-auth-storage.js +0 -2
  286. package/dist/src/agent/embedded/xopc-stream-bridge.js +0 -2
  287. package/dist/src/agent/embedded/xopc-tools-bridge.js +0 -2
  288. package/dist/src/agent/failover-error.js +0 -2
  289. package/dist/src/agent/fallback/candidates.js +0 -2
  290. package/dist/src/agent/fallback/reason.js +0 -2
  291. package/dist/src/agent/feedback/feedback-coordinator.js +0 -2
  292. package/dist/src/agent/goals/checklist-judge.js +0 -2
  293. package/dist/src/agent/goals/checklist-types.js +0 -2
  294. package/dist/src/agent/goals/evaluate-turn.js +0 -2
  295. package/dist/src/agent/goals/goal-locale.js +0 -2
  296. package/dist/src/agent/goals/judge.js +0 -2
  297. package/dist/src/agent/goals/persistent-goal-service.js +0 -2
  298. package/dist/src/agent/goals/post-turn.js +0 -2
  299. package/dist/src/agent/goals/state.js +0 -2
  300. package/dist/src/agent/image/generation/bundled-registry.js +0 -2
  301. package/dist/src/agent/image/generation/bundled.js +0 -2
  302. package/dist/src/agent/image/generation/image-assets.js +0 -2
  303. package/dist/src/agent/image/generation/model-ref.js +0 -2
  304. package/dist/src/agent/image/generation/normalization.js +0 -2
  305. package/dist/src/agent/image/generation/openai-compatible-image-provider.js +0 -2
  306. package/dist/src/agent/image/generation/provider-registry.js +0 -2
  307. package/dist/src/agent/image/generation/runtime.js +0 -2
  308. package/dist/src/agent/image/image-helpers.js +0 -2
  309. package/dist/src/agent/image/image-model-fallback.js +0 -2
  310. package/dist/src/agent/image/inbound-image-handling.js +0 -2
  311. package/dist/src/agent/image/load-image-media.js +0 -2
  312. package/dist/src/agent/image/tool-model-config.js +0 -2
  313. package/dist/src/agent/image/understanding/pi-ai-provider.js +0 -2
  314. package/dist/src/agent/image/understanding/provider-registry.js +0 -2
  315. package/dist/src/agent/image/understanding/runtime.js +0 -2
  316. package/dist/src/agent/image/vision-detection.js +0 -2
  317. package/dist/src/agent/inbound/attachment-pipeline.js +0 -2
  318. package/dist/src/agent/inbound/inbound-loop.js +0 -2
  319. package/dist/src/agent/inbound/turn-dispatcher.js +0 -2
  320. package/dist/src/agent/ipc/bus.js +0 -2
  321. package/dist/src/agent/ipc/inbox.js +0 -2
  322. package/dist/src/agent/ipc/socket.js +0 -2
  323. package/dist/src/agent/ipc/types.js +0 -2
  324. package/dist/src/agent/lifecycle/handlers/compaction.js +0 -2
  325. package/dist/src/agent/lifecycle/hook-handler.js +0 -2
  326. package/dist/src/agent/lifecycle/manager.js +0 -2
  327. package/dist/src/agent/lifecycle/progress.js +0 -2
  328. package/dist/src/agent/lifecycle/timeout-wrapper.js +0 -2
  329. package/dist/src/agent/lifecycle/typing.js +0 -2
  330. package/dist/src/agent/mcp/bundle-mcp-config.js +0 -2
  331. package/dist/src/agent/mcp/bundle-mcp-materialize.js +0 -2
  332. package/dist/src/agent/mcp/bundle-mcp-names.js +0 -2
  333. package/dist/src/agent/mcp/bundle-mcp-policy.js +0 -2
  334. package/dist/src/agent/mcp/bundle-mcp-runtime.js +0 -2
  335. package/dist/src/agent/mcp/embedded-mcp.js +0 -2
  336. package/dist/src/agent/mcp/mcp-config-shared.js +0 -2
  337. package/dist/src/agent/mcp/mcp-http.js +0 -2
  338. package/dist/src/agent/mcp/mcp-stdio-transport.js +0 -2
  339. package/dist/src/agent/mcp/mcp-stdio.js +0 -2
  340. package/dist/src/agent/mcp/mcp-tool-meta.js +0 -2
  341. package/dist/src/agent/mcp/mcp-transport-config.js +0 -2
  342. package/dist/src/agent/mcp/mcp-transport.js +0 -2
  343. package/dist/src/agent/mcp/resolve-embedded-mcp-tools.js +0 -2
  344. package/dist/src/agent/media-generation/model-ref.js +0 -2
  345. package/dist/src/agent/media-generation/normalization.types.js +0 -2
  346. package/dist/src/agent/media-generation/runtime-shared.js +0 -2
  347. package/dist/src/agent/memory/agent-message-access.js +0 -2
  348. package/dist/src/agent/memory/builtin-memory-store.js +0 -2
  349. package/dist/src/agent/memory/builtin-provider.js +0 -2
  350. package/dist/src/agent/memory/compaction.js +0 -2
  351. package/dist/src/agent/memory/context/planner.js +0 -2
  352. package/dist/src/agent/memory/context-fence.js +0 -2
  353. package/dist/src/agent/memory/create-memory-manager.js +0 -2
  354. package/dist/src/agent/memory/dreaming/config.js +0 -2
  355. package/dist/src/agent/memory/dreaming/constants.js +0 -2
  356. package/dist/src/agent/memory/dreaming/deep-promotion.js +0 -2
  357. package/dist/src/agent/memory/dreaming/events.js +0 -2
  358. package/dist/src/agent/memory/dreaming/last-run.js +0 -2
  359. package/dist/src/agent/memory/dreaming/light-sweep.js +0 -2
  360. package/dist/src/agent/memory/dreaming/preview.js +0 -2
  361. package/dist/src/agent/memory/dreaming/promotion-lifecycle.js +0 -2
  362. package/dist/src/agent/memory/dreaming/rem-patterns.js +0 -2
  363. package/dist/src/agent/memory/dreaming/scope.js +0 -2
  364. package/dist/src/agent/memory/dreaming/short-term-store.js +0 -2
  365. package/dist/src/agent/memory/dreaming/utils.js +0 -2
  366. package/dist/src/agent/memory/lifecycle.js +0 -2
  367. package/dist/src/agent/memory/manager.js +0 -2
  368. package/dist/src/agent/memory/memory-config.js +0 -2
  369. package/dist/src/agent/memory/message-sanitizer.js +0 -2
  370. package/dist/src/agent/memory/plugin-discovery.js +0 -2
  371. package/dist/src/agent/memory/sensitivity.js +0 -2
  372. package/dist/src/agent/memory/source-origin.js +0 -2
  373. package/dist/src/agent/memory/stub-memory-provider.js +0 -2
  374. package/dist/src/agent/memory/summary-generator.js +0 -2
  375. package/dist/src/agent/memory/understanding/correction.js +0 -2
  376. package/dist/src/agent/memory/understanding/quality.js +0 -2
  377. package/dist/src/agent/memory/understanding/service.js +0 -2
  378. package/dist/src/agent/memory/user-context-coordinator.js +0 -2
  379. package/dist/src/agent/memory/user-message-text.js +0 -2
  380. package/dist/src/agent/memory/window.js +0 -2
  381. package/dist/src/agent/messaging/command-handler.js +0 -2
  382. package/dist/src/agent/messaging/message-router.js +0 -2
  383. package/dist/src/agent/messaging/outbound-coordinator.js +0 -2
  384. package/dist/src/agent/messaging/stream-manager.js +0 -2
  385. package/dist/src/agent/middleware/context.js +0 -2
  386. package/dist/src/agent/middleware/self-verify.js +0 -2
  387. package/dist/src/agent/models/manager.js +0 -2
  388. package/dist/src/agent/models/request-limiter.js +0 -2
  389. package/dist/src/agent/models/selection.js +0 -2
  390. package/dist/src/agent/orchestration/agent-event-handler.js +0 -2
  391. package/dist/src/agent/orchestration/agent-orchestrator.js +0 -2
  392. package/dist/src/agent/orchestration/llm-turn-retry.js +0 -2
  393. package/dist/src/agent/orchestration/loop-guard.js +0 -2
  394. package/dist/src/agent/orchestration/run-agent-turn-with-timeout.js +0 -2
  395. package/dist/src/agent/prompt/cache-boundary.js +0 -2
  396. package/dist/src/agent/prompt/memory/index.js +0 -2
  397. package/dist/src/agent/prompt/safety.js +0 -2
  398. package/dist/src/agent/prompt/sanitize-for-prompt.js +0 -2
  399. package/dist/src/agent/prompt/sections/behavior.js +0 -2
  400. package/dist/src/agent/prompt/sections/memory-skills.js +0 -2
  401. package/dist/src/agent/prompt/sections/messaging-runtime.js +0 -2
  402. package/dist/src/agent/prompt/sections/project-context.js +0 -2
  403. package/dist/src/agent/prompt/sections/tooling.js +0 -2
  404. package/dist/src/agent/prompt/sections/workspace-runtime.js +0 -2
  405. package/dist/src/agent/prompt/service-prompt-builder.js +0 -2
  406. package/dist/src/agent/prompt/subagent-context.js +0 -2
  407. package/dist/src/agent/prompt/system-prompt-params.js +0 -2
  408. package/dist/src/agent/prompt/system-prompt.js +0 -2
  409. package/dist/src/agent/prompt/system-reminder.js +0 -2
  410. package/dist/src/agent/reply/apply-turn-user-enrichment.js +0 -2
  411. package/dist/src/agent/reply/post-compaction-context.js +0 -2
  412. package/dist/src/agent/reply/startup-context.js +0 -2
  413. package/dist/src/agent/reply/workspace-boundary-read.js +0 -2
  414. package/dist/src/agent/sandbox/command-validator.js +0 -2
  415. package/dist/src/agent/sandbox/exec-policy.js +0 -2
  416. package/dist/src/agent/sandbox/path-policy.js +0 -2
  417. package/dist/src/agent/sandbox/sanitize-env-vars.js +0 -2
  418. package/dist/src/agent/sandbox/types.js +0 -2
  419. package/dist/src/agent/service/async-queue.js +0 -2
  420. package/dist/src/agent/service/btw-query.js +0 -2
  421. package/dist/src/agent/service/build-direct-message-content.js +0 -2
  422. package/dist/src/agent/service/direct-turn-helpers.js +0 -2
  423. package/dist/src/agent/service/parse-outbound-session-key.js +0 -2
  424. package/dist/src/agent/service/process-direct-one-shot.js +0 -2
  425. package/dist/src/agent/service/process-direct-streaming.js +0 -2
  426. package/dist/src/agent/service/session-context-report.js +0 -2
  427. package/dist/src/agent/service/webchat-tts.js +0 -2
  428. package/dist/src/agent/service-inbound-utils.js +0 -2
  429. package/dist/src/agent/service.js +0 -2
  430. package/dist/src/agent/session/session-config-service.js +0 -2
  431. package/dist/src/agent/session/session-context.js +0 -2
  432. package/dist/src/agent/session/session-hydrator.js +0 -2
  433. package/dist/src/agent/session/session-inspector.js +0 -2
  434. package/dist/src/agent/session/session-lifecycle.js +0 -2
  435. package/dist/src/agent/session/session-state-bag.js +0 -2
  436. package/dist/src/agent/session/tracker.js +0 -2
  437. package/dist/src/agent/skills/config.js +0 -2
  438. package/dist/src/agent/skills/filesystem-watcher.js +0 -2
  439. package/dist/src/agent/skills/format-skills-prompt.js +0 -2
  440. package/dist/src/agent/skills/hub-hash.js +0 -2
  441. package/dist/src/agent/skills/hub-lock.js +0 -2
  442. package/dist/src/agent/skills/hub-pull.js +0 -2
  443. package/dist/src/agent/skills/index.js +0 -2
  444. package/dist/src/agent/skills/install-target.js +0 -2
  445. package/dist/src/agent/skills/installer.js +0 -2
  446. package/dist/src/agent/skills/managed-store.js +0 -2
  447. package/dist/src/agent/skills/marketplace/adapters/clawhub/adapter.js +0 -2
  448. package/dist/src/agent/skills/marketplace/adapters/skillhub/adapter.js +0 -2
  449. package/dist/src/agent/skills/marketplace/adapters/store/adapter.js +0 -2
  450. package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.js +0 -2
  451. package/dist/src/agent/skills/marketplace/marketplace-category-order.js +0 -2
  452. package/dist/src/agent/skills/marketplace/registry.js +0 -2
  453. package/dist/src/agent/skills/marketplace/resolve-adapter.js +0 -2
  454. package/dist/src/agent/skills/parse-skill-metadata.js +0 -2
  455. package/dist/src/agent/skills/required-env-vars.js +0 -2
  456. package/dist/src/agent/skills/scanner.js +0 -2
  457. package/dist/src/agent/skills/skill-manage-ops.js +0 -2
  458. package/dist/src/agent/skills/skill-manager.js +0 -2
  459. package/dist/src/agent/skills/skill-markdown-preview-from-raw.js +0 -2
  460. package/dist/src/agent/skills/skill-tool-gating.js +0 -2
  461. package/dist/src/agent/skills/skill-view-path.js +0 -2
  462. package/dist/src/agent/skills/skills-marketplace.js +0 -2
  463. package/dist/src/agent/skills/test-framework.js +0 -2
  464. package/dist/src/agent/skills/watcher.js +0 -2
  465. package/dist/src/agent/skills/workspace-skills-dir.js +0 -2
  466. package/dist/src/agent/source-context/injector.js +0 -2
  467. package/dist/src/agent/source-context/types.js +0 -2
  468. package/dist/src/agent/starter-agents.js +0 -2
  469. package/dist/src/agent/streaming/reasoning-visibility-sse.js +0 -2
  470. package/dist/src/agent/tool-manuals/browser.js +0 -2
  471. package/dist/src/agent/tool-manuals/index.js +0 -2
  472. package/dist/src/agent/tool-manuals/xopc-use.js +0 -2
  473. package/dist/src/agent/tools/apply-patch.js +0 -2
  474. package/dist/src/agent/tools/automation-tool.js +0 -2
  475. package/dist/src/agent/tools/browser/tool/browser-use-tool.js +0 -2
  476. package/dist/src/agent/tools/browser/tool/schemas.js +0 -2
  477. package/dist/src/agent/tools/chain-tracker.js +0 -2
  478. package/dist/src/agent/tools/clarify-tool.js +0 -2
  479. package/dist/src/agent/tools/cli-clarify.js +0 -2
  480. package/dist/src/agent/tools/communication.js +0 -2
  481. package/dist/src/agent/tools/composio-tool.js +0 -2
  482. package/dist/src/agent/tools/concurrency.js +0 -2
  483. package/dist/src/agent/tools/create-share-tool.js +0 -2
  484. package/dist/src/agent/tools/curated-memory-tool.js +0 -2
  485. package/dist/src/agent/tools/delegate-tool.js +0 -2
  486. package/dist/src/agent/tools/desktop-pet-tool.d.ts +12 -0
  487. package/dist/src/agent/tools/desktop-pet-tool.js +28 -2
  488. package/dist/src/agent/tools/dreaming-tool.js +0 -2
  489. package/dist/src/agent/tools/edit-diff.js +0 -2
  490. package/dist/src/agent/tools/error-pattern-matcher.js +0 -2
  491. package/dist/src/agent/tools/error-tracker.js +0 -2
  492. package/dist/src/agent/tools/exec-command.js +0 -2
  493. package/dist/src/agent/tools/execute-code-tool.js +0 -2
  494. package/dist/src/agent/tools/executor.js +0 -2
  495. package/dist/src/agent/tools/factory.js +0 -2
  496. package/dist/src/agent/tools/find.js +0 -2
  497. package/dist/src/agent/tools/goal-evidence-recorder.js +0 -2
  498. package/dist/src/agent/tools/goal-tool.js +0 -2
  499. package/dist/src/agent/tools/grep.js +0 -2
  500. package/dist/src/agent/tools/image-generate-tool.js +0 -2
  501. package/dist/src/agent/tools/image-tool.js +0 -2
  502. package/dist/src/agent/tools/list-dir.js +0 -2
  503. package/dist/src/agent/tools/media-read-tool.js +0 -2
  504. package/dist/src/agent/tools/memory-tool.js +0 -2
  505. package/dist/src/agent/tools/metadata.js +0 -2
  506. package/dist/src/agent/tools/read.js +0 -2
  507. package/dist/src/agent/tools/search/http.js +0 -2
  508. package/dist/src/agent/tools/search/providers/bing-api.js +0 -2
  509. package/dist/src/agent/tools/search/providers/bing-html.js +0 -2
  510. package/dist/src/agent/tools/search/providers/brave.js +0 -2
  511. package/dist/src/agent/tools/search/providers/duckduckgo-html.js +0 -2
  512. package/dist/src/agent/tools/search/providers/searxng.js +0 -2
  513. package/dist/src/agent/tools/search/providers/tavily.js +0 -2
  514. package/dist/src/agent/tools/search/region.js +0 -2
  515. package/dist/src/agent/tools/search/registry.js +0 -2
  516. package/dist/src/agent/tools/search/resolve-config.js +0 -2
  517. package/dist/src/agent/tools/send-media.js +0 -2
  518. package/dist/src/agent/tools/session-search-tool.js +0 -2
  519. package/dist/src/agent/tools/session-status-tool.js +0 -2
  520. package/dist/src/agent/tools/skill-install-tool.js +0 -2
  521. package/dist/src/agent/tools/skill-manage-tool.js +0 -2
  522. package/dist/src/agent/tools/skills-tools.js +0 -2
  523. package/dist/src/agent/tools/structured-output.js +0 -2
  524. package/dist/src/agent/tools/todo-tool.js +0 -2
  525. package/dist/src/agent/tools/tool-manual-tool.js +0 -2
  526. package/dist/src/agent/tools/tool-paths.js +0 -2
  527. package/dist/src/agent/tools/truncate.js +0 -2
  528. package/dist/src/agent/tools/tts-tool.js +0 -2
  529. package/dist/src/agent/tools/update-plan-tool.js +0 -2
  530. package/dist/src/agent/tools/url-safety.js +0 -2
  531. package/dist/src/agent/tools/usage-analyzer.js +0 -2
  532. package/dist/src/agent/tools/web-extract.js +0 -2
  533. package/dist/src/agent/tools/web.js +4 -4
  534. package/dist/src/agent/tools/workflow-tool.js +0 -2
  535. package/dist/src/agent/tools/write.js +0 -2
  536. package/dist/src/agent/tools/xopc-use-tool.js +0 -2
  537. package/dist/src/agent/transcript/google-api.js +0 -2
  538. package/dist/src/agent/transcript/model-selection.js +0 -2
  539. package/dist/src/agent/transcript/provider-capabilities.js +0 -2
  540. package/dist/src/agent/transcript/session-transcript-repair.js +0 -2
  541. package/dist/src/agent/transcript/strip-tool-messages.js +0 -2
  542. package/dist/src/agent/transcript/thinking-types.js +0 -2
  543. package/dist/src/agent/transcript/thinking.js +0 -2
  544. package/dist/src/agent/transcript/tool-call-id.js +0 -2
  545. package/dist/src/agent/transcript/transcript-hygiene.js +0 -2
  546. package/dist/src/agent/transcript/transcript-policy.js +0 -2
  547. package/dist/src/agent/workflow/agent-progress.js +0 -2
  548. package/dist/src/agent/workflow/builtins/index.js +0 -2
  549. package/dist/src/agent/workflow/catalog.js +0 -2
  550. package/dist/src/agent/workflow/progress-broker.js +0 -2
  551. package/dist/src/agent/workflow/snapshot-empty.js +0 -2
  552. package/dist/src/agent/workflow/snapshot.js +0 -2
  553. package/dist/src/agent/workflow/step-labels.js +0 -2
  554. package/dist/src/agent/workflow/structured-output-tool.js +0 -2
  555. package/dist/src/agent/workflow/subagent-runner.js +0 -2
  556. package/dist/src/agent/workflow/workflow-child-tools.js +0 -2
  557. package/dist/src/agent/workspace-runtime/registry.js +0 -2
  558. package/dist/src/agent-manifest/index.js +0 -2
  559. package/dist/src/agent-manifest/preset-chain.js +0 -2
  560. package/dist/src/agent-manifest/prompt.js +0 -2
  561. package/dist/src/agent-manifest/resolver.js +0 -2
  562. package/dist/src/agent-manifest/schema.js +0 -2
  563. package/dist/src/agent-manifest/validator.js +0 -2
  564. package/dist/src/agent-runtime/boundary-guard.js +0 -2
  565. package/dist/src/agent-runtime/memory-runtime.js +0 -2
  566. package/dist/src/agent-runtime/model-router.js +0 -2
  567. package/dist/src/agent-runtime/run-trace.js +0 -2
  568. package/dist/src/agent-runtime/runtime-profile.js +0 -2
  569. package/dist/src/agent-runtime/tool-registry.js +0 -2
  570. package/dist/src/agent-runtime/workflow-runtime.js +0 -2
  571. package/dist/src/ai-assist/text-assist.js +0 -2
  572. package/dist/src/auth/credentials.js +0 -2
  573. package/dist/src/auth/index.js +0 -2
  574. package/dist/src/auth/oauth/anthropic.js +0 -2
  575. package/dist/src/auth/oauth/github-copilot.js +0 -2
  576. package/dist/src/auth/oauth/google-oauth/google-antigravity.js +0 -2
  577. package/dist/src/auth/oauth/google-oauth/google-gemini-cli.js +0 -2
  578. package/dist/src/auth/oauth/google-oauth/oauth-page.js +0 -2
  579. package/dist/src/auth/oauth/google-oauth/pkce.js +0 -2
  580. package/dist/src/auth/oauth/kimi-coding.js +0 -2
  581. package/dist/src/auth/oauth/minimax-cn.js +0 -2
  582. package/dist/src/auth/oauth/minimax.js +0 -2
  583. package/dist/src/auth/oauth/openai-codex.js +0 -2
  584. package/dist/src/auth/oauth/pkce.js +0 -2
  585. package/dist/src/auth/profiles/oauth.js +0 -2
  586. package/dist/src/auth/profiles/order.js +0 -2
  587. package/dist/src/auth/profiles/profiles.js +0 -2
  588. package/dist/src/auth/profiles/store.js +0 -2
  589. package/dist/src/auth/sync-provider-auth.js +0 -2
  590. package/dist/src/automations/api/routes.js +0 -2
  591. package/dist/src/automations/domain/schedule.js +0 -2
  592. package/dist/src/automations/domain/validation.js +0 -2
  593. package/dist/src/automations/draft/automation-draft-prompt.js +0 -2
  594. package/dist/src/automations/draft/automation-draft-service.js +0 -2
  595. package/dist/src/automations/draft/automation-draft-validator.js +0 -2
  596. package/dist/src/automations/product-events.js +0 -2
  597. package/dist/src/automations/service/action-executor.js +0 -2
  598. package/dist/src/automations/service/automation-service.js +0 -2
  599. package/dist/src/automations/storage/automation-repository.js +0 -2
  600. package/dist/src/automations/storage/automation-run-repository.js +0 -2
  601. package/dist/src/browser/actions/extension-registry-bridge.js +0 -2
  602. package/dist/src/browser/actions/registry.js +0 -2
  603. package/dist/src/browser/backend-from-config.js +0 -2
  604. package/dist/src/browser/browser-command-timeout.js +0 -2
  605. package/dist/src/browser/cache-dir-policy.js +0 -2
  606. package/dist/src/browser/cdp-local-launcher.js +0 -2
  607. package/dist/src/browser/cdp-supervisor.js +0 -2
  608. package/dist/src/browser/free-port.js +0 -2
  609. package/dist/src/browser/humanize.js +0 -2
  610. package/dist/src/browser/install-lock.js +0 -2
  611. package/dist/src/browser/manager.js +0 -2
  612. package/dist/src/browser/pipeline/output.js +0 -2
  613. package/dist/src/browser/pipeline/runner.js +0 -2
  614. package/dist/src/browser/pipeline/schema.js +0 -2
  615. package/dist/src/browser/pipeline/source.js +0 -2
  616. package/dist/src/browser/pipeline/template.js +0 -2
  617. package/dist/src/browser/providers/browser-ext-install.js +0 -2
  618. package/dist/src/browser/providers/browser-use.js +0 -2
  619. package/dist/src/browser/providers/browserbase.js +0 -2
  620. package/dist/src/browser/providers/cloakbrowser.js +0 -2
  621. package/dist/src/browser/providers/extension-ws-acquire.js +0 -2
  622. package/dist/src/browser/providers/extension.js +0 -2
  623. package/dist/src/browser/providers/playwright-doctor.js +13 -4
  624. package/dist/src/browser/providers/playwright-install.js +0 -2
  625. package/dist/src/browser/readiness.js +0 -2
  626. package/dist/src/browser/schemas.js +0 -2
  627. package/dist/src/browser/session-lifecycle.js +0 -2
  628. package/dist/src/browser/snapshot-helpers.js +0 -2
  629. package/dist/src/browser/stealth.js +0 -2
  630. package/dist/src/browser/url-policy.js +0 -2
  631. package/dist/src/capabilities/store-connector.js +0 -2
  632. package/dist/src/channels/attachments/attachment-classifiers.js +0 -2
  633. package/dist/src/channels/attachments/inbound-persist.js +0 -2
  634. package/dist/src/channels/attachments/inbound-types.js +0 -2
  635. package/dist/src/channels/attachments/outbound-tts-persist.js +0 -2
  636. package/dist/src/channels/attachments/voice-stt-webchat.js +0 -2
  637. package/dist/src/channels/catalog/channel-catalog-service.js +0 -2
  638. package/dist/src/channels/config-helpers.js +0 -2
  639. package/dist/src/channels/envelope-timestamp.js +0 -2
  640. package/dist/src/channels/exec-approval-runtime.js +0 -2
  641. package/dist/src/channels/health-monitor.js +0 -2
  642. package/dist/src/channels/heartbeat-scheduler.js +0 -2
  643. package/dist/src/channels/internal-outbound.js +0 -2
  644. package/dist/src/channels/lifecycle-supervisor.js +0 -2
  645. package/dist/src/channels/manager.js +0 -2
  646. package/dist/src/channels/media.js +0 -2
  647. package/dist/src/channels/outbound/deliver.js +0 -2
  648. package/dist/src/channels/outbound/normalize.js +0 -2
  649. package/dist/src/channels/outbound/persist-store.js +0 -2
  650. package/dist/src/channels/outbound/queue.js +0 -2
  651. package/dist/src/channels/outbound-sender.js +0 -2
  652. package/dist/src/channels/pairing/allow-from-file.js +0 -2
  653. package/dist/src/channels/pairing/approve-cli.js +0 -2
  654. package/dist/src/channels/pairing/pairing-challenge.js +0 -2
  655. package/dist/src/channels/pairing/pairing-constants.js +0 -2
  656. package/dist/src/channels/pairing/pairing-events.js +0 -2
  657. package/dist/src/channels/pairing/pairing-messages.js +0 -2
  658. package/dist/src/channels/pairing/pairing-service.js +0 -2
  659. package/dist/src/channels/pairing/pairing-store-adapter.js +0 -2
  660. package/dist/src/channels/pairing/pairing-store.js +0 -2
  661. package/dist/src/channels/pairing/paths.js +0 -2
  662. package/dist/src/channels/pairing/preseed-allow-from.js +0 -2
  663. package/dist/src/channels/pipeline.js +0 -2
  664. package/dist/src/channels/plugin-registry.js +0 -2
  665. package/dist/src/channels/plugins/registry.js +0 -2
  666. package/dist/src/channels/restart-policy.js +0 -2
  667. package/dist/src/channels/security-helpers.js +0 -2
  668. package/dist/src/channels/security.js +0 -2
  669. package/dist/src/channels/setup-wizard-discovery.js +0 -2
  670. package/dist/src/chat-commands/agent-edit.js +0 -2
  671. package/dist/src/chat-commands/builtins/config.js +0 -2
  672. package/dist/src/chat-commands/builtins/context.js +0 -2
  673. package/dist/src/chat-commands/builtins/goal.js +0 -2
  674. package/dist/src/chat-commands/builtins/model.js +0 -2
  675. package/dist/src/chat-commands/builtins/review.js +0 -2
  676. package/dist/src/chat-commands/builtins/session.js +0 -2
  677. package/dist/src/chat-commands/builtins/skill.js +0 -2
  678. package/dist/src/chat-commands/builtins/subgoal.js +0 -2
  679. package/dist/src/chat-commands/builtins/system.js +0 -2
  680. package/dist/src/chat-commands/builtins/thinking.js +0 -2
  681. package/dist/src/chat-commands/builtins/tts.js +0 -2
  682. package/dist/src/chat-commands/builtins/workflow.js +0 -2
  683. package/dist/src/chat-commands/command-parse.js +0 -2
  684. package/dist/src/chat-commands/config-paths.js +0 -2
  685. package/dist/src/chat-commands/config-value.js +0 -2
  686. package/dist/src/chat-commands/context.js +0 -2
  687. package/dist/src/chat-commands/format-output.js +0 -2
  688. package/dist/src/chat-commands/index.js +0 -2
  689. package/dist/src/chat-commands/processor.js +0 -2
  690. package/dist/src/chat-commands/registry.js +0 -2
  691. package/dist/src/chat-commands/session-key.js +0 -2
  692. package/dist/src/cli/argv-invocation.js +0 -2
  693. package/dist/src/cli/argv.js +0 -2
  694. package/dist/src/cli/bin.js +0 -2
  695. package/dist/src/cli/cli-log-level-preset.js +0 -2
  696. package/dist/src/cli/command-catalog.js +0 -2
  697. package/dist/src/cli/command-loaders.js +0 -2
  698. package/dist/src/cli/command-manifest.js +0 -2
  699. package/dist/src/cli/command-path-matches.js +0 -2
  700. package/dist/src/cli/command-path-policy.js +0 -2
  701. package/dist/src/cli/command-startup-policy.js +0 -2
  702. package/dist/src/cli/commands/agent/interactive.js +0 -2
  703. package/dist/src/cli/commands/agent/sessions.js +0 -2
  704. package/dist/src/cli/commands/agent/stream-renderer.js +0 -2
  705. package/dist/src/cli/commands/agent.js +0 -2
  706. package/dist/src/cli/commands/agents.js +0 -2
  707. package/dist/src/cli/commands/auth.js +0 -2
  708. package/dist/src/cli/commands/browser-cli-helpers.js +0 -2
  709. package/dist/src/cli/commands/browser.js +0 -2
  710. package/dist/src/cli/commands/channels.js +0 -2
  711. package/dist/src/cli/commands/config.js +0 -2
  712. package/dist/src/cli/commands/connectors.js +0 -2
  713. package/dist/src/cli/commands/doctor/checks/channel-config.js +0 -2
  714. package/dist/src/cli/commands/doctor/checks/channel-pairing-pending.js +0 -2
  715. package/dist/src/cli/commands/doctor/checks/channel-plugins.js +0 -2
  716. package/dist/src/cli/commands/doctor/checks/config-health.js +0 -2
  717. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -3
  718. package/dist/src/cli/commands/doctor/checks/gateway-health.js +0 -2
  719. package/dist/src/cli/commands/doctor/checks/gateway-service.js +0 -2
  720. package/dist/src/cli/commands/doctor/checks/migrations.js +0 -2
  721. package/dist/src/cli/commands/doctor/checks/node-version.js +0 -2
  722. package/dist/src/cli/commands/doctor/checks/provider-auth.js +0 -2
  723. package/dist/src/cli/commands/doctor/checks/security-audit.js +0 -2
  724. package/dist/src/cli/commands/doctor/checks/session-integrity.js +0 -2
  725. package/dist/src/cli/commands/doctor/checks/state-integrity.js +0 -2
  726. package/dist/src/cli/commands/doctor/checks/version-check.js +0 -2
  727. package/dist/src/cli/commands/doctor/checks/workspace-status.js +0 -2
  728. package/dist/src/cli/commands/doctor/flow.js +0 -2
  729. package/dist/src/cli/commands/doctor/format.js +0 -2
  730. package/dist/src/cli/commands/doctor/index.js +0 -2
  731. package/dist/src/cli/commands/extension-create.js +0 -2
  732. package/dist/src/cli/commands/extension-dev.js +0 -2
  733. package/dist/src/cli/commands/extension-marketplace.js +0 -2
  734. package/dist/src/cli/commands/extension-pack.js +0 -2
  735. package/dist/src/cli/commands/extension.js +0 -2
  736. package/dist/src/cli/commands/gateway/call.js +0 -2
  737. package/dist/src/cli/commands/gateway/health.js +0 -2
  738. package/dist/src/cli/commands/gateway/lifecycle-core.js +0 -2
  739. package/dist/src/cli/commands/gateway/lifecycle.js +0 -2
  740. package/dist/src/cli/commands/gateway/logs.js +0 -2
  741. package/dist/src/cli/commands/gateway/probe.js +0 -2
  742. package/dist/src/cli/commands/gateway/restart-health.js +0 -2
  743. package/dist/src/cli/commands/gateway/restart.js +0 -2
  744. package/dist/src/cli/commands/gateway/run-foreground.js +0 -2
  745. package/dist/src/cli/commands/gateway/service.js +0 -2
  746. package/dist/src/cli/commands/gateway/shared.js +0 -2
  747. package/dist/src/cli/commands/gateway/status.js +0 -2
  748. package/dist/src/cli/commands/gateway/stop.js +0 -2
  749. package/dist/src/cli/commands/gateway/subcommands.js +0 -2
  750. package/dist/src/cli/commands/gateway/token.js +0 -2
  751. package/dist/src/cli/commands/gateway-ssh-tunnel.js +0 -2
  752. package/dist/src/cli/commands/gateway.js +0 -2
  753. package/dist/src/cli/commands/goal.js +0 -2
  754. package/dist/src/cli/commands/image.js +0 -2
  755. package/dist/src/cli/commands/init.js +0 -2
  756. package/dist/src/cli/commands/logs.js +0 -2
  757. package/dist/src/cli/commands/models.js +0 -2
  758. package/dist/src/cli/commands/onboard/channels/index.js +0 -2
  759. package/dist/src/cli/commands/onboard/channels/onboard-to-configurator.js +0 -2
  760. package/dist/src/cli/commands/onboard/channels/registry.js +0 -2
  761. package/dist/src/cli/commands/onboard/channels/wizard-to-configurator.js +0 -2
  762. package/dist/src/cli/commands/onboard/gateway.js +0 -2
  763. package/dist/src/cli/commands/onboard/model.js +0 -2
  764. package/dist/src/cli/commands/onboard.js +0 -2
  765. package/dist/src/cli/commands/profile.js +0 -2
  766. package/dist/src/cli/commands/project.js +0 -2
  767. package/dist/src/cli/commands/providers.js +0 -2
  768. package/dist/src/cli/commands/resume.js +0 -2
  769. package/dist/src/cli/commands/search.js +0 -2
  770. package/dist/src/cli/commands/session/actions.js +0 -2
  771. package/dist/src/cli/commands/session/utils.js +0 -2
  772. package/dist/src/cli/commands/session.js +0 -2
  773. package/dist/src/cli/commands/setup-shared/output.js +0 -2
  774. package/dist/src/cli/commands/setup-shared/prompts.js +0 -2
  775. package/dist/src/cli/commands/setup-shared/runner.js +0 -2
  776. package/dist/src/cli/commands/setup-shared/types.js +0 -2
  777. package/dist/src/cli/commands/setup.js +0 -2
  778. package/dist/src/cli/commands/skills-test.js +0 -2
  779. package/dist/src/cli/commands/skills.js +0 -2
  780. package/dist/src/cli/commands/tailscale.js +0 -2
  781. package/dist/src/cli/commands/tui-runner.js +0 -2
  782. package/dist/src/cli/commands/tui.js +0 -2
  783. package/dist/src/cli/commands/tunnel.js +0 -2
  784. package/dist/src/cli/commands/update.js +0 -2
  785. package/dist/src/cli/commands/voice.js +0 -2
  786. package/dist/src/cli/context.js +0 -2
  787. package/dist/src/cli/extension-cli-register.js +0 -2
  788. package/dist/src/cli/gateway-run-argv.js +0 -2
  789. package/dist/src/cli/gateway-run-fast-path.js +0 -2
  790. package/dist/src/cli/index.js +0 -2
  791. package/dist/src/cli/registry.js +0 -2
  792. package/dist/src/cli/templates.js +0 -2
  793. package/dist/src/cli/utils/colors.js +0 -2
  794. package/dist/src/cli/utils/gateway-client-options.js +0 -2
  795. package/dist/src/cli/utils/gateway-client.js +0 -2
  796. package/dist/src/cli/utils/init-workspace-core.js +0 -2
  797. package/dist/src/cli/utils/init-workspace.js +0 -2
  798. package/dist/src/cli/utils/oauth-login.js +0 -2
  799. package/dist/src/cli/utils/oauth-providers.js +0 -2
  800. package/dist/src/cli/utils/session.js +0 -2
  801. package/dist/src/commands/agents.config.js +0 -2
  802. package/dist/src/config/agent-profile.js +1 -3
  803. package/dist/src/config/agent-typed-models.js +0 -2
  804. package/dist/src/config/commands.flags.js +0 -2
  805. package/dist/src/config/default-model.js +0 -2
  806. package/dist/src/config/diff.js +0 -2
  807. package/dist/src/config/gateway-bind.js +0 -2
  808. package/dist/src/config/index.js +0 -2
  809. package/dist/src/config/loader.js +0 -2
  810. package/dist/src/config/mcp-config-normalize.js +0 -2
  811. package/dist/src/config/model-input.js +0 -2
  812. package/dist/src/config/models-json.js +0 -2
  813. package/dist/src/config/paths-state.js +0 -2
  814. package/dist/src/config/paths.js +0 -2
  815. package/dist/src/config/profile.js +0 -2
  816. package/dist/src/config/public-url.js +0 -2
  817. package/dist/src/config/reload.js +0 -2
  818. package/dist/src/config/resolve-config-value.js +0 -2
  819. package/dist/src/config/rules.js +0 -2
  820. package/dist/src/config/runtime-overrides.js +0 -2
  821. package/dist/src/config/schema.js +0 -2
  822. package/dist/src/config/validate-channel-configs.js +0 -2
  823. package/dist/src/config/voice.js +0 -2
  824. package/dist/src/config/web-patch.js +0 -2
  825. package/dist/src/config/workspace-defaults.js +0 -2
  826. package/dist/src/config/workspace-dirs.js +0 -2
  827. package/dist/src/config/workspace-path-helpers.js +0 -2
  828. package/dist/src/config/workspace-path.js +0 -2
  829. package/dist/src/connectors/approval.js +0 -2
  830. package/dist/src/connectors/auth-provider-registry.js +0 -2
  831. package/dist/src/connectors/builtin-catalog.js +0 -2
  832. package/dist/src/connectors/catalog.js +0 -2
  833. package/dist/src/connectors/composio-catalog.js +0 -2
  834. package/dist/src/connectors/composio-logo.js +0 -2
  835. package/dist/src/connectors/composio-sessions.js +9 -5
  836. package/dist/src/connectors/composio-triggers.js +0 -2
  837. package/dist/src/connectors/composio.js +0 -2
  838. package/dist/src/connectors/connector-memory-sync.js +0 -2
  839. package/dist/src/connectors/health.js +0 -2
  840. package/dist/src/connectors/install.js +0 -2
  841. package/dist/src/connectors/instances.js +0 -2
  842. package/dist/src/connectors/integration-strategy.js +0 -2
  843. package/dist/src/connectors/lifecycle.js +0 -2
  844. package/dist/src/connectors/materialize.js +0 -2
  845. package/dist/src/connectors/policy.js +0 -2
  846. package/dist/src/connectors/providers.js +0 -2
  847. package/dist/src/connectors/registries/modelscope.js +0 -2
  848. package/dist/src/connectors/registries/official-mcp.js +0 -2
  849. package/dist/src/connectors/registries/search.js +0 -2
  850. package/dist/src/connectors/registries/smithery.js +0 -2
  851. package/dist/src/connectors/runtime-adapter-registry.js +0 -2
  852. package/dist/src/connectors/secret-store.js +0 -2
  853. package/dist/src/connectors/setup-secrets.js +0 -2
  854. package/dist/src/connectors/supervisor.js +0 -2
  855. package/dist/src/connectors/usage.js +0 -2
  856. package/dist/src/connectors/workflow-preflight.js +0 -2
  857. package/dist/src/daemon/constants.js +0 -2
  858. package/dist/src/daemon/install-plan.js +0 -2
  859. package/dist/src/daemon/launchd.js +0 -2
  860. package/dist/src/daemon/schtasks.js +0 -2
  861. package/dist/src/daemon/service-audit.js +0 -2
  862. package/dist/src/daemon/service.js +0 -2
  863. package/dist/src/daemon/systemd.js +0 -2
  864. package/dist/src/document-understanding/extract.js +0 -2
  865. package/dist/src/errors/index.js +0 -2
  866. package/dist/src/extensions/activation-context.js +0 -2
  867. package/dist/src/extensions/activation-planner.js +0 -2
  868. package/dist/src/extensions/api.js +0 -2
  869. package/dist/src/extensions/bundle-mcp.js +0 -2
  870. package/dist/src/extensions/bundled-extension-activation.js +0 -2
  871. package/dist/src/extensions/diagnostics.js +0 -2
  872. package/dist/src/extensions/discover-extensions.js +0 -2
  873. package/dist/src/extensions/engine-check.js +0 -2
  874. package/dist/src/extensions/extension-metadata-snapshot.js +0 -2
  875. package/dist/src/extensions/extension-registry-impl.js +0 -2
  876. package/dist/src/extensions/health.js +0 -2
  877. package/dist/src/extensions/hooks.js +0 -2
  878. package/dist/src/extensions/index.js +0 -2
  879. package/dist/src/extensions/install-transaction.js +0 -2
  880. package/dist/src/extensions/install.js +0 -2
  881. package/dist/src/extensions/loader.js +0 -2
  882. package/dist/src/extensions/lockfile.js +0 -2
  883. package/dist/src/extensions/manifest-registry.js +0 -2
  884. package/dist/src/extensions/marketplace.js +0 -2
  885. package/dist/src/extensions/media-provider-contracts.js +0 -2
  886. package/dist/src/extensions/normalize-manifest.js +0 -2
  887. package/dist/src/extensions/onboard-helpers.js +0 -2
  888. package/dist/src/extensions/package-contract.js +0 -2
  889. package/dist/src/extensions/sdk/channel-entry.js +0 -2
  890. package/dist/src/extensions/sdk/channel-helpers.js +0 -2
  891. package/dist/src/extensions/sdk/index.js +0 -2
  892. package/dist/src/extensions/sdk/lazy.js +0 -2
  893. package/dist/src/extensions/sdk/testing.js +0 -2
  894. package/dist/src/extensions/security.js +0 -2
  895. package/dist/src/extensions/slots.js +0 -2
  896. package/dist/src/extensions/speech-provider-contracts.js +0 -2
  897. package/dist/src/extensions/store-zip-limits.js +0 -2
  898. package/dist/src/extensions/typed-event-bus.js +0 -2
  899. package/dist/src/extensions/types/hooks.js +0 -2
  900. package/dist/src/extensions/types/providers.js +0 -2
  901. package/dist/src/extensions/update.js +0 -2
  902. package/dist/src/extensions/when-context.js +0 -2
  903. package/dist/src/extensions/when-expression.js +0 -2
  904. package/dist/src/gateway/agent-builtin-tools.js +0 -2
  905. package/dist/src/gateway/agent-run-relay.js +0 -2
  906. package/dist/src/gateway/agents-admin.js +1 -3
  907. package/dist/src/gateway/auth.js +0 -2
  908. package/dist/src/gateway/capability-presets-admin.js +0 -2
  909. package/dist/src/gateway/chat-limits.js +0 -2
  910. package/dist/src/gateway/chat-stream/mapper.js +28 -14
  911. package/dist/src/gateway/chat-stream/pet-feedback.d.ts +13 -0
  912. package/dist/src/gateway/chat-stream/pet-feedback.js +45 -0
  913. package/dist/src/gateway/chat-stream/protocol.d.ts +26 -0
  914. package/dist/src/gateway/clarify-bridge.js +3 -3
  915. package/dist/src/gateway/clarify-runtime.js +0 -2
  916. package/dist/src/gateway/client-ip.js +0 -2
  917. package/dist/src/gateway/config-tools-web.js +0 -2
  918. package/dist/src/gateway/credential.js +0 -2
  919. package/dist/src/gateway/discovery/mdns.js +0 -2
  920. package/dist/src/gateway/dreaming-automation-reconciler.js +0 -2
  921. package/dist/src/gateway/ensure-network-cors.js +0 -2
  922. package/dist/src/gateway/file-path-classifier.js +0 -2
  923. package/dist/src/gateway/file-reference-registry.js +0 -2
  924. package/dist/src/gateway/global-defaults-admin.js +0 -2
  925. package/dist/src/gateway/heartbeat/service.js +0 -2
  926. package/dist/src/gateway/hono/app.js +0 -2
  927. package/dist/src/gateway/hono/lib/agent-model.js +0 -2
  928. package/dist/src/gateway/hono/lib/config-payload.js +0 -2
  929. package/dist/src/gateway/hono/lib/extension-assets.js +0 -2
  930. package/dist/src/gateway/hono/lib/extension-store.js +0 -2
  931. package/dist/src/gateway/hono/lib/mask-secret-length.js +0 -2
  932. package/dist/src/gateway/hono/lib/route-logger.js +0 -2
  933. package/dist/src/gateway/hono/lib/safe-providers-config.js +0 -2
  934. package/dist/src/gateway/hono/lib/safe-voice-config.js +0 -2
  935. package/dist/src/gateway/hono/lib/startup-unavailable.js +0 -2
  936. package/dist/src/gateway/hono/lib/static-ui.js +0 -2
  937. package/dist/src/gateway/hono/middleware/auth.js +0 -2
  938. package/dist/src/gateway/hono/middleware/log-context.js +0 -2
  939. package/dist/src/gateway/hono/middleware/logger.js +0 -2
  940. package/dist/src/gateway/hono/middleware/route-errors.js +0 -2
  941. package/dist/src/gateway/hono/middleware/scopes.js +0 -2
  942. package/dist/src/gateway/hono/middleware/strict-rate-limit.js +0 -2
  943. package/dist/src/gateway/hono/oauth-async.js +0 -2
  944. package/dist/src/gateway/hono/oauth.js +0 -2
  945. package/dist/src/gateway/hono/routes/activity.js +0 -2
  946. package/dist/src/gateway/hono/routes/agent-stream.js +0 -2
  947. package/dist/src/gateway/hono/routes/agents.js +0 -2
  948. package/dist/src/gateway/hono/routes/ai-assist.js +0 -2
  949. package/dist/src/gateway/hono/routes/auth-registry-extensions.js +0 -2
  950. package/dist/src/gateway/hono/routes/browser-install.js +0 -2
  951. package/dist/src/gateway/hono/routes/browser.js +0 -2
  952. package/dist/src/gateway/hono/routes/capabilities.js +0 -2
  953. package/dist/src/gateway/hono/routes/capability-presets.js +0 -2
  954. package/dist/src/gateway/hono/routes/channels.js +0 -2
  955. package/dist/src/gateway/hono/routes/commands-skills.js +0 -2
  956. package/dist/src/gateway/hono/routes/config-patch/agents.js +0 -2
  957. package/dist/src/gateway/hono/routes/config-patch/channels.js +0 -2
  958. package/dist/src/gateway/hono/routes/config-patch/gateway.js +0 -2
  959. package/dist/src/gateway/hono/routes/config-patch/misc.js +0 -2
  960. package/dist/src/gateway/hono/routes/config-patch/result.js +0 -2
  961. package/dist/src/gateway/hono/routes/config.js +0 -2
  962. package/dist/src/gateway/hono/routes/connectors.js +0 -2
  963. package/dist/src/gateway/hono/routes/doctor.js +0 -2
  964. package/dist/src/gateway/hono/routes/dreaming.js +0 -2
  965. package/dist/src/gateway/hono/routes/exposure.js +0 -2
  966. package/dist/src/gateway/hono/routes/extension-gateway.js +0 -2
  967. package/dist/src/gateway/hono/routes/global-defaults.js +0 -2
  968. package/dist/src/gateway/hono/routes/goals.js +0 -2
  969. package/dist/src/gateway/hono/routes/home.js +0 -2
  970. package/dist/src/gateway/hono/routes/host-fs.js +0 -2
  971. package/dist/src/gateway/hono/routes/index.js +0 -2
  972. package/dist/src/gateway/hono/routes/lazy-bundles.js +0 -2
  973. package/dist/src/gateway/hono/routes/lazy-fallback.js +0 -2
  974. package/dist/src/gateway/hono/routes/local-apps.js +0 -2
  975. package/dist/src/gateway/hono/routes/logs.js +0 -2
  976. package/dist/src/gateway/hono/routes/mcp.js +0 -2
  977. package/dist/src/gateway/hono/routes/media.js +0 -2
  978. package/dist/src/gateway/hono/routes/memory.js +0 -2
  979. package/dist/src/gateway/hono/routes/migrations.js +0 -2
  980. package/dist/src/gateway/hono/routes/mobile.js +0 -2
  981. package/dist/src/gateway/hono/routes/models.js +0 -2
  982. package/dist/src/gateway/hono/routes/notes.js +3 -3
  983. package/dist/src/gateway/hono/routes/projects.js +0 -2
  984. package/dist/src/gateway/hono/routes/public-gateway.js +0 -2
  985. package/dist/src/gateway/hono/routes/search.js +0 -2
  986. package/dist/src/gateway/hono/routes/sessions.js +0 -2
  987. package/dist/src/gateway/hono/routes/shares.js +0 -2
  988. package/dist/src/gateway/hono/routes/site-shares.js +0 -2
  989. package/dist/src/gateway/hono/routes/status.js +0 -2
  990. package/dist/src/gateway/hono/routes/tui.js +0 -2
  991. package/dist/src/gateway/hono/routes/tunnel.js +0 -2
  992. package/dist/src/gateway/hono/routes/update.js +0 -2
  993. package/dist/src/gateway/hono/routes/voice.js +0 -2
  994. package/dist/src/gateway/hono/routes/work-discovery.js +32 -2
  995. package/dist/src/gateway/hono/routes/workflows.js +0 -2
  996. package/dist/src/gateway/hono/routes/workspace.js +0 -2
  997. package/dist/src/gateway/hono/routes/you.js +0 -2
  998. package/dist/src/gateway/hono/sse-json.js +0 -2
  999. package/dist/src/gateway/hono/sse.js +0 -2
  1000. package/dist/src/gateway/host.js +0 -2
  1001. package/dist/src/gateway/image-capabilities.js +0 -2
  1002. package/dist/src/gateway/listen.js +0 -2
  1003. package/dist/src/gateway/lock.js +0 -2
  1004. package/dist/src/gateway/ports.js +0 -2
  1005. package/dist/src/gateway/protocol.js +0 -2
  1006. package/dist/src/gateway/public-url.js +0 -2
  1007. package/dist/src/gateway/rate-limit/auth-policy.js +0 -2
  1008. package/dist/src/gateway/rate-limit/buckets.js +0 -2
  1009. package/dist/src/gateway/rate-limit/env-flags.js +0 -2
  1010. package/dist/src/gateway/resolve-channel-connect-defer.js +0 -2
  1011. package/dist/src/gateway/resolve-webchat-session-key.js +0 -2
  1012. package/dist/src/gateway/respawn.js +0 -2
  1013. package/dist/src/gateway/run-loop.js +0 -2
  1014. package/dist/src/gateway/runtime-config.js +0 -2
  1015. package/dist/src/gateway/security/audit.js +0 -2
  1016. package/dist/src/gateway/security/csp.js +0 -2
  1017. package/dist/src/gateway/security/dangerous-tools.js +0 -2
  1018. package/dist/src/gateway/security/external-content.js +0 -2
  1019. package/dist/src/gateway/security/known-weak-secrets.js +0 -2
  1020. package/dist/src/gateway/security/loopback.js +0 -2
  1021. package/dist/src/gateway/security/operator-scopes.js +0 -2
  1022. package/dist/src/gateway/security/origin-check.js +0 -2
  1023. package/dist/src/gateway/security/preauth-connection-budget.js +0 -2
  1024. package/dist/src/gateway/security/secret-equal.js +0 -2
  1025. package/dist/src/gateway/server-tailscale.js +0 -2
  1026. package/dist/src/gateway/server.js +0 -2
  1027. package/dist/src/gateway/service/agent-runner.js +0 -2
  1028. package/dist/src/gateway/service/config-coordinator.js +0 -2
  1029. package/dist/src/gateway/service/marketplace-service.js +0 -2
  1030. package/dist/src/gateway/service/run-gateway-agent.js +0 -2
  1031. package/dist/src/gateway/service/session-chat-ids.js +0 -2
  1032. package/dist/src/gateway/service/sessions-api.js +0 -2
  1033. package/dist/src/gateway/service/sse-hub.js +0 -2
  1034. package/dist/src/gateway/service.js +0 -2
  1035. package/dist/src/gateway/session-reset-service.js +0 -2
  1036. package/dist/src/gateway/startup-readiness.js +0 -2
  1037. package/dist/src/gateway/startup-trace.js +0 -2
  1038. package/dist/src/gateway/tailscale-auth.js +0 -2
  1039. package/dist/src/gateway/tailscale-lifecycle.js +0 -2
  1040. package/dist/src/gateway/tls-server.js +0 -2
  1041. package/dist/src/gateway/trusted-proxy.js +0 -2
  1042. package/dist/src/gateway/user-turn-input.js +0 -2
  1043. package/dist/src/gateway/workspace-editor-path.js +0 -2
  1044. package/dist/src/gateway/workspace-file-search.js +0 -2
  1045. package/dist/src/gateway/workspace-fs-file-list.js +0 -2
  1046. package/dist/src/gateway/workspace-heartbeat-path.js +0 -2
  1047. package/dist/src/gateway/workspace-ripgrep.js +0 -2
  1048. package/dist/src/gateway/ws-security.js +0 -2
  1049. package/dist/src/generated/bundled-image-generation-providers.js +0 -2
  1050. package/dist/src/goals/goal-contract-draft.js +0 -2
  1051. package/dist/src/goals/goal-evidence-review.js +0 -2
  1052. package/dist/src/goals/goal-notifications.js +0 -2
  1053. package/dist/src/goals/goal-queue-store.js +0 -2
  1054. package/dist/src/goals/goal-runner.js +0 -2
  1055. package/dist/src/goals/goal-service.js +0 -2
  1056. package/dist/src/goals/goal-store.js +0 -2
  1057. package/dist/src/goals/goal-workflow-judge.js +0 -2
  1058. package/dist/src/heartbeat/active-hours.js +0 -2
  1059. package/dist/src/heartbeat/content-check.js +0 -2
  1060. package/dist/src/heartbeat/event-prompt.js +0 -2
  1061. package/dist/src/heartbeat/tokens.js +0 -2
  1062. package/dist/src/heartbeat/wake.js +0 -2
  1063. package/dist/src/i18n/format.js +0 -2
  1064. package/dist/src/i18n/goals-bundle.js +0 -2
  1065. package/dist/src/i18n/locale.js +0 -2
  1066. package/dist/src/i18n/locales/goals.en.js +0 -2
  1067. package/dist/src/i18n/locales/goals.zh.js +0 -2
  1068. package/dist/src/i18n/locales/share-tool.en.js +0 -2
  1069. package/dist/src/i18n/locales/share-tool.zh.js +0 -2
  1070. package/dist/src/i18n/share-tool-bundle.js +0 -2
  1071. package/dist/src/index.js +0 -2
  1072. package/dist/src/infra/brew.js +0 -2
  1073. package/dist/src/infra/bus/queue.js +0 -2
  1074. package/dist/src/infra/debounce.js +0 -2
  1075. package/dist/src/infra/exec.js +0 -2
  1076. package/dist/src/infra/gateway-process-argv.js +0 -2
  1077. package/dist/src/infra/gateway-processes.js +0 -2
  1078. package/dist/src/infra/host-env-security-policy.js +0 -2
  1079. package/dist/src/infra/host-env-security.js +0 -2
  1080. package/dist/src/infra/http-proxy-env.js +0 -2
  1081. package/dist/src/infra/is-main.js +0 -2
  1082. package/dist/src/infra/json-utf8-bytes.js +0 -2
  1083. package/dist/src/infra/node-sqlite.js +0 -2
  1084. package/dist/src/infra/package-json.js +0 -2
  1085. package/dist/src/infra/package-update-steps.js +0 -2
  1086. package/dist/src/infra/path-env.js +0 -2
  1087. package/dist/src/infra/path-prepend.js +0 -2
  1088. package/dist/src/infra/ports.js +0 -2
  1089. package/dist/src/infra/rate-limit/failure-limiter.js +0 -2
  1090. package/dist/src/infra/rate-limit/keyed-store.js +0 -2
  1091. package/dist/src/infra/rate-limit/rate-limiter.js +0 -2
  1092. package/dist/src/infra/restart.js +0 -2
  1093. package/dist/src/infra/retry.js +0 -2
  1094. package/dist/src/infra/run-command.js +0 -2
  1095. package/dist/src/infra/sqlite-errors.js +0 -2
  1096. package/dist/src/infra/ssh-tunnel.js +0 -2
  1097. package/dist/src/infra/stable-node-path.js +0 -2
  1098. package/dist/src/infra/tailscale.js +0 -2
  1099. package/dist/src/infra/undici-fetch.js +0 -2
  1100. package/dist/src/infra/unhandled-rejections.js +0 -2
  1101. package/dist/src/infra/update-channels.js +0 -2
  1102. package/dist/src/infra/update-check.js +0 -2
  1103. package/dist/src/infra/update-global.js +0 -2
  1104. package/dist/src/infra/update-lock.js +0 -2
  1105. package/dist/src/infra/update-log.js +0 -2
  1106. package/dist/src/infra/update-restart.js +0 -2
  1107. package/dist/src/infra/update-runner.js +0 -2
  1108. package/dist/src/infra/update-startup.js +0 -2
  1109. package/dist/src/infra/warning-filter.js +0 -2
  1110. package/dist/src/infra/write-file-atomic.js +0 -2
  1111. package/dist/src/knowledge/connected-knowledge-pipeline.js +0 -2
  1112. package/dist/src/knowledge/coordinator.js +0 -2
  1113. package/dist/src/knowledge/ingestion-service.js +0 -2
  1114. package/dist/src/local-apps/acceptance.js +0 -2
  1115. package/dist/src/local-apps/preview-runtime-bridge.js +0 -2
  1116. package/dist/src/local-apps/runtime-entry.js +0 -2
  1117. package/dist/src/local-apps/scaffold.js +0 -2
  1118. package/dist/src/local-apps/service.js +0 -2
  1119. package/dist/src/local-apps/store.js +0 -2
  1120. package/dist/src/markdown/chunk.js +0 -2
  1121. package/dist/src/markdown/code-spans.js +0 -2
  1122. package/dist/src/markdown/fences.js +0 -2
  1123. package/dist/src/markdown/frontmatter.js +0 -2
  1124. package/dist/src/markdown/ir.js +0 -2
  1125. package/dist/src/markdown/render.js +0 -2
  1126. package/dist/src/markdown/tables.js +0 -2
  1127. package/dist/src/mcp/channel-bridge.js +0 -2
  1128. package/dist/src/mcp/channel-server.js +0 -2
  1129. package/dist/src/mcp/channel-shared.js +0 -2
  1130. package/dist/src/mcp/channel-tools.js +0 -2
  1131. package/dist/src/mcp/gateway-http-client.js +0 -2
  1132. package/dist/src/media/media-reference.js +0 -2
  1133. package/dist/src/media/paths.js +0 -2
  1134. package/dist/src/media/session-references.js +0 -2
  1135. package/dist/src/media/store.js +0 -2
  1136. package/dist/src/media/uri.js +0 -2
  1137. package/dist/src/media-shared/http/api-key-rotation.js +0 -2
  1138. package/dist/src/media-shared/http/deadline.js +0 -2
  1139. package/dist/src/media-shared/http/private-network.js +0 -2
  1140. package/dist/src/media-shared/http/provider-http-errors.js +0 -2
  1141. package/dist/src/media-shared/http/provider-http.js +0 -2
  1142. package/dist/src/media-shared/http/resolve-provider-http-request-config.js +0 -2
  1143. package/dist/src/media-shared/http/ssrf-guard.js +0 -2
  1144. package/dist/src/media-shared/http/test-helpers/mock-server.js +0 -2
  1145. package/dist/src/media-understanding/audio-transcription-runner.js +0 -2
  1146. package/dist/src/media-understanding/openai-compatible-audio.js +0 -2
  1147. package/dist/src/media-understanding/registry.js +0 -2
  1148. package/dist/src/media-understanding/resolve-entries.js +0 -2
  1149. package/dist/src/media-understanding/runner.js +0 -2
  1150. package/dist/src/migrations/config/default-capability-preset.js +0 -2
  1151. package/dist/src/migrations/registry.js +0 -2
  1152. package/dist/src/migrations/runner.js +0 -2
  1153. package/dist/src/mobile/notification-service.js +0 -2
  1154. package/dist/src/mobile/notification-store.js +0 -2
  1155. package/dist/src/mobile/notification-types.js +0 -2
  1156. package/dist/src/notes/agent-context.js +0 -2
  1157. package/dist/src/notes/attachment-ref.js +0 -2
  1158. package/dist/src/notes/note-attachment-sync.js +0 -2
  1159. package/dist/src/notes/note-index-meta.js +0 -2
  1160. package/dist/src/notes/note-markdown.js +0 -2
  1161. package/dist/src/notes/paths.js +0 -2
  1162. package/dist/src/notes/service.d.ts +3 -1
  1163. package/dist/src/notes/service.js +19 -5
  1164. package/dist/src/notes/store.js +0 -2
  1165. package/dist/src/package-version.js +0 -2
  1166. package/dist/src/pets/factory.d.ts +13 -0
  1167. package/dist/src/pets/factory.js +23 -2
  1168. package/dist/src/pets/manifest.js +0 -2
  1169. package/dist/src/pets/validator.js +0 -2
  1170. package/dist/src/process/kill-tree.js +0 -2
  1171. package/dist/src/project-trust/trust-store.js +0 -2
  1172. package/dist/src/projects/automation-bind.js +0 -2
  1173. package/dist/src/projects/goal-bind.js +0 -2
  1174. package/dist/src/projects/memory-bind.js +0 -2
  1175. package/dist/src/projects/project-agent-suggestion.js +0 -2
  1176. package/dist/src/projects/project-agent.js +0 -2
  1177. package/dist/src/projects/project-kind.js +0 -2
  1178. package/dist/src/projects/project-loop.js +0 -2
  1179. package/dist/src/projects/project-service.js +0 -2
  1180. package/dist/src/projects/project-store.js +0 -2
  1181. package/dist/src/projects/session-bind.js +0 -2
  1182. package/dist/src/projects/workflow-bind.js +0 -2
  1183. package/dist/src/projects/workspace-project.js +0 -2
  1184. package/dist/src/projects/workspace.js +0 -2
  1185. package/dist/src/providers/auth-runtime/auth-profile-store.js +0 -2
  1186. package/dist/src/providers/auth-runtime/is-configured.js +0 -2
  1187. package/dist/src/providers/auth-runtime/oauth.js +0 -2
  1188. package/dist/src/providers/auth-runtime/resolve-api-key.js +0 -2
  1189. package/dist/src/providers/auth-runtime/resolve-auth.js +0 -2
  1190. package/dist/src/providers/constants.js +0 -2
  1191. package/dist/src/providers/domestic-presets.js +0 -2
  1192. package/dist/src/providers/env-keys.js +0 -2
  1193. package/dist/src/providers/extension-stream-bridge.js +0 -2
  1194. package/dist/src/providers/index.js +0 -2
  1195. package/dist/src/providers/model-call.js +0 -2
  1196. package/dist/src/providers/model-discovery.js +0 -2
  1197. package/dist/src/providers/model-registry.js +0 -2
  1198. package/dist/src/providers/model-supplements.js +0 -2
  1199. package/dist/src/providers/plugin-registry.js +0 -2
  1200. package/dist/src/providers/presentation.js +0 -2
  1201. package/dist/src/remote-access/exposure-guards.js +0 -2
  1202. package/dist/src/remote-access/exposure-manager.js +0 -2
  1203. package/dist/src/review/review-git.js +0 -2
  1204. package/dist/src/review/review-types.js +0 -2
  1205. package/dist/src/routing/account-id.js +0 -2
  1206. package/dist/src/routing/agent-session-key.js +0 -2
  1207. package/dist/src/routing/bindings.js +0 -2
  1208. package/dist/src/routing/index.js +0 -2
  1209. package/dist/src/routing/resolve-route.js +0 -2
  1210. package/dist/src/routing/resolve-tui-session-key.js +0 -2
  1211. package/dist/src/routing/session-key-utils.js +0 -2
  1212. package/dist/src/routing/session-key.js +0 -2
  1213. package/dist/src/session/abort-cutoff.js +0 -2
  1214. package/dist/src/session/chat-export.js +0 -2
  1215. package/dist/src/session/client-history.js +0 -2
  1216. package/dist/src/session/compaction-checkpoints.js +0 -2
  1217. package/dist/src/session/config-store.js +0 -2
  1218. package/dist/src/session/init-session-turn.js +0 -2
  1219. package/dist/src/session/lifecycle-timestamps.js +0 -2
  1220. package/dist/src/session/load-jsonl-entries.js +0 -2
  1221. package/dist/src/session/manager.js +0 -2
  1222. package/dist/src/session/patch-metadata.js +0 -2
  1223. package/dist/src/session/reset-policy.js +0 -2
  1224. package/dist/src/session/reset-triggers.js +0 -2
  1225. package/dist/src/session/reset-type.js +0 -2
  1226. package/dist/src/session/resolve-session.js +0 -2
  1227. package/dist/src/session/session-context-for-llm.js +0 -2
  1228. package/dist/src/session/session-id.js +0 -2
  1229. package/dist/src/session/session-title.js +0 -2
  1230. package/dist/src/session/session-workspace.js +0 -2
  1231. package/dist/src/session/store.js +0 -2
  1232. package/dist/src/session/stored-rows-to-file-entries.js +0 -2
  1233. package/dist/src/session/thinking-resolve.js +0 -2
  1234. package/dist/src/session/transcript-events.js +0 -2
  1235. package/dist/src/session/transcript-format.js +0 -2
  1236. package/dist/src/session/transcript-outline.js +0 -2
  1237. package/dist/src/session/transcript-stats.js +0 -2
  1238. package/dist/src/session/types.js +0 -2
  1239. package/dist/src/session/user-round-delete.js +0 -2
  1240. package/dist/src/share/share-audit.js +0 -2
  1241. package/dist/src/share/share-auto.js +0 -2
  1242. package/dist/src/share/share-config.js +0 -2
  1243. package/dist/src/share/share-landing.js +0 -2
  1244. package/dist/src/share/share-rate-limit.js +0 -2
  1245. package/dist/src/share/share-store.js +0 -2
  1246. package/dist/src/share/share-thumbnail.js +0 -2
  1247. package/dist/src/share/share-types.js +0 -2
  1248. package/dist/src/share/share-url.js +0 -2
  1249. package/dist/src/share/share-zip.js +0 -2
  1250. package/dist/src/share/site-proxy.js +0 -2
  1251. package/dist/src/share/site-share-config.js +0 -2
  1252. package/dist/src/share/site-share-router.js +0 -2
  1253. package/dist/src/share/site-share-store.js +0 -2
  1254. package/dist/src/share/site-share-types.js +0 -2
  1255. package/dist/src/share/site-static-serve.js +0 -2
  1256. package/dist/src/storage/sqlite/activity-repository.js +0 -2
  1257. package/dist/src/storage/sqlite/config-repository.js +0 -2
  1258. package/dist/src/storage/sqlite/connection.js +0 -2
  1259. package/dist/src/storage/sqlite/connector-repository.js +0 -2
  1260. package/dist/src/storage/sqlite/fts.js +0 -2
  1261. package/dist/src/storage/sqlite/knowledge-repository.js +0 -2
  1262. package/dist/src/storage/sqlite/memory-index-repository.js +0 -2
  1263. package/dist/src/storage/sqlite/memory-records-repository.js +0 -2
  1264. package/dist/src/storage/sqlite/memory-reference-consent-repository.js +0 -2
  1265. package/dist/src/storage/sqlite/migrations/046_work_discovery_feedback.sql +13 -0
  1266. package/dist/src/storage/sqlite/migrations/discover.js +0 -2
  1267. package/dist/src/storage/sqlite/migrations/errors.js +0 -2
  1268. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  1269. package/dist/src/storage/sqlite/migrations/runner.js +3 -5
  1270. package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
  1271. package/dist/src/storage/sqlite/note-agent-context-repository.js +0 -2
  1272. package/dist/src/storage/sqlite/notes-repository.js +0 -2
  1273. package/dist/src/storage/sqlite/paths.js +0 -2
  1274. package/dist/src/storage/sqlite/row-mappers.js +0 -2
  1275. package/dist/src/storage/sqlite/schema-version.js +0 -2
  1276. package/dist/src/storage/sqlite/schema.js +1 -3
  1277. package/dist/src/storage/sqlite/session-metadata.js +0 -2
  1278. package/dist/src/storage/sqlite/session-repository.js +0 -2
  1279. package/dist/src/storage/sqlite/transaction.js +0 -2
  1280. package/dist/src/storage/sqlite/transcript-repository.js +0 -2
  1281. package/dist/src/storage/sqlite/user-profile-setup-repository.js +0 -2
  1282. package/dist/src/storage/sqlite/user-trust-repository.js +0 -2
  1283. package/dist/src/tui/backends/embedded-backend.js +0 -2
  1284. package/dist/src/tui/backends/gateway-sse-backend.js +0 -2
  1285. package/dist/src/tui/chat-history.js +0 -2
  1286. package/dist/src/tui/clipboard-image.js +0 -2
  1287. package/dist/src/tui/clipboard-text.js +0 -2
  1288. package/dist/src/tui/components/assistant-message.js +0 -2
  1289. package/dist/src/tui/components/bash-execution.js +0 -2
  1290. package/dist/src/tui/components/bash-summary.js +0 -2
  1291. package/dist/src/tui/components/branch-message-summary.js +0 -2
  1292. package/dist/src/tui/components/branch-summary.js +0 -2
  1293. package/dist/src/tui/components/chat-log.js +0 -2
  1294. package/dist/src/tui/components/compaction-summary.js +0 -2
  1295. package/dist/src/tui/components/custom-editor.js +0 -2
  1296. package/dist/src/tui/components/custom-message.js +0 -2
  1297. package/dist/src/tui/components/dynamic-border.js +0 -2
  1298. package/dist/src/tui/components/extension-dialog.js +0 -2
  1299. package/dist/src/tui/components/fuzzy-filter.js +0 -2
  1300. package/dist/src/tui/components/scoped-models-selector.js +0 -2
  1301. package/dist/src/tui/components/searchable-select-list.js +0 -2
  1302. package/dist/src/tui/components/session-selector.js +0 -2
  1303. package/dist/src/tui/components/settings-selector.js +0 -2
  1304. package/dist/src/tui/components/thinking-selector.js +0 -2
  1305. package/dist/src/tui/components/tool-execution.js +0 -2
  1306. package/dist/src/tui/components/tui-bottom-bar.js +0 -2
  1307. package/dist/src/tui/components/tui-header.js +0 -2
  1308. package/dist/src/tui/components/user-message.js +0 -2
  1309. package/dist/src/tui/components/visual-truncate.js +0 -2
  1310. package/dist/src/tui/extension-host/autocomplete.js +0 -2
  1311. package/dist/src/tui/extension-host/host.js +0 -2
  1312. package/dist/src/tui/extension-host/load-extensions.js +0 -2
  1313. package/dist/src/tui/extension-host/runtime-context.js +0 -2
  1314. package/dist/src/tui/extension-host/runtime.js +0 -2
  1315. package/dist/src/tui/extension-host/surface.js +0 -2
  1316. package/dist/src/tui/extension-host/tool-renderers.js +0 -2
  1317. package/dist/src/tui/format-tui-hotkeys.js +0 -2
  1318. package/dist/src/tui/sse-consumer.js +0 -2
  1319. package/dist/src/tui/theme/dark.js +0 -2
  1320. package/dist/src/tui/theme/light.js +0 -2
  1321. package/dist/src/tui/theme-manager.js +0 -2
  1322. package/dist/src/tui/theme.js +0 -2
  1323. package/dist/src/tui/tool-summary.js +0 -2
  1324. package/dist/src/tui/tui-agent-events.js +0 -2
  1325. package/dist/src/tui/tui-command-formatters.js +0 -2
  1326. package/dist/src/tui/tui-commands.js +0 -2
  1327. package/dist/src/tui/tui-context-usage.js +0 -2
  1328. package/dist/src/tui/tui-extension-user-message.js +0 -2
  1329. package/dist/src/tui/tui-fd-path.js +0 -2
  1330. package/dist/src/tui/tui-file-autocomplete.js +0 -2
  1331. package/dist/src/tui/tui-follow-up-queue.js +0 -2
  1332. package/dist/src/tui/tui-git-branch.js +0 -2
  1333. package/dist/src/tui/tui-keybindings-file.js +0 -2
  1334. package/dist/src/tui/tui-lifecycle.js +0 -2
  1335. package/dist/src/tui/tui-local-shell.js +0 -2
  1336. package/dist/src/tui/tui-model-picker.js +0 -2
  1337. package/dist/src/tui/tui-oauth-login.js +0 -2
  1338. package/dist/src/tui/tui-overlays.js +0 -2
  1339. package/dist/src/tui/tui-picker-overlay.js +0 -2
  1340. package/dist/src/tui/tui-run-state.js +0 -2
  1341. package/dist/src/tui/tui-run-status-format.js +0 -2
  1342. package/dist/src/tui/tui-runtime-hints.js +0 -2
  1343. package/dist/src/tui/tui-scoped-models.js +0 -2
  1344. package/dist/src/tui/tui-session-actions.js +0 -2
  1345. package/dist/src/tui/tui-session-format.js +0 -2
  1346. package/dist/src/tui/tui-session-snapshot.js +0 -2
  1347. package/dist/src/tui/tui-session-stats.js +0 -2
  1348. package/dist/src/tui/tui-settings.js +0 -2
  1349. package/dist/src/tui/tui-skills-autocomplete.js +0 -2
  1350. package/dist/src/tui/tui-startup-resources.js +0 -2
  1351. package/dist/src/tui/tui-startup-text.js +0 -2
  1352. package/dist/src/tui/tui-stdio-filter.js +0 -2
  1353. package/dist/src/tui/tui-submit.js +0 -2
  1354. package/dist/src/tui/tui-suspend.js +0 -2
  1355. package/dist/src/tui/tui-timeline-picker.js +0 -2
  1356. package/dist/src/tui/tui-timeline.js +0 -2
  1357. package/dist/src/tui/tui-tool-diff.js +0 -2
  1358. package/dist/src/tui/tui-tool-result.js +0 -2
  1359. package/dist/src/tui/tui-transcript-tree-picker.js +0 -2
  1360. package/dist/src/tui/tui-transcript-tree.js +0 -2
  1361. package/dist/src/tui/tui-types.js +0 -2
  1362. package/dist/src/tui/tui-workflow-slash.js +0 -2
  1363. package/dist/src/tui/tui.js +0 -2
  1364. package/dist/src/tui/xopc-tui-keybindings.js +0 -2
  1365. package/dist/src/tunnel/broker-client.js +0 -2
  1366. package/dist/src/tunnel/consent.js +0 -2
  1367. package/dist/src/tunnel/enable-lan-pairing.js +0 -2
  1368. package/dist/src/tunnel/env.js +0 -2
  1369. package/dist/src/tunnel/frp-subdomain-host.js +0 -2
  1370. package/dist/src/tunnel/frpc-binary.js +0 -2
  1371. package/dist/src/tunnel/frpc-config.js +0 -2
  1372. package/dist/src/tunnel/frpc-extract.js +0 -2
  1373. package/dist/src/tunnel/frpc-process.js +0 -2
  1374. package/dist/src/tunnel/gateway-lifecycle.js +0 -2
  1375. package/dist/src/tunnel/pair-context.js +0 -2
  1376. package/dist/src/tunnel/pair-url.js +0 -2
  1377. package/dist/src/tunnel/pairing-rate-limit.js +0 -2
  1378. package/dist/src/tunnel/pairing.js +0 -2
  1379. package/dist/src/tunnel/tunnel-audit.js +0 -2
  1380. package/dist/src/tunnel/tunnel-config.js +0 -2
  1381. package/dist/src/tunnel/tunnel-persist.js +0 -2
  1382. package/dist/src/tunnel/tunnel-qr.js +0 -2
  1383. package/dist/src/tunnel/tunnel-rate-limit.js +0 -2
  1384. package/dist/src/tunnel/tunnel-service.js +0 -2
  1385. package/dist/src/tunnel/tunnel-state.js +0 -2
  1386. package/dist/src/tunnel/well-known.js +0 -2
  1387. package/dist/src/user-context/config.js +0 -2
  1388. package/dist/src/user-context/import.js +0 -2
  1389. package/dist/src/user-context/owner.js +0 -2
  1390. package/dist/src/user-context/profile.js +0 -2
  1391. package/dist/src/user-context/projection.js +0 -2
  1392. package/dist/src/user-context/runtime.js +0 -2
  1393. package/dist/src/user-context/source-recommendations.js +0 -2
  1394. package/dist/src/user-context/trust-policy.js +0 -2
  1395. package/dist/src/utils/global-singleton.js +0 -2
  1396. package/dist/src/utils/helpers.js +0 -2
  1397. package/dist/src/utils/index.js +0 -2
  1398. package/dist/src/utils/is-record.js +0 -2
  1399. package/dist/src/utils/logger/audit.js +0 -2
  1400. package/dist/src/utils/logger/config.js +0 -2
  1401. package/dist/src/utils/logger/context.js +0 -2
  1402. package/dist/src/utils/logger/exporters.js +0 -2
  1403. package/dist/src/utils/logger/index.js +0 -2
  1404. package/dist/src/utils/logger/log-store.js +0 -2
  1405. package/dist/src/utils/logger/log-stream.js +0 -2
  1406. package/dist/src/utils/logger/pino-record.js +0 -2
  1407. package/dist/src/utils/logger/redact.js +0 -2
  1408. package/dist/src/utils/logger/rotation.js +0 -2
  1409. package/dist/src/utils/logger/shutdown.js +0 -2
  1410. package/dist/src/utils/logger/stats.js +0 -2
  1411. package/dist/src/utils/logger/streams.js +0 -2
  1412. package/dist/src/utils/logger/types.js +0 -2
  1413. package/dist/src/utils/logger.js +0 -2
  1414. package/dist/src/utils/redact-sensitive-url.js +0 -2
  1415. package/dist/src/utils/sanitize-log.js +0 -2
  1416. package/dist/src/utils/string-coerce.js +0 -2
  1417. package/dist/src/voice/language-profile.js +0 -2
  1418. package/dist/src/voice/local/model-files.js +0 -2
  1419. package/dist/src/voice/local/model-manager.js +0 -2
  1420. package/dist/src/voice/local/models.js +0 -2
  1421. package/dist/src/voice/local/runtime-client.js +0 -2
  1422. package/dist/src/voice/local/runtime-dispatcher.js +0 -2
  1423. package/dist/src/voice/local/runtime-worker.js +12 -4
  1424. package/dist/src/voice/local/wav.js +0 -2
  1425. package/dist/src/voice/metadata/builtin.js +0 -2
  1426. package/dist/src/voice/metadata/registry.js +0 -2
  1427. package/dist/src/voice/stt/availability.js +0 -2
  1428. package/dist/src/voice/stt/config-slice.js +0 -2
  1429. package/dist/src/voice/stt/factory.js +0 -2
  1430. package/dist/src/voice/stt/index.js +0 -2
  1431. package/dist/src/voice/stt/list-providers.js +0 -2
  1432. package/dist/src/voice/stt/mention.js +0 -2
  1433. package/dist/src/voice/stt/preflight.js +0 -2
  1434. package/dist/src/voice/stt/providers/alibaba-transcription.js +0 -2
  1435. package/dist/src/voice/stt/providers/local-transcription.js +0 -2
  1436. package/dist/src/voice/stt/providers/openai-transcription.js +0 -2
  1437. package/dist/src/voice/stt/transcribe-core.js +0 -2
  1438. package/dist/src/voice/stt/types.js +0 -2
  1439. package/dist/src/voice/tts/audio.js +0 -2
  1440. package/dist/src/voice/tts/config-slice.js +0 -2
  1441. package/dist/src/voice/tts/directives.js +0 -2
  1442. package/dist/src/voice/tts/factory.js +0 -2
  1443. package/dist/src/voice/tts/list-providers.js +0 -2
  1444. package/dist/src/voice/tts/merge-config.js +0 -2
  1445. package/dist/src/voice/tts/openai-compatible-speech.js +0 -2
  1446. package/dist/src/voice/tts/payload.js +0 -2
  1447. package/dist/src/voice/tts/preprocess.js +0 -2
  1448. package/dist/src/voice/tts/providers/alibaba-speech.js +0 -2
  1449. package/dist/src/voice/tts/providers/edge-speech.js +0 -2
  1450. package/dist/src/voice/tts/providers/minimax-speech.js +0 -2
  1451. package/dist/src/voice/tts/providers/openai-speech.js +0 -2
  1452. package/dist/src/voice/tts/sentence-boundary.js +0 -2
  1453. package/dist/src/voice/tts/service.js +0 -2
  1454. package/dist/src/voice/tts/speak-core.js +0 -2
  1455. package/dist/src/voice/tts/speech-registry.js +0 -2
  1456. package/dist/src/voice/tts/status-tracker.js +0 -2
  1457. package/dist/src/voice/tts/summarize.js +0 -2
  1458. package/dist/src/voice/tts/types.js +0 -2
  1459. package/dist/src/work-discovery/analyzer.js +23 -6
  1460. package/dist/src/work-discovery/index.js +2 -2
  1461. package/dist/src/work-discovery/probe.d.ts +6 -0
  1462. package/dist/src/work-discovery/probe.js +12 -3
  1463. package/dist/src/work-discovery/repository.d.ts +7 -1
  1464. package/dist/src/work-discovery/repository.js +35 -4
  1465. package/dist/src/work-discovery/service.d.ts +6 -1
  1466. package/dist/src/work-discovery/service.js +64 -7
  1467. package/dist/src/work-discovery/types.d.ts +21 -0
  1468. package/dist/src/work-items/agent-context.js +0 -2
  1469. package/dist/src/work-items/work-item-service.js +0 -2
  1470. package/dist/src/work-items/work-item-store.js +0 -2
  1471. package/dist/src/work-items/work-item-workflow-judge.js +0 -2
  1472. package/dist/src/workflows/authoring/workflow-draft-store.js +0 -2
  1473. package/dist/src/workflows/domain/definition-utils.js +0 -2
  1474. package/dist/src/workflows/domain/run.js +0 -2
  1475. package/dist/src/workflows/domain/schema-validation.js +0 -2
  1476. package/dist/src/workflows/domain/validation.js +0 -2
  1477. package/dist/src/workflows/draft/workflow-draft-prompt.js +0 -2
  1478. package/dist/src/workflows/draft/workflow-draft-service.js +0 -2
  1479. package/dist/src/workflows/draft/workflow-draft-validator.js +0 -2
  1480. package/dist/src/workflows/engine/projector.js +0 -2
  1481. package/dist/src/workflows/engine/workflow-engine.js +0 -2
  1482. package/dist/src/workflows/registry/catalog-workflow-definition-registry.js +0 -2
  1483. package/dist/src/workflows/runtime/graph-workflow-runtime.js +0 -2
  1484. package/dist/src/workflows/service/run-view-to-snapshot.js +0 -2
  1485. package/dist/src/workflows/service/workflow-run-service.js +0 -2
  1486. package/dist/src/workflows/service/workflow-session-bridge.js +0 -2
  1487. package/dist/src/workflows/service/workflow-session-key.js +0 -2
  1488. package/dist/src/workflows/store/event-store.js +0 -2
  1489. package/dist/src/workflows/store/paths.js +0 -2
  1490. package/dist/src/workflows/store/run-index-store.js +0 -2
  1491. package/dist/src/workflows/store/run-store.js +0 -2
  1492. package/package.json +41 -11
  1493. package/skills/creative/hatch-pet/SKILL.md +1 -0
  1494. package/dist/extensions/dashscope/src/image-generation-provider.js.map +0 -1
  1495. package/dist/extensions/demo-memory/src/index.js.map +0 -1
  1496. package/dist/extensions/fal/src/image-generation-provider.js.map +0 -1
  1497. package/dist/extensions/feishu/src/actions/message-action-handler.js.map +0 -1
  1498. package/dist/extensions/feishu/src/adapters/cli-login.js.map +0 -1
  1499. package/dist/extensions/feishu/src/adapters/gateway-setup.js.map +0 -1
  1500. package/dist/extensions/feishu/src/adapters/onboard-cli.js.map +0 -1
  1501. package/dist/extensions/feishu/src/auth/app-registration.js.map +0 -1
  1502. package/dist/extensions/feishu/src/auth/pairing.js.map +0 -1
  1503. package/dist/extensions/feishu/src/auth/paths.js.map +0 -1
  1504. package/dist/extensions/feishu/src/directory/directory-adapter.js.map +0 -1
  1505. package/dist/extensions/feishu/src/format.js.map +0 -1
  1506. package/dist/extensions/feishu/src/index.js.map +0 -1
  1507. package/dist/extensions/feishu/src/outbound/actions.js.map +0 -1
  1508. package/dist/extensions/feishu/src/outbound/media-load.js.map +0 -1
  1509. package/dist/extensions/feishu/src/outbound/outbound-adapter.js.map +0 -1
  1510. package/dist/extensions/feishu/src/pairing/feishu-pairing-prompt.js.map +0 -1
  1511. package/dist/extensions/feishu/src/pairing-config-resolver.js.map +0 -1
  1512. package/dist/extensions/feishu/src/plugin.js.map +0 -1
  1513. package/dist/extensions/feishu/src/schema/config-schema.js.map +0 -1
  1514. package/dist/extensions/feishu/src/state/accounts.js.map +0 -1
  1515. package/dist/extensions/feishu/src/state/message-bindings.js.map +0 -1
  1516. package/dist/extensions/feishu/src/state/thread-bindings.js.map +0 -1
  1517. package/dist/extensions/feishu/src/status/doctor.js.map +0 -1
  1518. package/dist/extensions/feishu/src/status/status-adapter.js.map +0 -1
  1519. package/dist/extensions/feishu/src/streaming/streaming-adapter.js.map +0 -1
  1520. package/dist/extensions/feishu/src/subagent-hooks.js.map +0 -1
  1521. package/dist/extensions/feishu/src/tools/docx/docx-batch-insert.js.map +0 -1
  1522. package/dist/extensions/feishu/src/tools/docx/docx-color-text.js.map +0 -1
  1523. package/dist/extensions/feishu/src/tools/docx/docx-table-ops.js.map +0 -1
  1524. package/dist/extensions/feishu/src/tools/tools.js.map +0 -1
  1525. package/dist/extensions/feishu/src/transport/client/client.js.map +0 -1
  1526. package/dist/extensions/feishu/src/transport/client/lark-sdk-logger.js.map +0 -1
  1527. package/dist/extensions/feishu/src/transport/reliability/dedupe.js.map +0 -1
  1528. package/dist/extensions/feishu/src/transport/reliability/inbound-pipeline.js.map +0 -1
  1529. package/dist/extensions/feishu/src/transport/socket-mode/monitor.js.map +0 -1
  1530. package/dist/extensions/feishu/src/transport/socket-mode/retry.js.map +0 -1
  1531. package/dist/extensions/feishu/src/transport/text/mentions.js.map +0 -1
  1532. package/dist/extensions/feishu/src/transport/webhook/monitor.js.map +0 -1
  1533. package/dist/extensions/feishu/src/ui/config-surface.js.map +0 -1
  1534. package/dist/extensions/feishu/src/workflow-progress.js.map +0 -1
  1535. package/dist/extensions/google/src/image-generation-provider.js.map +0 -1
  1536. package/dist/extensions/minimax/src/image-generation-provider.js.map +0 -1
  1537. package/dist/extensions/openai/src/image-generation-provider.js.map +0 -1
  1538. package/dist/extensions/telegram/src/access-control.js.map +0 -1
  1539. package/dist/extensions/telegram/src/account-manager.js.map +0 -1
  1540. package/dist/extensions/telegram/src/actions/message-actions.js.map +0 -1
  1541. package/dist/extensions/telegram/src/adapters/command-adapter.js.map +0 -1
  1542. package/dist/extensions/telegram/src/adapters/config-adapter.js.map +0 -1
  1543. package/dist/extensions/telegram/src/adapters/debounce-keys.js.map +0 -1
  1544. package/dist/extensions/telegram/src/adapters/gateway-adapter.js.map +0 -1
  1545. package/dist/extensions/telegram/src/adapters/gateway-setup.js.map +0 -1
  1546. package/dist/extensions/telegram/src/adapters/inbound-access.js.map +0 -1
  1547. package/dist/extensions/telegram/src/adapters/index.js.map +0 -1
  1548. package/dist/extensions/telegram/src/adapters/onboard-cli.js.map +0 -1
  1549. package/dist/extensions/telegram/src/adapters/outbound-adapter.js.map +0 -1
  1550. package/dist/extensions/telegram/src/adapters/security-adapter.js.map +0 -1
  1551. package/dist/extensions/telegram/src/adapters/setup-wizard.js.map +0 -1
  1552. package/dist/extensions/telegram/src/adapters/status-adapter.js.map +0 -1
  1553. package/dist/extensions/telegram/src/adapters/streaming-adapter.js.map +0 -1
  1554. package/dist/extensions/telegram/src/api-root.js.map +0 -1
  1555. package/dist/extensions/telegram/src/approval-delivery.js.map +0 -1
  1556. package/dist/extensions/telegram/src/approval-store.js.map +0 -1
  1557. package/dist/extensions/telegram/src/caption.js.map +0 -1
  1558. package/dist/extensions/telegram/src/command-handler.js.map +0 -1
  1559. package/dist/extensions/telegram/src/config-schema.js.map +0 -1
  1560. package/dist/extensions/telegram/src/conversation-id.js.map +0 -1
  1561. package/dist/extensions/telegram/src/dedupe.js.map +0 -1
  1562. package/dist/extensions/telegram/src/delivery-chat-id.js.map +0 -1
  1563. package/dist/extensions/telegram/src/doctor.js.map +0 -1
  1564. package/dist/extensions/telegram/src/draft-stream-lifecycle.js.map +0 -1
  1565. package/dist/extensions/telegram/src/draft-stream-loop.js.map +0 -1
  1566. package/dist/extensions/telegram/src/draft-stream.js.map +0 -1
  1567. package/dist/extensions/telegram/src/errors.js.map +0 -1
  1568. package/dist/extensions/telegram/src/exec-approval-handler.js.map +0 -1
  1569. package/dist/extensions/telegram/src/exec-approvals.js.map +0 -1
  1570. package/dist/extensions/telegram/src/focus-handler.js.map +0 -1
  1571. package/dist/extensions/telegram/src/format.js.map +0 -1
  1572. package/dist/extensions/telegram/src/group-config-resolver.js.map +0 -1
  1573. package/dist/extensions/telegram/src/inbound-coalescer.js.map +0 -1
  1574. package/dist/extensions/telegram/src/inbound-processor.js.map +0 -1
  1575. package/dist/extensions/telegram/src/index.js.map +0 -1
  1576. package/dist/extensions/telegram/src/inline-keyboards.js.map +0 -1
  1577. package/dist/extensions/telegram/src/network-errors.js.map +0 -1
  1578. package/dist/extensions/telegram/src/outbound-sender.js.map +0 -1
  1579. package/dist/extensions/telegram/src/pairing-config-resolver.js.map +0 -1
  1580. package/dist/extensions/telegram/src/plugin-defaults.js.map +0 -1
  1581. package/dist/extensions/telegram/src/plugin.js.map +0 -1
  1582. package/dist/extensions/telegram/src/polling-session.js.map +0 -1
  1583. package/dist/extensions/telegram/src/proxy-fetch.js.map +0 -1
  1584. package/dist/extensions/telegram/src/reactions.js.map +0 -1
  1585. package/dist/extensions/telegram/src/reply-params.js.map +0 -1
  1586. package/dist/extensions/telegram/src/routing-integration.js.map +0 -1
  1587. package/dist/extensions/telegram/src/send-options.js.map +0 -1
  1588. package/dist/extensions/telegram/src/sent-cache.js.map +0 -1
  1589. package/dist/extensions/telegram/src/startup-errors.js.map +0 -1
  1590. package/dist/extensions/telegram/src/telegram-actions.js.map +0 -1
  1591. package/dist/extensions/telegram/src/telegram-draft-errors.js.map +0 -1
  1592. package/dist/extensions/telegram/src/thread-bindings.js.map +0 -1
  1593. package/dist/extensions/telegram/src/timeout-abort.js.map +0 -1
  1594. package/dist/extensions/telegram/src/token-resolver.js.map +0 -1
  1595. package/dist/extensions/telegram/src/update-offset-store.js.map +0 -1
  1596. package/dist/extensions/telegram/src/workflow-progress.js.map +0 -1
  1597. package/dist/extensions/weixin/src/adapters/onboard-cli.js.map +0 -1
  1598. package/dist/extensions/weixin/src/api/api.js.map +0 -1
  1599. package/dist/extensions/weixin/src/api/config-cache.js.map +0 -1
  1600. package/dist/extensions/weixin/src/api/session-guard.js.map +0 -1
  1601. package/dist/extensions/weixin/src/api/types.js.map +0 -1
  1602. package/dist/extensions/weixin/src/auth/accounts.js.map +0 -1
  1603. package/dist/extensions/weixin/src/auth/login-qr.js.map +0 -1
  1604. package/dist/extensions/weixin/src/auth/pairing.js.map +0 -1
  1605. package/dist/extensions/weixin/src/auth/weixin-account-id.js.map +0 -1
  1606. package/dist/extensions/weixin/src/cdn/aes-ecb.js.map +0 -1
  1607. package/dist/extensions/weixin/src/cdn/cdn-upload.js.map +0 -1
  1608. package/dist/extensions/weixin/src/cdn/cdn-url.js.map +0 -1
  1609. package/dist/extensions/weixin/src/cdn/pic-decrypt.js.map +0 -1
  1610. package/dist/extensions/weixin/src/cdn/upload.js.map +0 -1
  1611. package/dist/extensions/weixin/src/cli/gateway-qr-login.js.map +0 -1
  1612. package/dist/extensions/weixin/src/cli/qr-login.js.map +0 -1
  1613. package/dist/extensions/weixin/src/config-schema.js.map +0 -1
  1614. package/dist/extensions/weixin/src/config-surface.js.map +0 -1
  1615. package/dist/extensions/weixin/src/delivery-to.js.map +0 -1
  1616. package/dist/extensions/weixin/src/index.js.map +0 -1
  1617. package/dist/extensions/weixin/src/media/data-url.js.map +0 -1
  1618. package/dist/extensions/weixin/src/media/media-download.js.map +0 -1
  1619. package/dist/extensions/weixin/src/media/mime.js.map +0 -1
  1620. package/dist/extensions/weixin/src/media/silk-transcode.js.map +0 -1
  1621. package/dist/extensions/weixin/src/messaging/context-token-init.js.map +0 -1
  1622. package/dist/extensions/weixin/src/messaging/debug-mode.js.map +0 -1
  1623. package/dist/extensions/weixin/src/messaging/error-notice.js.map +0 -1
  1624. package/dist/extensions/weixin/src/messaging/inbound.js.map +0 -1
  1625. package/dist/extensions/weixin/src/messaging/markdown-filter.js.map +0 -1
  1626. package/dist/extensions/weixin/src/messaging/process-message.js.map +0 -1
  1627. package/dist/extensions/weixin/src/messaging/send-media.js.map +0 -1
  1628. package/dist/extensions/weixin/src/messaging/send.js.map +0 -1
  1629. package/dist/extensions/weixin/src/messaging/slash-commands.js.map +0 -1
  1630. package/dist/extensions/weixin/src/messaging/typing-ticket-store.js.map +0 -1
  1631. package/dist/extensions/weixin/src/monitor/monitor.js.map +0 -1
  1632. package/dist/extensions/weixin/src/outbound-send.js.map +0 -1
  1633. package/dist/extensions/weixin/src/pairing-config-resolver.js.map +0 -1
  1634. package/dist/extensions/weixin/src/plugin.js.map +0 -1
  1635. package/dist/extensions/weixin/src/routing-integration.js.map +0 -1
  1636. package/dist/extensions/weixin/src/storage/state-dir.js.map +0 -1
  1637. package/dist/extensions/weixin/src/storage/sync-buf.js.map +0 -1
  1638. package/dist/extensions/weixin/src/util/logger.js.map +0 -1
  1639. package/dist/extensions/weixin/src/util/random.js.map +0 -1
  1640. package/dist/extensions/weixin/src/util/redact.js.map +0 -1
  1641. package/dist/extensions/weixin/src/workflow-progress.js.map +0 -1
  1642. package/dist/gateway/static/root/assets/agents-Ci1U96gj.js +0 -2
  1643. package/dist/gateway/static/root/assets/apps-page-Z6cQTPS6.js +0 -1
  1644. package/dist/gateway/static/root/assets/automations-page-D7HmeFdr.js +0 -6
  1645. package/dist/gateway/static/root/assets/browser-settings-page-BZ25v96s.js +0 -8
  1646. package/dist/gateway/static/root/assets/channels-settings-Bc7FVeqs.js +0 -1
  1647. package/dist/gateway/static/root/assets/channels-status-swr-P3J5voxb.js +0 -1
  1648. package/dist/gateway/static/root/assets/connectors-page-oi41mE3U.js +0 -2
  1649. package/dist/gateway/static/root/assets/desktop-pet-DzdsBRdD.js +0 -1
  1650. package/dist/gateway/static/root/assets/desktop-pet-settings-B-URlTdB.js +0 -1
  1651. package/dist/gateway/static/root/assets/gateway-settings-CGphLe9T.js +0 -1
  1652. package/dist/gateway/static/root/assets/goal-detail-page-CyaLkWhd.js +0 -4
  1653. package/dist/gateway/static/root/assets/goals-page-C-srWhsP.js +0 -2
  1654. package/dist/gateway/static/root/assets/index-DktduA8Z.css +0 -1
  1655. package/dist/gateway/static/root/assets/local-app-workbench-page-DcaqgchY.js +0 -2
  1656. package/dist/gateway/static/root/assets/logs-page-B_13EkK7.js +0 -7
  1657. package/dist/gateway/static/root/assets/messages-BIsSVgW7.js +0 -5
  1658. package/dist/gateway/static/root/assets/models-hub-panel-DkCTjUj_.js +0 -2
  1659. package/dist/gateway/static/root/assets/notes-workbench-CfWQczho.js +0 -4
  1660. package/dist/gateway/static/root/assets/project-detail-page-BWOTQX4M.js +0 -1
  1661. package/dist/gateway/static/root/assets/projects-page-C81dHQ5i.js +0 -1
  1662. package/dist/gateway/static/root/assets/remote-access-hub-U1FQUBtJ.js +0 -1
  1663. package/dist/gateway/static/root/assets/sessions-page-t6DzYLpM.js +0 -1
  1664. package/dist/gateway/static/root/assets/settings-advanced-gate-DggKrWED.js +0 -1
  1665. package/dist/gateway/static/root/assets/setup-status-panel-DncjFopP.js +0 -1
  1666. package/dist/gateway/static/root/assets/shares-settings-Brx1LsY9.js +0 -1
  1667. package/dist/gateway/static/root/assets/skill-reload-api-C_sLcSxh.js +0 -1
  1668. package/dist/gateway/static/root/assets/skills-page-BPzqM78D.js +0 -2
  1669. package/dist/gateway/static/root/assets/user-context-page-Dg_4sJJz.js +0 -1
  1670. package/dist/gateway/static/root/assets/voice-api-key-field-Bc-xxEHw.js +0 -1
  1671. package/dist/gateway/static/root/assets/work-discovery-page-CCMe2E98.js +0 -1
  1672. package/dist/gateway/static/root/assets/work-item-detail-page-CnVze8sW.js +0 -1
  1673. package/dist/gateway/static/root/assets/workflow-run-setup-panel-DUKlCVcY.js +0 -3
  1674. package/dist/gateway/static/root/assets/workflows-page-1Hh-__Ur.js +0 -11
  1675. package/dist/gateway/static/root/favicon-icon.svg +0 -187
  1676. package/dist/package.js.map +0 -1
  1677. package/dist/src/activity/context.js.map +0 -1
  1678. package/dist/src/activity/emitter.js.map +0 -1
  1679. package/dist/src/activity/service.js.map +0 -1
  1680. package/dist/src/agent/agent-manager.js.map +0 -1
  1681. package/dist/src/agent/agent-scope.js.map +0 -1
  1682. package/dist/src/agent/background-review/coordinator.js.map +0 -1
  1683. package/dist/src/agent/background-review/prompts.js.map +0 -1
  1684. package/dist/src/agent/background-review/run-background-review.js.map +0 -1
  1685. package/dist/src/agent/background-review/settings.js.map +0 -1
  1686. package/dist/src/agent/bootstrap/bootstrap-cache.js.map +0 -1
  1687. package/dist/src/agent/bootstrap/bootstrap-context.js.map +0 -1
  1688. package/dist/src/agent/bootstrap/bootstrap-files.js.map +0 -1
  1689. package/dist/src/agent/bootstrap/filter-bootstrap-files.js.map +0 -1
  1690. package/dist/src/agent/bootstrap/load-bootstrap-files.js.map +0 -1
  1691. package/dist/src/agent/bootstrap/project-agents-context.js.map +0 -1
  1692. package/dist/src/agent/capabilities/definitions.js.map +0 -1
  1693. package/dist/src/agent/capabilities/registry.js.map +0 -1
  1694. package/dist/src/agent/child-agent-factory.js.map +0 -1
  1695. package/dist/src/agent/client-error-format.js.map +0 -1
  1696. package/dist/src/agent/code-intelligence/binary.js.map +0 -1
  1697. package/dist/src/agent/code-intelligence/runtime.js.map +0 -1
  1698. package/dist/src/agent/code-intelligence/tools.js.map +0 -1
  1699. package/dist/src/agent/coding/turn-diff-tracker.js.map +0 -1
  1700. package/dist/src/agent/context/expand-at-file-mentions.js.map +0 -1
  1701. package/dist/src/agent/context/project-context.js.map +0 -1
  1702. package/dist/src/agent/context/workspace-seed.js.map +0 -1
  1703. package/dist/src/agent/context/workspace-state.js.map +0 -1
  1704. package/dist/src/agent/context/workspace.js.map +0 -1
  1705. package/dist/src/agent/embedded/run-for-session.js.map +0 -1
  1706. package/dist/src/agent/embedded/run-turn.js.map +0 -1
  1707. package/dist/src/agent/embedded/runs.js.map +0 -1
  1708. package/dist/src/agent/embedded/session-manager-init.js.map +0 -1
  1709. package/dist/src/agent/embedded/session-runner.js.map +0 -1
  1710. package/dist/src/agent/embedded/session-tool-result-guard.js.map +0 -1
  1711. package/dist/src/agent/embedded/sqlite-hydrating-session-manager.js.map +0 -1
  1712. package/dist/src/agent/embedded/subscribe-session.js.map +0 -1
  1713. package/dist/src/agent/embedded/system-prompt-override.js.map +0 -1
  1714. package/dist/src/agent/embedded/tool-result-context-guard.js.map +0 -1
  1715. package/dist/src/agent/embedded/tool-result-truncation.js.map +0 -1
  1716. package/dist/src/agent/embedded/xopc-auth-storage.js.map +0 -1
  1717. package/dist/src/agent/embedded/xopc-stream-bridge.js.map +0 -1
  1718. package/dist/src/agent/embedded/xopc-tools-bridge.js.map +0 -1
  1719. package/dist/src/agent/failover-error.js.map +0 -1
  1720. package/dist/src/agent/fallback/candidates.js.map +0 -1
  1721. package/dist/src/agent/fallback/reason.js.map +0 -1
  1722. package/dist/src/agent/feedback/feedback-coordinator.js.map +0 -1
  1723. package/dist/src/agent/goals/checklist-judge.js.map +0 -1
  1724. package/dist/src/agent/goals/checklist-types.js.map +0 -1
  1725. package/dist/src/agent/goals/evaluate-turn.js.map +0 -1
  1726. package/dist/src/agent/goals/goal-locale.js.map +0 -1
  1727. package/dist/src/agent/goals/judge.js.map +0 -1
  1728. package/dist/src/agent/goals/persistent-goal-service.js.map +0 -1
  1729. package/dist/src/agent/goals/post-turn.js.map +0 -1
  1730. package/dist/src/agent/goals/state.js.map +0 -1
  1731. package/dist/src/agent/image/generation/bundled-registry.js.map +0 -1
  1732. package/dist/src/agent/image/generation/bundled.js.map +0 -1
  1733. package/dist/src/agent/image/generation/image-assets.js.map +0 -1
  1734. package/dist/src/agent/image/generation/model-ref.js.map +0 -1
  1735. package/dist/src/agent/image/generation/normalization.js.map +0 -1
  1736. package/dist/src/agent/image/generation/openai-compatible-image-provider.js.map +0 -1
  1737. package/dist/src/agent/image/generation/provider-registry.js.map +0 -1
  1738. package/dist/src/agent/image/generation/runtime.js.map +0 -1
  1739. package/dist/src/agent/image/image-helpers.js.map +0 -1
  1740. package/dist/src/agent/image/image-model-fallback.js.map +0 -1
  1741. package/dist/src/agent/image/inbound-image-handling.js.map +0 -1
  1742. package/dist/src/agent/image/load-image-media.js.map +0 -1
  1743. package/dist/src/agent/image/tool-model-config.js.map +0 -1
  1744. package/dist/src/agent/image/understanding/pi-ai-provider.js.map +0 -1
  1745. package/dist/src/agent/image/understanding/provider-registry.js.map +0 -1
  1746. package/dist/src/agent/image/understanding/runtime.js.map +0 -1
  1747. package/dist/src/agent/image/vision-detection.js.map +0 -1
  1748. package/dist/src/agent/inbound/attachment-pipeline.js.map +0 -1
  1749. package/dist/src/agent/inbound/inbound-loop.js.map +0 -1
  1750. package/dist/src/agent/inbound/turn-dispatcher.js.map +0 -1
  1751. package/dist/src/agent/ipc/bus.js.map +0 -1
  1752. package/dist/src/agent/ipc/inbox.js.map +0 -1
  1753. package/dist/src/agent/ipc/socket.js.map +0 -1
  1754. package/dist/src/agent/ipc/types.js.map +0 -1
  1755. package/dist/src/agent/lifecycle/handlers/compaction.js.map +0 -1
  1756. package/dist/src/agent/lifecycle/hook-handler.js.map +0 -1
  1757. package/dist/src/agent/lifecycle/manager.js.map +0 -1
  1758. package/dist/src/agent/lifecycle/progress.js.map +0 -1
  1759. package/dist/src/agent/lifecycle/timeout-wrapper.js.map +0 -1
  1760. package/dist/src/agent/lifecycle/typing.js.map +0 -1
  1761. package/dist/src/agent/mcp/bundle-mcp-config.js.map +0 -1
  1762. package/dist/src/agent/mcp/bundle-mcp-materialize.js.map +0 -1
  1763. package/dist/src/agent/mcp/bundle-mcp-names.js.map +0 -1
  1764. package/dist/src/agent/mcp/bundle-mcp-policy.js.map +0 -1
  1765. package/dist/src/agent/mcp/bundle-mcp-runtime.js.map +0 -1
  1766. package/dist/src/agent/mcp/embedded-mcp.js.map +0 -1
  1767. package/dist/src/agent/mcp/mcp-config-shared.js.map +0 -1
  1768. package/dist/src/agent/mcp/mcp-http.js.map +0 -1
  1769. package/dist/src/agent/mcp/mcp-stdio-transport.js.map +0 -1
  1770. package/dist/src/agent/mcp/mcp-stdio.js.map +0 -1
  1771. package/dist/src/agent/mcp/mcp-tool-meta.js.map +0 -1
  1772. package/dist/src/agent/mcp/mcp-transport-config.js.map +0 -1
  1773. package/dist/src/agent/mcp/mcp-transport.js.map +0 -1
  1774. package/dist/src/agent/mcp/resolve-embedded-mcp-tools.js.map +0 -1
  1775. package/dist/src/agent/media-generation/model-ref.js.map +0 -1
  1776. package/dist/src/agent/media-generation/normalization.types.js.map +0 -1
  1777. package/dist/src/agent/media-generation/runtime-shared.js.map +0 -1
  1778. package/dist/src/agent/memory/agent-message-access.js.map +0 -1
  1779. package/dist/src/agent/memory/builtin-memory-store.js.map +0 -1
  1780. package/dist/src/agent/memory/builtin-provider.js.map +0 -1
  1781. package/dist/src/agent/memory/compaction.js.map +0 -1
  1782. package/dist/src/agent/memory/context/planner.js.map +0 -1
  1783. package/dist/src/agent/memory/context-fence.js.map +0 -1
  1784. package/dist/src/agent/memory/create-memory-manager.js.map +0 -1
  1785. package/dist/src/agent/memory/dreaming/config.js.map +0 -1
  1786. package/dist/src/agent/memory/dreaming/constants.js.map +0 -1
  1787. package/dist/src/agent/memory/dreaming/deep-promotion.js.map +0 -1
  1788. package/dist/src/agent/memory/dreaming/events.js.map +0 -1
  1789. package/dist/src/agent/memory/dreaming/last-run.js.map +0 -1
  1790. package/dist/src/agent/memory/dreaming/light-sweep.js.map +0 -1
  1791. package/dist/src/agent/memory/dreaming/preview.js.map +0 -1
  1792. package/dist/src/agent/memory/dreaming/promotion-lifecycle.js.map +0 -1
  1793. package/dist/src/agent/memory/dreaming/rem-patterns.js.map +0 -1
  1794. package/dist/src/agent/memory/dreaming/scope.js.map +0 -1
  1795. package/dist/src/agent/memory/dreaming/short-term-store.js.map +0 -1
  1796. package/dist/src/agent/memory/dreaming/utils.js.map +0 -1
  1797. package/dist/src/agent/memory/lifecycle.js.map +0 -1
  1798. package/dist/src/agent/memory/manager.js.map +0 -1
  1799. package/dist/src/agent/memory/memory-config.js.map +0 -1
  1800. package/dist/src/agent/memory/message-sanitizer.js.map +0 -1
  1801. package/dist/src/agent/memory/plugin-discovery.js.map +0 -1
  1802. package/dist/src/agent/memory/sensitivity.js.map +0 -1
  1803. package/dist/src/agent/memory/source-origin.js.map +0 -1
  1804. package/dist/src/agent/memory/stub-memory-provider.js.map +0 -1
  1805. package/dist/src/agent/memory/summary-generator.js.map +0 -1
  1806. package/dist/src/agent/memory/understanding/correction.js.map +0 -1
  1807. package/dist/src/agent/memory/understanding/quality.js.map +0 -1
  1808. package/dist/src/agent/memory/understanding/service.js.map +0 -1
  1809. package/dist/src/agent/memory/user-context-coordinator.js.map +0 -1
  1810. package/dist/src/agent/memory/user-message-text.js.map +0 -1
  1811. package/dist/src/agent/memory/window.js.map +0 -1
  1812. package/dist/src/agent/messaging/command-handler.js.map +0 -1
  1813. package/dist/src/agent/messaging/message-router.js.map +0 -1
  1814. package/dist/src/agent/messaging/outbound-coordinator.js.map +0 -1
  1815. package/dist/src/agent/messaging/stream-manager.js.map +0 -1
  1816. package/dist/src/agent/middleware/context.js.map +0 -1
  1817. package/dist/src/agent/middleware/self-verify.js.map +0 -1
  1818. package/dist/src/agent/models/manager.js.map +0 -1
  1819. package/dist/src/agent/models/request-limiter.js.map +0 -1
  1820. package/dist/src/agent/models/selection.js.map +0 -1
  1821. package/dist/src/agent/orchestration/agent-event-handler.js.map +0 -1
  1822. package/dist/src/agent/orchestration/agent-orchestrator.js.map +0 -1
  1823. package/dist/src/agent/orchestration/llm-turn-retry.js.map +0 -1
  1824. package/dist/src/agent/orchestration/loop-guard.js.map +0 -1
  1825. package/dist/src/agent/orchestration/run-agent-turn-with-timeout.js.map +0 -1
  1826. package/dist/src/agent/prompt/cache-boundary.js.map +0 -1
  1827. package/dist/src/agent/prompt/memory/index.js.map +0 -1
  1828. package/dist/src/agent/prompt/safety.js.map +0 -1
  1829. package/dist/src/agent/prompt/sanitize-for-prompt.js.map +0 -1
  1830. package/dist/src/agent/prompt/sections/behavior.js.map +0 -1
  1831. package/dist/src/agent/prompt/sections/memory-skills.js.map +0 -1
  1832. package/dist/src/agent/prompt/sections/messaging-runtime.js.map +0 -1
  1833. package/dist/src/agent/prompt/sections/project-context.js.map +0 -1
  1834. package/dist/src/agent/prompt/sections/tooling.js.map +0 -1
  1835. package/dist/src/agent/prompt/sections/workspace-runtime.js.map +0 -1
  1836. package/dist/src/agent/prompt/service-prompt-builder.js.map +0 -1
  1837. package/dist/src/agent/prompt/subagent-context.js.map +0 -1
  1838. package/dist/src/agent/prompt/system-prompt-params.js.map +0 -1
  1839. package/dist/src/agent/prompt/system-prompt.js.map +0 -1
  1840. package/dist/src/agent/prompt/system-reminder.js.map +0 -1
  1841. package/dist/src/agent/reply/apply-turn-user-enrichment.js.map +0 -1
  1842. package/dist/src/agent/reply/post-compaction-context.js.map +0 -1
  1843. package/dist/src/agent/reply/startup-context.js.map +0 -1
  1844. package/dist/src/agent/reply/workspace-boundary-read.js.map +0 -1
  1845. package/dist/src/agent/sandbox/command-validator.js.map +0 -1
  1846. package/dist/src/agent/sandbox/exec-policy.js.map +0 -1
  1847. package/dist/src/agent/sandbox/path-policy.js.map +0 -1
  1848. package/dist/src/agent/sandbox/sanitize-env-vars.js.map +0 -1
  1849. package/dist/src/agent/sandbox/types.js.map +0 -1
  1850. package/dist/src/agent/service/async-queue.js.map +0 -1
  1851. package/dist/src/agent/service/btw-query.js.map +0 -1
  1852. package/dist/src/agent/service/build-direct-message-content.js.map +0 -1
  1853. package/dist/src/agent/service/direct-turn-helpers.js.map +0 -1
  1854. package/dist/src/agent/service/parse-outbound-session-key.js.map +0 -1
  1855. package/dist/src/agent/service/process-direct-one-shot.js.map +0 -1
  1856. package/dist/src/agent/service/process-direct-streaming.js.map +0 -1
  1857. package/dist/src/agent/service/session-context-report.js.map +0 -1
  1858. package/dist/src/agent/service/webchat-tts.js.map +0 -1
  1859. package/dist/src/agent/service-inbound-utils.js.map +0 -1
  1860. package/dist/src/agent/service.js.map +0 -1
  1861. package/dist/src/agent/session/session-config-service.js.map +0 -1
  1862. package/dist/src/agent/session/session-context.js.map +0 -1
  1863. package/dist/src/agent/session/session-hydrator.js.map +0 -1
  1864. package/dist/src/agent/session/session-inspector.js.map +0 -1
  1865. package/dist/src/agent/session/session-lifecycle.js.map +0 -1
  1866. package/dist/src/agent/session/session-state-bag.js.map +0 -1
  1867. package/dist/src/agent/session/tracker.js.map +0 -1
  1868. package/dist/src/agent/skills/config.js.map +0 -1
  1869. package/dist/src/agent/skills/filesystem-watcher.js.map +0 -1
  1870. package/dist/src/agent/skills/format-skills-prompt.js.map +0 -1
  1871. package/dist/src/agent/skills/hub-hash.js.map +0 -1
  1872. package/dist/src/agent/skills/hub-lock.js.map +0 -1
  1873. package/dist/src/agent/skills/hub-pull.js.map +0 -1
  1874. package/dist/src/agent/skills/index.js.map +0 -1
  1875. package/dist/src/agent/skills/install-target.js.map +0 -1
  1876. package/dist/src/agent/skills/installer.js.map +0 -1
  1877. package/dist/src/agent/skills/managed-store.js.map +0 -1
  1878. package/dist/src/agent/skills/marketplace/adapters/clawhub/adapter.js.map +0 -1
  1879. package/dist/src/agent/skills/marketplace/adapters/skillhub/adapter.js.map +0 -1
  1880. package/dist/src/agent/skills/marketplace/adapters/store/adapter.js.map +0 -1
  1881. package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.js.map +0 -1
  1882. package/dist/src/agent/skills/marketplace/marketplace-category-order.js.map +0 -1
  1883. package/dist/src/agent/skills/marketplace/registry.js.map +0 -1
  1884. package/dist/src/agent/skills/marketplace/resolve-adapter.js.map +0 -1
  1885. package/dist/src/agent/skills/parse-skill-metadata.js.map +0 -1
  1886. package/dist/src/agent/skills/required-env-vars.js.map +0 -1
  1887. package/dist/src/agent/skills/scanner.js.map +0 -1
  1888. package/dist/src/agent/skills/skill-manage-ops.js.map +0 -1
  1889. package/dist/src/agent/skills/skill-manager.js.map +0 -1
  1890. package/dist/src/agent/skills/skill-markdown-preview-from-raw.js.map +0 -1
  1891. package/dist/src/agent/skills/skill-tool-gating.js.map +0 -1
  1892. package/dist/src/agent/skills/skill-view-path.js.map +0 -1
  1893. package/dist/src/agent/skills/skills-marketplace.js.map +0 -1
  1894. package/dist/src/agent/skills/test-framework.js.map +0 -1
  1895. package/dist/src/agent/skills/watcher.js.map +0 -1
  1896. package/dist/src/agent/skills/workspace-skills-dir.js.map +0 -1
  1897. package/dist/src/agent/source-context/injector.js.map +0 -1
  1898. package/dist/src/agent/source-context/types.js.map +0 -1
  1899. package/dist/src/agent/starter-agents.js.map +0 -1
  1900. package/dist/src/agent/streaming/reasoning-visibility-sse.js.map +0 -1
  1901. package/dist/src/agent/tool-manuals/browser.js.map +0 -1
  1902. package/dist/src/agent/tool-manuals/index.js.map +0 -1
  1903. package/dist/src/agent/tool-manuals/xopc-use.js.map +0 -1
  1904. package/dist/src/agent/tools/apply-patch.js.map +0 -1
  1905. package/dist/src/agent/tools/automation-tool.js.map +0 -1
  1906. package/dist/src/agent/tools/browser/tool/browser-use-tool.js.map +0 -1
  1907. package/dist/src/agent/tools/browser/tool/schemas.js.map +0 -1
  1908. package/dist/src/agent/tools/chain-tracker.js.map +0 -1
  1909. package/dist/src/agent/tools/clarify-tool.js.map +0 -1
  1910. package/dist/src/agent/tools/cli-clarify.js.map +0 -1
  1911. package/dist/src/agent/tools/communication.js.map +0 -1
  1912. package/dist/src/agent/tools/composio-tool.js.map +0 -1
  1913. package/dist/src/agent/tools/concurrency.js.map +0 -1
  1914. package/dist/src/agent/tools/create-share-tool.js.map +0 -1
  1915. package/dist/src/agent/tools/curated-memory-tool.js.map +0 -1
  1916. package/dist/src/agent/tools/delegate-tool.js.map +0 -1
  1917. package/dist/src/agent/tools/desktop-pet-tool.js.map +0 -1
  1918. package/dist/src/agent/tools/dreaming-tool.js.map +0 -1
  1919. package/dist/src/agent/tools/edit-diff.js.map +0 -1
  1920. package/dist/src/agent/tools/error-pattern-matcher.js.map +0 -1
  1921. package/dist/src/agent/tools/error-tracker.js.map +0 -1
  1922. package/dist/src/agent/tools/exec-command.js.map +0 -1
  1923. package/dist/src/agent/tools/execute-code-tool.js.map +0 -1
  1924. package/dist/src/agent/tools/executor.js.map +0 -1
  1925. package/dist/src/agent/tools/factory.js.map +0 -1
  1926. package/dist/src/agent/tools/find.js.map +0 -1
  1927. package/dist/src/agent/tools/goal-evidence-recorder.js.map +0 -1
  1928. package/dist/src/agent/tools/goal-tool.js.map +0 -1
  1929. package/dist/src/agent/tools/grep.js.map +0 -1
  1930. package/dist/src/agent/tools/image-generate-tool.js.map +0 -1
  1931. package/dist/src/agent/tools/image-tool.js.map +0 -1
  1932. package/dist/src/agent/tools/list-dir.js.map +0 -1
  1933. package/dist/src/agent/tools/media-read-tool.js.map +0 -1
  1934. package/dist/src/agent/tools/memory-tool.js.map +0 -1
  1935. package/dist/src/agent/tools/metadata.js.map +0 -1
  1936. package/dist/src/agent/tools/read.js.map +0 -1
  1937. package/dist/src/agent/tools/search/http.js.map +0 -1
  1938. package/dist/src/agent/tools/search/providers/bing-api.js.map +0 -1
  1939. package/dist/src/agent/tools/search/providers/bing-html.js.map +0 -1
  1940. package/dist/src/agent/tools/search/providers/brave.js.map +0 -1
  1941. package/dist/src/agent/tools/search/providers/duckduckgo-html.js.map +0 -1
  1942. package/dist/src/agent/tools/search/providers/searxng.js.map +0 -1
  1943. package/dist/src/agent/tools/search/providers/tavily.js.map +0 -1
  1944. package/dist/src/agent/tools/search/region.js.map +0 -1
  1945. package/dist/src/agent/tools/search/registry.js.map +0 -1
  1946. package/dist/src/agent/tools/search/resolve-config.js.map +0 -1
  1947. package/dist/src/agent/tools/send-media.js.map +0 -1
  1948. package/dist/src/agent/tools/session-search-tool.js.map +0 -1
  1949. package/dist/src/agent/tools/session-status-tool.js.map +0 -1
  1950. package/dist/src/agent/tools/skill-install-tool.js.map +0 -1
  1951. package/dist/src/agent/tools/skill-manage-tool.js.map +0 -1
  1952. package/dist/src/agent/tools/skills-tools.js.map +0 -1
  1953. package/dist/src/agent/tools/structured-output.js.map +0 -1
  1954. package/dist/src/agent/tools/todo-tool.js.map +0 -1
  1955. package/dist/src/agent/tools/tool-manual-tool.js.map +0 -1
  1956. package/dist/src/agent/tools/tool-paths.js.map +0 -1
  1957. package/dist/src/agent/tools/truncate.js.map +0 -1
  1958. package/dist/src/agent/tools/tts-tool.js.map +0 -1
  1959. package/dist/src/agent/tools/update-plan-tool.js.map +0 -1
  1960. package/dist/src/agent/tools/url-safety.js.map +0 -1
  1961. package/dist/src/agent/tools/usage-analyzer.js.map +0 -1
  1962. package/dist/src/agent/tools/web-extract.js.map +0 -1
  1963. package/dist/src/agent/tools/web.js.map +0 -1
  1964. package/dist/src/agent/tools/workflow-tool.js.map +0 -1
  1965. package/dist/src/agent/tools/write.js.map +0 -1
  1966. package/dist/src/agent/tools/xopc-use-tool.js.map +0 -1
  1967. package/dist/src/agent/transcript/google-api.js.map +0 -1
  1968. package/dist/src/agent/transcript/model-selection.js.map +0 -1
  1969. package/dist/src/agent/transcript/provider-capabilities.js.map +0 -1
  1970. package/dist/src/agent/transcript/session-transcript-repair.js.map +0 -1
  1971. package/dist/src/agent/transcript/strip-tool-messages.js.map +0 -1
  1972. package/dist/src/agent/transcript/thinking-types.js.map +0 -1
  1973. package/dist/src/agent/transcript/thinking.js.map +0 -1
  1974. package/dist/src/agent/transcript/tool-call-id.js.map +0 -1
  1975. package/dist/src/agent/transcript/transcript-hygiene.js.map +0 -1
  1976. package/dist/src/agent/transcript/transcript-policy.js.map +0 -1
  1977. package/dist/src/agent/workflow/agent-progress.js.map +0 -1
  1978. package/dist/src/agent/workflow/builtins/index.js.map +0 -1
  1979. package/dist/src/agent/workflow/catalog.js.map +0 -1
  1980. package/dist/src/agent/workflow/progress-broker.js.map +0 -1
  1981. package/dist/src/agent/workflow/snapshot-empty.js.map +0 -1
  1982. package/dist/src/agent/workflow/snapshot.js.map +0 -1
  1983. package/dist/src/agent/workflow/step-labels.js.map +0 -1
  1984. package/dist/src/agent/workflow/structured-output-tool.js.map +0 -1
  1985. package/dist/src/agent/workflow/subagent-runner.js.map +0 -1
  1986. package/dist/src/agent/workflow/workflow-child-tools.js.map +0 -1
  1987. package/dist/src/agent/workspace-runtime/registry.js.map +0 -1
  1988. package/dist/src/agent-manifest/index.js.map +0 -1
  1989. package/dist/src/agent-manifest/preset-chain.js.map +0 -1
  1990. package/dist/src/agent-manifest/prompt.js.map +0 -1
  1991. package/dist/src/agent-manifest/resolver.js.map +0 -1
  1992. package/dist/src/agent-manifest/schema.js.map +0 -1
  1993. package/dist/src/agent-manifest/validator.js.map +0 -1
  1994. package/dist/src/agent-runtime/boundary-guard.js.map +0 -1
  1995. package/dist/src/agent-runtime/memory-runtime.js.map +0 -1
  1996. package/dist/src/agent-runtime/model-router.js.map +0 -1
  1997. package/dist/src/agent-runtime/run-trace.js.map +0 -1
  1998. package/dist/src/agent-runtime/runtime-profile.js.map +0 -1
  1999. package/dist/src/agent-runtime/tool-registry.js.map +0 -1
  2000. package/dist/src/agent-runtime/workflow-runtime.js.map +0 -1
  2001. package/dist/src/ai-assist/text-assist.js.map +0 -1
  2002. package/dist/src/auth/credentials.js.map +0 -1
  2003. package/dist/src/auth/index.js.map +0 -1
  2004. package/dist/src/auth/oauth/anthropic.js.map +0 -1
  2005. package/dist/src/auth/oauth/github-copilot.js.map +0 -1
  2006. package/dist/src/auth/oauth/google-oauth/google-antigravity.js.map +0 -1
  2007. package/dist/src/auth/oauth/google-oauth/google-gemini-cli.js.map +0 -1
  2008. package/dist/src/auth/oauth/google-oauth/oauth-page.js.map +0 -1
  2009. package/dist/src/auth/oauth/google-oauth/pkce.js.map +0 -1
  2010. package/dist/src/auth/oauth/kimi-coding.js.map +0 -1
  2011. package/dist/src/auth/oauth/minimax-cn.js.map +0 -1
  2012. package/dist/src/auth/oauth/minimax.js.map +0 -1
  2013. package/dist/src/auth/oauth/openai-codex.js.map +0 -1
  2014. package/dist/src/auth/oauth/pkce.js.map +0 -1
  2015. package/dist/src/auth/profiles/oauth.js.map +0 -1
  2016. package/dist/src/auth/profiles/order.js.map +0 -1
  2017. package/dist/src/auth/profiles/profiles.js.map +0 -1
  2018. package/dist/src/auth/profiles/store.js.map +0 -1
  2019. package/dist/src/auth/sync-provider-auth.js.map +0 -1
  2020. package/dist/src/automations/api/routes.js.map +0 -1
  2021. package/dist/src/automations/domain/schedule.js.map +0 -1
  2022. package/dist/src/automations/domain/validation.js.map +0 -1
  2023. package/dist/src/automations/draft/automation-draft-prompt.js.map +0 -1
  2024. package/dist/src/automations/draft/automation-draft-service.js.map +0 -1
  2025. package/dist/src/automations/draft/automation-draft-validator.js.map +0 -1
  2026. package/dist/src/automations/product-events.js.map +0 -1
  2027. package/dist/src/automations/service/action-executor.js.map +0 -1
  2028. package/dist/src/automations/service/automation-service.js.map +0 -1
  2029. package/dist/src/automations/storage/automation-repository.js.map +0 -1
  2030. package/dist/src/automations/storage/automation-run-repository.js.map +0 -1
  2031. package/dist/src/browser/actions/extension-registry-bridge.js.map +0 -1
  2032. package/dist/src/browser/actions/registry.js.map +0 -1
  2033. package/dist/src/browser/backend-from-config.js.map +0 -1
  2034. package/dist/src/browser/browser-command-timeout.js.map +0 -1
  2035. package/dist/src/browser/cache-dir-policy.js.map +0 -1
  2036. package/dist/src/browser/cdp-local-launcher.js.map +0 -1
  2037. package/dist/src/browser/cdp-supervisor.js.map +0 -1
  2038. package/dist/src/browser/free-port.js.map +0 -1
  2039. package/dist/src/browser/humanize.js.map +0 -1
  2040. package/dist/src/browser/install-lock.js.map +0 -1
  2041. package/dist/src/browser/manager.js.map +0 -1
  2042. package/dist/src/browser/pipeline/output.js.map +0 -1
  2043. package/dist/src/browser/pipeline/runner.js.map +0 -1
  2044. package/dist/src/browser/pipeline/schema.js.map +0 -1
  2045. package/dist/src/browser/pipeline/source.js.map +0 -1
  2046. package/dist/src/browser/pipeline/template.js.map +0 -1
  2047. package/dist/src/browser/providers/browser-ext-install.js.map +0 -1
  2048. package/dist/src/browser/providers/browser-use.js.map +0 -1
  2049. package/dist/src/browser/providers/browserbase.js.map +0 -1
  2050. package/dist/src/browser/providers/cloakbrowser.js.map +0 -1
  2051. package/dist/src/browser/providers/extension-ws-acquire.js.map +0 -1
  2052. package/dist/src/browser/providers/extension.js.map +0 -1
  2053. package/dist/src/browser/providers/playwright-doctor.js.map +0 -1
  2054. package/dist/src/browser/providers/playwright-install.js.map +0 -1
  2055. package/dist/src/browser/readiness.js.map +0 -1
  2056. package/dist/src/browser/schemas.js.map +0 -1
  2057. package/dist/src/browser/session-lifecycle.js.map +0 -1
  2058. package/dist/src/browser/snapshot-helpers.js.map +0 -1
  2059. package/dist/src/browser/stealth.js.map +0 -1
  2060. package/dist/src/browser/url-policy.js.map +0 -1
  2061. package/dist/src/capabilities/store-connector.js.map +0 -1
  2062. package/dist/src/channels/attachments/attachment-classifiers.js.map +0 -1
  2063. package/dist/src/channels/attachments/inbound-persist.js.map +0 -1
  2064. package/dist/src/channels/attachments/inbound-types.js.map +0 -1
  2065. package/dist/src/channels/attachments/outbound-tts-persist.js.map +0 -1
  2066. package/dist/src/channels/attachments/voice-stt-webchat.js.map +0 -1
  2067. package/dist/src/channels/catalog/channel-catalog-service.js.map +0 -1
  2068. package/dist/src/channels/config-helpers.js.map +0 -1
  2069. package/dist/src/channels/envelope-timestamp.js.map +0 -1
  2070. package/dist/src/channels/exec-approval-runtime.js.map +0 -1
  2071. package/dist/src/channels/health-monitor.js.map +0 -1
  2072. package/dist/src/channels/heartbeat-scheduler.js.map +0 -1
  2073. package/dist/src/channels/internal-outbound.js.map +0 -1
  2074. package/dist/src/channels/lifecycle-supervisor.js.map +0 -1
  2075. package/dist/src/channels/manager.js.map +0 -1
  2076. package/dist/src/channels/media.js.map +0 -1
  2077. package/dist/src/channels/outbound/deliver.js.map +0 -1
  2078. package/dist/src/channels/outbound/normalize.js.map +0 -1
  2079. package/dist/src/channels/outbound/persist-store.js.map +0 -1
  2080. package/dist/src/channels/outbound/queue.js.map +0 -1
  2081. package/dist/src/channels/outbound-sender.js.map +0 -1
  2082. package/dist/src/channels/pairing/allow-from-file.js.map +0 -1
  2083. package/dist/src/channels/pairing/approve-cli.js.map +0 -1
  2084. package/dist/src/channels/pairing/pairing-challenge.js.map +0 -1
  2085. package/dist/src/channels/pairing/pairing-constants.js.map +0 -1
  2086. package/dist/src/channels/pairing/pairing-events.js.map +0 -1
  2087. package/dist/src/channels/pairing/pairing-messages.js.map +0 -1
  2088. package/dist/src/channels/pairing/pairing-service.js.map +0 -1
  2089. package/dist/src/channels/pairing/pairing-store-adapter.js.map +0 -1
  2090. package/dist/src/channels/pairing/pairing-store.js.map +0 -1
  2091. package/dist/src/channels/pairing/paths.js.map +0 -1
  2092. package/dist/src/channels/pairing/preseed-allow-from.js.map +0 -1
  2093. package/dist/src/channels/pipeline.js.map +0 -1
  2094. package/dist/src/channels/plugin-registry.js.map +0 -1
  2095. package/dist/src/channels/plugins/registry.js.map +0 -1
  2096. package/dist/src/channels/restart-policy.js.map +0 -1
  2097. package/dist/src/channels/security-helpers.js.map +0 -1
  2098. package/dist/src/channels/security.js.map +0 -1
  2099. package/dist/src/channels/setup-wizard-discovery.js.map +0 -1
  2100. package/dist/src/chat-commands/agent-edit.js.map +0 -1
  2101. package/dist/src/chat-commands/builtins/config.js.map +0 -1
  2102. package/dist/src/chat-commands/builtins/context.js.map +0 -1
  2103. package/dist/src/chat-commands/builtins/goal.js.map +0 -1
  2104. package/dist/src/chat-commands/builtins/model.js.map +0 -1
  2105. package/dist/src/chat-commands/builtins/review.js.map +0 -1
  2106. package/dist/src/chat-commands/builtins/session.js.map +0 -1
  2107. package/dist/src/chat-commands/builtins/skill.js.map +0 -1
  2108. package/dist/src/chat-commands/builtins/subgoal.js.map +0 -1
  2109. package/dist/src/chat-commands/builtins/system.js.map +0 -1
  2110. package/dist/src/chat-commands/builtins/thinking.js.map +0 -1
  2111. package/dist/src/chat-commands/builtins/tts.js.map +0 -1
  2112. package/dist/src/chat-commands/builtins/workflow.js.map +0 -1
  2113. package/dist/src/chat-commands/command-parse.js.map +0 -1
  2114. package/dist/src/chat-commands/config-paths.js.map +0 -1
  2115. package/dist/src/chat-commands/config-value.js.map +0 -1
  2116. package/dist/src/chat-commands/context.js.map +0 -1
  2117. package/dist/src/chat-commands/format-output.js.map +0 -1
  2118. package/dist/src/chat-commands/index.js.map +0 -1
  2119. package/dist/src/chat-commands/processor.js.map +0 -1
  2120. package/dist/src/chat-commands/registry.js.map +0 -1
  2121. package/dist/src/chat-commands/session-key.js.map +0 -1
  2122. package/dist/src/cli/argv-invocation.js.map +0 -1
  2123. package/dist/src/cli/argv.js.map +0 -1
  2124. package/dist/src/cli/bin.js.map +0 -1
  2125. package/dist/src/cli/cli-log-level-preset.js.map +0 -1
  2126. package/dist/src/cli/command-catalog.js.map +0 -1
  2127. package/dist/src/cli/command-loaders.js.map +0 -1
  2128. package/dist/src/cli/command-manifest.js.map +0 -1
  2129. package/dist/src/cli/command-path-matches.js.map +0 -1
  2130. package/dist/src/cli/command-path-policy.js.map +0 -1
  2131. package/dist/src/cli/command-startup-policy.js.map +0 -1
  2132. package/dist/src/cli/commands/agent/interactive.js.map +0 -1
  2133. package/dist/src/cli/commands/agent/sessions.js.map +0 -1
  2134. package/dist/src/cli/commands/agent/stream-renderer.js.map +0 -1
  2135. package/dist/src/cli/commands/agent.js.map +0 -1
  2136. package/dist/src/cli/commands/agents.js.map +0 -1
  2137. package/dist/src/cli/commands/auth.js.map +0 -1
  2138. package/dist/src/cli/commands/browser-cli-helpers.js.map +0 -1
  2139. package/dist/src/cli/commands/browser.js.map +0 -1
  2140. package/dist/src/cli/commands/channels.js.map +0 -1
  2141. package/dist/src/cli/commands/config.js.map +0 -1
  2142. package/dist/src/cli/commands/connectors.js.map +0 -1
  2143. package/dist/src/cli/commands/doctor/checks/channel-config.js.map +0 -1
  2144. package/dist/src/cli/commands/doctor/checks/channel-pairing-pending.js.map +0 -1
  2145. package/dist/src/cli/commands/doctor/checks/channel-plugins.js.map +0 -1
  2146. package/dist/src/cli/commands/doctor/checks/config-health.js.map +0 -1
  2147. package/dist/src/cli/commands/doctor/checks/database-schema.js.map +0 -1
  2148. package/dist/src/cli/commands/doctor/checks/gateway-health.js.map +0 -1
  2149. package/dist/src/cli/commands/doctor/checks/gateway-service.js.map +0 -1
  2150. package/dist/src/cli/commands/doctor/checks/migrations.js.map +0 -1
  2151. package/dist/src/cli/commands/doctor/checks/node-version.js.map +0 -1
  2152. package/dist/src/cli/commands/doctor/checks/provider-auth.js.map +0 -1
  2153. package/dist/src/cli/commands/doctor/checks/security-audit.js.map +0 -1
  2154. package/dist/src/cli/commands/doctor/checks/session-integrity.js.map +0 -1
  2155. package/dist/src/cli/commands/doctor/checks/state-integrity.js.map +0 -1
  2156. package/dist/src/cli/commands/doctor/checks/version-check.js.map +0 -1
  2157. package/dist/src/cli/commands/doctor/checks/workspace-status.js.map +0 -1
  2158. package/dist/src/cli/commands/doctor/flow.js.map +0 -1
  2159. package/dist/src/cli/commands/doctor/format.js.map +0 -1
  2160. package/dist/src/cli/commands/doctor/index.js.map +0 -1
  2161. package/dist/src/cli/commands/extension-create.js.map +0 -1
  2162. package/dist/src/cli/commands/extension-dev.js.map +0 -1
  2163. package/dist/src/cli/commands/extension-marketplace.js.map +0 -1
  2164. package/dist/src/cli/commands/extension-pack.js.map +0 -1
  2165. package/dist/src/cli/commands/extension.js.map +0 -1
  2166. package/dist/src/cli/commands/gateway/call.js.map +0 -1
  2167. package/dist/src/cli/commands/gateway/health.js.map +0 -1
  2168. package/dist/src/cli/commands/gateway/lifecycle-core.js.map +0 -1
  2169. package/dist/src/cli/commands/gateway/lifecycle.js.map +0 -1
  2170. package/dist/src/cli/commands/gateway/logs.js.map +0 -1
  2171. package/dist/src/cli/commands/gateway/probe.js.map +0 -1
  2172. package/dist/src/cli/commands/gateway/restart-health.js.map +0 -1
  2173. package/dist/src/cli/commands/gateway/restart.js.map +0 -1
  2174. package/dist/src/cli/commands/gateway/run-foreground.js.map +0 -1
  2175. package/dist/src/cli/commands/gateway/service.js.map +0 -1
  2176. package/dist/src/cli/commands/gateway/shared.js.map +0 -1
  2177. package/dist/src/cli/commands/gateway/status.js.map +0 -1
  2178. package/dist/src/cli/commands/gateway/stop.js.map +0 -1
  2179. package/dist/src/cli/commands/gateway/subcommands.js.map +0 -1
  2180. package/dist/src/cli/commands/gateway/token.js.map +0 -1
  2181. package/dist/src/cli/commands/gateway-ssh-tunnel.js.map +0 -1
  2182. package/dist/src/cli/commands/gateway.js.map +0 -1
  2183. package/dist/src/cli/commands/goal.js.map +0 -1
  2184. package/dist/src/cli/commands/image.js.map +0 -1
  2185. package/dist/src/cli/commands/init.js.map +0 -1
  2186. package/dist/src/cli/commands/logs.js.map +0 -1
  2187. package/dist/src/cli/commands/models.js.map +0 -1
  2188. package/dist/src/cli/commands/onboard/channels/index.js.map +0 -1
  2189. package/dist/src/cli/commands/onboard/channels/onboard-to-configurator.js.map +0 -1
  2190. package/dist/src/cli/commands/onboard/channels/registry.js.map +0 -1
  2191. package/dist/src/cli/commands/onboard/channels/wizard-to-configurator.js.map +0 -1
  2192. package/dist/src/cli/commands/onboard/gateway.js.map +0 -1
  2193. package/dist/src/cli/commands/onboard/model.js.map +0 -1
  2194. package/dist/src/cli/commands/onboard.js.map +0 -1
  2195. package/dist/src/cli/commands/profile.js.map +0 -1
  2196. package/dist/src/cli/commands/project.js.map +0 -1
  2197. package/dist/src/cli/commands/providers.js.map +0 -1
  2198. package/dist/src/cli/commands/resume.js.map +0 -1
  2199. package/dist/src/cli/commands/search.js.map +0 -1
  2200. package/dist/src/cli/commands/session/actions.js.map +0 -1
  2201. package/dist/src/cli/commands/session/utils.js.map +0 -1
  2202. package/dist/src/cli/commands/session.js.map +0 -1
  2203. package/dist/src/cli/commands/setup-shared/output.js.map +0 -1
  2204. package/dist/src/cli/commands/setup-shared/prompts.js.map +0 -1
  2205. package/dist/src/cli/commands/setup-shared/runner.js.map +0 -1
  2206. package/dist/src/cli/commands/setup-shared/types.js.map +0 -1
  2207. package/dist/src/cli/commands/setup.js.map +0 -1
  2208. package/dist/src/cli/commands/skills-test.js.map +0 -1
  2209. package/dist/src/cli/commands/skills.js.map +0 -1
  2210. package/dist/src/cli/commands/tailscale.js.map +0 -1
  2211. package/dist/src/cli/commands/tui-runner.js.map +0 -1
  2212. package/dist/src/cli/commands/tui.js.map +0 -1
  2213. package/dist/src/cli/commands/tunnel.js.map +0 -1
  2214. package/dist/src/cli/commands/update.js.map +0 -1
  2215. package/dist/src/cli/commands/voice.js.map +0 -1
  2216. package/dist/src/cli/context.js.map +0 -1
  2217. package/dist/src/cli/extension-cli-register.js.map +0 -1
  2218. package/dist/src/cli/gateway-run-argv.js.map +0 -1
  2219. package/dist/src/cli/gateway-run-fast-path.js.map +0 -1
  2220. package/dist/src/cli/index.js.map +0 -1
  2221. package/dist/src/cli/registry.js.map +0 -1
  2222. package/dist/src/cli/templates.js.map +0 -1
  2223. package/dist/src/cli/utils/colors.js.map +0 -1
  2224. package/dist/src/cli/utils/gateway-client-options.js.map +0 -1
  2225. package/dist/src/cli/utils/gateway-client.js.map +0 -1
  2226. package/dist/src/cli/utils/init-workspace-core.js.map +0 -1
  2227. package/dist/src/cli/utils/init-workspace.js.map +0 -1
  2228. package/dist/src/cli/utils/oauth-login.js.map +0 -1
  2229. package/dist/src/cli/utils/oauth-providers.js.map +0 -1
  2230. package/dist/src/cli/utils/session.js.map +0 -1
  2231. package/dist/src/commands/agents.config.js.map +0 -1
  2232. package/dist/src/config/agent-profile.js.map +0 -1
  2233. package/dist/src/config/agent-typed-models.js.map +0 -1
  2234. package/dist/src/config/commands.flags.js.map +0 -1
  2235. package/dist/src/config/default-model.js.map +0 -1
  2236. package/dist/src/config/diff.js.map +0 -1
  2237. package/dist/src/config/gateway-bind.js.map +0 -1
  2238. package/dist/src/config/index.js.map +0 -1
  2239. package/dist/src/config/loader.js.map +0 -1
  2240. package/dist/src/config/mcp-config-normalize.js.map +0 -1
  2241. package/dist/src/config/model-input.js.map +0 -1
  2242. package/dist/src/config/models-json.js.map +0 -1
  2243. package/dist/src/config/paths-state.js.map +0 -1
  2244. package/dist/src/config/paths.js.map +0 -1
  2245. package/dist/src/config/profile.js.map +0 -1
  2246. package/dist/src/config/public-url.js.map +0 -1
  2247. package/dist/src/config/reload.js.map +0 -1
  2248. package/dist/src/config/resolve-config-value.js.map +0 -1
  2249. package/dist/src/config/rules.js.map +0 -1
  2250. package/dist/src/config/runtime-overrides.js.map +0 -1
  2251. package/dist/src/config/schema.js.map +0 -1
  2252. package/dist/src/config/validate-channel-configs.js.map +0 -1
  2253. package/dist/src/config/voice.js.map +0 -1
  2254. package/dist/src/config/web-patch.js.map +0 -1
  2255. package/dist/src/config/workspace-defaults.js.map +0 -1
  2256. package/dist/src/config/workspace-dirs.js.map +0 -1
  2257. package/dist/src/config/workspace-path-helpers.js.map +0 -1
  2258. package/dist/src/config/workspace-path.js.map +0 -1
  2259. package/dist/src/connectors/approval.js.map +0 -1
  2260. package/dist/src/connectors/auth-provider-registry.js.map +0 -1
  2261. package/dist/src/connectors/builtin-catalog.js.map +0 -1
  2262. package/dist/src/connectors/catalog.js.map +0 -1
  2263. package/dist/src/connectors/composio-catalog.js.map +0 -1
  2264. package/dist/src/connectors/composio-logo.js.map +0 -1
  2265. package/dist/src/connectors/composio-sessions.js.map +0 -1
  2266. package/dist/src/connectors/composio-triggers.js.map +0 -1
  2267. package/dist/src/connectors/composio.js.map +0 -1
  2268. package/dist/src/connectors/connector-memory-sync.js.map +0 -1
  2269. package/dist/src/connectors/health.js.map +0 -1
  2270. package/dist/src/connectors/install.js.map +0 -1
  2271. package/dist/src/connectors/instances.js.map +0 -1
  2272. package/dist/src/connectors/integration-strategy.js.map +0 -1
  2273. package/dist/src/connectors/lifecycle.js.map +0 -1
  2274. package/dist/src/connectors/materialize.js.map +0 -1
  2275. package/dist/src/connectors/policy.js.map +0 -1
  2276. package/dist/src/connectors/providers.js.map +0 -1
  2277. package/dist/src/connectors/registries/modelscope.js.map +0 -1
  2278. package/dist/src/connectors/registries/official-mcp.js.map +0 -1
  2279. package/dist/src/connectors/registries/search.js.map +0 -1
  2280. package/dist/src/connectors/registries/smithery.js.map +0 -1
  2281. package/dist/src/connectors/runtime-adapter-registry.js.map +0 -1
  2282. package/dist/src/connectors/secret-store.js.map +0 -1
  2283. package/dist/src/connectors/setup-secrets.js.map +0 -1
  2284. package/dist/src/connectors/supervisor.js.map +0 -1
  2285. package/dist/src/connectors/usage.js.map +0 -1
  2286. package/dist/src/connectors/workflow-preflight.js.map +0 -1
  2287. package/dist/src/daemon/constants.js.map +0 -1
  2288. package/dist/src/daemon/install-plan.js.map +0 -1
  2289. package/dist/src/daemon/launchd.js.map +0 -1
  2290. package/dist/src/daemon/schtasks.js.map +0 -1
  2291. package/dist/src/daemon/service-audit.js.map +0 -1
  2292. package/dist/src/daemon/service.js.map +0 -1
  2293. package/dist/src/daemon/systemd.js.map +0 -1
  2294. package/dist/src/document-understanding/extract.js.map +0 -1
  2295. package/dist/src/errors/index.js.map +0 -1
  2296. package/dist/src/extensions/activation-context.js.map +0 -1
  2297. package/dist/src/extensions/activation-planner.js.map +0 -1
  2298. package/dist/src/extensions/api.js.map +0 -1
  2299. package/dist/src/extensions/bundle-mcp.js.map +0 -1
  2300. package/dist/src/extensions/bundled-extension-activation.js.map +0 -1
  2301. package/dist/src/extensions/diagnostics.js.map +0 -1
  2302. package/dist/src/extensions/discover-extensions.js.map +0 -1
  2303. package/dist/src/extensions/engine-check.js.map +0 -1
  2304. package/dist/src/extensions/extension-metadata-snapshot.js.map +0 -1
  2305. package/dist/src/extensions/extension-registry-impl.js.map +0 -1
  2306. package/dist/src/extensions/health.js.map +0 -1
  2307. package/dist/src/extensions/hooks.js.map +0 -1
  2308. package/dist/src/extensions/index.js.map +0 -1
  2309. package/dist/src/extensions/install-transaction.js.map +0 -1
  2310. package/dist/src/extensions/install.js.map +0 -1
  2311. package/dist/src/extensions/loader.js.map +0 -1
  2312. package/dist/src/extensions/lockfile.js.map +0 -1
  2313. package/dist/src/extensions/manifest-registry.js.map +0 -1
  2314. package/dist/src/extensions/marketplace.js.map +0 -1
  2315. package/dist/src/extensions/media-provider-contracts.js.map +0 -1
  2316. package/dist/src/extensions/normalize-manifest.js.map +0 -1
  2317. package/dist/src/extensions/onboard-helpers.js.map +0 -1
  2318. package/dist/src/extensions/package-contract.js.map +0 -1
  2319. package/dist/src/extensions/sdk/channel-entry.js.map +0 -1
  2320. package/dist/src/extensions/sdk/channel-helpers.js.map +0 -1
  2321. package/dist/src/extensions/sdk/index.js.map +0 -1
  2322. package/dist/src/extensions/sdk/lazy.js.map +0 -1
  2323. package/dist/src/extensions/sdk/testing.js.map +0 -1
  2324. package/dist/src/extensions/security.js.map +0 -1
  2325. package/dist/src/extensions/slots.js.map +0 -1
  2326. package/dist/src/extensions/speech-provider-contracts.js.map +0 -1
  2327. package/dist/src/extensions/store-zip-limits.js.map +0 -1
  2328. package/dist/src/extensions/typed-event-bus.js.map +0 -1
  2329. package/dist/src/extensions/types/hooks.js.map +0 -1
  2330. package/dist/src/extensions/types/providers.js.map +0 -1
  2331. package/dist/src/extensions/update.js.map +0 -1
  2332. package/dist/src/extensions/when-context.js.map +0 -1
  2333. package/dist/src/extensions/when-expression.js.map +0 -1
  2334. package/dist/src/gateway/agent-builtin-tools.js.map +0 -1
  2335. package/dist/src/gateway/agent-run-relay.js.map +0 -1
  2336. package/dist/src/gateway/agents-admin.js.map +0 -1
  2337. package/dist/src/gateway/auth.js.map +0 -1
  2338. package/dist/src/gateway/capability-presets-admin.js.map +0 -1
  2339. package/dist/src/gateway/chat-limits.js.map +0 -1
  2340. package/dist/src/gateway/chat-stream/mapper.js.map +0 -1
  2341. package/dist/src/gateway/clarify-bridge.js.map +0 -1
  2342. package/dist/src/gateway/clarify-runtime.js.map +0 -1
  2343. package/dist/src/gateway/client-ip.js.map +0 -1
  2344. package/dist/src/gateway/config-tools-web.js.map +0 -1
  2345. package/dist/src/gateway/credential.js.map +0 -1
  2346. package/dist/src/gateway/discovery/mdns.js.map +0 -1
  2347. package/dist/src/gateway/dreaming-automation-reconciler.js.map +0 -1
  2348. package/dist/src/gateway/ensure-network-cors.js.map +0 -1
  2349. package/dist/src/gateway/file-path-classifier.js.map +0 -1
  2350. package/dist/src/gateway/file-reference-registry.js.map +0 -1
  2351. package/dist/src/gateway/global-defaults-admin.js.map +0 -1
  2352. package/dist/src/gateway/heartbeat/service.js.map +0 -1
  2353. package/dist/src/gateway/hono/app.js.map +0 -1
  2354. package/dist/src/gateway/hono/lib/agent-model.js.map +0 -1
  2355. package/dist/src/gateway/hono/lib/config-payload.js.map +0 -1
  2356. package/dist/src/gateway/hono/lib/extension-assets.js.map +0 -1
  2357. package/dist/src/gateway/hono/lib/extension-store.js.map +0 -1
  2358. package/dist/src/gateway/hono/lib/mask-secret-length.js.map +0 -1
  2359. package/dist/src/gateway/hono/lib/route-logger.js.map +0 -1
  2360. package/dist/src/gateway/hono/lib/safe-providers-config.js.map +0 -1
  2361. package/dist/src/gateway/hono/lib/safe-voice-config.js.map +0 -1
  2362. package/dist/src/gateway/hono/lib/startup-unavailable.js.map +0 -1
  2363. package/dist/src/gateway/hono/lib/static-ui.js.map +0 -1
  2364. package/dist/src/gateway/hono/middleware/auth.js.map +0 -1
  2365. package/dist/src/gateway/hono/middleware/log-context.js.map +0 -1
  2366. package/dist/src/gateway/hono/middleware/logger.js.map +0 -1
  2367. package/dist/src/gateway/hono/middleware/route-errors.js.map +0 -1
  2368. package/dist/src/gateway/hono/middleware/scopes.js.map +0 -1
  2369. package/dist/src/gateway/hono/middleware/strict-rate-limit.js.map +0 -1
  2370. package/dist/src/gateway/hono/oauth-async.js.map +0 -1
  2371. package/dist/src/gateway/hono/oauth.js.map +0 -1
  2372. package/dist/src/gateway/hono/routes/activity.js.map +0 -1
  2373. package/dist/src/gateway/hono/routes/agent-stream.js.map +0 -1
  2374. package/dist/src/gateway/hono/routes/agents.js.map +0 -1
  2375. package/dist/src/gateway/hono/routes/ai-assist.js.map +0 -1
  2376. package/dist/src/gateway/hono/routes/auth-registry-extensions.js.map +0 -1
  2377. package/dist/src/gateway/hono/routes/browser-install.js.map +0 -1
  2378. package/dist/src/gateway/hono/routes/browser.js.map +0 -1
  2379. package/dist/src/gateway/hono/routes/capabilities.js.map +0 -1
  2380. package/dist/src/gateway/hono/routes/capability-presets.js.map +0 -1
  2381. package/dist/src/gateway/hono/routes/channels.js.map +0 -1
  2382. package/dist/src/gateway/hono/routes/commands-skills.js.map +0 -1
  2383. package/dist/src/gateway/hono/routes/config-patch/agents.js.map +0 -1
  2384. package/dist/src/gateway/hono/routes/config-patch/channels.js.map +0 -1
  2385. package/dist/src/gateway/hono/routes/config-patch/gateway.js.map +0 -1
  2386. package/dist/src/gateway/hono/routes/config-patch/misc.js.map +0 -1
  2387. package/dist/src/gateway/hono/routes/config-patch/result.js.map +0 -1
  2388. package/dist/src/gateway/hono/routes/config.js.map +0 -1
  2389. package/dist/src/gateway/hono/routes/connectors.js.map +0 -1
  2390. package/dist/src/gateway/hono/routes/doctor.js.map +0 -1
  2391. package/dist/src/gateway/hono/routes/dreaming.js.map +0 -1
  2392. package/dist/src/gateway/hono/routes/exposure.js.map +0 -1
  2393. package/dist/src/gateway/hono/routes/extension-gateway.js.map +0 -1
  2394. package/dist/src/gateway/hono/routes/global-defaults.js.map +0 -1
  2395. package/dist/src/gateway/hono/routes/goals.js.map +0 -1
  2396. package/dist/src/gateway/hono/routes/home.js.map +0 -1
  2397. package/dist/src/gateway/hono/routes/host-fs.js.map +0 -1
  2398. package/dist/src/gateway/hono/routes/index.js.map +0 -1
  2399. package/dist/src/gateway/hono/routes/lazy-bundles.js.map +0 -1
  2400. package/dist/src/gateway/hono/routes/lazy-fallback.js.map +0 -1
  2401. package/dist/src/gateway/hono/routes/local-apps.js.map +0 -1
  2402. package/dist/src/gateway/hono/routes/logs.js.map +0 -1
  2403. package/dist/src/gateway/hono/routes/mcp.js.map +0 -1
  2404. package/dist/src/gateway/hono/routes/media.js.map +0 -1
  2405. package/dist/src/gateway/hono/routes/memory.js.map +0 -1
  2406. package/dist/src/gateway/hono/routes/migrations.js.map +0 -1
  2407. package/dist/src/gateway/hono/routes/mobile.js.map +0 -1
  2408. package/dist/src/gateway/hono/routes/models.js.map +0 -1
  2409. package/dist/src/gateway/hono/routes/notes.js.map +0 -1
  2410. package/dist/src/gateway/hono/routes/projects.js.map +0 -1
  2411. package/dist/src/gateway/hono/routes/public-gateway.js.map +0 -1
  2412. package/dist/src/gateway/hono/routes/search.js.map +0 -1
  2413. package/dist/src/gateway/hono/routes/sessions.js.map +0 -1
  2414. package/dist/src/gateway/hono/routes/shares.js.map +0 -1
  2415. package/dist/src/gateway/hono/routes/site-shares.js.map +0 -1
  2416. package/dist/src/gateway/hono/routes/status.js.map +0 -1
  2417. package/dist/src/gateway/hono/routes/tui.js.map +0 -1
  2418. package/dist/src/gateway/hono/routes/tunnel.js.map +0 -1
  2419. package/dist/src/gateway/hono/routes/update.js.map +0 -1
  2420. package/dist/src/gateway/hono/routes/voice.js.map +0 -1
  2421. package/dist/src/gateway/hono/routes/work-discovery.js.map +0 -1
  2422. package/dist/src/gateway/hono/routes/workflows.js.map +0 -1
  2423. package/dist/src/gateway/hono/routes/workspace.js.map +0 -1
  2424. package/dist/src/gateway/hono/routes/you.js.map +0 -1
  2425. package/dist/src/gateway/hono/sse-json.js.map +0 -1
  2426. package/dist/src/gateway/hono/sse.js.map +0 -1
  2427. package/dist/src/gateway/host.js.map +0 -1
  2428. package/dist/src/gateway/image-capabilities.js.map +0 -1
  2429. package/dist/src/gateway/listen.js.map +0 -1
  2430. package/dist/src/gateway/lock.js.map +0 -1
  2431. package/dist/src/gateway/ports.js.map +0 -1
  2432. package/dist/src/gateway/protocol.js.map +0 -1
  2433. package/dist/src/gateway/public-url.js.map +0 -1
  2434. package/dist/src/gateway/rate-limit/auth-policy.js.map +0 -1
  2435. package/dist/src/gateway/rate-limit/buckets.js.map +0 -1
  2436. package/dist/src/gateway/rate-limit/env-flags.js.map +0 -1
  2437. package/dist/src/gateway/resolve-channel-connect-defer.js.map +0 -1
  2438. package/dist/src/gateway/resolve-webchat-session-key.js.map +0 -1
  2439. package/dist/src/gateway/respawn.js.map +0 -1
  2440. package/dist/src/gateway/run-loop.js.map +0 -1
  2441. package/dist/src/gateway/runtime-config.js.map +0 -1
  2442. package/dist/src/gateway/security/audit.js.map +0 -1
  2443. package/dist/src/gateway/security/csp.js.map +0 -1
  2444. package/dist/src/gateway/security/dangerous-tools.js.map +0 -1
  2445. package/dist/src/gateway/security/external-content.js.map +0 -1
  2446. package/dist/src/gateway/security/known-weak-secrets.js.map +0 -1
  2447. package/dist/src/gateway/security/loopback.js.map +0 -1
  2448. package/dist/src/gateway/security/operator-scopes.js.map +0 -1
  2449. package/dist/src/gateway/security/origin-check.js.map +0 -1
  2450. package/dist/src/gateway/security/preauth-connection-budget.js.map +0 -1
  2451. package/dist/src/gateway/security/secret-equal.js.map +0 -1
  2452. package/dist/src/gateway/server-tailscale.js.map +0 -1
  2453. package/dist/src/gateway/server.js.map +0 -1
  2454. package/dist/src/gateway/service/agent-runner.js.map +0 -1
  2455. package/dist/src/gateway/service/config-coordinator.js.map +0 -1
  2456. package/dist/src/gateway/service/marketplace-service.js.map +0 -1
  2457. package/dist/src/gateway/service/run-gateway-agent.js.map +0 -1
  2458. package/dist/src/gateway/service/session-chat-ids.js.map +0 -1
  2459. package/dist/src/gateway/service/sessions-api.js.map +0 -1
  2460. package/dist/src/gateway/service/sse-hub.js.map +0 -1
  2461. package/dist/src/gateway/service.js.map +0 -1
  2462. package/dist/src/gateway/session-reset-service.js.map +0 -1
  2463. package/dist/src/gateway/startup-readiness.js.map +0 -1
  2464. package/dist/src/gateway/startup-trace.js.map +0 -1
  2465. package/dist/src/gateway/tailscale-auth.js.map +0 -1
  2466. package/dist/src/gateway/tailscale-lifecycle.js.map +0 -1
  2467. package/dist/src/gateway/tls-server.js.map +0 -1
  2468. package/dist/src/gateway/trusted-proxy.js.map +0 -1
  2469. package/dist/src/gateway/user-turn-input.js.map +0 -1
  2470. package/dist/src/gateway/workspace-editor-path.js.map +0 -1
  2471. package/dist/src/gateway/workspace-file-search.js.map +0 -1
  2472. package/dist/src/gateway/workspace-fs-file-list.js.map +0 -1
  2473. package/dist/src/gateway/workspace-heartbeat-path.js.map +0 -1
  2474. package/dist/src/gateway/workspace-ripgrep.js.map +0 -1
  2475. package/dist/src/gateway/ws-security.js.map +0 -1
  2476. package/dist/src/generated/bundled-image-generation-providers.js.map +0 -1
  2477. package/dist/src/goals/goal-contract-draft.js.map +0 -1
  2478. package/dist/src/goals/goal-evidence-review.js.map +0 -1
  2479. package/dist/src/goals/goal-notifications.js.map +0 -1
  2480. package/dist/src/goals/goal-queue-store.js.map +0 -1
  2481. package/dist/src/goals/goal-runner.js.map +0 -1
  2482. package/dist/src/goals/goal-service.js.map +0 -1
  2483. package/dist/src/goals/goal-store.js.map +0 -1
  2484. package/dist/src/goals/goal-workflow-judge.js.map +0 -1
  2485. package/dist/src/heartbeat/active-hours.js.map +0 -1
  2486. package/dist/src/heartbeat/content-check.js.map +0 -1
  2487. package/dist/src/heartbeat/event-prompt.js.map +0 -1
  2488. package/dist/src/heartbeat/tokens.js.map +0 -1
  2489. package/dist/src/heartbeat/wake.js.map +0 -1
  2490. package/dist/src/i18n/format.js.map +0 -1
  2491. package/dist/src/i18n/goals-bundle.js.map +0 -1
  2492. package/dist/src/i18n/locale.js.map +0 -1
  2493. package/dist/src/i18n/locales/goals.en.js.map +0 -1
  2494. package/dist/src/i18n/locales/goals.zh.js.map +0 -1
  2495. package/dist/src/i18n/locales/share-tool.en.js.map +0 -1
  2496. package/dist/src/i18n/locales/share-tool.zh.js.map +0 -1
  2497. package/dist/src/i18n/share-tool-bundle.js.map +0 -1
  2498. package/dist/src/index.js.map +0 -1
  2499. package/dist/src/infra/brew.js.map +0 -1
  2500. package/dist/src/infra/bus/queue.js.map +0 -1
  2501. package/dist/src/infra/debounce.js.map +0 -1
  2502. package/dist/src/infra/exec.js.map +0 -1
  2503. package/dist/src/infra/gateway-process-argv.js.map +0 -1
  2504. package/dist/src/infra/gateway-processes.js.map +0 -1
  2505. package/dist/src/infra/host-env-security-policy.js.map +0 -1
  2506. package/dist/src/infra/host-env-security.js.map +0 -1
  2507. package/dist/src/infra/http-proxy-env.js.map +0 -1
  2508. package/dist/src/infra/is-main.js.map +0 -1
  2509. package/dist/src/infra/json-utf8-bytes.js.map +0 -1
  2510. package/dist/src/infra/node-sqlite.js.map +0 -1
  2511. package/dist/src/infra/package-json.js.map +0 -1
  2512. package/dist/src/infra/package-update-steps.js.map +0 -1
  2513. package/dist/src/infra/path-env.js.map +0 -1
  2514. package/dist/src/infra/path-prepend.js.map +0 -1
  2515. package/dist/src/infra/ports.js.map +0 -1
  2516. package/dist/src/infra/rate-limit/failure-limiter.js.map +0 -1
  2517. package/dist/src/infra/rate-limit/keyed-store.js.map +0 -1
  2518. package/dist/src/infra/rate-limit/rate-limiter.js.map +0 -1
  2519. package/dist/src/infra/restart.js.map +0 -1
  2520. package/dist/src/infra/retry.js.map +0 -1
  2521. package/dist/src/infra/run-command.js.map +0 -1
  2522. package/dist/src/infra/sqlite-errors.js.map +0 -1
  2523. package/dist/src/infra/ssh-tunnel.js.map +0 -1
  2524. package/dist/src/infra/stable-node-path.js.map +0 -1
  2525. package/dist/src/infra/tailscale.js.map +0 -1
  2526. package/dist/src/infra/undici-fetch.js.map +0 -1
  2527. package/dist/src/infra/unhandled-rejections.js.map +0 -1
  2528. package/dist/src/infra/update-channels.js.map +0 -1
  2529. package/dist/src/infra/update-check.js.map +0 -1
  2530. package/dist/src/infra/update-global.js.map +0 -1
  2531. package/dist/src/infra/update-lock.js.map +0 -1
  2532. package/dist/src/infra/update-log.js.map +0 -1
  2533. package/dist/src/infra/update-restart.js.map +0 -1
  2534. package/dist/src/infra/update-runner.js.map +0 -1
  2535. package/dist/src/infra/update-startup.js.map +0 -1
  2536. package/dist/src/infra/warning-filter.js.map +0 -1
  2537. package/dist/src/infra/write-file-atomic.js.map +0 -1
  2538. package/dist/src/knowledge/connected-knowledge-pipeline.js.map +0 -1
  2539. package/dist/src/knowledge/coordinator.js.map +0 -1
  2540. package/dist/src/knowledge/ingestion-service.js.map +0 -1
  2541. package/dist/src/local-apps/acceptance.js.map +0 -1
  2542. package/dist/src/local-apps/preview-runtime-bridge.js.map +0 -1
  2543. package/dist/src/local-apps/runtime-entry.js.map +0 -1
  2544. package/dist/src/local-apps/scaffold.js.map +0 -1
  2545. package/dist/src/local-apps/service.js.map +0 -1
  2546. package/dist/src/local-apps/store.js.map +0 -1
  2547. package/dist/src/markdown/chunk.js.map +0 -1
  2548. package/dist/src/markdown/code-spans.js.map +0 -1
  2549. package/dist/src/markdown/fences.js.map +0 -1
  2550. package/dist/src/markdown/frontmatter.js.map +0 -1
  2551. package/dist/src/markdown/ir.js.map +0 -1
  2552. package/dist/src/markdown/render.js.map +0 -1
  2553. package/dist/src/markdown/tables.js.map +0 -1
  2554. package/dist/src/mcp/channel-bridge.js.map +0 -1
  2555. package/dist/src/mcp/channel-server.js.map +0 -1
  2556. package/dist/src/mcp/channel-shared.js.map +0 -1
  2557. package/dist/src/mcp/channel-tools.js.map +0 -1
  2558. package/dist/src/mcp/gateway-http-client.js.map +0 -1
  2559. package/dist/src/media/media-reference.js.map +0 -1
  2560. package/dist/src/media/paths.js.map +0 -1
  2561. package/dist/src/media/session-references.js.map +0 -1
  2562. package/dist/src/media/store.js.map +0 -1
  2563. package/dist/src/media/uri.js.map +0 -1
  2564. package/dist/src/media-shared/http/api-key-rotation.js.map +0 -1
  2565. package/dist/src/media-shared/http/deadline.js.map +0 -1
  2566. package/dist/src/media-shared/http/private-network.js.map +0 -1
  2567. package/dist/src/media-shared/http/provider-http-errors.js.map +0 -1
  2568. package/dist/src/media-shared/http/provider-http.js.map +0 -1
  2569. package/dist/src/media-shared/http/resolve-provider-http-request-config.js.map +0 -1
  2570. package/dist/src/media-shared/http/ssrf-guard.js.map +0 -1
  2571. package/dist/src/media-shared/http/test-helpers/mock-server.js.map +0 -1
  2572. package/dist/src/media-understanding/audio-transcription-runner.js.map +0 -1
  2573. package/dist/src/media-understanding/openai-compatible-audio.js.map +0 -1
  2574. package/dist/src/media-understanding/registry.js.map +0 -1
  2575. package/dist/src/media-understanding/resolve-entries.js.map +0 -1
  2576. package/dist/src/media-understanding/runner.js.map +0 -1
  2577. package/dist/src/migrations/config/default-capability-preset.js.map +0 -1
  2578. package/dist/src/migrations/registry.js.map +0 -1
  2579. package/dist/src/migrations/runner.js.map +0 -1
  2580. package/dist/src/mobile/notification-service.js.map +0 -1
  2581. package/dist/src/mobile/notification-store.js.map +0 -1
  2582. package/dist/src/mobile/notification-types.js.map +0 -1
  2583. package/dist/src/notes/agent-context.js.map +0 -1
  2584. package/dist/src/notes/attachment-ref.js.map +0 -1
  2585. package/dist/src/notes/note-attachment-sync.js.map +0 -1
  2586. package/dist/src/notes/note-index-meta.js.map +0 -1
  2587. package/dist/src/notes/note-markdown.js.map +0 -1
  2588. package/dist/src/notes/paths.js.map +0 -1
  2589. package/dist/src/notes/service.js.map +0 -1
  2590. package/dist/src/notes/store.js.map +0 -1
  2591. package/dist/src/package-version.js.map +0 -1
  2592. package/dist/src/pets/factory.js.map +0 -1
  2593. package/dist/src/pets/manifest.js.map +0 -1
  2594. package/dist/src/pets/validator.js.map +0 -1
  2595. package/dist/src/process/kill-tree.js.map +0 -1
  2596. package/dist/src/project-trust/trust-store.js.map +0 -1
  2597. package/dist/src/projects/automation-bind.js.map +0 -1
  2598. package/dist/src/projects/goal-bind.js.map +0 -1
  2599. package/dist/src/projects/memory-bind.js.map +0 -1
  2600. package/dist/src/projects/project-agent-suggestion.js.map +0 -1
  2601. package/dist/src/projects/project-agent.js.map +0 -1
  2602. package/dist/src/projects/project-kind.js.map +0 -1
  2603. package/dist/src/projects/project-loop.js.map +0 -1
  2604. package/dist/src/projects/project-service.js.map +0 -1
  2605. package/dist/src/projects/project-store.js.map +0 -1
  2606. package/dist/src/projects/session-bind.js.map +0 -1
  2607. package/dist/src/projects/workflow-bind.js.map +0 -1
  2608. package/dist/src/projects/workspace-project.js.map +0 -1
  2609. package/dist/src/projects/workspace.js.map +0 -1
  2610. package/dist/src/providers/auth-runtime/auth-profile-store.js.map +0 -1
  2611. package/dist/src/providers/auth-runtime/is-configured.js.map +0 -1
  2612. package/dist/src/providers/auth-runtime/oauth.js.map +0 -1
  2613. package/dist/src/providers/auth-runtime/resolve-api-key.js.map +0 -1
  2614. package/dist/src/providers/auth-runtime/resolve-auth.js.map +0 -1
  2615. package/dist/src/providers/constants.js.map +0 -1
  2616. package/dist/src/providers/domestic-presets.js.map +0 -1
  2617. package/dist/src/providers/env-keys.js.map +0 -1
  2618. package/dist/src/providers/extension-stream-bridge.js.map +0 -1
  2619. package/dist/src/providers/index.js.map +0 -1
  2620. package/dist/src/providers/model-call.js.map +0 -1
  2621. package/dist/src/providers/model-discovery.js.map +0 -1
  2622. package/dist/src/providers/model-registry.js.map +0 -1
  2623. package/dist/src/providers/model-supplements.js.map +0 -1
  2624. package/dist/src/providers/plugin-registry.js.map +0 -1
  2625. package/dist/src/providers/presentation.js.map +0 -1
  2626. package/dist/src/remote-access/exposure-guards.js.map +0 -1
  2627. package/dist/src/remote-access/exposure-manager.js.map +0 -1
  2628. package/dist/src/review/review-git.js.map +0 -1
  2629. package/dist/src/review/review-types.js.map +0 -1
  2630. package/dist/src/routing/account-id.js.map +0 -1
  2631. package/dist/src/routing/agent-session-key.js.map +0 -1
  2632. package/dist/src/routing/bindings.js.map +0 -1
  2633. package/dist/src/routing/index.js.map +0 -1
  2634. package/dist/src/routing/resolve-route.js.map +0 -1
  2635. package/dist/src/routing/resolve-tui-session-key.js.map +0 -1
  2636. package/dist/src/routing/session-key-utils.js.map +0 -1
  2637. package/dist/src/routing/session-key.js.map +0 -1
  2638. package/dist/src/session/abort-cutoff.js.map +0 -1
  2639. package/dist/src/session/chat-export.js.map +0 -1
  2640. package/dist/src/session/client-history.js.map +0 -1
  2641. package/dist/src/session/compaction-checkpoints.js.map +0 -1
  2642. package/dist/src/session/config-store.js.map +0 -1
  2643. package/dist/src/session/init-session-turn.js.map +0 -1
  2644. package/dist/src/session/lifecycle-timestamps.js.map +0 -1
  2645. package/dist/src/session/load-jsonl-entries.js.map +0 -1
  2646. package/dist/src/session/manager.js.map +0 -1
  2647. package/dist/src/session/patch-metadata.js.map +0 -1
  2648. package/dist/src/session/reset-policy.js.map +0 -1
  2649. package/dist/src/session/reset-triggers.js.map +0 -1
  2650. package/dist/src/session/reset-type.js.map +0 -1
  2651. package/dist/src/session/resolve-session.js.map +0 -1
  2652. package/dist/src/session/session-context-for-llm.js.map +0 -1
  2653. package/dist/src/session/session-id.js.map +0 -1
  2654. package/dist/src/session/session-title.js.map +0 -1
  2655. package/dist/src/session/session-workspace.js.map +0 -1
  2656. package/dist/src/session/store.js.map +0 -1
  2657. package/dist/src/session/stored-rows-to-file-entries.js.map +0 -1
  2658. package/dist/src/session/thinking-resolve.js.map +0 -1
  2659. package/dist/src/session/transcript-events.js.map +0 -1
  2660. package/dist/src/session/transcript-format.js.map +0 -1
  2661. package/dist/src/session/transcript-outline.js.map +0 -1
  2662. package/dist/src/session/transcript-stats.js.map +0 -1
  2663. package/dist/src/session/types.js.map +0 -1
  2664. package/dist/src/session/user-round-delete.js.map +0 -1
  2665. package/dist/src/share/share-audit.js.map +0 -1
  2666. package/dist/src/share/share-auto.js.map +0 -1
  2667. package/dist/src/share/share-config.js.map +0 -1
  2668. package/dist/src/share/share-landing.js.map +0 -1
  2669. package/dist/src/share/share-rate-limit.js.map +0 -1
  2670. package/dist/src/share/share-store.js.map +0 -1
  2671. package/dist/src/share/share-thumbnail.js.map +0 -1
  2672. package/dist/src/share/share-types.js.map +0 -1
  2673. package/dist/src/share/share-url.js.map +0 -1
  2674. package/dist/src/share/share-zip.js.map +0 -1
  2675. package/dist/src/share/site-proxy.js.map +0 -1
  2676. package/dist/src/share/site-share-config.js.map +0 -1
  2677. package/dist/src/share/site-share-router.js.map +0 -1
  2678. package/dist/src/share/site-share-store.js.map +0 -1
  2679. package/dist/src/share/site-share-types.js.map +0 -1
  2680. package/dist/src/share/site-static-serve.js.map +0 -1
  2681. package/dist/src/storage/sqlite/activity-repository.js.map +0 -1
  2682. package/dist/src/storage/sqlite/config-repository.js.map +0 -1
  2683. package/dist/src/storage/sqlite/connection.js.map +0 -1
  2684. package/dist/src/storage/sqlite/connector-repository.js.map +0 -1
  2685. package/dist/src/storage/sqlite/fts.js.map +0 -1
  2686. package/dist/src/storage/sqlite/knowledge-repository.js.map +0 -1
  2687. package/dist/src/storage/sqlite/memory-index-repository.js.map +0 -1
  2688. package/dist/src/storage/sqlite/memory-records-repository.js.map +0 -1
  2689. package/dist/src/storage/sqlite/memory-reference-consent-repository.js.map +0 -1
  2690. package/dist/src/storage/sqlite/migrations/discover.js.map +0 -1
  2691. package/dist/src/storage/sqlite/migrations/errors.js.map +0 -1
  2692. package/dist/src/storage/sqlite/migrations/runner.js.map +0 -1
  2693. package/dist/src/storage/sqlite/note-agent-context-repository.js.map +0 -1
  2694. package/dist/src/storage/sqlite/notes-repository.js.map +0 -1
  2695. package/dist/src/storage/sqlite/paths.js.map +0 -1
  2696. package/dist/src/storage/sqlite/row-mappers.js.map +0 -1
  2697. package/dist/src/storage/sqlite/schema-version.js.map +0 -1
  2698. package/dist/src/storage/sqlite/schema.js.map +0 -1
  2699. package/dist/src/storage/sqlite/session-metadata.js.map +0 -1
  2700. package/dist/src/storage/sqlite/session-repository.js.map +0 -1
  2701. package/dist/src/storage/sqlite/transaction.js.map +0 -1
  2702. package/dist/src/storage/sqlite/transcript-repository.js.map +0 -1
  2703. package/dist/src/storage/sqlite/user-profile-setup-repository.js.map +0 -1
  2704. package/dist/src/storage/sqlite/user-trust-repository.js.map +0 -1
  2705. package/dist/src/tui/backends/embedded-backend.js.map +0 -1
  2706. package/dist/src/tui/backends/gateway-sse-backend.js.map +0 -1
  2707. package/dist/src/tui/chat-history.js.map +0 -1
  2708. package/dist/src/tui/clipboard-image.js.map +0 -1
  2709. package/dist/src/tui/clipboard-text.js.map +0 -1
  2710. package/dist/src/tui/components/assistant-message.js.map +0 -1
  2711. package/dist/src/tui/components/bash-execution.js.map +0 -1
  2712. package/dist/src/tui/components/bash-summary.js.map +0 -1
  2713. package/dist/src/tui/components/branch-message-summary.js.map +0 -1
  2714. package/dist/src/tui/components/branch-summary.js.map +0 -1
  2715. package/dist/src/tui/components/chat-log.js.map +0 -1
  2716. package/dist/src/tui/components/compaction-summary.js.map +0 -1
  2717. package/dist/src/tui/components/custom-editor.js.map +0 -1
  2718. package/dist/src/tui/components/custom-message.js.map +0 -1
  2719. package/dist/src/tui/components/dynamic-border.js.map +0 -1
  2720. package/dist/src/tui/components/extension-dialog.js.map +0 -1
  2721. package/dist/src/tui/components/fuzzy-filter.js.map +0 -1
  2722. package/dist/src/tui/components/scoped-models-selector.js.map +0 -1
  2723. package/dist/src/tui/components/searchable-select-list.js.map +0 -1
  2724. package/dist/src/tui/components/session-selector.js.map +0 -1
  2725. package/dist/src/tui/components/settings-selector.js.map +0 -1
  2726. package/dist/src/tui/components/thinking-selector.js.map +0 -1
  2727. package/dist/src/tui/components/tool-execution.js.map +0 -1
  2728. package/dist/src/tui/components/tui-bottom-bar.js.map +0 -1
  2729. package/dist/src/tui/components/tui-header.js.map +0 -1
  2730. package/dist/src/tui/components/user-message.js.map +0 -1
  2731. package/dist/src/tui/components/visual-truncate.js.map +0 -1
  2732. package/dist/src/tui/extension-host/autocomplete.js.map +0 -1
  2733. package/dist/src/tui/extension-host/host.js.map +0 -1
  2734. package/dist/src/tui/extension-host/load-extensions.js.map +0 -1
  2735. package/dist/src/tui/extension-host/runtime-context.js.map +0 -1
  2736. package/dist/src/tui/extension-host/runtime.js.map +0 -1
  2737. package/dist/src/tui/extension-host/surface.js.map +0 -1
  2738. package/dist/src/tui/extension-host/tool-renderers.js.map +0 -1
  2739. package/dist/src/tui/format-tui-hotkeys.js.map +0 -1
  2740. package/dist/src/tui/sse-consumer.js.map +0 -1
  2741. package/dist/src/tui/theme/dark.js.map +0 -1
  2742. package/dist/src/tui/theme/light.js.map +0 -1
  2743. package/dist/src/tui/theme-manager.js.map +0 -1
  2744. package/dist/src/tui/theme.js.map +0 -1
  2745. package/dist/src/tui/tool-summary.js.map +0 -1
  2746. package/dist/src/tui/tui-agent-events.js.map +0 -1
  2747. package/dist/src/tui/tui-command-formatters.js.map +0 -1
  2748. package/dist/src/tui/tui-commands.js.map +0 -1
  2749. package/dist/src/tui/tui-context-usage.js.map +0 -1
  2750. package/dist/src/tui/tui-extension-user-message.js.map +0 -1
  2751. package/dist/src/tui/tui-fd-path.js.map +0 -1
  2752. package/dist/src/tui/tui-file-autocomplete.js.map +0 -1
  2753. package/dist/src/tui/tui-follow-up-queue.js.map +0 -1
  2754. package/dist/src/tui/tui-git-branch.js.map +0 -1
  2755. package/dist/src/tui/tui-keybindings-file.js.map +0 -1
  2756. package/dist/src/tui/tui-lifecycle.js.map +0 -1
  2757. package/dist/src/tui/tui-local-shell.js.map +0 -1
  2758. package/dist/src/tui/tui-model-picker.js.map +0 -1
  2759. package/dist/src/tui/tui-oauth-login.js.map +0 -1
  2760. package/dist/src/tui/tui-overlays.js.map +0 -1
  2761. package/dist/src/tui/tui-picker-overlay.js.map +0 -1
  2762. package/dist/src/tui/tui-run-state.js.map +0 -1
  2763. package/dist/src/tui/tui-run-status-format.js.map +0 -1
  2764. package/dist/src/tui/tui-runtime-hints.js.map +0 -1
  2765. package/dist/src/tui/tui-scoped-models.js.map +0 -1
  2766. package/dist/src/tui/tui-session-actions.js.map +0 -1
  2767. package/dist/src/tui/tui-session-format.js.map +0 -1
  2768. package/dist/src/tui/tui-session-snapshot.js.map +0 -1
  2769. package/dist/src/tui/tui-session-stats.js.map +0 -1
  2770. package/dist/src/tui/tui-settings.js.map +0 -1
  2771. package/dist/src/tui/tui-skills-autocomplete.js.map +0 -1
  2772. package/dist/src/tui/tui-startup-resources.js.map +0 -1
  2773. package/dist/src/tui/tui-startup-text.js.map +0 -1
  2774. package/dist/src/tui/tui-stdio-filter.js.map +0 -1
  2775. package/dist/src/tui/tui-submit.js.map +0 -1
  2776. package/dist/src/tui/tui-suspend.js.map +0 -1
  2777. package/dist/src/tui/tui-timeline-picker.js.map +0 -1
  2778. package/dist/src/tui/tui-timeline.js.map +0 -1
  2779. package/dist/src/tui/tui-tool-diff.js.map +0 -1
  2780. package/dist/src/tui/tui-tool-result.js.map +0 -1
  2781. package/dist/src/tui/tui-transcript-tree-picker.js.map +0 -1
  2782. package/dist/src/tui/tui-transcript-tree.js.map +0 -1
  2783. package/dist/src/tui/tui-types.js.map +0 -1
  2784. package/dist/src/tui/tui-workflow-slash.js.map +0 -1
  2785. package/dist/src/tui/tui.js.map +0 -1
  2786. package/dist/src/tui/xopc-tui-keybindings.js.map +0 -1
  2787. package/dist/src/tunnel/broker-client.js.map +0 -1
  2788. package/dist/src/tunnel/consent.js.map +0 -1
  2789. package/dist/src/tunnel/enable-lan-pairing.js.map +0 -1
  2790. package/dist/src/tunnel/env.js.map +0 -1
  2791. package/dist/src/tunnel/frp-subdomain-host.js.map +0 -1
  2792. package/dist/src/tunnel/frpc-binary.js.map +0 -1
  2793. package/dist/src/tunnel/frpc-config.js.map +0 -1
  2794. package/dist/src/tunnel/frpc-extract.js.map +0 -1
  2795. package/dist/src/tunnel/frpc-process.js.map +0 -1
  2796. package/dist/src/tunnel/gateway-lifecycle.js.map +0 -1
  2797. package/dist/src/tunnel/pair-context.js.map +0 -1
  2798. package/dist/src/tunnel/pair-url.js.map +0 -1
  2799. package/dist/src/tunnel/pairing-rate-limit.js.map +0 -1
  2800. package/dist/src/tunnel/pairing.js.map +0 -1
  2801. package/dist/src/tunnel/tunnel-audit.js.map +0 -1
  2802. package/dist/src/tunnel/tunnel-config.js.map +0 -1
  2803. package/dist/src/tunnel/tunnel-persist.js.map +0 -1
  2804. package/dist/src/tunnel/tunnel-qr.js.map +0 -1
  2805. package/dist/src/tunnel/tunnel-rate-limit.js.map +0 -1
  2806. package/dist/src/tunnel/tunnel-service.js.map +0 -1
  2807. package/dist/src/tunnel/tunnel-state.js.map +0 -1
  2808. package/dist/src/tunnel/well-known.js.map +0 -1
  2809. package/dist/src/user-context/config.js.map +0 -1
  2810. package/dist/src/user-context/import.js.map +0 -1
  2811. package/dist/src/user-context/owner.js.map +0 -1
  2812. package/dist/src/user-context/profile.js.map +0 -1
  2813. package/dist/src/user-context/projection.js.map +0 -1
  2814. package/dist/src/user-context/runtime.js.map +0 -1
  2815. package/dist/src/user-context/source-recommendations.js.map +0 -1
  2816. package/dist/src/user-context/trust-policy.js.map +0 -1
  2817. package/dist/src/utils/global-singleton.js.map +0 -1
  2818. package/dist/src/utils/helpers.js.map +0 -1
  2819. package/dist/src/utils/index.js.map +0 -1
  2820. package/dist/src/utils/is-record.js.map +0 -1
  2821. package/dist/src/utils/logger/audit.js.map +0 -1
  2822. package/dist/src/utils/logger/config.js.map +0 -1
  2823. package/dist/src/utils/logger/context.js.map +0 -1
  2824. package/dist/src/utils/logger/exporters.js.map +0 -1
  2825. package/dist/src/utils/logger/index.js.map +0 -1
  2826. package/dist/src/utils/logger/log-store.js.map +0 -1
  2827. package/dist/src/utils/logger/log-stream.js.map +0 -1
  2828. package/dist/src/utils/logger/pino-record.js.map +0 -1
  2829. package/dist/src/utils/logger/redact.js.map +0 -1
  2830. package/dist/src/utils/logger/rotation.js.map +0 -1
  2831. package/dist/src/utils/logger/shutdown.js.map +0 -1
  2832. package/dist/src/utils/logger/stats.js.map +0 -1
  2833. package/dist/src/utils/logger/streams.js.map +0 -1
  2834. package/dist/src/utils/logger/types.js.map +0 -1
  2835. package/dist/src/utils/logger.js.map +0 -1
  2836. package/dist/src/utils/redact-sensitive-url.js.map +0 -1
  2837. package/dist/src/utils/sanitize-log.js.map +0 -1
  2838. package/dist/src/utils/string-coerce.js.map +0 -1
  2839. package/dist/src/voice/language-profile.js.map +0 -1
  2840. package/dist/src/voice/local/model-files.js.map +0 -1
  2841. package/dist/src/voice/local/model-manager.js.map +0 -1
  2842. package/dist/src/voice/local/models.js.map +0 -1
  2843. package/dist/src/voice/local/runtime-client.js.map +0 -1
  2844. package/dist/src/voice/local/runtime-dispatcher.js.map +0 -1
  2845. package/dist/src/voice/local/runtime-worker.js.map +0 -1
  2846. package/dist/src/voice/local/wav.js.map +0 -1
  2847. package/dist/src/voice/metadata/builtin.js.map +0 -1
  2848. package/dist/src/voice/metadata/registry.js.map +0 -1
  2849. package/dist/src/voice/stt/availability.js.map +0 -1
  2850. package/dist/src/voice/stt/config-slice.js.map +0 -1
  2851. package/dist/src/voice/stt/factory.js.map +0 -1
  2852. package/dist/src/voice/stt/index.js.map +0 -1
  2853. package/dist/src/voice/stt/list-providers.js.map +0 -1
  2854. package/dist/src/voice/stt/mention.js.map +0 -1
  2855. package/dist/src/voice/stt/preflight.js.map +0 -1
  2856. package/dist/src/voice/stt/providers/alibaba-transcription.js.map +0 -1
  2857. package/dist/src/voice/stt/providers/local-transcription.js.map +0 -1
  2858. package/dist/src/voice/stt/providers/openai-transcription.js.map +0 -1
  2859. package/dist/src/voice/stt/transcribe-core.js.map +0 -1
  2860. package/dist/src/voice/stt/types.js.map +0 -1
  2861. package/dist/src/voice/tts/audio.js.map +0 -1
  2862. package/dist/src/voice/tts/config-slice.js.map +0 -1
  2863. package/dist/src/voice/tts/directives.js.map +0 -1
  2864. package/dist/src/voice/tts/factory.js.map +0 -1
  2865. package/dist/src/voice/tts/list-providers.js.map +0 -1
  2866. package/dist/src/voice/tts/merge-config.js.map +0 -1
  2867. package/dist/src/voice/tts/openai-compatible-speech.js.map +0 -1
  2868. package/dist/src/voice/tts/payload.js.map +0 -1
  2869. package/dist/src/voice/tts/preprocess.js.map +0 -1
  2870. package/dist/src/voice/tts/providers/alibaba-speech.js.map +0 -1
  2871. package/dist/src/voice/tts/providers/edge-speech.js.map +0 -1
  2872. package/dist/src/voice/tts/providers/minimax-speech.js.map +0 -1
  2873. package/dist/src/voice/tts/providers/openai-speech.js.map +0 -1
  2874. package/dist/src/voice/tts/sentence-boundary.js.map +0 -1
  2875. package/dist/src/voice/tts/service.js.map +0 -1
  2876. package/dist/src/voice/tts/speak-core.js.map +0 -1
  2877. package/dist/src/voice/tts/speech-registry.js.map +0 -1
  2878. package/dist/src/voice/tts/status-tracker.js.map +0 -1
  2879. package/dist/src/voice/tts/summarize.js.map +0 -1
  2880. package/dist/src/voice/tts/types.js.map +0 -1
  2881. package/dist/src/work-discovery/analyzer.js.map +0 -1
  2882. package/dist/src/work-discovery/probe.js.map +0 -1
  2883. package/dist/src/work-discovery/repository.js.map +0 -1
  2884. package/dist/src/work-discovery/service.js.map +0 -1
  2885. package/dist/src/work-items/agent-context.js.map +0 -1
  2886. package/dist/src/work-items/work-item-service.js.map +0 -1
  2887. package/dist/src/work-items/work-item-store.js.map +0 -1
  2888. package/dist/src/work-items/work-item-workflow-judge.js.map +0 -1
  2889. package/dist/src/workflows/authoring/workflow-draft-store.js.map +0 -1
  2890. package/dist/src/workflows/domain/definition-utils.js.map +0 -1
  2891. package/dist/src/workflows/domain/run.js.map +0 -1
  2892. package/dist/src/workflows/domain/schema-validation.js.map +0 -1
  2893. package/dist/src/workflows/domain/validation.js.map +0 -1
  2894. package/dist/src/workflows/draft/workflow-draft-prompt.js.map +0 -1
  2895. package/dist/src/workflows/draft/workflow-draft-service.js.map +0 -1
  2896. package/dist/src/workflows/draft/workflow-draft-validator.js.map +0 -1
  2897. package/dist/src/workflows/engine/projector.js.map +0 -1
  2898. package/dist/src/workflows/engine/workflow-engine.js.map +0 -1
  2899. package/dist/src/workflows/registry/catalog-workflow-definition-registry.js.map +0 -1
  2900. package/dist/src/workflows/runtime/graph-workflow-runtime.js.map +0 -1
  2901. package/dist/src/workflows/service/run-view-to-snapshot.js.map +0 -1
  2902. package/dist/src/workflows/service/workflow-run-service.js.map +0 -1
  2903. package/dist/src/workflows/service/workflow-session-bridge.js.map +0 -1
  2904. package/dist/src/workflows/service/workflow-session-key.js.map +0 -1
  2905. package/dist/src/workflows/store/event-store.js.map +0 -1
  2906. package/dist/src/workflows/store/paths.js.map +0 -1
  2907. package/dist/src/workflows/store/run-index-store.js.map +0 -1
  2908. package/dist/src/workflows/store/run-store.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xopcai/xopc",
3
- "version": "0.0.148",
3
+ "version": "0.0.150",
4
4
  "description": "Local-first AI system that remembers context, coordinates AI, and sustains long-term progress.",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",
@@ -65,17 +65,13 @@
65
65
  "node": ">=22.19.0"
66
66
  },
67
67
  "dependencies": {
68
- "@composio/core": "0.14.0",
69
- "@composio/experimental": "0.2.0",
70
68
  "@earendil-works/pi-agent-core": "0.80.10",
71
69
  "@earendil-works/pi-ai": "0.80.10",
72
70
  "@earendil-works/pi-coding-agent": "0.80.10",
73
71
  "@earendil-works/pi-tui": "0.80.10",
74
72
  "@grammyjs/runner": "^2.0.3",
75
73
  "@hono/node-server": "^2.0.4",
76
- "@huggingface/transformers": "3.8.1",
77
74
  "@inquirer/prompts": "^8.5.0",
78
- "@larksuiteoapi/node-sdk": "^1.66.0",
79
75
  "@modelcontextprotocol/sdk": "1.29.0",
80
76
  "@mozilla/readability": "^0.6.0",
81
77
  "@sinclair/typebox": "^0.34.49",
@@ -89,23 +85,19 @@
89
85
  "commander": "^14.0.3",
90
86
  "cron-parser": "^5.5.0",
91
87
  "dotenv": "^17.4.2",
92
- "electron-updater": "^6.8.3",
93
88
  "glob": "^13.0.6",
94
89
  "grammy": "^1.43.0",
95
90
  "hono": "^4.12.25",
96
91
  "jiti": "^2.7.0",
97
92
  "js-yaml": "^4.1.1",
98
- "jsdom": "^29.1.1",
93
+ "linkedom": "0.18.13",
99
94
  "markdown-it": "^14.2.0",
100
95
  "node-edge-tts": "^1.2.10",
101
- "onnxruntime-common": "1.21.0",
102
- "openai": "^6.39.1",
96
+ "openai": "^6.48.0",
103
97
  "pino": "^10.3.1",
104
98
  "pino-pretty": "^13.1.3",
105
- "playwright-core": "^1.60.0",
106
99
  "proper-lockfile": "^4.1.2",
107
100
  "semver": "^7.8.1",
108
- "sherpa-onnx-node": "1.13.4",
109
101
  "silk-wasm": "^3.7.1",
110
102
  "thread-stream": "^4.2.0",
111
103
  "undici": "^8.5.0",
@@ -113,7 +105,39 @@
113
105
  "ws": "^8.21.0",
114
106
  "zod": "^4.4.3"
115
107
  },
108
+ "peerDependencies": {
109
+ "@composio/core": "0.14.0",
110
+ "@composio/experimental": "0.2.0",
111
+ "@huggingface/transformers": "3.8.1",
112
+ "@larksuiteoapi/node-sdk": "^1.66.0",
113
+ "playwright-core": "^1.60.0",
114
+ "sherpa-onnx-node": "1.13.4"
115
+ },
116
+ "peerDependenciesMeta": {
117
+ "@composio/core": {
118
+ "optional": true
119
+ },
120
+ "@composio/experimental": {
121
+ "optional": true
122
+ },
123
+ "@huggingface/transformers": {
124
+ "optional": true
125
+ },
126
+ "@larksuiteoapi/node-sdk": {
127
+ "optional": true
128
+ },
129
+ "playwright-core": {
130
+ "optional": true
131
+ },
132
+ "sherpa-onnx-node": {
133
+ "optional": true
134
+ }
135
+ },
116
136
  "devDependencies": {
137
+ "@composio/core": "0.14.0",
138
+ "@composio/experimental": "0.2.0",
139
+ "@huggingface/transformers": "3.8.1",
140
+ "@larksuiteoapi/node-sdk": "^1.66.0",
117
141
  "@resvg/resvg-js": "^2.6.2",
118
142
  "@tailwindcss/vite": "^4.3.0",
119
143
  "@types/adm-zip": "^0.5.8",
@@ -129,9 +153,15 @@
129
153
  "dependency-cruiser": "^17.4.3",
130
154
  "electron": "^42.4.1",
131
155
  "electron-builder": "^26.12.1",
156
+ "electron-updater": "6.8.3",
132
157
  "electron-vite": "^6.0.0-beta.1",
133
158
  "esbuild": "^0.28.1",
134
159
  "eslint": "^10.4.0",
160
+ "jsdom": "^29.1.1",
161
+ "onnxruntime-common": "1.21.0",
162
+ "playwright-core": "^1.60.0",
163
+ "sherpa-onnx-node": "1.13.4",
164
+ "svgo": "4.0.2",
135
165
  "tailwindcss": "^4.3.0",
136
166
  "tsdown": "0.21.10",
137
167
  "tsx": "^4.22.3",
@@ -59,5 +59,6 @@ Once the pet concept is clear, call `create_desktop_pet` with:
59
59
  - `name`: a short display name when the user provides or implies one.
60
60
  - `prompt`: the full visual and personality description, including all requested refinements.
61
61
  - `description`: a concise one-line description for Settings.
62
+ - `persona`: always provide a restrained personality profile. Choose `tone`, numeric `warmth`, `energy`, and `humor` values between 0 and 1, plus 2–4 short phrases for greeting, success, waiting, and error. Phrases must be concise, truthful, non-manipulative, and written in the user's language. Never make the pet guilt the user, demand attention, or pretend to have biological needs.
62
63
 
63
64
  When updating an existing pet, keep the same name unless the user explicitly asks to rename it. After the tool succeeds, tell the user the pet was installed under `~/.xopc/pets` and can be selected from Settings > Pet.
@@ -1 +0,0 @@
1
- {"version":3,"file":"image-generation-provider.js","names":[],"sources":["../../../../extensions/dashscope/src/image-generation-provider.ts"],"sourcesContent":["/**\n * Bundled DashScope (Alibaba) image-generation provider.\n *\n * Migrated from src/agent/image/generation/dashscope-generate.ts. Logic stays\n * identical; the only change is registration is now driven by the bundled\n * provider generator.\n */\nimport {\n isProviderApiKeyConfigured,\n resolveApiKeyForProvider,\n} from '@xopcai/xopc/providers/auth-runtime/index.js';\nimport {\n pickTimeoutMsOrFallback,\n postJsonRequest,\n privateNetworkPolicyToSsrfGuardOptions,\n resolveProviderHttpRequestConfig,\n} from '@xopcai/xopc/media-shared/http/index.js';\nimport { createLogger } from '@xopcai/xopc/utils/logger.js';\nimport { imageFileExtensionForMimeType } from '@xopcai/xopc/agent/image/generation/image-assets.js';\nimport type {\n ImageGenerationProvider,\n ImageGenerationProviderCapabilities,\n ImageGenerationRequest,\n ImageGenerationResult,\n} from '@xopcai/xopc/agent/image/generation/types.js';\n\nconst log = createLogger('ImageGen:DashScope');\n\n/**\n * Wan image model ids for **HTTP synchronous** `multimodal-generation/generation`.\n * - **2.7** (`wan2.7-image-pro` / `wan2.7-image`): see Wan 2.7 image API (size presets 1K/2K/4K, `thinking_mode`, …).\n * - **2.6** (`wan2.6-t2i`): Wan 2.6 T2I (`prompt_extend`, pixel `宽*高`, …).\n * Wan 2.5 and earlier async-only models are not listed here.\n * @see https://www.alibabacloud.com/help/en/model-studio/wan-image-generation-and-editing-api-reference\n * @see https://www.alibabacloud.com/help/en/model-studio/text-to-image-v2-api-reference\n * @see https://www.alibabacloud.com/help/en/model-studio/model-pricing\n */\nexport const DASHSCOPE_IMAGE_MODELS: readonly string[] = [\n 'wan2.7-image-pro',\n 'wan2.7-image',\n 'wan2.6-t2i',\n];\nexport const DASHSCOPE_DEFAULT_IMAGE_MODEL = DASHSCOPE_IMAGE_MODELS[0]!;\n\nconst DEFAULT_TIMEOUT_MS = 180_000;\n\nconst DASHSCOPE_CAPABILITIES: ImageGenerationProviderCapabilities = {\n generate: { maxCount: 4, supportsSize: true },\n edit: { enabled: false },\n geometry: {\n sizes: ['2K', '1K', '4K', '1280x1280', '1024x1024', '1280x720', '720x1280', '1024x1536', '1536x1024'],\n },\n output: {\n formats: ['png', 'jpeg', 'webp'],\n },\n};\n\n/**\n * Official synchronous wan2.6 text-to-image endpoints. Each region uses its own API key.\n * @see https://www.alibabacloud.com/help/zh/model-studio/text-to-image-v2-api-reference\n */\nexport const DASHSCOPE_IMAGE_ENDPOINTS = {\n beijing: 'https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation',\n singapore: 'https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation',\n} as const;\n\nexport type DashScopeImageRegion = keyof typeof DASHSCOPE_IMAGE_ENDPOINTS;\n\nconst DEFAULT_OUTPUT_MIME = 'image/png';\n\nfunction providerConfigId(req?: ImageGenerationRequest, fallback = 'dashscope-cn'): string {\n return req?.provider?.trim() || fallback;\n}\n\nexport function resolveDashScopeImageGenerationUrl(\n req?: ImageGenerationRequest,\n defaultRegion: DashScopeImageRegion = 'beijing',\n): string {\n const id = providerConfigId(req);\n const cfgImageBase = readDashScopeCfgString(req?.cfg, id, 'imageBaseUrl');\n if (cfgImageBase) return cfgImageBase.replace(/\\/+$/, '');\n const cfgBase = readDashScopeCfgString(req?.cfg, id, 'baseUrl');\n if (cfgBase) return cfgBase.replace(/\\/+$/, '');\n const trimmed = process.env.DASHSCOPE_IMAGE_BASE_URL?.trim();\n if (trimmed) {\n return trimmed.replace(/\\/+$/, '');\n }\n return DASHSCOPE_IMAGE_ENDPOINTS[defaultRegion];\n}\n\nfunction readDashScopeCfgString(\n cfg: ImageGenerationRequest['cfg'],\n providerId: string,\n key: string,\n): string | undefined {\n const providers = (cfg as unknown as { providers?: Record<string, unknown> } | undefined)?.providers;\n if (!providers || typeof providers !== 'object') return undefined;\n const entry = (providers as Record<string, unknown>)[providerId];\n if (!entry || typeof entry !== 'object') return undefined;\n const v = (entry as Record<string, unknown>)[key];\n return typeof v === 'string' && v.trim() ? v.trim() : undefined;\n}\n\n/** Map tool size (e.g. `1024x1024`) to DashScope `宽*高` format. */\nexport function mapSizeToDashScopeFormat(size?: string): string {\n if (!size?.trim()) {\n return '1280*1280';\n }\n const s = size.trim();\n if (s.includes('*')) {\n return s.replace(/\\s/g, '');\n }\n const m = /^(\\d+)\\s*[xX]\\s*(\\d+)$/.exec(s);\n if (m) {\n return `${m[1]}*${m[2]}`;\n }\n return '1280*1280';\n}\n\nexport function isWan27ImageModel(model: string): boolean {\n const m = model.trim().toLowerCase();\n return m === 'wan2.7-image-pro' || m === 'wan2.7-image';\n}\n\n/**\n * Map tool `size` to Wan 2.7 `parameters.size` (1K / 2K / 4K presets or `宽*高` pixels).\n * `wan2.7-image` does not support 4K — falls back to 2K.\n */\nexport function mapSizeToWan27Format(size: string | undefined, modelId: string): string {\n const id = modelId.trim().toLowerCase();\n if (!size?.trim()) return '2K';\n const s = size.trim();\n const preset = s.toUpperCase();\n if (preset === '1K' || preset === '2K' || preset === '4K') {\n if (preset === '4K' && id === 'wan2.7-image') return '2K';\n return preset;\n }\n if (s.includes('*')) return s.replace(/\\s/g, '');\n const dim = /^(\\d+)\\s*[xX]\\s*(\\d+)$/.exec(s);\n if (dim) return `${dim[1]}*${dim[2]}`;\n return '2K';\n}\n\ntype DashScopeT2IResponse = {\n code?: string;\n message?: string;\n output?: {\n choices?: Array<{\n message?: {\n content?: Array<{ type?: string; image?: string; text?: string }>;\n };\n }>;\n };\n};\n\nfunction collectImageUrls(data: DashScopeT2IResponse): string[] {\n const urls: string[] = [];\n for (const choice of data.output?.choices ?? []) {\n for (const item of choice.message?.content ?? []) {\n if (item.type === 'image' && typeof item.image === 'string' && item.image.length > 0) {\n urls.push(item.image);\n }\n }\n }\n return urls;\n}\n\nasync function fetchImageBuffers(\n urls: string[],\n signal: AbortSignal | undefined,\n): Promise<Array<{ buffer: Buffer; mimeType: string; fileName: string }>> {\n const out: Array<{ buffer: Buffer; mimeType: string; fileName: string }> = [];\n let index = 0;\n for (const url of urls) {\n index += 1;\n const res = await fetch(url, { redirect: 'follow', signal });\n if (!res.ok) {\n const t = await res.text().catch(() => '');\n throw new Error(`Failed to download generated image (${res.status}): ${t || res.statusText}`);\n }\n const buf = Buffer.from(await res.arrayBuffer());\n const ct = res.headers.get('content-type') || '';\n const mimeType = ct.split(';')[0]?.trim() || DEFAULT_OUTPUT_MIME;\n const ext = imageFileExtensionForMimeType(mimeType);\n out.push({\n buffer: buf,\n mimeType,\n fileName: `image-${index}.${ext}`,\n });\n }\n return out;\n}\n\nexport async function generateDashScopeImages(params: {\n req: ImageGenerationRequest;\n apiKey: string;\n providerId?: string;\n defaultRegion?: DashScopeImageRegion;\n}): Promise<ImageGenerationResult> {\n const { req, apiKey } = params;\n const providerId = params.providerId ?? req.provider ?? 'dashscope-cn';\n if (req.inputImages && req.inputImages.length > 0) {\n throw new Error('Image-to-image is not supported for Qwen/DashScope in this build');\n }\n\n const n = Math.min(4, Math.max(1, req.count ?? 1));\n const model = req.model?.trim() || DASHSCOPE_DEFAULT_IMAGE_MODEL;\n const parameters = isWan27ImageModel(model)\n ? {\n size: mapSizeToWan27Format(req.size, model),\n n,\n watermark: false,\n thinking_mode: true,\n }\n : {\n prompt_extend: true,\n watermark: false,\n n,\n negative_prompt: '',\n size: mapSizeToDashScopeFormat(req.size),\n };\n\n const body = {\n model,\n input: {\n messages: [\n {\n role: 'user' as const,\n content: [{ text: req.prompt }],\n },\n ],\n },\n parameters,\n };\n\n const url = resolveDashScopeImageGenerationUrl(req, params.defaultRegion);\n const httpDefaults = resolveProviderHttpRequestConfig({\n providerId,\n cfg: req.cfg,\n fallbackTimeoutMs: DEFAULT_TIMEOUT_MS,\n });\n\n log.debug(\n { providerId, model, url, count: n, phase: 'request' },\n 'DashScope image generation request',\n );\n\n const timeoutMs = pickTimeoutMsOrFallback(req.timeoutMs, httpDefaults.timeoutMs, DEFAULT_TIMEOUT_MS);\n const response = await postJsonRequest(url, {\n label: providerId,\n timeoutMs,\n signal: req.signal,\n body,\n headers: {\n ...httpDefaults.headers,\n authorization: `Bearer ${apiKey}`,\n },\n ...privateNetworkPolicyToSsrfGuardOptions(),\n });\n\n let data: DashScopeT2IResponse;\n const rawText = await response.text();\n try {\n data = JSON.parse(rawText) as DashScopeT2IResponse;\n } catch {\n throw new Error(`DashScope returned non-JSON: ${rawText.slice(0, 240)}`);\n }\n\n if (!data.output?.choices?.length) {\n if (data.message || data.code) {\n throw new Error(\n data.code\n ? `DashScope: ${data.code}: ${data.message ?? ''}`\n : `DashScope: ${data.message ?? 'unknown error'}`,\n );\n }\n throw new Error('DashScope returned no output');\n }\n\n const urls = collectImageUrls(data);\n if (urls.length === 0) {\n throw new Error('DashScope returned no image URLs in response');\n }\n\n const assets = await fetchImageBuffers(urls, req.signal);\n return {\n images: assets,\n model,\n };\n}\n\nfunction createDashScopeImageGenerationProvider(options: {\n id: string;\n label: string;\n defaultRegion: DashScopeImageRegion;\n}): ImageGenerationProvider {\n return {\n id: options.id,\n label: options.label,\n defaultModel: DASHSCOPE_DEFAULT_IMAGE_MODEL,\n models: [...DASHSCOPE_IMAGE_MODELS],\n capabilities: DASHSCOPE_CAPABILITIES,\n isConfigured: (ctx) =>\n isProviderApiKeyConfigured({ providerId: options.id, cfg: ctx.cfg }),\n async generateImage(req) {\n const apiKey = resolveApiKeyForProvider({ providerId: options.id, cfg: req.cfg });\n if (!apiKey) {\n throw new Error(\n `DashScope API key missing (set DASHSCOPE_API_KEY or providers.${options.id}.apiKey)`,\n );\n }\n return generateDashScopeImages({\n req,\n apiKey,\n providerId: options.id,\n defaultRegion: options.defaultRegion,\n });\n },\n };\n}\n\nexport function buildDashScopeCnImageGenerationProvider(): ImageGenerationProvider {\n return createDashScopeImageGenerationProvider({\n id: 'dashscope-cn',\n label: 'DashScope (Alibaba · China)',\n defaultRegion: 'beijing',\n });\n}\n\nexport function buildDashScopeIntlImageGenerationProvider(): ImageGenerationProvider {\n return createDashScopeImageGenerationProvider({\n id: 'dashscope-intl',\n label: 'DashScope (Alibaba · International)',\n defaultRegion: 'singapore',\n });\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../extensions/demo-memory/src/index.ts"],"sourcesContent":["import type { MemoryProvider, MemoryProviderInitOptions } from '../../../src/agent/memory/provider.js';\nimport type {\n MemoryCapabilities,\n MemoryListRequest,\n MemoryProviderManifest,\n MemoryReadRequest,\n MemoryReadResult,\n MemoryRecord,\n MemoryScope,\n MemorySearchRequest,\n MemorySearchResult,\n MemorySyncEvent,\n MemoryWriteRequest,\n MemoryWriteResult,\n} from '../../../src/agent/memory/types.js';\n\nexport const manifest: MemoryProviderManifest = {\n type: 'memory-provider',\n id: 'demo-memory',\n displayName: 'Demo Memory Provider',\n entry: './src/index.js',\n capabilities: {\n search: true,\n read: true,\n write: true,\n update: false,\n delete: false,\n keywordSearch: true,\n citations: true,\n sync: true,\n },\n};\n\nexport const description = 'In-memory provider used to verify extension-backed memory providers.';\n\nexport function isAvailable(): boolean {\n return process.env.XOPC_DEMO_MEMORY_DISABLED !== '1';\n}\n\nexport function createMemoryProvider(): MemoryProvider {\n return new DemoMemoryProvider();\n}\n\nclass DemoMemoryProvider implements MemoryProvider {\n readonly id = manifest.id;\n readonly displayName = manifest.displayName;\n readonly manifest = manifest;\n readonly capabilities: MemoryCapabilities = {\n search: true,\n read: true,\n write: true,\n update: false,\n delete: false,\n keywordSearch: true,\n semanticSearch: false,\n hybridSearch: false,\n citations: true,\n sync: true,\n };\n\n private records = new Map<string, MemoryRecord>();\n private sequence = 0;\n private scope: MemoryScope = { userId: 'local-owner' };\n private sourceAgentId = 'main';\n\n isAvailable(): boolean {\n return isAvailable();\n }\n\n initialize(_sessionId: string, options?: MemoryProviderInitOptions): void {\n this.sourceAgentId = typeof options?.config?.agentId === 'string' ? options.config.agentId : 'main';\n const workspaceId = typeof options?.workspace === 'string' ? options.workspace : undefined;\n this.scope = workspaceId ? { userId: 'local-owner', workspaceId } : { userId: 'local-owner' };\n }\n\n async write(request: MemoryWriteRequest): Promise<MemoryWriteResult> {\n const record = this.createRecord(request);\n return { success: true, record, message: `Demo memory stored ${record.id}` };\n }\n\n async search(request: MemorySearchRequest): Promise<MemorySearchResult[]> {\n const query = request.query.trim().toLocaleLowerCase();\n const kinds = request.kinds ? new Set(request.kinds) : null;\n const maxResults = request.maxResults ?? 5;\n return [...this.records.values()]\n .filter((record) => !kinds || kinds.has(record.kind))\n .filter((record) => !query || record.content.toLocaleLowerCase().includes(query))\n .map((record) => ({\n record,\n score: scoreRecord(record, query),\n snippet: record.content,\n citation: {\n providerId: this.id,\n recordId: record.id,\n title: this.displayName,\n createdAt: record.createdAt,\n },\n }))\n .sort((a, b) => b.score - a.score)\n .slice(0, maxResults);\n }\n\n async read(request: MemoryReadRequest): Promise<MemoryReadResult | null> {\n if (!request.id) return null;\n const record = this.records.get(request.id);\n return record ? { record } : null;\n }\n\n async get(id: string): Promise<MemoryRecord | null> {\n return this.records.get(id) ?? null;\n }\n\n async list(request: MemoryListRequest): Promise<MemoryRecord[]> {\n return [...this.records.values()].filter((record) => !request.kind || record.kind === request.kind);\n }\n\n sync(event: MemorySyncEvent): void {\n if (event.type !== 'signal' || !event.signal.content) return;\n this.createRecord({\n kind: 'derived_insight',\n content: event.signal.content,\n source: { provider: event.signal.source },\n tags: ['signal', event.signal.source],\n });\n }\n\n shutdown(): void {\n this.records.clear();\n }\n\n private createRecord(request: MemoryWriteRequest): MemoryRecord {\n const now = new Date().toISOString();\n const id = `demo-memory-${++this.sequence}`;\n const record: MemoryRecord = {\n id,\n kind: request.kind,\n scope: { ...this.scope, ...request.scope },\n provenance: { sourceAgentId: this.sourceAgentId },\n content: request.content,\n source: request.source ?? { provider: this.id },\n explicitness: request.explicitness ?? 'inferred',\n durability: request.durability ?? 'durable',\n importance: request.importance ?? 0.5,\n disclosurePolicy: request.disclosurePolicy ?? 'referenceable',\n createdAt: now,\n updatedAt: now,\n ...(request.tags ? { tags: request.tags } : {}),\n };\n this.records.set(id, record);\n return record;\n }\n}\n\nfunction scoreRecord(record: MemoryRecord, query: string): number {\n if (!query) return 0.5;\n const text = record.content.toLocaleLowerCase();\n if (text === query) return 1;\n if (text.includes(query)) return 0.8;\n return 0.1;\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"image-generation-provider.js","names":[],"sources":["../../../../extensions/fal/src/image-generation-provider.ts"],"sourcesContent":["/**\n * Bundled Fal.ai image-generation provider.\n *\n * Fal.ai is queue-based:\n * 1. POST https://queue.fal.run/<model> → { request_id, status_url, response_url }\n * 2. GET status_url (poll) → { status: IN_QUEUE | IN_PROGRESS | COMPLETED | … }\n * 3. GET response_url (after COMPLETED) → { images: [{ url, content_type, … }], … }\n * 4. fetch each images[].url → bytes\n *\n * Auth: `Authorization: Key <FAL_KEY>` (Fal's REST convention).\n * Configure via env `FAL_KEY` / `FAL_API_KEY` or `cfg.providers.fal.apiKey`.\n *\n * Polling stays inside `req.timeoutMs` (default 600s for queue + inference);\n * exceeding it surfaces a clear error rather than hanging forever.\n */\nimport {\n isProviderApiKeyConfigured,\n resolveApiKeyForProvider,\n} from '@xopcai/xopc/providers/auth-runtime/index.js';\nimport {\n pickTimeoutMsOrFallback,\n postJsonRequest,\n privateNetworkPolicyToSsrfGuardOptions,\n resolveProviderHttpRequestConfig,\n} from '@xopcai/xopc/media-shared/http/index.js';\nimport { createLogger } from '@xopcai/xopc/utils/logger.js';\nimport {\n imageFileExtensionForMimeType,\n} from '@xopcai/xopc/agent/image/generation/image-assets.js';\nimport type {\n ImageGenerationProvider,\n ImageGenerationProviderCapabilities,\n ImageGenerationRequest,\n ImageGenerationResult,\n ImageProviderUiMetadata,\n} from '@xopcai/xopc/agent/image/generation/types.js';\n\nconst log = createLogger('ImageGen:Fal');\n\nconst DEFAULT_FAL_QUEUE_BASE_URL = 'https://queue.fal.run';\nconst FAL_IMAGE_UI: ImageProviderUiMetadata = {\n baseUrlPresets: [\n { value: DEFAULT_FAL_QUEUE_BASE_URL, label: 'Fal queue (default)' },\n { value: 'https://fal.run', label: 'Fal direct (fal.run)' },\n ],\n baseUrlPresetKind: 'fal',\n};\nexport const FAL_DEFAULT_IMAGE_MODEL = 'fal-ai/flux/schnell';\nconst DEFAULT_TIMEOUT_MS = 600_000; // queue + inference (10 min)\nconst DEFAULT_POLL_INTERVAL_MS = 1500;\nconst MAX_POLL_INTERVAL_MS = 5000;\n\nexport const FAL_IMAGE_MODELS: readonly string[] = [\n FAL_DEFAULT_IMAGE_MODEL,\n 'fal-ai/flux/dev',\n 'fal-ai/flux-pro/v1.1',\n 'fal-ai/flux-pro/v1.1-ultra',\n 'fal-ai/nano-banana',\n];\n\nconst FAL_CAPABILITIES: ImageGenerationProviderCapabilities = {\n generate: { maxCount: 4, supportsSize: true, supportsAspectRatio: true },\n edit: {\n enabled: true,\n maxInputImages: 4,\n supportsSize: true,\n supportsAspectRatio: true,\n },\n geometry: {\n sizes: ['1024x1024', '1024x1536', '1536x1024', '1024x1792', '1792x1024'],\n aspectRatios: ['1:1', '16:9', '9:16', '4:3', '3:4', '21:9'],\n },\n output: {\n formats: ['png', 'jpeg', 'webp'],\n },\n};\n\nfunction readFalCfgString(\n cfg: ImageGenerationRequest['cfg'],\n key: string,\n): string | undefined {\n const providers = (cfg as unknown as { providers?: Record<string, unknown> } | undefined)\n ?.providers;\n if (!providers || typeof providers !== 'object') return undefined;\n const entry = (providers as Record<string, unknown>)['fal'];\n if (!entry || typeof entry !== 'object') return undefined;\n const v = (entry as Record<string, unknown>)[key];\n return typeof v === 'string' && v.trim() ? v.trim() : undefined;\n}\n\n/**\n * Resolve Fal queue base URL precedence:\n * 1. cfg.providers.fal.baseUrl\n * 2. FAL_QUEUE_BASE_URL / FAL_BASE_URL env\n * 3. Default https://queue.fal.run\n */\nexport function resolveFalBaseUrl(req: ImageGenerationRequest): string {\n const fromCfg = readFalCfgString(req.cfg, 'baseUrl');\n if (fromCfg) return fromCfg.replace(/\\/+$/, '');\n const fromEnv = (process.env.FAL_QUEUE_BASE_URL ?? process.env.FAL_BASE_URL)?.trim();\n if (fromEnv) return fromEnv.replace(/\\/+$/, '');\n return DEFAULT_FAL_QUEUE_BASE_URL;\n}\n\ntype FalSubmitResponse = {\n request_id?: string;\n status_url?: string;\n response_url?: string;\n cancel_url?: string;\n queue_position?: number;\n};\n\ntype FalStatusResponse = {\n status?: 'IN_QUEUE' | 'IN_PROGRESS' | 'COMPLETED' | string;\n request_id?: string;\n response_url?: string;\n queue_position?: number;\n error?: string;\n error_type?: string;\n metrics?: { inference_time?: number };\n};\n\ntype FalImageEntry = {\n url?: string;\n content_type?: string;\n width?: number;\n height?: number;\n file_name?: string;\n};\n\ntype FalResultResponse = {\n images?: FalImageEntry[];\n image?: FalImageEntry; // some models return a single object instead of an array\n prompt?: string;\n seed?: number;\n};\n\nfunction delay(ms: number, signal?: AbortSignal): Promise<void> {\n return new Promise((resolve, reject) => {\n if (signal?.aborted) {\n reject(new Error('Aborted'));\n return;\n }\n const timer = setTimeout(() => {\n signal?.removeEventListener('abort', onAbort);\n resolve();\n }, ms);\n const onAbort = () => {\n clearTimeout(timer);\n reject(new Error('Aborted'));\n };\n signal?.addEventListener('abort', onAbort, { once: true });\n });\n}\n\nfunction buildFalRequestBody(req: ImageGenerationRequest): Record<string, unknown> {\n const body: Record<string, unknown> = {\n prompt: req.prompt,\n };\n const count = Math.max(1, Math.min(4, req.count ?? 1));\n if (count > 1) {\n body.num_images = count;\n }\n if (req.size?.trim()) {\n body.image_size = req.size.trim();\n }\n if (req.aspectRatio?.trim()) {\n body.aspect_ratio = req.aspectRatio.trim();\n }\n if (req.outputFormat?.trim()) {\n body.output_format = req.outputFormat.trim();\n }\n // Image-to-image / edit: most Fal models accept `image_url` (single) or\n // `image_urls` (multi); xopc keeps payloads as base64 buffers, so we surface\n // them as data URIs which Fal's gateway accepts identically.\n const inputs = req.inputImages ?? [];\n if (inputs.length > 0) {\n const dataUris = inputs.map((image) => {\n const mimeType = image.mimeType?.trim() || 'image/png';\n return `data:${mimeType};base64,${Buffer.from(image.buffer).toString('base64')}`;\n });\n if (dataUris.length === 1) {\n body.image_url = dataUris[0];\n } else {\n body.image_urls = dataUris;\n }\n }\n // Caller-supplied passthrough wins over heuristic defaults.\n const overrides = (req.providerOptions as { fal?: Record<string, unknown> } | undefined)?.fal;\n if (overrides && typeof overrides === 'object') {\n Object.assign(body, overrides);\n }\n return body;\n}\n\nasync function submitFalRequest(params: {\n req: ImageGenerationRequest;\n apiKey: string;\n url: string;\n headers: Record<string, string>;\n httpDefaultTimeoutMs?: number;\n}): Promise<FalSubmitResponse> {\n const { req, url, headers, httpDefaultTimeoutMs } = params;\n const body = buildFalRequestBody(req);\n\n log.debug(\n { providerId: 'fal', url, model: req.model, phase: 'submit' },\n 'Fal.ai queue submit',\n );\n\n const timeoutMs = pickTimeoutMsOrFallback(req.timeoutMs, httpDefaultTimeoutMs, DEFAULT_TIMEOUT_MS);\n const res = await postJsonRequest(url, {\n label: 'fal',\n timeoutMs,\n signal: req.signal,\n body,\n headers,\n ...privateNetworkPolicyToSsrfGuardOptions(),\n });\n\n const text = await res.text();\n let data: FalSubmitResponse;\n try {\n data = JSON.parse(text) as FalSubmitResponse;\n } catch {\n throw new Error(`Fal.ai returned non-JSON on submit: ${text.slice(0, 240)}`);\n }\n if (!data.request_id) {\n throw new Error(`Fal.ai submit missing request_id: ${text.slice(0, 240)}`);\n }\n return data;\n}\n\nasync function pollFalStatus(params: {\n statusUrl: string;\n headers: Record<string, string>;\n signal?: AbortSignal;\n deadlineEpochMs: number;\n}): Promise<FalStatusResponse> {\n const { statusUrl, headers, signal, deadlineEpochMs } = params;\n let interval = DEFAULT_POLL_INTERVAL_MS;\n // First check is immediate; subsequent checks back off up to MAX_POLL_INTERVAL_MS.\n // eslint-disable-next-line no-constant-condition\n while (true) {\n if (Date.now() > deadlineEpochMs) {\n throw new Error('Fal.ai request timed out while waiting for completion');\n }\n const res = await fetch(statusUrl, { headers, signal });\n if (!res.ok) {\n const t = await res.text().catch(() => '');\n throw new Error(`Fal.ai status check failed (${res.status}): ${t || res.statusText}`);\n }\n const text = await res.text();\n let data: FalStatusResponse;\n try {\n data = JSON.parse(text) as FalStatusResponse;\n } catch {\n throw new Error(`Fal.ai returned non-JSON on status: ${text.slice(0, 240)}`);\n }\n const status = (data.status || '').toUpperCase();\n if (status === 'COMPLETED') return data;\n if (status && status !== 'IN_QUEUE' && status !== 'IN_PROGRESS') {\n const errMsg = data.error || `unexpected status=${data.status ?? '<missing>'}`;\n throw new Error(`Fal.ai request failed: ${errMsg}`);\n }\n await delay(interval, signal);\n interval = Math.min(MAX_POLL_INTERVAL_MS, interval + 500);\n }\n}\n\nasync function fetchFalResult(params: {\n responseUrl: string;\n headers: Record<string, string>;\n signal?: AbortSignal;\n}): Promise<FalResultResponse> {\n const { responseUrl, headers, signal } = params;\n const res = await fetch(responseUrl, { headers, signal });\n if (!res.ok) {\n const t = await res.text().catch(() => '');\n throw new Error(`Fal.ai result fetch failed (${res.status}): ${t || res.statusText}`);\n }\n const text = await res.text();\n let data: FalResultResponse;\n try {\n data = JSON.parse(text) as FalResultResponse;\n } catch {\n throw new Error(`Fal.ai returned non-JSON on result: ${text.slice(0, 240)}`);\n }\n return data;\n}\n\nasync function downloadFalImages(params: {\n result: FalResultResponse;\n signal?: AbortSignal;\n}): Promise<Array<{ buffer: Buffer; mimeType: string; fileName: string }>> {\n const { result, signal } = params;\n const entries: FalImageEntry[] = result.images?.length\n ? result.images\n : result.image\n ? [result.image]\n : [];\n if (entries.length === 0) {\n throw new Error('Fal.ai returned no images');\n }\n const out: Array<{ buffer: Buffer; mimeType: string; fileName: string }> = [];\n let index = 0;\n for (const entry of entries) {\n if (!entry.url) continue;\n index += 1;\n const res = await fetch(entry.url, { redirect: 'follow', signal });\n if (!res.ok) {\n const t = await res.text().catch(() => '');\n throw new Error(\n `Fal.ai image download failed (${res.status}): ${t || res.statusText}`,\n );\n }\n const arrayBuffer = await res.arrayBuffer();\n const buf = Buffer.from(arrayBuffer);\n const mimeType =\n entry.content_type?.trim() ||\n res.headers.get('content-type')?.split(';')[0]?.trim() ||\n 'image/png';\n const ext = imageFileExtensionForMimeType(mimeType);\n const fileName = entry.file_name?.trim() || `image-${index}.${ext}`;\n out.push({ buffer: buf, mimeType, fileName });\n }\n if (out.length === 0) {\n throw new Error('Fal.ai returned image entries without URLs');\n }\n return out;\n}\n\nexport async function generateFalImages(params: {\n req: ImageGenerationRequest;\n apiKey: string;\n}): Promise<ImageGenerationResult> {\n const { req, apiKey } = params;\n const baseUrl = resolveFalBaseUrl(req);\n const model = req.model?.trim() || FAL_DEFAULT_IMAGE_MODEL;\n const submitUrl = `${baseUrl}/${model}`;\n\n const httpDefaults = resolveProviderHttpRequestConfig({\n providerId: 'fal',\n cfg: req.cfg,\n fallbackTimeoutMs: DEFAULT_TIMEOUT_MS,\n });\n\n const headers: Record<string, string> = {\n ...httpDefaults.headers,\n authorization: `Key ${apiKey}`,\n };\n\n const totalDeadlineMs = req.timeoutMs ?? httpDefaults.timeoutMs ?? DEFAULT_TIMEOUT_MS;\n const deadlineEpochMs = Date.now() + totalDeadlineMs;\n\n const submit = await submitFalRequest({\n req,\n apiKey,\n url: submitUrl,\n headers,\n httpDefaultTimeoutMs: httpDefaults.timeoutMs,\n });\n\n const statusUrl =\n submit.status_url ?? `${submitUrl}/requests/${submit.request_id}/status`;\n const responseUrl =\n submit.response_url ?? `${submitUrl}/requests/${submit.request_id}`;\n\n log.debug(\n {\n providerId: 'fal',\n model,\n requestId: submit.request_id,\n statusUrl,\n phase: 'poll',\n },\n 'Fal.ai polling for completion',\n );\n\n await pollFalStatus({\n statusUrl,\n headers,\n signal: req.signal,\n deadlineEpochMs,\n });\n\n const result = await fetchFalResult({\n responseUrl,\n headers,\n signal: req.signal,\n });\n const images = await downloadFalImages({ result, signal: req.signal });\n return { images, model };\n}\n\nexport function buildFalImageGenerationProvider(): ImageGenerationProvider {\n return {\n id: 'fal',\n aliases: ['fal-ai'],\n label: 'Fal.ai',\n defaultModel: FAL_DEFAULT_IMAGE_MODEL,\n models: [...FAL_IMAGE_MODELS],\n capabilities: FAL_CAPABILITIES,\n ui: FAL_IMAGE_UI,\n isConfigured: (ctx) =>\n isProviderApiKeyConfigured({ providerId: 'fal', cfg: ctx.cfg }),\n async generateImage(req) {\n const apiKey = resolveApiKeyForProvider({ providerId: 'fal', cfg: req.cfg });\n if (!apiKey) {\n throw new Error(\n 'Fal.ai API key missing (set FAL_KEY / FAL_API_KEY or providers.fal.apiKey)',\n );\n }\n return generateFalImages({ req, apiKey });\n },\n };\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"message-action-handler.js","names":[],"sources":["../../../../../extensions/feishu/src/actions/message-action-handler.ts"],"sourcesContent":["import type { ChannelMessageActionContext } from '@xopcai/xopc/channels/plugin-types.js';\nimport { createLogger } from '@xopcai/xopc/utils/logger.js';\n\nconst log = createLogger('FeishuActions');\n\n/**\n * Hook for Feishu interactive cards (`card.action.trigger`) before the agent turn runs.\n * Extend here for toasts, card updates, or audit — keep side effects bounded and fast.\n */\nexport async function handleFeishuChannelMessageAction(ctx: ChannelMessageActionContext): Promise<void> {\n log.info(\n {\n action: ctx.action,\n accountId: ctx.accountId,\n chatId: ctx.chatId,\n messageId: ctx.messageId,\n dataPreview:\n typeof ctx.data === 'string' && ctx.data.length > 400 ? `${ctx.data.slice(0, 400)}…` : ctx.data,\n },\n 'Feishu interactive card action',\n );\n}\n"],"mappings":";;;aAC4D;AAE5D,MAAM,MAAM,aAAa,gBAAgB;;;;;AAMzC,eAAsB,iCAAiC,KAAiD;AACtG,KAAI,KACF;EACE,QAAQ,IAAI;EACZ,WAAW,IAAI;EACf,QAAQ,IAAI;EACZ,WAAW,IAAI;EACf,aACE,OAAO,IAAI,SAAS,YAAY,IAAI,KAAK,SAAS,MAAM,GAAG,IAAI,KAAK,MAAM,GAAG,IAAI,CAAC,KAAK,IAAI;EAC9F,EACD,iCACD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli-login.js","names":[],"sources":["../../../../../extensions/feishu/src/adapters/cli-login.ts"],"sourcesContent":["/**\n * Feishu CLI Login adapter — implements `ChannelCliLoginAdapter`.\n *\n * Provides interactive credential setup for Feishu channel onboarding.\n * Supports QR scan-to-create and manual credential input.\n */\n\nimport fs from 'node:fs';\n\nimport { confirm, input, select } from '@inquirer/prompts';\n\nimport type { Config } from '@xopcai/xopc/config/schema.js';\nimport { mergeDistinctSenderIds } from '@xopcai/xopc/channels/pairing/index.js';\nimport type { ChannelCliLoginAdapter } from '@xopcai/xopc/channels/plugins/types.adapters.js';\n\nimport {\n initAppRegistration,\n beginAppRegistration,\n pollAppRegistration,\n printQrCode,\n type FeishuDomain,\n} from '../auth/app-registration.js';\n\ntype DmPolicy = 'pairing' | 'allowlist' | 'open' | 'disabled';\ntype GroupPolicy = 'open' | 'disabled' | 'allowlist';\n\nfunction loadConfigFromPath(configPath: string): Config {\n try {\n const raw = fs.readFileSync(configPath, 'utf8');\n return JSON.parse(raw) as Config;\n } catch {\n return {} as Config;\n }\n}\n\nfunction writeConfigToPath(configPath: string, config: Config): void {\n fs.writeFileSync(configPath, JSON.stringify(config, null, 2) + '\\n', 'utf8');\n}\n\nfunction isFeishuConfigured(config: Config): boolean {\n const feishu = config.channels?.feishu as Record<string, unknown> | undefined;\n if (!feishu) return false;\n const appId = typeof feishu.appId === 'string' ? feishu.appId.trim() : '';\n const appSecret = typeof feishu.appSecret === 'string' ? feishu.appSecret.trim() : '';\n return Boolean(appId && appSecret);\n}\n\nfunction parseAllowlistRaw(raw: string): Array<string | number> {\n if (!raw.trim()) return [];\n return raw\n .split(/[,\\s\\n]+/)\n .map((entry) => entry.trim())\n .filter(Boolean)\n .map((entry) => {\n const asNumber = parseInt(entry, 10);\n return !isNaN(asNumber) && String(asNumber) === entry ? asNumber : entry;\n });\n}\n\nasync function acquireCredentials(params: {\n existingAppId: string;\n timeoutMs: number;\n}): Promise<{\n appId: string;\n appSecret: string;\n domain: FeishuDomain;\n ownerOpenId?: string;\n}> {\n const domain = await select<FeishuDomain>({\n message: 'Feishu/Lark domain:',\n choices: [\n { value: 'feishu', name: 'feishu (open.feishu.cn)', description: 'China / Feishu' },\n { value: 'lark', name: 'lark (open.larksuite.com)', description: 'International / Lark' },\n ],\n default: 'feishu',\n });\n\n const canScan = await initAppRegistration(domain);\n const useScan = canScan\n ? await confirm({\n message: 'Create an app by scanning a QR code (recommended)?',\n default: true,\n })\n : false;\n\n if (useScan) {\n console.log('\\nScan this QR code with Feishu/Lark to create an app:\\n');\n const begin = await beginAppRegistration(domain);\n await printQrCode(begin.qrUrl);\n console.log('\\nWaiting for confirmation...\\n');\n\n const expireInSec = Math.min(begin.expireInSec, Math.floor(params.timeoutMs / 1000));\n const outcome = await pollAppRegistration({\n deviceCode: begin.deviceCode,\n intervalSec: begin.intervalSec,\n expireInSec,\n initialDomain: domain,\n });\n\n if (outcome.status === 'success') {\n console.log(`✅ App created. Domain: \"${outcome.result.domain}\".\\n`);\n return {\n appId: outcome.result.appId,\n appSecret: outcome.result.appSecret,\n domain: outcome.result.domain,\n ownerOpenId: outcome.result.openId,\n };\n }\n\n const reason =\n outcome.status === 'access_denied'\n ? 'User denied authorization.'\n : outcome.status === 'expired'\n ? 'Session expired.'\n : outcome.status === 'timeout'\n ? 'Scan timed out.'\n : `Error: ${'message' in outcome ? outcome.message : 'unknown'}`;\n console.log(`${reason} Falling back to manual input.\\n`);\n }\n\n console.log('📝 Enter Feishu app credentials (from Feishu Open Platform developer console):\\n');\n\n const appId = (\n await input({\n message: 'App ID (cli_xxx):',\n default: params.existingAppId || undefined,\n validate: (value) => value.trim().length > 0 || 'App ID cannot be empty',\n })\n ).trim();\n\n const appSecret = (\n await input({\n message: 'App Secret:',\n validate: (value) => value.trim().length > 0 || 'App Secret cannot be empty',\n })\n ).trim();\n\n return { appId, appSecret, domain };\n}\n\nasync function promptSecurityPolicies(ownerOpenId?: string): Promise<{\n dmPolicy: DmPolicy;\n groupPolicy: GroupPolicy;\n allowFrom: Array<string | number>;\n groupAllowFrom: Array<string | number>;\n requireMention: boolean;\n}> {\n const dmPolicy = await select<DmPolicy>({\n message: 'DM (private chat) policy:',\n choices: [\n { value: 'open', name: 'open [default]', description: 'Anyone can DM the bot after setup' },\n {\n value: 'pairing',\n name: 'pairing',\n description: 'New users need `xopc channels pairing approve`',\n },\n { value: 'allowlist', name: 'allowlist', description: 'Only allowlisted users' },\n { value: 'disabled', name: 'disabled', description: 'Disable DMs' },\n ],\n default: 'open',\n });\n\n let allowFrom: Array<string | number> = [];\n if (dmPolicy === 'allowlist') {\n const defaultAllow = ownerOpenId ?? '';\n const raw = await input({\n message: 'Allowed user open_id / union_id (comma-separated):',\n default: defaultAllow,\n });\n allowFrom = parseAllowlistRaw(raw || defaultAllow);\n }\n\n const groupPolicy = await select<GroupPolicy>({\n message: 'Group chat policy:',\n choices: [\n { value: 'allowlist', name: 'allowlist [recommended]', description: 'Only allowlisted groups' },\n { value: 'open', name: 'open', description: 'All groups allowed' },\n { value: 'disabled', name: 'disabled', description: 'Disable groups' },\n ],\n default: 'allowlist',\n });\n\n let groupAllowFrom: Array<string | number> = [];\n if (groupPolicy === 'allowlist') {\n const raw = await input({\n message: 'Allowed group chat IDs (comma-separated, e.g. oc_xxx):',\n default: '',\n });\n groupAllowFrom = parseAllowlistRaw(raw);\n }\n\n const requireMention = await confirm({\n message: 'Require @mention in groups?',\n default: true,\n });\n\n const extras =\n ownerOpenId?.trim() && (dmPolicy === 'pairing' || dmPolicy === 'allowlist') ? [ownerOpenId.trim()] : [];\n const mergedAllowFrom = mergeDistinctSenderIds(allowFrom, extras);\n\n return { dmPolicy, groupPolicy, allowFrom: mergedAllowFrom, groupAllowFrom, requireMention };\n}\n\nexport const feishuCliLoginAdapter: ChannelCliLoginAdapter = {\n async runLogin(params) {\n const { configPath, verbose, timeoutMs = 480_000, accountId, writeConfig = true } = params;\n\n if (verbose) {\n console.log(`[feishu-login] configPath=${configPath}, timeoutMs=${timeoutMs}`);\n }\n\n const config = loadConfigFromPath(configPath);\n const existingFeishu = config.channels?.feishu as Record<string, unknown> | undefined;\n const existingAppId = typeof existingFeishu?.appId === 'string' ? existingFeishu.appId : '';\n const alreadyConfigured = isFeishuConfigured(config);\n\n console.log(`\\n${'='.repeat(50)}`);\n console.log('📱 Feishu / Lark login');\n console.log(`${'='.repeat(50)}\\n`);\n\n if (alreadyConfigured) {\n const reconfigure = await confirm({\n message: `Feishu is already configured (App ID: ${existingAppId}). Reconfigure?`,\n default: false,\n });\n if (!reconfigure) {\n console.log('Keeping existing configuration.\\n');\n return { ok: true, message: 'Existing configuration kept.', accountId };\n }\n }\n\n const credentials = await acquireCredentials({\n existingAppId,\n timeoutMs,\n });\n\n const policies = await promptSecurityPolicies(credentials.ownerOpenId);\n\n const nextFeishu: Record<string, unknown> = {\n ...(existingFeishu ?? {}),\n enabled: true,\n appId: credentials.appId,\n appSecret: credentials.appSecret,\n domain: credentials.domain,\n connectionMode: (existingFeishu?.connectionMode as string) || 'websocket',\n dmPolicy: policies.dmPolicy,\n groupPolicy: policies.groupPolicy,\n allowFrom: policies.allowFrom,\n groupAllowFrom: policies.groupAllowFrom,\n requireMention: policies.requireMention,\n };\n\n const nextConfig: Config = {\n ...config,\n channels: {\n ...config.channels,\n feishu: nextFeishu,\n },\n };\n\n if (writeConfig) {\n writeConfigToPath(configPath, nextConfig);\n console.log(`✅ Feishu configuration saved to ${configPath}\\n`);\n } else {\n console.log('✅ Feishu credentials acquired (--credentials-only: config not updated).\\n');\n }\n\n return {\n ok: true,\n message: `Feishu login complete (App ID: ${credentials.appId}).`,\n accountId: accountId ?? undefined,\n };\n },\n};\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"gateway-setup.js","names":[],"sources":["../../../../../extensions/feishu/src/adapters/gateway-setup.ts"],"sourcesContent":["import type { Config } from '@xopcai/xopc/config/schema.js';\nimport type {\n ChannelRuntimeActionAdapter,\n ChannelRuntimeActionPayload,\n} from '@xopcai/xopc/channels/plugins/types.adapters.js';\nimport { mergeDistinctSenderIds } from '@xopcai/xopc/channels/pairing/index.js';\n\nimport {\n beginAppRegistration,\n initAppRegistration,\n pollAppRegistration,\n type FeishuDomain,\n type AppRegistrationResult,\n} from '../auth/app-registration.js';\n\ntype FeishuGatewaySetupDone =\n | { phase: 'done'; ok: true; accountId: string; appId: string; domain: FeishuDomain; result: AppRegistrationResult }\n | { phase: 'done'; ok: false; message: string };\n\ntype FeishuGatewaySetupActive = {\n startedAt: number;\n qrPayload: string;\n};\n\nconst activeSessions = new Map<string, FeishuGatewaySetupActive>();\nconst completedSessions = new Map<string, FeishuGatewaySetupDone>();\n\nfunction rememberCompleted(sessionKey: string, state: FeishuGatewaySetupDone): void {\n activeSessions.delete(sessionKey);\n completedSessions.set(sessionKey, state);\n setTimeout(() => completedSessions.delete(sessionKey), 10 * 60_000);\n}\n\nfunction readInput(input: unknown): Record<string, unknown> {\n return input && typeof input === 'object' && !Array.isArray(input)\n ? (input as Record<string, unknown>)\n : {};\n}\n\nfunction normalizeDomain(input: unknown): FeishuDomain {\n return input === 'lark' ? 'lark' : 'feishu';\n}\n\nfunction buildFeishuConfig(config: Config, result: AppRegistrationResult): Config {\n const existing = config.channels?.feishu as Record<string, unknown> | undefined;\n const ownerOpenId = result.openId?.trim();\n const previousAllowFrom = Array.isArray(existing?.allowFrom)\n ? (existing.allowFrom as Array<string | number>)\n : [];\n const allowFrom = ownerOpenId\n ? mergeDistinctSenderIds(previousAllowFrom, [ownerOpenId])\n : previousAllowFrom;\n\n return {\n ...config,\n channels: {\n ...config.channels,\n feishu: {\n ...(existing ?? {}),\n enabled: true,\n appId: result.appId,\n appSecret: result.appSecret,\n domain: result.domain,\n connectionMode: 'websocket',\n dmPolicy: existing?.dmPolicy ?? 'open',\n groupPolicy: existing?.groupPolicy ?? 'allowlist',\n allowFrom,\n groupAllowFrom: Array.isArray(existing?.groupAllowFrom) ? existing.groupAllowFrom : allowFrom,\n requireMention: typeof existing?.requireMention === 'boolean' ? existing.requireMention : true,\n renderMode: existing?.renderMode ?? 'auto',\n streaming: typeof existing?.streaming === 'boolean' ? existing.streaming : false,\n reactionNotifications: existing?.reactionNotifications ?? 'own',\n actions: { ...(existing?.actions as Record<string, unknown> | undefined), reactions: true },\n tools: {\n doc: true,\n wiki: true,\n drive: true,\n perm: false,\n bitable: true,\n scopes: true,\n ...(existing?.tools as Record<string, unknown> | undefined),\n },\n historyLimit: typeof existing?.historyLimit === 'number' ? existing.historyLimit : 50,\n textChunkLimit: typeof existing?.textChunkLimit === 'number' ? existing.textChunkLimit : 4000,\n },\n },\n };\n}\n\nfunction isZh(locale: string | undefined): boolean {\n return locale?.toLowerCase().startsWith('zh') === true;\n}\n\nfunction statusPayload(\n state: FeishuGatewaySetupDone | undefined,\n active: FeishuGatewaySetupActive | undefined,\n locale?: string,\n): ChannelRuntimeActionPayload {\n const zh = isZh(locale);\n if (!state && active) {\n return {\n type: 'poll',\n phase: 'pending',\n ok: undefined,\n qrPayload: active.qrPayload,\n message: zh ? '等待飞书 / Lark 确认…' : 'Waiting for Feishu/Lark confirmation...',\n };\n }\n if (!state) {\n return {\n type: 'poll',\n phase: 'unknown',\n ok: false,\n message: zh ? '没有活动的飞书配置会话。请重新开始,二维码可能已过期。' : 'No active Feishu setup session. Start again or the QR may have expired.',\n };\n }\n if (state.ok === false) {\n return {\n type: 'poll',\n phase: 'done',\n ok: false,\n message: state.message,\n };\n }\n return {\n type: 'poll',\n phase: 'done',\n ok: true,\n accountId: state.accountId,\n appId: state.appId,\n domain: state.domain,\n message: zh ? '飞书配置完成。' : 'Feishu setup complete.',\n configChanged: true,\n };\n}\n\nfunction completedNextConfig(cfg: Config, state: FeishuGatewaySetupDone | undefined): Config | undefined {\n if (!state || state.ok === false) return undefined;\n return buildFeishuConfig(cfg, state.result);\n}\n\nexport const feishuGatewaySetupActions: ChannelRuntimeActionAdapter = {\n async runAction({ cfg, actionId, input, locale }) {\n const zh = isZh(locale);\n if (actionId === 'setup.start') {\n const raw = readInput(input);\n const domain = normalizeDomain(raw.domain);\n const supported = await initAppRegistration(domain);\n if (!supported) {\n return {\n ok: true,\n payload: {\n type: 'form',\n submitAction: 'setup.manual',\n message: zh ? '飞书扫码创建不可用。请在高级配置中手动填写应用凭据。' : 'Feishu scan-to-create is unavailable. Enter app credentials manually in Advanced configuration.',\n schema: {\n type: 'object',\n properties: {\n appId: { type: 'string', title: 'App ID' },\n appSecret: { type: 'string', title: 'App Secret', format: 'password' },\n domain: { type: 'string', enum: ['feishu', 'lark'], default: domain, title: zh ? '域名' : 'Domain' },\n },\n required: ['appId', 'appSecret'],\n },\n values: { domain },\n },\n };\n }\n\n const begin = await beginAppRegistration(domain);\n const sessionKey = begin.deviceCode;\n activeSessions.set(sessionKey, {\n startedAt: Date.now(),\n qrPayload: begin.qrUrl,\n });\n\n void (async () => {\n const outcome = await pollAppRegistration({\n deviceCode: begin.deviceCode,\n intervalSec: begin.intervalSec,\n expireInSec: begin.expireInSec,\n initialDomain: domain,\n });\n\n if (outcome.status !== 'success') {\n const message =\n outcome.status === 'access_denied'\n ? (zh ? '用户拒绝授权。' : 'User denied authorization.')\n : outcome.status === 'expired'\n ? (zh ? '配置会话已过期。' : 'Setup session expired.')\n : outcome.status === 'timeout'\n ? (zh ? '配置超时。' : 'Setup timed out.')\n : outcome.message ?? (zh ? '飞书配置失败。' : 'Feishu setup failed.');\n rememberCompleted(sessionKey, { phase: 'done', ok: false, message });\n return;\n }\n\n rememberCompleted(sessionKey, {\n phase: 'done',\n ok: true,\n accountId: 'default',\n appId: outcome.result.appId,\n domain: outcome.result.domain,\n result: outcome.result,\n });\n })();\n\n return {\n ok: true,\n payload: {\n type: 'qr',\n sessionKey,\n qrPayload: begin.qrUrl,\n statusAction: 'setup.status',\n pollIntervalMs: Math.max(1000, begin.intervalSec * 1000),\n expiresInSec: begin.expireInSec,\n message: zh ? '请使用飞书 / Lark 扫码创建并授权应用。' : 'Scan with Feishu/Lark to create and authorize an app.',\n },\n };\n }\n\n if (actionId === 'setup.status') {\n const raw = readInput(input);\n const sessionKey = typeof raw.sessionKey === 'string' ? raw.sessionKey : '';\n if (!sessionKey) return { ok: false, message: zh ? '缺少配置 sessionKey' : 'Missing setup sessionKey' };\n const completed = completedSessions.get(sessionKey);\n return {\n ok: true,\n payload: statusPayload(completed, activeSessions.get(sessionKey), locale),\n nextConfig: completedNextConfig(cfg, completed),\n };\n }\n\n if (actionId === 'setup.manual') {\n const raw = readInput(input);\n const appId = typeof raw.appId === 'string' ? raw.appId.trim() : '';\n const appSecret = typeof raw.appSecret === 'string' ? raw.appSecret.trim() : '';\n const domain = normalizeDomain(raw.domain);\n if (!appId || !appSecret) {\n return { ok: false, message: zh ? 'App ID 和 App Secret 为必填项。' : 'App ID and App Secret are required.' };\n }\n return {\n ok: true,\n nextConfig: buildFeishuConfig(cfg, { appId, appSecret, domain }),\n payload: {\n type: 'ok',\n message: zh ? '飞书配置已保存。' : 'Feishu configuration saved.',\n configChanged: true,\n },\n };\n }\n\n return { ok: false, message: `${zh ? '不支持的飞书操作' : 'Unsupported Feishu action'}: ${actionId}` };\n },\n};\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"onboard-cli.js","names":[],"sources":["../../../../../extensions/feishu/src/adapters/onboard-cli.ts"],"sourcesContent":["/**\n * Feishu interactive onboarding (CLI onboard) — {@link ChannelOnboardAdapter}.\n *\n * This configures the single-account layout under `channels.feishu.*`.\n */\n\nimport { confirm, input, select } from '@inquirer/prompts';\n\nimport type { Config } from '@xopcai/xopc/config/schema.js';\nimport { mergeDistinctSenderIds } from '@xopcai/xopc/channels/pairing/index.js';\nimport type { ChannelOnboardAdapter } from '@xopcai/xopc/channels/plugins/types.adapters.js';\n\nimport {\n initAppRegistration,\n beginAppRegistration,\n pollAppRegistration,\n printQrCode,\n type FeishuDomain,\n} from '../auth/app-registration.js';\n\ntype DmPolicy = 'pairing' | 'allowlist' | 'open' | 'disabled';\ntype GroupPolicy = 'open' | 'disabled' | 'allowlist';\ntype RenderMode = 'auto' | 'raw' | 'card';\ntype ConnectionMode = 'websocket' | 'webhook';\ntype ReactionNotifications = 'off' | 'own' | 'all';\n\nfunction isFeishuConfigured(config: Config): boolean {\n const feishu = config.channels?.feishu as Record<string, unknown> | undefined;\n if (!feishu) return false;\n const appId = typeof feishu.appId === 'string' ? feishu.appId.trim() : '';\n const appSecret = typeof feishu.appSecret === 'string' ? feishu.appSecret.trim() : '';\n const enabled = feishu.enabled === true;\n return enabled && Boolean(appId && appSecret);\n}\n\nfunction parseAllowlistRaw(raw: string): Array<string | number> {\n if (!raw.trim()) return [];\n const entries = raw\n .split(/[,\\s\\n]+/)\n .map((s) => s.trim())\n .filter(Boolean);\n return entries.map((e) => {\n const num = parseInt(e, 10);\n return !isNaN(num) && String(num) === e ? num : e;\n });\n}\n\nasync function configureFeishu(config: Config): Promise<Config> {\n console.log(`\\n${'='.repeat(50)}`);\n console.log('📱 Feishu / Lark setup');\n console.log(`${'='.repeat(50)}\\n`);\n\n const existing = config.channels?.feishu as Record<string, unknown> | undefined;\n const existingAppId = typeof existing?.appId === 'string' ? existing.appId : '';\n const existingDomain = typeof existing?.domain === 'string' ? existing.domain : '';\n\n if (existing?.enabled === true && existingAppId) {\n const keep = await confirm({\n message: 'A Feishu config already exists. Reconfigure it?',\n default: false,\n });\n if (!keep) return config;\n }\n\n const initialDomain = await select<FeishuDomain>({\n message: 'Feishu/Lark domain:',\n choices: [\n { value: 'feishu', name: 'feishu (open.feishu.cn)', description: 'China / Feishu' },\n { value: 'lark', name: 'lark (open.larksuite.com)', description: 'International / Lark' },\n ],\n default: existingDomain === 'lark' ? 'lark' : 'feishu',\n });\n\n const canScanToCreate = await initAppRegistration(initialDomain);\n const useScanToCreate = canScanToCreate\n ? await confirm({\n message: 'Create an app by scanning a QR code (recommended)?',\n default: true,\n })\n : false;\n\n let appId = '';\n let appSecret = '';\n let domain: FeishuDomain = initialDomain;\n let ownerOpenId: string | undefined;\n\n if (useScanToCreate) {\n console.log('\\nScan this QR code with Feishu/Lark to create an app:\\n');\n const begin = await beginAppRegistration(initialDomain);\n await printQrCode(begin.qrUrl);\n console.log('\\nWaiting for confirmation...\\n');\n const outcome = await pollAppRegistration({\n deviceCode: begin.deviceCode,\n intervalSec: begin.intervalSec,\n expireInSec: begin.expireInSec,\n initialDomain,\n });\n if (outcome.status !== 'success') {\n console.log('Scan-to-create did not complete. Falling back to manual input.\\n');\n } else {\n appId = outcome.result.appId;\n appSecret = outcome.result.appSecret;\n domain = outcome.result.domain;\n ownerOpenId = outcome.result.openId;\n console.log(`✅ App created. Domain detected as \"${domain}\".\\n`);\n }\n }\n\n if (!appId || !appSecret) {\n console.log('📝 Feishu app credentials (from Feishu Open Platform developer console):\\n');\n\n appId = (await input({\n message: 'App ID (cli_xxx):',\n default: existingAppId || undefined,\n validate: (v) => v.trim().length > 0 || 'App ID cannot be empty',\n })).trim();\n\n appSecret = (await input({\n message: 'App Secret:',\n validate: (v) => v.trim().length > 0 || 'App Secret cannot be empty',\n })).trim();\n\n domain = initialDomain;\n }\n\n const connectionMode = await select<ConnectionMode>({\n message: 'Connection mode:',\n choices: [\n { value: 'websocket', name: 'websocket [recommended]', description: 'Socket Mode (persistent connection)' },\n { value: 'webhook', name: 'webhook', description: 'Local HTTP server receives events' },\n ],\n default: 'websocket',\n });\n\n let verificationToken: string | undefined;\n let encryptKey: string | undefined;\n let webhookHost: string | undefined;\n let webhookPort: number | undefined;\n let webhookPath: string | undefined;\n if (connectionMode === 'webhook') {\n console.log('\\n🪝 Webhook secrets (from Feishu event subscription settings):\\n');\n verificationToken = (await input({\n message: 'Verification Token:',\n validate: (v) => v.trim().length > 0 || 'Verification Token cannot be empty',\n })).trim();\n encryptKey = (await input({\n message: 'Encrypt Key:',\n validate: (v) => v.trim().length > 0 || 'Encrypt Key cannot be empty',\n })).trim();\n webhookHost = (await input({\n message: 'Webhook host:',\n default: typeof existing?.webhookHost === 'string' ? existing.webhookHost : '127.0.0.1',\n })).trim();\n webhookPort = Number(\n (await input({\n message: 'Webhook port:',\n default: typeof existing?.webhookPort === 'number' ? String(existing.webhookPort) : '3000',\n })).trim(),\n );\n webhookPath = (await input({\n message: 'Webhook path:',\n default: typeof existing?.webhookPath === 'string' ? existing.webhookPath : '/feishu/events',\n })).trim();\n }\n\n const dmPolicy = await select<DmPolicy>({\n message: 'DM (private chat) policy:',\n choices: [\n { value: 'open', name: 'open [default]', description: 'Anyone can DM the bot after setup' },\n {\n value: 'pairing',\n name: 'pairing',\n description: 'New users need `xopc channels pairing approve` (scanner pre-seeded after QR create)',\n },\n { value: 'allowlist', name: 'allowlist', description: 'Only allowlisted users can DM' },\n { value: 'disabled', name: 'disabled', description: 'Disable DMs' },\n ],\n default: 'open',\n });\n\n let allowFrom: Array<string | number> | undefined;\n if (dmPolicy === 'allowlist') {\n const defaultAllow =\n ownerOpenId && (existing?.allowFrom == null || (Array.isArray(existing.allowFrom) && existing.allowFrom.length === 0))\n ? ownerOpenId\n : '';\n const raw = await input({\n message: 'Allowed user open_id / union_id / numeric ids (comma-separated):',\n default: defaultAllow,\n });\n allowFrom = parseAllowlistRaw(raw || defaultAllow);\n }\n\n const groupPolicy = await select<GroupPolicy>({\n message: 'Group chat policy:',\n choices: [\n { value: 'allowlist', name: 'allowlist [recommended]', description: 'Only allowlisted groups can use the bot' },\n { value: 'open', name: 'open', description: 'All groups allowed' },\n { value: 'disabled', name: 'disabled', description: 'Disable groups' },\n ],\n default: 'allowlist',\n });\n\n let groupAllowFrom: Array<string | number> | undefined;\n if (groupPolicy === 'allowlist') {\n const raw = await input({\n message: 'Allowed group chat IDs (comma-separated, e.g. oc_xxx):',\n default: '',\n });\n groupAllowFrom = parseAllowlistRaw(raw);\n }\n\n const requireMention = await confirm({\n message: 'Require @mention in groups?',\n default: true,\n });\n\n const renderMode = await select<RenderMode>({\n message: 'Default render mode:',\n choices: [\n { value: 'auto', name: 'auto', description: 'Let xopc decide (default)' },\n { value: 'raw', name: 'raw', description: 'Send plain text only' },\n { value: 'card', name: 'card', description: 'Prefer interactive cards (CardKit streaming)' },\n ],\n default: 'auto',\n });\n\n const streaming = await confirm({\n message: 'Enable streaming updates (Thinking… + incremental output)?',\n default: false,\n });\n\n const reactionNotifications = await select<ReactionNotifications>({\n message: 'Reaction notifications:',\n choices: [\n { value: 'off', name: 'off', description: 'Disable reaction notifications' },\n { value: 'own', name: 'own [recommended]', description: 'Only notify reactions to bot messages' },\n { value: 'all', name: 'all', description: 'Notify all reactions (noisy)' },\n ],\n default: 'own',\n });\n\n const enableFeishuTools = await select<'minimal' | 'docs' | 'full'>({\n message: 'Enable Feishu tools (docs/wiki/drive/etc.)?',\n choices: [\n { value: 'minimal', name: 'minimal', description: 'No extra tools (chat only)' },\n { value: 'docs', name: 'docs', description: 'Enable doc/wiki/drive/scopes (common)' },\n { value: 'full', name: 'full', description: 'Enable doc/wiki/drive/bitable/perm/scopes' },\n ],\n default: 'docs',\n });\n\n const tools =\n enableFeishuTools === 'minimal'\n ? { doc: false, wiki: false, drive: false, perm: false, bitable: false, scopes: true }\n : enableFeishuTools === 'docs'\n ? { doc: true, wiki: true, drive: true, perm: false, bitable: true, scopes: true }\n : { doc: true, wiki: true, drive: true, perm: true, bitable: true, scopes: true };\n\n const extras =\n ownerOpenId?.trim() && (dmPolicy === 'pairing' || dmPolicy === 'allowlist') ? [ownerOpenId.trim()] : [];\n const mergedAllowFrom = mergeDistinctSenderIds(\n allowFrom ?? (existing?.allowFrom as Array<string | number> | undefined) ?? [],\n extras,\n );\n\n const nextFeishu: Record<string, unknown> = {\n ...(existing ?? {}),\n enabled: true,\n appId,\n appSecret,\n domain,\n connectionMode,\n ...(connectionMode === 'webhook'\n ? {\n verificationToken,\n encryptKey,\n webhookHost,\n webhookPort,\n webhookPath,\n }\n : {}),\n dmPolicy,\n groupPolicy,\n allowFrom: mergedAllowFrom,\n groupAllowFrom: groupAllowFrom ?? (existing?.groupAllowFrom as any) ?? [],\n requireMention,\n renderMode,\n streaming,\n reactionNotifications,\n actions: { reactions: true },\n tools,\n historyLimit: typeof existing?.historyLimit === 'number' ? existing.historyLimit : 50,\n textChunkLimit: typeof existing?.textChunkLimit === 'number' ? existing.textChunkLimit : 4000,\n };\n\n const newConfig: Config = {\n ...config,\n channels: {\n ...config.channels,\n feishu: nextFeishu,\n },\n };\n\n console.log('\\n✅ Feishu configuration complete\\n');\n return newConfig;\n}\n\nexport const feishuOnboardAdapter: ChannelOnboardAdapter = {\n isConfigured: isFeishuConfigured,\n configure: configureFeishu,\n};\n\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"app-registration.js","names":[],"sources":["../../../../../extensions/feishu/src/auth/app-registration.ts"],"sourcesContent":["/**\n * Feishu/Lark App Registration — QR scan-to-create and OAuth device flow.\n *\n * Shared between `cli-login.ts` (channels login) and `onboard-cli.ts` (onboard wizard).\n */\n\nexport type FeishuDomain = 'feishu' | 'lark';\n\nexport type AppRegistrationResult = {\n appId: string;\n appSecret: string;\n domain: FeishuDomain;\n openId?: string;\n};\n\nconst FEISHU_ACCOUNTS_URL = 'https://accounts.feishu.cn';\nconst LARK_ACCOUNTS_URL = 'https://accounts.larksuite.com';\nconst REGISTRATION_PATH = '/oauth/v1/app/registration';\nconst REQUEST_TIMEOUT_MS = 10_000;\n\nfunction accountsBaseUrl(domain: FeishuDomain): string {\n return domain === 'lark' ? LARK_ACCOUNTS_URL : FEISHU_ACCOUNTS_URL;\n}\n\nasync function postRegistration<T>(baseUrl: string, body: Record<string, string>): Promise<T> {\n const response = await fetch(`${baseUrl}${REGISTRATION_PATH}`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\n body: new URLSearchParams(body).toString(),\n signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS),\n });\n return (await response.json()) as T;\n}\n\n/**\n * Check if the Feishu/Lark app registration endpoint supports scan-to-create.\n */\nexport async function initAppRegistration(domain: FeishuDomain): Promise<boolean> {\n type InitResponse = { supported_auth_methods?: string[] };\n try {\n const result = await postRegistration<InitResponse>(accountsBaseUrl(domain), { action: 'init' });\n return Boolean(result.supported_auth_methods?.includes('client_secret'));\n } catch {\n return false;\n }\n}\n\n/**\n * Start the device-code flow and return a QR URL for the user to scan.\n */\nexport async function beginAppRegistration(domain: FeishuDomain): Promise<{\n deviceCode: string;\n qrUrl: string;\n intervalSec: number;\n expireInSec: number;\n}> {\n type RawBeginResponse = {\n device_code: string;\n verification_uri_complete: string;\n interval?: number;\n expire_in?: number;\n };\n const result = await postRegistration<RawBeginResponse>(accountsBaseUrl(domain), {\n action: 'begin',\n archetype: 'PersonalAgent',\n auth_method: 'client_secret',\n request_user_info: 'open_id',\n });\n const qrUrl = new URL(result.verification_uri_complete);\n qrUrl.searchParams.set('from', 'xopc_onboard');\n qrUrl.searchParams.set('tp', 'ob_cli_app');\n return {\n deviceCode: result.device_code,\n qrUrl: qrUrl.toString(),\n intervalSec: result.interval || 5,\n expireInSec: result.expire_in || 600,\n };\n}\n\n/**\n * Poll the registration endpoint until the user scans and confirms.\n */\nexport async function pollAppRegistration(params: {\n deviceCode: string;\n intervalSec: number;\n expireInSec: number;\n initialDomain: FeishuDomain;\n}): Promise<\n | { status: 'success'; result: AppRegistrationResult }\n | { status: 'access_denied' | 'expired' | 'timeout'; message?: string }\n | { status: 'error'; message: string }\n> {\n type PollResponse = {\n client_id?: string;\n client_secret?: string;\n user_info?: { open_id?: string; tenant_brand?: 'feishu' | 'lark' };\n error?: string;\n error_description?: string;\n };\n\n let domain: FeishuDomain = params.initialDomain;\n let intervalSec = params.intervalSec;\n let domainSwitched = false;\n const deadline = Date.now() + params.expireInSec * 1000;\n\n while (Date.now() < deadline) {\n let pollResponse: PollResponse;\n try {\n pollResponse = await postRegistration<PollResponse>(accountsBaseUrl(domain), {\n action: 'poll',\n device_code: params.deviceCode,\n tp: 'ob_cli_app',\n });\n } catch {\n await sleep(intervalSec * 1000);\n continue;\n }\n\n if (pollResponse.user_info?.tenant_brand) {\n const isLark = pollResponse.user_info.tenant_brand === 'lark';\n if (!domainSwitched && isLark) {\n domain = 'lark';\n domainSwitched = true;\n continue;\n }\n }\n\n if (pollResponse.client_id && pollResponse.client_secret) {\n return {\n status: 'success',\n result: {\n appId: pollResponse.client_id,\n appSecret: pollResponse.client_secret,\n domain,\n openId: pollResponse.user_info?.open_id,\n },\n };\n }\n\n if (pollResponse.error) {\n if (pollResponse.error === 'authorization_pending') {\n // Keep waiting.\n } else if (pollResponse.error === 'slow_down') {\n intervalSec += 5;\n } else if (pollResponse.error === 'access_denied') {\n return { status: 'access_denied' };\n } else if (pollResponse.error === 'expired_token') {\n return { status: 'expired' };\n } else {\n return {\n status: 'error',\n message: `${pollResponse.error}: ${pollResponse.error_description ?? 'unknown'}`,\n };\n }\n }\n\n await sleep(intervalSec * 1000);\n }\n\n return { status: 'timeout' };\n}\n\n/**\n * Print a QR code to the terminal (falls back to URL if qrcode-terminal is unavailable).\n */\nexport async function printQrCode(url: string): Promise<void> {\n try {\n const qrcodeTerminal = await import(/* @vite-ignore */ 'qrcode-terminal');\n await new Promise<void>((resolve) => {\n qrcodeTerminal.default.generate(url, { small: true }, (qr: string) => {\n process.stdout.write(qr.endsWith('\\n') ? qr : `${qr}\\n`);\n resolve();\n });\n });\n } catch {\n console.log('Open this URL in a browser to scan:\\n');\n console.log(url);\n }\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise<void>((resolve) => setTimeout(resolve, ms));\n}\n"],"mappings":";AAeA,MAAM,sBAAsB;AAC5B,MAAM,oBAAoB;AAC1B,MAAM,oBAAoB;AAC1B,MAAM,qBAAqB;AAE3B,SAAS,gBAAgB,QAA8B;AACrD,QAAO,WAAW,SAAS,oBAAoB;;AAGjD,eAAe,iBAAoB,SAAiB,MAA0C;AAO5F,QAAQ,OAAM,MANS,MAAM,GAAG,UAAU,qBAAqB;EAC7D,QAAQ;EACR,SAAS,EAAE,gBAAgB,qCAAqC;EAChE,MAAM,IAAI,gBAAgB,KAAK,CAAC,UAAU;EAC1C,QAAQ,YAAY,QAAQ,mBAAmB;EAChD,CAAC,EACqB,MAAM;;;;;AAM/B,eAAsB,oBAAoB,QAAwC;AAEhF,KAAI;EACF,MAAM,SAAS,MAAM,iBAA+B,gBAAgB,OAAO,EAAE,EAAE,QAAQ,QAAQ,CAAC;AAChG,SAAO,QAAQ,OAAO,wBAAwB,SAAS,gBAAgB,CAAC;SAClE;AACN,SAAO;;;;;;AAOX,eAAsB,qBAAqB,QAKxC;CAOD,MAAM,SAAS,MAAM,iBAAmC,gBAAgB,OAAO,EAAE;EAC/E,QAAQ;EACR,WAAW;EACX,aAAa;EACb,mBAAmB;EACpB,CAAC;CACF,MAAM,QAAQ,IAAI,IAAI,OAAO,0BAA0B;AACvD,OAAM,aAAa,IAAI,QAAQ,eAAe;AAC9C,OAAM,aAAa,IAAI,MAAM,aAAa;AAC1C,QAAO;EACL,YAAY,OAAO;EACnB,OAAO,MAAM,UAAU;EACvB,aAAa,OAAO,YAAY;EAChC,aAAa,OAAO,aAAa;EAClC;;;;;AAMH,eAAsB,oBAAoB,QASxC;CASA,IAAI,SAAuB,OAAO;CAClC,IAAI,cAAc,OAAO;CACzB,IAAI,iBAAiB;CACrB,MAAM,WAAW,KAAK,KAAK,GAAG,OAAO,cAAc;AAEnD,QAAO,KAAK,KAAK,GAAG,UAAU;EAC5B,IAAI;AACJ,MAAI;AACF,kBAAe,MAAM,iBAA+B,gBAAgB,OAAO,EAAE;IAC3E,QAAQ;IACR,aAAa,OAAO;IACpB,IAAI;IACL,CAAC;UACI;AACN,SAAM,MAAM,cAAc,IAAK;AAC/B;;AAGF,MAAI,aAAa,WAAW,cAAc;GACxC,MAAM,SAAS,aAAa,UAAU,iBAAiB;AACvD,OAAI,CAAC,kBAAkB,QAAQ;AAC7B,aAAS;AACT,qBAAiB;AACjB;;;AAIJ,MAAI,aAAa,aAAa,aAAa,cACzC,QAAO;GACL,QAAQ;GACR,QAAQ;IACN,OAAO,aAAa;IACpB,WAAW,aAAa;IACxB;IACA,QAAQ,aAAa,WAAW;IACjC;GACF;AAGH,MAAI,aAAa,MACf,KAAI,aAAa,UAAU,yBAAyB,YAEzC,aAAa,UAAU,YAChC,gBAAe;WACN,aAAa,UAAU,gBAChC,QAAO,EAAE,QAAQ,iBAAiB;WACzB,aAAa,UAAU,gBAChC,QAAO,EAAE,QAAQ,WAAW;MAE5B,QAAO;GACL,QAAQ;GACR,SAAS,GAAG,aAAa,MAAM,IAAI,aAAa,qBAAqB;GACtE;AAIL,QAAM,MAAM,cAAc,IAAK;;AAGjC,QAAO,EAAE,QAAQ,WAAW;;;;;AAM9B,eAAsB,YAAY,KAA4B;AAC5D,KAAI;EACF,MAAM,iBAAiB,MAAM;;GAA0B;;AACvD,QAAM,IAAI,SAAe,YAAY;AACnC,kBAAe,QAAQ,SAAS,KAAK,EAAE,OAAO,MAAM,GAAG,OAAe;AACpE,YAAQ,OAAO,MAAM,GAAG,SAAS,KAAK,GAAG,KAAK,GAAG,GAAG,IAAI;AACxD,aAAS;KACT;IACF;SACI;AACN,UAAQ,IAAI,wCAAwC;AACpD,UAAQ,IAAI,IAAI;;;AAIpB,SAAS,MAAM,IAA2B;AACxC,QAAO,IAAI,SAAe,YAAY,WAAW,SAAS,GAAG,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pairing.js","names":[],"sources":["../../../../../extensions/feishu/src/auth/pairing.ts"],"sourcesContent":["import {\n appendAllowFromIdSync,\n readAllowFromIdsSync,\n resolveStandardAllowFromPath,\n} from '@xopcai/xopc/channels/pairing/index.js';\n\nexport function readFrameworkAllowFromList(accountId: string): Array<string | number> {\n return readAllowFromIdsSync(resolveStandardAllowFromPath('feishu', accountId));\n}\n\nexport async function registerUserInFrameworkStore(params: {\n accountId: string;\n userId: string | number;\n}): Promise<{ changed: boolean }> {\n const { accountId, userId } = params;\n const id = String(typeof userId === 'number' ? userId : userId.trim());\n if (!id) return { changed: false };\n const changed = appendAllowFromIdSync(resolveStandardAllowFromPath('feishu', accountId), id).changed;\n return { changed };\n}\n\n"],"mappings":";;;AAMA,SAAgB,2BAA2B,WAA2C;AACpF,QAAO,qBAAqB,6BAA6B,UAAU,UAAU,CAAC;;AAGhF,eAAsB,6BAA6B,QAGjB;CAChC,MAAM,EAAE,WAAW,WAAW;CAC9B,MAAM,KAAK,OAAO,OAAO,WAAW,WAAW,SAAS,OAAO,MAAM,CAAC;AACtE,KAAI,CAAC,GAAI,QAAO,EAAE,SAAS,OAAO;AAElC,QAAO,EAAE,SADO,sBAAsB,6BAA6B,UAAU,UAAU,EAAE,GAAG,CAAC,SAC3E"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"paths.js","names":[],"sources":["../../../../../extensions/feishu/src/auth/paths.ts"],"sourcesContent":["import path from 'node:path';\n\nimport { resolveStateDir, ENV_VARS } from '@xopcai/xopc/config/paths-state.js';\n\nexport function resolveFeishuCredentialsDir(): string {\n const explicit = process.env[ENV_VARS.CREDENTIALS_DIR]?.trim();\n if (explicit) return explicit;\n return path.join(resolveStateDir(), 'credentials');\n}\n\nexport function resolveFeishuFrameworkAllowFromPath(accountId: string): string {\n const base = 'xopc-feishu'.replace(/[\\\\/:*?\"<>|]/g, '_');\n const safeAccount = accountId\n .trim()\n .toLowerCase()\n .replace(/[\\\\/:*?\"<>|]/g, '_')\n .replace(/\\.\\./g, '_');\n return path.join(resolveFeishuCredentialsDir(), `${base}-${safeAccount}-allowFrom.json`);\n}\n\n"],"mappings":";;;kBAE+E;AAE/E,SAAgB,8BAAsC;CACpD,MAAM,WAAW,QAAQ,IAAI,SAAS,kBAAkB,MAAM;AAC9D,KAAI,SAAU,QAAO;AACrB,QAAO,KAAK,KAAK,iBAAiB,EAAE,cAAc;;AAGpD,SAAgB,oCAAoC,WAA2B;CAC7E,MAAM,OAAO,cAAc,QAAQ,iBAAiB,IAAI;CACxD,MAAM,cAAc,UACjB,MAAM,CACN,aAAa,CACb,QAAQ,iBAAiB,IAAI,CAC7B,QAAQ,SAAS,IAAI;AACxB,QAAO,KAAK,KAAK,6BAA6B,EAAE,GAAG,KAAK,GAAG,YAAY,iBAAiB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"directory-adapter.js","names":[],"sources":["../../../../../extensions/feishu/src/directory/directory-adapter.ts"],"sourcesContent":["import type { ChannelDirectoryAdapter } from '@xopcai/xopc/channels/plugins/types.adapters.js';\nimport type { Config } from '@xopcai/xopc/config/schema.js';\n\nimport { resolveFeishuAccount } from '../state/accounts.js';\n\nexport function createFeishuDirectoryAdapter(): ChannelDirectoryAdapter {\n return {\n resolveDisplayName: async (params: { cfg: Config; id: string }) => {\n const id = params.id.trim();\n if (!id) return undefined;\n\n // Best-effort: if this looks like an open_id, try resolve user name.\n if (!id.startsWith('ou_') && !id.startsWith('on_')) {\n return undefined;\n }\n\n // Use default account for directory lookups for now.\n const account = resolveFeishuAccount(params.cfg, 'default');\n if (!account.configured) return undefined;\n\n const { createFeishuClient } = await import('../transport/client/client.js');\n const { api } = createFeishuClient(account);\n try {\n const res = await (api as any).contact.user.get({\n path: { user_id: id },\n params: { user_id_type: 'open_id' },\n });\n const name = res?.data?.user?.name ?? res?.data?.name;\n return typeof name === 'string' && name.trim() ? name.trim() : undefined;\n } catch {\n return undefined;\n }\n },\n };\n}\n\n"],"mappings":";;AAKA,SAAgB,+BAAwD;AACtE,QAAO,EACL,oBAAoB,OAAO,WAAwC;EACjE,MAAM,KAAK,OAAO,GAAG,MAAM;AAC3B,MAAI,CAAC,GAAI,QAAO,KAAA;AAGhB,MAAI,CAAC,GAAG,WAAW,MAAM,IAAI,CAAC,GAAG,WAAW,MAAM,CAChD;EAIF,MAAM,UAAU,qBAAqB,OAAO,KAAK,UAAU;AAC3D,MAAI,CAAC,QAAQ,WAAY,QAAO,KAAA;EAEhC,MAAM,EAAE,uBAAuB,MAAM,OAAO;EAC5C,MAAM,EAAE,QAAQ,mBAAmB,QAAQ;AAC3C,MAAI;GACF,MAAM,MAAM,MAAO,IAAY,QAAQ,KAAK,IAAI;IAC9C,MAAM,EAAE,SAAS,IAAI;IACrB,QAAQ,EAAE,cAAc,WAAW;IACpC,CAAC;GACF,MAAM,OAAO,KAAK,MAAM,MAAM,QAAQ,KAAK,MAAM;AACjD,UAAO,OAAO,SAAS,YAAY,KAAK,MAAM,GAAG,KAAK,MAAM,GAAG,KAAA;UACzD;AACN;;IAGL"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"format.js","names":[],"sources":["../../../../extensions/feishu/src/format.ts"],"sourcesContent":["/**\n * Feishu / Lark outbound text formatting.\n *\n * Agent output is often Markdown. Feishu card markdown (`tag: markdown`) expects\n * Lark-flavored Markdown (bold/italic/strikethrough, links, code fences, etc.), not\n * CommonMark-only constructs like `**bold**` left uninterpreted in plain `text`\n * messages — and plain text messages do not render Markdown at all.\n *\n * Pipeline mirrors Telegram: Markdown → shared IR → channel-specific rendering.\n */\n\nimport {\n markdownToIR,\n renderMarkdownWithMarkers,\n type MarkdownLinkSpan,\n type RenderStyleMap,\n} from '@xopcai/xopc/markdown/index.js';\n\nimport type { MarkdownTableMode } from '@xopcai/xopc/config/types.base.js';\n\nconst FEISHU_STYLE_MARKERS: RenderStyleMap = {\n bold: { open: '**', close: '**' },\n italic: { open: '*', close: '*' },\n strikethrough: { open: '~~', close: '~~' },\n code: { open: '`', close: '`' },\n code_block: { open: '```\\n', close: '\\n```' },\n // Lark markdown supports `> ...` block quotes; IR text omits leading `>`.\n blockquote: { open: '> ', close: '' },\n};\n\nfunction escapeFeishuMarkdownPlain(text: string): string {\n // Lark docs: escape markdown metacharacters with HTML entities when needed.\n return text\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(/\\*/g, '&#42;')\n .replace(/_/g, '&#95;')\n .replace(/~/g, '&#126;')\n .replace(/\\[/g, '&#91;')\n .replace(/\\]/g, '&#93;')\n .replace(/`/g, '&#96;');\n}\n\nfunction buildFeishuLinkRenderer(\n _irText: string\n): (link: MarkdownLinkSpan, text: string) => { start: number; end: number; open: string; close: string } | null {\n return (link, _text) => {\n const href = link.href.trim();\n if (!href) return null;\n\n const allowedSchemes = /^(https?|mailto):/i;\n if (!allowedSchemes.test(href) && !href.startsWith('#')) {\n return null;\n }\n\n // Lark examples commonly use `<https://...>` for bare URLs; labeled links use markdown syntax.\n const isBareUrl = _text.trim() === href;\n if (isBareUrl) {\n return {\n start: link.start,\n end: link.end,\n open: '<',\n close: `>`,\n };\n }\n\n return {\n start: link.start,\n end: link.end,\n open: '[',\n close: `](${href})`,\n };\n };\n}\n\nexport function renderFeishuCardMarkdown(\n markdown: string,\n options: { tableMode?: MarkdownTableMode } = {}\n): string {\n const ir = markdownToIR(markdown, {\n linkify: true,\n enableSpoilers: false,\n tableMode: options.tableMode ?? 'bullets',\n });\n\n return renderMarkdownWithMarkers(ir, {\n styleMarkers: FEISHU_STYLE_MARKERS,\n escapeText: escapeFeishuMarkdownPlain,\n buildLink: buildFeishuLinkRenderer(ir.text),\n });\n}\n\nexport function markdownToFeishuPlainText(markdown: string): string {\n const ir = markdownToIR(markdown, {\n linkify: true,\n enableSpoilers: false,\n tableMode: 'bullets',\n });\n\n let result = ir.text;\n const sortedLinks = [...ir.links].toSorted((a, b) => b.start - a.start);\n for (const link of sortedLinks) {\n const linkText = ir.text.slice(link.start, link.end);\n const replacement = `${linkText} (${link.href})`;\n result = result.slice(0, link.start) + replacement + result.slice(link.end);\n }\n\n return result;\n}\n\nexport function formatFeishuOutboundText(input: {\n text: string;\n renderMode?: 'auto' | 'raw' | 'card';\n /** When true, target is Feishu interactive markdown (card / card element). */\n forCardMarkdown: boolean;\n}): string {\n const raw = input.text ?? '';\n if (!raw.trim()) return raw;\n\n if (input.renderMode === 'raw') {\n return raw;\n }\n\n if (input.forCardMarkdown) {\n return renderFeishuCardMarkdown(raw);\n }\n\n return markdownToFeishuPlainText(raw);\n}\n"],"mappings":";;;;;;;;;;;;;;AAoBA,MAAM,uBAAuC;CAC3C,MAAM;EAAE,MAAM;EAAM,OAAO;EAAM;CACjC,QAAQ;EAAE,MAAM;EAAK,OAAO;EAAK;CACjC,eAAe;EAAE,MAAM;EAAM,OAAO;EAAM;CAC1C,MAAM;EAAE,MAAM;EAAK,OAAO;EAAK;CAC/B,YAAY;EAAE,MAAM;EAAS,OAAO;EAAS;CAE7C,YAAY;EAAE,MAAM;EAAM,OAAO;EAAI;CACtC;AAED,SAAS,0BAA0B,MAAsB;AAEvD,QAAO,KACJ,QAAQ,MAAM,QAAQ,CACtB,QAAQ,MAAM,OAAO,CACrB,QAAQ,MAAM,OAAO,CACrB,QAAQ,OAAO,QAAQ,CACvB,QAAQ,MAAM,QAAQ,CACtB,QAAQ,MAAM,SAAS,CACvB,QAAQ,OAAO,QAAQ,CACvB,QAAQ,OAAO,QAAQ,CACvB,QAAQ,MAAM,QAAQ;;AAG3B,SAAS,wBACP,SAC8G;AAC9G,SAAQ,MAAM,UAAU;EACtB,MAAM,OAAO,KAAK,KAAK,MAAM;AAC7B,MAAI,CAAC,KAAM,QAAO;AAGlB,MAAI,CAAC,qBAAe,KAAK,KAAK,IAAI,CAAC,KAAK,WAAW,IAAI,CACrD,QAAO;AAKT,MADkB,MAAM,MAAM,KAAK,KAEjC,QAAO;GACL,OAAO,KAAK;GACZ,KAAK,KAAK;GACV,MAAM;GACN,OAAO;GACR;AAGH,SAAO;GACL,OAAO,KAAK;GACZ,KAAK,KAAK;GACV,MAAM;GACN,OAAO,KAAK,KAAK;GAClB;;;AAIL,SAAgB,yBACd,UACA,UAA6C,EAAE,EACvC;CACR,MAAM,KAAK,aAAa,UAAU;EAChC,SAAS;EACT,gBAAgB;EAChB,WAAW,QAAQ,aAAa;EACjC,CAAC;AAEF,QAAO,0BAA0B,IAAI;EACnC,cAAc;EACd,YAAY;EACZ,WAAW,wBAAwB,GAAG,KAAK;EAC5C,CAAC;;AAGJ,SAAgB,0BAA0B,UAA0B;CAClE,MAAM,KAAK,aAAa,UAAU;EAChC,SAAS;EACT,gBAAgB;EAChB,WAAW;EACZ,CAAC;CAEF,IAAI,SAAS,GAAG;CAChB,MAAM,cAAc,CAAC,GAAG,GAAG,MAAM,CAAC,UAAU,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM;AACvE,MAAK,MAAM,QAAQ,aAAa;EAE9B,MAAM,cAAc,GADH,GAAG,KAAK,MAAM,KAAK,OAAO,KAAK,IACjB,CAAC,IAAI,KAAK,KAAK;AAC9C,WAAS,OAAO,MAAM,GAAG,KAAK,MAAM,GAAG,cAAc,OAAO,MAAM,KAAK,IAAI;;AAG7E,QAAO;;AAGT,SAAgB,yBAAyB,OAK9B;CACT,MAAM,MAAM,MAAM,QAAQ;AAC1B,KAAI,CAAC,IAAI,MAAM,CAAE,QAAO;AAExB,KAAI,MAAM,eAAe,MACvB,QAAO;AAGT,KAAI,MAAM,gBACR,QAAO,yBAAyB,IAAI;AAGtC,QAAO,0BAA0B,IAAI"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../extensions/feishu/src/index.ts"],"sourcesContent":["/**\n * Bundled Feishu/Lark channel extension entry.\n */\n\nimport { defineChannelPluginEntry } from '@xopcai/xopc/extensions/sdk/channel-entry.js';\n\nimport { feishuPlugin } from './plugin.js';\n\nexport { feishuPlugin } from './plugin.js';\nexport { defineChannelPluginEntry } from '@xopcai/xopc/extensions/sdk/channel-entry.js';\n\nexport default defineChannelPluginEntry({\n id: 'feishu',\n name: 'Feishu',\n description: 'Feishu/Lark messaging and workspace tools',\n plugin: feishuPlugin,\n});\n"],"mappings":";;;;;;AAWA,IAAA,cAAe,yBAAyB;CACtC,IAAI;CACJ,MAAM;CACN,aAAa;CACb,QAAQ;CACT,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"actions.js","names":[],"sources":["../../../../../extensions/feishu/src/outbound/actions.ts"],"sourcesContent":["import type { Config } from '@xopcai/xopc/config/schema.js';\n\nimport { resolveFeishuAccount } from '../state/accounts.js';\nimport { createFeishuClient } from '../transport/client/client.js';\n\nexport async function editMessageFeishu(params: {\n cfg: Config;\n accountId?: string;\n messageId: string;\n text: string;\n}): Promise<{ ok: boolean }> {\n const account = resolveFeishuAccount(params.cfg, params.accountId ?? 'default');\n const { api } = createFeishuClient(account);\n await (api as any).im.v1.message.update({\n path: { message_id: params.messageId },\n data: {\n msg_type: 'text',\n content: JSON.stringify({ text: params.text }),\n },\n });\n return { ok: true };\n}\n\nexport async function getMessageFeishu(params: {\n cfg: Config;\n accountId?: string;\n messageId: string;\n}): Promise<any> {\n const account = resolveFeishuAccount(params.cfg, params.accountId ?? 'default');\n const { api } = createFeishuClient(account);\n const res = await (api as any).im.message.get({\n path: { message_id: params.messageId },\n });\n return res?.data ?? res;\n}\n\nexport async function addReactionFeishu(params: {\n cfg: Config;\n accountId?: string;\n messageId: string;\n emojiType: string;\n}): Promise<any> {\n const account = resolveFeishuAccount(params.cfg, params.accountId ?? 'default');\n const { api } = createFeishuClient(account);\n return await (api as any).im.v1.messageReaction.create({\n path: { message_id: params.messageId },\n data: {\n reaction_type: { emoji_type: params.emojiType },\n },\n });\n}\n\nexport async function listReactionsFeishu(params: {\n cfg: Config;\n accountId?: string;\n messageId: string;\n emojiType?: string;\n}): Promise<any> {\n const account = resolveFeishuAccount(params.cfg, params.accountId ?? 'default');\n const { api } = createFeishuClient(account);\n return await (api as any).im.v1.messageReaction.list({\n path: { message_id: params.messageId },\n params: params.emojiType ? { reaction_type: params.emojiType } : {},\n });\n}\n\nexport async function removeReactionFeishu(params: {\n cfg: Config;\n accountId?: string;\n messageId: string;\n reactionId: string;\n}): Promise<any> {\n const account = resolveFeishuAccount(params.cfg, params.accountId ?? 'default');\n const { api } = createFeishuClient(account);\n return await (api as any).im.v1.messageReaction.delete({\n path: { message_id: params.messageId, reaction_id: params.reactionId },\n });\n}\n\nexport async function pinMessageFeishu(params: {\n cfg: Config;\n accountId?: string;\n messageId: string;\n}): Promise<any> {\n const account = resolveFeishuAccount(params.cfg, params.accountId ?? 'default');\n const { api } = createFeishuClient(account);\n return await (api as any).im.v1.pin.create({\n data: { message_id: params.messageId },\n });\n}\n\nexport async function unpinMessageFeishu(params: {\n cfg: Config;\n accountId?: string;\n messageId: string;\n}): Promise<any> {\n const account = resolveFeishuAccount(params.cfg, params.accountId ?? 'default');\n const { api } = createFeishuClient(account);\n return await (api as any).im.v1.pin.delete({\n path: { message_id: params.messageId },\n });\n}\n\nexport async function listPinsFeishu(params: {\n cfg: Config;\n accountId?: string;\n chatId: string;\n startTime?: string;\n endTime?: string;\n pageSize?: number;\n pageToken?: string;\n}): Promise<any> {\n const account = resolveFeishuAccount(params.cfg, params.accountId ?? 'default');\n const { api } = createFeishuClient(account);\n return await (api as any).im.v1.pin.list({\n params: {\n chat_id: params.chatId,\n ...(params.startTime ? { start_time: params.startTime } : {}),\n ...(params.endTime ? { end_time: params.endTime } : {}),\n ...(params.pageSize ? { page_size: params.pageSize } : {}),\n ...(params.pageToken ? { page_token: params.pageToken } : {}),\n },\n });\n}\n\n"],"mappings":";;;AAKA,eAAsB,kBAAkB,QAKX;CAE3B,MAAM,EAAE,QAAQ,mBADA,qBAAqB,OAAO,KAAK,OAAO,aAAa,UAC3B,CAAC;AAC3C,OAAO,IAAY,GAAG,GAAG,QAAQ,OAAO;EACtC,MAAM,EAAE,YAAY,OAAO,WAAW;EACtC,MAAM;GACJ,UAAU;GACV,SAAS,KAAK,UAAU,EAAE,MAAM,OAAO,MAAM,CAAC;GAC/C;EACF,CAAC;AACF,QAAO,EAAE,IAAI,MAAM;;AAGrB,eAAsB,iBAAiB,QAItB;CAEf,MAAM,EAAE,QAAQ,mBADA,qBAAqB,OAAO,KAAK,OAAO,aAAa,UAC3B,CAAC;CAC3C,MAAM,MAAM,MAAO,IAAY,GAAG,QAAQ,IAAI,EAC5C,MAAM,EAAE,YAAY,OAAO,WAAW,EACvC,CAAC;AACF,QAAO,KAAK,QAAQ;;AAGtB,eAAsB,kBAAkB,QAKvB;CAEf,MAAM,EAAE,QAAQ,mBADA,qBAAqB,OAAO,KAAK,OAAO,aAAa,UAC3B,CAAC;AAC3C,QAAO,MAAO,IAAY,GAAG,GAAG,gBAAgB,OAAO;EACrD,MAAM,EAAE,YAAY,OAAO,WAAW;EACtC,MAAM,EACJ,eAAe,EAAE,YAAY,OAAO,WAAW,EAChD;EACF,CAAC;;AAGJ,eAAsB,oBAAoB,QAKzB;CAEf,MAAM,EAAE,QAAQ,mBADA,qBAAqB,OAAO,KAAK,OAAO,aAAa,UAC3B,CAAC;AAC3C,QAAO,MAAO,IAAY,GAAG,GAAG,gBAAgB,KAAK;EACnD,MAAM,EAAE,YAAY,OAAO,WAAW;EACtC,QAAQ,OAAO,YAAY,EAAE,eAAe,OAAO,WAAW,GAAG,EAAE;EACpE,CAAC;;AAGJ,eAAsB,qBAAqB,QAK1B;CAEf,MAAM,EAAE,QAAQ,mBADA,qBAAqB,OAAO,KAAK,OAAO,aAAa,UAC3B,CAAC;AAC3C,QAAO,MAAO,IAAY,GAAG,GAAG,gBAAgB,OAAO,EACrD,MAAM;EAAE,YAAY,OAAO;EAAW,aAAa,OAAO;EAAY,EACvE,CAAC;;AAGJ,eAAsB,iBAAiB,QAItB;CAEf,MAAM,EAAE,QAAQ,mBADA,qBAAqB,OAAO,KAAK,OAAO,aAAa,UAC3B,CAAC;AAC3C,QAAO,MAAO,IAAY,GAAG,GAAG,IAAI,OAAO,EACzC,MAAM,EAAE,YAAY,OAAO,WAAW,EACvC,CAAC;;AAGJ,eAAsB,mBAAmB,QAIxB;CAEf,MAAM,EAAE,QAAQ,mBADA,qBAAqB,OAAO,KAAK,OAAO,aAAa,UAC3B,CAAC;AAC3C,QAAO,MAAO,IAAY,GAAG,GAAG,IAAI,OAAO,EACzC,MAAM,EAAE,YAAY,OAAO,WAAW,EACvC,CAAC;;AAGJ,eAAsB,eAAe,QAQpB;CAEf,MAAM,EAAE,QAAQ,mBADA,qBAAqB,OAAO,KAAK,OAAO,aAAa,UAC3B,CAAC;AAC3C,QAAO,MAAO,IAAY,GAAG,GAAG,IAAI,KAAK,EACvC,QAAQ;EACN,SAAS,OAAO;EAChB,GAAI,OAAO,YAAY,EAAE,YAAY,OAAO,WAAW,GAAG,EAAE;EAC5D,GAAI,OAAO,UAAU,EAAE,UAAU,OAAO,SAAS,GAAG,EAAE;EACtD,GAAI,OAAO,WAAW,EAAE,WAAW,OAAO,UAAU,GAAG,EAAE;EACzD,GAAI,OAAO,YAAY,EAAE,YAAY,OAAO,WAAW,GAAG,EAAE;EAC7D,EACF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"media-load.js","names":["fs"],"sources":["../../../../../extensions/feishu/src/outbound/media-load.ts"],"sourcesContent":["import { promises as fs } from 'node:fs';\nimport path from 'node:path';\nimport { Readable } from 'node:stream';\n\nimport { getWorkspacePath } from '@xopcai/xopc/config/workspace-path-helpers.js';\nimport type { Config } from '@xopcai/xopc/config/schema.js';\nimport { checkFileSafety } from '@xopcai/xopc/agent/prompt/safety.js';\nimport { getMimeType } from '@xopcai/xopc/channels/media.js';\n\nexport type LoadedMedia = {\n buffer: Buffer;\n mimeType: string;\n filename: string;\n stream: Readable;\n};\n\nfunction isPathUnderRoots(resolved: string, roots: string[]): boolean {\n const norm = path.normalize(resolved);\n for (const root of roots) {\n const r = path.normalize(root);\n if (norm === r || norm.startsWith(r + path.sep)) {\n return true;\n }\n }\n return false;\n}\n\nexport async function loadMediaForFeishu(\n cfg: Config,\n rawInput: string,\n opts: { maxBytes: number; localRoots?: readonly string[] },\n): Promise<LoadedMedia> {\n const input = rawInput.trim().startsWith('@') ? rawInput.trim().slice(1).trim() : rawInput.trim();\n if (!input) throw new Error('empty media reference');\n\n const isHttpUrl = /^https?:\\/\\//i.test(input);\n const isFileUrl = /^file:\\/\\//i.test(input);\n const isDataUrl = /^data:/i.test(input);\n\n if (isHttpUrl) {\n const res = await fetch(input, { redirect: 'follow' });\n if (!res.ok) throw new Error(`Failed to fetch media: HTTP ${res.status}`);\n const buf = Buffer.from(await res.arrayBuffer());\n if (buf.length > opts.maxBytes) throw new Error(`Media too large (${buf.length} bytes, max ${opts.maxBytes})`);\n const ct = res.headers.get('content-type') || 'application/octet-stream';\n const mime = ct.split(';')[0]?.trim() || 'application/octet-stream';\n const nameFromUrl = safeBasename(new URL(input).pathname) || 'media.bin';\n return { buffer: buf, mimeType: mime, filename: nameFromUrl, stream: Readable.from(buf) };\n }\n\n if (isDataUrl) {\n // data:[<mime>][;base64],<data>\n const m = /^data:([^;,]+)?(;base64)?,/i.exec(input);\n if (!m) throw new Error('Invalid data URL');\n const mime = (m[1] || 'application/octet-stream').trim();\n const isB64 = Boolean(m[2]);\n const dataPart = input.slice(m[0].length);\n const buf = isB64 ? Buffer.from(dataPart, 'base64') : Buffer.from(decodeURIComponent(dataPart), 'utf8');\n if (buf.length > opts.maxBytes) throw new Error(`Media too large (${buf.length} bytes, max ${opts.maxBytes})`);\n const filename = mime.startsWith('image/') ? `image.${mime.split('/')[1] || 'bin'}` : 'media.bin';\n return { buffer: buf, mimeType: mime, filename, stream: Readable.from(buf) };\n }\n\n // Heuristic: some callers persist raw base64 (no data: prefix). If it looks like base64, treat it as such.\n // This avoids mis-classifying huge base64 blobs as file paths during outbound replay.\n const b64Candidate = input.replace(/^['\"]|['\"]$/g, '');\n const looksBase64 =\n b64Candidate.length >= 256 &&\n b64Candidate.length % 4 === 0 &&\n /^[A-Za-z0-9+/=\\r\\n]+$/.test(b64Candidate) &&\n !b64Candidate.includes(path.sep);\n if (looksBase64) {\n const buf = Buffer.from(b64Candidate, 'base64');\n if (buf.length > 0) {\n if (buf.length > opts.maxBytes) throw new Error(`Media too large (${buf.length} bytes, max ${opts.maxBytes})`);\n const { mimeType, filename } = sniffBufferType(buf);\n return { buffer: buf, mimeType, filename, stream: Readable.from(buf) };\n }\n }\n\n let filePath = input;\n if (isFileUrl) filePath = input.slice('file://'.length);\n if (!path.isAbsolute(filePath)) {\n filePath = path.resolve(getWorkspacePath(cfg), filePath);\n }\n filePath = path.normalize(filePath);\n\n const safety = checkFileSafety('read', filePath);\n if (!safety.allowed) throw new Error(safety.message ?? 'File path not allowed');\n\n const workspace = getWorkspacePath(cfg);\n const roots = [workspace, ...(opts.localRoots ?? [])].filter(Boolean) as string[];\n const realPath = await fs.realpath(filePath).catch(() => filePath);\n const workspaceReal = await fs.realpath(workspace).catch(() => workspace);\n const resolvedRoots = await Promise.all(roots.map((r) => fs.realpath(r).catch(() => r)));\n if (!isPathUnderRoots(realPath, [workspaceReal, ...resolvedRoots])) {\n throw new Error(`Path not under workspace or allowed roots: ${filePath}`);\n }\n\n const st = await fs.stat(realPath).catch((err) => {\n const em = err instanceof Error ? err.message : String(err);\n throw new Error(`Media file not found or unreadable: ${filePath} (resolved: ${realPath}). ${em}`);\n });\n if (!st.isFile()) throw new Error(`Not a file: ${filePath}`);\n if (st.size > opts.maxBytes) throw new Error(`Media too large (${st.size} bytes, max ${opts.maxBytes})`);\n\n const buffer = await fs.readFile(realPath);\n const filename = path.basename(realPath) || 'media.bin';\n const mimeType = getMimeType('document', realPath);\n return { buffer, mimeType, filename, stream: Readable.from(buffer) };\n}\n\nfunction sniffBufferType(buf: Buffer): { mimeType: string; filename: string } {\n // PNG\n if (\n buf.length >= 8 &&\n buf[0] === 0x89 &&\n buf[1] === 0x50 &&\n buf[2] === 0x4e &&\n buf[3] === 0x47 &&\n buf[4] === 0x0d &&\n buf[5] === 0x0a &&\n buf[6] === 0x1a &&\n buf[7] === 0x0a\n ) {\n return { mimeType: 'image/png', filename: 'image.png' };\n }\n // JPEG\n if (buf.length >= 3 && buf[0] === 0xff && buf[1] === 0xd8 && buf[2] === 0xff) {\n return { mimeType: 'image/jpeg', filename: 'image.jpg' };\n }\n // GIF\n if (buf.length >= 6 && buf.subarray(0, 6).toString('ascii') === 'GIF89a') {\n return { mimeType: 'image/gif', filename: 'image.gif' };\n }\n // WEBP (RIFF....WEBP)\n if (\n buf.length >= 12 &&\n buf.subarray(0, 4).toString('ascii') === 'RIFF' &&\n buf.subarray(8, 12).toString('ascii') === 'WEBP'\n ) {\n return { mimeType: 'image/webp', filename: 'image.webp' };\n }\n // PDF\n if (buf.length >= 4 && buf.subarray(0, 4).toString('ascii') === '%PDF') {\n return { mimeType: 'application/pdf', filename: 'file.pdf' };\n }\n return { mimeType: 'application/octet-stream', filename: 'media.bin' };\n}\n\nfunction safeBasename(p: string): string {\n try {\n const b = path.basename(p);\n return b.replace(/[\\\\/:*?\"<>|]/g, '_');\n } catch {\n return '';\n }\n}\n\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"outbound-adapter.js","names":[],"sources":["../../../../../extensions/feishu/src/outbound/outbound-adapter.ts"],"sourcesContent":["import type {\n ChannelOutboundAdapter,\n ChannelOutboundContext,\n OutboundDeliveryResult,\n} from '@xopcai/xopc/channels/plugin-types.js';\nimport type { Config } from '@xopcai/xopc/config/schema.js';\n\nimport { resolveFeishuAccount } from '../state/accounts.js';\nimport { loadMediaForFeishu } from './media-load.js';\nimport { getFeishuBindingByMessageId, recordFeishuMessageBinding } from '../state/message-bindings.js';\n\nexport function createFeishuOutboundAdapter(): ChannelOutboundAdapter {\n return {\n deliveryMode: 'direct',\n chunkerMode: 'text',\n textChunkLimit: 4000,\n\n async sendText(ctx: ChannelOutboundContext): Promise<OutboundDeliveryResult> {\n const cfg = ctx.cfg as Config;\n const account = resolveFeishuAccount(cfg, ctx.accountId ?? 'default');\n if (!account.configured) {\n return { success: false, messageId: '', chatId: ctx.to, error: 'Feishu account is not configured' };\n }\n\n const { createFeishuClient } = await import('../transport/client/client.js');\n const { api } = createFeishuClient(account);\n const to = ctx.to;\n const raw = ctx.text ?? '';\n const renderMode = account.renderMode ?? 'auto';\n const preferCard = renderMode === 'card' || renderMode === 'auto';\n\n const { formatFeishuOutboundText } = await import('../format.js');\n const cardBody = formatFeishuOutboundText({\n text: raw,\n renderMode,\n forCardMarkdown: true,\n });\n const plainBody = formatFeishuOutboundText({\n text: raw,\n renderMode,\n forCardMarkdown: false,\n });\n\n const receive_id_type = isProbablyOpenId(to) ? 'open_id' : 'chat_id';\n const payloadText = {\n msg_type: 'text',\n content: JSON.stringify({ text: plainBody }),\n };\n const payloadCard = {\n msg_type: 'interactive',\n content: JSON.stringify({\n schema: '2.0',\n config: { update_multi: true },\n body: {\n elements: [\n {\n tag: 'markdown',\n element_id: 'md_1',\n content: cardBody,\n },\n ],\n },\n }),\n };\n\n const send = async (useCard: boolean) => {\n const p = useCard ? payloadCard : payloadText;\n return ctx.replyToId\n ? await (api as any).im.message.reply({\n path: { message_id: ctx.replyToId },\n data: {\n ...p,\n ...(ctx.threadId ? { reply_in_thread: true } : {}),\n },\n })\n : await (api as any).im.message.create({\n params: { receive_id_type },\n data: {\n receive_id: to,\n ...p,\n },\n });\n };\n\n const res = preferCard\n ? await send(true).catch(async () => await send(false))\n : await send(false);\n\n const messageId = res?.data?.message_id ?? res?.message_id ?? '';\n if (messageId && ctx.replyToId) {\n const parent = getFeishuBindingByMessageId(ctx.replyToId);\n if (parent) {\n recordFeishuMessageBinding({\n ...parent,\n messageId,\n });\n }\n }\n return { success: true, messageId, chatId: to };\n },\n\n async sendMedia(ctx: ChannelOutboundContext): Promise<OutboundDeliveryResult> {\n const cfg = ctx.cfg as Config;\n const account = resolveFeishuAccount(cfg, ctx.accountId ?? 'default');\n if (!account.configured) {\n return { success: false, messageId: '', chatId: ctx.to, error: 'Feishu account is not configured' };\n }\n if (!ctx.mediaUrl?.trim()) {\n return { success: false, messageId: '', chatId: ctx.to, error: 'Feishu sendMedia requires mediaUrl' };\n }\n\n const loaded = await loadMediaForFeishu(cfg, ctx.mediaUrl, {\n maxBytes: 20 * 1024 * 1024,\n localRoots: ctx.mediaLocalRoots,\n });\n\n const { createFeishuClient } = await import('../transport/client/client.js');\n const { api } = createFeishuClient(account);\n\n const isImage = loaded.mimeType.startsWith('image/');\n if (isImage) {\n const up = await (api as any).im.v1.image.create({\n data: {\n image_type: 'message',\n image: loaded.stream,\n },\n });\n const imageKey = up?.data?.image_key ?? up?.image_key;\n if (!imageKey) {\n return { success: false, messageId: '', chatId: ctx.to, error: 'Feishu image upload failed' };\n }\n\n const res = ctx.replyToId\n ? await (api as any).im.message.reply({\n path: { message_id: ctx.replyToId },\n data: {\n msg_type: 'image',\n content: JSON.stringify({ image_key: imageKey }),\n ...(ctx.threadId ? { reply_in_thread: true } : {}),\n },\n })\n : await (api as any).im.message.create({\n params: { receive_id_type: isProbablyOpenId(ctx.to) ? 'open_id' : 'chat_id' },\n data: {\n receive_id: ctx.to,\n msg_type: 'image',\n content: JSON.stringify({ image_key: imageKey }),\n },\n });\n const messageId = res?.data?.message_id ?? res?.message_id ?? '';\n if (messageId && ctx.replyToId) {\n const parent = getFeishuBindingByMessageId(ctx.replyToId);\n if (parent) {\n recordFeishuMessageBinding({ ...parent, messageId });\n }\n }\n return { success: true, messageId, chatId: ctx.to };\n }\n\n const fileType = guessFileType(loaded.filename);\n const up = await (api as any).im.v1.file.create({\n data: {\n file_type: fileType,\n file_name: loaded.filename,\n file: loaded.stream,\n },\n });\n const fileKey = up?.data?.file_key ?? up?.file_key;\n if (!fileKey) {\n return { success: false, messageId: '', chatId: ctx.to, error: 'Feishu file upload failed' };\n }\n\n const res = ctx.replyToId\n ? await (api as any).im.message.reply({\n path: { message_id: ctx.replyToId },\n data: {\n msg_type: 'file',\n content: JSON.stringify({ file_key: fileKey }),\n ...(ctx.threadId ? { reply_in_thread: true } : {}),\n },\n })\n : await (api as any).im.message.create({\n params: { receive_id_type: isProbablyOpenId(ctx.to) ? 'open_id' : 'chat_id' },\n data: {\n receive_id: ctx.to,\n msg_type: 'file',\n content: JSON.stringify({ file_key: fileKey }),\n },\n });\n\n const messageId = res?.data?.message_id ?? res?.message_id ?? '';\n if (messageId && ctx.replyToId) {\n const parent = getFeishuBindingByMessageId(ctx.replyToId);\n if (parent) {\n recordFeishuMessageBinding({ ...parent, messageId });\n }\n }\n return { success: true, messageId, chatId: ctx.to };\n },\n };\n}\n\nfunction isProbablyOpenId(to: string): boolean {\n const t = to.trim();\n return t.startsWith('ou_') || t.startsWith('on_') || t.startsWith('open_id:') || t.startsWith('user:');\n}\n\nfunction guessFileType(filename: string): string {\n const ext = filename.split('.').pop()?.toLowerCase() ?? '';\n if (!ext) return 'stream';\n return ext;\n}\n\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"feishu-pairing-prompt.js","names":[],"sources":["../../../../../extensions/feishu/src/pairing/feishu-pairing-prompt.ts"],"sourcesContent":["import { createLogger } from '@xopcai/xopc/utils/logger.js';\nimport {\n issuePairingChallenge,\n resolveStandardPairingPath,\n} from '@xopcai/xopc/channels/pairing/index.js';\n\nimport { createFeishuClient } from '../transport/client/client.js';\nimport type { ResolvedFeishuAccount } from '../state/accounts.js';\n\nconst log = createLogger('FeishuPairing');\n\n/**\n * When DM policy is `pairing` and the user is not yet allowlisted, send a one-time pairing code + CLI hint.\n */\nexport async function sendFeishuPairingPromptIfNeeded(params: {\n account: ResolvedFeishuAccount;\n messageId: string;\n threadId?: string;\n senderId: string;\n senderName?: string;\n isGroup: boolean;\n}): Promise<void> {\n if (params.isGroup) return;\n const { account, messageId, threadId, senderId, senderName } = params;\n if (!messageId.trim() || !senderId.trim()) return;\n\n try {\n const { api } = createFeishuClient(account);\n await issuePairingChallenge({\n channel: 'feishu',\n pairingFilePath: resolveStandardPairingPath('feishu', account.accountId),\n accountId: account.accountId,\n senderId,\n senderIdLine: `Your Feishu sender id: ${senderId}`,\n meta: senderName ? { displayName: senderName } : undefined,\n sendPairingReply: async (text) => {\n await (api as any).im.message.reply({\n path: { message_id: messageId },\n data: {\n msg_type: 'text',\n content: JSON.stringify({ text }),\n ...(threadId ? { reply_in_thread: true } : {}),\n },\n });\n },\n onCreated: ({ code }) => {\n log.info({ accountId: account.accountId, senderId, code }, 'Feishu pairing code issued');\n },\n onReplyError: (err) => {\n log.warn({ err, accountId: account.accountId, senderId }, 'Feishu pairing reply failed');\n },\n });\n } catch (err) {\n log.warn({ err, accountId: account.accountId, senderId }, 'Feishu pairing prompt failed');\n }\n}\n"],"mappings":";;;;;;aAA4D;AAS5D,MAAM,MAAM,aAAa,gBAAgB;;;;AAKzC,eAAsB,gCAAgC,QAOpC;AAChB,KAAI,OAAO,QAAS;CACpB,MAAM,EAAE,SAAS,WAAW,UAAU,UAAU,eAAe;AAC/D,KAAI,CAAC,UAAU,MAAM,IAAI,CAAC,SAAS,MAAM,CAAE;AAE3C,KAAI;EACF,MAAM,EAAE,QAAQ,mBAAmB,QAAQ;AAC3C,QAAM,sBAAsB;GAC1B,SAAS;GACT,iBAAiB,2BAA2B,UAAU,QAAQ,UAAU;GACxE,WAAW,QAAQ;GACnB;GACA,cAAc,0BAA0B;GACxC,MAAM,aAAa,EAAE,aAAa,YAAY,GAAG,KAAA;GACjD,kBAAkB,OAAO,SAAS;AAChC,UAAO,IAAY,GAAG,QAAQ,MAAM;KAClC,MAAM,EAAE,YAAY,WAAW;KAC/B,MAAM;MACJ,UAAU;MACV,SAAS,KAAK,UAAU,EAAE,MAAM,CAAC;MACjC,GAAI,WAAW,EAAE,iBAAiB,MAAM,GAAG,EAAE;MAC9C;KACF,CAAC;;GAEJ,YAAY,EAAE,WAAW;AACvB,QAAI,KAAK;KAAE,WAAW,QAAQ;KAAW;KAAU;KAAM,EAAE,6BAA6B;;GAE1F,eAAe,QAAQ;AACrB,QAAI,KAAK;KAAE;KAAK,WAAW,QAAQ;KAAW;KAAU,EAAE,8BAA8B;;GAE3F,CAAC;UACK,KAAK;AACZ,MAAI,KAAK;GAAE;GAAK,WAAW,QAAQ;GAAW;GAAU,EAAE,+BAA+B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pairing-config-resolver.js","names":[],"sources":["../../../../extensions/feishu/src/pairing-config-resolver.ts"],"sourcesContent":["import type { Config } from '@xopcai/xopc/config/schema.js';\nimport {\n registerPairingChannelResolver,\n resolveStandardAllowFromPath,\n resolveStandardPairingPath,\n} from '@xopcai/xopc/channels/pairing/index.js';\n\nfunction feishuBlock(config: Config | undefined): Record<string, unknown> | null {\n const ch = config?.channels?.feishu;\n return ch && typeof ch === 'object' && !Array.isArray(ch) ? (ch as Record<string, unknown>) : null;\n}\n\nregisterPairingChannelResolver('feishu', {\n resolvePaths(accountId) {\n return {\n pairingPath: resolveStandardPairingPath('feishu', accountId),\n allowPath: resolveStandardAllowFromPath('feishu', accountId),\n };\n },\n resolveAccountIds(config) {\n const block = feishuBlock(config);\n const accounts = block?.accounts;\n if (accounts && typeof accounts === 'object' && !Array.isArray(accounts)) {\n const keys = Object.keys(accounts as Record<string, unknown>).sort();\n if (keys.length > 0) return keys;\n }\n const appId = typeof block?.appId === 'string' ? block.appId.trim() : '';\n const appSecret = typeof block?.appSecret === 'string' ? block.appSecret.trim() : '';\n return appId && appSecret ? ['default'] : [];\n },\n});\n"],"mappings":";;;AAOA,SAAS,YAAY,QAA4D;CAC/E,MAAM,KAAK,QAAQ,UAAU;AAC7B,QAAO,MAAM,OAAO,OAAO,YAAY,CAAC,MAAM,QAAQ,GAAG,GAAI,KAAiC;;AAGhG,+BAA+B,UAAU;CACvC,aAAa,WAAW;AACtB,SAAO;GACL,aAAa,2BAA2B,UAAU,UAAU;GAC5D,WAAW,6BAA6B,UAAU,UAAU;GAC7D;;CAEH,kBAAkB,QAAQ;EACxB,MAAM,QAAQ,YAAY,OAAO;EACjC,MAAM,WAAW,OAAO;AACxB,MAAI,YAAY,OAAO,aAAa,YAAY,CAAC,MAAM,QAAQ,SAAS,EAAE;GACxE,MAAM,OAAO,OAAO,KAAK,SAAoC,CAAC,MAAM;AACpE,OAAI,KAAK,SAAS,EAAG,QAAO;;EAE9B,MAAM,QAAQ,OAAO,OAAO,UAAU,WAAW,MAAM,MAAM,MAAM,GAAG;EACtE,MAAM,YAAY,OAAO,OAAO,cAAc,WAAW,MAAM,UAAU,MAAM,GAAG;AAClF,SAAO,SAAS,YAAY,CAAC,UAAU,GAAG,EAAE;;CAE/C,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.js","names":[],"sources":["../../../../extensions/feishu/src/plugin.ts"],"sourcesContent":["/**\n * Feishu/Lark channel plugin (Socket Mode first).\n *\n * This is intentionally decomposed into small modules so we can grow toward\n * openclaw `extensions/feishu` parity without turning `plugin.ts` into a monolith.\n */\n\nimport { isDeepStrictEqual } from 'node:util';\n\nimport './pairing-config-resolver.js';\n\nimport type { Config } from '@xopcai/xopc/config/schema.js';\nimport type { MessageBus } from '@xopcai/xopc/infra/bus/index.js';\nimport type {\n ChannelCapabilities,\n ChannelDoctorAdapter,\n ChannelMessageActionAdapter,\n ChannelOutboundAdapter,\n ChannelPlugin,\n ChannelPluginDefaults,\n ChannelPluginInitOptions,\n ChannelPluginReloadMeta,\n ChannelPluginStartOptions,\n ChannelSecurityAdapter,\n ChannelSecurityContext,\n ChannelStatusAdapter,\n ChatType,\n} from '@xopcai/xopc/channels/plugin-types.js';\nimport type {\n ChannelCliLoginAdapter,\n ChannelRuntimeActionAdapter,\n ChannelOnboardAdapter,\n} from '@xopcai/xopc/channels/plugins/types.adapters.js';\nimport { createLogger } from '@xopcai/xopc/utils/logger.js';\nimport { evaluateAccess, resolveDmPolicy, resolveGroupPolicy } from '@xopcai/xopc/channels/security.js';\nimport { createStandardPairingAdapter } from '@xopcai/xopc/channels/pairing/pairing-store-adapter.js';\n\nimport { FeishuConfigSchema, type FeishuConfig } from './schema/config-schema.js';\nimport { listFeishuAccountIds, resolveFeishuAccount, type ResolvedFeishuAccount } from './state/accounts.js';\nimport { createFeishuOutboundAdapter } from './outbound/outbound-adapter.js';\nimport { createFeishuStatusAdapter } from './status/status-adapter.js';\nimport { createFeishuDoctorAdapter } from './status/doctor.js';\nimport { feishuConfigSurface } from './ui/config-surface.js';\nimport { createFeishuStreamingAdapter } from './streaming/streaming-adapter.js';\nimport { readFrameworkAllowFromList } from './auth/pairing.js';\nimport { feishuGatewaySetupActions } from './adapters/gateway-setup.js';\nimport { handleFeishuChannelMessageAction } from './actions/message-action-handler.js';\nimport { createFeishuInboundPipeline, type FeishuInboundWork } from './transport/reliability/inbound-pipeline.js';\n\nconst log = createLogger('FeishuPlugin');\n\nexport class FeishuChannelPlugin implements ChannelPlugin<ResolvedFeishuAccount> {\n readonly id = 'feishu' as const;\n\n readonly reload: ChannelPluginReloadMeta = {\n configPrefixes: ['channels.feishu'],\n };\n\n readonly meta = {\n id: 'feishu',\n label: 'Feishu',\n selectionLabel: 'Feishu/Lark (飞书)',\n docsPath: '/channels/feishu',\n blurb: 'Feishu/Lark enterprise messaging (Socket Mode).',\n order: 4,\n deferConnectUntilAfterListen: true,\n } as const;\n\n readonly capabilities: ChannelCapabilities = {\n chatTypes: ['direct', 'channel'] as ChatType[],\n reactions: true,\n threads: true,\n media: true,\n polls: false,\n nativeCommands: false,\n blockStreaming: false,\n edit: true,\n reply: true,\n } as any;\n\n readonly defaults: ChannelPluginDefaults = {\n queue: { debounceMs: 350 },\n outbound: { textChunkLimit: 4000 },\n streaming: {\n blockStreamingCoalesce: {\n minChars: 200,\n idleMs: 2500,\n },\n },\n };\n\n readonly configSchema = {\n schema: {},\n validate: (raw: unknown) => {\n const r = FeishuConfigSchema.safeParse(raw);\n return r.success ? { ok: true as const } : { ok: false as const, errors: [r.error.message] };\n },\n };\n\n readonly configSurface = feishuConfigSurface;\n\n readonly pairing = createStandardPairingAdapter('feishu');\n\n onboard: ChannelOnboardAdapter = {\n isConfigured: (config) => {\n const feishu = config.channels?.feishu as Record<string, unknown> | undefined;\n const appId = typeof feishu?.appId === 'string' ? feishu.appId.trim() : '';\n const appSecret = typeof feishu?.appSecret === 'string' ? feishu.appSecret.trim() : '';\n return feishu?.enabled === true && Boolean(appId && appSecret);\n },\n configure: async (config) => {\n const { feishuOnboardAdapter } = await import('./adapters/onboard-cli.js');\n return feishuOnboardAdapter.configure(config);\n },\n };\n\n readonly cliLogin: ChannelCliLoginAdapter = {\n runLogin: async (params) => {\n const { feishuCliLoginAdapter } = await import('./adapters/cli-login.js');\n return feishuCliLoginAdapter.runLogin(params);\n },\n };\n\n readonly runtimeActions: ChannelRuntimeActionAdapter = feishuGatewaySetupActions;\n\n private bus!: MessageBus;\n private cfg!: Config;\n private abortControllers = new Map<string, AbortController>();\n private inboundPipeline?: ReturnType<typeof createFeishuInboundPipeline>;\n /** Unregister fn for the workflow-progress capability registered against the global broker. */\n private workflowProgressUnregister: (() => void) | null = null;\n\n config = {\n listAccountIds: (cfg: Config) => listFeishuAccountIds(cfg),\n resolveAccount: (cfg: Config, accountId?: string | null) => resolveFeishuAccount(cfg, accountId),\n isConfigured: async (account: ResolvedFeishuAccount) => account.configured,\n describeAccount: (account: ResolvedFeishuAccount) => ({\n accountId: account.accountId,\n channelId: 'feishu',\n enabled: account.enabled,\n configured: account.configured,\n status: account.configured ? undefined : 'unconfigured',\n }),\n };\n\n security: ChannelSecurityAdapter<ResolvedFeishuAccount> = {\n resolveDmPolicy: ({ account }: { account: ResolvedFeishuAccount }) =>\n resolveDmPolicy(account.dmPolicy, 'open'),\n resolveGroupPolicy: ({ account }: { account: ResolvedFeishuAccount }) =>\n resolveGroupPolicy(account.groupPolicy, 'allowlist'),\n checkAccess: (ctx: ChannelSecurityContext, account: ResolvedFeishuAccount, _cfg: Config) => {\n const isDm = !ctx.isGroup;\n const frameworkAllowFrom = readFrameworkAllowFromList(account.accountId);\n const baseAllowFrom = isDm ? account.allowFrom : account.groupAllowFrom ?? account.allowFrom;\n const allowFrom = [...(baseAllowFrom ?? []), ...frameworkAllowFrom];\n if (isDm) {\n return evaluateAccess({\n context: {\n channel: 'feishu',\n accountId: account.accountId,\n chatId: ctx.chatId,\n senderId: ctx.senderId,\n senderName: ctx.senderName,\n isGroup: false,\n isDm: true,\n },\n dmPolicy: account.dmPolicy,\n allowFrom,\n });\n }\n return evaluateAccess({\n context: {\n channel: 'feishu',\n accountId: account.accountId,\n chatId: ctx.chatId,\n senderId: ctx.senderId,\n senderName: ctx.senderName,\n isGroup: true,\n isDm: false,\n },\n groupPolicy: account.groupPolicy,\n allowFrom,\n });\n },\n };\n\n outbound: ChannelOutboundAdapter = createFeishuOutboundAdapter();\n\n streaming = createFeishuStreamingAdapter(() => this.cfg);\n\n status: ChannelStatusAdapter<ResolvedFeishuAccount> = createFeishuStatusAdapter();\n\n doctor: ChannelDoctorAdapter = createFeishuDoctorAdapter();\n\n directory = {\n resolveDisplayName: async (params) => {\n const { createFeishuDirectoryAdapter } = await import('./directory/directory-adapter.js');\n return createFeishuDirectoryAdapter().resolveDisplayName?.(params);\n },\n };\n\n actions: ChannelMessageActionAdapter = {\n handleAction: handleFeishuChannelMessageAction,\n };\n\n agentTools = [\n {\n name: 'feishu_read',\n description: 'Read a Feishu message by messageId (debug/utility).',\n execute: async (toolCtx, args) => {\n const messageId = typeof (args as any)?.messageId === 'string' ? (args as any).messageId : toolCtx.messageId;\n if (!messageId) throw new Error('feishu_read requires messageId');\n const { getMessageFeishu } = await import('./outbound/actions.js');\n return await getMessageFeishu({ cfg: this.cfg, accountId: toolCtx.accountId, messageId });\n },\n },\n {\n name: 'feishu_edit',\n description: 'Edit a Feishu message by messageId.',\n execute: async (toolCtx, args) => {\n const messageId = typeof (args as any)?.messageId === 'string' ? (args as any).messageId : toolCtx.messageId;\n const text = typeof (args as any)?.text === 'string' ? (args as any).text : '';\n if (!messageId) throw new Error('feishu_edit requires messageId');\n if (!text.trim()) throw new Error('feishu_edit requires text');\n const { editMessageFeishu } = await import('./outbound/actions.js');\n return await editMessageFeishu({ cfg: this.cfg, accountId: toolCtx.accountId, messageId, text });\n },\n },\n {\n name: 'feishu_scopes_probe',\n description: 'Probe Feishu credentials/scopes (placeholder for full docs/wiki/drive tools).',\n execute: async (toolCtx) => {\n const { feishuWhoAmI } = await import('./tools/tools.js');\n return await feishuWhoAmI({ cfg: this.cfg, accountId: toolCtx.accountId });\n },\n },\n {\n name: 'feishu_react',\n description: 'Add/remove/list reactions for a message.',\n execute: async (toolCtx, args) => {\n const a = args as any;\n const messageId = typeof a?.messageId === 'string' ? a.messageId : toolCtx.messageId;\n if (!messageId) throw new Error('feishu_react requires messageId');\n\n const account = resolveFeishuAccount(this.cfg, toolCtx.accountId ?? 'default');\n const enabled = (account.actions as any)?.reactions !== false;\n if (!enabled) {\n throw new Error('Feishu reactions are disabled via channels.feishu.actions.reactions');\n }\n\n if (a?.list === true) {\n const { listReactionsFeishu } = await import('./outbound/actions.js');\n return await listReactionsFeishu({\n cfg: this.cfg,\n accountId: toolCtx.accountId,\n messageId,\n emojiType: typeof a?.emojiType === 'string' ? a.emojiType : undefined,\n });\n }\n\n if (a?.remove === true) {\n const reactionId = typeof a?.reactionId === 'string' ? a.reactionId : '';\n if (!reactionId) throw new Error('feishu_react remove requires reactionId');\n const { removeReactionFeishu } = await import('./outbound/actions.js');\n return await removeReactionFeishu({ cfg: this.cfg, accountId: toolCtx.accountId, messageId, reactionId });\n }\n\n const emojiType = typeof a?.emojiType === 'string' ? a.emojiType : '';\n if (!emojiType) throw new Error('feishu_react requires emojiType');\n const { addReactionFeishu } = await import('./outbound/actions.js');\n return await addReactionFeishu({ cfg: this.cfg, accountId: toolCtx.accountId, messageId, emojiType });\n },\n },\n {\n name: 'feishu_pins',\n description: 'Pin/unpin/list pins for a chat.',\n execute: async (toolCtx, args) => {\n const a = args as any;\n const action = typeof a?.action === 'string' ? a.action : '';\n if (action === 'list') {\n const chatId = typeof a?.chatId === 'string' ? a.chatId : toolCtx.chatId;\n if (!chatId) throw new Error('feishu_pins list requires chatId');\n const { listPinsFeishu } = await import('./outbound/actions.js');\n return await listPinsFeishu({\n cfg: this.cfg,\n accountId: toolCtx.accountId,\n chatId,\n startTime: typeof a?.startTime === 'string' ? a.startTime : undefined,\n endTime: typeof a?.endTime === 'string' ? a.endTime : undefined,\n pageSize: typeof a?.pageSize === 'number' ? a.pageSize : undefined,\n pageToken: typeof a?.pageToken === 'string' ? a.pageToken : undefined,\n });\n }\n const messageId = typeof a?.messageId === 'string' ? a.messageId : toolCtx.messageId;\n if (!messageId) throw new Error('feishu_pins requires messageId');\n if (action === 'pin') {\n const { pinMessageFeishu } = await import('./outbound/actions.js');\n return await pinMessageFeishu({ cfg: this.cfg, accountId: toolCtx.accountId, messageId });\n }\n if (action === 'unpin') {\n const { unpinMessageFeishu } = await import('./outbound/actions.js');\n return await unpinMessageFeishu({ cfg: this.cfg, accountId: toolCtx.accountId, messageId });\n }\n throw new Error('feishu_pins requires action: pin | unpin | list');\n },\n },\n ];\n\n async init(options: ChannelPluginInitOptions): Promise<void> {\n this.bus = options.bus;\n this.cfg = options.config;\n const defaultDebounce = this.defaults.queue?.debounceMs ?? 350;\n this.inboundPipeline = createFeishuInboundPipeline({\n bus: this.bus,\n defaultDebounceMs: defaultDebounce,\n onError: (err, items) => {\n log.error({ err, count: items.length }, 'Feishu inbound pipeline flush failed');\n },\n });\n\n await this.registerWorkflowProgressCapability();\n\n log.debug('Feishu plugin initialized');\n }\n\n private async registerWorkflowProgressCapability(): Promise<void> {\n // Lazy-load workflow progress so Feishu runtime startup does not pull the\n // agent/workflow/provider graph into Electron's dynamic extension path.\n const [{ getWorkflowProgressBroker }, { createFeishuWorkflowProgressCapability }] = await Promise.all([\n import('@xopcai/xopc/agent/workflow/progress-broker.js'),\n import('./workflow-progress.js'),\n ]);\n this.workflowProgressUnregister = getWorkflowProgressBroker().registerChannel(\n createFeishuWorkflowProgressCapability({ getConfig: () => this.cfg }),\n );\n }\n\n async start(options?: ChannelPluginStartOptions): Promise<void> {\n const section = this.cfg.channels?.feishu as FeishuConfig | undefined;\n if (!section || section.enabled !== true) {\n return;\n }\n\n const ids = options?.accountId ? [options.accountId] : listFeishuAccountIds(this.cfg);\n for (const accountId of ids) {\n const account = resolveFeishuAccount(this.cfg, accountId);\n if (!account.enabled || !account.configured) continue;\n if (this.abortControllers.has(accountId)) continue;\n\n const ac = new AbortController();\n this.abortControllers.set(accountId, ac);\n\n const defaultDebounce = this.defaults.queue?.debounceMs ?? 350;\n const enqueueInbound = (work: FeishuInboundWork) => {\n const p = this.inboundPipeline;\n if (!p) {\n return this.bus.publishInbound(work.inbound);\n }\n return p.enqueue(work);\n };\n\n const monitorDeps = {\n account,\n config: this.cfg,\n enqueueInbound,\n inboundDebounceDefaultMs: defaultDebounce,\n abortSignal: ac.signal,\n security: {\n checkAccess: (ctx: ChannelSecurityContext) => this.security.checkAccess?.(ctx, account, this.cfg),\n },\n };\n const runner =\n account.connectionMode === 'webhook'\n ? (await import('./transport/webhook/monitor.js')).createFeishuWebhookMonitor(monitorDeps)\n : (await import('./transport/socket-mode/monitor.js')).createFeishuSocketModeMonitor(monitorDeps);\n\n void runner.run().catch((err) => {\n if ((err as { name?: string } | undefined)?.name === 'AbortError') {\n log.debug({ accountId }, 'Feishu monitor stopped');\n return;\n }\n log.error({ err, accountId }, 'Feishu monitor exited with error');\n });\n\n log.info({ accountId, mode: account.connectionMode }, 'Feishu monitor started');\n }\n }\n\n async stop(accountId?: string): Promise<void> {\n try {\n await this.inboundPipeline?.flushAll();\n } catch (err) {\n log.warn({ err }, 'Feishu inbound pipeline flushAll failed');\n }\n const ids = accountId ? [accountId] : [...this.abortControllers.keys()];\n for (const id of ids) {\n const ac = this.abortControllers.get(id);\n if (ac) {\n ac.abort();\n this.abortControllers.delete(id);\n }\n }\n // Only unregister the broker capability on a full stop. Per-account stops\n // still leave other accounts capable of delivering progress through the\n // same registered cap.\n if (!accountId) {\n this.workflowProgressUnregister?.();\n this.workflowProgressUnregister = null;\n }\n }\n\n channelIsRunning(cfg: Config): boolean {\n const ids = listFeishuAccountIds(cfg);\n return ids.some((id) => {\n const a = resolveFeishuAccount(cfg, id);\n return a.enabled !== false && a.configured && this.abortControllers.has(id);\n });\n }\n\n async onConfigUpdated(cfg: Config): Promise<void> {\n const prev = this.cfg.channels?.feishu as unknown;\n const next = cfg.channels?.feishu as { enabled?: boolean } | undefined;\n const channelOff = !next || next.enabled !== true;\n\n if (channelOff) {\n this.cfg = cfg;\n await this.stop();\n return;\n }\n\n this.cfg = cfg;\n\n if (isDeepStrictEqual(prev, next) && this.channelIsRunning(cfg)) {\n return;\n }\n\n await this.stop();\n await this.start();\n }\n}\n\nexport const feishuPlugin = new FeishuChannelPlugin();\n"],"mappings":"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"}