@xopcai/xopc 0.0.105 → 0.0.107

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 (430) hide show
  1. package/dist/browser-ext/manifest.json +1 -1
  2. package/dist/extensions/dashscope/xopc.extension.json +7 -2
  3. package/dist/extensions/fal/xopc.extension.json +7 -2
  4. package/dist/extensions/feishu/src/adapters/gateway-setup.js +22 -26
  5. package/dist/extensions/feishu/src/adapters/gateway-setup.js.map +1 -1
  6. package/dist/extensions/feishu/src/directory/directory-adapter.js +1 -1
  7. package/dist/extensions/feishu/src/directory/directory-adapter.js.map +1 -1
  8. package/dist/extensions/feishu/src/outbound/media-load.js +1 -1
  9. package/dist/extensions/feishu/src/outbound/outbound-adapter.js +4 -3
  10. package/dist/extensions/feishu/src/outbound/outbound-adapter.js.map +1 -1
  11. package/dist/extensions/feishu/src/plugin.d.ts +6 -3
  12. package/dist/extensions/feishu/src/plugin.js +59 -40
  13. package/dist/extensions/feishu/src/plugin.js.map +1 -1
  14. package/dist/extensions/feishu/src/streaming/streaming-adapter.js +20 -16
  15. package/dist/extensions/feishu/src/streaming/streaming-adapter.js.map +1 -1
  16. package/dist/extensions/feishu/src/transport/socket-mode/monitor.js +1 -1
  17. package/dist/extensions/feishu/src/transport/webhook/monitor.js +1 -1
  18. package/dist/extensions/feishu/src/workflow-progress.d.ts +1 -1
  19. package/dist/extensions/feishu/src/workflow-progress.js +3 -3
  20. package/dist/extensions/feishu/src/workflow-progress.js.map +1 -1
  21. package/dist/extensions/feishu/xopc.extension.json +458 -26
  22. package/dist/extensions/google/xopc.extension.json +7 -2
  23. package/dist/extensions/minimax/xopc.extension.json +8 -2
  24. package/dist/extensions/openai/xopc.extension.json +7 -2
  25. package/dist/extensions/telegram/src/adapters/gateway-setup.js +8 -6
  26. package/dist/extensions/telegram/src/adapters/gateway-setup.js.map +1 -1
  27. package/dist/extensions/telegram/src/adapters/streaming-adapter.js +1 -1
  28. package/dist/extensions/telegram/src/command-handler.d.ts +1 -1
  29. package/dist/extensions/telegram/src/command-handler.js +11 -9
  30. package/dist/extensions/telegram/src/command-handler.js.map +1 -1
  31. package/dist/extensions/telegram/src/inbound-processor.js +2 -3
  32. package/dist/extensions/telegram/src/inbound-processor.js.map +1 -1
  33. package/dist/extensions/telegram/src/plugin.d.ts +1 -0
  34. package/dist/extensions/telegram/src/plugin.js +7 -7
  35. package/dist/extensions/telegram/src/plugin.js.map +1 -1
  36. package/dist/extensions/telegram/src/routing-integration.js +2 -2
  37. package/dist/extensions/telegram/src/update-offset-store.js +1 -1
  38. package/dist/extensions/telegram/src/workflow-progress.d.ts +1 -1
  39. package/dist/extensions/telegram/src/workflow-progress.js +1 -1
  40. package/dist/extensions/telegram/src/workflow-progress.js.map +1 -1
  41. package/dist/extensions/telegram/xopc.extension.json +10 -2
  42. package/dist/extensions/weixin/src/api/api.js +2 -2
  43. package/dist/extensions/weixin/src/auth/accounts.js +1 -1
  44. package/dist/extensions/weixin/src/cdn/upload.js +1 -1
  45. package/dist/extensions/weixin/src/cli/gateway-qr-login.d.ts +4 -0
  46. package/dist/extensions/weixin/src/cli/gateway-qr-login.js +34 -5
  47. package/dist/extensions/weixin/src/cli/gateway-qr-login.js.map +1 -1
  48. package/dist/extensions/weixin/src/cli/qr-login.js +4 -3
  49. package/dist/extensions/weixin/src/cli/qr-login.js.map +1 -1
  50. package/dist/extensions/weixin/src/media/data-url.js +1 -1
  51. package/dist/extensions/weixin/src/messaging/debug-mode.js +1 -1
  52. package/dist/extensions/weixin/src/messaging/inbound.js +1 -1
  53. package/dist/extensions/weixin/src/messaging/process-message.js +1 -1
  54. package/dist/extensions/weixin/src/plugin.d.ts +1 -0
  55. package/dist/extensions/weixin/src/plugin.js +8 -7
  56. package/dist/extensions/weixin/src/plugin.js.map +1 -1
  57. package/dist/extensions/weixin/src/storage/sync-buf.js +1 -1
  58. package/dist/extensions/weixin/src/workflow-progress.d.ts +1 -1
  59. package/dist/extensions/weixin/src/workflow-progress.js +1 -1
  60. package/dist/extensions/weixin/src/workflow-progress.js.map +1 -1
  61. package/dist/extensions/weixin/xopc.extension.json +57 -14
  62. package/dist/gateway/static/root/apple-touch-icon.png +0 -0
  63. package/dist/gateway/static/root/assets/agents-BXg2_mE4.js +78 -0
  64. package/dist/gateway/static/root/assets/apps-page-CJqQ-7Ss.js +1 -0
  65. package/dist/gateway/static/root/assets/channels-settings-DvMZ6NAd.js +1 -0
  66. package/dist/gateway/static/root/assets/cron-page-BPBlvSl5.js +1 -0
  67. package/dist/gateway/static/root/assets/{dist-DJDkNhu5.js → dist-CZh0c-s8.js} +1 -1
  68. package/dist/gateway/static/root/assets/{extension-debug-page-DI1XJTJi.js → extension-debug-page-DyJQR0SR.js} +1 -1
  69. package/dist/gateway/static/root/assets/{extension-page-SuafGTT_.js → extension-page-CDTuUr9B.js} +1 -1
  70. package/dist/gateway/static/root/assets/{extension-settings-page-cKmGax9v.js → extension-settings-page-DszZ8zHD.js} +1 -1
  71. package/dist/gateway/static/root/assets/{fetch-CkvRO30i.js → fetch-CFdKBnE6.js} +1 -1
  72. package/dist/gateway/static/root/assets/{gateway-startup-retry-BkKyRDrF.js → gateway-startup-retry-DdngdObI.js} +1 -1
  73. package/dist/gateway/static/root/assets/{heartbeat-config-api-CRiDcxtt.js → heartbeat-config-api-U10wnPdc.js} +1 -1
  74. package/dist/gateway/static/root/assets/index-DBc-bVOQ.js +4845 -0
  75. package/dist/gateway/static/root/assets/index-DI5_GsZt.css +1 -0
  76. package/dist/gateway/static/root/assets/{logs-page-DM8o5-Bm.js → logs-page-B6js8Bfi.js} +2 -2
  77. package/dist/gateway/static/root/assets/{note-detail-page-j53jtvq9.js → note-detail-page-DFzAXR35.js} +4 -4
  78. package/dist/gateway/static/root/assets/{note-time-Ck2H2Qpw.js → note-time-DOiSU-10.js} +1 -1
  79. package/dist/gateway/static/root/assets/notes-page-DAuZJMT8.js +1 -0
  80. package/dist/gateway/static/root/assets/{schema-form-BvmGNxiJ.js → schema-form-zM36dvbY.js} +1 -1
  81. package/dist/gateway/static/root/assets/sessions-page-CAsV03BY.js +1 -0
  82. package/dist/gateway/static/root/assets/{settings-advanced-gate-DRdayl8P.js → settings-advanced-gate-BCvObK1y.js} +1 -1
  83. package/dist/gateway/static/root/assets/{settings-form-section-BlIYg2gZ.js → settings-form-section-Bvl-RInc.js} +1 -1
  84. package/dist/gateway/static/root/assets/settings-page-DuCJDd74.js +3 -0
  85. package/dist/gateway/static/root/assets/{share-preview-page-BlT6Akvk.js → share-preview-page-rpL4DDTO.js} +1 -1
  86. package/dist/gateway/static/root/assets/skills-page--BioR9J4.js +2 -0
  87. package/dist/gateway/static/root/assets/{theme-store-DYgVdRB4.js → theme-store-BZozwAeK.js} +1 -1
  88. package/dist/gateway/static/root/assets/url-DQRqHuL-.js +3 -0
  89. package/dist/gateway/static/root/assets/voice-api-key-field-D2RJaoj_.js +1 -0
  90. package/dist/gateway/static/root/assets/{workflow-page.utils-_sjXCMvi.js → workflow-page.utils-BxacHYen.js} +1 -1
  91. package/dist/gateway/static/root/assets/workflows-page-B1B-est-.js +18 -0
  92. package/dist/gateway/static/root/favicon-16.png +0 -0
  93. package/dist/gateway/static/root/favicon-32.png +0 -0
  94. package/dist/gateway/static/root/favicon.ico +0 -0
  95. package/dist/gateway/static/root/favicon.svg +18 -0
  96. package/dist/gateway/static/root/index.html +11 -10
  97. package/dist/package.js +1 -1
  98. package/dist/src/agent/agent-manager.js +7 -7
  99. package/dist/src/agent/agent-scope.js +1 -1
  100. package/dist/src/agent/bootstrap/load-bootstrap-files.js +1 -1
  101. package/dist/src/agent/context/workspace-seed.js +2 -2
  102. package/dist/src/agent/context/workspace-state.js +1 -1
  103. package/dist/src/agent/goals/goal-run-store.js +4 -4
  104. package/dist/src/agent/goals/persistent-goal-service.js +1 -1
  105. package/dist/src/agent/goals/post-turn.js +2 -2
  106. package/dist/src/agent/image/load-image-media.js +2 -2
  107. package/dist/src/agent/ipc/bus.js +1 -1
  108. package/dist/src/agent/ipc/inbox.js +2 -2
  109. package/dist/src/agent/ipc/socket.js +1 -1
  110. package/dist/src/agent/mcp/bundle-mcp-config.js +16 -8
  111. package/dist/src/agent/mcp/bundle-mcp-config.js.map +1 -1
  112. package/dist/src/agent/mcp/bundle-mcp-materialize.js +1 -1
  113. package/dist/src/agent/mcp/bundle-mcp-policy.js +2 -2
  114. package/dist/src/agent/mcp/bundle-mcp-policy.js.map +1 -1
  115. package/dist/src/agent/mcp/bundle-mcp-runtime.js +2 -2
  116. package/dist/src/agent/mcp/mcp-http.js +1 -1
  117. package/dist/src/agent/mcp/mcp-http.js.map +1 -1
  118. package/dist/src/agent/mcp/mcp-transport-config.js +3 -7
  119. package/dist/src/agent/mcp/mcp-transport-config.js.map +1 -1
  120. package/dist/src/agent/mcp/mcp-transport.js +1 -1
  121. package/dist/src/agent/memory/builtin-memory-store.js +1 -1
  122. package/dist/src/agent/memory/dreaming/deep-promotion.js +1 -1
  123. package/dist/src/agent/memory/dreaming/events.js +1 -1
  124. package/dist/src/agent/memory/dreaming/last-run.js +1 -1
  125. package/dist/src/agent/memory/dreaming/light-sweep.js +1 -1
  126. package/dist/src/agent/memory/dreaming/preview.js +1 -1
  127. package/dist/src/agent/memory/dreaming/rem-patterns.js +1 -1
  128. package/dist/src/agent/memory/dreaming/short-term-store.js +1 -1
  129. package/dist/src/agent/memory/dreaming/utils.js +1 -1
  130. package/dist/src/agent/memory/memory-flush.js +1 -1
  131. package/dist/src/agent/memory/plugin-discovery.js +1 -1
  132. package/dist/src/agent/models/manager.js +1 -1
  133. package/dist/src/agent/prompt/service-prompt-builder.js +2 -2
  134. package/dist/src/agent/reply/post-compaction-context.js +1 -1
  135. package/dist/src/agent/reply/workspace-boundary-read.js +1 -1
  136. package/dist/src/agent/sandbox/path-policy.js +2 -2
  137. package/dist/src/agent/service.js +4 -4
  138. package/dist/src/agent/session/session-inspector.js +1 -1
  139. package/dist/src/agent/skills/config.js +1 -1
  140. package/dist/src/agent/skills/hub-hash.js +2 -2
  141. package/dist/src/agent/skills/hub-lock.js +1 -1
  142. package/dist/src/agent/skills/hub-pull.js +2 -2
  143. package/dist/src/agent/skills/index.js +1 -1
  144. package/dist/src/agent/skills/managed-store.js +1 -1
  145. package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.d.ts +4 -0
  146. package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.js +4 -2
  147. package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.js.map +1 -1
  148. package/dist/src/agent/skills/scanner.js +1 -1
  149. package/dist/src/agent/skills/skill-manage-ops.js +1 -1
  150. package/dist/src/agent/skills/skill-manager.js +1 -1
  151. package/dist/src/agent/starter-agents.d.ts +19 -0
  152. package/dist/src/agent/starter-agents.js +190 -0
  153. package/dist/src/agent/starter-agents.js.map +1 -0
  154. package/dist/src/agent/tools/dreaming-tool.js +1 -1
  155. package/dist/src/agent/tools/factory.js +1 -1
  156. package/dist/src/agent/tools/image-generate-tool.js +1 -1
  157. package/dist/src/agent/tools/send-media.js +1 -1
  158. package/dist/src/agent/tools/skill-manage-tool.js +1 -1
  159. package/dist/src/agent/tools/workflow-tool.js +1 -1
  160. package/dist/src/agent/tools/write.js +1 -1
  161. package/dist/src/agent/workflow/catalog.js +1 -1
  162. package/dist/src/agent/workflow/index.js +2 -1
  163. package/dist/src/agent/workflow/runtime.d.ts +2 -2
  164. package/dist/src/agent/workflow/runtime.js +50 -29
  165. package/dist/src/agent/workflow/runtime.js.map +1 -1
  166. package/dist/src/agent/workflow/snapshot-empty.d.ts +2 -0
  167. package/dist/src/agent/workflow/snapshot-empty.js +19 -0
  168. package/dist/src/agent/workflow/snapshot-empty.js.map +1 -0
  169. package/dist/src/agent/workflow/snapshot.js +1 -1
  170. package/dist/src/agent/workflow/snapshot.js.map +1 -1
  171. package/dist/src/agent/workflow/types.d.ts +11 -0
  172. package/dist/src/auth/credentials.js +3 -3
  173. package/dist/src/auth/profiles/store.js +2 -2
  174. package/dist/src/auth/sync-provider-auth.js +1 -1
  175. package/dist/src/browser/cache-dir-policy.js +1 -1
  176. package/dist/src/browser/cdp-local-launcher.js +2 -2
  177. package/dist/src/browser/providers/browser-ext-install.js +3 -3
  178. package/dist/src/browser/providers/cloakbrowser.js +4 -4
  179. package/dist/src/browser/providers/playwright-doctor.js +1 -1
  180. package/dist/src/browser/stealth.js +1 -1
  181. package/dist/src/channels/catalog/channel-catalog-service.js +13 -0
  182. package/dist/src/channels/catalog/channel-catalog-service.js.map +1 -1
  183. package/dist/src/channels/outbound/persist-store.js +1 -1
  184. package/dist/src/channels/pairing/allow-from-file.js +1 -1
  185. package/dist/src/channels/pairing/pairing-store.js +2 -2
  186. package/dist/src/channels/plugins/types.adapters.d.ts +2 -0
  187. package/dist/src/chat-commands/agent-edit.js +2 -2
  188. package/dist/src/chat-commands/builtins/config.js +2 -2
  189. package/dist/src/chat-commands/context.js +1 -1
  190. package/dist/src/cli/commands/config.js +1 -1
  191. package/dist/src/cli/commands/doctor/checks/config-health.js +1 -1
  192. package/dist/src/cli/commands/doctor/checks/provider-auth.js +1 -1
  193. package/dist/src/cli/commands/doctor/checks/state-integrity.js +1 -1
  194. package/dist/src/cli/commands/doctor/checks/workspace-status.js +1 -1
  195. package/dist/src/cli/commands/extension-create.d.ts +2 -0
  196. package/dist/src/cli/commands/extension-create.js +165 -0
  197. package/dist/src/cli/commands/extension-create.js.map +1 -0
  198. package/dist/src/cli/commands/extension-dev.js +1 -3
  199. package/dist/src/cli/commands/extension-dev.js.map +1 -1
  200. package/dist/src/cli/commands/extension-marketplace.js +105 -81
  201. package/dist/src/cli/commands/extension-marketplace.js.map +1 -1
  202. package/dist/src/cli/commands/extension-pack.d.ts +13 -0
  203. package/dist/src/cli/commands/extension-pack.js +159 -91
  204. package/dist/src/cli/commands/extension-pack.js.map +1 -1
  205. package/dist/src/cli/commands/extension.d.ts +2 -0
  206. package/dist/src/cli/commands/extension.js +375 -3
  207. package/dist/src/cli/commands/extension.js.map +1 -1
  208. package/dist/src/cli/commands/gateway/logs.js +1 -1
  209. package/dist/src/cli/commands/gateway/run-foreground.js +1 -2
  210. package/dist/src/cli/commands/gateway/run-foreground.js.map +1 -1
  211. package/dist/src/cli/commands/image.js +1 -1
  212. package/dist/src/cli/commands/init.js +3 -3
  213. package/dist/src/cli/commands/models.js +1 -1
  214. package/dist/src/cli/commands/onboard/model.js +2 -2
  215. package/dist/src/cli/commands/onboard.js +0 -2
  216. package/dist/src/cli/commands/onboard.js.map +1 -1
  217. package/dist/src/cli/commands/setup.js +0 -2
  218. package/dist/src/cli/commands/setup.js.map +1 -1
  219. package/dist/src/cli/utils/init-workspace-core.js +10 -7
  220. package/dist/src/cli/utils/init-workspace-core.js.map +1 -1
  221. package/dist/src/config/agent-profile.js +1 -1
  222. package/dist/src/config/agent-typed-models.js +1 -1
  223. package/dist/src/config/gateway-bind.js +1 -1
  224. package/dist/src/config/index.js +5 -5
  225. package/dist/src/config/loader.js +2 -2
  226. package/dist/src/config/models-json.js +2 -2
  227. package/dist/src/config/paths-state.js +1 -1
  228. package/dist/src/config/paths.d.ts +2 -2
  229. package/dist/src/config/paths.js +6 -5
  230. package/dist/src/config/paths.js.map +1 -1
  231. package/dist/src/config/profile.js +2 -2
  232. package/dist/src/config/schema.d.ts +2 -0
  233. package/dist/src/config/schema.js +3 -1
  234. package/dist/src/config/schema.js.map +1 -1
  235. package/dist/src/config/workspace-path.js +1 -1
  236. package/dist/src/connectors/health.js +1 -1
  237. package/dist/src/connectors/install.js +1 -1
  238. package/dist/src/cron/executor.js +2 -2
  239. package/dist/src/cron/persistence.js +1 -1
  240. package/dist/src/daemon/constants.js +1 -1
  241. package/dist/src/daemon/install-plan.js +2 -2
  242. package/dist/src/daemon/launchd.js +2 -2
  243. package/dist/src/daemon/schtasks.js +2 -2
  244. package/dist/src/daemon/systemd.js +2 -2
  245. package/dist/src/extensions/api.d.ts +4 -2
  246. package/dist/src/extensions/api.js +31 -12
  247. package/dist/src/extensions/api.js.map +1 -1
  248. package/dist/src/extensions/bundle-mcp.js +1 -1
  249. package/dist/src/extensions/discover-extensions.js +2 -1
  250. package/dist/src/extensions/discover-extensions.js.map +1 -1
  251. package/dist/src/extensions/health.js +1 -1
  252. package/dist/src/extensions/install.d.ts +1 -0
  253. package/dist/src/extensions/install.js +51 -8
  254. package/dist/src/extensions/install.js.map +1 -1
  255. package/dist/src/extensions/loader.d.ts +0 -4
  256. package/dist/src/extensions/loader.js +55 -88
  257. package/dist/src/extensions/loader.js.map +1 -1
  258. package/dist/src/extensions/lockfile.d.ts +9 -1
  259. package/dist/src/extensions/lockfile.js +2 -2
  260. package/dist/src/extensions/lockfile.js.map +1 -1
  261. package/dist/src/extensions/normalize-manifest.js +20 -4
  262. package/dist/src/extensions/normalize-manifest.js.map +1 -1
  263. package/dist/src/extensions/package-contract.d.ts +12 -0
  264. package/dist/src/extensions/package-contract.js +59 -0
  265. package/dist/src/extensions/package-contract.js.map +1 -0
  266. package/dist/src/extensions/sdk/core.d.ts +1 -1
  267. package/dist/src/extensions/sdk/index.d.ts +1 -1
  268. package/dist/src/extensions/sdk/index.js.map +1 -1
  269. package/dist/src/extensions/types/manifest.d.ts +15 -0
  270. package/dist/src/extensions/update.js +1 -1
  271. package/dist/src/gateway/agents-admin.d.ts +0 -8
  272. package/dist/src/gateway/agents-admin.js +3 -28
  273. package/dist/src/gateway/agents-admin.js.map +1 -1
  274. package/dist/src/gateway/file-path-classifier.js +2 -2
  275. package/dist/src/gateway/heartbeat/service.js +1 -1
  276. package/dist/src/gateway/hono/lib/config-payload.js +1 -1
  277. package/dist/src/gateway/hono/lib/extension-store.js +2 -2
  278. package/dist/src/gateway/hono/lib/static-ui.js +2 -2
  279. package/dist/src/gateway/hono/oauth-async.js +1 -1
  280. package/dist/src/gateway/hono/oauth.js +1 -1
  281. package/dist/src/gateway/hono/routes/agents.js +2 -56
  282. package/dist/src/gateway/hono/routes/agents.js.map +1 -1
  283. package/dist/src/gateway/hono/routes/auth-registry-extensions.js +1 -1
  284. package/dist/src/gateway/hono/routes/channels.js +10 -1
  285. package/dist/src/gateway/hono/routes/channels.js.map +1 -1
  286. package/dist/src/gateway/hono/routes/config-patch/misc.js +1 -1
  287. package/dist/src/gateway/hono/routes/dreaming.js +1 -1
  288. package/dist/src/gateway/hono/routes/host-fs.js +2 -2
  289. package/dist/src/gateway/hono/routes/mcp.js +1 -1
  290. package/dist/src/gateway/hono/routes/models.js +1 -1
  291. package/dist/src/gateway/hono/routes/shares.js +1 -1
  292. package/dist/src/gateway/hono/routes/workflows.js +130 -0
  293. package/dist/src/gateway/hono/routes/workflows.js.map +1 -1
  294. package/dist/src/gateway/hono/routes/workspace.js +2 -2
  295. package/dist/src/gateway/lock.js +3 -3
  296. package/dist/src/gateway/ports.js +1 -1
  297. package/dist/src/gateway/service/agent-runner.js +2 -2
  298. package/dist/src/gateway/service/marketplace-service.js +2 -2
  299. package/dist/src/gateway/service.d.ts +2 -0
  300. package/dist/src/gateway/service.js +45 -1
  301. package/dist/src/gateway/service.js.map +1 -1
  302. package/dist/src/gateway/workspace-fs-file-list.js +1 -1
  303. package/dist/src/heartbeat/index.js +1 -1
  304. package/dist/src/infra/brew.js +1 -1
  305. package/dist/src/infra/package-json.js +1 -1
  306. package/dist/src/infra/package-update-steps.js +1 -1
  307. package/dist/src/infra/path-env.js +2 -2
  308. package/dist/src/infra/restart.js +2 -2
  309. package/dist/src/infra/stable-node-path.js +1 -1
  310. package/dist/src/infra/update-check.js +1 -1
  311. package/dist/src/infra/update-global.js +1 -1
  312. package/dist/src/infra/update-lock.js +3 -3
  313. package/dist/src/infra/update-runner.js +1 -1
  314. package/dist/src/infra/update-startup.js +2 -2
  315. package/dist/src/infra/write-file-atomic.js +2 -2
  316. package/dist/src/media/store.js +1 -1
  317. package/dist/src/notes/agent-context.d.ts +12 -4
  318. package/dist/src/notes/agent-context.js +1 -1
  319. package/dist/src/notes/agent-context.js.map +1 -1
  320. package/dist/src/notes/store.js +2 -2
  321. package/dist/src/project-trust/trust-store.js +2 -2
  322. package/dist/src/providers/auth-runtime/auth-profile-store.js +1 -1
  323. package/dist/src/providers/index.js +2 -2
  324. package/dist/src/providers/model-registry.js +1 -1
  325. package/dist/src/session/init-session-turn.js +2 -2
  326. package/dist/src/session/resolve-session.js +3 -3
  327. package/dist/src/session/session-title.js +2 -2
  328. package/dist/src/session/store.js +2 -2
  329. package/dist/src/share/share-auto.js +2 -2
  330. package/dist/src/share/share-store.js +3 -3
  331. package/dist/src/share/share-thumbnail.js +2 -2
  332. package/dist/src/share/share-zip.js +1 -1
  333. package/dist/src/share/site-share-store.js +3 -3
  334. package/dist/src/share/site-static-serve.js +1 -1
  335. package/dist/src/storage/sqlite/connection.js +2 -2
  336. package/dist/src/storage/sqlite/memory-index-repository.js +2 -2
  337. package/dist/src/storage/sqlite/migrations/discover.js +1 -1
  338. package/dist/src/storage/sqlite/migrations/runner.js +1 -1
  339. package/dist/src/storage/sqlite/schema.js +1 -1
  340. package/dist/src/tui/backends/embedded-backend.js +1 -8
  341. package/dist/src/tui/backends/embedded-backend.js.map +1 -1
  342. package/dist/src/tui/backends/gateway-sse-backend.js +0 -7
  343. package/dist/src/tui/backends/gateway-sse-backend.js.map +1 -1
  344. package/dist/src/tui/clipboard-image.js +3 -3
  345. package/dist/src/tui/theme-manager.js +1 -1
  346. package/dist/src/tui/tui-backend.d.ts +0 -1
  347. package/dist/src/tui/tui-command-formatters.js +3 -3
  348. package/dist/src/tui/tui-commands.js +3 -3
  349. package/dist/src/tui/tui-commands.js.map +1 -1
  350. package/dist/src/tui/tui-keybindings-file.js +1 -1
  351. package/dist/src/tui/tui-picker-overlay.js +1 -1
  352. package/dist/src/tui/tui-picker-overlay.js.map +1 -1
  353. package/dist/src/tui/tui-scoped-models.js +2 -2
  354. package/dist/src/tui/tui-settings.js +1 -1
  355. package/dist/src/tui/tui-startup-resources.js +2 -2
  356. package/dist/src/tui/tui.js +5 -5
  357. package/dist/src/tunnel/frpc-binary.js +3 -3
  358. package/dist/src/tunnel/frpc-config.js +1 -1
  359. package/dist/src/tunnel/frpc-extract.js +1 -1
  360. package/dist/src/tunnel/tunnel-state.js +1 -1
  361. package/dist/src/utils/logger/audit.js +1 -1
  362. package/dist/src/utils/logger/log-store.js +1 -1
  363. package/dist/src/utils/logger/rotation.js +1 -1
  364. package/dist/src/voice/stt/availability.d.ts +6 -0
  365. package/dist/src/voice/stt/availability.js +14 -6
  366. package/dist/src/voice/stt/availability.js.map +1 -1
  367. package/dist/src/voice/stt/index.js +2 -1
  368. package/dist/src/voice/stt/index.js.map +1 -1
  369. package/dist/src/voice/stt/mention.d.ts +2 -0
  370. package/dist/src/voice/stt/mention.js +20 -0
  371. package/dist/src/voice/stt/mention.js.map +1 -0
  372. package/dist/src/voice/stt/preflight.d.ts +1 -4
  373. package/dist/src/voice/stt/preflight.js +1 -18
  374. package/dist/src/voice/stt/preflight.js.map +1 -1
  375. package/dist/src/voice/tts/audio.js +1 -1
  376. package/dist/src/voice/tts/providers/edge-speech.js +2 -2
  377. package/dist/src/workflows/domain/definition-utils.d.ts +1 -0
  378. package/dist/src/workflows/domain/definition-utils.js +32 -2
  379. package/dist/src/workflows/domain/definition-utils.js.map +1 -1
  380. package/dist/src/workflows/domain/definition.d.ts +2 -0
  381. package/dist/src/workflows/domain/event.d.ts +2 -1
  382. package/dist/src/workflows/domain/index.d.ts +1 -0
  383. package/dist/src/workflows/domain/index.js +3 -2
  384. package/dist/src/workflows/domain/run.d.ts +27 -1
  385. package/dist/src/workflows/domain/run.js.map +1 -1
  386. package/dist/src/workflows/domain/schema-validation.d.ts +8 -0
  387. package/dist/src/workflows/domain/schema-validation.js +28 -0
  388. package/dist/src/workflows/domain/schema-validation.js.map +1 -0
  389. package/dist/src/workflows/draft/index.d.ts +3 -0
  390. package/dist/src/workflows/draft/index.js +3 -0
  391. package/dist/src/workflows/draft/workflow-draft-prompt.d.ts +23 -0
  392. package/dist/src/workflows/draft/workflow-draft-prompt.js +98 -0
  393. package/dist/src/workflows/draft/workflow-draft-prompt.js.map +1 -0
  394. package/dist/src/workflows/draft/workflow-draft-service.d.ts +12 -0
  395. package/dist/src/workflows/draft/workflow-draft-service.js +131 -0
  396. package/dist/src/workflows/draft/workflow-draft-service.js.map +1 -0
  397. package/dist/src/workflows/draft/workflow-draft-validator.d.ts +4 -0
  398. package/dist/src/workflows/draft/workflow-draft-validator.js +133 -0
  399. package/dist/src/workflows/draft/workflow-draft-validator.js.map +1 -0
  400. package/dist/src/workflows/draft/workflow-draft.types.d.ts +44 -0
  401. package/dist/src/workflows/draft/workflow-draft.types.js +1 -0
  402. package/dist/src/workflows/engine/projector.js +1 -0
  403. package/dist/src/workflows/engine/projector.js.map +1 -1
  404. package/dist/src/workflows/engine/workflow-engine.d.ts +18 -0
  405. package/dist/src/workflows/engine/workflow-engine.js +320 -11
  406. package/dist/src/workflows/engine/workflow-engine.js.map +1 -1
  407. package/dist/src/workflows/index.js +4 -3
  408. package/dist/src/workflows/service/workflow-run-service.d.ts +14 -3
  409. package/dist/src/workflows/service/workflow-run-service.js +227 -6
  410. package/dist/src/workflows/service/workflow-run-service.js.map +1 -1
  411. package/dist/src/workflows/service/workflow-run-service.types.d.ts +7 -2
  412. package/dist/src/workflows/store/event-store.js +1 -1
  413. package/dist/src/workflows/store/run-store.js +1 -1
  414. package/package.json +5 -3
  415. package/dist/gateway/static/root/assets/agents-XzgIVKcI.js +0 -396
  416. package/dist/gateway/static/root/assets/apps-page-B7Us3RMl.js +0 -1
  417. package/dist/gateway/static/root/assets/channels-settings-BgeV6fzw.js +0 -1
  418. package/dist/gateway/static/root/assets/cron-page-DKGHEeAU.js +0 -1
  419. package/dist/gateway/static/root/assets/index-50FVtgXU.js +0 -4845
  420. package/dist/gateway/static/root/assets/index-BPYKW7FB.css +0 -1
  421. package/dist/gateway/static/root/assets/notes-page-CsWIw35Q.js +0 -1
  422. package/dist/gateway/static/root/assets/sessions-page-CLPsbyOW.js +0 -1
  423. package/dist/gateway/static/root/assets/settings-page-CRGHT_bm.js +0 -3
  424. package/dist/gateway/static/root/assets/skills-page-Ce-RIH2y.js +0 -2
  425. package/dist/gateway/static/root/assets/url-DPEStU4M.js +0 -3
  426. package/dist/gateway/static/root/assets/voice-api-key-field-CJGTidqc.js +0 -1
  427. package/dist/gateway/static/root/assets/workflows-page-o63aaARK.js +0 -27
  428. package/dist/src/agent/builtin-agent-ids.d.ts +0 -2
  429. package/dist/src/agent/builtin-agent-ids.js +0 -17
  430. package/dist/src/agent/builtin-agent-ids.js.map +0 -1
