@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.
- package/README.md +56 -102
- package/README.zh-CN.md +51 -98
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/feishu/src/schema/config-schema.d.ts +6 -6
- package/dist/extensions/feishu/src/workflow-progress.js +1 -1
- package/dist/extensions/telegram/src/adapters/streaming-adapter.js +1 -1
- package/dist/extensions/telegram/src/config-schema.d.ts +8 -8
- package/dist/extensions/telegram/src/inbound-processor.js +1 -1
- package/dist/extensions/telegram/src/plugin.js +1 -1
- package/dist/extensions/telegram/src/routing-integration.js +2 -2
- package/dist/extensions/telegram/src/workflow-progress.js +1 -1
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/extensions/weixin/src/api/api.js +1 -1
- package/dist/extensions/weixin/src/config-schema.d.ts +3 -3
- package/dist/extensions/weixin/src/plugin.js +1 -1
- package/dist/extensions/weixin/src/workflow-progress.js +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-BKDKICZV.js → agent-avatar-dicebear-CgGgO4OV.js} +1 -1
- package/dist/gateway/static/root/assets/agents-k59l7NMb.js +2 -0
- package/dist/gateway/static/root/assets/{app-management-settings-panel-DI4BqHKW.js → app-management-settings-panel-DeQsTsyy.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-6_ie3NQ4.js → appearance-settings-BnHQW7Hv.js} +1 -1
- package/dist/gateway/static/root/assets/apps-page-BG9b4abG.js +1 -0
- package/dist/gateway/static/root/assets/{archive-plugin-kUHEJ1HK.js → archive-plugin-5NXT7Zqv.js} +1 -1
- package/dist/gateway/static/root/assets/{attachment-load-Dm-9prpU.js → attachment-load-DghwhYe0.js} +1 -1
- package/dist/gateway/static/root/assets/{automation-suggestion-card-OTxQTPnC.js → automation-suggestion-card-DYmESgwl.js} +1 -1
- package/dist/gateway/static/root/assets/automations-page-De8mVutL.js +4 -0
- package/dist/gateway/static/root/assets/{binary-plugins-DllA_jQ0.js → binary-plugins-DSbPKdWX.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-Cm6CWNj1.js → block-editor-CoZ-_np-.js} +28 -28
- package/dist/gateway/static/root/assets/browser-settings-page-C_ZRa4LF.js +8 -0
- package/dist/gateway/static/root/assets/{capability-presets-api-VJ89b6I2.js → capability-presets-api-hny224j-.js} +1 -1
- package/dist/gateway/static/root/assets/{capability-presets-settings-panel-BaPj8wC2.js → capability-presets-settings-panel-Drc0qLsw.js} +1 -1
- package/dist/gateway/static/root/assets/{channel-recipient-api-B5PwBEUx.js → channel-recipient-api-DAlOHxKJ.js} +1 -1
- package/dist/gateway/static/root/assets/channels-settings-CA20zBV9.js +1 -0
- package/dist/gateway/static/root/assets/connectors-page-qMyMB5te.js +2 -0
- package/dist/gateway/static/root/assets/desktop-pet-XG6Vb_fZ.js +1 -0
- package/dist/gateway/static/root/assets/desktop-pet-settings-npJ0Oh5p.js +1 -0
- package/dist/gateway/static/root/assets/desktop-pet-sprite-DqZ6fbIj.js +1 -0
- package/dist/gateway/static/root/assets/directory-picker-path-field-BR2ItBuf.js +1 -0
- package/dist/gateway/static/root/assets/dreaming-settings-CkUZ997f.js +3 -0
- package/dist/gateway/static/root/assets/{extension-debug-page-BaM0FpW7.js → extension-debug-page-Tl0f1rNv.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-DuZWVOGA.js → extension-page-Ck7QuwE3.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-DarVtbmJ.js → extension-settings-page-3RMhQtZ3.js} +1 -1
- package/dist/gateway/static/root/assets/{fetch-NFKfkqrd.js → fetch-pg2ErdAk.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-config-api-CFEm9rgy.js → gateway-config-api-DbG97ia2.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-settings-B8cyqKk-.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-startup-retry-Dtwh_yGg.js → gateway-startup-retry-Yh8h3hkj.js} +1 -1
- package/dist/gateway/static/root/assets/{goal-create-dialog-BKP7ylcG.js → goal-create-dialog-DmeW7Zz3.js} +1 -1
- package/dist/gateway/static/root/assets/goal-detail-page-DrTyGbVD.js +1 -0
- package/dist/gateway/static/root/assets/{goals-config-api-DTWZNA_Y.js → goals-config-api-CxCWGIBB.js} +1 -1
- package/dist/gateway/static/root/assets/goals-page-DV1bJhIh.js +2 -0
- package/dist/gateway/static/root/assets/{goals-settings-Bhct0ZT-.js → goals-settings-9DrfOkP5.js} +1 -1
- package/dist/gateway/static/root/assets/{heartbeat-settings-C-UxSU4a.js → heartbeat-settings-KaDpZrv0.js} +1 -1
- package/dist/gateway/static/root/assets/index-C2F0Clvm.js +256 -0
- package/dist/gateway/static/root/assets/index-COQSX5d_.css +1 -0
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-DCjy2y4d.js → keyboard-shortcuts-settings-CfQrt_Rb.js} +1 -1
- package/dist/gateway/static/root/assets/logs-page-C9dpiNTF.js +2 -0
- package/dist/gateway/static/root/assets/{markdown-split-BaqxP-GQ.js → markdown-split-BwiMdCf_.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-DQ_EXloK.js → media-plugins-DhoizyZv.js} +1 -1
- package/dist/gateway/static/root/assets/messages-DmnbiNxU.js +3 -0
- package/dist/gateway/static/root/assets/models-hub-panel-zdCdmBmH.js +2 -0
- package/dist/gateway/static/root/assets/notes-page-MpGeFfPt.js +1 -0
- package/dist/gateway/static/root/assets/notes-workbench-DYCM3yd2.js +2 -0
- package/dist/gateway/static/root/assets/{page-tabs-EIZhLppK.js → page-tabs-DDC2t4Z8.js} +1 -1
- package/dist/gateway/static/root/assets/{preview-open-alternatives-r_uB4Epr.js → preview-open-alternatives-BTmk-XDM.js} +1 -1
- package/dist/gateway/static/root/assets/project-detail-page-Cu0ElRnS.js +1 -0
- package/dist/gateway/static/root/assets/projects-page-DakNaUjZ.js +1 -0
- package/dist/gateway/static/root/assets/remote-access-hub-DYKjt7L9.js +1 -0
- package/dist/gateway/static/root/assets/{save-bar-controls-B132Uf-2.js → save-bar-controls-DqU-yKIh.js} +1 -1
- package/dist/gateway/static/root/assets/{schedule-field-B5qshALm.js → schedule-field-CUttkoSB.js} +1 -1
- package/dist/gateway/static/root/assets/{schema-form-CvLmkdS9.js → schema-form-CVSQA9nI.js} +1 -1
- package/dist/gateway/static/root/assets/sessions-page-CcGHDsz1.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-CuFdeKNu.js +1 -0
- package/dist/gateway/static/root/assets/{settings-collapsible-section-pRlvqsAf.js → settings-collapsible-section-CK7ogS-P.js} +1 -1
- package/dist/gateway/static/root/assets/settings-form-section-Bugp38Fa.js +1 -0
- package/dist/gateway/static/root/assets/settings-page-0AJoUvxi.js +1 -0
- package/dist/gateway/static/root/assets/settings-page-layout-DBRWwdhh.js +1 -0
- package/dist/gateway/static/root/assets/setup-status-panel-D6a_hEk7.js +1 -0
- package/dist/gateway/static/root/assets/{share-preview-page-v6-IOp8t.js → share-preview-page-BtsuETKF.js} +1 -1
- package/dist/gateway/static/root/assets/shares-settings-CcEFT7S9.js +1 -0
- package/dist/gateway/static/root/assets/skill-reload-api-BcN_RuTD.js +1 -0
- package/dist/gateway/static/root/assets/skills-page-BbRZZZA5.js +2 -0
- package/dist/gateway/static/root/assets/{system-settings-panel-HUU2FFjM.js → system-settings-panel-DJ6YuLqR.js} +1 -1
- package/dist/gateway/static/root/assets/{typed-models-lib-AH160QHh.js → typed-models-lib-B0T7N8Km.js} +1 -1
- package/dist/gateway/static/root/assets/{use-channel-catalog-BXzDmjCQ.js → use-channel-catalog-C6vrxdzZ.js} +1 -1
- package/dist/gateway/static/root/assets/{user-profile-settings-panel-DxwnQvQ3.js → user-profile-settings-panel-DZ0nKMgj.js} +1 -1
- package/dist/gateway/static/root/assets/{utils-i5POEtqd.js → utils-CehXcWAY.js} +1 -1
- package/dist/gateway/static/root/assets/voice-api-key-field-2QKflCx8.js +1 -0
- package/dist/gateway/static/root/assets/work-item-detail-page-DfJnuWq1.js +1 -0
- package/dist/gateway/static/root/assets/{workflow-run-setup-panel-ClVVMgN-.js → workflow-run-setup-panel-c4jeaohQ.js} +2 -2
- package/dist/gateway/static/root/assets/{workflow-start-dialog-Dv4ZA1T0.js → workflow-start-dialog-ENRHjoqa.js} +1 -1
- package/dist/gateway/static/root/assets/workflows-page-BJwwFTm_.js +18 -0
- package/dist/gateway/static/root/index.html +5 -5
- package/dist/package.js +1 -1
- package/dist/src/activity/context.d.ts +11 -0
- package/dist/src/activity/context.js +36 -0
- package/dist/src/activity/context.js.map +1 -0
- package/dist/src/activity/emitter.d.ts +6 -0
- package/dist/src/activity/emitter.js +43 -0
- package/dist/src/activity/emitter.js.map +1 -0
- package/dist/src/activity/index.d.ts +3 -0
- package/dist/src/activity/index.js +3 -0
- package/dist/src/activity/service.d.ts +12 -0
- package/dist/src/activity/service.js +59 -0
- package/dist/src/activity/service.js.map +1 -0
- package/dist/src/activity/types.d.ts +109 -0
- package/dist/src/activity/types.js +1 -0
- package/dist/src/agent/agent-instance-gateway.d.ts +5 -0
- package/dist/src/agent/agent-manager.d.ts +21 -0
- package/dist/src/agent/agent-manager.js +118 -6
- package/dist/src/agent/agent-manager.js.map +1 -1
- package/dist/src/agent/capabilities/definitions.d.ts +153 -0
- package/dist/src/agent/capabilities/definitions.js +156 -0
- package/dist/src/agent/capabilities/definitions.js.map +1 -0
- package/dist/src/agent/capabilities/index.d.ts +2 -0
- package/dist/src/agent/capabilities/index.js +3 -0
- package/dist/src/agent/capabilities/registry.d.ts +10 -0
- package/dist/src/agent/capabilities/registry.js +51 -0
- package/dist/src/agent/capabilities/registry.js.map +1 -0
- package/dist/src/agent/context/project-context.js +2 -2
- package/dist/src/agent/context/workspace-seed.js +2 -2
- package/dist/src/agent/embedded/run-for-session.js +1 -1
- package/dist/src/agent/goals/post-turn.js +2 -2
- package/dist/src/agent/ipc/bus.js +1 -1
- package/dist/src/agent/mcp/bundle-mcp-materialize.js +1 -1
- package/dist/src/agent/mcp/bundle-mcp-runtime.js +1 -1
- package/dist/src/agent/mcp/mcp-transport-config.js +1 -1
- package/dist/src/agent/mcp/mcp-transport.js +1 -1
- package/dist/src/agent/memory/plugin-discovery.js +1 -1
- package/dist/src/agent/models/manager.js +1 -1
- package/dist/src/agent/orchestration/agent-orchestrator.js +1 -1
- package/dist/src/agent/service/process-direct-one-shot.js +5 -3
- package/dist/src/agent/service/process-direct-one-shot.js.map +1 -1
- package/dist/src/agent/service/process-direct-streaming.js +4 -3
- package/dist/src/agent/service/process-direct-streaming.js.map +1 -1
- package/dist/src/agent/service.d.ts +2 -0
- package/dist/src/agent/service.js +9 -3
- package/dist/src/agent/service.js.map +1 -1
- package/dist/src/agent/service.types.d.ts +7 -0
- package/dist/src/agent/session/session-inspector.js +1 -1
- package/dist/src/agent/skills/hub-pull.js +1 -1
- package/dist/src/agent/skills/parse-skill-metadata.js +9 -1
- package/dist/src/agent/skills/parse-skill-metadata.js.map +1 -1
- package/dist/src/agent/skills/skill-manager.d.ts +4 -0
- package/dist/src/agent/skills/skill-manager.js +17 -0
- package/dist/src/agent/skills/skill-manager.js.map +1 -1
- package/dist/src/agent/skills/types.d.ts +5 -0
- package/dist/src/agent/tool-manuals/index.js +15 -6
- package/dist/src/agent/tool-manuals/index.js.map +1 -1
- package/dist/src/agent/tool-manuals/xopc-use.d.ts +1 -0
- package/dist/src/agent/tool-manuals/xopc-use.js +204 -0
- package/dist/src/agent/tool-manuals/xopc-use.js.map +1 -0
- package/dist/src/agent/tools/desktop-pet-tool.d.ts +24 -0
- package/dist/src/agent/tools/desktop-pet-tool.js +90 -0
- package/dist/src/agent/tools/desktop-pet-tool.js.map +1 -0
- package/dist/src/agent/tools/factory.d.ts +9 -0
- package/dist/src/agent/tools/factory.js +26 -0
- package/dist/src/agent/tools/factory.js.map +1 -1
- package/dist/src/agent/tools/goal-tool.js +2 -2
- package/dist/src/agent/tools/index.d.ts +2 -0
- package/dist/src/agent/tools/index.js +3 -1
- package/dist/src/agent/tools/workflow-tool.js +1 -1
- package/dist/src/agent/tools/xopc-use-tool.d.ts +34 -0
- package/dist/src/agent/tools/xopc-use-tool.js +636 -0
- package/dist/src/agent/tools/xopc-use-tool.js.map +1 -0
- package/dist/src/agent-manifest/schema.d.ts +27 -27
- package/dist/src/automations/api/routes.js +1 -1
- package/dist/src/automations/domain/validation.d.ts +55 -55
- package/dist/src/automations/draft/automation-draft-service.js +1 -1
- package/dist/src/automations/draft/automation-draft-validator.d.ts +25 -25
- package/dist/src/automations/service/action-executor.js +2 -2
- package/dist/src/browser/cdp-local-launcher.js +1 -1
- package/dist/src/browser/providers/browser-ext-install.js +3 -3
- package/dist/src/browser/providers/cloakbrowser.js +2 -2
- package/dist/src/browser/providers/playwright-doctor.js +1 -1
- package/dist/src/browser/stealth.js +1 -1
- package/dist/src/chat-commands/agent-edit.js +1 -1
- package/dist/src/chat-commands/builtins/config.js +1 -1
- package/dist/src/chat-commands/builtins/goal.js +2 -2
- package/dist/src/chat-commands/context.js +1 -1
- package/dist/src/cli/commands/agent.js +3 -3
- package/dist/src/cli/commands/doctor/checks/database-schema.js +2 -2
- package/dist/src/cli/commands/doctor/checks/session-integrity.js +1 -1
- package/dist/src/cli/commands/extension-marketplace.js +1 -1
- package/dist/src/cli/commands/extension-pack.js +1 -1
- package/dist/src/cli/commands/gateway/lifecycle.js +1 -1
- package/dist/src/cli/commands/goal.js +3 -3
- package/dist/src/cli/commands/init.js +1 -1
- package/dist/src/cli/commands/models.js +1 -1
- package/dist/src/cli/commands/onboard.js +1 -1
- package/dist/src/cli/commands/profile.js +1 -1
- package/dist/src/cli/commands/project.js +4 -4
- package/dist/src/cli/commands/tunnel.js +1 -1
- package/dist/src/cli/commands/update.js +1 -1
- package/dist/src/cli/extension-cli-register.js +1 -1
- package/dist/src/config/agent-profile.js +1 -1
- package/dist/src/config/gateway-bind.js +1 -1
- package/dist/src/config/index.js +2 -2
- package/dist/src/config/loader.js +1 -1
- package/dist/src/config/models-json.d.ts +14 -14
- package/dist/src/config/models-json.js +1 -1
- package/dist/src/config/schema.d.ts +60 -60
- package/dist/src/daemon/launchd.js +1 -1
- package/dist/src/daemon/systemd.js +1 -1
- package/dist/src/extensions/discover-extensions.js +1 -1
- package/dist/src/extensions/loader.js +2 -2
- package/dist/src/gateway/agent-builtin-tools.d.ts +1 -1
- package/dist/src/gateway/agent-builtin-tools.js +1 -0
- package/dist/src/gateway/agent-builtin-tools.js.map +1 -1
- package/dist/src/gateway/agents-admin.js +1 -1
- package/dist/src/gateway/hono/lib/config-payload.d.ts +14 -14
- package/dist/src/gateway/hono/lib/static-ui.js +1 -1
- package/dist/src/gateway/hono/middleware/log-context.js +8 -1
- package/dist/src/gateway/hono/middleware/log-context.js.map +1 -1
- package/dist/src/gateway/hono/routes/activity.d.ts +14 -0
- package/dist/src/gateway/hono/routes/activity.js +72 -0
- package/dist/src/gateway/hono/routes/activity.js.map +1 -0
- package/dist/src/gateway/hono/routes/commands-skills.js +7 -0
- package/dist/src/gateway/hono/routes/commands-skills.js.map +1 -1
- package/dist/src/gateway/hono/routes/goals.js +1 -1
- package/dist/src/gateway/hono/routes/index.js +2 -0
- package/dist/src/gateway/hono/routes/index.js.map +1 -1
- package/dist/src/gateway/hono/routes/lazy-bundles.js +2 -1
- package/dist/src/gateway/hono/routes/lazy-bundles.js.map +1 -1
- package/dist/src/gateway/hono/routes/memory.js +2 -2
- package/dist/src/gateway/hono/routes/projects.js +93 -15
- package/dist/src/gateway/hono/routes/projects.js.map +1 -1
- package/dist/src/gateway/hono/routes/sessions.js +101 -2
- package/dist/src/gateway/hono/routes/sessions.js.map +1 -1
- package/dist/src/gateway/hono/routes/workflows.js +2 -2
- package/dist/src/gateway/lock.js +1 -1
- package/dist/src/gateway/ports.js +1 -1
- package/dist/src/gateway/run-loop.js +1 -1
- package/dist/src/gateway/service/run-gateway-agent.js +6 -2
- package/dist/src/gateway/service/run-gateway-agent.js.map +1 -1
- package/dist/src/gateway/service/sessions-api.d.ts +10 -0
- package/dist/src/gateway/service/sessions-api.js +31 -0
- package/dist/src/gateway/service/sessions-api.js.map +1 -1
- package/dist/src/gateway/service.js +12 -9
- package/dist/src/gateway/service.js.map +1 -1
- package/dist/src/goals/goal-store.js +1 -1
- package/dist/src/goals/goal-store.js.map +1 -1
- package/dist/src/goals/goal-workflow-judge.js +1 -1
- package/dist/src/infra/ports.js +1 -1
- package/dist/src/infra/ssh-tunnel.js +1 -1
- package/dist/src/infra/update-check.js +1 -1
- package/dist/src/infra/update-restart.js +1 -1
- package/dist/src/migrations/runner.js +1 -1
- package/dist/src/notes/service.js +65 -6
- package/dist/src/notes/service.js.map +1 -1
- package/dist/src/notes/store.js +1 -1
- package/dist/src/pets/factory.d.ts +25 -0
- package/dist/src/pets/factory.js +327 -0
- package/dist/src/pets/factory.js.map +1 -0
- package/dist/src/pets/manifest.d.ts +2 -0
- package/dist/src/pets/manifest.js +16 -0
- package/dist/src/pets/manifest.js.map +1 -0
- package/dist/src/pets/validator.d.ts +12 -0
- package/dist/src/pets/validator.js +175 -0
- package/dist/src/pets/validator.js.map +1 -0
- package/dist/src/projects/project-service.d.ts +4 -1
- package/dist/src/projects/project-service.js +65 -2
- package/dist/src/projects/project-service.js.map +1 -1
- package/dist/src/projects/project-store.d.ts +3 -1
- package/dist/src/projects/project-store.js +56 -6
- package/dist/src/projects/project-store.js.map +1 -1
- package/dist/src/projects/types.d.ts +12 -0
- package/dist/src/projects/workspace.js +1 -1
- package/dist/src/routing/agent-session-key.js +1 -1
- package/dist/src/routing/resolve-route.js +1 -1
- package/dist/src/routing/resolve-tui-session-key.js +1 -1
- package/dist/src/session/client-history.d.ts +3 -0
- package/dist/src/session/client-history.js +24 -9
- package/dist/src/session/client-history.js.map +1 -1
- package/dist/src/session/init-session-turn.js +1 -1
- package/dist/src/session/resolve-session.js +1 -1
- package/dist/src/session/session-title.js +24 -4
- package/dist/src/session/session-title.js.map +1 -1
- package/dist/src/session/store.js +1 -1
- package/dist/src/session/types.d.ts +4 -0
- package/dist/src/session/types.js.map +1 -1
- package/dist/src/storage/sqlite/activity-repository.d.ts +8 -0
- package/dist/src/storage/sqlite/activity-repository.js +208 -0
- package/dist/src/storage/sqlite/activity-repository.js.map +1 -0
- package/dist/src/storage/sqlite/connection.js +1 -1
- package/dist/src/storage/sqlite/index.d.ts +1 -0
- package/dist/src/storage/sqlite/index.js +2 -1
- package/dist/src/storage/sqlite/migrations/024_activity_events.sql +62 -0
- package/dist/src/storage/sqlite/migrations/025_project_pinned_at.sql +5 -0
- package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
- package/dist/src/storage/sqlite/migrations/runner.js +3 -3
- package/dist/src/storage/sqlite/migrations/runner.js.map +1 -1
- package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
- package/dist/src/storage/sqlite/row-mappers.js +1 -1
- package/dist/src/storage/sqlite/schema.js +1 -1
- package/dist/src/storage/sqlite/schema.sql +63 -0
- package/dist/src/storage/sqlite/session-repository.js +11 -0
- package/dist/src/storage/sqlite/session-repository.js.map +1 -1
- package/dist/src/tui/backends/embedded-backend.d.ts +13 -0
- package/dist/src/tui/backends/embedded-backend.js +76 -7
- package/dist/src/tui/backends/embedded-backend.js.map +1 -1
- package/dist/src/tui/backends/gateway-sse-backend.d.ts +13 -0
- package/dist/src/tui/backends/gateway-sse-backend.js +53 -0
- package/dist/src/tui/backends/gateway-sse-backend.js.map +1 -1
- package/dist/src/tui/chat-history.js +16 -3
- package/dist/src/tui/chat-history.js.map +1 -1
- package/dist/src/tui/clipboard-image.js +1 -1
- package/dist/src/tui/components/chat-log.d.ts +23 -3
- package/dist/src/tui/components/chat-log.js +68 -9
- package/dist/src/tui/components/chat-log.js.map +1 -1
- package/dist/src/tui/components/tui-bottom-bar.js +9 -5
- package/dist/src/tui/components/tui-bottom-bar.js.map +1 -1
- package/dist/src/tui/tui-backend.d.ts +16 -0
- package/dist/src/tui/tui-command-formatters.js +2 -2
- package/dist/src/tui/tui-commands.d.ts +9 -0
- package/dist/src/tui/tui-commands.js +95 -6
- package/dist/src/tui/tui-commands.js.map +1 -1
- package/dist/src/tui/tui-picker-overlay.d.ts +1 -0
- package/dist/src/tui/tui-picker-overlay.js +36 -1
- package/dist/src/tui/tui-picker-overlay.js.map +1 -1
- package/dist/src/tui/tui-picker-services.d.ts +13 -0
- package/dist/src/tui/tui-run-state.js +11 -0
- package/dist/src/tui/tui-run-state.js.map +1 -1
- package/dist/src/tui/tui-run-status-format.d.ts +3 -0
- package/dist/src/tui/tui-run-status-format.js +33 -0
- package/dist/src/tui/tui-run-status-format.js.map +1 -0
- package/dist/src/tui/tui-session-actions.d.ts +5 -0
- package/dist/src/tui/tui-session-actions.js +24 -0
- package/dist/src/tui/tui-session-actions.js.map +1 -1
- package/dist/src/tui/tui-timeline-picker.d.ts +19 -0
- package/dist/src/tui/tui-timeline-picker.js +81 -0
- package/dist/src/tui/tui-timeline-picker.js.map +1 -0
- package/dist/src/tui/tui-timeline.d.ts +15 -0
- package/dist/src/tui/tui-timeline.js +65 -0
- package/dist/src/tui/tui-timeline.js.map +1 -0
- package/dist/src/tui/tui-types.d.ts +1 -0
- package/dist/src/tui/tui-types.js +1 -0
- package/dist/src/tui/tui-types.js.map +1 -1
- package/dist/src/tui/tui.js +31 -25
- package/dist/src/tui/tui.js.map +1 -1
- package/dist/src/utils/index.js +1 -1
- package/dist/src/utils/logger/index.js +1 -1
- package/dist/src/utils/logger/stats.d.ts +3 -3
- package/dist/src/utils/logger.js +1 -1
- package/dist/src/work-items/agent-context.d.ts +5 -1
- package/dist/src/work-items/agent-context.js +39 -3
- package/dist/src/work-items/agent-context.js.map +1 -1
- package/dist/src/work-items/work-item-service.d.ts +2 -0
- package/dist/src/work-items/work-item-service.js +97 -0
- package/dist/src/work-items/work-item-service.js.map +1 -1
- package/dist/src/workflows/draft/workflow-draft-service.js +1 -1
- package/dist/src/workflows/service/workflow-session-bridge.js +1 -1
- package/package.json +5 -5
- package/skills/creative/hatch-pet/SKILL.md +63 -0
- package/dist/gateway/static/root/assets/agents-BnTB7-c5.js +0 -2
- package/dist/gateway/static/root/assets/apps-page-B6bG65SW.js +0 -1
- package/dist/gateway/static/root/assets/automations-page-1lVbo0dS.js +0 -1
- package/dist/gateway/static/root/assets/browser-settings-page-CzDBlOK0.js +0 -8
- package/dist/gateway/static/root/assets/channels-settings-Df4m7p1k.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-BMTphmHS.js +0 -2
- package/dist/gateway/static/root/assets/directory-picker-path-field-DySMzOF6.js +0 -1
- package/dist/gateway/static/root/assets/dist-By6Rh2ee.js +0 -1
- package/dist/gateway/static/root/assets/dreaming-settings-D_AjSnV_.js +0 -3
- package/dist/gateway/static/root/assets/gateway-settings-BMk2S5td.js +0 -1
- package/dist/gateway/static/root/assets/goal-detail-page-C2cTxf71.js +0 -1
- package/dist/gateway/static/root/assets/goals-page-CTmA3hWK.js +0 -2
- package/dist/gateway/static/root/assets/index-BNHDd2j1.css +0 -1
- package/dist/gateway/static/root/assets/index-BPXLPMuY.js +0 -193
- package/dist/gateway/static/root/assets/logs-page-CGc3_CQU.js +0 -2
- package/dist/gateway/static/root/assets/messages-CjuIJcZl.js +0 -3
- package/dist/gateway/static/root/assets/models-hub-panel-Drz4UQMb.js +0 -2
- package/dist/gateway/static/root/assets/notes-page-CY1ylng1.js +0 -1
- package/dist/gateway/static/root/assets/notes-workbench-X7IaD--t.js +0 -2
- package/dist/gateway/static/root/assets/project-detail-page-DE5adRBE.js +0 -1
- package/dist/gateway/static/root/assets/projects-page-CuOb1k6F.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-BOxNrUVA.js +0 -1
- package/dist/gateway/static/root/assets/sessions-page-CY0IQcGW.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-D4NBNVCB.js +0 -1
- package/dist/gateway/static/root/assets/settings-form-section-BBYUDLVd.js +0 -1
- package/dist/gateway/static/root/assets/settings-page-DaO7zYZM.js +0 -1
- package/dist/gateway/static/root/assets/settings-page-layout-D8g9PAek.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-Bks0CLLT.js +0 -1
- package/dist/gateway/static/root/assets/shares-settings-CEZsKm9r.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-oTkHbb9W.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-DigsbZ6K.js +0 -2
- package/dist/gateway/static/root/assets/voice-api-key-field-CEJklEgb.js +0 -1
- package/dist/gateway/static/root/assets/work-item-detail-page-CD6FL_Rs.js +0 -1
- 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&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&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 & 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
|
|
40
|
-
- **
|
|
41
|
-
- **
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
###
|
|
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
|
-
|
|
113
|
-
|
|
114
|
-
### Onboard & chat
|
|
114
|
+
Then chat immediately:
|
|
115
115
|
|
|
116
116
|
```bash
|
|
117
|
-
xopc onboard
|
|
118
|
-
xopc
|
|
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
|
|
135
|
-
xopc agent -m "Summarize the last 5 commits"
|
|
136
|
-
|
|
137
|
-
xopc
|
|
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
|
-
- 🔁 **
|
|
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
|
|
167
|
-
- 📱 **
|
|
168
|
-
- 🧩 **Grows with you** — **`xopc skills install`**
|
|
169
|
-
- ⏰ **Proactive** —
|
|
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
|
|
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
|
-
"
|
|
232
|
-
|
|
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
|
-
|
|
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
|
-
**
|
|
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
|
-
**
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
**
|
|
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
|
|
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:** [
|
|
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&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&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
|
-
-
|
|
41
|
-
-
|
|
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
|
-
|
|
57
|
-
|
|
58
|
-
## 安装后你能立刻做什么
|
|
75
|
+
**这就是循环:** 上下文进来,xopc 帮你判断下一步;你去行动,再把结果和反馈带回来;系统越用越知道该如何继续推进。
|
|
59
76
|
|
|
60
|
-
|
|
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
|
-
|
|
113
|
-
|
|
114
|
-
### 配置并开聊
|
|
114
|
+
然后直接开聊:
|
|
115
115
|
|
|
116
116
|
```bash
|
|
117
|
-
xopc onboard
|
|
118
|
-
xopc
|
|
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 #
|
|
132
|
+
xopc agent -i # 交互式 CLI
|
|
135
133
|
xopc agent -m "总结最近 5 条提交" # 只问一句
|
|
136
|
-
|
|
137
|
-
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+**
|
|
167
|
-
- 📱
|
|
168
|
-
- 🧩 **可按需扩展** —
|
|
169
|
-
- ⏰ **支持主动任务** —
|
|
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
|
|
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
|
-
"
|
|
232
|
-
|
|
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
|
-
|
|
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
|
|
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)
|
|
@@ -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";
|