zcode-acp-server 0.11.8 → 0.14.1
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 +144 -32
- package/dist/backend/client.d.ts.map +1 -1
- package/dist/backend/client.js +10 -0
- package/dist/backend/client.js.map +1 -1
- package/dist/backend/listener.d.ts.map +1 -1
- package/dist/backend/listener.js +6 -5
- package/dist/backend/listener.js.map +1 -1
- package/dist/backend/resolve.d.ts.map +1 -1
- package/dist/backend/resolve.js +35 -1
- package/dist/backend/resolve.js.map +1 -1
- package/dist/bin/hub.d.ts +3 -3
- package/dist/bin/hub.d.ts.map +1 -1
- package/dist/bin/hub.js +22 -12
- package/dist/bin/hub.js.map +1 -1
- package/dist/bin/quota.d.ts +14 -6
- package/dist/bin/quota.d.ts.map +1 -1
- package/dist/bin/quota.js +27 -19
- package/dist/bin/quota.js.map +1 -1
- package/dist/cli.d.ts +38 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +129 -0
- package/dist/cli.js.map +1 -0
- package/dist/config/runtime-model.d.ts +10 -10
- package/dist/config/runtime-model.js +10 -10
- package/dist/handlers/account.d.ts +1 -1
- package/dist/handlers/account.js +1 -1
- package/dist/handlers/dispatch.d.ts.map +1 -1
- package/dist/handlers/dispatch.js +42 -36
- package/dist/handlers/dispatch.js.map +1 -1
- package/dist/handlers/io.d.ts.map +1 -1
- package/dist/handlers/io.js +19 -13
- package/dist/handlers/io.js.map +1 -1
- package/dist/handlers/session.d.ts +58 -4
- package/dist/handlers/session.d.ts.map +1 -1
- package/dist/handlers/session.js +317 -87
- package/dist/handlers/session.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -8
- package/dist/index.js.map +1 -1
- package/dist/interaction/adapter.d.ts +1 -0
- package/dist/interaction/adapter.d.ts.map +1 -1
- package/dist/interaction/adapter.js +5 -1
- package/dist/interaction/adapter.js.map +1 -1
- package/dist/quota/color.d.ts +4 -4
- package/dist/quota/color.d.ts.map +1 -1
- package/dist/quota/color.js +7 -5
- package/dist/quota/color.js.map +1 -1
- package/dist/quota/combined.d.ts +1 -1
- package/dist/quota/combined.js +4 -4
- package/dist/quota/combined.js.map +1 -1
- package/dist/quota/format.d.ts +1 -1
- package/dist/quota/opencode-go/format.d.ts.map +1 -1
- package/dist/quota/opencode-go/format.js +5 -1
- package/dist/quota/opencode-go/format.js.map +1 -1
- package/dist/quota/opencode-go/index.d.ts +1 -1
- package/dist/quota/opencode-go/index.js +1 -1
- package/dist/quota/opencode-go/types.d.ts +1 -1
- package/dist/quota/opencode-go/types.js +1 -1
- package/dist/quota/rounding.d.ts +8 -0
- package/dist/quota/rounding.d.ts.map +1 -0
- package/dist/quota/rounding.js +10 -0
- package/dist/quota/rounding.js.map +1 -0
- package/dist/remote/config.d.ts +1 -1
- package/dist/remote/config.d.ts.map +1 -1
- package/dist/remote/config.js +1 -1
- package/dist/remote/config.js.map +1 -1
- package/dist/remote/endpoint.d.ts +1 -1
- package/dist/remote/endpoint.d.ts.map +1 -1
- package/dist/remote/endpoint.js +6 -1
- package/dist/remote/endpoint.js.map +1 -1
- package/dist/remote/hub-server.d.ts +1 -1
- package/dist/remote/hub-server.d.ts.map +1 -1
- package/dist/remote/hub-server.js +13 -10
- package/dist/remote/hub-server.js.map +1 -1
- package/dist/remote/session-rename-endpoint.d.ts +20 -0
- package/dist/remote/session-rename-endpoint.d.ts.map +1 -0
- package/dist/remote/session-rename-endpoint.js +108 -0
- package/dist/remote/session-rename-endpoint.js.map +1 -0
- package/dist/repl/App.d.ts +108 -0
- package/dist/repl/App.d.ts.map +1 -0
- package/dist/repl/App.js +706 -0
- package/dist/repl/App.js.map +1 -0
- package/dist/repl/history.d.ts +25 -0
- package/dist/repl/history.d.ts.map +1 -0
- package/dist/repl/history.js +73 -0
- package/dist/repl/history.js.map +1 -0
- package/dist/repl/input-buffer.d.ts +77 -0
- package/dist/repl/input-buffer.d.ts.map +1 -0
- package/dist/repl/input-buffer.js +174 -0
- package/dist/repl/input-buffer.js.map +1 -0
- package/dist/repl/model.d.ts +275 -0
- package/dist/repl/model.d.ts.map +1 -0
- package/dist/repl/model.js +596 -0
- package/dist/repl/model.js.map +1 -0
- package/dist/repl/mouse.d.ts +49 -0
- package/dist/repl/mouse.d.ts.map +1 -0
- package/dist/repl/mouse.js +165 -0
- package/dist/repl/mouse.js.map +1 -0
- package/dist/repl/run.d.ts +12 -0
- package/dist/repl/run.d.ts.map +1 -0
- package/dist/repl/run.js +902 -0
- package/dist/repl/run.js.map +1 -0
- package/dist/server.d.ts +19 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +32 -4
- package/dist/server.js.map +1 -1
- package/dist/tasks-index.d.ts +7 -0
- package/dist/tasks-index.d.ts.map +1 -1
- package/dist/tasks-index.js +50 -9
- package/dist/tasks-index.js.map +1 -1
- package/dist/translators/tool-helpers.d.ts.map +1 -1
- package/dist/translators/tool-helpers.js +3 -0
- package/dist/translators/tool-helpers.js.map +1 -1
- package/docs/ARCHITECTURE.md +1 -1
- package/docs/BACKLOG.md +40 -21
- package/docs/REMOTE-CLIENTS.md +37 -8
- package/docs/TROUBLESHOOTING.md +1 -1
- package/docs/adr/0007-unified-cli-entry-and-bin-pruning.md +40 -0
- package/package.json +9 -4
package/dist/bin/quota.js
CHANGED
|
@@ -7,12 +7,12 @@
|
|
|
7
7
|
* credentials and hits the quota HTTP API directly.
|
|
8
8
|
*
|
|
9
9
|
* Usage:
|
|
10
|
-
* zcode-quota one-shot: print the card and exit
|
|
11
|
-
* zcode-quota -w watch mode (default 30s refresh)
|
|
12
|
-
* zcode-quota -w -i 60 watch with a 60s interval
|
|
13
|
-
* zcode-quota -d show per-model MCP detail sub-lines
|
|
14
|
-
* zcode-quota --watch --interval 15
|
|
15
|
-
* zcode-quota -h | --help show help
|
|
10
|
+
* zcode-acp quota one-shot: print the card and exit
|
|
11
|
+
* zcode-acp quota -w watch mode (default 30s refresh)
|
|
12
|
+
* zcode-acp quota -w -i 60 watch with a 60s interval
|
|
13
|
+
* zcode-acp quota -d show per-model MCP detail sub-lines
|
|
14
|
+
* zcode-acp quota --watch --interval 15
|
|
15
|
+
* zcode-acp quota -h | --help show help
|
|
16
16
|
*
|
|
17
17
|
* The refresh interval has a 10s floor: the in-memory quota cache TTL is 10s,
|
|
18
18
|
* and a shorter interval would just keep returning the cached value.
|
|
@@ -38,7 +38,7 @@ const ANSI = {
|
|
|
38
38
|
showCursor: "\x1B[?25h",
|
|
39
39
|
};
|
|
40
40
|
/** Human-readable usage text. */
|
|
41
|
-
const HELP_TEXT = `Usage: zcode-quota [provider] [options]
|
|
41
|
+
const HELP_TEXT = `Usage: zcode-acp quota [provider] [options]
|
|
42
42
|
|
|
43
43
|
Query usage from the terminal. By default shows both GLM Coding Plan and
|
|
44
44
|
Opencode Go in one card; pass a provider to focus on one.
|
|
@@ -65,12 +65,12 @@ Options:
|
|
|
65
65
|
-h, --help Show this help and exit.
|
|
66
66
|
|
|
67
67
|
Examples:
|
|
68
|
-
zcode-quota # both providers, print once and exit (color bars)
|
|
69
|
-
zcode-quota go # Opencode Go only (3 windows)
|
|
70
|
-
zcode-quota glm -w # GLM only, live monitor every 30s
|
|
71
|
-
zcode-quota -w -i 60 # both, refresh every 60s
|
|
72
|
-
zcode-quota -d # both, include per-model MCP breakdown
|
|
73
|
-
zcode-quota --plain # both, classic monochrome bars`;
|
|
68
|
+
zcode-acp quota # both providers, print once and exit (color bars)
|
|
69
|
+
zcode-acp quota go # Opencode Go only (3 windows)
|
|
70
|
+
zcode-acp quota glm -w # GLM only, live monitor every 30s
|
|
71
|
+
zcode-acp quota -w -i 60 # both, refresh every 60s
|
|
72
|
+
zcode-acp quota -d # both, include per-model MCP breakdown
|
|
73
|
+
zcode-acp quota --plain # both, classic monochrome bars`;
|
|
74
74
|
/**
|
|
75
75
|
* Clamp a raw interval (seconds, optional) to a valid ms value. Returns the
|
|
76
76
|
* clamped value plus whether a user-supplied value was raised to the floor.
|
|
@@ -143,7 +143,7 @@ export function parseArgs(argv) {
|
|
|
143
143
|
}
|
|
144
144
|
else if (arg === "glm" || arg === "go") {
|
|
145
145
|
// First positional provider token. Only honor the first; a second
|
|
146
|
-
// (e.g. `zcode-quota glm go`) is ignored to keep parsing simple.
|
|
146
|
+
// (e.g. `zcode-acp quota glm go`) is ignored to keep parsing simple.
|
|
147
147
|
if (provider === "all")
|
|
148
148
|
provider = arg;
|
|
149
149
|
}
|
|
@@ -295,14 +295,21 @@ async function runOnce(provider, detail, color) {
|
|
|
295
295
|
}
|
|
296
296
|
process.stdout.write(out + "\n");
|
|
297
297
|
}
|
|
298
|
-
|
|
299
|
-
|
|
298
|
+
/**
|
|
299
|
+
* CLI entry. Takes the argument list (defaulting to the process argv) so the
|
|
300
|
+
* Unified CLI dispatcher can pass its own slice (`zcode-acp quota -w` →
|
|
301
|
+
* `["-w"]`) without the subcommand name leaking in as a provider token.
|
|
302
|
+
*
|
|
303
|
+
* Exported for the Unified CLI dispatcher; guarded auto-run below.
|
|
304
|
+
*/
|
|
305
|
+
export async function main(argv = process.argv.slice(2)) {
|
|
306
|
+
const opts = parseArgs(argv);
|
|
300
307
|
if (opts.help) {
|
|
301
308
|
process.stdout.write(HELP_TEXT + "\n");
|
|
302
309
|
return;
|
|
303
310
|
}
|
|
304
311
|
if (opts.intervalClamped) {
|
|
305
|
-
process.stderr.write(`zcode-quota: interval below 10s raised to 10s (cache TTL is 10s)\n`);
|
|
312
|
+
process.stderr.write(`zcode-acp quota: interval below 10s raised to 10s (cache TTL is 10s)\n`);
|
|
306
313
|
}
|
|
307
314
|
// Color is on by default on a real terminal; turn it off when piped/
|
|
308
315
|
// redirected (isTTY is only `true` on a real TTY — Node leaves it
|
|
@@ -320,13 +327,14 @@ async function main() {
|
|
|
320
327
|
// Only auto-run when invoked directly (not when imported by tests). In an ESM
|
|
321
328
|
// build there is no `require.main`, so fall back to a heuristic: if argv[1]
|
|
322
329
|
// (the executed script) ends with this file's path, we are the entry point.
|
|
330
|
+
// Backslashes are normalized because argv[1] on Windows is a backslash path.
|
|
323
331
|
const invokedDirectly = (() => {
|
|
324
|
-
const entry = process.argv[1] ?? "";
|
|
332
|
+
const entry = (process.argv[1] ?? "").replace(/\\/g, "/");
|
|
325
333
|
return entry.endsWith("bin/quota.js") || entry.endsWith("bin/quota.ts");
|
|
326
334
|
})();
|
|
327
335
|
if (invokedDirectly) {
|
|
328
336
|
main().catch((err) => {
|
|
329
|
-
process.stderr.write(`zcode-quota: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
337
|
+
process.stderr.write(`zcode-acp quota: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
330
338
|
process.exit(1);
|
|
331
339
|
});
|
|
332
340
|
}
|
package/dist/bin/quota.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota.js","sourceRoot":"","sources":["../../src/bin/quota.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,UAAU,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,aAAa,GAEd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,gFAAgF;AAChF,SAAS,cAAc;IACrB,aAAa,EAAE,CAAC;IAChB,YAAY,EAAE,CAAC;AACjB,CAAC;AAED,+DAA+D;AAC/D,MAAM,eAAe,GAAG,MAAM,CAAC;AAC/B,mCAAmC;AACnC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAEnC,4EAA4E;AAC5E,MAAM,IAAI,GAAG;IACX,WAAW,EAAE,eAAe,EAAE,sBAAsB;IACpD,SAAS,EAAE,SAAS,EAAE,gCAAgC;IACtD,UAAU,EAAE,WAAW;IACvB,UAAU,EAAE,WAAW;CACf,CAAC;AAiBX,iCAAiC;AACjC,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"quota.js","sourceRoot":"","sources":["../../src/bin/quota.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Unified CLI entry (`zcode-acp`). Every operational surface is a subcommand;
|
|
4
|
+
* bare invocation opens the interactive REPL. See docs/adr/0007 for why the
|
|
5
|
+
* old `zcode-acp-hub` / `zcode-quota` bins were folded in here and why
|
|
6
|
+
* `zcode-acp-server` remains as a bin alias pointing at this same file.
|
|
7
|
+
*
|
|
8
|
+
* The legacy alias is detected via argv[0]: npm/pnpm install bin names as
|
|
9
|
+
* symlinks, so both `zcode-acp` and `zcode-acp-server` resolve to dist/cli.js
|
|
10
|
+
* while Node keeps the invoked path in argv — basename tells us which name the
|
|
11
|
+
* user (or editor config) actually typed.
|
|
12
|
+
*/
|
|
13
|
+
/** What the dispatcher decided to run. `args` are the tokens after the subcommand. */
|
|
14
|
+
export type Invocation = {
|
|
15
|
+
kind: "help";
|
|
16
|
+
} | {
|
|
17
|
+
kind: "repl";
|
|
18
|
+
explicit: boolean;
|
|
19
|
+
} | {
|
|
20
|
+
kind: "server";
|
|
21
|
+
} | {
|
|
22
|
+
kind: "hub";
|
|
23
|
+
} | {
|
|
24
|
+
kind: "quota";
|
|
25
|
+
args: string[];
|
|
26
|
+
} | {
|
|
27
|
+
kind: "unknown";
|
|
28
|
+
sub: string;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Map (invoked name, argv) to a subcommand. Pure — exported for unit tests.
|
|
32
|
+
*
|
|
33
|
+
* `invokedAs` is basename(argv[1]); `zcode-acp-server` means we were spawned
|
|
34
|
+
* by an editor config that expects the bridge to speak ACP on stdio with no
|
|
35
|
+
* subcommand prefix. Bare `zcode-acp` opens the interactive REPL.
|
|
36
|
+
*/
|
|
37
|
+
export declare function resolveInvocation(invokedAs: string, argv: readonly string[]): Invocation;
|
|
38
|
+
//# sourceMappingURL=cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;GAUG;AAWH,sFAAsF;AACtF,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GACf;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAErC;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,CAkBxF"}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Unified CLI entry (`zcode-acp`). Every operational surface is a subcommand;
|
|
4
|
+
* bare invocation opens the interactive REPL. See docs/adr/0007 for why the
|
|
5
|
+
* old `zcode-acp-hub` / `zcode-quota` bins were folded in here and why
|
|
6
|
+
* `zcode-acp-server` remains as a bin alias pointing at this same file.
|
|
7
|
+
*
|
|
8
|
+
* The legacy alias is detected via argv[0]: npm/pnpm install bin names as
|
|
9
|
+
* symlinks, so both `zcode-acp` and `zcode-acp-server` resolve to dist/cli.js
|
|
10
|
+
* while Node keeps the invoked path in argv — basename tells us which name the
|
|
11
|
+
* user (or editor config) actually typed.
|
|
12
|
+
*/
|
|
13
|
+
import { basename } from "node:path";
|
|
14
|
+
import process from "node:process";
|
|
15
|
+
import { main as runHub } from "./bin/hub.js";
|
|
16
|
+
import { main as runQuota } from "./bin/quota.js";
|
|
17
|
+
import { main as runServer } from "./index.js";
|
|
18
|
+
import { runRepl } from "./repl/run.js";
|
|
19
|
+
import { AGENT_INFO } from "./utils.js";
|
|
20
|
+
/**
|
|
21
|
+
* Map (invoked name, argv) to a subcommand. Pure — exported for unit tests.
|
|
22
|
+
*
|
|
23
|
+
* `invokedAs` is basename(argv[1]); `zcode-acp-server` means we were spawned
|
|
24
|
+
* by an editor config that expects the bridge to speak ACP on stdio with no
|
|
25
|
+
* subcommand prefix. Bare `zcode-acp` opens the interactive REPL.
|
|
26
|
+
*/
|
|
27
|
+
export function resolveInvocation(invokedAs, argv) {
|
|
28
|
+
if (invokedAs === "zcode-acp-server")
|
|
29
|
+
return { kind: "server" };
|
|
30
|
+
const sub = argv[0];
|
|
31
|
+
if (sub === undefined)
|
|
32
|
+
return { kind: "repl", explicit: false };
|
|
33
|
+
if (sub === "repl" || sub === "tui")
|
|
34
|
+
return { kind: "repl", explicit: true };
|
|
35
|
+
if (sub === "-h" || sub === "--help" || sub === "help") {
|
|
36
|
+
return { kind: "help" };
|
|
37
|
+
}
|
|
38
|
+
switch (sub) {
|
|
39
|
+
case "server":
|
|
40
|
+
return { kind: "server" };
|
|
41
|
+
case "hub":
|
|
42
|
+
return { kind: "hub" };
|
|
43
|
+
case "quota":
|
|
44
|
+
return { kind: "quota", args: argv.slice(1) };
|
|
45
|
+
default:
|
|
46
|
+
return { kind: "unknown", sub };
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
const HELP_TEXT = `Usage: zcode-acp [command] [options]
|
|
50
|
+
|
|
51
|
+
The single entry point for every zcode-acp-server surface. Bare invocation
|
|
52
|
+
opens the interactive REPL (agent chat in this terminal).
|
|
53
|
+
|
|
54
|
+
Commands:
|
|
55
|
+
(none) | repl Interactive agent chat (Ink UI): stream output, tool
|
|
56
|
+
rows, arrow-key permission prompts. /exit quits.
|
|
57
|
+
quota [args...] Plan usage cards (was the zcode-quota bin): -w watch,
|
|
58
|
+
-i <sec>, -d detail, -p plain, provider glm|go.
|
|
59
|
+
hub Run the remote-access hub daemon (was zcode-acp-hub;
|
|
60
|
+
usually auto-spawned by bridges, rarely run by hand).
|
|
61
|
+
server The editor-facing ACP bridge over stdio (was
|
|
62
|
+
zcode-acp-server; editors normally launch it via the bin
|
|
63
|
+
alias without this subcommand).
|
|
64
|
+
-h, --help Show this help.
|
|
65
|
+
--version Show the package version.
|
|
66
|
+
|
|
67
|
+
Examples:
|
|
68
|
+
zcode-acp # chat interactively in this repo
|
|
69
|
+
zcode-acp quota -w # live usage monitor
|
|
70
|
+
zcode-acp server # stdio bridge (for testing)`;
|
|
71
|
+
async function main() {
|
|
72
|
+
if (process.argv[2] === "--version") {
|
|
73
|
+
process.stdout.write(`${AGENT_INFO.version}\n`);
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
const invocation = resolveInvocation(basename(process.argv[1] ?? ""), process.argv.slice(2));
|
|
77
|
+
switch (invocation.kind) {
|
|
78
|
+
case "help":
|
|
79
|
+
process.stdout.write(HELP_TEXT + "\n");
|
|
80
|
+
return;
|
|
81
|
+
case "repl":
|
|
82
|
+
if (process.stdin.isTTY && process.stdout.isTTY) {
|
|
83
|
+
await runRepl();
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
if (invocation.explicit) {
|
|
87
|
+
process.stderr.write("zcode-acp: interactive REPL needs a TTY — run it from a terminal.\n");
|
|
88
|
+
process.exit(2);
|
|
89
|
+
}
|
|
90
|
+
// Bare invocation without a TTY falls back to the stdio server: on
|
|
91
|
+
// Windows npm shims spawn `node ...\dist\cli.js`, so argv[0] loses the
|
|
92
|
+
// bin name and editors configured with either bin land here. Unix
|
|
93
|
+
// pipes get the same fallback (JSON-RPC on stdin, exit on EOF).
|
|
94
|
+
await runServer();
|
|
95
|
+
return;
|
|
96
|
+
case "server":
|
|
97
|
+
await runServer();
|
|
98
|
+
return;
|
|
99
|
+
case "hub":
|
|
100
|
+
await runHub();
|
|
101
|
+
return;
|
|
102
|
+
case "quota":
|
|
103
|
+
await runQuota(invocation.args);
|
|
104
|
+
return;
|
|
105
|
+
case "unknown":
|
|
106
|
+
process.stderr.write(`zcode-acp: unknown command '${invocation.sub}'\n\n`);
|
|
107
|
+
process.stdout.write(HELP_TEXT + "\n");
|
|
108
|
+
process.exit(1);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
// Only auto-run when this file is the executed entry — directly
|
|
112
|
+
// (`node dist/cli.js`) or through either bin symlink (`zcode-acp`,
|
|
113
|
+
// `zcode-acp-server`), where argv[1] keeps the symlink path. Imports (the
|
|
114
|
+
// test suite) fall through to a no-op.
|
|
115
|
+
const invokedDirectly = (() => {
|
|
116
|
+
const entry = process.argv[1] ?? "";
|
|
117
|
+
const name = basename(entry);
|
|
118
|
+
return (entry.endsWith("cli.js") ||
|
|
119
|
+
entry.endsWith("cli.ts") ||
|
|
120
|
+
name === "zcode-acp" ||
|
|
121
|
+
name === "zcode-acp-server");
|
|
122
|
+
})();
|
|
123
|
+
if (invokedDirectly) {
|
|
124
|
+
main().catch((err) => {
|
|
125
|
+
process.stderr.write(`zcode-acp: fatal: ${err instanceof Error ? (err.stack ?? err.message) : String(err)}\n`);
|
|
126
|
+
process.exit(1);
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,12 +9,12 @@
|
|
|
9
9
|
*
|
|
10
10
|
* Two uses:
|
|
11
11
|
*
|
|
12
|
-
* 1. Resume/load overlay (`buildResumeRuntimeModel
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
12
|
+
* 1. Resume/load FALLBACK overlay (`buildResumeRuntimeModel`, via
|
|
13
|
+
* `resumePreservingModel` in handlers/session.ts): sessions are resumed
|
|
14
|
+
* faithfully (keeping their own model) and this overlay is only applied
|
|
15
|
+
* when that resume fails outright — history carrying a stale/revoked
|
|
16
|
+
* third-party model. It pins onto the FIRST enabled provider's FIRST
|
|
17
|
+
* model as a known-working repair, not as a default choice.
|
|
18
18
|
*
|
|
19
19
|
* 2. Model switch (`applyModelSwitch`): UI/slash model switching goes through
|
|
20
20
|
* `session/setModel` with both a `model` ref and a `runtimeModel` provider
|
|
@@ -40,10 +40,10 @@ import type { ZcodeAcpServer } from "../server.js";
|
|
|
40
40
|
*/
|
|
41
41
|
export declare function buildRuntimeModel(ref: ModelRef, revision?: string): unknown | null;
|
|
42
42
|
/**
|
|
43
|
-
* Build the resume-time overlay pinned to the
|
|
44
|
-
* provider's
|
|
45
|
-
*
|
|
46
|
-
*
|
|
43
|
+
* Build the resume-time FALLBACK overlay pinned to the first enabled
|
|
44
|
+
* provider's first model — a known-working repair for sessions whose history
|
|
45
|
+
* references an unavailable model. Only applied when a faithful (no-overlay)
|
|
46
|
+
* resume fails; see resumePreservingModel in handlers/session.ts.
|
|
47
47
|
*/
|
|
48
48
|
export declare function buildResumeRuntimeModel(): unknown | null;
|
|
49
49
|
/**
|
|
@@ -9,12 +9,12 @@
|
|
|
9
9
|
*
|
|
10
10
|
* Two uses:
|
|
11
11
|
*
|
|
12
|
-
* 1. Resume/load overlay (`buildResumeRuntimeModel
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
12
|
+
* 1. Resume/load FALLBACK overlay (`buildResumeRuntimeModel`, via
|
|
13
|
+
* `resumePreservingModel` in handlers/session.ts): sessions are resumed
|
|
14
|
+
* faithfully (keeping their own model) and this overlay is only applied
|
|
15
|
+
* when that resume fails outright — history carrying a stale/revoked
|
|
16
|
+
* third-party model. It pins onto the FIRST enabled provider's FIRST
|
|
17
|
+
* model as a known-working repair, not as a default choice.
|
|
18
18
|
*
|
|
19
19
|
* 2. Model switch (`applyModelSwitch`): UI/slash model switching goes through
|
|
20
20
|
* `session/setModel` with both a `model` ref and a `runtimeModel` provider
|
|
@@ -81,10 +81,10 @@ export function buildRuntimeModel(ref, revision = "bridge") {
|
|
|
81
81
|
};
|
|
82
82
|
}
|
|
83
83
|
/**
|
|
84
|
-
* Build the resume-time overlay pinned to the
|
|
85
|
-
* provider's
|
|
86
|
-
*
|
|
87
|
-
*
|
|
84
|
+
* Build the resume-time FALLBACK overlay pinned to the first enabled
|
|
85
|
+
* provider's first model — a known-working repair for sessions whose history
|
|
86
|
+
* references an unavailable model. Only applied when a faithful (no-overlay)
|
|
87
|
+
* resume fails; see resumePreservingModel in handlers/session.ts.
|
|
88
88
|
*/
|
|
89
89
|
export function buildResumeRuntimeModel() {
|
|
90
90
|
const first = loadAllModels()[0];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Account-level usage stats — Proposal 0002 (`account/usage_stats`).
|
|
3
3
|
*
|
|
4
|
-
* Exposes the combined dual-provider quota behind the `zcode-quota` CLI
|
|
4
|
+
* Exposes the combined dual-provider quota behind the `zcode-acp quota` CLI
|
|
5
5
|
* (GLM Coding Plan + Opencode Go) to remote clients as a pull-only ACP
|
|
6
6
|
* method, callable any time after `initialize` (no session required — quota
|
|
7
7
|
* is account-level, so it fits no `session/update` kind).
|
package/dist/handlers/account.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Account-level usage stats — Proposal 0002 (`account/usage_stats`).
|
|
3
3
|
*
|
|
4
|
-
* Exposes the combined dual-provider quota behind the `zcode-quota` CLI
|
|
4
|
+
* Exposes the combined dual-provider quota behind the `zcode-acp quota` CLI
|
|
5
5
|
* (GLM Coding Plan + Opencode Go) to remote clients as a pull-only ACP
|
|
6
6
|
* method, callable any time after `initialize` (no session required — quota
|
|
7
7
|
* is account-level, so it fits no `session/update` kind).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/handlers/dispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,KAAK,GAAG,MAAM,0BAA0B,CAAC;AAcrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAInD,yEAAyE;AACzE,wBAAsB,aAAa,CACjC,MAAM,EAAE,cAAc,EACtB,EAAE,EAAE,GAAG,CAAC,YAAY,EACpB,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,aAAa,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/handlers/dispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,KAAK,GAAG,MAAM,0BAA0B,CAAC;AAcrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAInD,yEAAyE;AACzE,wBAAsB,aAAa,CACjC,MAAM,EAAE,cAAc,EACtB,EAAE,EAAE,GAAG,CAAC,YAAY,EACpB,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,aAAa,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CA4Cf"}
|
|
@@ -15,42 +15,48 @@ import { warn } from "../utils.js";
|
|
|
15
15
|
import { sendSessionUpdate } from "./io.js";
|
|
16
16
|
/** Dispatch one internal event to the ACP client as a session/update. */
|
|
17
17
|
export async function dispatchEvent(server, cx, acpSid, ev, chunkMsgId) {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
18
|
+
// One conversation can be attached under several ACP ids (see
|
|
19
|
+
// server.sessionAliases): emit once per alias with that alias as the
|
|
20
|
+
// payload sessionId, or every client but the prompter starves silently.
|
|
21
|
+
const targets = server.sessionAliases(acpSid);
|
|
22
|
+
for (const sid of targets) {
|
|
23
|
+
switch (ev.kind) {
|
|
24
|
+
case "ToolCallNew":
|
|
25
|
+
await dispatchToolCallNew(server, cx, sid, ev);
|
|
26
|
+
break;
|
|
27
|
+
case "ToolCallUpdate":
|
|
28
|
+
await dispatchToolCallUpdate(server, cx, sid, ev);
|
|
29
|
+
break;
|
|
30
|
+
case "UsageDelta":
|
|
31
|
+
await dispatchUsageDelta(server, cx, sid, ev);
|
|
32
|
+
break;
|
|
33
|
+
case "TextDelta":
|
|
34
|
+
await sendSessionUpdate(cx, sid, {
|
|
35
|
+
sessionUpdate: "agent_message_chunk",
|
|
36
|
+
content: { type: "text", text: ev.text },
|
|
37
|
+
messageId: chunkMsgId,
|
|
38
|
+
});
|
|
39
|
+
break;
|
|
40
|
+
case "ReasoningDelta":
|
|
41
|
+
await sendSessionUpdate(cx, sid, {
|
|
42
|
+
sessionUpdate: "agent_thought_chunk",
|
|
43
|
+
content: { type: "text", text: ev.text },
|
|
44
|
+
messageId: `thought_${chunkMsgId}`,
|
|
45
|
+
});
|
|
46
|
+
break;
|
|
47
|
+
case "PlanUpdate":
|
|
48
|
+
await sendSessionUpdate(cx, sid, {
|
|
49
|
+
sessionUpdate: "plan",
|
|
50
|
+
entries: ev.entries,
|
|
51
|
+
});
|
|
52
|
+
break;
|
|
53
|
+
case "FilesChanged":
|
|
54
|
+
await dispatchFilesChanged(cx, sid, ev);
|
|
55
|
+
break;
|
|
56
|
+
case "ConfigChanged":
|
|
57
|
+
await dispatchConfigChanged(server, cx, sid, ev);
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
54
60
|
}
|
|
55
61
|
}
|
|
56
62
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/handlers/dispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,aAAa,GACd,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,yEAAyE;AACzE,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAsB,EACtB,EAAoB,EACpB,MAAc,EACd,EAAiB,EACjB,UAAkB;IAElB,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/handlers/dispatch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../../src/handlers/io.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,KAAK,GAAG,MAAM,0BAA0B,CAAC;AAGrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGnD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,GAAG,CAAC,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,GAAG,CAAC,aAAa,GACxB,OAAO,CAAC,IAAI,CAAC,CAEf;AAkBD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAI9F;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAuB5F;AAED,uDAAuD;AACvD,wBAAgB,aAAa,CAC3B,EAAE,EAAE,GAAG,CAAC,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,GAAG,CAAC,YAAY,EAC1B,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;CAAE,GACjE,IAAI,
|
|
1
|
+
{"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../../src/handlers/io.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,KAAK,GAAG,MAAM,0BAA0B,CAAC;AAGrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGnD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,GAAG,CAAC,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,GAAG,CAAC,aAAa,GACxB,OAAO,CAAC,IAAI,CAAC,CAEf;AAkBD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAI9F;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAuB5F;AAED,uDAAuD;AACvD,wBAAgB,aAAa,CAC3B,EAAE,EAAE,GAAG,CAAC,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,GAAG,CAAC,YAAY,EAC1B,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;CAAE,GACjE,IAAI,CAoCN;AAED,uEAAuE;AACvE,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1B;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,GAAG,CAAC,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,aAAa,CAAC,iBAAiB,CAAC,GACzC,OAAO,CAAC,IAAI,CAAC,CAYf;AAWD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,6BAA6B,CAC3C,EAAE,EAAE,GAAG,CAAC,YAAY,EACpB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,aAAa,CAAC,iBAAiB,CAAC,GACzC,IAAI,CAkCN;AAED,wFAAwF;AACxF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,CAE/D;AAED,kFAAkF;AAClF,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,cAAc,CAAC;CACxB"}
|
package/dist/handlers/io.js
CHANGED
|
@@ -97,19 +97,25 @@ export function echoUserPromptToOthers(server, prompter, params) {
|
|
|
97
97
|
if (!text)
|
|
98
98
|
return;
|
|
99
99
|
const messageId = `uprompt_${randomUUID()}`;
|
|
100
|
-
void enqueueSessionSend(params.sessionId, () =>
|
|
101
|
-
.
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
100
|
+
void enqueueSessionSend(params.sessionId, async () => {
|
|
101
|
+
// Emit once per attached alias (server.sessionAliases): clients route
|
|
102
|
+
// session/update by payload sessionId, so the prompter's id alone never
|
|
103
|
+
// reaches a client holding this conversation under a different id.
|
|
104
|
+
const results = await Promise.allSettled(server.sessionAliases(params.sessionId).map((sid) => server.clients.notifyOthers(prompter, "session/update", {
|
|
105
|
+
sessionId: sid,
|
|
106
|
+
update: {
|
|
107
|
+
sessionUpdate: "user_message_chunk",
|
|
108
|
+
content: { type: "text", text },
|
|
109
|
+
messageId,
|
|
110
|
+
},
|
|
111
|
+
})));
|
|
112
|
+
for (const r of results) {
|
|
113
|
+
if (r.status === "rejected") {
|
|
114
|
+
warn(`user-prompt echo failed (sid=${params.sessionId}): ` +
|
|
115
|
+
`${r.reason instanceof Error ? r.reason.message : String(r.reason)}`);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
});
|
|
113
119
|
}
|
|
114
120
|
/** Send an `available_commands_update` notification listing our slash commands. */
|
|
115
121
|
export function sendAvailableCommands(cx, sessionId, commands) {
|