@@ -4,8 +4,11 @@
4
4
  "description": "Feishu/Lark tools (doc/wiki/drive/perm/bitable) for xopc agents. Activates when the Feishu channel is configured.",
5
5
  "version": "0.0.14",
6
6
  "kind": "tool",
7
- "main": "src/index.ts",
8
- "channels": ["feishu", "lark"],
7
+ "main": "src/index.js",
8
+ "channels": [
9
+ "feishu",
10
+ "lark"
11
+ ],
9
12
  "channelContributions": {
10
13
  "feishu": {
11
14
  "label": "Feishu",
@@ -25,29 +28,363 @@
25
28
  "type": "object",
26
29
  "additionalProperties": true,
27
30
  "properties": {
28
- "enabled": { "type": "boolean", "default": false, "title": "Enabled" },
29
- "accounts": { "type": "object", "additionalProperties": true, "title": "Accounts" },
30
- "appId": { "type": "string", "title": "App ID" },
31
- "appSecret": { "type": "string", "format": "password", "title": "App secret" },
31
+ "enabled": {
32
+ "type": "boolean",
33
+ "default": false,
34
+ "title": "Enabled"
35
+ },
36
+ "accounts": {
37
+ "type": "object",
38
+ "additionalProperties": true,
39
+ "title": "Accounts"
40
+ },
41
+ "appId": {
42
+ "type": "string",
43
+ "title": "App ID"
44
+ },
45
+ "appSecret": {
46
+ "type": "string",
47
+ "format": "password",
48
+ "title": "App secret"
49
+ },
32
50
  "domain": {
33
51
  "type": "string",
34
- "enum": ["feishu", "lark"],
52
+ "enum": [
53
+ "feishu",
54
+ "lark"
55
+ ],
35
56
  "default": "feishu",
36
57
  "title": "Domain"
58
+ },
59
+ "connectionMode": {
60
+ "type": "string",
61
+ "enum": [
62
+ "websocket",
63
+ "webhook"
64
+ ],
65
+ "default": "websocket",
66
+ "title": "Connection mode"
67
+ },
68
+ "dmPolicy": {
69
+ "type": "string",
70
+ "enum": [
71
+ "pairing",
72
+ "allowlist",
73
+ "open",
74
+ "disabled"
75
+ ],
76
+ "default": "open",
77
+ "title": "DM policy"
78
+ },
79
+ "groupPolicy": {
80
+ "type": "string",
81
+ "enum": [
82
+ "open",
83
+ "disabled",
84
+ "allowlist"
85
+ ],
86
+ "default": "allowlist",
87
+ "title": "Group policy"
88
+ },
89
+ "allowFrom": {
90
+ "type": "array",
91
+ "items": {
92
+ "type": "string"
93
+ },
94
+ "title": "Allowed DM senders"
95
+ },
96
+ "groupAllowFrom": {
97
+ "type": "array",
98
+ "items": {
99
+ "type": "string"
100
+ },
101
+ "title": "Allowed group senders"
102
+ },
103
+ "requireMention": {
104
+ "type": "boolean",
105
+ "default": true,
106
+ "title": "Require mention in groups"
107
+ },
108
+ "renderMode": {
109
+ "type": "string",
110
+ "enum": [
111
+ "auto",
112
+ "raw",
113
+ "card"
114
+ ],
115
+ "default": "auto",
116
+ "title": "Render mode"
117
+ },
118
+ "streaming": {
119
+ "type": "boolean",
120
+ "default": false,
121
+ "title": "Streaming replies"
122
+ },
123
+ "reactionNotifications": {
124
+ "type": "string",
125
+ "enum": [
126
+ "off",
127
+ "own",
128
+ "all"
129
+ ],
130
+ "default": "own",
131
+ "title": "Reaction notifications"
132
+ },
133
+ "inboundDebounceMs": {
134
+ "type": "number",
135
+ "minimum": 0,
136
+ "maximum": 10000,
137
+ "title": "Inbound debounce (ms)"
138
+ },
139
+ "historyLimit": {
140
+ "type": "number",
141
+ "minimum": 0,
142
+ "default": 50,
143
+ "title": "History limit"
144
+ },
145
+ "textChunkLimit": {
146
+ "type": "number",
147
+ "minimum": 1,
148
+ "default": 4000,
149
+ "title": "Text chunk limit"
150
+ },
151
+ "webhookHost": {
152
+ "type": "string",
153
+ "title": "Webhook host"
154
+ },
155
+ "webhookPort": {
156
+ "type": "number",
157
+ "minimum": 1,
158
+ "title": "Webhook port"
159
+ },
160
+ "webhookPath": {
161
+ "type": "string",
162
+ "title": "Webhook path"
163
+ },
164
+ "verificationToken": {
165
+ "type": "string",
166
+ "format": "password",
167
+ "title": "Verification token"
168
+ },
169
+ "encryptKey": {
170
+ "type": "string",
171
+ "format": "password",
172
+ "title": "Encrypt key"
173
+ },
174
+ "tools": {
175
+ "type": "object",
176
+ "title": "Tools",
177
+ "additionalProperties": false,
178
+ "properties": {
179
+ "doc": {
180
+ "type": "boolean",
181
+ "title": "Doc"
182
+ },
183
+ "chat": {
184
+ "type": "boolean",
185
+ "title": "Chat"
186
+ },
187
+ "wiki": {
188
+ "type": "boolean",
189
+ "title": "Wiki"
190
+ },
191
+ "drive": {
192
+ "type": "boolean",
193
+ "title": "Drive"
194
+ },
195
+ "perm": {
196
+ "type": "boolean",
197
+ "title": "Permissions"
198
+ },
199
+ "bitable": {
200
+ "type": "boolean",
201
+ "title": "Bitable"
202
+ },
203
+ "scopes": {
204
+ "type": "boolean",
205
+ "title": "Scopes"
206
+ }
207
+ }
208
+ },
209
+ "actions": {
210
+ "type": "object",
211
+ "title": "Actions",
212
+ "additionalProperties": false,
213
+ "properties": {
214
+ "reactions": {
215
+ "type": "boolean",
216
+ "title": "Reactions"
217
+ }
218
+ }
219
+ },
220
+ "blockStreamingCoalesce": {
221
+ "type": "object",
222
+ "title": "Block streaming coalesce",
223
+ "additionalProperties": false,
224
+ "properties": {
225
+ "enabled": {
226
+ "type": "boolean",
227
+ "title": "Enabled"
228
+ },
229
+ "minChars": {
230
+ "type": "number",
231
+ "minimum": 1,
232
+ "title": "Minimum characters"
233
+ },
234
+ "idleMs": {
235
+ "type": "number",
236
+ "minimum": 1,
237
+ "title": "Idle milliseconds"
238
+ }
239
+ }
240
+ },
241
+ "dynamicAgentCreation": {
242
+ "type": "object",
243
+ "title": "Dynamic agent creation",
244
+ "additionalProperties": false,
245
+ "properties": {
246
+ "enabled": {
247
+ "type": "boolean",
248
+ "title": "Enabled"
249
+ },
250
+ "workspaceTemplate": {
251
+ "type": "string",
252
+ "title": "Workspace template"
253
+ },
254
+ "agentDirTemplate": {
255
+ "type": "string",
256
+ "title": "Agent directory template"
257
+ },
258
+ "maxAgents": {
259
+ "type": "number",
260
+ "minimum": 1,
261
+ "title": "Max agents"
262
+ }
263
+ }
37
264
  }
38
265
  }
39
266
  },
40
267
  "uiHints": {
41
- "appSecret": { "sensitive": true },
42
- "accounts.*.appSecret": { "sensitive": true },
43
- "verificationToken": { "sensitive": true },
44
- "encryptKey": { "sensitive": true }
268
+ "enabled": {
269
+ "advanced": false,
270
+ "tags": [
271
+ "basic"
272
+ ]
273
+ },
274
+ "appId": {
275
+ "advanced": false,
276
+ "tags": [
277
+ "basic"
278
+ ]
279
+ },
280
+ "appSecret": {
281
+ "advanced": false,
282
+ "tags": [
283
+ "basic"
284
+ ],
285
+ "sensitive": true
286
+ },
287
+ "domain": {
288
+ "advanced": false,
289
+ "tags": [
290
+ "basic"
291
+ ]
292
+ },
293
+ "accounts": {
294
+ "advanced": true
295
+ },
296
+ "connectionMode": {
297
+ "advanced": true
298
+ },
299
+ "dmPolicy": {
300
+ "advanced": true
301
+ },
302
+ "groupPolicy": {
303
+ "advanced": true
304
+ },
305
+ "allowFrom": {
306
+ "advanced": true
307
+ },
308
+ "groupAllowFrom": {
309
+ "advanced": true
310
+ },
311
+ "requireMention": {
312
+ "advanced": true
313
+ },
314
+ "renderMode": {
315
+ "advanced": true
316
+ },
317
+ "streaming": {
318
+ "advanced": true
319
+ },
320
+ "reactionNotifications": {
321
+ "advanced": true
322
+ },
323
+ "inboundDebounceMs": {
324
+ "advanced": true
325
+ },
326
+ "historyLimit": {
327
+ "advanced": true
328
+ },
329
+ "textChunkLimit": {
330
+ "advanced": true
331
+ },
332
+ "webhookHost": {
333
+ "advanced": true
334
+ },
335
+ "webhookPort": {
336
+ "advanced": true
337
+ },
338
+ "webhookPath": {
339
+ "advanced": true
340
+ },
341
+ "verificationToken": {
342
+ "advanced": true,
343
+ "sensitive": true
344
+ },
345
+ "encryptKey": {
346
+ "advanced": true,
347
+ "sensitive": true
348
+ },
349
+ "tools": {
350
+ "advanced": true
351
+ },
352
+ "actions": {
353
+ "advanced": true
354
+ },
355
+ "blockStreamingCoalesce": {
356
+ "advanced": true
357
+ },
358
+ "dynamicAgentCreation": {
359
+ "advanced": true
360
+ },
361
+ "accounts.*.appSecret": {
362
+ "sensitive": true
363
+ },
364
+ "accounts.*.verificationToken": {
365
+ "sensitive": true
366
+ },
367
+ "accounts.*.encryptKey": {
368
+ "sensitive": true
369
+ }
45
370
  },
46
371
  "actions": {
47
- "setup.start": { "label": "Set up by QR", "result": "qr" },
48
- "setup.status": { "label": "Setup status", "result": "poll" },
49
- "setup.manual": { "label": "Manual setup", "result": "form" },
50
- "doctor.run": { "label": "Run doctor", "result": "diagnostics" }
372
+ "setup.start": {
373
+ "label": "Set up by QR",
374
+ "result": "qr"
375
+ },
376
+ "setup.status": {
377
+ "label": "Setup status",
378
+ "result": "poll"
379
+ },
380
+ "setup.manual": {
381
+ "label": "Manual setup",
382
+ "result": "form"
383
+ },
384
+ "doctor.run": {
385
+ "label": "Run doctor",
386
+ "result": "diagnostics"
387
+ }
51
388
  },
52
389
  "i18n": {
53
390
  "zh": {
@@ -55,29 +392,124 @@
55
392
  "description": "飞书 / Lark 消息通道与工作区工具",
56
393
  "configSchema": {
57
394
  "properties": {
58
- "enabled": { "title": "启用" },
59
- "accounts": { "title": "账号" },
60
- "appId": { "title": "App ID" },
61
- "appSecret": { "title": "App Secret" },
62
- "domain": { "title": "域名" }
395
+ "enabled": {
396
+ "title": "启用"
397
+ },
398
+ "accounts": {
399
+ "title": "账号"
400
+ },
401
+ "appId": {
402
+ "title": "App ID"
403
+ },
404
+ "appSecret": {
405
+ "title": "App Secret"
406
+ },
407
+ "domain": {
408
+ "title": "域名"
409
+ },
410
+ "connectionMode": {
411
+ "title": "连接模式"
412
+ },
413
+ "dmPolicy": {
414
+ "title": "私聊策略"
415
+ },
416
+ "groupPolicy": {
417
+ "title": "群聊策略"
418
+ },
419
+ "allowFrom": {
420
+ "title": "允许的私聊发送者"
421
+ },
422
+ "groupAllowFrom": {
423
+ "title": "允许的群聊发送者"
424
+ },
425
+ "requireMention": {
426
+ "title": "群聊需要 @"
427
+ },
428
+ "renderMode": {
429
+ "title": "渲染模式"
430
+ },
431
+ "streaming": {
432
+ "title": "流式回复"
433
+ },
434
+ "reactionNotifications": {
435
+ "title": "表情回应通知"
436
+ },
437
+ "inboundDebounceMs": {
438
+ "title": "入站合并延迟(毫秒)"
439
+ },
440
+ "historyLimit": {
441
+ "title": "历史消息数量"
442
+ },
443
+ "textChunkLimit": {
444
+ "title": "文本分块上限"
445
+ },
446
+ "webhookHost": {
447
+ "title": "Webhook 主机"
448
+ },
449
+ "webhookPort": {
450
+ "title": "Webhook 端口"
451
+ },
452
+ "webhookPath": {
453
+ "title": "Webhook 路径"
454
+ },
455
+ "verificationToken": {
456
+ "title": "Verification Token"
457
+ },
458
+ "encryptKey": {
459
+ "title": "Encrypt Key"
460
+ },
461
+ "tools": {
462
+ "title": "工具"
463
+ },
464
+ "actions": {
465
+ "title": "操作"
466
+ },
467
+ "blockStreamingCoalesce": {
468
+ "title": "块流式合并"
469
+ },
470
+ "dynamicAgentCreation": {
471
+ "title": "动态 Agent 创建"
472
+ }
63
473
  }
64
474
  },
65
475
  "actions": {
66
- "setup.start": { "label": "扫码配置" },
67
- "setup.status": { "label": "配置状态" },
68
- "setup.manual": { "label": "手动配置" },
69
- "doctor.run": { "label": "诊断" }
476
+ "setup.start": {
477
+ "label": "扫码配置"
478
+ },
479
+ "setup.status": {
480
+ "label": "配置状态"
481
+ },
482
+ "setup.manual": {
483
+ "label": "手动配置"
484
+ },
485
+ "doctor.run": {
486
+ "label": "诊断"
487
+ }
70
488
  }
71
489
  }
72
490
  }
73
491
  }
