zcode-acp-server 0.11.9 → 0.14.2
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 +5 -4
- package/dist/backend/listener.d.ts.map +1 -1
- package/dist/backend/listener.js +11 -9
- 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 +417 -72
- 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.js +1 -1
- package/dist/remote/hub-server.d.ts +1 -1
- package/dist/remote/hub-server.js +1 -1
- 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 +18 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +31 -3
- package/dist/server.js.map +1 -1
- package/dist/translators/event-translator.d.ts +2 -0
- package/dist/translators/event-translator.d.ts.map +1 -1
- package/dist/translators/event-translator.js +47 -38
- package/dist/translators/event-translator.js.map +1 -1
- package/dist/translators/tool-helpers.d.ts.map +1 -1
- package/dist/translators/tool-helpers.js +11 -0
- package/dist/translators/tool-helpers.js.map +1 -1
- package/docs/ARCHITECTURE.md +13 -2
- package/docs/BACKLOG.md +40 -21
- package/docs/REMOTE-CLIENTS.md +2 -2
- 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/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) {
|
package/dist/handlers/io.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"io.js","sourceRoot":"","sources":["../../src/handlers/io.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"io.js","sourceRoot":"","sources":["../../src/handlers/io.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,8 +11,9 @@
|
|
|
11
11
|
* notifications.
|
|
12
12
|
*/
|
|
13
13
|
import type * as acp from "@agentclientprotocol/sdk";
|
|
14
|
+
import { EventStreamListener, TurnMonitor } from "../backend/listener.js";
|
|
14
15
|
import { ProjectionDiffer } from "../translators/index.js";
|
|
15
|
-
import type { ZcodeAcpServer } from "../server.js";
|
|
16
|
+
import type { PendingTurn, ZcodeAcpServer } from "../server.js";
|
|
16
17
|
/**
|
|
17
18
|
* `session/new` → local placeholder id. The real zcode `session/create` is
|
|
18
19
|
* deferred to first use (`ensureRealSession`) so an editor startup that never
|
|
@@ -60,11 +61,53 @@ export declare function setConfigOptionHandler(server: ZcodeAcpServer, params: a
|
|
|
60
61
|
* on a session with no active turn, and on a turn already aborted), so firing
|
|
61
62
|
* it eagerly is safe; the loop's `stopSent` guard prevents a second send.
|
|
62
63
|
*
|
|
63
|
-
* `turn.cancelled` is still set so the turn loop
|
|
64
|
-
*
|
|
65
|
-
*
|
|
64
|
+
* `turn.cancelled` is still set so the turn loop returns at once (the backend
|
|
65
|
+
* ignores session/stop — verified 0.16.5, the model stream runs to its natural
|
|
66
|
+
* end — so waiting for a terminal event would hang the stop for the whole
|
|
67
|
+
* remaining generation). The loop's return resolves session/prompt with
|
|
68
|
+
* stopReason "cancelled" immediately.
|
|
66
69
|
*/
|
|
67
70
|
export declare function cancel(server: ZcodeAcpServer, params: acp.CancelNotification): Promise<void>;
|
|
71
|
+
/** Dependencies of drainBackendAfterCancel, injectable for tests. */
|
|
72
|
+
interface DrainDeps {
|
|
73
|
+
acpSid: string;
|
|
74
|
+
zcodeSid: string;
|
|
75
|
+
turn: PendingTurn;
|
|
76
|
+
listener: EventStreamListener;
|
|
77
|
+
monitor: TurnMonitor;
|
|
78
|
+
differ: ProjectionDiffer;
|
|
79
|
+
cx: acp.AgentContext;
|
|
80
|
+
/** Test hook: override the close-escalation grace (default 5s). */
|
|
81
|
+
escalateAfterMs?: number;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Drain gate: a recent cancel/preempt means the backend side needs settling
|
|
85
|
+
* before the next send. Primary path: stopBackendTurn's v4/command stop kills
|
|
86
|
+
* the generation at once, so the first probe here already sees idle.
|
|
87
|
+
* Fallbacks: on a backend that honours session/stop we poll the projection
|
|
88
|
+
* until idle (a send that lands mid-generation is accepted as a steer whose
|
|
89
|
+
* input the backend silently DROPS when the old turn finishes); if the
|
|
90
|
+
* generation is STILL running after a grace period — both stops ignored —
|
|
91
|
+
* escalate to session/close, which tears down the runtime and kills it
|
|
92
|
+
* outright (the probe then fails into the reload branch). A visible chunk
|
|
93
|
+
* tells the user why the send waits. Bounded: on timeout send anyway — the
|
|
94
|
+
* steer-drop risk returns (the turn.steerQueued guard in runEventTurn reports
|
|
95
|
+
* it), but blocking the prompt forever is worse.
|
|
96
|
+
*
|
|
97
|
+
* Two post-drain repairs, both mirroring established patterns (prompt's
|
|
98
|
+
* eviction recovery / transient-retry re-baseline):
|
|
99
|
+
* - resubscribe: session/close killed the runtime this prompt subscribed to;
|
|
100
|
+
* the reload revives the session but not the event push, so re-arm it —
|
|
101
|
+
* without resubscribe the next turn runs deaf (no events at all, and stall
|
|
102
|
+
* recovery can't engage because it needs turn.started).
|
|
103
|
+
* - re-baseline: the abandoned turn committed messages to the session history
|
|
104
|
+
* while we waited (and close persisted its partial output); without markSeen
|
|
105
|
+
* the completion diff replays that residue as this turn's output.
|
|
106
|
+
*
|
|
107
|
+
* Returns "cancelled" when the turn was flagged cancelled during the drain
|
|
108
|
+
* (stop pair fired; caller resolves session/prompt at once).
|
|
109
|
+
*/
|
|
110
|
+
export declare function drainBackendAfterCancel(server: ZcodeAcpServer, deps: DrainDeps): Promise<"cancelled" | "drained">;
|
|
68
111
|
/**
|
|
69
112
|
* Cancel any other in-flight turn for this zcodeSid: fire `session/stop` and
|
|
70
113
|
* signal the old turn to stop retrying, then return immediately.
|
|
@@ -113,6 +156,16 @@ export interface ImageAttachment {
|
|
|
113
156
|
* Exported for unit testing.
|
|
114
157
|
*/
|
|
115
158
|
export declare function extractAttachments(blocks: acp.ContentBlock[] | undefined): ImageAttachment[];
|
|
159
|
+
/**
|
|
160
|
+
* Event-driven turn loop: translate zcode events via EventTranslator and
|
|
161
|
+
* dispatch each internal event to the ACP client. No-progress timeout is 120s
|
|
162
|
+
* (refreshed by any event). Cancel is honoured on each iteration.
|
|
163
|
+
*
|
|
164
|
+
* Server→client requests (interaction/*) are drained each iteration; full
|
|
165
|
+
* handling (requestPermission / ExitPlanMode / AskUserQuestion) lands in
|
|
166
|
+
* Commit 6 — for now they're polled to keep the inbox clear.
|
|
167
|
+
*/
|
|
168
|
+
export declare function runEventTurn(server: ZcodeAcpServer, listener: EventStreamListener, monitor: TurnMonitor, differ: ProjectionDiffer, cx: acp.AgentContext, acpSid: string, chunkMsgId: string, turn: PendingTurn, gateArmed: boolean): Promise<acp.PromptResponse>;
|
|
116
169
|
/**
|
|
117
170
|
* Turn-attribution gate decision (pure, exported for tests): whether an event
|
|
118
171
|
* observed before this turn's own `turn.started` should be dropped as leftover
|
|
@@ -148,4 +201,5 @@ export declare function flattenTodos(todos: unknown[] | undefined, todoGroups: A
|
|
|
148
201
|
*/
|
|
149
202
|
export declare function emitModeIfChanged(server: ZcodeAcpServer, cx: acp.AgentContext, acpSid: string, zcodeSid: string): Promise<void>;
|
|
150
203
|
export declare function dispatchPlanIfChanged(server: ZcodeAcpServer, cx: acp.AgentContext, acpSid: string, zcodeSid: string, differ: ProjectionDiffer, chunkMsgId: string, recheck?: boolean): Promise<void>;
|
|
204
|
+
export {};
|
|
151
205
|
//# sourceMappingURL=session.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/handlers/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,KAAK,GAAG,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/handlers/session.ts"],"names":[],"mappings":"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"}
|