@xopcai/xopc 0.0.125 → 0.0.127

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 (386) hide show
  1. package/README.md +56 -102
  2. package/README.zh-CN.md +51 -98
  3. package/dist/browser-ext/manifest.json +1 -1
  4. package/dist/extensions/feishu/src/schema/config-schema.d.ts +6 -6
  5. package/dist/extensions/feishu/src/workflow-progress.js +1 -1
  6. package/dist/extensions/telegram/src/adapters/streaming-adapter.js +1 -1
  7. package/dist/extensions/telegram/src/config-schema.d.ts +8 -8
  8. package/dist/extensions/telegram/src/inbound-processor.js +1 -1
  9. package/dist/extensions/telegram/src/plugin.js +1 -1
  10. package/dist/extensions/telegram/src/routing-integration.js +2 -2
  11. package/dist/extensions/telegram/src/workflow-progress.js +1 -1
  12. package/dist/extensions/telegram/xopc.extension.json +1 -1
  13. package/dist/extensions/weixin/src/api/api.js +1 -1
  14. package/dist/extensions/weixin/src/config-schema.d.ts +3 -3
  15. package/dist/extensions/weixin/src/plugin.js +1 -1
  16. package/dist/extensions/weixin/src/workflow-progress.js +1 -1
  17. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-BKDKICZV.js → agent-avatar-dicebear-CgGgO4OV.js} +1 -1
  18. package/dist/gateway/static/root/assets/agents-k59l7NMb.js +2 -0
  19. package/dist/gateway/static/root/assets/{app-management-settings-panel-DI4BqHKW.js → app-management-settings-panel-DeQsTsyy.js} +1 -1
  20. package/dist/gateway/static/root/assets/{appearance-settings-6_ie3NQ4.js → appearance-settings-BnHQW7Hv.js} +1 -1
  21. package/dist/gateway/static/root/assets/apps-page-BG9b4abG.js +1 -0
  22. package/dist/gateway/static/root/assets/{archive-plugin-kUHEJ1HK.js → archive-plugin-5NXT7Zqv.js} +1 -1
  23. package/dist/gateway/static/root/assets/{attachment-load-Dm-9prpU.js → attachment-load-DghwhYe0.js} +1 -1
  24. package/dist/gateway/static/root/assets/{automation-suggestion-card-OTxQTPnC.js → automation-suggestion-card-DYmESgwl.js} +1 -1
  25. package/dist/gateway/static/root/assets/automations-page-De8mVutL.js +4 -0
  26. package/dist/gateway/static/root/assets/{binary-plugins-DllA_jQ0.js → binary-plugins-DSbPKdWX.js} +1 -1
  27. package/dist/gateway/static/root/assets/{block-editor-Cm6CWNj1.js → block-editor-CoZ-_np-.js} +28 -28
  28. package/dist/gateway/static/root/assets/browser-settings-page-C_ZRa4LF.js +8 -0
  29. package/dist/gateway/static/root/assets/{capability-presets-api-VJ89b6I2.js → capability-presets-api-hny224j-.js} +1 -1
  30. package/dist/gateway/static/root/assets/{capability-presets-settings-panel-BaPj8wC2.js → capability-presets-settings-panel-Drc0qLsw.js} +1 -1
  31. package/dist/gateway/static/root/assets/{channel-recipient-api-B5PwBEUx.js → channel-recipient-api-DAlOHxKJ.js} +1 -1
  32. package/dist/gateway/static/root/assets/channels-settings-CA20zBV9.js +1 -0
  33. package/dist/gateway/static/root/assets/connectors-page-qMyMB5te.js +2 -0
  34. package/dist/gateway/static/root/assets/desktop-pet-XG6Vb_fZ.js +1 -0
  35. package/dist/gateway/static/root/assets/desktop-pet-settings-npJ0Oh5p.js +1 -0
  36. package/dist/gateway/static/root/assets/desktop-pet-sprite-DqZ6fbIj.js +1 -0
  37. package/dist/gateway/static/root/assets/directory-picker-path-field-BR2ItBuf.js +1 -0
  38. package/dist/gateway/static/root/assets/dreaming-settings-CkUZ997f.js +3 -0
  39. package/dist/gateway/static/root/assets/{extension-debug-page-BaM0FpW7.js → extension-debug-page-Tl0f1rNv.js} +1 -1
  40. package/dist/gateway/static/root/assets/{extension-page-DuZWVOGA.js → extension-page-Ck7QuwE3.js} +1 -1
  41. package/dist/gateway/static/root/assets/{extension-settings-page-DarVtbmJ.js → extension-settings-page-3RMhQtZ3.js} +1 -1
  42. package/dist/gateway/static/root/assets/{fetch-NFKfkqrd.js → fetch-pg2ErdAk.js} +1 -1
  43. package/dist/gateway/static/root/assets/{gateway-config-api-CFEm9rgy.js → gateway-config-api-DbG97ia2.js} +1 -1
  44. package/dist/gateway/static/root/assets/gateway-settings-B8cyqKk-.js +1 -0
  45. package/dist/gateway/static/root/assets/{gateway-startup-retry-Dtwh_yGg.js → gateway-startup-retry-Yh8h3hkj.js} +1 -1
  46. package/dist/gateway/static/root/assets/{goal-create-dialog-BKP7ylcG.js → goal-create-dialog-DmeW7Zz3.js} +1 -1
  47. package/dist/gateway/static/root/assets/goal-detail-page-DrTyGbVD.js +1 -0
  48. package/dist/gateway/static/root/assets/{goals-config-api-DTWZNA_Y.js → goals-config-api-CxCWGIBB.js} +1 -1
  49. package/dist/gateway/static/root/assets/goals-page-DV1bJhIh.js +2 -0
  50. package/dist/gateway/static/root/assets/{goals-settings-Bhct0ZT-.js → goals-settings-9DrfOkP5.js} +1 -1
  51. package/dist/gateway/static/root/assets/{heartbeat-settings-C-UxSU4a.js → heartbeat-settings-KaDpZrv0.js} +1 -1
  52. package/dist/gateway/static/root/assets/index-C2F0Clvm.js +256 -0
  53. package/dist/gateway/static/root/assets/index-COQSX5d_.css +1 -0
  54. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-DCjy2y4d.js → keyboard-shortcuts-settings-CfQrt_Rb.js} +1 -1
  55. package/dist/gateway/static/root/assets/logs-page-C9dpiNTF.js +2 -0
  56. package/dist/gateway/static/root/assets/{markdown-split-BaqxP-GQ.js → markdown-split-BwiMdCf_.js} +1 -1
  57. package/dist/gateway/static/root/assets/{media-plugins-DQ_EXloK.js → media-plugins-DhoizyZv.js} +1 -1
  58. package/dist/gateway/static/root/assets/messages-DmnbiNxU.js +3 -0
  59. package/dist/gateway/static/root/assets/models-hub-panel-zdCdmBmH.js +2 -0
  60. package/dist/gateway/static/root/assets/notes-page-MpGeFfPt.js +1 -0
  61. package/dist/gateway/static/root/assets/notes-workbench-DYCM3yd2.js +2 -0
  62. package/dist/gateway/static/root/assets/{page-tabs-EIZhLppK.js → page-tabs-DDC2t4Z8.js} +1 -1
  63. package/dist/gateway/static/root/assets/{preview-open-alternatives-r_uB4Epr.js → preview-open-alternatives-BTmk-XDM.js} +1 -1
  64. package/dist/gateway/static/root/assets/project-detail-page-Cu0ElRnS.js +1 -0
  65. package/dist/gateway/static/root/assets/projects-page-DakNaUjZ.js +1 -0
  66. package/dist/gateway/static/root/assets/remote-access-hub-DYKjt7L9.js +1 -0
  67. package/dist/gateway/static/root/assets/{save-bar-controls-B132Uf-2.js → save-bar-controls-DqU-yKIh.js} +1 -1
  68. package/dist/gateway/static/root/assets/{schedule-field-B5qshALm.js → schedule-field-CUttkoSB.js} +1 -1
  69. package/dist/gateway/static/root/assets/{schema-form-CvLmkdS9.js → schema-form-CVSQA9nI.js} +1 -1
  70. package/dist/gateway/static/root/assets/sessions-page-CcGHDsz1.js +1 -0
  71. package/dist/gateway/static/root/assets/settings-advanced-gate-CuFdeKNu.js +1 -0
  72. package/dist/gateway/static/root/assets/{settings-collapsible-section-pRlvqsAf.js → settings-collapsible-section-CK7ogS-P.js} +1 -1
  73. package/dist/gateway/static/root/assets/settings-form-section-Bugp38Fa.js +1 -0
  74. package/dist/gateway/static/root/assets/settings-page-0AJoUvxi.js +1 -0
  75. package/dist/gateway/static/root/assets/settings-page-layout-DBRWwdhh.js +1 -0
  76. package/dist/gateway/static/root/assets/setup-status-panel-D6a_hEk7.js +1 -0
  77. package/dist/gateway/static/root/assets/{share-preview-page-v6-IOp8t.js → share-preview-page-BtsuETKF.js} +1 -1
  78. package/dist/gateway/static/root/assets/shares-settings-CcEFT7S9.js +1 -0
  79. package/dist/gateway/static/root/assets/skill-reload-api-BcN_RuTD.js +1 -0
  80. package/dist/gateway/static/root/assets/skills-page-BbRZZZA5.js +2 -0
  81. package/dist/gateway/static/root/assets/{system-settings-panel-HUU2FFjM.js → system-settings-panel-DJ6YuLqR.js} +1 -1
  82. package/dist/gateway/static/root/assets/{typed-models-lib-AH160QHh.js → typed-models-lib-B0T7N8Km.js} +1 -1
  83. package/dist/gateway/static/root/assets/{use-channel-catalog-BXzDmjCQ.js → use-channel-catalog-C6vrxdzZ.js} +1 -1
  84. package/dist/gateway/static/root/assets/{user-profile-settings-panel-DxwnQvQ3.js → user-profile-settings-panel-DZ0nKMgj.js} +1 -1
  85. package/dist/gateway/static/root/assets/{utils-i5POEtqd.js → utils-CehXcWAY.js} +1 -1
  86. package/dist/gateway/static/root/assets/voice-api-key-field-2QKflCx8.js +1 -0
  87. package/dist/gateway/static/root/assets/work-item-detail-page-DfJnuWq1.js +1 -0
  88. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-ClVVMgN-.js → workflow-run-setup-panel-c4jeaohQ.js} +2 -2
  89. package/dist/gateway/static/root/assets/{workflow-start-dialog-Dv4ZA1T0.js → workflow-start-dialog-ENRHjoqa.js} +1 -1
  90. package/dist/gateway/static/root/assets/workflows-page-BJwwFTm_.js +18 -0
  91. package/dist/gateway/static/root/index.html +5 -5
  92. package/dist/package.js +1 -1
  93. package/dist/src/activity/context.d.ts +11 -0
  94. package/dist/src/activity/context.js +36 -0
  95. package/dist/src/activity/context.js.map +1 -0
  96. package/dist/src/activity/emitter.d.ts +6 -0
  97. package/dist/src/activity/emitter.js +43 -0
  98. package/dist/src/activity/emitter.js.map +1 -0
  99. package/dist/src/activity/index.d.ts +3 -0
  100. package/dist/src/activity/index.js +3 -0
  101. package/dist/src/activity/service.d.ts +12 -0
  102. package/dist/src/activity/service.js +59 -0
  103. package/dist/src/activity/service.js.map +1 -0
  104. package/dist/src/activity/types.d.ts +109 -0
  105. package/dist/src/activity/types.js +1 -0
  106. package/dist/src/agent/agent-instance-gateway.d.ts +5 -0
  107. package/dist/src/agent/agent-manager.d.ts +21 -0
  108. package/dist/src/agent/agent-manager.js +118 -6
  109. package/dist/src/agent/agent-manager.js.map +1 -1
  110. package/dist/src/agent/capabilities/definitions.d.ts +153 -0
  111. package/dist/src/agent/capabilities/definitions.js +156 -0
  112. package/dist/src/agent/capabilities/definitions.js.map +1 -0
  113. package/dist/src/agent/capabilities/index.d.ts +2 -0
  114. package/dist/src/agent/capabilities/index.js +3 -0
  115. package/dist/src/agent/capabilities/registry.d.ts +10 -0
  116. package/dist/src/agent/capabilities/registry.js +51 -0
  117. package/dist/src/agent/capabilities/registry.js.map +1 -0
  118. package/dist/src/agent/context/project-context.js +2 -2
  119. package/dist/src/agent/context/workspace-seed.js +2 -2
  120. package/dist/src/agent/embedded/run-for-session.js +1 -1
  121. package/dist/src/agent/goals/post-turn.js +2 -2
  122. package/dist/src/agent/ipc/bus.js +1 -1
  123. package/dist/src/agent/mcp/bundle-mcp-materialize.js +1 -1
  124. package/dist/src/agent/mcp/bundle-mcp-runtime.js +1 -1
  125. package/dist/src/agent/mcp/mcp-transport-config.js +1 -1
  126. package/dist/src/agent/mcp/mcp-transport.js +1 -1
  127. package/dist/src/agent/memory/plugin-discovery.js +1 -1
  128. package/dist/src/agent/models/manager.js +1 -1
  129. package/dist/src/agent/orchestration/agent-orchestrator.js +1 -1
  130. package/dist/src/agent/service/process-direct-one-shot.js +5 -3
  131. package/dist/src/agent/service/process-direct-one-shot.js.map +1 -1
  132. package/dist/src/agent/service/process-direct-streaming.js +4 -3
  133. package/dist/src/agent/service/process-direct-streaming.js.map +1 -1
  134. package/dist/src/agent/service.d.ts +2 -0
  135. package/dist/src/agent/service.js +9 -3
  136. package/dist/src/agent/service.js.map +1 -1
  137. package/dist/src/agent/service.types.d.ts +7 -0
  138. package/dist/src/agent/session/session-inspector.js +1 -1
  139. package/dist/src/agent/skills/hub-pull.js +1 -1
  140. package/dist/src/agent/skills/parse-skill-metadata.js +9 -1
  141. package/dist/src/agent/skills/parse-skill-metadata.js.map +1 -1
  142. package/dist/src/agent/skills/skill-manager.d.ts +4 -0
  143. package/dist/src/agent/skills/skill-manager.js +17 -0
  144. package/dist/src/agent/skills/skill-manager.js.map +1 -1
  145. package/dist/src/agent/skills/types.d.ts +5 -0
  146. package/dist/src/agent/tool-manuals/index.js +15 -6
  147. package/dist/src/agent/tool-manuals/index.js.map +1 -1
  148. package/dist/src/agent/tool-manuals/xopc-use.d.ts +1 -0
  149. package/dist/src/agent/tool-manuals/xopc-use.js +204 -0
  150. package/dist/src/agent/tool-manuals/xopc-use.js.map +1 -0
  151. package/dist/src/agent/tools/desktop-pet-tool.d.ts +24 -0
  152. package/dist/src/agent/tools/desktop-pet-tool.js +90 -0
  153. package/dist/src/agent/tools/desktop-pet-tool.js.map +1 -0
  154. package/dist/src/agent/tools/factory.d.ts +9 -0
  155. package/dist/src/agent/tools/factory.js +26 -0
  156. package/dist/src/agent/tools/factory.js.map +1 -1
  157. package/dist/src/agent/tools/goal-tool.js +2 -2
  158. package/dist/src/agent/tools/index.d.ts +2 -0
  159. package/dist/src/agent/tools/index.js +3 -1
  160. package/dist/src/agent/tools/workflow-tool.js +1 -1
  161. package/dist/src/agent/tools/xopc-use-tool.d.ts +34 -0
  162. package/dist/src/agent/tools/xopc-use-tool.js +636 -0
  163. package/dist/src/agent/tools/xopc-use-tool.js.map +1 -0
  164. package/dist/src/agent-manifest/schema.d.ts +27 -27
  165. package/dist/src/automations/api/routes.js +1 -1
  166. package/dist/src/automations/domain/validation.d.ts +55 -55
  167. package/dist/src/automations/draft/automation-draft-service.js +1 -1
  168. package/dist/src/automations/draft/automation-draft-validator.d.ts +25 -25
  169. package/dist/src/automations/service/action-executor.js +2 -2
  170. package/dist/src/browser/cdp-local-launcher.js +1 -1
  171. package/dist/src/browser/providers/browser-ext-install.js +3 -3
  172. package/dist/src/browser/providers/cloakbrowser.js +2 -2
  173. package/dist/src/browser/providers/playwright-doctor.js +1 -1
  174. package/dist/src/browser/stealth.js +1 -1
  175. package/dist/src/chat-commands/agent-edit.js +1 -1
  176. package/dist/src/chat-commands/builtins/config.js +1 -1
  177. package/dist/src/chat-commands/builtins/goal.js +2 -2
  178. package/dist/src/chat-commands/context.js +1 -1
  179. package/dist/src/cli/commands/agent.js +3 -3
  180. package/dist/src/cli/commands/doctor/checks/database-schema.js +2 -2
  181. package/dist/src/cli/commands/doctor/checks/session-integrity.js +1 -1
  182. package/dist/src/cli/commands/extension-marketplace.js +1 -1
  183. package/dist/src/cli/commands/extension-pack.js +1 -1
  184. package/dist/src/cli/commands/gateway/lifecycle.js +1 -1
  185. package/dist/src/cli/commands/goal.js +3 -3
  186. package/dist/src/cli/commands/init.js +1 -1
  187. package/dist/src/cli/commands/models.js +1 -1
  188. package/dist/src/cli/commands/onboard.js +1 -1
  189. package/dist/src/cli/commands/profile.js +1 -1
  190. package/dist/src/cli/commands/project.js +4 -4
  191. package/dist/src/cli/commands/tunnel.js +1 -1
  192. package/dist/src/cli/commands/update.js +1 -1
  193. package/dist/src/cli/extension-cli-register.js +1 -1
  194. package/dist/src/config/agent-profile.js +1 -1
  195. package/dist/src/config/gateway-bind.js +1 -1
  196. package/dist/src/config/index.js +2 -2
  197. package/dist/src/config/loader.js +1 -1
  198. package/dist/src/config/models-json.d.ts +14 -14
  199. package/dist/src/config/models-json.js +1 -1
  200. package/dist/src/config/schema.d.ts +60 -60
  201. package/dist/src/daemon/launchd.js +1 -1
  202. package/dist/src/daemon/systemd.js +1 -1
  203. package/dist/src/extensions/discover-extensions.js +1 -1
  204. package/dist/src/extensions/loader.js +2 -2
  205. package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
  206. package/dist/src/gateway/agent-builtin-tools.js +1 -0
  207. package/dist/src/gateway/agent-builtin-tools.js.map +1 -1
  208. package/dist/src/gateway/agents-admin.js +1 -1
  209. package/dist/src/gateway/hono/lib/config-payload.d.ts +14 -14
  210. package/dist/src/gateway/hono/lib/static-ui.js +1 -1
  211. package/dist/src/gateway/hono/middleware/log-context.js +8 -1
  212. package/dist/src/gateway/hono/middleware/log-context.js.map +1 -1
  213. package/dist/src/gateway/hono/routes/activity.d.ts +14 -0
  214. package/dist/src/gateway/hono/routes/activity.js +72 -0
  215. package/dist/src/gateway/hono/routes/activity.js.map +1 -0
  216. package/dist/src/gateway/hono/routes/commands-skills.js +7 -0
  217. package/dist/src/gateway/hono/routes/commands-skills.js.map +1 -1
  218. package/dist/src/gateway/hono/routes/goals.js +1 -1
  219. package/dist/src/gateway/hono/routes/index.js +2 -0
  220. package/dist/src/gateway/hono/routes/index.js.map +1 -1
  221. package/dist/src/gateway/hono/routes/lazy-bundles.js +2 -1
  222. package/dist/src/gateway/hono/routes/lazy-bundles.js.map +1 -1
  223. package/dist/src/gateway/hono/routes/memory.js +2 -2
  224. package/dist/src/gateway/hono/routes/projects.js +93 -15
  225. package/dist/src/gateway/hono/routes/projects.js.map +1 -1
  226. package/dist/src/gateway/hono/routes/sessions.js +101 -2
  227. package/dist/src/gateway/hono/routes/sessions.js.map +1 -1
  228. package/dist/src/gateway/hono/routes/workflows.js +2 -2
  229. package/dist/src/gateway/lock.js +1 -1
  230. package/dist/src/gateway/ports.js +1 -1
  231. package/dist/src/gateway/run-loop.js +1 -1
  232. package/dist/src/gateway/service/run-gateway-agent.js +6 -2
  233. package/dist/src/gateway/service/run-gateway-agent.js.map +1 -1
  234. package/dist/src/gateway/service/sessions-api.d.ts +10 -0
  235. package/dist/src/gateway/service/sessions-api.js +31 -0
  236. package/dist/src/gateway/service/sessions-api.js.map +1 -1
  237. package/dist/src/gateway/service.js +12 -9
  238. package/dist/src/gateway/service.js.map +1 -1
  239. package/dist/src/goals/goal-store.js +1 -1
  240. package/dist/src/goals/goal-store.js.map +1 -1
  241. package/dist/src/goals/goal-workflow-judge.js +1 -1
  242. package/dist/src/infra/ports.js +1 -1
  243. package/dist/src/infra/ssh-tunnel.js +1 -1
  244. package/dist/src/infra/update-check.js +1 -1
  245. package/dist/src/infra/update-restart.js +1 -1
  246. package/dist/src/migrations/runner.js +1 -1
  247. package/dist/src/notes/service.js +65 -6
  248. package/dist/src/notes/service.js.map +1 -1
  249. package/dist/src/notes/store.js +1 -1
  250. package/dist/src/pets/factory.d.ts +25 -0
  251. package/dist/src/pets/factory.js +327 -0
  252. package/dist/src/pets/factory.js.map +1 -0
  253. package/dist/src/pets/manifest.d.ts +2 -0
  254. package/dist/src/pets/manifest.js +16 -0
  255. package/dist/src/pets/manifest.js.map +1 -0
  256. package/dist/src/pets/validator.d.ts +12 -0
  257. package/dist/src/pets/validator.js +175 -0
  258. package/dist/src/pets/validator.js.map +1 -0
  259. package/dist/src/projects/project-service.d.ts +4 -1
  260. package/dist/src/projects/project-service.js +65 -2
  261. package/dist/src/projects/project-service.js.map +1 -1
  262. package/dist/src/projects/project-store.d.ts +3 -1
  263. package/dist/src/projects/project-store.js +56 -6
  264. package/dist/src/projects/project-store.js.map +1 -1
  265. package/dist/src/projects/types.d.ts +12 -0
  266. package/dist/src/projects/workspace.js +1 -1
  267. package/dist/src/routing/agent-session-key.js +1 -1
  268. package/dist/src/routing/resolve-route.js +1 -1
  269. package/dist/src/routing/resolve-tui-session-key.js +1 -1
  270. package/dist/src/session/client-history.d.ts +3 -0
  271. package/dist/src/session/client-history.js +24 -9
  272. package/dist/src/session/client-history.js.map +1 -1
  273. package/dist/src/session/init-session-turn.js +1 -1
  274. package/dist/src/session/resolve-session.js +1 -1
  275. package/dist/src/session/session-title.js +24 -4
  276. package/dist/src/session/session-title.js.map +1 -1
  277. package/dist/src/session/store.js +1 -1
  278. package/dist/src/session/types.d.ts +4 -0
  279. package/dist/src/session/types.js.map +1 -1
  280. package/dist/src/storage/sqlite/activity-repository.d.ts +8 -0
  281. package/dist/src/storage/sqlite/activity-repository.js +208 -0
  282. package/dist/src/storage/sqlite/activity-repository.js.map +1 -0
  283. package/dist/src/storage/sqlite/connection.js +1 -1
  284. package/dist/src/storage/sqlite/index.d.ts +1 -0
  285. package/dist/src/storage/sqlite/index.js +2 -1
  286. package/dist/src/storage/sqlite/migrations/024_activity_events.sql +62 -0
  287. package/dist/src/storage/sqlite/migrations/025_project_pinned_at.sql +5 -0
  288. package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
  289. package/dist/src/storage/sqlite/migrations/runner.js +3 -3
  290. package/dist/src/storage/sqlite/migrations/runner.js.map +1 -1
  291. package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
  292. package/dist/src/storage/sqlite/row-mappers.js +1 -1
  293. package/dist/src/storage/sqlite/schema.js +1 -1
  294. package/dist/src/storage/sqlite/schema.sql +63 -0
  295. package/dist/src/storage/sqlite/session-repository.js +11 -0
  296. package/dist/src/storage/sqlite/session-repository.js.map +1 -1
  297. package/dist/src/tui/backends/embedded-backend.d.ts +13 -0
  298. package/dist/src/tui/backends/embedded-backend.js +76 -7
  299. package/dist/src/tui/backends/embedded-backend.js.map +1 -1
  300. package/dist/src/tui/backends/gateway-sse-backend.d.ts +13 -0
  301. package/dist/src/tui/backends/gateway-sse-backend.js +53 -0
  302. package/dist/src/tui/backends/gateway-sse-backend.js.map +1 -1
  303. package/dist/src/tui/chat-history.js +16 -3
  304. package/dist/src/tui/chat-history.js.map +1 -1
  305. package/dist/src/tui/clipboard-image.js +1 -1
  306. package/dist/src/tui/components/chat-log.d.ts +23 -3
  307. package/dist/src/tui/components/chat-log.js +68 -9
  308. package/dist/src/tui/components/chat-log.js.map +1 -1
  309. package/dist/src/tui/components/tui-bottom-bar.js +9 -5
  310. package/dist/src/tui/components/tui-bottom-bar.js.map +1 -1
  311. package/dist/src/tui/tui-backend.d.ts +16 -0
  312. package/dist/src/tui/tui-command-formatters.js +2 -2
  313. package/dist/src/tui/tui-commands.d.ts +9 -0
  314. package/dist/src/tui/tui-commands.js +95 -6
  315. package/dist/src/tui/tui-commands.js.map +1 -1
  316. package/dist/src/tui/tui-picker-overlay.d.ts +1 -0
  317. package/dist/src/tui/tui-picker-overlay.js +36 -1
  318. package/dist/src/tui/tui-picker-overlay.js.map +1 -1
  319. package/dist/src/tui/tui-picker-services.d.ts +13 -0
  320. package/dist/src/tui/tui-run-state.js +11 -0
  321. package/dist/src/tui/tui-run-state.js.map +1 -1
  322. package/dist/src/tui/tui-run-status-format.d.ts +3 -0
  323. package/dist/src/tui/tui-run-status-format.js +33 -0
  324. package/dist/src/tui/tui-run-status-format.js.map +1 -0
  325. package/dist/src/tui/tui-session-actions.d.ts +5 -0
  326. package/dist/src/tui/tui-session-actions.js +24 -0
  327. package/dist/src/tui/tui-session-actions.js.map +1 -1
  328. package/dist/src/tui/tui-timeline-picker.d.ts +19 -0
  329. package/dist/src/tui/tui-timeline-picker.js +81 -0
  330. package/dist/src/tui/tui-timeline-picker.js.map +1 -0
  331. package/dist/src/tui/tui-timeline.d.ts +15 -0
  332. package/dist/src/tui/tui-timeline.js +65 -0
  333. package/dist/src/tui/tui-timeline.js.map +1 -0
  334. package/dist/src/tui/tui-types.d.ts +1 -0
  335. package/dist/src/tui/tui-types.js +1 -0
  336. package/dist/src/tui/tui-types.js.map +1 -1
  337. package/dist/src/tui/tui.js +31 -25
  338. package/dist/src/tui/tui.js.map +1 -1
  339. package/dist/src/utils/index.js +1 -1
  340. package/dist/src/utils/logger/index.js +1 -1
  341. package/dist/src/utils/logger/stats.d.ts +3 -3
  342. package/dist/src/utils/logger.js +1 -1
  343. package/dist/src/work-items/agent-context.d.ts +5 -1
  344. package/dist/src/work-items/agent-context.js +39 -3
  345. package/dist/src/work-items/agent-context.js.map +1 -1
  346. package/dist/src/work-items/work-item-service.d.ts +2 -0
  347. package/dist/src/work-items/work-item-service.js +97 -0
  348. package/dist/src/work-items/work-item-service.js.map +1 -1
  349. package/dist/src/workflows/draft/workflow-draft-service.js +1 -1
  350. package/dist/src/workflows/service/workflow-session-bridge.js +1 -1
  351. package/package.json +5 -5
  352. package/skills/creative/hatch-pet/SKILL.md +63 -0
  353. package/dist/gateway/static/root/assets/agents-BnTB7-c5.js +0 -2
  354. package/dist/gateway/static/root/assets/apps-page-B6bG65SW.js +0 -1
  355. package/dist/gateway/static/root/assets/automations-page-1lVbo0dS.js +0 -1
  356. package/dist/gateway/static/root/assets/browser-settings-page-CzDBlOK0.js +0 -8
  357. package/dist/gateway/static/root/assets/channels-settings-Df4m7p1k.js +0 -1
  358. package/dist/gateway/static/root/assets/connectors-page-BMTphmHS.js +0 -2
  359. package/dist/gateway/static/root/assets/directory-picker-path-field-DySMzOF6.js +0 -1
  360. package/dist/gateway/static/root/assets/dist-By6Rh2ee.js +0 -1
  361. package/dist/gateway/static/root/assets/dreaming-settings-D_AjSnV_.js +0 -3
  362. package/dist/gateway/static/root/assets/gateway-settings-BMk2S5td.js +0 -1
  363. package/dist/gateway/static/root/assets/goal-detail-page-C2cTxf71.js +0 -1
  364. package/dist/gateway/static/root/assets/goals-page-CTmA3hWK.js +0 -2
  365. package/dist/gateway/static/root/assets/index-BNHDd2j1.css +0 -1
  366. package/dist/gateway/static/root/assets/index-BPXLPMuY.js +0 -193
  367. package/dist/gateway/static/root/assets/logs-page-CGc3_CQU.js +0 -2
  368. package/dist/gateway/static/root/assets/messages-CjuIJcZl.js +0 -3
  369. package/dist/gateway/static/root/assets/models-hub-panel-Drz4UQMb.js +0 -2
  370. package/dist/gateway/static/root/assets/notes-page-CY1ylng1.js +0 -1
  371. package/dist/gateway/static/root/assets/notes-workbench-X7IaD--t.js +0 -2
  372. package/dist/gateway/static/root/assets/project-detail-page-DE5adRBE.js +0 -1
  373. package/dist/gateway/static/root/assets/projects-page-CuOb1k6F.js +0 -1
  374. package/dist/gateway/static/root/assets/remote-access-hub-BOxNrUVA.js +0 -1
  375. package/dist/gateway/static/root/assets/sessions-page-CY0IQcGW.js +0 -1
  376. package/dist/gateway/static/root/assets/settings-advanced-gate-D4NBNVCB.js +0 -1
  377. package/dist/gateway/static/root/assets/settings-form-section-BBYUDLVd.js +0 -1
  378. package/dist/gateway/static/root/assets/settings-page-DaO7zYZM.js +0 -1
  379. package/dist/gateway/static/root/assets/settings-page-layout-D8g9PAek.js +0 -1
  380. package/dist/gateway/static/root/assets/setup-status-panel-Bks0CLLT.js +0 -1
  381. package/dist/gateway/static/root/assets/shares-settings-CEZsKm9r.js +0 -1
  382. package/dist/gateway/static/root/assets/skill-reload-api-oTkHbb9W.js +0 -1
  383. package/dist/gateway/static/root/assets/skills-page-DigsbZ6K.js +0 -2
  384. package/dist/gateway/static/root/assets/voice-api-key-field-CEJklEgb.js +0 -1
  385. package/dist/gateway/static/root/assets/work-item-detail-page-CD6FL_Rs.js +0 -1
  386. package/dist/gateway/static/root/assets/workflows-page-OLQiUpoW.js +0 -18
