@xopcai/xopc 0.0.103 → 0.0.104

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 (930) hide show
  1. package/README.md +7 -4
  2. package/README.zh-CN.md +7 -4
  3. package/dist/_virtual/_rolldown/runtime.js +2 -3
  4. package/dist/browser-ext/manifest.json +1 -1
  5. package/dist/extensions/feishu/src/adapters/cli-login.d.ts +1 -1
  6. package/dist/extensions/feishu/src/adapters/cli-login.js +1 -1
  7. package/dist/extensions/feishu/src/adapters/cli-login.js.map +1 -1
  8. package/dist/extensions/feishu/src/adapters/gateway-setup.d.ts +2 -0
  9. package/dist/extensions/feishu/src/adapters/gateway-setup.js +225 -0
  10. package/dist/extensions/feishu/src/adapters/gateway-setup.js.map +1 -0
  11. package/dist/extensions/feishu/src/index.d.ts +8 -1
  12. package/dist/extensions/feishu/src/index.js +14 -1
  13. package/dist/extensions/feishu/src/index.js.map +1 -0
  14. package/dist/extensions/feishu/src/outbound/outbound-adapter.js +1 -1
  15. package/dist/extensions/feishu/src/plugin.d.ts +2 -1
  16. package/dist/extensions/feishu/src/plugin.js +2 -0
  17. package/dist/extensions/feishu/src/plugin.js.map +1 -1
  18. package/dist/extensions/feishu/src/streaming/streaming-adapter.js +1 -1
  19. package/dist/extensions/feishu/src/transport/webhook/monitor.js +1 -1
  20. package/dist/extensions/feishu/xopc.extension.json +66 -1
  21. package/dist/extensions/telegram/src/adapters/gateway-setup.d.ts +2 -0
  22. package/dist/extensions/telegram/src/adapters/gateway-setup.js +146 -0
  23. package/dist/extensions/telegram/src/adapters/gateway-setup.js.map +1 -0
  24. package/dist/extensions/telegram/src/adapters/security-adapter.js +1 -1
  25. package/dist/extensions/telegram/src/command-handler.js +1 -2
  26. package/dist/extensions/telegram/src/command-handler.js.map +1 -1
  27. package/dist/extensions/telegram/src/config-schema.js +2 -2
  28. package/dist/extensions/telegram/src/config-schema.js.map +1 -1
  29. package/dist/extensions/telegram/src/doctor.d.ts +1 -0
  30. package/dist/extensions/telegram/src/doctor.js +68 -0
  31. package/dist/extensions/telegram/src/doctor.js.map +1 -1
  32. package/dist/extensions/telegram/src/index.d.ts +8 -1
  33. package/dist/extensions/telegram/src/index.js +15 -2
  34. package/dist/extensions/telegram/src/index.js.map +1 -0
  35. package/dist/extensions/telegram/src/plugin.d.ts +13 -5
  36. package/dist/extensions/telegram/src/plugin.js +32 -12
  37. package/dist/extensions/telegram/src/plugin.js.map +1 -1
  38. package/dist/extensions/telegram/src/proxy-fetch.js +22 -5
  39. package/dist/extensions/telegram/src/proxy-fetch.js.map +1 -1
  40. package/dist/extensions/telegram/xopc.extension.json +412 -5
  41. package/dist/extensions/weixin/src/adapters/onboard-cli.js +2 -2
  42. package/dist/extensions/weixin/src/adapters/onboard-cli.js.map +1 -1
  43. package/dist/extensions/weixin/src/api/api.js +1 -1
  44. package/dist/extensions/weixin/src/index.d.ts +8 -0
  45. package/dist/extensions/weixin/src/index.js +12 -1
  46. package/dist/extensions/weixin/src/index.js.map +1 -0
  47. package/dist/extensions/weixin/src/messaging/process-message.js +1 -1
  48. package/dist/extensions/weixin/src/plugin.d.ts +2 -1
  49. package/dist/extensions/weixin/src/plugin.js +77 -2
  50. package/dist/extensions/weixin/src/plugin.js.map +1 -1
  51. package/dist/extensions/weixin/xopc.extension.json +52 -0
  52. package/dist/gateway/static/root/assets/agents-CvsBrBfi.js +396 -0
  53. package/dist/gateway/static/root/assets/{apps-page-C5RmwmTT.js → apps-page-L-IwQTe0.js} +1 -1
  54. package/dist/gateway/static/root/assets/browser-BLJWD7WI.js +8 -0
  55. package/dist/gateway/static/root/assets/channels-settings-D95KuPeP.js +1 -0
  56. package/dist/gateway/static/root/assets/cron-page-CfkWXDAI.js +1 -0
  57. package/dist/gateway/static/root/assets/{dist-CWm8hTXZ.js → dist-C6vclgEL.js} +1 -1
  58. package/dist/gateway/static/root/assets/{extension-debug-page-BzYgTkS9.js → extension-debug-page-D4JYAbsX.js} +1 -1
  59. package/dist/gateway/static/root/assets/{extension-page-BmTZH6gL.js → extension-page-_T62gi6e.js} +1 -1
  60. package/dist/gateway/static/root/assets/extension-settings-page-CkJbjyM-.js +1 -0
  61. package/dist/gateway/static/root/assets/{fetch-CMoWY2Si.js → fetch-B5aiIguv.js} +1 -1
  62. package/dist/gateway/static/root/assets/gateway-startup-retry-DqmLXhs6.js +1 -0
  63. package/dist/gateway/static/root/assets/heartbeat-config-api-HwJV1K_Y.js +1 -0
  64. package/dist/gateway/static/root/assets/index-BPYKW7FB.css +1 -0
  65. package/dist/gateway/static/root/assets/index-DvTb6wNR.js +4845 -0
  66. package/dist/gateway/static/root/assets/{logs-page-BjdQjHwk.js → logs-page-DsjtTjBy.js} +2 -2
  67. package/dist/gateway/static/root/assets/{note-detail-page-8Er4197b.js → note-detail-page-B2V7RhgD.js} +43 -43
  68. package/dist/gateway/static/root/assets/{note-time-CF3vf1jm.js → note-time-BG8GCTr4.js} +1 -1
  69. package/dist/gateway/static/root/assets/notes-page-xrcVBQ6Z.js +1 -0
  70. package/dist/gateway/static/root/assets/schema-form-S-QUvhul.js +1 -0
  71. package/dist/gateway/static/root/assets/sessions-page-CrQer6Au.js +1 -0
  72. package/dist/gateway/static/root/assets/settings-advanced-gate-DujQl9c7.js +2 -0
  73. package/dist/gateway/static/root/assets/{settings-form-section-C7qA7y0J.js → settings-form-section-r1V7dRV6.js} +1 -1
  74. package/dist/gateway/static/root/assets/settings-page-C9nrONQ2.js +3 -0
  75. package/dist/gateway/static/root/assets/{share-preview-page-Tvr5Mtq5.js → share-preview-page-DOFy0FNt.js} +1 -1
  76. package/dist/gateway/static/root/assets/skills-page-DmTsrs_a.js +2 -0
  77. package/dist/gateway/static/root/assets/{theme-store-HTvJlFLL.js → theme-store-Bo3j5Ovv.js} +1 -1
  78. package/dist/gateway/static/root/assets/url-WgQIjFZu.js +3 -0
  79. package/dist/gateway/static/root/assets/voice-api-key-field-AjmUAlEQ.js +1 -0
  80. package/dist/gateway/static/root/assets/{workflow-page.utils-CeBkAjP7.js → workflow-page.utils-DLEJ92gK.js} +1 -1
  81. package/dist/gateway/static/root/assets/workflows-page-BnjjKrM1.js +27 -0
  82. package/dist/gateway/static/root/index.html +6 -5
  83. package/dist/package.js +1 -1
  84. package/dist/src/agent/agent-manager.d.ts +18 -6
  85. package/dist/src/agent/agent-manager.js +60 -35
  86. package/dist/src/agent/agent-manager.js.map +1 -1
  87. package/dist/src/agent/builtin-agent-ids.d.ts +2 -0
  88. package/dist/src/agent/builtin-agent-ids.js +17 -0
  89. package/dist/src/agent/builtin-agent-ids.js.map +1 -0
  90. package/dist/src/agent/child-agent-factory.d.ts +4 -0
  91. package/dist/src/agent/child-agent-factory.js +28 -8
  92. package/dist/src/agent/child-agent-factory.js.map +1 -1
  93. package/dist/src/agent/context/workspace-seed.js +1 -1
  94. package/dist/src/agent/context/workspace-templates/AGENTS.md +23 -184
  95. package/dist/src/agent/embedded/run-turn.js +8 -2
  96. package/dist/src/agent/embedded/run-turn.js.map +1 -1
  97. package/dist/src/agent/embedded/session-tool-result-guard.js +1 -1
  98. package/dist/src/agent/embedded/subscribe-session.js +33 -51
  99. package/dist/src/agent/embedded/subscribe-session.js.map +1 -1
  100. package/dist/src/agent/embedded/types.d.ts +36 -35
  101. package/dist/src/agent/fallback/candidates.js +1 -1
  102. package/dist/src/agent/fallback/candidates.js.map +1 -1
  103. package/dist/src/agent/inbound/inbound-loop.js +1 -1
  104. package/dist/src/agent/inbound/turn-dispatcher.d.ts +1 -0
  105. package/dist/src/agent/inbound/turn-dispatcher.js +24 -5
  106. package/dist/src/agent/inbound/turn-dispatcher.js.map +1 -1
  107. package/dist/src/agent/models/manager.d.ts +1 -1
  108. package/dist/src/agent/models/manager.js +1 -1
  109. package/dist/src/agent/models/manager.js.map +1 -1
  110. package/dist/src/agent/orchestration/run-agent-turn-with-fallbacks.d.ts +1 -1
  111. package/dist/src/agent/orchestration/run-agent-turn-with-fallbacks.js +1 -1
  112. package/dist/src/agent/orchestration/run-agent-turn-with-fallbacks.js.map +1 -1
  113. package/dist/src/agent/prompt/sections/tooling.js +4 -0
  114. package/dist/src/agent/prompt/sections/tooling.js.map +1 -1
  115. package/dist/src/agent/service/direct-turn-helpers.d.ts +1 -0
  116. package/dist/src/agent/service/direct-turn-helpers.js +1 -1
  117. package/dist/src/agent/service/direct-turn-helpers.js.map +1 -1
  118. package/dist/src/agent/service/process-direct-streaming.d.ts +1 -0
  119. package/dist/src/agent/service/process-direct-streaming.js +35 -18
  120. package/dist/src/agent/service/process-direct-streaming.js.map +1 -1
  121. package/dist/src/agent/service-inbound-utils.d.ts +0 -1
  122. package/dist/src/agent/service-inbound-utils.js +1 -17
  123. package/dist/src/agent/service-inbound-utils.js.map +1 -1
  124. package/dist/src/agent/service.d.ts +4 -4
  125. package/dist/src/agent/service.js +27 -15
  126. package/dist/src/agent/service.js.map +1 -1
  127. package/dist/src/agent/session/session-config-service.d.ts +1 -0
  128. package/dist/src/agent/session/session-config-service.js +9 -1
  129. package/dist/src/agent/session/session-config-service.js.map +1 -1
  130. package/dist/src/agent/session/session-inspector.d.ts +2 -1
  131. package/dist/src/agent/session/session-inspector.js +4 -0
  132. package/dist/src/agent/session/session-inspector.js.map +1 -1
  133. package/dist/src/agent/skills/config.js +1 -3
  134. package/dist/src/agent/skills/config.js.map +1 -1
  135. package/dist/src/agent/skills/format-skills-prompt.d.ts +1 -0
  136. package/dist/src/agent/skills/format-skills-prompt.js +3 -2
  137. package/dist/src/agent/skills/format-skills-prompt.js.map +1 -1
  138. package/dist/src/agent/skills/hub-pull.js +1 -1
  139. package/dist/src/agent/skills/index.js +20 -5
  140. package/dist/src/agent/skills/index.js.map +1 -1
  141. package/dist/src/agent/skills/installer.js +14 -27
  142. package/dist/src/agent/skills/installer.js.map +1 -1
  143. package/dist/src/agent/skills/marketplace/adapters/clawhub/adapter.js +11 -1
  144. package/dist/src/agent/skills/marketplace/adapters/clawhub/adapter.js.map +1 -1
  145. package/dist/src/agent/skills/marketplace/adapters/skillhub/adapter.js +18 -4
  146. package/dist/src/agent/skills/marketplace/adapters/skillhub/adapter.js.map +1 -1
  147. package/dist/src/agent/skills/marketplace/adapters/store/adapter.js +11 -2
  148. package/dist/src/agent/skills/marketplace/adapters/store/adapter.js.map +1 -1
  149. package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.d.ts +2 -2
  150. package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.js.map +1 -1
  151. package/dist/src/agent/skills/skill-manager.d.ts +4 -1
  152. package/dist/src/agent/skills/skill-manager.js +3 -3
  153. package/dist/src/agent/skills/skill-manager.js.map +1 -1
  154. package/dist/src/agent/skills/skill-view-path.d.ts +1 -17
  155. package/dist/src/agent/skills/skill-view-path.js +3 -66
  156. package/dist/src/agent/skills/skill-view-path.js.map +1 -1
  157. package/dist/src/agent/skills/test-framework.js +2 -3
  158. package/dist/src/agent/skills/test-framework.js.map +1 -1
  159. package/dist/src/agent/streaming/reasoning-visibility-sse.js +1 -0
  160. package/dist/src/agent/streaming/reasoning-visibility-sse.js.map +1 -1
  161. package/dist/src/agent/tool-manuals/browser.d.ts +1 -0
  162. package/{skills/browser/SKILL.md → dist/src/agent/tool-manuals/browser.js} +51 -54
  163. package/dist/src/agent/tool-manuals/browser.js.map +1 -0
  164. package/dist/src/agent/tool-manuals/index.d.ts +10 -0
  165. package/dist/src/agent/tool-manuals/index.js +28 -0
  166. package/dist/src/agent/tool-manuals/index.js.map +1 -0
  167. package/dist/src/agent/tools/browser/tool/browser-use-tool.js +1 -1
  168. package/dist/src/agent/tools/browser/tool/browser-use-tool.js.map +1 -1
  169. package/dist/src/agent/tools/factory.js +7 -5
  170. package/dist/src/agent/tools/factory.js.map +1 -1
  171. package/dist/src/agent/tools/index.d.ts +1 -0
  172. package/dist/src/agent/tools/index.js +5 -4
  173. package/dist/src/agent/tools/session-search-tool.js +1 -1
  174. package/dist/src/agent/tools/shell.js +1 -1
  175. package/dist/src/agent/tools/skills-tools.js +37 -8
  176. package/dist/src/agent/tools/skills-tools.js.map +1 -1
  177. package/dist/src/agent/tools/tool-manual-tool.d.ts +6 -0
  178. package/dist/src/agent/tools/tool-manual-tool.js +34 -0
  179. package/dist/src/agent/tools/tool-manual-tool.js.map +1 -0
  180. package/dist/src/agent/tools/web-extract.js +2 -2
  181. package/dist/src/agent/tools/web.js +1 -1
  182. package/dist/src/agent/workflow/catalog.d.ts +7 -2
  183. package/dist/src/agent/workflow/catalog.js +66 -25
  184. package/dist/src/agent/workflow/catalog.js.map +1 -1
  185. package/dist/src/agent/workflow/subagent-runner.d.ts +3 -0
  186. package/dist/src/agent/workflow/subagent-runner.js +50 -4
  187. package/dist/src/agent/workflow/subagent-runner.js.map +1 -1
  188. package/dist/src/agent/workflow/types.d.ts +10 -0
  189. package/dist/src/auth/credentials.js +10 -5
  190. package/dist/src/auth/credentials.js.map +1 -1
  191. package/dist/src/browser/actions/extension-registry-bridge.js +1 -1
  192. package/dist/src/browser/actions/registry.js +2 -2
  193. package/dist/src/browser/cdp-local-launcher.js +1 -1
  194. package/dist/src/browser/index.js +3 -3
  195. package/dist/src/browser/providers/browser-ext-install.js +1 -1
  196. package/dist/src/browser/providers/cloakbrowser.js +1 -1
  197. package/dist/src/channels/catalog/channel-catalog-service.d.ts +11 -0
  198. package/dist/src/channels/catalog/channel-catalog-service.js +168 -0
  199. package/dist/src/channels/catalog/channel-catalog-service.js.map +1 -0
  200. package/dist/src/channels/catalog/channel-catalog-types.d.ts +22 -0
  201. package/dist/src/channels/catalog/channel-catalog-types.js +1 -0
  202. package/dist/src/channels/dock.d.ts +0 -7
  203. package/dist/src/channels/dock.js +1 -21
  204. package/dist/src/channels/index.d.ts +1 -3
  205. package/dist/src/channels/index.js +1 -5
  206. package/dist/src/channels/lifecycle-supervisor.d.ts +1 -0
  207. package/dist/src/channels/lifecycle-supervisor.js +11 -0
  208. package/dist/src/channels/lifecycle-supervisor.js.map +1 -1
  209. package/dist/src/channels/manager.d.ts +1 -0
  210. package/dist/src/channels/manager.js +3 -0
  211. package/dist/src/channels/manager.js.map +1 -1
  212. package/dist/src/channels/pairing/pairing-channel.d.ts +2 -3
  213. package/dist/src/channels/pairing/pairing-messages.js +1 -1
  214. package/dist/src/channels/pairing/pairing-messages.js.map +1 -1
  215. package/dist/src/channels/pairing/pairing-service.d.ts +1 -1
  216. package/dist/src/channels/pairing/pairing-service.js +8 -27
  217. package/dist/src/channels/pairing/pairing-service.js.map +1 -1
  218. package/dist/src/channels/plugin-types.d.ts +3 -1
  219. package/dist/src/channels/plugins/types.adapters.d.ts +55 -2
  220. package/dist/src/channels/telegram/index.js +1 -1
  221. package/dist/src/chat-commands/builtins/config.js +4 -4
  222. package/dist/src/chat-commands/builtins/config.js.map +1 -1
  223. package/dist/src/chat-commands/config-paths.js +1 -1
  224. package/dist/src/chat-commands/config-paths.js.map +1 -1
  225. package/dist/src/chat-commands/context.js +1 -1
  226. package/dist/src/chat-commands/context.js.map +1 -1
  227. package/dist/src/cli/bin.js +1 -1
  228. package/dist/src/cli/command-manifest.js +1 -1
  229. package/dist/src/cli/command-manifest.js.map +1 -1
  230. package/dist/src/cli/commands/agent.js +2 -2
  231. package/dist/src/cli/commands/agent.js.map +1 -1
  232. package/dist/src/cli/commands/agents.js +2 -4
  233. package/dist/src/cli/commands/agents.js.map +1 -1
  234. package/dist/src/cli/commands/auth.js +1 -1
  235. package/dist/src/cli/commands/browser-cli-helpers.js +1 -1
  236. package/dist/src/cli/commands/channels.d.ts +1 -5
  237. package/dist/src/cli/commands/channels.js +115 -281
  238. package/dist/src/cli/commands/channels.js.map +1 -1
  239. package/dist/src/cli/commands/config.js +2 -2
  240. package/dist/src/cli/commands/config.js.map +1 -1
  241. package/dist/src/cli/commands/doctor/checks/channel-config.js +16 -69
  242. package/dist/src/cli/commands/doctor/checks/channel-config.js.map +1 -1
  243. package/dist/src/cli/commands/doctor/checks/channel-pairing-pending.js +6 -4
  244. package/dist/src/cli/commands/doctor/checks/channel-pairing-pending.js.map +1 -1
  245. package/dist/src/cli/commands/doctor/checks/channel-plugins.js +2 -2
  246. package/dist/src/cli/commands/doctor/checks/channel-plugins.js.map +1 -1
  247. package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
  248. package/dist/src/cli/commands/doctor/checks/provider-auth.js +13 -9
  249. package/dist/src/cli/commands/doctor/checks/provider-auth.js.map +1 -1
  250. package/dist/src/cli/commands/extension-dev.js +2 -1
  251. package/dist/src/cli/commands/extension-dev.js.map +1 -1
  252. package/dist/src/cli/commands/extension-marketplace.js +2 -1
  253. package/dist/src/cli/commands/extension-marketplace.js.map +1 -1
  254. package/dist/src/cli/commands/extension-pack.js +2 -1
  255. package/dist/src/cli/commands/extension-pack.js.map +1 -1
  256. package/dist/src/cli/commands/models.js +7 -4
  257. package/dist/src/cli/commands/models.js.map +1 -1
  258. package/dist/src/cli/commands/onboard/channels/index.js +1 -1
  259. package/dist/src/cli/commands/onboard/channels/index.js.map +1 -1
  260. package/dist/src/cli/commands/onboard/channels/registry.d.ts +2 -1
  261. package/dist/src/cli/commands/onboard/channels/registry.js +32 -8
  262. package/dist/src/cli/commands/onboard/channels/registry.js.map +1 -1
  263. package/dist/src/cli/commands/onboard/model.js +8 -5
  264. package/dist/src/cli/commands/onboard/model.js.map +1 -1
  265. package/dist/src/cli/commands/onboard.js +4 -6
  266. package/dist/src/cli/commands/onboard.js.map +1 -1
  267. package/dist/src/cli/commands/setup-shared/runner.d.ts +1 -1
  268. package/dist/src/cli/commands/setup-shared/runner.js.map +1 -1
  269. package/dist/src/cli/commands/setup-shared/types.d.ts +1 -1
  270. package/dist/src/cli/commands/setup-shared/types.js.map +1 -1
  271. package/dist/src/cli/commands/tui.js +13 -5
  272. package/dist/src/cli/commands/tui.js.map +1 -1
  273. package/dist/src/cli/extension-cli-register.js +1 -1
  274. package/dist/src/commands/agents.config.d.ts +3 -3
  275. package/dist/src/commands/agents.config.js +7 -7
  276. package/dist/src/commands/agents.config.js.map +1 -1
  277. package/dist/src/config/agent-profile.d.ts +1 -1
  278. package/dist/src/config/agent-profile.js +6 -2
  279. package/dist/src/config/agent-profile.js.map +1 -1
  280. package/dist/src/config/agent-typed-models.d.ts +2 -2
  281. package/dist/src/config/agent-typed-models.js +13 -2
  282. package/dist/src/config/agent-typed-models.js.map +1 -1
  283. package/dist/src/config/index.js +3 -3
  284. package/dist/src/config/integration.d.ts +1 -1
  285. package/dist/src/config/loader.d.ts +0 -1
  286. package/dist/src/config/loader.js +4 -9
  287. package/dist/src/config/loader.js.map +1 -1
  288. package/dist/src/config/models-json.d.ts +6 -6
  289. package/dist/src/config/rules.js +2 -12
  290. package/dist/src/config/rules.js.map +1 -1
  291. package/dist/src/config/schema.d.ts +74 -47
  292. package/dist/src/config/schema.js +28 -66
  293. package/dist/src/config/schema.js.map +1 -1
  294. package/dist/src/config/validate-channel-configs.d.ts +0 -3
  295. package/dist/src/config/validate-channel-configs.js +29 -10
  296. package/dist/src/config/validate-channel-configs.js.map +1 -1
  297. package/dist/src/cron/executor.js +1 -4
  298. package/dist/src/cron/executor.js.map +1 -1
  299. package/dist/src/extensions/activation-context.js +3 -1
  300. package/dist/src/extensions/activation-context.js.map +1 -1
  301. package/dist/src/extensions/activation-planner.js +12 -0
  302. package/dist/src/extensions/activation-planner.js.map +1 -1
  303. package/dist/src/extensions/api.d.ts +5 -1
  304. package/dist/src/extensions/api.js +12 -0
  305. package/dist/src/extensions/api.js.map +1 -1
  306. package/dist/src/extensions/discover-extensions.js +17 -13
  307. package/dist/src/extensions/discover-extensions.js.map +1 -1
  308. package/dist/src/extensions/extension-metadata-snapshot.js +11 -5
  309. package/dist/src/extensions/extension-metadata-snapshot.js.map +1 -1
  310. package/dist/src/extensions/index.js +12 -4
  311. package/dist/src/extensions/index.js.map +1 -0
  312. package/dist/src/extensions/loader.d.ts +5 -1
  313. package/dist/src/extensions/loader.js +12 -11
  314. package/dist/src/extensions/loader.js.map +1 -1
  315. package/dist/src/extensions/manifest-registry.js +98 -93
  316. package/dist/src/extensions/manifest-registry.js.map +1 -1
  317. package/dist/src/extensions/normalize-manifest.js +91 -15
  318. package/dist/src/extensions/normalize-manifest.js.map +1 -1
  319. package/dist/src/extensions/sdk/index.js +1 -1
  320. package/dist/src/extensions/sdk/testing.js +4 -0
  321. package/dist/src/extensions/sdk/testing.js.map +1 -1
  322. package/dist/src/extensions/types/core.d.ts +32 -1
  323. package/dist/src/extensions/types/manifest.d.ts +60 -0
  324. package/dist/src/extensions/types/tui.d.ts +414 -5
  325. package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
  326. package/dist/src/gateway/agent-builtin-tools.js +16 -0
  327. package/dist/src/gateway/agent-builtin-tools.js.map +1 -1
  328. package/dist/src/gateway/agent-run-relay.d.ts +2 -3
  329. package/dist/src/gateway/agent-run-relay.js +10 -3
  330. package/dist/src/gateway/agent-run-relay.js.map +1 -1
  331. package/dist/src/gateway/agents-admin.d.ts +32 -19
  332. package/dist/src/gateway/agents-admin.js +113 -93
  333. package/dist/src/gateway/agents-admin.js.map +1 -1
  334. package/dist/src/gateway/chat-stream/mapper.d.ts +34 -0
  335. package/dist/src/gateway/chat-stream/mapper.js +244 -0
  336. package/dist/src/gateway/chat-stream/mapper.js.map +1 -0
  337. package/dist/src/gateway/chat-stream/protocol.d.ts +100 -0
  338. package/dist/src/gateway/chat-stream/protocol.js +1 -0
  339. package/dist/src/gateway/heartbeat/service.js +1 -1
  340. package/dist/src/gateway/hono/lib/agent-model.d.ts +4 -4
  341. package/dist/src/gateway/hono/lib/agent-model.js +13 -11
  342. package/dist/src/gateway/hono/lib/agent-model.js.map +1 -1
  343. package/dist/src/gateway/hono/lib/config-payload.d.ts +19 -7
  344. package/dist/src/gateway/hono/lib/config-payload.js +16 -15
  345. package/dist/src/gateway/hono/lib/config-payload.js.map +1 -1
  346. package/dist/src/gateway/hono/routes/agents.js +83 -48
  347. package/dist/src/gateway/hono/routes/agents.js.map +1 -1
  348. package/dist/src/gateway/hono/routes/channels.js +134 -214
  349. package/dist/src/gateway/hono/routes/channels.js.map +1 -1
  350. package/dist/src/gateway/hono/routes/commands-skills.js +10 -4
  351. package/dist/src/gateway/hono/routes/commands-skills.js.map +1 -1
  352. package/dist/src/gateway/hono/routes/config-patch/agents.js +26 -13
  353. package/dist/src/gateway/hono/routes/config-patch/agents.js.map +1 -1
  354. package/dist/src/gateway/hono/routes/config-patch/channels.d.ts +1 -11
  355. package/dist/src/gateway/hono/routes/config-patch/channels.js +18 -165
  356. package/dist/src/gateway/hono/routes/config-patch/channels.js.map +1 -1
  357. package/dist/src/gateway/hono/routes/config.js +5 -2
  358. package/dist/src/gateway/hono/routes/config.js.map +1 -1
  359. package/dist/src/gateway/hono/routes/dreaming.js +1 -1
  360. package/dist/src/gateway/hono/routes/lazy-bundles.js +13 -1
  361. package/dist/src/gateway/hono/routes/lazy-bundles.js.map +1 -1
  362. package/dist/src/gateway/hono/routes/public-gateway.js +2 -4
  363. package/dist/src/gateway/hono/routes/public-gateway.js.map +1 -1
  364. package/dist/src/gateway/hono/routes/sessions.js +179 -0
  365. package/dist/src/gateway/hono/routes/sessions.js.map +1 -1
  366. package/dist/src/gateway/hono/routes/tui.d.ts +3 -0
  367. package/dist/src/gateway/hono/routes/tui.js +16 -0
  368. package/dist/src/gateway/hono/routes/tui.js.map +1 -0
  369. package/dist/src/gateway/hono/routes/workflows.js +25 -1
  370. package/dist/src/gateway/hono/routes/workflows.js.map +1 -1
  371. package/dist/src/gateway/hono/sse.d.ts +5 -7
  372. package/dist/src/gateway/hono/sse.js +21 -38
  373. package/dist/src/gateway/hono/sse.js.map +1 -1
  374. package/dist/src/gateway/protocol.js.map +1 -1
  375. package/dist/src/gateway/service/agent-runner.d.ts +2 -4
  376. package/dist/src/gateway/service/agent-runner.js +1 -1
  377. package/dist/src/gateway/service/agent-runner.js.map +1 -1
  378. package/dist/src/gateway/service/marketplace-service.d.ts +4 -3
  379. package/dist/src/gateway/service/marketplace-service.js +7 -4
  380. package/dist/src/gateway/service/marketplace-service.js.map +1 -1
  381. package/dist/src/gateway/service/run-gateway-agent.d.ts +2 -6
  382. package/dist/src/gateway/service/run-gateway-agent.js +63 -36
  383. package/dist/src/gateway/service/run-gateway-agent.js.map +1 -1
  384. package/dist/src/gateway/service/sessions-api.d.ts +19 -0
  385. package/dist/src/gateway/service/sessions-api.js +12 -0
  386. package/dist/src/gateway/service/sessions-api.js.map +1 -1
  387. package/dist/src/gateway/service.d.ts +6 -0
  388. package/dist/src/gateway/service.js +73 -57
  389. package/dist/src/gateway/service.js.map +1 -1
  390. package/dist/src/heartbeat/index.js +1 -1
  391. package/dist/src/mcp/channel-bridge.js +1 -1
  392. package/dist/src/project-trust/trust-store.d.ts +30 -0
  393. package/dist/src/project-trust/trust-store.js +194 -0
  394. package/dist/src/project-trust/trust-store.js.map +1 -0
  395. package/dist/src/providers/index.d.ts +1 -1
  396. package/dist/src/providers/index.js +18 -7
  397. package/dist/src/providers/index.js.map +1 -1
  398. package/dist/src/routing/resolve-route.d.ts +0 -3
  399. package/dist/src/routing/resolve-route.js.map +1 -1
  400. package/dist/src/routing/resolve-tui-session-key.d.ts +2 -0
  401. package/dist/src/routing/resolve-tui-session-key.js +8 -3
  402. package/dist/src/routing/resolve-tui-session-key.js.map +1 -1
  403. package/dist/src/session/client-history.d.ts +32 -0
  404. package/dist/src/session/client-history.js +232 -1
  405. package/dist/src/session/client-history.js.map +1 -1
  406. package/dist/src/session/manager.d.ts +37 -4
  407. package/dist/src/session/manager.js +39 -15
  408. package/dist/src/session/manager.js.map +1 -1
  409. package/dist/src/session/session-context-for-llm.d.ts +93 -1
  410. package/dist/src/session/session-context-for-llm.js +105 -2
  411. package/dist/src/session/session-context-for-llm.js.map +1 -1
  412. package/dist/src/session/store.d.ts +37 -0
  413. package/dist/src/session/store.js +127 -2
  414. package/dist/src/session/store.js.map +1 -1
  415. package/dist/src/session/stored-rows-to-file-entries.js +37 -1
  416. package/dist/src/session/stored-rows-to-file-entries.js.map +1 -1
  417. package/dist/src/session/types.d.ts +14 -1
  418. package/dist/src/session/types.js.map +1 -1
  419. package/dist/src/share/share-thumbnail.js +1 -1
  420. package/dist/src/storage/sqlite/migrations/004_add_session_type_metadata.sql +15 -0
  421. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  422. package/dist/src/storage/sqlite/migrations/runner.js +3 -3
  423. package/dist/src/storage/sqlite/migrations/runner.js.map +1 -1
  424. package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
  425. package/dist/src/storage/sqlite/row-mappers.d.ts +14 -1
  426. package/dist/src/storage/sqlite/row-mappers.js +14 -1
  427. package/dist/src/storage/sqlite/row-mappers.js.map +1 -1
  428. package/dist/src/storage/sqlite/schema.js +1 -1
  429. package/dist/src/storage/sqlite/session-metadata.js +1 -0
  430. package/dist/src/storage/sqlite/session-metadata.js.map +1 -1
  431. package/dist/src/storage/sqlite/session-repository.js +52 -25
  432. package/dist/src/storage/sqlite/session-repository.js.map +1 -1
  433. package/dist/src/tui/backends/embedded-backend.d.ts +53 -4
  434. package/dist/src/tui/backends/embedded-backend.js +227 -39
  435. package/dist/src/tui/backends/embedded-backend.js.map +1 -1
  436. package/dist/src/tui/backends/gateway-sse-backend.d.ts +59 -3
  437. package/dist/src/tui/backends/gateway-sse-backend.js +416 -26
  438. package/dist/src/tui/backends/gateway-sse-backend.js.map +1 -1
  439. package/dist/src/tui/chat-history.d.ts +5 -1
  440. package/dist/src/tui/chat-history.js +78 -8
  441. package/dist/src/tui/chat-history.js.map +1 -1
  442. package/dist/src/tui/clipboard-text.d.ts +5 -0
  443. package/dist/src/tui/clipboard-text.js +46 -0
  444. package/dist/src/tui/clipboard-text.js.map +1 -0
  445. package/dist/src/tui/components/assistant-message.d.ts +19 -3
  446. package/dist/src/tui/components/assistant-message.js +115 -9
  447. package/dist/src/tui/components/assistant-message.js.map +1 -1
  448. package/dist/src/tui/components/bash-execution.d.ts +3 -2
  449. package/dist/src/tui/components/bash-execution.js +31 -3
  450. package/dist/src/tui/components/bash-execution.js.map +1 -1
  451. package/dist/src/tui/components/bash-summary.d.ts +23 -0
  452. package/dist/src/tui/components/bash-summary.js +87 -0
  453. package/dist/src/tui/components/bash-summary.js.map +1 -0
  454. package/dist/src/tui/components/branch-message-summary.d.ts +17 -0
  455. package/dist/src/tui/components/branch-message-summary.js +43 -0
  456. package/dist/src/tui/components/branch-message-summary.js.map +1 -0
  457. package/dist/src/tui/components/branch-summary.d.ts +13 -0
  458. package/dist/src/tui/components/branch-summary.js +51 -0
  459. package/dist/src/tui/components/branch-summary.js.map +1 -0
  460. package/dist/src/tui/components/chat-log.d.ts +46 -6
  461. package/dist/src/tui/components/chat-log.js +183 -21
  462. package/dist/src/tui/components/chat-log.js.map +1 -1
  463. package/dist/src/tui/components/compaction-summary.d.ts +13 -0
  464. package/dist/src/tui/components/compaction-summary.js +46 -0
  465. package/dist/src/tui/components/compaction-summary.js.map +1 -0
  466. package/dist/src/tui/components/custom-editor.d.ts +1 -0
  467. package/dist/src/tui/components/custom-editor.js +2 -0
  468. package/dist/src/tui/components/custom-editor.js.map +1 -1
  469. package/dist/src/tui/components/custom-message.d.ts +23 -0
  470. package/dist/src/tui/components/custom-message.js +65 -0
  471. package/dist/src/tui/components/custom-message.js.map +1 -0
  472. package/dist/src/tui/components/extension-dialog.d.ts +42 -0
  473. package/dist/src/tui/components/extension-dialog.js +127 -0
  474. package/dist/src/tui/components/extension-dialog.js.map +1 -0
  475. package/dist/src/tui/components/scoped-models-selector.d.ts +7 -2
  476. package/dist/src/tui/components/scoped-models-selector.js +89 -16
  477. package/dist/src/tui/components/scoped-models-selector.js.map +1 -1
  478. package/dist/src/tui/components/searchable-select-list.d.ts +30 -3
  479. package/dist/src/tui/components/searchable-select-list.js +82 -10
  480. package/dist/src/tui/components/searchable-select-list.js.map +1 -1
  481. package/dist/src/tui/components/session-selector.d.ts +18 -4
  482. package/dist/src/tui/components/session-selector.js +207 -40
  483. package/dist/src/tui/components/session-selector.js.map +1 -1
  484. package/dist/src/tui/components/settings-selector.d.ts +6 -2
  485. package/dist/src/tui/components/settings-selector.js +126 -7
  486. package/dist/src/tui/components/settings-selector.js.map +1 -1
  487. package/dist/src/tui/components/thinking-selector.d.ts +12 -0
  488. package/dist/src/tui/components/thinking-selector.js +48 -0
  489. package/dist/src/tui/components/thinking-selector.js.map +1 -0
  490. package/dist/src/tui/components/tool-execution.d.ts +57 -3
  491. package/dist/src/tui/components/tool-execution.js +378 -28
  492. package/dist/src/tui/components/tool-execution.js.map +1 -1
  493. package/dist/src/tui/components/tui-bottom-bar.d.ts +9 -1
  494. package/dist/src/tui/components/tui-bottom-bar.js +56 -11
  495. package/dist/src/tui/components/tui-bottom-bar.js.map +1 -1
  496. package/dist/src/tui/components/tui-header.d.ts +9 -2
  497. package/dist/src/tui/components/tui-header.js +25 -5
  498. package/dist/src/tui/components/tui-header.js.map +1 -1
  499. package/dist/src/tui/components/user-message.d.ts +4 -2
  500. package/dist/src/tui/components/user-message.js +42 -9
  501. package/dist/src/tui/components/user-message.js.map +1 -1
  502. package/dist/src/tui/components/visual-truncate.d.ts +11 -0
  503. package/dist/src/tui/components/visual-truncate.js +27 -0
  504. package/dist/src/tui/components/visual-truncate.js.map +1 -0
  505. package/dist/src/tui/extension-host/autocomplete.d.ts +43 -0
  506. package/dist/src/tui/extension-host/autocomplete.js +116 -0
  507. package/dist/src/tui/extension-host/autocomplete.js.map +1 -0
  508. package/dist/src/tui/extension-host/host.d.ts +31 -1
  509. package/dist/src/tui/extension-host/host.js +123 -6
  510. package/dist/src/tui/extension-host/host.js.map +1 -1
  511. package/dist/src/tui/extension-host/load-extensions.d.ts +6 -1
  512. package/dist/src/tui/extension-host/load-extensions.js +4 -3
  513. package/dist/src/tui/extension-host/load-extensions.js.map +1 -1
  514. package/dist/src/tui/extension-host/runtime-context.d.ts +21 -0
  515. package/dist/src/tui/extension-host/runtime-context.js +152 -0
  516. package/dist/src/tui/extension-host/runtime-context.js.map +1 -0
  517. package/dist/src/tui/extension-host/runtime.d.ts +52 -4
  518. package/dist/src/tui/extension-host/runtime.js +547 -85
  519. package/dist/src/tui/extension-host/runtime.js.map +1 -1
  520. package/dist/src/tui/extension-host/surface.d.ts +20 -0
  521. package/dist/src/tui/extension-host/surface.js +30 -6
  522. package/dist/src/tui/extension-host/surface.js.map +1 -1
  523. package/dist/src/tui/extension-host/tool-renderers.d.ts +6 -3
  524. package/dist/src/tui/extension-host/tool-renderers.js +43 -5
  525. package/dist/src/tui/extension-host/tool-renderers.js.map +1 -1
  526. package/dist/src/tui/format-tui-hotkeys.d.ts +12 -2
  527. package/dist/src/tui/format-tui-hotkeys.js +22 -5
  528. package/dist/src/tui/format-tui-hotkeys.js.map +1 -1
  529. package/dist/src/tui/tui-agent-events.d.ts +8 -6
  530. package/dist/src/tui/tui-agent-events.js +200 -59
  531. package/dist/src/tui/tui-agent-events.js.map +1 -1
  532. package/dist/src/tui/tui-backend.d.ts +169 -3
  533. package/dist/src/tui/tui-command-formatters.d.ts +76 -0
  534. package/dist/src/tui/tui-command-formatters.js +594 -0
  535. package/dist/src/tui/tui-command-formatters.js.map +1 -0
  536. package/dist/src/tui/tui-commands.d.ts +57 -7
  537. package/dist/src/tui/tui-commands.js +639 -43
  538. package/dist/src/tui/tui-commands.js.map +1 -1
  539. package/dist/src/tui/tui-context-usage.d.ts +1 -1
  540. package/dist/src/tui/tui-context-usage.js +9 -1
  541. package/dist/src/tui/tui-context-usage.js.map +1 -1
  542. package/dist/src/tui/tui-extension-user-message.d.ts +8 -0
  543. package/dist/src/tui/tui-extension-user-message.js +32 -0
  544. package/dist/src/tui/tui-extension-user-message.js.map +1 -0
  545. package/dist/src/tui/tui-follow-up-queue.d.ts +9 -0
  546. package/dist/src/tui/tui-follow-up-queue.js +18 -0
  547. package/dist/src/tui/tui-follow-up-queue.js.map +1 -0
  548. package/dist/src/tui/tui-local-shell.d.ts +11 -1
  549. package/dist/src/tui/tui-local-shell.js +50 -8
  550. package/dist/src/tui/tui-local-shell.js.map +1 -1
  551. package/dist/src/tui/tui-model-picker.d.ts +26 -0
  552. package/dist/src/tui/tui-model-picker.js +152 -0
  553. package/dist/src/tui/tui-model-picker.js.map +1 -0
  554. package/dist/src/tui/tui-oauth-login.d.ts +16 -0
  555. package/dist/src/tui/tui-oauth-login.js +189 -0
  556. package/dist/src/tui/tui-oauth-login.js.map +1 -0
  557. package/dist/src/tui/tui-overlays.d.ts +3 -3
  558. package/dist/src/tui/tui-overlays.js +6 -7
  559. package/dist/src/tui/tui-overlays.js.map +1 -1
  560. package/dist/src/tui/tui-picker-overlay.d.ts +27 -32
  561. package/dist/src/tui/tui-picker-overlay.js +340 -30
  562. package/dist/src/tui/tui-picker-overlay.js.map +1 -1
  563. package/dist/src/tui/tui-picker-services.d.ts +41 -0
  564. package/dist/src/tui/tui-picker-services.js +1 -0
  565. package/dist/src/tui/tui-run-state.d.ts +11 -0
  566. package/dist/src/tui/tui-run-state.js +114 -0
  567. package/dist/src/tui/tui-run-state.js.map +1 -0
  568. package/dist/src/tui/tui-runtime-hints.d.ts +4 -0
  569. package/dist/src/tui/tui-runtime-hints.js +18 -0
  570. package/dist/src/tui/tui-runtime-hints.js.map +1 -0
  571. package/dist/src/tui/tui-scoped-models.d.ts +1 -1
  572. package/dist/src/tui/tui-scoped-models.js +2 -2
  573. package/dist/src/tui/tui-scoped-models.js.map +1 -1
  574. package/dist/src/tui/tui-session-actions.d.ts +5 -3
  575. package/dist/src/tui/tui-session-actions.js +21 -9
  576. package/dist/src/tui/tui-session-actions.js.map +1 -1
  577. package/dist/src/tui/tui-session-format.d.ts +4 -1
  578. package/dist/src/tui/tui-session-format.js +17 -3
  579. package/dist/src/tui/tui-session-format.js.map +1 -1
  580. package/dist/src/tui/tui-session-snapshot.d.ts +82 -0
  581. package/dist/src/tui/tui-session-snapshot.js +184 -0
  582. package/dist/src/tui/tui-session-snapshot.js.map +1 -0
  583. package/dist/src/tui/tui-session-stats.d.ts +3 -0
  584. package/dist/src/tui/tui-session-stats.js +59 -0
  585. package/dist/src/tui/tui-session-stats.js.map +1 -0
  586. package/dist/src/tui/tui-settings.d.ts +21 -0
  587. package/dist/src/tui/tui-settings.js +28 -1
  588. package/dist/src/tui/tui-settings.js.map +1 -1
  589. package/dist/src/tui/tui-skills-autocomplete.js +1 -1
  590. package/dist/src/tui/tui-skills-autocomplete.js.map +1 -1
  591. package/dist/src/tui/tui-startup-resources.d.ts +3 -0
  592. package/dist/src/tui/tui-startup-resources.js +39 -0
  593. package/dist/src/tui/tui-startup-resources.js.map +1 -0
  594. package/dist/src/tui/tui-startup-text.d.ts +10 -0
  595. package/dist/src/tui/tui-startup-text.js +58 -0
  596. package/dist/src/tui/tui-startup-text.js.map +1 -0
  597. package/dist/src/tui/tui-stdio-filter.d.ts +1 -0
  598. package/dist/src/tui/tui-stdio-filter.js +11 -7
  599. package/dist/src/tui/tui-stdio-filter.js.map +1 -1
  600. package/dist/src/tui/tui-submit.d.ts +2 -0
  601. package/dist/src/tui/tui-submit.js +2 -1
  602. package/dist/src/tui/tui-submit.js.map +1 -1
  603. package/dist/src/tui/tui-tool-diff.js +61 -7
  604. package/dist/src/tui/tui-tool-diff.js.map +1 -1
  605. package/dist/src/tui/tui-tool-result.d.ts +17 -0
  606. package/dist/src/tui/tui-tool-result.js +74 -0
  607. package/dist/src/tui/tui-tool-result.js.map +1 -0
  608. package/dist/src/tui/tui-transcript-tree-picker.d.ts +57 -0
  609. package/dist/src/tui/tui-transcript-tree-picker.js +604 -0
  610. package/dist/src/tui/tui-transcript-tree-picker.js.map +1 -0
  611. package/dist/src/tui/tui-transcript-tree.d.ts +7 -0
  612. package/dist/src/tui/tui-transcript-tree.js +316 -0
  613. package/dist/src/tui/tui-transcript-tree.js.map +1 -0
  614. package/dist/src/tui/tui-types.d.ts +25 -34
  615. package/dist/src/tui/tui-types.js +12 -0
  616. package/dist/src/tui/tui-types.js.map +1 -1
  617. package/dist/src/tui/tui.js +1288 -112
  618. package/dist/src/tui/tui.js.map +1 -1
  619. package/dist/src/tui/xopc-tui-keybindings.d.ts +127 -2
  620. package/dist/src/tui/xopc-tui-keybindings.js +127 -2
  621. package/dist/src/tui/xopc-tui-keybindings.js.map +1 -1
  622. package/dist/src/workflows/domain/definition-utils.d.ts +2 -1
  623. package/dist/src/workflows/domain/definition-utils.js +18 -8
  624. package/dist/src/workflows/domain/definition-utils.js.map +1 -1
  625. package/dist/src/workflows/domain/definition.d.ts +25 -0
  626. package/dist/src/workflows/domain/event.d.ts +1 -0
  627. package/dist/src/workflows/domain/result.d.ts +15 -0
  628. package/dist/src/workflows/domain/run.d.ts +2 -0
  629. package/dist/src/workflows/domain/run.js.map +1 -1
  630. package/dist/src/workflows/engine/projector.js +4 -0
  631. package/dist/src/workflows/engine/projector.js.map +1 -1
  632. package/dist/src/workflows/engine/workflow-engine.d.ts +37 -1
  633. package/dist/src/workflows/engine/workflow-engine.js +75 -11
  634. package/dist/src/workflows/engine/workflow-engine.js.map +1 -1
  635. package/dist/src/workflows/index.d.ts +1 -0
  636. package/dist/src/workflows/index.js +4 -1
  637. package/dist/src/workflows/registry/catalog-workflow-definition-registry.d.ts +9 -0
  638. package/dist/src/workflows/registry/catalog-workflow-definition-registry.js +40 -0
  639. package/dist/src/workflows/registry/catalog-workflow-definition-registry.js.map +1 -0
  640. package/dist/src/workflows/registry/index.d.ts +2 -0
  641. package/dist/src/workflows/registry/index.js +2 -0
  642. package/dist/src/workflows/registry/workflow-definition-registry.d.ts +15 -0
  643. package/dist/src/workflows/registry/workflow-definition-registry.js +1 -0
  644. package/dist/src/workflows/runtime/index.d.ts +2 -0
  645. package/dist/src/workflows/runtime/index.js +2 -1
  646. package/dist/src/workflows/runtime/script-workflow-runtime.d.ts +5 -0
  647. package/dist/src/workflows/runtime/script-workflow-runtime.js +15 -0
  648. package/dist/src/workflows/runtime/script-workflow-runtime.js.map +1 -0
  649. package/dist/src/workflows/runtime/workflow-runtime-port.d.ts +16 -0
  650. package/dist/src/workflows/runtime/workflow-runtime-port.js +1 -0
  651. package/dist/src/workflows/service/run-view-to-snapshot.js +3 -0
  652. package/dist/src/workflows/service/run-view-to-snapshot.js.map +1 -1
  653. package/dist/src/workflows/service/workflow-run-service.d.ts +3 -0
  654. package/dist/src/workflows/service/workflow-run-service.js +10 -15
  655. package/dist/src/workflows/service/workflow-run-service.js.map +1 -1
  656. package/dist/src/workflows/service/workflow-session-bridge.d.ts +1 -1
  657. package/dist/src/workflows/service/workflow-session-bridge.js +4 -1
  658. package/dist/src/workflows/service/workflow-session-bridge.js.map +1 -1
  659. package/package.json +21 -15
  660. package/skills/creative/frontend-design/SKILL.md +1 -1
  661. package/skills/creative/theme-factory/SKILL.md +1 -1
  662. package/skills/documents/xlsx/SKILL.md +1 -1
  663. package/skills/engineering/diagnose/SKILL.md +2 -2
  664. package/skills/engineering/tdd/SKILL.md +1 -1
  665. package/skills/tools/github/SKILL.md +6 -1
  666. package/skills/tools/webapp-testing/SKILL.md +4 -1
  667. package/dist/extensions/telegram/src/adapters/config-surface.d.ts +0 -2
  668. package/dist/extensions/telegram/src/adapters/config-surface.js +0 -26
  669. package/dist/extensions/telegram/src/adapters/config-surface.js.map +0 -1
  670. package/dist/extensions/weixin/src/__tests__/workflow-progress.test.js +0 -158
  671. package/dist/extensions/weixin/src/__tests__/workflow-progress.test.js.map +0 -1
  672. package/dist/gateway/static/root/assets/agents-BwXkia_W.js +0 -222
  673. package/dist/gateway/static/root/assets/channels-settings-tlOTdaXw.js +0 -1
  674. package/dist/gateway/static/root/assets/channels-status-swr-D4XjqwqC.js +0 -8
  675. package/dist/gateway/static/root/assets/cron-api-DcmfGuj0.js +0 -1
  676. package/dist/gateway/static/root/assets/cron-page-CijJ4G6F.js +0 -1
  677. package/dist/gateway/static/root/assets/extension-settings-page-CyJk_G64.js +0 -1
  678. package/dist/gateway/static/root/assets/field-primitives-C4GpxsDo.js +0 -1
  679. package/dist/gateway/static/root/assets/heartbeat-config-api-CLD0Gpi3.js +0 -1
  680. package/dist/gateway/static/root/assets/index-0HmunJW9.js +0 -4845
  681. package/dist/gateway/static/root/assets/index-Bk75Phrd.css +0 -1
  682. package/dist/gateway/static/root/assets/notes-page-BBnTh0uI.js +0 -1
  683. package/dist/gateway/static/root/assets/sessions-page-B0riYK7j.js +0 -1
  684. package/dist/gateway/static/root/assets/settings-advanced-gate-DiP_WHu_.js +0 -2
  685. package/dist/gateway/static/root/assets/settings-page-1ZPhcCZ9.js +0 -3
  686. package/dist/gateway/static/root/assets/skills-page-BQ1hllKD.js +0 -2
  687. package/dist/gateway/static/root/assets/url-F3_D_6zZ.js +0 -3
  688. package/dist/gateway/static/root/assets/utils-CPr3FBh2.js +0 -1
  689. package/dist/gateway/static/root/assets/voice-api-key-field-BkbDl6dH.js +0 -1
  690. package/dist/gateway/static/root/assets/workflows-page-D059ysoF.js +0 -27
  691. package/dist/src/agent/embedded/map-stream-events.d.ts +0 -9
  692. package/dist/src/agent/embedded/map-stream-events.js +0 -63
  693. package/dist/src/agent/embedded/map-stream-events.js.map +0 -1
  694. package/dist/src/channels/dock.js.map +0 -1
  695. package/dist/src/channels/plugins/bundled.d.ts +0 -11
  696. package/dist/src/channels/plugins/bundled.js +0 -10
  697. package/dist/src/channels/plugins/bundled.js.map +0 -1
  698. package/dist/src/channels/registry.d.ts +0 -25
  699. package/dist/src/channels/registry.js +0 -82
  700. package/dist/src/channels/registry.js.map +0 -1
  701. package/dist/src/config/localized-text.d.ts +0 -6
  702. package/dist/src/config/localized-text.js +0 -42
  703. package/dist/src/config/localized-text.js.map +0 -1
  704. package/dist/src/generated/bundled-channel-plugins.d.ts +0 -10
  705. package/dist/src/generated/bundled-channel-plugins.js +0 -16
  706. package/dist/src/generated/bundled-channel-plugins.js.map +0 -1
  707. package/dist/src/tui/stream-assembler.d.ts +0 -22
  708. package/dist/src/tui/stream-assembler.js +0 -63
  709. package/dist/src/tui/stream-assembler.js.map +0 -1
  710. package/skills/browser/SKILL-zh.md +0 -188
  711. package/skills/business/company-values/SKILL-zh.md +0 -80
  712. package/skills/business/company-values/SKILL.md +0 -80
  713. package/skills/business/find-community/SKILL-zh.md +0 -50
  714. package/skills/business/find-community/SKILL.md +0 -50
  715. package/skills/business/first-customers/SKILL-zh.md +0 -76
  716. package/skills/business/first-customers/SKILL.md +0 -76
  717. package/skills/business/grow-sustainably/SKILL-zh.md +0 -92
  718. package/skills/business/grow-sustainably/SKILL.md +0 -92
  719. package/skills/business/marketing-plan/SKILL-zh.md +0 -100
  720. package/skills/business/marketing-plan/SKILL.md +0 -100
  721. package/skills/business/minimalist-review/SKILL-zh.md +0 -82
  722. package/skills/business/minimalist-review/SKILL.md +0 -82
  723. package/skills/business/mvp/SKILL-zh.md +0 -81
  724. package/skills/business/mvp/SKILL.md +0 -81
  725. package/skills/business/pricing/SKILL-zh.md +0 -64
  726. package/skills/business/pricing/SKILL.md +0 -64
  727. package/skills/business/processize/SKILL-zh.md +0 -91
  728. package/skills/business/processize/SKILL.md +0 -91
  729. package/skills/business/validate-idea/SKILL-zh.md +0 -68
  730. package/skills/business/validate-idea/SKILL.md +0 -68
  731. package/skills/creative/algorithmic-art/LICENSE.txt +0 -202
  732. package/skills/creative/algorithmic-art/SKILL-zh.md +0 -405
  733. package/skills/creative/algorithmic-art/SKILL.md +0 -405
  734. package/skills/creative/algorithmic-art/templates/generator_template.js +0 -223
  735. package/skills/creative/algorithmic-art/templates/viewer.html +0 -599
  736. package/skills/creative/frontend-design/SKILL-zh.md +0 -42
  737. package/skills/creative/theme-factory/SKILL-zh.md +0 -59
  738. package/skills/creative/web-artifacts-builder/LICENSE.txt +0 -202
  739. package/skills/creative/web-artifacts-builder/SKILL-zh.md +0 -74
  740. package/skills/creative/web-artifacts-builder/SKILL.md +0 -74
  741. package/skills/creative/web-artifacts-builder/scripts/bundle-artifact.sh +0 -54
  742. package/skills/creative/web-artifacts-builder/scripts/init-artifact.sh +0 -322
  743. package/skills/creative/web-artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
  744. package/skills/documents/doc-coauthoring/SKILL-zh.md +0 -375
  745. package/skills/documents/doc-coauthoring/SKILL.md +0 -375
  746. package/skills/documents/docx/LICENSE.txt +0 -30
  747. package/skills/documents/docx/SKILL-zh.md +0 -590
  748. package/skills/documents/docx/SKILL.md +0 -590
  749. package/skills/documents/docx/scripts/__init__.py +0 -1
  750. package/skills/documents/docx/scripts/accept_changes.py +0 -135
  751. package/skills/documents/docx/scripts/comment.py +0 -318
  752. package/skills/documents/docx/scripts/office/helpers/__init__.py +0 -0
  753. package/skills/documents/docx/scripts/office/helpers/merge_runs.py +0 -199
  754. package/skills/documents/docx/scripts/office/helpers/simplify_redlines.py +0 -197
  755. package/skills/documents/docx/scripts/office/pack.py +0 -159
  756. package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
  757. package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
  758. package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
  759. package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
  760. package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
  761. package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
  762. package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
  763. package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
  764. package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
  765. package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
  766. package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
  767. package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
  768. package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
  769. package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
  770. package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
  771. package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
  772. package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
  773. package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
  774. package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
  775. package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
  776. package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
  777. package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
  778. package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
  779. package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
  780. package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
  781. package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
  782. package/skills/documents/docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
  783. package/skills/documents/docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
  784. package/skills/documents/docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
  785. package/skills/documents/docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
  786. package/skills/documents/docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
  787. package/skills/documents/docx/scripts/office/schemas/mce/mc.xsd +0 -75
  788. package/skills/documents/docx/scripts/office/schemas/microsoft/wml-2010.xsd +0 -560
  789. package/skills/documents/docx/scripts/office/schemas/microsoft/wml-2012.xsd +0 -67
  790. package/skills/documents/docx/scripts/office/schemas/microsoft/wml-2018.xsd +0 -14
  791. package/skills/documents/docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +0 -20
  792. package/skills/documents/docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +0 -13
  793. package/skills/documents/docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
  794. package/skills/documents/docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +0 -8
  795. package/skills/documents/docx/scripts/office/soffice.py +0 -183
  796. package/skills/documents/docx/scripts/office/unpack.py +0 -132
  797. package/skills/documents/docx/scripts/office/validate.py +0 -111
  798. package/skills/documents/docx/scripts/office/validators/__init__.py +0 -15
  799. package/skills/documents/docx/scripts/office/validators/base.py +0 -847
  800. package/skills/documents/docx/scripts/office/validators/docx.py +0 -446
  801. package/skills/documents/docx/scripts/office/validators/pptx.py +0 -275
  802. package/skills/documents/docx/scripts/office/validators/redlining.py +0 -247
  803. package/skills/documents/docx/scripts/templates/comments.xml +0 -3
  804. package/skills/documents/docx/scripts/templates/commentsExtended.xml +0 -3
  805. package/skills/documents/docx/scripts/templates/commentsExtensible.xml +0 -3
  806. package/skills/documents/docx/scripts/templates/commentsIds.xml +0 -3
  807. package/skills/documents/docx/scripts/templates/people.xml +0 -3
  808. package/skills/documents/pdf/LICENSE.txt +0 -30
  809. package/skills/documents/pdf/SKILL-zh.md +0 -314
  810. package/skills/documents/pdf/SKILL.md +0 -314
  811. package/skills/documents/pdf/forms.md +0 -294
  812. package/skills/documents/pdf/reference.md +0 -612
  813. package/skills/documents/pdf/scripts/check_bounding_boxes.py +0 -65
  814. package/skills/documents/pdf/scripts/check_fillable_fields.py +0 -11
  815. package/skills/documents/pdf/scripts/convert_pdf_to_images.py +0 -33
  816. package/skills/documents/pdf/scripts/create_validation_image.py +0 -37
  817. package/skills/documents/pdf/scripts/extract_form_field_info.py +0 -122
  818. package/skills/documents/pdf/scripts/extract_form_structure.py +0 -115
  819. package/skills/documents/pdf/scripts/fill_fillable_fields.py +0 -98
  820. package/skills/documents/pdf/scripts/fill_pdf_form_with_annotations.py +0 -107
  821. package/skills/documents/pptx/LICENSE.txt +0 -30
  822. package/skills/documents/pptx/SKILL-zh.md +0 -232
  823. package/skills/documents/pptx/SKILL.md +0 -232
  824. package/skills/documents/pptx/editing.md +0 -205
  825. package/skills/documents/pptx/pptxgenjs.md +0 -420
  826. package/skills/documents/pptx/scripts/__init__.py +0 -0
  827. package/skills/documents/pptx/scripts/add_slide.py +0 -195
  828. package/skills/documents/pptx/scripts/clean.py +0 -286
  829. package/skills/documents/pptx/scripts/office/helpers/__init__.py +0 -0
  830. package/skills/documents/pptx/scripts/office/helpers/merge_runs.py +0 -199
  831. package/skills/documents/pptx/scripts/office/helpers/simplify_redlines.py +0 -197
  832. package/skills/documents/pptx/scripts/office/pack.py +0 -159
  833. package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +0 -1499
  834. package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +0 -146
  835. package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +0 -1085
  836. package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +0 -11
  837. package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +0 -3081
  838. package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +0 -23
  839. package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +0 -185
  840. package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +0 -287
  841. package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +0 -1676
  842. package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +0 -28
  843. package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +0 -144
  844. package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +0 -174
  845. package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +0 -25
  846. package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +0 -18
  847. package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +0 -59
  848. package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +0 -56
  849. package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +0 -195
  850. package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +0 -582
  851. package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +0 -25
  852. package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +0 -4439
  853. package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +0 -570
  854. package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +0 -509
  855. package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +0 -12
  856. package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +0 -108
  857. package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +0 -96
  858. package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +0 -3646
  859. package/skills/documents/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +0 -116
  860. package/skills/documents/pptx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +0 -42
  861. package/skills/documents/pptx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +0 -50
  862. package/skills/documents/pptx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +0 -49
  863. package/skills/documents/pptx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +0 -33
  864. package/skills/documents/pptx/scripts/office/schemas/mce/mc.xsd +0 -75
  865. package/skills/documents/pptx/scripts/office/schemas/microsoft/wml-2010.xsd +0 -560
  866. package/skills/documents/pptx/scripts/office/schemas/microsoft/wml-2012.xsd +0 -67
  867. package/skills/documents/pptx/scripts/office/schemas/microsoft/wml-2018.xsd +0 -14
  868. package/skills/documents/pptx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +0 -20
  869. package/skills/documents/pptx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +0 -13
  870. package/skills/documents/pptx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +0 -4
  871. package/skills/documents/pptx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +0 -8
  872. package/skills/documents/pptx/scripts/office/soffice.py +0 -183
  873. package/skills/documents/pptx/scripts/office/unpack.py +0 -132
  874. package/skills/documents/pptx/scripts/office/validate.py +0 -111
  875. package/skills/documents/pptx/scripts/office/validators/__init__.py +0 -15
  876. package/skills/documents/pptx/scripts/office/validators/base.py +0 -847
  877. package/skills/documents/pptx/scripts/office/validators/docx.py +0 -446
  878. package/skills/documents/pptx/scripts/office/validators/pptx.py +0 -275
  879. package/skills/documents/pptx/scripts/office/validators/redlining.py +0 -247
  880. package/skills/documents/pptx/scripts/thumbnail.py +0 -289
  881. package/skills/documents/xlsx/SKILL-zh.md +0 -292
  882. package/skills/engineering/diagnose/SKILL-zh.md +0 -117
  883. package/skills/engineering/grill-with-docs/ADR-FORMAT.md +0 -47
  884. package/skills/engineering/grill-with-docs/CONTEXT-FORMAT.md +0 -77
  885. package/skills/engineering/grill-with-docs/SKILL-zh.md +0 -88
  886. package/skills/engineering/grill-with-docs/SKILL.md +0 -88
  887. package/skills/engineering/improve-codebase-architecture/DEEPENING.md +0 -37
  888. package/skills/engineering/improve-codebase-architecture/INTERFACE-DESIGN.md +0 -44
  889. package/skills/engineering/improve-codebase-architecture/LANGUAGE.md +0 -53
  890. package/skills/engineering/improve-codebase-architecture/SKILL-zh.md +0 -71
  891. package/skills/engineering/improve-codebase-architecture/SKILL.md +0 -71
  892. package/skills/engineering/tdd/SKILL-zh.md +0 -109
  893. package/skills/engineering/to-issues/SKILL-zh.md +0 -81
  894. package/skills/engineering/to-issues/SKILL.md +0 -81
  895. package/skills/engineering/to-prd/SKILL-zh.md +0 -76
  896. package/skills/engineering/to-prd/SKILL.md +0 -74
  897. package/skills/engineering/zoom-out/SKILL-zh.md +0 -7
  898. package/skills/engineering/zoom-out/SKILL.md +0 -7
  899. package/skills/tools/find-skills/SKILL-zh.md +0 -440
  900. package/skills/tools/github/SKILL-zh.md +0 -48
  901. package/skills/tools/internal-comms/LICENSE.txt +0 -202
  902. package/skills/tools/internal-comms/SKILL-zh.md +0 -32
  903. package/skills/tools/internal-comms/SKILL.md +0 -32
  904. package/skills/tools/internal-comms/examples/3p-updates.md +0 -47
  905. package/skills/tools/internal-comms/examples/company-newsletter.md +0 -65
  906. package/skills/tools/internal-comms/examples/faq-answers.md +0 -30
  907. package/skills/tools/internal-comms/examples/general-comms.md +0 -16
  908. package/skills/tools/skill-creator/LICENSE.txt +0 -202
  909. package/skills/tools/skill-creator/SKILL-zh.md +0 -483
  910. package/skills/tools/skill-creator/SKILL.md +0 -485
  911. package/skills/tools/skill-creator/agents/analyzer.md +0 -274
  912. package/skills/tools/skill-creator/agents/comparator.md +0 -202
  913. package/skills/tools/skill-creator/agents/grader.md +0 -223
  914. package/skills/tools/skill-creator/assets/eval_review.html +0 -146
  915. package/skills/tools/skill-creator/eval-viewer/generate_review.py +0 -471
  916. package/skills/tools/skill-creator/eval-viewer/viewer.html +0 -1325
  917. package/skills/tools/skill-creator/references/schemas.md +0 -430
  918. package/skills/tools/skill-creator/scripts/__init__.py +0 -0
  919. package/skills/tools/skill-creator/scripts/aggregate_benchmark.py +0 -401
  920. package/skills/tools/skill-creator/scripts/generate_report.py +0 -326
  921. package/skills/tools/skill-creator/scripts/improve_description.py +0 -247
  922. package/skills/tools/skill-creator/scripts/package_skill.py +0 -136
  923. package/skills/tools/skill-creator/scripts/quick_validate.py +0 -103
  924. package/skills/tools/skill-creator/scripts/run_eval.py +0 -310
  925. package/skills/tools/skill-creator/scripts/run_loop.py +0 -328
  926. package/skills/tools/skill-creator/scripts/utils.py +0 -47
  927. package/skills/tools/summarize/SKILL-zh.md +0 -47
  928. package/skills/tools/weather/SKILL-zh.md +0 -46
  929. package/skills/tools/weather/SKILL.md +0 -46
  930. package/skills/tools/webapp-testing/SKILL-zh.md +0 -96