74
492
  },
75
493
  "activation": {
76
- "onChannels": ["feishu", "lark"],
77
- "onCapabilities": ["tool"]
494
+ "onChannels": [
495
+ "feishu",
496
+ "lark"
497
+ ],
498
+ "onCapabilities": [
499
+ "tool"
500
+ ]
78
501
  },
79
502
  "setup": {
80
503
  "providers": [],
81
504
  "requiresRuntime": true
505
+ },
506
+ "engines": {
507
+ "xopc": ">=0.0.106 <1.0.0"
508
+ },
509
+ "contracts": {
510
+ "channels": [
511
+ "feishu",
512
+ "lark"
513
+ ]
82
514
  }
83
515
  }
@@ -4,6 +4,11 @@
4
4
  "description": "Gemini image generation and editing. Configure API keys and optional base URL under Settings → Images, or here — both edit the same providers.google entry.",
5
5
  "version": "1.0.0",
6
6
  "kind": "image-generation",
7
- "main": "src/index.ts",
8
- "autoEnableWhenConfiguredProviders": ["google"]
7
+ "main": "src/index.js",
8
+ "autoEnableWhenConfiguredProviders": [
9
+ "google"
10
+ ],
11
+ "engines": {
12
+ "xopc": ">=0.0.106 <1.0.0"
13
+ }
9
14
  }
