@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":"mobile.js","names":[],"sources":["../../../../../src/gateway/hono/routes/mobile.ts"],"sourcesContent":["import type { Hono } from 'hono';\n\nimport {\n acknowledgeMobileActivityEvent,\n listMobileActivityEvents,\n registerMobileDevice,\n removeMobileDevice,\n updateMobileDevicePreferences,\n} from '../../../mobile/notification-store.js';\nimport type {\n MobileNotificationPermission,\n MobileNotificationPreferences,\n MobilePlatform,\n} from '../../../mobile/notification-types.js';\n\nimport type { AuthenticatedRouteDeps } from './deps.js';\n\nfunction stringField(value: unknown, maxLength: number): string | null {\n return typeof value === 'string' && value.trim().length > 0 && value.trim().length <= maxLength\n ? value.trim()\n : null;\n}\n\nfunction parsePreferences(value: unknown): Partial<MobileNotificationPreferences> | null {\n if (value === undefined) return undefined;\n if (!value || typeof value !== 'object' || Array.isArray(value)) return null;\n const source = value as Record<string, unknown>;\n const result: Partial<MobileNotificationPreferences> = {};\n for (const key of ['needsInput', 'failed', 'completed', 'automationFailed'] as const) {\n if (source[key] === undefined) continue;\n if (typeof source[key] !== 'boolean') return null;\n result[key] = source[key];\n }\n return result;\n}\n\nfunction parsePlatform(value: unknown): MobilePlatform | null {\n return value === 'ios' || value === 'android' ? value : null;\n}\n\nfunction parsePermission(value: unknown): MobileNotificationPermission | null {\n return value === 'granted' || value === 'denied' || value === 'unknown' ? value : null;\n}\n\nfunction parseCursor(value: string | undefined): number | undefined {\n if (!value) return undefined;\n const parsed = Number.parseInt(value, 10);\n return Number.isFinite(parsed) && parsed > 0 ? parsed : undefined;\n}\n\nfunction parseLimit(value: string | undefined): number | undefined {\n if (!value) return undefined;\n const parsed = Number.parseInt(value, 10);\n return Number.isFinite(parsed) ? Math.max(1, Math.min(100, parsed)) : undefined;\n}\n\nexport function registerMobileRoutes(authenticated: Hono, _deps: AuthenticatedRouteDeps): void {\n authenticated.post('/api/mobile/devices/register', async (c) => {\n const body = await c.req.json().catch(() => null) as Record<string, unknown> | null;\n const id = stringField(body?.id, 160);\n const pushToken = stringField(body?.pushToken, 1024);\n const platform = parsePlatform(body?.platform);\n const permissions = parsePermission(body?.permissions);\n const preferences = parsePreferences(body?.preferences);\n const appVersion = body?.appVersion === undefined ? undefined : stringField(body.appVersion, 128);\n if (!id || !pushToken || !platform || !permissions || preferences === null || appVersion === null) {\n return c.json({ ok: false, error: 'Invalid mobile device registration' }, 400);\n }\n const device = registerMobileDevice({ id, pushToken, platform, permissions, preferences, appVersion });\n return c.json({ ok: true, device }, 201);\n });\n\n authenticated.patch('/api/mobile/devices/:id/preferences', async (c) => {\n const preferences = parsePreferences(await c.req.json().catch(() => null));\n if (preferences === null || preferences === undefined) {\n return c.json({ ok: false, error: 'Invalid notification preferences' }, 400);\n }\n const device = updateMobileDevicePreferences(c.req.param('id'), preferences);\n if (!device) return c.json({ ok: false, error: 'Mobile device not found' }, 404);\n return c.json({ ok: true, device });\n });\n\n authenticated.delete('/api/mobile/devices/:id', (c) => {\n return c.json({ ok: true, removed: removeMobileDevice(c.req.param('id')) });\n });\n\n authenticated.get('/api/mobile/activity', (c) => {\n const result = listMobileActivityEvents({\n cursor: parseCursor(c.req.query('cursor')),\n limit: parseLimit(c.req.query('limit')),\n });\n return c.json({ ok: true, ...result });\n });\n\n authenticated.post('/api/mobile/activity/:id/ack', async (c) => {\n const body = await c.req.json().catch(() => null) as { deviceId?: unknown } | null;\n const deviceId = stringField(body?.deviceId, 160);\n if (!deviceId) return c.json({ ok: false, error: 'deviceId is required' }, 400);\n const acknowledged = acknowledgeMobileActivityEvent(c.req.param('id'), deviceId);\n if (!acknowledged) return c.json({ ok: false, error: 'Activity event or mobile device not found' }, 404);\n return c.json({ ok: true });\n });\n}\n"],"mappings":";;AAiBA,SAAS,YAAY,OAAgB,WAAkC;AACrE,QAAO,OAAO,UAAU,YAAY,MAAM,MAAM,CAAC,SAAS,KAAK,MAAM,MAAM,CAAC,UAAU,YAClF,MAAM,MAAM,GACZ;;AAGN,SAAS,iBAAiB,OAA+D;AACvF,KAAI,UAAU,KAAA,EAAW,QAAO,KAAA;AAChC,KAAI,CAAC,SAAS,OAAO,UAAU,YAAY,MAAM,QAAQ,MAAM,CAAE,QAAO;CACxE,MAAM,SAAS;CACf,MAAM,SAAiD,EAAE;AACzD,MAAK,MAAM,OAAO;EAAC;EAAc;EAAU;EAAa;EAAmB,EAAW;AACpF,MAAI,OAAO,SAAS,KAAA,EAAW;AAC/B,MAAI,OAAO,OAAO,SAAS,UAAW,QAAO;AAC7C,SAAO,OAAO,OAAO;;AAEvB,QAAO;;AAGT,SAAS,cAAc,OAAuC;AAC5D,QAAO,UAAU,SAAS,UAAU,YAAY,QAAQ;;AAG1D,SAAS,gBAAgB,OAAqD;AAC5E,QAAO,UAAU,aAAa,UAAU,YAAY,UAAU,YAAY,QAAQ;;AAGpF,SAAS,YAAY,OAA+C;AAClE,KAAI,CAAC,MAAO,QAAO,KAAA;CACnB,MAAM,SAAS,OAAO,SAAS,OAAO,GAAG;AACzC,QAAO,OAAO,SAAS,OAAO,IAAI,SAAS,IAAI,SAAS,KAAA;;AAG1D,SAAS,WAAW,OAA+C;AACjE,KAAI,CAAC,MAAO,QAAO,KAAA;CACnB,MAAM,SAAS,OAAO,SAAS,OAAO,GAAG;AACzC,QAAO,OAAO,SAAS,OAAO,GAAG,KAAK,IAAI,GAAG,KAAK,IAAI,KAAK,OAAO,CAAC,GAAG,KAAA;;AAGxE,SAAgB,qBAAqB,eAAqB,OAAqC;AAC7F,eAAc,KAAK,gCAAgC,OAAO,MAAM;EAC9D,MAAM,OAAO,MAAM,EAAE,IAAI,MAAM,CAAC,YAAY,KAAK;EACjD,MAAM,KAAK,YAAY,MAAM,IAAI,IAAI;EACrC,MAAM,YAAY,YAAY,MAAM,WAAW,KAAK;EACpD,MAAM,WAAW,cAAc,MAAM,SAAS;EAC9C,MAAM,cAAc,gBAAgB,MAAM,YAAY;EACtD,MAAM,cAAc,iBAAiB,MAAM,YAAY;EACvD,MAAM,aAAa,MAAM,eAAe,KAAA,IAAY,KAAA,IAAY,YAAY,KAAK,YAAY,IAAI;AACjG,MAAI,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,eAAe,gBAAgB,QAAQ,eAAe,KAC3F,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAsC,EAAE,IAAI;EAEhF,MAAM,SAAS,qBAAqB;GAAE;GAAI;GAAW;GAAU;GAAa;GAAa;GAAY,CAAC;AACtG,SAAO,EAAE,KAAK;GAAE,IAAI;GAAM;GAAQ,EAAE,IAAI;GACxC;AAEF,eAAc,MAAM,uCAAuC,OAAO,MAAM;EACtE,MAAM,cAAc,iBAAiB,MAAM,EAAE,IAAI,MAAM,CAAC,YAAY,KAAK,CAAC;AAC1E,MAAI,gBAAgB,QAAQ,gBAAgB,KAAA,EAC1C,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAoC,EAAE,IAAI;EAE9E,MAAM,SAAS,8BAA8B,EAAE,IAAI,MAAM,KAAK,EAAE,YAAY;AAC5E,MAAI,CAAC,OAAQ,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAA2B,EAAE,IAAI;AAChF,SAAO,EAAE,KAAK;GAAE,IAAI;GAAM;GAAQ,CAAC;GACnC;AAEF,eAAc,OAAO,4BAA4B,MAAM;AACrD,SAAO,EAAE,KAAK;GAAE,IAAI;GAAM,SAAS,mBAAmB,EAAE,IAAI,MAAM,KAAK,CAAC;GAAE,CAAC;GAC3E;AAEF,eAAc,IAAI,yBAAyB,MAAM;EAC/C,MAAM,SAAS,yBAAyB;GACtC,QAAQ,YAAY,EAAE,IAAI,MAAM,SAAS,CAAC;GAC1C,OAAO,WAAW,EAAE,IAAI,MAAM,QAAQ,CAAC;GACxC,CAAC;AACF,SAAO,EAAE,KAAK;GAAE,IAAI;GAAM,GAAG;GAAQ,CAAC;GACtC;AAEF,eAAc,KAAK,gCAAgC,OAAO,MAAM;EAE9D,MAAM,WAAW,aAAY,MADV,EAAE,IAAI,MAAM,CAAC,YAAY,KAAK,GACd,UAAU,IAAI;AACjD,MAAI,CAAC,SAAU,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAwB,EAAE,IAAI;AAE/E,MAAI,CADiB,+BAA+B,EAAE,IAAI,MAAM,KAAK,EAAE,SACtD,CAAE,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAA6C,EAAE,IAAI;AACxG,SAAO,EAAE,KAAK,EAAE,IAAI,MAAM,CAAC;GAC3B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"models.js","names":["getModelsJsonPath"],"sources":["../../../../../src/gateway/hono/routes/models.ts"],"sourcesContent":["import type { Hono } from 'hono';\n\nimport {\n getModelsJsonPath,\n loadModelsJson,\n saveModelsJson,\n validateModelsConfig,\n type ProviderConfig,\n} from '../../../config/models-json.js';\nimport type { Config } from '../../../config/schema.js';\nimport { parseModelRef } from '../../../config/schema.js';\nimport { testApiKeyResolution } from '../../../config/resolve-config-value.js';\nimport {\n getImageGenerationProvider,\n listImageGenerationProvidersSummary,\n} from '../../../agent/image/generation/runtime.js';\nimport {\n EXTENSION_PROVIDER_BASE_URL,\n getAllModels,\n getAvailableModels,\n getModelRegistry,\n getAllProviders,\n getProviderAuthState,\n isProviderConfigured,\n PROVIDER_META,\n resolveModel,\n} from '../../../providers/index.js';\nimport {\n getProviderHint,\n getOnboardingFeaturedProviders,\n getRecommendedModelsForProvider,\n isRecommendedModel,\n sortModelsForPicker,\n sortProvidersForPicker,\n} from '../../../providers/presentation.js';\nimport {\n getDomesticProviderPreset,\n getDomesticProviderPresetIds,\n} from '../../../providers/domestic-presets.js';\nimport { discoverProviderModels, isProviderApiDiscoverable } from '../../../providers/model-discovery.js';\nimport { CredentialResolver } from '../../../auth/credentials.js';\nimport { getProviderRegistry } from '../../../providers/plugin-registry.js';\nimport type { ProviderModelDefinition } from '../../../extensions/types/providers.js';\nimport type { GatewayService } from '../../service.js';\nimport {\n resolveCurrentImageModelCapabilities,\n resolveImageGenerationCapabilities,\n resolveImageUnderstandingCapabilities,\n} from '../../image-capabilities.js';\nimport type { AuthenticatedRouteDeps } from './deps.js';\nimport { respondStartupUnavailable } from '../lib/startup-unavailable.js';\n\nfunction readModelsJsonProviderApiKey(providerId: string): string | undefined {\n const { config } = loadModelsJson(getModelsJsonPath());\n const entry = config.providers?.[providerId.trim()];\n const key = entry?.apiKey;\n return typeof key === 'string' && key.trim() ? key.trim() : undefined;\n}\n\nfunction readStringRecord(value: unknown): Record<string, string> | undefined {\n if (!value || typeof value !== 'object' || Array.isArray(value)) return undefined;\n const entries = Object.entries(value as Record<string, unknown>).filter(\n (entry): entry is [string, string] => typeof entry[1] === 'string',\n );\n return entries.length > 0 ? Object.fromEntries(entries) : undefined;\n}\n\n/** Plaintext key only when persisted under `cfg.providers.<id>.apiKey` (not env / credential store). */\nfunction readProviderApiKeyFromConfigFileOnly(cfg: Config, providerId: string): string | undefined {\n const id = providerId.trim().toLowerCase();\n const bucket = cfg.providers?.[id];\n if (!bucket || typeof bucket !== 'object' || Array.isArray(bucket)) return undefined;\n const k = (bucket as { apiKey?: unknown }).apiKey;\n return typeof k === 'string' && k.trim() ? k.trim() : undefined;\n}\n\n/** Extension id from manifest `providers[]` (e.g. provider `demo` → extension `demo-provider`). */\nfunction resolveExtensionIdForProvider(service: GatewayService, providerId: string): string | undefined {\n const loader = service.getExtensionLoader();\n if (!loader) return undefined;\n return loader.buildManifestRegistry().findByProvider(providerId)?.id;\n}\n\n/** Effective LLM REST base URL for a provider (models.json overrides included). */\nfunction resolveProviderApiBaseUrl(providerId: string): string | undefined {\n const model = getModelRegistry().getAll().find((m) => m.provider === providerId);\n if (!model?.baseUrl || model.baseUrl === EXTENSION_PROVIDER_BASE_URL) return undefined;\n return model.baseUrl;\n}\n\nfunction mapPluginModel(providerId: string, model: ProviderModelDefinition, available: boolean) {\n return {\n id: `${providerId}/${model.id}`,\n name: model.name,\n provider: providerId,\n contextWindow: model.contextWindow ?? 128000,\n maxTokens: model.maxOutputTokens ?? 4096,\n reasoning: false,\n vision: model.supportsImages ?? false,\n cost: { input: model.pricing?.input ?? 0, output: model.pricing?.output ?? 0 },\n available,\n recommended: isRecommendedModel(providerId, model.id),\n source: 'extension' as const,\n };\n}\n\nexport function registerModelsRoutes(authenticated: Hono, deps: AuthenticatedRouteDeps): void {\n const { service, strictRateLimitMiddleware } = deps;\n\n // GET /api/models-json - Get models.json configuration\n authenticated.get('/api/models-json', async (c) => {\n const path = getModelsJsonPath();\n const { config, error } = loadModelsJson(path);\n const registry = getModelRegistry();\n \n return c.json({\n ok: true,\n payload: {\n config,\n path,\n exists: error === undefined,\n loadError: error || registry.getError(),\n },\n });\n });\n\n // POST /api/models-json/validate - Validate models.json configuration\n authenticated.post('/api/models-json/validate', async (c) => {\n const body = await c.req.json();\n const { config } = body;\n \n const result = validateModelsConfig(config);\n \n return c.json({\n ok: true,\n payload: result,\n });\n });\n\n // PATCH /api/models-json - Save models.json configuration\n authenticated.patch('/api/models-json', async (c) => {\n const body = await c.req.json();\n const { config } = body;\n \n const path = getModelsJsonPath();\n const result = saveModelsJson(path, config);\n \n if (!result.success) {\n return c.json({ ok: false, error: result.error }, 400);\n }\n \n // Refresh registry\n const registry = getModelRegistry();\n registry.refresh();\n \n // Emit event\n service.emit('models-json.updated', { \n modelCount: registry.getAll().length,\n });\n \n return c.json({ \n ok: true, \n payload: { \n saved: true,\n modelCount: registry.getAll().length,\n },\n });\n });\n\n // POST /api/models-json/reload - Hot reload models.json\n authenticated.post('/api/models-json/reload', async (c) => {\n const registry = getModelRegistry();\n registry.refresh();\n \n const error = registry.getError();\n const models = registry.getAll();\n \n service.emit('models-json.reloaded', { \n modelCount: models.length,\n error: error || undefined,\n });\n \n return c.json({\n ok: true,\n payload: {\n modelCount: models.length,\n error,\n },\n });\n });\n\n // POST /api/models-json/test-api-key - Test API key resolution\n authenticated.post('/api/models-json/test-api-key', async (c) => {\n const body = await c.req.json();\n const { value } = body;\n \n const result = testApiKeyResolution(value);\n \n return c.json({\n ok: true,\n payload: result,\n });\n });\n\n // POST /api/models-json/discover-models - Best-effort /models discovery for OpenAI-compatible providers\n authenticated.post('/api/models-json/discover-models', strictRateLimitMiddleware, async (c) => {\n const body = await c.req.json().catch(() => ({}));\n const rawProviderId = typeof body.providerId === 'string' ? body.providerId.trim() : '';\n const rawBaseUrl = typeof body.baseUrl === 'string' ? body.baseUrl.trim() : '';\n const rawApiKey = typeof body.apiKey === 'string' ? body.apiKey.trim() : undefined;\n const api = typeof body.api === 'string' ? body.api : undefined;\n const headers = readStringRecord(body.headers);\n\n if (!rawProviderId) {\n return c.json({ ok: false, error: { message: 'Missing providerId' } }, 400);\n }\n if (!rawBaseUrl || !URL.canParse(rawBaseUrl)) {\n return c.json({ ok: false, error: { message: 'Missing or invalid baseUrl' } }, 400);\n }\n const providerApi = api as ProviderConfig['api'];\n if (!isProviderApiDiscoverable(providerApi)) {\n return c.json({ ok: false, error: { message: 'Model discovery requires an OpenAI-compatible API type' } }, 400);\n }\n\n try {\n const models = await discoverProviderModels({\n providerId: rawProviderId,\n baseUrl: rawBaseUrl,\n apiKey: rawApiKey,\n api: providerApi,\n headers,\n });\n return c.json({\n ok: true,\n payload: {\n models: models.map((model) => ({\n id: model.id,\n name: model.name ?? model.id,\n input: model.input ?? ['text'],\n source: model.source,\n })),\n },\n });\n } catch (error) {\n return c.json(\n { ok: false, error: { message: error instanceof Error ? error.message : String(error) } },\n 502,\n );\n }\n });\n\n // GET /api/models - Get available models (only configured providers)\n authenticated.get('/api/models', async (c) => {\n if (!service.isGatewayReady()) {\n return respondStartupUnavailable(c, 'models.list');\n }\n const pluginRegistry = getProviderRegistry();\n const models = sortModelsForPicker(await getAvailableModels()).map(m => ({\n id: `${m.provider}/${m.id}`,\n name: m.name,\n provider: m.provider,\n contextWindow: m.contextWindow ?? 128000,\n maxTokens: m.maxTokens ?? 4096,\n reasoning: m.reasoning ?? false,\n vision: m.input?.includes('image') ?? false,\n recommended: isRecommendedModel(m.provider, m.id),\n cost: {\n input: m.cost?.input ?? 0,\n output: m.cost?.output ?? 0,\n },\n ...(pluginRegistry.has(m.provider) ? { source: 'extension' as const } : {}),\n }));\n\n const existingIds = new Set(models.map(m => m.id));\n for (const plugin of pluginRegistry.listAll()) {\n for (const model of plugin.models) {\n const compositeId = `${plugin.id}/${model.id}`;\n if (!existingIds.has(compositeId)) {\n models.push(mapPluginModel(plugin.id, model, true));\n existingIds.add(compositeId);\n }\n }\n }\n\n models.sort((a, b) => {\n if (a.recommended !== b.recommended) return a.recommended ? -1 : 1;\n if (a.provider !== b.provider) return a.provider.localeCompare(b.provider);\n return a.name.localeCompare(b.name, undefined, { sensitivity: 'base' });\n });\n\n return c.json({ ok: true, payload: { models } });\n });\n\n authenticated.get('/api/image/capabilities', async (c) => {\n const config = service.currentConfig as Config;\n const agentId = c.req.query('agentId')?.trim() || undefined;\n const imageGenerationProviders = await resolveImageGenerationCapabilities(config);\n const imageUnderstandingProviders = await resolveImageUnderstandingCapabilities(config);\n return c.json({\n ok: true,\n payload: {\n current: resolveCurrentImageModelCapabilities(config, agentId),\n imageGeneration: { providers: imageGenerationProviders },\n imageUnderstanding: { providers: imageUnderstandingProviders },\n },\n });\n });\n\n authenticated.post('/api/image/validate-model', strictRateLimitMiddleware, async (c) => {\n let body: { modelRef?: unknown };\n try {\n body = (await c.req.json()) as { modelRef?: unknown };\n } catch {\n return c.json({ ok: false, error: 'Invalid JSON' }, 400);\n }\n const modelRef = body.modelRef;\n if (!modelRef || typeof modelRef !== 'string') {\n return c.json({ ok: false, error: 'modelRef is required' }, 400);\n }\n\n const parsed = parseModelRef(modelRef);\n if (!parsed) {\n return c.json({\n ok: true,\n payload: {\n valid: false,\n reason: 'invalid_format',\n message: 'Model reference must be in \"provider/model\" format',\n },\n });\n }\n\n const configured = await isProviderConfigured(parsed.provider);\n if (!configured) {\n return c.json({\n ok: true,\n payload: {\n valid: false,\n reason: 'provider_not_configured',\n message: `Provider \"${parsed.provider}\" is not configured. Set the API key first.`,\n provider: parsed.provider,\n },\n });\n }\n\n try {\n resolveModel(modelRef);\n } catch {\n return c.json({\n ok: true,\n payload: {\n valid: false,\n reason: 'model_not_found',\n message: `Model not found in registry: ${modelRef}`,\n provider: parsed.provider,\n model: parsed.model,\n },\n });\n }\n\n return c.json({\n ok: true,\n payload: {\n valid: true,\n provider: parsed.provider,\n model: parsed.model,\n },\n });\n });\n\n // GET /api/image/providers — registered image generation providers and models (not in LLM model registry)\n authenticated.get('/api/image/providers', (c) => {\n const cfg = deps.service.currentConfig;\n const summaries = listImageGenerationProvidersSummary(cfg);\n const providers = summaries.map((p) => {\n const provider = getImageGenerationProvider(p.id, cfg);\n let configured = false;\n try {\n configured = provider?.isConfigured?.({ cfg }) === true;\n } catch {\n configured = false;\n }\n return { ...p, configured };\n });\n return c.json({ ok: true, payload: { providers } });\n });\n\n // POST /api/image/providers/:id/test — lightweight credential probe; does NOT\n // hit the vendor (no quota burn). Returns `{ ok, configured, reason }`.\n authenticated.post('/api/image/providers/:id/test', (c) => {\n const id = c.req.param('id');\n const cfg = deps.service.currentConfig;\n const provider = getImageGenerationProvider(id, cfg);\n if (!provider) {\n return c.json(\n { ok: false, error: { message: `Image generation provider not found: ${id}` } },\n 404,\n );\n }\n let configured = false;\n let reason: string | undefined;\n try {\n configured = provider.isConfigured?.({ cfg }) === true;\n if (!configured) reason = 'Missing API key (set via config or environment).';\n } catch (err) {\n reason = err instanceof Error ? err.message : String(err);\n }\n return c.json({\n ok: true,\n payload: {\n id: provider.id,\n configured,\n ...(reason ? { reason } : {}),\n defaultModel: provider.defaultModel ?? null,\n },\n });\n });\n\n /**\n * POST /api/image/providers/:id/reveal-api-key — return `cfg.providers.<id>.apiKey` plaintext for the\n * gateway console (same auth as PATCH /api/config). Does not resolve env vars or credential files.\n */\n authenticated.post(\n '/api/image/providers/:id/reveal-api-key',\n strictRateLimitMiddleware,\n async (c) => {\n const rawId = c.req.param('id');\n const cfg = deps.service.currentConfig;\n const provider = getImageGenerationProvider(rawId, cfg);\n if (!provider) {\n return c.json(\n { ok: false, error: { message: `Image generation provider not found: ${rawId}` } },\n 404,\n );\n }\n const apiKey = readProviderApiKeyFromConfigFileOnly(cfg, provider.id);\n return c.json({\n ok: true,\n payload: {\n id: provider.id,\n apiKey: apiKey ?? null,\n source: apiKey ? ('config' as const) : ('none' as const),\n },\n });\n },\n );\n\n // GET /api/providers - Get ALL available providers and models\n authenticated.get('/api/providers', async (c) => {\n const pluginRegistry = getProviderRegistry();\n const allModels = getAllModels();\n const availableModels = await getAvailableModels();\n const configured = new Set(availableModels.map(m => `${m.provider}/${m.id}`));\n\n const models = sortModelsForPicker(allModels).map(m => ({\n id: `${m.provider}/${m.id}`,\n name: m.name,\n provider: m.provider,\n contextWindow: m.contextWindow ?? 128000,\n maxTokens: m.maxTokens ?? 4096,\n reasoning: m.reasoning ?? false,\n vision: m.input?.includes('image') ?? false,\n recommended: isRecommendedModel(m.provider, m.id),\n cost: {\n input: m.cost?.input ?? 0,\n output: m.cost?.output ?? 0,\n },\n available: configured.has(`${m.provider}/${m.id}`),\n ...(pluginRegistry.has(m.provider) ? { source: 'extension' as const } : {}),\n }));\n\n const existingIds = new Set(models.map(m => m.id));\n for (const plugin of pluginRegistry.listAll()) {\n for (const model of plugin.models) {\n const compositeId = `${plugin.id}/${model.id}`;\n if (!existingIds.has(compositeId)) {\n models.push(mapPluginModel(plugin.id, model, configured.has(compositeId)));\n existingIds.add(compositeId);\n }\n }\n }\n\n models.sort((a, b) => {\n if (a.recommended !== b.recommended) return a.recommended ? -1 : 1;\n if (a.provider !== b.provider) return a.provider.localeCompare(b.provider);\n return a.name.localeCompare(b.name, undefined, { sensitivity: 'base' });\n });\n\n return c.json({ ok: true, payload: { models } });\n });\n\n // GET /api/providers/meta - Get provider metadata (categories, display names)\n authenticated.get('/api/providers/meta', async (c) => {\n const providers = sortProvidersForPicker([...new Set([...getAllProviders(), ...getDomesticProviderPresetIds()])]);\n const pluginRegistry = getProviderRegistry();\n\n const meta = await Promise.all(\n providers.map(async (provider) => {\n const plugin = pluginRegistry.get(provider);\n const domesticPreset = getDomesticProviderPreset(provider);\n const extensionId = plugin\n ? resolveExtensionIdForProvider(service, provider)\n : undefined;\n const authState = await getProviderAuthState(provider);\n const configured = authState.authMode !== 'none' || (await isProviderConfigured(provider));\n const registryModelCount = getAllModels().filter((m) => m.provider === provider).length;\n return {\n id: provider,\n name: plugin?.name ?? domesticPreset?.displayName ?? PROVIDER_META[provider]?.name ?? provider,\n category: plugin ? ('extension' as const) : PROVIDER_META[provider]?.category || (domesticPreset ? 'domestic' : 'specialty'),\n supportsOAuth: plugin ? false : (PROVIDER_META[provider]?.supportsOAuth ?? false),\n supportsApiKey: plugin ? false : (PROVIDER_META[provider]?.supportsApiKey ?? true),\n configured,\n onboardingFeatured: getOnboardingFeaturedProviders().includes(provider),\n recommendedModels: getRecommendedModelsForProvider(provider),\n modelCount: registryModelCount || domesticPreset?.models.length || 0,\n ...(getProviderHint(provider) ? { hint: getProviderHint(provider) } : {}),\n activeKeySource: authState.authMode,\n authMode: authState.authMode,\n authStatus: authState.authStatus,\n ...(authState.expiresAt ? { expiresAt: authState.expiresAt } : {}),\n baseUrl: resolveProviderApiBaseUrl(provider),\n ...(extensionId ? { extensionId } : {}),\n };\n }),\n );\n\n const knownProviderIds = new Set(providers);\n for (const plugin of pluginRegistry.listAll()) {\n if (!knownProviderIds.has(plugin.id)) {\n const extensionId = resolveExtensionIdForProvider(service, plugin.id);\n meta.push({\n id: plugin.id,\n name: plugin.name,\n category: 'extension',\n supportsOAuth: false,\n supportsApiKey: false,\n configured: true,\n onboardingFeatured: false,\n recommendedModels: getRecommendedModelsForProvider(plugin.id),\n modelCount: plugin.models.length,\n activeKeySource: 'extension',\n authMode: 'extension',\n authStatus: 'connected',\n baseUrl: resolveProviderApiBaseUrl(plugin.id),\n ...(extensionId ? { extensionId } : {}),\n });\n }\n }\n\n return c.json({ ok: true, payload: { providers: meta } });\n });\n\n /**\n * POST /api/providers/:providerId/reveal-api-key — plaintext key when stored in the\n * gateway credential store or models.json (not env vars or OAuth tokens).\n */\n authenticated.post(\n '/api/providers/:providerId/reveal-api-key',\n strictRateLimitMiddleware,\n async (c) => {\n const rawId = c.req.param('providerId')?.trim();\n if (!rawId) {\n return c.json({ ok: false, error: { message: 'Missing providerId' } }, 400);\n }\n const providerId = rawId.toLowerCase();\n const resolver = new CredentialResolver();\n const stored = await resolver.revealGatewayStoredApiKey(providerId);\n if (stored) {\n return c.json({\n ok: true,\n payload: { id: providerId, apiKey: stored, source: 'credential' as const },\n });\n }\n const fromModelsJson = readModelsJsonProviderApiKey(providerId);\n if (fromModelsJson) {\n return c.json({\n ok: true,\n payload: { id: providerId, apiKey: fromModelsJson, source: 'models_json' as const },\n });\n }\n return c.json({\n ok: true,\n payload: { id: providerId, apiKey: null, source: 'none' as const },\n });\n },\n );\n\n // DELETE /api/providers/:providerId/key - Remove a provider's stored API key\n authenticated.delete('/api/providers/:providerId/key', strictRateLimitMiddleware, async (c) => {\n const providerId = c.req.param('providerId');\n if (!providerId) {\n return c.json({ ok: false, error: { message: 'Missing providerId' } }, 400);\n }\n\n const normalizedProvider = providerId.toLowerCase();\n const resolver = new CredentialResolver();\n\n try {\n await resolver.deleteProviderCredential(normalizedProvider);\n return c.json({ ok: true, payload: { deleted: normalizedProvider } });\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n return c.json({ ok: false, error: { message: `Failed to delete key: ${errorMessage}` } }, 500);\n }\n });\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"notes.js","names":[],"sources":["../../../../../src/gateway/hono/routes/notes.ts"],"sourcesContent":["import { createReadStream } from 'node:fs';\nimport { access, stat } from 'node:fs/promises';\nimport { Readable } from 'node:stream';\n\nimport type { Hono } from 'hono';\nimport { stream } from 'hono/streaming';\n\nimport { buildSessionKey } from '../../../routing/session-key.js';\nimport { agentExists, getDefaultAgentId } from '../../../routing/resolve-route.js';\nimport type { CaptureChannel, CaptureSource, Note, NoteKind, NoteStatus, SnapshotTrigger } from '../../../notes/types.js';\nimport type { AuthenticatedRouteDeps } from './deps.js';\n\nconst VALID_KINDS = new Set<NoteKind>(['thought', 'todo', 'voice', 'media', 'bookmark', 'mixed', 'task']);\nconst VALID_STATUSES = new Set<NoteStatus>(['inbox', 'processed', 'archived', 'trashed']);\nconst VALID_CHANNELS = new Set<CaptureChannel>(['app', 'web', 'electron', 'tui', 'telegram', 'wechat', 'feishu']);\n\nfunction noteNotFound() {\n return { error: 'Note not found', code: 'note_not_found' };\n}\n\nfunction parseCaptureSource(body: Record<string, unknown>): CaptureSource {\n const channel = typeof body.channel === 'string' && VALID_CHANNELS.has(body.channel as CaptureChannel)\n ? (body.channel as CaptureChannel)\n : 'web';\n const platform = body.platform === 'ios' || body.platform === 'android' ? body.platform : undefined;\n return { channel, platform };\n}\n\nfunction buildNotePatch(body: Record<string, unknown>): Partial<Note> {\n const patch: Partial<Note> = {};\n if (typeof body.title === 'string') patch.title = body.title;\n if (typeof body.markdown === 'string') patch.markdown = body.markdown;\n if (typeof body.kind === 'string' && VALID_KINDS.has(body.kind as NoteKind)) patch.kind = body.kind as NoteKind;\n if (typeof body.status === 'string' && VALID_STATUSES.has(body.status as NoteStatus)) patch.status = body.status as NoteStatus;\n if (Array.isArray(body.tags)) patch.tags = body.tags.filter((tag): tag is string => typeof tag === 'string');\n if (typeof body.pinned === 'boolean') patch.pinned = body.pinned;\n if (typeof body.localVersion === 'number') patch.localVersion = body.localVersion;\n if (body.ai && typeof body.ai === 'object') patch.ai = body.ai as Note['ai'];\n if (body.aiDeep && typeof body.aiDeep === 'object') patch.aiDeep = body.aiDeep as Note['aiDeep'];\n return patch;\n}\n\nfunction noteThreadName(note: Note): string {\n const title = note.title?.trim() || note.markdown.trim().slice(0, 28) || '未命名笔记';\n return `讨论:${title}`;\n}\n\nexport function registerNotesRoutes(authenticated: Hono, deps: AuthenticatedRouteDeps): void {\n const { service } = deps;\n\n // POST /api/notes/quick-capture — minimal text capture\n authenticated.post('/api/notes/quick-capture', async (c) => {\n const body = await c.req.json().catch(() => ({}));\n const text = typeof body.text === 'string' ? body.text.trim() : '';\n if (!text) {\n return c.json({ error: 'Missing required field: text' }, 400);\n }\n const source = parseCaptureSource(body);\n const note = await service.notesServiceInstance.quickCapture(text, source);\n return c.json({ note }, 201);\n });\n\n // GET /api/notes — list with filters\n authenticated.get('/api/notes', async (c) => {\n const status = c.req.query('status') as NoteStatus | undefined;\n const kind = c.req.query('kind') as NoteKind | undefined;\n const tag = c.req.query('tag');\n const search = c.req.query('search');\n const pinnedRaw = c.req.query('pinned');\n const limitRaw = c.req.query('limit');\n const offsetRaw = c.req.query('offset');\n const sortBy = c.req.query('sortBy') as 'createdAt' | 'updatedAt' | 'lastOpenedAt' | undefined;\n const sortOrder = c.req.query('sortOrder') as 'asc' | 'desc' | undefined;\n\n const result = await service.notesServiceInstance.listNotes({\n status: status && VALID_STATUSES.has(status) ? status : undefined,\n kind: kind && VALID_KINDS.has(kind) ? kind : undefined,\n tag: tag || undefined,\n search: search || undefined,\n pinned: pinnedRaw === 'true' ? true : pinnedRaw === 'false' ? false : undefined,\n limit: limitRaw ? parseInt(limitRaw, 10) : undefined,\n offset: offsetRaw ? parseInt(offsetRaw, 10) : undefined,\n sortBy: sortBy === 'createdAt' || sortBy === 'updatedAt' || sortBy === 'lastOpenedAt' ? sortBy : undefined,\n sortOrder: sortOrder === 'asc' || sortOrder === 'desc' ? sortOrder : undefined,\n });\n return c.json(result);\n });\n\n // POST /api/notes — full create (JSON or multipart)\n authenticated.post('/api/notes', async (c) => {\n const contentType = c.req.header('content-type') || '';\n\n if (contentType.includes('multipart/form-data')) {\n let body: Record<string, unknown>;\n try {\n body = await c.req.parseBody({ all: true });\n } catch {\n return c.json({ error: 'Invalid multipart body' }, 400);\n }\n\n const markdown = typeof body.markdown === 'string' ? body.markdown.trim() : undefined;\n const kindRaw = typeof body.kind === 'string' ? body.kind : undefined;\n const tagsRaw = typeof body.tags === 'string' ? body.tags : undefined;\n const source = parseCaptureSource(body as Record<string, unknown>);\n\n const note = await service.notesServiceInstance.createNote({\n markdown,\n kind: kindRaw && VALID_KINDS.has(kindRaw as NoteKind) ? (kindRaw as NoteKind) : undefined,\n tags: tagsRaw ? tagsRaw.split(',').map((t) => t.trim()).filter(Boolean) : undefined,\n capturedVia: source,\n });\n\n const file = body.file;\n if (file && typeof file === 'object') {\n let buf: Buffer | null = null;\n let fileName = 'upload';\n let mimeType = 'application/octet-stream';\n\n if (file instanceof File) {\n buf = Buffer.from(await file.arrayBuffer());\n fileName = file.name || fileName;\n mimeType = file.type || mimeType;\n } else if (typeof (file as Blob).arrayBuffer === 'function') {\n buf = Buffer.from(await (file as Blob).arrayBuffer());\n }\n\n if (buf) {\n const durationRaw = body.duration;\n const duration =\n typeof durationRaw === 'string'\n ? parseInt(durationRaw, 10)\n : typeof durationRaw === 'number'\n ? durationRaw\n : undefined;\n await service.notesServiceInstance.addAttachment(note.id, {\n name: fileName,\n buffer: buf,\n mimeType,\n duration: Number.isFinite(duration) ? duration : undefined,\n });\n }\n }\n\n const full = await service.notesServiceInstance.getNote(note.id);\n return c.json({ note: full }, 201);\n }\n\n // JSON body\n const body = await c.req.json().catch(() => ({}));\n const title = typeof body.title === 'string' ? body.title.trim() : undefined;\n const markdown = typeof body.markdown === 'string' ? body.markdown.trim() : undefined;\n const kindRaw = typeof body.kind === 'string' ? body.kind : undefined;\n const tagsRaw = Array.isArray(body.tags) ? body.tags.filter((t: unknown) => typeof t === 'string') : undefined;\n const source = parseCaptureSource(body);\n\n const note = await service.notesServiceInstance.createNote({\n title,\n markdown,\n kind: kindRaw && VALID_KINDS.has(kindRaw as NoteKind) ? (kindRaw as NoteKind) : undefined,\n tags: tagsRaw,\n capturedVia: source,\n pinned: body.pinned === true,\n });\n return c.json({ note }, 201);\n });\n\n // POST /api/notes/sync — local-first markdown sync with optimistic conflict check\n authenticated.post('/api/notes/sync', async (c) => {\n const body = await c.req.json().catch(() => ({}));\n const noteId = typeof body.noteId === 'string' ? body.noteId : '';\n if (!noteId) {\n return c.json({ error: 'Missing required field: noteId' }, 400);\n }\n\n const baseRemoteVersion = typeof body.baseRemoteVersion === 'number' ? body.baseRemoteVersion : undefined;\n const patch = buildNotePatch(body);\n const result = await service.notesServiceInstance.syncNote(noteId, patch, baseRemoteVersion);\n if (!result.note) {\n return c.json(noteNotFound(), 404);\n }\n if (result.conflict) {\n return c.json({ conflict: true, note: result.note }, 409);\n }\n return c.json({ conflict: false, note: result.note });\n });\n\n // POST /api/notes/:id/catalyze — generate an AI catalysis report and write it back\n authenticated.post('/api/notes/:id/catalyze', async (c) => {\n const result = await service.notesServiceInstance.catalyzeNote(c.req.param('id'), service.currentConfig);\n if (!result) {\n return c.json(noteNotFound(), 404);\n }\n return c.json(result);\n });\n\n // POST /api/notes/:id/catalysis-feedback — record whether the catalysis was useful\n authenticated.post('/api/notes/:id/catalysis-feedback', async (c) => {\n const body = await c.req.json().catch(() => ({}));\n const feedback = body.feedback;\n if (feedback !== 'helpful' && feedback !== 'not_helpful' && feedback !== 'neutral') {\n return c.json({ error: 'Invalid feedback' }, 400);\n }\n const note = await service.notesServiceInstance.recordCatalysisFeedback(c.req.param('id'), feedback);\n if (!note) {\n return c.json(noteNotFound(), 404);\n }\n return c.json({ note });\n });\n\n // POST /api/notes/:id/chat — create or reuse a note-bound web chat thread\n authenticated.post('/api/notes/:id/chat', async (c) => {\n const noteId = c.req.param('id');\n const note = await service.notesServiceInstance.getNote(noteId);\n if (!note) {\n return c.json(noteNotFound(), 404);\n }\n\n const body = await c.req.json().catch(() => ({}));\n const routingCfg = service.currentConfig;\n let agentId =\n typeof body.agentId === 'string' && body.agentId.trim()\n ? body.agentId.trim().toLowerCase()\n : getDefaultAgentId(routingCfg);\n if (!agentExists(agentId, routingCfg)) {\n agentId = getDefaultAgentId(routingCfg);\n }\n\n const sourceBinding = {\n kind: 'note' as const,\n sourceId: noteId,\n version: String(note.updatedAt),\n attachedAt: Date.now(),\n };\n const forceNew = body.forceNew === true;\n const existingKey = note.aiDeep?.catalysis?.sourceSessionKey;\n if (!forceNew && existingKey) {\n const existingSession = await service.sessions.getSession(existingKey);\n if (existingSession) {\n const meta = await service.sessionIndexInstance.getSessionMetadata(existingKey);\n await service.sessionIndexInstance.updateSessionMetadata(existingKey, {\n customData: {\n ...(meta?.customData ?? {}),\n genericNewChatShell: false,\n sourceBinding,\n },\n });\n return c.json({ session: existingSession, sessionKey: existingKey, reused: true, sourceBinding });\n }\n }\n\n const peerId = `note_${noteId}_${Date.now()}`;\n const sessionKey = buildSessionKey({\n agentId,\n source: 'webchat',\n accountId: 'default',\n peerKind: 'direct',\n peerId,\n });\n\n await service.sessionIndexInstance.saveMessages(sessionKey, [], {\n metadata: {\n sourceChannel: 'webchat',\n sourceChatId: `default:direct:${peerId}`,\n sessionType: 'chat',\n hiddenFromSessionList: true,\n routing: {\n agentId,\n source: 'webchat',\n accountId: 'default',\n peerKind: 'direct',\n peerId,\n },\n },\n });\n\n const meta = await service.sessionIndexInstance.getSessionMetadata(sessionKey);\n await service.sessionIndexInstance.updateSessionMetadata(sessionKey, {\n name: noteThreadName(note),\n tags: Array.from(new Set([...(meta?.tags ?? []), 'note'])),\n customData: {\n ...(meta?.customData ?? {}),\n genericNewChatShell: false,\n sourceBinding,\n },\n });\n\n await service.notesServiceInstance.linkNoteThread(noteId, sessionKey);\n const session = await service.sessions.getSession(sessionKey);\n return c.json({ session, sessionKey, reused: false, sourceBinding }, 201);\n });\n\n function noteContextStatusPayload(result: NonNullable<Awaited<ReturnType<typeof service.notesServiceInstance.getAgentContextStatus>>>) {\n const artifact = result.artifact;\n return {\n noteUpdatedAt: result.noteUpdatedAt,\n stale: result.stale,\n status: artifact?.status ?? 'failed',\n generatedAt: artifact?.generatedAt,\n tokenEstimate: artifact?.tokenEstimate,\n truncated: artifact?.truncated ?? false,\n attachments: artifact?.attachments ?? [],\n };\n }\n\n // GET /api/notes/:id/context-status — build/read the Note grounding artifact status\n authenticated.get('/api/notes/:id/context-status', async (c) => {\n const result = await service.notesServiceInstance.getAgentContextStatus(c.req.param('id'), service.currentConfig);\n if (!result) {\n return c.json(noteNotFound(), 404);\n }\n return c.json(noteContextStatusPayload(result));\n });\n\n // POST /api/notes/:id/context-rebuild — force rebuild media/document understanding artifact\n authenticated.post('/api/notes/:id/context-rebuild', async (c) => {\n const result = await service.notesServiceInstance.getAgentContextStatus(c.req.param('id'), service.currentConfig, true);\n if (!result) {\n return c.json(noteNotFound(), 404);\n }\n return c.json(noteContextStatusPayload(result));\n });\n\n // GET /api/notes/:id/threads — list chat threads linked to a note\n authenticated.get('/api/notes/:id/threads', async (c) => {\n const noteId = c.req.param('id');\n const keys = await service.notesServiceInstance.listNoteThreads(noteId);\n if (!keys) {\n return c.json(noteNotFound(), 404);\n }\n const sessions = [];\n for (const key of keys) {\n const session = await service.sessions.getSession(key);\n if (session) sessions.push(session);\n }\n return c.json({ items: sessions, total: sessions.length });\n });\n\n // POST /api/notes/:id/append — append assistant output or selected text back to the note\n authenticated.post('/api/notes/:id/append', async (c) => {\n const body = await c.req.json().catch(() => ({}));\n const content = typeof body.content === 'string' ? body.content.trim() : '';\n const heading = typeof body.heading === 'string' && body.heading.trim() ? body.heading.trim() : undefined;\n if (!content) {\n return c.json({ error: 'Missing required field: content' }, 400);\n }\n const note = await service.notesServiceInstance.appendTextToNote(c.req.param('id'), content, heading);\n if (!note) {\n return c.json(noteNotFound(), 404);\n }\n return c.json({ note });\n });\n\n // GET /api/notes/:id — single note\n authenticated.get('/api/notes/:id', async (c) => {\n const id = c.req.param('id');\n const note = await service.notesServiceInstance.getNote(id);\n if (!note) {\n return c.json(noteNotFound(), 404);\n }\n return c.json({ note });\n });\n\n // PATCH /api/notes/:id — update\n authenticated.patch('/api/notes/:id', async (c) => {\n const id = c.req.param('id');\n const body = await c.req.json().catch(() => ({}));\n\n const patch = buildNotePatch(body);\n const trigger: SnapshotTrigger =\n body.trigger === 'ai_edit' || body.trigger === 'sync' || body.trigger === 'restore'\n ? body.trigger\n : 'edit';\n\n const updated = await service.notesServiceInstance.updateNote(id, patch, trigger);\n if (!updated) {\n return c.json(noteNotFound(), 404);\n }\n return c.json({ note: updated });\n });\n\n // DELETE /api/notes/:id — delete note\n authenticated.delete('/api/notes/:id', async (c) => {\n const id = c.req.param('id');\n const removed = await service.notesServiceInstance.deleteNote(id);\n if (!removed) {\n return c.json(noteNotFound(), 404);\n }\n return c.json({ deleted: true });\n });\n\n // GET /api/notes/:id/history — list version snapshots\n authenticated.get('/api/notes/:id/history', async (c) => {\n const id = c.req.param('id');\n const entries = await service.notesServiceInstance.listNoteHistory(id);\n return c.json({ entries });\n });\n\n // GET /api/notes/:id/history/:timestamp — get full snapshot\n authenticated.get('/api/notes/:id/history/:timestamp', async (c) => {\n const id = c.req.param('id');\n const timestamp = parseInt(c.req.param('timestamp'), 10);\n if (!Number.isFinite(timestamp)) {\n return c.json({ error: 'Invalid timestamp' }, 400);\n }\n const snapshot = await service.notesServiceInstance.getNoteSnapshot(id, timestamp);\n if (!snapshot) {\n return c.json({ error: 'Snapshot not found' }, 404);\n }\n return c.json({ snapshot });\n });\n\n // POST /api/notes/:id/history/restore — restore a snapshot\n authenticated.post('/api/notes/:id/history/restore', async (c) => {\n const id = c.req.param('id');\n const body = await c.req.json().catch(() => ({}));\n const timestamp = typeof body.timestamp === 'number' ? body.timestamp : 0;\n if (!timestamp) {\n return c.json({ error: 'Missing required field: timestamp' }, 400);\n }\n const note = await service.notesServiceInstance.restoreNoteSnapshot(id, timestamp);\n if (!note) {\n return c.json({ error: 'Snapshot or note not found' }, 404);\n }\n return c.json({ note });\n });\n\n // POST /api/notes/:id/ai/edit — generate previewable markdown AI patch\n authenticated.post('/api/notes/:id/ai/edit', async (c) => {\n const id = c.req.param('id');\n const body = await c.req.json().catch(() => ({}));\n const instruction = typeof body.instruction === 'string' ? body.instruction.trim() : '';\n if (!instruction) {\n return c.json({ error: 'Missing required field: instruction' }, 400);\n }\n\n const markdown = typeof body.markdown === 'string' ? body.markdown : undefined;\n const result = await service.notesServiceInstance.createAiEditPatch(id, instruction, markdown);\n if (!result) {\n return c.json(noteNotFound(), 404);\n }\n return c.json(result);\n });\n\n // POST /api/notes/:id/media — upload attachment to existing note\n authenticated.post('/api/notes/:id/media', async (c) => {\n const noteId = c.req.param('id');\n let body: Record<string, unknown>;\n try {\n body = await c.req.parseBody({ all: true });\n } catch {\n return c.json({ error: 'Invalid multipart body' }, 400);\n }\n\n const file = body.file;\n if (!file || typeof file !== 'object') {\n return c.json({ error: 'Missing file field' }, 400);\n }\n\n let buf: Buffer;\n let fileName = 'upload';\n let mimeType = 'application/octet-stream';\n\n if (file instanceof File) {\n buf = Buffer.from(await file.arrayBuffer());\n fileName = file.name || fileName;\n mimeType = file.type || mimeType;\n } else if (typeof (file as Blob).arrayBuffer === 'function') {\n buf = Buffer.from(await (file as Blob).arrayBuffer());\n } else {\n return c.json({ error: 'Invalid file upload' }, 400);\n }\n\n const durationRaw = body.duration;\n const duration = typeof durationRaw === 'string' ? parseInt(durationRaw, 10) : undefined;\n\n const attachment = await service.notesServiceInstance.addAttachment(noteId, {\n name: fileName,\n buffer: buf,\n mimeType,\n duration: Number.isFinite(duration) ? duration : undefined,\n });\n\n if (!attachment) {\n return c.json(noteNotFound(), 404);\n }\n return c.json({ attachment }, 201);\n });\n\n // GET /api/notes/:id/media/:attachmentId — serve attachment file\n authenticated.get('/api/notes/:id/media/:attachmentId', async (c) => {\n const noteId = c.req.param('id');\n const attachmentId = c.req.param('attachmentId');\n\n const result = await service.notesServiceInstance.getAttachmentPath(noteId, attachmentId);\n if (!result) {\n return c.json({ error: 'Attachment not found' }, 404);\n }\n\n const { filePath, mimeType, fileName } = result;\n\n try {\n await access(filePath);\n } catch {\n return c.json({ error: 'Attachment file missing' }, 404);\n }\n\n const fileStat = await stat(filePath);\n\n c.header('Content-Type', mimeType);\n c.header('Content-Length', String(fileStat.size));\n c.header('Content-Disposition', `inline; filename=\"${encodeURIComponent(fileName)}\"`);\n c.header('Cache-Control', 'private, max-age=31536000, immutable');\n\n return stream(c, async (s) => {\n const readable = Readable.toWeb(createReadStream(filePath)) as ReadableStream<Uint8Array>;\n await s.pipe(readable);\n });\n });\n\n // ── Task / Space / Open tracking ────────────────────────────────────\n\n authenticated.post('/api/notes/task', async (c) => {\n const body = await c.req.json().catch(() => ({})) as Record<string, unknown>;\n const title = typeof body.title === 'string' ? body.title.trim() : '';\n if (!title) return c.json({ error: 'Missing required field: title' }, 400);\n\n const source = parseCaptureSource(body);\n const note = await service.notesServiceInstance.createTask(title, source, {\n dueAt: typeof body.dueAt === 'number' ? body.dueAt : undefined,\n priority: body.priority === 'high' || body.priority === 'medium' || body.priority === 'low' ? body.priority : undefined,\n sourceSessionKey: typeof body.sourceSessionKey === 'string' ? body.sourceSessionKey : undefined,\n sourceNoteId: typeof body.sourceNoteId === 'string' ? body.sourceNoteId : undefined,\n groupId: typeof body.groupId === 'string' ? body.groupId : undefined,\n });\n return c.json({ note }, 201);\n });\n\n authenticated.post('/api/notes/:id/toggle-done', async (c) => {\n const note = await service.notesServiceInstance.toggleTaskDone(c.req.param('id'));\n if (!note) return c.json({ error: 'Not found or not a task' }, 404);\n return c.json({ note });\n });\n\n authenticated.post('/api/notes/:id/open', async (c) => {\n const note = await service.notesServiceInstance.recordOpen(c.req.param('id'));\n if (!note) return c.json({ error: 'Not found' }, 404);\n return c.json({ note });\n });\n\n authenticated.post('/api/notes/:id/move', async (c) => {\n const body = await c.req.json().catch(() => ({})) as Record<string, unknown>;\n const groupId = typeof body.groupId === 'string' ? body.groupId : null;\n const note = await service.notesServiceInstance.moveToGroup(c.req.param('id'), groupId);\n if (!note) return c.json({ error: 'Not found' }, 404);\n return c.json({ note });\n });\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"projects.js","names":["path","record"],"sources":["../../../../../src/gateway/hono/routes/projects.ts"],"sourcesContent":["import type { Hono } from 'hono';\nimport { readdir, readFile, realpath, stat, writeFile } from 'node:fs/promises';\nimport * as path from 'node:path';\n\nimport { ActivityService } from '../../../activity/index.js';\nimport { resolveEffectiveAgentProfile } from '../../../config/agent-profile.js';\nimport type { GoalWithDetails } from '../../../goals/index.js';\nimport { draftGoalContract, GoalService, normalizeGoalUiLocale } from '../../../goals/index.js';\nimport {\n buildProjectLoopOverview,\n inferProjectKind,\n inferSuggestedProjectDefaultAgentId,\n isValidProjectAgentId,\n normalizeProjectAgentId,\n ProjectWorkspaceConflictError,\n ProjectWorkspaceMissingError,\n type Project,\n resolveProjectAgentId,\n type ProjectStatus,\n type ProjectWorkflowRunBrief,\n} from '../../../projects/index.js';\nimport { buildSessionKey } from '../../../routing/session-key.js';\nimport {\n getSqliteDatabase,\n getSessionMetadata,\n listMemoryRecords,\n loadTranscriptRowsForSession,\n runSqliteWriteTransaction,\n type SessionMetadataSeed,\n upsertMemoryRecord,\n} from '../../../storage/sqlite/index.js';\nimport {\n buildWorkItemAgentContext,\n WorkItemService,\n WORK_ITEM_ATTACHMENT_MAX_BYTES,\n WORK_ITEM_ATTACHMENT_MAX_COUNT,\n type WorkItemPriority,\n type WorkItemStatus,\n} from '../../../work-items/index.js';\nimport { createGatewayRouteLogger } from '../lib/route-logger.js';\nimport { parseActivityIncludeRelated, parseActivityQuery } from './activity.js';\nimport type { AuthenticatedRouteDeps } from './deps.js';\nimport { FILE_SEARCH_MAX_LIMIT, fuzzySearchWorkspaceFiles } from '../../workspace-file-search.js';\n\nconst log = createGatewayRouteLogger('Projects');\n\nconst DELEGATED_OUTCOME_MAX_LENGTH = 12_000;\n\nfunction inferDelegatedWorkName(outcome: string): string {\n const firstLine = outcome\n .split(/\\r?\\n/)\n .map((line) => line.trim())\n .find(Boolean) ?? outcome.trim();\n const normalized = firstLine\n .replace(/^[#*\\-\\s]+/, '')\n .replace(/[。.!!??]+$/, '')\n .trim();\n return normalized.slice(0, 72) || 'Untitled work';\n}\n\nfunction parseProjectStatus(raw: unknown): ProjectStatus | undefined {\n return raw === 'active' || raw === 'paused' || raw === 'archived' ? raw : undefined;\n}\n\nfunction parseLimit(raw: string | undefined, fallback = 50): number | undefined {\n if (!raw) return undefined;\n const n = Number.parseInt(raw, 10);\n return Number.isFinite(n) ? Math.min(500, Math.max(1, n)) : fallback;\n}\n\nfunction isHiddenEmptyProjectChatShell(session: {\n hiddenFromSessionList?: boolean;\n messageCount?: number;\n routing?: { peerId?: string };\n customData?: Record<string, unknown>;\n}): boolean {\n return session.hiddenFromSessionList === true\n && session.messageCount === 0\n && session.customData?.genericNewChatShell !== false\n && Boolean(session.routing?.peerId?.startsWith('chat_'));\n}\n\nfunction textField(body: Record<string, unknown>, key: string): string | undefined {\n const value = body[key];\n return typeof value === 'string' ? value : undefined;\n}\n\nfunction optionalTextField(body: Record<string, unknown>, key: string): string | null | undefined {\n if (!(key in body)) return undefined;\n const value = body[key];\n return typeof value === 'string' ? value : null;\n}\n\nfunction resolveEffectiveWorkspaceRoot(\n service: AuthenticatedRouteDeps['service'],\n project: Project,\n): string | undefined {\n const fixedRoot = project.workspaceRoot?.trim();\n if (fixedRoot) return fixedRoot;\n const agentId = resolveProjectAgentId({\n config: service.currentConfig,\n projects: service.projects,\n projectId: project.id,\n });\n return resolveEffectiveAgentProfile(service.currentConfig, agentId).resolvedWorkspacePath;\n}\n\nfunction enrichProjectWorkspace<T extends Project>(\n service: AuthenticatedRouteDeps['service'],\n project: T,\n): T {\n return {\n ...project,\n workspaceMode: project.workspaceRoot?.trim() ? 'fixed' : 'followAgent',\n effectiveWorkspaceRoot: resolveEffectiveWorkspaceRoot(service, project),\n };\n}\n\nfunction finiteNumberField(value: unknown): number | undefined {\n if (typeof value === 'number' && Number.isFinite(value)) return value;\n if (typeof value === 'string' && value.trim()) {\n const parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : undefined;\n }\n return undefined;\n}\n\nfunction collectUploadedFiles(body: Record<string, unknown>): File[] {\n const raw = body.file ?? body.files ?? body.attachments;\n const values = Array.isArray(raw) ? raw : raw ? [raw] : [];\n return values.filter((value): value is File => value instanceof File);\n}\n\nfunction validateUploadedWorkItemFiles(files: File[]): string | null {\n if (files.length > WORK_ITEM_ATTACHMENT_MAX_COUNT) {\n return `Too many attachments (max ${WORK_ITEM_ATTACHMENT_MAX_COUNT})`;\n }\n for (const file of files) {\n if (file.size > WORK_ITEM_ATTACHMENT_MAX_BYTES) {\n return `Attachment ${JSON.stringify(file.name || 'upload')} exceeds ${Math.floor(WORK_ITEM_ATTACHMENT_MAX_BYTES / (1024 * 1024))}MB limit`;\n }\n }\n return null;\n}\n\nasync function uploadedFileToBuffer(file: File): Promise<{ name: string; buffer: Buffer; mimeType: string }> {\n return {\n name: file.name || 'upload',\n buffer: Buffer.from(await file.arrayBuffer()),\n mimeType: file.type || 'application/octet-stream',\n };\n}\n\nfunction parseCsvEnum<T extends string>(raw: string | undefined, values: readonly T[]): T[] | undefined {\n if (!raw) return undefined;\n const allowed = new Set(values);\n const parsed = raw\n .split(',')\n .map((item) => item.trim())\n .filter((item): item is T => allowed.has(item as T));\n return parsed.length > 0 ? [...new Set(parsed)] : undefined;\n}\n\nfunction parseEnumValue<T extends string>(raw: unknown, values: readonly T[]): T | undefined {\n if (typeof raw !== 'string') return undefined;\n return values.includes(raw as T) ? raw as T : undefined;\n}\n\nconst WORK_ITEM_STATUSES = [\n 'backlog',\n 'todo',\n 'in_progress',\n 'blocked',\n 'needs_input',\n 'in_review',\n 'done',\n 'cancelled',\n] as const satisfies readonly WorkItemStatus[];\nconst WORK_ITEM_PRIORITIES = ['urgent', 'high', 'normal', 'low'] as const satisfies readonly WorkItemPriority[];\nconst WORK_ITEM_SUGGESTION_STATUSES = ['pending', 'applied', 'dismissed'] as const;\n\nconst SKIP_FILE_NAMES = new Set(['.git', 'node_modules']);\n\nconst PROJECT_FILE_MIME_BY_EXT: Record<string, string> = {\n png: 'image/png',\n jpg: 'image/jpeg',\n jpeg: 'image/jpeg',\n gif: 'image/gif',\n webp: 'image/webp',\n bmp: 'image/bmp',\n svg: 'image/svg+xml',\n pdf: 'application/pdf',\n docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n txt: 'text/plain',\n md: 'text/markdown',\n json: 'application/json',\n html: 'text/html',\n css: 'text/css',\n js: 'text/javascript',\n ts: 'text/typescript',\n mp3: 'audio/mpeg',\n wav: 'audio/wav',\n ogg: 'audio/ogg',\n webm: 'video/webm',\n mp4: 'video/mp4',\n mov: 'video/quicktime',\n};\n\nfunction normalizeRelativePath(raw: string | undefined): string {\n const normalized = (raw ?? '').trim().replaceAll('\\\\', '/');\n return normalized.replace(/^\\/+/, '');\n}\n\nfunction isWithinDirectory(root: string, target: string): boolean {\n const relativePath = path.relative(root, target);\n return relativePath === '' || (!relativePath.startsWith('..') && !path.isAbsolute(relativePath));\n}\n\nasync function resolveProjectWorkspaceRoot(\n service: AuthenticatedRouteDeps['service'],\n projectId: string,\n): Promise<{ ok: true; projectId: string; root: string } | { ok: false; status: number; error: string }> {\n const project = service.projects.get(projectId);\n if (!project) return { ok: false, status: 404, error: 'Project not found' };\n const workspaceRoot = resolveEffectiveWorkspaceRoot(service, project);\n if (!workspaceRoot?.trim()) {\n return { ok: false, status: 400, error: 'Project workspace root is not set' };\n }\n\n try {\n const root = await realpath(workspaceRoot);\n const rootStat = await stat(root);\n if (!rootStat.isDirectory()) {\n return { ok: false, status: 400, error: 'Project workspace root is not a directory' };\n }\n return { ok: true, projectId: project.id, root };\n } catch (err) {\n log.warn({ err, projectId: project.id, path: workspaceRoot }, 'project workspace root unavailable');\n return { ok: false, status: 404, error: 'Project workspace root is unavailable' };\n }\n}\n\nasync function resolveProjectWorkspacePath(\n service: AuthenticatedRouteDeps['service'],\n projectId: string,\n rawPath: string | undefined,\n): Promise<\n | { ok: true; projectId: string; root: string; requestedPath: string; absolutePath: string; relativePath: string }\n | { ok: false; status: number; error: string }\n> {\n const rootResult = await resolveProjectWorkspaceRoot(service, projectId);\n if (rootResult.ok === false) {\n return { ok: false, status: rootResult.status, error: rootResult.error };\n }\n\n const requestedPath = normalizeRelativePath(rawPath);\n const candidate = path.resolve(rootResult.root, requestedPath);\n if (!isWithinDirectory(rootResult.root, candidate)) {\n return { ok: false, status: 400, error: 'Path is outside project workspace' };\n }\n\n const relativePath = path.relative(rootResult.root, candidate).split(path.sep).join('/');\n return {\n ok: true,\n projectId: rootResult.projectId,\n root: rootResult.root,\n requestedPath,\n absolutePath: candidate,\n relativePath: relativePath === '.' ? '' : relativePath,\n };\n}\n\nasync function resolveExistingProjectWorkspacePath(\n service: AuthenticatedRouteDeps['service'],\n projectId: string,\n rawPath: string | undefined,\n): Promise<\n | {\n ok: true;\n projectId: string;\n root: string;\n requestedPath: string;\n absolutePath: string;\n relativePath: string;\n stat: Awaited<ReturnType<typeof stat>>;\n }\n | { ok: false; status: number; error: string }\n> {\n const resolved = await resolveProjectWorkspacePath(service, projectId, rawPath);\n if (resolved.ok === false) return resolved;\n if (!resolved.requestedPath.trim()) {\n return { ok: false, status: 400, error: 'Missing path' };\n }\n\n let realTarget: string;\n try {\n realTarget = await realpath(resolved.absolutePath);\n } catch {\n return { ok: false, status: 404, error: 'Not found' };\n }\n if (!isWithinDirectory(resolved.root, realTarget)) {\n return { ok: false, status: 400, error: 'Path is outside project workspace' };\n }\n const targetStat = await stat(realTarget);\n return {\n ...resolved,\n absolutePath: realTarget,\n stat: targetStat,\n };\n}\n\nasync function resolveProjectWorkspaceWritePath(\n service: AuthenticatedRouteDeps['service'],\n projectId: string,\n rawPath: string | undefined,\n): Promise<\n | {\n ok: true;\n projectId: string;\n root: string;\n requestedPath: string;\n absolutePath: string;\n relativePath: string;\n existingStat?: Awaited<ReturnType<typeof stat>>;\n }\n | { ok: false; status: number; error: string }\n> {\n const resolved = await resolveProjectWorkspacePath(service, projectId, rawPath);\n if (resolved.ok === false) return resolved;\n if (!resolved.requestedPath.trim()) {\n return { ok: false, status: 400, error: 'Missing path' };\n }\n\n try {\n const realTarget = await realpath(resolved.absolutePath);\n if (!isWithinDirectory(resolved.root, realTarget)) {\n return { ok: false, status: 400, error: 'Path is outside project workspace' };\n }\n return {\n ...resolved,\n absolutePath: realTarget,\n existingStat: await stat(realTarget),\n };\n } catch {\n const parentPath = path.dirname(resolved.absolutePath);\n try {\n const realParent = await realpath(parentPath);\n if (!isWithinDirectory(resolved.root, realParent)) {\n return { ok: false, status: 400, error: 'Path is outside project workspace' };\n }\n } catch {\n return { ok: false, status: 404, error: 'Parent directory not found' };\n }\n return resolved;\n }\n}\n\nfunction textFromTranscriptContent(content: unknown): string {\n if (typeof content === 'string') return content;\n if (!Array.isArray(content)) return '';\n return content\n .map((part) => {\n if (!part || typeof part !== 'object') return '';\n const record = part as Record<string, unknown>;\n return typeof record.text === 'string' ? record.text : '';\n })\n .filter(Boolean)\n .join('\\n');\n}\n\nfunction buildSessionSummaryMemoryContent(sessionKey: string, explicitSummary?: string): string {\n const summary = explicitSummary?.trim();\n if (summary) return summary;\n const rows = loadTranscriptRowsForSession(sessionKey)\n .filter((row) => {\n if (!row || typeof row !== 'object') return false;\n const record = row as unknown as Record<string, unknown>;\n const role = record.role;\n return role === 'user' || role === 'assistant' || role === 'compactionSummary' || role === 'branchSummary';\n })\n .slice(-12);\n const lines = rows\n .map((row) => {\n const record = row as unknown as Record<string, unknown>;\n const rowRole = typeof record.role === 'string' ? record.role : 'message';\n const role = rowRole === 'compactionSummary' || rowRole === 'branchSummary' ? 'summary' : rowRole;\n const text = (typeof record.summary === 'string' ? record.summary : undefined) ?? textFromTranscriptContent(record.content);\n const compact = text.trim().replace(/\\s+/g, ' ').slice(0, 280);\n return compact ? `- ${role}: ${compact}` : '';\n })\n .filter(Boolean);\n return lines.length > 0\n ? [`Session summary for ${sessionKey}:`, ...lines].join('\\n')\n : `Session summary for ${sessionKey}: no transcript content available.`;\n}\n\nfunction buildWorkItemChatSessionMetadata(params: {\n agentId: string;\n accountId: string;\n peerId: string;\n workItemId: string;\n title: string;\n updatedAt: number;\n}): SessionMetadataSeed {\n return {\n name: params.title,\n tags: ['work-item'],\n sourceChannel: 'webchat',\n sourceChatId: [params.accountId, 'direct', params.peerId].join(':'),\n sessionType: 'chat',\n hiddenFromSessionList: true,\n routing: {\n agentId: params.agentId,\n source: 'webchat',\n accountId: params.accountId,\n peerKind: 'direct',\n peerId: params.peerId,\n },\n customData: {\n genericNewChatShell: false,\n sourceBinding: {\n kind: 'work_item',\n sourceId: params.workItemId,\n version: String(params.updatedAt),\n attachedAt: Date.now(),\n },\n },\n };\n}\n\nfunction listFailedProjectWorkflowRuns(projectId: string, limit = 5): ProjectWorkflowRunBrief[] {\n const rows = getSqliteDatabase()\n .prepare(\n `SELECT run_id, definition_id, status, created_at_ms, error_message\n FROM workflow_runs\n WHERE project_id = ? AND status IN ('failed', 'timeout', 'cancelled')\n ORDER BY created_at_ms DESC\n LIMIT ?`,\n )\n .all(projectId, Math.max(1, Math.min(20, Math.floor(limit)))) as Array<{\n run_id: string;\n definition_id: string;\n status: string;\n created_at_ms: number;\n error_message: string | null;\n }>;\n return rows.map((row) => ({\n runId: row.run_id,\n definitionId: row.definition_id,\n status: row.status,\n createdAt: row.created_at_ms,\n errorMessage: row.error_message ?? undefined,\n }));\n}\n\nfunction buildProjectDigestMemoryContent(input: ReturnType<typeof buildProjectLoopOverview> & { projectName: string }): string {\n const lines = [\n `Project digest: ${input.projectName}`,\n `Status: ${input.digest.summary}`,\n input.digest.nextAction ? `Next: ${input.digest.nextAction}` : undefined,\n ].filter(Boolean) as string[];\n if (input.attentionItems.length > 0) {\n lines.push('', 'Attention:');\n for (const item of input.attentionItems.slice(0, 8)) {\n lines.push(`- ${item.kind}: ${item.title}${item.detail ? ` - ${item.detail}` : ''}`);\n }\n }\n if (input.timeline.length > 0) {\n lines.push('', 'Recent activity:');\n for (const item of input.timeline.slice(0, 8)) {\n lines.push(`- ${item.kind}: ${item.title}${item.detail ? ` - ${item.detail}` : ''}`);\n }\n }\n return lines.join('\\n');\n}\n\nfunction projectDigestMemoryRecordId(projectId: string): string {\n return `project-digest:${projectId}`;\n}\n\nexport function registerProjectsRoutes(authenticated: Hono, deps: AuthenticatedRouteDeps): void {\n const { service } = deps;\n const activity = new ActivityService();\n const goals = new GoalService();\n const workItems = new WorkItemService();\n\n authenticated.post('/api/projects/delegate', async (c) => {\n const body = (await c.req.json().catch(() => ({}))) as Record<string, unknown>;\n const outcome = textField(body, 'outcome')?.trim() ?? '';\n if (!outcome) return c.json({ ok: false, error: 'Missing outcome' }, 400);\n if (outcome.length > DELEGATED_OUTCOME_MAX_LENGTH) {\n return c.json({ ok: false, error: `Outcome exceeds ${DELEGATED_OUTCOME_MAX_LENGTH} characters` }, 400);\n }\n\n const name = textField(body, 'name')?.trim().slice(0, 72) || inferDelegatedWorkName(outcome);\n const uiLocale = normalizeGoalUiLocale(body.uiLocale);\n const defaultAgentId = inferSuggestedProjectDefaultAgentId({\n config: service.currentConfig,\n name,\n description: outcome,\n projectKind: 'auto',\n });\n if (!isValidProjectAgentId(service.currentConfig, defaultAgentId)) {\n return c.json({ ok: false, error: 'Default agent not found' }, 400);\n }\n\n const contractDraft = await draftGoalContract({\n title: name,\n context: outcome,\n uiLocale,\n modelRef: service.currentConfig.goals?.judgeModelRef,\n });\n\n let created: { project: Project; goal: GoalWithDetails };\n try {\n created = runSqliteWriteTransaction(() => {\n const project = service.projects.create({\n name,\n description: outcome,\n defaultAgentId,\n projectKind: 'auto',\n brief: outcome,\n });\n const goal = goals.create({\n title: name,\n description: outcome,\n agentId: defaultAgentId,\n priority: 'normal',\n uiLocale,\n source: 'api',\n projectId: project.id,\n contract: contractDraft.contract,\n config: service.currentConfig,\n });\n const detailedGoal = goals.setContextMessage({ goalId: goal.id, text: outcome });\n if (!detailedGoal) throw new Error('Goal context could not be saved');\n return { project, goal: detailedGoal };\n });\n } catch (error) {\n log.warn(\n { err: error, phase: 'delegate_create' },\n `Delegated work could not be created: ${error instanceof Error ? error.message : String(error)}`,\n );\n return c.json({ ok: false, error: error instanceof Error ? error.message : String(error) }, 400);\n }\n\n let queued: ReturnType<typeof service.enqueueGoalRun> | undefined;\n let executionWarning: string | undefined;\n try {\n queued = service.enqueueGoalRun(created.goal.id, { source: 'api' });\n } catch (error) {\n executionWarning = error instanceof Error ? error.message : String(error);\n log.warn(\n { err: error, projectId: created.project.id, goalId: created.goal.id, phase: 'delegate_enqueue' },\n `Delegated work was saved but could not be queued: ${executionWarning}`,\n );\n }\n\n return c.json({\n ok: true,\n project: enrichProjectWorkspace(service, created.project),\n goal: created.goal,\n contractGenerated: contractDraft.generated,\n contractWarning: contractDraft.warning,\n execution: {\n status: queued ? 'queued' : 'saved',\n queueItem: queued,\n warning: executionWarning,\n },\n }, 201);\n });\n\n authenticated.post('/api/projects', async (c) => {\n const body = (await c.req.json().catch(() => ({}))) as Record<string, unknown>;\n const name = textField(body, 'name')?.trim();\n const workspaceRoot = textField(body, 'workspaceRoot')?.trim();\n if (!name && !workspaceRoot) return c.json({ ok: false, error: 'Missing name' }, 400);\n const hasDefaultAgentPatch = Object.hasOwn(body, 'defaultAgentId');\n const explicitDefaultAgentId = normalizeProjectAgentId(textField(body, 'defaultAgentId'));\n const defaultAgentId = hasDefaultAgentPatch\n ? explicitDefaultAgentId\n : inferSuggestedProjectDefaultAgentId({\n config: service.currentConfig,\n name,\n description: textField(body, 'description'),\n workspaceRoot,\n projectKind: textField(body, 'projectKind'),\n });\n if (!isValidProjectAgentId(service.currentConfig, defaultAgentId)) {\n return c.json({ ok: false, error: 'Default agent not found' }, 400);\n }\n try {\n const project = service.projects.create({\n name,\n description: textField(body, 'description'),\n defaultAgentId,\n workspaceRoot,\n createWorkspaceRoot: body.createWorkspaceRoot === true,\n projectKind: textField(body, 'projectKind'),\n brief: textField(body, 'brief'),\n instructions: textField(body, 'instructions'),\n });\n return c.json({ ok: true, project: enrichProjectWorkspace(service, project) }, 201);\n } catch (error) {\n if (error instanceof ProjectWorkspaceConflictError) {\n return c.json({ ok: false, code: 'workspace_already_bound', error: error.message, project: error.project }, 409);\n }\n if (error instanceof ProjectWorkspaceMissingError) {\n return c.json({ ok: false, code: 'workspace_root_missing', error: error.message, workspaceRoot: error.workspaceRoot }, 409);\n }\n return c.json({ ok: false, error: error instanceof Error ? error.message : String(error) }, 400);\n }\n });\n\n authenticated.get('/api/projects', async (c) => {\n const status = parseProjectStatus(c.req.query('status'));\n const result = service.projects.list({\n ...(status ? { status } : {}),\n search: c.req.query('search'),\n sortBy: c.req.query('sortBy') as 'updatedAt' | 'createdAt' | 'name' | undefined,\n sortOrder: c.req.query('sortOrder') as 'asc' | 'desc' | undefined,\n limit: parseLimit(c.req.query('limit')),\n offset: c.req.query('offset') ? Math.max(0, Number.parseInt(c.req.query('offset')!, 10) || 0) : undefined,\n });\n return c.json({ ok: true, ...result, items: result.items.map((project) => enrichProjectWorkspace(service, project)) });\n });\n\n authenticated.get('/api/projects/suggestions', async (c) => {\n const sessionKey = c.req.query('sessionKey')?.trim();\n return c.json({ ok: true, suggestions: sessionKey ? service.projects.suggestProjectsForSession(sessionKey) : [] });\n });\n\n authenticated.post('/api/projects/infer-defaults', async (c) => {\n const body = (await c.req.json().catch(() => ({}))) as Record<string, unknown>;\n const input = {\n name: textField(body, 'name'),\n description: textField(body, 'description'),\n workspaceRoot: textField(body, 'workspaceRoot'),\n projectKind: textField(body, 'projectKind'),\n };\n const inference = inferProjectKind(input);\n const defaultAgentId = inferSuggestedProjectDefaultAgentId({\n config: service.currentConfig,\n ...input,\n });\n return c.json({ ok: true, inference, defaultAgentId });\n });\n\n authenticated.post('/api/projects/resolve-workspace', async (c) => {\n const body = (await c.req.json().catch(() => ({}))) as Record<string, unknown>;\n const workspacePath = textField(body, 'workspacePath')?.trim();\n if (!workspacePath) return c.json({ ok: false, error: 'Missing workspacePath' }, 400);\n const agentId = textField(body, 'agentId')?.trim() || 'main';\n const suggestedDefaultAgentId = inferSuggestedProjectDefaultAgentId({\n config: service.currentConfig,\n workspaceRoot: workspacePath,\n projectKind: textField(body, 'projectKind'),\n });\n let match;\n try {\n match = service.projects.resolveOrCreateForWorkspacePath({\n workspacePath,\n agentId,\n defaultAgentId: suggestedDefaultAgentId,\n autoCreate: body.autoCreate !== false,\n });\n } catch (error) {\n if (error instanceof ProjectWorkspaceConflictError) {\n match = { project: error.project, reason: 'exact' as const, created: false };\n } else {\n throw error;\n }\n }\n if (!match) return c.json({ ok: true, project: null });\n\n const sessionKey = textField(body, 'sessionKey')?.trim();\n const projectDefaultAgentId = normalizeProjectAgentId(match.project.defaultAgentId);\n const shouldBindRequestedSession = !projectDefaultAgentId || projectDefaultAgentId === normalizeProjectAgentId(agentId);\n if (sessionKey && shouldBindRequestedSession) {\n const existingSession = getSessionMetadata(sessionKey);\n if (!existingSession) {\n await service.sessionIndexInstance.saveMessages(sessionKey, [], {\n metadata: {\n sourceChannel: 'tui',\n sourceChatId: `default:direct:${sessionKey}`,\n sessionType: 'chat',\n projectId: match.project.id,\n routing: {\n agentId,\n source: 'tui',\n accountId: 'default',\n peerKind: 'direct',\n peerId: sessionKey,\n },\n },\n });\n }\n service.projects.attachSession(sessionKey, match.project.id);\n }\n\n return c.json({ ok: true, ...match });\n });\n\n authenticated.get('/api/projects/:id/overview', async (c) => {\n const project = service.projects.getWithDetails(c.req.param('id'));\n if (!project) return c.json({ ok: false, error: 'Project not found' }, 404);\n const goalIds = service.projects.listGoalIds(project.id, parseLimit(c.req.query('goalLimit'), 100));\n const projectGoals = goalIds\n .map((id) => goals.get(id))\n .filter((goal): goal is GoalWithDetails => Boolean(goal));\n const loop = buildProjectLoopOverview({\n project,\n goals: projectGoals,\n recentWorkflowRuns: project.recentWorkflowRuns,\n failedWorkflowRuns: listFailedProjectWorkflowRuns(project.id),\n memoryRecords: listMemoryRecords({ projectId: project.id, status: 'active', limit: 5 }),\n });\n return c.json({\n ok: true,\n overview: {\n project: enrichProjectWorkspace(service, project),\n stats: {\n sessionCount: project.sessionCount,\n goalCount: project.goalCount,\n activeGoalCount: project.activeGoalCount,\n recentWorkflowRunCount: project.recentWorkflowRuns.length,\n staleGoalCount: loop.staleGoals.length,\n attentionCount: loop.attentionItems.length,\n failedWorkflowRunCount: loop.failedWorkflowRuns.length,\n },\n activeGoals: loop.activeGoals,\n blockedGoals: loop.blockedGoals,\n staleGoals: loop.staleGoals,\n nextActions: loop.nextActions,\n attentionItems: loop.attentionItems,\n timeline: loop.timeline,\n digest: loop.digest,\n failedWorkflowRuns: loop.failedWorkflowRuns,\n recentSessions: project.recentSessions,\n recentWorkflowRuns: project.recentWorkflowRuns,\n recommendedAction: loop.recommendedAction,\n },\n });\n });\n\n authenticated.get('/api/projects/:id/activity', (c) => {\n const project = service.projects.get(c.req.param('id'));\n if (!project) return c.json({ ok: false, error: 'Project not found' }, 404);\n const result = activity.listForProject({\n projectId: project.id,\n includeRelated: parseActivityIncludeRelated(c.req.query('includeRelated')),\n ...parseActivityQuery(c),\n });\n return c.json({ ok: true, ...result });\n });\n\n authenticated.get('/api/projects/:id/work-items', async (c) => {\n const project = service.projects.get(c.req.param('id'));\n if (!project) return c.json({ ok: false, error: 'Project not found' }, 404);\n const result = workItems.listProjectWorkItems(project.id, {\n status: parseCsvEnum(c.req.query('status'), WORK_ITEM_STATUSES),\n priority: parseCsvEnum(c.req.query('priority'), WORK_ITEM_PRIORITIES),\n includeArchived: c.req.query('includeArchived') === 'true',\n search: c.req.query('search'),\n sortBy: c.req.query('sortBy') as 'updatedAt' | 'createdAt' | 'priority' | 'status' | undefined,\n sortOrder: c.req.query('sortOrder') as 'asc' | 'desc' | undefined,\n limit: parseLimit(c.req.query('limit')),\n offset: c.req.query('offset') ? Math.max(0, Number.parseInt(c.req.query('offset')!, 10) || 0) : undefined,\n });\n return c.json({ ok: true, ...result });\n });\n\n authenticated.post('/api/projects/:id/work-items', async (c) => {\n const project = service.projects.get(c.req.param('id'));\n if (!project) return c.json({ ok: false, error: 'Project not found' }, 404);\n const contentType = c.req.header('content-type') || '';\n let body: Record<string, unknown>;\n let files: File[] = [];\n if (contentType.includes('multipart/form-data')) {\n try {\n body = await c.req.parseBody({ all: true }) as Record<string, unknown>;\n } catch {\n return c.json({ ok: false, error: 'Invalid multipart body' }, 400);\n }\n files = collectUploadedFiles(body);\n } else {\n body = (await c.req.json().catch(() => ({}))) as Record<string, unknown>;\n }\n const attachmentError = validateUploadedWorkItemFiles(files);\n if (attachmentError) return c.json({ ok: false, error: attachmentError }, 413);\n const title = textField(body, 'title')?.trim();\n if (!title) return c.json({ ok: false, error: 'Work item title is required' }, 400);\n const status = parseEnumValue(body.status, WORK_ITEM_STATUSES);\n const priority = parseEnumValue(body.priority, WORK_ITEM_PRIORITIES);\n const dueAt = finiteNumberField(body.dueAt);\n if (Object.hasOwn(body, 'status') && !status) return c.json({ ok: false, error: 'Invalid work item status' }, 400);\n if (Object.hasOwn(body, 'priority') && !priority) return c.json({ ok: false, error: 'Invalid work item priority' }, 400);\n if (Object.hasOwn(body, 'dueAt') && dueAt === undefined && body.dueAt !== null) return c.json({ ok: false, error: 'Invalid dueAt' }, 400);\n const uploads: Array<{ name: string; buffer: Buffer; mimeType: string }> = [];\n for (const file of files) {\n uploads.push(await uploadedFileToBuffer(file));\n }\n const item = workItems.createProjectWorkItem(project.id, {\n title,\n description: textField(body, 'description'),\n status,\n priority,\n ownerAgentId: textField(body, 'ownerAgentId') || project.defaultAgentId || undefined,\n nextAction: textField(body, 'nextAction'),\n blockedReason: textField(body, 'blockedReason'),\n dueAt,\n });\n for (const upload of uploads) {\n await workItems.addAttachment(item.id, upload);\n }\n const created = files.length > 0 ? workItems.getWorkItem(item.id) ?? item : item;\n return c.json({ ok: true, item: created }, 201);\n });\n\n authenticated.get('/api/work-items', (c) => {\n const result = workItems.listWorkItems({\n status: parseCsvEnum(c.req.query('status'), WORK_ITEM_STATUSES),\n priority: parseCsvEnum(c.req.query('priority'), WORK_ITEM_PRIORITIES),\n includeArchived: c.req.query('includeArchived') === 'true',\n search: c.req.query('search'),\n sortBy: c.req.query('sortBy') as 'updatedAt' | 'createdAt' | 'priority' | 'status' | undefined,\n sortOrder: c.req.query('sortOrder') as 'asc' | 'desc' | undefined,\n limit: parseLimit(c.req.query('limit')),\n offset: c.req.query('offset') ? Math.max(0, Number.parseInt(c.req.query('offset')!, 10) || 0) : undefined,\n });\n return c.json({ ok: true, ...result });\n });\n\n authenticated.get('/api/work-items/:id', async (c) => {\n const item = workItems.getWorkItem(c.req.param('id'));\n if (!item) return c.json({ ok: false, error: 'Work item not found' }, 404);\n return c.json({ ok: true, item });\n });\n\n authenticated.get('/api/work-items/:id/attachments', async (c) => {\n const attachments = workItems.listAttachments(c.req.param('id'));\n if (!attachments) return c.json({ ok: false, error: 'Work item not found' }, 404);\n return c.json({ ok: true, attachments });\n });\n\n authenticated.post('/api/work-items/:id/attachments', async (c) => {\n const item = workItems.getWorkItem(c.req.param('id'));\n if (!item) return c.json({ ok: false, error: 'Work item not found' }, 404);\n let body: Record<string, unknown>;\n try {\n body = await c.req.parseBody({ all: true }) as Record<string, unknown>;\n } catch {\n return c.json({ ok: false, error: 'Invalid multipart body' }, 400);\n }\n const files = collectUploadedFiles(body);\n if (!files.length) return c.json({ ok: false, error: 'Missing file field' }, 400);\n const attachmentError = validateUploadedWorkItemFiles(files);\n if (attachmentError) return c.json({ ok: false, error: attachmentError }, 413);\n const attachments = [];\n for (const file of files) {\n const upload = await uploadedFileToBuffer(file);\n const attachment = await workItems.addAttachment(item.id, upload);\n if (attachment) attachments.push(attachment);\n }\n return c.json({ ok: true, attachments, item: workItems.getWorkItem(item.id) }, 201);\n });\n\n authenticated.get('/api/work-items/:id/attachments/:attachmentId/content', async (c) => {\n const result = await workItems.readAttachment(c.req.param('id'), c.req.param('attachmentId'));\n if (!result) return c.json({ ok: false, error: 'Attachment not found' }, 404);\n return new Response(result.buffer, {\n headers: {\n 'Content-Type': result.attachment.mimeType,\n 'Content-Length': String(result.attachment.size),\n 'Content-Disposition': `inline; filename=\"${encodeURIComponent(result.attachment.fileName)}\"`,\n 'Cache-Control': 'private, max-age=31536000, immutable',\n },\n });\n });\n\n authenticated.delete('/api/work-items/:id/attachments/:attachmentId', async (c) => {\n const attachment = await workItems.removeAttachment(c.req.param('id'), c.req.param('attachmentId'));\n if (!attachment) return c.json({ ok: false, error: 'Attachment not found' }, 404);\n return c.json({ ok: true, attachment, item: workItems.getWorkItem(c.req.param('id')) });\n });\n\n authenticated.patch('/api/work-items/:id', async (c) => {\n const body = (await c.req.json().catch(() => ({}))) as Record<string, unknown>;\n const status = Object.hasOwn(body, 'status')\n ? parseEnumValue(body.status, WORK_ITEM_STATUSES)\n : undefined;\n const priority = Object.hasOwn(body, 'priority')\n ? parseEnumValue(body.priority, WORK_ITEM_PRIORITIES)\n : undefined;\n const dueAt = Object.hasOwn(body, 'dueAt')\n ? (body.dueAt === null ? null : (typeof body.dueAt === 'number' && Number.isFinite(body.dueAt) ? body.dueAt : undefined))\n : undefined;\n const archivedAt = Object.hasOwn(body, 'archivedAt')\n ? (body.archivedAt === null ? null : (typeof body.archivedAt === 'number' && Number.isFinite(body.archivedAt) ? body.archivedAt : undefined))\n : undefined;\n if (status === undefined && Object.hasOwn(body, 'status')) return c.json({ ok: false, error: 'Invalid work item status' }, 400);\n if (priority === undefined && Object.hasOwn(body, 'priority')) return c.json({ ok: false, error: 'Invalid work item priority' }, 400);\n if (dueAt === undefined && Object.hasOwn(body, 'dueAt')) return c.json({ ok: false, error: 'Invalid dueAt' }, 400);\n if (archivedAt === undefined && Object.hasOwn(body, 'archivedAt')) return c.json({ ok: false, error: 'Invalid archivedAt' }, 400);\n\n const item = workItems.updateWorkItem(c.req.param('id'), {\n ...(Object.hasOwn(body, 'title') ? { title: textField(body, 'title') ?? '' } : {}),\n ...(Object.hasOwn(body, 'description') ? { description: optionalTextField(body, 'description') } : {}),\n ...(Object.hasOwn(body, 'status') ? { status } : {}),\n ...(Object.hasOwn(body, 'priority') ? { priority } : {}),\n ...(Object.hasOwn(body, 'ownerAgentId') ? { ownerAgentId: optionalTextField(body, 'ownerAgentId') } : {}),\n ...(Object.hasOwn(body, 'nextAction') ? { nextAction: optionalTextField(body, 'nextAction') } : {}),\n ...(Object.hasOwn(body, 'blockedReason') ? { blockedReason: optionalTextField(body, 'blockedReason') } : {}),\n ...(Object.hasOwn(body, 'dueAt') ? { dueAt } : {}),\n ...(Object.hasOwn(body, 'archivedAt') ? { archivedAt } : {}),\n });\n if (!item) return c.json({ ok: false, error: 'Work item not found' }, 404);\n return c.json({ ok: true, item });\n });\n\n authenticated.delete('/api/work-items/:id', async (c) => {\n const item = workItems.updateWorkItem(c.req.param('id'), { archivedAt: Date.now() });\n if (!item) return c.json({ ok: false, error: 'Work item not found' }, 404);\n return c.json({ ok: true, item });\n });\n\n authenticated.get('/api/work-items/:id/events', async (c) => {\n const item = workItems.getWorkItem(c.req.param('id'));\n if (!item) return c.json({ ok: false, error: 'Work item not found' }, 404);\n return c.json({ ok: true, events: workItems.listEvents(item.id) });\n });\n\n authenticated.get('/api/work-items/:id/update-suggestions', async (c) => {\n const item = workItems.getWorkItem(c.req.param('id'));\n if (!item) return c.json({ ok: false, error: 'Work item not found' }, 404);\n const status = parseEnumValue(c.req.query('status'), WORK_ITEM_SUGGESTION_STATUSES);\n if (c.req.query('status') && !status) return c.json({ ok: false, error: 'Invalid suggestion status' }, 400);\n return c.json({ ok: true, suggestions: workItems.listUpdateSuggestions(item.id, status) });\n });\n\n authenticated.post('/api/work-items/:id/update-suggestions', async (c) => {\n const item = workItems.getWorkItem(c.req.param('id'));\n if (!item) return c.json({ ok: false, error: 'Work item not found' }, 404);\n const body = (await c.req.json().catch(() => ({}))) as Record<string, unknown>;\n const sourceKind = parseEnumValue(body.sourceKind, ['chat', 'goal', 'workflow_run', 'automation'] as const);\n const sourceId = textField(body, 'sourceId')?.trim();\n if (!sourceKind) return c.json({ ok: false, error: 'Invalid sourceKind' }, 400);\n if (!sourceId) return c.json({ ok: false, error: 'sourceId is required' }, 400);\n const patchBody = body.patch && typeof body.patch === 'object' && !Array.isArray(body.patch)\n ? body.patch as Record<string, unknown>\n : {};\n const status = Object.hasOwn(patchBody, 'status')\n ? parseEnumValue(patchBody.status, WORK_ITEM_STATUSES)\n : undefined;\n if (Object.hasOwn(patchBody, 'status') && !status) return c.json({ ok: false, error: 'Invalid work item status' }, 400);\n const confidence = typeof body.confidence === 'number' && Number.isFinite(body.confidence)\n ? Math.max(0, Math.min(1, body.confidence))\n : undefined;\n const suggestion = workItems.createUpdateSuggestion(item.id, {\n sourceKind,\n sourceId,\n patch: {\n ...(Object.hasOwn(patchBody, 'status') ? { status } : {}),\n ...(Object.hasOwn(patchBody, 'nextAction') ? { nextAction: optionalTextField(patchBody, 'nextAction') } : {}),\n ...(Object.hasOwn(patchBody, 'blockedReason') ? { blockedReason: optionalTextField(patchBody, 'blockedReason') } : {}),\n },\n progressNote: optionalTextField(body, 'progressNote') ?? undefined,\n rationale: optionalTextField(body, 'rationale') ?? undefined,\n confidence,\n });\n if (!suggestion) return c.json({ ok: false, error: 'Work item not found' }, 404);\n return c.json({ ok: true, suggestion }, 201);\n });\n\n authenticated.post('/api/work-item-update-suggestions/:id/apply', async (c) => {\n const result = workItems.applyUpdateSuggestion(c.req.param('id'));\n if (!result) return c.json({ ok: false, error: 'Suggestion not found or already resolved' }, 404);\n return c.json({ ok: true, item: result.item, suggestion: result.suggestion });\n });\n\n authenticated.post('/api/work-item-update-suggestions/:id/dismiss', async (c) => {\n const suggestion = workItems.dismissUpdateSuggestion(c.req.param('id'));\n if (!suggestion) return c.json({ ok: false, error: 'Suggestion not found or already resolved' }, 404);\n return c.json({ ok: true, suggestion });\n });\n\n authenticated.post('/api/work-items/:id/start-chat', async (c) => {\n const item = workItems.getWorkItem(c.req.param('id'));\n if (!item) return c.json({ ok: false, error: 'Work item not found' }, 404);\n const project = service.projects.get(item.projectId);\n if (!project) return c.json({ ok: false, error: 'Project not found' }, 404);\n const agentId = resolveProjectAgentId({\n config: service.currentConfig,\n projects: service.projects,\n explicitAgentId: item.ownerAgentId,\n projectId: project.id,\n });\n const peerId = `work_item_${Date.now()}`;\n const sessionKey = buildSessionKey({\n agentId,\n source: 'webchat',\n accountId: 'default',\n peerKind: 'direct',\n peerId,\n });\n await service.sessionIndexInstance.saveMessages(sessionKey, [], {\n metadata: buildWorkItemChatSessionMetadata({\n agentId,\n accountId: 'default',\n peerId,\n workItemId: item.id,\n title: item.title,\n updatedAt: item.updatedAt,\n }),\n });\n service.projects.attachSession(sessionKey, project.id);\n const session = await service.sessions.getSession(sessionKey);\n workItems.addLink(item.id, {\n kind: 'chat',\n targetId: sessionKey,\n title: session?.name || item.title,\n statusSnapshot: session?.status,\n }, 'chat_started');\n const updated = item.status === 'todo' || item.status === 'backlog'\n ? workItems.updateWorkItem(item.id, { status: 'in_progress' })\n : workItems.getWorkItem(item.id);\n return c.json({ ok: true, session, item: updated }, 201);\n });\n\n authenticated.post('/api/work-items/:id/create-goal', async (c) => {\n const item = workItems.getWorkItem(c.req.param('id'));\n if (!item) return c.json({ ok: false, error: 'Work item not found' }, 404);\n const project = service.projects.get(item.projectId);\n if (!project) return c.json({ ok: false, error: 'Project not found' }, 404);\n const attachments = await workItems.snapshotAttachmentsForGoal(item.id);\n if (!attachments) return c.json({ ok: false, error: 'Work item not found' }, 404);\n const context = await buildWorkItemAgentContext(item, { attachments, includeImages: false });\n const goal = goals.create({\n title: item.title,\n description: item.description || item.nextAction,\n priority: item.priority === 'urgent' ? 'high' : item.priority,\n agentId: item.ownerAgentId || project.defaultAgentId || undefined,\n projectId: project.id,\n source: 'api',\n config: service.currentConfig,\n });\n const goalWithContext = goals.setContextMessage({\n goalId: goal.id,\n text: context.text,\n attachments,\n }) ?? goal;\n workItems.addLink(item.id, {\n kind: 'goal',\n targetId: goal.id,\n title: goal.title,\n statusSnapshot: goal.status,\n }, 'goal_created');\n const updated = item.status === 'todo' || item.status === 'backlog'\n ? workItems.updateWorkItem(item.id, { status: 'in_progress' })\n : workItems.getWorkItem(item.id);\n return c.json({ ok: true, goal: goalWithContext, item: updated }, 201);\n });\n\n authenticated.post('/api/work-items/:id/workflows/run', async (c) => {\n const item = workItems.getWorkItem(c.req.param('id'));\n if (!item) return c.json({ ok: false, error: 'Work item not found' }, 404);\n const project = service.projects.get(item.projectId);\n if (!project) return c.json({ ok: false, error: 'Project not found' }, 404);\n if (item.status === 'done' || item.status === 'cancelled' || item.archivedAt) {\n return c.json({ ok: false, error: 'Work item is not active' }, 409);\n }\n\n const body = (await c.req.json().catch(() => ({}))) as Record<string, unknown>;\n const definitionId = textField(body, 'definitionId')?.trim();\n if (!definitionId) return c.json({ ok: false, error: 'Missing definitionId' }, 400);\n\n const agentId = resolveProjectAgentId({\n config: service.currentConfig,\n projects: service.projects,\n explicitAgentId: item.ownerAgentId,\n projectId: project.id,\n });\n const goalText = textField(body, 'goal')?.trim() || item.nextAction || item.title;\n const attachments = item.attachments?.map((attachment) => ({\n id: attachment.id,\n fileName: attachment.fileName,\n type: attachment.type,\n mimeType: attachment.mimeType,\n size: attachment.size,\n }));\n const input = Object.hasOwn(body, 'input') ? body.input : {\n workItem: {\n id: item.id,\n title: item.title,\n description: item.description,\n status: item.status,\n priority: item.priority,\n nextAction: item.nextAction,\n blockedReason: item.blockedReason,\n attachments,\n },\n project: {\n id: project.id,\n name: project.name,\n description: project.description,\n brief: project.brief,\n instructions: project.instructions,\n workspaceRoot: project.workspaceRoot,\n },\n };\n const rawTokenBudget = body.tokenBudget;\n const tokenBudget = rawTokenBudget === null\n ? null\n : typeof rawTokenBudget === 'number' && Number.isFinite(rawTokenBudget)\n ? rawTokenBudget\n : undefined;\n\n const result = await service.createWorkflowRunService().startWorkflowRun({\n agentId,\n definitionId,\n projectId: project.id,\n workItemId: item.id,\n goal: goalText,\n input,\n source: { kind: 'webui' },\n concurrency: finiteNumberField(body.concurrency),\n maxSubagents: finiteNumberField(body.maxSubagents),\n tokenBudget,\n });\n if (result.ok === false) {\n return c.json({ ok: false, error: result.message, code: result.code }, result.httpStatus);\n }\n\n workItems.addLink(item.id, {\n kind: 'workflow_run',\n targetId: result.runId,\n title: goalText,\n statusSnapshot: 'queued',\n }, 'workflow_started');\n const updated = item.status === 'todo' || item.status === 'backlog'\n ? workItems.updateWorkItem(item.id, { status: 'in_progress' })\n : workItems.getWorkItem(item.id);\n return c.json({ ok: true, runId: result.runId, sessionKey: result.sessionKey, item: updated }, 202);\n });\n\n authenticated.post('/api/projects/:id/digest-memory', async (c) => {\n const project = service.projects.getWithDetails(c.req.param('id'));\n if (!project) return c.json({ ok: false, error: 'Project not found' }, 404);\n const goalIds = service.projects.listGoalIds(project.id, 100);\n const projectGoals = goalIds\n .map((id) => goals.get(id))\n .filter((goal): goal is GoalWithDetails => Boolean(goal));\n const loop = buildProjectLoopOverview({\n project,\n goals: projectGoals,\n recentWorkflowRuns: project.recentWorkflowRuns,\n failedWorkflowRuns: listFailedProjectWorkflowRuns(project.id),\n memoryRecords: listMemoryRecords({ projectId: project.id, status: 'active', limit: 5 }),\n });\n const record = upsertMemoryRecord({\n id: projectDigestMemoryRecordId(project.id),\n providerId: 'local',\n kind: 'daily_note',\n sourceAgentId: resolveProjectAgentId({\n config: service.currentConfig,\n projects: service.projects,\n projectId: project.id,\n }),\n workspaceId: project.workspaceRoot,\n projectId: project.id,\n content: buildProjectDigestMemoryContent({ ...loop, projectName: project.name }),\n source: {\n provider: 'project-digest',\n },\n confidence: 0.75,\n tags: ['project', 'project-digest', project.slug],\n status: 'active',\n sensitivity: 'normal',\n });\n return c.json({ ok: true, record }, 201);\n });\n\n authenticated.post('/api/projects/:id/blockers', async (c) => {\n const project = service.projects.getWithDetails(c.req.param('id'));\n if (!project) return c.json({ ok: false, error: 'Project not found' }, 404);\n const body = (await c.req.json().catch(() => ({}))) as Record<string, unknown>;\n const title = typeof body.title === 'string' ? body.title.trim() : '';\n if (!title) return c.json({ ok: false, error: 'Missing title' }, 400);\n const reason = typeof body.reason === 'string' ? body.reason.trim() : '';\n const goal = goals.create({\n title,\n description: reason || undefined,\n agentId: resolveProjectAgentId({\n config: service.currentConfig,\n projects: service.projects,\n projectId: project.id,\n }),\n priority: body.priority === 'low' || body.priority === 'normal' || body.priority === 'high' ? body.priority : 'high',\n source: 'api',\n projectId: project.id,\n });\n const blocked = goals.setStatus(goal.id, 'blocked', { reason: reason || title });\n if (reason) {\n goals.setContextMessage({ goalId: goal.id, text: reason });\n }\n return c.json({ ok: true, goal: blocked ?? goals.get(goal.id) }, 201);\n });\n\n authenticated.post('/api/projects/:id/pin', async (c) => {\n try {\n const project = service.projects.pin(c.req.param('id'));\n return c.json({ ok: true, project: enrichProjectWorkspace(service, project) });\n } catch (error) {\n return c.json({ ok: false, error: error instanceof Error ? error.message : String(error) }, 404);\n }\n });\n\n authenticated.post('/api/projects/:id/unpin', async (c) => {\n try {\n const project = service.projects.unpin(c.req.param('id'));\n return c.json({ ok: true, project: enrichProjectWorkspace(service, project) });\n } catch (error) {\n return c.json({ ok: false, error: error instanceof Error ? error.message : String(error) }, 404);\n }\n });\n\n authenticated.get('/api/projects/:id', async (c) => {\n const project = service.projects.getWithDetails(c.req.param('id'));\n if (!project) return c.json({ ok: false, error: 'Project not found' }, 404);\n return c.json({ ok: true, project: enrichProjectWorkspace(service, project) });\n });\n\n authenticated.patch('/api/projects/:id', async (c) => {\n const body = (await c.req.json().catch(() => ({}))) as Record<string, unknown>;\n const status = parseProjectStatus(body.status);\n const defaultAgentPatch = optionalTextField(body, 'defaultAgentId');\n const defaultAgentId = defaultAgentPatch === undefined ? undefined : normalizeProjectAgentId(defaultAgentPatch);\n if (defaultAgentId && !isValidProjectAgentId(service.currentConfig, defaultAgentId)) {\n return c.json({ ok: false, error: 'Default agent not found' }, 400);\n }\n try {\n const project = service.projects.update(c.req.param('id'), {\n ...(textField(body, 'name') !== undefined ? { name: textField(body, 'name') } : {}),\n ...(optionalTextField(body, 'description') !== undefined ? { description: optionalTextField(body, 'description') } : {}),\n ...(status ? { status } : {}),\n ...(defaultAgentPatch !== undefined ? { defaultAgentId: defaultAgentId ?? null } : {}),\n ...(optionalTextField(body, 'workspaceRoot') !== undefined ? { workspaceRoot: optionalTextField(body, 'workspaceRoot') } : {}),\n createWorkspaceRoot: body.createWorkspaceRoot === true,\n ...(optionalTextField(body, 'brief') !== undefined ? { brief: optionalTextField(body, 'brief') } : {}),\n ...(optionalTextField(body, 'instructions') !== undefined ? { instructions: optionalTextField(body, 'instructions') } : {}),\n });\n return c.json({ ok: true, project: enrichProjectWorkspace(service, project) });\n } catch (error) {\n if (error instanceof ProjectWorkspaceConflictError) {\n return c.json({ ok: false, code: 'workspace_already_bound', error: error.message, project: error.project }, 409);\n }\n if (error instanceof ProjectWorkspaceMissingError) {\n return c.json({ ok: false, code: 'workspace_root_missing', error: error.message, workspaceRoot: error.workspaceRoot }, 409);\n }\n return c.json({ ok: false, error: error instanceof Error ? error.message : String(error) }, 404);\n }\n });\n\n authenticated.delete('/api/projects/:id', async (c) => {\n service.projects.delete(c.req.param('id'));\n return c.json({ ok: true });\n });\n\n authenticated.get('/api/projects/:id/sessions', async (c) => {\n try {\n const keys = service.projects.listSessionKeys(c.req.param('id'), parseLimit(c.req.query('limit'), 100));\n const sessions = await Promise.all(keys.map((key) => service.sessions.getSession(key)));\n return c.json({\n ok: true,\n sessions: sessions.filter((session) => session && !isHiddenEmptyProjectChatShell(session)),\n });\n } catch (error) {\n return c.json({ ok: false, error: error instanceof Error ? error.message : String(error) }, 404);\n }\n });\n\n authenticated.get('/api/projects/:id/goals', async (c) => {\n try {\n const ids = service.projects.listGoalIds(c.req.param('id'), parseLimit(c.req.query('limit'), 100));\n return c.json({ ok: true, goals: ids.map((id) => goals.get(id)).filter(Boolean) });\n } catch (error) {\n return c.json({ ok: false, error: error instanceof Error ? error.message : String(error) }, 404);\n }\n });\n\n authenticated.get('/api/projects/:id/files', async (c) => {\n const resolved = await resolveProjectWorkspacePath(service, c.req.param('id'), c.req.query('path'));\n if (resolved.ok === false) return c.json({ ok: false, error: resolved.error }, resolved.status as 400);\n const { root, absolutePath: candidate } = resolved;\n let currentPath: string;\n try {\n currentPath = await realpath(candidate);\n if (!isWithinDirectory(root, currentPath)) {\n return c.json({ ok: false, error: 'Path is outside project workspace' }, 400);\n }\n const currentStat = await stat(currentPath);\n if (!currentStat.isDirectory()) {\n return c.json({ ok: false, error: 'Path is not a directory' }, 400);\n }\n } catch (err) {\n log.warn({ err, projectId: resolved.projectId, path: candidate }, 'project file path unavailable');\n return c.json({ ok: false, error: 'Path not found' }, 404);\n }\n\n try {\n const dirents = await readdir(currentPath, { withFileTypes: true });\n const entries = await Promise.all(dirents\n .filter((entry) => !SKIP_FILE_NAMES.has(entry.name))\n .map(async (entry) => {\n const displayPath = path.join(currentPath, entry.name);\n const absolutePath = await realpath(displayPath).catch(() => null);\n if (!absolutePath || !isWithinDirectory(root, absolutePath)) return null;\n const entryStat = await stat(absolutePath).catch(() => null);\n if (!entryStat) return null;\n const relativePath = path.relative(root, displayPath).split(path.sep).join('/');\n return {\n name: entry.name,\n path: relativePath,\n absolutePath,\n type: entryStat.isDirectory() ? 'directory' : 'file',\n size: entryStat?.isFile() ? entryStat.size : undefined,\n updatedAt: entryStat?.mtime.toISOString(),\n };\n }));\n const visibleEntries = entries.filter((entry): entry is NonNullable<typeof entry> => entry !== null);\n visibleEntries.sort((left, right) => {\n if (left.type !== right.type) return left.type === 'directory' ? -1 : 1;\n return left.name.localeCompare(right.name);\n });\n const relativeCurrentPath = path.relative(root, currentPath).split(path.sep).join('/');\n const parentRelativePath = relativeCurrentPath ? path.dirname(relativeCurrentPath).replaceAll('\\\\', '/') : null;\n return c.json({\n ok: true,\n root,\n path: relativeCurrentPath === '.' ? '' : relativeCurrentPath,\n parentPath: parentRelativePath === '.' ? '' : parentRelativePath,\n entries: visibleEntries,\n });\n } catch (err) {\n log.warn({ err, projectId: resolved.projectId, path: currentPath }, 'project file list failed');\n if ((err as NodeJS.ErrnoException)?.code === 'EACCES') {\n return c.json({ ok: false, error: 'Permission denied' }, 403);\n }\n return c.json({ ok: false, error: 'Failed to read project files' }, 500);\n }\n });\n\n /** Fuzzy filename / path search across the entire project workspace. */\n authenticated.get('/api/projects/:id/files/search', async (c) => {\n const q = typeof c.req.query('q') === 'string' ? c.req.query('q')!.trim() : '';\n const limitRaw = c.req.query('limit');\n const limit = Math.min(\n Math.max(parseInt(typeof limitRaw === 'string' ? limitRaw : '50', 10) || 50, 1),\n FILE_SEARCH_MAX_LIMIT,\n );\n const root = await resolveProjectWorkspaceRoot(service, c.req.param('id'));\n if (root.ok === false) return c.json({ ok: false, error: root.error }, root.status as 400);\n const entries = await fuzzySearchWorkspaceFiles(root.root, q, limit);\n return c.json({ ok: true, entries });\n });\n\n authenticated.get('/api/projects/:id/files/read', async (c) => {\n const resolved = await resolveExistingProjectWorkspacePath(service, c.req.param('id'), c.req.query('path'));\n if (resolved.ok === false) return c.json({ ok: false, error: { message: resolved.error } }, resolved.status as 400);\n if (!resolved.stat.isFile()) {\n return c.json({ ok: false, error: { message: 'Not a file' } }, 400);\n }\n try {\n const content = await readFile(resolved.absolutePath, 'utf-8');\n return c.json({\n ok: true,\n payload: {\n content,\n path: resolved.relativePath,\n absolutePath: resolved.absolutePath,\n mtimeMs: resolved.stat.mtimeMs,\n },\n });\n } catch {\n return c.json({ ok: false, error: { message: 'Read failed' } }, 500);\n }\n });\n\n authenticated.get('/api/projects/:id/files/raw', async (c) => {\n const resolved = await resolveExistingProjectWorkspacePath(service, c.req.param('id'), c.req.query('path'));\n if (resolved.ok === false) return c.json({ ok: false, error: { message: resolved.error } }, resolved.status as 400);\n if (!resolved.stat.isFile()) {\n return c.json({ ok: false, error: { message: 'Not a file' } }, 400);\n }\n const ext = resolved.relativePath.split('.').pop()?.toLowerCase() ?? '';\n const contentType = PROJECT_FILE_MIME_BY_EXT[ext] || 'application/octet-stream';\n try {\n const buf = await readFile(resolved.absolutePath);\n return new Response(buf, {\n headers: {\n 'Content-Type': contentType,\n 'Cache-Control': 'private, max-age=3600',\n },\n });\n } catch {\n return c.json({ ok: false, error: { message: 'Read failed' } }, 500);\n }\n });\n\n authenticated.get('/api/projects/:id/files/resolve-reference', async (c) => {\n const rawPath = typeof c.req.query('path') === 'string' ? c.req.query('path')!.trim() : '';\n if (!rawPath) {\n return c.json({ ok: false, error: { code: 'INVALID_PATH', message: 'Missing path' } }, 400);\n }\n const resolved = await resolveProjectWorkspacePath(service, c.req.param('id'), rawPath);\n if (resolved.ok === false) {\n return c.json({ ok: false, error: { code: 'PROJECT_WORKSPACE_RESOLUTION_FAILED', message: resolved.error } }, resolved.status as 400);\n }\n let st: Awaited<ReturnType<typeof stat>> | null = null;\n let absolutePath = resolved.absolutePath;\n try {\n absolutePath = await realpath(resolved.absolutePath);\n if (!isWithinDirectory(resolved.root, absolutePath)) {\n return c.json({\n ok: false,\n error: { code: 'PROJECT_WORKSPACE_RESOLUTION_FAILED', message: 'Path is outside project workspace' },\n }, 400);\n }\n st = await stat(absolutePath);\n } catch {\n st = null;\n }\n const displayName = path.basename(rawPath);\n if (!st) {\n return c.json({\n ok: true,\n payload: {\n inputPath: rawPath,\n displayName,\n scope: 'missing',\n exists: false,\n absolutePath: resolved.absolutePath,\n capabilities: ['copyPath'],\n errorCode: 'FILE_NOT_FOUND',\n },\n });\n }\n return c.json({\n ok: true,\n payload: {\n inputPath: rawPath,\n displayName,\n scope: 'workspace',\n exists: true,\n isDirectory: st.isDirectory(),\n absolutePath,\n workspaceRelativePath: resolved.relativePath,\n capabilities: st.isDirectory()\n ? ['openExternal', 'revealInFolder', 'copyPath']\n : ['preview', 'edit', 'openExternal', 'revealInFolder', 'copyPath'],\n mtimeMs: st.mtimeMs,\n },\n });\n });\n\n authenticated.put('/api/projects/:id/files/write', async (c) => {\n let body: unknown;\n try {\n body = await c.req.json();\n } catch {\n return c.json({ ok: false, error: { message: 'Invalid JSON' } }, 400);\n }\n const bodyRecord = typeof body === 'object' && body !== null ? body as Record<string, unknown> : {};\n const pathRel = typeof bodyRecord.path === 'string' ? bodyRecord.path : '';\n const content = typeof bodyRecord.content === 'string' ? bodyRecord.content : '';\n if (!pathRel.trim()) {\n return c.json({ ok: false, error: { message: 'Missing path' } }, 400);\n }\n const resolved = await resolveProjectWorkspaceWritePath(service, c.req.param('id'), pathRel);\n if (resolved.ok === false) return c.json({ ok: false, error: { message: resolved.error } }, resolved.status as 400);\n if (resolved.existingStat && !resolved.existingStat.isFile()) {\n return c.json({ ok: false, error: { message: 'Not a file' } }, 400);\n }\n try {\n await writeFile(resolved.absolutePath, content, 'utf-8');\n const mtimeMs = (await stat(resolved.absolutePath).catch(() => ({ mtimeMs: Date.now() }))).mtimeMs;\n return c.json({\n ok: true,\n payload: { path: resolved.relativePath, mtimeMs },\n });\n } catch (err) {\n log.error({ err, projectId: resolved.projectId, path: resolved.absolutePath }, 'project file write failed');\n return c.json({ ok: false, error: { message: 'Write failed' } }, 500);\n }\n });\n\n authenticated.post('/api/projects/:id/sessions/:sessionKey', async (c) => {\n try {\n service.projects.attachSession(c.req.param('sessionKey'), c.req.param('id'));\n const session = await service.sessions.getSession(c.req.param('sessionKey'));\n return c.json({ ok: true, session });\n } catch (error) {\n return c.json({ ok: false, error: error instanceof Error ? error.message : String(error) }, 404);\n }\n });\n\n authenticated.delete('/api/projects/:id/sessions/:sessionKey', async (c) => {\n try {\n const projectId = c.req.param('id');\n const sessionKey = c.req.param('sessionKey');\n if (!service.projects.get(projectId)) {\n return c.json({ ok: false, error: 'Project not found' }, 404);\n }\n const session = await service.sessions.getSession(sessionKey);\n if (!session) {\n return c.json({ ok: false, error: 'Session not found' }, 404);\n }\n if (session.projectId !== projectId) {\n return c.json({ ok: false, error: 'Session is not attached to this project' }, 409);\n }\n service.projects.detachSession(sessionKey);\n return c.json({ ok: true });\n } catch (error) {\n return c.json({ ok: false, error: error instanceof Error ? error.message : String(error) }, 404);\n }\n });\n\n authenticated.post('/api/projects/:id/sessions/:sessionKey/summary-memory', async (c) => {\n const projectId = c.req.param('id');\n const sessionKey = c.req.param('sessionKey');\n const project = service.projects.get(projectId);\n if (!project) return c.json({ ok: false, error: 'Project not found' }, 404);\n const session = getSessionMetadata(sessionKey);\n if (!session) return c.json({ ok: false, error: 'Session not found' }, 404);\n if (session.projectId !== projectId) {\n return c.json({ ok: false, error: 'Session is not attached to this project' }, 409);\n }\n const body = (await c.req.json().catch(() => ({}))) as Record<string, unknown>;\n const content = buildSessionSummaryMemoryContent(\n sessionKey,\n typeof body.summary === 'string' ? body.summary : undefined,\n );\n const record = upsertMemoryRecord({\n providerId: 'local',\n kind: 'session_summary',\n sourceAgentId: session.routing?.agentId ?? 'main',\n workspaceId: session.cwd,\n sessionKey,\n projectId,\n content,\n source: {\n provider: 'project-summary',\n sessionEntryId: sessionKey,\n },\n confidence: typeof body.confidence === 'number' ? body.confidence : 0.7,\n tags: ['project', 'session-summary', project.slug],\n status: 'active',\n sensitivity: 'normal',\n evidence: [{ sessionKey }],\n });\n return c.json({ ok: true, record }, 201);\n });\n\n authenticated.post('/api/projects/:id/goals/:goalId', async (c) => {\n try {\n service.projects.attachGoal(c.req.param('goalId'), c.req.param('id'));\n return c.json({ ok: true, goal: goals.get(c.req.param('goalId')) });\n } catch (error) {\n return c.json({ ok: false, error: error instanceof Error ? error.message : String(error) }, 404);\n }\n });\n\n authenticated.delete('/api/projects/:id/goals/:goalId', async (c) => {\n try {\n const projectId = c.req.param('id');\n const goalId = c.req.param('goalId');\n if (!service.projects.get(projectId)) {\n return c.json({ ok: false, error: 'Project not found' }, 404);\n }\n const goal = goals.get(goalId);\n if (!goal) {\n return c.json({ ok: false, error: 'Goal not found' }, 404);\n }\n if (goal.projectId !== projectId) {\n return c.json({ ok: false, error: 'Goal is not attached to this project' }, 409);\n }\n service.projects.detachGoal(goalId);\n return c.json({ ok: true });\n } catch (error) {\n return c.json({ ok: false, error: error instanceof Error ? error.message : String(error) }, 404);\n }\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;kBAqBkE;AAuBlE,MAAM,MAAM,yBAAyB,WAAW;AAEhD,MAAM,+BAA+B;AAErC,SAAS,uBAAuB,SAAyB;AASvD,SARkB,QACf,MAAM,QAAQ,CACd,KAAK,SAAS,KAAK,MAAM,CAAC,CAC1B,KAAK,QAAQ,IAAI,QAAQ,MAAM,EAE/B,QAAQ,cAAc,GAAG,CACzB,QAAQ,cAAc,GAAG,CACzB,MACc,CAAC,MAAM,GAAG,GAAG,IAAI;;AAGpC,SAAS,mBAAmB,KAAyC;AACnE,QAAO,QAAQ,YAAY,QAAQ,YAAY,QAAQ,aAAa,MAAM,KAAA;;AAG5E,SAAS,WAAW,KAAyB,WAAW,IAAwB;AAC9E,KAAI,CAAC,IAAK,QAAO,KAAA;CACjB,MAAM,IAAI,OAAO,SAAS,KAAK,GAAG;AAClC,QAAO,OAAO,SAAS,EAAE,GAAG,KAAK,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,CAAC,GAAG;;AAG9D,SAAS,8BAA8B,SAK3B;AACV,QAAO,QAAQ,0BAA0B,QACpC,QAAQ,iBAAiB,KACzB,QAAQ,YAAY,wBAAwB,SAC5C,QAAQ,QAAQ,SAAS,QAAQ,WAAW,QAAQ,CAAC;;AAG5D,SAAS,UAAU,MAA+B,KAAiC;CACjF,MAAM,QAAQ,KAAK;AACnB,QAAO,OAAO,UAAU,WAAW,QAAQ,KAAA;;AAG7C,SAAS,kBAAkB,MAA+B,KAAwC;AAChG,KAAI,EAAE,OAAO,MAAO,QAAO,KAAA;CAC3B,MAAM,QAAQ,KAAK;AACnB,QAAO,OAAO,UAAU,WAAW,QAAQ;;AAG7C,SAAS,8BACP,SACA,SACoB;CACpB,MAAM,YAAY,QAAQ,eAAe,MAAM;AAC/C,KAAI,UAAW,QAAO;CACtB,MAAM,UAAU,sBAAsB;EACpC,QAAQ,QAAQ;EAChB,UAAU,QAAQ;EAClB,WAAW,QAAQ;EACpB,CAAC;AACF,QAAO,6BAA6B,QAAQ,eAAe,QAAQ,CAAC;;AAGtE,SAAS,uBACP,SACA,SACG;AACH,QAAO;EACL,GAAG;EACH,eAAe,QAAQ,eAAe,MAAM,GAAG,UAAU;EACzD,wBAAwB,8BAA8B,SAAS,QAAQ;EACxE;;AAGH,SAAS,kBAAkB,OAAoC;AAC7D,KAAI,OAAO,UAAU,YAAY,OAAO,SAAS,MAAM,CAAE,QAAO;AAChE,KAAI,OAAO,UAAU,YAAY,MAAM,MAAM,EAAE;EAC7C,MAAM,SAAS,OAAO,MAAM;AAC5B,SAAO,OAAO,SAAS,OAAO,GAAG,SAAS,KAAA;;;AAK9C,SAAS,qBAAqB,MAAuC;CACnE,MAAM,MAAM,KAAK,QAAQ,KAAK,SAAS,KAAK;AAE5C,SADe,MAAM,QAAQ,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,GAAG,EAAE,EAC5C,QAAQ,UAAyB,iBAAiB,KAAK;;AAGvE,SAAS,8BAA8B,OAA8B;AACnE,KAAI,MAAM,SAAA,GACR,QAAO;AAET,MAAK,MAAM,QAAQ,MACjB,KAAI,KAAK,OAAA,SACP,QAAO,cAAc,KAAK,UAAU,KAAK,QAAQ,SAAS,CAAC,WAAW,KAAK,MAAM,kCAAkC,OAAO,MAAM,CAAC;AAGrI,QAAO;;AAGT,eAAe,qBAAqB,MAAyE;AAC3G,QAAO;EACL,MAAM,KAAK,QAAQ;EACnB,QAAQ,OAAO,KAAK,MAAM,KAAK,aAAa,CAAC;EAC7C,UAAU,KAAK,QAAQ;EACxB;;AAGH,SAAS,aAA+B,KAAyB,QAAuC;AACtG,KAAI,CAAC,IAAK,QAAO,KAAA;CACjB,MAAM,UAAU,IAAI,IAAI,OAAO;CAC/B,MAAM,SAAS,IACZ,MAAM,IAAI,CACV,KAAK,SAAS,KAAK,MAAM,CAAC,CAC1B,QAAQ,SAAoB,QAAQ,IAAI,KAAU,CAAC;AACtD,QAAO,OAAO,SAAS,IAAI,CAAC,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,KAAA;;AAGpD,SAAS,eAAiC,KAAc,QAAqC;AAC3F,KAAI,OAAO,QAAQ,SAAU,QAAO,KAAA;AACpC,QAAO,OAAO,SAAS,IAAS,GAAG,MAAW,KAAA;;AAGhD,MAAM,qBAAqB;CACzB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AACD,MAAM,uBAAuB;CAAC;CAAU;CAAQ;CAAU;CAAM;AAChE,MAAM,gCAAgC;CAAC;CAAW;CAAW;CAAY;AAEzE,MAAM,kBAAkB,IAAI,IAAI,CAAC,QAAQ,eAAe,CAAC;AAEzD,MAAM,2BAAmD;CACvD,KAAK;CACL,KAAK;CACL,MAAM;CACN,KAAK;CACL,MAAM;CACN,KAAK;CACL,KAAK;CACL,KAAK;CACL,MAAM;CACN,MAAM;CACN,MAAM;CACN,KAAK;CACL,IAAI;CACJ,MAAM;CACN,MAAM;CACN,KAAK;CACL,IAAI;CACJ,IAAI;CACJ,KAAK;CACL,KAAK;CACL,KAAK;CACL,MAAM;CACN,KAAK;CACL,KAAK;CACN;AAED,SAAS,sBAAsB,KAAiC;AAE9D,SADoB,OAAO,IAAI,MAAM,CAAC,WAAW,MAAM,IACtC,CAAC,QAAQ,QAAQ,GAAG;;AAGvC,SAAS,kBAAkB,MAAc,QAAyB;CAChE,MAAM,eAAeA,OAAK,SAAS,MAAM,OAAO;AAChD,QAAO,iBAAiB,MAAO,CAAC,aAAa,WAAW,KAAK,IAAI,CAACA,OAAK,WAAW,aAAa;;AAGjG,eAAe,4BACb,SACA,WACuG;CACvG,MAAM,UAAU,QAAQ,SAAS,IAAI,UAAU;AAC/C,KAAI,CAAC,QAAS,QAAO;EAAE,IAAI;EAAO,QAAQ;EAAK,OAAO;EAAqB;CAC3E,MAAM,gBAAgB,8BAA8B,SAAS,QAAQ;AACrE,KAAI,CAAC,eAAe,MAAM,CACxB,QAAO;EAAE,IAAI;EAAO,QAAQ;EAAK,OAAO;EAAqC;AAG/E,KAAI;EACF,MAAM,OAAO,MAAM,SAAS,cAAc;AAE1C,MAAI,EAAC,MADkB,KAAK,KAAK,EACnB,aAAa,CACzB,QAAO;GAAE,IAAI;GAAO,QAAQ;GAAK,OAAO;GAA6C;AAEvF,SAAO;GAAE,IAAI;GAAM,WAAW,QAAQ;GAAI;GAAM;UACzC,KAAK;AACZ,MAAI,KAAK;GAAE;GAAK,WAAW,QAAQ;GAAI,MAAM;GAAe,EAAE,qCAAqC;AACnG,SAAO;GAAE,IAAI;GAAO,QAAQ;GAAK,OAAO;GAAyC;;;AAIrF,eAAe,4BACb,SACA,WACA,SAIA;CACA,MAAM,aAAa,MAAM,4BAA4B,SAAS,UAAU;AACxE,KAAI,WAAW,OAAO,MACpB,QAAO;EAAE,IAAI;EAAO,QAAQ,WAAW;EAAQ,OAAO,WAAW;EAAO;CAG1E,MAAM,gBAAgB,sBAAsB,QAAQ;CACpD,MAAM,YAAYA,OAAK,QAAQ,WAAW,MAAM,cAAc;AAC9D,KAAI,CAAC,kBAAkB,WAAW,MAAM,UAAU,CAChD,QAAO;EAAE,IAAI;EAAO,QAAQ;EAAK,OAAO;EAAqC;CAG/E,MAAM,eAAeA,OAAK,SAAS,WAAW,MAAM,UAAU,CAAC,MAAMA,OAAK,IAAI,CAAC,KAAK,IAAI;AACxF,QAAO;EACL,IAAI;EACJ,WAAW,WAAW;EACtB,MAAM,WAAW;EACjB;EACA,cAAc;EACd,cAAc,iBAAiB,MAAM,KAAK;EAC3C;;AAGH,eAAe,oCACb,SACA,WACA,SAYA;CACA,MAAM,WAAW,MAAM,4BAA4B,SAAS,WAAW,QAAQ;AAC/E,KAAI,SAAS,OAAO,MAAO,QAAO;AAClC,KAAI,CAAC,SAAS,cAAc,MAAM,CAChC,QAAO;EAAE,IAAI;EAAO,QAAQ;EAAK,OAAO;EAAgB;CAG1D,IAAI;AACJ,KAAI;AACF,eAAa,MAAM,SAAS,SAAS,aAAa;SAC5C;AACN,SAAO;GAAE,IAAI;GAAO,QAAQ;GAAK,OAAO;GAAa;;AAEvD,KAAI,CAAC,kBAAkB,SAAS,MAAM,WAAW,CAC/C,QAAO;EAAE,IAAI;EAAO,QAAQ;EAAK,OAAO;EAAqC;CAE/E,MAAM,aAAa,MAAM,KAAK,WAAW;AACzC,QAAO;EACL,GAAG;EACH,cAAc;EACd,MAAM;EACP;;AAGH,eAAe,iCACb,SACA,WACA,SAYA;CACA,MAAM,WAAW,MAAM,4BAA4B,SAAS,WAAW,QAAQ;AAC/E,KAAI,SAAS,OAAO,MAAO,QAAO;AAClC,KAAI,CAAC,SAAS,cAAc,MAAM,CAChC,QAAO;EAAE,IAAI;EAAO,QAAQ;EAAK,OAAO;EAAgB;AAG1D,KAAI;EACF,MAAM,aAAa,MAAM,SAAS,SAAS,aAAa;AACxD,MAAI,CAAC,kBAAkB,SAAS,MAAM,WAAW,CAC/C,QAAO;GAAE,IAAI;GAAO,QAAQ;GAAK,OAAO;GAAqC;AAE/E,SAAO;GACL,GAAG;GACH,cAAc;GACd,cAAc,MAAM,KAAK,WAAW;GACrC;SACK;EACN,MAAM,aAAaA,OAAK,QAAQ,SAAS,aAAa;AACtD,MAAI;GACF,MAAM,aAAa,MAAM,SAAS,WAAW;AAC7C,OAAI,CAAC,kBAAkB,SAAS,MAAM,WAAW,CAC/C,QAAO;IAAE,IAAI;IAAO,QAAQ;IAAK,OAAO;IAAqC;UAEzE;AACN,UAAO;IAAE,IAAI;IAAO,QAAQ;IAAK,OAAO;IAA8B;;AAExE,SAAO;;;AAIX,SAAS,0BAA0B,SAA0B;AAC3D,KAAI,OAAO,YAAY,SAAU,QAAO;AACxC,KAAI,CAAC,MAAM,QAAQ,QAAQ,CAAE,QAAO;AACpC,QAAO,QACJ,KAAK,SAAS;AACb,MAAI,CAAC,QAAQ,OAAO,SAAS,SAAU,QAAO;EAC9C,MAAM,SAAS;AACf,SAAO,OAAO,OAAO,SAAS,WAAW,OAAO,OAAO;GACvD,CACD,OAAO,QAAQ,CACf,KAAK,KAAK;;AAGf,SAAS,iCAAiC,YAAoB,iBAAkC;CAC9F,MAAM,UAAU,iBAAiB,MAAM;AACvC,KAAI,QAAS,QAAO;CASpB,MAAM,QARO,6BAA6B,WAAW,CAClD,QAAQ,QAAQ;AACf,MAAI,CAAC,OAAO,OAAO,QAAQ,SAAU,QAAO;EAE5C,MAAM,OAAOC,IAAO;AACpB,SAAO,SAAS,UAAU,SAAS,eAAe,SAAS,uBAAuB,SAAS;GAC3F,CACD,MAAM,IACS,CACf,KAAK,QAAQ;EACZ,MAAM,SAAS;EACf,MAAM,UAAU,OAAO,OAAO,SAAS,WAAW,OAAO,OAAO;EAChE,MAAM,OAAO,YAAY,uBAAuB,YAAY,kBAAkB,YAAY;EAE1F,MAAM,YADQ,OAAO,OAAO,YAAY,WAAW,OAAO,UAAU,KAAA,MAAc,0BAA0B,OAAO,QAAQ,EACtG,MAAM,CAAC,QAAQ,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI;AAC9D,SAAO,UAAU,KAAK,KAAK,IAAI,YAAY;GAC3C,CACD,OAAO,QAAQ;AAClB,QAAO,MAAM,SAAS,IAClB,CAAC,uBAAuB,WAAW,IAAI,GAAG,MAAM,CAAC,KAAK,KAAK,GAC3D,uBAAuB,WAAW;;AAGxC,SAAS,iCAAiC,QAOlB;AACtB,QAAO;EACL,MAAM,OAAO;EACb,MAAM,CAAC,YAAY;EACnB,eAAe;EACf,cAAc;GAAC,OAAO;GAAW;GAAU,OAAO;GAAO,CAAC,KAAK,IAAI;EACnE,aAAa;EACb,uBAAuB;EACvB,SAAS;GACP,SAAS,OAAO;GAChB,QAAQ;GACR,WAAW,OAAO;GAClB,UAAU;GACV,QAAQ,OAAO;GAChB;EACD,YAAY;GACV,qBAAqB;GACrB,eAAe;IACb,MAAM;IACN,UAAU,OAAO;IACjB,SAAS,OAAO,OAAO,UAAU;IACjC,YAAY,KAAK,KAAK;IACvB;GACF;EACF;;AAGH,SAAS,8BAA8B,WAAmB,QAAQ,GAA8B;AAgB9F,QAfa,mBAAmB,CAC7B,QACC;;;;gBAKD,CACA,IAAI,WAAW,KAAK,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,MAAM,MAAM,CAAC,CAAC,CAOnD,CAAC,KAAK,SAAS;EACxB,OAAO,IAAI;EACX,cAAc,IAAI;EAClB,QAAQ,IAAI;EACZ,WAAW,IAAI;EACf,cAAc,IAAI,iBAAiB,KAAA;EACpC,EAAE;;AAGL,SAAS,gCAAgC,OAAsF;CAC7H,MAAM,QAAQ;EACZ,mBAAmB,MAAM;EACzB,WAAW,MAAM,OAAO;EACxB,MAAM,OAAO,aAAa,SAAS,MAAM,OAAO,eAAe,KAAA;EAChE,CAAC,OAAO,QAAQ;AACjB,KAAI,MAAM,eAAe,SAAS,GAAG;AACnC,QAAM,KAAK,IAAI,aAAa;AAC5B,OAAK,MAAM,QAAQ,MAAM,eAAe,MAAM,GAAG,EAAE,CACjD,OAAM,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,QAAQ,KAAK,SAAS,MAAM,KAAK,WAAW,KAAK;;AAGxF,KAAI,MAAM,SAAS,SAAS,GAAG;AAC7B,QAAM,KAAK,IAAI,mBAAmB;AAClC,OAAK,MAAM,QAAQ,MAAM,SAAS,MAAM,GAAG,EAAE,CAC3C,OAAM,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,QAAQ,KAAK,SAAS,MAAM,KAAK,WAAW,KAAK;;AAGxF,QAAO,MAAM,KAAK,KAAK;;AAGzB,SAAS,4BAA4B,WAA2B;AAC9D,QAAO,kBAAkB;;AAG3B,SAAgB,uBAAuB,eAAqB,MAAoC;CAC9F,MAAM,EAAE,YAAY;CACpB,MAAM,WAAW,IAAI,iBAAiB;CACtC,MAAM,QAAQ,IAAI,aAAa;CAC/B,MAAM,YAAY,IAAI,iBAAiB;AAEvC,eAAc,KAAK,0BAA0B,OAAO,MAAM;EACxD,MAAM,OAAQ,MAAM,EAAE,IAAI,MAAM,CAAC,aAAa,EAAE,EAAE;EAClD,MAAM,UAAU,UAAU,MAAM,UAAU,EAAE,MAAM,IAAI;AACtD,MAAI,CAAC,QAAS,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAmB,EAAE,IAAI;AACzE,MAAI,QAAQ,SAAS,6BACnB,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO,mBAAmB,6BAA6B;GAAc,EAAE,IAAI;EAGxG,MAAM,OAAO,UAAU,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,uBAAuB,QAAQ;EAC5F,MAAM,WAAW,sBAAsB,KAAK,SAAS;EACrD,MAAM,iBAAiB,oCAAoC;GACzD,QAAQ,QAAQ;GAChB;GACA,aAAa;GACb,aAAa;GACd,CAAC;AACF,MAAI,CAAC,sBAAsB,QAAQ,eAAe,eAAe,CAC/D,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAA2B,EAAE,IAAI;EAGrE,MAAM,gBAAgB,MAAM,kBAAkB;GAC5C,OAAO;GACP,SAAS;GACT;GACA,UAAU,QAAQ,cAAc,OAAO;GACxC,CAAC;EAEF,IAAI;AACJ,MAAI;AACF,aAAU,gCAAgC;IACxC,MAAM,UAAU,QAAQ,SAAS,OAAO;KACtC;KACA,aAAa;KACb;KACA,aAAa;KACb,OAAO;KACR,CAAC;IACF,MAAM,OAAO,MAAM,OAAO;KACxB,OAAO;KACP,aAAa;KACb,SAAS;KACT,UAAU;KACV;KACA,QAAQ;KACR,WAAW,QAAQ;KACnB,UAAU,cAAc;KACxB,QAAQ,QAAQ;KACjB,CAAC;IACF,MAAM,eAAe,MAAM,kBAAkB;KAAE,QAAQ,KAAK;KAAI,MAAM;KAAS,CAAC;AAChF,QAAI,CAAC,aAAc,OAAM,IAAI,MAAM,kCAAkC;AACrE,WAAO;KAAE;KAAS,MAAM;KAAc;KACtC;WACK,OAAO;AACd,OAAI,KACF;IAAE,KAAK;IAAO,OAAO;IAAmB,EACxC,wCAAwC,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM,GAC/F;AACD,UAAO,EAAE,KAAK;IAAE,IAAI;IAAO,OAAO,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;IAAE,EAAE,IAAI;;EAGlG,IAAI;EACJ,IAAI;AACJ,MAAI;AACF,YAAS,QAAQ,eAAe,QAAQ,KAAK,IAAI,EAAE,QAAQ,OAAO,CAAC;WAC5D,OAAO;AACd,sBAAmB,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;AACzE,OAAI,KACF;IAAE,KAAK;IAAO,WAAW,QAAQ,QAAQ;IAAI,QAAQ,QAAQ,KAAK;IAAI,OAAO;IAAoB,EACjG,qDAAqD,mBACtD;;AAGH,SAAO,EAAE,KAAK;GACZ,IAAI;GACJ,SAAS,uBAAuB,SAAS,QAAQ,QAAQ;GACzD,MAAM,QAAQ;GACd,mBAAmB,cAAc;GACjC,iBAAiB,cAAc;GAC/B,WAAW;IACT,QAAQ,SAAS,WAAW;IAC5B,WAAW;IACX,SAAS;IACV;GACF,EAAE,IAAI;GACP;AAEF,eAAc,KAAK,iBAAiB,OAAO,MAAM;EAC/C,MAAM,OAAQ,MAAM,EAAE,IAAI,MAAM,CAAC,aAAa,EAAE,EAAE;EAClD,MAAM,OAAO,UAAU,MAAM,OAAO,EAAE,MAAM;EAC5C,MAAM,gBAAgB,UAAU,MAAM,gBAAgB,EAAE,MAAM;AAC9D,MAAI,CAAC,QAAQ,CAAC,cAAe,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAgB,EAAE,IAAI;EACrF,MAAM,uBAAuB,OAAO,OAAO,MAAM,iBAAiB;EAClE,MAAM,yBAAyB,wBAAwB,UAAU,MAAM,iBAAiB,CAAC;EACzF,MAAM,iBAAiB,uBACnB,yBACA,oCAAoC;GACpC,QAAQ,QAAQ;GAChB;GACA,aAAa,UAAU,MAAM,cAAc;GAC3C;GACA,aAAa,UAAU,MAAM,cAAc;GAC5C,CAAC;AACJ,MAAI,CAAC,sBAAsB,QAAQ,eAAe,eAAe,CAC/D,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAA2B,EAAE,IAAI;AAErE,MAAI;GACF,MAAM,UAAU,QAAQ,SAAS,OAAO;IACtC;IACA,aAAa,UAAU,MAAM,cAAc;IAC3C;IACA;IACA,qBAAqB,KAAK,wBAAwB;IAClD,aAAa,UAAU,MAAM,cAAc;IAC3C,OAAO,UAAU,MAAM,QAAQ;IAC/B,cAAc,UAAU,MAAM,eAAe;IAC9C,CAAC;AACF,UAAO,EAAE,KAAK;IAAE,IAAI;IAAM,SAAS,uBAAuB,SAAS,QAAQ;IAAE,EAAE,IAAI;WAC5E,OAAO;AACd,OAAI,iBAAiB,8BACnB,QAAO,EAAE,KAAK;IAAE,IAAI;IAAO,MAAM;IAA2B,OAAO,MAAM;IAAS,SAAS,MAAM;IAAS,EAAE,IAAI;AAElH,OAAI,iBAAiB,6BACnB,QAAO,EAAE,KAAK;IAAE,IAAI;IAAO,MAAM;IAA0B,OAAO,MAAM;IAAS,eAAe,MAAM;IAAe,EAAE,IAAI;AAE7H,UAAO,EAAE,KAAK;IAAE,IAAI;IAAO,OAAO,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;IAAE,EAAE,IAAI;;GAElG;AAEF,eAAc,IAAI,iBAAiB,OAAO,MAAM;EAC9C,MAAM,SAAS,mBAAmB,EAAE,IAAI,MAAM,SAAS,CAAC;EACxD,MAAM,SAAS,QAAQ,SAAS,KAAK;GACnC,GAAI,SAAS,EAAE,QAAQ,GAAG,EAAE;GAC5B,QAAQ,EAAE,IAAI,MAAM,SAAS;GAC7B,QAAQ,EAAE,IAAI,MAAM,SAAS;GAC7B,WAAW,EAAE,IAAI,MAAM,YAAY;GACnC,OAAO,WAAW,EAAE,IAAI,MAAM,QAAQ,CAAC;GACvC,QAAQ,EAAE,IAAI,MAAM,SAAS,GAAG,KAAK,IAAI,GAAG,OAAO,SAAS,EAAE,IAAI,MAAM,SAAS,EAAG,GAAG,IAAI,EAAE,GAAG,KAAA;GACjG,CAAC;AACF,SAAO,EAAE,KAAK;GAAE,IAAI;GAAM,GAAG;GAAQ,OAAO,OAAO,MAAM,KAAK,YAAY,uBAAuB,SAAS,QAAQ,CAAC;GAAE,CAAC;GACtH;AAEF,eAAc,IAAI,6BAA6B,OAAO,MAAM;EAC1D,MAAM,aAAa,EAAE,IAAI,MAAM,aAAa,EAAE,MAAM;AACpD,SAAO,EAAE,KAAK;GAAE,IAAI;GAAM,aAAa,aAAa,QAAQ,SAAS,0BAA0B,WAAW,GAAG,EAAE;GAAE,CAAC;GAClH;AAEF,eAAc,KAAK,gCAAgC,OAAO,MAAM;EAC9D,MAAM,OAAQ,MAAM,EAAE,IAAI,MAAM,CAAC,aAAa,EAAE,EAAE;EAClD,MAAM,QAAQ;GACZ,MAAM,UAAU,MAAM,OAAO;GAC7B,aAAa,UAAU,MAAM,cAAc;GAC3C,eAAe,UAAU,MAAM,gBAAgB;GAC/C,aAAa,UAAU,MAAM,cAAc;GAC5C;EACD,MAAM,YAAY,iBAAiB,MAAM;EACzC,MAAM,iBAAiB,oCAAoC;GACzD,QAAQ,QAAQ;GAChB,GAAG;GACJ,CAAC;AACF,SAAO,EAAE,KAAK;GAAE,IAAI;GAAM;GAAW;GAAgB,CAAC;GACtD;AAEF,eAAc,KAAK,mCAAmC,OAAO,MAAM;EACjE,MAAM,OAAQ,MAAM,EAAE,IAAI,MAAM,CAAC,aAAa,EAAE,EAAE;EAClD,MAAM,gBAAgB,UAAU,MAAM,gBAAgB,EAAE,MAAM;AAC9D,MAAI,CAAC,cAAe,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAyB,EAAE,IAAI;EACrF,MAAM,UAAU,UAAU,MAAM,UAAU,EAAE,MAAM,IAAI;EACtD,MAAM,0BAA0B,oCAAoC;GAClE,QAAQ,QAAQ;GAChB,eAAe;GACf,aAAa,UAAU,MAAM,cAAc;GAC5C,CAAC;EACF,IAAI;AACJ,MAAI;AACF,WAAQ,QAAQ,SAAS,gCAAgC;IACvD;IACA;IACA,gBAAgB;IAChB,YAAY,KAAK,eAAe;IACjC,CAAC;WACK,OAAO;AACd,OAAI,iBAAiB,8BACnB,SAAQ;IAAE,SAAS,MAAM;IAAS,QAAQ;IAAkB,SAAS;IAAO;OAE5E,OAAM;;AAGV,MAAI,CAAC,MAAO,QAAO,EAAE,KAAK;GAAE,IAAI;GAAM,SAAS;GAAM,CAAC;EAEtD,MAAM,aAAa,UAAU,MAAM,aAAa,EAAE,MAAM;EACxD,MAAM,wBAAwB,wBAAwB,MAAM,QAAQ,eAAe;EACnF,MAAM,6BAA6B,CAAC,yBAAyB,0BAA0B,wBAAwB,QAAQ;AACvH,MAAI,cAAc,4BAA4B;AAE5C,OAAI,CADoB,mBAAmB,WACvB,CAClB,OAAM,QAAQ,qBAAqB,aAAa,YAAY,EAAE,EAAE,EAC9D,UAAU;IACR,eAAe;IACf,cAAc,kBAAkB;IAChC,aAAa;IACb,WAAW,MAAM,QAAQ;IACzB,SAAS;KACP;KACA,QAAQ;KACR,WAAW;KACX,UAAU;KACV,QAAQ;KACT;IACF,EACF,CAAC;AAEJ,WAAQ,SAAS,cAAc,YAAY,MAAM,QAAQ,GAAG;;AAG9D,SAAO,EAAE,KAAK;GAAE,IAAI;GAAM,GAAG;GAAO,CAAC;GACrC;AAEF,eAAc,IAAI,8BAA8B,OAAO,MAAM;EAC3D,MAAM,UAAU,QAAQ,SAAS,eAAe,EAAE,IAAI,MAAM,KAAK,CAAC;AAClE,MAAI,CAAC,QAAS,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAqB,EAAE,IAAI;EAK3E,MAAM,OAAO,yBAAyB;GACpC;GACA,OANc,QAAQ,SAAS,YAAY,QAAQ,IAAI,WAAW,EAAE,IAAI,MAAM,YAAY,EAAE,IAAI,CACtE,CACzB,KAAK,OAAO,MAAM,IAAI,GAAG,CAAC,CAC1B,QAAQ,SAAkC,QAAQ,KAAK,CAGrC;GACnB,oBAAoB,QAAQ;GAC5B,oBAAoB,8BAA8B,QAAQ,GAAG;GAC7D,eAAe,kBAAkB;IAAE,WAAW,QAAQ;IAAI,QAAQ;IAAU,OAAO;IAAG,CAAC;GACxF,CAAC;AACF,SAAO,EAAE,KAAK;GACZ,IAAI;GACJ,UAAU;IACR,SAAS,uBAAuB,SAAS,QAAQ;IACjD,OAAO;KACL,cAAc,QAAQ;KACtB,WAAW,QAAQ;KACnB,iBAAiB,QAAQ;KACzB,wBAAwB,QAAQ,mBAAmB;KACnD,gBAAgB,KAAK,WAAW;KAChC,gBAAgB,KAAK,eAAe;KACpC,wBAAwB,KAAK,mBAAmB;KACjD;IACD,aAAa,KAAK;IAClB,cAAc,KAAK;IACnB,YAAY,KAAK;IACjB,aAAa,KAAK;IAClB,gBAAgB,KAAK;IACrB,UAAU,KAAK;IACf,QAAQ,KAAK;IACb,oBAAoB,KAAK;IACzB,gBAAgB,QAAQ;IACxB,oBAAoB,QAAQ;IAC5B,mBAAmB,KAAK;IACzB;GACF,CAAC;GACF;AAEF,eAAc,IAAI,+BAA+B,MAAM;EACrD,MAAM,UAAU,QAAQ,SAAS,IAAI,EAAE,IAAI,MAAM,KAAK,CAAC;AACvD,MAAI,CAAC,QAAS,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAqB,EAAE,IAAI;EAC3E,MAAM,SAAS,SAAS,eAAe;GACrC,WAAW,QAAQ;GACnB,gBAAgB,4BAA4B,EAAE,IAAI,MAAM,iBAAiB,CAAC;GAC1E,GAAG,mBAAmB,EAAE;GACzB,CAAC;AACF,SAAO,EAAE,KAAK;GAAE,IAAI;GAAM,GAAG;GAAQ,CAAC;GACtC;AAEF,eAAc,IAAI,gCAAgC,OAAO,MAAM;EAC7D,MAAM,UAAU,QAAQ,SAAS,IAAI,EAAE,IAAI,MAAM,KAAK,CAAC;AACvD,MAAI,CAAC,QAAS,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAqB,EAAE,IAAI;EAC3E,MAAM,SAAS,UAAU,qBAAqB,QAAQ,IAAI;GACxD,QAAQ,aAAa,EAAE,IAAI,MAAM,SAAS,EAAE,mBAAmB;GAC/D,UAAU,aAAa,EAAE,IAAI,MAAM,WAAW,EAAE,qBAAqB;GACrE,iBAAiB,EAAE,IAAI,MAAM,kBAAkB,KAAK;GACpD,QAAQ,EAAE,IAAI,MAAM,SAAS;GAC7B,QAAQ,EAAE,IAAI,MAAM,SAAS;GAC7B,WAAW,EAAE,IAAI,MAAM,YAAY;GACnC,OAAO,WAAW,EAAE,IAAI,MAAM,QAAQ,CAAC;GACvC,QAAQ,EAAE,IAAI,MAAM,SAAS,GAAG,KAAK,IAAI,GAAG,OAAO,SAAS,EAAE,IAAI,MAAM,SAAS,EAAG,GAAG,IAAI,EAAE,GAAG,KAAA;GACjG,CAAC;AACF,SAAO,EAAE,KAAK;GAAE,IAAI;GAAM,GAAG;GAAQ,CAAC;GACtC;AAEF,eAAc,KAAK,gCAAgC,OAAO,MAAM;EAC9D,MAAM,UAAU,QAAQ,SAAS,IAAI,EAAE,IAAI,MAAM,KAAK,CAAC;AACvD,MAAI,CAAC,QAAS,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAqB,EAAE,IAAI;EAC3E,MAAM,cAAc,EAAE,IAAI,OAAO,eAAe,IAAI;EACpD,IAAI;EACJ,IAAI,QAAgB,EAAE;AACtB,MAAI,YAAY,SAAS,sBAAsB,EAAE;AAC/C,OAAI;AACF,WAAO,MAAM,EAAE,IAAI,UAAU,EAAE,KAAK,MAAM,CAAC;WACrC;AACN,WAAO,EAAE,KAAK;KAAE,IAAI;KAAO,OAAO;KAA0B,EAAE,IAAI;;AAEpE,WAAQ,qBAAqB,KAAK;QAElC,QAAQ,MAAM,EAAE,IAAI,MAAM,CAAC,aAAa,EAAE,EAAE;EAE9C,MAAM,kBAAkB,8BAA8B,MAAM;AAC5D,MAAI,gBAAiB,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAiB,EAAE,IAAI;EAC9E,MAAM,QAAQ,UAAU,MAAM,QAAQ,EAAE,MAAM;AAC9C,MAAI,CAAC,MAAO,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAA+B,EAAE,IAAI;EACnF,MAAM,SAAS,eAAe,KAAK,QAAQ,mBAAmB;EAC9D,MAAM,WAAW,eAAe,KAAK,UAAU,qBAAqB;EACpE,MAAM,QAAQ,kBAAkB,KAAK,MAAM;AAC3C,MAAI,OAAO,OAAO,MAAM,SAAS,IAAI,CAAC,OAAQ,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAA4B,EAAE,IAAI;AAClH,MAAI,OAAO,OAAO,MAAM,WAAW,IAAI,CAAC,SAAU,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAA8B,EAAE,IAAI;AACxH,MAAI,OAAO,OAAO,MAAM,QAAQ,IAAI,UAAU,KAAA,KAAa,KAAK,UAAU,KAAM,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAiB,EAAE,IAAI;EACzI,MAAM,UAAqE,EAAE;AAC7E,OAAK,MAAM,QAAQ,MACjB,SAAQ,KAAK,MAAM,qBAAqB,KAAK,CAAC;EAEhD,MAAM,OAAO,UAAU,sBAAsB,QAAQ,IAAI;GACvD;GACA,aAAa,UAAU,MAAM,cAAc;GAC3C;GACA;GACA,cAAc,UAAU,MAAM,eAAe,IAAI,QAAQ,kBAAkB,KAAA;GAC3E,YAAY,UAAU,MAAM,aAAa;GACzC,eAAe,UAAU,MAAM,gBAAgB;GAC/C;GACD,CAAC;AACF,OAAK,MAAM,UAAU,QACnB,OAAM,UAAU,cAAc,KAAK,IAAI,OAAO;EAEhD,MAAM,UAAU,MAAM,SAAS,IAAI,UAAU,YAAY,KAAK,GAAG,IAAI,OAAO;AAC5E,SAAO,EAAE,KAAK;GAAE,IAAI;GAAM,MAAM;GAAS,EAAE,IAAI;GAC/C;AAEF,eAAc,IAAI,oBAAoB,MAAM;EAC1C,MAAM,SAAS,UAAU,cAAc;GACrC,QAAQ,aAAa,EAAE,IAAI,MAAM,SAAS,EAAE,mBAAmB;GAC/D,UAAU,aAAa,EAAE,IAAI,MAAM,WAAW,EAAE,qBAAqB;GACrE,iBAAiB,EAAE,IAAI,MAAM,kBAAkB,KAAK;GACpD,QAAQ,EAAE,IAAI,MAAM,SAAS;GAC7B,QAAQ,EAAE,IAAI,MAAM,SAAS;GAC7B,WAAW,EAAE,IAAI,MAAM,YAAY;GACnC,OAAO,WAAW,EAAE,IAAI,MAAM,QAAQ,CAAC;GACvC,QAAQ,EAAE,IAAI,MAAM,SAAS,GAAG,KAAK,IAAI,GAAG,OAAO,SAAS,EAAE,IAAI,MAAM,SAAS,EAAG,GAAG,IAAI,EAAE,GAAG,KAAA;GACjG,CAAC;AACF,SAAO,EAAE,KAAK;GAAE,IAAI;GAAM,GAAG;GAAQ,CAAC;GACtC;AAEF,eAAc,IAAI,uBAAuB,OAAO,MAAM;EACpD,MAAM,OAAO,UAAU,YAAY,EAAE,IAAI,MAAM,KAAK,CAAC;AACrD,MAAI,CAAC,KAAM,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAuB,EAAE,IAAI;AAC1E,SAAO,EAAE,KAAK;GAAE,IAAI;GAAM;GAAM,CAAC;GACjC;AAEF,eAAc,IAAI,mCAAmC,OAAO,MAAM;EAChE,MAAM,cAAc,UAAU,gBAAgB,EAAE,IAAI,MAAM,KAAK,CAAC;AAChE,MAAI,CAAC,YAAa,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAuB,EAAE,IAAI;AACjF,SAAO,EAAE,KAAK;GAAE,IAAI;GAAM;GAAa,CAAC;GACxC;AAEF,eAAc,KAAK,mCAAmC,OAAO,MAAM;EACjE,MAAM,OAAO,UAAU,YAAY,EAAE,IAAI,MAAM,KAAK,CAAC;AACrD,MAAI,CAAC,KAAM,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAuB,EAAE,IAAI;EAC1E,IAAI;AACJ,MAAI;AACF,UAAO,MAAM,EAAE,IAAI,UAAU,EAAE,KAAK,MAAM,CAAC;UACrC;AACN,UAAO,EAAE,KAAK;IAAE,IAAI;IAAO,OAAO;IAA0B,EAAE,IAAI;;EAEpE,MAAM,QAAQ,qBAAqB,KAAK;AACxC,MAAI,CAAC,MAAM,OAAQ,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAsB,EAAE,IAAI;EACjF,MAAM,kBAAkB,8BAA8B,MAAM;AAC5D,MAAI,gBAAiB,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAiB,EAAE,IAAI;EAC9E,MAAM,cAAc,EAAE;AACtB,OAAK,MAAM,QAAQ,OAAO;GACxB,MAAM,SAAS,MAAM,qBAAqB,KAAK;GAC/C,MAAM,aAAa,MAAM,UAAU,cAAc,KAAK,IAAI,OAAO;AACjE,OAAI,WAAY,aAAY,KAAK,WAAW;;AAE9C,SAAO,EAAE,KAAK;GAAE,IAAI;GAAM;GAAa,MAAM,UAAU,YAAY,KAAK,GAAG;GAAE,EAAE,IAAI;GACnF;AAEF,eAAc,IAAI,yDAAyD,OAAO,MAAM;EACtF,MAAM,SAAS,MAAM,UAAU,eAAe,EAAE,IAAI,MAAM,KAAK,EAAE,EAAE,IAAI,MAAM,eAAe,CAAC;AAC7F,MAAI,CAAC,OAAQ,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAwB,EAAE,IAAI;AAC7E,SAAO,IAAI,SAAS,OAAO,QAAQ,EACjC,SAAS;GACP,gBAAgB,OAAO,WAAW;GAClC,kBAAkB,OAAO,OAAO,WAAW,KAAK;GAChD,uBAAuB,qBAAqB,mBAAmB,OAAO,WAAW,SAAS,CAAC;GAC3F,iBAAiB;GAClB,EACF,CAAC;GACF;AAEF,eAAc,OAAO,iDAAiD,OAAO,MAAM;EACjF,MAAM,aAAa,MAAM,UAAU,iBAAiB,EAAE,IAAI,MAAM,KAAK,EAAE,EAAE,IAAI,MAAM,eAAe,CAAC;AACnG,MAAI,CAAC,WAAY,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAwB,EAAE,IAAI;AACjF,SAAO,EAAE,KAAK;GAAE,IAAI;GAAM;GAAY,MAAM,UAAU,YAAY,EAAE,IAAI,MAAM,KAAK,CAAC;GAAE,CAAC;GACvF;AAEF,eAAc,MAAM,uBAAuB,OAAO,MAAM;EACtD,MAAM,OAAQ,MAAM,EAAE,IAAI,MAAM,CAAC,aAAa,EAAE,EAAE;EAClD,MAAM,SAAS,OAAO,OAAO,MAAM,SAAS,GACxC,eAAe,KAAK,QAAQ,mBAAmB,GAC/C,KAAA;EACJ,MAAM,WAAW,OAAO,OAAO,MAAM,WAAW,GAC5C,eAAe,KAAK,UAAU,qBAAqB,GACnD,KAAA;EACJ,MAAM,QAAQ,OAAO,OAAO,MAAM,QAAQ,GACrC,KAAK,UAAU,OAAO,OAAQ,OAAO,KAAK,UAAU,YAAY,OAAO,SAAS,KAAK,MAAM,GAAG,KAAK,QAAQ,KAAA,IAC5G,KAAA;EACJ,MAAM,aAAa,OAAO,OAAO,MAAM,aAAa,GAC/C,KAAK,eAAe,OAAO,OAAQ,OAAO,KAAK,eAAe,YAAY,OAAO,SAAS,KAAK,WAAW,GAAG,KAAK,aAAa,KAAA,IAChI,KAAA;AACJ,MAAI,WAAW,KAAA,KAAa,OAAO,OAAO,MAAM,SAAS,CAAE,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAA4B,EAAE,IAAI;AAC/H,MAAI,aAAa,KAAA,KAAa,OAAO,OAAO,MAAM,WAAW,CAAE,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAA8B,EAAE,IAAI;AACrI,MAAI,UAAU,KAAA,KAAa,OAAO,OAAO,MAAM,QAAQ,CAAE,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAiB,EAAE,IAAI;AAClH,MAAI,eAAe,KAAA,KAAa,OAAO,OAAO,MAAM,aAAa,CAAE,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAsB,EAAE,IAAI;EAEjI,MAAM,OAAO,UAAU,eAAe,EAAE,IAAI,MAAM,KAAK,EAAE;GACvD,GAAI,OAAO,OAAO,MAAM,QAAQ,GAAG,EAAE,OAAO,UAAU,MAAM,QAAQ,IAAI,IAAI,GAAG,EAAE;GACjF,GAAI,OAAO,OAAO,MAAM,cAAc,GAAG,EAAE,aAAa,kBAAkB,MAAM,cAAc,EAAE,GAAG,EAAE;GACrG,GAAI,OAAO,OAAO,MAAM,SAAS,GAAG,EAAE,QAAQ,GAAG,EAAE;GACnD,GAAI,OAAO,OAAO,MAAM,WAAW,GAAG,EAAE,UAAU,GAAG,EAAE;GACvD,GAAI,OAAO,OAAO,MAAM,eAAe,GAAG,EAAE,cAAc,kBAAkB,MAAM,eAAe,EAAE,GAAG,EAAE;GACxG,GAAI,OAAO,OAAO,MAAM,aAAa,GAAG,EAAE,YAAY,kBAAkB,MAAM,aAAa,EAAE,GAAG,EAAE;GAClG,GAAI,OAAO,OAAO,MAAM,gBAAgB,GAAG,EAAE,eAAe,kBAAkB,MAAM,gBAAgB,EAAE,GAAG,EAAE;GAC3G,GAAI,OAAO,OAAO,MAAM,QAAQ,GAAG,EAAE,OAAO,GAAG,EAAE;GACjD,GAAI,OAAO,OAAO,MAAM,aAAa,GAAG,EAAE,YAAY,GAAG,EAAE;GAC5D,CAAC;AACF,MAAI,CAAC,KAAM,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAuB,EAAE,IAAI;AAC1E,SAAO,EAAE,KAAK;GAAE,IAAI;GAAM;GAAM,CAAC;GACjC;AAEF,eAAc,OAAO,uBAAuB,OAAO,MAAM;EACvD,MAAM,OAAO,UAAU,eAAe,EAAE,IAAI,MAAM,KAAK,EAAE,EAAE,YAAY,KAAK,KAAK,EAAE,CAAC;AACpF,MAAI,CAAC,KAAM,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAuB,EAAE,IAAI;AAC1E,SAAO,EAAE,KAAK;GAAE,IAAI;GAAM;GAAM,CAAC;GACjC;AAEF,eAAc,IAAI,8BAA8B,OAAO,MAAM;EAC3D,MAAM,OAAO,UAAU,YAAY,EAAE,IAAI,MAAM,KAAK,CAAC;AACrD,MAAI,CAAC,KAAM,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAuB,EAAE,IAAI;AAC1E,SAAO,EAAE,KAAK;GAAE,IAAI;GAAM,QAAQ,UAAU,WAAW,KAAK,GAAG;GAAE,CAAC;GAClE;AAEF,eAAc,IAAI,0CAA0C,OAAO,MAAM;EACvE,MAAM,OAAO,UAAU,YAAY,EAAE,IAAI,MAAM,KAAK,CAAC;AACrD,MAAI,CAAC,KAAM,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAuB,EAAE,IAAI;EAC1E,MAAM,SAAS,eAAe,EAAE,IAAI,MAAM,SAAS,EAAE,8BAA8B;AACnF,MAAI,EAAE,IAAI,MAAM,SAAS,IAAI,CAAC,OAAQ,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAA6B,EAAE,IAAI;AAC3G,SAAO,EAAE,KAAK;GAAE,IAAI;GAAM,aAAa,UAAU,sBAAsB,KAAK,IAAI,OAAO;GAAE,CAAC;GAC1F;AAEF,eAAc,KAAK,0CAA0C,OAAO,MAAM;EACxE,MAAM,OAAO,UAAU,YAAY,EAAE,IAAI,MAAM,KAAK,CAAC;AACrD,MAAI,CAAC,KAAM,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAuB,EAAE,IAAI;EAC1E,MAAM,OAAQ,MAAM,EAAE,IAAI,MAAM,CAAC,aAAa,EAAE,EAAE;EAClD,MAAM,aAAa,eAAe,KAAK,YAAY;GAAC;GAAQ;GAAQ;GAAgB;GAAa,CAAU;EAC3G,MAAM,WAAW,UAAU,MAAM,WAAW,EAAE,MAAM;AACpD,MAAI,CAAC,WAAY,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAsB,EAAE,IAAI;AAC/E,MAAI,CAAC,SAAU,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAwB,EAAE,IAAI;EAC/E,MAAM,YAAY,KAAK,SAAS,OAAO,KAAK,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK,MAAM,GACxF,KAAK,QACL,EAAE;EACN,MAAM,SAAS,OAAO,OAAO,WAAW,SAAS,GAC7C,eAAe,UAAU,QAAQ,mBAAmB,GACpD,KAAA;AACJ,MAAI,OAAO,OAAO,WAAW,SAAS,IAAI,CAAC,OAAQ,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAA4B,EAAE,IAAI;EACvH,MAAM,aAAa,OAAO,KAAK,eAAe,YAAY,OAAO,SAAS,KAAK,WAAW,GACtF,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,WAAW,CAAC,GACzC,KAAA;EACJ,MAAM,aAAa,UAAU,uBAAuB,KAAK,IAAI;GAC3D;GACA;GACA,OAAO;IACL,GAAI,OAAO,OAAO,WAAW,SAAS,GAAG,EAAE,QAAQ,GAAG,EAAE;IACxD,GAAI,OAAO,OAAO,WAAW,aAAa,GAAG,EAAE,YAAY,kBAAkB,WAAW,aAAa,EAAE,GAAG,EAAE;IAC5G,GAAI,OAAO,OAAO,WAAW,gBAAgB,GAAG,EAAE,eAAe,kBAAkB,WAAW,gBAAgB,EAAE,GAAG,EAAE;IACtH;GACD,cAAc,kBAAkB,MAAM,eAAe,IAAI,KAAA;GACzD,WAAW,kBAAkB,MAAM,YAAY,IAAI,KAAA;GACnD;GACD,CAAC;AACF,MAAI,CAAC,WAAY,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAuB,EAAE,IAAI;AAChF,SAAO,EAAE,KAAK;GAAE,IAAI;GAAM;GAAY,EAAE,IAAI;GAC5C;AAEF,eAAc,KAAK,+CAA+C,OAAO,MAAM;EAC7E,MAAM,SAAS,UAAU,sBAAsB,EAAE,IAAI,MAAM,KAAK,CAAC;AACjE,MAAI,CAAC,OAAQ,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAA4C,EAAE,IAAI;AACjG,SAAO,EAAE,KAAK;GAAE,IAAI;GAAM,MAAM,OAAO;GAAM,YAAY,OAAO;GAAY,CAAC;GAC7E;AAEF,eAAc,KAAK,iDAAiD,OAAO,MAAM;EAC/E,MAAM,aAAa,UAAU,wBAAwB,EAAE,IAAI,MAAM,KAAK,CAAC;AACvE,MAAI,CAAC,WAAY,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAA4C,EAAE,IAAI;AACrG,SAAO,EAAE,KAAK;GAAE,IAAI;GAAM;GAAY,CAAC;GACvC;AAEF,eAAc,KAAK,kCAAkC,OAAO,MAAM;EAChE,MAAM,OAAO,UAAU,YAAY,EAAE,IAAI,MAAM,KAAK,CAAC;AACrD,MAAI,CAAC,KAAM,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAuB,EAAE,IAAI;EAC1E,MAAM,UAAU,QAAQ,SAAS,IAAI,KAAK,UAAU;AACpD,MAAI,CAAC,QAAS,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAqB,EAAE,IAAI;EAC3E,MAAM,UAAU,sBAAsB;GACpC,QAAQ,QAAQ;GAChB,UAAU,QAAQ;GAClB,iBAAiB,KAAK;GACtB,WAAW,QAAQ;GACpB,CAAC;EACF,MAAM,SAAS,aAAa,KAAK,KAAK;EACtC,MAAM,aAAa,gBAAgB;GACjC;GACA,QAAQ;GACR,WAAW;GACX,UAAU;GACV;GACD,CAAC;AACF,QAAM,QAAQ,qBAAqB,aAAa,YAAY,EAAE,EAAE,EAC9D,UAAU,iCAAiC;GACzC;GACA,WAAW;GACX;GACA,YAAY,KAAK;GACjB,OAAO,KAAK;GACZ,WAAW,KAAK;GACjB,CAAC,EACH,CAAC;AACF,UAAQ,SAAS,cAAc,YAAY,QAAQ,GAAG;EACtD,MAAM,UAAU,MAAM,QAAQ,SAAS,WAAW,WAAW;AAC7D,YAAU,QAAQ,KAAK,IAAI;GACzB,MAAM;GACN,UAAU;GACV,OAAO,SAAS,QAAQ,KAAK;GAC7B,gBAAgB,SAAS;GAC1B,EAAE,eAAe;EAClB,MAAM,UAAU,KAAK,WAAW,UAAU,KAAK,WAAW,YACtD,UAAU,eAAe,KAAK,IAAI,EAAE,QAAQ,eAAe,CAAC,GAC5D,UAAU,YAAY,KAAK,GAAG;AAClC,SAAO,EAAE,KAAK;GAAE,IAAI;GAAM;GAAS,MAAM;GAAS,EAAE,IAAI;GACxD;AAEF,eAAc,KAAK,mCAAmC,OAAO,MAAM;EACjE,MAAM,OAAO,UAAU,YAAY,EAAE,IAAI,MAAM,KAAK,CAAC;AACrD,MAAI,CAAC,KAAM,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAuB,EAAE,IAAI;EAC1E,MAAM,UAAU,QAAQ,SAAS,IAAI,KAAK,UAAU;AACpD,MAAI,CAAC,QAAS,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAqB,EAAE,IAAI;EAC3E,MAAM,cAAc,MAAM,UAAU,2BAA2B,KAAK,GAAG;AACvE,MAAI,CAAC,YAAa,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAuB,EAAE,IAAI;EACjF,MAAM,UAAU,MAAM,0BAA0B,MAAM;GAAE;GAAa,eAAe;GAAO,CAAC;EAC5F,MAAM,OAAO,MAAM,OAAO;GACxB,OAAO,KAAK;GACZ,aAAa,KAAK,eAAe,KAAK;GACtC,UAAU,KAAK,aAAa,WAAW,SAAS,KAAK;GACrD,SAAS,KAAK,gBAAgB,QAAQ,kBAAkB,KAAA;GACxD,WAAW,QAAQ;GACnB,QAAQ;GACR,QAAQ,QAAQ;GACjB,CAAC;EACF,MAAM,kBAAkB,MAAM,kBAAkB;GAC9C,QAAQ,KAAK;GACb,MAAM,QAAQ;GACd;GACD,CAAC,IAAI;AACN,YAAU,QAAQ,KAAK,IAAI;GACzB,MAAM;GACN,UAAU,KAAK;GACf,OAAO,KAAK;GACZ,gBAAgB,KAAK;GACtB,EAAE,eAAe;EAClB,MAAM,UAAU,KAAK,WAAW,UAAU,KAAK,WAAW,YACtD,UAAU,eAAe,KAAK,IAAI,EAAE,QAAQ,eAAe,CAAC,GAC5D,UAAU,YAAY,KAAK,GAAG;AAClC,SAAO,EAAE,KAAK;GAAE,IAAI;GAAM,MAAM;GAAiB,MAAM;GAAS,EAAE,IAAI;GACtE;AAEF,eAAc,KAAK,qCAAqC,OAAO,MAAM;EACnE,MAAM,OAAO,UAAU,YAAY,EAAE,IAAI,MAAM,KAAK,CAAC;AACrD,MAAI,CAAC,KAAM,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAuB,EAAE,IAAI;EAC1E,MAAM,UAAU,QAAQ,SAAS,IAAI,KAAK,UAAU;AACpD,MAAI,CAAC,QAAS,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAqB,EAAE,IAAI;AAC3E,MAAI,KAAK,WAAW,UAAU,KAAK,WAAW,eAAe,KAAK,WAChE,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAA2B,EAAE,IAAI;EAGrE,MAAM,OAAQ,MAAM,EAAE,IAAI,MAAM,CAAC,aAAa,EAAE,EAAE;EAClD,MAAM,eAAe,UAAU,MAAM,eAAe,EAAE,MAAM;AAC5D,MAAI,CAAC,aAAc,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAwB,EAAE,IAAI;EAEnF,MAAM,UAAU,sBAAsB;GACpC,QAAQ,QAAQ;GAChB,UAAU,QAAQ;GAClB,iBAAiB,KAAK;GACtB,WAAW,QAAQ;GACpB,CAAC;EACF,MAAM,WAAW,UAAU,MAAM,OAAO,EAAE,MAAM,IAAI,KAAK,cAAc,KAAK;EAC5E,MAAM,cAAc,KAAK,aAAa,KAAK,gBAAgB;GACzD,IAAI,WAAW;GACf,UAAU,WAAW;GACrB,MAAM,WAAW;GACjB,UAAU,WAAW;GACrB,MAAM,WAAW;GAClB,EAAE;EACH,MAAM,QAAQ,OAAO,OAAO,MAAM,QAAQ,GAAG,KAAK,QAAQ;GACxD,UAAU;IACR,IAAI,KAAK;IACT,OAAO,KAAK;IACZ,aAAa,KAAK;IAClB,QAAQ,KAAK;IACb,UAAU,KAAK;IACf,YAAY,KAAK;IACjB,eAAe,KAAK;IACpB;IACD;GACD,SAAS;IACP,IAAI,QAAQ;IACZ,MAAM,QAAQ;IACd,aAAa,QAAQ;IACrB,OAAO,QAAQ;IACf,cAAc,QAAQ;IACtB,eAAe,QAAQ;IACxB;GACF;EACD,MAAM,iBAAiB,KAAK;EAC5B,MAAM,cAAc,mBAAmB,OACnC,OACA,OAAO,mBAAmB,YAAY,OAAO,SAAS,eAAe,GACnE,iBACA,KAAA;EAEN,MAAM,SAAS,MAAM,QAAQ,0BAA0B,CAAC,iBAAiB;GACvE;GACA;GACA,WAAW,QAAQ;GACnB,YAAY,KAAK;GACjB,MAAM;GACN;GACA,QAAQ,EAAE,MAAM,SAAS;GACzB,aAAa,kBAAkB,KAAK,YAAY;GAChD,cAAc,kBAAkB,KAAK,aAAa;GAClD;GACD,CAAC;AACF,MAAI,OAAO,OAAO,MAChB,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO,OAAO;GAAS,MAAM,OAAO;GAAM,EAAE,OAAO,WAAW;AAG3F,YAAU,QAAQ,KAAK,IAAI;GACzB,MAAM;GACN,UAAU,OAAO;GACjB,OAAO;GACP,gBAAgB;GACjB,EAAE,mBAAmB;EACtB,MAAM,UAAU,KAAK,WAAW,UAAU,KAAK,WAAW,YACtD,UAAU,eAAe,KAAK,IAAI,EAAE,QAAQ,eAAe,CAAC,GAC5D,UAAU,YAAY,KAAK,GAAG;AAClC,SAAO,EAAE,KAAK;GAAE,IAAI;GAAM,OAAO,OAAO;GAAO,YAAY,OAAO;GAAY,MAAM;GAAS,EAAE,IAAI;GACnG;AAEF,eAAc,KAAK,mCAAmC,OAAO,MAAM;EACjE,MAAM,UAAU,QAAQ,SAAS,eAAe,EAAE,IAAI,MAAM,KAAK,CAAC;AAClE,MAAI,CAAC,QAAS,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAqB,EAAE,IAAI;EAK3E,MAAM,OAAO,yBAAyB;GACpC;GACA,OANc,QAAQ,SAAS,YAAY,QAAQ,IAAI,IAC7B,CACzB,KAAK,OAAO,MAAM,IAAI,GAAG,CAAC,CAC1B,QAAQ,SAAkC,QAAQ,KAAK,CAGrC;GACnB,oBAAoB,QAAQ;GAC5B,oBAAoB,8BAA8B,QAAQ,GAAG;GAC7D,eAAe,kBAAkB;IAAE,WAAW,QAAQ;IAAI,QAAQ;IAAU,OAAO;IAAG,CAAC;GACxF,CAAC;EACF,MAAM,SAAS,mBAAmB;GAChC,IAAI,4BAA4B,QAAQ,GAAG;GAC3C,YAAY;GACZ,MAAM;GACN,eAAe,sBAAsB;IACnC,QAAQ,QAAQ;IAChB,UAAU,QAAQ;IAClB,WAAW,QAAQ;IACpB,CAAC;GACF,aAAa,QAAQ;GACrB,WAAW,QAAQ;GACnB,SAAS,gCAAgC;IAAE,GAAG;IAAM,aAAa,QAAQ;IAAM,CAAC;GAChF,QAAQ,EACN,UAAU,kBACX;GACD,YAAY;GACZ,MAAM;IAAC;IAAW;IAAkB,QAAQ;IAAK;GACjD,QAAQ;GACR,aAAa;GACd,CAAC;AACF,SAAO,EAAE,KAAK;GAAE,IAAI;GAAM;GAAQ,EAAE,IAAI;GACxC;AAEF,eAAc,KAAK,8BAA8B,OAAO,MAAM;EAC5D,MAAM,UAAU,QAAQ,SAAS,eAAe,EAAE,IAAI,MAAM,KAAK,CAAC;AAClE,MAAI,CAAC,QAAS,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAqB,EAAE,IAAI;EAC3E,MAAM,OAAQ,MAAM,EAAE,IAAI,MAAM,CAAC,aAAa,EAAE,EAAE;EAClD,MAAM,QAAQ,OAAO,KAAK,UAAU,WAAW,KAAK,MAAM,MAAM,GAAG;AACnE,MAAI,CAAC,MAAO,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAiB,EAAE,IAAI;EACrE,MAAM,SAAS,OAAO,KAAK,WAAW,WAAW,KAAK,OAAO,MAAM,GAAG;EACtE,MAAM,OAAO,MAAM,OAAO;GACxB;GACA,aAAa,UAAU,KAAA;GACvB,SAAS,sBAAsB;IAC7B,QAAQ,QAAQ;IAChB,UAAU,QAAQ;IAClB,WAAW,QAAQ;IACpB,CAAC;GACF,UAAU,KAAK,aAAa,SAAS,KAAK,aAAa,YAAY,KAAK,aAAa,SAAS,KAAK,WAAW;GAC9G,QAAQ;GACR,WAAW,QAAQ;GACpB,CAAC;EACF,MAAM,UAAU,MAAM,UAAU,KAAK,IAAI,WAAW,EAAE,QAAQ,UAAU,OAAO,CAAC;AAChF,MAAI,OACF,OAAM,kBAAkB;GAAE,QAAQ,KAAK;GAAI,MAAM;GAAQ,CAAC;AAE5D,SAAO,EAAE,KAAK;GAAE,IAAI;GAAM,MAAM,WAAW,MAAM,IAAI,KAAK,GAAG;GAAE,EAAE,IAAI;GACrE;AAEF,eAAc,KAAK,yBAAyB,OAAO,MAAM;AACvD,MAAI;GACF,MAAM,UAAU,QAAQ,SAAS,IAAI,EAAE,IAAI,MAAM,KAAK,CAAC;AACvD,UAAO,EAAE,KAAK;IAAE,IAAI;IAAM,SAAS,uBAAuB,SAAS,QAAQ;IAAE,CAAC;WACvE,OAAO;AACd,UAAO,EAAE,KAAK;IAAE,IAAI;IAAO,OAAO,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;IAAE,EAAE,IAAI;;GAElG;AAEF,eAAc,KAAK,2BAA2B,OAAO,MAAM;AACzD,MAAI;GACF,MAAM,UAAU,QAAQ,SAAS,MAAM,EAAE,IAAI,MAAM,KAAK,CAAC;AACzD,UAAO,EAAE,KAAK;IAAE,IAAI;IAAM,SAAS,uBAAuB,SAAS,QAAQ;IAAE,CAAC;WACvE,OAAO;AACd,UAAO,EAAE,KAAK;IAAE,IAAI;IAAO,OAAO,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;IAAE,EAAE,IAAI;;GAElG;AAEF,eAAc,IAAI,qBAAqB,OAAO,MAAM;EAClD,MAAM,UAAU,QAAQ,SAAS,eAAe,EAAE,IAAI,MAAM,KAAK,CAAC;AAClE,MAAI,CAAC,QAAS,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAqB,EAAE,IAAI;AAC3E,SAAO,EAAE,KAAK;GAAE,IAAI;GAAM,SAAS,uBAAuB,SAAS,QAAQ;GAAE,CAAC;GAC9E;AAEF,eAAc,MAAM,qBAAqB,OAAO,MAAM;EACpD,MAAM,OAAQ,MAAM,EAAE,IAAI,MAAM,CAAC,aAAa,EAAE,EAAE;EAClD,MAAM,SAAS,mBAAmB,KAAK,OAAO;EAC9C,MAAM,oBAAoB,kBAAkB,MAAM,iBAAiB;EACnE,MAAM,iBAAiB,sBAAsB,KAAA,IAAY,KAAA,IAAY,wBAAwB,kBAAkB;AAC/G,MAAI,kBAAkB,CAAC,sBAAsB,QAAQ,eAAe,eAAe,CACjF,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAA2B,EAAE,IAAI;AAErE,MAAI;GACF,MAAM,UAAU,QAAQ,SAAS,OAAO,EAAE,IAAI,MAAM,KAAK,EAAE;IACzD,GAAI,UAAU,MAAM,OAAO,KAAK,KAAA,IAAY,EAAE,MAAM,UAAU,MAAM,OAAO,EAAE,GAAG,EAAE;IAClF,GAAI,kBAAkB,MAAM,cAAc,KAAK,KAAA,IAAY,EAAE,aAAa,kBAAkB,MAAM,cAAc,EAAE,GAAG,EAAE;IACvH,GAAI,SAAS,EAAE,QAAQ,GAAG,EAAE;IAC5B,GAAI,sBAAsB,KAAA,IAAY,EAAE,gBAAgB,kBAAkB,MAAM,GAAG,EAAE;IACrF,GAAI,kBAAkB,MAAM,gBAAgB,KAAK,KAAA,IAAY,EAAE,eAAe,kBAAkB,MAAM,gBAAgB,EAAE,GAAG,EAAE;IAC7H,qBAAqB,KAAK,wBAAwB;IAClD,GAAI,kBAAkB,MAAM,QAAQ,KAAK,KAAA,IAAY,EAAE,OAAO,kBAAkB,MAAM,QAAQ,EAAE,GAAG,EAAE;IACrG,GAAI,kBAAkB,MAAM,eAAe,KAAK,KAAA,IAAY,EAAE,cAAc,kBAAkB,MAAM,eAAe,EAAE,GAAG,EAAE;IAC3H,CAAC;AACF,UAAO,EAAE,KAAK;IAAE,IAAI;IAAM,SAAS,uBAAuB,SAAS,QAAQ;IAAE,CAAC;WACvE,OAAO;AACd,OAAI,iBAAiB,8BACnB,QAAO,EAAE,KAAK;IAAE,IAAI;IAAO,MAAM;IAA2B,OAAO,MAAM;IAAS,SAAS,MAAM;IAAS,EAAE,IAAI;AAElH,OAAI,iBAAiB,6BACnB,QAAO,EAAE,KAAK;IAAE,IAAI;IAAO,MAAM;IAA0B,OAAO,MAAM;IAAS,eAAe,MAAM;IAAe,EAAE,IAAI;AAE7H,UAAO,EAAE,KAAK;IAAE,IAAI;IAAO,OAAO,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;IAAE,EAAE,IAAI;;GAElG;AAEF,eAAc,OAAO,qBAAqB,OAAO,MAAM;AACrD,UAAQ,SAAS,OAAO,EAAE,IAAI,MAAM,KAAK,CAAC;AAC1C,SAAO,EAAE,KAAK,EAAE,IAAI,MAAM,CAAC;GAC3B;AAEF,eAAc,IAAI,8BAA8B,OAAO,MAAM;AAC3D,MAAI;GACF,MAAM,OAAO,QAAQ,SAAS,gBAAgB,EAAE,IAAI,MAAM,KAAK,EAAE,WAAW,EAAE,IAAI,MAAM,QAAQ,EAAE,IAAI,CAAC;GACvG,MAAM,WAAW,MAAM,QAAQ,IAAI,KAAK,KAAK,QAAQ,QAAQ,SAAS,WAAW,IAAI,CAAC,CAAC;AACvF,UAAO,EAAE,KAAK;IACZ,IAAI;IACJ,UAAU,SAAS,QAAQ,YAAY,WAAW,CAAC,8BAA8B,QAAQ,CAAC;IAC3F,CAAC;WACK,OAAO;AACd,UAAO,EAAE,KAAK;IAAE,IAAI;IAAO,OAAO,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;IAAE,EAAE,IAAI;;GAElG;AAEF,eAAc,IAAI,2BAA2B,OAAO,MAAM;AACxD,MAAI;GACF,MAAM,MAAM,QAAQ,SAAS,YAAY,EAAE,IAAI,MAAM,KAAK,EAAE,WAAW,EAAE,IAAI,MAAM,QAAQ,EAAE,IAAI,CAAC;AAClG,UAAO,EAAE,KAAK;IAAE,IAAI;IAAM,OAAO,IAAI,KAAK,OAAO,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,QAAQ;IAAE,CAAC;WAC3E,OAAO;AACd,UAAO,EAAE,KAAK;IAAE,IAAI;IAAO,OAAO,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;IAAE,EAAE,IAAI;;GAElG;AAEF,eAAc,IAAI,2BAA2B,OAAO,MAAM;EACxD,MAAM,WAAW,MAAM,4BAA4B,SAAS,EAAE,IAAI,MAAM,KAAK,EAAE,EAAE,IAAI,MAAM,OAAO,CAAC;AACnG,MAAI,SAAS,OAAO,MAAO,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO,SAAS;GAAO,EAAE,SAAS,OAAc;EACtG,MAAM,EAAE,MAAM,cAAc,cAAc;EAC1C,IAAI;AACJ,MAAI;AACF,iBAAc,MAAM,SAAS,UAAU;AACvC,OAAI,CAAC,kBAAkB,MAAM,YAAY,CACvC,QAAO,EAAE,KAAK;IAAE,IAAI;IAAO,OAAO;IAAqC,EAAE,IAAI;AAG/E,OAAI,EAAC,MADqB,KAAK,YAAY,EAC1B,aAAa,CAC5B,QAAO,EAAE,KAAK;IAAE,IAAI;IAAO,OAAO;IAA2B,EAAE,IAAI;WAE9D,KAAK;AACZ,OAAI,KAAK;IAAE;IAAK,WAAW,SAAS;IAAW,MAAM;IAAW,EAAE,gCAAgC;AAClG,UAAO,EAAE,KAAK;IAAE,IAAI;IAAO,OAAO;IAAkB,EAAE,IAAI;;AAG5D,MAAI;GACF,MAAM,UAAU,MAAM,QAAQ,aAAa,EAAE,eAAe,MAAM,CAAC;GAmBnE,MAAM,kBAAiB,MAlBD,QAAQ,IAAI,QAC/B,QAAQ,UAAU,CAAC,gBAAgB,IAAI,MAAM,KAAK,CAAC,CACnD,IAAI,OAAO,UAAU;IACpB,MAAM,cAAcD,OAAK,KAAK,aAAa,MAAM,KAAK;IACtD,MAAM,eAAe,MAAM,SAAS,YAAY,CAAC,YAAY,KAAK;AAClE,QAAI,CAAC,gBAAgB,CAAC,kBAAkB,MAAM,aAAa,CAAE,QAAO;IACpE,MAAM,YAAY,MAAM,KAAK,aAAa,CAAC,YAAY,KAAK;AAC5D,QAAI,CAAC,UAAW,QAAO;IACvB,MAAM,eAAeA,OAAK,SAAS,MAAM,YAAY,CAAC,MAAMA,OAAK,IAAI,CAAC,KAAK,IAAI;AAC/E,WAAO;KACL,MAAM,MAAM;KACZ,MAAM;KACN;KACA,MAAM,UAAU,aAAa,GAAG,cAAc;KAC9C,MAAM,WAAW,QAAQ,GAAG,UAAU,OAAO,KAAA;KAC7C,WAAW,WAAW,MAAM,aAAa;KAC1C;KACD,CAAC,EAC0B,QAAQ,UAA8C,UAAU,KAAK;AACpG,kBAAe,MAAM,MAAM,UAAU;AACnC,QAAI,KAAK,SAAS,MAAM,KAAM,QAAO,KAAK,SAAS,cAAc,KAAK;AACtE,WAAO,KAAK,KAAK,cAAc,MAAM,KAAK;KAC1C;GACF,MAAM,sBAAsBA,OAAK,SAAS,MAAM,YAAY,CAAC,MAAMA,OAAK,IAAI,CAAC,KAAK,IAAI;GACtF,MAAM,qBAAqB,sBAAsBA,OAAK,QAAQ,oBAAoB,CAAC,WAAW,MAAM,IAAI,GAAG;AAC3G,UAAO,EAAE,KAAK;IACZ,IAAI;IACJ;IACA,MAAM,wBAAwB,MAAM,KAAK;IACzC,YAAY,uBAAuB,MAAM,KAAK;IAC9C,SAAS;IACV,CAAC;WACK,KAAK;AACZ,OAAI,KAAK;IAAE;IAAK,WAAW,SAAS;IAAW,MAAM;IAAa,EAAE,2BAA2B;AAC/F,OAAK,KAA+B,SAAS,SAC3C,QAAO,EAAE,KAAK;IAAE,IAAI;IAAO,OAAO;IAAqB,EAAE,IAAI;AAE/D,UAAO,EAAE,KAAK;IAAE,IAAI;IAAO,OAAO;IAAgC,EAAE,IAAI;;GAE1E;;AAGF,eAAc,IAAI,kCAAkC,OAAO,MAAM;EAC/D,MAAM,IAAI,OAAO,EAAE,IAAI,MAAM,IAAI,KAAK,WAAW,EAAE,IAAI,MAAM,IAAI,CAAE,MAAM,GAAG;EAC5E,MAAM,WAAW,EAAE,IAAI,MAAM,QAAQ;EACrC,MAAM,QAAQ,KAAK,IACjB,KAAK,IAAI,SAAS,OAAO,aAAa,WAAW,WAAW,MAAM,GAAG,IAAI,IAAI,EAAE,EAAA,GAEhF;EACD,MAAM,OAAO,MAAM,4BAA4B,SAAS,EAAE,IAAI,MAAM,KAAK,CAAC;AAC1E,MAAI,KAAK,OAAO,MAAO,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO,KAAK;GAAO,EAAE,KAAK,OAAc;EAC1F,MAAM,UAAU,MAAM,0BAA0B,KAAK,MAAM,GAAG,MAAM;AACpE,SAAO,EAAE,KAAK;GAAE,IAAI;GAAM;GAAS,CAAC;GACpC;AAEF,eAAc,IAAI,gCAAgC,OAAO,MAAM;EAC7D,MAAM,WAAW,MAAM,oCAAoC,SAAS,EAAE,IAAI,MAAM,KAAK,EAAE,EAAE,IAAI,MAAM,OAAO,CAAC;AAC3G,MAAI,SAAS,OAAO,MAAO,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO,EAAE,SAAS,SAAS,OAAO;GAAE,EAAE,SAAS,OAAc;AACnH,MAAI,CAAC,SAAS,KAAK,QAAQ,CACzB,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO,EAAE,SAAS,cAAc;GAAE,EAAE,IAAI;AAErE,MAAI;GACF,MAAM,UAAU,MAAM,SAAS,SAAS,cAAc,QAAQ;AAC9D,UAAO,EAAE,KAAK;IACZ,IAAI;IACJ,SAAS;KACP;KACA,MAAM,SAAS;KACf,cAAc,SAAS;KACvB,SAAS,SAAS,KAAK;KACxB;IACF,CAAC;UACI;AACN,UAAO,EAAE,KAAK;IAAE,IAAI;IAAO,OAAO,EAAE,SAAS,eAAe;IAAE,EAAE,IAAI;;GAEtE;AAEF,eAAc,IAAI,+BAA+B,OAAO,MAAM;EAC5D,MAAM,WAAW,MAAM,oCAAoC,SAAS,EAAE,IAAI,MAAM,KAAK,EAAE,EAAE,IAAI,MAAM,OAAO,CAAC;AAC3G,MAAI,SAAS,OAAO,MAAO,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO,EAAE,SAAS,SAAS,OAAO;GAAE,EAAE,SAAS,OAAc;AACnH,MAAI,CAAC,SAAS,KAAK,QAAQ,CACzB,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO,EAAE,SAAS,cAAc;GAAE,EAAE,IAAI;EAGrE,MAAM,cAAc,yBADR,SAAS,aAAa,MAAM,IAAI,CAAC,KAAK,EAAE,aAAa,IAAI,OAChB;AACrD,MAAI;GACF,MAAM,MAAM,MAAM,SAAS,SAAS,aAAa;AACjD,UAAO,IAAI,SAAS,KAAK,EACvB,SAAS;IACP,gBAAgB;IAChB,iBAAiB;IAClB,EACF,CAAC;UACI;AACN,UAAO,EAAE,KAAK;IAAE,IAAI;IAAO,OAAO,EAAE,SAAS,eAAe;IAAE,EAAE,IAAI;;GAEtE;AAEF,eAAc,IAAI,6CAA6C,OAAO,MAAM;EAC1E,MAAM,UAAU,OAAO,EAAE,IAAI,MAAM,OAAO,KAAK,WAAW,EAAE,IAAI,MAAM,OAAO,CAAE,MAAM,GAAG;AACxF,MAAI,CAAC,QACH,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;IAAE,MAAM;IAAgB,SAAS;IAAgB;GAAE,EAAE,IAAI;EAE7F,MAAM,WAAW,MAAM,4BAA4B,SAAS,EAAE,IAAI,MAAM,KAAK,EAAE,QAAQ;AACvF,MAAI,SAAS,OAAO,MAClB,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;IAAE,MAAM;IAAuC,SAAS,SAAS;IAAO;GAAE,EAAE,SAAS,OAAc;EAEvI,IAAI,KAA8C;EAClD,IAAI,eAAe,SAAS;AAC5B,MAAI;AACF,kBAAe,MAAM,SAAS,SAAS,aAAa;AACpD,OAAI,CAAC,kBAAkB,SAAS,MAAM,aAAa,CACjD,QAAO,EAAE,KAAK;IACZ,IAAI;IACJ,OAAO;KAAE,MAAM;KAAuC,SAAS;KAAqC;IACrG,EAAE,IAAI;AAET,QAAK,MAAM,KAAK,aAAa;UACvB;AACN,QAAK;;EAEP,MAAM,cAAcA,OAAK,SAAS,QAAQ;AAC1C,MAAI,CAAC,GACH,QAAO,EAAE,KAAK;GACZ,IAAI;GACJ,SAAS;IACP,WAAW;IACX;IACA,OAAO;IACP,QAAQ;IACR,cAAc,SAAS;IACvB,cAAc,CAAC,WAAW;IAC1B,WAAW;IACZ;GACF,CAAC;AAEJ,SAAO,EAAE,KAAK;GACZ,IAAI;GACJ,SAAS;IACP,WAAW;IACX;IACA,OAAO;IACP,QAAQ;IACR,aAAa,GAAG,aAAa;IAC7B;IACA,uBAAuB,SAAS;IAChC,cAAc,GAAG,aAAa,GAC1B;KAAC;KAAgB;KAAkB;KAAW,GAC9C;KAAC;KAAW;KAAQ;KAAgB;KAAkB;KAAW;IACrE,SAAS,GAAG;IACb;GACF,CAAC;GACF;AAEF,eAAc,IAAI,iCAAiC,OAAO,MAAM;EAC9D,IAAI;AACJ,MAAI;AACF,UAAO,MAAM,EAAE,IAAI,MAAM;UACnB;AACN,UAAO,EAAE,KAAK;IAAE,IAAI;IAAO,OAAO,EAAE,SAAS,gBAAgB;IAAE,EAAE,IAAI;;EAEvE,MAAM,aAAa,OAAO,SAAS,YAAY,SAAS,OAAO,OAAkC,EAAE;EACnG,MAAM,UAAU,OAAO,WAAW,SAAS,WAAW,WAAW,OAAO;EACxE,MAAM,UAAU,OAAO,WAAW,YAAY,WAAW,WAAW,UAAU;AAC9E,MAAI,CAAC,QAAQ,MAAM,CACjB,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO,EAAE,SAAS,gBAAgB;GAAE,EAAE,IAAI;EAEvE,MAAM,WAAW,MAAM,iCAAiC,SAAS,EAAE,IAAI,MAAM,KAAK,EAAE,QAAQ;AAC5F,MAAI,SAAS,OAAO,MAAO,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO,EAAE,SAAS,SAAS,OAAO;GAAE,EAAE,SAAS,OAAc;AACnH,MAAI,SAAS,gBAAgB,CAAC,SAAS,aAAa,QAAQ,CAC1D,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO,EAAE,SAAS,cAAc;GAAE,EAAE,IAAI;AAErE,MAAI;AACF,SAAM,UAAU,SAAS,cAAc,SAAS,QAAQ;GACxD,MAAM,WAAW,MAAM,KAAK,SAAS,aAAa,CAAC,aAAa,EAAE,SAAS,KAAK,KAAK,EAAE,EAAE,EAAE;AAC3F,UAAO,EAAE,KAAK;IACZ,IAAI;IACJ,SAAS;KAAE,MAAM,SAAS;KAAc;KAAS;IAClD,CAAC;WACK,KAAK;AACZ,OAAI,MAAM;IAAE;IAAK,WAAW,SAAS;IAAW,MAAM,SAAS;IAAc,EAAE,4BAA4B;AAC3G,UAAO,EAAE,KAAK;IAAE,IAAI;IAAO,OAAO,EAAE,SAAS,gBAAgB;IAAE,EAAE,IAAI;;GAEvE;AAEF,eAAc,KAAK,0CAA0C,OAAO,MAAM;AACxE,MAAI;AACF,WAAQ,SAAS,cAAc,EAAE,IAAI,MAAM,aAAa,EAAE,EAAE,IAAI,MAAM,KAAK,CAAC;GAC5E,MAAM,UAAU,MAAM,QAAQ,SAAS,WAAW,EAAE,IAAI,MAAM,aAAa,CAAC;AAC5E,UAAO,EAAE,KAAK;IAAE,IAAI;IAAM;IAAS,CAAC;WAC7B,OAAO;AACd,UAAO,EAAE,KAAK;IAAE,IAAI;IAAO,OAAO,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;IAAE,EAAE,IAAI;;GAElG;AAEF,eAAc,OAAO,0CAA0C,OAAO,MAAM;AAC1E,MAAI;GACF,MAAM,YAAY,EAAE,IAAI,MAAM,KAAK;GACnC,MAAM,aAAa,EAAE,IAAI,MAAM,aAAa;AAC5C,OAAI,CAAC,QAAQ,SAAS,IAAI,UAAU,CAClC,QAAO,EAAE,KAAK;IAAE,IAAI;IAAO,OAAO;IAAqB,EAAE,IAAI;GAE/D,MAAM,UAAU,MAAM,QAAQ,SAAS,WAAW,WAAW;AAC7D,OAAI,CAAC,QACH,QAAO,EAAE,KAAK;IAAE,IAAI;IAAO,OAAO;IAAqB,EAAE,IAAI;AAE/D,OAAI,QAAQ,cAAc,UACxB,QAAO,EAAE,KAAK;IAAE,IAAI;IAAO,OAAO;IAA2C,EAAE,IAAI;AAErF,WAAQ,SAAS,cAAc,WAAW;AAC1C,UAAO,EAAE,KAAK,EAAE,IAAI,MAAM,CAAC;WACpB,OAAO;AACd,UAAO,EAAE,KAAK;IAAE,IAAI;IAAO,OAAO,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;IAAE,EAAE,IAAI;;GAElG;AAEF,eAAc,KAAK,yDAAyD,OAAO,MAAM;EACvF,MAAM,YAAY,EAAE,IAAI,MAAM,KAAK;EACnC,MAAM,aAAa,EAAE,IAAI,MAAM,aAAa;EAC5C,MAAM,UAAU,QAAQ,SAAS,IAAI,UAAU;AAC/C,MAAI,CAAC,QAAS,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAqB,EAAE,IAAI;EAC3E,MAAM,UAAU,mBAAmB,WAAW;AAC9C,MAAI,CAAC,QAAS,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAAqB,EAAE,IAAI;AAC3E,MAAI,QAAQ,cAAc,UACxB,QAAO,EAAE,KAAK;GAAE,IAAI;GAAO,OAAO;GAA2C,EAAE,IAAI;EAErF,MAAM,OAAQ,MAAM,EAAE,IAAI,MAAM,CAAC,aAAa,EAAE,EAAE;EAClD,MAAM,UAAU,iCACd,YACA,OAAO,KAAK,YAAY,WAAW,KAAK,UAAU,KAAA,EACnD;EACD,MAAM,SAAS,mBAAmB;GAChC,YAAY;GACZ,MAAM;GACN,eAAe,QAAQ,SAAS,WAAW;GAC3C,aAAa,QAAQ;GACrB;GACA;GACA;GACA,QAAQ;IACN,UAAU;IACV,gBAAgB;IACjB;GACD,YAAY,OAAO,KAAK,eAAe,WAAW,KAAK,aAAa;GACpE,MAAM;IAAC;IAAW;IAAmB,QAAQ;IAAK;GAClD,QAAQ;GACR,aAAa;GACb,UAAU,CAAC,EAAE,YAAY,CAAC;GAC3B,CAAC;AACF,SAAO,EAAE,KAAK;GAAE,IAAI;GAAM;GAAQ,EAAE,IAAI;GACxC;AAEF,eAAc,KAAK,mCAAmC,OAAO,MAAM;AACjE,MAAI;AACF,WAAQ,SAAS,WAAW,EAAE,IAAI,MAAM,SAAS,EAAE,EAAE,IAAI,MAAM,KAAK,CAAC;AACrE,UAAO,EAAE,KAAK;IAAE,IAAI;IAAM,MAAM,MAAM,IAAI,EAAE,IAAI,MAAM,SAAS,CAAC;IAAE,CAAC;WAC5D,OAAO;AACd,UAAO,EAAE,KAAK;IAAE,IAAI;IAAO,OAAO,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;IAAE,EAAE,IAAI;;GAElG;AAEF,eAAc,OAAO,mCAAmC,OAAO,MAAM;AACnE,MAAI;GACF,MAAM,YAAY,EAAE,IAAI,MAAM,KAAK;GACnC,MAAM,SAAS,EAAE,IAAI,MAAM,SAAS;AACpC,OAAI,CAAC,QAAQ,SAAS,IAAI,UAAU,CAClC,QAAO,EAAE,KAAK;IAAE,IAAI;IAAO,OAAO;IAAqB,EAAE,IAAI;GAE/D,MAAM,OAAO,MAAM,IAAI,OAAO;AAC9B,OAAI,CAAC,KACH,QAAO,EAAE,KAAK;IAAE,IAAI;IAAO,OAAO;IAAkB,EAAE,IAAI;AAE5D,OAAI,KAAK,cAAc,UACrB,QAAO,EAAE,KAAK;IAAE,IAAI;IAAO,OAAO;IAAwC,EAAE,IAAI;AAElF,WAAQ,SAAS,WAAW,OAAO;AACnC,UAAO,EAAE,KAAK,EAAE,IAAI,MAAM,CAAC;WACpB,OAAO;AACd,UAAO,EAAE,KAAK;IAAE,IAAI;IAAO,OAAO,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;IAAE,EAAE,IAAI;;GAElG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"public-gateway.js","names":[],"sources":["../../../../../src/gateway/hono/routes/public-gateway.ts"],"sourcesContent":["import { createHash } from 'node:crypto';\n\nimport type { Hono } from 'hono';\n\nimport { composioLogoResponse } from '../../../connectors/composio-logo.js';\nimport {\n appendComposioTriggerEvent,\n applyComposioConnectionLifecycleEvent,\n normalizeComposioTriggerPayload,\n verifyComposioWebhook,\n} from '../../../connectors/composio-triggers.js';\nimport { PACKAGE_VERSION } from '../../../package-version.js';\nimport {\n claimConnectorWebhookDelivery,\n completeConnectorWebhookDelivery,\n releaseConnectorWebhookDelivery,\n} from '../../../storage/sqlite/index.js';\nimport type { GatewayService } from '../../service.js';\nimport { serveStaticFile } from '../lib/static-ui.js';\n\nexport function registerPublicGatewayRoutes(app: Hono, service: GatewayService): void {\n app.get('/health', (c) => {\n return c.json(service.getHealth());\n });\n\n /** Public liveness probe (no auth) — minimal payload for CLI / load balancers. */\n app.get('/api/health', (c) => {\n const health = service.getHealth();\n return c.json({\n status: health.ready ? 'ok' : 'starting',\n ready: health.ready,\n httpListening: health.httpListening,\n version: health.version,\n uptime: health.uptime,\n startupDurationMs: health.startupDurationMs,\n });\n });\n\n app.post('/api/connectors/composio/webhook', async (c) => {\n const secret = process.env.COMPOSIO_WEBHOOK_SECRET?.trim();\n if (!secret) return c.json({ ok: false, error: 'Composio webhook is not configured.' }, 503);\n const webhookId = c.req.header('webhook-id')?.trim() ?? '';\n const body = await c.req.text();\n let payload: unknown;\n try {\n payload = verifyComposioWebhook({\n body,\n webhookId,\n webhookTimestamp: c.req.header('webhook-timestamp')?.trim() ?? '',\n signature: c.req.header('webhook-signature')?.trim() ?? '',\n secret,\n });\n } catch {\n return c.json({ ok: false, error: 'Invalid Composio webhook.' }, 401);\n }\n try {\n const claim = claimConnectorWebhookDelivery({\n id: webhookId,\n provider: 'composio',\n payloadHash: createHash('sha256').update(body).digest('hex'),\n });\n if (claim !== 'claimed') {\n return c.json({ ok: true, payload: { eventId: webhookId, duplicate: true, status: claim } });\n }\n const archivedPayload = payload && typeof payload === 'object' && !Array.isArray(payload)\n ? { ...payload as Record<string, unknown>, id: webhookId }\n : { id: webhookId, data: payload };\n const normalized = normalizeComposioTriggerPayload(archivedPayload, webhookId);\n applyComposioConnectionLifecycleEvent(archivedPayload);\n const event = await appendComposioTriggerEvent(service.currentConfig, archivedPayload);\n const runs = await service.automationServiceInstance.triggerEvent({\n type: `connector.${normalized.trigger ?? normalized.type}`,\n source: normalized.toolkit ? `composio:${normalized.toolkit}` : 'composio',\n payload: {\n ...normalized.data,\n connectorId: normalized.toolkit ? `composio-${normalized.toolkit}` : 'composio',\n webhookId,\n },\n });\n completeConnectorWebhookDelivery(webhookId);\n return c.json({ ok: true, payload: { eventId: event.id, automationRuns: runs.length } });\n } catch (error) {\n releaseConnectorWebhookDelivery(webhookId, error);\n return c.json({ ok: false, error: 'Composio webhook processing failed.' }, 500);\n }\n });\n\n app.get('/api', (c) => {\n return c.json({\n service: 'xopc-gateway',\n version: PACKAGE_VERSION,\n transport: 'streamable-http',\n endpoints: [\n 'GET /health',\n 'GET /api/health',\n 'GET /status',\n 'GET /api/status',\n 'POST /api/agent (SSE stream / JSON)',\n 'POST /api/agent/abort',\n 'POST /api/agent/steer',\n 'POST /api/send',\n 'GET /api/events (SSE stream)',\n 'GET /api/channels/catalog',\n 'GET /api/channels/status',\n 'POST /api/channels/:channelId/actions/:actionId',\n 'GET /api/config',\n 'GET /api/agents',\n 'POST /api/agents',\n 'PATCH /api/agents/:id',\n 'DELETE /api/agents/:id',\n 'GET/PUT/DELETE /api/agents/:id/avatar',\n 'GET/PUT /api/agents/:id/files/...',\n 'DELETE /api/providers/:providerId/key',\n 'PATCH /api/config',\n 'POST /api/config/reload',\n 'POST /api/heartbeat/trigger',\n '... /api/automations/*',\n '... /api/automation-runs/*',\n 'GET/PATCH /api/sessions/:key/agent-config',\n '... /api/sessions/*',\n 'GET /api/host/fs/meta',\n 'GET /api/host/fs/list',\n ],\n });\n });\n\n app.get('/assets/*', (c) => {\n const path = c.req.path.replace('/assets/', '');\n const response = serveStaticFile(`assets/${path}`, c.req.raw);\n if (response) return response;\n return c.text('Not found', 404);\n });\n\n /** From `web/public/channel-icons/` (Vite copies to static root). Public: img requests send no Bearer token. */\n app.get('/channel-icons/*', (c) => {\n const path = c.req.path.replace('/channel-icons/', '');\n const response = serveStaticFile(`channel-icons/${path}`, c.req.raw);\n if (response) return response;\n return c.text('Not found', 404);\n });\n\n app.get('/connector-icons/composio/:toolkit', async (c) => {\n try {\n return await composioLogoResponse(c.req.param('toolkit'));\n } catch {\n return c.json({ ok: false, error: 'Connector logo is unavailable.' }, 404);\n }\n });\n\n /** From `web/public/connector-icons/` (Vite copies to static root). Public: img requests send no Bearer token. */\n app.get('/connector-icons/*', (c) => {\n const path = c.req.path.replace('/connector-icons/', '');\n const response = serveStaticFile(`connector-icons/${path}`, c.req.raw);\n if (response) return response;\n return c.text('Not found', 404);\n });\n\n app.get('/favicon.ico', (c) => {\n const response = serveStaticFile('favicon.ico', c.req.raw);\n if (response) return response;\n const fallback = serveStaticFile('logo.svg', c.req.raw);\n if (fallback) return fallback;\n return c.text('Not found', 404);\n });\n\n app.get('/logo.svg', (c) => {\n const response = serveStaticFile('logo.svg', c.req.raw);\n if (response) return response;\n return c.text('Not found', 404);\n });\n\n app.get('/logo-dark.svg', (c) => {\n const response = serveStaticFile('logo-dark.svg', c.req.raw);\n if (response) return response;\n return c.text('Not found', 404);\n });\n\n app.get('/', (c) => {\n const response = serveStaticFile('index.html', c.req.raw);\n if (response) return response;\n return c.text('UI not found', 404);\n });\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"search.js","names":[],"sources":["../../../../../src/gateway/hono/routes/search.ts"],"sourcesContent":["import type { Hono } from 'hono';\n\nimport type { Project } from '../../../projects/types.js';\nimport type { AuthenticatedRouteDeps } from './deps.js';\n\ntype GlobalSearchHitKind = 'project';\n\ntype GlobalSearchHit = {\n kind: GlobalSearchHitKind;\n id: string;\n title: string;\n subtitle?: string;\n href: string;\n score: number;\n payload: {\n project: Project;\n };\n};\n\nfunction parseLimit(value: string | undefined): number {\n const parsed = value ? Number.parseInt(value, 10) : 20;\n return Math.min(50, Math.max(1, Number.isFinite(parsed) ? parsed : 20));\n}\n\nfunction parseTypes(value: string | undefined): Set<GlobalSearchHitKind> {\n if (!value?.trim()) return new Set<GlobalSearchHitKind>(['project']);\n return new Set(\n value\n .split(',')\n .map((type) => type.trim())\n .filter((type): type is GlobalSearchHitKind => type === 'project'),\n );\n}\n\nfunction projectSubtitle(project: Project): string | undefined {\n return project.description ?? project.workspaceRoot ?? project.brief ?? project.slug;\n}\n\nexport function registerSearchRoutes(authenticated: Hono, deps: AuthenticatedRouteDeps): void {\n const { service } = deps;\n\n authenticated.get('/api/search', (c) => {\n const query = c.req.query('q')?.trim() ?? '';\n const limit = parseLimit(c.req.query('limit'));\n const types = parseTypes(c.req.query('types'));\n const hits: GlobalSearchHit[] = [];\n\n if (query && types.has('project')) {\n const projects = service.projects.list({ search: query, limit, offset: 0 }).items;\n hits.push(\n ...projects.map((project, index) => ({\n kind: 'project' as const,\n id: `project:${project.id}`,\n title: project.name,\n subtitle: projectSubtitle(project),\n href: `/projects/${encodeURIComponent(project.id)}`,\n score: index,\n payload: { project },\n })),\n );\n }\n\n return c.json({ ok: true, query, hits, total: hits.length });\n });\n}\n"],"mappings":";AAmBA,SAAS,WAAW,OAAmC;CACrD,MAAM,SAAS,QAAQ,OAAO,SAAS,OAAO,GAAG,GAAG;AACpD,QAAO,KAAK,IAAI,IAAI,KAAK,IAAI,GAAG,OAAO,SAAS,OAAO,GAAG,SAAS,GAAG,CAAC;;AAGzE,SAAS,WAAW,OAAqD;AACvE,KAAI,CAAC,OAAO,MAAM,CAAE,QAAO,IAAI,IAAyB,CAAC,UAAU,CAAC;AACpE,QAAO,IAAI,IACT,MACG,MAAM,IAAI,CACV,KAAK,SAAS,KAAK,MAAM,CAAC,CAC1B,QAAQ,SAAsC,SAAS,UAAU,CACrE;;AAGH,SAAS,gBAAgB,SAAsC;AAC7D,QAAO,QAAQ,eAAe,QAAQ,iBAAiB,QAAQ,SAAS,QAAQ;;AAGlF,SAAgB,qBAAqB,eAAqB,MAAoC;CAC5F,MAAM,EAAE,YAAY;AAEpB,eAAc,IAAI,gBAAgB,MAAM;EACtC,MAAM,QAAQ,EAAE,IAAI,MAAM,IAAI,EAAE,MAAM,IAAI;EAC1C,MAAM,QAAQ,WAAW,EAAE,IAAI,MAAM,QAAQ,CAAC;EAC9C,MAAM,QAAQ,WAAW,EAAE,IAAI,MAAM,QAAQ,CAAC;EAC9C,MAAM,OAA0B,EAAE;AAElC,MAAI,SAAS,MAAM,IAAI,UAAU,EAAE;GACjC,MAAM,WAAW,QAAQ,SAAS,KAAK;IAAE,QAAQ;IAAO;IAAO,QAAQ;IAAG,CAAC,CAAC;AAC5E,QAAK,KACH,GAAG,SAAS,KAAK,SAAS,WAAW;IACnC,MAAM;IACN,IAAI,WAAW,QAAQ;IACvB,OAAO,QAAQ;IACf,UAAU,gBAAgB,QAAQ;IAClC,MAAM,aAAa,mBAAmB,QAAQ,GAAG;IACjD,OAAO;IACP,SAAS,EAAE,SAAS;IACrB,EAAE,CACJ;;AAGH,SAAO,EAAE,KAAK;GAAE,IAAI;GAAM;GAAO;GAAM,OAAO,KAAK;GAAQ,CAAC;GAC5D"}