@@ -21,12 +21,11 @@ function registerAgentsCli(program) {
21
21
  const cfg = loadConfig();
22
22
  const rows = listAgentEntries(cfg).map((a) => ({
23
23
  id: normalizeAgentId(a.id),
24
- name: a.name,
25
24
  default: a.default === true,
26
25
  enabled: a.enabled !== false,
27
26
  workspace: a.workspace,
28
27
  agentDir: a.agentDir,
29
- model: a.model
28
+ model: a.models?.chat
30
29
  }));
31
30
  const def = resolveDefaultAgentId(cfg);
32
31
  if (opts.json) {
@@ -43,7 +42,7 @@ function registerAgentsCli(program) {
43
42
  }
44
43
  for (const r of rows) {
45
44
  const mark = r.id === def ? " (default routing)" : "";
46
- console.log(`- ${r.id}${mark}${r.name ? ` — ${r.name}` : ""}`);
45
+ console.log(`- ${r.id}${mark}`);
47
46
  }
48
47
  });
49
48
  agents.command("add").description("Add or update an agent in config and create workspace / state dirs").argument("<name>", "Agent display name / id seed").requiredOption("--workspace <dir>", "Workspace directory for this agent").option("--model <id>", "Model id (e.g. anthropic/claude-sonnet-4-5)").option("--agent-dir <dir>", "Override internal agent state directory").option("--json", "Output JSON summary").action(async (name, opts) => {
@@ -56,7 +55,6 @@ function registerAgentsCli(program) {
56
55
  const agentId = idRes.agentId;
57
56
  const next = applyAgentConfig(cfg, {
58
57
  agentId,
59
- name,
60
58
  workspace: opts.workspace.trim(),
61
59
  ...opts.model?.trim() ? { model: opts.model.trim() } : {},
62
60
  ...opts.agentDir?.trim() ? { agentDir: opts.agentDir.trim() } : {}
@@ -1 +1 @@
1
- {"version":3,"file":"agents.js","names":[],"sources":["../../../../src/cli/commands/agents.ts"],"sourcesContent":["/**\n * `agents` CLI: config is the source of truth for multi-agent paths.\n */\n\nimport { mkdir } from 'node:fs/promises';\nimport { Command } from 'commander';\nimport { loadConfig, saveConfig } from '../../config/loader.js';\nimport { resolveConfigPath } from '../../config/paths.js';\nimport {\n normalizeAgentId,\n resolveAgentDir,\n resolveAgentProfileDir,\n resolveAgentWorkspaceDir,\n resolveDefaultAgentId,\n DEFAULT_AGENT_ID,\n validateAgentIdForNewAgent,\n} from '../../agent/agent-scope.js';\nimport {\n applyAgentConfig,\n findAgentEntryIndex,\n listAgentEntries,\n pruneAgentConfig,\n removeAgentDirsFromDisk,\n} from '../../commands/agents.config.js';\nimport { seedAgentProfileMarkdownFiles } from '../../agent/context/workspace-seed.js';\nimport { colors } from '../utils/colors.js';\n\nfunction requireNonMain(id: string): void {\n if (normalizeAgentId(id) === DEFAULT_AGENT_ID) {\n throw new Error(`Agent id \"${DEFAULT_AGENT_ID}\" is reserved for the primary agent.`);\n }\n}\n\nexport function registerAgentsCli(program: Command): void {\n const agents = program\n .command('agents')\n .description('Manage agents (config + workspace)');\n\n agents\n .command('list')\n .description('List configured agents')\n .option('--json', 'Output JSON')\n .action(async (opts: { json?: boolean }) => {\n const cfg = loadConfig();\n const rows = listAgentEntries(cfg).map((a) => ({\n id: normalizeAgentId(a.id),\n name: a.name,\n default: a.default === true,\n enabled: a.enabled !== false,\n workspace: a.workspace,\n agentDir: a.agentDir,\n model: a.model,\n }));\n const def = resolveDefaultAgentId(cfg);\n if (opts.json) {\n console.log(JSON.stringify({ defaultAgentId: def, agents: rows }, null, 2));\n return;\n }\n console.log(colors.cyan(`Default agent id: ${def}`));\n if (rows.length === 0) {\n console.log('No entries in agents.list (using defaults only).');\n return;\n }\n for (const r of rows) {\n const mark = r.id === def ? ' (default routing)' : '';\n console.log(`- ${r.id}${mark}${r.name ? ` — ${r.name}` : ''}`);\n }\n });\n\n agents\n .command('add')\n .description('Add or update an agent in config and create workspace / state dirs')\n .argument('<name>', 'Agent display name / id seed')\n .requiredOption('--workspace <dir>', 'Workspace directory for this agent')\n .option('--model <id>', 'Model id (e.g. anthropic/claude-sonnet-4-5)')\n .option('--agent-dir <dir>', 'Override internal agent state directory')\n .option('--json', 'Output JSON summary')\n .action(\n async (\n name: string,\n opts: { workspace?: string; model?: string; agentDir?: string; json?: boolean },\n ) => {\n const cfg = loadConfig();\n const idRes = validateAgentIdForNewAgent(undefined, name);\n if (idRes.ok === false) {\n console.error(colors.red('Error:'), idRes.error);\n process.exit(1);\n }\n const agentId = idRes.agentId;\n\n const workspace = opts.workspace!.trim();\n const next = applyAgentConfig(cfg, {\n agentId,\n name,\n workspace,\n ...(opts.model?.trim() ? { model: opts.model.trim() } : {}),\n ...(opts.agentDir?.trim() ? { agentDir: opts.agentDir.trim() } : {}),\n });\n\n const configPath = resolveConfigPath();\n await saveConfig(next, configPath);\n\n const wsPath = resolveAgentWorkspaceDir(next, agentId);\n const adPath = resolveAgentDir(next, agentId);\n const profilePath = resolveAgentProfileDir(next, agentId);\n await mkdir(wsPath, { recursive: true });\n await mkdir(adPath, { recursive: true });\n await mkdir(profilePath, { recursive: true });\n seedAgentProfileMarkdownFiles(profilePath, wsPath, { displayName: name.trim() });\n\n const payload = { agentId, workspace: wsPath, agentDir: adPath, model: opts.model };\n if (opts.json) {\n console.log(JSON.stringify(payload, null, 2));\n } else {\n console.log(colors.green('✓'), `Configured agent \"${agentId}\"`);\n console.log(` Workspace: ${wsPath}`);\n console.log(` Agent dir: ${adPath}`);\n }\n },\n );\n\n agents\n .command('delete')\n .description('Remove an agent from config (optional on-disk cleanup)')\n .argument('<id>', 'Agent id')\n .option('--purge', 'Also delete workspace and ~/.xopc/agents/<id> data', false)\n .option('--json', 'Output JSON summary')\n .action(async (id: string, opts: { purge?: boolean; json?: boolean }) => {\n const cfg = loadConfig();\n requireNonMain(id);\n const idx = findAgentEntryIndex(listAgentEntries(cfg), id);\n if (idx < 0) {\n console.error(colors.red('Error:'), `Agent \"${id}\" not found in agents.list`);\n process.exit(1);\n }\n const { config: pruned, removedBindings } = pruneAgentConfig(cfg, id);\n await saveConfig(pruned, resolveConfigPath());\n let purged = false;\n if (opts.purge) {\n await removeAgentDirsFromDisk(pruned, id);\n purged = true;\n }\n const payload = { deleted: id, removedBindings, purged };\n if (opts.json) {\n console.log(JSON.stringify(payload, null, 2));\n } else {\n console.log(colors.green('✓'), `Removed agent \"${id}\" from config`);\n if (removedBindings > 0) {\n console.log(` Stripped ${removedBindings} routing binding(s).`);\n }\n if (purged) {\n console.log(' On-disk workspace/state removed.');\n }\n }\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"agents.js","names":[],"sources":["../../../../src/cli/commands/agents.ts"],"sourcesContent":["/**\n * `agents` CLI: config is the source of truth for multi-agent paths.\n */\n\nimport { mkdir } from 'node:fs/promises';\nimport { Command } from 'commander';\nimport { loadConfig, saveConfig } from '../../config/loader.js';\nimport { resolveConfigPath } from '../../config/paths.js';\nimport {\n normalizeAgentId,\n resolveAgentDir,\n resolveAgentProfileDir,\n resolveAgentWorkspaceDir,\n resolveDefaultAgentId,\n DEFAULT_AGENT_ID,\n validateAgentIdForNewAgent,\n} from '../../agent/agent-scope.js';\nimport {\n applyAgentConfig,\n findAgentEntryIndex,\n listAgentEntries,\n pruneAgentConfig,\n removeAgentDirsFromDisk,\n} from '../../commands/agents.config.js';\nimport { seedAgentProfileMarkdownFiles } from '../../agent/context/workspace-seed.js';\nimport { colors } from '../utils/colors.js';\n\nfunction requireNonMain(id: string): void {\n if (normalizeAgentId(id) === DEFAULT_AGENT_ID) {\n throw new Error(`Agent id \"${DEFAULT_AGENT_ID}\" is reserved for the primary agent.`);\n }\n}\n\nexport function registerAgentsCli(program: Command): void {\n const agents = program\n .command('agents')\n .description('Manage agents (config + workspace)');\n\n agents\n .command('list')\n .description('List configured agents')\n .option('--json', 'Output JSON')\n .action(async (opts: { json?: boolean }) => {\n const cfg = loadConfig();\n const rows = listAgentEntries(cfg).map((a) => ({\n id: normalizeAgentId(a.id),\n default: a.default === true,\n enabled: a.enabled !== false,\n workspace: a.workspace,\n agentDir: a.agentDir,\n model: a.models?.chat,\n }));\n const def = resolveDefaultAgentId(cfg);\n if (opts.json) {\n console.log(JSON.stringify({ defaultAgentId: def, agents: rows }, null, 2));\n return;\n }\n console.log(colors.cyan(`Default agent id: ${def}`));\n if (rows.length === 0) {\n console.log('No entries in agents.list (using defaults only).');\n return;\n }\n for (const r of rows) {\n const mark = r.id === def ? ' (default routing)' : '';\n console.log(`- ${r.id}${mark}`);\n }\n });\n\n agents\n .command('add')\n .description('Add or update an agent in config and create workspace / state dirs')\n .argument('<name>', 'Agent display name / id seed')\n .requiredOption('--workspace <dir>', 'Workspace directory for this agent')\n .option('--model <id>', 'Model id (e.g. anthropic/claude-sonnet-4-5)')\n .option('--agent-dir <dir>', 'Override internal agent state directory')\n .option('--json', 'Output JSON summary')\n .action(\n async (\n name: string,\n opts: { workspace?: string; model?: string; agentDir?: string; json?: boolean },\n ) => {\n const cfg = loadConfig();\n const idRes = validateAgentIdForNewAgent(undefined, name);\n if (idRes.ok === false) {\n console.error(colors.red('Error:'), idRes.error);\n process.exit(1);\n }\n const agentId = idRes.agentId;\n\n const workspace = opts.workspace!.trim();\n const next = applyAgentConfig(cfg, {\n agentId,\n workspace,\n ...(opts.model?.trim() ? { model: opts.model.trim() } : {}),\n ...(opts.agentDir?.trim() ? { agentDir: opts.agentDir.trim() } : {}),\n });\n\n const configPath = resolveConfigPath();\n await saveConfig(next, configPath);\n\n const wsPath = resolveAgentWorkspaceDir(next, agentId);\n const adPath = resolveAgentDir(next, agentId);\n const profilePath = resolveAgentProfileDir(next, agentId);\n await mkdir(wsPath, { recursive: true });\n await mkdir(adPath, { recursive: true });\n await mkdir(profilePath, { recursive: true });\n seedAgentProfileMarkdownFiles(profilePath, wsPath, { displayName: name.trim() });\n\n const payload = { agentId, workspace: wsPath, agentDir: adPath, model: opts.model };\n if (opts.json) {\n console.log(JSON.stringify(payload, null, 2));\n } else {\n console.log(colors.green('✓'), `Configured agent \"${agentId}\"`);\n console.log(` Workspace: ${wsPath}`);\n console.log(` Agent dir: ${adPath}`);\n }\n },\n );\n\n agents\n .command('delete')\n .description('Remove an agent from config (optional on-disk cleanup)')\n .argument('<id>', 'Agent id')\n .option('--purge', 'Also delete workspace and ~/.xopc/agents/<id> data', false)\n .option('--json', 'Output JSON summary')\n .action(async (id: string, opts: { purge?: boolean; json?: boolean }) => {\n const cfg = loadConfig();\n requireNonMain(id);\n const idx = findAgentEntryIndex(listAgentEntries(cfg), id);\n if (idx < 0) {\n console.error(colors.red('Error:'), `Agent \"${id}\" not found in agents.list`);\n process.exit(1);\n }\n const { config: pruned, removedBindings } = pruneAgentConfig(cfg, id);\n await saveConfig(pruned, resolveConfigPath());\n let purged = false;\n if (opts.purge) {\n await removeAgentDirsFromDisk(pruned, id);\n purged = true;\n }\n const payload = { deleted: id, removedBindings, purged };\n if (opts.json) {\n console.log(JSON.stringify(payload, null, 2));\n } else {\n console.log(colors.green('✓'), `Removed agent \"${id}\" from config`);\n if (removedBindings > 0) {\n console.log(` Stripped ${removedBindings} routing binding(s).`);\n }\n if (purged) {\n console.log(' On-disk workspace/state removed.');\n }\n }\n });\n}\n"],"mappings":"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"}
@@ -4,8 +4,8 @@ import { CredentialResolver, init_credentials } from "../../auth/credentials.js"
4
4
  import { getAllProviders, init_providers } from "../../providers/index.js";
5
5
  import { formatExamples, register } from "../registry.js";
6
6
  import { listAllProfiles, listProfilesForProvider, removeAuthProfile, upsertAuthProfile } from "../../auth/profiles/profiles.js";
7
- import { colorizeStatus, colors } from "../utils/colors.js";
8
7
  import { getOAuthProvider, getSupportedOAuthProviders } from "../utils/oauth-providers.js";
8
+ import { colorizeStatus, colors } from "../utils/colors.js";
9
9
  import { runCliOAuthLogin } from "../utils/oauth-login.js";
10
10
  import { Command } from "commander";
11
11
  //#region src/cli/commands/auth.ts
@@ -1,7 +1,7 @@
1
1
  import { init_loader, loadConfig } from "../../config/loader.js";
2
+ import { resolveBrowserBackendFromConfig } from "../../browser/backend-from-config.js";
2
3
  import { loadPlaywrightCoreModule } from "../../browser/providers/playwright-doctor.js";
3
4
  import { BrowserManager } from "../../browser/manager.js";
4
- import { resolveBrowserBackendFromConfig } from "../../browser/backend-from-config.js";
5
5
  import { createBrowserActionRegistry } from "../../browser/actions/registry.js";
6
6
  import { runBrowserPipeline, validateBrowserPipeline } from "../../browser/pipeline/runner.js";
7
7
  import { loadBrowserPipelineSource } from "../../browser/pipeline/source.js";
@@ -1,5 +1 @@
1
- import type { Config } from '../../config/schema.js';
2
- export declare function validateTelegramToken(token: string): boolean;
3
- export declare function maskToken(token: string): string;
4
- export declare function applyTelegramAccount(cfg: Config, accountId: string, botToken: string, enable: boolean): Config;
5
- export declare function removeChannelAccount(cfg: Config, channelId: string, accountId: string): Config;
1
+ export {};
@@ -1,332 +1,166 @@
1
- import { init_paths, resolveConfigPath } from "../../config/paths.js";
2
- import { init_loader, loadConfig } from "../../config/loader.js";
3
- import { getChannelPlugin, listChannelPlugins, syncChannelPluginsFromManager } from "../../channels/plugins/registry.js";
1
+ import { buildChannelCatalogForConfig, init_channel_catalog_service } from "../../channels/catalog/channel-catalog-service.js";
2
+ import { init_loader, loadConfig, saveConfig } from "../../config/loader.js";
3
+ import { listChannelPairingState } from "../../channels/pairing/pairing-service.js";
4
4
  import { approveChannelPairingFromCli } from "../../channels/pairing/approve-cli.js";
5
- import { bundledChannelPlugins } from "../../generated/bundled-channel-plugins.js";
6
5
  import { formatExamples, register } from "../registry.js";
7
6
  import { colors } from "../utils/colors.js";
8
- import { SETUP_EXIT } from "./setup-shared/types.js";
9
- import { emitOutcome } from "./setup-shared/output.js";
10
- import { isPromptCancelled, promptSecret } from "./setup-shared/prompts.js";
11
- import { SetupValidationError, runSetup } from "./setup-shared/runner.js";
12
- import "./setup-shared/index.js";
13
7
  import { Command } from "commander";
14
8
  //#region src/cli/commands/channels.ts
15
- init_paths();
9
+ init_channel_catalog_service();
16
10
  init_loader();
17
- function ensureChannelRegistryForCli() {
18
- if (listChannelPlugins().length === 0) syncChannelPluginsFromManager(bundledChannelPlugins);
11
+ function normalizeChannelId(raw) {
12
+ return raw.trim().toLowerCase();
19
13
  }
20
- function resolveConfigPathFromCommand(command) {
21
- const root = command.parent?.parent && command.parent.parent instanceof Command ? command.parent.parent : command.parent && command.parent instanceof Command ? command.parent : null;
22
- return (root && typeof root.opts === "function" ? root.opts() : {}).config?.trim() || process.env.XOPC_CONFIG_PATH?.trim() || process.env.XOPC_CONFIG?.trim() || resolveConfigPath();
14
+ function loadCliConfig(ctx) {
15
+ return loadConfig(ctx.configPath);
16
+ }
17
+ async function writeCliConfig(ctx, cfg) {
18
+ await saveConfig(cfg, ctx.configPath);
19
+ }
20
+ function ensureChannelObject(cfg, channelId) {
21
+ if (!cfg.channels) cfg.channels = {};
22
+ const channels = cfg.channels;
23
+ const existing = channels[channelId];
24
+ if (existing && typeof existing === "object" && !Array.isArray(existing)) return existing;
25
+ const next = {};
26
+ channels[channelId] = next;
27
+ return next;
28
+ }
29
+ function assertCatalogChannel(cfg, channelId) {
30
+ if (!buildChannelCatalogForConfig(cfg).byId.has(channelId)) throw new Error(`Unknown channel "${channelId}". Install or declare a channel extension contribution first.`);
23
31
  }
24
32
  function createChannelsCommand(ctx) {
25
- const cmd = new Command("channels").description("Messaging channel login and credentials").addHelpText("after", formatExamples([
26
- "xopc channels login",
27
- "xopc channels login --channel weixin",
28
- "xopc channels login --channel feishu",
29
- "xopc channels login --account my-bot-id",
30
- "xopc channels pairing approve --channel telegram ABC12XYZ"
33
+ const cmd = new Command("channels").description("Messaging channel configuration").addHelpText("after", formatExamples([
34
+ "xopc channels list",
35
+ "xopc channels show telegram",
36
+ "xopc channels enable telegram",
37
+ "xopc channels config set-json telegram '{\"enabled\":true}'",
38
+ "xopc channels pairing approve telegram ABC12XYZ"
31
39
  ]));
32
- const PAIRING_CHANNELS = new Set([
33
- "telegram",
34
- "feishu",
35
- "weixin"
36
- ]);
37
- cmd.command("login").description("Log in with QR code or channel-specific credentials flow").option("--channel <id>", "Channel id (auto-detected when only one login-capable channel is registered)").option("--account <id>", "Optional account id when re-logging an existing bot").option("--timeout <ms>", "Max wait for scan (default 480000)", "480000").option("--credentials-only", "Only save token files; do not update xopc.json").action(async (options, command) => {
38
- ensureChannelRegistryForCli();
39
- const explicitChannel = options.channel?.trim?.();
40
- let channelId;
41
- if (explicitChannel) channelId = explicitChannel;
42
- else {
43
- const loginCapable = listChannelPlugins().filter((p) => p.cliLogin);
44
- if (loginCapable.length === 1) {
45
- channelId = loginCapable[0].id;
46
- console.log(`Auto-detected channel: ${channelId}`);
47
- } else if (loginCapable.length === 0) {
48
- console.error("No channels with login support found.");
49
- process.exitCode = 1;
50
- return;
51
- } else {
52
- console.error(`Multiple channels support login: ${loginCapable.map((p) => p.id).join(", ")}. Use --channel <id> to specify.`);
53
- process.exitCode = 1;
54
- return;
55
- }
56
- }
57
- const plugin = getChannelPlugin(channelId);
58
- if (!plugin?.cliLogin) {
59
- console.error(`Channel "${channelId}" does not support CLI login.`);
60
- const capable = listChannelPlugins().filter((p) => p.cliLogin).map((p) => p.id);
61
- if (capable.length > 0) console.error(`Channels with login support: ${capable.join(", ")}`);
62
- process.exitCode = 1;
63
- return;
64
- }
65
- const configPath = resolveConfigPathFromCommand(command);
66
- const timeoutMs = Math.max(6e4, Number.parseInt(String(options.timeout), 10) || 48e4);
67
- const verbose = ctx.isVerbose;
68
- const result = await plugin.cliLogin.runLogin({
69
- configPath,
70
- verbose,
71
- timeoutMs,
72
- accountId: options.account?.trim() || void 0,
73
- writeConfig: !options.credentialsOnly
74
- });
75
- if (!result.ok) {
76
- if (result.cancelled) {
77
- process.exitCode = 130;
78
- return;
79
- }
80
- console.error(result.message || "Login failed");
81
- process.exitCode = 1;
82
- }
83
- });
84
- cmd.command("list").description("List configured channels and their account status").option("--json", "Output as JSON for agents/UIs", false).action((opts) => {
85
- ensureChannelRegistryForCli();
86
- const channelsCfg = loadConfig(resolveConfigPathFromCommand(cmd)).channels ?? {};
87
- const entries = listChannelPlugins().map((plugin) => {
88
- const raw = channelsCfg[plugin.id] ?? {};
89
- const enabled = raw.enabled === true;
90
- const accounts = raw.accounts ?? {};
91
- const accountSummaries = Object.entries(accounts).map(([id, acct]) => ({
92
- accountId: id,
93
- enabled: acct.enabled !== false,
94
- configured: typeof acct.botToken === "string" ? Boolean(acct.botToken.trim()) : false
95
- }));
96
- return {
97
- id: plugin.id,
98
- name: plugin.meta?.label ?? plugin.id,
99
- enabled,
100
- hasLogin: Boolean(plugin.cliLogin),
101
- accountCount: accountSummaries.length,
102
- accounts: accountSummaries
103
- };
104
- });
40
+ cmd.command("list").description("List channel extension contributions").option("--json", "Output as JSON", false).action((opts) => {
41
+ const cfg = loadCliConfig(ctx);
42
+ const catalog = buildChannelCatalogForConfig(cfg);
43
+ const channels = cfg.channels;
44
+ const rows = catalog.entries.map((entry) => ({
45
+ id: entry.id,
46
+ label: entry.label,
47
+ extensionId: entry.extensionId,
48
+ source: entry.source,
49
+ enabled: channels?.[entry.id]?.enabled === true,
50
+ configured: Boolean(channels?.[entry.id])
51
+ }));
105
52
  if (opts.json) {
106
- process.stdout.write(JSON.stringify({
53
+ process.stdout.write(`${JSON.stringify({
107
54
  ok: true,
108
- channels: entries
109
- }) + "\n");
55
+ channels: rows
56
+ })}\n`);
110
57
  return;
111
58
  }
112
59
  console.log("");
113
60
  console.log(colors.bold("CHANNELS"));
114
- const idWidth = Math.max(...entries.map((e) => e.id.length));
115
- for (const e of entries) {
116
- const status = e.enabled ? colors.green("enabled") : colors.gray("disabled");
117
- const accts = e.accountCount > 0 ? colors.gray(` (${e.accountCount} accounts)`) : "";
118
- console.log(` ${e.id.padEnd(idWidth)} ${status} ${colors.gray(e.name)}${accts}`);
61
+ const idWidth = Math.max(2, ...rows.map((r) => r.id.length));
62
+ for (const row of rows) {
63
+ const status = row.enabled ? colors.green("enabled") : colors.gray("disabled");
64
+ console.log(` ${row.id.padEnd(idWidth)} ${status} ${colors.gray(row.label)} ${colors.gray(row.extensionId)}`);
119
65
  }
120
66
  console.log("");
121
- console.log(colors.gray("Use: xopc channels add <id> [--token <token>]"));
122
67
  });
123
- cmd.command("add <channel>").description("Add or update a channel account (currently: telegram)").option("--token <value>", "Bot token (Telegram). Prompts securely if omitted.").option("--account <id>", "Account id (default: \"default\")").option("--enable", "Enable the channel after writing (default: true)", true).option("--dry-run", "Show the change without writing", false).option("--json", "Emit a single JSON outcome line", false).action(async (channel, opts) => {
124
- const channelId = channel.trim().toLowerCase();
125
- const accountId = opts.account?.trim() || "default";
126
- const dryRun = Boolean(opts.dryRun);
127
- const json = Boolean(opts.json);
128
- if (channelId === "feishu" || channelId === "weixin") {
129
- emitOutcome({
130
- ok: false,
131
- action: "add",
132
- domain: `channels.${channelId}`,
133
- target: accountId,
134
- changedPaths: [],
135
- dryRun,
136
- errors: [{ message: channelId === "weixin" ? "Weixin uses interactive QR login. Run: xopc channels login --channel weixin" : "Feishu add via CLI is not yet implemented. Edit `~/.xopc/xopc.json` (channels.feishu) or run: xopc onboard --channels" }]
137
- }, json);
138
- process.exitCode = SETUP_EXIT.ERROR;
139
- return;
140
- }
141
- if (channelId !== "telegram") {
142
- emitOutcome({
143
- ok: false,
144
- action: "add",
145
- domain: `channels.${channelId}`,
146
- target: accountId,
147
- changedPaths: [],
148
- dryRun,
149
- errors: [{ message: `Unknown channel "${channelId}". Try: xopc channels list` }]
150
- }, json);
151
- process.exitCode = SETUP_EXIT.ERROR;
68
+ cmd.command("show <channel>").description("Show one channel catalog entry and config").option("--json", "Output as JSON", false).action((channel, opts) => {
69
+ const cfg = loadCliConfig(ctx);
70
+ const channelId = normalizeChannelId(channel);
71
+ const entry = buildChannelCatalogForConfig(cfg).byId.get(channelId);
72
+ if (!entry) {
73
+ console.error(`Unknown channel "${channelId}".`);
74
+ process.exitCode = 1;
152
75
  return;
153
76
  }
154
- let token = opts.token?.trim();
155
- if (!token) token = process.env.TELEGRAM_BOT_TOKEN?.trim();
156
- if (!token) try {
157
- token = await promptSecret("Telegram bot token (from @BotFather):");
158
- } catch (error) {
159
- if (isPromptCancelled(error)) {
160
- emitOutcome({
161
- ok: false,
162
- action: "add",
163
- domain: "channels.telegram",
164
- target: accountId,
165
- changedPaths: [],
166
- dryRun,
167
- errors: [{ message: "Cancelled by user" }]
168
- }, json);
169
- process.exitCode = SETUP_EXIT.CANCELLED;
170
- return;
171
- }
172
- throw error;
173
- }
174
- if (!validateTelegramToken(token)) {
175
- emitOutcome({
176
- ok: false,
177
- action: "add",
178
- domain: "channels.telegram",
179
- target: accountId,
180
- changedPaths: [],
181
- dryRun,
182
- errors: [{
183
- path: "token",
184
- message: "Token does not look like a Telegram bot token (expected `<digits>:<35+ chars>`)."
185
- }]
186
- }, json);
187
- process.exitCode = SETUP_EXIT.ERROR;
77
+ const payload = {
78
+ entry,
79
+ config: cfg.channels?.[channelId] ?? {}
80
+ };
81
+ if (opts.json) {
82
+ process.stdout.write(`${JSON.stringify({
83
+ ok: true,
84
+ ...payload
85
+ })}\n`);
188
86
  return;
189
87
  }
190
- await runSetup({
191
- configPath: resolveConfigPathFromCommand(cmd),
192
- options: {
193
- dryRun,
194
- json
195
- },
196
- mutator: {
197
- domain: "channels.telegram",
198
- target: accountId,
199
- action: "add",
200
- mutate(config) {
201
- return applyTelegramAccount(config, accountId, token, opts.enable !== false);
202
- },
203
- resultValue: () => ({
204
- channel: "telegram",
205
- accountId,
206
- tokenMask: maskToken(token)
207
- }),
208
- notes: () => [opts.enable !== false ? "Telegram channel enabled. Restart the gateway for the new bot to come online." : "Telegram credentials saved (channel disabled). Use `--enable` to start it."]
209
- }
210
- });
88
+ console.log(JSON.stringify(payload, null, 2));
211
89
  });
212
- cmd.command("remove <channel>").description("Remove a channel account").option("--account <id>", "Account id (default: \"default\")").option("--dry-run", "Show the change without writing", false).option("--json", "Emit a single JSON outcome line", false).action(async (channel, opts) => {
213
- const channelId = channel.trim().toLowerCase();
214
- const accountId = opts.account?.trim() || "default";
215
- const dryRun = Boolean(opts.dryRun);
216
- const json = Boolean(opts.json);
217
- await runSetup({
218
- configPath: resolveConfigPathFromCommand(cmd),
219
- options: {
220
- dryRun,
221
- json
222
- },
223
- mutator: {
224
- domain: `channels.${channelId}`,
225
- target: accountId,
226
- action: "remove",
227
- mutate(config) {
228
- return removeChannelAccount(config, channelId, accountId);
229
- }
230
- }
231
- });
90
+ cmd.command("enable <channel>").description("Enable a channel config block").action(async (channel) => {
91
+ const cfg = loadCliConfig(ctx);
92
+ const channelId = normalizeChannelId(channel);
93
+ assertCatalogChannel(cfg, channelId);
94
+ ensureChannelObject(cfg, channelId).enabled = true;
95
+ await writeCliConfig(ctx, cfg);
96
+ console.log(`Enabled channel ${channelId}`);
232
97
  });
233
- cmd.command("schema [channel]").description("Print credential schemas for channels (for agents / UIs)").option("--json", "JSON output (default human-readable JSON)", false).action((channel, opts) => {
234
- ensureChannelRegistryForCli();
235
- const all = listChannelPlugins().map((p) => ({
236
- id: p.id,
237
- name: p.meta?.label ?? p.id,
238
- hasLogin: Boolean(p.cliLogin),
239
- configSchema: p.configSchema?.schema
240
- }));
241
- const payload = {
242
- ok: true,
243
- channels: channel ? all.filter((c) => c.id === channel) : all
244
- };
245
- if (opts.json) process.stdout.write(JSON.stringify(payload) + "\n");
246
- else console.log(JSON.stringify(payload, null, 2));
98
+ cmd.command("disable <channel>").description("Disable a channel config block").action(async (channel) => {
99
+ const cfg = loadCliConfig(ctx);
100
+ const channelId = normalizeChannelId(channel);
101
+ assertCatalogChannel(cfg, channelId);
102
+ ensureChannelObject(cfg, channelId).enabled = false;
103
+ await writeCliConfig(ctx, cfg);
104
+ console.log(`Disabled channel ${channelId}`);
247
105
  });
248
- cmd.command("pairing").description("Approve DM pairing requests (updates channel allowFrom credential files)").addCommand(new Command("approve").description("Approve a pairing code shown to the user in Telegram / Feishu / Weixin DMs").requiredOption("--channel <id>", "telegram | feishu | weixin").option("--account <id>", "Bot account id from config", "default").argument("<code>", "Pairing code from the user message").action((code, options) => {
249
- const ch = (options.channel ?? "").trim().toLowerCase();
250
- if (!PAIRING_CHANNELS.has(ch)) {
251
- console.error("Invalid --channel. Use: telegram, feishu, or weixin.");
252
- process.exitCode = 1;
106
+ cmd.command("config").description("Edit channel config").command("set-json <channel> <json>").description("Merge a JSON object into channels.<id>").action(async (channel, json) => {
107
+ const cfg = loadCliConfig(ctx);
108
+ const channelId = normalizeChannelId(channel);
109
+ assertCatalogChannel(cfg, channelId);
110
+ const patch = JSON.parse(json);
111
+ if (!patch || typeof patch !== "object" || Array.isArray(patch)) throw new Error("JSON value must be an object");
112
+ Object.assign(ensureChannelObject(cfg, channelId), patch);
113
+ await writeCliConfig(ctx, cfg);
114
+ console.log(`Updated channels.${channelId}`);
115
+ });
116
+ const pairing = cmd.command("pairing").description("Manage channel pairing state");
117
+ pairing.command("list <channel>").option("--account <id>", "Account id", "default").option("--json", "Output as JSON", false).action((channel, opts) => {
118
+ const cfg = loadCliConfig(ctx);
119
+ const state = listChannelPairingState({
120
+ channel: normalizeChannelId(channel),
121
+ accountId: opts.account,
122
+ config: cfg
123
+ });
124
+ if (opts.json) {
125
+ process.stdout.write(`${JSON.stringify({
126
+ ok: true,
127
+ state
128
+ })}\n`);
253
129
  return;
254
130
  }
131
+ console.log(JSON.stringify(state, null, 2));
132
+ });
133
+ pairing.command("approve <channel> <code>").option("--account <id>", "Account id", "default").action((channel, code, opts) => {
255
134
  const result = approveChannelPairingFromCli({
256
- channel: ch,
257
- accountId: (options.account ?? "default").trim() || "default",
258
- code: String(code ?? "").trim()
135
+ channel: normalizeChannelId(channel),
136
+ accountId: opts.account ?? "default",
137
+ code
259
138
  });
260
139
  if (result.ok === false) {
261
140
  console.error(result.error);
262
141
  process.exitCode = 1;
263
142
  return;
264
143
  }
265
- console.log(`Approved. Sender id added to allowFrom store: ${result.senderId}`);
266
- }));
144
+ console.log(`Approved sender ${result.senderId}`);
145
+ });
267
146
  return cmd;
268
147
  }
269
- const TELEGRAM_TOKEN_PATTERN = /^\d{5,}:[A-Za-z0-9_-]{30,}$/;
270
- function validateTelegramToken(token) {
271
- return TELEGRAM_TOKEN_PATTERN.test(token.trim());
272
- }
273
- function maskToken(token) {
274
- const t = token.trim();
275
- if (t.length <= 8) return "*".repeat(t.length);
276
- return `${t.slice(0, 4)}…${t.slice(-4)}`;
277
- }
278
- function applyTelegramAccount(cfg, accountId, botToken, enable) {
279
- const channels = { ...cfg.channels ?? {} };
280
- const tg = { ...channels.telegram ?? {} };
281
- if (enable) tg.enabled = true;
282
- const accounts = { ...tg.accounts ?? {} };
283
- accounts[accountId] = {
284
- ...accounts[accountId] ?? {},
285
- accountId,
286
- enabled: true,
287
- botToken
288
- };
289
- tg.accounts = accounts;
290
- channels.telegram = tg;
291
- return {
292
- ...cfg,
293
- channels
294
- };
295
- }
296
- function removeChannelAccount(cfg, channelId, accountId) {
297
- if (channelId === "feishu" || channelId === "weixin" || channelId === "telegram") {
298
- const channels = { ...cfg.channels ?? {} };
299
- const ch = { ...channels[channelId] ?? {} };
300
- const accounts = { ...ch.accounts ?? {} };
301
- if (!(accountId in accounts)) throw new SetupValidationError([{ message: `No account "${accountId}" on channel "${channelId}".` }]);
302
- delete accounts[accountId];
303
- ch.accounts = accounts;
304
- if (Object.keys(accounts).length === 0) ch.enabled = false;
305
- channels[channelId] = ch;
306
- return {
307
- ...cfg,
308
- channels
309
- };
310
- }
311
- throw new SetupValidationError([{ message: `Unknown channel "${channelId}". Try: xopc channels list` }]);
312
- }
313
148
  register({
314
149
  id: "channels",
315
150
  name: "channels",
316
- description: "Messaging channel login",
151
+ description: "Messaging channel configuration",
317
152
  factory: createChannelsCommand,
318
153
  metadata: {
319
154
  category: "setup",
320
155
  examples: [
321
156
  "xopc channels list",
322
- "xopc channels add telegram --token 123456:ABC...",
323
- "xopc channels remove telegram",
324
- "xopc channels login",
325
- "xopc channels pairing approve --channel feishu --account default ABC12XYZ"
157
+ "xopc channels show telegram",
158
+ "xopc channels enable telegram",
159
+ "xopc channels config set-json telegram '{\"enabled\":true}'"
326
160
  ]
327
161
  }
328
162
  });
329
163
  //#endregion
330
- export { applyTelegramAccount, maskToken, removeChannelAccount, validateTelegramToken };
164
+ export {};
331
165
 
332
166
  //# sourceMappingURL=channels.js.map