zcode-acp-server 0.1.0 → 0.2.0
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 +98 -1
- package/README.zh-CN.md +81 -1
- package/dist/backend/client.d.ts +12 -4
- package/dist/backend/client.d.ts.map +1 -1
- package/dist/backend/client.js +72 -7
- package/dist/backend/client.js.map +1 -1
- package/dist/backend/credentials.d.ts.map +1 -1
- package/dist/backend/credentials.js +2 -1
- package/dist/backend/credentials.js.map +1 -1
- package/dist/backend/listener.d.ts +12 -4
- package/dist/backend/listener.d.ts.map +1 -1
- package/dist/backend/listener.js +68 -12
- package/dist/backend/listener.js.map +1 -1
- package/dist/backend/types.d.ts +1 -1
- package/dist/backend/types.d.ts.map +1 -1
- package/dist/bin/quota.d.ts +54 -0
- package/dist/bin/quota.d.ts.map +1 -0
- package/dist/bin/quota.js +333 -0
- package/dist/bin/quota.js.map +1 -0
- package/dist/config/auto-compact.d.ts +23 -0
- package/dist/config/auto-compact.d.ts.map +1 -0
- package/dist/config/auto-compact.js +67 -0
- package/dist/config/auto-compact.js.map +1 -0
- package/dist/config/mcp-discovery.d.ts +34 -0
- package/dist/config/mcp-discovery.d.ts.map +1 -0
- package/dist/config/mcp-discovery.js +153 -0
- package/dist/config/mcp-discovery.js.map +1 -0
- package/dist/config/model-cache.d.ts +12 -1
- package/dist/config/model-cache.d.ts.map +1 -1
- package/dist/config/model-cache.js +30 -8
- package/dist/config/model-cache.js.map +1 -1
- package/dist/config/options.d.ts +87 -9
- package/dist/config/options.d.ts.map +1 -1
- package/dist/config/options.js +248 -45
- package/dist/config/options.js.map +1 -1
- package/dist/config/plugin-commands.d.ts +24 -0
- package/dist/config/plugin-commands.d.ts.map +1 -0
- package/dist/config/plugin-commands.js +107 -0
- package/dist/config/plugin-commands.js.map +1 -0
- package/dist/config/provider-registry.d.ts +60 -0
- package/dist/config/provider-registry.d.ts.map +1 -0
- package/dist/config/provider-registry.js +128 -0
- package/dist/config/provider-registry.js.map +1 -0
- package/dist/config/runtime-model.d.ts +54 -18
- package/dist/config/runtime-model.d.ts.map +1 -1
- package/dist/config/runtime-model.js +105 -61
- package/dist/config/runtime-model.js.map +1 -1
- package/dist/config/skill-discovery.d.ts +35 -0
- package/dist/config/skill-discovery.d.ts.map +1 -0
- package/dist/config/skill-discovery.js +188 -0
- package/dist/config/skill-discovery.js.map +1 -0
- package/dist/handlers/background-tasks.d.ts +72 -0
- package/dist/handlers/background-tasks.d.ts.map +1 -0
- package/dist/handlers/background-tasks.js +330 -0
- package/dist/handlers/background-tasks.js.map +1 -0
- package/dist/handlers/dispatch.d.ts.map +1 -1
- package/dist/handlers/dispatch.js +134 -22
- package/dist/handlers/dispatch.js.map +1 -1
- package/dist/handlers/extensions.d.ts +15 -0
- package/dist/handlers/extensions.d.ts.map +1 -1
- package/dist/handlers/extensions.js +43 -27
- package/dist/handlers/extensions.js.map +1 -1
- package/dist/handlers/io.d.ts +11 -2
- package/dist/handlers/io.d.ts.map +1 -1
- package/dist/handlers/io.js +51 -7
- package/dist/handlers/io.js.map +1 -1
- package/dist/handlers/server-requests.d.ts +20 -4
- package/dist/handlers/server-requests.d.ts.map +1 -1
- package/dist/handlers/server-requests.js +293 -63
- package/dist/handlers/server-requests.js.map +1 -1
- package/dist/handlers/session.d.ts +113 -10
- package/dist/handlers/session.d.ts.map +1 -1
- package/dist/handlers/session.js +876 -220
- package/dist/handlers/session.js.map +1 -1
- package/dist/handlers/slash.d.ts +14 -0
- package/dist/handlers/slash.d.ts.map +1 -1
- package/dist/handlers/slash.js +80 -6
- package/dist/handlers/slash.js.map +1 -1
- package/dist/index.js +38 -4
- package/dist/index.js.map +1 -1
- package/dist/interaction/adapter.d.ts +19 -33
- package/dist/interaction/adapter.d.ts.map +1 -1
- package/dist/interaction/adapter.js +80 -79
- package/dist/interaction/adapter.js.map +1 -1
- package/dist/lazy-sessions.d.ts +35 -0
- package/dist/lazy-sessions.d.ts.map +1 -0
- package/dist/lazy-sessions.js +98 -0
- package/dist/lazy-sessions.js.map +1 -0
- package/dist/quota/cache.d.ts +18 -0
- package/dist/quota/cache.d.ts.map +1 -0
- package/dist/quota/cache.js +32 -0
- package/dist/quota/cache.js.map +1 -0
- package/dist/quota/client.d.ts +30 -0
- package/dist/quota/client.d.ts.map +1 -0
- package/dist/quota/client.js +57 -0
- package/dist/quota/client.js.map +1 -0
- package/dist/quota/color.d.ts +58 -0
- package/dist/quota/color.d.ts.map +1 -0
- package/dist/quota/color.js +95 -0
- package/dist/quota/color.js.map +1 -0
- package/dist/quota/combined.d.ts +66 -0
- package/dist/quota/combined.d.ts.map +1 -0
- package/dist/quota/combined.js +179 -0
- package/dist/quota/combined.js.map +1 -0
- package/dist/quota/format.d.ts +105 -0
- package/dist/quota/format.d.ts.map +1 -0
- package/dist/quota/format.js +219 -0
- package/dist/quota/format.js.map +1 -0
- package/dist/quota/index.d.ts +23 -0
- package/dist/quota/index.d.ts.map +1 -0
- package/dist/quota/index.js +42 -0
- package/dist/quota/index.js.map +1 -0
- package/dist/quota/opencode-go/cache.d.ts +17 -0
- package/dist/quota/opencode-go/cache.d.ts.map +1 -0
- package/dist/quota/opencode-go/cache.js +31 -0
- package/dist/quota/opencode-go/cache.js.map +1 -0
- package/dist/quota/opencode-go/client.d.ts +28 -0
- package/dist/quota/opencode-go/client.d.ts.map +1 -0
- package/dist/quota/opencode-go/client.js +48 -0
- package/dist/quota/opencode-go/client.js.map +1 -0
- package/dist/quota/opencode-go/config.d.ts +37 -0
- package/dist/quota/opencode-go/config.d.ts.map +1 -0
- package/dist/quota/opencode-go/config.js +58 -0
- package/dist/quota/opencode-go/config.js.map +1 -0
- package/dist/quota/opencode-go/format.d.ts +36 -0
- package/dist/quota/opencode-go/format.d.ts.map +1 -0
- package/dist/quota/opencode-go/format.js +87 -0
- package/dist/quota/opencode-go/format.js.map +1 -0
- package/dist/quota/opencode-go/index.d.ts +30 -0
- package/dist/quota/opencode-go/index.d.ts.map +1 -0
- package/dist/quota/opencode-go/index.js +108 -0
- package/dist/quota/opencode-go/index.js.map +1 -0
- package/dist/quota/opencode-go/parse.d.ts +41 -0
- package/dist/quota/opencode-go/parse.d.ts.map +1 -0
- package/dist/quota/opencode-go/parse.js +75 -0
- package/dist/quota/opencode-go/parse.js.map +1 -0
- package/dist/quota/opencode-go/types.d.ts +48 -0
- package/dist/quota/opencode-go/types.d.ts.map +1 -0
- package/dist/quota/opencode-go/types.js +11 -0
- package/dist/quota/opencode-go/types.js.map +1 -0
- package/dist/quota/parse.d.ts +33 -0
- package/dist/quota/parse.d.ts.map +1 -0
- package/dist/quota/parse.js +200 -0
- package/dist/quota/parse.js.map +1 -0
- package/dist/quota/types.d.ts +72 -0
- package/dist/quota/types.d.ts.map +1 -0
- package/dist/quota/types.js +10 -0
- package/dist/quota/types.js.map +1 -0
- package/dist/server.d.ts +104 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +119 -2
- package/dist/server.js.map +1 -1
- package/dist/tasks-index.d.ts +14 -4
- package/dist/tasks-index.d.ts.map +1 -1
- package/dist/tasks-index.js +145 -46
- package/dist/tasks-index.js.map +1 -1
- package/dist/translators/event-translator.d.ts +33 -0
- package/dist/translators/event-translator.d.ts.map +1 -1
- package/dist/translators/event-translator.js +101 -0
- package/dist/translators/event-translator.js.map +1 -1
- package/dist/translators/index.d.ts +1 -1
- package/dist/translators/index.d.ts.map +1 -1
- package/dist/translators/index.js +1 -1
- package/dist/translators/index.js.map +1 -1
- package/dist/translators/projection-differ.d.ts +8 -0
- package/dist/translators/projection-differ.d.ts.map +1 -1
- package/dist/translators/projection-differ.js +19 -9
- package/dist/translators/projection-differ.js.map +1 -1
- package/dist/translators/tool-helpers.d.ts +28 -0
- package/dist/translators/tool-helpers.d.ts.map +1 -1
- package/dist/translators/tool-helpers.js +104 -0
- package/dist/translators/tool-helpers.js.map +1 -1
- package/dist/translators/types.d.ts +38 -1
- package/dist/translators/types.d.ts.map +1 -1
- package/dist/translators/types.js.map +1 -1
- package/dist/utils.d.ts +35 -6
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +52 -4
- package/dist/utils.js.map +1 -1
- package/docs/ARCHITECTURE.md +96 -38
- package/docs/BACKLOG.md +57 -0
- package/docs/DEVELOPMENT.md +5 -0
- package/docs/PROTOCOL.md +270 -5
- package/docs/TROUBLESHOOTING.md +98 -14
- package/docs/agents/domain.md +51 -0
- package/docs/agents/issue-tracker.md +22 -0
- package/docs/agents/triage-labels.md +15 -0
- package/package.json +6 -5
|
@@ -9,8 +9,9 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { randomUUID } from "node:crypto";
|
|
11
11
|
import { currentModelCached } from "../config/model-cache.js";
|
|
12
|
-
import { modelContextWindow } from "../config/options.js";
|
|
13
|
-
import { extractExitCode, TOOL_KIND_MAP } from "../translators/tool-helpers.js";
|
|
12
|
+
import { buildConfigOptions, formatModelValue, modelContextWindow, parseModelValue, } from "../config/options.js";
|
|
13
|
+
import { extractExitCode, parseSubagentMetadata, TOOL_KIND_MAP, } from "../translators/tool-helpers.js";
|
|
14
|
+
import { warn } from "../utils.js";
|
|
14
15
|
import { sendSessionUpdate } from "./io.js";
|
|
15
16
|
/** Dispatch one internal event to the ACP client as a session/update. */
|
|
16
17
|
export async function dispatchEvent(server, cx, acpSid, ev, chunkMsgId) {
|
|
@@ -47,6 +48,52 @@ export async function dispatchEvent(server, cx, acpSid, ev, chunkMsgId) {
|
|
|
47
48
|
case "FilesChanged":
|
|
48
49
|
await dispatchFilesChanged(cx, acpSid, ev);
|
|
49
50
|
break;
|
|
51
|
+
case "ConfigChanged":
|
|
52
|
+
await dispatchConfigChanged(server, cx, acpSid, ev);
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Session settings changed (model/mode/thoughtLevel switch). Push the rebuilt
|
|
58
|
+
* configOptions (+ current_mode_update for mode) so the editor UI follows the
|
|
59
|
+
* switch immediately — even mid-turn, without waiting for turn completion.
|
|
60
|
+
*
|
|
61
|
+
* Builds the option structures from the session's authoritative settings
|
|
62
|
+
* (`session/read` via buildConfigOptions), then overlays the values from the
|
|
63
|
+
* event patch. A state.updated patch only carries the fields that actually
|
|
64
|
+
* changed, so building from the null defaults instead would reset every
|
|
65
|
+
* untouched field — most visibly the model dropdown jumping back to the
|
|
66
|
+
* default model mid-conversation.
|
|
67
|
+
* Best-effort: failures are logged and swallowed, never thrown into the loop.
|
|
68
|
+
*/
|
|
69
|
+
async function dispatchConfigChanged(server, cx, acpSid, ev) {
|
|
70
|
+
try {
|
|
71
|
+
// Fall back to null (defaults) only if the session mapping isn't live yet —
|
|
72
|
+
// events routed through a registered turn loop always have it.
|
|
73
|
+
const zcodeSid = server.resolveSid(acpSid) ?? null;
|
|
74
|
+
const options = await buildConfigOptions(server, zcodeSid);
|
|
75
|
+
if (ev.model)
|
|
76
|
+
options[0].currentValue = formatModelValue(ev.model.providerId, ev.model.modelId);
|
|
77
|
+
if (ev.mode !== undefined)
|
|
78
|
+
options[1].currentValue = ev.mode;
|
|
79
|
+
if (ev.thought !== undefined)
|
|
80
|
+
options[2].currentValue = ev.thought;
|
|
81
|
+
await sendSessionUpdate(cx, acpSid, {
|
|
82
|
+
sessionUpdate: "config_option_update",
|
|
83
|
+
configOptions: options,
|
|
84
|
+
});
|
|
85
|
+
if (ev.mode !== undefined) {
|
|
86
|
+
// Mirror the advertised mode so turn-completion reconciliation
|
|
87
|
+
// (emitModeIfChanged) doesn't re-emit the same value.
|
|
88
|
+
server.lastMode.set(acpSid, ev.mode);
|
|
89
|
+
await sendSessionUpdate(cx, acpSid, {
|
|
90
|
+
sessionUpdate: "current_mode_update",
|
|
91
|
+
currentModeId: ev.mode,
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
catch (e) {
|
|
96
|
+
warn(`dispatch: ConfigChanged failed (${e instanceof Error ? e.message : String(e)})`);
|
|
50
97
|
}
|
|
51
98
|
}
|
|
52
99
|
function dispatchToolCallNew(server, cx, acpSid, ev) {
|
|
@@ -54,6 +101,9 @@ function dispatchToolCallNew(server, cx, acpSid, ev) {
|
|
|
54
101
|
const meta = { claudeCode: { toolName: ev.tool } };
|
|
55
102
|
if (termSupported)
|
|
56
103
|
meta["terminal_info"] = { terminal_id: ev.callId };
|
|
104
|
+
// Mark sub-agent dispatch cards so editors can badge them from creation.
|
|
105
|
+
if (ev.tool === "Agent" || ev.tool === "Task")
|
|
106
|
+
meta["subagent"] = true;
|
|
57
107
|
const update = {
|
|
58
108
|
sessionUpdate: "tool_call",
|
|
59
109
|
toolCallId: ev.callId,
|
|
@@ -80,8 +130,18 @@ function dispatchToolCallUpdate(server, cx, acpSid, ev) {
|
|
|
80
130
|
const toolName = ev.tool ?? "";
|
|
81
131
|
const termSupported = server.supportsTerminalOutput() && (toolName === "Bash" || toolName === "bash");
|
|
82
132
|
if (termSupported) {
|
|
83
|
-
// Bash
|
|
84
|
-
//
|
|
133
|
+
// Background Bash: the `result` event carries the launch acknowledgement
|
|
134
|
+
// ("Command running in background with ID: exec_…"), NOT the final output.
|
|
135
|
+
// Closing the card now (terminal_exit + status:completed) would make it
|
|
136
|
+
// indistinguishable from a normal Bash call and steal the lifecycle from
|
|
137
|
+
// the BackgroundTaskListener, which owns the real completion via
|
|
138
|
+
// out-of-band `session.updated` events. So stream any launch text via
|
|
139
|
+
// terminal_output and leave the card in_progress.
|
|
140
|
+
if (ev.background) {
|
|
141
|
+
return dispatchTerminalUpdate(server, cx, acpSid, ev, toolName, {
|
|
142
|
+
skipExit: true,
|
|
143
|
+
});
|
|
144
|
+
}
|
|
85
145
|
return dispatchTerminalUpdate(server, cx, acpSid, ev, toolName);
|
|
86
146
|
}
|
|
87
147
|
const update = {
|
|
@@ -92,6 +152,15 @@ function dispatchToolCallUpdate(server, cx, acpSid, ev) {
|
|
|
92
152
|
const meta = {};
|
|
93
153
|
if (toolName)
|
|
94
154
|
meta["claudeCode"] = { toolName };
|
|
155
|
+
// Sub-agent (Agent/Task tool) result: surface structured metadata so editors
|
|
156
|
+
// can badge the card (agentId, background flag, token/tool/time usage). The
|
|
157
|
+
// raw result text is left in `content` for the user-facing view.
|
|
158
|
+
if ((toolName === "Agent" || toolName === "Task") &&
|
|
159
|
+
(ev.status === "completed" || ev.status === "failed")) {
|
|
160
|
+
const sub = parseSubagentMetadata(ev.rawResult);
|
|
161
|
+
if (sub)
|
|
162
|
+
meta["subagent"] = sub;
|
|
163
|
+
}
|
|
95
164
|
if (ev.output !== undefined)
|
|
96
165
|
update.rawOutput = ev.output;
|
|
97
166
|
if (ev.diffContent && ev.diffContent.length > 0) {
|
|
@@ -110,30 +179,69 @@ function dispatchToolCallUpdate(server, cx, acpSid, ev) {
|
|
|
110
179
|
* Bash terminal update — the 2-notification split (matches acp-agent.ts:5061-5094
|
|
111
180
|
* and the Python bridge's _dispatch_event). Zed correlates by terminal_id, so
|
|
112
181
|
* the two notifications MUST be separate:
|
|
113
|
-
* ① terminal_output — pure data, no status/content.
|
|
114
|
-
* result states (whenever there's data) so live output streams.
|
|
182
|
+
* ① terminal_output — pure data, no status/content. Streams live output.
|
|
115
183
|
* ② terminal_exit — terminal state only: status + content[type:terminal] +
|
|
116
|
-
* _meta.terminal_exit (with exitCode)
|
|
117
|
-
* on completed/failed.
|
|
184
|
+
* _meta.terminal_exit (with exitCode). Sent ONLY on completed/failed.
|
|
118
185
|
*
|
|
119
186
|
* Merging them into one notification causes Zed to clear the content once the
|
|
120
187
|
* turn completes (the original bug); splitting keeps the output visible.
|
|
188
|
+
*
|
|
189
|
+
* OUTPUT DEDUP (two distinct hazards, both fixed here):
|
|
190
|
+
* - Progress replay: zcode's `stdoutTail` is a CUMULATIVE snapshot of the tail,
|
|
191
|
+
* but terminal_output.data is APPEND semantics. Without diffing, each progress
|
|
192
|
+
* event replays the whole tail → N× duplication. We track the last-sent
|
|
193
|
+
* snapshot per callId and emit only the suffix beyond it.
|
|
194
|
+
* - Result replay: zcode's result payload re-sends the COMPLETE output. Once
|
|
195
|
+
* progress has streamed it, emitting it again would duplicate every line.
|
|
196
|
+
* So on completed/failed we SKIP terminal_output IF any progress already
|
|
197
|
+
* streamed data for this callId; for short commands (scheduled → result, no
|
|
198
|
+
* progress) nothing was sent yet, so we emit the full output once.
|
|
121
199
|
*/
|
|
122
|
-
async function dispatchTerminalUpdate(
|
|
123
|
-
//
|
|
200
|
+
async function dispatchTerminalUpdate(server, cx, acpSid, ev, toolName, opts = {}) {
|
|
201
|
+
// Extract the textual output from whichever payload field carries it.
|
|
124
202
|
let termData = ev.rawOutput ?? ev.rawResult;
|
|
125
203
|
if (termData && typeof termData === "object" && !Array.isArray(termData)) {
|
|
126
204
|
termData = termData["content"] ?? "";
|
|
127
205
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
206
|
+
const full = termData ? String(termData) : "";
|
|
207
|
+
const lastSent = server.terminalSentData.get(ev.callId) ?? "";
|
|
208
|
+
// ① terminal_output (pure data, append semantics).
|
|
209
|
+
// - progress (in_progress): zcode's stdoutTail is a CUMULATIVE snapshot of
|
|
210
|
+
// the tail, but terminal_output.data is APPEND semantics, so we diff and
|
|
211
|
+
// emit only the suffix beyond the last-sent snapshot.
|
|
212
|
+
// - result (completed/failed): the full output was already streamed during
|
|
213
|
+
// progress, and zcode's result re-sends the complete tail → skip, UNLESS
|
|
214
|
+
// no progress ever fired (short command: scheduled → result). In that
|
|
215
|
+
// case nothing was streamed yet, so emit the full output once.
|
|
216
|
+
const isResult = ev.status === "completed" || ev.status === "failed";
|
|
217
|
+
const alreadyStreamed = server.terminalSentData.has(ev.callId);
|
|
218
|
+
if (full && !(isResult && alreadyStreamed)) {
|
|
219
|
+
const delta = lastSent && full.startsWith(lastSent) ? full.slice(lastSent.length) : full;
|
|
220
|
+
if (delta) {
|
|
221
|
+
server.terminalSentData.set(ev.callId, full);
|
|
222
|
+
await sendSessionUpdate(cx, acpSid, {
|
|
223
|
+
sessionUpdate: "tool_call_update",
|
|
224
|
+
toolCallId: ev.callId,
|
|
225
|
+
_meta: { terminal_output: { terminal_id: ev.callId, data: delta } },
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
// Background Bash launch: leave the card in_progress — BackgroundTaskListener
|
|
230
|
+
// owns the final status + terminal_exit via out-of-band session.updated. We
|
|
231
|
+
// MUST still seed terminalSentData with an empty entry (even when no launch
|
|
232
|
+
// text was streamed) so the listener can recognise this callId as a tracked
|
|
233
|
+
// launch card and route its updates back to the same card.
|
|
234
|
+
if (opts.skipExit) {
|
|
235
|
+
if (!server.terminalSentData.has(ev.callId)) {
|
|
236
|
+
server.terminalSentData.set(ev.callId, "");
|
|
237
|
+
}
|
|
238
|
+
return;
|
|
134
239
|
}
|
|
135
240
|
// ② terminal_exit (terminal state) — only on completed/failed.
|
|
136
|
-
|
|
241
|
+
// Deliberately omits rawOutput: the output was already streamed via
|
|
242
|
+
// terminal_output.data above, and Zed renders BOTH the terminal buffer and
|
|
243
|
+
// the rawOutput fallback — including rawOutput here duplicates every line.
|
|
244
|
+
if (isResult) {
|
|
137
245
|
const exitCode = extractExitCode(ev.rawResult, ev.status === "failed");
|
|
138
246
|
const exitUpdate = {
|
|
139
247
|
sessionUpdate: "tool_call_update",
|
|
@@ -145,10 +253,10 @@ async function dispatchTerminalUpdate(_server, cx, acpSid, ev, toolName) {
|
|
|
145
253
|
terminal_exit: { terminal_id: ev.callId, exit_code: exitCode, signal: null },
|
|
146
254
|
},
|
|
147
255
|
};
|
|
148
|
-
// rawOutput gives Zed a text fallback outside the terminal render path.
|
|
149
|
-
if (ev.output !== undefined)
|
|
150
|
-
exitUpdate.rawOutput = ev.output;
|
|
151
256
|
await sendSessionUpdate(cx, acpSid, exitUpdate);
|
|
257
|
+
// Terminal session ended — clear the snapshot so a future tool reusing this
|
|
258
|
+
// callId (shouldn't happen, but defensively) starts fresh.
|
|
259
|
+
server.terminalSentData.delete(ev.callId);
|
|
152
260
|
}
|
|
153
261
|
}
|
|
154
262
|
async function dispatchUsageDelta(server, cx, acpSid, ev) {
|
|
@@ -156,8 +264,12 @@ async function dispatchUsageDelta(server, cx, acpSid, ev) {
|
|
|
156
264
|
// config.json limit.context so the editor can render the context bar.
|
|
157
265
|
let size = ev.size;
|
|
158
266
|
if (!size) {
|
|
159
|
-
|
|
160
|
-
|
|
267
|
+
// Resolve to the real backend session id — `acpSid` may be a lazy
|
|
268
|
+
// session/new placeholder that the backend rejects with "Session is not
|
|
269
|
+
// active", wasting a 5s request timeout on every usage_update.
|
|
270
|
+
const zcodeSid = server.resolveSid(acpSid) ?? acpSid;
|
|
271
|
+
const { providerId, modelId } = parseModelValue(await currentModelCached(server, zcodeSid));
|
|
272
|
+
size = modelContextWindow(providerId, modelId);
|
|
161
273
|
}
|
|
162
274
|
await sendSessionUpdate(cx, acpSid, {
|
|
163
275
|
sessionUpdate: "usage_update",
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/handlers/dispatch.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,5 +39,20 @@ export declare function updateRuntimeModelConfig(server: ZcodeAcpServer, params:
|
|
|
39
39
|
export declare function setModel(server: ZcodeAcpServer, params: ExtensionParams): Promise<Result>;
|
|
40
40
|
/** session/setMode → zcode session/setMode + emit config_option/current_mode updates. */
|
|
41
41
|
export declare function setMode(server: ZcodeAcpServer, params: ExtensionParams, cx: acp.AgentContext): Promise<Result>;
|
|
42
|
+
/**
|
|
43
|
+
* Wait for a zcode session's internal AI turn to release its prompt lock.
|
|
44
|
+
*
|
|
45
|
+
* `session/goal(set)` and `session/compact` start an internal AI turn that
|
|
46
|
+
* keeps running after the request() response. projection.status=idle does NOT
|
|
47
|
+
* mean the lock is released (goal set often shows idle quickly while the lock
|
|
48
|
+
* persists 10-25s). The reliable check: retry a probe call (goal show) until it
|
|
49
|
+
* no longer reports "prompt is running".
|
|
50
|
+
*
|
|
51
|
+
* `expectLock` (compact): compact's turn has a startup delay — at this moment
|
|
52
|
+
* the lock isn't held yet, so a probe succeeds immediately (false "released").
|
|
53
|
+
* With expectLock=true, we first require observing "prompt is running" once
|
|
54
|
+
* (proving the turn truly started) before trusting a later success.
|
|
55
|
+
*/
|
|
56
|
+
export declare function waitForTurnIdle(server: ZcodeAcpServer, zcodeSid: string, timeoutMs: number, probeMethod: string, expectLock: boolean): Promise<boolean>;
|
|
42
57
|
export {};
|
|
43
58
|
//# sourceMappingURL=extensions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../src/handlers/extensions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,KAAK,GAAG,MAAM,0BAA0B,CAAC;AAOrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../src/handlers/extensions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,KAAK,GAAG,MAAM,0BAA0B,CAAC;AAOrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAsBnD,UAAU,eAAe;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEtC,iFAAiF;AACjF,wBAAsB,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAmB3F;AAED,sFAAsF;AACtF,wBAAsB,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAa7F;AAED,2EAA2E;AAC3E,wBAAsB,aAAa,CACjC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,MAAM,CAAC,CAcjB;AAED,uFAAuF;AACvF,wBAAsB,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAyB3F;AAED,+EAA+E;AAC/E,wBAAsB,OAAO,CAC3B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,eAAe,EACvB,EAAE,EAAE,GAAG,CAAC,YAAY,GACnB,OAAO,CAAC,MAAM,CAAC,CAiCjB;AAED,kFAAkF;AAClF,wBAAsB,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAW5F;AAED,yEAAyE;AACzE,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,MAAM,CAAC,CAqBjB;AAED,+DAA+D;AAC/D,wBAAsB,eAAe,CACnC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,MAAM,CAAC,CAYjB;AAED,wFAAwF;AACxF,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,MAAM,CAAC,CAajB;AAED,8EAA8E;AAC9E,wBAAsB,QAAQ,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAQ/F;AAED,yFAAyF;AACzF,wBAAsB,OAAO,CAC3B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,eAAe,EACvB,EAAE,EAAE,GAAG,CAAC,YAAY,GACnB,OAAO,CAAC,MAAM,CAAC,CA8BjB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC,OAAO,CAAC,CAuDlB"}
|
|
@@ -16,6 +16,7 @@ import { buildConfigOptions, buildModes } from "../config/options.js";
|
|
|
16
16
|
import { ProjectionDiffer } from "../translators/projection-differ.js";
|
|
17
17
|
import { log, warn } from "../utils.js";
|
|
18
18
|
import { sendSessionUpdate } from "./io.js";
|
|
19
|
+
import { ensureRealSession } from "./session.js";
|
|
19
20
|
/** Build the zcode `target` object from ACP params (checkpoint or latest). */
|
|
20
21
|
function buildCheckpointTarget(params) {
|
|
21
22
|
if (params.checkpointId)
|
|
@@ -24,29 +25,33 @@ function buildCheckpointTarget(params) {
|
|
|
24
25
|
return params.target;
|
|
25
26
|
return { kind: "latestCheckpoint" };
|
|
26
27
|
}
|
|
27
|
-
/**
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
return
|
|
28
|
+
/**
|
|
29
|
+
* Resolve zcode sid from ACP params, materializing a lazy session/new
|
|
30
|
+
* placeholder on first use; throw if the session is unknown.
|
|
31
|
+
*/
|
|
32
|
+
async function resolveSidOrThrow(server, params) {
|
|
33
|
+
return ensureRealSession(server, params.sessionId);
|
|
33
34
|
}
|
|
34
35
|
/** session/fork → zcode session/fork: branch a new session from a checkpoint. */
|
|
35
36
|
export async function fork(server, params) {
|
|
36
|
-
const zcodeSid = resolveSidOrThrow(server, params);
|
|
37
|
+
const zcodeSid = await resolveSidOrThrow(server, params);
|
|
37
38
|
const backend = server.ensureBackend();
|
|
38
39
|
const resp = await backend.request(server.nextId(), "session/fork", { sessionId: zcodeSid, target: buildCheckpointTarget(params) }, 15000);
|
|
39
40
|
if (resp.error)
|
|
40
41
|
throw new Error(`fork failed: ${resp.error.message}`);
|
|
42
|
+
// 3.3.0 returns `forkedSessionId` (not `sessionId`) for the new session id.
|
|
43
|
+
// Register it so subsequent ACP calls targeting the fork can resolve the sid.
|
|
41
44
|
const result = (resp.result ?? {});
|
|
42
|
-
if (result.
|
|
43
|
-
server.
|
|
44
|
-
|
|
45
|
+
if (result.forkedSessionId) {
|
|
46
|
+
server.registerSession(result.forkedSessionId, result.forkedSessionId);
|
|
47
|
+
server.ensureBackgroundListener(result.forkedSessionId);
|
|
48
|
+
}
|
|
49
|
+
log(`session/fork → ${result.forkedSessionId ?? "?"}`);
|
|
45
50
|
return result;
|
|
46
51
|
}
|
|
47
52
|
/** session/rewind → zcode session/rewind: restore workspace files to a checkpoint. */
|
|
48
53
|
export async function rewind(server, params) {
|
|
49
|
-
const zcodeSid = resolveSidOrThrow(server, params);
|
|
54
|
+
const zcodeSid = await resolveSidOrThrow(server, params);
|
|
50
55
|
const zcParams = {
|
|
51
56
|
sessionId: zcodeSid,
|
|
52
57
|
target: buildCheckpointTarget(params),
|
|
@@ -63,7 +68,7 @@ export async function rewind(server, params) {
|
|
|
63
68
|
}
|
|
64
69
|
/** session/rewindCascade → zcode session/rewindCascade: cascade rewind. */
|
|
65
70
|
export async function rewindCascade(server, params) {
|
|
66
|
-
const zcodeSid = resolveSidOrThrow(server, params);
|
|
71
|
+
const zcodeSid = await resolveSidOrThrow(server, params);
|
|
67
72
|
const zcParams = {
|
|
68
73
|
sessionId: zcodeSid,
|
|
69
74
|
target: buildCheckpointTarget(params),
|
|
@@ -82,7 +87,7 @@ export async function rewindCascade(server, params) {
|
|
|
82
87
|
}
|
|
83
88
|
/** session/goal → zcode session/goal: read/set/replace/clear/pause/resume the goal. */
|
|
84
89
|
export async function goal(server, params) {
|
|
85
|
-
const zcodeSid = resolveSidOrThrow(server, params);
|
|
90
|
+
const zcodeSid = await resolveSidOrThrow(server, params);
|
|
86
91
|
const action = params.action ?? "show";
|
|
87
92
|
const zcParams = { sessionId: zcodeSid, action };
|
|
88
93
|
if ((action === "set" || action === "replace") && params.objective !== undefined) {
|
|
@@ -113,7 +118,7 @@ export async function goal(server, params) {
|
|
|
113
118
|
/** session/compact → zcode session/compact + wait for the internal AI turn. */
|
|
114
119
|
export async function compact(server, params, cx) {
|
|
115
120
|
const acpSid = params.sessionId;
|
|
116
|
-
const zcodeSid = resolveSidOrThrow(server, params);
|
|
121
|
+
const zcodeSid = await resolveSidOrThrow(server, params);
|
|
117
122
|
const resp = await server
|
|
118
123
|
.ensureBackend()
|
|
119
124
|
.request(server.nextId(), "session/compact", { sessionId: zcodeSid }, 30000);
|
|
@@ -149,7 +154,7 @@ export async function compact(server, params, cx) {
|
|
|
149
154
|
}
|
|
150
155
|
/** session/steer → zcode session/steer: append instructions to a running turn. */
|
|
151
156
|
export async function steer(server, params) {
|
|
152
|
-
const zcodeSid = resolveSidOrThrow(server, params);
|
|
157
|
+
const zcodeSid = await resolveSidOrThrow(server, params);
|
|
153
158
|
const content = String(params.content ?? "");
|
|
154
159
|
if (!content.trim())
|
|
155
160
|
throw new Error("steer requires content");
|
|
@@ -164,8 +169,8 @@ export async function steer(server, params) {
|
|
|
164
169
|
}
|
|
165
170
|
/** session/cancelBackgroundTask → zcode session/cancelBackgroundTask. */
|
|
166
171
|
export async function cancelBackgroundTask(server, params) {
|
|
167
|
-
const zcodeSid = resolveSidOrThrow(server, params);
|
|
168
|
-
const taskId = params.taskId;
|
|
172
|
+
const zcodeSid = await resolveSidOrThrow(server, params);
|
|
173
|
+
const taskId = String(params.taskId ?? "");
|
|
169
174
|
if (!taskId)
|
|
170
175
|
throw new Error("cancelBackgroundTask requires taskId");
|
|
171
176
|
const resp = await server
|
|
@@ -173,18 +178,25 @@ export async function cancelBackgroundTask(server, params) {
|
|
|
173
178
|
.request(server.nextId(), "session/cancelBackgroundTask", { sessionId: zcodeSid, taskId }, 15000);
|
|
174
179
|
if (resp.error)
|
|
175
180
|
throw new Error(`cancelBackgroundTask failed: ${resp.error.message}`);
|
|
181
|
+
// Reflect the cancellation on the ACP tool card (status:failed + cancelled
|
|
182
|
+
// flag) and clear the background listener's local tracking. Best-effort.
|
|
183
|
+
const listener = server.backgroundListeners.get(zcodeSid);
|
|
184
|
+
if (listener)
|
|
185
|
+
void listener.markCancelled(taskId);
|
|
176
186
|
log(`session/cancelBackgroundTask → cancelled=${resp.result?.cancelled}`);
|
|
177
187
|
return (resp.result ?? {});
|
|
178
188
|
}
|
|
179
189
|
/** session/setThoughtLevel → zcode session/setThoughtLevel. */
|
|
180
190
|
export async function setThoughtLevel(server, params) {
|
|
181
|
-
const zcodeSid = resolveSidOrThrow(server, params);
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
191
|
+
const zcodeSid = await resolveSidOrThrow(server, params);
|
|
192
|
+
// 3.3.0 marks thoughtLevel optional (omitting it resets to the model's
|
|
193
|
+
// default). Forward it only when present so a reset call isn't rejected.
|
|
194
|
+
const zcParams = { sessionId: zcodeSid };
|
|
195
|
+
if (params.thoughtLevel !== undefined)
|
|
196
|
+
zcParams.thoughtLevel = params.thoughtLevel;
|
|
185
197
|
const resp = await server
|
|
186
198
|
.ensureBackend()
|
|
187
|
-
.request(server.nextId(), "session/setThoughtLevel",
|
|
199
|
+
.request(server.nextId(), "session/setThoughtLevel", zcParams, 15000);
|
|
188
200
|
if (resp.error)
|
|
189
201
|
throw new Error(`setThoughtLevel failed: ${resp.error.message}`);
|
|
190
202
|
log("session/setThoughtLevel → ok");
|
|
@@ -192,7 +204,7 @@ export async function setThoughtLevel(server, params) {
|
|
|
192
204
|
}
|
|
193
205
|
/** session/updateRuntimeModelConfig → same: runtime overlay of session model config. */
|
|
194
206
|
export async function updateRuntimeModelConfig(server, params) {
|
|
195
|
-
const zcodeSid = resolveSidOrThrow(server, params);
|
|
207
|
+
const zcodeSid = await resolveSidOrThrow(server, params);
|
|
196
208
|
const runtimeModel = params.runtimeModel;
|
|
197
209
|
if (!runtimeModel)
|
|
198
210
|
throw new Error("updateRuntimeModelConfig requires runtimeModel");
|
|
@@ -209,7 +221,7 @@ export async function updateRuntimeModelConfig(server, params) {
|
|
|
209
221
|
}
|
|
210
222
|
/** session/setModel → applyModelSwitch (runtime overlay, not persistence). */
|
|
211
223
|
export async function setModel(server, params) {
|
|
212
|
-
const zcodeSid = resolveSidOrThrow(server, params);
|
|
224
|
+
const zcodeSid = await resolveSidOrThrow(server, params);
|
|
213
225
|
const modelId = params.modelId;
|
|
214
226
|
if (!modelId)
|
|
215
227
|
throw new Error("setModel requires modelId");
|
|
@@ -222,8 +234,12 @@ export async function setModel(server, params) {
|
|
|
222
234
|
/** session/setMode → zcode session/setMode + emit config_option/current_mode updates. */
|
|
223
235
|
export async function setMode(server, params, cx) {
|
|
224
236
|
const acpSid = params.sessionId;
|
|
225
|
-
const zcodeSid = resolveSidOrThrow(server, params);
|
|
226
|
-
|
|
237
|
+
const zcodeSid = await resolveSidOrThrow(server, params);
|
|
238
|
+
// Two spellings reach this handler: the bridge's camelCase extension
|
|
239
|
+
// (`session/setMode` with `mode`) and the spec's `session/set_mode` with
|
|
240
|
+
// `modeId`. Clients like Paseo only send the spec spelling and failed with
|
|
241
|
+
// -32601 when it wasn't routed, so both normalize here.
|
|
242
|
+
const mode = params.mode ?? params.modeId;
|
|
227
243
|
if (!mode)
|
|
228
244
|
throw new Error("setMode requires mode");
|
|
229
245
|
const resp = await server
|
|
@@ -263,7 +279,7 @@ export async function setMode(server, params, cx) {
|
|
|
263
279
|
* With expectLock=true, we first require observing "prompt is running" once
|
|
264
280
|
* (proving the turn truly started) before trusting a later success.
|
|
265
281
|
*/
|
|
266
|
-
async function waitForTurnIdle(server, zcodeSid, timeoutMs, probeMethod, expectLock) {
|
|
282
|
+
export async function waitForTurnIdle(server, zcodeSid, timeoutMs, probeMethod, expectLock) {
|
|
267
283
|
const backend = server.ensureBackend();
|
|
268
284
|
const t0 = Date.now();
|
|
269
285
|
let lockSeen = !expectLock;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../src/handlers/extensions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../src/handlers/extensions.ts"],"names":[],"mappings":"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"}
|
package/dist/handlers/io.d.ts
CHANGED
|
@@ -26,8 +26,17 @@ export declare function sendAvailableCommands(cx: acp.AgentContext, sessionId: s
|
|
|
26
26
|
* Send `available_commands_update` after a short delay so it lands after the
|
|
27
27
|
* session response. ACP clients initialize their session state machine on the
|
|
28
28
|
* response; a notification arriving earlier can be dropped, leaving the `/`
|
|
29
|
-
* completion menu empty.
|
|
30
|
-
*
|
|
29
|
+
* completion menu empty.
|
|
30
|
+
*
|
|
31
|
+
* The notification is fired three times (50ms / 300ms / 1000ms) to cover slow
|
|
32
|
+
* client warm-up: on a fresh Zed tab the session view may still be initialising
|
|
33
|
+
* at the 50ms mark, dropping the first notification. `available_commands_update`
|
|
34
|
+
* is overwrite-semantics (not additive), so repeats are harmless — the client
|
|
35
|
+
* keeps the latest snapshot. Fire-and-forget (returns void).
|
|
36
|
+
*
|
|
37
|
+
* Each call cancels any still-pending timers from a prior call for the same
|
|
38
|
+
* session, so a rapid sequence (e.g. load then resume) can't have an old
|
|
39
|
+
* timer overwrite the newest command list.
|
|
31
40
|
*/
|
|
32
41
|
export declare function sendAvailableCommandsDeferred(cx: acp.AgentContext, sessionId: string, commands: ReadonlyArray<SlashCommandEntry>): void;
|
|
33
42
|
/** Throw a JSON-RPC error from a handler (the SDK converts it to an error response). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../../src/handlers/io.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,KAAK,GAAG,MAAM,0BAA0B,CAAC;AAGrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../../src/handlers/io.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,KAAK,GAAG,MAAM,0BAA0B,CAAC;AAGrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGnD,0DAA0D;AAC1D,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;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,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
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* the JSON shape so handlers stay readable.
|
|
8
8
|
*/
|
|
9
9
|
import { RequestError } from "@agentclientprotocol/sdk";
|
|
10
|
+
import { warn } from "../utils.js";
|
|
10
11
|
/** Send a `session/update` notification to the client. */
|
|
11
12
|
export function sendSessionUpdate(cx, sessionId, update) {
|
|
12
13
|
return cx.notify("session/update", { sessionId, update });
|
|
@@ -34,19 +35,62 @@ export function sendAvailableCommands(cx, sessionId, commands) {
|
|
|
34
35
|
}),
|
|
35
36
|
});
|
|
36
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Per-session pending deferred-notification timeouts. Tracks the timers from
|
|
40
|
+
* repeated `sendAvailableCommandsDeferred` calls so a newer call can cancel
|
|
41
|
+
* the older call's still-pending timers. Without this, a slow timer (e.g.
|
|
42
|
+
* the 1000ms fire from an earlier session/load) could fire AFTER a newer
|
|
43
|
+
* call's 50ms fire, overwriting the newer command list with the stale one.
|
|
44
|
+
*/
|
|
45
|
+
const activeDeferredTimeouts = new Map();
|
|
37
46
|
/**
|
|
38
47
|
* Send `available_commands_update` after a short delay so it lands after the
|
|
39
48
|
* session response. ACP clients initialize their session state machine on the
|
|
40
49
|
* response; a notification arriving earlier can be dropped, leaving the `/`
|
|
41
|
-
* completion menu empty.
|
|
42
|
-
*
|
|
50
|
+
* completion menu empty.
|
|
51
|
+
*
|
|
52
|
+
* The notification is fired three times (50ms / 300ms / 1000ms) to cover slow
|
|
53
|
+
* client warm-up: on a fresh Zed tab the session view may still be initialising
|
|
54
|
+
* at the 50ms mark, dropping the first notification. `available_commands_update`
|
|
55
|
+
* is overwrite-semantics (not additive), so repeats are harmless — the client
|
|
56
|
+
* keeps the latest snapshot. Fire-and-forget (returns void).
|
|
57
|
+
*
|
|
58
|
+
* Each call cancels any still-pending timers from a prior call for the same
|
|
59
|
+
* session, so a rapid sequence (e.g. load then resume) can't have an old
|
|
60
|
+
* timer overwrite the newest command list.
|
|
43
61
|
*/
|
|
44
62
|
export function sendAvailableCommandsDeferred(cx, sessionId, commands) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
63
|
+
// Cancel any pending timers from a previous call so the stale command list
|
|
64
|
+
// can't overwrite the one we're about to schedule.
|
|
65
|
+
const prev = activeDeferredTimeouts.get(sessionId);
|
|
66
|
+
if (prev) {
|
|
67
|
+
for (const t of prev)
|
|
68
|
+
clearTimeout(t);
|
|
69
|
+
prev.clear();
|
|
70
|
+
}
|
|
71
|
+
const active = new Set();
|
|
72
|
+
activeDeferredTimeouts.set(sessionId, active);
|
|
73
|
+
for (const delay of [50, 300, 1000]) {
|
|
74
|
+
const t = setTimeout(() => {
|
|
75
|
+
sendAvailableCommands(cx, sessionId, commands)
|
|
76
|
+
.catch((e) => {
|
|
77
|
+
warn(`available_commands_update failed (sid=${sessionId}, delay=${delay}): ` +
|
|
78
|
+
`${e instanceof Error ? e.message : String(e)}`);
|
|
79
|
+
})
|
|
80
|
+
.finally(() => {
|
|
81
|
+
active.delete(t);
|
|
82
|
+
// Drop the session entry once all three fires have settled, so the
|
|
83
|
+
// map doesn't retain empty Sets. Only delete if still ours — a newer
|
|
84
|
+
// call may have replaced the entry.
|
|
85
|
+
if (active.size === 0 && activeDeferredTimeouts.get(sessionId) === active) {
|
|
86
|
+
activeDeferredTimeouts.delete(sessionId);
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}, delay);
|
|
90
|
+
// unref so shutdown is not held up by this deferred notification.
|
|
91
|
+
t.unref?.();
|
|
92
|
+
active.add(t);
|
|
93
|
+
}
|
|
50
94
|
}
|
|
51
95
|
/** Throw a JSON-RPC error from a handler (the SDK converts it to an error response). */
|
|
52
96
|
export function throwError(code, message) {
|