@xopcai/xopc 0.0.149 → 0.0.151

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2914) hide show
  1. package/README.md +10 -0
  2. package/README.zh-CN.md +10 -0
  3. package/dist/browser-ext/manifest.json +1 -1
  4. package/dist/extensions/dashscope/src/image-generation-provider.js +0 -2
  5. package/dist/extensions/demo-memory/src/index.js +0 -2
  6. package/dist/extensions/fal/src/image-generation-provider.js +0 -2
  7. package/dist/extensions/feishu/src/actions/message-action-handler.js +0 -2
  8. package/dist/extensions/feishu/src/adapters/cli-login.js +0 -2
  9. package/dist/extensions/feishu/src/adapters/gateway-setup.js +0 -2
  10. package/dist/extensions/feishu/src/adapters/onboard-cli.js +0 -2
  11. package/dist/extensions/feishu/src/auth/app-registration.js +0 -2
  12. package/dist/extensions/feishu/src/auth/pairing.js +0 -2
  13. package/dist/extensions/feishu/src/auth/paths.js +0 -2
  14. package/dist/extensions/feishu/src/directory/directory-adapter.js +0 -2
  15. package/dist/extensions/feishu/src/format.js +0 -2
  16. package/dist/extensions/feishu/src/index.js +0 -2
  17. package/dist/extensions/feishu/src/outbound/actions.js +0 -2
  18. package/dist/extensions/feishu/src/outbound/media-load.js +0 -2
  19. package/dist/extensions/feishu/src/outbound/outbound-adapter.js +0 -2
  20. package/dist/extensions/feishu/src/pairing/feishu-pairing-prompt.js +0 -2
  21. package/dist/extensions/feishu/src/pairing-config-resolver.js +0 -2
  22. package/dist/extensions/feishu/src/plugin.js +0 -2
  23. package/dist/extensions/feishu/src/schema/config-schema.js +0 -2
  24. package/dist/extensions/feishu/src/state/accounts.js +0 -2
  25. package/dist/extensions/feishu/src/state/message-bindings.js +0 -2
  26. package/dist/extensions/feishu/src/state/thread-bindings.js +0 -2
  27. package/dist/extensions/feishu/src/status/doctor.js +0 -2
  28. package/dist/extensions/feishu/src/status/status-adapter.js +0 -2
  29. package/dist/extensions/feishu/src/streaming/streaming-adapter.js +0 -2
  30. package/dist/extensions/feishu/src/subagent-hooks.js +0 -2
  31. package/dist/extensions/feishu/src/tools/docx/docx-batch-insert.js +0 -2
  32. package/dist/extensions/feishu/src/tools/docx/docx-color-text.d.ts +6 -3386
  33. package/dist/extensions/feishu/src/tools/docx/docx-color-text.js +0 -2
  34. package/dist/extensions/feishu/src/tools/docx/docx-table-ops.d.ts +16 -16927
  35. package/dist/extensions/feishu/src/tools/docx/docx-table-ops.js +0 -2
  36. package/dist/extensions/feishu/src/tools/tools.js +0 -2
  37. package/dist/extensions/feishu/src/transport/client/client.js +2 -4
  38. package/dist/extensions/feishu/src/transport/client/lark-sdk-logger.js +0 -2
  39. package/dist/extensions/feishu/src/transport/client/lark-sdk.d.ts +3 -0
  40. package/dist/extensions/feishu/src/transport/client/lark-sdk.js +14 -0
  41. package/dist/extensions/feishu/src/transport/reliability/dedupe.js +0 -2
  42. package/dist/extensions/feishu/src/transport/reliability/inbound-pipeline.js +0 -2
  43. package/dist/extensions/feishu/src/transport/socket-mode/monitor.js +0 -2
  44. package/dist/extensions/feishu/src/transport/socket-mode/retry.js +0 -2
  45. package/dist/extensions/feishu/src/transport/text/mentions.js +0 -2
  46. package/dist/extensions/feishu/src/transport/webhook/monitor.js +3 -5
  47. package/dist/extensions/feishu/src/ui/config-surface.js +0 -2
  48. package/dist/extensions/feishu/src/workflow-progress.js +0 -2
  49. package/dist/extensions/google/src/image-generation-provider.js +0 -2
  50. package/dist/extensions/minimax/src/image-generation-provider.js +0 -2
  51. package/dist/extensions/openai/src/image-generation-provider.js +0 -2
  52. package/dist/extensions/telegram/src/access-control.js +0 -2
  53. package/dist/extensions/telegram/src/account-manager.js +0 -2
  54. package/dist/extensions/telegram/src/actions/message-actions.js +0 -2
  55. package/dist/extensions/telegram/src/adapters/command-adapter.js +0 -2
  56. package/dist/extensions/telegram/src/adapters/config-adapter.js +0 -2
  57. package/dist/extensions/telegram/src/adapters/debounce-keys.js +0 -2
  58. package/dist/extensions/telegram/src/adapters/gateway-adapter.js +0 -2
  59. package/dist/extensions/telegram/src/adapters/gateway-setup.js +0 -2
  60. package/dist/extensions/telegram/src/adapters/inbound-access.js +0 -2
  61. package/dist/extensions/telegram/src/adapters/index.js +0 -2
  62. package/dist/extensions/telegram/src/adapters/onboard-cli.js +0 -2
  63. package/dist/extensions/telegram/src/adapters/outbound-adapter.js +0 -2
  64. package/dist/extensions/telegram/src/adapters/security-adapter.js +0 -2
  65. package/dist/extensions/telegram/src/adapters/setup-wizard.js +0 -2
  66. package/dist/extensions/telegram/src/adapters/status-adapter.js +0 -2
  67. package/dist/extensions/telegram/src/adapters/streaming-adapter.js +0 -2
  68. package/dist/extensions/telegram/src/api-root.js +0 -2
  69. package/dist/extensions/telegram/src/approval-delivery.js +0 -2
  70. package/dist/extensions/telegram/src/approval-store.js +0 -2
  71. package/dist/extensions/telegram/src/caption.js +0 -2
  72. package/dist/extensions/telegram/src/command-handler.js +0 -2
  73. package/dist/extensions/telegram/src/config-schema.js +0 -2
  74. package/dist/extensions/telegram/src/conversation-id.js +0 -2
  75. package/dist/extensions/telegram/src/dedupe.js +0 -2
  76. package/dist/extensions/telegram/src/delivery-chat-id.js +0 -2
  77. package/dist/extensions/telegram/src/doctor.js +0 -2
  78. package/dist/extensions/telegram/src/draft-stream-lifecycle.js +0 -2
  79. package/dist/extensions/telegram/src/draft-stream-loop.js +0 -2
  80. package/dist/extensions/telegram/src/draft-stream.js +0 -2
  81. package/dist/extensions/telegram/src/errors.js +0 -2
  82. package/dist/extensions/telegram/src/exec-approval-handler.js +0 -2
  83. package/dist/extensions/telegram/src/exec-approvals.js +0 -2
  84. package/dist/extensions/telegram/src/focus-handler.js +0 -2
  85. package/dist/extensions/telegram/src/format.js +0 -2
  86. package/dist/extensions/telegram/src/group-config-resolver.js +0 -2
  87. package/dist/extensions/telegram/src/inbound-coalescer.js +0 -2
  88. package/dist/extensions/telegram/src/inbound-processor.js +0 -2
  89. package/dist/extensions/telegram/src/index.js +0 -2
  90. package/dist/extensions/telegram/src/inline-keyboards.js +0 -2
  91. package/dist/extensions/telegram/src/network-errors.js +0 -2
  92. package/dist/extensions/telegram/src/outbound-sender.js +0 -2
  93. package/dist/extensions/telegram/src/pairing-config-resolver.js +0 -2
  94. package/dist/extensions/telegram/src/plugin-defaults.js +0 -2
  95. package/dist/extensions/telegram/src/plugin.js +0 -2
  96. package/dist/extensions/telegram/src/polling-session.js +0 -2
  97. package/dist/extensions/telegram/src/proxy-fetch.js +0 -2
  98. package/dist/extensions/telegram/src/reactions.js +0 -2
  99. package/dist/extensions/telegram/src/reply-params.js +0 -2
  100. package/dist/extensions/telegram/src/routing-integration.js +0 -2
  101. package/dist/extensions/telegram/src/send-options.js +0 -2
  102. package/dist/extensions/telegram/src/sent-cache.js +0 -2
  103. package/dist/extensions/telegram/src/startup-errors.js +0 -2
  104. package/dist/extensions/telegram/src/telegram-actions.js +0 -2
  105. package/dist/extensions/telegram/src/telegram-draft-errors.js +0 -2
  106. package/dist/extensions/telegram/src/thread-bindings.js +0 -2
  107. package/dist/extensions/telegram/src/timeout-abort.js +0 -2
  108. package/dist/extensions/telegram/src/token-resolver.js +0 -2
  109. package/dist/extensions/telegram/src/update-offset-store.js +0 -2
  110. package/dist/extensions/telegram/src/workflow-progress.js +0 -2
  111. package/dist/extensions/telegram/xopc.extension.json +1 -1
  112. package/dist/extensions/weixin/src/adapters/onboard-cli.js +0 -2
  113. package/dist/extensions/weixin/src/api/api.js +0 -2
  114. package/dist/extensions/weixin/src/api/config-cache.js +0 -2
  115. package/dist/extensions/weixin/src/api/session-guard.js +0 -2
  116. package/dist/extensions/weixin/src/api/types.js +0 -2
  117. package/dist/extensions/weixin/src/auth/accounts.js +0 -2
  118. package/dist/extensions/weixin/src/auth/login-qr.js +0 -2
  119. package/dist/extensions/weixin/src/auth/pairing.js +0 -2
  120. package/dist/extensions/weixin/src/auth/weixin-account-id.js +0 -2
  121. package/dist/extensions/weixin/src/cdn/aes-ecb.js +0 -2
  122. package/dist/extensions/weixin/src/cdn/cdn-upload.js +0 -2
  123. package/dist/extensions/weixin/src/cdn/cdn-url.js +0 -2
  124. package/dist/extensions/weixin/src/cdn/pic-decrypt.js +0 -2
  125. package/dist/extensions/weixin/src/cdn/upload.js +0 -2
  126. package/dist/extensions/weixin/src/cli/gateway-qr-login.js +0 -2
  127. package/dist/extensions/weixin/src/cli/qr-login.js +0 -2
  128. package/dist/extensions/weixin/src/config-schema.js +0 -2
  129. package/dist/extensions/weixin/src/config-surface.js +0 -2
  130. package/dist/extensions/weixin/src/delivery-to.js +0 -2
  131. package/dist/extensions/weixin/src/index.js +0 -2
  132. package/dist/extensions/weixin/src/media/data-url.js +0 -2
  133. package/dist/extensions/weixin/src/media/media-download.js +0 -2
  134. package/dist/extensions/weixin/src/media/mime.js +0 -2
  135. package/dist/extensions/weixin/src/media/silk-transcode.js +0 -2
  136. package/dist/extensions/weixin/src/messaging/context-token-init.js +0 -2
  137. package/dist/extensions/weixin/src/messaging/debug-mode.js +0 -2
  138. package/dist/extensions/weixin/src/messaging/error-notice.js +0 -2
  139. package/dist/extensions/weixin/src/messaging/inbound.js +0 -2
  140. package/dist/extensions/weixin/src/messaging/markdown-filter.js +0 -2
  141. package/dist/extensions/weixin/src/messaging/process-message.js +0 -2
  142. package/dist/extensions/weixin/src/messaging/send-media.js +0 -2
  143. package/dist/extensions/weixin/src/messaging/send.js +0 -2
  144. package/dist/extensions/weixin/src/messaging/slash-commands.js +0 -2
  145. package/dist/extensions/weixin/src/messaging/typing-ticket-store.js +0 -2
  146. package/dist/extensions/weixin/src/monitor/monitor.js +0 -2
  147. package/dist/extensions/weixin/src/outbound-send.js +0 -2
  148. package/dist/extensions/weixin/src/pairing-config-resolver.js +0 -2
  149. package/dist/extensions/weixin/src/plugin.js +0 -2
  150. package/dist/extensions/weixin/src/routing-integration.js +0 -2
  151. package/dist/extensions/weixin/src/storage/state-dir.js +0 -2
  152. package/dist/extensions/weixin/src/storage/sync-buf.js +0 -2
  153. package/dist/extensions/weixin/src/util/logger.js +0 -2
  154. package/dist/extensions/weixin/src/util/random.js +0 -2
  155. package/dist/extensions/weixin/src/util/redact.js +0 -2
  156. package/dist/extensions/weixin/src/workflow-progress.js +0 -2
  157. package/dist/gateway/static/root/assets/{activity-store-B4s0ipx2.js → activity-store-uu1xu9Pl.js} +1 -1
  158. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-BSccACje.js → agent-avatar-dicebear-BuO-OVfD.js} +1 -1
  159. package/dist/gateway/static/root/assets/agents-Bpv3h31T.js +2 -0
  160. package/dist/gateway/static/root/assets/{api-BMdUsNCV.js → api-CwL38LEV.js} +1 -1
  161. package/dist/gateway/static/root/assets/{app-management-settings-panel-DrLGhYkI.js → app-management-settings-panel-B6OU3Eol.js} +1 -1
  162. package/dist/gateway/static/root/assets/appearance-settings-BaP4GFvN.js +1 -0
  163. package/dist/gateway/static/root/assets/apps-page-DZKNIMRg.js +1 -0
  164. package/dist/gateway/static/root/assets/{archive-plugin-BQ17IK9x.js → archive-plugin-CJX3zIh_.js} +1 -1
  165. package/dist/gateway/static/root/assets/{attachment-load-HXvgWHXu.js → attachment-load-CI1ejk_l.js} +1 -1
  166. package/dist/gateway/static/root/assets/{automation-suggestion-card-CjIWpsch.js → automation-suggestion-card-CjmhICbv.js} +1 -1
  167. package/dist/gateway/static/root/assets/automations-page-BtZl3B8m.js +6 -0
  168. package/dist/gateway/static/root/assets/{binary-plugins-DifWJzNZ.js → binary-plugins-CZ8nOXqK.js} +1 -1
  169. package/dist/gateway/static/root/assets/{block-editor-DtRzIkPU.js → block-editor-BoSfyS_j.js} +46 -46
  170. package/dist/gateway/static/root/assets/browser-settings-page-CL1UiPcb.js +8 -0
  171. package/dist/gateway/static/root/assets/{capability-presets-api-DazKjWW1.js → capability-presets-api-XzDKxPZ8.js} +1 -1
  172. package/dist/gateway/static/root/assets/{capability-presets-settings-panel-Cvrw4fD1.js → capability-presets-settings-panel-Dc_uHYgl.js} +2 -2
  173. package/dist/gateway/static/root/assets/{channel-recipient-api-Bea6if_6.js → channel-recipient-api-DYLBAhFF.js} +1 -1
  174. package/dist/gateway/static/root/assets/channels-settings-mALvXpJj.js +1 -0
  175. package/dist/gateway/static/root/assets/channels-status-swr-CZuEsO5b.js +1 -0
  176. package/dist/gateway/static/root/assets/{connector-logo-BjbYbJjQ.js → connector-logo-BSjlInHT.js} +1 -1
  177. package/dist/gateway/static/root/assets/connectors-page-Cm_E3mmI.js +2 -0
  178. package/dist/gateway/static/root/assets/desktop-pet-DcJc91-C.js +1 -0
  179. package/dist/gateway/static/root/assets/desktop-pet-settings-CdeqTa3Q.js +1 -0
  180. package/dist/gateway/static/root/assets/{directory-picker-path-field-C8zZNUzC.js → directory-picker-path-field-Cp3fpm0k.js} +1 -1
  181. package/dist/gateway/static/root/assets/{dreaming-settings-gJSw7Adk.js → dreaming-settings-Bwj1O3zr.js} +3 -3
  182. package/dist/gateway/static/root/assets/{extension-debug-page-DFE5ADJ0.js → extension-debug-page-D_1xpKbZ.js} +1 -1
  183. package/dist/gateway/static/root/assets/{extension-page-CfR-aW8G.js → extension-page-CqZNCj96.js} +1 -1
  184. package/dist/gateway/static/root/assets/{extension-settings-page-CFIEbs2L.js → extension-settings-page-5MWbtQaQ.js} +1 -1
  185. package/dist/gateway/static/root/assets/{gateway-config-api-B6M_ra8U.js → gateway-config-api-Co_IaS34.js} +1 -1
  186. package/dist/gateway/static/root/assets/gateway-settings-kmeWm2Pt.js +1 -0
  187. package/dist/gateway/static/root/assets/{gateway-startup-retry-DNA3OOzV.js → gateway-startup-retry-BM_xvzl0.js} +1 -1
  188. package/dist/gateway/static/root/assets/goal-create-dialog-FoO-R4_U.js +1 -0
  189. package/dist/gateway/static/root/assets/goal-detail-page-CkJq7N5g.js +4 -0
  190. package/dist/gateway/static/root/assets/{goals-config-api-D88opgcs.js → goals-config-api-DrtsYjXz.js} +1 -1
  191. package/dist/gateway/static/root/assets/goals-page-DRAN-R64.js +2 -0
  192. package/dist/gateway/static/root/assets/{goals-settings-D07UL8Jo.js → goals-settings-wq9TKhIZ.js} +1 -1
  193. package/dist/gateway/static/root/assets/{heartbeat-settings-YCSNOcXC.js → heartbeat-settings-B5zDoHbo.js} +1 -1
  194. package/dist/gateway/static/root/assets/index-DIlxvrlG.css +1 -0
  195. package/dist/gateway/static/root/assets/index-apLU0Hun.js +196 -0
  196. package/dist/gateway/static/root/assets/keyboard-shortcuts-settings-3tC9iD21.js +1 -0
  197. package/dist/gateway/static/root/assets/local-app-workbench-page-CT-vDTLK.js +2 -0
  198. package/dist/gateway/static/root/assets/{local-apps-page-CKvtLzsF.js → local-apps-page-B9ruF9GV.js} +1 -1
  199. package/dist/gateway/static/root/assets/locale-store-GfSwnwIZ.js +1 -0
  200. package/dist/gateway/static/root/assets/logs-page-Ca1X8X2P.js +7 -0
  201. package/dist/gateway/static/root/assets/{markdown-split-BVSFG99p.js → markdown-split-CzuhSQAB.js} +1 -1
  202. package/dist/gateway/static/root/assets/{media-plugins-DdOjIVk3.js → media-plugins-a3R4y-EL.js} +1 -1
  203. package/dist/gateway/static/root/assets/messages-B0B40tpO.js +5 -0
  204. package/dist/gateway/static/root/assets/models-hub-panel-CbTlz9Of.js +2 -0
  205. package/dist/gateway/static/root/assets/{notes-page-ZbLR3awn.js → notes-page-BCxDy2dV.js} +1 -1
  206. package/dist/gateway/static/root/assets/notes-workbench-z6sBX9B2.js +4 -0
  207. package/dist/gateway/static/root/assets/{page-tabs-DMlQERNg.js → page-tabs-CJfk6M78.js} +1 -1
  208. package/dist/gateway/static/root/assets/{preview-open-alternatives-CbiJRPxK.js → preview-open-alternatives-MFopTSgF.js} +1 -1
  209. package/dist/gateway/static/root/assets/project-detail-page-DU29deIr.js +1 -0
  210. package/dist/gateway/static/root/assets/projects-page-Ck3DLTlZ.js +1 -0
  211. package/dist/gateway/static/root/assets/remote-access-hub-gLsLyAyi.js +1 -0
  212. package/dist/gateway/static/root/assets/{save-bar-controls-BZTj3hxl.js → save-bar-controls-D0uhU3Z8.js} +1 -1
  213. package/dist/gateway/static/root/assets/{schedule-field-CxYDObjT.js → schedule-field-NGOH-7wV.js} +1 -1
  214. package/dist/gateway/static/root/assets/{schema-form-CBbXgpKQ.js → schema-form-BJz5LoqG.js} +1 -1
  215. package/dist/gateway/static/root/assets/schemas-DgQq6Z5S.js +64 -0
  216. package/dist/gateway/static/root/assets/sessions-page-TmNoWpa_.js +1 -0
  217. package/dist/gateway/static/root/assets/settings-advanced-gate-CtPhh2m9.js +1 -0
  218. package/dist/gateway/static/root/assets/{settings-collapsible-section-BySKZ8rp.js → settings-collapsible-section-oDnUHnX_.js} +1 -1
  219. package/dist/gateway/static/root/assets/{settings-form-section-CjINay6t.js → settings-form-section-DND90dDt.js} +1 -1
  220. package/dist/gateway/static/root/assets/settings-loading-skeleton-CEJtaoQp.js +1 -0
  221. package/dist/gateway/static/root/assets/{settings-page-BNrVwuL7.js → settings-page-B1LJlRi9.js} +1 -1
  222. package/dist/gateway/static/root/assets/{settings-page-layout-HdlQOOqp.js → settings-page-layout-CsrLuDsW.js} +1 -1
  223. package/dist/gateway/static/root/assets/setup-status-panel-BPCJPHHY.js +1 -0
  224. package/dist/gateway/static/root/assets/{share-preview-page-DC-eQONB.js → share-preview-page-C1PwLh-p.js} +1 -1
  225. package/dist/gateway/static/root/assets/shares-settings-DCuqr7js.js +1 -0
  226. package/dist/gateway/static/root/assets/skill-reload-api-kn1Vypcy.js +1 -0
  227. package/dist/gateway/static/root/assets/skills-page-k6VIqTkK.js +2 -0
  228. package/dist/gateway/static/root/assets/{system-settings-panel-CVa90q2f.js → system-settings-panel-BEsrEkSx.js} +1 -1
  229. package/dist/gateway/static/root/assets/{theme-store-D1cOpgsy.js → theme-store-Bi6hMBDb.js} +1 -1
  230. package/dist/gateway/static/root/assets/{typed-models-lib-DIKF9vpz.js → typed-models-lib-dOypdlMf.js} +1 -1
  231. package/dist/gateway/static/root/assets/{use-channel-catalog-DnvpI0Ys.js → use-channel-catalog-f8A-PVuq.js} +1 -1
  232. package/dist/gateway/static/root/assets/user-context-page-B9Y_Ciav.js +1 -0
  233. package/dist/gateway/static/root/assets/{user-profile-fields-editor-y8gTmkPX.js → user-profile-fields-editor-DGC38Lx7.js} +1 -1
  234. package/dist/gateway/static/root/assets/{user-profile-settings-panel-C3pvqe28.js → user-profile-settings-panel-DFkZ-tan.js} +1 -1
  235. package/dist/gateway/static/root/assets/{utils-BK2vwu_3.js → utils-CEIYZihF.js} +1 -1
  236. package/dist/gateway/static/root/assets/voice-api-key-field-DK6gaQsA.js +1 -0
  237. package/dist/gateway/static/root/assets/work-discovery-page-DSJb9Kq7.js +1 -0
  238. package/dist/gateway/static/root/assets/work-item-detail-page-DVavwV3D.js +1 -0
  239. package/dist/gateway/static/root/assets/work-page-foJDp0nz.js +1 -0
  240. package/dist/gateway/static/root/assets/workflow-run-setup-panel-BYqZpFCC.js +3 -0
  241. package/dist/gateway/static/root/assets/workflows-page-DgO0WAzs.js +11 -0
  242. package/dist/gateway/static/root/favicon.svg +1 -187
  243. package/dist/gateway/static/root/index.html +8 -7
  244. package/dist/gateway/static/root/logo-dark.svg +1 -185
  245. package/dist/gateway/static/root/logo.svg +1 -185
  246. package/dist/package.js +1 -3
  247. package/dist/src/activity/context.js +0 -2
  248. package/dist/src/activity/emitter.js +0 -2
  249. package/dist/src/activity/service.js +0 -2
  250. package/dist/src/agent/agent-manager.d.ts +1 -0
  251. package/dist/src/agent/agent-manager.js +1 -2
  252. package/dist/src/agent/agent-scope.js +0 -2
  253. package/dist/src/agent/background-review/coordinator.js +0 -2
  254. package/dist/src/agent/background-review/prompts.js +0 -2
  255. package/dist/src/agent/background-review/run-background-review.js +0 -2
  256. package/dist/src/agent/background-review/settings.js +0 -2
  257. package/dist/src/agent/bootstrap/bootstrap-cache.js +0 -2
  258. package/dist/src/agent/bootstrap/bootstrap-context.js +0 -2
  259. package/dist/src/agent/bootstrap/bootstrap-files.js +0 -2
  260. package/dist/src/agent/bootstrap/filter-bootstrap-files.js +0 -2
  261. package/dist/src/agent/bootstrap/load-bootstrap-files.js +0 -2
  262. package/dist/src/agent/bootstrap/project-agents-context.js +0 -2
  263. package/dist/src/agent/capabilities/definitions.js +0 -2
  264. package/dist/src/agent/capabilities/registry.js +0 -2
  265. package/dist/src/agent/child-agent-factory.js +0 -2
  266. package/dist/src/agent/client-error-format.js +0 -2
  267. package/dist/src/agent/code-intelligence/binary.js +0 -2
  268. package/dist/src/agent/code-intelligence/runtime.js +0 -2
  269. package/dist/src/agent/code-intelligence/tools.js +0 -2
  270. package/dist/src/agent/coding/turn-diff-tracker.js +0 -2
  271. package/dist/src/agent/context/expand-at-file-mentions.js +0 -2
  272. package/dist/src/agent/context/project-context.js +0 -2
  273. package/dist/src/agent/context/workspace-seed.js +0 -2
  274. package/dist/src/agent/context/workspace-state.js +0 -2
  275. package/dist/src/agent/context/workspace.js +0 -2
  276. package/dist/src/agent/embedded/run-for-session.js +0 -2
  277. package/dist/src/agent/embedded/run-turn.js +0 -2
  278. package/dist/src/agent/embedded/runs.js +0 -2
  279. package/dist/src/agent/embedded/session-manager-init.js +0 -2
  280. package/dist/src/agent/embedded/session-runner.js +0 -2
  281. package/dist/src/agent/embedded/session-tool-result-guard.js +0 -2
  282. package/dist/src/agent/embedded/sqlite-hydrating-session-manager.js +0 -2
  283. package/dist/src/agent/embedded/subscribe-session.js +0 -2
  284. package/dist/src/agent/embedded/system-prompt-override.js +0 -2
  285. package/dist/src/agent/embedded/tool-result-context-guard.js +0 -2
  286. package/dist/src/agent/embedded/tool-result-truncation.js +0 -2
  287. package/dist/src/agent/embedded/xopc-auth-storage.js +0 -2
  288. package/dist/src/agent/embedded/xopc-stream-bridge.js +0 -2
  289. package/dist/src/agent/embedded/xopc-tools-bridge.js +0 -2
  290. package/dist/src/agent/failover-error.js +0 -2
  291. package/dist/src/agent/fallback/candidates.js +0 -2
  292. package/dist/src/agent/fallback/reason.js +0 -2
  293. package/dist/src/agent/feedback/feedback-coordinator.js +0 -2
  294. package/dist/src/agent/goals/checklist-judge.js +0 -2
  295. package/dist/src/agent/goals/checklist-types.js +0 -2
  296. package/dist/src/agent/goals/evaluate-turn.js +0 -2
  297. package/dist/src/agent/goals/goal-locale.js +0 -2
  298. package/dist/src/agent/goals/judge.js +0 -2
  299. package/dist/src/agent/goals/persistent-goal-service.js +0 -2
  300. package/dist/src/agent/goals/post-turn.js +0 -2
  301. package/dist/src/agent/goals/state.js +0 -2
  302. package/dist/src/agent/image/generation/bundled-registry.js +0 -2
  303. package/dist/src/agent/image/generation/bundled.js +0 -2
  304. package/dist/src/agent/image/generation/image-assets.js +0 -2
  305. package/dist/src/agent/image/generation/model-ref.js +0 -2
  306. package/dist/src/agent/image/generation/normalization.js +0 -2
  307. package/dist/src/agent/image/generation/openai-compatible-image-provider.js +0 -2
  308. package/dist/src/agent/image/generation/provider-registry.js +0 -2
  309. package/dist/src/agent/image/generation/runtime.js +0 -2
  310. package/dist/src/agent/image/image-helpers.js +0 -2
  311. package/dist/src/agent/image/image-model-fallback.js +0 -2
  312. package/dist/src/agent/image/inbound-image-handling.js +0 -2
  313. package/dist/src/agent/image/load-image-media.js +0 -2
  314. package/dist/src/agent/image/tool-model-config.js +0 -2
  315. package/dist/src/agent/image/understanding/pi-ai-provider.js +0 -2
  316. package/dist/src/agent/image/understanding/provider-registry.js +0 -2
  317. package/dist/src/agent/image/understanding/runtime.js +0 -2
  318. package/dist/src/agent/image/vision-detection.js +0 -2
  319. package/dist/src/agent/inbound/attachment-pipeline.js +0 -2
  320. package/dist/src/agent/inbound/inbound-loop.js +0 -2
  321. package/dist/src/agent/inbound/turn-dispatcher.js +0 -2
  322. package/dist/src/agent/ipc/bus.js +0 -2
  323. package/dist/src/agent/ipc/inbox.js +0 -2
  324. package/dist/src/agent/ipc/socket.js +0 -2
  325. package/dist/src/agent/ipc/types.js +0 -2
  326. package/dist/src/agent/lifecycle/handlers/compaction.js +0 -2
  327. package/dist/src/agent/lifecycle/hook-handler.js +0 -2
  328. package/dist/src/agent/lifecycle/manager.js +0 -2
  329. package/dist/src/agent/lifecycle/progress.js +0 -2
  330. package/dist/src/agent/lifecycle/timeout-wrapper.js +0 -2
  331. package/dist/src/agent/lifecycle/typing.js +0 -2
  332. package/dist/src/agent/mcp/bundle-mcp-config.js +0 -2
  333. package/dist/src/agent/mcp/bundle-mcp-materialize.js +0 -2
  334. package/dist/src/agent/mcp/bundle-mcp-names.js +0 -2
  335. package/dist/src/agent/mcp/bundle-mcp-policy.js +0 -2
  336. package/dist/src/agent/mcp/bundle-mcp-runtime.js +0 -2
  337. package/dist/src/agent/mcp/embedded-mcp.js +0 -2
  338. package/dist/src/agent/mcp/mcp-config-shared.js +0 -2
  339. package/dist/src/agent/mcp/mcp-http.js +0 -2
  340. package/dist/src/agent/mcp/mcp-stdio-transport.js +0 -2
  341. package/dist/src/agent/mcp/mcp-stdio.js +0 -2
  342. package/dist/src/agent/mcp/mcp-tool-meta.js +0 -2
  343. package/dist/src/agent/mcp/mcp-transport-config.js +0 -2
  344. package/dist/src/agent/mcp/mcp-transport.js +0 -2
  345. package/dist/src/agent/mcp/resolve-embedded-mcp-tools.js +0 -2
  346. package/dist/src/agent/media-generation/model-ref.js +0 -2
  347. package/dist/src/agent/media-generation/normalization.types.js +0 -2
  348. package/dist/src/agent/media-generation/runtime-shared.js +0 -2
  349. package/dist/src/agent/memory/agent-message-access.js +0 -2
  350. package/dist/src/agent/memory/builtin-memory-store.js +0 -2
  351. package/dist/src/agent/memory/builtin-provider.js +0 -2
  352. package/dist/src/agent/memory/compaction.js +0 -2
  353. package/dist/src/agent/memory/context/planner.js +0 -2
  354. package/dist/src/agent/memory/context-fence.js +0 -2
  355. package/dist/src/agent/memory/create-memory-manager.js +0 -2
  356. package/dist/src/agent/memory/dreaming/config.js +0 -2
  357. package/dist/src/agent/memory/dreaming/constants.js +0 -2
  358. package/dist/src/agent/memory/dreaming/deep-promotion.js +0 -2
  359. package/dist/src/agent/memory/dreaming/events.js +0 -2
  360. package/dist/src/agent/memory/dreaming/last-run.js +0 -2
  361. package/dist/src/agent/memory/dreaming/light-sweep.js +0 -2
  362. package/dist/src/agent/memory/dreaming/preview.js +0 -2
  363. package/dist/src/agent/memory/dreaming/promotion-lifecycle.js +0 -2
  364. package/dist/src/agent/memory/dreaming/rem-patterns.js +0 -2
  365. package/dist/src/agent/memory/dreaming/scope.js +0 -2
  366. package/dist/src/agent/memory/dreaming/short-term-store.js +0 -2
  367. package/dist/src/agent/memory/dreaming/utils.js +0 -2
  368. package/dist/src/agent/memory/lifecycle.js +0 -2
  369. package/dist/src/agent/memory/manager.js +0 -2
  370. package/dist/src/agent/memory/memory-config.js +0 -2
  371. package/dist/src/agent/memory/message-sanitizer.js +0 -2
  372. package/dist/src/agent/memory/plugin-discovery.js +0 -2
  373. package/dist/src/agent/memory/sensitivity.js +0 -2
  374. package/dist/src/agent/memory/source-origin.js +0 -2
  375. package/dist/src/agent/memory/stub-memory-provider.js +0 -2
  376. package/dist/src/agent/memory/summary-generator.js +0 -2
  377. package/dist/src/agent/memory/understanding/correction.js +0 -2
  378. package/dist/src/agent/memory/understanding/quality.js +0 -2
  379. package/dist/src/agent/memory/understanding/service.js +0 -2
  380. package/dist/src/agent/memory/user-context-coordinator.js +0 -2
  381. package/dist/src/agent/memory/user-message-text.js +0 -2
  382. package/dist/src/agent/memory/window.js +0 -2
  383. package/dist/src/agent/messaging/command-handler.js +0 -2
  384. package/dist/src/agent/messaging/message-router.js +0 -2
  385. package/dist/src/agent/messaging/outbound-coordinator.js +0 -2
  386. package/dist/src/agent/messaging/stream-manager.js +0 -2
  387. package/dist/src/agent/middleware/context.js +0 -2
  388. package/dist/src/agent/middleware/self-verify.js +0 -2
  389. package/dist/src/agent/models/manager.js +0 -2
  390. package/dist/src/agent/models/request-limiter.js +0 -2
  391. package/dist/src/agent/models/selection.js +0 -2
  392. package/dist/src/agent/orchestration/agent-event-handler.js +0 -2
  393. package/dist/src/agent/orchestration/agent-orchestrator.js +0 -2
  394. package/dist/src/agent/orchestration/llm-turn-retry.js +0 -2
  395. package/dist/src/agent/orchestration/loop-guard.js +0 -2
  396. package/dist/src/agent/orchestration/run-agent-turn-with-timeout.js +0 -2
  397. package/dist/src/agent/prompt/cache-boundary.js +0 -2
  398. package/dist/src/agent/prompt/memory/index.js +0 -2
  399. package/dist/src/agent/prompt/safety.js +0 -2
  400. package/dist/src/agent/prompt/sanitize-for-prompt.js +0 -2
  401. package/dist/src/agent/prompt/sections/behavior.js +0 -2
  402. package/dist/src/agent/prompt/sections/memory-skills.js +0 -2
  403. package/dist/src/agent/prompt/sections/messaging-runtime.js +0 -2
  404. package/dist/src/agent/prompt/sections/project-context.js +0 -2
  405. package/dist/src/agent/prompt/sections/tooling.js +0 -2
  406. package/dist/src/agent/prompt/sections/workspace-runtime.js +0 -2
  407. package/dist/src/agent/prompt/service-prompt-builder.js +0 -2
  408. package/dist/src/agent/prompt/subagent-context.js +0 -2
  409. package/dist/src/agent/prompt/system-prompt-params.js +0 -2
  410. package/dist/src/agent/prompt/system-prompt.js +0 -2
  411. package/dist/src/agent/prompt/system-reminder.js +0 -2
  412. package/dist/src/agent/reply/apply-turn-user-enrichment.js +0 -2
  413. package/dist/src/agent/reply/post-compaction-context.js +0 -2
  414. package/dist/src/agent/reply/startup-context.js +0 -2
  415. package/dist/src/agent/reply/workspace-boundary-read.js +0 -2
  416. package/dist/src/agent/sandbox/command-validator.js +0 -2
  417. package/dist/src/agent/sandbox/exec-policy.js +0 -2
  418. package/dist/src/agent/sandbox/path-policy.js +0 -2
  419. package/dist/src/agent/sandbox/sanitize-env-vars.js +0 -2
  420. package/dist/src/agent/sandbox/types.js +0 -2
  421. package/dist/src/agent/service/async-queue.js +0 -2
  422. package/dist/src/agent/service/btw-query.js +0 -2
  423. package/dist/src/agent/service/build-direct-message-content.js +0 -2
  424. package/dist/src/agent/service/direct-turn-helpers.js +0 -2
  425. package/dist/src/agent/service/parse-outbound-session-key.js +0 -2
  426. package/dist/src/agent/service/process-direct-one-shot.js +0 -2
  427. package/dist/src/agent/service/process-direct-streaming.js +0 -2
  428. package/dist/src/agent/service/session-context-report.js +0 -2
  429. package/dist/src/agent/service/webchat-tts.js +0 -2
  430. package/dist/src/agent/service-inbound-utils.js +0 -2
  431. package/dist/src/agent/service.js +1 -2
  432. package/dist/src/agent/service.types.d.ts +2 -0
  433. package/dist/src/agent/session/session-config-service.js +0 -2
  434. package/dist/src/agent/session/session-context.js +0 -2
  435. package/dist/src/agent/session/session-hydrator.js +0 -2
  436. package/dist/src/agent/session/session-inspector.js +0 -2
  437. package/dist/src/agent/session/session-lifecycle.js +0 -2
  438. package/dist/src/agent/session/session-state-bag.js +0 -2
  439. package/dist/src/agent/session/tracker.js +0 -2
  440. package/dist/src/agent/skills/config.js +0 -2
  441. package/dist/src/agent/skills/filesystem-watcher.js +0 -2
  442. package/dist/src/agent/skills/format-skills-prompt.js +0 -2
  443. package/dist/src/agent/skills/hub-hash.js +0 -2
  444. package/dist/src/agent/skills/hub-lock.js +0 -2
  445. package/dist/src/agent/skills/hub-pull.js +0 -2
  446. package/dist/src/agent/skills/index.js +0 -2
  447. package/dist/src/agent/skills/install-target.js +0 -2
  448. package/dist/src/agent/skills/installer.js +0 -2
  449. package/dist/src/agent/skills/managed-store.js +0 -2
  450. package/dist/src/agent/skills/marketplace/adapters/clawhub/adapter.js +0 -2
  451. package/dist/src/agent/skills/marketplace/adapters/skillhub/adapter.js +0 -2
  452. package/dist/src/agent/skills/marketplace/adapters/store/adapter.js +0 -2
  453. package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.js +0 -2
  454. package/dist/src/agent/skills/marketplace/marketplace-category-order.js +0 -2
  455. package/dist/src/agent/skills/marketplace/registry.js +0 -2
  456. package/dist/src/agent/skills/marketplace/resolve-adapter.js +0 -2
  457. package/dist/src/agent/skills/parse-skill-metadata.js +0 -2
  458. package/dist/src/agent/skills/required-env-vars.js +0 -2
  459. package/dist/src/agent/skills/scanner.js +0 -2
  460. package/dist/src/agent/skills/skill-manage-ops.js +0 -2
  461. package/dist/src/agent/skills/skill-manager.js +0 -2
  462. package/dist/src/agent/skills/skill-markdown-preview-from-raw.js +0 -2
  463. package/dist/src/agent/skills/skill-tool-gating.js +0 -2
  464. package/dist/src/agent/skills/skill-view-path.js +0 -2
  465. package/dist/src/agent/skills/skills-marketplace.js +0 -2
  466. package/dist/src/agent/skills/test-framework.js +0 -2
  467. package/dist/src/agent/skills/watcher.js +0 -2
  468. package/dist/src/agent/skills/workspace-skills-dir.js +0 -2
  469. package/dist/src/agent/source-context/injector.js +0 -2
  470. package/dist/src/agent/source-context/types.js +0 -2
  471. package/dist/src/agent/starter-agents.js +0 -2
  472. package/dist/src/agent/streaming/reasoning-visibility-sse.js +0 -2
  473. package/dist/src/agent/tool-manuals/browser.js +0 -2
  474. package/dist/src/agent/tool-manuals/index.js +0 -2
  475. package/dist/src/agent/tool-manuals/xopc-use.d.ts +1 -1
  476. package/dist/src/agent/tool-manuals/xopc-use.js +41 -4
  477. package/dist/src/agent/tools/apply-patch.js +0 -2
  478. package/dist/src/agent/tools/automation-tool.js +45 -8
  479. package/dist/src/agent/tools/browser/tool/browser-use-tool.js +0 -2
  480. package/dist/src/agent/tools/browser/tool/schemas.js +0 -2
  481. package/dist/src/agent/tools/chain-tracker.js +0 -2
  482. package/dist/src/agent/tools/clarify-tool.js +0 -2
  483. package/dist/src/agent/tools/cli-clarify.js +0 -2
  484. package/dist/src/agent/tools/communication.js +0 -2
  485. package/dist/src/agent/tools/composio-tool.js +0 -2
  486. package/dist/src/agent/tools/concurrency.js +0 -2
  487. package/dist/src/agent/tools/create-share-tool.js +0 -2
  488. package/dist/src/agent/tools/curated-memory-tool.js +0 -2
  489. package/dist/src/agent/tools/delegate-tool.js +0 -2
  490. package/dist/src/agent/tools/desktop-pet-tool.d.ts +12 -0
  491. package/dist/src/agent/tools/desktop-pet-tool.js +28 -2
  492. package/dist/src/agent/tools/dreaming-tool.js +0 -2
  493. package/dist/src/agent/tools/edit-diff.js +0 -2
  494. package/dist/src/agent/tools/error-pattern-matcher.js +0 -2
  495. package/dist/src/agent/tools/error-tracker.js +0 -2
  496. package/dist/src/agent/tools/exec-command.js +0 -2
  497. package/dist/src/agent/tools/execute-code-tool.js +0 -2
  498. package/dist/src/agent/tools/executor.js +0 -2
  499. package/dist/src/agent/tools/factory.d.ts +2 -0
  500. package/dist/src/agent/tools/factory.js +3 -4
  501. package/dist/src/agent/tools/find.js +0 -2
  502. package/dist/src/agent/tools/goal-evidence-recorder.js +0 -2
  503. package/dist/src/agent/tools/goal-tool.d.ts +7 -1
  504. package/dist/src/agent/tools/goal-tool.js +34 -7
  505. package/dist/src/agent/tools/grep.js +0 -2
  506. package/dist/src/agent/tools/image-generate-tool.js +0 -2
  507. package/dist/src/agent/tools/image-tool.js +0 -2
  508. package/dist/src/agent/tools/list-dir.js +0 -2
  509. package/dist/src/agent/tools/media-read-tool.js +0 -2
  510. package/dist/src/agent/tools/memory-tool.js +0 -2
  511. package/dist/src/agent/tools/metadata.js +0 -2
  512. package/dist/src/agent/tools/read.js +0 -2
  513. package/dist/src/agent/tools/search/http.js +0 -2
  514. package/dist/src/agent/tools/search/providers/bing-api.js +0 -2
  515. package/dist/src/agent/tools/search/providers/bing-html.js +0 -2
  516. package/dist/src/agent/tools/search/providers/brave.js +0 -2
  517. package/dist/src/agent/tools/search/providers/duckduckgo-html.js +0 -2
  518. package/dist/src/agent/tools/search/providers/searxng.js +0 -2
  519. package/dist/src/agent/tools/search/providers/tavily.js +0 -2
  520. package/dist/src/agent/tools/search/region.js +0 -2
  521. package/dist/src/agent/tools/search/registry.js +0 -2
  522. package/dist/src/agent/tools/search/resolve-config.js +0 -2
  523. package/dist/src/agent/tools/send-media.js +0 -2
  524. package/dist/src/agent/tools/session-search-tool.js +0 -2
  525. package/dist/src/agent/tools/session-status-tool.js +0 -2
  526. package/dist/src/agent/tools/skill-install-tool.js +0 -2
  527. package/dist/src/agent/tools/skill-manage-tool.js +0 -2
  528. package/dist/src/agent/tools/skills-tools.js +0 -2
  529. package/dist/src/agent/tools/structured-output.js +0 -2
  530. package/dist/src/agent/tools/todo-tool.js +0 -2
  531. package/dist/src/agent/tools/tool-manual-tool.js +0 -2
  532. package/dist/src/agent/tools/tool-paths.js +0 -2
  533. package/dist/src/agent/tools/truncate.js +0 -2
  534. package/dist/src/agent/tools/tts-tool.js +0 -2
  535. package/dist/src/agent/tools/update-plan-tool.js +0 -2
  536. package/dist/src/agent/tools/url-safety.js +0 -2
  537. package/dist/src/agent/tools/usage-analyzer.js +0 -2
  538. package/dist/src/agent/tools/web-extract.js +0 -2
  539. package/dist/src/agent/tools/web.js +4 -4
  540. package/dist/src/agent/tools/workflow-tool.js +32 -4
  541. package/dist/src/agent/tools/write.js +23 -5
  542. package/dist/src/agent/tools/xopc-use-tool.d.ts +6 -2
  543. package/dist/src/agent/tools/xopc-use-tool.js +216 -8
  544. package/dist/src/agent/transcript/google-api.js +0 -2
  545. package/dist/src/agent/transcript/model-selection.js +0 -2
  546. package/dist/src/agent/transcript/provider-capabilities.js +0 -2
  547. package/dist/src/agent/transcript/session-transcript-repair.js +0 -2
  548. package/dist/src/agent/transcript/strip-tool-messages.js +0 -2
  549. package/dist/src/agent/transcript/thinking-types.js +0 -2
  550. package/dist/src/agent/transcript/thinking.js +0 -2
  551. package/dist/src/agent/transcript/tool-call-id.js +0 -2
  552. package/dist/src/agent/transcript/transcript-hygiene.js +0 -2
  553. package/dist/src/agent/transcript/transcript-policy.js +0 -2
  554. package/dist/src/agent/workflow/agent-progress.js +0 -2
  555. package/dist/src/agent/workflow/builtins/index.js +0 -2
  556. package/dist/src/agent/workflow/catalog.js +0 -2
  557. package/dist/src/agent/workflow/progress-broker.js +0 -2
  558. package/dist/src/agent/workflow/snapshot-empty.js +0 -2
  559. package/dist/src/agent/workflow/snapshot.js +0 -2
  560. package/dist/src/agent/workflow/step-labels.js +0 -2
  561. package/dist/src/agent/workflow/structured-output-tool.js +0 -2
  562. package/dist/src/agent/workflow/subagent-runner.js +0 -2
  563. package/dist/src/agent/workflow/workflow-child-tools.js +0 -2
  564. package/dist/src/agent/workspace-runtime/registry.js +0 -2
  565. package/dist/src/agent-manifest/index.js +0 -2
  566. package/dist/src/agent-manifest/preset-chain.js +0 -2
  567. package/dist/src/agent-manifest/prompt.js +0 -2
  568. package/dist/src/agent-manifest/resolver.js +0 -2
  569. package/dist/src/agent-manifest/schema.js +0 -2
  570. package/dist/src/agent-manifest/validator.js +0 -2
  571. package/dist/src/agent-runtime/boundary-guard.js +0 -2
  572. package/dist/src/agent-runtime/memory-runtime.js +0 -2
  573. package/dist/src/agent-runtime/model-router.js +0 -2
  574. package/dist/src/agent-runtime/run-trace.js +0 -2
  575. package/dist/src/agent-runtime/runtime-profile.js +0 -2
  576. package/dist/src/agent-runtime/tool-registry.js +0 -2
  577. package/dist/src/agent-runtime/workflow-runtime.js +0 -2
  578. package/dist/src/ai-assist/text-assist.js +0 -2
  579. package/dist/src/auth/credentials.js +0 -2
  580. package/dist/src/auth/index.js +0 -2
  581. package/dist/src/auth/oauth/anthropic.js +0 -2
  582. package/dist/src/auth/oauth/github-copilot.js +0 -2
  583. package/dist/src/auth/oauth/google-oauth/google-antigravity.js +0 -2
  584. package/dist/src/auth/oauth/google-oauth/google-gemini-cli.js +0 -2
  585. package/dist/src/auth/oauth/google-oauth/oauth-page.js +0 -2
  586. package/dist/src/auth/oauth/google-oauth/pkce.js +0 -2
  587. package/dist/src/auth/oauth/kimi-coding.js +0 -2
  588. package/dist/src/auth/oauth/minimax-cn.js +0 -2
  589. package/dist/src/auth/oauth/minimax.js +0 -2
  590. package/dist/src/auth/oauth/openai-codex.js +0 -2
  591. package/dist/src/auth/oauth/pkce.js +0 -2
  592. package/dist/src/auth/profiles/oauth.js +0 -2
  593. package/dist/src/auth/profiles/order.js +0 -2
  594. package/dist/src/auth/profiles/profiles.js +0 -2
  595. package/dist/src/auth/profiles/store.js +0 -2
  596. package/dist/src/auth/sync-provider-auth.js +0 -2
  597. package/dist/src/automations/api/routes.js +0 -2
  598. package/dist/src/automations/domain/schedule.js +0 -2
  599. package/dist/src/automations/domain/validation.js +0 -2
  600. package/dist/src/automations/draft/automation-draft-prompt.js +0 -2
  601. package/dist/src/automations/draft/automation-draft-service.js +0 -2
  602. package/dist/src/automations/draft/automation-draft-validator.js +0 -2
  603. package/dist/src/automations/product-events.js +0 -2
  604. package/dist/src/automations/service/action-executor.js +0 -2
  605. package/dist/src/automations/service/automation-service.js +0 -2
  606. package/dist/src/automations/storage/automation-repository.js +0 -2
  607. package/dist/src/automations/storage/automation-run-repository.js +0 -2
  608. package/dist/src/browser/actions/extension-registry-bridge.js +0 -2
  609. package/dist/src/browser/actions/registry.js +0 -2
  610. package/dist/src/browser/backend-from-config.js +0 -2
  611. package/dist/src/browser/browser-command-timeout.js +0 -2
  612. package/dist/src/browser/cache-dir-policy.js +0 -2
  613. package/dist/src/browser/cdp-local-launcher.js +0 -2
  614. package/dist/src/browser/cdp-supervisor.js +0 -2
  615. package/dist/src/browser/free-port.js +0 -2
  616. package/dist/src/browser/humanize.js +0 -2
  617. package/dist/src/browser/install-lock.js +0 -2
  618. package/dist/src/browser/manager.js +0 -2
  619. package/dist/src/browser/pipeline/output.js +0 -2
  620. package/dist/src/browser/pipeline/runner.js +0 -2
  621. package/dist/src/browser/pipeline/schema.js +0 -2
  622. package/dist/src/browser/pipeline/source.js +0 -2
  623. package/dist/src/browser/pipeline/template.js +0 -2
  624. package/dist/src/browser/providers/browser-ext-install.js +0 -2
  625. package/dist/src/browser/providers/browser-use.js +0 -2
  626. package/dist/src/browser/providers/browserbase.js +0 -2
  627. package/dist/src/browser/providers/cloakbrowser.js +0 -2
  628. package/dist/src/browser/providers/extension-ws-acquire.js +0 -2
  629. package/dist/src/browser/providers/extension.js +0 -2
  630. package/dist/src/browser/providers/playwright-doctor.js +13 -4
  631. package/dist/src/browser/providers/playwright-install.js +0 -2
  632. package/dist/src/browser/readiness.js +0 -2
  633. package/dist/src/browser/schemas.js +0 -2
  634. package/dist/src/browser/session-lifecycle.js +0 -2
  635. package/dist/src/browser/snapshot-helpers.js +0 -2
  636. package/dist/src/browser/stealth.js +0 -2
  637. package/dist/src/browser/url-policy.js +0 -2
  638. package/dist/src/capabilities/store-connector.js +0 -2
  639. package/dist/src/channels/attachments/attachment-classifiers.js +0 -2
  640. package/dist/src/channels/attachments/inbound-persist.js +0 -2
  641. package/dist/src/channels/attachments/inbound-types.js +0 -2
  642. package/dist/src/channels/attachments/outbound-tts-persist.js +0 -2
  643. package/dist/src/channels/attachments/voice-stt-webchat.js +0 -2
  644. package/dist/src/channels/catalog/channel-catalog-service.js +0 -2
  645. package/dist/src/channels/config-helpers.js +0 -2
  646. package/dist/src/channels/envelope-timestamp.js +0 -2
  647. package/dist/src/channels/exec-approval-runtime.js +0 -2
  648. package/dist/src/channels/health-monitor.js +0 -2
  649. package/dist/src/channels/heartbeat-scheduler.js +0 -2
  650. package/dist/src/channels/internal-outbound.js +0 -2
  651. package/dist/src/channels/lifecycle-supervisor.js +0 -2
  652. package/dist/src/channels/manager.js +0 -2
  653. package/dist/src/channels/media.js +0 -2
  654. package/dist/src/channels/outbound/deliver.js +0 -2
  655. package/dist/src/channels/outbound/normalize.js +0 -2
  656. package/dist/src/channels/outbound/persist-store.js +0 -2
  657. package/dist/src/channels/outbound/queue.js +0 -2
  658. package/dist/src/channels/outbound-sender.js +0 -2
  659. package/dist/src/channels/pairing/allow-from-file.js +0 -2
  660. package/dist/src/channels/pairing/approve-cli.js +0 -2
  661. package/dist/src/channels/pairing/pairing-challenge.js +0 -2
  662. package/dist/src/channels/pairing/pairing-constants.js +0 -2
  663. package/dist/src/channels/pairing/pairing-events.js +0 -2
  664. package/dist/src/channels/pairing/pairing-messages.js +0 -2
  665. package/dist/src/channels/pairing/pairing-service.js +0 -2
  666. package/dist/src/channels/pairing/pairing-store-adapter.js +0 -2
  667. package/dist/src/channels/pairing/pairing-store.js +0 -2
  668. package/dist/src/channels/pairing/paths.js +0 -2
  669. package/dist/src/channels/pairing/preseed-allow-from.js +0 -2
  670. package/dist/src/channels/pipeline.js +0 -2
  671. package/dist/src/channels/plugin-registry.js +0 -2
  672. package/dist/src/channels/plugins/registry.js +0 -2
  673. package/dist/src/channels/restart-policy.js +0 -2
  674. package/dist/src/channels/security-helpers.js +0 -2
  675. package/dist/src/channels/security.js +0 -2
  676. package/dist/src/channels/setup-wizard-discovery.js +0 -2
  677. package/dist/src/chat-commands/agent-edit.js +0 -2
  678. package/dist/src/chat-commands/builtins/config.js +0 -2
  679. package/dist/src/chat-commands/builtins/context.js +0 -2
  680. package/dist/src/chat-commands/builtins/goal.js +0 -2
  681. package/dist/src/chat-commands/builtins/model.js +0 -2
  682. package/dist/src/chat-commands/builtins/review.js +0 -2
  683. package/dist/src/chat-commands/builtins/session.js +0 -2
  684. package/dist/src/chat-commands/builtins/skill.js +0 -2
  685. package/dist/src/chat-commands/builtins/subgoal.js +0 -2
  686. package/dist/src/chat-commands/builtins/system.js +0 -2
  687. package/dist/src/chat-commands/builtins/thinking.js +0 -2
  688. package/dist/src/chat-commands/builtins/tts.js +0 -2
  689. package/dist/src/chat-commands/builtins/workflow.js +0 -2
  690. package/dist/src/chat-commands/command-parse.js +0 -2
  691. package/dist/src/chat-commands/config-paths.js +0 -2
  692. package/dist/src/chat-commands/config-value.js +0 -2
  693. package/dist/src/chat-commands/context.js +0 -2
  694. package/dist/src/chat-commands/format-output.js +0 -2
  695. package/dist/src/chat-commands/index.js +0 -2
  696. package/dist/src/chat-commands/processor.js +0 -2
  697. package/dist/src/chat-commands/registry.js +0 -2
  698. package/dist/src/chat-commands/session-key.js +0 -2
  699. package/dist/src/cli/argv-invocation.js +0 -2
  700. package/dist/src/cli/argv.js +0 -2
  701. package/dist/src/cli/bin.js +0 -2
  702. package/dist/src/cli/cli-log-level-preset.js +0 -2
  703. package/dist/src/cli/command-catalog.js +0 -2
  704. package/dist/src/cli/command-loaders.js +0 -2
  705. package/dist/src/cli/command-manifest.js +0 -2
  706. package/dist/src/cli/command-path-matches.js +0 -2
  707. package/dist/src/cli/command-path-policy.js +0 -2
  708. package/dist/src/cli/command-startup-policy.js +0 -2
  709. package/dist/src/cli/commands/agent/interactive.js +0 -2
  710. package/dist/src/cli/commands/agent/sessions.js +0 -2
  711. package/dist/src/cli/commands/agent/stream-renderer.js +0 -2
  712. package/dist/src/cli/commands/agent.js +0 -2
  713. package/dist/src/cli/commands/agents.js +0 -2
  714. package/dist/src/cli/commands/auth.js +0 -2
  715. package/dist/src/cli/commands/browser-cli-helpers.js +0 -2
  716. package/dist/src/cli/commands/browser.js +0 -2
  717. package/dist/src/cli/commands/channels.js +0 -2
  718. package/dist/src/cli/commands/config.js +0 -2
  719. package/dist/src/cli/commands/connectors.js +0 -2
  720. package/dist/src/cli/commands/doctor/checks/channel-config.js +0 -2
  721. package/dist/src/cli/commands/doctor/checks/channel-pairing-pending.js +0 -2
  722. package/dist/src/cli/commands/doctor/checks/channel-plugins.js +0 -2
  723. package/dist/src/cli/commands/doctor/checks/config-health.js +0 -2
  724. package/dist/src/cli/commands/doctor/checks/database-schema.js +0 -2
  725. package/dist/src/cli/commands/doctor/checks/gateway-health.js +0 -2
  726. package/dist/src/cli/commands/doctor/checks/gateway-service.js +0 -2
  727. package/dist/src/cli/commands/doctor/checks/migrations.js +0 -2
  728. package/dist/src/cli/commands/doctor/checks/node-version.js +0 -2
  729. package/dist/src/cli/commands/doctor/checks/provider-auth.js +0 -2
  730. package/dist/src/cli/commands/doctor/checks/security-audit.js +0 -2
  731. package/dist/src/cli/commands/doctor/checks/session-integrity.js +0 -2
  732. package/dist/src/cli/commands/doctor/checks/state-integrity.js +0 -2
  733. package/dist/src/cli/commands/doctor/checks/version-check.js +0 -2
  734. package/dist/src/cli/commands/doctor/checks/workspace-status.js +0 -2
  735. package/dist/src/cli/commands/doctor/flow.js +0 -2
  736. package/dist/src/cli/commands/doctor/format.js +0 -2
  737. package/dist/src/cli/commands/doctor/index.js +0 -2
  738. package/dist/src/cli/commands/extension-create.js +0 -2
  739. package/dist/src/cli/commands/extension-dev.js +0 -2
  740. package/dist/src/cli/commands/extension-marketplace.js +0 -2
  741. package/dist/src/cli/commands/extension-pack.js +0 -2
  742. package/dist/src/cli/commands/extension.js +0 -2
  743. package/dist/src/cli/commands/gateway/call.js +0 -2
  744. package/dist/src/cli/commands/gateway/health.js +0 -2
  745. package/dist/src/cli/commands/gateway/lifecycle-core.js +0 -2
  746. package/dist/src/cli/commands/gateway/lifecycle.js +0 -2
  747. package/dist/src/cli/commands/gateway/logs.js +0 -2
  748. package/dist/src/cli/commands/gateway/probe.js +0 -2
  749. package/dist/src/cli/commands/gateway/restart-health.js +0 -2
  750. package/dist/src/cli/commands/gateway/restart.js +0 -2
  751. package/dist/src/cli/commands/gateway/run-foreground.js +0 -2
  752. package/dist/src/cli/commands/gateway/service.js +0 -2
  753. package/dist/src/cli/commands/gateway/shared.js +0 -2
  754. package/dist/src/cli/commands/gateway/status.js +0 -2
  755. package/dist/src/cli/commands/gateway/stop.js +0 -2
  756. package/dist/src/cli/commands/gateway/subcommands.js +0 -2
  757. package/dist/src/cli/commands/gateway/token.js +0 -2
  758. package/dist/src/cli/commands/gateway-ssh-tunnel.js +0 -2
  759. package/dist/src/cli/commands/gateway.js +0 -2
  760. package/dist/src/cli/commands/goal.js +0 -2
  761. package/dist/src/cli/commands/image.js +0 -2
  762. package/dist/src/cli/commands/init.js +0 -2
  763. package/dist/src/cli/commands/logs.js +0 -2
  764. package/dist/src/cli/commands/models.js +0 -2
  765. package/dist/src/cli/commands/onboard/channels/index.js +0 -2
  766. package/dist/src/cli/commands/onboard/channels/onboard-to-configurator.js +0 -2
  767. package/dist/src/cli/commands/onboard/channels/registry.js +0 -2
  768. package/dist/src/cli/commands/onboard/channels/wizard-to-configurator.js +0 -2
  769. package/dist/src/cli/commands/onboard/gateway.js +0 -2
  770. package/dist/src/cli/commands/onboard/model.js +0 -2
  771. package/dist/src/cli/commands/onboard.js +0 -2
  772. package/dist/src/cli/commands/profile.js +0 -2
  773. package/dist/src/cli/commands/project.js +0 -2
  774. package/dist/src/cli/commands/providers.js +0 -2
  775. package/dist/src/cli/commands/resume.js +0 -2
  776. package/dist/src/cli/commands/search.js +0 -2
  777. package/dist/src/cli/commands/session/actions.js +0 -2
  778. package/dist/src/cli/commands/session/utils.js +0 -2
  779. package/dist/src/cli/commands/session.js +0 -2
  780. package/dist/src/cli/commands/setup-shared/output.js +0 -2
  781. package/dist/src/cli/commands/setup-shared/prompts.js +0 -2
  782. package/dist/src/cli/commands/setup-shared/runner.js +0 -2
  783. package/dist/src/cli/commands/setup-shared/types.js +0 -2
  784. package/dist/src/cli/commands/setup.js +0 -2
  785. package/dist/src/cli/commands/skills-test.js +0 -2
  786. package/dist/src/cli/commands/skills.js +0 -2
  787. package/dist/src/cli/commands/tailscale.js +0 -2
  788. package/dist/src/cli/commands/tui-runner.js +0 -2
  789. package/dist/src/cli/commands/tui.js +0 -2
  790. package/dist/src/cli/commands/tunnel.js +0 -2
  791. package/dist/src/cli/commands/update.js +0 -2
  792. package/dist/src/cli/commands/voice.js +0 -2
  793. package/dist/src/cli/context.js +0 -2
  794. package/dist/src/cli/extension-cli-register.js +0 -2
  795. package/dist/src/cli/gateway-run-argv.js +0 -2
  796. package/dist/src/cli/gateway-run-fast-path.js +0 -2
  797. package/dist/src/cli/index.js +0 -2
  798. package/dist/src/cli/registry.js +0 -2
  799. package/dist/src/cli/templates.js +0 -2
  800. package/dist/src/cli/utils/colors.js +0 -2
  801. package/dist/src/cli/utils/gateway-client-options.js +0 -2
  802. package/dist/src/cli/utils/gateway-client.js +0 -2
  803. package/dist/src/cli/utils/init-workspace-core.js +0 -2
  804. package/dist/src/cli/utils/init-workspace.js +0 -2
  805. package/dist/src/cli/utils/oauth-login.js +0 -2
  806. package/dist/src/cli/utils/oauth-providers.js +0 -2
  807. package/dist/src/cli/utils/session.js +0 -2
  808. package/dist/src/commands/agents.config.js +0 -2
  809. package/dist/src/config/agent-profile.js +0 -2
  810. package/dist/src/config/agent-typed-models.js +0 -2
  811. package/dist/src/config/commands.flags.js +0 -2
  812. package/dist/src/config/default-model.js +0 -2
  813. package/dist/src/config/diff.js +0 -2
  814. package/dist/src/config/gateway-bind.js +0 -2
  815. package/dist/src/config/index.js +0 -2
  816. package/dist/src/config/loader.js +0 -2
  817. package/dist/src/config/mcp-config-normalize.js +0 -2
  818. package/dist/src/config/model-input.js +0 -2
  819. package/dist/src/config/models-json.js +0 -2
  820. package/dist/src/config/paths-state.js +0 -2
  821. package/dist/src/config/paths.js +0 -2
  822. package/dist/src/config/profile.js +0 -2
  823. package/dist/src/config/public-url.js +0 -2
  824. package/dist/src/config/reload.js +0 -2
  825. package/dist/src/config/resolve-config-value.js +0 -2
  826. package/dist/src/config/rules.js +0 -2
  827. package/dist/src/config/runtime-overrides.js +0 -2
  828. package/dist/src/config/schema.js +0 -2
  829. package/dist/src/config/validate-channel-configs.js +0 -2
  830. package/dist/src/config/voice.js +0 -2
  831. package/dist/src/config/web-patch.js +0 -2
  832. package/dist/src/config/workspace-defaults.js +0 -2
  833. package/dist/src/config/workspace-dirs.js +0 -2
  834. package/dist/src/config/workspace-path-helpers.js +0 -2
  835. package/dist/src/config/workspace-path.js +0 -2
  836. package/dist/src/connectors/approval.js +0 -2
  837. package/dist/src/connectors/auth-provider-registry.js +0 -2
  838. package/dist/src/connectors/builtin-catalog.js +0 -2
  839. package/dist/src/connectors/catalog.js +0 -2
  840. package/dist/src/connectors/composio-catalog.js +0 -2
  841. package/dist/src/connectors/composio-logo.js +0 -2
  842. package/dist/src/connectors/composio-sessions.js +9 -5
  843. package/dist/src/connectors/composio-triggers.js +0 -2
  844. package/dist/src/connectors/composio.js +0 -2
  845. package/dist/src/connectors/connector-memory-sync.js +0 -2
  846. package/dist/src/connectors/health.js +0 -2
  847. package/dist/src/connectors/install.js +0 -2
  848. package/dist/src/connectors/instances.js +0 -2
  849. package/dist/src/connectors/integration-strategy.js +0 -2
  850. package/dist/src/connectors/lifecycle.js +0 -2
  851. package/dist/src/connectors/materialize.js +0 -2
  852. package/dist/src/connectors/policy.js +0 -2
  853. package/dist/src/connectors/providers.js +0 -2
  854. package/dist/src/connectors/registries/modelscope.js +0 -2
  855. package/dist/src/connectors/registries/official-mcp.js +0 -2
  856. package/dist/src/connectors/registries/search.js +0 -2
  857. package/dist/src/connectors/registries/smithery.js +0 -2
  858. package/dist/src/connectors/runtime-adapter-registry.js +0 -2
  859. package/dist/src/connectors/secret-store.js +0 -2
  860. package/dist/src/connectors/setup-secrets.js +0 -2
  861. package/dist/src/connectors/supervisor.js +0 -2
  862. package/dist/src/connectors/usage.js +0 -2
  863. package/dist/src/connectors/workflow-preflight.js +0 -2
  864. package/dist/src/daemon/constants.js +0 -2
  865. package/dist/src/daemon/install-plan.js +0 -2
  866. package/dist/src/daemon/launchd.js +0 -2
  867. package/dist/src/daemon/schtasks.js +0 -2
  868. package/dist/src/daemon/service-audit.js +0 -2
  869. package/dist/src/daemon/service.js +0 -2
  870. package/dist/src/daemon/systemd.js +0 -2
  871. package/dist/src/document-understanding/extract.js +0 -2
  872. package/dist/src/errors/index.js +0 -2
  873. package/dist/src/extensions/activation-context.js +0 -2
  874. package/dist/src/extensions/activation-planner.js +0 -2
  875. package/dist/src/extensions/api.js +0 -2
  876. package/dist/src/extensions/bundle-mcp.js +0 -2
  877. package/dist/src/extensions/bundled-extension-activation.js +0 -2
  878. package/dist/src/extensions/diagnostics.js +0 -2
  879. package/dist/src/extensions/discover-extensions.js +0 -2
  880. package/dist/src/extensions/engine-check.js +0 -2
  881. package/dist/src/extensions/extension-metadata-snapshot.js +0 -2
  882. package/dist/src/extensions/extension-registry-impl.js +0 -2
  883. package/dist/src/extensions/health.js +0 -2
  884. package/dist/src/extensions/hooks.js +0 -2
  885. package/dist/src/extensions/index.js +0 -2
  886. package/dist/src/extensions/install-transaction.js +0 -2
  887. package/dist/src/extensions/install.js +0 -2
  888. package/dist/src/extensions/loader.js +0 -2
  889. package/dist/src/extensions/lockfile.js +0 -2
  890. package/dist/src/extensions/manifest-registry.js +0 -2
  891. package/dist/src/extensions/marketplace.js +0 -2
  892. package/dist/src/extensions/media-provider-contracts.js +0 -2
  893. package/dist/src/extensions/normalize-manifest.js +0 -2
  894. package/dist/src/extensions/onboard-helpers.js +0 -2
  895. package/dist/src/extensions/package-contract.js +0 -2
  896. package/dist/src/extensions/sdk/channel-entry.js +0 -2
  897. package/dist/src/extensions/sdk/channel-helpers.js +0 -2
  898. package/dist/src/extensions/sdk/index.js +0 -2
  899. package/dist/src/extensions/sdk/lazy.js +0 -2
  900. package/dist/src/extensions/sdk/testing.js +0 -2
  901. package/dist/src/extensions/security.js +0 -2
  902. package/dist/src/extensions/slots.js +0 -2
  903. package/dist/src/extensions/speech-provider-contracts.js +0 -2
  904. package/dist/src/extensions/store-zip-limits.js +0 -2
  905. package/dist/src/extensions/typed-event-bus.js +0 -2
  906. package/dist/src/extensions/types/hooks.js +0 -2
  907. package/dist/src/extensions/types/providers.js +0 -2
  908. package/dist/src/extensions/update.js +0 -2
  909. package/dist/src/extensions/when-context.js +0 -2
  910. package/dist/src/extensions/when-expression.js +0 -2
  911. package/dist/src/gateway/agent-builtin-tools.js +0 -2
  912. package/dist/src/gateway/agent-run-relay.js +0 -2
  913. package/dist/src/gateway/agents-admin.js +0 -2
  914. package/dist/src/gateway/auth.js +0 -2
  915. package/dist/src/gateway/capability-presets-admin.js +0 -2
  916. package/dist/src/gateway/chat-limits.js +0 -2
  917. package/dist/src/gateway/chat-stream/mapper.js +28 -14
  918. package/dist/src/gateway/chat-stream/pet-feedback.d.ts +13 -0
  919. package/dist/src/gateway/chat-stream/pet-feedback.js +45 -0
  920. package/dist/src/gateway/chat-stream/protocol.d.ts +26 -0
  921. package/dist/src/gateway/clarify-bridge.js +3 -3
  922. package/dist/src/gateway/clarify-runtime.js +0 -2
  923. package/dist/src/gateway/client-ip.js +0 -2
  924. package/dist/src/gateway/config-tools-web.js +0 -2
  925. package/dist/src/gateway/credential.js +0 -2
  926. package/dist/src/gateway/discovery/mdns.js +0 -2
  927. package/dist/src/gateway/dreaming-automation-reconciler.js +0 -2
  928. package/dist/src/gateway/ensure-network-cors.js +0 -2
  929. package/dist/src/gateway/file-path-classifier.js +0 -2
  930. package/dist/src/gateway/file-reference-registry.js +0 -2
  931. package/dist/src/gateway/global-defaults-admin.js +0 -2
  932. package/dist/src/gateway/heartbeat/service.js +0 -2
  933. package/dist/src/gateway/hono/app.js +0 -2
  934. package/dist/src/gateway/hono/lib/agent-model.js +0 -2
  935. package/dist/src/gateway/hono/lib/config-payload.js +0 -2
  936. package/dist/src/gateway/hono/lib/extension-assets.js +0 -2
  937. package/dist/src/gateway/hono/lib/extension-store.js +0 -2
  938. package/dist/src/gateway/hono/lib/mask-secret-length.js +0 -2
  939. package/dist/src/gateway/hono/lib/route-logger.js +0 -2
  940. package/dist/src/gateway/hono/lib/safe-providers-config.js +0 -2
  941. package/dist/src/gateway/hono/lib/safe-voice-config.js +0 -2
  942. package/dist/src/gateway/hono/lib/startup-unavailable.js +0 -2
  943. package/dist/src/gateway/hono/lib/static-ui.js +0 -2
  944. package/dist/src/gateway/hono/middleware/auth.js +0 -2
  945. package/dist/src/gateway/hono/middleware/log-context.js +0 -2
  946. package/dist/src/gateway/hono/middleware/logger.js +0 -2
  947. package/dist/src/gateway/hono/middleware/route-errors.js +0 -2
  948. package/dist/src/gateway/hono/middleware/scopes.js +0 -2
  949. package/dist/src/gateway/hono/middleware/strict-rate-limit.js +0 -2
  950. package/dist/src/gateway/hono/oauth-async.js +0 -2
  951. package/dist/src/gateway/hono/oauth.js +0 -2
  952. package/dist/src/gateway/hono/routes/activity.js +0 -2
  953. package/dist/src/gateway/hono/routes/agent-stream.js +0 -2
  954. package/dist/src/gateway/hono/routes/agents.js +0 -2
  955. package/dist/src/gateway/hono/routes/ai-assist.js +0 -2
  956. package/dist/src/gateway/hono/routes/auth-registry-extensions.js +0 -2
  957. package/dist/src/gateway/hono/routes/browser-install.js +0 -2
  958. package/dist/src/gateway/hono/routes/browser.js +0 -2
  959. package/dist/src/gateway/hono/routes/capabilities.js +0 -2
  960. package/dist/src/gateway/hono/routes/capability-presets.js +0 -2
  961. package/dist/src/gateway/hono/routes/channels.js +0 -2
  962. package/dist/src/gateway/hono/routes/commands-skills.js +0 -2
  963. package/dist/src/gateway/hono/routes/config-patch/agents.js +0 -2
  964. package/dist/src/gateway/hono/routes/config-patch/channels.js +0 -2
  965. package/dist/src/gateway/hono/routes/config-patch/gateway.js +0 -2
  966. package/dist/src/gateway/hono/routes/config-patch/misc.js +0 -2
  967. package/dist/src/gateway/hono/routes/config-patch/result.js +0 -2
  968. package/dist/src/gateway/hono/routes/config.js +0 -2
  969. package/dist/src/gateway/hono/routes/connectors.js +0 -2
  970. package/dist/src/gateway/hono/routes/doctor.js +0 -2
  971. package/dist/src/gateway/hono/routes/dreaming.js +0 -2
  972. package/dist/src/gateway/hono/routes/exposure.js +0 -2
  973. package/dist/src/gateway/hono/routes/extension-gateway.js +0 -2
  974. package/dist/src/gateway/hono/routes/global-defaults.js +0 -2
  975. package/dist/src/gateway/hono/routes/goals.js +0 -2
  976. package/dist/src/gateway/hono/routes/home.js +0 -2
  977. package/dist/src/gateway/hono/routes/host-fs.js +0 -2
  978. package/dist/src/gateway/hono/routes/index.js +0 -2
  979. package/dist/src/gateway/hono/routes/lazy-bundles.js +0 -2
  980. package/dist/src/gateway/hono/routes/lazy-fallback.js +0 -2
  981. package/dist/src/gateway/hono/routes/local-apps.js +0 -2
  982. package/dist/src/gateway/hono/routes/logs.js +0 -2
  983. package/dist/src/gateway/hono/routes/mcp.js +0 -2
  984. package/dist/src/gateway/hono/routes/media.js +0 -2
  985. package/dist/src/gateway/hono/routes/memory.js +0 -2
  986. package/dist/src/gateway/hono/routes/migrations.js +0 -2
  987. package/dist/src/gateway/hono/routes/mobile.js +0 -2
  988. package/dist/src/gateway/hono/routes/models.js +0 -2
  989. package/dist/src/gateway/hono/routes/notes.js +3 -3
  990. package/dist/src/gateway/hono/routes/projects.js +0 -2
  991. package/dist/src/gateway/hono/routes/public-gateway.js +0 -2
  992. package/dist/src/gateway/hono/routes/search.js +0 -2
  993. package/dist/src/gateway/hono/routes/sessions.js +0 -2
  994. package/dist/src/gateway/hono/routes/shares.js +0 -2
  995. package/dist/src/gateway/hono/routes/site-shares.js +0 -2
  996. package/dist/src/gateway/hono/routes/status.js +0 -2
  997. package/dist/src/gateway/hono/routes/tui.js +0 -2
  998. package/dist/src/gateway/hono/routes/tunnel.js +0 -2
  999. package/dist/src/gateway/hono/routes/update.js +0 -2
  1000. package/dist/src/gateway/hono/routes/voice.js +0 -2
  1001. package/dist/src/gateway/hono/routes/work-discovery.js +0 -2
  1002. package/dist/src/gateway/hono/routes/workflows.js +0 -2
  1003. package/dist/src/gateway/hono/routes/workspace.js +0 -2
  1004. package/dist/src/gateway/hono/routes/you.js +0 -2
  1005. package/dist/src/gateway/hono/sse-json.js +0 -2
  1006. package/dist/src/gateway/hono/sse.js +0 -2
  1007. package/dist/src/gateway/host.js +0 -2
  1008. package/dist/src/gateway/image-capabilities.js +0 -2
  1009. package/dist/src/gateway/listen.js +0 -2
  1010. package/dist/src/gateway/lock.js +0 -2
  1011. package/dist/src/gateway/ports.js +0 -2
  1012. package/dist/src/gateway/protocol.js +0 -2
  1013. package/dist/src/gateway/public-url.js +0 -2
  1014. package/dist/src/gateway/rate-limit/auth-policy.js +0 -2
  1015. package/dist/src/gateway/rate-limit/buckets.js +0 -2
  1016. package/dist/src/gateway/rate-limit/env-flags.js +0 -2
  1017. package/dist/src/gateway/resolve-channel-connect-defer.js +0 -2
  1018. package/dist/src/gateway/resolve-webchat-session-key.js +0 -2
  1019. package/dist/src/gateway/respawn.js +0 -2
  1020. package/dist/src/gateway/run-loop.js +0 -2
  1021. package/dist/src/gateway/runtime-config.js +0 -2
  1022. package/dist/src/gateway/security/audit.js +0 -2
  1023. package/dist/src/gateway/security/csp.js +0 -2
  1024. package/dist/src/gateway/security/dangerous-tools.js +0 -2
  1025. package/dist/src/gateway/security/external-content.js +0 -2
  1026. package/dist/src/gateway/security/known-weak-secrets.js +0 -2
  1027. package/dist/src/gateway/security/loopback.js +0 -2
  1028. package/dist/src/gateway/security/operator-scopes.js +0 -2
  1029. package/dist/src/gateway/security/origin-check.js +0 -2
  1030. package/dist/src/gateway/security/preauth-connection-budget.js +0 -2
  1031. package/dist/src/gateway/security/secret-equal.js +0 -2
  1032. package/dist/src/gateway/server-tailscale.js +0 -2
  1033. package/dist/src/gateway/server.js +0 -2
  1034. package/dist/src/gateway/service/agent-runner.js +0 -2
  1035. package/dist/src/gateway/service/config-coordinator.js +0 -2
  1036. package/dist/src/gateway/service/marketplace-service.js +0 -2
  1037. package/dist/src/gateway/service/run-gateway-agent.js +0 -2
  1038. package/dist/src/gateway/service/session-chat-ids.js +0 -2
  1039. package/dist/src/gateway/service/sessions-api.js +0 -2
  1040. package/dist/src/gateway/service/sse-hub.js +0 -2
  1041. package/dist/src/gateway/service.js +1 -2
  1042. package/dist/src/gateway/session-reset-service.js +0 -2
  1043. package/dist/src/gateway/startup-readiness.js +0 -2
  1044. package/dist/src/gateway/startup-trace.js +0 -2
  1045. package/dist/src/gateway/tailscale-auth.js +0 -2
  1046. package/dist/src/gateway/tailscale-lifecycle.js +0 -2
  1047. package/dist/src/gateway/tls-server.js +0 -2
  1048. package/dist/src/gateway/trusted-proxy.js +0 -2
  1049. package/dist/src/gateway/user-turn-input.js +0 -2
  1050. package/dist/src/gateway/workspace-editor-path.js +0 -2
  1051. package/dist/src/gateway/workspace-file-search.js +0 -2
  1052. package/dist/src/gateway/workspace-fs-file-list.js +0 -2
  1053. package/dist/src/gateway/workspace-heartbeat-path.js +0 -2
  1054. package/dist/src/gateway/workspace-ripgrep.js +0 -2
  1055. package/dist/src/gateway/ws-security.js +0 -2
  1056. package/dist/src/generated/bundled-image-generation-providers.js +0 -2
  1057. package/dist/src/goals/goal-contract-draft.js +0 -2
  1058. package/dist/src/goals/goal-evidence-review.js +0 -2
  1059. package/dist/src/goals/goal-notifications.js +0 -2
  1060. package/dist/src/goals/goal-queue-store.js +0 -2
  1061. package/dist/src/goals/goal-runner.js +0 -2
  1062. package/dist/src/goals/goal-service.js +0 -2
  1063. package/dist/src/goals/goal-store.js +0 -2
  1064. package/dist/src/goals/goal-workflow-judge.js +0 -2
  1065. package/dist/src/heartbeat/active-hours.js +0 -2
  1066. package/dist/src/heartbeat/content-check.js +0 -2
  1067. package/dist/src/heartbeat/event-prompt.js +0 -2
  1068. package/dist/src/heartbeat/tokens.js +0 -2
  1069. package/dist/src/heartbeat/wake.js +0 -2
  1070. package/dist/src/i18n/format.js +0 -2
  1071. package/dist/src/i18n/goals-bundle.js +0 -2
  1072. package/dist/src/i18n/locale.js +0 -2
  1073. package/dist/src/i18n/locales/goals.en.js +0 -2
  1074. package/dist/src/i18n/locales/goals.zh.js +0 -2
  1075. package/dist/src/i18n/locales/share-tool.en.js +0 -2
  1076. package/dist/src/i18n/locales/share-tool.zh.js +0 -2
  1077. package/dist/src/i18n/share-tool-bundle.js +0 -2
  1078. package/dist/src/index.js +0 -2
  1079. package/dist/src/infra/brew.js +0 -2
  1080. package/dist/src/infra/bus/queue.js +0 -2
  1081. package/dist/src/infra/debounce.js +0 -2
  1082. package/dist/src/infra/exec.js +0 -2
  1083. package/dist/src/infra/gateway-process-argv.js +0 -2
  1084. package/dist/src/infra/gateway-processes.js +0 -2
  1085. package/dist/src/infra/host-env-security-policy.js +0 -2
  1086. package/dist/src/infra/host-env-security.js +0 -2
  1087. package/dist/src/infra/http-proxy-env.js +0 -2
  1088. package/dist/src/infra/is-main.js +0 -2
  1089. package/dist/src/infra/json-utf8-bytes.js +0 -2
  1090. package/dist/src/infra/node-sqlite.js +0 -2
  1091. package/dist/src/infra/package-json.js +0 -2
  1092. package/dist/src/infra/package-update-steps.js +0 -2
  1093. package/dist/src/infra/path-env.js +0 -2
  1094. package/dist/src/infra/path-prepend.js +0 -2
  1095. package/dist/src/infra/ports.js +0 -2
  1096. package/dist/src/infra/rate-limit/failure-limiter.js +0 -2
  1097. package/dist/src/infra/rate-limit/keyed-store.js +0 -2
  1098. package/dist/src/infra/rate-limit/rate-limiter.js +0 -2
  1099. package/dist/src/infra/restart.js +0 -2
  1100. package/dist/src/infra/retry.js +0 -2
  1101. package/dist/src/infra/run-command.js +0 -2
  1102. package/dist/src/infra/sqlite-errors.js +0 -2
  1103. package/dist/src/infra/ssh-tunnel.js +0 -2
  1104. package/dist/src/infra/stable-node-path.js +0 -2
  1105. package/dist/src/infra/tailscale.js +0 -2
  1106. package/dist/src/infra/undici-fetch.js +0 -2
  1107. package/dist/src/infra/unhandled-rejections.js +0 -2
  1108. package/dist/src/infra/update-channels.js +0 -2
  1109. package/dist/src/infra/update-check.js +0 -2
  1110. package/dist/src/infra/update-global.js +0 -2
  1111. package/dist/src/infra/update-lock.js +0 -2
  1112. package/dist/src/infra/update-log.js +0 -2
  1113. package/dist/src/infra/update-restart.js +0 -2
  1114. package/dist/src/infra/update-runner.js +0 -2
  1115. package/dist/src/infra/update-startup.js +0 -2
  1116. package/dist/src/infra/warning-filter.js +0 -2
  1117. package/dist/src/infra/write-file-atomic.js +0 -2
  1118. package/dist/src/knowledge/connected-knowledge-pipeline.js +0 -2
  1119. package/dist/src/knowledge/coordinator.js +0 -2
  1120. package/dist/src/knowledge/ingestion-service.js +0 -2
  1121. package/dist/src/local-apps/acceptance.js +0 -2
  1122. package/dist/src/local-apps/preview-runtime-bridge.js +0 -2
  1123. package/dist/src/local-apps/runtime-entry.js +0 -2
  1124. package/dist/src/local-apps/scaffold.js +0 -2
  1125. package/dist/src/local-apps/service.js +0 -2
  1126. package/dist/src/local-apps/store.js +0 -2
  1127. package/dist/src/markdown/chunk.js +0 -2
  1128. package/dist/src/markdown/code-spans.js +0 -2
  1129. package/dist/src/markdown/fences.js +0 -2
  1130. package/dist/src/markdown/frontmatter.js +0 -2
  1131. package/dist/src/markdown/ir.js +0 -2
  1132. package/dist/src/markdown/render.js +0 -2
  1133. package/dist/src/markdown/tables.js +0 -2
  1134. package/dist/src/mcp/channel-bridge.js +0 -2
  1135. package/dist/src/mcp/channel-server.js +0 -2
  1136. package/dist/src/mcp/channel-shared.js +0 -2
  1137. package/dist/src/mcp/channel-tools.js +0 -2
  1138. package/dist/src/mcp/gateway-http-client.js +0 -2
  1139. package/dist/src/media/media-reference.js +0 -2
  1140. package/dist/src/media/paths.js +0 -2
  1141. package/dist/src/media/session-references.js +0 -2
  1142. package/dist/src/media/store.js +0 -2
  1143. package/dist/src/media/uri.js +0 -2
  1144. package/dist/src/media-shared/http/api-key-rotation.js +0 -2
  1145. package/dist/src/media-shared/http/deadline.js +0 -2
  1146. package/dist/src/media-shared/http/private-network.js +0 -2
  1147. package/dist/src/media-shared/http/provider-http-errors.js +0 -2
  1148. package/dist/src/media-shared/http/provider-http.js +0 -2
  1149. package/dist/src/media-shared/http/resolve-provider-http-request-config.js +0 -2
  1150. package/dist/src/media-shared/http/ssrf-guard.js +0 -2
  1151. package/dist/src/media-shared/http/test-helpers/mock-server.js +0 -2
  1152. package/dist/src/media-understanding/audio-transcription-runner.js +0 -2
  1153. package/dist/src/media-understanding/openai-compatible-audio.js +0 -2
  1154. package/dist/src/media-understanding/registry.js +0 -2
  1155. package/dist/src/media-understanding/resolve-entries.js +0 -2
  1156. package/dist/src/media-understanding/runner.js +0 -2
  1157. package/dist/src/migrations/config/default-capability-preset.js +0 -2
  1158. package/dist/src/migrations/registry.js +0 -2
  1159. package/dist/src/migrations/runner.js +0 -2
  1160. package/dist/src/mobile/notification-service.js +0 -2
  1161. package/dist/src/mobile/notification-store.js +0 -2
  1162. package/dist/src/mobile/notification-types.js +0 -2
  1163. package/dist/src/notes/agent-context.js +0 -2
  1164. package/dist/src/notes/attachment-ref.js +0 -2
  1165. package/dist/src/notes/note-attachment-sync.js +0 -2
  1166. package/dist/src/notes/note-index-meta.js +0 -2
  1167. package/dist/src/notes/note-markdown.js +0 -2
  1168. package/dist/src/notes/paths.js +0 -2
  1169. package/dist/src/notes/service.d.ts +3 -1
  1170. package/dist/src/notes/service.js +19 -5
  1171. package/dist/src/notes/store.js +0 -2
  1172. package/dist/src/package-version.js +0 -2
  1173. package/dist/src/pets/factory.d.ts +13 -0
  1174. package/dist/src/pets/factory.js +23 -2
  1175. package/dist/src/pets/manifest.js +0 -2
  1176. package/dist/src/pets/validator.js +0 -2
  1177. package/dist/src/process/kill-tree.js +0 -2
  1178. package/dist/src/project-trust/trust-store.js +0 -2
  1179. package/dist/src/projects/automation-bind.js +0 -2
  1180. package/dist/src/projects/goal-bind.js +0 -2
  1181. package/dist/src/projects/memory-bind.js +0 -2
  1182. package/dist/src/projects/project-agent-suggestion.js +0 -2
  1183. package/dist/src/projects/project-agent.js +0 -2
  1184. package/dist/src/projects/project-kind.js +0 -2
  1185. package/dist/src/projects/project-loop.js +0 -2
  1186. package/dist/src/projects/project-service.js +0 -2
  1187. package/dist/src/projects/project-store.js +0 -2
  1188. package/dist/src/projects/session-bind.js +0 -2
  1189. package/dist/src/projects/workflow-bind.js +0 -2
  1190. package/dist/src/projects/workspace-project.js +0 -2
  1191. package/dist/src/projects/workspace.js +0 -2
  1192. package/dist/src/providers/auth-runtime/auth-profile-store.js +0 -2
  1193. package/dist/src/providers/auth-runtime/is-configured.js +0 -2
  1194. package/dist/src/providers/auth-runtime/oauth.js +0 -2
  1195. package/dist/src/providers/auth-runtime/resolve-api-key.js +0 -2
  1196. package/dist/src/providers/auth-runtime/resolve-auth.js +0 -2
  1197. package/dist/src/providers/constants.js +0 -2
  1198. package/dist/src/providers/domestic-presets.js +0 -2
  1199. package/dist/src/providers/env-keys.js +0 -2
  1200. package/dist/src/providers/extension-stream-bridge.js +0 -2
  1201. package/dist/src/providers/index.js +0 -2
  1202. package/dist/src/providers/model-call.js +0 -2
  1203. package/dist/src/providers/model-discovery.js +0 -2
  1204. package/dist/src/providers/model-registry.js +0 -2
  1205. package/dist/src/providers/model-supplements.js +0 -2
  1206. package/dist/src/providers/plugin-registry.js +0 -2
  1207. package/dist/src/providers/presentation.js +0 -2
  1208. package/dist/src/remote-access/exposure-guards.js +0 -2
  1209. package/dist/src/remote-access/exposure-manager.js +0 -2
  1210. package/dist/src/review/review-git.js +0 -2
  1211. package/dist/src/review/review-types.js +0 -2
  1212. package/dist/src/routing/account-id.js +0 -2
  1213. package/dist/src/routing/agent-session-key.js +0 -2
  1214. package/dist/src/routing/bindings.js +0 -2
  1215. package/dist/src/routing/index.js +0 -2
  1216. package/dist/src/routing/resolve-route.js +0 -2
  1217. package/dist/src/routing/resolve-tui-session-key.js +0 -2
  1218. package/dist/src/routing/session-key-utils.js +0 -2
  1219. package/dist/src/routing/session-key.js +0 -2
  1220. package/dist/src/session/abort-cutoff.js +0 -2
  1221. package/dist/src/session/chat-export.js +0 -2
  1222. package/dist/src/session/client-history.js +0 -2
  1223. package/dist/src/session/compaction-checkpoints.js +0 -2
  1224. package/dist/src/session/config-store.js +0 -2
  1225. package/dist/src/session/init-session-turn.js +0 -2
  1226. package/dist/src/session/lifecycle-timestamps.js +0 -2
  1227. package/dist/src/session/load-jsonl-entries.js +0 -2
  1228. package/dist/src/session/manager.js +0 -2
  1229. package/dist/src/session/patch-metadata.js +0 -2
  1230. package/dist/src/session/reset-policy.js +0 -2
  1231. package/dist/src/session/reset-triggers.js +0 -2
  1232. package/dist/src/session/reset-type.js +0 -2
  1233. package/dist/src/session/resolve-session.js +0 -2
  1234. package/dist/src/session/session-context-for-llm.js +0 -2
  1235. package/dist/src/session/session-id.js +0 -2
  1236. package/dist/src/session/session-title.js +0 -2
  1237. package/dist/src/session/session-workspace.js +0 -2
  1238. package/dist/src/session/store.js +0 -2
  1239. package/dist/src/session/stored-rows-to-file-entries.js +0 -2
  1240. package/dist/src/session/thinking-resolve.js +0 -2
  1241. package/dist/src/session/transcript-events.js +0 -2
  1242. package/dist/src/session/transcript-format.js +0 -2
  1243. package/dist/src/session/transcript-outline.js +0 -2
  1244. package/dist/src/session/transcript-stats.js +0 -2
  1245. package/dist/src/session/types.js +0 -2
  1246. package/dist/src/session/user-round-delete.js +0 -2
  1247. package/dist/src/share/share-audit.js +0 -2
  1248. package/dist/src/share/share-auto.js +0 -2
  1249. package/dist/src/share/share-config.js +0 -2
  1250. package/dist/src/share/share-landing.js +0 -2
  1251. package/dist/src/share/share-rate-limit.js +0 -2
  1252. package/dist/src/share/share-store.js +0 -2
  1253. package/dist/src/share/share-thumbnail.js +0 -2
  1254. package/dist/src/share/share-types.js +0 -2
  1255. package/dist/src/share/share-url.js +0 -2
  1256. package/dist/src/share/share-zip.js +0 -2
  1257. package/dist/src/share/site-proxy.js +0 -2
  1258. package/dist/src/share/site-share-config.js +0 -2
  1259. package/dist/src/share/site-share-router.js +0 -2
  1260. package/dist/src/share/site-share-store.js +0 -2
  1261. package/dist/src/share/site-share-types.js +0 -2
  1262. package/dist/src/share/site-static-serve.js +0 -2
  1263. package/dist/src/storage/sqlite/activity-repository.js +0 -2
  1264. package/dist/src/storage/sqlite/config-repository.js +0 -2
  1265. package/dist/src/storage/sqlite/connection.js +0 -2
  1266. package/dist/src/storage/sqlite/connector-repository.js +0 -2
  1267. package/dist/src/storage/sqlite/fts.js +0 -2
  1268. package/dist/src/storage/sqlite/knowledge-repository.js +0 -2
  1269. package/dist/src/storage/sqlite/memory-index-repository.js +0 -2
  1270. package/dist/src/storage/sqlite/memory-records-repository.js +0 -2
  1271. package/dist/src/storage/sqlite/memory-reference-consent-repository.js +0 -2
  1272. package/dist/src/storage/sqlite/migrations/discover.js +0 -2
  1273. package/dist/src/storage/sqlite/migrations/errors.js +0 -2
  1274. package/dist/src/storage/sqlite/migrations/runner.js +0 -2
  1275. package/dist/src/storage/sqlite/note-agent-context-repository.js +0 -2
  1276. package/dist/src/storage/sqlite/notes-repository.js +0 -2
  1277. package/dist/src/storage/sqlite/paths.js +0 -2
  1278. package/dist/src/storage/sqlite/row-mappers.js +0 -2
  1279. package/dist/src/storage/sqlite/schema-version.js +0 -2
  1280. package/dist/src/storage/sqlite/schema.js +0 -2
  1281. package/dist/src/storage/sqlite/session-metadata.js +0 -2
  1282. package/dist/src/storage/sqlite/session-repository.js +0 -2
  1283. package/dist/src/storage/sqlite/transaction.js +0 -2
  1284. package/dist/src/storage/sqlite/transcript-repository.js +0 -2
  1285. package/dist/src/storage/sqlite/user-profile-setup-repository.js +0 -2
  1286. package/dist/src/storage/sqlite/user-trust-repository.js +0 -2
  1287. package/dist/src/tui/backends/embedded-backend.js +0 -2
  1288. package/dist/src/tui/backends/gateway-sse-backend.js +0 -2
  1289. package/dist/src/tui/chat-history.js +0 -2
  1290. package/dist/src/tui/clipboard-image.js +0 -2
  1291. package/dist/src/tui/clipboard-text.js +0 -2
  1292. package/dist/src/tui/components/assistant-message.js +0 -2
  1293. package/dist/src/tui/components/bash-execution.js +0 -2
  1294. package/dist/src/tui/components/bash-summary.js +0 -2
  1295. package/dist/src/tui/components/branch-message-summary.js +0 -2
  1296. package/dist/src/tui/components/branch-summary.js +0 -2
  1297. package/dist/src/tui/components/chat-log.js +0 -2
  1298. package/dist/src/tui/components/compaction-summary.js +0 -2
  1299. package/dist/src/tui/components/custom-editor.js +0 -2
  1300. package/dist/src/tui/components/custom-message.js +0 -2
  1301. package/dist/src/tui/components/dynamic-border.js +0 -2
  1302. package/dist/src/tui/components/extension-dialog.js +0 -2
  1303. package/dist/src/tui/components/fuzzy-filter.js +0 -2
  1304. package/dist/src/tui/components/scoped-models-selector.js +0 -2
  1305. package/dist/src/tui/components/searchable-select-list.js +0 -2
  1306. package/dist/src/tui/components/session-selector.js +0 -2
  1307. package/dist/src/tui/components/settings-selector.js +0 -2
  1308. package/dist/src/tui/components/thinking-selector.js +0 -2
  1309. package/dist/src/tui/components/tool-execution.js +0 -2
  1310. package/dist/src/tui/components/tui-bottom-bar.js +0 -2
  1311. package/dist/src/tui/components/tui-header.js +0 -2
  1312. package/dist/src/tui/components/user-message.js +0 -2
  1313. package/dist/src/tui/components/visual-truncate.js +0 -2
  1314. package/dist/src/tui/extension-host/autocomplete.js +0 -2
  1315. package/dist/src/tui/extension-host/host.js +0 -2
  1316. package/dist/src/tui/extension-host/load-extensions.js +0 -2
  1317. package/dist/src/tui/extension-host/runtime-context.js +0 -2
  1318. package/dist/src/tui/extension-host/runtime.js +0 -2
  1319. package/dist/src/tui/extension-host/surface.js +0 -2
  1320. package/dist/src/tui/extension-host/tool-renderers.js +0 -2
  1321. package/dist/src/tui/format-tui-hotkeys.js +0 -2
  1322. package/dist/src/tui/sse-consumer.js +0 -2
  1323. package/dist/src/tui/theme/dark.js +0 -2
  1324. package/dist/src/tui/theme/light.js +0 -2
  1325. package/dist/src/tui/theme-manager.js +0 -2
  1326. package/dist/src/tui/theme.js +0 -2
  1327. package/dist/src/tui/tool-summary.js +0 -2
  1328. package/dist/src/tui/tui-agent-events.js +0 -2
  1329. package/dist/src/tui/tui-command-formatters.js +0 -2
  1330. package/dist/src/tui/tui-commands.js +0 -2
  1331. package/dist/src/tui/tui-context-usage.js +0 -2
  1332. package/dist/src/tui/tui-extension-user-message.js +0 -2
  1333. package/dist/src/tui/tui-fd-path.js +0 -2
  1334. package/dist/src/tui/tui-file-autocomplete.js +0 -2
  1335. package/dist/src/tui/tui-follow-up-queue.js +0 -2
  1336. package/dist/src/tui/tui-git-branch.js +0 -2
  1337. package/dist/src/tui/tui-keybindings-file.js +0 -2
  1338. package/dist/src/tui/tui-lifecycle.js +0 -2
  1339. package/dist/src/tui/tui-local-shell.js +0 -2
  1340. package/dist/src/tui/tui-model-picker.js +0 -2
  1341. package/dist/src/tui/tui-oauth-login.js +0 -2
  1342. package/dist/src/tui/tui-overlays.js +0 -2
  1343. package/dist/src/tui/tui-picker-overlay.js +0 -2
  1344. package/dist/src/tui/tui-run-state.js +0 -2
  1345. package/dist/src/tui/tui-run-status-format.js +0 -2
  1346. package/dist/src/tui/tui-runtime-hints.js +0 -2
  1347. package/dist/src/tui/tui-scoped-models.js +0 -2
  1348. package/dist/src/tui/tui-session-actions.js +0 -2
  1349. package/dist/src/tui/tui-session-format.js +0 -2
  1350. package/dist/src/tui/tui-session-snapshot.js +0 -2
  1351. package/dist/src/tui/tui-session-stats.js +0 -2
  1352. package/dist/src/tui/tui-settings.js +0 -2
  1353. package/dist/src/tui/tui-skills-autocomplete.js +0 -2
  1354. package/dist/src/tui/tui-startup-resources.js +0 -2
  1355. package/dist/src/tui/tui-startup-text.js +0 -2
  1356. package/dist/src/tui/tui-stdio-filter.js +0 -2
  1357. package/dist/src/tui/tui-submit.js +0 -2
  1358. package/dist/src/tui/tui-suspend.js +0 -2
  1359. package/dist/src/tui/tui-timeline-picker.js +0 -2
  1360. package/dist/src/tui/tui-timeline.js +0 -2
  1361. package/dist/src/tui/tui-tool-diff.js +0 -2
  1362. package/dist/src/tui/tui-tool-result.js +0 -2
  1363. package/dist/src/tui/tui-transcript-tree-picker.js +0 -2
  1364. package/dist/src/tui/tui-transcript-tree.js +0 -2
  1365. package/dist/src/tui/tui-types.js +0 -2
  1366. package/dist/src/tui/tui-workflow-slash.js +0 -2
  1367. package/dist/src/tui/tui.js +0 -2
  1368. package/dist/src/tui/xopc-tui-keybindings.js +0 -2
  1369. package/dist/src/tunnel/broker-client.js +0 -2
  1370. package/dist/src/tunnel/consent.js +0 -2
  1371. package/dist/src/tunnel/enable-lan-pairing.js +0 -2
  1372. package/dist/src/tunnel/env.js +0 -2
  1373. package/dist/src/tunnel/frp-subdomain-host.js +0 -2
  1374. package/dist/src/tunnel/frpc-binary.js +0 -2
  1375. package/dist/src/tunnel/frpc-config.js +0 -2
  1376. package/dist/src/tunnel/frpc-extract.js +0 -2
  1377. package/dist/src/tunnel/frpc-process.js +0 -2
  1378. package/dist/src/tunnel/gateway-lifecycle.js +0 -2
  1379. package/dist/src/tunnel/pair-context.js +0 -2
  1380. package/dist/src/tunnel/pair-url.js +0 -2
  1381. package/dist/src/tunnel/pairing-rate-limit.js +0 -2
  1382. package/dist/src/tunnel/pairing.js +0 -2
  1383. package/dist/src/tunnel/tunnel-audit.js +0 -2
  1384. package/dist/src/tunnel/tunnel-config.js +0 -2
  1385. package/dist/src/tunnel/tunnel-persist.js +0 -2
  1386. package/dist/src/tunnel/tunnel-qr.js +0 -2
  1387. package/dist/src/tunnel/tunnel-rate-limit.js +0 -2
  1388. package/dist/src/tunnel/tunnel-service.js +0 -2
  1389. package/dist/src/tunnel/tunnel-state.js +0 -2
  1390. package/dist/src/tunnel/well-known.js +0 -2
  1391. package/dist/src/user-context/config.js +0 -2
  1392. package/dist/src/user-context/import.js +0 -2
  1393. package/dist/src/user-context/owner.js +0 -2
  1394. package/dist/src/user-context/profile.js +0 -2
  1395. package/dist/src/user-context/projection.js +0 -2
  1396. package/dist/src/user-context/runtime.js +0 -2
  1397. package/dist/src/user-context/source-recommendations.js +0 -2
  1398. package/dist/src/user-context/trust-policy.js +0 -2
  1399. package/dist/src/utils/global-singleton.js +0 -2
  1400. package/dist/src/utils/helpers.js +0 -2
  1401. package/dist/src/utils/index.js +0 -2
  1402. package/dist/src/utils/is-record.js +0 -2
  1403. package/dist/src/utils/logger/audit.js +0 -2
  1404. package/dist/src/utils/logger/config.js +0 -2
  1405. package/dist/src/utils/logger/context.js +0 -2
  1406. package/dist/src/utils/logger/exporters.js +0 -2
  1407. package/dist/src/utils/logger/index.js +0 -2
  1408. package/dist/src/utils/logger/log-store.js +0 -2
  1409. package/dist/src/utils/logger/log-stream.js +0 -2
  1410. package/dist/src/utils/logger/pino-record.js +0 -2
  1411. package/dist/src/utils/logger/redact.js +0 -2
  1412. package/dist/src/utils/logger/rotation.js +0 -2
  1413. package/dist/src/utils/logger/shutdown.js +0 -2
  1414. package/dist/src/utils/logger/stats.js +0 -2
  1415. package/dist/src/utils/logger/streams.js +0 -2
  1416. package/dist/src/utils/logger/types.js +0 -2
  1417. package/dist/src/utils/logger.js +0 -2
  1418. package/dist/src/utils/redact-sensitive-url.js +0 -2
  1419. package/dist/src/utils/sanitize-log.js +0 -2
  1420. package/dist/src/utils/string-coerce.js +0 -2
  1421. package/dist/src/voice/language-profile.js +0 -2
  1422. package/dist/src/voice/local/model-files.js +0 -2
  1423. package/dist/src/voice/local/model-manager.js +0 -2
  1424. package/dist/src/voice/local/models.js +0 -2
  1425. package/dist/src/voice/local/runtime-client.js +0 -2
  1426. package/dist/src/voice/local/runtime-dispatcher.js +0 -2
  1427. package/dist/src/voice/local/runtime-worker.js +12 -4
  1428. package/dist/src/voice/local/wav.js +0 -2
  1429. package/dist/src/voice/metadata/builtin.js +0 -2
  1430. package/dist/src/voice/metadata/registry.js +0 -2
  1431. package/dist/src/voice/stt/availability.js +0 -2
  1432. package/dist/src/voice/stt/config-slice.js +0 -2
  1433. package/dist/src/voice/stt/factory.js +0 -2
  1434. package/dist/src/voice/stt/index.js +0 -2
  1435. package/dist/src/voice/stt/list-providers.js +0 -2
  1436. package/dist/src/voice/stt/mention.js +0 -2
  1437. package/dist/src/voice/stt/preflight.js +0 -2
  1438. package/dist/src/voice/stt/providers/alibaba-transcription.js +0 -2
  1439. package/dist/src/voice/stt/providers/local-transcription.js +0 -2
  1440. package/dist/src/voice/stt/providers/openai-transcription.js +0 -2
  1441. package/dist/src/voice/stt/transcribe-core.js +0 -2
  1442. package/dist/src/voice/stt/types.js +0 -2
  1443. package/dist/src/voice/tts/audio.js +0 -2
  1444. package/dist/src/voice/tts/config-slice.js +0 -2
  1445. package/dist/src/voice/tts/directives.js +0 -2
  1446. package/dist/src/voice/tts/factory.js +0 -2
  1447. package/dist/src/voice/tts/list-providers.js +0 -2
  1448. package/dist/src/voice/tts/merge-config.js +0 -2
  1449. package/dist/src/voice/tts/openai-compatible-speech.js +0 -2
  1450. package/dist/src/voice/tts/payload.js +0 -2
  1451. package/dist/src/voice/tts/preprocess.js +0 -2
  1452. package/dist/src/voice/tts/providers/alibaba-speech.js +0 -2
  1453. package/dist/src/voice/tts/providers/edge-speech.js +0 -2
  1454. package/dist/src/voice/tts/providers/minimax-speech.js +0 -2
  1455. package/dist/src/voice/tts/providers/openai-speech.js +0 -2
  1456. package/dist/src/voice/tts/sentence-boundary.js +0 -2
  1457. package/dist/src/voice/tts/service.js +0 -2
  1458. package/dist/src/voice/tts/speak-core.js +0 -2
  1459. package/dist/src/voice/tts/speech-registry.js +0 -2
  1460. package/dist/src/voice/tts/status-tracker.js +0 -2
  1461. package/dist/src/voice/tts/summarize.js +0 -2
  1462. package/dist/src/voice/tts/types.js +0 -2
  1463. package/dist/src/work-discovery/analyzer.js +0 -2
  1464. package/dist/src/work-discovery/probe.js +0 -2
  1465. package/dist/src/work-discovery/repository.js +0 -2
  1466. package/dist/src/work-discovery/service.js +0 -2
  1467. package/dist/src/work-items/agent-context.js +0 -2
  1468. package/dist/src/work-items/work-item-service.js +0 -2
  1469. package/dist/src/work-items/work-item-store.js +0 -2
  1470. package/dist/src/work-items/work-item-workflow-judge.js +0 -2
  1471. package/dist/src/workflows/authoring/workflow-draft-store.js +0 -2
  1472. package/dist/src/workflows/domain/definition-utils.js +0 -2
  1473. package/dist/src/workflows/domain/run.js +0 -2
  1474. package/dist/src/workflows/domain/schema-validation.js +0 -2
  1475. package/dist/src/workflows/domain/validation.js +0 -2
  1476. package/dist/src/workflows/draft/workflow-draft-prompt.js +0 -2
  1477. package/dist/src/workflows/draft/workflow-draft-service.js +0 -2
  1478. package/dist/src/workflows/draft/workflow-draft-validator.js +0 -2
  1479. package/dist/src/workflows/engine/projector.js +0 -2
  1480. package/dist/src/workflows/engine/workflow-engine.js +0 -2
  1481. package/dist/src/workflows/registry/catalog-workflow-definition-registry.js +0 -2
  1482. package/dist/src/workflows/runtime/graph-workflow-runtime.js +0 -2
  1483. package/dist/src/workflows/service/run-view-to-snapshot.js +0 -2
  1484. package/dist/src/workflows/service/workflow-run-service.js +1 -3
  1485. package/dist/src/workflows/service/workflow-session-bridge.js +0 -2
  1486. package/dist/src/workflows/service/workflow-session-key.js +0 -2
  1487. package/dist/src/workflows/store/event-store.js +0 -2
  1488. package/dist/src/workflows/store/paths.js +0 -2
  1489. package/dist/src/workflows/store/run-index-store.js +0 -2
  1490. package/dist/src/workflows/store/run-store.js +0 -2
  1491. package/package.json +43 -12
  1492. package/skills/creative/hatch-pet/SKILL.md +1 -0
  1493. package/dist/extensions/dashscope/src/image-generation-provider.js.map +0 -1
  1494. package/dist/extensions/demo-memory/src/index.js.map +0 -1
  1495. package/dist/extensions/fal/src/image-generation-provider.js.map +0 -1
  1496. package/dist/extensions/feishu/src/actions/message-action-handler.js.map +0 -1
  1497. package/dist/extensions/feishu/src/adapters/cli-login.js.map +0 -1
  1498. package/dist/extensions/feishu/src/adapters/gateway-setup.js.map +0 -1
  1499. package/dist/extensions/feishu/src/adapters/onboard-cli.js.map +0 -1
  1500. package/dist/extensions/feishu/src/auth/app-registration.js.map +0 -1
  1501. package/dist/extensions/feishu/src/auth/pairing.js.map +0 -1
  1502. package/dist/extensions/feishu/src/auth/paths.js.map +0 -1
  1503. package/dist/extensions/feishu/src/directory/directory-adapter.js.map +0 -1
  1504. package/dist/extensions/feishu/src/format.js.map +0 -1
  1505. package/dist/extensions/feishu/src/index.js.map +0 -1
  1506. package/dist/extensions/feishu/src/outbound/actions.js.map +0 -1
  1507. package/dist/extensions/feishu/src/outbound/media-load.js.map +0 -1
  1508. package/dist/extensions/feishu/src/outbound/outbound-adapter.js.map +0 -1
  1509. package/dist/extensions/feishu/src/pairing/feishu-pairing-prompt.js.map +0 -1
  1510. package/dist/extensions/feishu/src/pairing-config-resolver.js.map +0 -1
  1511. package/dist/extensions/feishu/src/plugin.js.map +0 -1
  1512. package/dist/extensions/feishu/src/schema/config-schema.js.map +0 -1
  1513. package/dist/extensions/feishu/src/state/accounts.js.map +0 -1
  1514. package/dist/extensions/feishu/src/state/message-bindings.js.map +0 -1
  1515. package/dist/extensions/feishu/src/state/thread-bindings.js.map +0 -1
  1516. package/dist/extensions/feishu/src/status/doctor.js.map +0 -1
  1517. package/dist/extensions/feishu/src/status/status-adapter.js.map +0 -1
  1518. package/dist/extensions/feishu/src/streaming/streaming-adapter.js.map +0 -1
  1519. package/dist/extensions/feishu/src/subagent-hooks.js.map +0 -1
  1520. package/dist/extensions/feishu/src/tools/docx/docx-batch-insert.js.map +0 -1
  1521. package/dist/extensions/feishu/src/tools/docx/docx-color-text.js.map +0 -1
  1522. package/dist/extensions/feishu/src/tools/docx/docx-table-ops.js.map +0 -1
  1523. package/dist/extensions/feishu/src/tools/tools.js.map +0 -1
  1524. package/dist/extensions/feishu/src/transport/client/client.js.map +0 -1
  1525. package/dist/extensions/feishu/src/transport/client/lark-sdk-logger.js.map +0 -1
  1526. package/dist/extensions/feishu/src/transport/reliability/dedupe.js.map +0 -1
  1527. package/dist/extensions/feishu/src/transport/reliability/inbound-pipeline.js.map +0 -1
  1528. package/dist/extensions/feishu/src/transport/socket-mode/monitor.js.map +0 -1
  1529. package/dist/extensions/feishu/src/transport/socket-mode/retry.js.map +0 -1
  1530. package/dist/extensions/feishu/src/transport/text/mentions.js.map +0 -1
  1531. package/dist/extensions/feishu/src/transport/webhook/monitor.js.map +0 -1
  1532. package/dist/extensions/feishu/src/ui/config-surface.js.map +0 -1
  1533. package/dist/extensions/feishu/src/workflow-progress.js.map +0 -1
  1534. package/dist/extensions/google/src/image-generation-provider.js.map +0 -1
  1535. package/dist/extensions/minimax/src/image-generation-provider.js.map +0 -1
  1536. package/dist/extensions/openai/src/image-generation-provider.js.map +0 -1
  1537. package/dist/extensions/telegram/src/access-control.js.map +0 -1
  1538. package/dist/extensions/telegram/src/account-manager.js.map +0 -1
  1539. package/dist/extensions/telegram/src/actions/message-actions.js.map +0 -1
  1540. package/dist/extensions/telegram/src/adapters/command-adapter.js.map +0 -1
  1541. package/dist/extensions/telegram/src/adapters/config-adapter.js.map +0 -1
  1542. package/dist/extensions/telegram/src/adapters/debounce-keys.js.map +0 -1
  1543. package/dist/extensions/telegram/src/adapters/gateway-adapter.js.map +0 -1
  1544. package/dist/extensions/telegram/src/adapters/gateway-setup.js.map +0 -1
  1545. package/dist/extensions/telegram/src/adapters/inbound-access.js.map +0 -1
  1546. package/dist/extensions/telegram/src/adapters/index.js.map +0 -1
  1547. package/dist/extensions/telegram/src/adapters/onboard-cli.js.map +0 -1
  1548. package/dist/extensions/telegram/src/adapters/outbound-adapter.js.map +0 -1
  1549. package/dist/extensions/telegram/src/adapters/security-adapter.js.map +0 -1
  1550. package/dist/extensions/telegram/src/adapters/setup-wizard.js.map +0 -1
  1551. package/dist/extensions/telegram/src/adapters/status-adapter.js.map +0 -1
  1552. package/dist/extensions/telegram/src/adapters/streaming-adapter.js.map +0 -1
  1553. package/dist/extensions/telegram/src/api-root.js.map +0 -1
  1554. package/dist/extensions/telegram/src/approval-delivery.js.map +0 -1
  1555. package/dist/extensions/telegram/src/approval-store.js.map +0 -1
  1556. package/dist/extensions/telegram/src/caption.js.map +0 -1
  1557. package/dist/extensions/telegram/src/command-handler.js.map +0 -1
  1558. package/dist/extensions/telegram/src/config-schema.js.map +0 -1
  1559. package/dist/extensions/telegram/src/conversation-id.js.map +0 -1
  1560. package/dist/extensions/telegram/src/dedupe.js.map +0 -1
  1561. package/dist/extensions/telegram/src/delivery-chat-id.js.map +0 -1
  1562. package/dist/extensions/telegram/src/doctor.js.map +0 -1
  1563. package/dist/extensions/telegram/src/draft-stream-lifecycle.js.map +0 -1
  1564. package/dist/extensions/telegram/src/draft-stream-loop.js.map +0 -1
  1565. package/dist/extensions/telegram/src/draft-stream.js.map +0 -1
  1566. package/dist/extensions/telegram/src/errors.js.map +0 -1
  1567. package/dist/extensions/telegram/src/exec-approval-handler.js.map +0 -1
  1568. package/dist/extensions/telegram/src/exec-approvals.js.map +0 -1
  1569. package/dist/extensions/telegram/src/focus-handler.js.map +0 -1
  1570. package/dist/extensions/telegram/src/format.js.map +0 -1
  1571. package/dist/extensions/telegram/src/group-config-resolver.js.map +0 -1
  1572. package/dist/extensions/telegram/src/inbound-coalescer.js.map +0 -1
  1573. package/dist/extensions/telegram/src/inbound-processor.js.map +0 -1
  1574. package/dist/extensions/telegram/src/index.js.map +0 -1
  1575. package/dist/extensions/telegram/src/inline-keyboards.js.map +0 -1
  1576. package/dist/extensions/telegram/src/network-errors.js.map +0 -1
  1577. package/dist/extensions/telegram/src/outbound-sender.js.map +0 -1
  1578. package/dist/extensions/telegram/src/pairing-config-resolver.js.map +0 -1
  1579. package/dist/extensions/telegram/src/plugin-defaults.js.map +0 -1
  1580. package/dist/extensions/telegram/src/plugin.js.map +0 -1
  1581. package/dist/extensions/telegram/src/polling-session.js.map +0 -1
  1582. package/dist/extensions/telegram/src/proxy-fetch.js.map +0 -1
  1583. package/dist/extensions/telegram/src/reactions.js.map +0 -1
  1584. package/dist/extensions/telegram/src/reply-params.js.map +0 -1
  1585. package/dist/extensions/telegram/src/routing-integration.js.map +0 -1
  1586. package/dist/extensions/telegram/src/send-options.js.map +0 -1
  1587. package/dist/extensions/telegram/src/sent-cache.js.map +0 -1
  1588. package/dist/extensions/telegram/src/startup-errors.js.map +0 -1
  1589. package/dist/extensions/telegram/src/telegram-actions.js.map +0 -1
  1590. package/dist/extensions/telegram/src/telegram-draft-errors.js.map +0 -1
  1591. package/dist/extensions/telegram/src/thread-bindings.js.map +0 -1
  1592. package/dist/extensions/telegram/src/timeout-abort.js.map +0 -1
  1593. package/dist/extensions/telegram/src/token-resolver.js.map +0 -1
  1594. package/dist/extensions/telegram/src/update-offset-store.js.map +0 -1
  1595. package/dist/extensions/telegram/src/workflow-progress.js.map +0 -1
  1596. package/dist/extensions/weixin/src/adapters/onboard-cli.js.map +0 -1
  1597. package/dist/extensions/weixin/src/api/api.js.map +0 -1
  1598. package/dist/extensions/weixin/src/api/config-cache.js.map +0 -1
  1599. package/dist/extensions/weixin/src/api/session-guard.js.map +0 -1
  1600. package/dist/extensions/weixin/src/api/types.js.map +0 -1
  1601. package/dist/extensions/weixin/src/auth/accounts.js.map +0 -1
  1602. package/dist/extensions/weixin/src/auth/login-qr.js.map +0 -1
  1603. package/dist/extensions/weixin/src/auth/pairing.js.map +0 -1
  1604. package/dist/extensions/weixin/src/auth/weixin-account-id.js.map +0 -1
  1605. package/dist/extensions/weixin/src/cdn/aes-ecb.js.map +0 -1
  1606. package/dist/extensions/weixin/src/cdn/cdn-upload.js.map +0 -1
  1607. package/dist/extensions/weixin/src/cdn/cdn-url.js.map +0 -1
  1608. package/dist/extensions/weixin/src/cdn/pic-decrypt.js.map +0 -1
  1609. package/dist/extensions/weixin/src/cdn/upload.js.map +0 -1
  1610. package/dist/extensions/weixin/src/cli/gateway-qr-login.js.map +0 -1
  1611. package/dist/extensions/weixin/src/cli/qr-login.js.map +0 -1
  1612. package/dist/extensions/weixin/src/config-schema.js.map +0 -1
  1613. package/dist/extensions/weixin/src/config-surface.js.map +0 -1
  1614. package/dist/extensions/weixin/src/delivery-to.js.map +0 -1
  1615. package/dist/extensions/weixin/src/index.js.map +0 -1
  1616. package/dist/extensions/weixin/src/media/data-url.js.map +0 -1
  1617. package/dist/extensions/weixin/src/media/media-download.js.map +0 -1
  1618. package/dist/extensions/weixin/src/media/mime.js.map +0 -1
  1619. package/dist/extensions/weixin/src/media/silk-transcode.js.map +0 -1
  1620. package/dist/extensions/weixin/src/messaging/context-token-init.js.map +0 -1
  1621. package/dist/extensions/weixin/src/messaging/debug-mode.js.map +0 -1
  1622. package/dist/extensions/weixin/src/messaging/error-notice.js.map +0 -1
  1623. package/dist/extensions/weixin/src/messaging/inbound.js.map +0 -1
  1624. package/dist/extensions/weixin/src/messaging/markdown-filter.js.map +0 -1
  1625. package/dist/extensions/weixin/src/messaging/process-message.js.map +0 -1
  1626. package/dist/extensions/weixin/src/messaging/send-media.js.map +0 -1
  1627. package/dist/extensions/weixin/src/messaging/send.js.map +0 -1
  1628. package/dist/extensions/weixin/src/messaging/slash-commands.js.map +0 -1
  1629. package/dist/extensions/weixin/src/messaging/typing-ticket-store.js.map +0 -1
  1630. package/dist/extensions/weixin/src/monitor/monitor.js.map +0 -1
  1631. package/dist/extensions/weixin/src/outbound-send.js.map +0 -1
  1632. package/dist/extensions/weixin/src/pairing-config-resolver.js.map +0 -1
  1633. package/dist/extensions/weixin/src/plugin.js.map +0 -1
  1634. package/dist/extensions/weixin/src/routing-integration.js.map +0 -1
  1635. package/dist/extensions/weixin/src/storage/state-dir.js.map +0 -1
  1636. package/dist/extensions/weixin/src/storage/sync-buf.js.map +0 -1
  1637. package/dist/extensions/weixin/src/util/logger.js.map +0 -1
  1638. package/dist/extensions/weixin/src/util/random.js.map +0 -1
  1639. package/dist/extensions/weixin/src/util/redact.js.map +0 -1
  1640. package/dist/extensions/weixin/src/workflow-progress.js.map +0 -1
  1641. package/dist/gateway/static/root/assets/agents-DZDOcgz5.js +0 -2
  1642. package/dist/gateway/static/root/assets/appearance-settings-BNasnY9D.js +0 -1
  1643. package/dist/gateway/static/root/assets/apps-page-Cmr-Hvm9.js +0 -1
  1644. package/dist/gateway/static/root/assets/automations-page-TWgUAI8t.js +0 -6
  1645. package/dist/gateway/static/root/assets/browser-settings-page-DBsFItW_.js +0 -8
  1646. package/dist/gateway/static/root/assets/channels-settings-BBkzrBYy.js +0 -1
  1647. package/dist/gateway/static/root/assets/channels-status-swr-CuU6ez3y.js +0 -1
  1648. package/dist/gateway/static/root/assets/connectors-page-DLsZCAw7.js +0 -2
  1649. package/dist/gateway/static/root/assets/desktop-pet-C6V-PHwi.js +0 -1
  1650. package/dist/gateway/static/root/assets/desktop-pet-settings-5Fcz47XQ.js +0 -1
  1651. package/dist/gateway/static/root/assets/gateway-settings-BrxzyVW2.js +0 -1
  1652. package/dist/gateway/static/root/assets/goal-create-dialog-DRVRLc5Z.js +0 -1
  1653. package/dist/gateway/static/root/assets/goal-detail-page-8F7NElzP.js +0 -4
  1654. package/dist/gateway/static/root/assets/goals-page-BaoLiV8G.js +0 -2
  1655. package/dist/gateway/static/root/assets/index-CH7XN6KY.js +0 -259
  1656. package/dist/gateway/static/root/assets/index-Dfnl9tp_.css +0 -1
  1657. package/dist/gateway/static/root/assets/keyboard-shortcuts-settings-BHnh5OoY.js +0 -1
  1658. package/dist/gateway/static/root/assets/local-app-workbench-page-Boe8n4zH.js +0 -2
  1659. package/dist/gateway/static/root/assets/locale-store-BneNAR8R.js +0 -1
  1660. package/dist/gateway/static/root/assets/logs-page-Cb4Uptct.js +0 -7
  1661. package/dist/gateway/static/root/assets/messages-t1yPaVCt.js +0 -5
  1662. package/dist/gateway/static/root/assets/models-hub-panel-CNiUKZUV.js +0 -2
  1663. package/dist/gateway/static/root/assets/notes-workbench-C9__VkD6.js +0 -4
  1664. package/dist/gateway/static/root/assets/project-detail-page-CZhuB5kO.js +0 -1
  1665. package/dist/gateway/static/root/assets/projects-page-BOq4WVdR.js +0 -1
  1666. package/dist/gateway/static/root/assets/remote-access-hub-BxGq0ebQ.js +0 -1
  1667. package/dist/gateway/static/root/assets/sessions-page-B6gSU_Au.js +0 -1
  1668. package/dist/gateway/static/root/assets/settings-advanced-gate-DwuBL834.js +0 -1
  1669. package/dist/gateway/static/root/assets/settings-loading-skeleton-vitElc-n.js +0 -1
  1670. package/dist/gateway/static/root/assets/setup-status-panel-BJeA4mmk.js +0 -1
  1671. package/dist/gateway/static/root/assets/shares-settings-DB2KYA2_.js +0 -1
  1672. package/dist/gateway/static/root/assets/skill-reload-api-DQtZiejw.js +0 -1
  1673. package/dist/gateway/static/root/assets/skills-page-Pm0fNe_p.js +0 -2
  1674. package/dist/gateway/static/root/assets/user-context-page-DnLqQyRG.js +0 -1
  1675. package/dist/gateway/static/root/assets/voice-api-key-field-BiFIIWC4.js +0 -1
  1676. package/dist/gateway/static/root/assets/work-discovery-page-D2-_bC0J.js +0 -1
  1677. package/dist/gateway/static/root/assets/work-item-detail-page-B0FPG4eJ.js +0 -1
  1678. package/dist/gateway/static/root/assets/work-page-BDeVxts_.js +0 -1
  1679. package/dist/gateway/static/root/assets/workflow-run-setup-panel-BPzS67fU.js +0 -3
  1680. package/dist/gateway/static/root/assets/workflows-page-xPhmrRLs.js +0 -11
  1681. package/dist/gateway/static/root/favicon-icon.svg +0 -187
  1682. package/dist/package.js.map +0 -1
  1683. package/dist/src/activity/context.js.map +0 -1
  1684. package/dist/src/activity/emitter.js.map +0 -1
  1685. package/dist/src/activity/service.js.map +0 -1
  1686. package/dist/src/agent/agent-manager.js.map +0 -1
  1687. package/dist/src/agent/agent-scope.js.map +0 -1
  1688. package/dist/src/agent/background-review/coordinator.js.map +0 -1
  1689. package/dist/src/agent/background-review/prompts.js.map +0 -1
  1690. package/dist/src/agent/background-review/run-background-review.js.map +0 -1
  1691. package/dist/src/agent/background-review/settings.js.map +0 -1
  1692. package/dist/src/agent/bootstrap/bootstrap-cache.js.map +0 -1
  1693. package/dist/src/agent/bootstrap/bootstrap-context.js.map +0 -1
  1694. package/dist/src/agent/bootstrap/bootstrap-files.js.map +0 -1
  1695. package/dist/src/agent/bootstrap/filter-bootstrap-files.js.map +0 -1
  1696. package/dist/src/agent/bootstrap/load-bootstrap-files.js.map +0 -1
  1697. package/dist/src/agent/bootstrap/project-agents-context.js.map +0 -1
  1698. package/dist/src/agent/capabilities/definitions.js.map +0 -1
  1699. package/dist/src/agent/capabilities/registry.js.map +0 -1
  1700. package/dist/src/agent/child-agent-factory.js.map +0 -1
  1701. package/dist/src/agent/client-error-format.js.map +0 -1
  1702. package/dist/src/agent/code-intelligence/binary.js.map +0 -1
  1703. package/dist/src/agent/code-intelligence/runtime.js.map +0 -1
  1704. package/dist/src/agent/code-intelligence/tools.js.map +0 -1
  1705. package/dist/src/agent/coding/turn-diff-tracker.js.map +0 -1
  1706. package/dist/src/agent/context/expand-at-file-mentions.js.map +0 -1
  1707. package/dist/src/agent/context/project-context.js.map +0 -1
  1708. package/dist/src/agent/context/workspace-seed.js.map +0 -1
  1709. package/dist/src/agent/context/workspace-state.js.map +0 -1
  1710. package/dist/src/agent/context/workspace.js.map +0 -1
  1711. package/dist/src/agent/embedded/run-for-session.js.map +0 -1
  1712. package/dist/src/agent/embedded/run-turn.js.map +0 -1
  1713. package/dist/src/agent/embedded/runs.js.map +0 -1
  1714. package/dist/src/agent/embedded/session-manager-init.js.map +0 -1
  1715. package/dist/src/agent/embedded/session-runner.js.map +0 -1
  1716. package/dist/src/agent/embedded/session-tool-result-guard.js.map +0 -1
  1717. package/dist/src/agent/embedded/sqlite-hydrating-session-manager.js.map +0 -1
  1718. package/dist/src/agent/embedded/subscribe-session.js.map +0 -1
  1719. package/dist/src/agent/embedded/system-prompt-override.js.map +0 -1
  1720. package/dist/src/agent/embedded/tool-result-context-guard.js.map +0 -1
  1721. package/dist/src/agent/embedded/tool-result-truncation.js.map +0 -1
  1722. package/dist/src/agent/embedded/xopc-auth-storage.js.map +0 -1
  1723. package/dist/src/agent/embedded/xopc-stream-bridge.js.map +0 -1
  1724. package/dist/src/agent/embedded/xopc-tools-bridge.js.map +0 -1
  1725. package/dist/src/agent/failover-error.js.map +0 -1
  1726. package/dist/src/agent/fallback/candidates.js.map +0 -1
  1727. package/dist/src/agent/fallback/reason.js.map +0 -1
  1728. package/dist/src/agent/feedback/feedback-coordinator.js.map +0 -1
  1729. package/dist/src/agent/goals/checklist-judge.js.map +0 -1
  1730. package/dist/src/agent/goals/checklist-types.js.map +0 -1
  1731. package/dist/src/agent/goals/evaluate-turn.js.map +0 -1
  1732. package/dist/src/agent/goals/goal-locale.js.map +0 -1
  1733. package/dist/src/agent/goals/judge.js.map +0 -1
  1734. package/dist/src/agent/goals/persistent-goal-service.js.map +0 -1
  1735. package/dist/src/agent/goals/post-turn.js.map +0 -1
  1736. package/dist/src/agent/goals/state.js.map +0 -1
  1737. package/dist/src/agent/image/generation/bundled-registry.js.map +0 -1
  1738. package/dist/src/agent/image/generation/bundled.js.map +0 -1
  1739. package/dist/src/agent/image/generation/image-assets.js.map +0 -1
  1740. package/dist/src/agent/image/generation/model-ref.js.map +0 -1
  1741. package/dist/src/agent/image/generation/normalization.js.map +0 -1
  1742. package/dist/src/agent/image/generation/openai-compatible-image-provider.js.map +0 -1
  1743. package/dist/src/agent/image/generation/provider-registry.js.map +0 -1
  1744. package/dist/src/agent/image/generation/runtime.js.map +0 -1
  1745. package/dist/src/agent/image/image-helpers.js.map +0 -1
  1746. package/dist/src/agent/image/image-model-fallback.js.map +0 -1
  1747. package/dist/src/agent/image/inbound-image-handling.js.map +0 -1
  1748. package/dist/src/agent/image/load-image-media.js.map +0 -1
  1749. package/dist/src/agent/image/tool-model-config.js.map +0 -1
  1750. package/dist/src/agent/image/understanding/pi-ai-provider.js.map +0 -1
  1751. package/dist/src/agent/image/understanding/provider-registry.js.map +0 -1
  1752. package/dist/src/agent/image/understanding/runtime.js.map +0 -1
  1753. package/dist/src/agent/image/vision-detection.js.map +0 -1
  1754. package/dist/src/agent/inbound/attachment-pipeline.js.map +0 -1
  1755. package/dist/src/agent/inbound/inbound-loop.js.map +0 -1
  1756. package/dist/src/agent/inbound/turn-dispatcher.js.map +0 -1
  1757. package/dist/src/agent/ipc/bus.js.map +0 -1
  1758. package/dist/src/agent/ipc/inbox.js.map +0 -1
  1759. package/dist/src/agent/ipc/socket.js.map +0 -1
  1760. package/dist/src/agent/ipc/types.js.map +0 -1
  1761. package/dist/src/agent/lifecycle/handlers/compaction.js.map +0 -1
  1762. package/dist/src/agent/lifecycle/hook-handler.js.map +0 -1
  1763. package/dist/src/agent/lifecycle/manager.js.map +0 -1
  1764. package/dist/src/agent/lifecycle/progress.js.map +0 -1
  1765. package/dist/src/agent/lifecycle/timeout-wrapper.js.map +0 -1
  1766. package/dist/src/agent/lifecycle/typing.js.map +0 -1
  1767. package/dist/src/agent/mcp/bundle-mcp-config.js.map +0 -1
  1768. package/dist/src/agent/mcp/bundle-mcp-materialize.js.map +0 -1
  1769. package/dist/src/agent/mcp/bundle-mcp-names.js.map +0 -1
  1770. package/dist/src/agent/mcp/bundle-mcp-policy.js.map +0 -1
  1771. package/dist/src/agent/mcp/bundle-mcp-runtime.js.map +0 -1
  1772. package/dist/src/agent/mcp/embedded-mcp.js.map +0 -1
  1773. package/dist/src/agent/mcp/mcp-config-shared.js.map +0 -1
  1774. package/dist/src/agent/mcp/mcp-http.js.map +0 -1
  1775. package/dist/src/agent/mcp/mcp-stdio-transport.js.map +0 -1
  1776. package/dist/src/agent/mcp/mcp-stdio.js.map +0 -1
  1777. package/dist/src/agent/mcp/mcp-tool-meta.js.map +0 -1
  1778. package/dist/src/agent/mcp/mcp-transport-config.js.map +0 -1
  1779. package/dist/src/agent/mcp/mcp-transport.js.map +0 -1
  1780. package/dist/src/agent/mcp/resolve-embedded-mcp-tools.js.map +0 -1
  1781. package/dist/src/agent/media-generation/model-ref.js.map +0 -1
  1782. package/dist/src/agent/media-generation/normalization.types.js.map +0 -1
  1783. package/dist/src/agent/media-generation/runtime-shared.js.map +0 -1
  1784. package/dist/src/agent/memory/agent-message-access.js.map +0 -1
  1785. package/dist/src/agent/memory/builtin-memory-store.js.map +0 -1
  1786. package/dist/src/agent/memory/builtin-provider.js.map +0 -1
  1787. package/dist/src/agent/memory/compaction.js.map +0 -1
  1788. package/dist/src/agent/memory/context/planner.js.map +0 -1
  1789. package/dist/src/agent/memory/context-fence.js.map +0 -1
  1790. package/dist/src/agent/memory/create-memory-manager.js.map +0 -1
  1791. package/dist/src/agent/memory/dreaming/config.js.map +0 -1
  1792. package/dist/src/agent/memory/dreaming/constants.js.map +0 -1
  1793. package/dist/src/agent/memory/dreaming/deep-promotion.js.map +0 -1
  1794. package/dist/src/agent/memory/dreaming/events.js.map +0 -1
  1795. package/dist/src/agent/memory/dreaming/last-run.js.map +0 -1
  1796. package/dist/src/agent/memory/dreaming/light-sweep.js.map +0 -1
  1797. package/dist/src/agent/memory/dreaming/preview.js.map +0 -1
  1798. package/dist/src/agent/memory/dreaming/promotion-lifecycle.js.map +0 -1
  1799. package/dist/src/agent/memory/dreaming/rem-patterns.js.map +0 -1
  1800. package/dist/src/agent/memory/dreaming/scope.js.map +0 -1
  1801. package/dist/src/agent/memory/dreaming/short-term-store.js.map +0 -1
  1802. package/dist/src/agent/memory/dreaming/utils.js.map +0 -1
  1803. package/dist/src/agent/memory/lifecycle.js.map +0 -1
  1804. package/dist/src/agent/memory/manager.js.map +0 -1
  1805. package/dist/src/agent/memory/memory-config.js.map +0 -1
  1806. package/dist/src/agent/memory/message-sanitizer.js.map +0 -1
  1807. package/dist/src/agent/memory/plugin-discovery.js.map +0 -1
  1808. package/dist/src/agent/memory/sensitivity.js.map +0 -1
  1809. package/dist/src/agent/memory/source-origin.js.map +0 -1
  1810. package/dist/src/agent/memory/stub-memory-provider.js.map +0 -1
  1811. package/dist/src/agent/memory/summary-generator.js.map +0 -1
  1812. package/dist/src/agent/memory/understanding/correction.js.map +0 -1
  1813. package/dist/src/agent/memory/understanding/quality.js.map +0 -1
  1814. package/dist/src/agent/memory/understanding/service.js.map +0 -1
  1815. package/dist/src/agent/memory/user-context-coordinator.js.map +0 -1
  1816. package/dist/src/agent/memory/user-message-text.js.map +0 -1
  1817. package/dist/src/agent/memory/window.js.map +0 -1
  1818. package/dist/src/agent/messaging/command-handler.js.map +0 -1
  1819. package/dist/src/agent/messaging/message-router.js.map +0 -1
  1820. package/dist/src/agent/messaging/outbound-coordinator.js.map +0 -1
  1821. package/dist/src/agent/messaging/stream-manager.js.map +0 -1
  1822. package/dist/src/agent/middleware/context.js.map +0 -1
  1823. package/dist/src/agent/middleware/self-verify.js.map +0 -1
  1824. package/dist/src/agent/models/manager.js.map +0 -1
  1825. package/dist/src/agent/models/request-limiter.js.map +0 -1
  1826. package/dist/src/agent/models/selection.js.map +0 -1
  1827. package/dist/src/agent/orchestration/agent-event-handler.js.map +0 -1
  1828. package/dist/src/agent/orchestration/agent-orchestrator.js.map +0 -1
  1829. package/dist/src/agent/orchestration/llm-turn-retry.js.map +0 -1
  1830. package/dist/src/agent/orchestration/loop-guard.js.map +0 -1
  1831. package/dist/src/agent/orchestration/run-agent-turn-with-timeout.js.map +0 -1
  1832. package/dist/src/agent/prompt/cache-boundary.js.map +0 -1
  1833. package/dist/src/agent/prompt/memory/index.js.map +0 -1
  1834. package/dist/src/agent/prompt/safety.js.map +0 -1
  1835. package/dist/src/agent/prompt/sanitize-for-prompt.js.map +0 -1
  1836. package/dist/src/agent/prompt/sections/behavior.js.map +0 -1
  1837. package/dist/src/agent/prompt/sections/memory-skills.js.map +0 -1
  1838. package/dist/src/agent/prompt/sections/messaging-runtime.js.map +0 -1
  1839. package/dist/src/agent/prompt/sections/project-context.js.map +0 -1
  1840. package/dist/src/agent/prompt/sections/tooling.js.map +0 -1
  1841. package/dist/src/agent/prompt/sections/workspace-runtime.js.map +0 -1
  1842. package/dist/src/agent/prompt/service-prompt-builder.js.map +0 -1
  1843. package/dist/src/agent/prompt/subagent-context.js.map +0 -1
  1844. package/dist/src/agent/prompt/system-prompt-params.js.map +0 -1
  1845. package/dist/src/agent/prompt/system-prompt.js.map +0 -1
  1846. package/dist/src/agent/prompt/system-reminder.js.map +0 -1
  1847. package/dist/src/agent/reply/apply-turn-user-enrichment.js.map +0 -1
  1848. package/dist/src/agent/reply/post-compaction-context.js.map +0 -1
  1849. package/dist/src/agent/reply/startup-context.js.map +0 -1
  1850. package/dist/src/agent/reply/workspace-boundary-read.js.map +0 -1
  1851. package/dist/src/agent/sandbox/command-validator.js.map +0 -1
  1852. package/dist/src/agent/sandbox/exec-policy.js.map +0 -1
  1853. package/dist/src/agent/sandbox/path-policy.js.map +0 -1
  1854. package/dist/src/agent/sandbox/sanitize-env-vars.js.map +0 -1
  1855. package/dist/src/agent/sandbox/types.js.map +0 -1
  1856. package/dist/src/agent/service/async-queue.js.map +0 -1
  1857. package/dist/src/agent/service/btw-query.js.map +0 -1
  1858. package/dist/src/agent/service/build-direct-message-content.js.map +0 -1
  1859. package/dist/src/agent/service/direct-turn-helpers.js.map +0 -1
  1860. package/dist/src/agent/service/parse-outbound-session-key.js.map +0 -1
  1861. package/dist/src/agent/service/process-direct-one-shot.js.map +0 -1
  1862. package/dist/src/agent/service/process-direct-streaming.js.map +0 -1
  1863. package/dist/src/agent/service/session-context-report.js.map +0 -1
  1864. package/dist/src/agent/service/webchat-tts.js.map +0 -1
  1865. package/dist/src/agent/service-inbound-utils.js.map +0 -1
  1866. package/dist/src/agent/service.js.map +0 -1
  1867. package/dist/src/agent/session/session-config-service.js.map +0 -1
  1868. package/dist/src/agent/session/session-context.js.map +0 -1
  1869. package/dist/src/agent/session/session-hydrator.js.map +0 -1
  1870. package/dist/src/agent/session/session-inspector.js.map +0 -1
  1871. package/dist/src/agent/session/session-lifecycle.js.map +0 -1
  1872. package/dist/src/agent/session/session-state-bag.js.map +0 -1
  1873. package/dist/src/agent/session/tracker.js.map +0 -1
  1874. package/dist/src/agent/skills/config.js.map +0 -1
  1875. package/dist/src/agent/skills/filesystem-watcher.js.map +0 -1
  1876. package/dist/src/agent/skills/format-skills-prompt.js.map +0 -1
  1877. package/dist/src/agent/skills/hub-hash.js.map +0 -1
  1878. package/dist/src/agent/skills/hub-lock.js.map +0 -1
  1879. package/dist/src/agent/skills/hub-pull.js.map +0 -1
  1880. package/dist/src/agent/skills/index.js.map +0 -1
  1881. package/dist/src/agent/skills/install-target.js.map +0 -1
  1882. package/dist/src/agent/skills/installer.js.map +0 -1
  1883. package/dist/src/agent/skills/managed-store.js.map +0 -1
  1884. package/dist/src/agent/skills/marketplace/adapters/clawhub/adapter.js.map +0 -1
  1885. package/dist/src/agent/skills/marketplace/adapters/skillhub/adapter.js.map +0 -1
  1886. package/dist/src/agent/skills/marketplace/adapters/store/adapter.js.map +0 -1
  1887. package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.js.map +0 -1
  1888. package/dist/src/agent/skills/marketplace/marketplace-category-order.js.map +0 -1
  1889. package/dist/src/agent/skills/marketplace/registry.js.map +0 -1
  1890. package/dist/src/agent/skills/marketplace/resolve-adapter.js.map +0 -1
  1891. package/dist/src/agent/skills/parse-skill-metadata.js.map +0 -1
  1892. package/dist/src/agent/skills/required-env-vars.js.map +0 -1
  1893. package/dist/src/agent/skills/scanner.js.map +0 -1
  1894. package/dist/src/agent/skills/skill-manage-ops.js.map +0 -1
  1895. package/dist/src/agent/skills/skill-manager.js.map +0 -1
  1896. package/dist/src/agent/skills/skill-markdown-preview-from-raw.js.map +0 -1
  1897. package/dist/src/agent/skills/skill-tool-gating.js.map +0 -1
  1898. package/dist/src/agent/skills/skill-view-path.js.map +0 -1
  1899. package/dist/src/agent/skills/skills-marketplace.js.map +0 -1
  1900. package/dist/src/agent/skills/test-framework.js.map +0 -1
  1901. package/dist/src/agent/skills/watcher.js.map +0 -1
  1902. package/dist/src/agent/skills/workspace-skills-dir.js.map +0 -1
  1903. package/dist/src/agent/source-context/injector.js.map +0 -1
  1904. package/dist/src/agent/source-context/types.js.map +0 -1
  1905. package/dist/src/agent/starter-agents.js.map +0 -1
  1906. package/dist/src/agent/streaming/reasoning-visibility-sse.js.map +0 -1
  1907. package/dist/src/agent/tool-manuals/browser.js.map +0 -1
  1908. package/dist/src/agent/tool-manuals/index.js.map +0 -1
  1909. package/dist/src/agent/tool-manuals/xopc-use.js.map +0 -1
  1910. package/dist/src/agent/tools/apply-patch.js.map +0 -1
  1911. package/dist/src/agent/tools/automation-tool.js.map +0 -1
  1912. package/dist/src/agent/tools/browser/tool/browser-use-tool.js.map +0 -1
  1913. package/dist/src/agent/tools/browser/tool/schemas.js.map +0 -1
  1914. package/dist/src/agent/tools/chain-tracker.js.map +0 -1
  1915. package/dist/src/agent/tools/clarify-tool.js.map +0 -1
  1916. package/dist/src/agent/tools/cli-clarify.js.map +0 -1
  1917. package/dist/src/agent/tools/communication.js.map +0 -1
  1918. package/dist/src/agent/tools/composio-tool.js.map +0 -1
  1919. package/dist/src/agent/tools/concurrency.js.map +0 -1
  1920. package/dist/src/agent/tools/create-share-tool.js.map +0 -1
  1921. package/dist/src/agent/tools/curated-memory-tool.js.map +0 -1
  1922. package/dist/src/agent/tools/delegate-tool.js.map +0 -1
  1923. package/dist/src/agent/tools/desktop-pet-tool.js.map +0 -1
  1924. package/dist/src/agent/tools/dreaming-tool.js.map +0 -1
  1925. package/dist/src/agent/tools/edit-diff.js.map +0 -1
  1926. package/dist/src/agent/tools/error-pattern-matcher.js.map +0 -1
  1927. package/dist/src/agent/tools/error-tracker.js.map +0 -1
  1928. package/dist/src/agent/tools/exec-command.js.map +0 -1
  1929. package/dist/src/agent/tools/execute-code-tool.js.map +0 -1
  1930. package/dist/src/agent/tools/executor.js.map +0 -1
  1931. package/dist/src/agent/tools/factory.js.map +0 -1
  1932. package/dist/src/agent/tools/find.js.map +0 -1
  1933. package/dist/src/agent/tools/goal-evidence-recorder.js.map +0 -1
  1934. package/dist/src/agent/tools/goal-tool.js.map +0 -1
  1935. package/dist/src/agent/tools/grep.js.map +0 -1
  1936. package/dist/src/agent/tools/image-generate-tool.js.map +0 -1
  1937. package/dist/src/agent/tools/image-tool.js.map +0 -1
  1938. package/dist/src/agent/tools/list-dir.js.map +0 -1
  1939. package/dist/src/agent/tools/media-read-tool.js.map +0 -1
  1940. package/dist/src/agent/tools/memory-tool.js.map +0 -1
  1941. package/dist/src/agent/tools/metadata.js.map +0 -1
  1942. package/dist/src/agent/tools/read.js.map +0 -1
  1943. package/dist/src/agent/tools/search/http.js.map +0 -1
  1944. package/dist/src/agent/tools/search/providers/bing-api.js.map +0 -1
  1945. package/dist/src/agent/tools/search/providers/bing-html.js.map +0 -1
  1946. package/dist/src/agent/tools/search/providers/brave.js.map +0 -1
  1947. package/dist/src/agent/tools/search/providers/duckduckgo-html.js.map +0 -1
  1948. package/dist/src/agent/tools/search/providers/searxng.js.map +0 -1
  1949. package/dist/src/agent/tools/search/providers/tavily.js.map +0 -1
  1950. package/dist/src/agent/tools/search/region.js.map +0 -1
  1951. package/dist/src/agent/tools/search/registry.js.map +0 -1
  1952. package/dist/src/agent/tools/search/resolve-config.js.map +0 -1
  1953. package/dist/src/agent/tools/send-media.js.map +0 -1
  1954. package/dist/src/agent/tools/session-search-tool.js.map +0 -1
  1955. package/dist/src/agent/tools/session-status-tool.js.map +0 -1
  1956. package/dist/src/agent/tools/skill-install-tool.js.map +0 -1
  1957. package/dist/src/agent/tools/skill-manage-tool.js.map +0 -1
  1958. package/dist/src/agent/tools/skills-tools.js.map +0 -1
  1959. package/dist/src/agent/tools/structured-output.js.map +0 -1
  1960. package/dist/src/agent/tools/todo-tool.js.map +0 -1
  1961. package/dist/src/agent/tools/tool-manual-tool.js.map +0 -1
  1962. package/dist/src/agent/tools/tool-paths.js.map +0 -1
  1963. package/dist/src/agent/tools/truncate.js.map +0 -1
  1964. package/dist/src/agent/tools/tts-tool.js.map +0 -1
  1965. package/dist/src/agent/tools/update-plan-tool.js.map +0 -1
  1966. package/dist/src/agent/tools/url-safety.js.map +0 -1
  1967. package/dist/src/agent/tools/usage-analyzer.js.map +0 -1
  1968. package/dist/src/agent/tools/web-extract.js.map +0 -1
  1969. package/dist/src/agent/tools/web.js.map +0 -1
  1970. package/dist/src/agent/tools/workflow-tool.js.map +0 -1
  1971. package/dist/src/agent/tools/write.js.map +0 -1
  1972. package/dist/src/agent/tools/xopc-use-tool.js.map +0 -1
  1973. package/dist/src/agent/transcript/google-api.js.map +0 -1
  1974. package/dist/src/agent/transcript/model-selection.js.map +0 -1
  1975. package/dist/src/agent/transcript/provider-capabilities.js.map +0 -1
  1976. package/dist/src/agent/transcript/session-transcript-repair.js.map +0 -1
  1977. package/dist/src/agent/transcript/strip-tool-messages.js.map +0 -1
  1978. package/dist/src/agent/transcript/thinking-types.js.map +0 -1
  1979. package/dist/src/agent/transcript/thinking.js.map +0 -1
  1980. package/dist/src/agent/transcript/tool-call-id.js.map +0 -1
  1981. package/dist/src/agent/transcript/transcript-hygiene.js.map +0 -1
  1982. package/dist/src/agent/transcript/transcript-policy.js.map +0 -1
  1983. package/dist/src/agent/workflow/agent-progress.js.map +0 -1
  1984. package/dist/src/agent/workflow/builtins/index.js.map +0 -1
  1985. package/dist/src/agent/workflow/catalog.js.map +0 -1
  1986. package/dist/src/agent/workflow/progress-broker.js.map +0 -1
  1987. package/dist/src/agent/workflow/snapshot-empty.js.map +0 -1
  1988. package/dist/src/agent/workflow/snapshot.js.map +0 -1
  1989. package/dist/src/agent/workflow/step-labels.js.map +0 -1
  1990. package/dist/src/agent/workflow/structured-output-tool.js.map +0 -1
  1991. package/dist/src/agent/workflow/subagent-runner.js.map +0 -1
  1992. package/dist/src/agent/workflow/workflow-child-tools.js.map +0 -1
  1993. package/dist/src/agent/workspace-runtime/registry.js.map +0 -1
  1994. package/dist/src/agent-manifest/index.js.map +0 -1
  1995. package/dist/src/agent-manifest/preset-chain.js.map +0 -1
  1996. package/dist/src/agent-manifest/prompt.js.map +0 -1
  1997. package/dist/src/agent-manifest/resolver.js.map +0 -1
  1998. package/dist/src/agent-manifest/schema.js.map +0 -1
  1999. package/dist/src/agent-manifest/validator.js.map +0 -1
  2000. package/dist/src/agent-runtime/boundary-guard.js.map +0 -1
  2001. package/dist/src/agent-runtime/memory-runtime.js.map +0 -1
  2002. package/dist/src/agent-runtime/model-router.js.map +0 -1
  2003. package/dist/src/agent-runtime/run-trace.js.map +0 -1
  2004. package/dist/src/agent-runtime/runtime-profile.js.map +0 -1
  2005. package/dist/src/agent-runtime/tool-registry.js.map +0 -1
  2006. package/dist/src/agent-runtime/workflow-runtime.js.map +0 -1
  2007. package/dist/src/ai-assist/text-assist.js.map +0 -1
  2008. package/dist/src/auth/credentials.js.map +0 -1
  2009. package/dist/src/auth/index.js.map +0 -1
  2010. package/dist/src/auth/oauth/anthropic.js.map +0 -1
  2011. package/dist/src/auth/oauth/github-copilot.js.map +0 -1
  2012. package/dist/src/auth/oauth/google-oauth/google-antigravity.js.map +0 -1
  2013. package/dist/src/auth/oauth/google-oauth/google-gemini-cli.js.map +0 -1
  2014. package/dist/src/auth/oauth/google-oauth/oauth-page.js.map +0 -1
  2015. package/dist/src/auth/oauth/google-oauth/pkce.js.map +0 -1
  2016. package/dist/src/auth/oauth/kimi-coding.js.map +0 -1
  2017. package/dist/src/auth/oauth/minimax-cn.js.map +0 -1
  2018. package/dist/src/auth/oauth/minimax.js.map +0 -1
  2019. package/dist/src/auth/oauth/openai-codex.js.map +0 -1
  2020. package/dist/src/auth/oauth/pkce.js.map +0 -1
  2021. package/dist/src/auth/profiles/oauth.js.map +0 -1
  2022. package/dist/src/auth/profiles/order.js.map +0 -1
  2023. package/dist/src/auth/profiles/profiles.js.map +0 -1
  2024. package/dist/src/auth/profiles/store.js.map +0 -1
  2025. package/dist/src/auth/sync-provider-auth.js.map +0 -1
  2026. package/dist/src/automations/api/routes.js.map +0 -1
  2027. package/dist/src/automations/domain/schedule.js.map +0 -1
  2028. package/dist/src/automations/domain/validation.js.map +0 -1
  2029. package/dist/src/automations/draft/automation-draft-prompt.js.map +0 -1
  2030. package/dist/src/automations/draft/automation-draft-service.js.map +0 -1
  2031. package/dist/src/automations/draft/automation-draft-validator.js.map +0 -1
  2032. package/dist/src/automations/product-events.js.map +0 -1
  2033. package/dist/src/automations/service/action-executor.js.map +0 -1
  2034. package/dist/src/automations/service/automation-service.js.map +0 -1
  2035. package/dist/src/automations/storage/automation-repository.js.map +0 -1
  2036. package/dist/src/automations/storage/automation-run-repository.js.map +0 -1
  2037. package/dist/src/browser/actions/extension-registry-bridge.js.map +0 -1
  2038. package/dist/src/browser/actions/registry.js.map +0 -1
  2039. package/dist/src/browser/backend-from-config.js.map +0 -1
  2040. package/dist/src/browser/browser-command-timeout.js.map +0 -1
  2041. package/dist/src/browser/cache-dir-policy.js.map +0 -1
  2042. package/dist/src/browser/cdp-local-launcher.js.map +0 -1
  2043. package/dist/src/browser/cdp-supervisor.js.map +0 -1
  2044. package/dist/src/browser/free-port.js.map +0 -1
  2045. package/dist/src/browser/humanize.js.map +0 -1
  2046. package/dist/src/browser/install-lock.js.map +0 -1
  2047. package/dist/src/browser/manager.js.map +0 -1
  2048. package/dist/src/browser/pipeline/output.js.map +0 -1
  2049. package/dist/src/browser/pipeline/runner.js.map +0 -1
  2050. package/dist/src/browser/pipeline/schema.js.map +0 -1
  2051. package/dist/src/browser/pipeline/source.js.map +0 -1
  2052. package/dist/src/browser/pipeline/template.js.map +0 -1
  2053. package/dist/src/browser/providers/browser-ext-install.js.map +0 -1
  2054. package/dist/src/browser/providers/browser-use.js.map +0 -1
  2055. package/dist/src/browser/providers/browserbase.js.map +0 -1
  2056. package/dist/src/browser/providers/cloakbrowser.js.map +0 -1
  2057. package/dist/src/browser/providers/extension-ws-acquire.js.map +0 -1
  2058. package/dist/src/browser/providers/extension.js.map +0 -1
  2059. package/dist/src/browser/providers/playwright-doctor.js.map +0 -1
  2060. package/dist/src/browser/providers/playwright-install.js.map +0 -1
  2061. package/dist/src/browser/readiness.js.map +0 -1
  2062. package/dist/src/browser/schemas.js.map +0 -1
  2063. package/dist/src/browser/session-lifecycle.js.map +0 -1
  2064. package/dist/src/browser/snapshot-helpers.js.map +0 -1
  2065. package/dist/src/browser/stealth.js.map +0 -1
  2066. package/dist/src/browser/url-policy.js.map +0 -1
  2067. package/dist/src/capabilities/store-connector.js.map +0 -1
  2068. package/dist/src/channels/attachments/attachment-classifiers.js.map +0 -1
  2069. package/dist/src/channels/attachments/inbound-persist.js.map +0 -1
  2070. package/dist/src/channels/attachments/inbound-types.js.map +0 -1
  2071. package/dist/src/channels/attachments/outbound-tts-persist.js.map +0 -1
  2072. package/dist/src/channels/attachments/voice-stt-webchat.js.map +0 -1
  2073. package/dist/src/channels/catalog/channel-catalog-service.js.map +0 -1
  2074. package/dist/src/channels/config-helpers.js.map +0 -1
  2075. package/dist/src/channels/envelope-timestamp.js.map +0 -1
  2076. package/dist/src/channels/exec-approval-runtime.js.map +0 -1
  2077. package/dist/src/channels/health-monitor.js.map +0 -1
  2078. package/dist/src/channels/heartbeat-scheduler.js.map +0 -1
  2079. package/dist/src/channels/internal-outbound.js.map +0 -1
  2080. package/dist/src/channels/lifecycle-supervisor.js.map +0 -1
  2081. package/dist/src/channels/manager.js.map +0 -1
  2082. package/dist/src/channels/media.js.map +0 -1
  2083. package/dist/src/channels/outbound/deliver.js.map +0 -1
  2084. package/dist/src/channels/outbound/normalize.js.map +0 -1
  2085. package/dist/src/channels/outbound/persist-store.js.map +0 -1
  2086. package/dist/src/channels/outbound/queue.js.map +0 -1
  2087. package/dist/src/channels/outbound-sender.js.map +0 -1
  2088. package/dist/src/channels/pairing/allow-from-file.js.map +0 -1
  2089. package/dist/src/channels/pairing/approve-cli.js.map +0 -1
  2090. package/dist/src/channels/pairing/pairing-challenge.js.map +0 -1
  2091. package/dist/src/channels/pairing/pairing-constants.js.map +0 -1
  2092. package/dist/src/channels/pairing/pairing-events.js.map +0 -1
  2093. package/dist/src/channels/pairing/pairing-messages.js.map +0 -1
  2094. package/dist/src/channels/pairing/pairing-service.js.map +0 -1
  2095. package/dist/src/channels/pairing/pairing-store-adapter.js.map +0 -1
  2096. package/dist/src/channels/pairing/pairing-store.js.map +0 -1
  2097. package/dist/src/channels/pairing/paths.js.map +0 -1
  2098. package/dist/src/channels/pairing/preseed-allow-from.js.map +0 -1
  2099. package/dist/src/channels/pipeline.js.map +0 -1
  2100. package/dist/src/channels/plugin-registry.js.map +0 -1
  2101. package/dist/src/channels/plugins/registry.js.map +0 -1
  2102. package/dist/src/channels/restart-policy.js.map +0 -1
  2103. package/dist/src/channels/security-helpers.js.map +0 -1
  2104. package/dist/src/channels/security.js.map +0 -1
  2105. package/dist/src/channels/setup-wizard-discovery.js.map +0 -1
  2106. package/dist/src/chat-commands/agent-edit.js.map +0 -1
  2107. package/dist/src/chat-commands/builtins/config.js.map +0 -1
  2108. package/dist/src/chat-commands/builtins/context.js.map +0 -1
  2109. package/dist/src/chat-commands/builtins/goal.js.map +0 -1
  2110. package/dist/src/chat-commands/builtins/model.js.map +0 -1
  2111. package/dist/src/chat-commands/builtins/review.js.map +0 -1
  2112. package/dist/src/chat-commands/builtins/session.js.map +0 -1
  2113. package/dist/src/chat-commands/builtins/skill.js.map +0 -1
  2114. package/dist/src/chat-commands/builtins/subgoal.js.map +0 -1
  2115. package/dist/src/chat-commands/builtins/system.js.map +0 -1
  2116. package/dist/src/chat-commands/builtins/thinking.js.map +0 -1
  2117. package/dist/src/chat-commands/builtins/tts.js.map +0 -1
  2118. package/dist/src/chat-commands/builtins/workflow.js.map +0 -1
  2119. package/dist/src/chat-commands/command-parse.js.map +0 -1
  2120. package/dist/src/chat-commands/config-paths.js.map +0 -1
  2121. package/dist/src/chat-commands/config-value.js.map +0 -1
  2122. package/dist/src/chat-commands/context.js.map +0 -1
  2123. package/dist/src/chat-commands/format-output.js.map +0 -1
  2124. package/dist/src/chat-commands/index.js.map +0 -1
  2125. package/dist/src/chat-commands/processor.js.map +0 -1
  2126. package/dist/src/chat-commands/registry.js.map +0 -1
  2127. package/dist/src/chat-commands/session-key.js.map +0 -1
  2128. package/dist/src/cli/argv-invocation.js.map +0 -1
  2129. package/dist/src/cli/argv.js.map +0 -1
  2130. package/dist/src/cli/bin.js.map +0 -1
  2131. package/dist/src/cli/cli-log-level-preset.js.map +0 -1
  2132. package/dist/src/cli/command-catalog.js.map +0 -1
  2133. package/dist/src/cli/command-loaders.js.map +0 -1
  2134. package/dist/src/cli/command-manifest.js.map +0 -1
  2135. package/dist/src/cli/command-path-matches.js.map +0 -1
  2136. package/dist/src/cli/command-path-policy.js.map +0 -1
  2137. package/dist/src/cli/command-startup-policy.js.map +0 -1
  2138. package/dist/src/cli/commands/agent/interactive.js.map +0 -1
  2139. package/dist/src/cli/commands/agent/sessions.js.map +0 -1
  2140. package/dist/src/cli/commands/agent/stream-renderer.js.map +0 -1
  2141. package/dist/src/cli/commands/agent.js.map +0 -1
  2142. package/dist/src/cli/commands/agents.js.map +0 -1
  2143. package/dist/src/cli/commands/auth.js.map +0 -1
  2144. package/dist/src/cli/commands/browser-cli-helpers.js.map +0 -1
  2145. package/dist/src/cli/commands/browser.js.map +0 -1
  2146. package/dist/src/cli/commands/channels.js.map +0 -1
  2147. package/dist/src/cli/commands/config.js.map +0 -1
  2148. package/dist/src/cli/commands/connectors.js.map +0 -1
  2149. package/dist/src/cli/commands/doctor/checks/channel-config.js.map +0 -1
  2150. package/dist/src/cli/commands/doctor/checks/channel-pairing-pending.js.map +0 -1
  2151. package/dist/src/cli/commands/doctor/checks/channel-plugins.js.map +0 -1
  2152. package/dist/src/cli/commands/doctor/checks/config-health.js.map +0 -1
  2153. package/dist/src/cli/commands/doctor/checks/database-schema.js.map +0 -1
  2154. package/dist/src/cli/commands/doctor/checks/gateway-health.js.map +0 -1
  2155. package/dist/src/cli/commands/doctor/checks/gateway-service.js.map +0 -1
  2156. package/dist/src/cli/commands/doctor/checks/migrations.js.map +0 -1
  2157. package/dist/src/cli/commands/doctor/checks/node-version.js.map +0 -1
  2158. package/dist/src/cli/commands/doctor/checks/provider-auth.js.map +0 -1
  2159. package/dist/src/cli/commands/doctor/checks/security-audit.js.map +0 -1
  2160. package/dist/src/cli/commands/doctor/checks/session-integrity.js.map +0 -1
  2161. package/dist/src/cli/commands/doctor/checks/state-integrity.js.map +0 -1
  2162. package/dist/src/cli/commands/doctor/checks/version-check.js.map +0 -1
  2163. package/dist/src/cli/commands/doctor/checks/workspace-status.js.map +0 -1
  2164. package/dist/src/cli/commands/doctor/flow.js.map +0 -1
  2165. package/dist/src/cli/commands/doctor/format.js.map +0 -1
  2166. package/dist/src/cli/commands/doctor/index.js.map +0 -1
  2167. package/dist/src/cli/commands/extension-create.js.map +0 -1
  2168. package/dist/src/cli/commands/extension-dev.js.map +0 -1
  2169. package/dist/src/cli/commands/extension-marketplace.js.map +0 -1
  2170. package/dist/src/cli/commands/extension-pack.js.map +0 -1
  2171. package/dist/src/cli/commands/extension.js.map +0 -1
  2172. package/dist/src/cli/commands/gateway/call.js.map +0 -1
  2173. package/dist/src/cli/commands/gateway/health.js.map +0 -1
  2174. package/dist/src/cli/commands/gateway/lifecycle-core.js.map +0 -1
  2175. package/dist/src/cli/commands/gateway/lifecycle.js.map +0 -1
  2176. package/dist/src/cli/commands/gateway/logs.js.map +0 -1
  2177. package/dist/src/cli/commands/gateway/probe.js.map +0 -1
  2178. package/dist/src/cli/commands/gateway/restart-health.js.map +0 -1
  2179. package/dist/src/cli/commands/gateway/restart.js.map +0 -1
  2180. package/dist/src/cli/commands/gateway/run-foreground.js.map +0 -1
  2181. package/dist/src/cli/commands/gateway/service.js.map +0 -1
  2182. package/dist/src/cli/commands/gateway/shared.js.map +0 -1
  2183. package/dist/src/cli/commands/gateway/status.js.map +0 -1
  2184. package/dist/src/cli/commands/gateway/stop.js.map +0 -1
  2185. package/dist/src/cli/commands/gateway/subcommands.js.map +0 -1
  2186. package/dist/src/cli/commands/gateway/token.js.map +0 -1
  2187. package/dist/src/cli/commands/gateway-ssh-tunnel.js.map +0 -1
  2188. package/dist/src/cli/commands/gateway.js.map +0 -1
  2189. package/dist/src/cli/commands/goal.js.map +0 -1
  2190. package/dist/src/cli/commands/image.js.map +0 -1
  2191. package/dist/src/cli/commands/init.js.map +0 -1
  2192. package/dist/src/cli/commands/logs.js.map +0 -1
  2193. package/dist/src/cli/commands/models.js.map +0 -1
  2194. package/dist/src/cli/commands/onboard/channels/index.js.map +0 -1
  2195. package/dist/src/cli/commands/onboard/channels/onboard-to-configurator.js.map +0 -1
  2196. package/dist/src/cli/commands/onboard/channels/registry.js.map +0 -1
  2197. package/dist/src/cli/commands/onboard/channels/wizard-to-configurator.js.map +0 -1
  2198. package/dist/src/cli/commands/onboard/gateway.js.map +0 -1
  2199. package/dist/src/cli/commands/onboard/model.js.map +0 -1
  2200. package/dist/src/cli/commands/onboard.js.map +0 -1
  2201. package/dist/src/cli/commands/profile.js.map +0 -1
  2202. package/dist/src/cli/commands/project.js.map +0 -1
  2203. package/dist/src/cli/commands/providers.js.map +0 -1
  2204. package/dist/src/cli/commands/resume.js.map +0 -1
  2205. package/dist/src/cli/commands/search.js.map +0 -1
  2206. package/dist/src/cli/commands/session/actions.js.map +0 -1
  2207. package/dist/src/cli/commands/session/utils.js.map +0 -1
  2208. package/dist/src/cli/commands/session.js.map +0 -1
  2209. package/dist/src/cli/commands/setup-shared/output.js.map +0 -1
  2210. package/dist/src/cli/commands/setup-shared/prompts.js.map +0 -1
  2211. package/dist/src/cli/commands/setup-shared/runner.js.map +0 -1
  2212. package/dist/src/cli/commands/setup-shared/types.js.map +0 -1
  2213. package/dist/src/cli/commands/setup.js.map +0 -1
  2214. package/dist/src/cli/commands/skills-test.js.map +0 -1
  2215. package/dist/src/cli/commands/skills.js.map +0 -1
  2216. package/dist/src/cli/commands/tailscale.js.map +0 -1
  2217. package/dist/src/cli/commands/tui-runner.js.map +0 -1
  2218. package/dist/src/cli/commands/tui.js.map +0 -1
  2219. package/dist/src/cli/commands/tunnel.js.map +0 -1
  2220. package/dist/src/cli/commands/update.js.map +0 -1
  2221. package/dist/src/cli/commands/voice.js.map +0 -1
  2222. package/dist/src/cli/context.js.map +0 -1
  2223. package/dist/src/cli/extension-cli-register.js.map +0 -1
  2224. package/dist/src/cli/gateway-run-argv.js.map +0 -1
  2225. package/dist/src/cli/gateway-run-fast-path.js.map +0 -1
  2226. package/dist/src/cli/index.js.map +0 -1
  2227. package/dist/src/cli/registry.js.map +0 -1
  2228. package/dist/src/cli/templates.js.map +0 -1
  2229. package/dist/src/cli/utils/colors.js.map +0 -1
  2230. package/dist/src/cli/utils/gateway-client-options.js.map +0 -1
  2231. package/dist/src/cli/utils/gateway-client.js.map +0 -1
  2232. package/dist/src/cli/utils/init-workspace-core.js.map +0 -1
  2233. package/dist/src/cli/utils/init-workspace.js.map +0 -1
  2234. package/dist/src/cli/utils/oauth-login.js.map +0 -1
  2235. package/dist/src/cli/utils/oauth-providers.js.map +0 -1
  2236. package/dist/src/cli/utils/session.js.map +0 -1
  2237. package/dist/src/commands/agents.config.js.map +0 -1
  2238. package/dist/src/config/agent-profile.js.map +0 -1
  2239. package/dist/src/config/agent-typed-models.js.map +0 -1
  2240. package/dist/src/config/commands.flags.js.map +0 -1
  2241. package/dist/src/config/default-model.js.map +0 -1
  2242. package/dist/src/config/diff.js.map +0 -1
  2243. package/dist/src/config/gateway-bind.js.map +0 -1
  2244. package/dist/src/config/index.js.map +0 -1
  2245. package/dist/src/config/loader.js.map +0 -1
  2246. package/dist/src/config/mcp-config-normalize.js.map +0 -1
  2247. package/dist/src/config/model-input.js.map +0 -1
  2248. package/dist/src/config/models-json.js.map +0 -1
  2249. package/dist/src/config/paths-state.js.map +0 -1
  2250. package/dist/src/config/paths.js.map +0 -1
  2251. package/dist/src/config/profile.js.map +0 -1
  2252. package/dist/src/config/public-url.js.map +0 -1
  2253. package/dist/src/config/reload.js.map +0 -1
  2254. package/dist/src/config/resolve-config-value.js.map +0 -1
  2255. package/dist/src/config/rules.js.map +0 -1
  2256. package/dist/src/config/runtime-overrides.js.map +0 -1
  2257. package/dist/src/config/schema.js.map +0 -1
  2258. package/dist/src/config/validate-channel-configs.js.map +0 -1
  2259. package/dist/src/config/voice.js.map +0 -1
  2260. package/dist/src/config/web-patch.js.map +0 -1
  2261. package/dist/src/config/workspace-defaults.js.map +0 -1
  2262. package/dist/src/config/workspace-dirs.js.map +0 -1
  2263. package/dist/src/config/workspace-path-helpers.js.map +0 -1
  2264. package/dist/src/config/workspace-path.js.map +0 -1
  2265. package/dist/src/connectors/approval.js.map +0 -1
  2266. package/dist/src/connectors/auth-provider-registry.js.map +0 -1
  2267. package/dist/src/connectors/builtin-catalog.js.map +0 -1
  2268. package/dist/src/connectors/catalog.js.map +0 -1
  2269. package/dist/src/connectors/composio-catalog.js.map +0 -1
  2270. package/dist/src/connectors/composio-logo.js.map +0 -1
  2271. package/dist/src/connectors/composio-sessions.js.map +0 -1
  2272. package/dist/src/connectors/composio-triggers.js.map +0 -1
  2273. package/dist/src/connectors/composio.js.map +0 -1
  2274. package/dist/src/connectors/connector-memory-sync.js.map +0 -1
  2275. package/dist/src/connectors/health.js.map +0 -1
  2276. package/dist/src/connectors/install.js.map +0 -1
  2277. package/dist/src/connectors/instances.js.map +0 -1
  2278. package/dist/src/connectors/integration-strategy.js.map +0 -1
  2279. package/dist/src/connectors/lifecycle.js.map +0 -1
  2280. package/dist/src/connectors/materialize.js.map +0 -1
  2281. package/dist/src/connectors/policy.js.map +0 -1
  2282. package/dist/src/connectors/providers.js.map +0 -1
  2283. package/dist/src/connectors/registries/modelscope.js.map +0 -1
  2284. package/dist/src/connectors/registries/official-mcp.js.map +0 -1
  2285. package/dist/src/connectors/registries/search.js.map +0 -1
  2286. package/dist/src/connectors/registries/smithery.js.map +0 -1
  2287. package/dist/src/connectors/runtime-adapter-registry.js.map +0 -1
  2288. package/dist/src/connectors/secret-store.js.map +0 -1
  2289. package/dist/src/connectors/setup-secrets.js.map +0 -1
  2290. package/dist/src/connectors/supervisor.js.map +0 -1
  2291. package/dist/src/connectors/usage.js.map +0 -1
  2292. package/dist/src/connectors/workflow-preflight.js.map +0 -1
  2293. package/dist/src/daemon/constants.js.map +0 -1
  2294. package/dist/src/daemon/install-plan.js.map +0 -1
  2295. package/dist/src/daemon/launchd.js.map +0 -1
  2296. package/dist/src/daemon/schtasks.js.map +0 -1
  2297. package/dist/src/daemon/service-audit.js.map +0 -1
  2298. package/dist/src/daemon/service.js.map +0 -1
  2299. package/dist/src/daemon/systemd.js.map +0 -1
  2300. package/dist/src/document-understanding/extract.js.map +0 -1
  2301. package/dist/src/errors/index.js.map +0 -1
  2302. package/dist/src/extensions/activation-context.js.map +0 -1
  2303. package/dist/src/extensions/activation-planner.js.map +0 -1
  2304. package/dist/src/extensions/api.js.map +0 -1
  2305. package/dist/src/extensions/bundle-mcp.js.map +0 -1
  2306. package/dist/src/extensions/bundled-extension-activation.js.map +0 -1
  2307. package/dist/src/extensions/diagnostics.js.map +0 -1
  2308. package/dist/src/extensions/discover-extensions.js.map +0 -1
  2309. package/dist/src/extensions/engine-check.js.map +0 -1
  2310. package/dist/src/extensions/extension-metadata-snapshot.js.map +0 -1
  2311. package/dist/src/extensions/extension-registry-impl.js.map +0 -1
  2312. package/dist/src/extensions/health.js.map +0 -1
  2313. package/dist/src/extensions/hooks.js.map +0 -1
  2314. package/dist/src/extensions/index.js.map +0 -1
  2315. package/dist/src/extensions/install-transaction.js.map +0 -1
  2316. package/dist/src/extensions/install.js.map +0 -1
  2317. package/dist/src/extensions/loader.js.map +0 -1
  2318. package/dist/src/extensions/lockfile.js.map +0 -1
  2319. package/dist/src/extensions/manifest-registry.js.map +0 -1
  2320. package/dist/src/extensions/marketplace.js.map +0 -1
  2321. package/dist/src/extensions/media-provider-contracts.js.map +0 -1
  2322. package/dist/src/extensions/normalize-manifest.js.map +0 -1
  2323. package/dist/src/extensions/onboard-helpers.js.map +0 -1
  2324. package/dist/src/extensions/package-contract.js.map +0 -1
  2325. package/dist/src/extensions/sdk/channel-entry.js.map +0 -1
  2326. package/dist/src/extensions/sdk/channel-helpers.js.map +0 -1
  2327. package/dist/src/extensions/sdk/index.js.map +0 -1
  2328. package/dist/src/extensions/sdk/lazy.js.map +0 -1
  2329. package/dist/src/extensions/sdk/testing.js.map +0 -1
  2330. package/dist/src/extensions/security.js.map +0 -1
  2331. package/dist/src/extensions/slots.js.map +0 -1
  2332. package/dist/src/extensions/speech-provider-contracts.js.map +0 -1
  2333. package/dist/src/extensions/store-zip-limits.js.map +0 -1
  2334. package/dist/src/extensions/typed-event-bus.js.map +0 -1
  2335. package/dist/src/extensions/types/hooks.js.map +0 -1
  2336. package/dist/src/extensions/types/providers.js.map +0 -1
  2337. package/dist/src/extensions/update.js.map +0 -1
  2338. package/dist/src/extensions/when-context.js.map +0 -1
  2339. package/dist/src/extensions/when-expression.js.map +0 -1
  2340. package/dist/src/gateway/agent-builtin-tools.js.map +0 -1
  2341. package/dist/src/gateway/agent-run-relay.js.map +0 -1
  2342. package/dist/src/gateway/agents-admin.js.map +0 -1
  2343. package/dist/src/gateway/auth.js.map +0 -1
  2344. package/dist/src/gateway/capability-presets-admin.js.map +0 -1
  2345. package/dist/src/gateway/chat-limits.js.map +0 -1
  2346. package/dist/src/gateway/chat-stream/mapper.js.map +0 -1
  2347. package/dist/src/gateway/clarify-bridge.js.map +0 -1
  2348. package/dist/src/gateway/clarify-runtime.js.map +0 -1
  2349. package/dist/src/gateway/client-ip.js.map +0 -1
  2350. package/dist/src/gateway/config-tools-web.js.map +0 -1
  2351. package/dist/src/gateway/credential.js.map +0 -1
  2352. package/dist/src/gateway/discovery/mdns.js.map +0 -1
  2353. package/dist/src/gateway/dreaming-automation-reconciler.js.map +0 -1
  2354. package/dist/src/gateway/ensure-network-cors.js.map +0 -1
  2355. package/dist/src/gateway/file-path-classifier.js.map +0 -1
  2356. package/dist/src/gateway/file-reference-registry.js.map +0 -1
  2357. package/dist/src/gateway/global-defaults-admin.js.map +0 -1
  2358. package/dist/src/gateway/heartbeat/service.js.map +0 -1
  2359. package/dist/src/gateway/hono/app.js.map +0 -1
  2360. package/dist/src/gateway/hono/lib/agent-model.js.map +0 -1
  2361. package/dist/src/gateway/hono/lib/config-payload.js.map +0 -1
  2362. package/dist/src/gateway/hono/lib/extension-assets.js.map +0 -1
  2363. package/dist/src/gateway/hono/lib/extension-store.js.map +0 -1
  2364. package/dist/src/gateway/hono/lib/mask-secret-length.js.map +0 -1
  2365. package/dist/src/gateway/hono/lib/route-logger.js.map +0 -1
  2366. package/dist/src/gateway/hono/lib/safe-providers-config.js.map +0 -1
  2367. package/dist/src/gateway/hono/lib/safe-voice-config.js.map +0 -1
  2368. package/dist/src/gateway/hono/lib/startup-unavailable.js.map +0 -1
  2369. package/dist/src/gateway/hono/lib/static-ui.js.map +0 -1
  2370. package/dist/src/gateway/hono/middleware/auth.js.map +0 -1
  2371. package/dist/src/gateway/hono/middleware/log-context.js.map +0 -1
  2372. package/dist/src/gateway/hono/middleware/logger.js.map +0 -1
  2373. package/dist/src/gateway/hono/middleware/route-errors.js.map +0 -1
  2374. package/dist/src/gateway/hono/middleware/scopes.js.map +0 -1
  2375. package/dist/src/gateway/hono/middleware/strict-rate-limit.js.map +0 -1
  2376. package/dist/src/gateway/hono/oauth-async.js.map +0 -1
  2377. package/dist/src/gateway/hono/oauth.js.map +0 -1
  2378. package/dist/src/gateway/hono/routes/activity.js.map +0 -1
  2379. package/dist/src/gateway/hono/routes/agent-stream.js.map +0 -1
  2380. package/dist/src/gateway/hono/routes/agents.js.map +0 -1
  2381. package/dist/src/gateway/hono/routes/ai-assist.js.map +0 -1
  2382. package/dist/src/gateway/hono/routes/auth-registry-extensions.js.map +0 -1
  2383. package/dist/src/gateway/hono/routes/browser-install.js.map +0 -1
  2384. package/dist/src/gateway/hono/routes/browser.js.map +0 -1
  2385. package/dist/src/gateway/hono/routes/capabilities.js.map +0 -1
  2386. package/dist/src/gateway/hono/routes/capability-presets.js.map +0 -1
  2387. package/dist/src/gateway/hono/routes/channels.js.map +0 -1
  2388. package/dist/src/gateway/hono/routes/commands-skills.js.map +0 -1
  2389. package/dist/src/gateway/hono/routes/config-patch/agents.js.map +0 -1
  2390. package/dist/src/gateway/hono/routes/config-patch/channels.js.map +0 -1
  2391. package/dist/src/gateway/hono/routes/config-patch/gateway.js.map +0 -1
  2392. package/dist/src/gateway/hono/routes/config-patch/misc.js.map +0 -1
  2393. package/dist/src/gateway/hono/routes/config-patch/result.js.map +0 -1
  2394. package/dist/src/gateway/hono/routes/config.js.map +0 -1
  2395. package/dist/src/gateway/hono/routes/connectors.js.map +0 -1
  2396. package/dist/src/gateway/hono/routes/doctor.js.map +0 -1
  2397. package/dist/src/gateway/hono/routes/dreaming.js.map +0 -1
  2398. package/dist/src/gateway/hono/routes/exposure.js.map +0 -1
  2399. package/dist/src/gateway/hono/routes/extension-gateway.js.map +0 -1
  2400. package/dist/src/gateway/hono/routes/global-defaults.js.map +0 -1
  2401. package/dist/src/gateway/hono/routes/goals.js.map +0 -1
  2402. package/dist/src/gateway/hono/routes/home.js.map +0 -1
  2403. package/dist/src/gateway/hono/routes/host-fs.js.map +0 -1
  2404. package/dist/src/gateway/hono/routes/index.js.map +0 -1
  2405. package/dist/src/gateway/hono/routes/lazy-bundles.js.map +0 -1
  2406. package/dist/src/gateway/hono/routes/lazy-fallback.js.map +0 -1
  2407. package/dist/src/gateway/hono/routes/local-apps.js.map +0 -1
  2408. package/dist/src/gateway/hono/routes/logs.js.map +0 -1
  2409. package/dist/src/gateway/hono/routes/mcp.js.map +0 -1
  2410. package/dist/src/gateway/hono/routes/media.js.map +0 -1
  2411. package/dist/src/gateway/hono/routes/memory.js.map +0 -1
  2412. package/dist/src/gateway/hono/routes/migrations.js.map +0 -1
  2413. package/dist/src/gateway/hono/routes/mobile.js.map +0 -1
  2414. package/dist/src/gateway/hono/routes/models.js.map +0 -1
  2415. package/dist/src/gateway/hono/routes/notes.js.map +0 -1
  2416. package/dist/src/gateway/hono/routes/projects.js.map +0 -1
  2417. package/dist/src/gateway/hono/routes/public-gateway.js.map +0 -1
  2418. package/dist/src/gateway/hono/routes/search.js.map +0 -1
  2419. package/dist/src/gateway/hono/routes/sessions.js.map +0 -1
  2420. package/dist/src/gateway/hono/routes/shares.js.map +0 -1
  2421. package/dist/src/gateway/hono/routes/site-shares.js.map +0 -1
  2422. package/dist/src/gateway/hono/routes/status.js.map +0 -1
  2423. package/dist/src/gateway/hono/routes/tui.js.map +0 -1
  2424. package/dist/src/gateway/hono/routes/tunnel.js.map +0 -1
  2425. package/dist/src/gateway/hono/routes/update.js.map +0 -1
  2426. package/dist/src/gateway/hono/routes/voice.js.map +0 -1
  2427. package/dist/src/gateway/hono/routes/work-discovery.js.map +0 -1
  2428. package/dist/src/gateway/hono/routes/workflows.js.map +0 -1
  2429. package/dist/src/gateway/hono/routes/workspace.js.map +0 -1
  2430. package/dist/src/gateway/hono/routes/you.js.map +0 -1
  2431. package/dist/src/gateway/hono/sse-json.js.map +0 -1
  2432. package/dist/src/gateway/hono/sse.js.map +0 -1
  2433. package/dist/src/gateway/host.js.map +0 -1
  2434. package/dist/src/gateway/image-capabilities.js.map +0 -1
  2435. package/dist/src/gateway/listen.js.map +0 -1
  2436. package/dist/src/gateway/lock.js.map +0 -1
  2437. package/dist/src/gateway/ports.js.map +0 -1
  2438. package/dist/src/gateway/protocol.js.map +0 -1
  2439. package/dist/src/gateway/public-url.js.map +0 -1
  2440. package/dist/src/gateway/rate-limit/auth-policy.js.map +0 -1
  2441. package/dist/src/gateway/rate-limit/buckets.js.map +0 -1
  2442. package/dist/src/gateway/rate-limit/env-flags.js.map +0 -1
  2443. package/dist/src/gateway/resolve-channel-connect-defer.js.map +0 -1
  2444. package/dist/src/gateway/resolve-webchat-session-key.js.map +0 -1
  2445. package/dist/src/gateway/respawn.js.map +0 -1
  2446. package/dist/src/gateway/run-loop.js.map +0 -1
  2447. package/dist/src/gateway/runtime-config.js.map +0 -1
  2448. package/dist/src/gateway/security/audit.js.map +0 -1
  2449. package/dist/src/gateway/security/csp.js.map +0 -1
  2450. package/dist/src/gateway/security/dangerous-tools.js.map +0 -1
  2451. package/dist/src/gateway/security/external-content.js.map +0 -1
  2452. package/dist/src/gateway/security/known-weak-secrets.js.map +0 -1
  2453. package/dist/src/gateway/security/loopback.js.map +0 -1
  2454. package/dist/src/gateway/security/operator-scopes.js.map +0 -1
  2455. package/dist/src/gateway/security/origin-check.js.map +0 -1
  2456. package/dist/src/gateway/security/preauth-connection-budget.js.map +0 -1
  2457. package/dist/src/gateway/security/secret-equal.js.map +0 -1
  2458. package/dist/src/gateway/server-tailscale.js.map +0 -1
  2459. package/dist/src/gateway/server.js.map +0 -1
  2460. package/dist/src/gateway/service/agent-runner.js.map +0 -1
  2461. package/dist/src/gateway/service/config-coordinator.js.map +0 -1
  2462. package/dist/src/gateway/service/marketplace-service.js.map +0 -1
  2463. package/dist/src/gateway/service/run-gateway-agent.js.map +0 -1
  2464. package/dist/src/gateway/service/session-chat-ids.js.map +0 -1
  2465. package/dist/src/gateway/service/sessions-api.js.map +0 -1
  2466. package/dist/src/gateway/service/sse-hub.js.map +0 -1
  2467. package/dist/src/gateway/service.js.map +0 -1
  2468. package/dist/src/gateway/session-reset-service.js.map +0 -1
  2469. package/dist/src/gateway/startup-readiness.js.map +0 -1
  2470. package/dist/src/gateway/startup-trace.js.map +0 -1
  2471. package/dist/src/gateway/tailscale-auth.js.map +0 -1
  2472. package/dist/src/gateway/tailscale-lifecycle.js.map +0 -1
  2473. package/dist/src/gateway/tls-server.js.map +0 -1
  2474. package/dist/src/gateway/trusted-proxy.js.map +0 -1
  2475. package/dist/src/gateway/user-turn-input.js.map +0 -1
  2476. package/dist/src/gateway/workspace-editor-path.js.map +0 -1
  2477. package/dist/src/gateway/workspace-file-search.js.map +0 -1
  2478. package/dist/src/gateway/workspace-fs-file-list.js.map +0 -1
  2479. package/dist/src/gateway/workspace-heartbeat-path.js.map +0 -1
  2480. package/dist/src/gateway/workspace-ripgrep.js.map +0 -1
  2481. package/dist/src/gateway/ws-security.js.map +0 -1
  2482. package/dist/src/generated/bundled-image-generation-providers.js.map +0 -1
  2483. package/dist/src/goals/goal-contract-draft.js.map +0 -1
  2484. package/dist/src/goals/goal-evidence-review.js.map +0 -1
  2485. package/dist/src/goals/goal-notifications.js.map +0 -1
  2486. package/dist/src/goals/goal-queue-store.js.map +0 -1
  2487. package/dist/src/goals/goal-runner.js.map +0 -1
  2488. package/dist/src/goals/goal-service.js.map +0 -1
  2489. package/dist/src/goals/goal-store.js.map +0 -1
  2490. package/dist/src/goals/goal-workflow-judge.js.map +0 -1
  2491. package/dist/src/heartbeat/active-hours.js.map +0 -1
  2492. package/dist/src/heartbeat/content-check.js.map +0 -1
  2493. package/dist/src/heartbeat/event-prompt.js.map +0 -1
  2494. package/dist/src/heartbeat/tokens.js.map +0 -1
  2495. package/dist/src/heartbeat/wake.js.map +0 -1
  2496. package/dist/src/i18n/format.js.map +0 -1
  2497. package/dist/src/i18n/goals-bundle.js.map +0 -1
  2498. package/dist/src/i18n/locale.js.map +0 -1
  2499. package/dist/src/i18n/locales/goals.en.js.map +0 -1
  2500. package/dist/src/i18n/locales/goals.zh.js.map +0 -1
  2501. package/dist/src/i18n/locales/share-tool.en.js.map +0 -1
  2502. package/dist/src/i18n/locales/share-tool.zh.js.map +0 -1
  2503. package/dist/src/i18n/share-tool-bundle.js.map +0 -1
  2504. package/dist/src/index.js.map +0 -1
  2505. package/dist/src/infra/brew.js.map +0 -1
  2506. package/dist/src/infra/bus/queue.js.map +0 -1
  2507. package/dist/src/infra/debounce.js.map +0 -1
  2508. package/dist/src/infra/exec.js.map +0 -1
  2509. package/dist/src/infra/gateway-process-argv.js.map +0 -1
  2510. package/dist/src/infra/gateway-processes.js.map +0 -1
  2511. package/dist/src/infra/host-env-security-policy.js.map +0 -1
  2512. package/dist/src/infra/host-env-security.js.map +0 -1
  2513. package/dist/src/infra/http-proxy-env.js.map +0 -1
  2514. package/dist/src/infra/is-main.js.map +0 -1
  2515. package/dist/src/infra/json-utf8-bytes.js.map +0 -1
  2516. package/dist/src/infra/node-sqlite.js.map +0 -1
  2517. package/dist/src/infra/package-json.js.map +0 -1
  2518. package/dist/src/infra/package-update-steps.js.map +0 -1
  2519. package/dist/src/infra/path-env.js.map +0 -1
  2520. package/dist/src/infra/path-prepend.js.map +0 -1
  2521. package/dist/src/infra/ports.js.map +0 -1
  2522. package/dist/src/infra/rate-limit/failure-limiter.js.map +0 -1
  2523. package/dist/src/infra/rate-limit/keyed-store.js.map +0 -1
  2524. package/dist/src/infra/rate-limit/rate-limiter.js.map +0 -1
  2525. package/dist/src/infra/restart.js.map +0 -1
  2526. package/dist/src/infra/retry.js.map +0 -1
  2527. package/dist/src/infra/run-command.js.map +0 -1
  2528. package/dist/src/infra/sqlite-errors.js.map +0 -1
  2529. package/dist/src/infra/ssh-tunnel.js.map +0 -1
  2530. package/dist/src/infra/stable-node-path.js.map +0 -1
  2531. package/dist/src/infra/tailscale.js.map +0 -1
  2532. package/dist/src/infra/undici-fetch.js.map +0 -1
  2533. package/dist/src/infra/unhandled-rejections.js.map +0 -1
  2534. package/dist/src/infra/update-channels.js.map +0 -1
  2535. package/dist/src/infra/update-check.js.map +0 -1
  2536. package/dist/src/infra/update-global.js.map +0 -1
  2537. package/dist/src/infra/update-lock.js.map +0 -1
  2538. package/dist/src/infra/update-log.js.map +0 -1
  2539. package/dist/src/infra/update-restart.js.map +0 -1
  2540. package/dist/src/infra/update-runner.js.map +0 -1
  2541. package/dist/src/infra/update-startup.js.map +0 -1
  2542. package/dist/src/infra/warning-filter.js.map +0 -1
  2543. package/dist/src/infra/write-file-atomic.js.map +0 -1
  2544. package/dist/src/knowledge/connected-knowledge-pipeline.js.map +0 -1
  2545. package/dist/src/knowledge/coordinator.js.map +0 -1
  2546. package/dist/src/knowledge/ingestion-service.js.map +0 -1
  2547. package/dist/src/local-apps/acceptance.js.map +0 -1
  2548. package/dist/src/local-apps/preview-runtime-bridge.js.map +0 -1
  2549. package/dist/src/local-apps/runtime-entry.js.map +0 -1
  2550. package/dist/src/local-apps/scaffold.js.map +0 -1
  2551. package/dist/src/local-apps/service.js.map +0 -1
  2552. package/dist/src/local-apps/store.js.map +0 -1
  2553. package/dist/src/markdown/chunk.js.map +0 -1
  2554. package/dist/src/markdown/code-spans.js.map +0 -1
  2555. package/dist/src/markdown/fences.js.map +0 -1
  2556. package/dist/src/markdown/frontmatter.js.map +0 -1
  2557. package/dist/src/markdown/ir.js.map +0 -1
  2558. package/dist/src/markdown/render.js.map +0 -1
  2559. package/dist/src/markdown/tables.js.map +0 -1
  2560. package/dist/src/mcp/channel-bridge.js.map +0 -1
  2561. package/dist/src/mcp/channel-server.js.map +0 -1
  2562. package/dist/src/mcp/channel-shared.js.map +0 -1
  2563. package/dist/src/mcp/channel-tools.js.map +0 -1
  2564. package/dist/src/mcp/gateway-http-client.js.map +0 -1
  2565. package/dist/src/media/media-reference.js.map +0 -1
  2566. package/dist/src/media/paths.js.map +0 -1
  2567. package/dist/src/media/session-references.js.map +0 -1
  2568. package/dist/src/media/store.js.map +0 -1
  2569. package/dist/src/media/uri.js.map +0 -1
  2570. package/dist/src/media-shared/http/api-key-rotation.js.map +0 -1
  2571. package/dist/src/media-shared/http/deadline.js.map +0 -1
  2572. package/dist/src/media-shared/http/private-network.js.map +0 -1
  2573. package/dist/src/media-shared/http/provider-http-errors.js.map +0 -1
  2574. package/dist/src/media-shared/http/provider-http.js.map +0 -1
  2575. package/dist/src/media-shared/http/resolve-provider-http-request-config.js.map +0 -1
  2576. package/dist/src/media-shared/http/ssrf-guard.js.map +0 -1
  2577. package/dist/src/media-shared/http/test-helpers/mock-server.js.map +0 -1
  2578. package/dist/src/media-understanding/audio-transcription-runner.js.map +0 -1
  2579. package/dist/src/media-understanding/openai-compatible-audio.js.map +0 -1
  2580. package/dist/src/media-understanding/registry.js.map +0 -1
  2581. package/dist/src/media-understanding/resolve-entries.js.map +0 -1
  2582. package/dist/src/media-understanding/runner.js.map +0 -1
  2583. package/dist/src/migrations/config/default-capability-preset.js.map +0 -1
  2584. package/dist/src/migrations/registry.js.map +0 -1
  2585. package/dist/src/migrations/runner.js.map +0 -1
  2586. package/dist/src/mobile/notification-service.js.map +0 -1
  2587. package/dist/src/mobile/notification-store.js.map +0 -1
  2588. package/dist/src/mobile/notification-types.js.map +0 -1
  2589. package/dist/src/notes/agent-context.js.map +0 -1
  2590. package/dist/src/notes/attachment-ref.js.map +0 -1
  2591. package/dist/src/notes/note-attachment-sync.js.map +0 -1
  2592. package/dist/src/notes/note-index-meta.js.map +0 -1
  2593. package/dist/src/notes/note-markdown.js.map +0 -1
  2594. package/dist/src/notes/paths.js.map +0 -1
  2595. package/dist/src/notes/service.js.map +0 -1
  2596. package/dist/src/notes/store.js.map +0 -1
  2597. package/dist/src/package-version.js.map +0 -1
  2598. package/dist/src/pets/factory.js.map +0 -1
  2599. package/dist/src/pets/manifest.js.map +0 -1
  2600. package/dist/src/pets/validator.js.map +0 -1
  2601. package/dist/src/process/kill-tree.js.map +0 -1
  2602. package/dist/src/project-trust/trust-store.js.map +0 -1
  2603. package/dist/src/projects/automation-bind.js.map +0 -1
  2604. package/dist/src/projects/goal-bind.js.map +0 -1
  2605. package/dist/src/projects/memory-bind.js.map +0 -1
  2606. package/dist/src/projects/project-agent-suggestion.js.map +0 -1
  2607. package/dist/src/projects/project-agent.js.map +0 -1
  2608. package/dist/src/projects/project-kind.js.map +0 -1
  2609. package/dist/src/projects/project-loop.js.map +0 -1
  2610. package/dist/src/projects/project-service.js.map +0 -1
  2611. package/dist/src/projects/project-store.js.map +0 -1
  2612. package/dist/src/projects/session-bind.js.map +0 -1
  2613. package/dist/src/projects/workflow-bind.js.map +0 -1
  2614. package/dist/src/projects/workspace-project.js.map +0 -1
  2615. package/dist/src/projects/workspace.js.map +0 -1
  2616. package/dist/src/providers/auth-runtime/auth-profile-store.js.map +0 -1
  2617. package/dist/src/providers/auth-runtime/is-configured.js.map +0 -1
  2618. package/dist/src/providers/auth-runtime/oauth.js.map +0 -1
  2619. package/dist/src/providers/auth-runtime/resolve-api-key.js.map +0 -1
  2620. package/dist/src/providers/auth-runtime/resolve-auth.js.map +0 -1
  2621. package/dist/src/providers/constants.js.map +0 -1
  2622. package/dist/src/providers/domestic-presets.js.map +0 -1
  2623. package/dist/src/providers/env-keys.js.map +0 -1
  2624. package/dist/src/providers/extension-stream-bridge.js.map +0 -1
  2625. package/dist/src/providers/index.js.map +0 -1
  2626. package/dist/src/providers/model-call.js.map +0 -1
  2627. package/dist/src/providers/model-discovery.js.map +0 -1
  2628. package/dist/src/providers/model-registry.js.map +0 -1
  2629. package/dist/src/providers/model-supplements.js.map +0 -1
  2630. package/dist/src/providers/plugin-registry.js.map +0 -1
  2631. package/dist/src/providers/presentation.js.map +0 -1
  2632. package/dist/src/remote-access/exposure-guards.js.map +0 -1
  2633. package/dist/src/remote-access/exposure-manager.js.map +0 -1
  2634. package/dist/src/review/review-git.js.map +0 -1
  2635. package/dist/src/review/review-types.js.map +0 -1
  2636. package/dist/src/routing/account-id.js.map +0 -1
  2637. package/dist/src/routing/agent-session-key.js.map +0 -1
  2638. package/dist/src/routing/bindings.js.map +0 -1
  2639. package/dist/src/routing/index.js.map +0 -1
  2640. package/dist/src/routing/resolve-route.js.map +0 -1
  2641. package/dist/src/routing/resolve-tui-session-key.js.map +0 -1
  2642. package/dist/src/routing/session-key-utils.js.map +0 -1
  2643. package/dist/src/routing/session-key.js.map +0 -1
  2644. package/dist/src/session/abort-cutoff.js.map +0 -1
  2645. package/dist/src/session/chat-export.js.map +0 -1
  2646. package/dist/src/session/client-history.js.map +0 -1
  2647. package/dist/src/session/compaction-checkpoints.js.map +0 -1
  2648. package/dist/src/session/config-store.js.map +0 -1
  2649. package/dist/src/session/init-session-turn.js.map +0 -1
  2650. package/dist/src/session/lifecycle-timestamps.js.map +0 -1
  2651. package/dist/src/session/load-jsonl-entries.js.map +0 -1
  2652. package/dist/src/session/manager.js.map +0 -1
  2653. package/dist/src/session/patch-metadata.js.map +0 -1
  2654. package/dist/src/session/reset-policy.js.map +0 -1
  2655. package/dist/src/session/reset-triggers.js.map +0 -1
  2656. package/dist/src/session/reset-type.js.map +0 -1
  2657. package/dist/src/session/resolve-session.js.map +0 -1
  2658. package/dist/src/session/session-context-for-llm.js.map +0 -1
  2659. package/dist/src/session/session-id.js.map +0 -1
  2660. package/dist/src/session/session-title.js.map +0 -1
  2661. package/dist/src/session/session-workspace.js.map +0 -1
  2662. package/dist/src/session/store.js.map +0 -1
  2663. package/dist/src/session/stored-rows-to-file-entries.js.map +0 -1
  2664. package/dist/src/session/thinking-resolve.js.map +0 -1
  2665. package/dist/src/session/transcript-events.js.map +0 -1
  2666. package/dist/src/session/transcript-format.js.map +0 -1
  2667. package/dist/src/session/transcript-outline.js.map +0 -1
  2668. package/dist/src/session/transcript-stats.js.map +0 -1
  2669. package/dist/src/session/types.js.map +0 -1
  2670. package/dist/src/session/user-round-delete.js.map +0 -1
  2671. package/dist/src/share/share-audit.js.map +0 -1
  2672. package/dist/src/share/share-auto.js.map +0 -1
  2673. package/dist/src/share/share-config.js.map +0 -1
  2674. package/dist/src/share/share-landing.js.map +0 -1
  2675. package/dist/src/share/share-rate-limit.js.map +0 -1
  2676. package/dist/src/share/share-store.js.map +0 -1
  2677. package/dist/src/share/share-thumbnail.js.map +0 -1
  2678. package/dist/src/share/share-types.js.map +0 -1
  2679. package/dist/src/share/share-url.js.map +0 -1
  2680. package/dist/src/share/share-zip.js.map +0 -1
  2681. package/dist/src/share/site-proxy.js.map +0 -1
  2682. package/dist/src/share/site-share-config.js.map +0 -1
  2683. package/dist/src/share/site-share-router.js.map +0 -1
  2684. package/dist/src/share/site-share-store.js.map +0 -1
  2685. package/dist/src/share/site-share-types.js.map +0 -1
  2686. package/dist/src/share/site-static-serve.js.map +0 -1
  2687. package/dist/src/storage/sqlite/activity-repository.js.map +0 -1
  2688. package/dist/src/storage/sqlite/config-repository.js.map +0 -1
  2689. package/dist/src/storage/sqlite/connection.js.map +0 -1
  2690. package/dist/src/storage/sqlite/connector-repository.js.map +0 -1
  2691. package/dist/src/storage/sqlite/fts.js.map +0 -1
  2692. package/dist/src/storage/sqlite/knowledge-repository.js.map +0 -1
  2693. package/dist/src/storage/sqlite/memory-index-repository.js.map +0 -1
  2694. package/dist/src/storage/sqlite/memory-records-repository.js.map +0 -1
  2695. package/dist/src/storage/sqlite/memory-reference-consent-repository.js.map +0 -1
  2696. package/dist/src/storage/sqlite/migrations/discover.js.map +0 -1
  2697. package/dist/src/storage/sqlite/migrations/errors.js.map +0 -1
  2698. package/dist/src/storage/sqlite/migrations/runner.js.map +0 -1
  2699. package/dist/src/storage/sqlite/note-agent-context-repository.js.map +0 -1
  2700. package/dist/src/storage/sqlite/notes-repository.js.map +0 -1
  2701. package/dist/src/storage/sqlite/paths.js.map +0 -1
  2702. package/dist/src/storage/sqlite/row-mappers.js.map +0 -1
  2703. package/dist/src/storage/sqlite/schema-version.js.map +0 -1
  2704. package/dist/src/storage/sqlite/schema.js.map +0 -1
  2705. package/dist/src/storage/sqlite/session-metadata.js.map +0 -1
  2706. package/dist/src/storage/sqlite/session-repository.js.map +0 -1
  2707. package/dist/src/storage/sqlite/transaction.js.map +0 -1
  2708. package/dist/src/storage/sqlite/transcript-repository.js.map +0 -1
  2709. package/dist/src/storage/sqlite/user-profile-setup-repository.js.map +0 -1
  2710. package/dist/src/storage/sqlite/user-trust-repository.js.map +0 -1
  2711. package/dist/src/tui/backends/embedded-backend.js.map +0 -1
  2712. package/dist/src/tui/backends/gateway-sse-backend.js.map +0 -1
  2713. package/dist/src/tui/chat-history.js.map +0 -1
  2714. package/dist/src/tui/clipboard-image.js.map +0 -1
  2715. package/dist/src/tui/clipboard-text.js.map +0 -1
  2716. package/dist/src/tui/components/assistant-message.js.map +0 -1
  2717. package/dist/src/tui/components/bash-execution.js.map +0 -1
  2718. package/dist/src/tui/components/bash-summary.js.map +0 -1
  2719. package/dist/src/tui/components/branch-message-summary.js.map +0 -1
  2720. package/dist/src/tui/components/branch-summary.js.map +0 -1
  2721. package/dist/src/tui/components/chat-log.js.map +0 -1
  2722. package/dist/src/tui/components/compaction-summary.js.map +0 -1
  2723. package/dist/src/tui/components/custom-editor.js.map +0 -1
  2724. package/dist/src/tui/components/custom-message.js.map +0 -1
  2725. package/dist/src/tui/components/dynamic-border.js.map +0 -1
  2726. package/dist/src/tui/components/extension-dialog.js.map +0 -1
  2727. package/dist/src/tui/components/fuzzy-filter.js.map +0 -1
  2728. package/dist/src/tui/components/scoped-models-selector.js.map +0 -1
  2729. package/dist/src/tui/components/searchable-select-list.js.map +0 -1
  2730. package/dist/src/tui/components/session-selector.js.map +0 -1
  2731. package/dist/src/tui/components/settings-selector.js.map +0 -1
  2732. package/dist/src/tui/components/thinking-selector.js.map +0 -1
  2733. package/dist/src/tui/components/tool-execution.js.map +0 -1
  2734. package/dist/src/tui/components/tui-bottom-bar.js.map +0 -1
  2735. package/dist/src/tui/components/tui-header.js.map +0 -1
  2736. package/dist/src/tui/components/user-message.js.map +0 -1
  2737. package/dist/src/tui/components/visual-truncate.js.map +0 -1
  2738. package/dist/src/tui/extension-host/autocomplete.js.map +0 -1
  2739. package/dist/src/tui/extension-host/host.js.map +0 -1
  2740. package/dist/src/tui/extension-host/load-extensions.js.map +0 -1
  2741. package/dist/src/tui/extension-host/runtime-context.js.map +0 -1
  2742. package/dist/src/tui/extension-host/runtime.js.map +0 -1
  2743. package/dist/src/tui/extension-host/surface.js.map +0 -1
  2744. package/dist/src/tui/extension-host/tool-renderers.js.map +0 -1
  2745. package/dist/src/tui/format-tui-hotkeys.js.map +0 -1
  2746. package/dist/src/tui/sse-consumer.js.map +0 -1
  2747. package/dist/src/tui/theme/dark.js.map +0 -1
  2748. package/dist/src/tui/theme/light.js.map +0 -1
  2749. package/dist/src/tui/theme-manager.js.map +0 -1
  2750. package/dist/src/tui/theme.js.map +0 -1
  2751. package/dist/src/tui/tool-summary.js.map +0 -1
  2752. package/dist/src/tui/tui-agent-events.js.map +0 -1
  2753. package/dist/src/tui/tui-command-formatters.js.map +0 -1
  2754. package/dist/src/tui/tui-commands.js.map +0 -1
  2755. package/dist/src/tui/tui-context-usage.js.map +0 -1
  2756. package/dist/src/tui/tui-extension-user-message.js.map +0 -1
  2757. package/dist/src/tui/tui-fd-path.js.map +0 -1
  2758. package/dist/src/tui/tui-file-autocomplete.js.map +0 -1
  2759. package/dist/src/tui/tui-follow-up-queue.js.map +0 -1
  2760. package/dist/src/tui/tui-git-branch.js.map +0 -1
  2761. package/dist/src/tui/tui-keybindings-file.js.map +0 -1
  2762. package/dist/src/tui/tui-lifecycle.js.map +0 -1
  2763. package/dist/src/tui/tui-local-shell.js.map +0 -1
  2764. package/dist/src/tui/tui-model-picker.js.map +0 -1
  2765. package/dist/src/tui/tui-oauth-login.js.map +0 -1
  2766. package/dist/src/tui/tui-overlays.js.map +0 -1
  2767. package/dist/src/tui/tui-picker-overlay.js.map +0 -1
  2768. package/dist/src/tui/tui-run-state.js.map +0 -1
  2769. package/dist/src/tui/tui-run-status-format.js.map +0 -1
  2770. package/dist/src/tui/tui-runtime-hints.js.map +0 -1
  2771. package/dist/src/tui/tui-scoped-models.js.map +0 -1
  2772. package/dist/src/tui/tui-session-actions.js.map +0 -1
  2773. package/dist/src/tui/tui-session-format.js.map +0 -1
  2774. package/dist/src/tui/tui-session-snapshot.js.map +0 -1
  2775. package/dist/src/tui/tui-session-stats.js.map +0 -1
  2776. package/dist/src/tui/tui-settings.js.map +0 -1
  2777. package/dist/src/tui/tui-skills-autocomplete.js.map +0 -1
  2778. package/dist/src/tui/tui-startup-resources.js.map +0 -1
  2779. package/dist/src/tui/tui-startup-text.js.map +0 -1
  2780. package/dist/src/tui/tui-stdio-filter.js.map +0 -1
  2781. package/dist/src/tui/tui-submit.js.map +0 -1
  2782. package/dist/src/tui/tui-suspend.js.map +0 -1
  2783. package/dist/src/tui/tui-timeline-picker.js.map +0 -1
  2784. package/dist/src/tui/tui-timeline.js.map +0 -1
  2785. package/dist/src/tui/tui-tool-diff.js.map +0 -1
  2786. package/dist/src/tui/tui-tool-result.js.map +0 -1
  2787. package/dist/src/tui/tui-transcript-tree-picker.js.map +0 -1
  2788. package/dist/src/tui/tui-transcript-tree.js.map +0 -1
  2789. package/dist/src/tui/tui-types.js.map +0 -1
  2790. package/dist/src/tui/tui-workflow-slash.js.map +0 -1
  2791. package/dist/src/tui/tui.js.map +0 -1
  2792. package/dist/src/tui/xopc-tui-keybindings.js.map +0 -1
  2793. package/dist/src/tunnel/broker-client.js.map +0 -1
  2794. package/dist/src/tunnel/consent.js.map +0 -1
  2795. package/dist/src/tunnel/enable-lan-pairing.js.map +0 -1
  2796. package/dist/src/tunnel/env.js.map +0 -1
  2797. package/dist/src/tunnel/frp-subdomain-host.js.map +0 -1
  2798. package/dist/src/tunnel/frpc-binary.js.map +0 -1
  2799. package/dist/src/tunnel/frpc-config.js.map +0 -1
  2800. package/dist/src/tunnel/frpc-extract.js.map +0 -1
  2801. package/dist/src/tunnel/frpc-process.js.map +0 -1
  2802. package/dist/src/tunnel/gateway-lifecycle.js.map +0 -1
  2803. package/dist/src/tunnel/pair-context.js.map +0 -1
  2804. package/dist/src/tunnel/pair-url.js.map +0 -1
  2805. package/dist/src/tunnel/pairing-rate-limit.js.map +0 -1
  2806. package/dist/src/tunnel/pairing.js.map +0 -1
  2807. package/dist/src/tunnel/tunnel-audit.js.map +0 -1
  2808. package/dist/src/tunnel/tunnel-config.js.map +0 -1
  2809. package/dist/src/tunnel/tunnel-persist.js.map +0 -1
  2810. package/dist/src/tunnel/tunnel-qr.js.map +0 -1
  2811. package/dist/src/tunnel/tunnel-rate-limit.js.map +0 -1
  2812. package/dist/src/tunnel/tunnel-service.js.map +0 -1
  2813. package/dist/src/tunnel/tunnel-state.js.map +0 -1
  2814. package/dist/src/tunnel/well-known.js.map +0 -1
  2815. package/dist/src/user-context/config.js.map +0 -1
  2816. package/dist/src/user-context/import.js.map +0 -1
  2817. package/dist/src/user-context/owner.js.map +0 -1
  2818. package/dist/src/user-context/profile.js.map +0 -1
  2819. package/dist/src/user-context/projection.js.map +0 -1
  2820. package/dist/src/user-context/runtime.js.map +0 -1
  2821. package/dist/src/user-context/source-recommendations.js.map +0 -1
  2822. package/dist/src/user-context/trust-policy.js.map +0 -1
  2823. package/dist/src/utils/global-singleton.js.map +0 -1
  2824. package/dist/src/utils/helpers.js.map +0 -1
  2825. package/dist/src/utils/index.js.map +0 -1
  2826. package/dist/src/utils/is-record.js.map +0 -1
  2827. package/dist/src/utils/logger/audit.js.map +0 -1
  2828. package/dist/src/utils/logger/config.js.map +0 -1
  2829. package/dist/src/utils/logger/context.js.map +0 -1
  2830. package/dist/src/utils/logger/exporters.js.map +0 -1
  2831. package/dist/src/utils/logger/index.js.map +0 -1
  2832. package/dist/src/utils/logger/log-store.js.map +0 -1
  2833. package/dist/src/utils/logger/log-stream.js.map +0 -1
  2834. package/dist/src/utils/logger/pino-record.js.map +0 -1
  2835. package/dist/src/utils/logger/redact.js.map +0 -1
  2836. package/dist/src/utils/logger/rotation.js.map +0 -1
  2837. package/dist/src/utils/logger/shutdown.js.map +0 -1
  2838. package/dist/src/utils/logger/stats.js.map +0 -1
  2839. package/dist/src/utils/logger/streams.js.map +0 -1
  2840. package/dist/src/utils/logger/types.js.map +0 -1
  2841. package/dist/src/utils/logger.js.map +0 -1
  2842. package/dist/src/utils/redact-sensitive-url.js.map +0 -1
  2843. package/dist/src/utils/sanitize-log.js.map +0 -1
  2844. package/dist/src/utils/string-coerce.js.map +0 -1
  2845. package/dist/src/voice/language-profile.js.map +0 -1
  2846. package/dist/src/voice/local/model-files.js.map +0 -1
  2847. package/dist/src/voice/local/model-manager.js.map +0 -1
  2848. package/dist/src/voice/local/models.js.map +0 -1
  2849. package/dist/src/voice/local/runtime-client.js.map +0 -1
  2850. package/dist/src/voice/local/runtime-dispatcher.js.map +0 -1
  2851. package/dist/src/voice/local/runtime-worker.js.map +0 -1
  2852. package/dist/src/voice/local/wav.js.map +0 -1
  2853. package/dist/src/voice/metadata/builtin.js.map +0 -1
  2854. package/dist/src/voice/metadata/registry.js.map +0 -1
  2855. package/dist/src/voice/stt/availability.js.map +0 -1
  2856. package/dist/src/voice/stt/config-slice.js.map +0 -1
  2857. package/dist/src/voice/stt/factory.js.map +0 -1
  2858. package/dist/src/voice/stt/index.js.map +0 -1
  2859. package/dist/src/voice/stt/list-providers.js.map +0 -1
  2860. package/dist/src/voice/stt/mention.js.map +0 -1
  2861. package/dist/src/voice/stt/preflight.js.map +0 -1
  2862. package/dist/src/voice/stt/providers/alibaba-transcription.js.map +0 -1
  2863. package/dist/src/voice/stt/providers/local-transcription.js.map +0 -1
  2864. package/dist/src/voice/stt/providers/openai-transcription.js.map +0 -1
  2865. package/dist/src/voice/stt/transcribe-core.js.map +0 -1
  2866. package/dist/src/voice/stt/types.js.map +0 -1
  2867. package/dist/src/voice/tts/audio.js.map +0 -1
  2868. package/dist/src/voice/tts/config-slice.js.map +0 -1
  2869. package/dist/src/voice/tts/directives.js.map +0 -1
  2870. package/dist/src/voice/tts/factory.js.map +0 -1
  2871. package/dist/src/voice/tts/list-providers.js.map +0 -1
  2872. package/dist/src/voice/tts/merge-config.js.map +0 -1
  2873. package/dist/src/voice/tts/openai-compatible-speech.js.map +0 -1
  2874. package/dist/src/voice/tts/payload.js.map +0 -1
  2875. package/dist/src/voice/tts/preprocess.js.map +0 -1
  2876. package/dist/src/voice/tts/providers/alibaba-speech.js.map +0 -1
  2877. package/dist/src/voice/tts/providers/edge-speech.js.map +0 -1
  2878. package/dist/src/voice/tts/providers/minimax-speech.js.map +0 -1
  2879. package/dist/src/voice/tts/providers/openai-speech.js.map +0 -1
  2880. package/dist/src/voice/tts/sentence-boundary.js.map +0 -1
  2881. package/dist/src/voice/tts/service.js.map +0 -1
  2882. package/dist/src/voice/tts/speak-core.js.map +0 -1
  2883. package/dist/src/voice/tts/speech-registry.js.map +0 -1
  2884. package/dist/src/voice/tts/status-tracker.js.map +0 -1
  2885. package/dist/src/voice/tts/summarize.js.map +0 -1
  2886. package/dist/src/voice/tts/types.js.map +0 -1
  2887. package/dist/src/work-discovery/analyzer.js.map +0 -1
  2888. package/dist/src/work-discovery/probe.js.map +0 -1
  2889. package/dist/src/work-discovery/repository.js.map +0 -1
  2890. package/dist/src/work-discovery/service.js.map +0 -1
  2891. package/dist/src/work-items/agent-context.js.map +0 -1
  2892. package/dist/src/work-items/work-item-service.js.map +0 -1
  2893. package/dist/src/work-items/work-item-store.js.map +0 -1
  2894. package/dist/src/work-items/work-item-workflow-judge.js.map +0 -1
  2895. package/dist/src/workflows/authoring/workflow-draft-store.js.map +0 -1
  2896. package/dist/src/workflows/domain/definition-utils.js.map +0 -1
  2897. package/dist/src/workflows/domain/run.js.map +0 -1
  2898. package/dist/src/workflows/domain/schema-validation.js.map +0 -1
  2899. package/dist/src/workflows/domain/validation.js.map +0 -1
  2900. package/dist/src/workflows/draft/workflow-draft-prompt.js.map +0 -1
  2901. package/dist/src/workflows/draft/workflow-draft-service.js.map +0 -1
  2902. package/dist/src/workflows/draft/workflow-draft-validator.js.map +0 -1
  2903. package/dist/src/workflows/engine/projector.js.map +0 -1
  2904. package/dist/src/workflows/engine/workflow-engine.js.map +0 -1
  2905. package/dist/src/workflows/registry/catalog-workflow-definition-registry.js.map +0 -1
  2906. package/dist/src/workflows/runtime/graph-workflow-runtime.js.map +0 -1
  2907. package/dist/src/workflows/service/run-view-to-snapshot.js.map +0 -1
  2908. package/dist/src/workflows/service/workflow-run-service.js.map +0 -1
  2909. package/dist/src/workflows/service/workflow-session-bridge.js.map +0 -1
  2910. package/dist/src/workflows/service/workflow-session-key.js.map +0 -1
  2911. package/dist/src/workflows/store/event-store.js.map +0 -1
  2912. package/dist/src/workflows/store/paths.js.map +0 -1
  2913. package/dist/src/workflows/store/run-index-store.js.map +0 -1
  2914. package/dist/src/workflows/store/run-store.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"loader.js","names":["apiImpl"],"sources":["../../../src/extensions/loader.ts"],"sourcesContent":["/**\n * Extension Loader and Registry\n * \n * Supports three-tier extension storage:\n * 1. Workspace level (workspace/.extensions/) - highest priority\n * 2. Global level (~/.xopc/extensions/) - shared across workspaces\n * 3. Bundled level (xopc/extensions/) - shipped with xopc\n */\n\nimport { existsSync, readFileSync } from 'fs';\nimport { join, dirname, isAbsolute } from 'path';\nimport { fileURLToPath, pathToFileURL } from 'node:url';\nimport { createJiti } from 'jiti';\nimport { resolveDefaultAgentId } from '../agent/agent-scope.js';\nimport { loadConfig } from '../config/loader.js';\nimport {\n resolveAgentWorkspaceDir,\n resolveExtensionsDir,\n resolveWorkspaceExtensionsDir,\n resolveBundledExtensionsDir,\n resolveExtensionSdkPath,\n} from '../config/paths.js';\nimport type { Config } from '../config/config-surface.js';\nimport type { MessageBus } from '../infra/bus/index.js';\nimport type { SessionIndex } from '../session/manager.js';\nimport type { AgentTool } from '@earendil-works/pi-agent-core';\nimport type {\n ExtensionApi,\n ExtensionModule,\n ExtensionManifest,\n ResolvedExtensionConfig,\n DiscoveredExtension,\n} from './types/index.js';\nimport type { ActivationContext } from './activation-planner.js';\nimport { ActivationPlanner, type ActivationLoadPhase } from './activation-planner.js';\nimport { mergeActivationContext } from './activation-context.js';\nimport {\n areExtensionsGloballyDisabled,\n discoverExtensionsFromDisk,\n type DiscoverConfig,\n type ExtensionLoaderOptions,\n} from './discover-extensions.js';\nimport type { ExtensionMetadataSnapshot } from './extension-metadata-snapshot.js';\nimport { ManifestRegistry } from './manifest-registry.js';\nimport { normalizeExtensionManifest } from './normalize-manifest.js';\nimport { checkEngineCompatibility } from './engine-check.js';\nimport { PACKAGE_VERSION } from '../package-version.js';\nimport { ExtensionApiImpl, createExtensionLogger, createPathResolver } from './api.js';\nimport { validateSpeechProviderContracts } from './speech-provider-contracts.js';\nimport { validateMediaUnderstandingProviderContracts } from './media-provider-contracts.js';\nimport { createLogger, createServiceLogger } from '../utils/logger.js';\n\n// Security imports\nimport {\n checkExtensionPathSafety,\n isExtensionAllowed,\n provenanceTracker,\n logSecurityIssue,\n DEFAULT_SECURITY_CONFIG,\n type SecurityConfig,\n // Note: ExtensionSourceOrigin is defined locally in this file\n} from './security.js';\n\n// Provider imports\nimport { getProviderRegistry, type ProviderPluginRegistry } from '../providers/plugin-registry.js';\n\n// Slot imports\nimport {\n getSlotRegistry,\n type SlotRegistry,\n type SlotKey,\n} from './slots.js';\n\n// Diagnostics imports\nimport {\n getExtensionCache,\n getExtensionDiagnostics,\n type ExtensionLoaderCache,\n type ExtensionDiagnostics,\n} from './diagnostics.js';\n\nconst EXTENSION_MANIFEST_FILE = 'xopc.extension.json';\n\nconst log = createLogger('ExtensionLoader');\n\nconst DEFAULT_EXTENSION_LOAD_CONCURRENCY = 4;\n\nasync function mapWithConcurrency<T>(\n items: readonly T[],\n concurrency: number,\n fn: (item: T) => Promise<void>,\n): Promise<void> {\n if (items.length === 0) {\n return;\n }\n const queue = [...items];\n const workerCount = Math.min(Math.max(1, concurrency), queue.length);\n await Promise.all(\n Array.from({ length: workerCount }, async () => {\n while (queue.length > 0) {\n const item = queue.shift();\n if (item === undefined) {\n break;\n }\n await fn(item);\n }\n }),\n );\n}\n\nexport type { ExtensionLoaderOptions, ExtensionSourceOrigin } from './discover-extensions.js';\nexport { areExtensionsGloballyDisabled } from './discover-extensions.js';\n\n// ============================================================================\n// Extension Registry\n// ============================================================================\n\n// `ExtensionRegistryImpl` moved to `./extension-registry-impl.ts` so `api.ts`\n// can use the class without going through loader.ts (which imports back from\n// api.ts and formed a circular cycle). Re-exported here for backward-compat.\nexport { ExtensionRegistryImpl } from './extension-registry-impl.js';\nimport { ExtensionRegistryImpl } from './extension-registry-impl.js';\n\n// ============================================================================\n// Extension Loader\n// ============================================================================\n\nexport interface ActivationPlanLoadOptions extends Partial<ActivationContext> {\n phase?: ActivationLoadPhase | 'all';\n}\n\nexport class ExtensionLoader {\n private registry: ExtensionRegistryImpl;\n private options: ExtensionLoaderOptions;\n private extensionInstances: Map<string, ExtensionApi> = new Map();\n private jiti: ReturnType<typeof createJiti>;\n private _appConfig?: Config;\n private _runtimeContext?: {\n bus?: MessageBus;\n sessionManager?: SessionIndex;\n scheduleWebchatContinuation?: (sessionKey: string, message: string) => void;\n setLabel?: (entryId: string, label: string | undefined) => void;\n sendUserMessage?: import('./types/index.js').ExtensionRuntime['sendUserMessage'];\n appendEntry?: import('./types/index.js').ExtensionRuntime['appendEntry'];\n sendMessage?: import('./types/index.js').ExtensionRuntime['sendMessage'];\n };\n \n // Security\n private securityConfig: SecurityConfig;\n \n // Provider Registry\n private providerRegistry: ProviderPluginRegistry;\n \n // Slot Registry & Config\n private slotRegistry: SlotRegistry;\n private slotsConfig: Partial<Record<SlotKey, string>> = {};\n \n // Cache and Diagnostics\n private cache: ExtensionLoaderCache;\n private diagnostics: ExtensionDiagnostics;\n\n /** Manifest-only registry cache (no runtime module load). */\n private manifestRegistry: ManifestRegistry | null = null;\n private manifestSnapshot: ExtensionMetadataSnapshot | null = null;\n\n constructor(options?: ExtensionLoaderOptions) {\n this.registry = new ExtensionRegistryImpl();\n this.options = options || (() => {\n const c = loadConfig();\n const aid = resolveDefaultAgentId(c);\n return {\n workspaceDir: resolveAgentWorkspaceDir(c, aid),\n extensionsDir: resolveWorkspaceExtensionsDir(c, aid),\n };\n })();\n\n // Initialize security config\n this.securityConfig = DEFAULT_SECURITY_CONFIG;\n \n // Initialize provider registry\n this.providerRegistry = getProviderRegistry();\n \n // Initialize slot registry\n this.slotRegistry = getSlotRegistry();\n \n // Initialize cache and diagnostics \n this.cache = getExtensionCache();\n this.diagnostics = getExtensionDiagnostics();\n\n // Build jiti aliases for the public, host-provided extension SDK contract.\n // Extensions must import from @xopcai/xopc/extension-sdk; private aliases\n // are intentionally not registered.\n const alias: Record<string, string> = {};\n const sdkPath = resolveExtensionSdkPath();\n if (sdkPath) {\n const sdkDir = dirname(sdkPath);\n const sdkSubpaths = [\n 'core',\n 'lazy',\n 'provider',\n 'channel',\n 'hooks',\n 'tools',\n 'testing',\n 'speech',\n 'media',\n ];\n const prefix = '@xopcai/xopc/extension-sdk';\n alias[prefix] = sdkPath;\n for (const subpath of sdkSubpaths) {\n alias[`${prefix}/${subpath}`] = join(sdkDir, `${subpath}.ts`);\n }\n }\n\n // Initialize jiti with TypeScript support and SDK alias\n this.jiti = createJiti(fileURLToPath(import.meta.url), {\n interopDefault: true,\n extensions: ['.ts', '.tsx', '.mts', '.cts', '.js', '.mjs', '.cjs', '.json'],\n alias,\n });\n }\n\n /**\n * Reuse a pre-built metadata snapshot (avoids duplicate filesystem discovery).\n */\n setManifestSnapshot(snapshot: ExtensionMetadataSnapshot | null): void {\n this.manifestSnapshot = snapshot;\n this.manifestRegistry = snapshot?.manifestRegistry ?? null;\n }\n\n getManifestSnapshot(): ExtensionMetadataSnapshot | null {\n return this.manifestSnapshot;\n }\n\n /**\n * Set security configuration \n */\n setSecurityConfig(config: Partial<SecurityConfig>): void {\n this.securityConfig = { ...this.securityConfig, ...config };\n }\n\n /**\n * Get security configuration \n */\n getSecurityConfig(): SecurityConfig {\n return this.securityConfig;\n }\n\n /**\n * Get provider registry \n */\n getProviderRegistry(): ProviderPluginRegistry {\n return this.providerRegistry;\n }\n\n /**\n * Get slot registry \n */\n getSlotRegistry(): SlotRegistry {\n return this.slotRegistry;\n }\n\n /**\n * Get diagnostics \n */\n getDiagnostics(): ExtensionDiagnostics {\n return this.diagnostics;\n }\n\n /**\n * Set configuration from main Config object \n */\n setConfig(config: Config): void {\n this._appConfig = config;\n // Wire slot config\n const slots = (config.extensions as any)?.slots || {};\n this.slotsConfig = {\n memory: slots.memory,\n tts: slots.tts,\n imageGeneration: slots.imageGeneration,\n webSearch: slots.webSearch,\n };\n\n // Wire security config\n const security = (config.extensions as any)?.security;\n if (security) {\n this.securityConfig = {\n checkPermissions: security.checkPermissions ?? true,\n allowUntrusted: security.allowUntrusted ?? false,\n allow: security.allow ?? [],\n trackProvenance: security.trackProvenance ?? true,\n allowPromptInjection: security.allowPromptInjection ?? false,\n };\n }\n }\n\n /**\n * Inject MessageBus and optional SessionManager for ExtensionApi.runtime (Gateway).\n */\n setRuntimeContext(ctx: {\n bus?: MessageBus;\n sessionManager?: SessionIndex;\n scheduleWebchatContinuation?: (sessionKey: string, message: string) => void;\n setLabel?: (entryId: string, label: string | undefined) => void;\n sendUserMessage?: import('./types/index.js').ExtensionRuntime['sendUserMessage'];\n appendEntry?: import('./types/index.js').ExtensionRuntime['appendEntry'];\n sendMessage?: import('./types/index.js').ExtensionRuntime['sendMessage'];\n }): void {\n this._runtimeContext = ctx;\n // ExtensionApi snapshots `runtime` at construction and is tied to this loader's registry.\n // CLI startup loads extensions with `{ bus }` first; a global cache hit would reuse that\n // api for the gateway loader (no sessionManager, wrong registry) — breaks extensions that need SessionManager.\n this.cache.invalidate();\n }\n\n getRegistry(): ExtensionRegistryImpl {\n return this.registry;\n }\n\n /**\n * Build the manifest registry from filesystem manifests without loading extension code.\n */\n buildManifestRegistry(): ManifestRegistry {\n if (this.manifestRegistry) {\n return this.manifestRegistry;\n }\n const discovered = this.discoverExtensions();\n this.manifestRegistry = ManifestRegistry.fromDiscovered(discovered);\n return this.manifestRegistry;\n }\n\n /**\n * Plan activation from manifest metadata with pure logic.\n */\n planActivation(_context?: Partial<ActivationContext>): ActivationPlanner {\n return new ActivationPlanner(this.buildManifestRegistry());\n }\n\n /**\n * Load only extensions selected by the activation plan.\n */\n async loadByActivationPlan(context?: ActivationPlanLoadOptions): Promise<void> {\n if (areExtensionsGloballyDisabled(this._appConfig as DiscoverConfig | undefined)) {\n log.debug('Extension loading skipped (extensions globally disabled)');\n return;\n }\n\n const registry = this.buildManifestRegistry();\n const planner = new ActivationPlanner(registry);\n const fullContext = mergeActivationContext(this._appConfig, context);\n let activatedIds = planner.getActivatedIds(fullContext).sort((a, b) => a.localeCompare(b));\n\n const phase = context?.phase ?? 'all';\n if (phase === 'startup' || phase === 'deferred') {\n activatedIds = planner.filterActivatedIdsByLoadPhase(activatedIds, phase);\n }\n\n const concurrency = Number.parseInt(\n process.env.XOPC_EXTENSION_LOAD_CONCURRENCY ?? '',\n 10,\n );\n const loadConcurrency = Number.isFinite(concurrency) && concurrency > 0\n ? concurrency\n : DEFAULT_EXTENSION_LOAD_CONCURRENCY;\n\n await mapWithConcurrency(activatedIds, loadConcurrency, async (extensionId) => {\n if (this.extensionInstances.has(extensionId)) {\n return;\n }\n const entry = registry.getEntry(extensionId);\n if (!entry) {\n log.debug(\n { extensionId },\n 'Activation plan references extension id that was not discovered on disk',\n );\n return;\n }\n\n const config: ResolvedExtensionConfig = {\n id: extensionId,\n name: entry.manifest.name || extensionId,\n source: entry.source,\n path: entry.path,\n enabled: true,\n config: this.resolveExtensionConfig(extensionId),\n };\n\n await this.loadExtension(config);\n });\n }\n\n getManifestRegistry(): ManifestRegistry {\n return this.buildManifestRegistry();\n }\n\n invalidateManifestCache(): void {\n this.manifestSnapshot = null;\n this.manifestRegistry = null;\n }\n\n private resolveExtensionConfig(extensionId: string): Record<string, unknown> {\n if (!this._appConfig) return {};\n const extensionsConfig = (this._appConfig as Record<string, unknown>).extensions as\n | Record<string, unknown>\n | undefined;\n if (!extensionsConfig || typeof extensionsConfig !== 'object') return {};\n const raw = extensionsConfig[extensionId];\n if (raw && typeof raw === 'object' && !Array.isArray(raw)) {\n return raw as Record<string, unknown>;\n }\n return {};\n }\n\n /**\n * Discover extensions from all three tiers:\n * 1. Workspace (.extensions/) - highest priority\n * 2. Global (~/.xopc/extensions/) - shared\n * 3. Bundled (xopc/extensions/) - lowest priority\n */\n discoverExtensions(): DiscoveredExtension[] {\n if (this.manifestSnapshot) {\n return this.manifestSnapshot.discovered;\n }\n return discoverExtensionsFromDisk(this.options, this._appConfig as DiscoverConfig | undefined);\n }\n\n /**\n * Load all discovered extensions\n */\n async loadAllExtensions(enabledIds?: string[]): Promise<void> {\n const extensions = this.discoverExtensions();\n\n for (const extension of extensions) {\n // If enabledIds specified, only load those\n if (enabledIds && !enabledIds.includes(extension.id)) {\n continue;\n }\n\n const config: ResolvedExtensionConfig = {\n id: extension.id,\n name: extension.manifest.name || extension.id,\n source: extension.source,\n path: extension.path,\n enabled: true,\n config: {},\n };\n\n await this.loadExtension(config);\n }\n }\n\n async loadExtensions(configs: ResolvedExtensionConfig[]): Promise<void> {\n for (const extensionConfig of configs) {\n if (extensionConfig.enabled) {\n await this.loadExtension(extensionConfig);\n }\n }\n }\n\n async loadExtension(config: ResolvedExtensionConfig): Promise<ExtensionApi | null> {\n try {\n // Check cache first\n const cacheKey = this.cache.buildKey(this.options, [config.id]);\n const cached = this.cache.get<ExtensionApi>(cacheKey);\n if (cached) {\n log.debug({ extensionId: config.id }, 'Extension loaded from cache');\n return cached;\n }\n\n // Check if already loaded\n if (this.extensionInstances.has(config.id)) {\n return this.extensionInstances.get(config.id)!;\n }\n\n // Resolve extension path using resolveExtensionPath\n let extensionPath: string | null;\n if (isAbsolute(config.path)) {\n extensionPath = config.path;\n } else {\n // Try to resolve extension ID to actual path\n extensionPath = resolveExtensionPath(config.path, this.options) ||\n resolveExtensionPath(config.id, this.options);\n }\n \n if (!extensionPath) {\n log.error({ extensionId: config.id, path: config.path }, `Could not resolve extension path`);\n this.diagnostics.error(config.id, `Could not resolve extension path: ${config.path}`);\n return null;\n }\n\n log.debug({ extensionId: config.id, extensionPath }, 'Resolved extension path');\n\n // Security check\n const source = config.source || 'bundled';\n const safetyResult = checkExtensionPathSafety(extensionPath, extensionPath, source);\n \n if (!safetyResult.safe) {\n logSecurityIssue(config.id, safetyResult);\n \n if (this.securityConfig.checkPermissions && source !== 'bundled') {\n // Check allowlist\n if (!isExtensionAllowed(config.id, this.securityConfig)) {\n this.diagnostics.error(config.id, `Extension not allowed: ${safetyResult.detail}`);\n log.error({ extensionId: config.id, reason: safetyResult.reason }, 'Extension blocked by security policy');\n return null;\n }\n }\n }\n\n // Track provenance \n provenanceTracker.track(config.id, source);\n\n const manifest = this.loadManifest(extensionPath);\n if (!manifest) {\n log.error({ extensionId: config.id, extensionPath }, `Failed to load manifest for extension`);\n this.diagnostics.error(config.id, `Failed to load manifest`);\n return null;\n }\n\n if (!manifest.main || !/\\.(js|mjs|cjs)$/i.test(manifest.main)) {\n const reason = `Extension manifest main must point at built JavaScript (.js/.mjs/.cjs): ${manifest.main ?? '(missing)'}`;\n log.warn({ extensionId: config.id, main: manifest.main }, reason);\n this.diagnostics.error(config.id, reason);\n return null;\n }\n\n if (!manifest.engines?.xopc) {\n const reason = 'Extension manifest must declare engines.xopc';\n log.warn({ extensionId: config.id }, reason);\n this.diagnostics.error(config.id, reason);\n return null;\n }\n const range = manifest.engines.xopc;\n const engineResult = checkEngineCompatibility(PACKAGE_VERSION, range);\n if (engineResult.parseWarning) {\n const reason = engineResult.reason ?? `Could not parse engines.xopc: ${range}`;\n log.warn({ extensionId: config.id, range, reason }, 'Extension engine range parse failure — skipping load');\n this.diagnostics.error(config.id, reason);\n return null;\n }\n if (!engineResult.compatible) {\n log.warn(\n { extensionId: config.id, range, currentVersion: PACKAGE_VERSION },\n 'Extension engine requirement not met (engines.xopc) — skipping load',\n );\n this.diagnostics.error(\n config.id,\n engineResult.reason ?? 'Incompatible xopc version (engines.xopc)',\n );\n return null;\n }\n\n // Validate extension config against schema (basic validation)\n if (manifest.configSchema) {\n try {\n const schema = manifest.configSchema as Record<string, unknown>;\n const extensionConfig = config.config as Record<string, unknown>;\n \n // Basic validation: check required fields and types\n if (schema.type === 'object' && schema.properties) {\n const props = schema.properties as Record<string, Record<string, unknown>>;\n const required = (schema.required as string[]) || [];\n \n for (const field of required) {\n if (extensionConfig[field] === undefined) {\n log.error({ \n extensionId: config.id, \n field \n }, 'Extension config validation failed: missing required field');\n return null;\n }\n }\n \n for (const [key, value] of Object.entries(extensionConfig)) {\n const propSchema = props[key];\n if (propSchema) {\n if (propSchema.type && !this.validateType(value, propSchema.type as string)) {\n log.error({ \n extensionId: config.id, \n field: key,\n expected: propSchema.type,\n actual: typeof value\n }, 'Extension config validation failed: type mismatch');\n return null;\n }\n }\n }\n }\n \n log.debug({ extensionId: config.id }, 'Extension config validated');\n } catch (err) {\n log.warn({ err, extensionId: config.id }, 'Config schema validation skipped');\n }\n }\n\n // Create extension API\n const extensionDir = dirname(extensionPath);\n const api = this.createExtensionApi(manifest, config, extensionDir);\n\n // Load extension module\n const module = await this.loadModule(extensionPath, manifest);\n if (!module) {\n log.error({ extensionId: config.id }, `Failed to load module for extension`);\n this.diagnostics.error(config.id, `Failed to load module`);\n return null;\n }\n\n // Check and claim slots\n const slotClaimed = this.claimExtensionSlots(config.id, manifest);\n if (!slotClaimed) {\n log.warn({ extensionId: config.id }, 'Failed to claim required slots');\n }\n\n // Initialize extension\n await this.initializeExtension(module, api, manifest);\n\n validateSpeechProviderContracts({\n extensionId: config.id,\n manifest,\n registeredProviderIds: (api as ExtensionApiImpl).getRegisteredSpeechProviderIds(),\n logger: api.logger,\n });\n\n validateMediaUnderstandingProviderContracts({\n extensionId: config.id,\n manifest,\n registeredProviderIds: (api as ExtensionApiImpl).getRegisteredMediaUnderstandingProviderIds(),\n logger: api.logger,\n });\n\n // Register to registry\n this.registry.addExtension({\n id: config.id,\n name: manifest.name,\n version: manifest.version,\n path: extensionPath,\n module,\n config: config.config,\n enabled: true,\n source: config.source,\n });\n\n // Register extension tools to registry (so AgentManager can access them)\n // Note: api is actually ExtensionApiImpl at runtime\n const apiImpl = api as unknown as { _getTools: () => Map<string, AgentTool> };\n const extensionTools = apiImpl._getTools();\n for (const tool of extensionTools.values()) {\n this.registry.addTool(tool);\n }\n\n this.extensionInstances.set(config.id, api);\n \n // Cache the loaded extension\n this.cache.set(cacheKey, api);\n\n this.diagnostics.info(config.id, `Loaded extension: ${manifest.name}`);\n log.info({ name: manifest.name, id: manifest.id, source: config.source }, `Loaded extension`);\n\n return api;\n } catch (error) {\n log.error({ err: error, extensionId: config.id }, `Error loading extension`);\n this.diagnostics.error(config.id, `Error loading extension: ${error}`);\n return null;\n }\n }\n\n /**\n * Claim extension slots based on manifest kind\n * Respects configured preferred plugin from config.extensions.slots\n */\n private claimExtensionSlots(extensionId: string, manifest: ExtensionManifest): boolean {\n const kind = manifest.kind as string;\n \n // Map extension kind to slot\n const slotMap: Record<string, SlotKey> = {\n 'memory': 'memory',\n 'tts': 'tts',\n 'speech-provider': 'tts',\n 'web-search': 'webSearch',\n };\n \n const slotKey = slotMap[kind];\n if (!slotKey) {\n return true; // No slot required\n }\n \n // Check if slot is reserved for a different plugin in config\n const preferredPlugin = this.slotsConfig[slotKey];\n if (preferredPlugin && preferredPlugin !== extensionId) {\n log.info(\n { extensionId, slotKey, preferredPlugin },\n `Skipping slot claim: slot \"${slotKey}\" is reserved for \"${preferredPlugin}\"`\n );\n this.diagnostics.info(\n extensionId,\n `Slot \"${slotKey}\" is reserved for \"${preferredPlugin}\", skipping claim`\n );\n return false;\n }\n \n const claimed = this.slotRegistry.claim(slotKey, extensionId, null);\n if (!claimed) {\n this.diagnostics.warn(extensionId, `Slot \"${slotKey}\" already claimed by another extension`);\n }\n return claimed;\n }\n\n loadManifest(extensionPath: string): ExtensionManifest | null {\n const manifestPath = join(extensionPath, EXTENSION_MANIFEST_FILE);\n\n // First try to load xopc.extension.json\n if (existsSync(manifestPath)) {\n try {\n const raw = JSON.parse(readFileSync(manifestPath, 'utf-8'));\n if (!raw || typeof raw !== 'object' || Array.isArray(raw)) {\n log.error({ manifestPath }, 'Manifest root must be a JSON object');\n return null;\n }\n return normalizeExtensionManifest(raw as Record<string, unknown>);\n } catch (error) {\n log.error({ err: error, manifestPath }, `Failed to parse manifest`);\n return null;\n }\n }\n\n return null;\n }\n\n private moduleEntryCandidates(manifest: ExtensionManifest): string[] {\n if (!manifest.main) return [];\n return [manifest.main];\n }\n\n private async loadModule(\n extensionPath: string,\n manifest: ExtensionManifest,\n ): Promise<ExtensionModule | null> {\n const entryPoints = this.moduleEntryCandidates(manifest);\n\n for (const entry of entryPoints) {\n const fullPath = isAbsolute(entry) ? entry : join(extensionPath, entry);\n\n if (existsSync(fullPath)) {\n try {\n if (!/\\.(js|mjs|cjs)$/.test(fullPath)) {\n throw new Error(`Extension runtime entry must be built JavaScript: ${entry}`);\n }\n const mod = await import(pathToFileURL(fullPath).href);\n return mod.default || mod;\n } catch (error) {\n log.warn({ err: error, path: fullPath }, `Failed to load module`);\n }\n }\n }\n\n return null;\n }\n\n private createExtensionApi(\n manifest: ExtensionManifest,\n resolved: ResolvedExtensionConfig,\n extensionDir: string,\n ): ExtensionApi {\n const logger = createExtensionLogger(`[${manifest.id}]`);\n const resolvePath = createPathResolver(extensionDir, this.options.workspaceDir || '');\n\n const appConfig = this._appConfig ?? ({} as Config);\n const extensionOnly = (resolved.config ?? {}) as Record<string, unknown>;\n\n const runtime =\n this._appConfig && this._runtimeContext\n ? {\n config: this._appConfig,\n bus: this._runtimeContext.bus,\n log: logger,\n sessionManager: this._runtimeContext.sessionManager,\n scheduleWebchatContinuation: this._runtimeContext.scheduleWebchatContinuation,\n setLabel: this._runtimeContext.setLabel,\n sendUserMessage: this._runtimeContext.sendUserMessage,\n appendEntry: this._runtimeContext.appendEntry,\n sendMessage: this._runtimeContext.sendMessage,\n }\n : this._appConfig\n ? {\n config: this._appConfig,\n log: logger,\n }\n : undefined;\n\n const api = new ExtensionApiImpl(\n manifest.id,\n manifest.name,\n manifest.version,\n extensionDir,\n appConfig,\n extensionOnly,\n logger,\n resolvePath,\n this.registry,\n manifest.contracts ?? {},\n runtime,\n );\n if (manifest.reload?.configPrefixes?.length) {\n api._setReloadConfigPrefixes(manifest.reload.configPrefixes);\n }\n const manifestCommands = manifest.ui?.contributions?.commands;\n if (manifestCommands?.length) {\n (api as ExtensionApiImpl)._setManifestCommands(manifestCommands);\n }\n return api;\n }\n\n private async initializeExtension(\n module: ExtensionModule,\n api: ExtensionApi,\n _manifest: ExtensionManifest,\n ): Promise<void> {\n if (typeof module === 'function') {\n // Module is a function that receives the API\n await module(api);\n } else if (typeof module === 'object' && module.register) {\n // Module is a ExtensionDefinition with register method\n await module.register(api);\n }\n }\n\n async startServices(): Promise<void> {\n const services = Array.from(this.registry.services.values());\n\n for (const service of services) {\n const serviceLog = createServiceLogger(service.id);\n try {\n await service.start?.();\n serviceLog.info(`Started service`);\n } catch (error) {\n serviceLog.error({ err: error }, `Failed to start service`);\n }\n }\n }\n\n async stopServices(): Promise<void> {\n const services = Array.from(this.registry.services.values()).reverse();\n\n for (const service of services) {\n if (service.stop) {\n const serviceLog = createServiceLogger(service.id);\n try {\n await service.stop();\n serviceLog.info(`Stopped service`);\n } catch (error) {\n serviceLog.error({ err: error }, `Failed to stop service`);\n }\n }\n }\n }\n\n /**\n * Basic type validation for config values\n */\n private validateType(value: unknown, expectedType: string): boolean {\n if (expectedType === 'string') return typeof value === 'string';\n if (expectedType === 'number' || expectedType === 'integer') return typeof value === 'number';\n if (expectedType === 'boolean') return typeof value === 'boolean';\n if (expectedType === 'array') return Array.isArray(value);\n if (expectedType === 'object') return typeof value === 'object' && value !== null && !Array.isArray(value);\n return true;\n }\n}\n\n// ============================================================================\n// Utility Functions\n// ============================================================================\n\nexport function resolveExtensionPath(id: string, _options: ExtensionLoaderOptions): string | null {\n const c = loadConfig();\n const aid = resolveDefaultAgentId(c);\n // Priority 1: Workspace\n const workspacePath = join(resolveWorkspaceExtensionsDir(c, aid), id);\n if (existsSync(workspacePath)) return workspacePath;\n\n // Priority 2: Global\n const globalPath = join(resolveExtensionsDir(), id);\n if (existsSync(globalPath)) return globalPath;\n\n // Priority 3: Bundled\n const bundledDir = resolveBundledExtensionsDir();\n if (bundledDir) {\n const bundledPath = join(bundledDir, id);\n if (existsSync(bundledPath)) return bundledPath;\n }\n\n return null;\n}\n\nexport function normalizeExtensionConfig(\n rawConfig: Record<string, unknown>,\n): ResolvedExtensionConfig[] {\n const extensions: ResolvedExtensionConfig[] = [];\n\n const enabled = (rawConfig.enabled as string[]) || [];\n const disabled = (rawConfig.disabled as string[]) || [];\n\n // Parse enabled extensions\n for (const id of enabled) {\n const config = (rawConfig[id] as Record<string, unknown>) || {};\n extensions.push({\n id,\n name: id,\n source: 'config',\n path: id,\n enabled: true,\n config,\n });\n }\n\n // Parse disabled extensions\n for (const id of disabled) {\n if (!extensions.find((p) => p.id === id)) {\n const config = (rawConfig[id] as Record<string, unknown>) || {};\n extensions.push({\n id,\n name: id,\n source: 'config',\n path: id,\n enabled: false,\n config,\n });\n }\n }\n\n return extensions;\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"lockfile.js","names":[],"sources":["../../../src/extensions/lockfile.ts"],"sourcesContent":["import { readFile, mkdir } from 'fs/promises';\nimport { writeTextAtomic } from '../infra/write-file-atomic.js';\nimport { existsSync } from 'fs';\nimport { dirname, join } from 'path';\nimport { createHash } from 'crypto';\nimport { createLogger } from '../utils/logger.js';\nimport { resolveExtensionsLockPath, resolveExtensionsDir } from '../config/paths.js';\n\nconst log = createLogger('ExtensionLockfile');\n\n// ============================================\n// Types\n// ============================================\n\nexport type ExtensionSource = 'npm' | 'local' | 'git' | 'store';\n\nexport interface ExtensionLockEntry {\n /** Extension ID */\n name: string;\n /** Installed version */\n version: string;\n /** Resolved URL or path */\n resolved: string;\n /** Download artifact integrity, formatted as sha256-<base64>. */\n integrity?: string;\n /** Deterministic hash of installed files, formatted as dir-sha256-<base64>. */\n installedIntegrity?: string;\n /** Immutable artifact URL used during install, when available. */\n artifactUrl?: string;\n /** Manifest snapshot captured at install time. */\n manifest?: Record<string, unknown>;\n /** package.json snapshot captured at install time. */\n packageJson?: Record<string, unknown>;\n /** Installation timestamp */\n installedAt: string;\n /** Source type */\n source: ExtensionSource;\n /** Local path (for local extensions) */\n localPath?: string;\n /** Git reference (for git extensions) */\n gitRef?: string;\n /** Dependencies */\n dependencies?: Record<string, string>;\n}\n\nexport interface ExtensionsLockfile {\n version: number;\n lockfileVersion: number;\n /** Installed extensions */\n extensions: Record<string, ExtensionLockEntry>;\n /** Last updated timestamp */\n lastUpdated?: string;\n}\n\n// ============================================\n// Extension Lockfile Manager\n// ============================================\n\nexport class ExtensionLockfileManager {\n private readonly lockfilePath: string;\n\n constructor(lockfilePath?: string) {\n this.lockfilePath = lockfilePath || resolveExtensionsLockPath();\n }\n\n /**\n * Load the lockfile\n */\n async load(): Promise<ExtensionsLockfile> {\n if (!existsSync(this.lockfilePath)) {\n return { version: 1, lockfileVersion: 1, extensions: {} };\n }\n\n try {\n const content = await readFile(this.lockfilePath, 'utf-8');\n const data = JSON.parse(content);\n return {\n version: data.version || 1,\n lockfileVersion: data.lockfileVersion || 1,\n extensions: data.extensions || {},\n lastUpdated: data.lastUpdated,\n };\n } catch (error) {\n log.warn({ error }, 'Failed to load lockfile, starting fresh');\n return { version: 1, lockfileVersion: 1, extensions: {} };\n }\n }\n\n /**\n * Save the lockfile\n */\n async save(data: ExtensionsLockfile): Promise<void> {\n data.lastUpdated = new Date().toISOString();\n\n await mkdir(dirname(this.lockfilePath), { recursive: true });\n await writeTextAtomic(this.lockfilePath, JSON.stringify(data, null, 2));\n\n log.debug('Lockfile saved');\n }\n\n /**\n * Add or update an extension entry\n */\n async upsert(\n extensionId: string,\n entry: Omit<ExtensionLockEntry, 'installedAt'>\n ): Promise<void> {\n const data = await this.load();\n\n data.extensions[extensionId] = {\n ...entry,\n installedAt: new Date().toISOString(),\n };\n\n await this.save(data);\n log.info({ extensionId, version: entry.version }, 'Extension locked');\n }\n\n /**\n * Remove an extension entry\n */\n async remove(extensionId: string): Promise<void> {\n const data = await this.load();\n\n if (data.extensions[extensionId]) {\n delete data.extensions[extensionId];\n await this.save(data);\n log.info({ extensionId }, 'Extension removed from lockfile');\n }\n }\n\n /**\n * Get a specific extension entry\n */\n async get(extensionId: string): Promise<ExtensionLockEntry | null> {\n const data = await this.load();\n return data.extensions[extensionId] || null;\n }\n\n /**\n * Check if an extension is locked\n */\n async has(extensionId: string): Promise<boolean> {\n const data = await this.load();\n return extensionId in data.extensions;\n }\n\n /**\n * List all locked extensions\n */\n async list(): Promise<ExtensionLockEntry[]> {\n const data = await this.load();\n return Object.values(data.extensions);\n }\n\n /**\n * Verify extension integrity\n */\n async verify(extensionId: string): Promise<{ valid: boolean; reason?: string }> {\n const entry = await this.get(extensionId);\n\n if (!entry) {\n return { valid: false, reason: 'Extension not in lockfile' };\n }\n\n const extDir = join(resolveExtensionsDir(), extensionId);\n\n if (!existsSync(extDir)) {\n return { valid: false, reason: 'Extension directory not found' };\n }\n\n // TODO: Verify integrity hash if available\n // This would require reading and hashing the extension files\n\n return { valid: true };\n }\n\n /**\n * Verify all locked extensions\n */\n async verifyAll(): Promise<\n Array<{ extensionId: string; valid: boolean; reason?: string }>\n > {\n const data = await this.load();\n const results: Array<{ extensionId: string; valid: boolean; reason?: string }> = [];\n\n for (const extensionId of Object.keys(data.extensions)) {\n results.push({\n extensionId,\n ...(await this.verify(extensionId)),\n });\n }\n\n return results;\n }\n\n /**\n * Freeze current state (save with validation)\n */\n async freeze(): Promise<ExtensionsLockfile> {\n const data = await this.load();\n\n // Validate all extensions exist\n for (const [extensionId] of Object.entries(data.extensions)) {\n const extDir = join(resolveExtensionsDir(), extensionId);\n\n if (!existsSync(extDir)) {\n log.warn({ extensionId }, 'Extension in lockfile but not installed');\n }\n }\n\n data.lastUpdated = new Date().toISOString();\n await this.save(data);\n\n log.info('Lockfile frozen');\n return data;\n }\n\n /**\n * Generate integrity hash for a file\n */\n static async generateIntegrity(filePath: string): Promise<string> {\n const { readFile } = await import('fs/promises');\n const content = await readFile(filePath);\n return 'sha512-' + createHash('sha512').update(content).digest('base64');\n }\n}\n\n// ============================================\n// Global Instance\n// ============================================\n\nlet globalManager: ExtensionLockfileManager | undefined;\n\nexport function getExtensionLockfileManager(\n lockfilePath?: string\n): ExtensionLockfileManager {\n if (!globalManager) {\n globalManager = new ExtensionLockfileManager(lockfilePath);\n }\n return globalManager;\n}\n\nexport function resetExtensionLockfileManager(): void {\n globalManager = undefined;\n}\n\n// ============================================\n// Convenience Functions\n// ============================================\n\nexport async function loadExtensionLockfile(\n lockfilePath?: string\n): Promise<ExtensionsLockfile> {\n const manager = getExtensionLockfileManager(lockfilePath);\n return manager.load();\n}\n\nexport async function saveExtensionLockfile(\n data: ExtensionsLockfile,\n lockfilePath?: string\n): Promise<void> {\n const manager = getExtensionLockfileManager(lockfilePath);\n return manager.save(data);\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"manifest-registry.js","names":[],"sources":["../../../src/extensions/manifest-registry.ts"],"sourcesContent":["/**\n * Manifest registry — indexes extension manifests without loading runtime code.\n */\n\nimport type { DiscoveredExtension } from './types/loader.js';\nimport type { ExtensionManifest, ModelSupportDeclaration } from './types/manifest.js';\n\nexport interface ManifestRegistryEntry {\n id: string;\n manifest: ExtensionManifest;\n source: 'workspace' | 'global' | 'bundled' | 'config';\n path: string;\n}\n\nexport class ManifestRegistry {\n private entries = new Map<string, ManifestRegistryEntry>();\n\n private providerIndex = new Map<string, string>();\n private speechProviderIndex = new Map<string, string>();\n private mediaUnderstandingProviderIndex = new Map<string, string>();\n private channelIndex = new Map<string, string>();\n private modelPrefixIndex = new Map<string, string>();\n private envVarIndex = new Map<string, string>();\n\n static fromDiscovered(discovered: DiscoveredExtension[]): ManifestRegistry {\n const registry = new ManifestRegistry();\n for (const ext of discovered) {\n registry.addEntry({\n id: ext.id,\n manifest: ext.manifest,\n source: ext.source,\n path: ext.path,\n });\n }\n return registry;\n }\n\n addEntry(entry: ManifestRegistryEntry): void {\n this.entries.set(entry.id, entry);\n this.buildIndexesForEntry(entry);\n }\n\n private buildIndexesForEntry(entry: ManifestRegistryEntry): void {\n const manifest = entry.manifest;\n\n if (manifest.providers) {\n for (const providerId of manifest.providers) {\n this.providerIndex.set(providerId, entry.id);\n }\n }\n\n for (const providerId of manifest.speechProviders ?? []) {\n this.speechProviderIndex.set(providerId, entry.id);\n }\n for (const providerId of manifest.contracts?.speechProviders ?? []) {\n this.speechProviderIndex.set(providerId, entry.id);\n }\n\n for (const providerId of manifest.mediaUnderstandingProviders ?? []) {\n this.mediaUnderstandingProviderIndex.set(providerId, entry.id);\n }\n for (const providerId of manifest.contracts?.mediaUnderstandingProviders ?? []) {\n this.mediaUnderstandingProviderIndex.set(providerId, entry.id);\n }\n\n if (manifest.channels) {\n for (const channelId of manifest.channels) {\n this.channelIndex.set(channelId, entry.id);\n }\n }\n\n if (manifest.modelSupport?.modelPrefixes) {\n for (const prefix of manifest.modelSupport.modelPrefixes) {\n this.modelPrefixIndex.set(prefix, entry.id);\n }\n }\n\n if (manifest.providerAuthEnvVars) {\n for (const envVars of Object.values(manifest.providerAuthEnvVars)) {\n for (const envVar of envVars) {\n this.envVarIndex.set(envVar, entry.id);\n }\n }\n }\n if (manifest.channelEnvVars) {\n for (const envVars of Object.values(manifest.channelEnvVars)) {\n for (const envVar of envVars) {\n this.envVarIndex.set(envVar, entry.id);\n }\n }\n }\n }\n\n getAllEntries(): ManifestRegistryEntry[] {\n return Array.from(this.entries.values());\n }\n\n getEntry(id: string): ManifestRegistryEntry | undefined {\n return this.entries.get(id);\n }\n\n findByProvider(providerId: string): ManifestRegistryEntry | undefined {\n const extensionId = this.providerIndex.get(providerId);\n return extensionId ? this.entries.get(extensionId) : undefined;\n }\n\n findBySpeechProvider(providerId: string): ManifestRegistryEntry | undefined {\n const extensionId = this.speechProviderIndex.get(providerId);\n return extensionId ? this.entries.get(extensionId) : undefined;\n }\n\n findByMediaUnderstandingProvider(providerId: string): ManifestRegistryEntry | undefined {\n const extensionId = this.mediaUnderstandingProviderIndex.get(providerId);\n return extensionId ? this.entries.get(extensionId) : undefined;\n }\n\n findByChannel(channelId: string): ManifestRegistryEntry | undefined {\n const extensionId = this.channelIndex.get(channelId);\n return extensionId ? this.entries.get(extensionId) : undefined;\n }\n\n findByModelId(modelId: string): ManifestRegistryEntry | undefined {\n const normalizedModelId = modelId.toLowerCase();\n\n for (const [prefix, extensionId] of this.modelPrefixIndex) {\n if (normalizedModelId.startsWith(prefix.toLowerCase())) {\n return this.entries.get(extensionId);\n }\n }\n\n for (const entry of this.entries.values()) {\n if (this.matchesModelPatterns(normalizedModelId, entry.manifest.modelSupport)) {\n return entry;\n }\n }\n\n return undefined;\n }\n\n findByEnvVar(envVarName: string): ManifestRegistryEntry | undefined {\n const extensionId = this.envVarIndex.get(envVarName);\n return extensionId ? this.entries.get(extensionId) : undefined;\n }\n\n detectAvailableByEnv(env: NodeJS.ProcessEnv): ManifestRegistryEntry[] {\n const found = new Set<string>();\n const results: ManifestRegistryEntry[] = [];\n\n for (const [envVar, extensionId] of this.envVarIndex) {\n if (env[envVar] && !found.has(extensionId)) {\n found.add(extensionId);\n const entry = this.entries.get(extensionId);\n if (entry) {\n results.push(entry);\n }\n }\n }\n\n return results;\n }\n\n listProviderExtensions(): ManifestRegistryEntry[] {\n return this.getAllEntries().filter(\n (entry) => entry.manifest.providers && entry.manifest.providers.length > 0,\n );\n }\n\n listChannelExtensions(): ManifestRegistryEntry[] {\n return this.getAllEntries().filter(\n (entry) => entry.manifest.channels && entry.manifest.channels.length > 0,\n );\n }\n\n listEnabledByDefault(): ManifestRegistryEntry[] {\n return this.getAllEntries().filter((entry) => entry.manifest.enabledByDefault === true);\n }\n\n private matchesModelPatterns(\n modelId: string,\n modelSupport?: ModelSupportDeclaration,\n ): boolean {\n if (!modelSupport?.modelPatterns) {\n return false;\n }\n\n for (const pattern of modelSupport.modelPatterns) {\n try {\n const regex = new RegExp(pattern, 'i');\n if (regex.test(modelId)) {\n return true;\n }\n } catch {\n // Invalid regex, skip\n }\n }\n\n return false;\n }\n}\n"],"mappings":";;;;AAca,oBAAb,MAAa,iBAAiB;EAC5B,0BAAkB,IAAI,KAAoC;EAE1D,gCAAwB,IAAI,KAAqB;EACjD,sCAA8B,IAAI,KAAqB;EACvD,kDAA0C,IAAI,KAAqB;EACnE,+BAAuB,IAAI,KAAqB;EAChD,mCAA2B,IAAI,KAAqB;EACpD,8BAAsB,IAAI,KAAqB;EAE/C,OAAO,eAAe,YAAqD;GACzE,MAAM,WAAW,IAAI,kBAAkB;AACvC,QAAK,MAAM,OAAO,WAChB,UAAS,SAAS;IAChB,IAAI,IAAI;IACR,UAAU,IAAI;IACd,QAAQ,IAAI;IACZ,MAAM,IAAI;IACX,CAAC;AAEJ,UAAO;;EAGT,SAAS,OAAoC;AAC3C,QAAK,QAAQ,IAAI,MAAM,IAAI,MAAM;AACjC,QAAK,qBAAqB,MAAM;;EAGlC,qBAA6B,OAAoC;GAC/D,MAAM,WAAW,MAAM;AAEvB,OAAI,SAAS,UACX,MAAK,MAAM,cAAc,SAAS,UAChC,MAAK,cAAc,IAAI,YAAY,MAAM,GAAG;AAIhD,QAAK,MAAM,cAAc,SAAS,mBAAmB,EAAE,CACrD,MAAK,oBAAoB,IAAI,YAAY,MAAM,GAAG;AAEpD,QAAK,MAAM,cAAc,SAAS,WAAW,mBAAmB,EAAE,CAChE,MAAK,oBAAoB,IAAI,YAAY,MAAM,GAAG;AAGpD,QAAK,MAAM,cAAc,SAAS,+BAA+B,EAAE,CACjE,MAAK,gCAAgC,IAAI,YAAY,MAAM,GAAG;AAEhE,QAAK,MAAM,cAAc,SAAS,WAAW,+BAA+B,EAAE,CAC5E,MAAK,gCAAgC,IAAI,YAAY,MAAM,GAAG;AAGhE,OAAI,SAAS,SACX,MAAK,MAAM,aAAa,SAAS,SAC/B,MAAK,aAAa,IAAI,WAAW,MAAM,GAAG;AAI9C,OAAI,SAAS,cAAc,cACzB,MAAK,MAAM,UAAU,SAAS,aAAa,cACzC,MAAK,iBAAiB,IAAI,QAAQ,MAAM,GAAG;AAI/C,OAAI,SAAS,oBACX,MAAK,MAAM,WAAW,OAAO,OAAO,SAAS,oBAAoB,CAC/D,MAAK,MAAM,UAAU,QACnB,MAAK,YAAY,IAAI,QAAQ,MAAM,GAAG;AAI5C,OAAI,SAAS,eACX,MAAK,MAAM,WAAW,OAAO,OAAO,SAAS,eAAe,CAC1D,MAAK,MAAM,UAAU,QACnB,MAAK,YAAY,IAAI,QAAQ,MAAM,GAAG;;EAM9C,gBAAyC;AACvC,UAAO,MAAM,KAAK,KAAK,QAAQ,QAAQ,CAAC;;EAG1C,SAAS,IAA+C;AACtD,UAAO,KAAK,QAAQ,IAAI,GAAG;;EAG7B,eAAe,YAAuD;GACpE,MAAM,cAAc,KAAK,cAAc,IAAI,WAAW;AACtD,UAAO,cAAc,KAAK,QAAQ,IAAI,YAAY,GAAG,KAAA;;EAGvD,qBAAqB,YAAuD;GAC1E,MAAM,cAAc,KAAK,oBAAoB,IAAI,WAAW;AAC5D,UAAO,cAAc,KAAK,QAAQ,IAAI,YAAY,GAAG,KAAA;;EAGvD,iCAAiC,YAAuD;GACtF,MAAM,cAAc,KAAK,gCAAgC,IAAI,WAAW;AACxE,UAAO,cAAc,KAAK,QAAQ,IAAI,YAAY,GAAG,KAAA;;EAGvD,cAAc,WAAsD;GAClE,MAAM,cAAc,KAAK,aAAa,IAAI,UAAU;AACpD,UAAO,cAAc,KAAK,QAAQ,IAAI,YAAY,GAAG,KAAA;;EAGvD,cAAc,SAAoD;GAChE,MAAM,oBAAoB,QAAQ,aAAa;AAE/C,QAAK,MAAM,CAAC,QAAQ,gBAAgB,KAAK,iBACvC,KAAI,kBAAkB,WAAW,OAAO,aAAa,CAAC,CACpD,QAAO,KAAK,QAAQ,IAAI,YAAY;AAIxC,QAAK,MAAM,SAAS,KAAK,QAAQ,QAAQ,CACvC,KAAI,KAAK,qBAAqB,mBAAmB,MAAM,SAAS,aAAa,CAC3E,QAAO;;EAOb,aAAa,YAAuD;GAClE,MAAM,cAAc,KAAK,YAAY,IAAI,WAAW;AACpD,UAAO,cAAc,KAAK,QAAQ,IAAI,YAAY,GAAG,KAAA;;EAGvD,qBAAqB,KAAiD;GACpE,MAAM,wBAAQ,IAAI,KAAa;GAC/B,MAAM,UAAmC,EAAE;AAE3C,QAAK,MAAM,CAAC,QAAQ,gBAAgB,KAAK,YACvC,KAAI,IAAI,WAAW,CAAC,MAAM,IAAI,YAAY,EAAE;AAC1C,UAAM,IAAI,YAAY;IACtB,MAAM,QAAQ,KAAK,QAAQ,IAAI,YAAY;AAC3C,QAAI,MACF,SAAQ,KAAK,MAAM;;AAKzB,UAAO;;EAGT,yBAAkD;AAChD,UAAO,KAAK,eAAe,CAAC,QACzB,UAAU,MAAM,SAAS,aAAa,MAAM,SAAS,UAAU,SAAS,EAC1E;;EAGH,wBAAiD;AAC/C,UAAO,KAAK,eAAe,CAAC,QACzB,UAAU,MAAM,SAAS,YAAY,MAAM,SAAS,SAAS,SAAS,EACxE;;EAGH,uBAAgD;AAC9C,UAAO,KAAK,eAAe,CAAC,QAAQ,UAAU,MAAM,SAAS,qBAAqB,KAAK;;EAGzF,qBACE,SACA,cACS;AACT,OAAI,CAAC,cAAc,cACjB,QAAO;AAGT,QAAK,MAAM,WAAW,aAAa,cACjC,KAAI;AAEF,QAAI,IADc,OAAO,SAAS,IACzB,CAAC,KAAK,QAAQ,CACrB,QAAO;WAEH;AAKV,UAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"marketplace.js","names":[],"sources":["../../../src/extensions/marketplace.ts"],"sourcesContent":["/**\n * Extension marketplace catalog from xopc-store (`GET /api/v1/packages?type=extension`).\n * Base URL: `XOPC_SKILLS_STORE_URL` → `gateway.skillsStoreBaseUrl` → `https://store.xopc.ai`.\n */\n\nimport { loadConfig } from '../config/loader.js';\nimport { createLogger } from '../utils/logger.js';\n\nconst log = createLogger('ExtensionMarketplace');\n\nconst DEFAULT_STORE_BASE = 'https://store.xopc.ai';\nconst CACHE_TTL_MS = 5 * 60 * 1000;\n\nexport interface RegistryEntry {\n id: string;\n name: string;\n description?: string;\n npmPackage: string;\n version?: string;\n categories?: string[];\n tags?: string[];\n verified?: boolean;\n homepage?: string;\n author?: string;\n}\n\nexport interface ExtensionRegistryFile {\n version: number;\n extensions: RegistryEntry[];\n}\n\nlet cache: { at: number; data: ExtensionRegistryFile } | null = null;\nlet lastStale: ExtensionRegistryFile | null = null;\n\n/** Resolved xopc-store base (same order as skills marketplace). */\nexport function getExtensionMarketplaceStoreBaseUrl(): string {\n return normalizeStoreBaseUrl();\n}\n\nfunction emptyRegistry(): ExtensionRegistryFile {\n return { version: 1, extensions: [] };\n}\n\nfunction normalizeStoreBaseUrl(): string {\n const env = process.env.XOPC_SKILLS_STORE_URL?.trim();\n if (env) {\n try {\n return new URL(env).toString().replace(/\\/$/, '');\n } catch {\n // fall through\n }\n }\n try {\n const fromCfg = loadConfig().gateway?.skillsStoreBaseUrl?.trim();\n if (fromCfg) {\n try {\n return new URL(fromCfg).toString().replace(/\\/$/, '');\n } catch {\n // fall through\n }\n }\n } catch {\n /* ignore config load edge cases */\n }\n return DEFAULT_STORE_BASE;\n}\n\nfunction titleCaseSlug(slug: string): string {\n return slug\n .split('-')\n .filter(Boolean)\n .map((s) => s.charAt(0).toUpperCase() + s.slice(1))\n .join(' ');\n}\n\nasync function fetchExtensionCatalogFromStore(): Promise<RegistryEntry[] | null> {\n const base = normalizeStoreBaseUrl();\n const listUrl = `${base}/api/v1/packages?type=extension&pageSize=200`;\n try {\n const res = await fetch(listUrl, { signal: AbortSignal.timeout(20_000) });\n if (!res.ok) {\n log.warn({ status: res.status, url: listUrl }, 'Store extension catalog request failed');\n return null;\n }\n const raw = (await res.json()) as {\n items?: Array<{\n name?: string;\n description?: string | null;\n latestVersion?: string;\n author?: { username?: string | null };\n }>;\n };\n const items = Array.isArray(raw.items) ? raw.items : [];\n const extensions: RegistryEntry[] = [];\n for (const it of items) {\n const name = typeof it.name === 'string' ? it.name.trim() : '';\n if (!name) continue;\n const author = it.author?.username ?? undefined;\n extensions.push({\n id: name,\n name: titleCaseSlug(name),\n description: typeof it.description === 'string' ? it.description : undefined,\n npmPackage: name,\n version: typeof it.latestVersion === 'string' ? it.latestVersion : undefined,\n author,\n verified: author === 'xopcai',\n });\n }\n return extensions.length > 0 ? extensions : null;\n } catch (err) {\n log.warn({ err, url: listUrl }, 'Store extension catalog fetch failed');\n return null;\n }\n}\n\nexport async function fetchRegistry(forceRefresh = false): Promise<ExtensionRegistryFile> {\n const now = Date.now();\n if (!forceRefresh && cache && now - cache.at < CACHE_TTL_MS) {\n return cache.data;\n }\n\n const storeBase = normalizeStoreBaseUrl();\n const fromStore = await fetchExtensionCatalogFromStore();\n if (fromStore && fromStore.length > 0) {\n const data: ExtensionRegistryFile = { version: 1, extensions: fromStore };\n lastStale = data;\n cache = { at: now, data };\n log.debug({ count: fromStore.length, storeBase }, 'Loaded extension catalog from xopc-store');\n return data;\n }\n\n log.warn({ storeBase }, 'Extension catalog from xopc-store was empty or unreachable');\n if (lastStale) {\n return lastStale;\n }\n return emptyRegistry();\n}\n\nfunction matchesKeyword(entry: RegistryEntry, keyword: string): boolean {\n const k = keyword.toLowerCase();\n const hay = [\n entry.id,\n entry.name,\n entry.description ?? '',\n ...(entry.categories ?? []),\n ...(entry.tags ?? []),\n entry.npmPackage,\n ]\n .join(' ')\n .toLowerCase();\n return hay.includes(k);\n}\n\nexport async function searchExtensions(keyword: string): Promise<RegistryEntry[]> {\n const reg = await fetchRegistry();\n const k = keyword.trim();\n if (!k) return reg.extensions;\n return reg.extensions.filter((e) => matchesKeyword(e, k));\n}\n\nexport async function findExtension(id: string): Promise<RegistryEntry | undefined> {\n const reg = await fetchRegistry();\n return reg.extensions.find((e) => e.id === id);\n}\n\nexport async function listExtensions(category?: string): Promise<RegistryEntry[]> {\n const reg = await fetchRegistry();\n if (!category?.trim()) return reg.extensions;\n const c = category.trim().toLowerCase();\n return reg.extensions.filter((e) =>\n (e.categories ?? []).some((x) => x.toLowerCase() === c),\n );\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"media-provider-contracts.js","names":[],"sources":["../../../src/extensions/media-provider-contracts.ts"],"sourcesContent":["/**\n * Media understanding (STT / image / video) extension contract validation.\n */\n\nimport { getMediaUnderstandingProvider } from '../media-understanding/registry.js';\n\nimport type { ExtensionLogger } from './types/core.js';\nimport type { ExtensionManifest } from './types/manifest.js';\n\nfunction normalizeId(id: string): string {\n return id.trim().toLowerCase();\n}\n\n/** Declared media understanding provider ids from manifest (top-level + contracts). */\nexport function declaredMediaUnderstandingProviderIds(manifest: ExtensionManifest): string[] {\n const ids = new Set<string>();\n for (const id of manifest.mediaUnderstandingProviders ?? []) {\n if (typeof id === 'string' && id.trim()) {\n ids.add(normalizeId(id));\n }\n }\n for (const id of manifest.contracts?.mediaUnderstandingProviders ?? []) {\n if (typeof id === 'string' && id.trim()) {\n ids.add(normalizeId(id));\n }\n }\n return [...ids];\n}\n\n/** Registered ids normalized for comparison (includes canonical plugin ids). */\nexport function normalizeRegisteredMediaUnderstandingProviderIds(\n registeredIds: readonly string[],\n): string[] {\n const normalized = new Set<string>();\n for (const id of registeredIds) {\n const trimmed = id.trim();\n if (!trimmed) continue;\n normalized.add(normalizeId(trimmed));\n const canonical = getMediaUnderstandingProvider(trimmed)?.id;\n if (canonical) {\n normalized.add(normalizeId(canonical));\n }\n }\n return [...normalized];\n}\n\n/**\n * Warn when a manifest declares media understanding contracts but the extension\n * did not register matching providers at load time.\n */\nexport function validateMediaUnderstandingProviderContracts(params: {\n extensionId: string;\n manifest: ExtensionManifest;\n registeredProviderIds: readonly string[];\n logger: ExtensionLogger;\n}): void {\n const declared = declaredMediaUnderstandingProviderIds(params.manifest);\n if (declared.length === 0) {\n return;\n }\n\n const registered = new Set(\n normalizeRegisteredMediaUnderstandingProviderIds(params.registeredProviderIds),\n );\n\n for (const id of declared) {\n const plugin = getMediaUnderstandingProvider(id);\n const canonical = plugin ? normalizeId(plugin.id) : id;\n if (!registered.has(canonical) && !registered.has(id)) {\n params.logger.warn(\n `Media understanding provider contract \"${id}\" declared in manifest but not registered by extension \"${params.extensionId}\"`,\n );\n }\n }\n}\n"],"mappings":";;;;;AASA,SAAS,YAAY,IAAoB;AACvC,QAAO,GAAG,MAAM,CAAC,aAAa;;;AAIhC,SAAgB,sCAAsC,UAAuC;CAC3F,MAAM,sBAAM,IAAI,KAAa;AAC7B,MAAK,MAAM,MAAM,SAAS,+BAA+B,EAAE,CACzD,KAAI,OAAO,OAAO,YAAY,GAAG,MAAM,CACrC,KAAI,IAAI,YAAY,GAAG,CAAC;AAG5B,MAAK,MAAM,MAAM,SAAS,WAAW,+BAA+B,EAAE,CACpE,KAAI,OAAO,OAAO,YAAY,GAAG,MAAM,CACrC,KAAI,IAAI,YAAY,GAAG,CAAC;AAG5B,QAAO,CAAC,GAAG,IAAI;;;AAIjB,SAAgB,iDACd,eACU;CACV,MAAM,6BAAa,IAAI,KAAa;AACpC,MAAK,MAAM,MAAM,eAAe;EAC9B,MAAM,UAAU,GAAG,MAAM;AACzB,MAAI,CAAC,QAAS;AACd,aAAW,IAAI,YAAY,QAAQ,CAAC;EACpC,MAAM,YAAY,8BAA8B,QAAQ,EAAE;AAC1D,MAAI,UACF,YAAW,IAAI,YAAY,UAAU,CAAC;;AAG1C,QAAO,CAAC,GAAG,WAAW;;;;;;AAOxB,SAAgB,4CAA4C,QAKnD;CACP,MAAM,WAAW,sCAAsC,OAAO,SAAS;AACvE,KAAI,SAAS,WAAW,EACtB;CAGF,MAAM,aAAa,IAAI,IACrB,iDAAiD,OAAO,sBAAsB,CAC/E;AAED,MAAK,MAAM,MAAM,UAAU;EACzB,MAAM,SAAS,8BAA8B,GAAG;EAChD,MAAM,YAAY,SAAS,YAAY,OAAO,GAAG,GAAG;AACpD,MAAI,CAAC,WAAW,IAAI,UAAU,IAAI,CAAC,WAAW,IAAI,GAAG,CACnD,QAAO,OAAO,KACZ,0CAA0C,GAAG,0DAA0D,OAAO,YAAY,GAC3H"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"normalize-manifest.js","names":[],"sources":["../../../src/extensions/normalize-manifest.ts"],"sourcesContent":["import type {\n ActivationDeclaration,\n ChatWidgetContribution,\n ChatWidgetMatch,\n CommandContribution,\n ContractDeclaration,\n EnginesDeclaration,\n ExtensionManifest,\n ChannelContributionDeclaration,\n ChannelActionDescriptor,\n ChannelConfigUiHint,\n ExtensionManifestCommand,\n ExtensionUiContributions,\n ExtensionUiManifest,\n ExtensionUiPermission,\n ModelSupportDeclaration,\n PageContribution,\n ProviderAuthChoice,\n SettingsPanelContribution,\n SetupDeclaration,\n SidebarPanelContribution,\n StatusBarItemContribution,\n} from './types/manifest.js';\nimport type { ExtensionKind } from './types/core.js';\n\nfunction isRecord(x: unknown): x is Record<string, unknown> {\n return typeof x === 'object' && x !== null && !Array.isArray(x);\n}\n\nfunction normalizeReload(raw: unknown): ExtensionManifest['reload'] {\n if (!isRecord(raw)) return undefined;\n const configPrefixes = Array.isArray(raw.configPrefixes)\n ? raw.configPrefixes.filter((x): x is string => typeof x === 'string')\n : undefined;\n const supportsHotReload =\n typeof raw.supportsHotReload === 'boolean' ? raw.supportsHotReload : undefined;\n if (!configPrefixes?.length && supportsHotReload === undefined) return undefined;\n return {\n ...(configPrefixes?.length ? { configPrefixes } : {}),\n ...(supportsHotReload !== undefined ? { supportsHotReload } : {}),\n };\n}\n\nfunction normalizeEngines(raw: unknown): EnginesDeclaration | undefined {\n if (!isRecord(raw)) return undefined;\n const xopc = typeof raw.xopc === 'string' && raw.xopc.length > 0 ? raw.xopc : undefined;\n const extensionApi =\n typeof raw.extensionApi === 'string' && raw.extensionApi.length > 0\n ? raw.extensionApi\n : undefined;\n const extensionUiApi =\n typeof raw.extensionUiApi === 'string' && raw.extensionUiApi.length > 0\n ? raw.extensionUiApi\n : undefined;\n if (!xopc && !extensionApi && !extensionUiApi) return undefined;\n return { xopc, extensionApi, extensionUiApi };\n}\n\nfunction normalizeManifestCommands(raw: unknown): ExtensionManifestCommand[] | undefined {\n if (!Array.isArray(raw)) return undefined;\n const out: ExtensionManifestCommand[] = [];\n for (const item of raw) {\n if (!isRecord(item)) continue;\n const name = typeof item.name === 'string' ? item.name.trim() : '';\n const description = typeof item.description === 'string' ? item.description : '';\n if (!name || !description) continue;\n const aliases = Array.isArray(item.aliases)\n ? item.aliases.filter((x): x is string => typeof x === 'string')\n : undefined;\n const scope = Array.isArray(item.scope)\n ? item.scope.filter(\n (x): x is 'global' | 'private' | 'group' =>\n x === 'global' || x === 'private' || x === 'group',\n )\n : undefined;\n const examples = Array.isArray(item.examples)\n ? item.examples.filter((x): x is string => typeof x === 'string')\n : undefined;\n out.push({\n name,\n description,\n ...(aliases?.length ? { aliases } : {}),\n ...(scope?.length ? { scope } : {}),\n ...(examples?.length ? { examples } : {}),\n });\n }\n return out.length > 0 ? out : undefined;\n}\n\nfunction normalizeChannelContributions(raw: unknown): Record<string, ChannelContributionDeclaration> | undefined {\n if (!isRecord(raw)) return undefined;\n const out: Record<string, ChannelContributionDeclaration> = {};\n for (const [id, value] of Object.entries(raw)) {\n if (!isRecord(value)) continue;\n const label = typeof value.label === 'string' && value.label.trim() ? value.label.trim() : '';\n if (!id.trim() || !label) continue;\n out[id.trim()] = {\n label,\n description: typeof value.description === 'string' ? value.description : undefined,\n docsPath: typeof value.docsPath === 'string' ? value.docsPath : undefined,\n order: typeof value.order === 'number' && Number.isFinite(value.order) ? value.order : undefined,\n configPath: typeof value.configPath === 'string' ? value.configPath : undefined,\n capabilities: isRecord(value.capabilities) ? value.capabilities : undefined,\n configSchema: isRecord(value.configSchema) ? value.configSchema : undefined,\n uiHints: normalizeChannelUiHints(value.uiHints),\n actions: normalizeChannelActions(value.actions),\n i18n: normalizeChannelContributionI18n(value.i18n),\n };\n }\n return Object.keys(out).length > 0 ? out : undefined;\n}\n\nfunction normalizeChannelContributionI18n(raw: unknown): ChannelContributionDeclaration['i18n'] {\n if (!isRecord(raw)) return undefined;\n const out: NonNullable<ChannelContributionDeclaration['i18n']> = {};\n for (const [locale, value] of Object.entries(raw)) {\n if (!locale.trim() || !isRecord(value)) continue;\n const entry = {\n label: typeof value.label === 'string' ? value.label : undefined,\n description: typeof value.description === 'string' ? value.description : undefined,\n configSchema: isRecord(value.configSchema) ? value.configSchema : undefined,\n uiHints: normalizeChannelUiHints(value.uiHints),\n actions: normalizeChannelActions(value.actions),\n };\n if (entry.label || entry.description || entry.configSchema || entry.uiHints || entry.actions) {\n out[locale.trim().toLowerCase().replace('_', '-')] = entry;\n }\n }\n return Object.keys(out).length > 0 ? out : undefined;\n}\n\nfunction normalizeChannelUiHints(raw: unknown): Record<string, ChannelConfigUiHint> | undefined {\n if (!isRecord(raw)) return undefined;\n const out: Record<string, ChannelConfigUiHint> = {};\n for (const [key, value] of Object.entries(raw)) {\n if (!key.trim() || !isRecord(value)) continue;\n out[key.trim()] = {\n label: typeof value.label === 'string' ? value.label : undefined,\n help: typeof value.help === 'string' ? value.help : undefined,\n tags: Array.isArray(value.tags) ? value.tags.filter((x): x is string => typeof x === 'string') : undefined,\n advanced: typeof value.advanced === 'boolean' ? value.advanced : undefined,\n sensitive: typeof value.sensitive === 'boolean' ? value.sensitive : undefined,\n placeholder: typeof value.placeholder === 'string' ? value.placeholder : undefined,\n itemTemplate: value.itemTemplate,\n };\n }\n return Object.keys(out).length > 0 ? out : undefined;\n}\n\nfunction normalizeChannelActions(raw: unknown): Record<string, ChannelActionDescriptor> | undefined {\n if (!isRecord(raw)) return undefined;\n const out: Record<string, ChannelActionDescriptor> = {};\n for (const [key, value] of Object.entries(raw)) {\n if (!key.trim() || !isRecord(value)) continue;\n const result = value.result;\n out[key.trim()] = {\n label: typeof value.label === 'string' ? value.label : undefined,\n description: typeof value.description === 'string' ? value.description : undefined,\n result:\n result === 'ok' || result === 'qr' || result === 'poll' || result === 'diagnostics' || result === 'form'\n ? result\n : undefined,\n schema: isRecord(value.schema) ? value.schema : undefined,\n };\n }\n return Object.keys(out).length > 0 ? out : undefined;\n}\n\n/**\n * Normalize raw JSON manifest into ExtensionManifest with stable optional fields.\n */\nexport function normalizeExtensionManifest(raw: Record<string, unknown>): ExtensionManifest {\n const id = String(raw.id ?? '');\n return {\n id,\n name: typeof raw.name === 'string' && raw.name.length > 0 ? raw.name : id,\n description: typeof raw.description === 'string' ? raw.description : undefined,\n version: typeof raw.version === 'string' ? raw.version : undefined,\n kind: raw.kind as ExtensionKind | undefined,\n main: typeof raw.main === 'string' ? raw.main : undefined,\n configSchema: isRecord(raw.configSchema) ? (raw.configSchema as Record<string, unknown>) : undefined,\n dependencies: isRecord(raw.dependencies) ? (raw.dependencies as Record<string, string>) : undefined,\n\n enabledByDefault: typeof raw.enabledByDefault === 'boolean' ? raw.enabledByDefault : undefined,\n\n providers: Array.isArray(raw.providers)\n ? raw.providers.filter((x): x is string => typeof x === 'string')\n : undefined,\n speechProviders: Array.isArray(raw.speechProviders)\n ? raw.speechProviders.filter((x): x is string => typeof x === 'string')\n : undefined,\n mediaUnderstandingProviders: Array.isArray(raw.mediaUnderstandingProviders)\n ? raw.mediaUnderstandingProviders.filter((x): x is string => typeof x === 'string')\n : undefined,\n providerAuthEnvVars: normalizeStringArrayMap(raw.providerAuthEnvVars),\n providerAuthChoices: normalizeProviderAuthChoices(raw.providerAuthChoices),\n modelSupport: normalizeModelSupport(raw.modelSupport),\n autoEnableWhenConfiguredProviders: Array.isArray(raw.autoEnableWhenConfiguredProviders)\n ? raw.autoEnableWhenConfiguredProviders.filter((x): x is string => typeof x === 'string')\n : undefined,\n\n channels: Array.isArray(raw.channels)\n ? raw.channels.filter((x): x is string => typeof x === 'string')\n : undefined,\n channelEnvVars: normalizeStringArrayMap(raw.channelEnvVars),\n channelContributions: normalizeChannelContributions(raw.channelContributions),\n\n activation: normalizeActivation(raw.activation),\n contracts: normalizeContracts(raw.contracts),\n setup: normalizeSetup(raw.setup),\n reload: normalizeReload(raw.reload),\n engines: normalizeEngines(raw.engines),\n commands: normalizeManifestCommands(raw.commands),\n ui: normalizeUiManifest(raw.ui),\n };\n}\n\nconst VALID_UI_PERMISSIONS = new Set<ExtensionUiPermission>([\n 'agent.send',\n 'agent.subscribe',\n 'session.read',\n 'session.write',\n 'config.read',\n 'config.write',\n 'storage',\n 'notification',\n 'clipboard',\n 'theme',\n 'workspace.read',\n 'workspace.write',\n]);\n\nexport function normalizeUiManifest(raw: unknown): ExtensionUiManifest | undefined {\n if (raw === undefined || raw === null) return undefined;\n if (!isRecord(raw)) return undefined;\n const main = typeof raw.main === 'string' && raw.main.length > 0 ? raw.main : undefined;\n const icon = typeof raw.icon === 'string' && raw.icon.length > 0 ? raw.icon : undefined;\n let permissions: ExtensionUiPermission[] | undefined;\n if (Array.isArray(raw.permissions)) {\n const p = raw.permissions.filter(\n (x): x is ExtensionUiPermission =>\n typeof x === 'string' && VALID_UI_PERMISSIONS.has(x as ExtensionUiPermission),\n );\n permissions = p.length ? p : undefined;\n }\n const contributions = normalizeUiContributions(raw.contributions);\n if (!main && !icon && !permissions && !contributions) return undefined;\n return {\n ...(main !== undefined ? { main } : {}),\n ...(icon !== undefined ? { icon } : {}),\n ...(permissions !== undefined ? { permissions } : {}),\n ...(contributions !== undefined ? { contributions } : {}),\n };\n}\n\nfunction normalizeUiContributions(raw: unknown): ExtensionUiContributions | undefined {\n if (!isRecord(raw)) return undefined;\n const sidebarPanels = normalizeSidebarPanels(raw.sidebarPanels);\n const settingsPanels = normalizeSettingsPanels(raw.settingsPanels);\n const chatWidgets = normalizeChatWidgets(raw.chatWidgets);\n const pages = normalizePages(raw.pages);\n const commands = normalizeCommands(raw.commands);\n const statusBarItems = normalizeStatusBarItems(raw.statusBarItems);\n const out: ExtensionUiContributions = {\n ...(sidebarPanels ? { sidebarPanels } : {}),\n ...(settingsPanels ? { settingsPanels } : {}),\n ...(chatWidgets ? { chatWidgets } : {}),\n ...(pages ? { pages } : {}),\n ...(commands ? { commands } : {}),\n ...(statusBarItems ? { statusBarItems } : {}),\n };\n return Object.keys(out).length ? out : undefined;\n}\n\nfunction normalizeSidebarPanels(raw: unknown): SidebarPanelContribution[] | undefined {\n if (!Array.isArray(raw)) return undefined;\n const out: SidebarPanelContribution[] = [];\n for (const item of raw) {\n if (!isRecord(item)) continue;\n const id = item.id;\n const title = item.title;\n const entrypoint = item.entrypoint;\n if (typeof id !== 'string' || typeof title !== 'string' || typeof entrypoint !== 'string') {\n continue;\n }\n out.push({\n id,\n title,\n entrypoint,\n icon: typeof item.icon === 'string' ? item.icon : undefined,\n defaultVisible: typeof item.defaultVisible === 'boolean' ? item.defaultVisible : undefined,\n when: typeof item.when === 'string' && item.when.length > 0 ? item.when : undefined,\n });\n }\n return out.length ? out : undefined;\n}\n\nfunction normalizeSettingsPanels(raw: unknown): SettingsPanelContribution[] | undefined {\n if (!Array.isArray(raw)) return undefined;\n const out: SettingsPanelContribution[] = [];\n for (const item of raw) {\n if (!isRecord(item)) continue;\n const id = item.id;\n const title = item.title;\n const entrypoint = item.entrypoint;\n if (typeof id !== 'string' || typeof title !== 'string' || typeof entrypoint !== 'string') {\n continue;\n }\n out.push({\n id,\n title,\n entrypoint,\n order: typeof item.order === 'number' ? item.order : undefined,\n });\n }\n return out.length ? out : undefined;\n}\n\nfunction normalizeChatWidgetMatch(raw: unknown): ChatWidgetMatch | undefined {\n if (!isRecord(raw)) return undefined;\n const toolName = typeof raw.toolName === 'string' ? raw.toolName : undefined;\n const contentType = typeof raw.contentType === 'string' ? raw.contentType : undefined;\n let metadata: Record<string, unknown> | undefined;\n if (isRecord(raw.metadata)) {\n metadata = { ...raw.metadata };\n }\n if (!toolName && !contentType && !metadata) return undefined;\n return { toolName, contentType, metadata };\n}\n\nfunction normalizeChatWidgets(raw: unknown): ChatWidgetContribution[] | undefined {\n if (!Array.isArray(raw)) return undefined;\n const out: ChatWidgetContribution[] = [];\n for (const item of raw) {\n if (!isRecord(item)) continue;\n const id = item.id;\n const title = item.title;\n const entrypoint = item.entrypoint;\n if (typeof id !== 'string' || typeof title !== 'string' || typeof entrypoint !== 'string') {\n continue;\n }\n const match = normalizeChatWidgetMatch(item.match);\n if (!match) continue;\n out.push({\n id,\n title,\n entrypoint,\n match,\n maxHeight: typeof item.maxHeight === 'number' ? item.maxHeight : undefined,\n interactive: typeof item.interactive === 'boolean' ? item.interactive : undefined,\n });\n }\n return out.length ? out : undefined;\n}\n\nfunction normalizePages(raw: unknown): PageContribution[] | undefined {\n if (!Array.isArray(raw)) return undefined;\n const out: PageContribution[] = [];\n for (const item of raw) {\n if (!isRecord(item)) continue;\n const id = item.id;\n const title = item.title;\n const path = item.path;\n const entrypoint = item.entrypoint;\n if (\n typeof id !== 'string' ||\n typeof title !== 'string' ||\n typeof path !== 'string' ||\n typeof entrypoint !== 'string'\n ) {\n continue;\n }\n out.push({\n id,\n title,\n path,\n entrypoint,\n showInNav: typeof item.showInNav === 'boolean' ? item.showInNav : undefined,\n navIcon: typeof item.navIcon === 'string' ? item.navIcon : undefined,\n when: typeof item.when === 'string' && item.when.length > 0 ? item.when : undefined,\n });\n }\n return out.length ? out : undefined;\n}\n\nfunction normalizeCommands(raw: unknown): CommandContribution[] | undefined {\n if (!Array.isArray(raw)) return undefined;\n const out: CommandContribution[] = [];\n for (const item of raw) {\n if (!isRecord(item)) continue;\n const id = item.id;\n const title = item.title;\n if (typeof id !== 'string' || typeof title !== 'string') continue;\n out.push({\n id,\n title,\n shortcut: typeof item.shortcut === 'string' ? item.shortcut : undefined,\n opensPanel: typeof item.opensPanel === 'string' ? item.opensPanel : undefined,\n chatAlias:\n typeof item.chatAlias === 'string' && item.chatAlias.length > 0 ? item.chatAlias : undefined,\n when: typeof item.when === 'string' && item.when.length > 0 ? item.when : undefined,\n });\n }\n return out.length ? out : undefined;\n}\n\nfunction normalizeStatusBarItems(raw: unknown): StatusBarItemContribution[] | undefined {\n if (!Array.isArray(raw)) return undefined;\n const out: StatusBarItemContribution[] = [];\n for (const item of raw) {\n if (!isRecord(item)) continue;\n const id = item.id;\n const entrypoint = item.entrypoint;\n if (typeof id !== 'string' || typeof entrypoint !== 'string') continue;\n const position = item.position;\n out.push({\n id,\n entrypoint,\n position: position === 'left' || position === 'right' ? position : undefined,\n width: typeof item.width === 'number' ? item.width : undefined,\n when: typeof item.when === 'string' && item.when.length > 0 ? item.when : undefined,\n });\n }\n return out.length ? out : undefined;\n}\n\nfunction normalizeStringArrayMap(\n raw: unknown,\n): Record<string, string[]> | undefined {\n if (!isRecord(raw)) return undefined;\n const out: Record<string, string[]> = {};\n for (const [k, v] of Object.entries(raw)) {\n if (Array.isArray(v)) {\n const arr = v.filter((x): x is string => typeof x === 'string');\n if (arr.length) out[k] = arr;\n }\n }\n return Object.keys(out).length ? out : undefined;\n}\n\nfunction normalizeProviderAuthChoices(raw: unknown): ProviderAuthChoice[] | undefined {\n if (!Array.isArray(raw)) return undefined;\n const out: ProviderAuthChoice[] = [];\n for (const item of raw) {\n if (!isRecord(item)) continue;\n const provider = item.provider;\n const method = item.method;\n const choiceId = item.choiceId;\n const choiceLabel = item.choiceLabel;\n if (\n typeof provider !== 'string' ||\n typeof choiceId !== 'string' ||\n typeof choiceLabel !== 'string' ||\n (method !== 'api-key' && method !== 'oauth' && method !== 'cli' && method !== 'env')\n ) {\n continue;\n }\n out.push({\n provider,\n method,\n choiceId,\n choiceLabel,\n choiceHint: typeof item.choiceHint === 'string' ? item.choiceHint : undefined,\n groupId: typeof item.groupId === 'string' ? item.groupId : undefined,\n groupLabel: typeof item.groupLabel === 'string' ? item.groupLabel : undefined,\n groupHint: typeof item.groupHint === 'string' ? item.groupHint : undefined,\n cliFlag: typeof item.cliFlag === 'string' ? item.cliFlag : undefined,\n cliOption: typeof item.cliOption === 'string' ? item.cliOption : undefined,\n cliDescription: typeof item.cliDescription === 'string' ? item.cliDescription : undefined,\n });\n }\n return out.length ? out : undefined;\n}\n\nfunction normalizeModelSupport(raw: unknown): ModelSupportDeclaration | undefined {\n if (!isRecord(raw)) return undefined;\n const modelPrefixes = Array.isArray(raw.modelPrefixes)\n ? raw.modelPrefixes.filter((x): x is string => typeof x === 'string')\n : undefined;\n const modelPatterns = Array.isArray(raw.modelPatterns)\n ? raw.modelPatterns.filter((x): x is string => typeof x === 'string')\n : undefined;\n if (!modelPrefixes?.length && !modelPatterns?.length) return undefined;\n return { modelPrefixes, modelPatterns };\n}\n\nfunction normalizeActivation(raw: unknown): ActivationDeclaration | undefined {\n if (!isRecord(raw)) return undefined;\n const onStartup = typeof raw.onStartup === 'boolean' ? raw.onStartup : undefined;\n const onProviders = Array.isArray(raw.onProviders)\n ? raw.onProviders.filter((x): x is string => typeof x === 'string')\n : undefined;\n const onCommands = Array.isArray(raw.onCommands)\n ? raw.onCommands.filter((x): x is string => typeof x === 'string')\n : undefined;\n const onChannels = Array.isArray(raw.onChannels)\n ? raw.onChannels.filter((x): x is string => typeof x === 'string')\n : undefined;\n const capRaw = raw.onCapabilities;\n const onCapabilities = Array.isArray(capRaw)\n ? capRaw.filter(\n (x): x is 'provider' | 'channel' | 'tool' | 'hook' =>\n x === 'provider' || x === 'channel' || x === 'tool' || x === 'hook',\n )\n : undefined;\n if (\n onStartup === undefined &&\n !onProviders?.length &&\n !onCommands?.length &&\n !onChannels?.length &&\n !onCapabilities?.length\n ) {\n return undefined;\n }\n return { onStartup, onProviders, onCommands, onChannels, onCapabilities };\n}\n\nfunction normalizeContracts(raw: unknown): ContractDeclaration | undefined {\n if (!isRecord(raw)) return undefined;\n const pick = (k: string) =>\n Array.isArray(raw[k]) ? raw[k].filter((x: unknown): x is string => typeof x === 'string') : undefined;\n const c: ContractDeclaration = {\n tools: pick('tools'),\n hooks: pick('hooks'),\n commands: pick('commands'),\n cliCommands: pick('cliCommands'),\n channels: pick('channels'),\n httpRoutes: pick('httpRoutes'),\n gatewayMethods: pick('gatewayMethods'),\n services: pick('services'),\n tui: pick('tui'),\n providers: pick('providers'),\n marketplaceAdapters: pick('marketplaceAdapters'),\n mediaUnderstandingProviders: pick('mediaUnderstandingProviders'),\n speechProviders: pick('speechProviders'),\n imageGenerationProviders: pick('imageGenerationProviders'),\n webSearchProviders: pick('webSearchProviders'),\n memoryProviders: pick('memoryProviders'),\n };\n return Object.values(c).some((value) => Array.isArray(value) && value.length > 0)\n ? c\n : undefined;\n}\n\nfunction normalizeSetup(raw: unknown): SetupDeclaration | undefined {\n if (!isRecord(raw)) return undefined;\n const requiresRuntime = typeof raw.requiresRuntime === 'boolean' ? raw.requiresRuntime : undefined;\n let providers: SetupDeclaration['providers'];\n if (Array.isArray(raw.providers)) {\n providers = [];\n for (const p of raw.providers) {\n if (!isRecord(p) || typeof p.id !== 'string') continue;\n providers.push({\n id: p.id,\n authMethods: Array.isArray(p.authMethods)\n ? p.authMethods.filter((x): x is string => typeof x === 'string')\n : undefined,\n envVars: Array.isArray(p.envVars)\n ? p.envVars.filter((x): x is string => typeof x === 'string')\n : undefined,\n });\n }\n if (providers.length === 0) providers = undefined;\n }\n if (!providers && requiresRuntime === undefined) return undefined;\n return { providers, requiresRuntime };\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"onboard-helpers.js","names":[],"sources":["../../../src/extensions/onboard-helpers.ts"],"sourcesContent":["/**\n * Onboarding helpers — manifest-only, no extension runtime load.\n */\n\nimport type { ManifestRegistry } from './manifest-registry.js';\nimport type { ProviderAuthChoice } from './types/manifest.js';\n\nexport interface OnboardProviderInfo {\n extensionId: string;\n providerId: string;\n extensionName: string;\n envConfigured: boolean;\n configuredEnvVar?: string;\n authChoices: ProviderAuthChoice[];\n modelPrefixes: string[];\n}\n\nexport interface OnboardChannelInfo {\n extensionId: string;\n channelId: string;\n extensionName: string;\n envConfigured: boolean;\n configuredEnvVar?: string;\n}\n\nexport function listOnboardProviders(\n registry: ManifestRegistry,\n env: NodeJS.ProcessEnv = process.env,\n): OnboardProviderInfo[] {\n const results: OnboardProviderInfo[] = [];\n\n for (const entry of registry.listProviderExtensions()) {\n const manifest = entry.manifest;\n const providers = manifest.providers || [];\n\n for (const providerId of providers) {\n const envVars = manifest.providerAuthEnvVars?.[providerId] || [];\n const configuredEnvVar = envVars.find((v) => !!env[v]);\n\n const authChoices = (manifest.providerAuthChoices || []).filter(\n (c) => c.provider === providerId,\n );\n\n results.push({\n extensionId: entry.id,\n providerId,\n extensionName: manifest.name || entry.id,\n envConfigured: !!configuredEnvVar,\n configuredEnvVar,\n authChoices,\n modelPrefixes: manifest.modelSupport?.modelPrefixes || [],\n });\n }\n }\n\n results.sort((a, b) => {\n if (a.envConfigured && !b.envConfigured) return -1;\n if (!a.envConfigured && b.envConfigured) return 1;\n return a.extensionName.localeCompare(b.extensionName);\n });\n\n return results;\n}\n\nexport function listOnboardChannels(\n registry: ManifestRegistry,\n env: NodeJS.ProcessEnv = process.env,\n): OnboardChannelInfo[] {\n const results: OnboardChannelInfo[] = [];\n\n for (const entry of registry.listChannelExtensions()) {\n const manifest = entry.manifest;\n const channels = manifest.channels || [];\n\n for (const channelId of channels) {\n const envVars = manifest.channelEnvVars?.[channelId] || [];\n const configuredEnvVar = envVars.find((v) => !!env[v]);\n\n results.push({\n extensionId: entry.id,\n channelId,\n extensionName: manifest.name || entry.id,\n envConfigured: !!configuredEnvVar,\n configuredEnvVar,\n });\n }\n }\n\n results.sort((a, b) => {\n if (a.envConfigured && !b.envConfigured) return -1;\n if (!a.envConfigured && b.envConfigured) return 1;\n return a.extensionName.localeCompare(b.extensionName);\n });\n\n return results;\n}\n\nexport function resolveProviderForModel(\n registry: ManifestRegistry,\n modelId: string,\n): { extensionId: string; providerId: string } | undefined {\n const entry = registry.findByModelId(modelId);\n if (!entry) return undefined;\n\n const providers = entry.manifest.providers;\n if (!providers || providers.length === 0) return undefined;\n\n return {\n extensionId: entry.id,\n providerId: providers[0],\n };\n}\n"],"mappings":";AAyBA,SAAgB,qBACd,UACA,MAAyB,QAAQ,KACV;CACvB,MAAM,UAAiC,EAAE;AAEzC,MAAK,MAAM,SAAS,SAAS,wBAAwB,EAAE;EACrD,MAAM,WAAW,MAAM;EACvB,MAAM,YAAY,SAAS,aAAa,EAAE;AAE1C,OAAK,MAAM,cAAc,WAAW;GAElC,MAAM,oBADU,SAAS,sBAAsB,eAAe,EAAE,EAC/B,MAAM,MAAM,CAAC,CAAC,IAAI,GAAG;GAEtD,MAAM,eAAe,SAAS,uBAAuB,EAAE,EAAE,QACtD,MAAM,EAAE,aAAa,WACvB;AAED,WAAQ,KAAK;IACX,aAAa,MAAM;IACnB;IACA,eAAe,SAAS,QAAQ,MAAM;IACtC,eAAe,CAAC,CAAC;IACjB;IACA;IACA,eAAe,SAAS,cAAc,iBAAiB,EAAE;IAC1D,CAAC;;;AAIN,SAAQ,MAAM,GAAG,MAAM;AACrB,MAAI,EAAE,iBAAiB,CAAC,EAAE,cAAe,QAAO;AAChD,MAAI,CAAC,EAAE,iBAAiB,EAAE,cAAe,QAAO;AAChD,SAAO,EAAE,cAAc,cAAc,EAAE,cAAc;GACrD;AAEF,QAAO;;AAGT,SAAgB,oBACd,UACA,MAAyB,QAAQ,KACX;CACtB,MAAM,UAAgC,EAAE;AAExC,MAAK,MAAM,SAAS,SAAS,uBAAuB,EAAE;EACpD,MAAM,WAAW,MAAM;EACvB,MAAM,WAAW,SAAS,YAAY,EAAE;AAExC,OAAK,MAAM,aAAa,UAAU;GAEhC,MAAM,oBADU,SAAS,iBAAiB,cAAc,EAAE,EACzB,MAAM,MAAM,CAAC,CAAC,IAAI,GAAG;AAEtD,WAAQ,KAAK;IACX,aAAa,MAAM;IACnB;IACA,eAAe,SAAS,QAAQ,MAAM;IACtC,eAAe,CAAC,CAAC;IACjB;IACD,CAAC;;;AAIN,SAAQ,MAAM,GAAG,MAAM;AACrB,MAAI,EAAE,iBAAiB,CAAC,EAAE,cAAe,QAAO;AAChD,MAAI,CAAC,EAAE,iBAAiB,EAAE,cAAe,QAAO;AAChD,SAAO,EAAE,cAAc,cAAc,EAAE,cAAc;GACrD;AAEF,QAAO;;AAGT,SAAgB,wBACd,UACA,SACyD;CACzD,MAAM,QAAQ,SAAS,cAAc,QAAQ;AAC7C,KAAI,CAAC,MAAO,QAAO,KAAA;CAEnB,MAAM,YAAY,MAAM,SAAS;AACjC,KAAI,CAAC,aAAa,UAAU,WAAW,EAAG,QAAO,KAAA;AAEjD,QAAO;EACL,aAAa,MAAM;EACnB,YAAY,UAAU;EACvB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"package-contract.js","names":[],"sources":["../../../src/extensions/package-contract.ts"],"sourcesContent":["export const PACKAGE_DEPENDENCY_SECTIONS = [\n 'dependencies',\n 'devDependencies',\n 'peerDependencies',\n 'optionalDependencies',\n] as const;\n\nexport interface PackageDependencyIssue {\n section: (typeof PACKAGE_DEPENDENCY_SECTIONS)[number];\n name: string;\n version: string;\n code: 'workspace_dependency' | 'host_sdk_runtime_dependency' | 'ui_sdk_runtime_dependency';\n message: string;\n}\n\nfunction isRecord(x: unknown): x is Record<string, unknown> {\n return typeof x === 'object' && x !== null && !Array.isArray(x);\n}\n\nfunction dependencyVersion(pkg: Record<string, unknown>, section: string, name: string): string | undefined {\n const deps = pkg[section];\n if (!isRecord(deps)) return undefined;\n const value = deps[name];\n return typeof value === 'string' ? value : undefined;\n}\n\nexport function collectExtensionPackageDependencyIssues(\n pkg: Record<string, unknown>,\n options: { strictRuntimeSdkDeps?: boolean } = {},\n): PackageDependencyIssue[] {\n const issues: PackageDependencyIssue[] = [];\n for (const section of PACKAGE_DEPENDENCY_SECTIONS) {\n const deps = pkg[section];\n if (!isRecord(deps)) continue;\n for (const [name, rawVersion] of Object.entries(deps)) {\n if (typeof rawVersion !== 'string') continue;\n if (rawVersion.startsWith('workspace:')) {\n issues.push({\n section,\n name,\n version: rawVersion,\n code: 'workspace_dependency',\n message: `${section}.${name} uses ${rawVersion}; published extensions must not depend on workspace protocols.`,\n });\n }\n }\n }\n\n if (options.strictRuntimeSdkDeps) {\n const hostRuntime = dependencyVersion(pkg, 'dependencies', '@xopcai/xopc');\n if (hostRuntime) {\n issues.push({\n section: 'dependencies',\n name: '@xopcai/xopc',\n version: hostRuntime,\n code: 'host_sdk_runtime_dependency',\n message:\n '@xopcai/xopc must not be a runtime dependency of an extension package; use devDependencies for types and optional peerDependencies for host compatibility.',\n });\n }\n const uiRuntime = dependencyVersion(pkg, 'dependencies', '@xopcai/extension-ui-sdk');\n if (uiRuntime) {\n issues.push({\n section: 'dependencies',\n name: '@xopcai/extension-ui-sdk',\n version: uiRuntime,\n code: 'ui_sdk_runtime_dependency',\n message:\n '@xopcai/extension-ui-sdk should be bundled into static UI assets and kept in devDependencies, not runtime dependencies.',\n });\n }\n }\n\n return issues;\n}\n\nexport function hasWorkspaceProtocolDependencies(pkg: Record<string, unknown>): boolean {\n return collectExtensionPackageDependencyIssues(pkg).some((x) => x.code === 'workspace_dependency');\n}\n"],"mappings":";AAAA,MAAa,8BAA8B;CACzC;CACA;CACA;CACA;CACD;AAUD,SAAS,SAAS,GAA0C;AAC1D,QAAO,OAAO,MAAM,YAAY,MAAM,QAAQ,CAAC,MAAM,QAAQ,EAAE;;AAGjE,SAAS,kBAAkB,KAA8B,SAAiB,MAAkC;CAC1G,MAAM,OAAO,IAAI;AACjB,KAAI,CAAC,SAAS,KAAK,CAAE,QAAO,KAAA;CAC5B,MAAM,QAAQ,KAAK;AACnB,QAAO,OAAO,UAAU,WAAW,QAAQ,KAAA;;AAG7C,SAAgB,wCACd,KACA,UAA8C,EAAE,EACtB;CAC1B,MAAM,SAAmC,EAAE;AAC3C,MAAK,MAAM,WAAW,6BAA6B;EACjD,MAAM,OAAO,IAAI;AACjB,MAAI,CAAC,SAAS,KAAK,CAAE;AACrB,OAAK,MAAM,CAAC,MAAM,eAAe,OAAO,QAAQ,KAAK,EAAE;AACrD,OAAI,OAAO,eAAe,SAAU;AACpC,OAAI,WAAW,WAAW,aAAa,CACrC,QAAO,KAAK;IACV;IACA;IACA,SAAS;IACT,MAAM;IACN,SAAS,GAAG,QAAQ,GAAG,KAAK,QAAQ,WAAW;IAChD,CAAC;;;AAKR,KAAI,QAAQ,sBAAsB;EAChC,MAAM,cAAc,kBAAkB,KAAK,gBAAgB,eAAe;AAC1E,MAAI,YACF,QAAO,KAAK;GACV,SAAS;GACT,MAAM;GACN,SAAS;GACT,MAAM;GACN,SACE;GACH,CAAC;EAEJ,MAAM,YAAY,kBAAkB,KAAK,gBAAgB,2BAA2B;AACpF,MAAI,UACF,QAAO,KAAK;GACV,SAAS;GACT,MAAM;GACN,SAAS;GACT,MAAM;GACN,SACE;GACH,CAAC;;AAIN,QAAO;;AAGT,SAAgB,iCAAiC,KAAuC;AACtF,QAAO,wCAAwC,IAAI,CAAC,MAAM,MAAM,EAAE,SAAS,uBAAuB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"channel-entry.js","names":[],"sources":["../../../../src/extensions/sdk/channel-entry.ts"],"sourcesContent":["/**\n * Channel plugin entry helper for extensions.\n */\n\nimport type { ExtensionApi } from '../types/index.js';\nimport type { ChannelPlugin } from '../../channels/plugin-types.js';\n\nexport interface DefineChannelPluginEntryOptions<TPlugin extends ChannelPlugin> {\n id: string;\n name: string;\n description?: string;\n plugin: TPlugin;\n setRuntime?: (runtime: unknown) => void;\n registerFull?: (api: ExtensionApi) => void;\n}\n\nexport function defineChannelPluginEntry<TPlugin extends ChannelPlugin>(\n options: DefineChannelPluginEntryOptions<TPlugin>,\n) {\n return {\n id: options.id,\n name: options.name,\n description: options.description,\n register(api: ExtensionApi) {\n options.setRuntime?.(api as unknown);\n api.registerChannel({ plugin: options.plugin });\n options.registerFull?.(api);\n },\n };\n}\n"],"mappings":";AAgBA,SAAgB,yBACd,SACA;AACA,QAAO;EACL,IAAI,QAAQ;EACZ,MAAM,QAAQ;EACd,aAAa,QAAQ;EACrB,SAAS,KAAmB;AAC1B,WAAQ,aAAa,IAAe;AACpC,OAAI,gBAAgB,EAAE,QAAQ,QAAQ,QAAQ,CAAC;AAC/C,WAAQ,eAAe,IAAI;;EAE9B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"channel-helpers.js","names":[],"sources":["../../../../src/extensions/sdk/channel-helpers.ts"],"sourcesContent":["import type { Command } from 'commander';\nimport type { ExtensionRegistry } from '../types/index.js';\n\n/**\n * Apply all `registerCli` factories collected on the registry to a Commander program.\n */\nexport function registerExtensionCliProgram(program: Command, registry: ExtensionRegistry): void {\n for (const reg of registry.getCliRegistrations()) {\n reg.factory({ program });\n }\n}\n"],"mappings":";;;;AAMA,SAAgB,4BAA4B,SAAkB,UAAmC;AAC/F,MAAK,MAAM,OAAO,SAAS,qBAAqB,CAC9C,KAAI,QAAQ,EAAE,SAAS,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../src/extensions/sdk/index.ts"],"sourcesContent":["/**\n * xopc Extension SDK\n * \n * Official SDK for developing xopc extensions.\n * Import types and utilities from this module:\n * \n * @example\n * import type { ExtensionApi, ExtensionDefinition } from '@xopcai/xopc/extension-sdk';\n */\n\n// ============================================================================\n// Core extension types\n// ============================================================================\n\nexport type {\n ExtensionDefinition,\n ExtensionModule,\n ExtensionKind,\n ExtensionApi,\n ExtensionLogger,\n ExtensionManifest,\n ExtensionRecord,\n ExtensionRegistry,\n ResolvedExtensionConfig,\n ExtensionRuntime,\n ExtensionCliRegistration,\n} from '../types/index.js';\n\n// ============================================================================\n// Tools (re-exported from @earendil-works/pi-agent-core)\n// ============================================================================\n\nexport type {\n AgentTool,\n AgentToolResult,\n AgentToolUpdateCallback,\n ToolExecutionStartEvent,\n ToolExecutionUpdateEvent,\n ToolExecutionEndEvent,\n} from '../types/index.js';\n\n// ============================================================================\n// Hooks ( Strongly Typed)\n// ============================================================================\n\nexport type {\n ExtensionHookEvent,\n ExtensionHookHandler,\n HookOptions,\n HookAgentContext,\n AgentMessage,\n ContextEvent,\n ContextResult,\n InputEvent,\n InputResult,\n TurnEvent,\n TurnResult,\n // New hook types\n HookHandlerMap,\n HookExecutionMode,\n // Note: HOOK_EXECUTION_MODES is exported as value below\n // LLM observation hooks\n HookBeforeModelResolveEvent,\n HookBeforeModelResolveResult,\n HookBeforePromptBuildEvent,\n HookBeforePromptBuildResult,\n HookLlmInputEvent,\n HookLlmOutputEvent,\n // Inbound claim\n HookInboundClaimEvent,\n HookInboundClaimResult,\n // Reset hook\n HookBeforeResetEvent,\n HookBeforeResetResult,\n // Message write hook\n HookBeforeMessageWriteEvent,\n HookBeforeMessageWriteResult,\n // Turn hooks\n HookTurnStartEvent,\n HookTurnEndEvent,\n // Tool execution hooks\n HookToolExecutionStartEvent,\n HookToolExecutionUpdateEvent,\n HookToolExecutionEndEvent,\n // Existing context types\n HookContext,\n BeforeAgentStartContext,\n BeforeAgentStartResult,\n AgentEndContext,\n WebchatTurnCompleteEvent,\n BeforeCompactionContext,\n AfterCompactionContext,\n MessageReceivedContext,\n MessageSendingContext,\n MessageSendingResult,\n MessageSentContext,\n BeforeToolCallContext,\n BeforeToolCallResult,\n AfterToolCallContext,\n SessionStartContext,\n SessionEndContext,\n GatewayStartContext,\n GatewayStopContext,\n} from '../types/index.js';\n\n// ============================================================================\n// Typed Event Bus\n// ============================================================================\n\nexport type {\n EventMap,\n RequestMap,\n EventHandler,\n EventHandlerMeta,\n RequestHandler,\n RequestHandlerMeta,\n WildcardEventHandler,\n WildcardHandlerMeta,\n TypedEventBusOptions,\n RequestOptions,\n} from '../types/index.js';\n\n// ============================================================================\n// Provider Types\n// ============================================================================\n\nexport type {\n ProviderPlugin,\n ProviderModelDefinition,\n ProviderCapabilities,\n ProviderStreamParams,\n ProviderStreamChunk,\n ProviderCompleteParams,\n ProviderResponse,\n ProviderRegistry,\n BUILTIN_PROVIDERS,\n BuiltinProviderId,\n} from '../types/index.js';\n\n// ============================================================================\n// Advanced Features\n// ============================================================================\n\nexport type {\n ProviderConfig,\n ModelConfig,\n OAuthConfig,\n OAuthCallbacks,\n OAuthCredentials,\n FlagConfig,\n FlagValue,\n ShortcutConfig,\n ShortcutHandler,\n} from '../types/index.js';\n\nexport type {\n TuiExtensionHostContract,\n TuiExtensionRegistrar,\n TuiAutocompleteProvider,\n TuiAutocompleteSuggestion,\n TuiToolRenderer,\n TuiToolRenderContext,\n TuiSlashCommandHandler,\n TuiNotifyLevel,\n} from '../types/index.js';\n\n// ============================================================================\n// Security Types\n// ============================================================================\n\nexport type {\n SafetyCheckResult,\n SecurityConfig,\n ExtensionSourceOrigin,\n ProvenanceInfo,\n} from '../security.js';\n\n// ============================================================================\n// Slot Types\n// ============================================================================\n\nexport type {\n SlotKey,\n SlotClaim,\n SlotConfig,\n} from '../slots.js';\n\n// ============================================================================\n// Diagnostics Types\n// ============================================================================\n\nexport type {\n DiagnosticLevel,\n ExtensionDiagnostic,\n ExtensionLoaderCache,\n} from '../diagnostics.js';\n\n// ============================================================================\n// Channels (ChannelPlugin registry)\n// ============================================================================\n\nexport type {\n ChannelPlugin,\n ChannelPluginInitOptions,\n ChannelPluginStartOptions,\n} from '../../channels/plugin-types.js';\n\n// ============================================================================\n// HTTP\n// ============================================================================\n\nexport type {\n HttpRequestHandler,\n HttpRequest,\n HttpResponse,\n} from '../types/index.js';\n\n// ============================================================================\n// Commands\n// ============================================================================\n\nexport type {\n ExtensionCommand,\n ExtensionCommandHandler,\n ExtensionCommandContext,\n ExtensionCommandResult,\n ExtensionReloadHandler,\n ExtensionReloadResult,\n ExtensionReloadRegistration,\n} from '../types/index.js';\n\n// ============================================================================\n// Services\n// ============================================================================\n\nexport type {\n ExtensionService,\n} from '../types/index.js';\n\n// ============================================================================\n// Gateway\n// ============================================================================\n\nexport type {\n GatewayMethodHandler,\n} from '../types/index.js';\n\n// ============================================================================\n// Export Classes\n// ============================================================================\n\nexport { TypedEventBus } from '../typed-event-bus.js';\nexport { ExtensionRegistryImpl } from '../loader.js';\nexport { ProviderPluginRegistry, getProviderRegistry } from '../../providers/plugin-registry.js';\nexport { SlotRegistry, getSlotRegistry, registerSlotType } from '../slots.js';\nexport { HOOK_EXECUTION_MODES } from '../types/hooks.js';\n\nexport { defineChannelPluginEntry } from './channel-entry.js';\nexport { registerExtensionCliProgram } from './channel-helpers.js';\n\n// ============================================================================\n// Export Hook Runner and Utilities\n// ============================================================================\n\nexport { \n ExtensionHookRunner, \n createHookContext, \n isHookEvent \n} from '../hooks.js';\n\n// ============================================================================\n// Security Utilities\n// ============================================================================\n\nexport {\n checkExtensionPathSafety,\n checkExtensionDirSafety,\n isExtensionAllowed,\n provenanceTracker,\n logSecurityIssue,\n DEFAULT_SECURITY_CONFIG,\n} from '../security.js';\n\n// ============================================================================\n// Diagnostics Utilities\n// ============================================================================\n\nexport {\n getExtensionCache,\n getExtensionDiagnostics,\n ExtensionLoaderCacheImpl,\n ExtensionDiagnostics,\n} from '../diagnostics.js';\n\n// ============================================================================\n// Config\n// ============================================================================\n\nexport type { Config } from '../../config/config-surface.js';\n\n// Public subpath barrels under `@xopcai/xopc/extension-sdk/<name>`.\nexport { lazyModule, lazyFunction } from './lazy.js';\n\nexport { createMockExtensionApi, createTestGateway } from './testing.js';\nexport type {\n MockExtensionApi,\n MockExtensionApiOptions,\n TestGateway,\n} from './testing.js';\n"],"mappings":";;;;;;;;;;;;;;sBA6PiG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"lazy.js","names":[],"sources":["../../../../src/extensions/sdk/lazy.ts"],"sourcesContent":["/**\n * Lazy dynamic import helpers for extension entrypoints.\n */\n\nexport function lazyModule<T>(loader: () => Promise<T>): () => Promise<T> {\n let cached: T | undefined;\n let loading: Promise<T> | undefined;\n\n return async () => {\n if (cached) return cached;\n\n if (!loading) {\n loading = loader().then((module) => {\n cached = module;\n loading = undefined;\n return module;\n });\n }\n\n return loading;\n };\n}\n\nexport function lazyFunction<TModule, TArgs extends unknown[], TReturn>(\n loader: () => Promise<TModule>,\n selector: (module: TModule) => (...args: TArgs) => TReturn,\n): (...args: TArgs) => Promise<TReturn> {\n const load = lazyModule(loader);\n\n return async (...args: TArgs) => {\n const module = await load();\n const fn = selector(module);\n return fn(...args);\n };\n}\n"],"mappings":";;;;AAIA,SAAgB,WAAc,QAA4C;CACxE,IAAI;CACJ,IAAI;AAEJ,QAAO,YAAY;AACjB,MAAI,OAAQ,QAAO;AAEnB,MAAI,CAAC,QACH,WAAU,QAAQ,CAAC,MAAM,WAAW;AAClC,YAAS;AACT,aAAU,KAAA;AACV,UAAO;IACP;AAGJ,SAAO;;;AAIX,SAAgB,aACd,QACA,UACsC;CACtC,MAAM,OAAO,WAAW,OAAO;AAE/B,QAAO,OAAO,GAAG,SAAgB;AAG/B,SADW,SAAS,MADC,MAAM,CAElB,CAAC,GAAG,KAAK"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"testing.js","names":[],"sources":["../../../../src/extensions/sdk/testing.ts"],"sourcesContent":["/**\n * Extension testing helpers (Phase 2): mock API + minimal HTTP gateway fixture.\n */\n\nimport type { Command } from 'commander';\nimport { EventEmitter } from 'node:events';\nimport { once } from 'node:events';\nimport type { AddressInfo } from 'node:net';\n\nimport type { AgentTool } from '@earendil-works/pi-agent-core';\n\nimport { Hono } from 'hono';\nimport { serve } from '@hono/node-server';\nimport type { ServerType } from '@hono/node-server';\n\nimport type { ChannelPlugin } from '../../channels/plugin-types.js';\nimport type { Config } from '../../config/config-surface.js';\nimport type { Migration } from '../../migrations/types.js';\nimport type {\n ExtensionApi,\n ExtensionCommand,\n ExtensionCommandContext,\n ExtensionCommandHandler,\n ExtensionLogger,\n ExtensionReloadHandler,\n ExtensionRuntime,\n ExtensionService,\n GatewayMethodHandler,\n HttpRequestHandler,\n} from '../types/core.js';\nimport type { FlagConfig, FlagValue, ShortcutConfig } from '../types/registration.js';\nimport type {\n ExtensionHookEvent,\n ExtensionHookHandler,\n HookHandlerMap,\n HookOptions,\n} from '../types/hooks.js';\nimport type { CommandContribution } from '../types/manifest.js';\nimport type { TuiExtensionRegistrar } from '../types/tui.js';\nimport { TypedEventBus } from '../typed-event-bus.js';\n\nexport interface MockExtensionApiOptions {\n id?: string;\n name?: string;\n version?: string;\n source?: string;\n extensionConfig?: Record<string, unknown>;\n config?: Partial<Config>;\n logger?: ExtensionLogger;\n /** Pretend manifest `ui.contributions.commands` for `onCommand` tests. */\n manifestCommands?: CommandContribution[];\n}\n\nconst noopLogger: ExtensionLogger = {\n debug: () => {},\n info: () => {},\n warn: () => {},\n error: () => {},\n};\n\nexport interface MockExtensionApi extends ExtensionApi {\n getRegisteredTools(): AgentTool[];\n getRegisteredHooks(): Array<{ event: ExtensionHookEvent; handler: unknown }>;\n getRegisteredCommands(): ExtensionCommand[];\n getRegisteredHttpRoutes(): Array<{ path: string; handler: HttpRequestHandler }>;\n getRegisteredServices(): ExtensionService[];\n getRegisteredGatewayMethods(): Array<{ method: string; handler: GatewayMethodHandler }>;\n getRegisteredChannelPlugins(): ChannelPlugin[];\n getRegisteredReloadHandlers(): ExtensionReloadHandler[];\n getRegisteredMigrations(): Migration[];\n getEmittedEvents(): Array<{ event: string; data: unknown }>;\n}\n\nexport function createMockExtensionApi(options: MockExtensionApiOptions = {}): MockExtensionApi {\n return new MockExtensionApiImpl(options);\n}\n\nclass MockExtensionApiImpl implements MockExtensionApi {\n readonly id: string;\n readonly name: string;\n readonly version: string | undefined;\n readonly source: string;\n readonly config: Config;\n readonly extensionConfig: Record<string, unknown>;\n readonly logger: ExtensionLogger;\n readonly runtime: ExtensionRuntime;\n readonly events: TypedEventBus;\n\n private readonly _tools: AgentTool[] = [];\n private readonly _hooks: Array<{ event: ExtensionHookEvent; handler: unknown }> = [];\n private readonly _commands: ExtensionCommand[] = [];\n private readonly _http: Array<{ path: string; handler: HttpRequestHandler }> = [];\n private readonly _services: ExtensionService[] = [];\n private readonly _gw: Array<{ method: string; handler: GatewayMethodHandler }> = [];\n private readonly _channels: ChannelPlugin[] = [];\n private readonly _reload: ExtensionReloadHandler[] = [];\n private readonly _migrations: Migration[] = [];\n private readonly _emitted: Array<{ event: string; data: unknown }> = [];\n private readonly _bus = new EventEmitter();\n private readonly _manifestCommands = new Map<string, CommandContribution>();\n\n constructor(opts: MockExtensionApiOptions) {\n this.id = opts.id ?? 'test-extension';\n this.name = opts.name ?? 'Test Extension';\n this.version = opts.version;\n this.source = opts.source ?? '/test';\n this.extensionConfig = opts.extensionConfig ?? {};\n this.config = (opts.config ?? {}) as Config;\n this.logger = opts.logger ?? noopLogger;\n this.runtime = { config: this.config, log: this.logger };\n this.events = new TypedEventBus({ logger: this.logger });\n if (opts.manifestCommands?.length) {\n for (const c of opts.manifestCommands) {\n this._manifestCommands.set(c.id, c);\n }\n }\n }\n\n _setManifestCommands(commands: CommandContribution[]): void {\n this._manifestCommands.clear();\n for (const c of commands) {\n this._manifestCommands.set(c.id, c);\n }\n }\n\n getRegisteredTools(): AgentTool[] {\n return [...this._tools];\n }\n getRegisteredHooks(): Array<{ event: ExtensionHookEvent; handler: unknown }> {\n return [...this._hooks];\n }\n getRegisteredCommands(): ExtensionCommand[] {\n return [...this._commands];\n }\n getRegisteredHttpRoutes(): Array<{ path: string; handler: HttpRequestHandler }> {\n return [...this._http];\n }\n getRegisteredServices(): ExtensionService[] {\n return [...this._services];\n }\n getRegisteredGatewayMethods(): Array<{ method: string; handler: GatewayMethodHandler }> {\n return [...this._gw];\n }\n getRegisteredChannelPlugins(): ChannelPlugin[] {\n return [...this._channels];\n }\n getRegisteredReloadHandlers(): ExtensionReloadHandler[] {\n return [...this._reload];\n }\n getRegisteredMigrations(): Migration[] {\n return [...this._migrations];\n }\n getEmittedEvents(): Array<{ event: string; data: unknown }> {\n return [...this._emitted];\n }\n\n registerTool(tool: AgentTool): void {\n this._tools.push(tool);\n }\n\n registerHook(\n event: ExtensionHookEvent,\n handler: ExtensionHookHandler,\n _opts?: HookOptions,\n ): void {\n this._hooks.push({ event, handler });\n }\n\n onHook<K extends ExtensionHookEvent>(_hookName: K, _handler: HookHandlerMap[K]): void {\n /* optional for tests */\n }\n\n registerChannel(registration: { plugin: ChannelPlugin }): void {\n this._channels.push(registration.plugin);\n }\n\n registerHttpRoute(path: string, handler: HttpRequestHandler): void {\n this._http.push({ path, handler });\n }\n\n registerCommand(command: ExtensionCommand): void {\n this._commands.push(command);\n }\n\n onCommand(commandId: string, handler: ExtensionCommandHandler): void {\n const meta = this._manifestCommands.get(commandId);\n if (!meta) {\n const name = commandId.includes('.')\n ? (commandId.split('.').pop() ?? commandId).trim()\n : commandId;\n this.registerCommand({\n name: name || commandId,\n description: commandId,\n handler,\n });\n return;\n }\n let name: string;\n if (meta.chatAlias?.trim()) {\n name = meta.chatAlias.trim().replace(/^\\//, '');\n } else {\n name = meta.id.includes('.') ? (meta.id.split('.').pop() ?? meta.id) : meta.id;\n }\n if (!name) name = meta.id;\n this.registerCommand({ name, description: meta.title, handler });\n }\n\n registerReload(handler: ExtensionReloadHandler): void {\n this._reload.push(handler);\n }\n\n registerMigration(migration: Migration): void {\n this._migrations.push(migration);\n }\n\n registerService(service: ExtensionService): void {\n this._services.push(service);\n }\n\n registerGatewayMethod(method: string, handler: GatewayMethodHandler): void {\n this._gw.push({ method, handler });\n }\n\n registerCli(_factory: (ctx: { program: Command }) => void, _opts?: { commands: string[] }): void {\n /* noop */\n }\n\n resolvePath(input: string): string {\n const base = this.source.replace(/\\/$/, '');\n const p = input.replace(/^\\//, '');\n return `${base}/${p}`;\n }\n\n emit(event: string, data: unknown): void {\n this._emitted.push({ event, data });\n this._bus.emit(event, data);\n }\n\n on(event: string, handler: (data: unknown) => void): void {\n this._bus.on(event, handler);\n }\n\n off(event: string, handler: (data: unknown) => void): void {\n this._bus.off(event, handler);\n }\n\n registerProvider(_plugin: unknown): void {\n /* noop */\n }\n\n registerProviderPlugin(_plugin: unknown): void {\n /* noop */\n }\n\n registerSpeechProvider(_plugin: import('../../voice/tts/speech-provider-types.js').SpeechProviderPlugin): void {\n /* noop */\n }\n\n registerMediaUnderstandingProvider(\n _plugin: import('../../media-understanding/types.js').MediaUnderstandingProvider,\n ): void {\n /* noop */\n }\n\n registerMarketplaceAdapter(_registration: {\n adapter: unknown;\n displayName?: string;\n }): void {\n /* noop */\n }\n\n registerFlag(_name: string, _config: FlagConfig): void {\n /* noop */\n }\n\n getFlag(_name: string): FlagValue {\n return undefined;\n }\n\n registerShortcut(_key: string, _config: ShortcutConfig): void {\n /* noop */\n }\n\n registerTui(_register: TuiExtensionRegistrar): void {\n /* noop */\n }\n\n setLabel(_entryId: string, _label: string | undefined): void {\n /* noop */\n }\n\n sendUserMessage(\n _content: import('../types/core.js').ExtensionUserMessageContent,\n _options?: import('../types/core.js').ExtensionSendUserMessageOptions,\n ): void {\n /* noop */\n }\n\n appendEntry<T = unknown>(_customType: string, _data?: T): void {\n /* noop */\n }\n\n sendMessage<T = unknown>(\n _message: import('../types/core.js').ExtensionCustomMessage<T>,\n _options?: import('../types/core.js').ExtensionSendMessageOptions,\n ): void {\n /* noop */\n }\n}\n\nexport interface TestGateway {\n baseUrl: string;\n fetch: (path: string, init?: RequestInit) => Promise<Response>;\n close: () => Promise<void>;\n}\n\nexport async function createTestGateway(): Promise<TestGateway> {\n const app = new Hono();\n app.get('/health', (c) => c.json({ ok: true }));\n\n const server: ServerType = serve({\n fetch: app.fetch,\n port: 0,\n hostname: '127.0.0.1',\n });\n\n if (!server.listening) {\n await once(server, 'listening');\n }\n const addr = server.address() as AddressInfo;\n const port = addr.port;\n const baseUrl = `http://127.0.0.1:${port}`;\n\n return {\n baseUrl,\n fetch: (path, init) =>\n fetch(`${baseUrl}${path.startsWith('/') ? path : `/${path}`}`, init),\n close: () =>\n new Promise((resolve, reject) => {\n server.close((err) => (err ? reject(err) : resolve()));\n }),\n };\n}\n\nexport type { ExtensionCommandContext };\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"security.js","names":["path"],"sources":["../../../src/extensions/security.ts"],"sourcesContent":["/**\n * Extension Security Module\n * \n * Plugin security and sandboxing.\n * Provides path safety checks, permission validation, and allowlist management.\n */\n\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport { createLogger } from '../utils/logger.js';\n\nconst log = createLogger('Extension:Security');\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type ExtensionSourceOrigin = 'workspace' | 'global' | 'bundled' | 'config';\n\nexport interface SafetyCheckResult {\n safe: boolean;\n reason?: 'world_writable' | 'ownership_mismatch' | 'symlink_escape' | 'hardlink' | 'stat_failed';\n detail?: string;\n}\n\nexport interface SecurityConfig {\n /** Enable security checks */\n checkPermissions: boolean;\n /** Allow loading untrusted extensions (not in allowlist) */\n allowUntrusted: boolean;\n /** List of allowed extension IDs */\n allow: string[];\n /** Enable provenance tracking */\n trackProvenance: boolean;\n /** Allow extensions to inject content into system prompts */\n allowPromptInjection: boolean;\n}\n\n// ============================================================================\n// Default Security Config\n// ============================================================================\n\nexport const DEFAULT_SECURITY_CONFIG: SecurityConfig = {\n checkPermissions: true,\n allowUntrusted: false,\n allow: [],\n trackProvenance: true,\n allowPromptInjection: false,\n};\n\n// ============================================================================\n// Path Safety Checks\n// ============================================================================\n\n/**\n * Check if a path is safe for extension loading.\n * - Rejects world-writable directories (mode & 0o002)\n * - Verifies file ownership (UID match)\n * - Detects symlink escape (realpath outside root)\n * - Rejects hardlinks to non-bundled files\n */\nexport function checkExtensionPathSafety(\n sourcePath: string,\n rootDir: string,\n origin: ExtensionSourceOrigin,\n): SafetyCheckResult {\n try {\n // 1. Symlink escape check\n const realSource = fs.realpathSync(sourcePath);\n const realRoot = fs.realpathSync(rootDir);\n \n if (!realSource.startsWith(realRoot + path.sep) && realSource !== realRoot) {\n return {\n safe: false,\n reason: 'symlink_escape',\n detail: `Real path ${realSource} escapes root directory ${realRoot}`,\n };\n }\n\n // 2. Skip platform-specific checks on Windows\n if (process.platform === 'win32') {\n return { safe: true };\n }\n\n // 3. World-writable check (only for non-bundled extensions)\n const stat = fs.statSync(sourcePath);\n \n if (origin !== 'bundled' && (stat.mode & 0o002) !== 0) {\n return {\n safe: false,\n reason: 'world_writable',\n detail: `Path ${sourcePath} is world-writable`,\n };\n }\n\n // 4. Ownership check (only for non-bundled extensions)\n if (origin !== 'bundled' && process.getuid) {\n const currentUid = process.getuid();\n // Allow root (uid 0) or same owner\n if (stat.uid !== currentUid && stat.uid !== 0) {\n return {\n safe: false,\n reason: 'ownership_mismatch',\n detail: `Path owned by UID ${stat.uid}, current process is UID ${currentUid}`,\n };\n }\n }\n\n // 5. Hardlink check (only for non-bundled extensions and regular files)\n // Skip for directories - APFS creates spurious hardlink counts due to\n // Time Machine snapshots and APFS clones, causing false positives\n if (origin !== 'bundled') {\n const sourceStat = fs.statSync(sourcePath);\n // Only check regular files, not directories\n if (sourceStat.isFile() && sourceStat.nlink > 1) {\n return {\n safe: false,\n reason: 'hardlink',\n detail: `Path ${sourcePath} is a hardlink (nlink: ${sourceStat.nlink})`,\n };\n }\n }\n\n return { safe: true };\n } catch (error) {\n return {\n safe: false,\n reason: 'stat_failed',\n detail: `Failed to stat path: ${error instanceof Error ? error.message : String(error)}`,\n };\n }\n}\n\n/**\n * Check all files in an extension directory recursively\n */\nexport function checkExtensionDirSafety(\n extensionDir: string,\n rootDir: string,\n origin: ExtensionSourceOrigin,\n): { safe: boolean; issues: SafetyCheckResult[] } {\n const issues: SafetyCheckResult[] = [];\n \n if (!fs.existsSync(extensionDir)) {\n return { safe: false, issues: [{ safe: false, reason: 'stat_failed', detail: 'Directory does not exist' }] };\n }\n\n const walkDir = (dir: string) => {\n const entries = fs.readdirSync(dir, { withFileTypes: true });\n \n for (const entry of entries) {\n const fullPath = path.join(dir, entry.name);\n \n if (entry.isSymbolicLink()) {\n const result = checkExtensionPathSafety(fullPath, rootDir, origin);\n if (!result.safe) {\n issues.push(result);\n }\n } else if (entry.isDirectory()) {\n walkDir(fullPath);\n } else if (entry.isFile()) {\n const result = checkExtensionPathSafety(fullPath, rootDir, origin);\n if (!result.safe) {\n issues.push(result);\n }\n }\n }\n };\n\n walkDir(extensionDir);\n \n return {\n safe: issues.length === 0,\n issues,\n };\n}\n\n// ============================================================================\n// Allowlist Management\n// ============================================================================\n\n/**\n * Check if an extension is allowed by the allowlist\n */\nexport function isExtensionAllowed(\n extensionId: string,\n config: SecurityConfig,\n): boolean {\n // If allowlist is empty and allowUntrusted is false, only bundled extensions are allowed\n if (config.allow.length === 0 && !config.allowUntrusted) {\n return false;\n }\n \n // Check if in allowlist\n if (config.allow.includes(extensionId)) {\n return true;\n }\n \n // If allowUntrusted is true, allow anything\n return config.allowUntrusted;\n}\n\n// ============================================================================\n// Provenance Tracking\n// ============================================================================\n\nexport interface ProvenanceInfo {\n extensionId: string;\n source: ExtensionSourceOrigin;\n installMethod?: 'manual' | 'npm' | 'git' | 'download' | 'unknown';\n installDate?: Date;\n checksum?: string;\n}\n\n/**\n * Simple provenance tracking (in-memory for now)\n */\nclass ProvenanceTracker {\n private provenance = new Map<string, ProvenanceInfo>();\n \n track(extensionId: string, source: ExtensionSourceOrigin, method?: string): void {\n this.provenance.set(extensionId, {\n extensionId,\n source,\n installMethod: method as ProvenanceInfo['installMethod'],\n installDate: new Date(),\n });\n }\n \n get(extensionId: string): ProvenanceInfo | undefined {\n return this.provenance.get(extensionId);\n }\n \n getAll(): ProvenanceInfo[] {\n return Array.from(this.provenance.values());\n }\n}\n\nexport const provenanceTracker = new ProvenanceTracker();\n\n// ============================================================================\n// Security Logger\n// ============================================================================\n\nexport function logSecurityIssue(\n extensionId: string,\n result: SafetyCheckResult,\n): void {\n if (result.reason === 'world_writable') {\n log.warn(`[Security] Extension \"${extensionId}\" is in world-writable directory: ${result.detail}`);\n } else if (result.reason === 'ownership_mismatch') {\n log.warn(`[Security] Extension \"${extensionId}\" ownership mismatch: ${result.detail}`);\n } else if (result.reason === 'symlink_escape') {\n log.error(`[Security] Extension \"${extensionId}\" symlink escape attempt: ${result.detail}`);\n } else if (result.reason === 'hardlink') {\n log.warn(`[Security] Extension \"${extensionId}\" hardlink detected: ${result.detail}`);\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"slots.js","names":[],"sources":["../../../src/extensions/slots.ts"],"sourcesContent":["/**\n * Extension Slot System\n * \n * Slot exclusivity for capabilities that allow only one active implementation.\n * Some capabilities (memory backend, TTS provider) can only have one active implementation.\n */\n\nimport { createLogger } from '../utils/logger.js';\n\nconst log = createLogger('Extension:Slots');\n\n// ============================================================================\n// Slot Types\n// ============================================================================\n\nexport type SlotKey = 'memory' | 'tts' | 'imageGeneration' | 'webSearch';\n\nexport interface SlotClaim {\n pluginId: string;\n instance: unknown;\n claimedAt: Date;\n}\n\nexport interface SlotConfig {\n /** Slot key */\n key: SlotKey;\n /** Preferred plugin ID (from config) */\n preferredPlugin?: string;\n}\n\n// ============================================================================\n// Slot Registry\n// ============================================================================\n\n/**\n * Manages exclusive slots for extensions.\n * Ensures only one plugin can claim a specific slot at a time.\n */\nexport class SlotRegistry {\n private slots = new Map<SlotKey, SlotClaim>();\n\n /**\n * Claim a slot for a plugin\n * @returns true if claim succeeded, false if slot already taken\n */\n claim(key: SlotKey, pluginId: string, instance: unknown): boolean {\n const existing = this.slots.get(key);\n \n if (existing && existing.pluginId !== pluginId) {\n log.warn(\n `Slot \"${key}\" already claimed by \"${existing.pluginId}\", rejecting claim from \"${pluginId}\"`\n );\n return false;\n }\n\n this.slots.set(key, {\n pluginId,\n instance,\n claimedAt: new Date(),\n });\n \n log.info(`Slot \"${key}\" claimed by \"${pluginId}\"`);\n return true;\n }\n\n /**\n * Release a slot\n * @returns true if released, false if not owned by the plugin\n */\n release(key: SlotKey, pluginId: string): boolean {\n const existing = this.slots.get(key);\n \n if (!existing || existing.pluginId !== pluginId) {\n return false;\n }\n\n this.slots.delete(key);\n log.info(`Slot \"${key}\" released by \"${pluginId}\"`);\n return true;\n }\n\n /**\n * Get the instance in a slot\n */\n get<T>(key: SlotKey): T | undefined {\n return this.slots.get(key)?.instance as T | undefined;\n }\n\n /**\n * Check if a slot is claimed\n */\n isClaimed(key: SlotKey): boolean {\n return this.slots.has(key);\n }\n\n /**\n * Get which plugin claimed a slot\n */\n getClaimant(key: SlotKey): string | undefined {\n return this.slots.get(key)?.pluginId;\n }\n\n /**\n * Get all claimed slots\n */\n getAllClaims(): Map<SlotKey, SlotClaim> {\n return new Map(this.slots);\n }\n\n /**\n * Clear all slots (useful for testing or reset)\n */\n clear(): void {\n this.slots.clear();\n log.info('All slots cleared');\n }\n\n /**\n * Force release a slot (admin operation)\n */\n forceRelease(key: SlotKey): boolean {\n if (this.slots.has(key)) {\n const claimant = this.slots.get(key)!.pluginId;\n this.slots.delete(key);\n log.warn(`Slot \"${key}\" force-released (was claimed by \"${claimant}\")`);\n return true;\n }\n return false;\n }\n}\n\n// ============================================================================\n// Slot Factory (for creating slots dynamically)\n// ============================================================================\n\nconst registeredSlotTypes = new Set<SlotKey>();\n\n/**\n * Register a new slot type (for extensibility)\n */\nexport function registerSlotType(key: SlotKey): void {\n if (!registeredSlotTypes.has(key)) {\n registeredSlotTypes.add(key);\n log.debug(`Registered slot type: ${key}`);\n }\n}\n\n/**\n * Get all registered slot types\n */\nexport function getRegisteredSlotTypes(): SlotKey[] {\n return Array.from(registeredSlotTypes);\n}\n\n// Initialize default slot types\nregisterSlotType('memory');\nregisterSlotType('tts');\nregisterSlotType('imageGeneration');\nregisterSlotType('webSearch');\n\n// ============================================================================\n// Singleton Instance\n// ============================================================================\n\nlet globalSlotRegistry: SlotRegistry | null = null;\n\nexport function getSlotRegistry(): SlotRegistry {\n if (!globalSlotRegistry) {\n globalSlotRegistry = new SlotRegistry();\n }\n return globalSlotRegistry;\n}\n\nexport function setSlotRegistry(registry: SlotRegistry): void {\n globalSlotRegistry = registry;\n}\n"],"mappings":";;;aAOkD;AAElD,MAAM,MAAM,aAAa,kBAAkB;;;;;AA6B3C,IAAa,eAAb,MAA0B;CACxB,wBAAgB,IAAI,KAAyB;;;;;CAM7C,MAAM,KAAc,UAAkB,UAA4B;EAChE,MAAM,WAAW,KAAK,MAAM,IAAI,IAAI;AAEpC,MAAI,YAAY,SAAS,aAAa,UAAU;AAC9C,OAAI,KACF,SAAS,IAAI,wBAAwB,SAAS,SAAS,2BAA2B,SAAS,GAC5F;AACD,UAAO;;AAGT,OAAK,MAAM,IAAI,KAAK;GAClB;GACA;GACA,2BAAW,IAAI,MAAM;GACtB,CAAC;AAEF,MAAI,KAAK,SAAS,IAAI,gBAAgB,SAAS,GAAG;AAClD,SAAO;;;;;;CAOT,QAAQ,KAAc,UAA2B;EAC/C,MAAM,WAAW,KAAK,MAAM,IAAI,IAAI;AAEpC,MAAI,CAAC,YAAY,SAAS,aAAa,SACrC,QAAO;AAGT,OAAK,MAAM,OAAO,IAAI;AACtB,MAAI,KAAK,SAAS,IAAI,iBAAiB,SAAS,GAAG;AACnD,SAAO;;;;;CAMT,IAAO,KAA6B;AAClC,SAAO,KAAK,MAAM,IAAI,IAAI,EAAE;;;;;CAM9B,UAAU,KAAuB;AAC/B,SAAO,KAAK,MAAM,IAAI,IAAI;;;;;CAM5B,YAAY,KAAkC;AAC5C,SAAO,KAAK,MAAM,IAAI,IAAI,EAAE;;;;;CAM9B,eAAwC;AACtC,SAAO,IAAI,IAAI,KAAK,MAAM;;;;;CAM5B,QAAc;AACZ,OAAK,MAAM,OAAO;AAClB,MAAI,KAAK,oBAAoB;;;;;CAM/B,aAAa,KAAuB;AAClC,MAAI,KAAK,MAAM,IAAI,IAAI,EAAE;GACvB,MAAM,WAAW,KAAK,MAAM,IAAI,IAAI,CAAE;AACtC,QAAK,MAAM,OAAO,IAAI;AACtB,OAAI,KAAK,SAAS,IAAI,oCAAoC,SAAS,IAAI;AACvE,UAAO;;AAET,SAAO;;;AAQX,MAAM,sCAAsB,IAAI,KAAc;;;;AAK9C,SAAgB,iBAAiB,KAAoB;AACnD,KAAI,CAAC,oBAAoB,IAAI,IAAI,EAAE;AACjC,sBAAoB,IAAI,IAAI;AAC5B,MAAI,MAAM,yBAAyB,MAAM;;;;;;AAO7C,SAAgB,yBAAoC;AAClD,QAAO,MAAM,KAAK,oBAAoB;;AAIxC,iBAAiB,SAAS;AAC1B,iBAAiB,MAAM;AACvB,iBAAiB,kBAAkB;AACnC,iBAAiB,YAAY;AAM7B,IAAI,qBAA0C;AAE9C,SAAgB,kBAAgC;AAC9C,KAAI,CAAC,mBACH,sBAAqB,IAAI,cAAc;AAEzC,QAAO;;AAGT,SAAgB,gBAAgB,UAA8B;AAC5D,sBAAqB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"speech-provider-contracts.js","names":[],"sources":["../../../src/extensions/speech-provider-contracts.ts"],"sourcesContent":["/**\n * Speech provider extension contract validation.\n */\n\nimport { getSpeechProvider } from '../voice/tts/speech-registry.js';\n\nimport type { ExtensionLogger } from './types/core.js';\nimport type { ExtensionManifest } from './types/manifest.js';\n\nfunction normalizeId(id: string): string {\n return id.trim().toLowerCase();\n}\n\n/** Declared speech provider ids from manifest (top-level + contracts). */\nexport function declaredSpeechProviderIds(manifest: ExtensionManifest): string[] {\n const ids = new Set<string>();\n for (const id of manifest.speechProviders ?? []) {\n if (typeof id === 'string' && id.trim()) {\n ids.add(normalizeId(id));\n }\n }\n for (const id of manifest.contracts?.speechProviders ?? []) {\n if (typeof id === 'string' && id.trim()) {\n ids.add(normalizeId(id));\n }\n }\n return [...ids];\n}\n\n/** Registered ids normalized for comparison (includes canonical plugin ids). */\nexport function normalizeRegisteredSpeechProviderIds(registeredIds: readonly string[]): string[] {\n const normalized = new Set<string>();\n for (const id of registeredIds) {\n const trimmed = id.trim();\n if (!trimmed) continue;\n normalized.add(normalizeId(trimmed));\n const canonical = getSpeechProvider(trimmed)?.id;\n if (canonical) {\n normalized.add(normalizeId(canonical));\n }\n }\n return [...normalized];\n}\n\n/**\n * Warn when a manifest declares speech provider contracts but the extension\n * did not register matching providers at load time.\n */\nexport function validateSpeechProviderContracts(params: {\n extensionId: string;\n manifest: ExtensionManifest;\n registeredProviderIds: readonly string[];\n logger: ExtensionLogger;\n}): void {\n const declared = declaredSpeechProviderIds(params.manifest);\n if (declared.length === 0) {\n return;\n }\n\n const registered = new Set(normalizeRegisteredSpeechProviderIds(params.registeredProviderIds));\n\n for (const id of declared) {\n const plugin = getSpeechProvider(id);\n const canonical = plugin ? normalizeId(plugin.id) : id;\n if (!registered.has(canonical) && !registered.has(id)) {\n params.logger.warn(\n `Speech provider contract \"${id}\" declared in manifest but not registered by extension \"${params.extensionId}\"`,\n );\n }\n }\n}\n"],"mappings":";;;;;AASA,SAAS,YAAY,IAAoB;AACvC,QAAO,GAAG,MAAM,CAAC,aAAa;;;AAIhC,SAAgB,0BAA0B,UAAuC;CAC/E,MAAM,sBAAM,IAAI,KAAa;AAC7B,MAAK,MAAM,MAAM,SAAS,mBAAmB,EAAE,CAC7C,KAAI,OAAO,OAAO,YAAY,GAAG,MAAM,CACrC,KAAI,IAAI,YAAY,GAAG,CAAC;AAG5B,MAAK,MAAM,MAAM,SAAS,WAAW,mBAAmB,EAAE,CACxD,KAAI,OAAO,OAAO,YAAY,GAAG,MAAM,CACrC,KAAI,IAAI,YAAY,GAAG,CAAC;AAG5B,QAAO,CAAC,GAAG,IAAI;;;AAIjB,SAAgB,qCAAqC,eAA4C;CAC/F,MAAM,6BAAa,IAAI,KAAa;AACpC,MAAK,MAAM,MAAM,eAAe;EAC9B,MAAM,UAAU,GAAG,MAAM;AACzB,MAAI,CAAC,QAAS;AACd,aAAW,IAAI,YAAY,QAAQ,CAAC;EACpC,MAAM,YAAY,kBAAkB,QAAQ,EAAE;AAC9C,MAAI,UACF,YAAW,IAAI,YAAY,UAAU,CAAC;;AAG1C,QAAO,CAAC,GAAG,WAAW;;;;;;AAOxB,SAAgB,gCAAgC,QAKvC;CACP,MAAM,WAAW,0BAA0B,OAAO,SAAS;AAC3D,KAAI,SAAS,WAAW,EACtB;CAGF,MAAM,aAAa,IAAI,IAAI,qCAAqC,OAAO,sBAAsB,CAAC;AAE9F,MAAK,MAAM,MAAM,UAAU;EACzB,MAAM,SAAS,kBAAkB,GAAG;EACpC,MAAM,YAAY,SAAS,YAAY,OAAO,GAAG,GAAG;AACpD,MAAI,CAAC,WAAW,IAAI,UAAU,IAAI,CAAC,WAAW,IAAI,GAAG,CACnD,QAAO,OAAO,KACZ,6BAA6B,GAAG,0DAA0D,OAAO,YAAY,GAC9G"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"store-zip-limits.js","names":[],"sources":["../../../src/extensions/store-zip-limits.ts"],"sourcesContent":["/** xopc-store extension zip limit (matches server scan). */\nexport const MAX_EXTENSION_STORE_ZIP_BYTES = 10 * 1024 * 1024;\n"],"mappings":";;AACA,MAAa,gCAAgC,KAAK,OAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"typed-event-bus.js","names":[],"sources":["../../../src/extensions/typed-event-bus.ts"],"sourcesContent":["/**\n * Typed Event Bus \n *\n * Type-safe event bus for inter-extension communication.\n *\n * Features:\n * - Type-safe event emission and listening\n * - Request-response pattern (RPC)\n * - Wildcard pattern matching for events\n * - Automatic cleanup on extension unload\n * - Error handling with optional error catching\n */\n\nimport type {\n EventMap,\n RequestMap,\n EventHandler,\n EventHandlerMeta,\n RequestHandler,\n RequestHandlerMeta,\n WildcardEventHandler,\n WildcardHandlerMeta,\n TypedEventBusOptions,\n RequestOptions,\n} from './types/events.js';\nimport type { ExtensionLogger } from './types/core.js';\n\ninterface InternalRequest {\n id: string;\n method: string;\n params: unknown;\n timeout: number;\n resolve: (value: unknown) => void;\n reject: (error: Error) => void;\n timer?: ReturnType<typeof setTimeout>;\n}\n\n/**\n * Type-safe event bus for inter-extension communication\n *\n * @example\n * ```typescript\n * interface MyEvents {\n * 'user:login': { userId: string; timestamp: number };\n * 'message:received': { chatId: string; content: string };\n * }\n *\n * interface MyRequests {\n * 'user:get': { userId: string };\n * }\n *\n * interface MyResponses {\n * 'user:get': { name: string; email: string };\n * }\n *\n * const bus = new TypedEventBus<MyEvents, MyRequests, MyResponses>();\n *\n * // Listen for events\n * bus.on('user:login', (data) => {\n * console.log(`User ${data.userId} logged in`);\n * });\n *\n * // Emit events\n * bus.emit('user:login', { userId: 'user123', timestamp: Date.now() });\n *\n * // Request-response\n * bus.onRequest('user:get', async (params) => {\n * return { name: 'John', email: 'john@example.com' };\n * });\n *\n * const user = await bus.request('user:get', { userId: 'user123' });\n * ```\n */\nexport class TypedEventBus<\n TEvents extends EventMap = EventMap,\n TRequests extends RequestMap = RequestMap,\n _TResponses extends RequestMap = RequestMap\n> {\n private eventHandlers = new Map<keyof TEvents, EventHandlerMeta[]>();\n private wildcardHandlers: WildcardHandlerMeta[] = [];\n private requestHandlers = new Map<keyof TRequests, RequestHandlerMeta[]>();\n private pendingRequests = new Map<string, InternalRequest>();\n private options: Required<TypedEventBusOptions>;\n private requestIdCounter = 0;\n\n constructor(options: TypedEventBusOptions = {}) {\n this.options = {\n requestTimeout: options.requestTimeout ?? 5000,\n catchErrors: options.catchErrors ?? true,\n logger: options.logger ?? this.createDefaultLogger(),\n };\n }\n\n // ============================================================================\n // Event Emission and Listening\n // ============================================================================\n\n /**\n * Subscribe to an event\n *\n * @param event - Event name\n * @param handler - Event handler function\n * @param options - Handler options (extensionId, once)\n * @returns Unsubscribe function\n */\n on<K extends keyof TEvents>(\n event: K,\n handler: EventHandler<TEvents[K]>,\n options: { extensionId?: string; once?: boolean } = {}\n ): () => void {\n const meta: EventHandlerMeta = {\n handler: handler as EventHandler<unknown>,\n extensionId: options.extensionId,\n once: options.once,\n };\n\n const handlers = this.eventHandlers.get(event) || [];\n handlers.push(meta);\n this.eventHandlers.set(event, handlers);\n\n // Return unsubscribe function\n return () => {\n this.off(event, handler);\n };\n }\n\n /**\n * Unsubscribe from an event\n *\n * @param event - Event name\n * @param handler - Handler to remove\n */\n off<K extends keyof TEvents>(event: K, handler: EventHandler<TEvents[K]>): void {\n const handlers = this.eventHandlers.get(event);\n if (!handlers) return;\n\n const index = handlers.findIndex((h) => h.handler === handler);\n if (index >= 0) {\n handlers.splice(index, 1);\n if (handlers.length === 0) {\n this.eventHandlers.delete(event);\n }\n }\n }\n\n /**\n * Emit an event\n *\n * @param event - Event name\n * @param data - Event data\n */\n emit<K extends keyof TEvents>(event: K, data: TEvents[K]): void {\n // Call specific handlers\n const handlers = this.eventHandlers.get(event);\n if (handlers) {\n // Filter out 'once' handlers that need to be removed after execution\n const handlersToRemove: number[] = [];\n\n handlers.forEach((meta, index) => {\n try {\n meta.handler(data);\n if (meta.once) {\n handlersToRemove.push(index);\n }\n } catch (error) {\n this.handleError(`Error in event handler for ${String(event)}`, error);\n }\n });\n\n // Remove once handlers (in reverse order to maintain indices)\n for (let i = handlersToRemove.length - 1; i >= 0; i--) {\n handlers.splice(handlersToRemove[i], 1);\n }\n\n if (handlers.length === 0) {\n this.eventHandlers.delete(event);\n }\n }\n\n // Call wildcard handlers\n this.wildcardHandlers.forEach((meta) => {\n if (this.matchWildcard(meta.pattern, String(event))) {\n try {\n meta.handler(data, String(event));\n } catch (error) {\n this.handleError(`Error in wildcard handler for ${String(event)}`, error);\n }\n }\n });\n }\n\n // ============================================================================\n // Wildcard Pattern Matching\n // ============================================================================\n\n /**\n * Subscribe to events matching a wildcard pattern\n *\n * @param pattern - Wildcard pattern (e.g., 'user:*', '*:update')\n * @param handler - Handler function\n * @param options - Handler options (extensionId)\n * @returns Unsubscribe function\n */\n onWildcard(\n pattern: string,\n handler: WildcardEventHandler,\n options: { extensionId?: string } = {}\n ): () => void {\n const meta: WildcardHandlerMeta = {\n handler,\n pattern,\n extensionId: options.extensionId,\n };\n\n this.wildcardHandlers.push(meta);\n\n return () => {\n const index = this.wildcardHandlers.findIndex((h) => h.handler === handler);\n if (index >= 0) {\n this.wildcardHandlers.splice(index, 1);\n }\n };\n }\n\n /**\n * Check if an event matches a wildcard pattern\n */\n private matchWildcard(pattern: string, event: string): boolean {\n // Handle single * that matches everything\n if (pattern === '*') {\n return true;\n }\n\n // Convert pattern to regex\n // * matches any sequence of characters\n // Escape special regex characters except *\n const regexPattern = pattern\n .replace(/[.+^${}()|[\\]\\\\]/g, '\\\\$&') // Escape regex special chars\n .replace(/\\*/g, '.*'); // * becomes .*\n\n const regex = new RegExp(`^${regexPattern}$`);\n return regex.test(event);\n }\n\n // ============================================================================\n // Request-Response Pattern\n // ============================================================================\n\n /**\n * Register a request handler\n */\n onRequest<K extends keyof TRequests>(\n method: K,\n handler: (params: TRequests[K]) => unknown | Promise<unknown>,\n options: { extensionId?: string } = {}\n ): void {\n const meta: RequestHandlerMeta = {\n handler: handler as RequestHandler<unknown, unknown>,\n extensionId: options.extensionId,\n };\n\n const handlers = this.requestHandlers.get(method) || [];\n handlers.push(meta);\n this.requestHandlers.set(method, handlers);\n }\n\n /**\n * Make a request and wait for response\n */\n async request<K extends keyof TRequests>(\n method: K,\n params: TRequests[K],\n _options: RequestOptions = {}\n ): Promise<unknown> {\n // Check if there are any handlers\n const handlers = this.requestHandlers.get(method);\n if (!handlers || handlers.length === 0) {\n throw new Error(`No handler registered for request: ${String(method)}`);\n }\n\n // Try handlers in order until one returns a non-null result\n for (const meta of handlers) {\n try {\n const result = await meta.handler(params);\n if (result !== null && result !== undefined) {\n return result;\n }\n } catch (error) {\n this.handleError(`Error in request handler for ${String(method)}`, error);\n throw error;\n }\n }\n\n throw new Error(`All handlers returned null for request: ${String(method)}`);\n }\n\n // ============================================================================\n // Extension Cleanup\n // ============================================================================\n\n /**\n * Remove all listeners and handlers for a specific extension\n *\n * @param extensionId - Extension ID to cleanup\n */\n cleanup(extensionId: string): void {\n for (const [event, handlers] of this.eventHandlers.entries()) {\n const filtered = handlers.filter((h) => h.extensionId !== extensionId);\n if (filtered.length === 0) {\n this.eventHandlers.delete(event);\n } else {\n this.eventHandlers.set(event, filtered);\n }\n }\n\n this.wildcardHandlers = this.wildcardHandlers.filter((h) => h.extensionId !== extensionId);\n\n for (const [method, handlers] of this.requestHandlers.entries()) {\n const filtered = handlers.filter((h) => h.extensionId !== extensionId);\n if (filtered.length === 0) {\n this.requestHandlers.delete(method);\n } else {\n this.requestHandlers.set(method, filtered);\n }\n }\n }\n\n cleanupAll(): void {\n this.eventHandlers.clear();\n this.wildcardHandlers = [];\n this.requestHandlers.clear();\n for (const req of this.pendingRequests.values()) {\n req.reject(new Error('EventBus cleanup'));\n }\n this.pendingRequests.clear();\n }\n\n // ============================================================================\n // Utility Methods\n // ============================================================================\n\n /**\n * Get number of active event handlers for an event\n */\n listenerCount<K extends keyof TEvents>(event: K): number {\n const handlers = this.eventHandlers.get(event);\n return handlers?.length || 0;\n }\n\n /**\n * Get all registered event names\n */\n eventNames(): (keyof TEvents)[] {\n return Array.from(this.eventHandlers.keys());\n }\n\n /**\n * Remove all listeners (use with caution)\n */\n removeAllListeners(): void {\n this.eventHandlers.clear();\n this.wildcardHandlers = [];\n this.requestHandlers.clear();\n\n // Cancel all pending requests\n for (const request of this.pendingRequests.values()) {\n if (request.timer) {\n clearTimeout(request.timer);\n }\n request.reject(new Error('EventBus destroyed'));\n }\n this.pendingRequests.clear();\n }\n\n // ============================================================================\n // Private Helpers\n // ============================================================================\n\n private handleError(message: string, error: unknown): void {\n if (this.options.catchErrors) {\n this.options.logger.error(`${message}: ${error instanceof Error ? error.message : String(error)}`);\n } else {\n throw error;\n }\n }\n\n private createDefaultLogger(): ExtensionLogger {\n return {\n debug: () => {},\n info: () => {},\n warn: console.warn,\n error: console.error,\n };\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hooks.js","names":[],"sources":["../../../../src/extensions/types/hooks.ts"],"sourcesContent":["/**\n * Extension System - Hook Types\n * \n * Hook events, handlers, and context types.\n * Strongly typed hook system with execution modes.\n */\n\nimport type { AgentMessage } from '@earendil-works/pi-agent-core';\n\n// Re-export AgentMessage for use in hook system\nexport type { AgentMessage };\n\n// ============================================================================\n// Hook Event Types ( Strongly Typed)\n// ============================================================================\n\nexport type ExtensionHookEvent = \n // Existing hooks\n | 'before_agent_start'\n | 'agent_end'\n | 'before_compaction'\n | 'after_compaction'\n | 'message_received'\n | 'message_sending'\n | 'message_sent'\n | 'before_tool_call'\n | 'after_tool_call'\n | 'session_start'\n | 'session_end'\n | 'gateway_start'\n | 'gateway_stop'\n // Enhanced hooks\n | 'context'\n | 'input'\n | 'turn_start'\n | 'turn_end'\n // Tool execution lifecycle\n | 'tool_execution_start'\n | 'tool_execution_update'\n | 'tool_execution_end'\n // LLM Observation hooks\n | 'before_model_resolve'\n | 'before_prompt_build'\n | 'llm_input'\n | 'llm_output'\n // Inbound claim hook\n | 'inbound_claim'\n // Reset hook\n | 'before_reset'\n // Message write hook\n | 'before_message_write'\n // Sub-agent lifecycle (openclaw parity surface)\n | 'subagent_spawning'\n | 'subagent_delivery_target'\n | 'subagent_ended'\n /** After a webchat direct stream finishes (success or error); session lock released. */\n | 'webchat_turn_complete';\n\n// ============================================================================\n// Hook Execution Modes \n// ============================================================================\n\n/**\n * Hook execution mode determines how handlers are processed:\n * - void: Fire-and-forget, parallel execution (for notifications)\n * - modifying: Sequential execution, results merge (for modifications)\n * - claiming: First handler to return handled:true wins (for exclusive handling)\n */\nexport type HookExecutionMode = 'void' | 'modifying' | 'claiming';\n\n/**\n * Maps each hook event to its execution mode\n */\nexport const HOOK_EXECUTION_MODES: Record<ExtensionHookEvent, HookExecutionMode> = {\n // Void: Fire-and-forget, parallel execution\n 'message_received': 'void',\n 'message_sent': 'void',\n 'agent_end': 'void',\n 'llm_input': 'void',\n 'llm_output': 'void',\n 'after_tool_call': 'void',\n 'session_start': 'void',\n 'session_end': 'void',\n 'gateway_start': 'void',\n 'gateway_stop': 'void',\n 'before_compaction': 'void',\n 'after_compaction': 'void',\n 'turn_start': 'void',\n 'turn_end': 'void',\n 'tool_execution_start': 'void',\n 'tool_execution_update': 'void',\n 'tool_execution_end': 'void',\n 'before_reset': 'void',\n 'subagent_ended': 'void',\n 'webchat_turn_complete': 'void',\n \n // Modifying: Sequential execution, results merge\n 'before_agent_start': 'modifying',\n 'before_model_resolve': 'modifying',\n 'before_prompt_build': 'modifying',\n 'message_sending': 'modifying',\n 'before_tool_call': 'modifying',\n 'context': 'modifying',\n 'input': 'modifying',\n 'before_message_write': 'modifying',\n 'subagent_spawning': 'modifying',\n 'subagent_delivery_target': 'modifying',\n \n // Claiming: First handler with handled:true wins\n 'inbound_claim': 'claiming',\n};\n\n// ============================================================================\n// Untyped hook handler (extensions may use before wiring strong types)\n// ============================================================================\n\nexport type ExtensionHookHandler = (event: unknown, context?: unknown) => unknown | Promise<unknown>;\n\nexport interface HookOptions {\n priority?: number;\n once?: boolean;\n}\n\n// ============================================================================\n// Strongly Typed Hook Handler Map\n// ============================================================================\n\n// Forward declarations for circular references\nexport interface HookAgentContext {\n timestamp?: Date;\n extensionId?: string;\n sessionKey?: string;\n agentId?: string;\n isMcpTool?: boolean;\n mcpServerId?: string;\n}\n\n// LLM Observation Hook Types\nexport interface HookBeforeModelResolveEvent {\n prompt: string;\n model?: string;\n provider?: string;\n}\n\nexport interface HookBeforeModelResolveResult {\n modelOverride?: string;\n providerOverride?: string;\n}\n\nexport interface HookBeforePromptBuildEvent {\n prompt: string;\n messages?: Array<{ role: string; content: string }>;\n}\n\nexport interface HookBeforePromptBuildResult {\n prompt?: string;\n prependContext?: string;\n}\n\nexport interface HookLlmInputEvent {\n runId: string;\n provider: string;\n model: string;\n prompt: string;\n systemPrompt?: string;\n messages?: Array<{ role: string; content: string }>;\n temperature?: number;\n maxTokens?: number;\n}\n\nexport interface HookLlmOutputEvent {\n runId: string;\n provider: string;\n model: string;\n content: string;\n usage?: {\n input?: number;\n output?: number;\n total?: number;\n };\n finishReason?: string;\n}\n\n// Inbound Claim Hook Types\nexport interface HookInboundClaimEvent {\n channelId: string;\n from: string;\n content: string;\n timestamp?: Date;\n}\n\nexport interface HookInboundClaimResult {\n handled: boolean;\n response?: string;\n}\n\n// Before Reset Hook Types\nexport interface HookBeforeResetEvent {\n sessionKey: string;\n reason?: 'user_request' | 'timeout' | 'error' | 'manual';\n}\n\nexport interface HookBeforeResetResult {\n allowReset: boolean;\n reason?: string;\n}\n\n// Before Message Write Hook Types\nexport interface HookBeforeMessageWriteEvent {\n channelId: string;\n to: string;\n content: string;\n}\n\nexport interface HookBeforeMessageWriteResult {\n content?: string;\n cancel?: boolean;\n reason?: string;\n}\n\n// Turn Hook Types\nexport interface HookTurnStartEvent {\n turnId: string;\n prompt?: string;\n agentId?: string;\n sessionKey?: string;\n}\n\nexport interface HookTurnEndEvent {\n turnId: string;\n response?: string;\n error?: string;\n durationMs?: number;\n}\n\n// Tool Execution Hook Types\nexport interface HookToolExecutionStartEvent {\n toolName: string;\n params: Record<string, unknown>;\n executionId: string;\n}\n\nexport interface HookToolExecutionUpdateEvent {\n toolName: string;\n executionId: string;\n progress?: number;\n message?: string;\n}\n\nexport interface HookToolExecutionEndEvent {\n toolName: string;\n executionId: string;\n result?: unknown;\n error?: string;\n durationMs?: number;\n}\n\n// ============================================================================\n// Sub-agent hook types (delegate_task + future subagent sessions)\n// ============================================================================\n\nexport interface HookSubagentSpawningEvent {\n childSessionKey: string;\n requester?: {\n channel?: string;\n accountId?: string;\n to?: string;\n threadId?: string | number;\n };\n threadRequested?: boolean;\n agentId?: string;\n label?: string;\n}\n\nexport type HookSubagentSpawningResult =\n | { status: 'ok'; threadBindingReady?: boolean }\n | { status: 'error'; error: string }\n | void;\n\nexport interface HookSubagentDeliveryTargetEvent {\n childSessionKey: string;\n requesterSessionKey?: string;\n requesterOrigin?: {\n channel?: string;\n accountId?: string;\n to?: string;\n threadId?: string | number;\n };\n expectsCompletionMessage?: boolean;\n}\n\nexport type HookSubagentDeliveryTargetResult =\n | {\n origin: {\n channel: string;\n accountId?: string;\n to?: string;\n threadId?: string | number;\n };\n }\n | void;\n\nexport interface HookSubagentEndedEvent {\n targetSessionKey: string;\n accountId?: string;\n}\n\n// ============================================================================\n// Strongly Typed Handler Map \n// ============================================================================\n\n/**\n * Strongly typed handler map - each hook has precise event/result types\n */\nexport type HookHandlerMap = {\n // Agent lifecycle\n before_agent_start: (\n event: BeforeAgentStartContext,\n ctx: HookAgentContext,\n ) => Promise<BeforeAgentStartResult | void> | BeforeAgentStartResult | void;\n \n before_model_resolve: (\n event: HookBeforeModelResolveEvent,\n ctx: HookAgentContext,\n ) => Promise<HookBeforeModelResolveResult | void> | HookBeforeModelResolveResult | void;\n \n before_prompt_build: (\n event: HookBeforePromptBuildEvent,\n ctx: HookAgentContext,\n ) => Promise<HookBeforePromptBuildResult | void> | HookBeforePromptBuildResult | void;\n \n llm_input: (\n event: HookLlmInputEvent,\n ctx: HookAgentContext,\n ) => Promise<void> | void;\n \n llm_output: (\n event: HookLlmOutputEvent,\n ctx: HookAgentContext,\n ) => Promise<void> | void;\n \n agent_end: (\n event: AgentEndContext,\n ctx: HookAgentContext,\n ) => Promise<void> | void;\n\n webchat_turn_complete: (\n event: WebchatTurnCompleteEvent,\n ctx: HookAgentContext,\n ) => Promise<void> | void;\n \n // Compaction\n before_compaction: (\n event: BeforeCompactionContext,\n ctx: HookAgentContext,\n ) => Promise<void> | void;\n \n after_compaction: (\n event: AfterCompactionContext,\n ctx: HookAgentContext,\n ) => Promise<void> | void;\n \n // Messages\n message_received: (\n event: MessageReceivedContext,\n ctx: HookAgentContext,\n ) => Promise<void> | void;\n \n message_sending: (\n event: MessageSendingContext,\n ctx: HookAgentContext,\n ) => Promise<MessageSendingResult | void> | MessageSendingResult | void;\n \n message_sent: (\n event: MessageSentContext,\n ctx: HookAgentContext,\n ) => Promise<void> | void;\n \n inbound_claim: (\n event: HookInboundClaimEvent,\n ctx: HookAgentContext,\n ) => Promise<HookInboundClaimResult | void> | HookInboundClaimResult | void;\n \n before_message_write: (\n event: HookBeforeMessageWriteEvent,\n ctx: HookAgentContext,\n ) => Promise<HookBeforeMessageWriteResult | void> | HookBeforeMessageWriteResult | void;\n \n // Tools\n before_tool_call: (\n event: BeforeToolCallContext,\n ctx: HookAgentContext,\n ) => Promise<BeforeToolCallResult | void> | BeforeToolCallResult | void;\n \n after_tool_call: (\n event: AfterToolCallContext,\n ctx: HookAgentContext,\n ) => Promise<void> | void;\n \n tool_execution_start: (\n event: HookToolExecutionStartEvent,\n ctx: HookAgentContext,\n ) => Promise<void> | void;\n \n tool_execution_update: (\n event: HookToolExecutionUpdateEvent,\n ctx: HookAgentContext,\n ) => Promise<void> | void;\n \n tool_execution_end: (\n event: HookToolExecutionEndEvent,\n ctx: HookAgentContext,\n ) => Promise<void> | void;\n\n subagent_spawning: (\n event: HookSubagentSpawningEvent,\n ctx: HookAgentContext,\n ) => Promise<HookSubagentSpawningResult> | HookSubagentSpawningResult;\n\n subagent_delivery_target: (\n event: HookSubagentDeliveryTargetEvent,\n ctx: HookAgentContext,\n ) => Promise<HookSubagentDeliveryTargetResult> | HookSubagentDeliveryTargetResult;\n\n subagent_ended: (\n event: HookSubagentEndedEvent,\n ctx: HookAgentContext,\n ) => Promise<void> | void;\n \n // Session\n session_start: (\n event: SessionStartContext,\n ctx: HookAgentContext,\n ) => Promise<void> | void;\n \n session_end: (\n event: SessionEndContext,\n ctx: HookAgentContext,\n ) => Promise<void> | void;\n \n // Gateway\n gateway_start: (\n event: GatewayStartContext,\n ctx: HookAgentContext,\n ) => Promise<void> | void;\n \n gateway_stop: (\n event: GatewayStopContext,\n ctx: HookAgentContext,\n ) => Promise<void> | void;\n \n // Enhanced (xopc-specific)\n context: (\n event: ContextEvent,\n ctx: HookAgentContext,\n ) => Promise<ContextResult | void> | ContextResult | void;\n \n input: (\n event: InputEvent,\n ctx: HookAgentContext,\n ) => Promise<InputResult | void> | InputResult | void;\n \n // Turn lifecycle\n turn_start: (\n event: HookTurnStartEvent,\n ctx: HookAgentContext,\n ) => Promise<void> | void;\n \n turn_end: (\n event: HookTurnEndEvent,\n ctx: HookAgentContext,\n ) => Promise<void> | void;\n \n // Reset\n before_reset: (\n event: HookBeforeResetEvent,\n ctx: HookAgentContext,\n ) => Promise<HookBeforeResetResult | void> | HookBeforeResetResult | void;\n};\n\n// ============================================================================\n// Shared hook context fields\n// ============================================================================\n\nexport interface HookContext {\n timestamp?: Date;\n extensionId?: string;\n sessionKey?: string;\n agentId?: string;\n isMcpTool?: boolean;\n mcpServerId?: string;\n}\n\nexport interface BeforeAgentStartContext extends HookContext {\n prompt: string;\n messages?: unknown[];\n}\n\nexport interface BeforeAgentStartResult {\n systemPrompt?: string;\n prependContext?: string;\n}\n\nexport interface AgentEndContext extends HookContext {\n messages: unknown[];\n success: boolean;\n error?: string;\n durationMs?: number;\n}\n\n/** Payload for {@link ExtensionHookEvent} `webchat_turn_complete` (also passed as `event` fields + ctx.sessionKey). */\nexport interface WebchatTurnCompleteEvent extends HookContext {\n sessionKey: string;\n /** Channel id (e.g. `telegram:default`, `webchat`) when the turn is not webchat-only. */\n channel?: string;\n chatId?: string;\n /** Raw inbound user text from the POST body (before model envelope). */\n inboundUserText: string;\n /** Last assistant visible text after persistence (may be empty). */\n assistantPlainText: string;\n /** User aborted the HTTP/SSE run. */\n aborted: boolean;\n /** Set when the direct stream threw before normal completion. */\n streamError?: string;\n}\n\nexport interface BeforeCompactionContext extends HookContext {\n messageCount: number;\n tokenCount?: number;\n}\n\nexport interface AfterCompactionContext extends HookContext {\n messageCount: number;\n tokenCount?: number;\n compactedCount: number;\n}\n\nexport interface MessageReceivedContext extends HookContext {\n channelId: string;\n from: string;\n content: string;\n timestamp?: Date;\n metadata?: Record<string, unknown>;\n}\n\nexport interface MessageSendingContext extends HookContext {\n to: string;\n content: string;\n /** Channel id (e.g. telegram) when sending through ChannelManager. */\n channel?: string;\n metadata?: Record<string, unknown>;\n}\n\nexport interface MessageSendingResult {\n content?: string;\n cancel?: boolean;\n cancelReason?: string;\n}\n\nexport interface MessageSentContext extends HookContext {\n to: string;\n content: string;\n success: boolean;\n error?: string;\n channel?: string;\n}\n\nexport interface BeforeToolCallContext extends HookContext {\n toolName: string;\n params: Record<string, unknown>;\n}\n\nexport interface BeforeToolCallResult {\n params?: Record<string, unknown>;\n block?: boolean;\n blockReason?: string;\n}\n\nexport interface AfterToolCallContext extends HookContext {\n toolName: string;\n params: Record<string, unknown>;\n result?: unknown;\n error?: string;\n durationMs?: number;\n}\n\nexport interface SessionStartContext extends HookContext {\n sessionId: string;\n resumedFrom?: string;\n}\n\nexport interface SessionEndContext extends HookContext {\n sessionId: string;\n reason?: 'completed' | 'error' | 'timeout' | 'user_request';\n}\n\nexport interface GatewayStartContext extends HookContext {\n port: number;\n host: string;\n}\n\nexport interface GatewayStopContext extends HookContext {\n port: number;\n reason?: string;\n}\n\n// ============================================================================\n// Enhanced Hook Event Types\n// ============================================================================\n\nexport interface ContextEvent {\n messages: Array<{ role: string; content: string }>;\n agentId?: string;\n sessionKey?: string;\n}\n\nexport interface ContextResult {\n messages: Array<{ role: string; content: string }>;\n}\n\nexport interface InputEvent {\n text: string;\n images?: string[];\n channelId?: string;\n from?: string;\n}\n\nexport interface InputResult {\n action: 'continue' | 'handled' | 'blocked';\n text?: string;\n images?: string[];\n response?: string;\n skipAgent?: boolean;\n}\n\nexport interface TurnEvent {\n turnId: string;\n prompt?: string;\n agentId?: string;\n sessionKey?: string;\n}\n\nexport interface TurnResult {\n context?: string;\n skipTurn?: boolean;\n}\n"],"mappings":";;;;AAyEA,MAAa,uBAAsE;CAEjF,oBAAoB;CACpB,gBAAgB;CAChB,aAAa;CACb,aAAa;CACb,cAAc;CACd,mBAAmB;CACnB,iBAAiB;CACjB,eAAe;CACf,iBAAiB;CACjB,gBAAgB;CAChB,qBAAqB;CACrB,oBAAoB;CACpB,cAAc;CACd,YAAY;CACZ,wBAAwB;CACxB,yBAAyB;CACzB,sBAAsB;CACtB,gBAAgB;CAChB,kBAAkB;CAClB,yBAAyB;CAGzB,sBAAsB;CACtB,wBAAwB;CACxB,uBAAuB;CACvB,mBAAmB;CACnB,oBAAoB;CACpB,WAAW;CACX,SAAS;CACT,wBAAwB;CACxB,qBAAqB;CACrB,4BAA4B;CAG5B,iBAAiB;CAClB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"providers.js","names":[],"sources":["../../../../src/extensions/types/providers.ts"],"sourcesContent":["/**\n * Extension System - Provider Plugin Types\n * \n * Provider plugin system for customizable LLM backends.\n */\n\nimport type { AgentMessage } from '@earendil-works/pi-agent-core';\n\n// ============================================================================\n// Provider Plugin Interface\n// ============================================================================\n\nexport interface ProviderPlugin {\n /** Unique provider identifier */\n id: string;\n /** Human-readable name */\n name: string;\n /** Provider description */\n description?: string;\n /** Supported model definitions */\n models: ProviderModelDefinition[];\n /** Create a streaming response */\n createStream(params: ProviderStreamParams): AsyncIterable<ProviderStreamChunk>;\n /** Check if the provider is properly configured */\n isConfigured?(config: Record<string, unknown>): boolean;\n /** Get required environment variables */\n requiredEnvVars?(): string[];\n /** Get default model */\n defaultModel?: string;\n /** Supported capabilities */\n capabilities?: ProviderCapabilities;\n}\n\nexport interface ProviderModelDefinition {\n /** Model ID */\n id: string;\n /** Display name */\n name: string;\n /** Context window size in tokens */\n contextWindow?: number;\n /** Maximum output tokens */\n maxOutputTokens?: number;\n /** Supports image input */\n supportsImages?: boolean;\n /** Supports tool/function calling */\n supportsTools?: boolean;\n /** Supports streaming */\n supportsStreaming?: boolean;\n /** Supports JSON mode */\n supportsJson?: boolean;\n /** Pricing info */\n pricing?: {\n input: number; // per 1M tokens\n output: number;\n };\n}\n\nexport interface ProviderCapabilities {\n /** Supports multimodal input */\n multimodal?: boolean;\n /** Supports function calling */\n functionCalling?: boolean;\n /** Supports JSON output */\n json?: boolean;\n /** Supports system prompts */\n systemPrompt?: boolean;\n /** Supports temperature control */\n temperature?: boolean;\n /** Supports max tokens control */\n maxTokens?: boolean;\n /** Supports vision/image input */\n vision?: boolean;\n /** Supports streaming */\n streaming?: boolean;\n}\n\nexport interface ProviderStreamParams {\n /** Model ID */\n model: string;\n /** System prompt supplied to the provider request */\n systemPrompt?: string;\n /** Chat messages */\n messages: Array<AgentMessage>;\n /** Temperature (0-2) */\n temperature?: number;\n /** Maximum tokens to generate */\n maxTokens?: number;\n /** Tools/function definitions */\n tools?: unknown[];\n /** API key resolved for this provider, when available */\n apiKey?: string;\n /** Session identifier for provider-side caching/routing */\n sessionId?: string;\n /** Reasoning/thinking level requested by the agent runtime */\n reasoning?: string;\n /** Custom HTTP headers requested by the agent runtime */\n headers?: Record<string, string>;\n /** Request timeout in milliseconds */\n timeoutMs?: number;\n /** Maximum provider retry attempts */\n maxRetries?: number;\n /** Provider request metadata */\n metadata?: Record<string, unknown>;\n /** Prompt cache retention preference */\n cacheRetention?: string;\n /** Preferred transport, if the provider supports multiple transports */\n transport?: string;\n /** Custom token budgets for thinking levels */\n thinkingBudgets?: {\n minimal?: number;\n low?: number;\n medium?: number;\n high?: number;\n };\n /** Stop sequences */\n stop?: string[];\n /** Presence penalty */\n presencePenalty?: number;\n /** Frequency penalty */\n frequencyPenalty?: number;\n /** Top-p nucleus sampling */\n topP?: number;\n /** Abort signal */\n signal?: AbortSignal;\n /** Additional provider-specific params */\n extra?: Record<string, unknown>;\n}\n\nexport interface ProviderStreamChunk {\n /** Chunk type */\n type: 'text' | 'tool_call' | 'usage' | 'done' | 'error';\n /** Text content */\n text?: string;\n /** Tool call (function calling) */\n toolCall?: {\n id: string;\n name: string;\n arguments: string; // JSON string\n };\n /** Token usage */\n usage?: {\n input: number;\n output: number;\n total?: number;\n };\n /** Error message */\n error?: string;\n /** Finish reason */\n finishReason?: 'stop' | 'length' | 'content_filter' | 'tool_calls' | null;\n}\n\n// ============================================================================\n// Non-Streaming Provider (for simple providers)\n// ============================================================================\n\nexport interface ProviderCompleteParams extends ProviderStreamParams {\n /** Wait for complete response instead of streaming */\n stream?: false;\n}\n\nexport interface ProviderResponse {\n /** Response content */\n content: string;\n /** Tool calls */\n toolCalls?: Array<{\n id: string;\n name: string;\n arguments: Record<string, unknown>;\n }>;\n /** Token usage */\n usage?: {\n input: number;\n output: number;\n total: number;\n };\n /** Finish reason */\n finishReason: 'stop' | 'length' | 'content_filter' | 'tool_calls';\n /** Model used */\n model: string;\n /** Provider ID */\n provider: string;\n}\n\n// ============================================================================\n// Provider Registry\n// ============================================================================\n\nexport interface ProviderRegistry {\n /** Register a provider */\n register(provider: ProviderPlugin): void;\n /** Get a provider by ID */\n get(id: string): ProviderPlugin | undefined;\n /** List all providers */\n listAll(): ProviderPlugin[];\n /** Get models for a provider */\n getModels(providerId: string): ProviderModelDefinition[];\n /** Check if a provider is registered */\n has(id: string): boolean;\n /** Remove a provider */\n unregister(id: string): boolean;\n}\n\n// ============================================================================\n// Built-in Provider IDs\n// ============================================================================\n\nexport const BUILTIN_PROVIDERS = {\n OPENAI: 'openai',\n ANTHROPIC: 'anthropic',\n GEMINI: 'gemini',\n OLLAMA: 'ollama',\n CUSTOM: 'custom',\n} as const;\n\nexport type BuiltinProviderId = typeof BUILTIN_PROVIDERS[keyof typeof BUILTIN_PROVIDERS];\n"],"mappings":";AA8MA,MAAa,oBAAoB;CAC/B,QAAQ;CACR,WAAW;CACX,QAAQ;CACR,QAAQ;CACR,QAAQ;CACT"}