@@ -4,6 +4,12 @@
4
4
  "description": "MiniMax image generation. Configure API keys and cluster (CN vs international) under Settings → Images, or here — both edit the same providers.minimax entry.",
5
5
  "version": "1.0.0",
6
6
  "kind": "image-generation",
7
- "main": "src/index.ts",
8
- "autoEnableWhenConfiguredProviders": ["minimax", "minimax-cn"]
7
+ "main": "src/index.js",
8
+ "autoEnableWhenConfiguredProviders": [
9
+ "minimax",
10
+ "minimax-cn"
11
+ ],
12
+ "engines": {
13
+ "xopc": ">=0.0.106 <1.0.0"
14
+ }
9
15
  }
@@ -4,6 +4,11 @@
4
4
  "description": "DALL·E / GPT image APIs. Configure API keys and optional base URL under Settings → Images, or here — both edit the same providers.openai entry.",
5
5
  "version": "1.0.0",
6
6
  "kind": "image-generation",
7
- "main": "src/index.ts",
8
- "autoEnableWhenConfiguredProviders": ["openai"]
7
+ "main": "src/index.js",
8
+ "autoEnableWhenConfiguredProviders": [
9
+ "openai"
10
+ ],
11
+ "engines": {
12
+ "xopc": ">=0.0.106 <1.0.0"
13
+ }
9
14
  }
