@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":"xopc-use-tool.js","names":[],"sources":["../../../../src/agent/tools/xopc-use-tool.ts"],"sourcesContent":["import { Type } from '@sinclair/typebox';\nimport type { AgentTool, AgentToolResult } from '@earendil-works/pi-agent-core';\n\nimport { runWithActivityContext } from '../../activity/index.js';\nimport type { Config } from '../../config/schema.js';\nimport type { NoteKind, NotesService, NoteStatus } from '../../notes/index.js';\nimport {\n isValidProjectAgentId,\n normalizeProjectAgentId,\n type ProjectService,\n type ProjectStatus,\n} from '../../projects/index.js';\nimport type {\n WorkItemPriority,\n WorkItemService,\n WorkItemStatus,\n} from '../../work-items/index.js';\nimport { getSessionMetadata } from '../../storage/sqlite/index.js';\n\nconst XopcUseToolSchema = Type.Object({\n mode: Type.Union([\n Type.Literal('project'),\n Type.Literal('note'),\n Type.Literal('work_item'),\n ]),\n command: Type.String({\n description:\n 'Object command. Supports project list/get/create/update/resolve_workspace, note list/get/create/append/update/preview_edit, and work_item list/get/create/update.',\n }),\n args: Type.Optional(Type.Record(Type.String(), Type.Any())),\n dryRun: Type.Optional(Type.Boolean({\n description: 'Validate and preview the action without mutating xopc state.',\n })),\n});\n\nexport type XopcUseMode = 'project' | 'note' | 'work_item';\n\nexport interface XopcUseToolInput {\n mode: XopcUseMode;\n command: string;\n args?: Record<string, unknown>;\n dryRun?: boolean;\n}\n\nexport interface XopcUseToolDeps {\n getConfig?: () => Config | undefined;\n getCurrentAgentId?: () => string | undefined;\n getCurrentSessionKey?: () => string | undefined;\n getNotesService?: () => NotesService | undefined;\n getProjectService?: () => ProjectService | undefined;\n getWorkItemService?: () => WorkItemService | undefined;\n}\n\ntype XopcUseDetails = {\n mode: XopcUseMode;\n command: string;\n dryRun: boolean;\n result?: unknown;\n};\n\nconst PROJECT_STATUSES = new Set<ProjectStatus>(['active', 'paused', 'archived']);\nconst NOTE_KINDS = new Set<NoteKind>(['thought', 'todo', 'voice', 'media', 'bookmark', 'mixed', 'task']);\nconst NOTE_STATUSES = new Set<NoteStatus>(['inbox', 'processed', 'archived', 'trashed']);\nconst WORK_ITEM_STATUSES = new Set<WorkItemStatus>([\n 'backlog',\n 'todo',\n 'in_progress',\n 'blocked',\n 'needs_input',\n 'in_review',\n 'done',\n 'cancelled',\n]);\nconst WORK_ITEM_PRIORITIES = new Set<WorkItemPriority>(['urgent', 'high', 'normal', 'low']);\n\nfunction okText(details: XopcUseDetails): AgentToolResult<XopcUseDetails> {\n return {\n content: [{ type: 'text', text: JSON.stringify(details.result ?? {}, null, 2) }],\n details,\n };\n}\n\nfunction errorText(message: string, details: XopcUseDetails): AgentToolResult<XopcUseDetails> {\n return {\n content: [{ type: 'text', text: `Error: ${message}` }],\n details: { ...details, result: { ok: false, error: message } },\n };\n}\n\nfunction trimString(value: unknown): string | undefined {\n return typeof value === 'string' && value.trim() ? value.trim() : undefined;\n}\n\nfunction optionalString(value: unknown): string | null | undefined {\n if (value === null) return null;\n if (typeof value === 'string') return value;\n return undefined;\n}\n\nfunction boundedLimit(value: unknown, fallback = 20, max = 100): number {\n const raw = typeof value === 'number' ? value : typeof value === 'string' ? Number(value) : fallback;\n if (!Number.isFinite(raw)) return fallback;\n return Math.max(1, Math.min(max, Math.floor(raw)));\n}\n\nfunction offset(value: unknown): number | undefined {\n const raw = typeof value === 'number' ? value : typeof value === 'string' ? Number(value) : undefined;\n return raw !== undefined && Number.isFinite(raw) ? Math.max(0, Math.floor(raw)) : undefined;\n}\n\nfunction enumValue<T extends string>(value: unknown, allowed: Set<T>): T | undefined {\n return typeof value === 'string' && allowed.has(value as T) ? value as T : undefined;\n}\n\nfunction finiteNumber(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 if (Number.isFinite(parsed)) return parsed;\n }\n return undefined;\n}\n\nfunction stringArray(value: unknown): string[] | undefined {\n if (!Array.isArray(value)) return undefined;\n return value.filter((item): item is string => typeof item === 'string');\n}\n\nfunction nullableNumber(value: unknown): number | null | undefined {\n if (value === null) return null;\n return finiteNumber(value);\n}\n\nfunction ensureArgs(input: XopcUseToolInput): Record<string, unknown> {\n return input.args && typeof input.args === 'object' && !Array.isArray(input.args) ? input.args : {};\n}\n\nfunction currentProjectId(args: Record<string, unknown>, deps: XopcUseToolDeps): string | undefined {\n const explicit = trimString(args.projectId);\n if (explicit) return explicit;\n const sessionKey = trimString(args.sessionKey) ?? deps.getCurrentSessionKey?.();\n return sessionKey ? getSessionMetadata(sessionKey)?.projectId : undefined;\n}\n\nfunction projectWorkspaceRootArg(args: Record<string, unknown>): string | undefined {\n return trimString(args.workspaceRoot) ?? trimString(args.workspacePath) ?? trimString(args.path);\n}\n\nfunction optionalProjectWorkspaceRootArg(args: Record<string, unknown>): string | null | undefined {\n if (args.workspaceRoot !== undefined) return optionalString(args.workspaceRoot);\n if (args.workspacePath !== undefined) return optionalString(args.workspacePath);\n if (args.path !== undefined) return optionalString(args.path);\n return undefined;\n}\n\nfunction validateDefaultAgentId(raw: unknown, config: Config | undefined): string | null | undefined {\n if (raw === null) return null;\n const normalized = normalizeProjectAgentId(trimString(raw));\n if (!normalized) return undefined;\n if (config && !isValidProjectAgentId(config, normalized)) {\n throw new Error(`Default agent not found: ${normalized}`);\n }\n return normalized;\n}\n\nasync function handleProject(\n command: string,\n args: Record<string, unknown>,\n deps: XopcUseToolDeps,\n dryRun: boolean,\n): Promise<unknown> {\n const projects = deps.getProjectService?.();\n if (!projects) return { ok: false, error: 'Project service is unavailable' };\n\n if (command === 'list') {\n return {\n ok: true,\n ...projects.list({\n status: enumValue(args.status, PROJECT_STATUSES),\n search: trimString(args.search),\n sortBy: enumValue(args.sortBy, new Set(['updatedAt', 'createdAt', 'name'] as const)),\n sortOrder: enumValue(args.sortOrder, new Set(['asc', 'desc'] as const)),\n limit: boundedLimit(args.limit),\n offset: offset(args.offset),\n }),\n };\n }\n\n if (command === 'get') {\n const id = trimString(args.projectId) ?? trimString(args.id);\n if (!id) return { ok: false, error: 'projectId is required' };\n const project = projects.getWithDetails(id);\n return project ? { ok: true, project } : { ok: false, error: `Project not found: ${id}` };\n }\n\n if (command === 'resolve_workspace') {\n const workspacePath = projectWorkspaceRootArg(args);\n if (!workspacePath) return { ok: false, error: 'workspacePath is required' };\n const defaultAgentId = args.defaultAgentId !== undefined\n ? validateDefaultAgentId(args.defaultAgentId, deps.getConfig?.()) ?? undefined\n : undefined;\n const input = {\n workspacePath,\n agentId: trimString(args.agentId),\n defaultAgentId,\n autoCreate: args.autoCreate === true,\n };\n if (dryRun) return { ok: true, dryRun: true, action: 'resolve_project_workspace', input };\n const match = projects.resolveOrCreateForWorkspacePath(input);\n return match ? { ok: true, match } : { ok: false, error: 'No project matched workspace path' };\n }\n\n if (command === 'create') {\n const name = trimString(args.name);\n const workspaceRoot = projectWorkspaceRootArg(args);\n if (!name && !workspaceRoot) return { ok: false, error: 'name or workspaceRoot is required' };\n const input = {\n name,\n description: trimString(args.description),\n defaultAgentId: validateDefaultAgentId(args.defaultAgentId, deps.getConfig?.()) ?? undefined,\n workspaceRoot,\n createWorkspaceRoot: args.createWorkspaceRoot === true,\n projectKind: trimString(args.projectKind),\n brief: trimString(args.brief),\n instructions: trimString(args.instructions),\n };\n if (dryRun) return { ok: true, dryRun: true, action: 'create_project', input };\n const project = projects.create(input);\n return { ok: true, project };\n }\n\n if (command === 'update') {\n const id = trimString(args.projectId) ?? trimString(args.id);\n if (!id) return { ok: false, error: 'projectId is required' };\n const workspaceRoot = optionalProjectWorkspaceRootArg(args);\n const patch = {\n ...(args.name !== undefined ? { name: trimString(args.name) ?? '' } : {}),\n ...(args.description !== undefined ? { description: optionalString(args.description) } : {}),\n ...(args.status !== undefined ? { status: enumValue(args.status, PROJECT_STATUSES) } : {}),\n ...(args.defaultAgentId !== undefined ? { defaultAgentId: validateDefaultAgentId(args.defaultAgentId, deps.getConfig?.()) } : {}),\n ...(workspaceRoot !== undefined ? { workspaceRoot } : {}),\n ...(args.createWorkspaceRoot === true ? { createWorkspaceRoot: true } : {}),\n ...(args.brief !== undefined ? { brief: optionalString(args.brief) } : {}),\n ...(args.instructions !== undefined ? { instructions: optionalString(args.instructions) } : {}),\n };\n if (args.status !== undefined && patch.status === undefined) return { ok: false, error: 'Invalid project status' };\n if (dryRun) return { ok: true, dryRun: true, action: 'update_project', projectId: id, patch };\n const project = projects.update(id, patch);\n return { ok: true, project };\n }\n\n return { ok: false, error: `Unsupported project command: ${command}` };\n}\n\nasync function handleNote(\n command: string,\n args: Record<string, unknown>,\n deps: XopcUseToolDeps,\n dryRun: boolean,\n): Promise<unknown> {\n const notes = deps.getNotesService?.();\n if (!notes) return { ok: false, error: 'Notes service is unavailable' };\n\n if (command === 'list') {\n return {\n ok: true,\n ...(await notes.listNotes({\n status: enumValue(args.status, NOTE_STATUSES),\n kind: enumValue(args.kind, NOTE_KINDS),\n tag: trimString(args.tag),\n search: trimString(args.search),\n pinned: typeof args.pinned === 'boolean' ? args.pinned : undefined,\n limit: boundedLimit(args.limit),\n offset: offset(args.offset),\n sortBy: enumValue(args.sortBy, new Set(['createdAt', 'updatedAt', 'lastOpenedAt'] as const)),\n sortOrder: enumValue(args.sortOrder, new Set(['asc', 'desc'] as const)),\n })),\n };\n }\n\n if (command === 'get') {\n const id = trimString(args.noteId) ?? trimString(args.id);\n if (!id) return { ok: false, error: 'noteId is required' };\n const note = await notes.getNote(id);\n return note ? { ok: true, note } : { ok: false, error: `Note not found: ${id}` };\n }\n\n if (command === 'create') {\n const markdown = typeof args.markdown === 'string' ? args.markdown : trimString(args.content) ?? '';\n const input = {\n title: trimString(args.title),\n markdown,\n kind: enumValue(args.kind, NOTE_KINDS),\n tags: stringArray(args.tags),\n capturedVia: { channel: 'web' as const },\n pinned: args.pinned === true,\n };\n if (dryRun) return { ok: true, dryRun: true, action: 'create_note', input };\n const note = await notes.createNote(input);\n return { ok: true, note };\n }\n\n if (command === 'append') {\n const id = trimString(args.noteId) ?? trimString(args.id);\n const content = trimString(args.content);\n if (!id) return { ok: false, error: 'noteId is required' };\n if (!content) return { ok: false, error: 'content is required' };\n const heading = trimString(args.heading);\n if (dryRun) return { ok: true, dryRun: true, action: 'append_note', noteId: id, heading, content };\n const note = await notes.appendTextToNote(id, content, heading);\n return note ? { ok: true, note } : { ok: false, error: `Note not found: ${id}` };\n }\n\n if (command === 'preview_edit') {\n const id = trimString(args.noteId) ?? trimString(args.id);\n const instruction = trimString(args.instruction);\n if (!id) return { ok: false, error: 'noteId is required' };\n if (!instruction) return { ok: false, error: 'instruction is required' };\n const markdown = typeof args.markdown === 'string' ? args.markdown : undefined;\n const result = await notes.createAiEditPatch(id, instruction, markdown);\n return result ? { ok: true, ...result } : { ok: false, error: `Note not found: ${id}` };\n }\n\n if (command === 'update') {\n const id = trimString(args.noteId) ?? trimString(args.id);\n if (!id) return { ok: false, error: 'noteId is required' };\n if (args.title !== undefined && typeof args.title !== 'string') return { ok: false, error: 'Invalid note title' };\n if (args.markdown !== undefined && typeof args.markdown !== 'string') return { ok: false, error: 'Invalid note markdown' };\n if (args.tags !== undefined && !Array.isArray(args.tags)) return { ok: false, error: 'Invalid note tags' };\n const title = args.title as string | undefined;\n const markdown = args.markdown as string | undefined;\n const patch = {\n ...(args.title !== undefined ? { title } : {}),\n ...(args.markdown !== undefined ? { markdown } : {}),\n ...(args.kind !== undefined ? { kind: enumValue(args.kind, NOTE_KINDS) } : {}),\n ...(args.status !== undefined ? { status: enumValue(args.status, NOTE_STATUSES) } : {}),\n ...(args.tags !== undefined ? { tags: stringArray(args.tags) ?? [] } : {}),\n ...(typeof args.pinned === 'boolean' ? { pinned: args.pinned } : {}),\n };\n if (args.kind !== undefined && patch.kind === undefined) return { ok: false, error: 'Invalid note kind' };\n if (args.status !== undefined && patch.status === undefined) return { ok: false, error: 'Invalid note status' };\n if (dryRun) return { ok: true, dryRun: true, action: 'update_note', noteId: id, patch };\n const note = await notes.updateNote(id, patch, 'ai_edit');\n return note ? { ok: true, note } : { ok: false, error: `Note not found: ${id}` };\n }\n\n return { ok: false, error: `Unsupported note command: ${command}` };\n}\n\nasync function handleWorkItem(\n command: string,\n args: Record<string, unknown>,\n deps: XopcUseToolDeps,\n dryRun: boolean,\n): Promise<unknown> {\n const workItems = deps.getWorkItemService?.();\n if (!workItems) return { ok: false, error: 'Work item service is unavailable' };\n\n if (command === 'list') {\n const projectId = currentProjectId(args, deps);\n if (!projectId) return { ok: false, error: 'projectId is required' };\n return {\n ok: true,\n ...workItems.listProjectWorkItems(projectId, {\n status: enumValue(args.status, WORK_ITEM_STATUSES),\n priority: enumValue(args.priority, WORK_ITEM_PRIORITIES),\n includeArchived: args.includeArchived === true,\n search: trimString(args.search),\n sortBy: enumValue(args.sortBy, new Set(['updatedAt', 'createdAt', 'priority', 'status'] as const)),\n sortOrder: enumValue(args.sortOrder, new Set(['asc', 'desc'] as const)),\n limit: boundedLimit(args.limit),\n offset: offset(args.offset),\n }),\n };\n }\n\n if (command === 'get') {\n const id = trimString(args.workItemId) ?? trimString(args.id);\n if (!id) return { ok: false, error: 'workItemId is required' };\n const item = workItems.getWorkItem(id);\n return item ? { ok: true, item } : { ok: false, error: `Work item not found: ${id}` };\n }\n\n if (command === 'create') {\n const projectId = currentProjectId(args, deps);\n const title = trimString(args.title);\n if (!projectId) return { ok: false, error: 'projectId is required' };\n if (!title) return { ok: false, error: 'title is required' };\n const input = {\n title,\n description: trimString(args.description),\n status: enumValue(args.status, WORK_ITEM_STATUSES),\n priority: enumValue(args.priority, WORK_ITEM_PRIORITIES),\n ownerAgentId: trimString(args.ownerAgentId),\n nextAction: trimString(args.nextAction),\n blockedReason: trimString(args.blockedReason),\n dueAt: finiteNumber(args.dueAt),\n };\n if (args.status !== undefined && input.status === undefined) return { ok: false, error: 'Invalid work item status' };\n if (args.priority !== undefined && input.priority === undefined) return { ok: false, error: 'Invalid work item priority' };\n if (args.dueAt !== undefined && input.dueAt === undefined) return { ok: false, error: 'Invalid dueAt' };\n if (dryRun) return { ok: true, dryRun: true, action: 'create_work_item', projectId, input };\n const item = workItems.createProjectWorkItem(projectId, input);\n return { ok: true, item };\n }\n\n if (command === 'update') {\n const id = trimString(args.workItemId) ?? trimString(args.id);\n if (!id) return { ok: false, error: 'workItemId is required' };\n const dueAt = args.dueAt !== undefined ? nullableNumber(args.dueAt) : undefined;\n const archivedAt = args.archivedAt !== undefined ? nullableNumber(args.archivedAt) : undefined;\n const patch = {\n ...(args.title !== undefined ? { title: trimString(args.title) ?? '' } : {}),\n ...(args.description !== undefined ? { description: optionalString(args.description) } : {}),\n ...(args.status !== undefined ? { status: enumValue(args.status, WORK_ITEM_STATUSES) } : {}),\n ...(args.priority !== undefined ? { priority: enumValue(args.priority, WORK_ITEM_PRIORITIES) } : {}),\n ...(args.ownerAgentId !== undefined ? { ownerAgentId: optionalString(args.ownerAgentId) } : {}),\n ...(args.nextAction !== undefined ? { nextAction: optionalString(args.nextAction) } : {}),\n ...(args.blockedReason !== undefined ? { blockedReason: optionalString(args.blockedReason) } : {}),\n ...(args.dueAt !== undefined ? { dueAt } : {}),\n ...(args.archivedAt !== undefined ? { archivedAt } : {}),\n };\n if (args.status !== undefined && patch.status === undefined) return { ok: false, error: 'Invalid work item status' };\n if (args.priority !== undefined && patch.priority === undefined) return { ok: false, error: 'Invalid work item priority' };\n if (args.dueAt !== undefined && dueAt === undefined) return { ok: false, error: 'Invalid dueAt' };\n if (args.archivedAt !== undefined && archivedAt === undefined) return { ok: false, error: 'Invalid archivedAt' };\n if (dryRun) return { ok: true, dryRun: true, action: 'update_work_item', workItemId: id, patch };\n const item = workItems.updateWorkItem(id, patch);\n return item ? { ok: true, item } : { ok: false, error: `Work item not found: ${id}` };\n }\n\n return { ok: false, error: `Unsupported work_item command: ${command}` };\n}\n\nexport function createXopcUseTool(deps: XopcUseToolDeps): AgentTool<typeof XopcUseToolSchema, XopcUseDetails> {\n return {\n name: 'xopc_use',\n label: 'XOPC Use',\n description:\n 'Operate first-class xopc objects through one safe entry point. Use for projects, notes, and project work items instead of editing storage files directly. For non-trivial object changes, load the built-in manual first with tool_manual({ tool: \"xopc_use\" }).',\n parameters: XopcUseToolSchema,\n mutatesWorkspace: true,\n mutationScope: 'external',\n requiresExclusiveWorkspaceLock: true,\n finalGuardRelevant: true,\n async execute(toolCallId, input: XopcUseToolInput): Promise<AgentToolResult<XopcUseDetails>> {\n const mode = input.mode;\n const command = input.command.trim();\n const dryRun = input.dryRun === true;\n const args = ensureArgs(input);\n const details: XopcUseDetails = { mode, command, dryRun };\n if (!command) return errorText('command is required', details);\n\n try {\n const sessionKey = deps.getCurrentSessionKey?.();\n const agentId = deps.getCurrentAgentId?.();\n const result = await runWithActivityContext(\n {\n actor: { kind: 'agent', agentId, sessionKey },\n initiator: { kind: 'user', sessionKey },\n source: { kind: 'xopc_use', toolCallId },\n },\n async () =>\n mode === 'project'\n ? await handleProject(command, args, deps, dryRun)\n : mode === 'note'\n ? await handleNote(command, args, deps, dryRun)\n : mode === 'work_item'\n ? await handleWorkItem(command, args, deps, dryRun)\n : { ok: false, error: `Unsupported mode: ${String(mode)}` },\n );\n return okText({ ...details, result });\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n return errorText(message, details);\n }\n },\n } as AgentTool<typeof XopcUseToolSchema, XopcUseDetails>;\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"google-api.js","names":[],"sources":["../../../../src/agent/transcript/google-api.ts"],"sourcesContent":["/**\n * Google API detection (MIT-licensed upstream pattern).\n */\n\nexport function isGoogleModelApi(api?: string | null): boolean {\n return (\n api === \"google-gemini-cli\" ||\n api === \"google-generative-ai\" ||\n api === \"google-vertex\"\n );\n}\n"],"mappings":";;;;AAIA,SAAgB,iBAAiB,KAA8B;AAC7D,QACE,QAAQ,uBACR,QAAQ,0BACR,QAAQ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"model-selection.js","names":[],"sources":["../../../../src/agent/transcript/model-selection.ts"],"sourcesContent":["/**\n * Provider ID normalization (MIT-licensed upstream pattern).\n */\n\nexport function normalizeProviderId(provider: string): string {\n const normalized = provider.trim().toLowerCase();\n if (normalized === \"z.ai\" || normalized === \"z-ai\") {\n return \"zai\";\n }\n if (normalized === \"opencode-zen\") {\n return \"opencode\";\n }\n if (normalized === \"kimi-code\") {\n return \"kimi-coding\";\n }\n if (normalized === \"bedrock\" || normalized === \"aws-bedrock\") {\n return \"amazon-bedrock\";\n }\n if (normalized === \"bytedance\" || normalized === \"doubao\") {\n return \"volcengine\";\n }\n return normalized;\n}\n"],"mappings":";;;;AAIA,SAAgB,oBAAoB,UAA0B;CAC5D,MAAM,aAAa,SAAS,MAAM,CAAC,aAAa;AAChD,KAAI,eAAe,UAAU,eAAe,OAC1C,QAAO;AAET,KAAI,eAAe,eACjB,QAAO;AAET,KAAI,eAAe,YACjB,QAAO;AAET,KAAI,eAAe,aAAa,eAAe,cAC7C,QAAO;AAET,KAAI,eAAe,eAAe,eAAe,SAC/C,QAAO;AAET,QAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"provider-capabilities.js","names":[],"sources":["../../../../src/agent/transcript/provider-capabilities.ts"],"sourcesContent":["import { normalizeProviderId } from \"./model-selection.js\";\n\nexport type ProviderCapabilities = {\n anthropicToolSchemaMode: \"native\" | \"openai-functions\";\n anthropicToolChoiceMode: \"native\" | \"openai-string-modes\";\n providerFamily: \"default\" | \"openai\" | \"anthropic\";\n preserveAnthropicThinkingSignatures: boolean;\n openAiCompatTurnValidation: boolean;\n geminiThoughtSignatureSanitization: boolean;\n transcriptToolCallIdMode: \"default\" | \"strict9\";\n transcriptToolCallIdModelHints: string[];\n geminiThoughtSignatureModelHints: string[];\n dropThinkingBlockModelHints: string[];\n};\n\nconst DEFAULT_PROVIDER_CAPABILITIES: ProviderCapabilities = {\n anthropicToolSchemaMode: \"native\",\n anthropicToolChoiceMode: \"native\",\n providerFamily: \"default\",\n preserveAnthropicThinkingSignatures: true,\n openAiCompatTurnValidation: true,\n geminiThoughtSignatureSanitization: false,\n transcriptToolCallIdMode: \"default\",\n transcriptToolCallIdModelHints: [],\n geminiThoughtSignatureModelHints: [],\n dropThinkingBlockModelHints: [],\n};\n\nconst PROVIDER_CAPABILITIES: Record<string, Partial<ProviderCapabilities>> = {\n anthropic: {\n providerFamily: \"anthropic\",\n },\n \"amazon-bedrock\": {\n providerFamily: \"anthropic\",\n },\n // kimi-coding natively supports Anthropic tool framing (input_schema);\n // converting to OpenAI format causes XML text fallback instead of tool_use blocks.\n \"kimi-coding\": {\n preserveAnthropicThinkingSignatures: false,\n },\n mistral: {\n transcriptToolCallIdMode: \"strict9\",\n transcriptToolCallIdModelHints: [\n \"mistral\",\n \"mixtral\",\n \"codestral\",\n \"pixtral\",\n \"devstral\",\n \"ministral\",\n \"mistralai\",\n ],\n },\n openai: {\n providerFamily: \"openai\",\n },\n \"openai-codex\": {\n providerFamily: \"openai\",\n },\n openrouter: {\n openAiCompatTurnValidation: false,\n geminiThoughtSignatureSanitization: true,\n geminiThoughtSignatureModelHints: [\"gemini\"],\n },\n opencode: {\n openAiCompatTurnValidation: false,\n geminiThoughtSignatureSanitization: true,\n geminiThoughtSignatureModelHints: [\"gemini\"],\n },\n kilocode: {\n geminiThoughtSignatureSanitization: true,\n geminiThoughtSignatureModelHints: [\"gemini\"],\n },\n \"github-copilot\": {\n dropThinkingBlockModelHints: [\"claude\"],\n },\n};\n\nexport function resolveProviderCapabilities(provider?: string | null): ProviderCapabilities {\n const normalized = normalizeProviderId(provider ?? \"\");\n return {\n ...DEFAULT_PROVIDER_CAPABILITIES,\n ...PROVIDER_CAPABILITIES[normalized],\n };\n}\n\nexport function preservesAnthropicThinkingSignatures(provider?: string | null): boolean {\n return resolveProviderCapabilities(provider).preserveAnthropicThinkingSignatures;\n}\n\nexport function requiresOpenAiCompatibleAnthropicToolPayload(provider?: string | null): boolean {\n const capabilities = resolveProviderCapabilities(provider);\n return (\n capabilities.anthropicToolSchemaMode !== \"native\" ||\n capabilities.anthropicToolChoiceMode !== \"native\"\n );\n}\n\nexport function usesOpenAiFunctionAnthropicToolSchema(provider?: string | null): boolean {\n return resolveProviderCapabilities(provider).anthropicToolSchemaMode === \"openai-functions\";\n}\n\nexport function usesOpenAiStringModeAnthropicToolChoice(provider?: string | null): boolean {\n return resolveProviderCapabilities(provider).anthropicToolChoiceMode === \"openai-string-modes\";\n}\n\nexport function supportsOpenAiCompatTurnValidation(provider?: string | null): boolean {\n return resolveProviderCapabilities(provider).openAiCompatTurnValidation;\n}\n\nexport function sanitizesGeminiThoughtSignatures(provider?: string | null): boolean {\n return resolveProviderCapabilities(provider).geminiThoughtSignatureSanitization;\n}\n\nfunction modelIncludesAnyHint(modelId: string | null | undefined, hints: string[]): boolean {\n const normalized = (modelId ?? \"\").toLowerCase();\n return Boolean(normalized) && hints.some((hint) => normalized.includes(hint));\n}\n\nexport function isOpenAiProviderFamily(provider?: string | null): boolean {\n return resolveProviderCapabilities(provider).providerFamily === \"openai\";\n}\n\nexport function isAnthropicProviderFamily(provider?: string | null): boolean {\n return resolveProviderCapabilities(provider).providerFamily === \"anthropic\";\n}\n\nexport function shouldDropThinkingBlocksForModel(params: {\n provider?: string | null;\n modelId?: string | null;\n}): boolean {\n return modelIncludesAnyHint(\n params.modelId,\n resolveProviderCapabilities(params.provider).dropThinkingBlockModelHints,\n );\n}\n\nexport function shouldSanitizeGeminiThoughtSignaturesForModel(params: {\n provider?: string | null;\n modelId?: string | null;\n}): boolean {\n const capabilities = resolveProviderCapabilities(params.provider);\n return (\n capabilities.geminiThoughtSignatureSanitization &&\n modelIncludesAnyHint(params.modelId, capabilities.geminiThoughtSignatureModelHints)\n );\n}\n\nexport function resolveTranscriptToolCallIdMode(\n provider?: string | null,\n modelId?: string | null,\n): \"strict9\" | undefined {\n const capabilities = resolveProviderCapabilities(provider);\n const mode = capabilities.transcriptToolCallIdMode;\n if (mode === \"strict9\") {\n return mode;\n }\n if (modelIncludesAnyHint(modelId, capabilities.transcriptToolCallIdModelHints)) {\n return \"strict9\";\n }\n return undefined;\n}\n"],"mappings":";;AAeA,MAAM,gCAAsD;CAC1D,yBAAyB;CACzB,yBAAyB;CACzB,gBAAgB;CAChB,qCAAqC;CACrC,4BAA4B;CAC5B,oCAAoC;CACpC,0BAA0B;CAC1B,gCAAgC,EAAE;CAClC,kCAAkC,EAAE;CACpC,6BAA6B,EAAE;CAChC;AAED,MAAM,wBAAuE;CAC3E,WAAW,EACT,gBAAgB,aACjB;CACD,kBAAkB,EAChB,gBAAgB,aACjB;CAGD,eAAe,EACb,qCAAqC,OACtC;CACD,SAAS;EACP,0BAA0B;EAC1B,gCAAgC;GAC9B;GACA;GACA;GACA;GACA;GACA;GACA;GACD;EACF;CACD,QAAQ,EACN,gBAAgB,UACjB;CACD,gBAAgB,EACd,gBAAgB,UACjB;CACD,YAAY;EACV,4BAA4B;EAC5B,oCAAoC;EACpC,kCAAkC,CAAC,SAAS;EAC7C;CACD,UAAU;EACR,4BAA4B;EAC5B,oCAAoC;EACpC,kCAAkC,CAAC,SAAS;EAC7C;CACD,UAAU;EACR,oCAAoC;EACpC,kCAAkC,CAAC,SAAS;EAC7C;CACD,kBAAkB,EAChB,6BAA6B,CAAC,SAAS,EACxC;CACF;AAED,SAAgB,4BAA4B,UAAgD;CAC1F,MAAM,aAAa,oBAAoB,YAAY,GAAG;AACtD,QAAO;EACL,GAAG;EACH,GAAG,sBAAsB;EAC1B;;AAGH,SAAgB,qCAAqC,UAAmC;AACtF,QAAO,4BAA4B,SAAS,CAAC;;AAG/C,SAAgB,6CAA6C,UAAmC;CAC9F,MAAM,eAAe,4BAA4B,SAAS;AAC1D,QACE,aAAa,4BAA4B,YACzC,aAAa,4BAA4B;;AAI7C,SAAgB,sCAAsC,UAAmC;AACvF,QAAO,4BAA4B,SAAS,CAAC,4BAA4B;;AAG3E,SAAgB,wCAAwC,UAAmC;AACzF,QAAO,4BAA4B,SAAS,CAAC,4BAA4B;;AAG3E,SAAgB,mCAAmC,UAAmC;AACpF,QAAO,4BAA4B,SAAS,CAAC;;AAG/C,SAAgB,iCAAiC,UAAmC;AAClF,QAAO,4BAA4B,SAAS,CAAC;;AAG/C,SAAS,qBAAqB,SAAoC,OAA0B;CAC1F,MAAM,cAAc,WAAW,IAAI,aAAa;AAChD,QAAO,QAAQ,WAAW,IAAI,MAAM,MAAM,SAAS,WAAW,SAAS,KAAK,CAAC;;AAG/E,SAAgB,uBAAuB,UAAmC;AACxE,QAAO,4BAA4B,SAAS,CAAC,mBAAmB;;AAGlE,SAAgB,0BAA0B,UAAmC;AAC3E,QAAO,4BAA4B,SAAS,CAAC,mBAAmB;;AAGlE,SAAgB,iCAAiC,QAGrC;AACV,QAAO,qBACL,OAAO,SACP,4BAA4B,OAAO,SAAS,CAAC,4BAC9C;;AAGH,SAAgB,8CAA8C,QAGlD;CACV,MAAM,eAAe,4BAA4B,OAAO,SAAS;AACjE,QACE,aAAa,sCACb,qBAAqB,OAAO,SAAS,aAAa,iCAAiC;;AAIvF,SAAgB,gCACd,UACA,SACuB;CACvB,MAAM,eAAe,4BAA4B,SAAS;CAC1D,MAAM,OAAO,aAAa;AAC1B,KAAI,SAAS,UACX,QAAO;AAET,KAAI,qBAAqB,SAAS,aAAa,+BAA+B,CAC5E,QAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-transcript-repair.js","names":[],"sources":["../../../../src/agent/transcript/session-transcript-repair.ts"],"sourcesContent":["import type { AgentMessage } from \"@earendil-works/pi-agent-core\";\nimport { extractToolCallsFromAssistant, extractToolResultId } from \"./tool-call-id.js\";\n\nconst TOOL_CALL_NAME_MAX_CHARS = 64;\nconst TOOL_CALL_NAME_RE = /^[A-Za-z0-9_-]+$/;\n\ntype RawToolCallBlock = {\n type?: unknown;\n id?: unknown;\n name?: unknown;\n input?: unknown;\n arguments?: unknown;\n};\n\nfunction isRawToolCallBlock(block: unknown): block is RawToolCallBlock {\n if (!block || typeof block !== \"object\") {\n return false;\n }\n const type = (block as { type?: unknown }).type;\n return (\n typeof type === \"string\" &&\n (type === \"toolCall\" || type === \"toolUse\" || type === \"functionCall\")\n );\n}\n\nfunction hasToolCallInput(block: RawToolCallBlock): boolean {\n const hasInput = \"input\" in block ? block.input !== undefined && block.input !== null : false;\n const hasArguments =\n \"arguments\" in block ? block.arguments !== undefined && block.arguments !== null : false;\n return hasInput || hasArguments;\n}\n\nfunction hasNonEmptyStringField(value: unknown): boolean {\n return typeof value === \"string\" && value.trim().length > 0;\n}\n\nfunction hasToolCallId(block: RawToolCallBlock): boolean {\n return hasNonEmptyStringField(block.id);\n}\n\nfunction normalizeAllowedToolNames(allowedToolNames?: Iterable<string>): Set<string> | null {\n if (!allowedToolNames) {\n return null;\n }\n const normalized = new Set<string>();\n for (const name of allowedToolNames) {\n if (typeof name !== \"string\") {\n continue;\n }\n const trimmed = name.trim();\n if (trimmed) {\n normalized.add(trimmed.toLowerCase());\n }\n }\n return normalized.size > 0 ? normalized : null;\n}\n\nfunction hasToolCallName(block: RawToolCallBlock, allowedToolNames: Set<string> | null): boolean {\n if (typeof block.name !== \"string\") {\n return false;\n }\n const trimmed = block.name.trim();\n if (!trimmed) {\n return false;\n }\n if (trimmed.length > TOOL_CALL_NAME_MAX_CHARS || !TOOL_CALL_NAME_RE.test(trimmed)) {\n return false;\n }\n if (!allowedToolNames) {\n return true;\n }\n return allowedToolNames.has(trimmed.toLowerCase());\n}\n\nfunction redactSessionsSpawnAttachmentsArgs(value: unknown): unknown {\n if (!value || typeof value !== \"object\") {\n return value;\n }\n const rec = value as Record<string, unknown>;\n const raw = rec.attachments;\n if (!Array.isArray(raw)) {\n return value;\n }\n const next = raw.map((item) => {\n if (!item || typeof item !== \"object\") {\n return item;\n }\n const a = item as Record<string, unknown>;\n if (!Object.hasOwn(a, \"content\")) {\n return item;\n }\n const { content: _content, ...rest } = a;\n return { ...rest, content: \"__REDACTED__\" };\n });\n return { ...rec, attachments: next };\n}\n\nfunction sanitizeToolCallBlock(block: RawToolCallBlock): RawToolCallBlock {\n const rawName = typeof block.name === \"string\" ? block.name : undefined;\n const trimmedName = rawName?.trim();\n const hasTrimmedName = typeof trimmedName === \"string\" && trimmedName.length > 0;\n const normalizedName = hasTrimmedName ? trimmedName : undefined;\n const nameChanged = hasTrimmedName && rawName !== trimmedName;\n\n const isSessionsSpawn = normalizedName?.toLowerCase() === \"sessions_spawn\";\n\n if (!isSessionsSpawn) {\n if (!nameChanged) {\n return block;\n }\n return { ...(block as Record<string, unknown>), name: normalizedName } as RawToolCallBlock;\n }\n\n // Redact large/sensitive inline attachment content from persisted transcripts.\n // Apply redaction to both `.arguments` and `.input` properties since block structures can vary\n const nextArgs = redactSessionsSpawnAttachmentsArgs(block.arguments);\n const nextInput = redactSessionsSpawnAttachmentsArgs(block.input);\n if (nextArgs === block.arguments && nextInput === block.input && !nameChanged) {\n return block;\n }\n\n const next = { ...(block as Record<string, unknown>) };\n if (nameChanged && normalizedName) {\n next.name = normalizedName;\n }\n if (nextArgs !== block.arguments || Object.hasOwn(block, \"arguments\")) {\n next.arguments = nextArgs;\n }\n if (nextInput !== block.input || Object.hasOwn(block, \"input\")) {\n next.input = nextInput;\n }\n return next as RawToolCallBlock;\n}\n\nfunction makeMissingToolResult(params: {\n toolCallId: string;\n toolName?: string;\n text?: string;\n}): Extract<AgentMessage, { role: \"toolResult\" }> {\n return {\n role: \"toolResult\",\n toolCallId: params.toolCallId,\n toolName: params.toolName ?? \"unknown\",\n content: [\n {\n type: \"text\",\n text:\n params.text ??\n \"[xopc] missing tool result in session history; inserted synthetic error result for transcript repair.\",\n },\n ],\n isError: true,\n timestamp: Date.now(),\n } as Extract<AgentMessage, { role: \"toolResult\" }>;\n}\n\nfunction trimNonEmptyString(value: unknown): string | undefined {\n if (typeof value !== \"string\") {\n return undefined;\n }\n const trimmed = value.trim();\n return trimmed || undefined;\n}\n\nfunction normalizeToolResultName(\n message: Extract<AgentMessage, { role: \"toolResult\" }>,\n fallbackName?: string,\n): Extract<AgentMessage, { role: \"toolResult\" }> {\n const rawToolName = (message as { toolName?: unknown }).toolName;\n const normalizedToolName = trimNonEmptyString(rawToolName);\n if (normalizedToolName) {\n if (rawToolName === normalizedToolName) {\n return message;\n }\n return { ...message, toolName: normalizedToolName };\n }\n\n const normalizedFallback = trimNonEmptyString(fallbackName);\n if (normalizedFallback) {\n return { ...message, toolName: normalizedFallback };\n }\n\n if (typeof rawToolName === \"string\") {\n return { ...message, toolName: \"unknown\" };\n }\n return message;\n}\n\nexport { makeMissingToolResult };\n\nexport type ToolCallInputRepairReport = {\n messages: AgentMessage[];\n droppedToolCalls: number;\n droppedAssistantMessages: number;\n};\n\nexport type ToolCallInputRepairOptions = {\n allowedToolNames?: Iterable<string>;\n};\n\nexport function stripToolResultDetails(messages: AgentMessage[]): AgentMessage[] {\n let touched = false;\n const out: AgentMessage[] = [];\n for (const msg of messages) {\n if (!msg || typeof msg !== \"object\" || (msg as { role?: unknown }).role !== \"toolResult\") {\n out.push(msg);\n continue;\n }\n if (!(\"details\" in msg)) {\n out.push(msg);\n continue;\n }\n const sanitized = { ...(msg as object) } as { details?: unknown };\n delete sanitized.details;\n touched = true;\n out.push(sanitized as unknown as AgentMessage);\n }\n return touched ? out : messages;\n}\n\nexport function repairToolCallInputs(\n messages: AgentMessage[],\n options?: ToolCallInputRepairOptions,\n): ToolCallInputRepairReport {\n let droppedToolCalls = 0;\n let droppedAssistantMessages = 0;\n let changed = false;\n const out: AgentMessage[] = [];\n const allowedToolNames = normalizeAllowedToolNames(options?.allowedToolNames);\n\n for (const msg of messages) {\n if (!msg || typeof msg !== \"object\") {\n out.push(msg);\n continue;\n }\n\n if (msg.role !== \"assistant\" || !Array.isArray(msg.content)) {\n out.push(msg);\n continue;\n }\n\n const nextContent: typeof msg.content = [];\n let droppedInMessage = 0;\n let messageChanged = false;\n\n for (const block of msg.content) {\n if (\n isRawToolCallBlock(block) &&\n (!hasToolCallInput(block) ||\n !hasToolCallId(block) ||\n !hasToolCallName(block, allowedToolNames))\n ) {\n droppedToolCalls += 1;\n droppedInMessage += 1;\n changed = true;\n messageChanged = true;\n continue;\n }\n if (isRawToolCallBlock(block)) {\n if (\n (block as { type?: unknown }).type === \"toolCall\" ||\n (block as { type?: unknown }).type === \"toolUse\" ||\n (block as { type?: unknown }).type === \"functionCall\"\n ) {\n // Only sanitize (redact) sessions_spawn blocks; all others are passed through\n // unchanged to preserve provider-specific shapes (e.g. toolUse.input for Anthropic).\n const blockName =\n typeof (block as { name?: unknown }).name === \"string\"\n ? (block as { name: string }).name.trim()\n : undefined;\n if (blockName?.toLowerCase() === \"sessions_spawn\") {\n const sanitized = sanitizeToolCallBlock(block);\n if (sanitized !== block) {\n changed = true;\n messageChanged = true;\n }\n nextContent.push(sanitized as typeof block);\n } else {\n if (typeof (block as { name?: unknown }).name === \"string\") {\n const rawName = (block as { name: string }).name;\n const trimmedName = rawName.trim();\n if (rawName !== trimmedName && trimmedName) {\n const renamed = { ...(block as object), name: trimmedName } as typeof block;\n nextContent.push(renamed);\n changed = true;\n messageChanged = true;\n } else {\n nextContent.push(block);\n }\n } else {\n nextContent.push(block);\n }\n }\n continue;\n }\n } else {\n nextContent.push(block);\n }\n }\n\n if (droppedInMessage > 0) {\n if (nextContent.length === 0) {\n droppedAssistantMessages += 1;\n changed = true;\n continue;\n }\n out.push({ ...msg, content: nextContent });\n continue;\n }\n\n if (messageChanged) {\n out.push({ ...msg, content: nextContent });\n continue;\n }\n\n out.push(msg);\n }\n\n return {\n messages: changed ? out : messages,\n droppedToolCalls,\n droppedAssistantMessages,\n };\n}\n\nexport function sanitizeToolCallInputs(\n messages: AgentMessage[],\n options?: ToolCallInputRepairOptions,\n): AgentMessage[] {\n return repairToolCallInputs(messages, options).messages;\n}\n\nexport function sanitizeToolUseResultPairing(messages: AgentMessage[]): AgentMessage[] {\n return repairToolUseResultPairing(messages).messages;\n}\n\nexport type ToolUseRepairReport = {\n messages: AgentMessage[];\n added: Array<Extract<AgentMessage, { role: \"toolResult\" }>>;\n droppedDuplicateCount: number;\n droppedOrphanCount: number;\n moved: boolean;\n};\n\nexport function repairToolUseResultPairing(messages: AgentMessage[]): ToolUseRepairReport {\n // Anthropic (and Cloud Code Assist) reject transcripts where assistant tool calls are not\n // immediately followed by matching tool results. Session files can end up with results\n // displaced (e.g. after user turns) or duplicated. Repair by:\n // - moving matching toolResult messages directly after their assistant toolCall turn\n // - inserting synthetic error toolResults for missing ids\n // - dropping duplicate toolResults for the same id (anywhere in the transcript)\n const out: AgentMessage[] = [];\n const added: Array<Extract<AgentMessage, { role: \"toolResult\" }>> = [];\n const seenToolResultIds = new Set<string>();\n let droppedDuplicateCount = 0;\n let droppedOrphanCount = 0;\n let moved = false;\n let changed = false;\n\n const pushToolResult = (msg: Extract<AgentMessage, { role: \"toolResult\" }>) => {\n const id = extractToolResultId(msg);\n if (id && seenToolResultIds.has(id)) {\n droppedDuplicateCount += 1;\n changed = true;\n return;\n }\n if (id) {\n seenToolResultIds.add(id);\n }\n out.push(msg);\n };\n\n for (let i = 0; i < messages.length; i += 1) {\n const msg = messages[i];\n if (!msg || typeof msg !== \"object\") {\n out.push(msg);\n continue;\n }\n\n const role = (msg as { role?: unknown }).role;\n if (role !== \"assistant\") {\n // Tool results must only appear directly after the matching assistant tool call turn.\n // Any \"free-floating\" toolResult entries in session history can make strict providers\n // (Anthropic-compatible APIs, MiniMax, Cloud Code Assist) reject the entire request.\n if (role !== \"toolResult\") {\n out.push(msg);\n } else {\n droppedOrphanCount += 1;\n changed = true;\n }\n continue;\n }\n\n const assistant = msg as Extract<AgentMessage, { role: \"assistant\" }>;\n\n // Skip tool call extraction for aborted or errored assistant messages.\n // When stopReason is \"error\" or \"aborted\", the tool_use blocks may be incomplete\n // (e.g., partialJson: true) and should not have synthetic tool_results created.\n // Creating synthetic results for incomplete tool calls causes API 400 errors:\n // \"unexpected tool_use_id found in tool_result blocks\"\n const stopReason = (assistant as { stopReason?: string }).stopReason;\n if (stopReason === \"error\" || stopReason === \"aborted\") {\n out.push(msg);\n continue;\n }\n\n const toolCalls = extractToolCallsFromAssistant(assistant);\n if (toolCalls.length === 0) {\n out.push(msg);\n continue;\n }\n\n const toolCallIds = new Set(toolCalls.map((t) => t.id));\n const toolCallNamesById = new Map(toolCalls.map((t) => [t.id, t.name] as const));\n\n const spanResultsById = new Map<string, Extract<AgentMessage, { role: \"toolResult\" }>>();\n const remainder: AgentMessage[] = [];\n\n let j = i + 1;\n for (; j < messages.length; j += 1) {\n const next = messages[j];\n if (!next || typeof next !== \"object\") {\n remainder.push(next);\n continue;\n }\n\n const nextRole = (next as { role?: unknown }).role;\n if (nextRole === \"assistant\") {\n break;\n }\n\n if (nextRole === \"toolResult\") {\n const toolResult = next as Extract<AgentMessage, { role: \"toolResult\" }>;\n const id = extractToolResultId(toolResult);\n if (id && toolCallIds.has(id)) {\n if (seenToolResultIds.has(id)) {\n droppedDuplicateCount += 1;\n changed = true;\n continue;\n }\n const normalizedToolResult = normalizeToolResultName(\n toolResult,\n toolCallNamesById.get(id),\n );\n if (normalizedToolResult !== toolResult) {\n changed = true;\n }\n if (!spanResultsById.has(id)) {\n spanResultsById.set(id, normalizedToolResult);\n }\n continue;\n }\n }\n\n // Drop tool results that don't match the current assistant tool calls.\n if (nextRole !== \"toolResult\") {\n remainder.push(next);\n } else {\n droppedOrphanCount += 1;\n changed = true;\n }\n }\n\n out.push(msg);\n\n if (spanResultsById.size > 0 && remainder.length > 0) {\n moved = true;\n changed = true;\n }\n\n for (const call of toolCalls) {\n const existing = spanResultsById.get(call.id);\n if (existing) {\n pushToolResult(existing);\n } else {\n const missing = makeMissingToolResult({\n toolCallId: call.id,\n toolName: call.name,\n });\n added.push(missing);\n changed = true;\n pushToolResult(missing);\n }\n }\n\n for (const rem of remainder) {\n if (!rem || typeof rem !== \"object\") {\n out.push(rem);\n continue;\n }\n out.push(rem);\n }\n i = j - 1;\n }\n\n const changedOrMoved = changed || moved;\n return {\n messages: changedOrMoved ? out : messages,\n added,\n droppedDuplicateCount,\n droppedOrphanCount,\n moved: changedOrMoved,\n };\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"strip-tool-messages.js","names":[],"sources":["../../../../src/agent/transcript/strip-tool-messages.ts"],"sourcesContent":["/**\n * Strip tool / toolResult rows from wire-format history.\n * Use for display, summaries, or tools that need \"last assistant text\" without tool spans.\n */\n\nexport function stripToolMessages(messages: unknown[]): unknown[] {\n return messages.filter((msg) => {\n if (!msg || typeof msg !== 'object') {\n return true;\n }\n const role = (msg as { role?: unknown }).role;\n return role !== 'toolResult' && role !== 'tool';\n });\n}\n"],"mappings":";;;;;AAKA,SAAgB,kBAAkB,UAAgC;AAChE,QAAO,SAAS,QAAQ,QAAQ;AAC9B,MAAI,CAAC,OAAO,OAAO,QAAQ,SACzB,QAAO;EAET,MAAM,OAAQ,IAA2B;AACzC,SAAO,SAAS,gBAAgB,SAAS;GACzC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"thinking-types.js","names":[],"sources":["../../../../src/agent/transcript/thinking-types.ts"],"sourcesContent":["/**\n * Thinking Types\n *\n * Defines types for thinking ability management across the application.\n * Thinking-level labels for transcript hygiene.\n */\n\n// ============================================\n// Thinking Levels\n// ============================================\n\n/**\n * Thinking level for models that support extended thinking.\n * - off: No thinking\n * - minimal: Minimal thinking effort\n * - low: Low thinking effort\n * - medium: Medium thinking effort\n * - high: High thinking effort\n * - xhigh: Extra high thinking (for supported models only)\n * - adaptive: Automatically adjust based on task complexity\n */\nexport type ThinkLevel = 'off' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'adaptive';\n\n/**\n * Reasoning visibility level.\n * Controls whether the model's reasoning/thinking is shown to the user.\n * - off: Hide reasoning\n * - on: Show reasoning after completion\n * - stream: Stream reasoning in real-time\n */\nexport type ReasoningLevel = 'off' | 'on' | 'stream';\n\n/**\n * Verbose level for agent output.\n * - off: Minimal output\n * - on: Normal verbose output\n * - full: Full verbose output with all details\n */\nexport type VerboseLevel = 'off' | 'on' | 'full';\n\n/**\n * Elevated mode for bash execution permissions.\n * - off: No elevated permissions\n * - ask: Ask for confirmation before elevated commands\n * - full: Allow all elevated commands without confirmation\n */\nexport type ElevatedMode = 'off' | 'ask' | 'full';\n\n// ============================================\n// Session-Level Configuration\n// ============================================\n\n/**\n * Session-level configuration for agent behavior.\n * These settings can be overridden per-session.\n */\nexport interface SessionAgentConfig {\n /** Thinking level for this session */\n thinkingLevel?: ThinkLevel;\n /** Reasoning visibility for this session */\n reasoningLevel?: ReasoningLevel;\n /** Verbose level for this session */\n verboseLevel?: VerboseLevel;\n /** Elevated mode for this session */\n elevatedMode?: ElevatedMode;\n /** Model override for this session */\n modelOverride?: string;\n /** Provider override for this session */\n providerOverride?: string;\n /** Per-session markdown workspace root override (immutable once set) */\n workingDirectoryOverride?: string;\n}\n\n// ============================================\n// Helper Functions\n// ============================================\n\n/**\n * Normalize a raw string to ThinkLevel.\n * Handles various aliases and formats.\n */\nexport function normalizeThinkLevel(raw?: string | null): ThinkLevel | undefined {\n if (!raw) {\n return undefined;\n }\n const key = raw.trim().toLowerCase();\n const collapsed = key.replace(/[\\s_-]+/g, '');\n\n if (collapsed === 'adaptive' || collapsed === 'auto') {\n return 'adaptive';\n }\n if (collapsed === 'xhigh' || collapsed === 'extrahigh') {\n return 'xhigh';\n }\n if (['off', 'disable', 'disabled'].includes(key)) {\n return 'off';\n }\n if (['on', 'enable', 'enabled'].includes(key)) {\n return 'low';\n }\n if (['min', 'minimal'].includes(key)) {\n return 'minimal';\n }\n if (['low', 'thinkhard', 'think-hard', 'think_hard'].includes(key)) {\n return 'low';\n }\n if (['mid', 'med', 'medium', 'thinkharder', 'think-harder', 'harder'].includes(key)) {\n return 'medium';\n }\n if (['high', 'ultra', 'ultrathink', 'think-hard', 'thinkhardest', 'highest', 'max'].includes(key)) {\n return 'high';\n }\n if (['think'].includes(key)) {\n return 'minimal';\n }\n return undefined;\n}\n\n/**\n * Normalize a raw string to ReasoningLevel.\n */\nexport function normalizeReasoningLevel(raw?: string | null): ReasoningLevel | undefined {\n if (!raw) {\n return undefined;\n }\n const key = raw.toLowerCase();\n if (['off', 'false', 'no', '0', 'hide', 'hidden', 'disable', 'disabled'].includes(key)) {\n return 'off';\n }\n if (['on', 'true', 'yes', '1', 'show', 'visible', 'enable', 'enabled'].includes(key)) {\n return 'on';\n }\n if (['stream', 'streaming', 'draft', 'live'].includes(key)) {\n return 'stream';\n }\n return undefined;\n}\n\n/**\n * Normalize a raw string to VerboseLevel.\n */\nexport function normalizeVerboseLevel(raw?: string | null): VerboseLevel | undefined {\n if (!raw) {\n return undefined;\n }\n const key = raw.toLowerCase();\n if (['off', 'false', 'no', '0'].includes(key)) {\n return 'off';\n }\n if (['full', 'all', 'everything'].includes(key)) {\n return 'full';\n }\n if (['on', 'true', 'yes', '1', 'enable', 'enabled'].includes(key)) {\n return 'on';\n }\n return undefined;\n}\n\n/**\n * Normalize a raw string to ElevatedMode.\n */\nexport function normalizeElevatedMode(raw?: string | null): ElevatedMode | undefined {\n if (!raw) {\n return undefined;\n }\n const key = raw.toLowerCase();\n if (['off', 'false', 'no', '0'].includes(key)) {\n return 'off';\n }\n if (['full', 'auto', 'auto-approve', 'autoapprove'].includes(key)) {\n return 'full';\n }\n if (['ask', 'prompt', 'approval', 'approve'].includes(key)) {\n return 'ask';\n }\n return undefined;\n}\n\n/**\n * Get available thinking levels for a provider/model.\n * Returns ['off', 'on'] for binary providers like z.ai.\n */\nexport function listThinkingLevels(provider?: string | null, model?: string | null): (ThinkLevel | 'on')[] {\n // Binary thinking providers (like z.ai)\n const normalizedProvider = provider?.trim().toLowerCase();\n if (normalizedProvider === 'z.ai' || normalizedProvider === 'zai') {\n return ['off', 'on'];\n }\n\n const levels: (ThinkLevel | 'on')[] = ['off', 'minimal', 'low', 'medium', 'high'];\n\n // xhigh is only supported for specific models\n const normalizedModel = model?.trim().toLowerCase();\n if (normalizedModel && ['gpt-5.6', 'gpt-5.5', 'gpt-5.4', 'gpt-5.4-pro', 'gpt-5.2'].some((m) => normalizedModel.includes(m))) {\n levels.push('xhigh');\n }\n\n levels.push('adaptive');\n return levels;\n}\n\n/**\n * Format thinking levels as a comma-separated string for display.\n */\nexport function formatThinkingLevels(provider?: string | null, model?: string | null): string {\n return listThinkingLevels(provider, model).join(', ');\n}\n\n/**\n * Convert ThinkLevel to a numeric value for comparison.\n * Higher value = more thinking.\n */\nexport function thinkLevelToNumber(level: ThinkLevel): number {\n const map: Record<ThinkLevel, number> = {\n off: 0,\n minimal: 1,\n low: 2,\n medium: 3,\n high: 4,\n xhigh: 5,\n adaptive: 3, // adaptive defaults to medium\n };\n return map[level];\n}\n"],"mappings":";;;;;AAiFA,SAAgB,oBAAoB,KAA6C;AAC/E,KAAI,CAAC,IACH;CAEF,MAAM,MAAM,IAAI,MAAM,CAAC,aAAa;CACpC,MAAM,YAAY,IAAI,QAAQ,YAAY,GAAG;AAE7C,KAAI,cAAc,cAAc,cAAc,OAC5C,QAAO;AAET,KAAI,cAAc,WAAW,cAAc,YACzC,QAAO;AAET,KAAI;EAAC;EAAO;EAAW;EAAW,CAAC,SAAS,IAAI,CAC9C,QAAO;AAET,KAAI;EAAC;EAAM;EAAU;EAAU,CAAC,SAAS,IAAI,CAC3C,QAAO;AAET,KAAI,CAAC,OAAO,UAAU,CAAC,SAAS,IAAI,CAClC,QAAO;AAET,KAAI;EAAC;EAAO;EAAa;EAAc;EAAa,CAAC,SAAS,IAAI,CAChE,QAAO;AAET,KAAI;EAAC;EAAO;EAAO;EAAU;EAAe;EAAgB;EAAS,CAAC,SAAS,IAAI,CACjF,QAAO;AAET,KAAI;EAAC;EAAQ;EAAS;EAAc;EAAc;EAAgB;EAAW;EAAM,CAAC,SAAS,IAAI,CAC/F,QAAO;AAET,KAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,CACzB,QAAO;;;;;AAQX,SAAgB,wBAAwB,KAAiD;AACvF,KAAI,CAAC,IACH;CAEF,MAAM,MAAM,IAAI,aAAa;AAC7B,KAAI;EAAC;EAAO;EAAS;EAAM;EAAK;EAAQ;EAAU;EAAW;EAAW,CAAC,SAAS,IAAI,CACpF,QAAO;AAET,KAAI;EAAC;EAAM;EAAQ;EAAO;EAAK;EAAQ;EAAW;EAAU;EAAU,CAAC,SAAS,IAAI,CAClF,QAAO;AAET,KAAI;EAAC;EAAU;EAAa;EAAS;EAAO,CAAC,SAAS,IAAI,CACxD,QAAO;;;;;AAQX,SAAgB,sBAAsB,KAA+C;AACnF,KAAI,CAAC,IACH;CAEF,MAAM,MAAM,IAAI,aAAa;AAC7B,KAAI;EAAC;EAAO;EAAS;EAAM;EAAI,CAAC,SAAS,IAAI,CAC3C,QAAO;AAET,KAAI;EAAC;EAAQ;EAAO;EAAa,CAAC,SAAS,IAAI,CAC7C,QAAO;AAET,KAAI;EAAC;EAAM;EAAQ;EAAO;EAAK;EAAU;EAAU,CAAC,SAAS,IAAI,CAC/D,QAAO;;;;;AAQX,SAAgB,sBAAsB,KAA+C;AACnF,KAAI,CAAC,IACH;CAEF,MAAM,MAAM,IAAI,aAAa;AAC7B,KAAI;EAAC;EAAO;EAAS;EAAM;EAAI,CAAC,SAAS,IAAI,CAC3C,QAAO;AAET,KAAI;EAAC;EAAQ;EAAQ;EAAgB;EAAc,CAAC,SAAS,IAAI,CAC/D,QAAO;AAET,KAAI;EAAC;EAAO;EAAU;EAAY;EAAU,CAAC,SAAS,IAAI,CACxD,QAAO;;;;;;AASX,SAAgB,mBAAmB,UAA0B,OAA8C;CAEzG,MAAM,qBAAqB,UAAU,MAAM,CAAC,aAAa;AACzD,KAAI,uBAAuB,UAAU,uBAAuB,MAC1D,QAAO,CAAC,OAAO,KAAK;CAGtB,MAAM,SAAgC;EAAC;EAAO;EAAW;EAAO;EAAU;EAAO;CAGjF,MAAM,kBAAkB,OAAO,MAAM,CAAC,aAAa;AACnD,KAAI,mBAAmB;EAAC;EAAW;EAAW;EAAW;EAAe;EAAU,CAAC,MAAM,MAAM,gBAAgB,SAAS,EAAE,CAAC,CACzH,QAAO,KAAK,QAAQ;AAGtB,QAAO,KAAK,WAAW;AACvB,QAAO;;;;;AAMT,SAAgB,qBAAqB,UAA0B,OAA+B;AAC5F,QAAO,mBAAmB,UAAU,MAAM,CAAC,KAAK,KAAK;;;;;;AAOvD,SAAgB,mBAAmB,OAA2B;AAU5D,QAAO;EARL,KAAK;EACL,SAAS;EACT,KAAK;EACL,QAAQ;EACR,MAAM;EACN,OAAO;EACP,UAAU;EAEF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"thinking.js","names":[],"sources":["../../../../src/agent/transcript/thinking.ts"],"sourcesContent":["import type { AgentMessage } from \"@earendil-works/pi-agent-core\";\n\ntype AssistantContentBlock = Extract<AgentMessage, { role: \"assistant\" }>[\"content\"][number];\ntype AssistantMessage = Extract<AgentMessage, { role: \"assistant\" }>;\n\nexport function isAssistantMessageWithContent(message: AgentMessage): message is AssistantMessage {\n return (\n !!message &&\n typeof message === \"object\" &&\n message.role === \"assistant\" &&\n Array.isArray(message.content)\n );\n}\n\n/**\n * Strip all `type: \"thinking\"` content blocks from assistant messages.\n *\n * If an assistant message becomes empty after stripping, it is replaced with\n * a synthetic `{ type: \"text\", text: \"\" }` block to preserve turn structure\n * (some providers require strict user/assistant alternation).\n *\n * Returns the original array reference when nothing was changed (callers can\n * use reference equality to skip downstream work).\n */\nexport function dropThinkingBlocks(messages: AgentMessage[]): AgentMessage[] {\n let touched = false;\n const out: AgentMessage[] = [];\n for (const msg of messages) {\n if (!isAssistantMessageWithContent(msg)) {\n out.push(msg);\n continue;\n }\n const nextContent: AssistantContentBlock[] = [];\n let changed = false;\n for (const block of msg.content) {\n if (block && typeof block === \"object\" && (block as { type?: unknown }).type === \"thinking\") {\n touched = true;\n changed = true;\n continue;\n }\n nextContent.push(block);\n }\n if (!changed) {\n out.push(msg);\n continue;\n }\n // Preserve the assistant turn even if all blocks were thinking-only.\n const content =\n nextContent.length > 0 ? nextContent : [{ type: \"text\", text: \"\" } as AssistantContentBlock];\n out.push({ ...msg, content });\n }\n return touched ? out : messages;\n}\n"],"mappings":";AAKA,SAAgB,8BAA8B,SAAoD;AAChG,QACE,CAAC,CAAC,WACF,OAAO,YAAY,YACnB,QAAQ,SAAS,eACjB,MAAM,QAAQ,QAAQ,QAAQ;;;;;;;;;;;;AAclC,SAAgB,mBAAmB,UAA0C;CAC3E,IAAI,UAAU;CACd,MAAM,MAAsB,EAAE;AAC9B,MAAK,MAAM,OAAO,UAAU;AAC1B,MAAI,CAAC,8BAA8B,IAAI,EAAE;AACvC,OAAI,KAAK,IAAI;AACb;;EAEF,MAAM,cAAuC,EAAE;EAC/C,IAAI,UAAU;AACd,OAAK,MAAM,SAAS,IAAI,SAAS;AAC/B,OAAI,SAAS,OAAO,UAAU,YAAa,MAA6B,SAAS,YAAY;AAC3F,cAAU;AACV,cAAU;AACV;;AAEF,eAAY,KAAK,MAAM;;AAEzB,MAAI,CAAC,SAAS;AACZ,OAAI,KAAK,IAAI;AACb;;EAGF,MAAM,UACJ,YAAY,SAAS,IAAI,cAAc,CAAC;GAAE,MAAM;GAAQ,MAAM;GAAI,CAA0B;AAC9F,MAAI,KAAK;GAAE,GAAG;GAAK;GAAS,CAAC;;AAE/B,QAAO,UAAU,MAAM"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-call-id.js","names":[],"sources":["../../../../src/agent/transcript/tool-call-id.ts"],"sourcesContent":["import { createHash } from \"node:crypto\";\nimport type { AgentMessage } from \"@earendil-works/pi-agent-core\";\n\nexport type ToolCallIdMode = \"strict\" | \"strict9\";\n\nconst STRICT9_LEN = 9;\nconst TOOL_CALL_TYPES = new Set([\"toolCall\", \"toolUse\", \"functionCall\"]);\n\nexport type ToolCallLike = {\n id: string;\n name?: string;\n};\n\n/**\n * Sanitize a tool call ID to be compatible with various providers.\n *\n * - \"strict\" mode: only [a-zA-Z0-9]\n * - \"strict9\" mode: only [a-zA-Z0-9], length 9 (Mistral tool call requirement)\n */\nexport function sanitizeToolCallId(id: string, mode: ToolCallIdMode = \"strict\"): string {\n if (!id || typeof id !== \"string\") {\n if (mode === \"strict9\") {\n return \"defaultid\";\n }\n return \"defaulttoolid\";\n }\n\n if (mode === \"strict9\") {\n const alphanumericOnly = id.replace(/[^a-zA-Z0-9]/g, \"\");\n if (alphanumericOnly.length >= STRICT9_LEN) {\n return alphanumericOnly.slice(0, STRICT9_LEN);\n }\n if (alphanumericOnly.length > 0) {\n return shortHash(alphanumericOnly, STRICT9_LEN);\n }\n return shortHash(\"sanitized\", STRICT9_LEN);\n }\n\n // Some providers require strictly alphanumeric tool call IDs.\n const alphanumericOnly = id.replace(/[^a-zA-Z0-9]/g, \"\");\n return alphanumericOnly.length > 0 ? alphanumericOnly : \"sanitizedtoolid\";\n}\n\nexport function extractToolCallsFromAssistant(\n msg: Extract<AgentMessage, { role: \"assistant\" }>,\n): ToolCallLike[] {\n const content = msg.content;\n if (!Array.isArray(content)) {\n return [];\n }\n\n const toolCalls: ToolCallLike[] = [];\n for (const block of content) {\n if (!block || typeof block !== \"object\") {\n continue;\n }\n const rec = block as { type?: unknown; id?: unknown; name?: unknown };\n if (typeof rec.id !== \"string\" || !rec.id) {\n continue;\n }\n if (typeof rec.type === \"string\" && TOOL_CALL_TYPES.has(rec.type)) {\n toolCalls.push({\n id: rec.id,\n name: typeof rec.name === \"string\" ? rec.name : undefined,\n });\n }\n }\n return toolCalls;\n}\n\nexport function extractToolResultId(\n msg: Extract<AgentMessage, { role: \"toolResult\" }>,\n): string | null {\n const toolCallId = (msg as { toolCallId?: unknown }).toolCallId;\n if (typeof toolCallId === \"string\" && toolCallId) {\n return toolCallId;\n }\n const toolUseId = (msg as { toolUseId?: unknown }).toolUseId;\n if (typeof toolUseId === \"string\" && toolUseId) {\n return toolUseId;\n }\n return null;\n}\n\nexport function isValidCloudCodeAssistToolId(id: string, mode: ToolCallIdMode = \"strict\"): boolean {\n if (!id || typeof id !== \"string\") {\n return false;\n }\n if (mode === \"strict9\") {\n return /^[a-zA-Z0-9]{9}$/.test(id);\n }\n // Strictly alphanumeric for providers with tighter tool ID constraints\n return /^[a-zA-Z0-9]+$/.test(id);\n}\n\nfunction shortHash(text: string, length = 8): string {\n return createHash(\"sha256\").update(text).digest(\"hex\").slice(0, length);\n}\n\nfunction makeUniqueToolId(params: { id: string; used: Set<string>; mode: ToolCallIdMode }): string {\n if (params.mode === \"strict9\") {\n const base = sanitizeToolCallId(params.id, params.mode);\n const candidate = base.length >= STRICT9_LEN ? base.slice(0, STRICT9_LEN) : \"\";\n if (candidate && !params.used.has(candidate)) {\n return candidate;\n }\n\n for (let i = 0; i < 1000; i += 1) {\n const hashed = shortHash(`${params.id}:${i}`, STRICT9_LEN);\n if (!params.used.has(hashed)) {\n return hashed;\n }\n }\n\n return shortHash(`${params.id}:${Date.now()}`, STRICT9_LEN);\n }\n\n const MAX_LEN = 40;\n\n const base = sanitizeToolCallId(params.id, params.mode).slice(0, MAX_LEN);\n if (!params.used.has(base)) {\n return base;\n }\n\n const hash = shortHash(params.id);\n // Use separator based on mode: none for strict, underscore for non-strict variants\n const separator = params.mode === \"strict\" ? \"\" : \"_\";\n const maxBaseLen = MAX_LEN - separator.length - hash.length;\n const clippedBase = base.length > maxBaseLen ? base.slice(0, maxBaseLen) : base;\n const candidate = `${clippedBase}${separator}${hash}`;\n if (!params.used.has(candidate)) {\n return candidate;\n }\n\n for (let i = 2; i < 1000; i += 1) {\n const suffix = params.mode === \"strict\" ? `x${i}` : `_${i}`;\n const next = `${candidate.slice(0, MAX_LEN - suffix.length)}${suffix}`;\n if (!params.used.has(next)) {\n return next;\n }\n }\n\n const ts = params.mode === \"strict\" ? `t${Date.now()}` : `_${Date.now()}`;\n return `${candidate.slice(0, MAX_LEN - ts.length)}${ts}`;\n}\n\nfunction rewriteAssistantToolCallIds(params: {\n message: Extract<AgentMessage, { role: \"assistant\" }>;\n resolve: (id: string) => string;\n}): Extract<AgentMessage, { role: \"assistant\" }> {\n const content = params.message.content;\n if (!Array.isArray(content)) {\n return params.message;\n }\n\n let changed = false;\n const next = content.map((block) => {\n if (!block || typeof block !== \"object\") {\n return block;\n }\n const rec = block as { type?: unknown; id?: unknown };\n const type = rec.type;\n const id = rec.id;\n if (\n (type !== \"functionCall\" && type !== \"toolUse\" && type !== \"toolCall\") ||\n typeof id !== \"string\" ||\n !id\n ) {\n return block;\n }\n const nextId = params.resolve(id);\n if (nextId === id) {\n return block;\n }\n changed = true;\n return { ...(block as unknown as Record<string, unknown>), id: nextId };\n });\n\n if (!changed) {\n return params.message;\n }\n return { ...params.message, content: next as typeof params.message.content };\n}\n\nfunction rewriteToolResultIds(params: {\n message: Extract<AgentMessage, { role: \"toolResult\" }>;\n resolve: (id: string) => string;\n}): Extract<AgentMessage, { role: \"toolResult\" }> {\n const toolCallId =\n typeof params.message.toolCallId === \"string\" && params.message.toolCallId\n ? params.message.toolCallId\n : undefined;\n const toolUseId = (params.message as { toolUseId?: unknown }).toolUseId;\n const toolUseIdStr = typeof toolUseId === \"string\" && toolUseId ? toolUseId : undefined;\n\n const nextToolCallId = toolCallId ? params.resolve(toolCallId) : undefined;\n const nextToolUseId = toolUseIdStr ? params.resolve(toolUseIdStr) : undefined;\n\n if (nextToolCallId === toolCallId && nextToolUseId === toolUseIdStr) {\n return params.message;\n }\n\n return {\n ...params.message,\n ...(nextToolCallId && { toolCallId: nextToolCallId }),\n ...(nextToolUseId && { toolUseId: nextToolUseId }),\n } as Extract<AgentMessage, { role: \"toolResult\" }>;\n}\n\n/**\n * Sanitize tool call IDs for provider compatibility.\n *\n * @param messages - The messages to sanitize\n * @param mode - \"strict\" (alphanumeric only) or \"strict9\" (alphanumeric length 9)\n */\nexport function sanitizeToolCallIdsForCloudCodeAssist(\n messages: AgentMessage[],\n mode: ToolCallIdMode = \"strict\",\n): AgentMessage[] {\n // Strict mode: only [a-zA-Z0-9]\n // Strict9 mode: only [a-zA-Z0-9], length 9 (Mistral tool call requirement)\n // Sanitization can introduce collisions (e.g. `a|b` and `a:b` -> `ab`).\n // Fix by applying a stable, transcript-wide mapping and de-duping via suffix.\n const map = new Map<string, string>();\n const used = new Set<string>();\n\n const resolve = (id: string) => {\n const existing = map.get(id);\n if (existing) {\n return existing;\n }\n const next = makeUniqueToolId({ id, used, mode });\n map.set(id, next);\n used.add(next);\n return next;\n };\n\n let changed = false;\n const out = messages.map((msg) => {\n if (!msg || typeof msg !== \"object\") {\n return msg;\n }\n const role = (msg as { role?: unknown }).role;\n if (role === \"assistant\") {\n const next = rewriteAssistantToolCallIds({\n message: msg as Extract<AgentMessage, { role: \"assistant\" }>,\n resolve,\n });\n if (next !== msg) {\n changed = true;\n }\n return next;\n }\n if (role === \"toolResult\") {\n const next = rewriteToolResultIds({\n message: msg as Extract<AgentMessage, { role: \"toolResult\" }>,\n resolve,\n });\n if (next !== msg) {\n changed = true;\n }\n return next;\n }\n return msg;\n });\n\n return changed ? out : messages;\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"transcript-hygiene.js","names":[],"sources":["../../../../src/agent/transcript/transcript-hygiene.ts"],"sourcesContent":["/**\n * Session transcript hygiene before LLM calls and after persistence.\n * Subset: no image/async paths here.\n */\n\nimport type { AgentMessage } from '@earendil-works/pi-agent-core';\nimport type { Api, Model } from '@earendil-works/pi-ai';\nimport { createLogger } from '../../utils/logger.js';\nimport { resolveTranscriptPolicy, type TranscriptPolicy } from './transcript-policy.js';\nimport { dropThinkingBlocks } from './thinking.js';\nimport {\n sanitizeToolCallInputs,\n sanitizeToolUseResultPairing,\n stripToolResultDetails,\n} from './session-transcript-repair.js';\nimport { sanitizeToolCallIdsForCloudCodeAssist, type ToolCallIdMode } from './tool-call-id.js';\n\nconst log = createLogger('transcript-hygiene');\n\nexport type TranscriptHygieneParams = {\n modelApi?: string | null;\n provider?: string | null;\n modelId?: string | null;\n};\n\nexport function resolvePolicyForModel(model: Model<Api>): TranscriptPolicy {\n return resolveTranscriptPolicy({\n modelApi: model.api,\n provider: model.provider,\n modelId: model.id,\n });\n}\n\n/**\n * Apply provider-aware transcript fixes: thinking drop, tool input cleanup,\n * tool_use/tool_result pairing repair, strip non-LLM details, optional tool-call ID sanitize.\n */\nexport function applySessionTranscriptHygiene(\n messages: AgentMessage[],\n model: Model<Api>,\n): AgentMessage[] {\n const policy = resolvePolicyForModel(model);\n return applySessionTranscriptHygieneWithPolicy(messages, policy);\n}\n\nexport function applySessionTranscriptHygieneWithPolicy(\n messages: AgentMessage[],\n policy: TranscriptPolicy,\n): AgentMessage[] {\n let out = messages;\n\n if (policy.dropThinkingBlocks) {\n out = dropThinkingBlocks(out);\n }\n\n out = sanitizeToolCallInputs(out);\n\n if (policy.repairToolUseResultPairing) {\n out = sanitizeToolUseResultPairing(out);\n }\n\n out = stripToolResultDetails(out);\n\n if (policy.sanitizeToolCallIds && policy.toolCallIdMode) {\n const mode: ToolCallIdMode = policy.toolCallIdMode;\n out = sanitizeToolCallIdsForCloudCodeAssist(out, mode);\n }\n\n return out;\n}\n\nexport function tryApplySessionTranscriptHygiene(\n messages: AgentMessage[],\n model: Model<Api>,\n): AgentMessage[] {\n try {\n return applySessionTranscriptHygiene(messages, model);\n } catch (err) {\n const em = err instanceof Error ? err.message : String(err);\n log.warn(\n { err, errorMessage: em, provider: model.provider, modelId: model.id, modelApi: model.api, messageCount: messages.length },\n `Transcript hygiene failed for ${model.provider}/${model.id}: ${em} (using raw messages)`,\n );\n return messages;\n }\n}\n\n/**\n * Hygiene for **writing session files** (gateway UI, history replay).\n *\n * Does **not** strip `thinking` blocks — those must remain on disk so web chat can show\n * reasoning after refresh. `dropThinkingBlocks` exists for **LLM** safety when loading\n * into the agent (`tryApplySessionTranscriptHygiene` in {@link prepareLoadedSessionMessages}).\n */\nexport function applySessionTranscriptHygieneForPersistence(\n messages: AgentMessage[],\n model: Model<Api>,\n): AgentMessage[] {\n const policy = resolvePolicyForModel(model);\n return applySessionTranscriptHygieneWithPolicy(messages, {\n ...policy,\n dropThinkingBlocks: false,\n });\n}\n\nexport function tryApplySessionTranscriptHygieneForPersistence(\n messages: AgentMessage[],\n model: Model<Api>,\n): AgentMessage[] {\n try {\n return applySessionTranscriptHygieneForPersistence(messages, model);\n } catch (err) {\n const em = err instanceof Error ? err.message : String(err);\n log.warn(\n { err, errorMessage: em, provider: model.provider, modelId: model.id, messageCount: messages.length },\n `Persistence transcript hygiene failed for ${model.provider}/${model.id}: ${em} (using raw messages)`,\n );\n return messages;\n }\n}\n"],"mappings":";;;;;;;aAOqD;AAUrD,MAAM,MAAM,aAAa,qBAAqB;AAQ9C,SAAgB,sBAAsB,OAAqC;AACzE,QAAO,wBAAwB;EAC7B,UAAU,MAAM;EAChB,UAAU,MAAM;EAChB,SAAS,MAAM;EAChB,CAAC;;;;;;AAOJ,SAAgB,8BACd,UACA,OACgB;AAEhB,QAAO,wCAAwC,UADhC,sBAAsB,MAC0B,CAAC;;AAGlE,SAAgB,wCACd,UACA,QACgB;CAChB,IAAI,MAAM;AAEV,KAAI,OAAO,mBACT,OAAM,mBAAmB,IAAI;AAG/B,OAAM,uBAAuB,IAAI;AAEjC,KAAI,OAAO,2BACT,OAAM,6BAA6B,IAAI;AAGzC,OAAM,uBAAuB,IAAI;AAEjC,KAAI,OAAO,uBAAuB,OAAO,gBAAgB;EACvD,MAAM,OAAuB,OAAO;AACpC,QAAM,sCAAsC,KAAK,KAAK;;AAGxD,QAAO;;AAGT,SAAgB,iCACd,UACA,OACgB;AAChB,KAAI;AACF,SAAO,8BAA8B,UAAU,MAAM;UAC9C,KAAK;EACZ,MAAM,KAAK,eAAe,QAAQ,IAAI,UAAU,OAAO,IAAI;AAC3D,MAAI,KACF;GAAE;GAAK,cAAc;GAAI,UAAU,MAAM;GAAU,SAAS,MAAM;GAAI,UAAU,MAAM;GAAK,cAAc,SAAS;GAAQ,EAC1H,iCAAiC,MAAM,SAAS,GAAG,MAAM,GAAG,IAAI,GAAG,uBACpE;AACD,SAAO;;;;;;;;;;AAWX,SAAgB,4CACd,UACA,OACgB;AAEhB,QAAO,wCAAwC,UAAU;EACvD,GAFa,sBAAsB,MAE1B;EACT,oBAAoB;EACrB,CAAC;;AAGJ,SAAgB,+CACd,UACA,OACgB;AAChB,KAAI;AACF,SAAO,4CAA4C,UAAU,MAAM;UAC5D,KAAK;EACZ,MAAM,KAAK,eAAe,QAAQ,IAAI,UAAU,OAAO,IAAI;AAC3D,MAAI,KACF;GAAE;GAAK,cAAc;GAAI,UAAU,MAAM;GAAU,SAAS,MAAM;GAAI,cAAc,SAAS;GAAQ,EACrG,6CAA6C,MAAM,SAAS,GAAG,MAAM,GAAG,IAAI,GAAG,uBAChF;AACD,SAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"transcript-policy.js","names":[],"sources":["../../../../src/agent/transcript/transcript-policy.ts"],"sourcesContent":["import { normalizeProviderId } from \"./model-selection.js\";\nimport { isGoogleModelApi } from \"./google-api.js\";\nimport {\n isAnthropicProviderFamily,\n isOpenAiProviderFamily,\n preservesAnthropicThinkingSignatures,\n resolveTranscriptToolCallIdMode,\n shouldDropThinkingBlocksForModel,\n shouldSanitizeGeminiThoughtSignaturesForModel,\n supportsOpenAiCompatTurnValidation,\n} from \"./provider-capabilities.js\";\nimport type { ToolCallIdMode } from \"./tool-call-id.js\";\n\nexport type TranscriptSanitizeMode = \"full\" | \"images-only\";\n\nexport type TranscriptPolicy = {\n sanitizeMode: TranscriptSanitizeMode;\n sanitizeToolCallIds: boolean;\n toolCallIdMode?: ToolCallIdMode;\n repairToolUseResultPairing: boolean;\n preserveSignatures: boolean;\n sanitizeThoughtSignatures?: {\n allowBase64Only?: boolean;\n includeCamelCase?: boolean;\n };\n sanitizeThinkingSignatures: boolean;\n dropThinkingBlocks: boolean;\n applyGoogleTurnOrdering: boolean;\n validateGeminiTurns: boolean;\n validateAnthropicTurns: boolean;\n allowSyntheticToolResults: boolean;\n};\n\nconst OPENAI_MODEL_APIS = new Set([\n \"openai\",\n \"openai-completions\",\n \"openai-responses\",\n \"openai-codex-responses\",\n]);\n\nfunction isOpenAiApi(modelApi?: string | null): boolean {\n if (!modelApi) {\n return false;\n }\n return OPENAI_MODEL_APIS.has(modelApi);\n}\n\nfunction isOpenAiProvider(provider?: string | null): boolean {\n return isOpenAiProviderFamily(provider);\n}\n\nfunction isAnthropicApi(modelApi?: string | null, provider?: string | null): boolean {\n if (modelApi === \"anthropic-messages\" || modelApi === \"bedrock-converse-stream\") {\n return true;\n }\n // MiniMax now uses openai-completions API, not anthropic-messages\n return isAnthropicProviderFamily(provider);\n}\n\nfunction resolveToolCallIdMode(\n providerToolCallIdMode: ToolCallIdMode | undefined,\n sanitizeToolCallIds: boolean,\n isMistral: boolean,\n): ToolCallIdMode | undefined {\n if (providerToolCallIdMode) return providerToolCallIdMode;\n if (isMistral) return \"strict9\";\n if (sanitizeToolCallIds) return \"strict\";\n return undefined;\n}\n\nexport function resolveTranscriptPolicy(params: {\n modelApi?: string | null;\n provider?: string | null;\n modelId?: string | null;\n}): TranscriptPolicy {\n const provider = normalizeProviderId(params.provider ?? \"\");\n const modelId = params.modelId ?? \"\";\n const isGoogle = isGoogleModelApi(params.modelApi);\n const isAnthropic = isAnthropicApi(params.modelApi, provider);\n const isOpenAi = isOpenAiProvider(provider) || (!provider && isOpenAiApi(params.modelApi));\n const isStrictOpenAiCompatible =\n params.modelApi === \"openai-completions\" &&\n !isOpenAi &&\n supportsOpenAiCompatTurnValidation(provider);\n const providerToolCallIdMode = resolveTranscriptToolCallIdMode(provider, modelId);\n const isMistral = providerToolCallIdMode === \"strict9\";\n const shouldSanitizeGeminiThoughtSignaturesForProvider =\n shouldSanitizeGeminiThoughtSignaturesForModel({\n provider,\n modelId,\n });\n const requiresOpenAiCompatibleToolIdSanitization = params.modelApi === \"openai-completions\";\n\n // GitHub Copilot's Claude endpoints can reject persisted `thinking` blocks with\n // non-binary/non-base64 signatures (e.g. thinkingSignature: \"reasoning_text\").\n // Drop these blocks at send-time to keep sessions usable.\n const dropThinkingBlocks = shouldDropThinkingBlocksForModel({ provider, modelId });\n\n const needsNonImageSanitize =\n isGoogle || isAnthropic || isMistral || shouldSanitizeGeminiThoughtSignaturesForProvider;\n\n const sanitizeToolCallIds =\n isGoogle || isMistral || isAnthropic || requiresOpenAiCompatibleToolIdSanitization;\n const toolCallIdMode = resolveToolCallIdMode(\n providerToolCallIdMode,\n sanitizeToolCallIds,\n isMistral,\n );\n // All providers need orphaned tool_result repair after history truncation.\n // OpenAI rejects function_call_output items whose call_id has no matching\n // function_call in the conversation, so the repair must run universally.\n const repairToolUseResultPairing = true;\n const sanitizeThoughtSignatures =\n shouldSanitizeGeminiThoughtSignaturesForProvider || isGoogle\n ? { allowBase64Only: true, includeCamelCase: true }\n : undefined;\n\n return {\n sanitizeMode: isOpenAi ? \"images-only\" : needsNonImageSanitize ? \"full\" : \"images-only\",\n sanitizeToolCallIds:\n (!isOpenAi && sanitizeToolCallIds) || requiresOpenAiCompatibleToolIdSanitization,\n toolCallIdMode,\n repairToolUseResultPairing,\n preserveSignatures: isAnthropic && preservesAnthropicThinkingSignatures(provider),\n sanitizeThoughtSignatures: isOpenAi ? undefined : sanitizeThoughtSignatures,\n sanitizeThinkingSignatures: false,\n dropThinkingBlocks,\n applyGoogleTurnOrdering: !isOpenAi && (isGoogle || isStrictOpenAiCompatible),\n validateGeminiTurns: !isOpenAi && (isGoogle || isStrictOpenAiCompatible),\n validateAnthropicTurns: !isOpenAi && (isAnthropic || isStrictOpenAiCompatible),\n allowSyntheticToolResults: !isOpenAi && (isGoogle || isAnthropic),\n };\n}\n"],"mappings":";;;;AAiCA,MAAM,oBAAoB,IAAI,IAAI;CAChC;CACA;CACA;CACA;CACD,CAAC;AAEF,SAAS,YAAY,UAAmC;AACtD,KAAI,CAAC,SACH,QAAO;AAET,QAAO,kBAAkB,IAAI,SAAS;;AAGxC,SAAS,iBAAiB,UAAmC;AAC3D,QAAO,uBAAuB,SAAS;;AAGzC,SAAS,eAAe,UAA0B,UAAmC;AACnF,KAAI,aAAa,wBAAwB,aAAa,0BACpD,QAAO;AAGT,QAAO,0BAA0B,SAAS;;AAG5C,SAAS,sBACP,wBACA,qBACA,WAC4B;AAC5B,KAAI,uBAAwB,QAAO;AACnC,KAAI,UAAW,QAAO;AACtB,KAAI,oBAAqB,QAAO;;AAIlC,SAAgB,wBAAwB,QAInB;CACnB,MAAM,WAAW,oBAAoB,OAAO,YAAY,GAAG;CAC3D,MAAM,UAAU,OAAO,WAAW;CAClC,MAAM,WAAW,iBAAiB,OAAO,SAAS;CAClD,MAAM,cAAc,eAAe,OAAO,UAAU,SAAS;CAC7D,MAAM,WAAW,iBAAiB,SAAS,IAAK,CAAC,YAAY,YAAY,OAAO,SAAS;CACzF,MAAM,2BACJ,OAAO,aAAa,wBACpB,CAAC,YACD,mCAAmC,SAAS;CAC9C,MAAM,yBAAyB,gCAAgC,UAAU,QAAQ;CACjF,MAAM,YAAY,2BAA2B;CAC7C,MAAM,mDACJ,8CAA8C;EAC5C;EACA;EACD,CAAC;CACJ,MAAM,6CAA6C,OAAO,aAAa;CAKvE,MAAM,qBAAqB,iCAAiC;EAAE;EAAU;EAAS,CAAC;CAElF,MAAM,wBACJ,YAAY,eAAe,aAAa;CAE1C,MAAM,sBACJ,YAAY,aAAa,eAAe;CAC1C,MAAM,iBAAiB,sBACrB,wBACA,qBACA,UACD;CAID,MAAM,6BAA6B;CACnC,MAAM,4BACJ,oDAAoD,WAChD;EAAE,iBAAiB;EAAM,kBAAkB;EAAM,GACjD,KAAA;AAEN,QAAO;EACL,cAAc,WAAW,gBAAgB,wBAAwB,SAAS;EAC1E,qBACG,CAAC,YAAY,uBAAwB;EACxC;EACA;EACA,oBAAoB,eAAe,qCAAqC,SAAS;EACjF,2BAA2B,WAAW,KAAA,IAAY;EAClD,4BAA4B;EAC5B;EACA,yBAAyB,CAAC,aAAa,YAAY;EACnD,qBAAqB,CAAC,aAAa,YAAY;EAC/C,wBAAwB,CAAC,aAAa,eAAe;EACrD,2BAA2B,CAAC,aAAa,YAAY;EACtD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-progress.js","names":[],"sources":["../../../../src/agent/workflow/agent-progress.ts"],"sourcesContent":["/**\n * Apply live subagent progress events onto a {@link WorkflowAgentSnapshot}.\n */\n\nimport type {\n SubagentProgressEvent,\n WorkflowAgentSnapshot,\n WorkflowAgentStep,\n} from './types.js';\nimport { workflowStepLabel } from './step-labels.js';\n\nconst MAX_STEPS = 50;\nconst MAX_STREAM_TEXT = 32_000;\n\nexport function applySubagentProgress(\n agent: WorkflowAgentSnapshot,\n event: SubagentProgressEvent,\n): boolean {\n switch (event.type) {\n case 'tool_start': {\n if (!agent.steps) agent.steps = [];\n const { label, detail } = workflowStepLabel(event.toolName, event.args);\n const step: WorkflowAgentStep = {\n id: event.toolCallId,\n kind: 'tool',\n toolName: event.toolName,\n label,\n detail,\n status: 'running',\n startedAtMs: Date.now(),\n };\n agent.steps.push(step);\n trimSteps(agent);\n agent.currentStep = formatCurrentStep(step);\n return true;\n }\n case 'tool_end': {\n const step = findStep(agent, event.toolCallId);\n if (!step) return false;\n step.status = event.isError ? 'error' : 'done';\n step.resultPreview = event.resultPreview;\n step.error = event.error;\n if (step.startedAtMs != null) step.durationMs = Date.now() - step.startedAtMs;\n if (agent.currentStep === formatCurrentStep(step)) {\n agent.currentStep = undefined;\n }\n return true;\n }\n case 'iteration': {\n agent.iteration = event.count;\n agent.maxIterations = event.max;\n return true;\n }\n case 'text_delta': {\n if (!event.delta) return false;\n agent.streamText = appendStreamText(agent.streamText, event.delta);\n return true;\n }\n case 'thinking_delta': {\n if (!event.delta) return false;\n agent.streamText = appendStreamText(agent.streamText, event.delta);\n return true;\n }\n default:\n return false;\n }\n}\n\nfunction findStep(agent: WorkflowAgentSnapshot, id: string): WorkflowAgentStep | undefined {\n return agent.steps?.find((s) => s.id === id);\n}\n\nfunction formatCurrentStep(step: WorkflowAgentStep): string {\n return step.detail ? `${step.label}: ${step.detail}` : step.label;\n}\n\nfunction trimSteps(agent: WorkflowAgentSnapshot): void {\n if (!agent.steps || agent.steps.length <= MAX_STEPS) return;\n agent.steps = agent.steps.slice(-MAX_STEPS);\n}\n\nfunction appendStreamText(existing: string | undefined, delta: string): string {\n const next = (existing ?? '') + delta;\n if (next.length <= MAX_STREAM_TEXT) return next;\n return next.slice(-MAX_STREAM_TEXT);\n}\n"],"mappings":";;AAWA,MAAM,YAAY;AAClB,MAAM,kBAAkB;AAExB,SAAgB,sBACd,OACA,OACS;AACT,SAAQ,MAAM,MAAd;EACE,KAAK,cAAc;AACjB,OAAI,CAAC,MAAM,MAAO,OAAM,QAAQ,EAAE;GAClC,MAAM,EAAE,OAAO,WAAW,kBAAkB,MAAM,UAAU,MAAM,KAAK;GACvE,MAAM,OAA0B;IAC9B,IAAI,MAAM;IACV,MAAM;IACN,UAAU,MAAM;IAChB;IACA;IACA,QAAQ;IACR,aAAa,KAAK,KAAK;IACxB;AACD,SAAM,MAAM,KAAK,KAAK;AACtB,aAAU,MAAM;AAChB,SAAM,cAAc,kBAAkB,KAAK;AAC3C,UAAO;;EAET,KAAK,YAAY;GACf,MAAM,OAAO,SAAS,OAAO,MAAM,WAAW;AAC9C,OAAI,CAAC,KAAM,QAAO;AAClB,QAAK,SAAS,MAAM,UAAU,UAAU;AACxC,QAAK,gBAAgB,MAAM;AAC3B,QAAK,QAAQ,MAAM;AACnB,OAAI,KAAK,eAAe,KAAM,MAAK,aAAa,KAAK,KAAK,GAAG,KAAK;AAClE,OAAI,MAAM,gBAAgB,kBAAkB,KAAK,CAC/C,OAAM,cAAc,KAAA;AAEtB,UAAO;;EAET,KAAK;AACH,SAAM,YAAY,MAAM;AACxB,SAAM,gBAAgB,MAAM;AAC5B,UAAO;EAET,KAAK;AACH,OAAI,CAAC,MAAM,MAAO,QAAO;AACzB,SAAM,aAAa,iBAAiB,MAAM,YAAY,MAAM,MAAM;AAClE,UAAO;EAET,KAAK;AACH,OAAI,CAAC,MAAM,MAAO,QAAO;AACzB,SAAM,aAAa,iBAAiB,MAAM,YAAY,MAAM,MAAM;AAClE,UAAO;EAET,QACE,QAAO;;;AAIb,SAAS,SAAS,OAA8B,IAA2C;AACzF,QAAO,MAAM,OAAO,MAAM,MAAM,EAAE,OAAO,GAAG;;AAG9C,SAAS,kBAAkB,MAAiC;AAC1D,QAAO,KAAK,SAAS,GAAG,KAAK,MAAM,IAAI,KAAK,WAAW,KAAK;;AAG9D,SAAS,UAAU,OAAoC;AACrD,KAAI,CAAC,MAAM,SAAS,MAAM,MAAM,UAAU,UAAW;AACrD,OAAM,QAAQ,MAAM,MAAM,MAAM,CAAC,UAAU;;AAG7C,SAAS,iBAAiB,UAA8B,OAAuB;CAC7E,MAAM,QAAQ,YAAY,MAAM;AAChC,KAAI,KAAK,UAAU,gBAAiB,QAAO;AAC3C,QAAO,KAAK,MAAM,CAAC,gBAAgB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../../src/agent/workflow/builtins/index.ts"],"sourcesContent":["import type { WorkflowDefinition, WorkflowDefinitionEstimatedAgents, WorkflowGraph } from '../../../workflows/domain/definition.js';\nimport { buildWorkflowDefinition } from '../../../workflows/domain/definition-utils.js';\n\ninterface BuiltinWorkflowSpec {\n name: string;\n description: string;\n whenToUse: string;\n tags: string[];\n perspectives: Array<{ title: string; focus: string }>;\n}\n\nconst BUILTIN_SPECS: BuiltinWorkflowSpec[] = [\n { name: 'audit_repo', description: 'Audit a repository across architecture, quality, security, and operations, then produce a prioritized report.', whenToUse: 'Use for a thorough review of a repository or major subsystem.', tags: ['code-review', 'audit'], perspectives: perspectives('Architecture and boundaries', 'Correctness and maintainability', 'Security and operations') },\n { name: 'client_proposal', description: 'Turn a client brief into a clear proposal covering scope, delivery, pricing logic, and risks.', whenToUse: 'Use when preparing a client-ready proposal or statement of work.', tags: ['writing', 'content', 'document'], perspectives: perspectives('Client goals and value', 'Scope and delivery plan', 'Commercial terms and risks') },\n { name: 'competitor_scan', description: 'Compare competitors and identify positioning, pricing, and differentiation opportunities.', whenToUse: 'Use before positioning, pricing, or go-to-market decisions.', tags: ['research', 'investigation'], perspectives: perspectives('Product and audience', 'Pricing and distribution', 'Differentiation and gaps') },\n { name: 'content_draft', description: 'Draft polished content from multiple audience and tone perspectives, then select the strongest version.', whenToUse: 'Use for emails, posts, announcements, documentation, or other non-code writing.', tags: ['writing', 'content', 'communication'], perspectives: perspectives('Audience clarity', 'Narrative and tone', 'Conversion and call to action') },\n { name: 'content_repurpose', description: 'Turn one source into channel-specific content without losing the core message.', whenToUse: 'Use when adapting existing material for multiple platforms.', tags: ['writing', 'content'], perspectives: perspectives('Short social format', 'Professional long-form format', 'Video or newsletter format') },\n { name: 'debug_incident', description: 'Triage an incident using independent hypotheses and produce ranked causes and verification steps.', whenToUse: 'Use for bugs, crashes, error messages, and unexpected behavior.', tags: ['debug', 'incident', 'troubleshooting'], perspectives: perspectives('Application behavior', 'Data and dependencies', 'Infrastructure and observability') },\n { name: 'decision_compare', description: 'Compare options through independent criteria and recommend with explicit trade-offs.', whenToUse: 'Use for decisions with multiple viable choices.', tags: ['decision-making', 'comparison', 'productivity'], perspectives: perspectives('Benefits and upside', 'Risks and hidden cost', 'Fit with constraints') },\n { name: 'implementation_plan', description: 'Convert a feature, refactor, or bugfix request into an actionable implementation plan.', whenToUse: 'Use before multi-file or unfamiliar code changes.', tags: ['planning', 'implementation', 'architecture'], perspectives: perspectives('Existing architecture', 'Implementation sequence', 'Testing and rollout risks') },\n { name: 'inbox_triage', description: 'Sort messy inbox input into do, delegate, defer, and drop with clear priorities.', whenToUse: 'Use to plan a day from mixed messages and tasks.', tags: ['productivity', 'brainstorm'], perspectives: perspectives('Urgency and impact', 'Delegation and automation', 'Scheduling and elimination') },\n { name: 'meeting_prep', description: 'Build meeting context, a focused agenda, and prioritized talking points.', whenToUse: 'Use before an important meeting.', tags: ['meeting', 'productivity'], perspectives: perspectives('Context and stakeholders', 'Agenda and decisions', 'Questions and key messages') },\n { name: 'multi_perspective_review', description: 'Stress-test a target from user, operator, and maintainer perspectives.', whenToUse: 'Use before committing to a design, plan, pull request, or proposal.', tags: ['review', 'planning', 'decision'], perspectives: perspectives('User experience and accessibility', 'Operational failure modes', 'Maintainability and hidden assumptions') },\n { name: 'offer_design', description: 'Package expertise into sellable offers with tiers, pricing, boundaries, and positioning.', whenToUse: 'Use when productizing a service or subscription.', tags: ['planning', 'architecture'], perspectives: perspectives('Customer problem and outcome', 'Packaging and delivery boundaries', 'Pricing and positioning') },\n { name: 'pr_review', description: 'Review a change set with focused reviewers and produce a ship or block verdict.', whenToUse: 'Use for a pull request, diff, or commit range.', tags: ['code-review', 'pr'], perspectives: perspectives('Correctness and regressions', 'Security and performance', 'Tests and maintainability') },\n { name: 'release_check', description: 'Assess release readiness through parallel risk checks and a go or no-go verdict.', whenToUse: 'Use before shipping a completed change.', tags: ['release', 'quality', 'validation'], perspectives: perspectives('Product behavior', 'Quality and regression risk', 'Operations and rollback') },\n { name: 'research', description: 'Research a question from multiple angles and produce a source-conscious synthesis.', whenToUse: 'Use for non-trivial questions that benefit from independent investigation.', tags: ['research', 'investigation'], perspectives: perspectives('Primary evidence and facts', 'Alternative explanations', 'Practical implications') },\n { name: 'weekly_review', description: 'Review the week and produce a short, prioritized action plan for next week.', whenToUse: 'Use for a weekly retrospective and planning session.', tags: ['productivity', 'brainstorm'], perspectives: perspectives('Outcomes and progress', 'Friction and unfinished work', 'Priorities and capacity') },\n];\n\nexport const BUILTIN_WORKFLOWS: readonly WorkflowDefinition[] = Object.freeze(\n BUILTIN_SPECS.map((spec) => createBuiltinWorkflow(spec)),\n);\n\nfunction createBuiltinWorkflow(spec: BuiltinWorkflowSpec): WorkflowDefinition {\n const graph = createParallelGraph(spec);\n const estimatedAgents: WorkflowDefinitionEstimatedAgents = {\n min: spec.perspectives.length + 1,\n max: spec.perspectives.length + 1,\n };\n return buildWorkflowDefinition({\n name: spec.name,\n source: 'builtin',\n graph,\n manifest: {\n description: spec.description,\n whenToUse: spec.whenToUse,\n tags: spec.tags,\n estimatedAgents,\n inputSchema: { type: 'object', additionalProperties: true },\n },\n phases: [\n { id: 'explore', title: 'Explore' },\n { id: 'synthesize', title: 'Synthesize' },\n ],\n });\n}\n\nfunction createParallelGraph(spec: BuiltinWorkflowSpec): WorkflowGraph {\n const analystNodes = spec.perspectives.map((perspective, index) => ({\n id: `perspective-${index + 1}`,\n kind: 'agent' as const,\n title: perspective.title,\n description: perspective.focus,\n phaseId: 'explore',\n position: { x: 360, y: 80 + index * 180 },\n config: {\n prompt: `Goal: {{goal}}\\nInput: {{input}}\\n\\nAnalyze this from the following perspective: ${perspective.focus}\\nReturn concrete findings, evidence, risks, and recommended actions.`,\n maxIterations: 12,\n },\n }));\n return {\n schemaVersion: 1,\n nodes: [\n { id: 'input', kind: 'input', title: 'User input', position: { x: 40, y: 260 }, config: {} },\n ...analystNodes,\n { id: 'merge', kind: 'merge', title: 'Combine findings', phaseId: 'synthesize', position: { x: 700, y: 260 }, config: { mode: 'object' } },\n {\n id: 'synthesis',\n kind: 'agent',\n title: 'Create final answer',\n phaseId: 'synthesize',\n position: { x: 980, y: 260 },\n config: {\n prompt: `Goal: {{goal}}\\n\\nIndependent findings:\\n{{predecessors.merge}}\\n\\nSynthesize a decision-ready answer. Resolve conflicts, prioritize the most important points, and end with specific next actions.`,\n maxIterations: 12,\n },\n },\n { id: 'output', kind: 'output', title: 'Result', position: { x: 1280, y: 260 }, config: { title: 'Final result' } },\n ],\n edges: [\n ...analystNodes.map((node, index) => ({ id: `input-${index + 1}`, source: 'input', target: node.id })),\n ...analystNodes.map((node, index) => ({ id: `perspective-${index + 1}-merge`, source: node.id, target: 'merge' })),\n { id: 'merge-synthesis', source: 'merge', target: 'synthesis' },\n { id: 'synthesis-output', source: 'synthesis', target: 'output' },\n ],\n };\n}\n\nfunction perspectives(first: string, second: string, third: string): Array<{ title: string; focus: string }> {\n return [first, second, third].map((title) => ({ title, focus: title }));\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"catalog.js","names":[],"sources":["../../../../src/agent/workflow/catalog.ts"],"sourcesContent":["import { existsSync, mkdirSync, readdirSync, readFileSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync } from 'node:fs';\nimport { randomUUID } from 'node:crypto';\nimport { join } from 'node:path';\n\nimport type { WorkflowDefinition, WorkflowDefinitionManifest, WorkflowGraph } from '../../workflows/domain/definition.js';\nimport { buildWorkflowDefinition } from '../../workflows/domain/definition-utils.js';\nimport { validateWorkflowGraph } from '../../workflows/domain/validation.js';\nimport { resolveStateDir } from '../../config/paths-state.js';\n\nimport { BUILTIN_WORKFLOWS } from './builtins/index.js';\n\nexport type WorkflowSource = 'user' | 'builtin';\n\nexport interface CatalogEntry {\n name: string;\n source: WorkflowSource;\n path: string | null;\n description: string;\n title: string;\n version: string;\n revision: number;\n whenToUse?: string;\n tags?: string[];\n estimatedAgents?: { min: number; max: number };\n}\n\nexport interface SaveWorkflowInput {\n name: string;\n graph: WorkflowGraph;\n manifest?: WorkflowDefinitionManifest;\n expectedRevision?: number;\n intent?: 'create' | 'update';\n}\n\nexport interface WorkflowRevisionSummary {\n revision: number;\n title: string;\n contentHash?: string;\n createdAtMs: number;\n}\n\nexport interface WorkflowCatalog {\n list(): CatalogEntry[];\n load(name: string): WorkflowDefinition;\n save(input: SaveWorkflowInput): { path: string; definition: WorkflowDefinition };\n listRevisions(name: string): WorkflowRevisionSummary[];\n loadRevision(name: string, revision: number): WorkflowDefinition;\n restore(name: string, revision: number, expectedRevision: number): { path: string; definition: WorkflowDefinition };\n remove(name: string): boolean;\n userDir: string;\n}\n\nconst NAME_RE = /^[a-z][a-z0-9_-]*$/;\n\nexport function createWorkflowCatalog(opts: { userDir?: string } = {}): WorkflowCatalog {\n const userDir = opts.userDir ?? defaultUserDir();\n\n const loadUser = (name: string): WorkflowDefinition | null => {\n const path = join(userDir, `${name}.json`);\n if (!existsSync(path)) return null;\n const parsed = JSON.parse(readFileSync(path, 'utf-8')) as WorkflowDefinition;\n assertStoredDefinition(parsed, name, path);\n return parsed;\n };\n\n const list = (): CatalogEntry[] => {\n const definitions = new Map<string, { definition: WorkflowDefinition; path: string | null }>();\n for (const definition of BUILTIN_WORKFLOWS) definitions.set(definition.name, { definition, path: null });\n for (const name of listUserNames(userDir)) {\n try {\n const definition = loadUser(name);\n if (definition) definitions.set(name, { definition, path: join(userDir, `${name}.json`) });\n } catch {\n // Invalid files are not addressable workflows.\n }\n }\n return [...definitions.values()]\n .map(({ definition, path }) => toCatalogEntry(definition, path))\n .sort((left, right) => left.name.localeCompare(right.name));\n };\n\n const load = (name: string): WorkflowDefinition => {\n requireValidName(name);\n const user = loadUser(name);\n if (user) return structuredClone(user);\n const builtin = BUILTIN_WORKFLOWS.find((definition) => definition.name === name);\n if (builtin) return structuredClone(builtin);\n throw new Error(`workflow not found: ${name}`);\n };\n\n const save = (input: SaveWorkflowInput): { path: string; definition: WorkflowDefinition } => {\n const name = input.name.trim();\n requireValidName(name);\n const validation = validateWorkflowGraph(input.graph);\n if (!validation.valid) throw new Error(validation.errors.map((issue) => issue.message).join(' '));\n const existing = loadUser(name);\n const builtin = BUILTIN_WORKFLOWS.find((definition) => definition.name === name);\n if (input.intent === 'create' && (existing || builtin)) {\n throw new WorkflowNameConflictError(name, existing?.revision ?? builtin?.revision ?? 0);\n }\n if (input.expectedRevision !== undefined && input.expectedRevision !== (existing?.revision ?? 0)) {\n throw new WorkflowRevisionConflictError(existing?.revision ?? 0);\n }\n const definition = buildWorkflowDefinition({\n name,\n source: 'user',\n graph: input.graph,\n manifest: input.manifest,\n revision: (existing?.revision ?? 0) + 1,\n createdAtMs: existing?.metadata.createdAtMs,\n });\n if (!existsSync(userDir)) mkdirSync(userDir, { recursive: true });\n const path = join(userDir, `${name}.json`);\n const revisionsDir = join(userDir, '.revisions', name);\n mkdirSync(revisionsDir, { recursive: true });\n writeJsonAtomic(join(revisionsDir, `${definition.revision}.json`), definition);\n writeJsonAtomic(path, definition);\n return { path, definition };\n };\n\n const listRevisions = (name: string): WorkflowRevisionSummary[] => {\n requireValidName(name);\n const dir = join(userDir, '.revisions', name);\n if (!existsSync(dir)) return [];\n return readdirSync(dir)\n .filter((file) => /^\\d+\\.json$/.test(file))\n .map((file): WorkflowRevisionSummary | null => {\n try {\n const definition = JSON.parse(readFileSync(join(dir, file), 'utf-8')) as WorkflowDefinition;\n assertStoredDefinition(definition, name, join(dir, file));\n return { revision: definition.revision, title: definition.title, contentHash: definition.contentHash, createdAtMs: definition.metadata.updatedAtMs };\n } catch {\n return null;\n }\n })\n .filter((item): item is WorkflowRevisionSummary => item !== null)\n .sort((left, right) => right.revision - left.revision);\n };\n\n const loadRevision = (name: string, revision: number): WorkflowDefinition => {\n requireValidName(name);\n if (!Number.isSafeInteger(revision) || revision < 1) throw new Error('invalid workflow revision');\n const path = join(userDir, '.revisions', name, `${revision}.json`);\n if (!existsSync(path)) throw new Error(`workflow revision not found: ${name}@${revision}`);\n const definition = JSON.parse(readFileSync(path, 'utf-8')) as WorkflowDefinition;\n assertStoredDefinition(definition, name, path);\n return structuredClone(definition);\n };\n\n const restore = (name: string, revision: number, expectedRevision: number) => {\n const selected = loadRevision(name, revision);\n return save({ name, graph: selected.graph, manifest: definitionToManifest(selected), expectedRevision });\n };\n\n const remove = (name: string): boolean => {\n requireValidName(name);\n const path = join(userDir, `${name}.json`);\n if (!existsSync(path)) return false;\n unlinkSync(path);\n const revisionsDir = join(userDir, '.revisions', name);\n if (existsSync(revisionsDir)) rmSync(revisionsDir, { recursive: true, force: true });\n return true;\n };\n\n return { list, load, save, listRevisions, loadRevision, restore, remove, userDir };\n}\n\nexport class WorkflowRevisionConflictError extends Error {\n constructor(readonly currentRevision: number) {\n super(`workflow revision conflict; current revision is ${currentRevision}`);\n this.name = 'WorkflowRevisionConflictError';\n }\n}\n\nexport class WorkflowNameConflictError extends Error {\n constructor(readonly workflowName: string, readonly currentRevision: number) {\n super(`workflow name already exists: ${workflowName}`);\n this.name = 'WorkflowNameConflictError';\n }\n}\n\nexport function defaultUserDir(): string {\n return join(resolveStateDir(), 'workflows');\n}\n\nfunction listUserNames(dir: string): string[] {\n try {\n if (!existsSync(dir) || !statSync(dir).isDirectory()) return [];\n return readdirSync(dir)\n .filter((file) => file.endsWith('.json'))\n .map((file) => file.slice(0, -5))\n .filter((name) => NAME_RE.test(name));\n } catch {\n return [];\n }\n}\n\nfunction assertStoredDefinition(value: WorkflowDefinition, name: string, path: string): void {\n if (!value || typeof value !== 'object' || value.name !== name || value.metadata?.source !== 'user') {\n throw new Error(`invalid workflow definition: ${path}`);\n }\n const validation = validateWorkflowGraph(value.graph);\n if (!validation.valid) throw new Error(`invalid workflow graph: ${path}`);\n}\n\nfunction toCatalogEntry(definition: WorkflowDefinition, path: string | null): CatalogEntry {\n return {\n name: definition.name,\n source: definition.metadata.source,\n path,\n description: definition.description,\n title: definition.title,\n version: definition.version,\n revision: definition.revision,\n whenToUse: definition.metadata.whenToUse,\n tags: definition.metadata.tags,\n estimatedAgents: definition.metadata.estimatedAgents,\n };\n}\n\nfunction requireValidName(name: string): void {\n if (!NAME_RE.test(name)) throw new Error(`invalid workflow name \"${name}\"; use lowercase letters, numbers, underscores, or hyphens`);\n}\n\nfunction writeJsonAtomic(path: string, value: unknown): void {\n const temporaryPath = `${path}.${randomUUID()}.tmp`;\n writeFileSync(temporaryPath, `${JSON.stringify(value, null, 2)}\\n`, 'utf-8');\n renameSync(temporaryPath, path);\n}\n\nfunction definitionToManifest(definition: WorkflowDefinition): WorkflowDefinitionManifest {\n return {\n title: definition.title,\n description: definition.description,\n version: definition.version,\n inputSchema: definition.inputSchema,\n outputSchema: definition.outputSchema,\n defaults: definition.defaults,\n tags: definition.metadata.tags,\n whenToUse: definition.metadata.whenToUse,\n estimatedAgents: definition.metadata.estimatedAgents,\n examplePrompts: definition.metadata.examplePrompts,\n i18n: definition.metadata.i18n,\n permissions: definition.permissions,\n resources: definition.resources,\n connectors: definition.connectors,\n };\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"progress-broker.js","names":[],"sources":["../../../../src/agent/workflow/progress-broker.ts"],"sourcesContent":["/**\n * WorkflowProgressBroker — the single seam that turns mid-run `workflow`\n * snapshots into IM messages (Telegram today, more channels later).\n *\n * Architecture:\n *\n * pi-agent ──tool_execution_update──▶ AgentEventHandler / SessionEventBus\n * │\n * attachTo(handler) │\n * ▼\n * WorkflowProgressBroker\n * │\n * per-(sessionKey, toolCallId) state\n * │\n * ┌───────────────────┼───────────────────┐\n * ▼ ▼ ▼\n * Telegram cap Feishu cap WeChat cap\n *\n * Why broker + capability instead of \"each channel subscribes the bus\"?\n * - DRY snapshot aggregation and key-event detection.\n * - Per-channel throttling is enforced by the broker, so a slow / rate-limited\n * channel can't block a fast one.\n * - Adding a new channel = one capability + one register call. Broker code\n * never grows.\n */\n\nimport type { AgentEvent } from '@earendil-works/pi-agent-core';\n\nimport { createLogger } from '../../utils/logger.js';\nimport type { Config } from '../../config/schema.js';\n\nimport type {\n ChannelProgressCapability,\n WorkflowProgressMode,\n} from './channel-capability.js';\nimport { renderWorkflowText } from './snapshot.js';\nimport type { WorkflowAgentSnapshot, WorkflowSnapshot } from './types.js';\n\nconst log = createLogger('Agent:WorkflowProgress');\n\nconst WORKFLOW_TOOL_NAME = 'workflow';\nconst RENDER_MAX_AGENTS_PER_PHASE = 4;\nconst RENDER_MAX_LOGS = 2;\n\n/** Per-channel resolved settings after applying config overrides on capability defaults. */\ninterface ChannelResolvedSettings {\n enabled: boolean;\n throttleMs: number;\n mode: WorkflowProgressMode;\n}\n\n/** Per-(sessionKey, toolCallId) progress state. */\ninterface RunState {\n /** Latest snapshot seen for this run. Always overwritten on update. */\n snapshot: WorkflowSnapshot;\n /** Previous snapshot used to detect \"key events\" (phase change, new errors). */\n prevSnapshot?: WorkflowSnapshot;\n /** Per-channel last-send bookkeeping. */\n perChannel: Map<string, ChannelRunState>;\n}\n\ninterface ChannelRunState {\n /** Server timestamp of the last successful postProgress. */\n lastSentAt: number;\n /** Returned messageId of the last successful postProgress — drives edit mode. */\n lastMessageId?: string;\n /** Pending timer id (Node `setTimeout`) when a throttled flush is scheduled. */\n pendingTimer?: ReturnType<typeof setTimeout>;\n /** Inflight `postProgress` promise; we serialise per-(state, channel) to avoid race. */\n inflight?: Promise<void>;\n}\n\nexport interface BrokerListenerHandle {\n /** Detach broker from the session bus and clear all in-flight state. */\n dispose(): void;\n}\n\n/**\n * Tiny façade onto the AgentEventHandler. We don't import the concrete class to\n * keep this module test-friendly — a stub listener pump is fine for unit tests.\n */\nexport interface SessionBusLike {\n registerListener(\n type: AgentEvent['type'] | 'all',\n listener: (event: AgentEvent, context: { sessionKey: string }) => void,\n ): () => void;\n}\n\nexport class WorkflowProgressBroker {\n private subscribers: ChannelProgressCapability[] = [];\n private states = new Map<string, RunState>();\n /** Now() factory — overridable in tests for deterministic time. */\n private readonly now: () => number;\n /** Cached resolved settings per (channelId), invalidated on registration. */\n private resolved = new Map<string, ChannelResolvedSettings>();\n\n constructor(\n private readonly opts: {\n getConfig?: () => Config | undefined;\n now?: () => number;\n } = {},\n ) {\n this.now = opts.now ?? (() => Date.now());\n }\n\n // ── Registration ────────────────────────────────────────────────────────────\n\n registerChannel(cap: ChannelProgressCapability): () => void {\n if (this.subscribers.some((s) => s.channelId === cap.channelId)) {\n log.warn({ channelId: cap.channelId }, 'channel capability already registered; replacing');\n this.subscribers = this.subscribers.filter((s) => s.channelId !== cap.channelId);\n }\n this.subscribers.push(cap);\n this.resolved.delete(cap.channelId);\n return () => {\n this.subscribers = this.subscribers.filter((s) => s !== cap);\n this.resolved.delete(cap.channelId);\n };\n }\n\n attachTo(bus: SessionBusLike): BrokerListenerHandle {\n const offUpdate = bus.registerListener('tool_execution_update', (event, ctx) => {\n const e = event as Extract<AgentEvent, { type: 'tool_execution_update' }>;\n if (e.toolName !== WORKFLOW_TOOL_NAME) return;\n const snap = extractWorkflowSnapshot(e.partialResult);\n if (!snap) return;\n this.onUpdate(ctx.sessionKey, e.toolCallId, snap);\n });\n\n const offEnd = bus.registerListener('tool_execution_end', (event, ctx) => {\n const e = event as Extract<AgentEvent, { type: 'tool_execution_end' }>;\n if (e.toolName !== WORKFLOW_TOOL_NAME) return;\n // tool_end ships the final envelope in `result`; reach in for the\n // authoritative snapshot (durationMs / result / final counts).\n const snap = extractWorkflowSnapshot(e.result, { fromResultEnvelope: true });\n this.onEnd(ctx.sessionKey, e.toolCallId, snap);\n });\n\n return {\n dispose: () => {\n offUpdate();\n offEnd();\n this.disposeAllPending();\n },\n };\n }\n\n // ── Core state machine ──────────────────────────────────────────────────────\n\n /** Visible for tests — direct entry path bypassing the SessionBus glue. */\n onUpdate(sessionKey: string, toolCallId: string, snapshot: WorkflowSnapshot): void {\n const key = stateKey(sessionKey, toolCallId);\n const state = this.getOrCreateState(key, snapshot);\n state.prevSnapshot = state.snapshot;\n state.snapshot = snapshot;\n\n const isKey = isKeyEvent(state.prevSnapshot, snapshot);\n for (const cap of this.subscribers) {\n this.dispatchToChannel(state, sessionKey, cap, { isFinal: false, isKey });\n }\n }\n\n /** Visible for tests — direct entry path bypassing the SessionBus glue. */\n onEnd(sessionKey: string, toolCallId: string, snapshot: WorkflowSnapshot | null): void {\n const key = stateKey(sessionKey, toolCallId);\n const state = this.states.get(key);\n if (!state) return;\n if (snapshot) state.snapshot = snapshot;\n\n for (const cap of this.subscribers) {\n // Always flush the final message — bypass throttle and any pending timer.\n this.cancelPending(state, cap.channelId);\n this.dispatchToChannel(state, sessionKey, cap, { isFinal: true, isKey: true });\n }\n // State is GC'd lazily after a small grace period so any straggler\n // `update` event arriving after `end` is silently dropped (instead of\n // resurrecting the run).\n setTimeout(() => this.states.delete(key), 2_000);\n }\n\n // ── Dispatch + throttle ─────────────────────────────────────────────────────\n\n private dispatchToChannel(\n state: RunState,\n sessionKey: string,\n cap: ChannelProgressCapability,\n flags: { isFinal: boolean; isKey: boolean },\n ): void {\n const cfg = this.resolveChannelSettings(cap);\n if (!cfg.enabled) return;\n if (cfg.mode === 'final-only' && !flags.isFinal) return;\n\n const chState = this.getOrCreateChannelState(state, cap.channelId);\n\n // Key events and the final message bypass throttle.\n if (flags.isFinal || flags.isKey) {\n this.cancelPending(state, cap.channelId);\n void this.sendNow(state, sessionKey, cap, cfg, flags.isFinal);\n return;\n }\n\n const elapsed = this.now() - chState.lastSentAt;\n const wait = Math.max(0, cfg.throttleMs - elapsed);\n if (wait === 0) {\n void this.sendNow(state, sessionKey, cap, cfg, false);\n return;\n }\n if (chState.pendingTimer) return; // already scheduled; latest snapshot will be picked up\n chState.pendingTimer = setTimeout(() => {\n chState.pendingTimer = undefined;\n void this.sendNow(state, sessionKey, cap, cfg, false);\n }, wait);\n }\n\n private async sendNow(\n state: RunState,\n sessionKey: string,\n cap: ChannelProgressCapability,\n cfg: ChannelResolvedSettings,\n isFinal: boolean,\n ): Promise<void> {\n const chState = this.getOrCreateChannelState(state, cap.channelId);\n // Serialise per-channel sends so a slow editMessage call doesn't get\n // overtaken by a faster one and leave the bubble out of order.\n if (chState.inflight) await chState.inflight.catch(() => undefined);\n\n const text = renderWorkflowText(state.snapshot, isFinal, {\n maxAgentsPerPhase: RENDER_MAX_AGENTS_PER_PHASE,\n maxLogs: RENDER_MAX_LOGS,\n showResultPreviews: isFinal,\n });\n\n const previousMessageId = cfg.mode === 'edit' ? chState.lastMessageId : undefined;\n const task = cap\n .postProgress({ sessionKey, text, previousMessageId, isFinal, mode: cfg.mode })\n .then((r) => {\n chState.lastMessageId = r.messageId;\n chState.lastSentAt = this.now();\n })\n .catch((err) => {\n const msg = err instanceof Error ? err.message : String(err);\n log.warn(\n { err, errorMessage: msg, channelId: cap.channelId, sessionKey },\n `workflow progress postProgress failed: ${msg}`,\n );\n })\n .finally(() => {\n chState.inflight = undefined;\n });\n\n chState.inflight = task;\n await task;\n }\n\n private cancelPending(state: RunState, channelId: string): void {\n const chState = state.perChannel.get(channelId);\n if (chState?.pendingTimer) {\n clearTimeout(chState.pendingTimer);\n chState.pendingTimer = undefined;\n }\n }\n\n private disposeAllPending(): void {\n for (const state of this.states.values()) {\n for (const ch of state.perChannel.values()) {\n if (ch.pendingTimer) clearTimeout(ch.pendingTimer);\n }\n }\n this.states.clear();\n }\n\n // ── State helpers ───────────────────────────────────────────────────────────\n\n private getOrCreateState(key: string, snapshot: WorkflowSnapshot): RunState {\n let state = this.states.get(key);\n if (!state) {\n state = { snapshot, perChannel: new Map() };\n this.states.set(key, state);\n }\n return state;\n }\n\n private getOrCreateChannelState(state: RunState, channelId: string): ChannelRunState {\n let ch = state.perChannel.get(channelId);\n if (!ch) {\n ch = { lastSentAt: 0 };\n state.perChannel.set(channelId, ch);\n }\n return ch;\n }\n\n /** Resolved (enabled / throttleMs / mode) for a channel, with config overrides. */\n private resolveChannelSettings(cap: ChannelProgressCapability): ChannelResolvedSettings {\n const cached = this.resolved.get(cap.channelId);\n if (cached) return cached;\n const override = readChannelConfig(this.opts.getConfig?.(), cap.channelId);\n const resolved: ChannelResolvedSettings = {\n enabled: override?.enabled ?? true,\n throttleMs: override?.throttleMs ?? cap.defaultThrottleMs,\n mode: override?.mode ?? cap.defaultMode,\n };\n this.resolved.set(cap.channelId, resolved);\n return resolved;\n }\n\n /** Drop any cached config so the next dispatch re-reads. Call after config reload. */\n invalidateConfigCache(): void {\n this.resolved.clear();\n }\n\n // ── Test introspection ──────────────────────────────────────────────────────\n\n /** @internal — for tests only. */\n _stateCount(): number {\n return this.states.size;\n }\n}\n\n// ── Singleton ───────────────────────────────────────────────────────────────\n\nlet singleton: WorkflowProgressBroker | null = null;\n\n/**\n * Process-wide broker singleton. Channels register against this one; the\n * service wires it to the session bus during startup.\n */\nexport function getWorkflowProgressBroker(): WorkflowProgressBroker {\n if (!singleton) singleton = new WorkflowProgressBroker();\n return singleton;\n}\n\n/** Test-only — reset the singleton between cases. */\nexport function _resetWorkflowProgressBrokerForTests(): void {\n singleton = null;\n}\n\n// ── Pure helpers ────────────────────────────────────────────────────────────\n\nfunction stateKey(sessionKey: string, toolCallId: string | undefined): string {\n return `${sessionKey}\u0001${toolCallId ?? ''}`;\n}\n\n/**\n * Compare two snapshots and decide whether the new one is \"key\" — i.e. worth\n * bypassing the per-channel throttle. Anything visible to the user as a\n * progress milestone qualifies; counts ticking by alone do not.\n */\nfunction isKeyEvent(prev: WorkflowSnapshot | undefined, next: WorkflowSnapshot): boolean {\n if (!prev) return true; // first update of the run\n if (prev.currentPhase !== next.currentPhase) return true;\n if (next.errorCount > prev.errorCount) return true;\n if (next.skippedCount > prev.skippedCount) return true;\n // New phase row in the rollup (declared via `phase(...)` mid-run)\n if (prev.phases.length !== next.phases.length) return true;\n if (hasNewFailedAgent(prev.agents, next.agents)) return true;\n return false;\n}\n\nfunction hasNewFailedAgent(\n prev: WorkflowAgentSnapshot[],\n next: WorkflowAgentSnapshot[],\n): boolean {\n const prevBad = new Set(\n prev.filter((a) => a.status === 'error' || a.status === 'skipped').map((a) => a.id),\n );\n for (const a of next) {\n if ((a.status === 'error' || a.status === 'skipped') && !prevBad.has(a.id)) return true;\n }\n return false;\n}\n\n/**\n * Pull a {@link WorkflowSnapshot} out of an AgentToolResult-shaped value.\n * Returns null when the payload is not snapshot-shaped (text-only updates,\n * non-workflow tools, etc.).\n *\n * `fromResultEnvelope = true` (used for `tool_end.result`) tolerates the\n * `{ content, details }` wrapper.\n */\nfunction extractWorkflowSnapshot(\n payload: unknown,\n opts: { fromResultEnvelope?: boolean } = {},\n): WorkflowSnapshot | null {\n if (!payload || typeof payload !== 'object') return null;\n const rec = payload as Record<string, unknown>;\n if (opts.fromResultEnvelope) {\n const details = rec.details;\n if (details && typeof details === 'object') return coerce(details);\n return null;\n }\n if ('details' in rec) {\n const details = rec.details;\n if (details && typeof details === 'object') return coerce(details);\n return null;\n }\n return coerce(rec);\n}\n\nfunction coerce(value: unknown): WorkflowSnapshot | null {\n if (!value || typeof value !== 'object') return null;\n const rec = value as Record<string, unknown>;\n if (typeof rec.name !== 'string') return null;\n if (!Array.isArray(rec.agents)) return null;\n return value as WorkflowSnapshot;\n}\n\nfunction readChannelConfig(\n config: Config | undefined,\n channelId: string,\n): { enabled?: boolean; throttleMs?: number; mode?: WorkflowProgressMode } | undefined {\n const channels = config?.channels as Record<string, unknown> | undefined;\n if (!channels) return undefined;\n const cfg = channels[channelId];\n if (!cfg || typeof cfg !== 'object') return undefined;\n const wf = (cfg as { workflowProgress?: unknown }).workflowProgress;\n if (!wf || typeof wf !== 'object') return undefined;\n return wf as { enabled?: boolean; throttleMs?: number; mode?: WorkflowProgressMode };\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"snapshot-empty.js","names":[],"sources":["../../../../src/agent/workflow/snapshot-empty.ts"],"sourcesContent":["import type { WorkflowSnapshot } from './types.js';\n\nexport function emptySnapshotFor(\n name: string,\n description?: string,\n phaseTitles?: string[],\n): WorkflowSnapshot {\n return {\n name,\n description,\n phases: phaseTitles ? [...phaseTitles] : [],\n logs: [],\n agents: [],\n agentCount: 0,\n runningCount: 0,\n doneCount: 0,\n errorCount: 0,\n skippedCount: 0,\n };\n}\n"],"mappings":";AAEA,SAAgB,iBACd,MACA,aACA,aACkB;AAClB,QAAO;EACL;EACA;EACA,QAAQ,cAAc,CAAC,GAAG,YAAY,GAAG,EAAE;EAC3C,MAAM,EAAE;EACR,QAAQ,EAAE;EACV,YAAY;EACZ,cAAc;EACd,WAAW;EACX,YAAY;EACZ,cAAc;EACf"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"snapshot.js","names":[],"sources":["../../../../src/agent/workflow/snapshot.ts"],"sourcesContent":["/**\n * Workflow progress snapshot model + text renderers.\n *\n * The runtime emits per-event callbacks (`onPhase`, `onAgentStart`, `onAgentEnd`,\n * `onLog`). The workflow tool wraps those callbacks to mutate a snapshot and push\n * a text rendering through `onUpdate` — keeping TUI / Gateway / IM consumers in\n * lock-step from a single source of truth.\n */\n\nimport type {\n WorkflowAgentSnapshot,\n WorkflowAgentStatus,\n WorkflowSnapshotDefinition,\n WorkflowSnapshot,\n} from './types.js';\nimport { emptySnapshotFor } from './snapshot-empty.js';\n\nexport function createWorkflowSnapshot(definition: WorkflowSnapshotDefinition): WorkflowSnapshot {\n return emptySnapshotFor(\n definition.name,\n definition.description,\n definition.phases?.map((phase) => phase.title),\n );\n}\n\nexport function recomputeCounts(snapshot: WorkflowSnapshot): void {\n let running = 0;\n let done = 0;\n let error = 0;\n let skipped = 0;\n for (const agent of snapshot.agents) {\n switch (agent.status) {\n case 'running':\n running++;\n break;\n case 'done':\n done++;\n break;\n case 'error':\n error++;\n break;\n case 'skipped':\n skipped++;\n break;\n }\n }\n snapshot.agentCount = snapshot.agents.length;\n snapshot.runningCount = running;\n snapshot.doneCount = done;\n snapshot.errorCount = error;\n snapshot.skippedCount = skipped;\n}\n\nexport interface RenderOptions {\n maxAgentsPerPhase?: number;\n maxLogs?: number;\n showResultPreviews?: boolean;\n}\n\nexport type WorkflowPanelStatus =\n | 'queued'\n | 'running'\n | 'succeeded'\n | 'failed'\n | 'cancelled'\n | 'timeout'\n | string;\n\nexport interface WorkflowPanelOptions {\n status?: WorkflowPanelStatus;\n maxActiveAgents?: number;\n maxRecentAgents?: number;\n maxErrors?: number;\n nowMs?: number;\n}\n\nexport function renderWorkflowText(\n snapshot: WorkflowSnapshot,\n completed = false,\n options: RenderOptions = {},\n): string {\n const maxAgentsPerPhase = options.maxAgentsPerPhase ?? 6;\n const maxLogs = options.maxLogs ?? 2;\n const showPreviews = options.showResultPreviews ?? false;\n\n const state = stateSuffix(snapshot);\n const header = completed\n ? `◆ workflow ✓ ${snapshot.name} (${snapshot.doneCount}/${snapshot.agentCount} done${state})`\n : `◆ workflow: ${snapshot.name} (${snapshot.doneCount}/${snapshot.agentCount} done${state})`;\n const lines = [header];\n\n const phaseNames = uniqueOrdered([\n ...snapshot.phases,\n ...(snapshot.currentPhase ? [snapshot.currentPhase] : []),\n ...snapshot.agents.map((a) => a.phase).filter((p): p is string => Boolean(p)),\n ]);\n const rendered = new Set<WorkflowAgentSnapshot>();\n\n for (const phase of phaseNames) {\n const agents = snapshot.agents.filter((a) => a.phase === phase);\n if (agents.length === 0 && snapshot.currentPhase !== phase) continue;\n for (const a of agents) rendered.add(a);\n\n const counts = countAgents(agents);\n const completeHere = agents.length > 0 && counts.done + counts.error + counts.skipped === agents.length;\n const marker =\n counts.running > 0 || (!completeHere && snapshot.currentPhase === phase)\n ? '▶'\n : completeHere\n ? '✓'\n : ' ';\n\n const tail =\n (counts.running ? ` · ${counts.running} running` : '') +\n (counts.error ? ` · ${counts.error} errors` : '') +\n (counts.skipped ? ` · ${counts.skipped} skipped` : '');\n lines.push(` ${marker} ${phase} ${counts.done}/${agents.length}${tail}`);\n\n const visible = agents.slice(-maxAgentsPerPhase);\n for (const agent of visible) {\n const previewText = showPreviews && agent.resultPreview ? ` — ${agent.resultPreview}` : '';\n lines.push(\n ` #${agent.id} ${statusIcon(agent.status)} ${shorten(agent.label, 56)}${previewText}`,\n );\n }\n if (agents.length > visible.length) {\n lines.push(` … ${agents.length - visible.length} earlier agents`);\n }\n }\n\n const unphased = snapshot.agents.filter((a) => !rendered.has(a));\n if (unphased.length > 0) {\n lines.push(' unphased');\n for (const agent of unphased.slice(-maxAgentsPerPhase)) {\n const previewText = showPreviews && agent.resultPreview ? ` — ${agent.resultPreview}` : '';\n lines.push(\n ` #${agent.id} ${statusIcon(agent.status)} ${shorten(agent.label, 56)}${previewText}`,\n );\n }\n }\n\n const visibleLogs = snapshot.logs.slice(-maxLogs);\n if (visibleLogs.length > 0) {\n lines.push('');\n for (const log of visibleLogs) {\n lines.push(` log: ${shorten(log, 80)}`);\n }\n }\n return lines.join('\\n');\n}\n\nexport function previewValue(value: unknown, max = 80): string {\n if (value === null || value === undefined) return '';\n const text = typeof value === 'string' ? value : safeStringify(value);\n if (!text) return '';\n return text.length > max ? `${text.slice(0, max - 1)}…` : text;\n}\n\nexport function renderWorkflowPanel(\n snapshot: WorkflowSnapshot,\n options: WorkflowPanelOptions = {},\n): string {\n const status = options.status ?? inferPanelStatus(snapshot);\n const activeAgents = snapshot.agents.filter((agent) => agent.status === 'running');\n const queuedAgents = snapshot.agents.filter((agent) => agent.status === 'queued');\n const activeLimit = options.maxActiveAgents ?? 4;\n const recentLimit = options.maxRecentAgents ?? 4;\n const durationText = formatDuration(resolveElapsedMs(snapshot, options.nowMs));\n const counts = formatRunCounts(snapshot);\n\n const lines = [\n `◆ ${snapshot.name} ${statusText(status)} ${counts}${durationText ? ` ${durationText}` : ''}`,\n ];\n\n const phaseLines = renderPanelPhaseLines(snapshot);\n if (phaseLines.length > 0) {\n lines.push('', 'Phase', ...phaseLines);\n }\n\n const visibleActive = activeAgents.length > 0 ? activeAgents : queuedAgents;\n if (visibleActive.length > 0) {\n lines.push('', activeAgents.length > 0 ? 'Active' : 'Queued');\n for (const agent of visibleActive.slice(0, activeLimit)) {\n lines.push(...renderActiveAgentLines(agent));\n }\n if (visibleActive.length > activeLimit) {\n lines.push(` … ${visibleActive.length - activeLimit} more`);\n }\n }\n\n const recent = recentCompletedAgents(snapshot).slice(0, recentLimit);\n if (recent.length > 0) {\n lines.push('', 'Recent');\n for (const agent of recent) {\n lines.push(renderRecentAgentLine(agent));\n }\n }\n\n const errors = snapshot.agents.filter((agent) => agent.status === 'error' || agent.error);\n if (errors.length > 0) {\n lines.push('', 'Errors');\n for (const agent of errors.slice(0, options.maxErrors ?? 3)) {\n lines.push(\n ` ✗ #${agent.id} ${shorten(agent.label, 28)}${\n agent.error ? `: ${shorten(agent.error, 96)}` : ''\n }`,\n );\n }\n if (errors.length > (options.maxErrors ?? 3)) {\n lines.push(` … ${errors.length - (options.maxErrors ?? 3)} more`);\n }\n }\n\n return lines.join('\\n');\n}\n\nexport function renderWorkflowFinalSummary(\n snapshot: WorkflowSnapshot,\n options: WorkflowPanelOptions = {},\n): string {\n const status = options.status ?? inferPanelStatus(snapshot);\n const durationText = formatDuration(resolveElapsedMs(snapshot, options.nowMs));\n const lines = [\n `◆ ${snapshot.name} ${statusText(status)} ${formatRunCounts(snapshot)}${durationText ? ` ${durationText}` : ''}`,\n ];\n\n const result = previewValue(snapshot.result, 280);\n if (result) {\n lines.push('', 'Result', ` ${result}`);\n } else {\n const fallback = recentCompletedAgents(snapshot)\n .map((agent) => agent.resultPreview)\n .find((value): value is string => Boolean(value));\n if (fallback) {\n lines.push('', 'Result', ` ${shorten(fallback, 280)}`);\n }\n }\n\n const errors = snapshot.agents.filter((agent) => agent.status === 'error' || agent.error);\n if (errors.length > 0) {\n lines.push('', 'Errors');\n for (const agent of errors.slice(0, options.maxErrors ?? 5)) {\n lines.push(\n ` ✗ #${agent.id} ${shorten(agent.label, 32)}${\n agent.error ? `: ${shorten(agent.error, 120)}` : ''\n }`,\n );\n }\n }\n\n const recent = recentCompletedAgents(snapshot).slice(0, options.maxRecentAgents ?? 5);\n if (recent.length > 0) {\n lines.push('', 'Completed');\n for (const agent of recent) {\n lines.push(renderRecentAgentLine(agent));\n }\n }\n\n return lines.join('\\n');\n}\n\n// ---------------------------------------------------------------------------\n\nfunction countAgents(agents: WorkflowAgentSnapshot[]) {\n let done = 0;\n let running = 0;\n let error = 0;\n let skipped = 0;\n for (const a of agents) {\n if (a.status === 'done') done++;\n else if (a.status === 'running') running++;\n else if (a.status === 'error') error++;\n else if (a.status === 'skipped') skipped++;\n }\n return { done, running, error, skipped };\n}\n\nfunction statusIcon(status: WorkflowAgentStatus): string {\n switch (status) {\n case 'queued':\n return '○';\n case 'running':\n return '●';\n case 'done':\n return '✓';\n case 'error':\n return '✗';\n case 'skipped':\n return '-';\n }\n}\n\nfunction statusText(status: WorkflowPanelStatus): string {\n switch (status) {\n case 'queued':\n return 'queued';\n case 'running':\n return 'running';\n case 'succeeded':\n return '✓ completed';\n case 'failed':\n return '✗ failed';\n case 'cancelled':\n return 'cancelled';\n case 'timeout':\n return 'timeout';\n default:\n return String(status || 'running');\n }\n}\n\nfunction inferPanelStatus(snapshot: WorkflowSnapshot): WorkflowPanelStatus {\n if (snapshot.errorCount > 0) return 'failed';\n if (snapshot.runningCount > 0) return 'running';\n if (snapshot.doneCount + snapshot.skippedCount >= snapshot.agentCount && snapshot.agentCount > 0) {\n return 'succeeded';\n }\n return 'queued';\n}\n\nfunction formatRunCounts(snapshot: WorkflowSnapshot): string {\n const parts = [`${snapshot.doneCount}/${snapshot.agentCount} done`];\n if (snapshot.runningCount > 0) parts.push(`${snapshot.runningCount} running`);\n if (snapshot.errorCount > 0) parts.push(`${snapshot.errorCount} errors`);\n if (snapshot.skippedCount > 0) parts.push(`${snapshot.skippedCount} skipped`);\n return parts.join(' · ');\n}\n\nfunction resolveElapsedMs(snapshot: WorkflowSnapshot, nowMs = Date.now()): number | undefined {\n if (snapshot.durationMs != null) return snapshot.durationMs;\n const starts = snapshot.agents\n .map((agent) => agent.startedAtMs)\n .filter((value): value is number => typeof value === 'number' && Number.isFinite(value));\n if (starts.length === 0) return undefined;\n return Math.max(0, nowMs - Math.min(...starts));\n}\n\nfunction formatDuration(ms: number | undefined): string {\n if (ms == null || !Number.isFinite(ms)) return '';\n const totalSeconds = Math.max(0, Math.floor(ms / 1000));\n const minutes = Math.floor(totalSeconds / 60);\n const seconds = totalSeconds % 60;\n if (minutes < 60) return `${minutes}:${String(seconds).padStart(2, '0')}`;\n const hours = Math.floor(minutes / 60);\n const restMinutes = minutes % 60;\n return `${hours}:${String(restMinutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}`;\n}\n\nfunction renderPanelPhaseLines(snapshot: WorkflowSnapshot): string[] {\n const phaseNames = uniqueOrdered([\n ...snapshot.phases,\n ...(snapshot.currentPhase ? [snapshot.currentPhase] : []),\n ...snapshot.agents.map((a) => a.phase).filter((p): p is string => Boolean(p)),\n ]);\n const out: string[] = [];\n for (const phase of phaseNames) {\n const agents = snapshot.agents.filter((agent) => agent.phase === phase);\n const counts = countAgents(agents);\n const complete = agents.length > 0 && counts.done + counts.error + counts.skipped === agents.length;\n const marker =\n counts.running > 0 || (!complete && snapshot.currentPhase === phase)\n ? '▶'\n : complete\n ? '✓'\n : '○';\n const tail = [\n counts.running > 0 ? `${counts.running} running` : '',\n counts.error > 0 ? `${counts.error} errors` : '',\n counts.skipped > 0 ? `${counts.skipped} skipped` : '',\n ].filter(Boolean).join(' · ');\n out.push(` ${marker} ${phase} ${counts.done}/${agents.length}${tail ? ` · ${tail}` : ''}`);\n }\n return out;\n}\n\nfunction renderActiveAgentLines(agent: WorkflowAgentSnapshot): string[] {\n const step = agent.currentStep || latestStepSummary(agent);\n const iteration =\n agent.iteration != null && agent.maxIterations != null\n ? ` [${agent.iteration}/${agent.maxIterations}]`\n : '';\n const head = ` ${agent.status === 'running' ? '●' : '○'} #${agent.id} ${shorten(agent.label, 32)}${iteration}`;\n return step ? [head, ` ${shorten(step, 96)}`] : [head];\n}\n\nfunction renderRecentAgentLine(agent: WorkflowAgentSnapshot): string {\n const preview = agent.error || agent.resultPreview || latestStepResult(agent);\n return ` ${statusIcon(agent.status)} #${agent.id} ${shorten(agent.label, 32)}${\n preview ? ` — ${shorten(preview, 96)}` : ''\n }`;\n}\n\nfunction recentCompletedAgents(snapshot: WorkflowSnapshot): WorkflowAgentSnapshot[] {\n return [...snapshot.agents]\n .filter((agent) => agent.status === 'done' || agent.status === 'error' || agent.status === 'skipped')\n .reverse();\n}\n\nfunction latestStepSummary(agent: WorkflowAgentSnapshot): string {\n const step =\n [...(agent.steps ?? [])].reverse().find((entry) => entry.status === 'running') ??\n agent.steps?.[agent.steps.length - 1];\n if (!step) return '';\n return step.detail ? `${step.label}: ${step.detail}` : step.label;\n}\n\nfunction latestStepResult(agent: WorkflowAgentSnapshot): string {\n const step = [...(agent.steps ?? [])].reverse().find((entry) => entry.resultPreview || entry.error);\n return step?.error || step?.resultPreview || '';\n}\n\nfunction stateSuffix(snapshot: WorkflowSnapshot): string {\n if (snapshot.errorCount > 0) return `, ${snapshot.errorCount} errors`;\n if (snapshot.skippedCount > 0) return `, ${snapshot.skippedCount} skipped`;\n if (snapshot.runningCount > 0) return `, ${snapshot.runningCount} running`;\n return '';\n}\n\nfunction uniqueOrdered(values: string[]): string[] {\n const seen = new Set<string>();\n const out: string[] = [];\n for (const v of values) {\n if (!seen.has(v)) {\n seen.add(v);\n out.push(v);\n }\n }\n return out;\n}\n\nfunction shorten(value: string, max: number): string {\n const text = value.replace(/\\s+/g, ' ').trim();\n return text.length > max ? `${text.slice(0, max - 1)}…` : text;\n}\n\nfunction safeStringify(value: unknown): string {\n try {\n return JSON.stringify(value);\n } catch {\n return String(value);\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"step-labels.js","names":[],"sources":["../../../../src/agent/workflow/step-labels.ts"],"sourcesContent":["/**\n * Human-readable labels for workflow subagent tool steps (server-side snapshot).\n * Mirrors the web `tool-friendly-title` rules so IM/TUI and gateway stay aligned.\n */\n\nconst MAX_DETAIL_LEN = 120;\n\nexport function workflowStepLabel(\n toolName: string,\n args: Record<string, unknown>,\n): { label: string; detail?: string } {\n const n = toolName.toLowerCase().replace(/-/g, '_').trim();\n let label = toolName.trim() || 'tool';\n if (n === 'exec_command') label = 'Run command';\n else if (n === 'update_plan') label = 'Update plan';\n else if (n === 'list_dir' || n === 'ls') label = 'List directory';\n else if (n === 'write_file') label = 'Write file';\n else if (n === 'apply_patch') label = 'Edit file';\n else if (n === 'web_fetch') label = 'Fetch URL';\n else if (n === 'open_url') label = 'Open URL';\n else if (n === 'grep' || n === 'rg' || n === 'file_grep') label = 'Search files';\n else if (n === 'web_search' || n === 'brave_search' || n.includes('search')) label = 'Search web';\n else if (n === 'read_file' || n.includes('read_file') || n.includes('file_read')) label = 'Read file';\n else if (n === 'delegate_task' || n === 'workflow') label = toolName;\n\n const detail = extractStepDetail(n, args);\n return detail ? { label, detail } : { label };\n}\n\nfunction extractStepDetail(toolKey: string, args: Record<string, unknown>): string | undefined {\n const pathKeys = ['path', 'file_path', 'filePath', 'target_file', 'targetFile'];\n for (const key of pathKeys) {\n const v = args[key];\n if (typeof v === 'string' && v.trim()) return truncate(v.trim());\n }\n if (toolKey === 'exec_command') {\n const command = typeof args.cmd === 'string' ? args.cmd : typeof args.command === 'string' ? args.command : '';\n if (command.trim()) return truncate(command.trim());\n }\n if (\n (toolKey.includes('search') || toolKey === 'grep' || toolKey === 'rg' || toolKey === 'file_grep') &&\n typeof args.query === 'string' &&\n args.query.trim()\n ) {\n return truncate(args.query.trim());\n }\n if (typeof args.url === 'string' && args.url.trim()) return truncate(args.url.trim());\n return undefined;\n}\n\nfunction truncate(text: string): string {\n if (text.length <= MAX_DETAIL_LEN) return text;\n return `${text.slice(0, MAX_DETAIL_LEN - 1)}…`;\n}\n"],"mappings":";;;;;AAKA,MAAM,iBAAiB;AAEvB,SAAgB,kBACd,UACA,MACoC;CACpC,MAAM,IAAI,SAAS,aAAa,CAAC,QAAQ,MAAM,IAAI,CAAC,MAAM;CAC1D,IAAI,QAAQ,SAAS,MAAM,IAAI;AAC/B,KAAI,MAAM,eAAgB,SAAQ;UACzB,MAAM,cAAe,SAAQ;UAC7B,MAAM,cAAc,MAAM,KAAM,SAAQ;UACxC,MAAM,aAAc,SAAQ;UAC5B,MAAM,cAAe,SAAQ;UAC7B,MAAM,YAAa,SAAQ;UAC3B,MAAM,WAAY,SAAQ;UAC1B,MAAM,UAAU,MAAM,QAAQ,MAAM,YAAa,SAAQ;UACzD,MAAM,gBAAgB,MAAM,kBAAkB,EAAE,SAAS,SAAS,CAAE,SAAQ;UAC5E,MAAM,eAAe,EAAE,SAAS,YAAY,IAAI,EAAE,SAAS,YAAY,CAAE,SAAQ;UACjF,MAAM,mBAAmB,MAAM,WAAY,SAAQ;CAE5D,MAAM,SAAS,kBAAkB,GAAG,KAAK;AACzC,QAAO,SAAS;EAAE;EAAO;EAAQ,GAAG,EAAE,OAAO;;AAG/C,SAAS,kBAAkB,SAAiB,MAAmD;AAE7F,MAAK,MAAM,OAAO;EADA;EAAQ;EAAa;EAAY;EAAe;EACxC,EAAE;EAC1B,MAAM,IAAI,KAAK;AACf,MAAI,OAAO,MAAM,YAAY,EAAE,MAAM,CAAE,QAAO,SAAS,EAAE,MAAM,CAAC;;AAElE,KAAI,YAAY,gBAAgB;EAC9B,MAAM,UAAU,OAAO,KAAK,QAAQ,WAAW,KAAK,MAAM,OAAO,KAAK,YAAY,WAAW,KAAK,UAAU;AAC5G,MAAI,QAAQ,MAAM,CAAE,QAAO,SAAS,QAAQ,MAAM,CAAC;;AAErD,MACG,QAAQ,SAAS,SAAS,IAAI,YAAY,UAAU,YAAY,QAAQ,YAAY,gBACrF,OAAO,KAAK,UAAU,YACtB,KAAK,MAAM,MAAM,CAEjB,QAAO,SAAS,KAAK,MAAM,MAAM,CAAC;AAEpC,KAAI,OAAO,KAAK,QAAQ,YAAY,KAAK,IAAI,MAAM,CAAE,QAAO,SAAS,KAAK,IAAI,MAAM,CAAC;;AAIvF,SAAS,SAAS,MAAsB;AACtC,KAAI,KAAK,UAAU,eAAgB,QAAO;AAC1C,QAAO,GAAG,KAAK,MAAM,GAAG,iBAAiB,EAAE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"structured-output-tool.js","names":[],"sources":["../../../../src/agent/workflow/structured-output-tool.ts"],"sourcesContent":["/**\n * `structured_output` — terminating tool used to capture a subagent's final result.\n *\n * Injected into a workflow agent node only when its output schema requires\n * structured data. The subagent is instructed\n * to invoke this tool exactly once with its final result; the tool sets\n * `terminate: true` so the agent loop stops without paying for an extra\n * assistant turn.\n *\n * Validation is done with ajv (already a xopc dep). pi-agent-core also validates\n * arguments against `parameters` before calling `execute`, but we re-check here\n * to (1) surface a clear error message back to the model when the schema is\n * non-trivial, and (2) avoid trusting the upstream layer's validator strictness.\n *\n * Note: the file is named `structured-output-tool.ts` to avoid clashing with the\n * existing `src/agent/tools/structured-output.ts` (an XML Element builder — a\n * completely unrelated utility).\n */\n\nimport Ajv, { type ValidateFunction } from 'ajv';\nimport type { AgentTool, AgentToolResult } from '@earendil-works/pi-agent-core';\nimport type { TSchema } from '@sinclair/typebox';\n\nimport type { JsonSchema } from './types.js';\n\nexport const STRUCTURED_OUTPUT_TOOL_NAME = 'structured_output';\n\nexport interface StructuredOutputCapture<T = unknown> {\n called: boolean;\n value?: T;\n}\n\nexport interface CreateStructuredOutputToolOptions<T = unknown> {\n schema: JsonSchema;\n capture: StructuredOutputCapture<T>;\n /** Override the tool name (rarely needed; default `structured_output`). */\n name?: string;\n}\n\n// One Ajv instance per schema is fine — Ajv caches compiled validators internally.\n// We re-use a singleton to avoid the per-call construction cost.\nconst ajv = new Ajv({ allErrors: true, strict: false });\n\nexport function createStructuredOutputTool<T = unknown>(\n options: CreateStructuredOutputToolOptions<T>,\n): AgentTool<TSchema, T> {\n const name = options.name ?? STRUCTURED_OUTPUT_TOOL_NAME;\n const validator: ValidateFunction = ajv.compile(options.schema);\n\n return {\n name,\n label: 'Structured Output',\n description:\n 'Return the final machine-readable result for this subagent task. ' +\n 'Call this tool exactly once when finished. Do not emit a prose final answer afterwards.',\n parameters: options.schema as unknown as TSchema,\n async execute(\n _toolCallId: string,\n params: unknown,\n ): Promise<AgentToolResult<T>> {\n const valid = validator(params);\n if (!valid) {\n const reason = ajv.errorsText(validator.errors, { separator: '; ' });\n // Do NOT terminate on invalid input — let the model retry within the same run.\n return {\n content: [\n {\n type: 'text',\n text: `structured_output: invalid arguments — ${reason}. Adjust and call structured_output again.`,\n },\n ],\n details: params as T,\n };\n }\n options.capture.called = true;\n options.capture.value = params as T;\n return {\n content: [{ type: 'text', text: 'Structured output received.' }],\n details: params as T,\n terminate: true,\n };\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAyBA,MAAa,8BAA8B;AAgB3C,MAAM,MAAM,IAAI,IAAI;CAAE,WAAW;CAAM,QAAQ;CAAO,CAAC;AAEvD,SAAgB,2BACd,SACuB;CACvB,MAAM,OAAO,QAAQ,QAAA;CACrB,MAAM,YAA8B,IAAI,QAAQ,QAAQ,OAAO;AAE/D,QAAO;EACL;EACA,OAAO;EACP,aACE;EAEF,YAAY,QAAQ;EACpB,MAAM,QACJ,aACA,QAC6B;AAE7B,OAAI,CADU,UAAU,OACd,CAGR,QAAO;IACL,SAAS,CACP;KACE,MAAM;KACN,MAAM,0CANG,IAAI,WAAW,UAAU,QAAQ,EAAE,WAAW,MAAM,CAMP,CAAC;KACxD,CACF;IACD,SAAS;IACV;AAEH,WAAQ,QAAQ,SAAS;AACzB,WAAQ,QAAQ,QAAQ;AACxB,UAAO;IACL,SAAS,CAAC;KAAE,MAAM;KAAQ,MAAM;KAA+B,CAAC;IAChE,SAAS;IACT,WAAW;IACZ;;EAEJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"subagent-runner.js","names":[],"sources":["../../../../src/agent/workflow/subagent-runner.ts"],"sourcesContent":["/**\n * Adapter: spawns one isolated child agent per `agent()` call from a workflow.\n *\n * Wraps the existing `createDelegateChildHandle` so the workflow runtime stays\n * decoupled from the LLM stack (it sees only the `SubagentRunner` interface).\n *\n * Key behaviour:\n * - When `opts.schema` is provided, we inject `structured_output` into the child\n * tool set and unwrap the captured value on success. If the subagent finishes\n * without ever calling `structured_output`, we treat it as failure (`null`).\n * - Failures and aborts resolve to `null`. The workflow runtime continues — this\n * matches the pi-dynamic-workflows contract and keeps fan-out pipelines robust.\n * - We do NOT mutate `createDelegateChildHandle` — we just leverage its\n * `buildChildTools` injection point.\n */\n\nimport type { AgentTool } from '@earendil-works/pi-agent-core';\nimport type { Api, Model } from '@earendil-works/pi-ai';\n\nimport type { Config } from '../../config/schema.js';\nimport type { MessageBus } from '../../infra/bus/index.js';\nimport type { SessionStore } from '../../session/store.js';\nimport { emitSessionTranscriptUpdate } from '../../session/transcript-events.js';\nimport { createLogger } from '../../utils/logger.js';\n\nimport {\n type BuildChildToolsOptions,\n createDelegateChildHandle,\n type DelegateChildHandleOptions,\n} from '../child-agent-factory.js';\nimport {\n DEFAULT_DELEGATE_TOOLS,\n DELEGATE_BLOCKED_TOOLS,\n} from '../tools/delegate-tool.js';\nimport type { ToolExecutorConfig } from '../tools/executor.js';\n\nimport {\n createStructuredOutputTool,\n STRUCTURED_OUTPUT_TOOL_NAME,\n type StructuredOutputCapture,\n} from './structured-output-tool.js';\nimport type { SubagentRunOptions, SubagentRunner, SubagentProgressEvent } from './types.js';\n\nconst log = createLogger('Agent:WorkflowSubagent');\n\nconst DEFAULT_MAX_ITERATIONS = 30;\n\nexport interface DelegateSubagentRunnerDeps {\n workspace: string;\n bus: MessageBus;\n agentId?: string;\n /** Resolves the default subagent model (typically the parent agent's primary model). */\n getDefaultModel: () => Model<Api>;\n getConfig: () => Config | undefined;\n toolExecutorConfig?: Partial<ToolExecutorConfig>;\n sessionStore?: SessionStore;\n /**\n * Provided by the workflow tool from `AgentToolsFactory` — mirrors how\n * `delegate-tool` is wired (avoids importing `tools/factory.ts` here and\n * breaking the existing factory ↔ delegate-tool ↔ child-agent-factory\n * dependency contract).\n */\n buildChildTools: (opts: BuildChildToolsOptions) => AgentTool<any, any>[];\n}\n\nexport class DelegateSubagentRunner implements SubagentRunner {\n constructor(private readonly deps: DelegateSubagentRunnerDeps) {}\n\n async run<T = string>(prompt: string, opts: SubagentRunOptions<T>): Promise<T | null> {\n if (opts.signal?.aborted) return null;\n\n const capture: StructuredOutputCapture<T> = { called: false, value: undefined };\n const wantStructured = Boolean(opts.schema);\n\n const allowed = resolveAllowedToolNames(opts.allowedToolNames, wantStructured);\n const model = opts.model ?? safeResolveDefaultModel(this.deps.getDefaultModel);\n if (!model) {\n log.warn({ label: opts.label }, 'subagent run skipped: no primary model resolved');\n return null;\n }\n\n const fullPrompt = buildPrompt(prompt, opts, wantStructured);\n const streamMode = resolveSubagentStreamMode(this.deps.getConfig);\n\n let transcriptPersistQueue: Promise<void> = Promise.resolve();\n const persistTranscriptSnapshot = opts.sessionKey && this.deps.sessionStore\n ? (messages: Parameters<SessionStore['saveMessages']>[1]) => {\n const store = this.deps.sessionStore;\n const key = opts.sessionKey;\n if (!store || !key) return;\n const snapshot = cloneAgentMessages(messages);\n transcriptPersistQueue = transcriptPersistQueue\n .then(async () => {\n await store.saveMessages(key, snapshot);\n emitSessionTranscriptUpdate({ sessionKey: key });\n })\n .catch((err) => {\n const msg = err instanceof Error ? err.message : String(err);\n log.warn(\n { err, sessionKey: key, errorMessage: msg },\n `Failed to persist workflow subagent transcript snapshot: ${msg}`,\n );\n });\n }\n : undefined;\n\n const childOptions: DelegateChildHandleOptions = {\n workspace: this.deps.workspace,\n goal: fullPrompt,\n allowedToolNames: allowed,\n maxIterations: opts.maxIterations ?? DEFAULT_MAX_ITERATIONS,\n model,\n bus: this.deps.bus,\n agentId: this.deps.agentId,\n getConfig: this.deps.getConfig,\n toolExecutorConfig: this.deps.toolExecutorConfig,\n buildChildTools: (childOpts) => {\n const base = this.deps.buildChildTools({ ...childOpts, agentId: this.deps.agentId ?? childOpts.agentId });\n if (!wantStructured || !opts.schema) return base;\n // Replace any existing tool with the same name so the per-run capture wins.\n const filtered = base.filter((t) => t.name !== STRUCTURED_OUTPUT_TOOL_NAME);\n return [\n ...filtered,\n createStructuredOutputTool({ schema: opts.schema, capture }) as unknown as AgentTool<any, any>,\n ];\n },\n progressHooks:\n opts.onProgress && streamMode !== 'off'\n ? {\n mode: streamMode === 'full' ? 'full' : 'steps',\n onProgress: (event) => {\n opts.onProgress?.(mapChildProgressEvent(event));\n },\n }\n : undefined,\n onTranscriptSnapshot: persistTranscriptSnapshot,\n };\n\n if (opts.sessionKey && opts.sessionMetadata && this.deps.sessionStore) {\n await this.preparePersistentSubagentSession(opts.sessionKey, opts.sessionMetadata);\n }\n\n const handle = createDelegateChildHandle(childOptions);\n const onAbort = () => handle.abort();\n opts.signal?.addEventListener('abort', onAbort, { once: true });\n\n try {\n const { summary, messages } = await handle.run();\n await transcriptPersistQueue;\n if (opts.sessionKey && this.deps.sessionStore) {\n await this.deps.sessionStore.saveMessages(opts.sessionKey, messages);\n emitSessionTranscriptUpdate({ sessionKey: opts.sessionKey });\n }\n if (opts.signal?.aborted) return null;\n\n if (wantStructured) {\n if (!capture.called) {\n log.warn({ label: opts.label }, 'subagent finished without calling structured_output');\n return null;\n }\n return capture.value as T;\n }\n return summary as unknown as T;\n } catch (e) {\n if (opts.rethrow) throw e;\n const msg = e instanceof Error ? e.message : String(e);\n log.warn({ err: e, label: opts.label, errorMessage: msg }, `subagent run failed: ${msg}`);\n return null;\n } finally {\n opts.signal?.removeEventListener('abort', onAbort);\n }\n }\n\n private async preparePersistentSubagentSession(\n sessionKey: string,\n metadata: NonNullable<SubagentRunOptions['sessionMetadata']>,\n ): Promise<void> {\n const store = this.deps.sessionStore;\n if (!store) return;\n await store.resolveTranscriptPath(sessionKey, {\n metadata: {\n sessionType: 'workflow-subagent',\n hiddenFromSessionList: true,\n parentSessionKey: metadata.parentSessionKey,\n workflowRunId: metadata.workflowRunId,\n workflowDefinitionId: metadata.workflowDefinitionId,\n workflowAgentId: metadata.workflowAgentId,\n workflowAgentLabel: metadata.workflowAgentLabel,\n sourceChannel: 'workflow',\n sourceChatId: metadata.workflowRunId,\n routing: {\n agentId: metadata.workflowAgentId || 'main',\n source: 'workflow',\n accountId: 'default',\n peerKind: 'subagent',\n peerId: metadata.workflowRunId,\n },\n },\n });\n await store.updateMetadata(sessionKey, {\n sessionType: 'workflow-subagent',\n hiddenFromSessionList: true,\n parentSessionKey: metadata.parentSessionKey,\n workflowRunId: metadata.workflowRunId,\n workflowDefinitionId: metadata.workflowDefinitionId,\n workflowAgentId: metadata.workflowAgentId,\n workflowAgentLabel: metadata.workflowAgentLabel,\n name: metadata.workflowAgentLabel,\n tags: ['workflow-subagent', metadata.workflowDefinitionId],\n });\n }\n}\n\nfunction cloneAgentMessages(messages: Parameters<SessionStore['saveMessages']>[1]): Parameters<SessionStore['saveMessages']>[1] {\n return messages.map((message) => structuredClone(message));\n}\n\nfunction resolveAllowedToolNames(\n requested: string[] | undefined,\n wantStructured: boolean,\n): string[] {\n const base = requested && requested.length > 0 ? requested : [...DEFAULT_DELEGATE_TOOLS];\n const filtered = base\n .map((s) => String(s).trim())\n .filter((s) => s.length > 0)\n .filter((s) => !DELEGATE_BLOCKED_TOOLS.has(s));\n if (wantStructured && !filtered.includes(STRUCTURED_OUTPUT_TOOL_NAME)) {\n filtered.push(STRUCTURED_OUTPUT_TOOL_NAME);\n }\n return [...new Set(filtered)];\n}\n\nfunction buildPrompt(prompt: string, opts: SubagentRunOptions<unknown>, structured: boolean): string {\n const parts: string[] = [];\n if (opts.instructions?.trim()) parts.push(opts.instructions.trim());\n if (opts.label) parts.push(`Task label: ${opts.label}`);\n if (opts.phase) parts.push(`Workflow phase: ${opts.phase}`);\n parts.push(prompt);\n if (structured) {\n parts.push(\n [\n 'Final output contract:',\n '- Your final action MUST be a structured_output tool call.',\n '- The structured_output arguments are the return value of this subagent.',\n '- Do not emit a prose final answer instead of structured_output.',\n '- If you need to inspect files or run commands first, do so, then call structured_output exactly once.',\n ].join('\\n'),\n );\n }\n return parts.join('\\n\\n');\n}\n\nfunction safeResolveDefaultModel(get: () => Model<Api>): Model<Api> | null {\n try {\n return get();\n } catch (e) {\n log.warn({ err: e }, 'failed to resolve default subagent model');\n return null;\n }\n}\n\nfunction resolveSubagentStreamMode(\n _getConfig: () => Config | undefined,\n): 'off' | 'steps' | 'full' {\n return 'steps';\n}\n\nfunction mapChildProgressEvent(event: {\n type: 'tool_start' | 'tool_end' | 'iteration' | 'text_delta' | 'thinking_delta';\n toolCallId?: string;\n toolName?: string;\n args?: Record<string, unknown>;\n isError?: boolean;\n resultPreview?: string;\n error?: string;\n count?: number;\n max?: number;\n delta?: string;\n}): SubagentProgressEvent {\n switch (event.type) {\n case 'tool_start':\n return {\n type: 'tool_start',\n toolCallId: event.toolCallId ?? '',\n toolName: event.toolName ?? 'tool',\n args: event.args ?? {},\n };\n case 'tool_end':\n return {\n type: 'tool_end',\n toolCallId: event.toolCallId ?? '',\n toolName: event.toolName ?? 'tool',\n isError: Boolean(event.isError),\n resultPreview: event.resultPreview,\n error: event.error,\n };\n case 'iteration':\n return {\n type: 'iteration',\n count: event.count ?? 0,\n max: event.max ?? 0,\n };\n case 'text_delta':\n return { type: 'text_delta', delta: event.delta ?? '' };\n case 'thinking_delta':\n return { type: 'thinking_delta', delta: event.delta ?? '' };\n default:\n return { type: 'text_delta', delta: '' };\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"workflow-child-tools.js","names":[],"sources":["../../../../src/agent/workflow/workflow-child-tools.ts"],"sourcesContent":["import type { AgentTool } from '@earendil-works/pi-agent-core';\n\nimport type { BuildChildToolsOptions } from '../child-agent-factory.js';\nimport { resolveDreamingRoot } from '../memory/dreaming/scope.js';\nimport { AgentToolsFactory } from '../tools/factory.js';\n\n/** Builds the tool set for workflow child agents (wired from gateway to avoid cycles). */\nexport function buildWorkflowChildTools(childOptions: BuildChildToolsOptions): AgentTool<any, any>[] {\n const config = childOptions.getConfig();\n const dreamingRoot = config\n ? resolveDreamingRoot()\n : undefined;\n const childFactory = new AgentToolsFactory({\n workspace: childOptions.workspace,\n bus: childOptions.bus,\n getCurrentContext: () => null,\n getConfig: childOptions.getConfig,\n getPrimaryModel: () => childOptions.model,\n toolExecutorConfig: childOptions.toolExecutorConfig,\n });\n return childFactory.createAllTools({\n workspace: childOptions.workspace,\n getPrimaryModel: () => childOptions.model,\n agentId: childOptions.agentId,\n dreamingRoot,\n disabledTools: new Set(['extensions']),\n });\n}\n"],"mappings":";;;;AAOA,SAAgB,wBAAwB,cAA6D;CAEnG,MAAM,eADS,aAAa,WACD,GACvB,qBAAqB,GACrB,KAAA;AASJ,QAAO,IARkB,kBAAkB;EACzC,WAAW,aAAa;EACxB,KAAK,aAAa;EAClB,yBAAyB;EACzB,WAAW,aAAa;EACxB,uBAAuB,aAAa;EACpC,oBAAoB,aAAa;EAClC,CACkB,CAAC,eAAe;EACjC,WAAW,aAAa;EACxB,uBAAuB,aAAa;EACpC,SAAS,aAAa;EACtB;EACA,eAAe,IAAI,IAAI,CAAC,aAAa,CAAC;EACvC,CAAC"}