@ganglion/xacpx 0.17.0-beta.7 → 0.17.0-beta.8
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 +1 -0
- package/dist/adapters/adapter-catalog.d.ts +25 -0
- package/dist/adapters/adapter-registry.d.ts +18 -0
- package/dist/bridge/bridge-main.js +44 -0
- package/dist/cli.js +779 -97
- package/dist/config/config-store.d.ts +3 -0
- package/dist/config/resolve-agent-command.d.ts +8 -3
- package/dist/config/types.d.ts +7 -0
- package/dist/i18n/types.d.ts +20 -0
- package/dist/plugin-api.js +44 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -124,6 +124,7 @@ The essentials to get going. Full references: **CLI → [cli-reference.md](./doc
|
|
|
124
124
|
| `xacpx login` / `logout` | Log in / out of WeChat |
|
|
125
125
|
| `xacpx start` / `stop` / `restart` / `status` | Manage the background service |
|
|
126
126
|
| `xacpx update` | Update xacpx and installed plugins |
|
|
127
|
+
| `xacpx adapter list` / `update <name>` / `registry` | Manage verified Codex/Claude ACP adapter pins and their npm registry |
|
|
127
128
|
| `xacpx doctor` | Run environment diagnostics |
|
|
128
129
|
| `xacpx channel add <name>` | Add a message channel (Feishu / Yuanbao / …) |
|
|
129
130
|
| `xacpx ws add` / `xacpx agent add <name>` | Register a workspace / agent |
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export declare const MANAGED_ADAPTERS: {
|
|
2
|
+
readonly codex: {
|
|
3
|
+
readonly packageName: "@agentclientprotocol/codex-acp";
|
|
4
|
+
readonly binName: "codex-acp";
|
|
5
|
+
readonly defaultVersion: "1.1.4";
|
|
6
|
+
};
|
|
7
|
+
readonly claude: {
|
|
8
|
+
readonly packageName: "@agentclientprotocol/claude-agent-acp";
|
|
9
|
+
readonly binName: "claude-agent-acp";
|
|
10
|
+
readonly defaultVersion: "0.59.0";
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
export type ManagedAdapterId = keyof typeof MANAGED_ADAPTERS;
|
|
14
|
+
export type AdapterVersionOverrides = Partial<Record<ManagedAdapterId, string>>;
|
|
15
|
+
export declare function isManagedAdapterId(value: string): value is ManagedAdapterId;
|
|
16
|
+
export declare function listManagedAdapterIds(): ManagedAdapterId[];
|
|
17
|
+
export declare function isExactAdapterVersion(value: string): boolean;
|
|
18
|
+
export declare function effectiveAdapterVersion(id: ManagedAdapterId, overrides: AdapterVersionOverrides | undefined): string;
|
|
19
|
+
export declare function buildManagedAdapterCommand(id: ManagedAdapterId, version: string, registry?: string): string;
|
|
20
|
+
export declare function resolveManagedAdapterCommand(driver: string, overrides?: AdapterVersionOverrides, registry?: string): string | undefined;
|
|
21
|
+
export declare function isManagedAdapterCommand(driver: string, command: string | undefined): boolean;
|
|
22
|
+
export declare function managedAdapterRegistryFromCommand(command: string | undefined): string | undefined;
|
|
23
|
+
/** A recorded generated command is derived state, so a newer configured/default
|
|
24
|
+
* version replaces it. Truly custom commands remain sticky for session identity. */
|
|
25
|
+
export declare function preferCurrentManagedAdapterCommand(driver: string, recorded: string | undefined, current: string | undefined): string | undefined;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare const DEFAULT_ADAPTER_REGISTRY = "https://registry.npmjs.org/";
|
|
2
|
+
export declare class AdapterRegistryPackageNotFoundError extends Error {
|
|
3
|
+
readonly registry: string;
|
|
4
|
+
readonly code = "E404";
|
|
5
|
+
constructor(registry: string);
|
|
6
|
+
}
|
|
7
|
+
/** Validates and canonicalizes a registry URL before it reaches config or argv. */
|
|
8
|
+
export declare function normalizeAdapterRegistry(value: string): string;
|
|
9
|
+
export declare function effectiveAdapterRegistry(configured: string | undefined): string;
|
|
10
|
+
/** npm chooses a scope-specific registry over the generic registry, so both
|
|
11
|
+
* flags are required to override company .npmrc files deterministically. */
|
|
12
|
+
export declare function adapterRegistryNpmArgs(registry: string): string[];
|
|
13
|
+
export declare function adapterRegistryE404Guidance(registry: string): string;
|
|
14
|
+
export declare function isAdapterRegistryNotFoundOutput(output: string): boolean;
|
|
15
|
+
/** Runtime errors can also contain API/model 404s. Only classify them as an
|
|
16
|
+
* adapter registry failure when npm itself is present in the diagnostic. */
|
|
17
|
+
export declare function isNpmAdapterRegistryNotFoundOutput(output: string): boolean;
|
|
18
|
+
export declare function describeAdapterRegistryError(error: unknown): string;
|
|
@@ -1194,6 +1194,7 @@ Help: /help ssn`,
|
|
|
1194
1194
|
var recovery;
|
|
1195
1195
|
var init_recovery = __esm(() => {
|
|
1196
1196
|
recovery = {
|
|
1197
|
+
adapterRegistryE404: (registry, officialRegistry) => `npm registry ${registry} returned E404 for the managed adapter. Run \`xacpx adapter registry set ${officialRegistry}\` and \`xacpx restart\`, or ask your registry administrator to proxy/allowlist the @agentclientprotocol scope.`,
|
|
1197
1198
|
transientSessionFailed: "The scheduled task's temporary session failed to start; this run was not executed.",
|
|
1198
1199
|
transientSessionHint: "Temporary sessions are created automatically at run time — no manual action needed. To reschedule, use /lt.",
|
|
1199
1200
|
sessionUnavailable: (alias) => `Current session "${alias}" is temporarily unavailable.`,
|
|
@@ -1705,6 +1706,8 @@ var init_cli = __esm(() => {
|
|
|
1705
1706
|
"xacpx doctor - Run diagnostics",
|
|
1706
1707
|
"xacpx version - Show version",
|
|
1707
1708
|
"xacpx agent|agents list|add|rm|templates - Manage local agents",
|
|
1709
|
+
"xacpx adapter list|check [name]|update (<name>|--all)|set <name> <version>|reset <name> - Manage ACP adapter versions",
|
|
1710
|
+
"xacpx adapter registry [set <url>|reset] - Manage the ACP adapter npm registry",
|
|
1708
1711
|
"xacpx workspace list|add [name] [--raw]|rm <name> - Manage local workspaces (alias: ws)",
|
|
1709
1712
|
"xacpx later|lt list|cancel <id> - Manage local scheduled tasks",
|
|
1710
1713
|
"xacpx mcp-stdio [--coordinator-session <session>] [--source-handle <handle>] [--workspace <name>] - Start MCP stdio server"
|
|
@@ -1745,6 +1748,25 @@ var init_cli = __esm(() => {
|
|
|
1745
1748
|
agentSaved: (name) => `Agent "${name}" saved`,
|
|
1746
1749
|
agentNotFound: (name) => `Agent "${name}" not found.`,
|
|
1747
1750
|
agentRemoved: (name) => `Agent "${name}" removed`,
|
|
1751
|
+
adapterListHeader: "Managed ACP adapters:",
|
|
1752
|
+
adapterListRow: (id, effective, defaultVersion, source) => `${id}: effective=${effective} default=${defaultVersion} source=${source}`,
|
|
1753
|
+
adapterSourceDefault: "xacpx-default",
|
|
1754
|
+
adapterSourceConfigured: "configured",
|
|
1755
|
+
adapterUnsupported: (id) => `Unsupported managed adapter "${id}". Available: codex, claude`,
|
|
1756
|
+
adapterInvalidVersion: (version) => `Adapter version must be an exact semver value: ${version}`,
|
|
1757
|
+
adapterVersionUnavailable: (id, version) => `${id} adapter version ${version} is not published by npm.`,
|
|
1758
|
+
adapterLatestUnavailable: (id) => `Could not resolve the latest ${id} adapter version from npm.`,
|
|
1759
|
+
adapterCheckRow: (id, effective, latest) => `${id}: effective=${effective} latest=${latest}`,
|
|
1760
|
+
adapterAlreadyLatest: (id, version) => `${id} already uses the latest adapter version ${version}.`,
|
|
1761
|
+
adapterVerifying: (id, version) => `Verifying ${id} adapter ${version} with ACP initialize...`,
|
|
1762
|
+
adapterSaved: (id, version) => `${id} adapter version set to ${version}.`,
|
|
1763
|
+
adapterReset: (id, version) => `${id} adapter override removed; effective version is ${version}.`,
|
|
1764
|
+
adapterFailed: (id, detail) => `Failed to update ${id} adapter: ${detail}`,
|
|
1765
|
+
adapterRestartRequired: "Restart the xacpx daemon before using the new adapter settings.",
|
|
1766
|
+
adapterRegistryCurrent: (registry, source) => `Adapter registry: ${registry} (source=${source})`,
|
|
1767
|
+
adapterRegistrySaved: (registry) => `Adapter registry set to ${registry}.`,
|
|
1768
|
+
adapterRegistryReset: (registry) => `Adapter registry override removed; using ${registry}.`,
|
|
1769
|
+
adapterInvalidRegistry: (detail) => `Invalid adapter registry: ${detail}`,
|
|
1748
1770
|
laterIdEmpty: "Scheduled task ID cannot be empty.",
|
|
1749
1771
|
laterNotFound: (id) => `Pending scheduled task #${id} not found.`,
|
|
1750
1772
|
laterNotFoundHint: "Run xacpx later list to see current pending tasks.",
|
|
@@ -2291,6 +2313,7 @@ var init_native_session2 = __esm(() => {
|
|
|
2291
2313
|
var recovery2;
|
|
2292
2314
|
var init_recovery2 = __esm(() => {
|
|
2293
2315
|
recovery2 = {
|
|
2316
|
+
adapterRegistryE404: (registry, officialRegistry) => `npm registry ${registry} 返回了 managed adapter E404。请执行 \`xacpx adapter registry set ${officialRegistry}\` 和 \`xacpx restart\`,或让私源管理员代理/放行 @agentclientprotocol scope。`,
|
|
2294
2317
|
transientSessionFailed: "定时任务的临时会话启动失败,本次任务未能执行。",
|
|
2295
2318
|
transientSessionHint: "临时会话由系统在执行时自动创建,无需手动操作;如需重排,请用 /lt 重新安排。",
|
|
2296
2319
|
sessionUnavailable: (alias) => `当前会话「${alias}」暂时不可用。`,
|
|
@@ -2802,6 +2825,8 @@ var init_cli2 = __esm(() => {
|
|
|
2802
2825
|
"xacpx doctor - 运行诊断",
|
|
2803
2826
|
"xacpx version - 查看版本",
|
|
2804
2827
|
"xacpx agent|agents list|add|rm|templates - 管理本机 Agent",
|
|
2828
|
+
"xacpx adapter list|check [name]|update (<name>|--all)|set <name> <version>|reset <name> - 管理 ACP adapter 版本",
|
|
2829
|
+
"xacpx adapter registry [set <url>|reset] - 管理 ACP adapter npm registry",
|
|
2805
2830
|
"xacpx workspace list|add [name] [--raw]|rm <name> - 管理本机工作区(别名:ws)",
|
|
2806
2831
|
"xacpx later|lt list|cancel <id> - 管理本机待执行定时任务",
|
|
2807
2832
|
"xacpx mcp-stdio [--coordinator-session <session>] [--source-handle <handle>] [--workspace <name>] - 启动 MCP stdio 服务"
|
|
@@ -2842,6 +2867,25 @@ var init_cli2 = __esm(() => {
|
|
|
2842
2867
|
agentSaved: (name) => `Agent「${name}」已保存`,
|
|
2843
2868
|
agentNotFound: (name) => `没有找到 Agent「${name}」。`,
|
|
2844
2869
|
agentRemoved: (name) => `Agent「${name}」已删除`,
|
|
2870
|
+
adapterListHeader: "受管 ACP adapter:",
|
|
2871
|
+
adapterListRow: (id, effective, defaultVersion, source) => `${id}:生效=${effective} 默认=${defaultVersion} 来源=${source}`,
|
|
2872
|
+
adapterSourceDefault: "xacpx 默认",
|
|
2873
|
+
adapterSourceConfigured: "本机配置",
|
|
2874
|
+
adapterUnsupported: (id) => `不支持受管 adapter「${id}」。可用:codex、claude`,
|
|
2875
|
+
adapterInvalidVersion: (version) => `Adapter 版本必须是精确 semver:${version}`,
|
|
2876
|
+
adapterVersionUnavailable: (id, version) => `npm 未发布 ${id} adapter 版本 ${version}。`,
|
|
2877
|
+
adapterLatestUnavailable: (id) => `无法从 npm 获取 ${id} adapter 的最新版本。`,
|
|
2878
|
+
adapterCheckRow: (id, effective, latest) => `${id}:生效=${effective} 最新=${latest}`,
|
|
2879
|
+
adapterAlreadyLatest: (id, version) => `${id} 已使用最新 adapter 版本 ${version}。`,
|
|
2880
|
+
adapterVerifying: (id, version) => `正在通过 ACP initialize 验证 ${id} adapter ${version}…`,
|
|
2881
|
+
adapterSaved: (id, version) => `${id} adapter 版本已设置为 ${version}。`,
|
|
2882
|
+
adapterReset: (id, version) => `${id} adapter 本机覆盖已删除;当前生效版本为 ${version}。`,
|
|
2883
|
+
adapterFailed: (id, detail) => `${id} adapter 更新失败:${detail}`,
|
|
2884
|
+
adapterRestartRequired: "请重启 xacpx daemon 后再使用新的 adapter 配置。",
|
|
2885
|
+
adapterRegistryCurrent: (registry, source) => `Adapter registry:${registry}(来源=${source})`,
|
|
2886
|
+
adapterRegistrySaved: (registry) => `Adapter registry 已设置为 ${registry}。`,
|
|
2887
|
+
adapterRegistryReset: (registry) => `Adapter registry 本机覆盖已删除;当前使用 ${registry}。`,
|
|
2888
|
+
adapterInvalidRegistry: (detail) => `Adapter registry 无效:${detail}`,
|
|
2845
2889
|
laterIdEmpty: "定时任务 ID 不能为空。",
|
|
2846
2890
|
laterNotFound: (id) => `未找到待执行的定时任务 #${id}。`,
|
|
2847
2891
|
laterNotFoundHint: "可以用 xacpx later list 查看当前待执行任务。",
|