@@ -1,6 +1,4 @@
1
- import { init_loader, loadConfig, saveConfig } from "../../../../src/config/loader.js";
2
1
  //#region extensions/telegram/src/adapters/gateway-setup.ts
3
- init_loader();
4
2
  function isZh(locale) {
5
3
  return locale?.toLowerCase().startsWith("zh") === true;
6
4
  }
@@ -115,16 +113,20 @@ function formPayload(config, locale) {
115
113
  }
116
114
  const telegramGatewaySetupActions = { async runAction({ actionId, input, locale }) {
117
115
  const zh = isZh(locale);
118
- if (actionId === "setup.start") return {
119
- ok: true,
120
- payload: formPayload(loadConfig(), locale)
121
- };
116
+ if (actionId === "setup.start") {
117
+ const { loadConfig } = await import("../../../../src/config/loader.js");
118
+ return {
119
+ ok: true,
120
+ payload: formPayload(loadConfig(), locale)
121
+ };
122
+ }
122
123
  if (actionId === "setup.save") {
123
124
  const raw = readInput(input);
124
125
  if (!pickString(raw.botToken)) return {
125
126
  ok: false,
126
127
  message: zh ? "Bot Token 为必填项。" : "Bot Token is required."
127
128
  };
129
+ const { loadConfig, saveConfig } = await import("../../../../src/config/loader.js");
128
130
  await saveConfig(buildTelegramConfig(loadConfig(), raw));
129
131
  return {
130
132
  ok: true,
@@ -1 +1 @@
1
- {"version":3,"file":"gateway-setup.js","names":[],"sources":["../../../../../extensions/telegram/src/adapters/gateway-setup.ts"],"sourcesContent":["import { loadConfig, saveConfig } from '@xopcai/xopc/config/loader.js';\nimport type { Config } from '@xopcai/xopc/config/schema.js';\nimport type { ChannelRuntimeActionAdapter } from '@xopcai/xopc/channels/plugins/types.adapters.js';\n\nfunction isZh(locale: string | undefined): boolean {\n return locale?.toLowerCase().startsWith('zh') === true;\n}\n\nfunction readInput(input: unknown): Record<string, unknown> {\n return input && typeof input === 'object' && !Array.isArray(input)\n ? (input as Record<string, unknown>)\n : {};\n}\n\nfunction pickString(input: unknown): string {\n return typeof input === 'string' ? input.trim() : '';\n}\n\nfunction pickDmPolicy(input: unknown): 'open' | 'pairing' | 'allowlist' | 'disabled' {\n return input === 'pairing' || input === 'allowlist' || input === 'disabled' ? input : 'open';\n}\n\nfunction existingDefaultAccount(config: Config): Record<string, unknown> {\n const telegram = config.channels?.telegram as Record<string, unknown> | undefined;\n const accounts = telegram?.accounts as Record<string, unknown> | undefined;\n const account = accounts?.default;\n return account && typeof account === 'object' && !Array.isArray(account)\n ? (account as Record<string, unknown>)\n : {};\n}\n\nfunction buildTelegramConfig(config: Config, input: Record<string, unknown>): Config {\n const existing = (config.channels?.telegram as Record<string, unknown> | undefined) ?? {};\n const existingAccounts = (existing.accounts as Record<string, unknown> | undefined) ?? {};\n const previousDefault = existingDefaultAccount(config);\n\n const botToken = pickString(input.botToken) || pickString(previousDefault.botToken);\n const apiRoot = pickString(input.apiRoot);\n const proxy = pickString(input.proxy);\n const dmPolicy = pickDmPolicy(input.dmPolicy ?? previousDefault.dmPolicy ?? existing.dmPolicy);\n\n const defaultAccount: Record<string, unknown> = {\n ...previousDefault,\n accountId: 'default',\n enabled: true,\n botToken,\n dmPolicy,\n allowFrom: dmPolicy === 'open' ? ['*'] : (previousDefault.allowFrom ?? []),\n groupPolicy: previousDefault.groupPolicy ?? existing.groupPolicy ?? 'open',\n replyToMode: previousDefault.replyToMode ?? existing.replyToMode ?? 'off',\n historyLimit: previousDefault.historyLimit ?? existing.historyLimit ?? 50,\n textChunkLimit: previousDefault.textChunkLimit ?? existing.textChunkLimit ?? 4000,\n streaming: previousDefault.streaming ?? existing.streaming ?? { mode: 'partial' },\n };\n\n if (apiRoot) defaultAccount.apiRoot = apiRoot;\n if (proxy) defaultAccount.proxy = proxy;\n\n const topAllowFrom = dmPolicy === 'open' ? ['*'] : (existing.allowFrom ?? []);\n\n return {\n ...config,\n channels: {\n ...config.channels,\n telegram: {\n ...existing,\n enabled: true,\n dmPolicy,\n allowFrom: topAllowFrom,\n groupPolicy: existing.groupPolicy ?? 'open',\n replyToMode: existing.replyToMode ?? 'off',\n streaming: existing.streaming ?? { mode: 'partial' },\n historyLimit: existing.historyLimit ?? 50,\n textChunkLimit: existing.textChunkLimit ?? 4000,\n ...(apiRoot ? { apiRoot } : {}),\n ...(proxy ? { proxy } : {}),\n accounts: {\n ...existingAccounts,\n default: defaultAccount,\n },\n },\n },\n };\n}\n\nfunction formPayload(config: Config, locale?: string) {\n const zh = isZh(locale);\n const telegram = (config.channels?.telegram as Record<string, unknown> | undefined) ?? {};\n const account = existingDefaultAccount(config);\n return {\n type: 'form' as const,\n submitAction: 'setup.save',\n message: zh\n ? '填写 Bot Token 后保存即可启用 Telegram 私聊。群聊、多个账号、allowlist 等放在高级配置。'\n : 'Enter a Bot Token and save. Private chat works by default; groups, multi-account, and allowlists live in Advanced configuration.',\n schema: {\n type: 'object',\n properties: {\n botToken: { type: 'string', title: zh ? 'Bot Token' : 'Bot Token', format: 'password' },\n dmPolicy: {\n type: 'string',\n title: zh ? '私聊访问' : 'Private chat access',\n enum: ['open', 'pairing', 'allowlist', 'disabled'],\n default: 'open',\n },\n apiRoot: {\n type: 'string',\n title: zh ? 'API Root(可选)' : 'API root (optional)',\n placeholder: 'https://api.telegram.org',\n },\n proxy: {\n type: 'string',\n title: zh ? '代理(可选)' : 'Proxy (optional)',\n placeholder: 'http://127.0.0.1:7897',\n },\n },\n required: ['botToken'],\n },\n values: {\n botToken: pickString(account.botToken),\n dmPolicy: pickDmPolicy(account.dmPolicy ?? telegram.dmPolicy ?? 'open'),\n apiRoot: pickString(account.apiRoot ?? telegram.apiRoot),\n proxy: pickString(account.proxy ?? telegram.proxy),\n },\n };\n}\n\nexport const telegramGatewaySetupActions: ChannelRuntimeActionAdapter = {\n async runAction({ actionId, input, locale }) {\n const zh = isZh(locale);\n if (actionId === 'setup.start') {\n return { ok: true, payload: formPayload(loadConfig(), locale) };\n }\n\n if (actionId === 'setup.save') {\n const raw = readInput(input);\n const botToken = pickString(raw.botToken);\n if (!botToken) {\n return { ok: false, message: zh ? 'Bot Token 为必填项。' : 'Bot Token is required.' };\n }\n await saveConfig(buildTelegramConfig(loadConfig(), raw));\n return {\n ok: true,\n payload: {\n type: 'ok',\n message: zh ? 'Telegram 配置已保存。私聊现在默认可用。' : 'Telegram configuration saved. Private chat is enabled by default.',\n configChanged: true,\n },\n };\n }\n\n return { ok: false, message: `${zh ? '不支持的 Telegram 操作' : 'Unsupported Telegram action'}: ${actionId}` };\n },\n};\n"],"mappings":";;aAAuE;AAIvE,SAAS,KAAK,QAAqC;AACjD,QAAO,QAAQ,aAAa,CAAC,WAAW,KAAK,KAAK;;AAGpD,SAAS,UAAU,OAAyC;AAC1D,QAAO,SAAS,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,MAAM,GAC7D,QACD,EAAE;;AAGR,SAAS,WAAW,OAAwB;AAC1C,QAAO,OAAO,UAAU,WAAW,MAAM,MAAM,GAAG;;AAGpD,SAAS,aAAa,OAA+D;AACnF,QAAO,UAAU,aAAa,UAAU,eAAe,UAAU,aAAa,QAAQ;;AAGxF,SAAS,uBAAuB,QAAyC;CAGvE,MAAM,YAFW,OAAO,UAAU,WACP,WACD;AAC1B,QAAO,WAAW,OAAO,YAAY,YAAY,CAAC,MAAM,QAAQ,QAAQ,GACnE,UACD,EAAE;;AAGR,SAAS,oBAAoB,QAAgB,OAAwC;CACnF,MAAM,WAAY,OAAO,UAAU,YAAoD,EAAE;CACzF,MAAM,mBAAoB,SAAS,YAAoD,EAAE;CACzF,MAAM,kBAAkB,uBAAuB,OAAO;CAEtD,MAAM,WAAW,WAAW,MAAM,SAAS,IAAI,WAAW,gBAAgB,SAAS;CACnF,MAAM,UAAU,WAAW,MAAM,QAAQ;CACzC,MAAM,QAAQ,WAAW,MAAM,MAAM;CACrC,MAAM,WAAW,aAAa,MAAM,YAAY,gBAAgB,YAAY,SAAS,SAAS;CAE9F,MAAM,iBAA0C;EAC9C,GAAG;EACH,WAAW;EACX,SAAS;EACT;EACA;EACA,WAAW,aAAa,SAAS,CAAC,IAAI,GAAI,gBAAgB,aAAa,EAAE;EACzE,aAAa,gBAAgB,eAAe,SAAS,eAAe;EACpE,aAAa,gBAAgB,eAAe,SAAS,eAAe;EACpE,cAAc,gBAAgB,gBAAgB,SAAS,gBAAgB;EACvE,gBAAgB,gBAAgB,kBAAkB,SAAS,kBAAkB;EAC7E,WAAW,gBAAgB,aAAa,SAAS,aAAa,EAAE,MAAM,WAAW;EAClF;AAED,KAAI,QAAS,gBAAe,UAAU;AACtC,KAAI,MAAO,gBAAe,QAAQ;CAElC,MAAM,eAAe,aAAa,SAAS,CAAC,IAAI,GAAI,SAAS,aAAa,EAAE;AAE5E,QAAO;EACL,GAAG;EACH,UAAU;GACR,GAAG,OAAO;GACV,UAAU;IACR,GAAG;IACH,SAAS;IACT;IACA,WAAW;IACX,aAAa,SAAS,eAAe;IACrC,aAAa,SAAS,eAAe;IACrC,WAAW,SAAS,aAAa,EAAE,MAAM,WAAW;IACpD,cAAc,SAAS,gBAAgB;IACvC,gBAAgB,SAAS,kBAAkB;IAC3C,GAAI,UAAU,EAAE,SAAS,GAAG,EAAE;IAC9B,GAAI,QAAQ,EAAE,OAAO,GAAG,EAAE;IAC1B,UAAU;KACR,GAAG;KACH,SAAS;KACV;IACF;GACF;EACF;;AAGH,SAAS,YAAY,QAAgB,QAAiB;CACpD,MAAM,KAAK,KAAK,OAAO;CACvB,MAAM,WAAY,OAAO,UAAU,YAAoD,EAAE;CACzF,MAAM,UAAU,uBAAuB,OAAO;AAC9C,QAAO;EACL,MAAM;EACN,cAAc;EACd,SAAS,KACL,gEACA;EACJ,QAAQ;GACN,MAAM;GACN,YAAY;IACV,UAAU;KAAE,MAAM;KAAU,OAAO,KAAK,cAAc;KAAa,QAAQ;KAAY;IACvF,UAAU;KACR,MAAM;KACN,OAAO,KAAK,SAAS;KACrB,MAAM;MAAC;MAAQ;MAAW;MAAa;MAAW;KAClD,SAAS;KACV;IACD,SAAS;KACP,MAAM;KACN,OAAO,KAAK,iBAAiB;KAC7B,aAAa;KACd;IACD,OAAO;KACL,MAAM;KACN,OAAO,KAAK,WAAW;KACvB,aAAa;KACd;IACF;GACD,UAAU,CAAC,WAAW;GACvB;EACD,QAAQ;GACN,UAAU,WAAW,QAAQ,SAAS;GACtC,UAAU,aAAa,QAAQ,YAAY,SAAS,YAAY,OAAO;GACvE,SAAS,WAAW,QAAQ,WAAW,SAAS,QAAQ;GACxD,OAAO,WAAW,QAAQ,SAAS,SAAS,MAAM;GACnD;EACF;;AAGH,MAAa,8BAA2D,EACtE,MAAM,UAAU,EAAE,UAAU,OAAO,UAAU;CAC3C,MAAM,KAAK,KAAK,OAAO;AACvB,KAAI,aAAa,cACf,QAAO;EAAE,IAAI;EAAM,SAAS,YAAY,YAAY,EAAE,OAAO;EAAE;AAGjE,KAAI,aAAa,cAAc;EAC7B,MAAM,MAAM,UAAU,MAAM;AAE5B,MAAI,CADa,WAAW,IAAI,SACnB,CACX,QAAO;GAAE,IAAI;GAAO,SAAS,KAAK,oBAAoB;GAA0B;AAElF,QAAM,WAAW,oBAAoB,YAAY,EAAE,IAAI,CAAC;AACxD,SAAO;GACL,IAAI;GACJ,SAAS;IACP,MAAM;IACN,SAAS,KAAK,6BAA6B;IAC3C,eAAe;IAChB;GACF;;AAGH,QAAO;EAAE,IAAI;EAAO,SAAS,GAAG,KAAK,qBAAqB,8BAA8B,IAAI;EAAY;GAE3G"}
1
+ {"version":3,"file":"gateway-setup.js","names":[],"sources":["../../../../../extensions/telegram/src/adapters/gateway-setup.ts"],"sourcesContent":["import type { Config } from '@xopcai/xopc/config/schema.js';\nimport type { ChannelRuntimeActionAdapter } from '@xopcai/xopc/channels/plugins/types.adapters.js';\n\nfunction isZh(locale: string | undefined): boolean {\n return locale?.toLowerCase().startsWith('zh') === true;\n}\n\nfunction readInput(input: unknown): Record<string, unknown> {\n return input && typeof input === 'object' && !Array.isArray(input)\n ? (input as Record<string, unknown>)\n : {};\n}\n\nfunction pickString(input: unknown): string {\n return typeof input === 'string' ? input.trim() : '';\n}\n\nfunction pickDmPolicy(input: unknown): 'open' | 'pairing' | 'allowlist' | 'disabled' {\n return input === 'pairing' || input === 'allowlist' || input === 'disabled' ? input : 'open';\n}\n\nfunction existingDefaultAccount(config: Config): Record<string, unknown> {\n const telegram = config.channels?.telegram as Record<string, unknown> | undefined;\n const accounts = telegram?.accounts as Record<string, unknown> | undefined;\n const account = accounts?.default;\n return account && typeof account === 'object' && !Array.isArray(account)\n ? (account as Record<string, unknown>)\n : {};\n}\n\nfunction buildTelegramConfig(config: Config, input: Record<string, unknown>): Config {\n const existing = (config.channels?.telegram as Record<string, unknown> | undefined) ?? {};\n const existingAccounts = (existing.accounts as Record<string, unknown> | undefined) ?? {};\n const previousDefault = existingDefaultAccount(config);\n\n const botToken = pickString(input.botToken) || pickString(previousDefault.botToken);\n const apiRoot = pickString(input.apiRoot);\n const proxy = pickString(input.proxy);\n const dmPolicy = pickDmPolicy(input.dmPolicy ?? previousDefault.dmPolicy ?? existing.dmPolicy);\n\n const defaultAccount: Record<string, unknown> = {\n ...previousDefault,\n accountId: 'default',\n enabled: true,\n botToken,\n dmPolicy,\n allowFrom: dmPolicy === 'open' ? ['*'] : (previousDefault.allowFrom ?? []),\n groupPolicy: previousDefault.groupPolicy ?? existing.groupPolicy ?? 'open',\n replyToMode: previousDefault.replyToMode ?? existing.replyToMode ?? 'off',\n historyLimit: previousDefault.historyLimit ?? existing.historyLimit ?? 50,\n textChunkLimit: previousDefault.textChunkLimit ?? existing.textChunkLimit ?? 4000,\n streaming: previousDefault.streaming ?? existing.streaming ?? { mode: 'partial' },\n };\n\n if (apiRoot) defaultAccount.apiRoot = apiRoot;\n if (proxy) defaultAccount.proxy = proxy;\n\n const topAllowFrom = dmPolicy === 'open' ? ['*'] : (existing.allowFrom ?? []);\n\n return {\n ...config,\n channels: {\n ...config.channels,\n telegram: {\n ...existing,\n enabled: true,\n dmPolicy,\n allowFrom: topAllowFrom,\n groupPolicy: existing.groupPolicy ?? 'open',\n replyToMode: existing.replyToMode ?? 'off',\n streaming: existing.streaming ?? { mode: 'partial' },\n historyLimit: existing.historyLimit ?? 50,\n textChunkLimit: existing.textChunkLimit ?? 4000,\n ...(apiRoot ? { apiRoot } : {}),\n ...(proxy ? { proxy } : {}),\n accounts: {\n ...existingAccounts,\n default: defaultAccount,\n },\n },\n },\n };\n}\n\nfunction formPayload(config: Config, locale?: string) {\n const zh = isZh(locale);\n const telegram = (config.channels?.telegram as Record<string, unknown> | undefined) ?? {};\n const account = existingDefaultAccount(config);\n return {\n type: 'form' as const,\n submitAction: 'setup.save',\n message: zh\n ? '填写 Bot Token 后保存即可启用 Telegram 私聊。群聊、多个账号、allowlist 等放在高级配置。'\n : 'Enter a Bot Token and save. Private chat works by default; groups, multi-account, and allowlists live in Advanced configuration.',\n schema: {\n type: 'object',\n properties: {\n botToken: { type: 'string', title: zh ? 'Bot Token' : 'Bot Token', format: 'password' },\n dmPolicy: {\n type: 'string',\n title: zh ? '私聊访问' : 'Private chat access',\n enum: ['open', 'pairing', 'allowlist', 'disabled'],\n default: 'open',\n },\n apiRoot: {\n type: 'string',\n title: zh ? 'API Root(可选)' : 'API root (optional)',\n placeholder: 'https://api.telegram.org',\n },\n proxy: {\n type: 'string',\n title: zh ? '代理(可选)' : 'Proxy (optional)',\n placeholder: 'http://127.0.0.1:7897',\n },\n },\n required: ['botToken'],\n },\n values: {\n botToken: pickString(account.botToken),\n dmPolicy: pickDmPolicy(account.dmPolicy ?? telegram.dmPolicy ?? 'open'),\n apiRoot: pickString(account.apiRoot ?? telegram.apiRoot),\n proxy: pickString(account.proxy ?? telegram.proxy),\n },\n };\n}\n\nexport const telegramGatewaySetupActions: ChannelRuntimeActionAdapter = {\n async runAction({ actionId, input, locale }) {\n const zh = isZh(locale);\n if (actionId === 'setup.start') {\n const { loadConfig } = await import('@xopcai/xopc/config/loader.js');\n return { ok: true, payload: formPayload(loadConfig(), locale) };\n }\n\n if (actionId === 'setup.save') {\n const raw = readInput(input);\n const botToken = pickString(raw.botToken);\n if (!botToken) {\n return { ok: false, message: zh ? 'Bot Token 为必填项。' : 'Bot Token is required.' };\n }\n const { loadConfig, saveConfig } = await import('@xopcai/xopc/config/loader.js');\n await saveConfig(buildTelegramConfig(loadConfig(), raw));\n return {\n ok: true,\n payload: {\n type: 'ok',\n message: zh ? 'Telegram 配置已保存。私聊现在默认可用。' : 'Telegram configuration saved. Private chat is enabled by default.',\n configChanged: true,\n },\n };\n }\n\n return { ok: false, message: `${zh ? '不支持的 Telegram 操作' : 'Unsupported Telegram action'}: ${actionId}` };\n },\n};\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
+ import { init_config_schema, resolveTelegramStreamingMode } from "../config-schema.js";
1
2
  import { createLogger } from "../../../../src/utils/logger/index.js";
2
3
  import { init_logger } from "../../../../src/utils/logger.js";
3
- import { init_config_schema, resolveTelegramStreamingMode } from "../config-schema.js";
4
4
  import { renderTelegramHtmlText } from "../format.js";
5
5
  import { telegramReplyTracker } from "../reply-params.js";
6
6
  import { createTelegramDraftStream } from "../draft-stream.js";
@@ -27,5 +27,5 @@ export declare function createTelegramCommandHandler(deps: TelegramCommandHandle
27
27
  handleShowProviders: (ctx: Context) => Promise<void>;
28
28
  handleCleanupConfirm: (ctx: Context) => Promise<void>;
29
29
  handleCancel: (ctx: Context) => Promise<void>;
30
- getAvailableProviders: () => ProviderInfo[];
30
+ getAvailableProviders: () => Promise<ProviderInfo[]>;
31
31
  };