package/README.md CHANGED
@@ -17,6 +17,7 @@
17
17
  <img src="https://img.shields.io/badge/node.js-%E2%89%A522-339933?logo=nodedotjs&amp;logoColor=white" alt="Node.js">
18
18
  <img src="https://img.shields.io/badge/license-MIT-yellow" alt="License">
19
19
  <img src="https://img.shields.io/badge/LLM_providers-20%2B-5865F2" alt="LLM providers">
20
+ <a href="https://github.com/xopcai/xopc/stargazers"><img src="https://img.shields.io/github/stars/xopcai/xopc?style=flat-square&amp;color=gold" alt="GitHub Stars"></a>
20
21
  </p>
21
22
 
22
23
  <p align="center">
@@ -31,15 +32,33 @@
31
32
  <img src="docs/public/xopc-tui.gif" alt="xopc terminal UI demo" width="720">
32
33
  </p>
33
34
 
35
+ <details>
36
+ <summary><strong>Table of Contents</strong></summary>
37
+
38
+ - [Built for](#built-for)
39
+ - [From chat to loops](#from-chat-to-loops)
40
+ - [Get started](#get-started)
41
+ - [Why xopc](#why-xopc)
42
+ - [How xopc compares](#how-xopc-compares)
43
+ - [Where to chat](#where-to-chat)
44
+ - [Channels](#channels)
45
+ - [Extensions &amp; skills](#extensions--skills)
46
+ - [Configuration](#configuration)
47
+ - [Documentation](#documentation)
48
+ - [FAQ](#faq)
49
+ - [Desktop app](#desktop-app)
50
+ - [Contributing](#contributing)
51
+
52
+ </details>
53
+
34
54
  ---
35
55
 
36
56
  ## Built for
37
57
 
38
58
  - **People who start simple** — open a local chat first, then grow into projects, notes, channels, connectors, and automations when the work needs them.
39
- - **Long-running projects** — keep goals, decisions, blockers, next actions, feedback, and recalibration connected across chats.
40
- - **Private agents you can reach anywhere** — run xopc on your computer, pair the mobile app by QR code, and keep chatting or capturing notes while your data stays in your own runtime.
41
- - **One-person companies and solo builders** — use the same assistant from CLI, TUI, Web, Desktop, mobile, Telegram, WeChat, and Feishu/Lark.
42
- - **Local-first AI workflows** — bring your own keys, mix cloud/local models, add skills/extensions, and keep data under **`~/.xopc/`**.
59
+ - **Long-running goals, not one-shot chats** — carry goals, blockers, decisions, and next actions across sessions. Projects grow without starting over.
60
+ - **Your agent, reachable anywhere** — CLI, TUI, Web, Desktop, mobile, Telegram, WeChat, Feishu/Lark. Pair the mobile app by QR code; data stays in your runtime.
61
+ - **Local-first, your keys** — bring your own keys, mix cloud/local models, add skills/extensions, and keep everything under **`~/.xopc/`**.
43
62
 
44
63
  ## From chat to loops
45
64
 
@@ -50,17 +69,12 @@ You do not need a perfect system on day one. xopc is designed to become more use
50
69
  | **Chat** | Ask questions, think through work, make decisions. | Gives you a local AI assistant that uses your model keys and local state. |
51
70
  | **Project** | Ask it to keep track of one active goal. | Carries the goal, current state, blockers, and next actions across sessions. |
52
71
  | **Notes & ideas** | Drop rough notes, progress updates, links, and feedback as they happen. | Turns scattered inputs into context the assistant can reuse. |
53
- | **Connectors** | Pair the mobile app by QR code, or bring the same assistant to desktop, terminal, messengers, and gateway APIs. | Lets you chat and capture notes from anywhere while the agent and data stay in your xopc runtime. |
72
+ | **Connectors** | Pair the mobile app by QR code, or use the same assistant on desktop, terminal, messengers, and gateway APIs. | Lets you chat and capture notes from anywhere while the agent and data stay in your xopc runtime. |
54
73
  | **Automations** | Schedule reviews, reminders, summaries, and workflow runs. | Keeps important work resurfacing and closes the loop without you starting every turn manually. |
55
74
 
56
- That is the loop: context comes in, xopc helps decide the next move, you act, feedback comes back, and the system gets better at keeping the project moving.
57
-
58
- ## What you can do after install
75
+ **That is the loop:** context comes in, xopc helps decide the next move, you act, feedback comes back, and the system gets better at keeping the project moving.
59
76
 
60
- - **Day 1:** chat locally, configure one model, and ask xopc to track a real project.
61
- - **This week:** feed it notes, blockers, decisions, links, and progress updates.
62
- - **When it sticks:** add the surfaces you actually use: desktop, terminal, browser, mobile QR pairing, Telegram, WeChat, or Feishu/Lark.
63
- - **As work repeats:** add automations for reviews, reminders, summaries, and workflow runs.
77
+ **Your timeline:** Day 1 chat and track a project. This week → feed it notes and progress. When it sticks add mobile, messengers, desktop. As work repeats → add automations.
64
78
 
65
79
  ---
66
80
 
@@ -79,17 +93,7 @@ For most users, the **PC desktop app** is the easiest way to start: install the
79
93
 
80
94
  See **[PC Desktop app](https://xopcai.github.io/xopc/desktop-app)** for install notes, build-from-source commands, and reserved screenshot/GIF/video file locations.
81
95
 
82
- ### Fastest terminal path
83
-
84
- ```bash
85
- curl -fsSL https://xopc.ai/install.sh | bash
86
- xopc onboard --quick
87
- xopc
88
- ```
89
-
90
- This path starts the embedded terminal UI: no gateway, desktop app, or messenger setup required.
91
-
92
- ### One-liner (recommended)
96
+ ### One-liner (30-second start — recommended)
93
97
 
94
98
  **Linux, macOS, WSL2, Termux**
95
99
 
@@ -101,43 +105,34 @@ curl -fsSL https://xopc.ai/install.sh | bash
101
105
 
102
106
  > **Heads up:** Native Windows runs xopc without WSL — CLI, gateway, TUI, and tools all work natively. Prefer WSL2? Use the bash one-liner above there too.
103
107
 
104
- Run this in PowerShell:
105
-
106
108
  ```powershell
107
109
  iex (irm https://xopc.ai/install.ps1)
108
110
  ```
109
111
 
110
112
  The installer detects your OS, installs **Node.js ≥ 22** when needed, and installs **`@xopcai/xopc`**. China mirror: add `--cn` (bash) or `-Cn` (PowerShell), or pass `--registry https://registry.npmmirror.com`.
111
113
 
112
- > **30-second start:** this is the homepage-recommended path, including Node setup on macOS, Linux, and Windows.
113
-
114
- ### Onboard & chat
114
+ Then chat immediately:
115
115
 
116
116
  ```bash
117
- xopc onboard # faster: xopc onboard --quick
118
- xopc # same as xopc tui; opens the local TUI
117
+ xopc onboard --quick
118
+ xopc # opens the local TUI
119
119
  ```
120
120
 
121
- > **New here?** Use the **PC desktop app** for the easiest setup, or run **`xopc`** for the fastest terminal path. Run **`xopc gateway`** when you want the browser console or messengers without the desktop shell.
122
-
123
121
  ### npm (already have Node.js 22+)
124
122
 
125
123
  ```bash
126
124
  npm install -g @xopcai/xopc
127
125
  ```
128
126
 
129
- Or with pnpm: `pnpm add -g @xopcai/xopc` · China: `npm install -g @xopcai/xopc --registry=https://registry.npmmirror.com`
127
+ Or with pnpm: `pnpm add -g @xopcai/xopc` · China mirror: `npm install -g @xopcai/xopc --registry=https://registry.npmmirror.com`
130
128
 
131
129
  ### More commands
132
130
 
133
131
  ```bash
134
- xopc agent -i # classic interactive CLI
135
- xopc agent -m "Summarize the last 5 commits" # one-shot
136
-
137
- xopc init # full ~/.xopc state tree (first install / repair)
138
- xopc gateway # local web server + React console (URL in logs)
139
- xopc gateway service install # OS service; xopc gateway stop | status | logs
140
- xopc profile list # optional isolated state profiles
132
+ xopc agent -i # interactive CLI
133
+ xopc agent -m "Summarize the last 5 commits" # one-shot
134
+ xopc gateway # web server + React console
135
+ xopc gateway service install # OS service
141
136
  ```
142
137
 
143
138
  **From source** (installer or pnpm workspace):
@@ -160,17 +155,16 @@ Windows git install: `& ([scriptblock]::Create((irm https://xopc.ai/install.ps1)
160
155
 
161
156
  ## Why xopc
162
157
 
163
- - 🔁 **A path from chat to momentum** — Start with a normal conversation, then let projects, notes, connectors, and automations compound into durable loops.
164
-
158
+ - 🔁 **From chat to durable loops** — Projects, notes, connectors, and automations compound into momentum across sessions.
165
159
  - 🏠 **Your machine** — Data and config under **`~/.xopc/`**. No mandatory cloud or surprise bills.
166
- - 🔑 **Bring your own keys** — OpenAI, Anthropic, Google, DeepSeek, Ollama, LM Studio, vLLM, and **20+** providers. Mix cloud and local; switch catalog models in one config line. See **[Models](https://xopcai.github.io/xopc/models)**.
167
- - 📱 **Your agent, reachable anywhere** — Run xopc on your computer, pair the [mobile app](./apps/mobile-expo) by QR code, and keep talking or capturing notes on the go without moving your project data into a hosted chat account.
168
- - 🧩 **Grows with you** — **`xopc skills install`** · **`xopc extensions install`** for tools, channels, and UI panels; multi-agent routing per context.
169
- - ⏰ **Proactive** — **Automations** for scheduled summaries, reminders, and workflow runs; **workflows** for fan-out subagent tasks; **multi-agent** routing with isolated workspaces, tools, and prompts.
160
+ - 🔑 **Bring your own keys** — OpenAI, Anthropic, Google, DeepSeek, Ollama, LM Studio, vLLM, and **20+** providers. Mix cloud and local models.
161
+ - 📱 **Reachable anywhere** — Pair the [mobile app](./apps/mobile-expo) by QR code, or chat from desktop, terminal, browser, Telegram, WeChat, and Feishu/Lark. Data stays in your runtime.
162
+ - 🧩 **Grows with you** — **`xopc skills install`** / **`xopc extensions install`** for tools, channels, and UI panels; multi-agent routing per context.
163
+ - ⏰ **Proactive** — Automations for scheduled summaries, reminders, and workflow runs; subagent fan-out for parallel tasks.
170
164
 
171
165
  ## How xopc compares
172
166
 
173
- xopc is not trying to replace every coding agent or office agent. It is the local-first system layer for people who want one assistant to remember goals, keep state, run automations, and stay reachable across surfaces.
167
+ xopc is not another chat UI. It is the local-first system layer for people who want one assistant to remember goals, keep state, run automations, and stay reachable across surfaces.
174
168
 
175
169
  | Product | Best at | Why use xopc too |
176
170
  | --- | --- | --- |
@@ -224,41 +218,16 @@ Guides: **[Extensions](https://xopcai.github.io/xopc/extensions)** · **[Skills]
224
218
 
225
219
  ## Configuration
226
220
 
227
- Default: **`~/.xopc/xopc.json`**.
221
+ Default: **`~/.xopc/xopc.json`**. A minimal skeleton:
228
222
 
229
223
  ```json
230
224
  {
231
- "agents": {
232
- "default": "main",
233
- "list": [
234
- {
235
- "id": "main",
236
- "identity": { "name": "Main", "role": "General assistant" },
237
- "responsibilities": { "primary": ["Help the user complete tasks"] },
238
- "workspace": { "root": "~/.xopc/workspace/main" },
239
- "models": {
240
- "defaultRole": "deep",
241
- "roles": {
242
- "deep": { "model": "deepseek/deepseek-v4-flash" }
243
- }
244
- },
245
- "tools": { "builtin": {} },
246
- "skills": { "mode": "all" },
247
- "memory": { "mode": "confirmWrite", "sources": ["session"] },
248
- "workflows": {},
249
- "boundaries": { "requiresConfirmation": [], "forbidden": [], "escalation": [] }
250
- }
251
- ]
252
- },
253
- "providers": {
254
- "deepseek": "${DEEPSEEK_API_KEY}"
255
- }
225
+ "providers": { "deepseek": "${DEEPSEEK_API_KEY}" },
226
+ "agents": { "default": "main", "list": [{ "id": "main", "models": { "roles": { "deep": { "model": "deepseek/deepseek-v4-flash" } } } }] }
256
227
  }
257
228
  ```
258
229
 
259
- Add **`channels.telegram`**, **`channels.weixin`**, or **`channels.feishu`** when you need IM — see **[configuration](https://xopcai.github.io/xopc/configuration)**.
260
-
261
- Optional tools (e.g. browser) stay **off until enabled**; use Playwright Chromium if you turn on browser tools.
230
+ Full reference: **[Configuration](https://xopcai.github.io/xopc/configuration)**. Add **`channels.*`** for IM, or browser tools (Playwright Chromium) when needed.
262
231
 
263
232
  ---
264
233
 
@@ -280,41 +249,24 @@ Also: [Tools](https://xopcai.github.io/xopc/tools) · [Mobile app](https://xopca
280
249
 
281
250
  ## FAQ
282
251
 
283
- **Is xopc a hosted service?**
284
- No. xopc runs on your machine. Config, workspace files, credentials, and local state live under **`~/.xopc/`** by default.
285
-
286
- **Do I need a paid cloud model?**
287
- No. Bring your own keys for cloud providers, or use local/model-server options such as Ollama, LM Studio, and vLLM.
288
-
289
- **What is the fastest way to try it?**
290
- For most users, install the **PC desktop app** from GitHub Releases and complete model setup in the UI. For terminal users, use **`xopc onboard --quick`** and then run **`xopc`**.
252
+ **Is xopc a hosted service?** — No. Everything runs on your machine under **`~/.xopc/`**.
291
253
 
292
- **How is this different from another chat UI?**
293
- xopc can start as a chat UI, but it is organized to grow into goal loops: project context, notes, outside signals, next actions, feedback, and automations across multiple surfaces.
254
+ **Do I need a paid cloud model?** — No. Bring your own keys, or use local models (Ollama, LM Studio, vLLM).
294
255
 
295
- **Can I use it from my phone or messengers?**
296
- Yes. Start with local TUI first; when ready, run the gateway and use the [mobile app](./apps/mobile-expo) on iOS/Android, or configure Telegram, WeChat, or Feishu/Lark.
256
+ **What is the fastest way to try it?** [Desktop app](#get-started) for GUI users, or `xopc onboard --quick && xopc` for terminal.
297
257
 
298
- <a id="desktop-app"></a>
299
- <a id="electron-desktop"></a>
300
-
301
- ## Desktop app
302
-
303
- The PC desktop app is the easiest way to start for most users: it launches an embedded local gateway and opens the gateway console in a native window.
258
+ **How is this different from another chat UI?** — xopc grows from chat into goal loops: project context, notes, connectors, and automations across multiple surfaces.
304
259
 
305
- 1. Download from **[GitHub Releases](https://github.com/xopcai/xopc/releases)** macOS `.dmg`, Windows `xopc-<version>-x64.exe` or `xopc-<version>-arm64.exe`, Linux `.AppImage` / `.deb`.
306
- 2. Open the app, complete model setup, and start chatting.
307
- 3. Or use **`xopc gateway`** + the npm CLI until a build exists for your OS.
260
+ **Can I use it from my phone or messengers?** — Yes. Pair the [mobile app](./apps/mobile-expo) by QR code, or configure Telegram, WeChat, or Feishu/Lark via the gateway.
308
261
 
309
- **Build from source:** `pnpm install && pnpm run electron:build` → `dist/release/`
310
-
311
- Docs and media placeholders: **[PC Desktop app](https://xopcai.github.io/xopc/desktop-app)**.
262
+ **Have a question?** Ask on [GitHub Discussions](https://github.com/xopcai/xopc/discussions/categories/q-a).
312
263
 
313
264
  ---
265
+ <a id="desktop-app"></a>
314
266
 
315
267
  ## Security
316
268
 
317
- Treat inbound IM messages as **untrusted**. Prefer **pairing** or **allowlist** for DMs. Keep gateway bind addresses and tokens secret **[Channels](https://xopcai.github.io/xopc/channels)**.
269
+ Treat inbound IM messages as **untrusted**. Prefer **pairing** or **allowlist** for DMs. Keep gateway bind addresses and tokens private. See **[Security](https://xopcai.github.io/xopc/channels)** for details.
318
270
 
319
271
  ---
320
272
 
@@ -328,7 +280,9 @@ pnpm run build && pnpm test && pnpm run lint
328
280
 
329
281
  **[AGENTS.md](./AGENTS.md)** · **[CONTRIBUTING.md](./CONTRIBUTING.md)**
330
282
 
331
- **Issues:** [bug](https://github.com/xopcai/xopc/issues/new?template=bug_report.yml) · [feature](https://github.com/xopcai/xopc/issues/new?template=feature_request.yml) · [Q&A Discussions](https://github.com/xopcai/xopc/discussions/categories/q-a) · [security advisory](https://github.com/xopcai/xopc/security/advisories/new) (not public issues)
283
+ **Issues:** [Bug report](https://github.com/xopcai/xopc/issues/new?template=bug_report.yml) · [Feature request](https://github.com/xopcai/xopc/issues/new?template=feature_request.yml) · [Q&A Discussions](https://github.com/xopcai/xopc/discussions/categories/q-a) · [Security advisory](https://github.com/xopcai/xopc/security/advisories/new) (not public issues)
284
+
285
+ **Tech stack:** TypeScript, Node.js ≥ 22, pnpm workspace. Built-in LLM layer via `@earendil-works/pi-ai`, React gateway console, Electron desktop.
332
286
 
333
287
  ## Credits
334
288
 
package/README.zh-CN.md CHANGED
@@ -17,6 +17,7 @@
17
17
  <img src="https://img.shields.io/badge/node.js-%E2%89%A522-339933?logo=nodedotjs&amp;logoColor=white" alt="Node.js">
18
18
  <img src="https://img.shields.io/badge/license-MIT-yellow" alt="License">
19
19
  <img src="https://img.shields.io/badge/大模型厂商-20%2B-5865F2" alt="大模型厂商">
20
+ <a href="https://github.com/xopcai/xopc/stargazers"><img src="https://img.shields.io/github/stars/xopcai/xopc?style=flat-square&amp;color=gold" alt="GitHub Stars"></a>
20
21
  </p>
21
22
 
22
23
  <p align="center">
@@ -31,15 +32,33 @@
31
32
  <img src="docs/public/xopc-tui.gif" alt="xopc 终端界面演示" width="720">
32
33
  </p>
33
34
 
35
+ <details>
36
+ <summary><strong>目录</strong></summary>
37
+
38
+ - [适合谁](#适合谁)
39
+ - [从聊天到数据飞轮](#从聊天到数据飞轮)
40
+ - [快速开始](#快速开始)
41
+ - [为什么选 xopc](#为什么选-xopc)
42
+ - [和 Codex / Claude Code / QoderWork / WorkBuddy 的区别](#和-codex--claude-code--qoderwork--workbuddy-的区别)
43
+ - [在哪里聊](#在哪里聊)
44
+ - [内置频道](#内置频道)
45
+ - [扩展与技能](#扩展与技能)
46
+ - [配置示例](#配置示例)
47
+ - [文档](#文档)
48
+ - [常见问题](#常见问题)
49
+ - [桌面版](#desktop-app)
50
+ - [参与贡献](#参与贡献)
51
+
52
+ </details>
53
+
34
54
  ---
35
55
 
36
56
  ## 适合谁
37
57
 
38
58
  - **想先简单用起来的人** —— 先本地开聊;项目变复杂后,再逐步加笔记、通道、连接器和自动化。
39
- - **长期项目** —— 让目标、决策、阻塞点、下一步、反馈和校准始终连在一起,不会断在一次次聊天里。
40
- - **随时可用的私有 Agent** —— xopc 跑在你的电脑上,手机 App 扫码连接;出门在外也能继续对话和记录想法,数据仍然留在你自己的 xopc 环境里。
41
- - **独立开发者 / 一人公司** —— 同一个助手覆盖 CLI、TUI、网页、桌面、手机、Telegram、微信和飞书/Lark。
42
- - **本地优先 AI 工作流** —— 使用你自己的 API Key,云端/本地模型混用,支持技能和扩展,数据默认保存在 **`~/.xopc/`**。
59
+ - **长期目标持续跟踪** —— 目标、决策、阻塞点、下⼀步不会断在一次次聊天里。
60
+ - **自己的 Agent,随时可用** —— CLI、TUI、网页、桌面、手机、Telegram、微信和飞书/Lark。手机 App 扫码连接,数据留在你的环境里。
61
+ - **本地优先,用自己的密钥** —— 用你自己的 API Key,云端/本地模型混用,支持技能和扩展,数据默认保存在 **`~/.xopc/`**。
43
62
 
44
63
  ## 从聊天到数据飞轮
45
64
 
@@ -53,14 +72,9 @@
53
72
  | **外部入口** | 手机 App 扫码连接,也可以在桌面、终端、网页、IM 和 gateway API 里继续使用同一个助手。 | 不在电脑前也能对话、记录 note/idea;Agent 和数据仍在你的 xopc 环境里。 |
54
73
  | **自动化** | 设置定时复盘、提醒、摘要和工作流运行。 | 重要事项会自己回到视野里,不完全依赖你想起来再问。 |
55
74
 
56
- 这就是循环:上下文进来,xopc 帮你判断下一步;你去行动,再把结果和反馈带回来;系统越用越知道该如何继续推进。
57
-
58
- ## 安装后你能立刻做什么
75
+ **这就是循环:** 上下文进来,xopc 帮你判断下一步;你去行动,再把结果和反馈带回来;系统越用越知道该如何继续推进。
59
76
 
60
- - **第一天:** 本地开聊,配置一个模型,让 xopc 跟进一个真实项目。
61
- - **第一周:** 持续丢进展、阻塞点、决策、链接和想法。
62
- - **用顺手后:** 接入你真的会用的入口:桌面、终端、网页、手机扫码配对、Telegram、微信或飞书/Lark。
63
- - **事情开始重复时:** 用自动化做复盘、提醒、摘要和工作流运行。
77
+ **你的时间线:** 第一天 聊天 + 跟进项目。第一周 → 喂进展和笔记。用顺手后 → 加手机、IM、桌面。事情重复时 → 加自动化。
64
78
 
65
79
  ---
66
80
 
@@ -79,17 +93,7 @@
79
93
 
80
94
  详见 **[PC 桌面端](https://xopcai.github.io/xopc/zh/desktop-app)**:安装说明、源码打包命令,以及后续截图/GIF/视频素材的预留文件位置。
81
95
 
82
- ### 最快终端路径
83
-
84
- ```bash
85
- curl -fsSL https://xopc.ai/install.sh | bash
86
- xopc onboard --quick
87
- xopc
88
- ```
89
-
90
- 这条路径会启动本地嵌入式 TUI,不需要先配置网关、桌面端或即时通讯。
91
-
92
- ### 一键安装(推荐)
96
+ ### 一键安装(30 秒启动 — 推荐)
93
97
 
94
98
  **Linux、macOS、WSL2、Termux**
95
99
 
@@ -101,25 +105,19 @@ curl -fsSL https://xopc.ai/install.sh | bash
101
105
 
102
106
  > **提示:** 原生 Windows 无需 WSL 即可运行 xopc——CLI、网关、TUI 与工具均可在本机使用。若更习惯 WSL2,在 WSL 里执行上面的 bash 命令即可。
103
107
 
104
- 在 PowerShell 中运行:
105
-
106
108
  ```powershell
107
109
  iex (irm https://xopc.ai/install.ps1)
108
110
  ```
109
111
 
110
112
  安装脚本会自动识别系统、在需要时安装 **Node.js ≥ 22**,并安装 **`@xopcai/xopc`**。国内镜像:bash 加 `--cn`,PowerShell 加 `-Cn`,或指定 `--registry https://registry.npmmirror.com`。
111
113
 
112
- > **30 秒启动:** 这是官网推荐路径,覆盖 macOS、Linux 与 Windows 的环境初始化。
113
-
114
- ### 配置并开聊
114
+ 然后直接开聊:
115
115
 
116
116
  ```bash
117
- xopc onboard # 更快:xopc onboard --quick
118
- xopc # 等同于 xopc tui,打开本地 TUI
117
+ xopc onboard --quick
118
+ xopc # 打开本地 TUI
119
119
  ```
120
120
 
121
- > **第一次用?** 想少碰终端,优先用 **PC 桌面端**;习惯终端则直接运行 **`xopc`**。需要浏览器控制台或即时通讯时,再启动 **`xopc gateway`**。
122
-
123
121
  ### npm(已具备 Node.js 22+)
124
122
 
125
123
  ```bash
@@ -131,13 +129,10 @@ npm install -g @xopcai/xopc
131
129
  ### 更多命令
132
130
 
133
131
  ```bash
134
- xopc agent -i # 经典交互式 CLI
132
+ xopc agent -i # 交互式 CLI
135
133
  xopc agent -m "总结最近 5 条提交" # 只问一句
136
-
137
- xopc init # 完整 ~/.xopc 状态目录(首次安装 / 修复)
138
- xopc gateway # 本地网页服务 + React 控制台(地址见终端输出)
139
- xopc gateway service install # OS 系统服务;xopc gateway stop | status | logs
140
- xopc profile list # 可选:独立状态 Profile
134
+ xopc gateway # 网页服务 + React 控制台
135
+ xopc gateway service install # OS 系统服务
141
136
  ```
142
137
 
143
138
  **从源码**(安装脚本或 pnpm workspace):
@@ -160,17 +155,16 @@ Windows 源码安装:`& ([scriptblock]::Create((irm https://xopc.ai/install.ps
160
155
 
161
156
  ## 为什么选 xopc
162
157
 
163
- - 🔁 **从聊天自然长成循环** — 先普通对话,再把项目、笔记、外部入口和自动化逐步接上,让长期事情持续滚动。
164
-
158
+ - 🔁 **从聊天自然长成循环** — 项目、笔记、外部入口和自动化逐步接上,让长期事情持续滚动。
165
159
  - 🏠 **你的机器** — 配置与数据在 **`~/.xopc/`**,无强制云端、无意外账单。
166
- - 🔑 **使用自己的密钥** — OpenAI、Anthropic、Google、DeepSeek、Ollama、LM Studio、vLLM 等 **20+** 厂商;云端和本地模型可混用,一行配置即可切换模型。详见 **[模型](https://xopcai.github.io/xopc/zh/models)**。
167
- - 📱 **自己的 Agent,随时可用** xopc 跑在你的电脑上,[移动端 App](./apps/mobile-expo) 扫码连接。外出时也能继续对话、记录笔记和想法,但项目数据不需要搬到云端聊天账号里。
168
- - 🧩 **可按需扩展** — 通过 **`xopc skills install`** **`xopc extensions install`** 扩展工具、频道与 UI;多 Agent 可按场景隔离。
169
- - ⏰ **支持主动任务** — **自动化** 做定时摘要、提醒与工作流运行;用 **工作流**扇出多子 Agent 任务;用 **多 Agent** 管理不同工作区、工具与系统提示词。
160
+ - 🔑 **使用自己的密钥** — OpenAI、Anthropic、Google、DeepSeek、Ollama、LM Studio、vLLM 等 **20+** 厂商;云端和本地模型可混用。
161
+ - 📱 **随时可用**手机 App 扫码连接,也可从桌面、终端、网页、Telegram、微信和飞书/Lark 继续对话。数据不出你的环境。
162
+ - 🧩 **可按需扩展** — **`xopc skills install`** / **`xopc extensions install`** 扩展工具、频道与 UI;多 Agent 可按场景隔离。
163
+ - ⏰ **支持主动任务** — 自动化做定时摘要、提醒和工作流运行;子 Agent 扇出并行任务。
170
164
 
171
165
  ## 和 Codex / Claude Code / QoderWork / WorkBuddy 的区别
172
166
 
173
- xopc 不是要替代所有编程 Agent 或办公 Agent。它更像一个本地优先的系统层:让同一个助手记住长期目标、保留状态、运行自动化,并在多个入口中持续可用。
167
+ xopc 不是又一个聊天 UI。它更像一个本地优先的系统层:让同一个助手记住长期目标、保留状态、运行自动化,并在多个入口中持续可用。
174
168
 
175
169
  | 产品 | 更擅长 | 为什么还需要 xopc |
176
170
  | --- | --- | --- |
@@ -224,41 +218,16 @@ xopc extensions dev ./my-extension
224
218
 
225
219
  ## 配置示例
226
220
 
227
- 默认路径:**`~/.xopc/xopc.json`**。
221
+ 默认路径:**`~/.xopc/xopc.json`**。一个最小骨架:
228
222
 
229
223
  ```json
230
224
  {
231
- "agents": {
232
- "default": "main",
233
- "list": [
234
- {
235
- "id": "main",
236
- "identity": { "name": "Main", "role": "General assistant" },
237
- "responsibilities": { "primary": ["Help the user complete tasks"] },
238
- "workspace": { "root": "~/.xopc/workspace/main" },
239
- "models": {
240
- "defaultRole": "deep",
241
- "roles": {
242
- "deep": { "model": "deepseek/deepseek-v4-flash" }
243
- }
244
- },
245
- "tools": { "builtin": {} },
246
- "skills": { "mode": "all" },
247
- "memory": { "mode": "confirmWrite", "sources": ["session"] },
248
- "workflows": {},
249
- "boundaries": { "requiresConfirmation": [], "forbidden": [], "escalation": [] }
250
- }
251
- ]
252
- },
253
- "providers": {
254
- "deepseek": "${DEEPSEEK_API_KEY}"
255
- }
225
+ "providers": { "deepseek": "${DEEPSEEK_API_KEY}" },
226
+ "agents": { "default": "main", "list": [{ "id": "main", "models": { "roles": { "deep": { "model": "deepseek/deepseek-v4-flash" } } } }] }
256
227
  }
257
228
  ```
258
229
 
259
- 需要即时通讯时再补 **`channels.telegram`**、**`channels.weixin`**、**`channels.feishu`** —— 见 **[配置](https://xopcai.github.io/xopc/zh/configuration)**。
260
-
261
- 可选工具(如浏览器)默认**关闭**,启用后按需安装 Playwright Chromium。
230
+ 完整参考:**[配置](https://xopcai.github.io/xopc/zh/configuration)**。需要即时通讯时再补 **`channels.*`**,可选工具(如浏览器)默认关闭。
262
231
 
263
232
  ---
264
233
 
@@ -280,43 +249,25 @@ xopc extensions dev ./my-extension
280
249
 
281
250
  ## 常见问题
282
251
 
283
- **xopc 是云服务吗?**
284
- 不是。xopc 跑在你的机器上,配置、工作区文件、凭据和本地状态默认都在 **`~/.xopc/`**。
252
+ **xopc 是云服务吗?** — 不是。一切跑在你的机器上,默认在 **`~/.xopc/`**。
285
253
 
286
- **必须使用付费云端模型吗?**
287
- 不必须。你可以自带云厂商 API Key,也可以使用 Ollama、LM Studio、vLLM 等本地/自部署模型服务。
254
+ **必须使用付费云端模型吗?** — 不必须。自带 API Key 或用本地模型(Ollama、LM Studio、vLLM)。
288
255
 
289
- **最快怎么试用?**
290
- 对大多数用户,优先从 GitHub Releases 安装 **PC 桌面端**,在界面中完成模型设置。习惯终端的用户可以执行 **`xopc onboard --quick`**,然后运行 **`xopc`**。
256
+ **最快怎么试用?** — [桌面端](#快速开始) 适合 GUI 用户,终端用户执行 `xopc onboard --quick && xopc`。
291
257
 
292
- **它和普通聊天 UI 有什么区别?**
293
- xopc 可以从普通聊天开始,但它的组织方式是为了逐步长成目标循环:项目上下文、笔记、外部信号、下一步、反馈和自动化都能在多个入口里继续工作。
258
+ **它和普通聊天 UI 有什么区别?** — xopc 从聊天长成目标循环:项目上下文、笔记、外部入口、自动化,跨多个入口继续工作。
294
259
 
295
- **能在手机或即时通讯里用吗?**
296
- 可以。建议先用本地 TUI 试用;确认方向后,再启动 gateway,用 [移动端 App](./apps/mobile-expo) 连接 iOS/Android,或配置 Telegram、微信、飞书/Lark。
260
+ **能在手机或即时通讯里用吗?** — 可以。用 [移动端 App](./apps/mobile-expo) 扫码连接,或配置 Telegram、微信、飞书/Lark。
297
261
 
298
- ---
262
+ **还有问题?** — 去 [GitHub Discussions](https://github.com/xopcai/xopc/discussions/categories/q-a) 提问。
299
263
 
300
264
  <a id="desktop-app"></a>
301
- <a id="electron-desktop"></a>
302
-
303
- ## 桌面版
304
-
305
- PC 桌面端是大多数用户最省心的开始方式:它会启动内置本地 gateway,并在原生窗口里打开 gateway 控制台。
306
-
307
- 1. 从 **[GitHub Releases](https://github.com/xopcai/xopc/releases)** 下载 — macOS `.dmg`,Windows `xopc-<版本>-x64.exe` 或 `xopc-<版本>-arm64.exe`,Linux `.AppImage` / `.deb`。
308
- 2. 打开应用,完成模型设置,然后开始聊天。
309
- 3. 暂无对应平台安装包时,先用 **`xopc gateway`** + npm 命令行版。
310
-
311
- **从源码打包:** `pnpm install && pnpm run electron:build` → `dist/release/`
312
-
313
- 文档与素材预留:**[PC 桌面端](https://xopcai.github.io/xopc/zh/desktop-app)**。
314
265
 
315
266
  ---
316
267
 
317
268
  ## 安全
318
269
 
319
- 来自即时通讯的消息视为**不可信输入**。私聊建议 **pairing(配对)** 或 **allowlist(白名单)**。请勿泄露网关监听地址与 token —— **[频道](https://xopcai.github.io/xopc/zh/channels)**。
270
+ 来自即时通讯的消息视为**不可信输入**。私聊建议 **pairing(配对)** 或 **allowlist(白名单)**。请勿泄露网关监听地址与 token。详见 **[频道](https://xopcai.github.io/xopc/zh/channels)**。
320
271
 
321
272
  ---
322
273
 
@@ -332,6 +283,8 @@ pnpm run build && pnpm test && pnpm run lint
332
283
 
333
284
  **反馈:** [Bug 反馈](https://github.com/xopcai/xopc/issues/new?template=bug_report.yml) · [功能建议](https://github.com/xopcai/xopc/issues/new?template=feature_request.yml) · [Q&A 讨论](https://github.com/xopcai/xopc/discussions/categories/q-a) · [安全漏洞反馈](https://github.com/xopcai/xopc/security/advisories/new)(请勿公开发布漏洞细节)
334
285
 
286
+ **技术栈:** TypeScript、Node.js ≥ 22、pnpm workspace。内置 LLM 层 `@earendil-works/pi-ai`,React 网关控制台,Electron 桌面端。
287
+
335
288
  ## 致谢
336
289
 
337
290
  - 大模型接入:[@earendil-works/pi-ai](https://github.com/earendil-works/pi-mono) · 运行时:[@earendil-works/pi-agent-core](https://github.com/earendil-works/pi-mono)
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "manifest_version": 3,
3
3
  "name": "xopc Browser Bridge",
4
- "version": "0.0.125",
4
+ "version": "0.0.127",
5
5
  "description": "Browser automation bridge for xopc — executes commands in Chrome via the local xopc daemon.",
6
6
  "permissions": [
7
7
  "debugger",
@@ -18,15 +18,15 @@ export declare const FeishuAccountConfigSchema: z.ZodObject<{
18
18
  verificationToken: z.ZodOptional<z.ZodString>;
19
19
  encryptKey: z.ZodOptional<z.ZodString>;
20
20
  dmPolicy: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
21
+ disabled: "disabled";
21
22
  allowlist: "allowlist";
22
23
  pairing: "pairing";
23
24
  open: "open";
24
- disabled: "disabled";
25
25
  }>>>;
26
26
  groupPolicy: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
27
+ disabled: "disabled";
27
28
  allowlist: "allowlist";
28
29
  open: "open";
29
- disabled: "disabled";
30
30
  }>>>;
31
31
  allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
32
32
  groupAllowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
@@ -93,15 +93,15 @@ export declare const FeishuConfigSchema: z.ZodObject<{
93
93
  verificationToken: z.ZodOptional<z.ZodString>;
94
94
  encryptKey: z.ZodOptional<z.ZodString>;
95
95
  dmPolicy: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
96
+ disabled: "disabled";
96
97
  allowlist: "allowlist";
97
98
  pairing: "pairing";
98
99
  open: "open";
99
- disabled: "disabled";
100
100
  }>>>;
101
101
  groupPolicy: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
102
+ disabled: "disabled";
102
103
  allowlist: "allowlist";
103
104
  open: "open";
104
- disabled: "disabled";
105
105
  }>>>;
106
106
  allowFrom: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>>;
107
107
  groupAllowFrom: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>>;
@@ -157,15 +157,15 @@ export declare const FeishuConfigSchema: z.ZodObject<{
157
157
  verificationToken: z.ZodOptional<z.ZodString>;
158
158
  encryptKey: z.ZodOptional<z.ZodString>;
159
159
  dmPolicy: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
160
+ disabled: "disabled";
160
161
  allowlist: "allowlist";
161
162
  pairing: "pairing";
162
163
  open: "open";
163
- disabled: "disabled";
164
164
  }>>>;
165
165
  groupPolicy: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
166
+ disabled: "disabled";
166
167
  allowlist: "allowlist";
167
168
  open: "open";
168
- disabled: "disabled";
169
169
  }>>>;
170
170
  allowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
171
171
  groupAllowFrom: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>>;
@@ -1,6 +1,6 @@
1
- import { init_session_key, parseSessionKey } from "../../../src/routing/session-key.js";
2
1
  import { createLogger } from "../../../src/utils/logger/index.js";
3
2
  import { init_logger } from "../../../src/utils/logger.js";
3
+ import { init_session_key, parseSessionKey } from "../../../src/routing/session-key.js";
4
4
  import { resolveFeishuAccount } from "./state/accounts.js";
5
5
  //#region extensions/feishu/src/workflow-progress.ts
6
6
  init_session_key();
@@ -1,6 +1,6 @@
1
- import { init_config_schema, resolveTelegramStreamingMode } from "../config-schema.js";
2
1
  import { createLogger } from "../../../../src/utils/logger/index.js";
3
2
  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";