@xopcai/xopc 0.0.6 → 0.0.11
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/dist/extensions/weixin/src/api/api.js +1 -1
- package/dist/extensions/weixin/src/cdn/upload.js +1 -1
- package/dist/extensions/weixin/src/media/data-url.js +1 -1
- package/dist/extensions/weixin/src/messaging/process-message.js +1 -1
- package/dist/gateway/static/root/assets/{agents-B6s2BvpH.js → agents-BdC4Y-HX.js} +2 -2
- package/dist/gateway/static/root/assets/agents-BdC4Y-HX.js.map +1 -0
- package/dist/gateway/static/root/assets/{apps-page-BtsZ5ZPx.js → apps-page-C-oaSHkm.js} +2 -2
- package/dist/gateway/static/root/assets/{apps-page-BtsZ5ZPx.js.map → apps-page-C-oaSHkm.js.map} +1 -1
- package/dist/gateway/static/root/assets/attachment-load-BDDlItdE.js +1 -0
- package/dist/gateway/static/root/assets/{channels-settings-BUfWBEVU.js → channels-settings-BqEUppPO.js} +2 -2
- package/dist/gateway/static/root/assets/{channels-settings-BUfWBEVU.js.map → channels-settings-BqEUppPO.js.map} +1 -1
- package/dist/gateway/static/root/assets/{chat-agents-api-BR30M2YQ.js → chat-agents-api-BhqjQ7iL.js} +2 -2
- package/dist/gateway/static/root/assets/{chat-agents-api-BR30M2YQ.js.map → chat-agents-api-BhqjQ7iL.js.map} +1 -1
- package/dist/gateway/static/root/assets/{cron-page-CMTx0Mjz.js → cron-page-Cli49RKR.js} +2 -2
- package/dist/gateway/static/root/assets/{cron-page-CMTx0Mjz.js.map → cron-page-Cli49RKR.js.map} +1 -1
- package/dist/gateway/static/root/assets/{cron-utils-BJma9IcD.js → cron-utils-Dkj-Ldpf.js} +2 -2
- package/dist/gateway/static/root/assets/{cron-utils-BJma9IcD.js.map → cron-utils-Dkj-Ldpf.js.map} +1 -1
- package/dist/gateway/static/root/assets/electron-env-BDtJw9AY.js +2 -0
- package/dist/gateway/static/root/assets/electron-env-BDtJw9AY.js.map +1 -0
- package/dist/gateway/static/root/assets/{extension-debug-page-BCVoNSo6.js → extension-debug-page-BMcZlaxF.js} +2 -2
- package/dist/gateway/static/root/assets/{extension-debug-page-BCVoNSo6.js.map → extension-debug-page-BMcZlaxF.js.map} +1 -1
- package/dist/gateway/static/root/assets/{extension-iframe-host-PWB-Pw2d.js → extension-iframe-host-D5HEF0KR.js} +2 -2
- package/dist/gateway/static/root/assets/{extension-iframe-host-PWB-Pw2d.js.map → extension-iframe-host-D5HEF0KR.js.map} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-D2tTklsD.js → extension-page-CXdCSSPl.js} +2 -2
- package/dist/gateway/static/root/assets/{extension-page-D2tTklsD.js.map → extension-page-CXdCSSPl.js.map} +1 -1
- package/dist/gateway/static/root/assets/{extension-provider-BpHodVRj.js → extension-provider-DZCZgQE2.js} +2 -2
- package/dist/gateway/static/root/assets/{extension-provider-BpHodVRj.js.map → extension-provider-DZCZgQE2.js.map} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-BEu6Xw1Z.js → extension-settings-page-CX6STpx3.js} +2 -2
- package/dist/gateway/static/root/assets/{extension-settings-page-BEu6Xw1Z.js.map → extension-settings-page-CX6STpx3.js.map} +1 -1
- package/dist/gateway/static/root/assets/{gateway-config-swr-C7ZFPhNj.js → gateway-config-swr-Cph02QZn.js} +2 -2
- package/dist/gateway/static/root/assets/{gateway-config-swr-C7ZFPhNj.js.map → gateway-config-swr-Cph02QZn.js.map} +1 -1
- package/dist/gateway/static/root/assets/index-Bty3m0mS.css +2 -0
- package/dist/gateway/static/root/assets/index-iTUyfzNr.js +16 -0
- package/dist/gateway/static/root/assets/index-iTUyfzNr.js.map +1 -0
- package/dist/gateway/static/root/assets/{logs-page-BpsxYdcL.js → logs-page-B9O5l3I8.js} +2 -2
- package/dist/gateway/static/root/assets/{logs-page-BpsxYdcL.js.map → logs-page-B9O5l3I8.js.map} +1 -1
- package/dist/gateway/static/root/assets/{model-selector-BiiDq8Pk.js → model-selector-BLiY_O25.js} +2 -2
- package/dist/gateway/static/root/assets/{model-selector-BiiDq8Pk.js.map → model-selector-BLiY_O25.js.map} +1 -1
- package/dist/gateway/static/root/assets/navigation-DB9S-C6S.js +2 -0
- package/dist/gateway/static/root/assets/navigation-DB9S-C6S.js.map +1 -0
- package/dist/gateway/static/root/assets/page-header-store-BFpnFTed.js +2 -0
- package/dist/gateway/static/root/assets/{page-header-store-HcRZK5CZ.js.map → page-header-store-BFpnFTed.js.map} +1 -1
- package/dist/gateway/static/root/assets/{session-api-DxNaAkmX.js → session-api-DEhQXWJg.js} +2 -2
- package/dist/gateway/static/root/assets/{session-api-DxNaAkmX.js.map → session-api-DEhQXWJg.js.map} +1 -1
- package/dist/gateway/static/root/assets/{session-working-directory-control-CDH-Wk4E.js → session-working-directory-control-DKOtWs3-.js} +3 -3
- package/dist/gateway/static/root/assets/{session-working-directory-control-CDH-Wk4E.js.map → session-working-directory-control-DKOtWs3-.js.map} +1 -1
- package/dist/gateway/static/root/assets/{sessions-page-5PK75r1n.js → sessions-page-BYlWP1ep.js} +2 -2
- package/dist/gateway/static/root/assets/{sessions-page-5PK75r1n.js.map → sessions-page-BYlWP1ep.js.map} +1 -1
- package/dist/gateway/static/root/assets/settings-page-oCnIavdg.js +2 -0
- package/dist/gateway/static/root/assets/settings-page-oCnIavdg.js.map +1 -0
- package/dist/gateway/static/root/assets/{skill-api-CxbNlOD_.js → skill-api-DWrn8Az0.js} +2 -2
- package/dist/gateway/static/root/assets/{skill-api-CxbNlOD_.js.map → skill-api-DWrn8Az0.js.map} +1 -1
- package/dist/gateway/static/root/assets/{skills-page-Dd8ZzYJb.js → skills-page-C59WQpM1.js} +2 -2
- package/dist/gateway/static/root/assets/{skills-page-Dd8ZzYJb.js.map → skills-page-C59WQpM1.js.map} +1 -1
- package/dist/gateway/static/root/assets/{theme-store-CPTH77BE.js → theme-store-CywXkKml.js} +2 -2
- package/dist/gateway/static/root/assets/{theme-store-CPTH77BE.js.map → theme-store-CywXkKml.js.map} +1 -1
- package/dist/gateway/static/root/assets/url-D7yWllI8.js +2 -0
- package/dist/gateway/static/root/assets/url-D7yWllI8.js.map +1 -0
- package/dist/gateway/static/root/assets/{useTranslation-BEUWOMuh.js → useTranslation-CACj0DBJ.js} +2 -2
- package/dist/gateway/static/root/assets/{useTranslation-BEUWOMuh.js.map → useTranslation-CACj0DBJ.js.map} +1 -1
- package/dist/gateway/static/root/index.html +16 -16
- package/dist/package.js +1 -1
- package/dist/src/agent/agent-manager.d.ts +1 -0
- package/dist/src/agent/agent-manager.js +17 -9
- package/dist/src/agent/agent-manager.js.map +1 -1
- package/dist/src/agent/background-review/run-background-review.js +2 -0
- package/dist/src/agent/background-review/run-background-review.js.map +1 -1
- package/dist/src/agent/child-agent-factory.js +2 -0
- package/dist/src/agent/child-agent-factory.js.map +1 -1
- package/dist/src/agent/context/expand-at-file-mentions.d.ts +4 -0
- package/dist/src/agent/context/expand-at-file-mentions.js +69 -0
- package/dist/src/agent/context/expand-at-file-mentions.js.map +1 -0
- package/dist/src/agent/context/workspace-seed.js +1 -1
- package/dist/src/agent/image/index.d.ts +0 -1
- package/dist/src/agent/image/index.js +1 -2
- package/dist/src/agent/image/understanding/pi-ai-provider.js.map +1 -1
- package/dist/src/agent/ipc/inbox.js +1 -1
- package/dist/src/agent/ipc/socket.js +1 -1
- package/dist/src/agent/memory/compaction.d.ts +1 -1
- package/dist/src/agent/memory/compaction.js +38 -11
- package/dist/src/agent/memory/compaction.js.map +1 -1
- package/dist/src/agent/memory/plugin-discovery.js +1 -1
- package/dist/src/agent/messaging/command-handler.d.ts +13 -0
- package/dist/src/agent/messaging/command-handler.js +14 -2
- package/dist/src/agent/messaging/command-handler.js.map +1 -1
- package/dist/src/agent/orchestration/agent-orchestrator.js +6 -1
- package/dist/src/agent/orchestration/agent-orchestrator.js.map +1 -1
- package/dist/src/agent/service.d.ts +16 -1
- package/dist/src/agent/service.js +175 -17
- package/dist/src/agent/service.js.map +1 -1
- package/dist/src/agent/skills/format-skills-prompt.js.map +1 -1
- package/dist/src/agent/skills/hub-hash.js +1 -1
- package/dist/src/agent/skills/hub-pull.js +1 -1
- package/dist/src/agent/skills/scanner.js +1 -1
- package/dist/src/agent/skills/skill-manage-ops.js +1 -1
- package/dist/src/agent/skills/skill-manage-ops.js.map +1 -1
- package/dist/src/agent/tools/browser/tools.js +2 -2
- package/dist/src/agent/tools/browser/tools.js.map +1 -1
- package/dist/src/agent/tools/image-generate-tool.js +1 -1
- package/dist/src/agent/tools/image-tool.js +2 -2
- package/dist/src/agent/tools/image-tool.js.map +1 -1
- package/dist/src/agent/tools/index.d.ts +1 -1
- package/dist/src/agent/tools/index.js +2 -2
- package/dist/src/agent/tools/read.d.ts +0 -2
- package/dist/src/agent/tools/read.js +1 -3
- package/dist/src/agent/tools/read.js.map +1 -1
- package/dist/src/agent/tools/skill-manage-tool.js +1 -1
- package/dist/src/agent/tools/write.js +1 -1
- package/dist/src/auth/credentials.js +2 -2
- package/dist/src/channels/attachments/inbound-persist.js +1 -1
- package/dist/src/channels/attachments/outbound-tts-persist.js +1 -1
- package/dist/src/channels/index.d.ts +1 -1
- package/dist/src/channels/index.js +2 -2
- package/dist/src/channels/pipeline.d.ts +8 -1
- package/dist/src/channels/pipeline.js +49 -4
- package/dist/src/channels/pipeline.js.map +1 -1
- package/dist/src/channels/plugin-types.d.ts +14 -0
- package/dist/src/chat-commands/builtins/config.d.ts +4 -0
- package/dist/src/chat-commands/builtins/config.js +197 -0
- package/dist/src/chat-commands/builtins/config.js.map +1 -0
- package/dist/src/chat-commands/builtins/context.d.ts +4 -0
- package/dist/src/chat-commands/builtins/context.js +44 -0
- package/dist/src/chat-commands/builtins/context.js.map +1 -0
- package/dist/src/chat-commands/builtins/session.js +111 -0
- package/dist/src/chat-commands/builtins/session.js.map +1 -1
- package/dist/src/chat-commands/builtins/thinking.js +49 -21
- package/dist/src/chat-commands/builtins/thinking.js.map +1 -1
- package/dist/src/chat-commands/config-paths.d.ts +10 -0
- package/dist/src/chat-commands/config-paths.js +45 -0
- package/dist/src/chat-commands/config-paths.js.map +1 -0
- package/dist/src/chat-commands/config-value.d.ts +12 -0
- package/dist/src/chat-commands/config-value.js +53 -0
- package/dist/src/chat-commands/config-value.js.map +1 -0
- package/dist/src/chat-commands/context.d.ts +24 -1
- package/dist/src/chat-commands/context.js +41 -0
- package/dist/src/chat-commands/context.js.map +1 -1
- package/dist/src/chat-commands/index.d.ts +2 -0
- package/dist/src/chat-commands/index.js +5 -1
- package/dist/src/chat-commands/index.js.map +1 -1
- package/dist/src/chat-commands/types.d.ts +33 -1
- package/dist/src/cli/commands/agent/interactive.js +1 -1
- package/dist/src/cli/commands/agent/interactive.js.map +1 -1
- package/dist/src/cli/commands/agent.js +21 -9
- package/dist/src/cli/commands/agent.js.map +1 -1
- package/dist/src/cli/commands/auth.js.map +1 -1
- package/dist/src/cli/commands/doctor/checks/channel-config.d.ts +2 -0
- package/dist/src/cli/commands/doctor/checks/channel-config.js +113 -0
- package/dist/src/cli/commands/doctor/checks/channel-config.js.map +1 -0
- package/dist/src/cli/commands/doctor/checks/channel-plugins.d.ts +2 -0
- package/dist/src/cli/commands/doctor/checks/channel-plugins.js +47 -0
- package/dist/src/cli/commands/doctor/checks/channel-plugins.js.map +1 -0
- package/dist/src/cli/commands/doctor/checks/config-health.d.ts +2 -0
- package/dist/src/cli/commands/doctor/checks/config-health.js +82 -0
- package/dist/src/cli/commands/doctor/checks/config-health.js.map +1 -0
- package/dist/src/cli/commands/doctor/checks/cron-health.d.ts +2 -0
- package/dist/src/cli/commands/doctor/checks/cron-health.js +116 -0
- package/dist/src/cli/commands/doctor/checks/cron-health.js.map +1 -0
- package/dist/src/cli/commands/doctor/checks/gateway-health.d.ts +2 -0
- package/dist/src/cli/commands/doctor/checks/gateway-health.js +64 -0
- package/dist/src/cli/commands/doctor/checks/gateway-health.js.map +1 -0
- package/dist/src/cli/commands/doctor/checks/gateway-service.d.ts +2 -0
- package/dist/src/cli/commands/doctor/checks/gateway-service.js +64 -0
- package/dist/src/cli/commands/doctor/checks/gateway-service.js.map +1 -0
- package/dist/src/cli/commands/doctor/checks/node-version.d.ts +2 -0
- package/dist/src/cli/commands/doctor/checks/node-version.js +33 -0
- package/dist/src/cli/commands/doctor/checks/node-version.js.map +1 -0
- package/dist/src/cli/commands/doctor/checks/provider-auth.d.ts +2 -0
- package/dist/src/cli/commands/doctor/checks/provider-auth.js +91 -0
- package/dist/src/cli/commands/doctor/checks/provider-auth.js.map +1 -0
- package/dist/src/cli/commands/doctor/checks/security-audit.d.ts +2 -0
- package/dist/src/cli/commands/doctor/checks/security-audit.js +85 -0
- package/dist/src/cli/commands/doctor/checks/security-audit.js.map +1 -0
- package/dist/src/cli/commands/doctor/checks/session-integrity.d.ts +2 -0
- package/dist/src/cli/commands/doctor/checks/session-integrity.js +118 -0
- package/dist/src/cli/commands/doctor/checks/session-integrity.js.map +1 -0
- package/dist/src/cli/commands/doctor/checks/state-integrity.d.ts +2 -0
- package/dist/src/cli/commands/doctor/checks/state-integrity.js +99 -0
- package/dist/src/cli/commands/doctor/checks/state-integrity.js.map +1 -0
- package/dist/src/cli/commands/doctor/checks/version-check.d.ts +2 -0
- package/dist/src/cli/commands/doctor/checks/version-check.js +71 -0
- package/dist/src/cli/commands/doctor/checks/version-check.js.map +1 -0
- package/dist/src/cli/commands/doctor/checks/workspace-status.d.ts +2 -0
- package/dist/src/cli/commands/doctor/checks/workspace-status.js +73 -0
- package/dist/src/cli/commands/doctor/checks/workspace-status.js.map +1 -0
- package/dist/src/cli/commands/doctor/flow.d.ts +9 -0
- package/dist/src/cli/commands/doctor/flow.js +51 -0
- package/dist/src/cli/commands/doctor/flow.js.map +1 -0
- package/dist/src/cli/commands/doctor/format.d.ts +6 -0
- package/dist/src/cli/commands/doctor/format.js +61 -0
- package/dist/src/cli/commands/doctor/format.js.map +1 -0
- package/dist/src/cli/commands/doctor/index.js +44 -0
- package/dist/src/cli/commands/doctor/index.js.map +1 -0
- package/dist/src/cli/commands/doctor/types.d.ts +20 -0
- package/dist/src/cli/commands/doctor/types.js +1 -0
- package/dist/src/cli/commands/extension.js +10 -0
- package/dist/src/cli/commands/extension.js.map +1 -1
- package/dist/src/cli/commands/init.js +1 -2
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/commands/session/utils.js.map +1 -1
- package/dist/src/cli/commands/update.d.ts +1 -0
- package/dist/src/cli/commands/update.js +171 -0
- package/dist/src/cli/commands/update.js.map +1 -0
- package/dist/src/cli/index.d.ts +2 -2
- package/dist/src/cli/index.js +4 -2
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/cli/utils/init-workspace.js +1 -1
- package/dist/src/config/index.d.ts +1 -0
- package/dist/src/config/index.js +4 -3
- package/dist/src/config/index.js.map +1 -1
- package/dist/src/config/loader.js +1 -1
- package/dist/src/config/models-json.d.ts +15 -15
- package/dist/src/config/paths.js.map +1 -1
- package/dist/src/config/profile.js +1 -1
- package/dist/src/config/runtime-overrides.d.ts +8 -0
- package/dist/src/config/runtime-overrides.js +40 -0
- package/dist/src/config/runtime-overrides.js.map +1 -0
- package/dist/src/config/schema.d.ts +34 -104
- package/dist/src/config/schema.js +18 -39
- package/dist/src/config/schema.js.map +1 -1
- package/dist/src/cron/persistence.js +1 -1
- package/dist/src/cron/run-log-store.js +1 -1
- package/dist/src/daemon/launchd.js +2 -2
- package/dist/src/daemon/launchd.js.map +1 -1
- package/dist/src/daemon/systemd.js +2 -2
- package/dist/src/daemon/systemd.js.map +1 -1
- package/dist/src/extensions/health.js +1 -1
- package/dist/src/extensions/loader.d.ts +1 -1
- package/dist/src/extensions/loader.js +5 -8
- package/dist/src/extensions/loader.js.map +1 -1
- package/dist/src/extensions/lockfile.js +1 -1
- package/dist/src/extensions/sdk/index.js +6 -1
- package/dist/src/extensions/sdk/index.js.map +1 -0
- package/dist/src/gateway/agents-admin.js +1 -1
- package/dist/src/gateway/agents-admin.js.map +1 -1
- package/dist/src/gateway/hono/lib/static-ui.js +1 -1
- package/dist/src/gateway/hono/oauth.js +1 -1
- package/dist/src/gateway/hono/routes/config.js +1 -1
- package/dist/src/gateway/hono/routes/doctor.d.ts +3 -0
- package/dist/src/gateway/hono/routes/doctor.js +35 -0
- package/dist/src/gateway/hono/routes/doctor.js.map +1 -0
- package/dist/src/gateway/hono/routes/index.js +4 -0
- package/dist/src/gateway/hono/routes/index.js.map +1 -1
- package/dist/src/gateway/hono/routes/models.js +64 -11
- package/dist/src/gateway/hono/routes/models.js.map +1 -1
- package/dist/src/gateway/hono/routes/public-gateway.js +10 -0
- package/dist/src/gateway/hono/routes/public-gateway.js.map +1 -1
- package/dist/src/gateway/hono/routes/update.d.ts +3 -0
- package/dist/src/gateway/hono/routes/update.js +141 -0
- package/dist/src/gateway/hono/routes/update.js.map +1 -0
- package/dist/src/gateway/hono/routes/workspace.js +82 -2
- package/dist/src/gateway/hono/routes/workspace.js.map +1 -1
- package/dist/src/gateway/lock.js +1 -1
- package/dist/src/gateway/ports.js +98 -3
- package/dist/src/gateway/ports.js.map +1 -1
- package/dist/src/gateway/service.d.ts +1 -4
- package/dist/src/gateway/service.js +13 -20
- package/dist/src/gateway/service.js.map +1 -1
- package/dist/src/gateway/workspace-fs-file-list.d.ts +5 -0
- package/dist/src/gateway/workspace-fs-file-list.js +56 -0
- package/dist/src/gateway/workspace-fs-file-list.js.map +1 -0
- package/dist/src/gateway/workspace-heartbeat-path.js +1 -1
- package/dist/src/gateway/workspace-ripgrep.d.ts +5 -0
- package/dist/src/gateway/workspace-ripgrep.js +88 -4
- package/dist/src/gateway/workspace-ripgrep.js.map +1 -1
- package/dist/src/infra/update-channels.d.ts +14 -0
- package/dist/src/infra/update-channels.js +30 -0
- package/dist/src/infra/update-channels.js.map +1 -0
- package/dist/src/infra/update-check.d.ts +53 -0
- package/dist/src/infra/update-check.js +155 -0
- package/dist/src/infra/update-check.js.map +1 -0
- package/dist/src/infra/update-runner.d.ts +18 -0
- package/dist/src/infra/update-runner.js +112 -0
- package/dist/src/infra/update-runner.js.map +1 -0
- package/dist/src/infra/update-startup.d.ts +20 -0
- package/dist/src/infra/update-startup.js +246 -0
- package/dist/src/infra/update-startup.js.map +1 -0
- package/dist/src/providers/extension-stream-bridge.d.ts +3 -0
- package/dist/src/providers/extension-stream-bridge.js +239 -0
- package/dist/src/providers/extension-stream-bridge.js.map +1 -0
- package/dist/src/providers/index.d.ts +7 -2
- package/dist/src/providers/index.js +77 -14
- package/dist/src/providers/index.js.map +1 -1
- package/dist/src/providers/model-registry.js +1 -1
- package/dist/src/providers/plugin-registry.js +92 -87
- package/dist/src/providers/plugin-registry.js.map +1 -1
- package/dist/src/routing/bindings.js +1 -1
- package/dist/src/routing/index.d.ts +1 -1
- package/dist/src/routing/index.js +2 -2
- package/dist/src/routing/index.js.map +1 -1
- package/dist/src/routing/resolve-route.js +1 -1
- package/dist/src/routing/session-key.d.ts +0 -5
- package/dist/src/routing/session-key.js +1 -27
- package/dist/src/routing/session-key.js.map +1 -1
- package/dist/src/session/chat-export.d.ts +5 -0
- package/dist/src/session/chat-export.js +35 -0
- package/dist/src/session/chat-export.js.map +1 -0
- package/dist/src/session/config-store.js +1 -1
- package/dist/src/session/manager.d.ts +1 -1
- package/dist/src/session/manager.js +2 -2
- package/dist/src/session/manager.js.map +1 -1
- package/dist/src/session/store.d.ts +1 -1
- package/dist/src/session/store.js +3 -7
- package/dist/src/session/store.js.map +1 -1
- package/dist/src/session/types.d.ts +0 -10
- package/dist/src/session/types.js.map +1 -1
- package/dist/src/utils/logger/audit.js +1 -1
- package/dist/src/utils/logger/log-store.js +1 -1
- package/dist/src/utils/logger/rotation.js +1 -1
- package/dist/src/voice/tts/audio.js +1 -1
- package/package.json +2 -2
- package/dist/gateway/static/root/assets/agents-B6s2BvpH.js.map +0 -1
- package/dist/gateway/static/root/assets/attachment-load-6pRlDPZ8.js +0 -1
- package/dist/gateway/static/root/assets/index-DBZ5eXW5.js +0 -16
- package/dist/gateway/static/root/assets/index-DBZ5eXW5.js.map +0 -1
- package/dist/gateway/static/root/assets/index-KsVMH-Jo.css +0 -2
- package/dist/gateway/static/root/assets/navigation-BpLKd2Ca.js +0 -2
- package/dist/gateway/static/root/assets/navigation-BpLKd2Ca.js.map +0 -1
- package/dist/gateway/static/root/assets/page-header-store-HcRZK5CZ.js +0 -2
- package/dist/gateway/static/root/assets/preference-select-fields-B4AJBqUY.js +0 -2
- package/dist/gateway/static/root/assets/preference-select-fields-B4AJBqUY.js.map +0 -1
- package/dist/gateway/static/root/assets/settings-page-BvSj0JqX.js +0 -2
- package/dist/gateway/static/root/assets/settings-page-BvSj0JqX.js.map +0 -1
- package/dist/gateway/static/root/assets/url-QmwQTJ-j.js +0 -2
- package/dist/gateway/static/root/assets/url-QmwQTJ-j.js.map +0 -1
- package/dist/src/acp/commands.d.ts +0 -11
- package/dist/src/acp/commands.js +0 -17
- package/dist/src/acp/commands.js.map +0 -1
- package/dist/src/acp/control-plane/identity-reconcile.d.ts +0 -36
- package/dist/src/acp/control-plane/identity-reconcile.js +0 -124
- package/dist/src/acp/control-plane/identity-reconcile.js.map +0 -1
- package/dist/src/acp/control-plane/index.d.ts +0 -10
- package/dist/src/acp/control-plane/index.js +0 -6
- package/dist/src/acp/control-plane/manager.d.ts +0 -86
- package/dist/src/acp/control-plane/manager.js +0 -502
- package/dist/src/acp/control-plane/manager.js.map +0 -1
- package/dist/src/acp/control-plane/manager.types.d.ts +0 -125
- package/dist/src/acp/control-plane/manager.types.js +0 -14
- package/dist/src/acp/control-plane/manager.types.js.map +0 -1
- package/dist/src/acp/control-plane/manager.utils.d.ts +0 -29
- package/dist/src/acp/control-plane/manager.utils.js +0 -46
- package/dist/src/acp/control-plane/manager.utils.js.map +0 -1
- package/dist/src/acp/control-plane/runtime-cache-manager.d.ts +0 -49
- package/dist/src/acp/control-plane/runtime-cache-manager.js +0 -155
- package/dist/src/acp/control-plane/runtime-cache-manager.js.map +0 -1
- package/dist/src/acp/control-plane/runtime-cache.d.ts +0 -45
- package/dist/src/acp/control-plane/runtime-cache.js +0 -58
- package/dist/src/acp/control-plane/runtime-cache.js.map +0 -1
- package/dist/src/acp/control-plane/runtime-options.d.ts +0 -30
- package/dist/src/acp/control-plane/runtime-options.js +0 -92
- package/dist/src/acp/control-plane/runtime-options.js.map +0 -1
- package/dist/src/acp/control-plane/session-actor-queue.d.ts +0 -22
- package/dist/src/acp/control-plane/session-actor-queue.js +0 -70
- package/dist/src/acp/control-plane/session-actor-queue.js.map +0 -1
- package/dist/src/acp/control-plane/session-lifecycle-manager.d.ts +0 -59
- package/dist/src/acp/control-plane/session-lifecycle-manager.js +0 -209
- package/dist/src/acp/control-plane/session-lifecycle-manager.js.map +0 -1
- package/dist/src/acp/control-plane/session-store.d.ts +0 -39
- package/dist/src/acp/control-plane/session-store.js +0 -149
- package/dist/src/acp/control-plane/session-store.js.map +0 -1
- package/dist/src/acp/control-plane/turn-manager.d.ts +0 -40
- package/dist/src/acp/control-plane/turn-manager.js +0 -134
- package/dist/src/acp/control-plane/turn-manager.js.map +0 -1
- package/dist/src/acp/event-mapper.d.ts +0 -48
- package/dist/src/acp/event-mapper.js +0 -94
- package/dist/src/acp/event-mapper.js.map +0 -1
- package/dist/src/acp/index.d.ts +0 -10
- package/dist/src/acp/index.js +0 -5
- package/dist/src/acp/meta.d.ts +0 -15
- package/dist/src/acp/meta.js +0 -36
- package/dist/src/acp/meta.js.map +0 -1
- package/dist/src/acp/routing-integration.d.ts +0 -37
- package/dist/src/acp/routing-integration.js +0 -58
- package/dist/src/acp/routing-integration.js.map +0 -1
- package/dist/src/acp/runtime/backends/index.d.ts +0 -4
- package/dist/src/acp/runtime/backends/index.js +0 -2
- package/dist/src/acp/runtime/backends/local.d.ts +0 -136
- package/dist/src/acp/runtime/backends/local.js +0 -603
- package/dist/src/acp/runtime/backends/local.js.map +0 -1
- package/dist/src/acp/runtime/error-text.d.ts +0 -16
- package/dist/src/acp/runtime/error-text.js +0 -40
- package/dist/src/acp/runtime/error-text.js.map +0 -1
- package/dist/src/acp/runtime/errors.d.ts +0 -31
- package/dist/src/acp/runtime/errors.js +0 -47
- package/dist/src/acp/runtime/errors.js.map +0 -1
- package/dist/src/acp/runtime/index.d.ts +0 -7
- package/dist/src/acp/runtime/index.js +0 -4
- package/dist/src/acp/runtime/registry.d.ts +0 -35
- package/dist/src/acp/runtime/registry.js +0 -85
- package/dist/src/acp/runtime/registry.js.map +0 -1
- package/dist/src/acp/runtime/session-identity.d.ts +0 -35
- package/dist/src/acp/runtime/session-identity.js +0 -134
- package/dist/src/acp/runtime/session-identity.js.map +0 -1
- package/dist/src/acp/runtime/types.d.ts +0 -214
- package/dist/src/acp/secret-file.d.ts +0 -7
- package/dist/src/acp/secret-file.js +0 -19
- package/dist/src/acp/secret-file.js.map +0 -1
- package/dist/src/acp/server.d.ts +0 -48
- package/dist/src/acp/server.js +0 -300
- package/dist/src/acp/server.js.map +0 -1
- package/dist/src/acp/session.d.ts +0 -29
- package/dist/src/acp/session.js +0 -30
- package/dist/src/acp/session.js.map +0 -1
- package/dist/src/acp/types.d.ts +0 -39
- package/dist/src/acp/types.js +0 -13
- package/dist/src/acp/types.js.map +0 -1
- package/dist/src/agent/image/describe-images.d.ts +0 -18
- package/dist/src/agent/image/describe-images.js +0 -19
- package/dist/src/agent/image/describe-images.js.map +0 -1
- package/dist/src/cli/commands/acp.d.ts +0 -4
- package/dist/src/cli/commands/acp.js +0 -200
- package/dist/src/cli/commands/acp.js.map +0 -1
- /package/dist/src/{acp/runtime/types.js → cli/commands/doctor/index.d.ts} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","names":[],"sources":["../../../src/acp/session.ts"],"sourcesContent":["/**\n * ACP Session Store\n * \n * Simple in-memory session store for ACP sessions.\n */\n\nimport type { SessionAcpMeta } from \"./runtime/types.js\";\n\nexport interface SessionEntry {\n sessionKey: string;\n acp?: SessionAcpMeta;\n}\n\n/**\n * Default in-memory ACP session store\n */\nexport class DefaultAcpSessionStore {\n private sessions = new Map<string, SessionEntry>();\n\n async get(sessionKey: string): Promise<SessionEntry | null> {\n return this.sessions.get(sessionKey) || null;\n }\n\n async set(sessionKey: string, entry: SessionEntry): Promise<void> {\n this.sessions.set(sessionKey, entry);\n }\n\n async delete(sessionKey: string): Promise<void> {\n this.sessions.delete(sessionKey);\n }\n\n async list(): Promise<SessionEntry[]> {\n return Array.from(this.sessions.values());\n }\n\n async clear(): Promise<void> {\n this.sessions.clear();\n }\n}\n\n/**\n * Default session store instance\n */\nexport const defaultAcpSessionStore = new DefaultAcpSessionStore();\n\n/**\n * AcpSessionStore interface\n */\nexport type AcpSessionStore = DefaultAcpSessionStore;\n"],"mappings":";;;;AAgBA,IAAa,yBAAb,MAAoC;CAClC,2BAAmB,IAAI,KAA2B;CAElD,MAAM,IAAI,YAAkD;AAC1D,SAAO,KAAK,SAAS,IAAI,WAAW,IAAI;;CAG1C,MAAM,IAAI,YAAoB,OAAoC;AAChE,OAAK,SAAS,IAAI,YAAY,MAAM;;CAGtC,MAAM,OAAO,YAAmC;AAC9C,OAAK,SAAS,OAAO,WAAW;;CAGlC,MAAM,OAAgC;AACpC,SAAO,MAAM,KAAK,KAAK,SAAS,QAAQ,CAAC;;CAG3C,MAAM,QAAuB;AAC3B,OAAK,SAAS,OAAO;;;;;;AAOzB,MAAa,yBAAyB,IAAI,wBAAwB"}
|
package/dist/src/acp/types.d.ts
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ACP Server Types
|
|
3
|
-
*/
|
|
4
|
-
import type { AcpSessionStore } from "./session.js";
|
|
5
|
-
/**
|
|
6
|
-
* ACP Provenance mode
|
|
7
|
-
*/
|
|
8
|
-
export type AcpProvenanceMode = "off" | "meta" | "meta+receipt";
|
|
9
|
-
/**
|
|
10
|
-
* ACP Server Options
|
|
11
|
-
*/
|
|
12
|
-
export interface AcpServerOptions {
|
|
13
|
-
/** Gateway WebSocket URL */
|
|
14
|
-
gatewayUrl?: string;
|
|
15
|
-
/** Gateway auth token */
|
|
16
|
-
gatewayToken?: string;
|
|
17
|
-
/** Gateway auth password */
|
|
18
|
-
gatewayPassword?: string;
|
|
19
|
-
/** Default session key */
|
|
20
|
-
defaultSessionKey?: string;
|
|
21
|
-
/** Default session label */
|
|
22
|
-
defaultSessionLabel?: string;
|
|
23
|
-
/** Require existing session */
|
|
24
|
-
requireExistingSession?: boolean;
|
|
25
|
-
/** Reset session before use */
|
|
26
|
-
resetSession?: boolean;
|
|
27
|
-
/** Prefix prompts with cwd */
|
|
28
|
-
prefixCwd?: boolean;
|
|
29
|
-
/** Provenance mode */
|
|
30
|
-
provenanceMode?: AcpProvenanceMode;
|
|
31
|
-
/** Verbose logging */
|
|
32
|
-
verbose?: boolean;
|
|
33
|
-
/** Custom session store */
|
|
34
|
-
sessionStore?: AcpSessionStore;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Normalize provenance mode from string
|
|
38
|
-
*/
|
|
39
|
-
export declare function normalizeAcpProvenanceMode(value?: string): AcpProvenanceMode | undefined;
|
package/dist/src/acp/types.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
//#region src/acp/types.ts
|
|
2
|
-
/**
|
|
3
|
-
* Normalize provenance mode from string
|
|
4
|
-
*/
|
|
5
|
-
function normalizeAcpProvenanceMode(value) {
|
|
6
|
-
if (!value) return;
|
|
7
|
-
const normalized = value.toLowerCase();
|
|
8
|
-
if (normalized === "off" || normalized === "meta" || normalized === "meta+receipt") return normalized;
|
|
9
|
-
}
|
|
10
|
-
//#endregion
|
|
11
|
-
export { normalizeAcpProvenanceMode };
|
|
12
|
-
|
|
13
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/acp/types.ts"],"sourcesContent":["/**\n * ACP Server Types\n */\n\nimport type { AcpSessionStore } from \"./session.js\";\n\n/**\n * ACP Provenance mode\n */\nexport type AcpProvenanceMode = \"off\" | \"meta\" | \"meta+receipt\";\n\n/**\n * ACP Server Options\n */\nexport interface AcpServerOptions {\n /** Gateway WebSocket URL */\n gatewayUrl?: string;\n /** Gateway auth token */\n gatewayToken?: string;\n /** Gateway auth password */\n gatewayPassword?: string;\n /** Default session key */\n defaultSessionKey?: string;\n /** Default session label */\n defaultSessionLabel?: string;\n /** Require existing session */\n requireExistingSession?: boolean;\n /** Reset session before use */\n resetSession?: boolean;\n /** Prefix prompts with cwd */\n prefixCwd?: boolean;\n /** Provenance mode */\n provenanceMode?: AcpProvenanceMode;\n /** Verbose logging */\n verbose?: boolean;\n /** Custom session store */\n sessionStore?: AcpSessionStore;\n}\n\n/**\n * Normalize provenance mode from string\n */\nexport function normalizeAcpProvenanceMode(value?: string): AcpProvenanceMode | undefined {\n if (!value) {\n return undefined;\n }\n \n const normalized = value.toLowerCase();\n if (normalized === \"off\" || normalized === \"meta\" || normalized === \"meta+receipt\") {\n return normalized;\n }\n return undefined;\n}\n"],"mappings":";;;;AA0CA,SAAgB,2BAA2B,OAA+C;AACxF,KAAI,CAAC,MACH;CAGF,MAAM,aAAa,MAAM,aAAa;AACtC,KAAI,eAAe,SAAS,eAAe,UAAU,eAAe,eAClE,QAAO"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @deprecated Prefer `describeImages` from `./understanding/runtime.js`.
|
|
3
|
-
*/
|
|
4
|
-
export declare function describeImagesWithPiAi(params: {
|
|
5
|
-
modelRef: string;
|
|
6
|
-
prompt: string;
|
|
7
|
-
images: Array<{
|
|
8
|
-
buffer: Buffer;
|
|
9
|
-
mimeType: string;
|
|
10
|
-
}>;
|
|
11
|
-
maxTokens?: number;
|
|
12
|
-
timeoutMs?: number;
|
|
13
|
-
signal?: AbortSignal;
|
|
14
|
-
}): Promise<{
|
|
15
|
-
text: string;
|
|
16
|
-
provider: string;
|
|
17
|
-
model: string;
|
|
18
|
-
}>;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { describeImages } from "./understanding/runtime.js";
|
|
2
|
-
//#region src/agent/image/describe-images.ts
|
|
3
|
-
/**
|
|
4
|
-
* @deprecated Prefer `describeImages` from `./understanding/runtime.js`.
|
|
5
|
-
*/
|
|
6
|
-
async function describeImagesWithPiAi(params) {
|
|
7
|
-
return describeImages({
|
|
8
|
-
modelRef: params.modelRef,
|
|
9
|
-
prompt: params.prompt,
|
|
10
|
-
images: params.images,
|
|
11
|
-
maxTokens: params.maxTokens,
|
|
12
|
-
timeoutMs: params.timeoutMs,
|
|
13
|
-
signal: params.signal
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
//#endregion
|
|
17
|
-
export { describeImagesWithPiAi };
|
|
18
|
-
|
|
19
|
-
//# sourceMappingURL=describe-images.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"describe-images.js","names":[],"sources":["../../../../src/agent/image/describe-images.ts"],"sourcesContent":["import { describeImages } from './understanding/runtime.js';\n\n/**\n * @deprecated Prefer `describeImages` from `./understanding/runtime.js`.\n */\nexport async function describeImagesWithPiAi(params: {\n modelRef: string;\n prompt: string;\n images: Array<{ buffer: Buffer; mimeType: string }>;\n maxTokens?: number;\n timeoutMs?: number;\n signal?: AbortSignal;\n}): Promise<{ text: string; provider: string; model: string }> {\n return describeImages({\n modelRef: params.modelRef,\n prompt: params.prompt,\n images: params.images,\n maxTokens: params.maxTokens,\n timeoutMs: params.timeoutMs,\n signal: params.signal,\n });\n}\n"],"mappings":";;;;;AAKA,eAAsB,uBAAuB,QAOkB;AAC7D,QAAO,eAAe;EACpB,UAAU,OAAO;EACjB,QAAQ,OAAO;EACf,QAAQ,OAAO;EACf,WAAW,OAAO;EAClB,WAAW,OAAO;EAClB,QAAQ,OAAO;EAChB,CAAC"}
|
|
@@ -1,200 +0,0 @@
|
|
|
1
|
-
import { AcpRuntimeError } from "../../acp/runtime/errors.js";
|
|
2
|
-
import { listAcpRuntimeBackends } from "../../acp/runtime/registry.js";
|
|
3
|
-
import { init_loader, loadConfig } from "../../config/loader.js";
|
|
4
|
-
import { getAcpSessionManager } from "../../acp/control-plane/manager.js";
|
|
5
|
-
import { formatExamples, register } from "../registry.js";
|
|
6
|
-
import { formatAcpErrorText } from "../../acp/runtime/error-text.js";
|
|
7
|
-
import { Command } from "commander";
|
|
8
|
-
//#region src/cli/commands/acp.ts
|
|
9
|
-
/**
|
|
10
|
-
* ACP CLI Commands
|
|
11
|
-
*/
|
|
12
|
-
init_loader();
|
|
13
|
-
/** Format error for CLI output */
|
|
14
|
-
function formatCliError(error) {
|
|
15
|
-
if (error instanceof AcpRuntimeError) return formatAcpErrorText(error);
|
|
16
|
-
if (error instanceof Error) return error.message;
|
|
17
|
-
return String(error);
|
|
18
|
-
}
|
|
19
|
-
function createAcpCommand(_ctx) {
|
|
20
|
-
const acpCmd = new Command("acp").description("ACP runtime management").addHelpText("after", formatExamples([
|
|
21
|
-
"xopc acp status # Show ACP runtime status",
|
|
22
|
-
"xopc acp status -s <session> # Show specific session status",
|
|
23
|
-
"xopc acp doctor # Run ACP diagnostics",
|
|
24
|
-
"xopc acp set-mode <mode> -s <session> # Set runtime mode",
|
|
25
|
-
"xopc acp set-config <key> <value> -s <session> # Set config option",
|
|
26
|
-
"xopc acp list # List ACP sessions",
|
|
27
|
-
"xopc acp close -s <session> # Close ACP session",
|
|
28
|
-
"xopc acp cancel -s <session> # Cancel active turn"
|
|
29
|
-
]));
|
|
30
|
-
acpCmd.command("status").description("Show ACP runtime status").option("-s, --session <key>", "Session key").option("-j, --json", "Output as JSON").action(async (options) => {
|
|
31
|
-
try {
|
|
32
|
-
const cfg = loadConfig();
|
|
33
|
-
const manager = getAcpSessionManager();
|
|
34
|
-
if (options.session) {
|
|
35
|
-
const status = await manager.getSessionStatus({
|
|
36
|
-
cfg,
|
|
37
|
-
sessionKey: options.session
|
|
38
|
-
});
|
|
39
|
-
if (options.json) console.log(JSON.stringify(status, null, 2));
|
|
40
|
-
else {
|
|
41
|
-
console.log(`\n📋 ACP Session Status: ${status.sessionKey}`);
|
|
42
|
-
console.log(` Backend: ${status.backend}`);
|
|
43
|
-
console.log(` Agent: ${status.agent}`);
|
|
44
|
-
console.log(` Mode: ${status.mode}`);
|
|
45
|
-
console.log(` State: ${status.state}`);
|
|
46
|
-
if (status.lastError) console.log(` Last Error: ${status.lastError}`);
|
|
47
|
-
if (status.runtimeStatus?.summary) console.log(` Runtime: ${status.runtimeStatus.summary}`);
|
|
48
|
-
}
|
|
49
|
-
} else {
|
|
50
|
-
const snapshot = manager.getObservabilitySnapshot(cfg);
|
|
51
|
-
const backends = listAcpRuntimeBackends();
|
|
52
|
-
if (options.json) console.log(JSON.stringify({
|
|
53
|
-
snapshot,
|
|
54
|
-
backends
|
|
55
|
-
}, null, 2));
|
|
56
|
-
else {
|
|
57
|
-
console.log("\n📊 ACP Runtime Status\n");
|
|
58
|
-
console.log("Backends:");
|
|
59
|
-
if (backends.length === 0) console.log(" (none registered)");
|
|
60
|
-
else for (const backend of backends) console.log(` - ${backend.id}`);
|
|
61
|
-
console.log("\nRuntime Cache:");
|
|
62
|
-
console.log(` Active Sessions: ${snapshot.runtimeCache.activeSessions}`);
|
|
63
|
-
console.log(` Evicted Total: ${snapshot.runtimeCache.evictedTotal}`);
|
|
64
|
-
console.log("\nTurns:");
|
|
65
|
-
console.log(` Active: ${snapshot.turns.active}`);
|
|
66
|
-
console.log(` Completed: ${snapshot.turns.completed}`);
|
|
67
|
-
console.log(` Failed: ${snapshot.turns.failed}`);
|
|
68
|
-
console.log(` Avg Latency: ${snapshot.turns.averageLatencyMs}ms`);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
} catch (error) {
|
|
72
|
-
console.error(`❌ ${formatCliError(error)}`);
|
|
73
|
-
process.exit(1);
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
acpCmd.command("doctor").description("Run ACP diagnostics").action(async () => {
|
|
77
|
-
console.log("\n🔍 ACP Diagnostics\n");
|
|
78
|
-
const backends = listAcpRuntimeBackends();
|
|
79
|
-
if (backends.length === 0) {
|
|
80
|
-
console.log("❌ No ACP runtime backends registered.");
|
|
81
|
-
console.log("\nTo use ACP, you need to:");
|
|
82
|
-
console.log(" 1. Install an ACP runtime (e.g., acpx)");
|
|
83
|
-
console.log(" 2. Configure it in your config file");
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
for (const backend of backends) {
|
|
87
|
-
console.log(`\nBackend: ${backend.id}`);
|
|
88
|
-
if (backend.runtime.doctor) {
|
|
89
|
-
const report = await backend.runtime.doctor();
|
|
90
|
-
if (report.ok) console.log(` ✅ ${report.message}`);
|
|
91
|
-
else {
|
|
92
|
-
console.log(` ❌ ${report.message}`);
|
|
93
|
-
if (report.installCommand) console.log(` Install: ${report.installCommand}`);
|
|
94
|
-
}
|
|
95
|
-
} else console.log(" ⚠️ Doctor not implemented");
|
|
96
|
-
}
|
|
97
|
-
});
|
|
98
|
-
acpCmd.command("set-mode <mode>").description("Set ACP session runtime mode").requiredOption("-s, --session <key>", "Session key").action(async (mode, options) => {
|
|
99
|
-
try {
|
|
100
|
-
const cfg = loadConfig();
|
|
101
|
-
const result = await getAcpSessionManager().setSessionRuntimeMode({
|
|
102
|
-
cfg,
|
|
103
|
-
sessionKey: options.session,
|
|
104
|
-
runtimeMode: mode
|
|
105
|
-
});
|
|
106
|
-
console.log(`✅ Runtime mode set to: ${mode}`);
|
|
107
|
-
console.log(` Session: ${options.session}`);
|
|
108
|
-
console.log(` Options: ${JSON.stringify(result)}`);
|
|
109
|
-
} catch (error) {
|
|
110
|
-
console.error(`❌ ${formatCliError(error)}`);
|
|
111
|
-
process.exit(1);
|
|
112
|
-
}
|
|
113
|
-
});
|
|
114
|
-
acpCmd.command("set-config <key> <value>").description("Set ACP session config option").requiredOption("-s, --session <key>", "Session key").action(async (key, value, options) => {
|
|
115
|
-
try {
|
|
116
|
-
const cfg = loadConfig();
|
|
117
|
-
const result = await getAcpSessionManager().setSessionConfigOption({
|
|
118
|
-
cfg,
|
|
119
|
-
sessionKey: options.session,
|
|
120
|
-
key,
|
|
121
|
-
value
|
|
122
|
-
});
|
|
123
|
-
console.log(`✅ Config option set: ${key}=${value}`);
|
|
124
|
-
console.log(` Session: ${options.session}`);
|
|
125
|
-
console.log(` Options: ${JSON.stringify(result)}`);
|
|
126
|
-
} catch (error) {
|
|
127
|
-
console.error(`❌ ${formatCliError(error)}`);
|
|
128
|
-
process.exit(1);
|
|
129
|
-
}
|
|
130
|
-
});
|
|
131
|
-
acpCmd.command("list").description("List ACP sessions").option("-j, --json", "Output as JSON").action(async (options) => {
|
|
132
|
-
try {
|
|
133
|
-
const cfg = loadConfig();
|
|
134
|
-
const snapshot = getAcpSessionManager().getObservabilitySnapshot(cfg);
|
|
135
|
-
if (options.json) console.log(JSON.stringify(snapshot, null, 2));
|
|
136
|
-
else {
|
|
137
|
-
console.log("\n📋 ACP Sessions\n");
|
|
138
|
-
console.log(`Active Sessions: ${snapshot.runtimeCache.activeSessions}`);
|
|
139
|
-
console.log(`Active Turns: ${snapshot.turns.active}`);
|
|
140
|
-
console.log(`Queue Depth: ${snapshot.turns.queueDepth}`);
|
|
141
|
-
}
|
|
142
|
-
} catch (error) {
|
|
143
|
-
console.error(`❌ ${formatCliError(error)}`);
|
|
144
|
-
process.exit(1);
|
|
145
|
-
}
|
|
146
|
-
});
|
|
147
|
-
acpCmd.command("close").description("Close ACP session").requiredOption("-s, --session <key>", "Session key").option("--clear-meta", "Clear session metadata").option("--force", "Force close even if backend unavailable").action(async (options) => {
|
|
148
|
-
try {
|
|
149
|
-
const cfg = loadConfig();
|
|
150
|
-
const result = await getAcpSessionManager().closeSession({
|
|
151
|
-
cfg,
|
|
152
|
-
sessionKey: options.session,
|
|
153
|
-
reason: "cli-close",
|
|
154
|
-
clearMeta: options.clearMeta,
|
|
155
|
-
allowBackendUnavailable: options.force
|
|
156
|
-
});
|
|
157
|
-
console.log(`✅ Session closed: ${options.session}`);
|
|
158
|
-
console.log(` Runtime Closed: ${result.runtimeClosed}`);
|
|
159
|
-
console.log(` Meta Cleared: ${result.metaCleared}`);
|
|
160
|
-
if (result.runtimeNotice) console.log(` Note: ${result.runtimeNotice}`);
|
|
161
|
-
} catch (error) {
|
|
162
|
-
console.error(`❌ ${formatCliError(error)}`);
|
|
163
|
-
process.exit(1);
|
|
164
|
-
}
|
|
165
|
-
});
|
|
166
|
-
acpCmd.command("cancel").description("Cancel active ACP session turn").requiredOption("-s, --session <key>", "Session key").option("-r, --reason <reason>", "Cancel reason", "user-cancel").action(async (options) => {
|
|
167
|
-
try {
|
|
168
|
-
const cfg = loadConfig();
|
|
169
|
-
await getAcpSessionManager().cancelSession({
|
|
170
|
-
cfg,
|
|
171
|
-
sessionKey: options.session,
|
|
172
|
-
reason: options.reason
|
|
173
|
-
});
|
|
174
|
-
console.log(`✅ Session cancelled: ${options.session}`);
|
|
175
|
-
} catch (error) {
|
|
176
|
-
console.error(`❌ ${formatCliError(error)}`);
|
|
177
|
-
process.exit(1);
|
|
178
|
-
}
|
|
179
|
-
});
|
|
180
|
-
acpCmd.command("serve").description("Start ACP server for IDE integration").option("-s, --session <key>", "Default session key").option("-l, --session-label <label>", "Default session label").option("--require-existing", "Fail if session does not exist").option("--reset-session", "Reset session before use").option("-v, --verbose", "Verbose logging").action(async (_options) => {
|
|
181
|
-
try {
|
|
182
|
-
await import("../../acp/server.js");
|
|
183
|
-
} catch (error) {
|
|
184
|
-
console.error(`❌ ${formatCliError(error)}`);
|
|
185
|
-
process.exit(1);
|
|
186
|
-
}
|
|
187
|
-
});
|
|
188
|
-
return acpCmd;
|
|
189
|
-
}
|
|
190
|
-
register({
|
|
191
|
-
id: "acp",
|
|
192
|
-
name: "acp",
|
|
193
|
-
description: "ACP runtime management",
|
|
194
|
-
factory: createAcpCommand,
|
|
195
|
-
metadata: { category: "runtime" }
|
|
196
|
-
});
|
|
197
|
-
//#endregion
|
|
198
|
-
export {};
|
|
199
|
-
|
|
200
|
-
//# sourceMappingURL=acp.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"acp.js","names":[],"sources":["../../../../src/cli/commands/acp.ts"],"sourcesContent":["/**\n * ACP CLI Commands\n */\n\nimport { Command } from \"commander\";\nimport { register, formatExamples, type CLIContext } from \"../registry.js\";\nimport { getAcpSessionManager } from \"../../acp/control-plane/manager.js\";\nimport { listAcpRuntimeBackends } from \"../../acp/runtime/registry.js\";\nimport { formatAcpErrorText } from \"../../acp/runtime/error-text.js\";\nimport { AcpRuntimeError } from \"../../acp/runtime/errors.js\";\nimport { loadConfig } from \"../../config/loader.js\";\n/** Format error for CLI output */\nfunction formatCliError(error: unknown): string {\n if (error instanceof AcpRuntimeError) {\n return formatAcpErrorText(error);\n }\n if (error instanceof Error) {\n return error.message;\n }\n return String(error);\n}\n\nfunction createAcpCommand(_ctx: CLIContext): Command {\n const acpCmd = new Command(\"acp\")\n .description(\"ACP runtime management\")\n .addHelpText(\n \"after\",\n formatExamples([\n \"xopc acp status # Show ACP runtime status\",\n \"xopc acp status -s <session> # Show specific session status\",\n \"xopc acp doctor # Run ACP diagnostics\",\n \"xopc acp set-mode <mode> -s <session> # Set runtime mode\",\n \"xopc acp set-config <key> <value> -s <session> # Set config option\",\n \"xopc acp list # List ACP sessions\",\n \"xopc acp close -s <session> # Close ACP session\",\n \"xopc acp cancel -s <session> # Cancel active turn\",\n ])\n );\n\n // acp status\n acpCmd\n .command(\"status\")\n .description(\"Show ACP runtime status\")\n .option(\"-s, --session <key>\", \"Session key\")\n .option(\"-j, --json\", \"Output as JSON\")\n .action(async (options) => {\n try {\n const cfg = loadConfig();\n const manager = getAcpSessionManager();\n\n if (options.session) {\n const status = await manager.getSessionStatus({\n cfg,\n sessionKey: options.session,\n });\n\n if (options.json) {\n console.log(JSON.stringify(status, null, 2));\n } else {\n console.log(`\\n📋 ACP Session Status: ${status.sessionKey}`);\n console.log(` Backend: ${status.backend}`);\n console.log(` Agent: ${status.agent}`);\n console.log(` Mode: ${status.mode}`);\n console.log(` State: ${status.state}`);\n if (status.lastError) {\n console.log(` Last Error: ${status.lastError}`);\n }\n if (status.runtimeStatus?.summary) {\n console.log(` Runtime: ${status.runtimeStatus.summary}`);\n }\n }\n } else {\n const snapshot = manager.getObservabilitySnapshot(cfg);\n const backends = listAcpRuntimeBackends();\n\n if (options.json) {\n console.log(JSON.stringify({ snapshot, backends }, null, 2));\n } else {\n console.log(\"\\n📊 ACP Runtime Status\\n\");\n console.log(\"Backends:\");\n if (backends.length === 0) {\n console.log(\" (none registered)\");\n } else {\n for (const backend of backends) {\n console.log(` - ${backend.id}`);\n }\n }\n console.log(\"\\nRuntime Cache:\");\n console.log(` Active Sessions: ${snapshot.runtimeCache.activeSessions}`);\n console.log(` Evicted Total: ${snapshot.runtimeCache.evictedTotal}`);\n console.log(\"\\nTurns:\");\n console.log(` Active: ${snapshot.turns.active}`);\n console.log(` Completed: ${snapshot.turns.completed}`);\n console.log(` Failed: ${snapshot.turns.failed}`);\n console.log(` Avg Latency: ${snapshot.turns.averageLatencyMs}ms`);\n }\n }\n } catch (error) {\n console.error(`❌ ${formatCliError(error)}`);\n process.exit(1);\n }\n });\n\n // acp doctor\n acpCmd\n .command(\"doctor\")\n .description(\"Run ACP diagnostics\")\n .action(async () => {\n console.log(\"\\n🔍 ACP Diagnostics\\n\");\n\n const backends = listAcpRuntimeBackends();\n if (backends.length === 0) {\n console.log(\"❌ No ACP runtime backends registered.\");\n console.log(\"\\nTo use ACP, you need to:\");\n console.log(\" 1. Install an ACP runtime (e.g., acpx)\");\n console.log(\" 2. Configure it in your config file\");\n return;\n }\n\n for (const backend of backends) {\n console.log(`\\nBackend: ${backend.id}`);\n if (backend.runtime.doctor) {\n const report = await backend.runtime.doctor();\n if (report.ok) {\n console.log(` ✅ ${report.message}`);\n } else {\n console.log(` ❌ ${report.message}`);\n if (report.installCommand) {\n console.log(` Install: ${report.installCommand}`);\n }\n }\n } else {\n console.log(\" ⚠️ Doctor not implemented\");\n }\n }\n });\n\n // acp set-mode\n acpCmd\n .command(\"set-mode <mode>\")\n .description(\"Set ACP session runtime mode\")\n .requiredOption(\"-s, --session <key>\", \"Session key\")\n .action(async (mode, options) => {\n try {\n const cfg = loadConfig();\n const manager = getAcpSessionManager();\n\n const result = await manager.setSessionRuntimeMode({\n cfg,\n sessionKey: options.session,\n runtimeMode: mode,\n });\n\n console.log(`✅ Runtime mode set to: ${mode}`);\n console.log(` Session: ${options.session}`);\n console.log(` Options: ${JSON.stringify(result)}`);\n } catch (error) {\n console.error(`❌ ${formatCliError(error)}`);\n process.exit(1);\n }\n });\n\n // acp set-config\n acpCmd\n .command(\"set-config <key> <value>\")\n .description(\"Set ACP session config option\")\n .requiredOption(\"-s, --session <key>\", \"Session key\")\n .action(async (key, value, options) => {\n try {\n const cfg = loadConfig();\n const manager = getAcpSessionManager();\n\n const result = await manager.setSessionConfigOption({\n cfg,\n sessionKey: options.session,\n key,\n value,\n });\n\n console.log(`✅ Config option set: ${key}=${value}`);\n console.log(` Session: ${options.session}`);\n console.log(` Options: ${JSON.stringify(result)}`);\n } catch (error) {\n console.error(`❌ ${formatCliError(error)}`);\n process.exit(1);\n }\n });\n\n // acp list\n acpCmd\n .command(\"list\")\n .description(\"List ACP sessions\")\n .option(\"-j, --json\", \"Output as JSON\")\n .action(async (options) => {\n try {\n const cfg = loadConfig();\n const manager = getAcpSessionManager();\n const snapshot = manager.getObservabilitySnapshot(cfg);\n\n if (options.json) {\n console.log(JSON.stringify(snapshot, null, 2));\n } else {\n console.log(\"\\n📋 ACP Sessions\\n\");\n console.log(`Active Sessions: ${snapshot.runtimeCache.activeSessions}`);\n console.log(`Active Turns: ${snapshot.turns.active}`);\n console.log(`Queue Depth: ${snapshot.turns.queueDepth}`);\n }\n } catch (error) {\n console.error(`❌ ${formatCliError(error)}`);\n process.exit(1);\n }\n });\n\n // acp close\n acpCmd\n .command(\"close\")\n .description(\"Close ACP session\")\n .requiredOption(\"-s, --session <key>\", \"Session key\")\n .option(\"--clear-meta\", \"Clear session metadata\")\n .option(\"--force\", \"Force close even if backend unavailable\")\n .action(async (options) => {\n try {\n const cfg = loadConfig();\n const manager = getAcpSessionManager();\n\n const result = await manager.closeSession({\n cfg,\n sessionKey: options.session,\n reason: \"cli-close\",\n clearMeta: options.clearMeta,\n allowBackendUnavailable: options.force,\n });\n\n console.log(`✅ Session closed: ${options.session}`);\n console.log(` Runtime Closed: ${result.runtimeClosed}`);\n console.log(` Meta Cleared: ${result.metaCleared}`);\n if (result.runtimeNotice) {\n console.log(` Note: ${result.runtimeNotice}`);\n }\n } catch (error) {\n console.error(`❌ ${formatCliError(error)}`);\n process.exit(1);\n }\n });\n\n // acp cancel\n acpCmd\n .command(\"cancel\")\n .description(\"Cancel active ACP session turn\")\n .requiredOption(\"-s, --session <key>\", \"Session key\")\n .option(\"-r, --reason <reason>\", \"Cancel reason\", \"user-cancel\")\n .action(async (options) => {\n try {\n const cfg = loadConfig();\n const manager = getAcpSessionManager();\n\n await manager.cancelSession({\n cfg,\n sessionKey: options.session,\n reason: options.reason,\n });\n\n console.log(`✅ Session cancelled: ${options.session}`);\n } catch (error) {\n console.error(`❌ ${formatCliError(error)}`);\n process.exit(1);\n }\n });\n\n // acp serve\n acpCmd\n .command(\"serve\")\n .description(\"Start ACP server for IDE integration\")\n .option(\"-s, --session <key>\", \"Default session key\")\n .option(\"-l, --session-label <label>\", \"Default session label\")\n .option(\"--require-existing\", \"Fail if session does not exist\")\n .option(\"--reset-session\", \"Reset session before use\")\n .option(\"-v, --verbose\", \"Verbose logging\")\n .action(async (_options) => {\n try {\n // Dynamic import to start the ACP server\n // The main function starts the server - it's an infinite loop\n // We just need to import it to run it\n await import(\"../../acp/server.js\");\n } catch (error) {\n console.error(`❌ ${formatCliError(error)}`);\n process.exit(1);\n }\n });\n\n return acpCmd;\n}\n\n// Register the command\nregister({\n id: \"acp\",\n name: \"acp\",\n description: \"ACP runtime management\",\n factory: createAcpCommand,\n metadata: {\n category: \"runtime\",\n },\n});"],"mappings":"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"}
|
|
File without changes
|