@harness-nexus/cli 0.1.0-alpha.1 → 0.1.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/daemon/acp/adapters.d.ts.map +1 -1
- package/dist/daemon/acp/adapters.js +9 -3
- package/dist/daemon/acp/adapters.js.map +1 -1
- package/dist/daemon/acp/agent-connection.d.ts +30 -1
- package/dist/daemon/acp/agent-connection.d.ts.map +1 -1
- package/dist/daemon/acp/agent-connection.js +59 -6
- package/dist/daemon/acp/agent-connection.js.map +1 -1
- package/dist/daemon/chat.d.ts +9 -1
- package/dist/daemon/chat.d.ts.map +1 -1
- package/dist/daemon/chat.js +642 -37
- package/dist/daemon/chat.js.map +1 -1
- package/dist/daemon/client.d.ts +10 -2
- package/dist/daemon/client.d.ts.map +1 -1
- package/dist/daemon/client.js +99 -23
- package/dist/daemon/client.js.map +1 -1
- package/dist/daemon/config-view.d.ts +42 -0
- package/dist/daemon/config-view.d.ts.map +1 -0
- package/dist/daemon/config-view.js +159 -0
- package/dist/daemon/config-view.js.map +1 -0
- package/dist/daemon/dsh-sessions.d.ts +161 -0
- package/dist/daemon/dsh-sessions.d.ts.map +1 -0
- package/dist/daemon/dsh-sessions.js +674 -0
- package/dist/daemon/dsh-sessions.js.map +1 -0
- package/dist/daemon/dsh-tap/index.mjs +99 -0
- package/dist/daemon/dsh-tap-listener.d.ts +62 -0
- package/dist/daemon/dsh-tap-listener.d.ts.map +1 -0
- package/dist/daemon/dsh-tap-listener.js +196 -0
- package/dist/daemon/dsh-tap-listener.js.map +1 -0
- package/dist/daemon/jobs.d.ts +8 -5
- package/dist/daemon/jobs.d.ts.map +1 -1
- package/dist/daemon/jobs.js +28 -8
- package/dist/daemon/jobs.js.map +1 -1
- package/dist/daemon/runtime-config.d.ts +34 -0
- package/dist/daemon/runtime-config.d.ts.map +1 -0
- package/dist/daemon/runtime-config.js +343 -0
- package/dist/daemon/runtime-config.js.map +1 -0
- package/dist/daemon/runtime.d.ts +49 -0
- package/dist/daemon/runtime.d.ts.map +1 -0
- package/dist/daemon/runtime.js +218 -0
- package/dist/daemon/runtime.js.map +1 -0
- package/dist/daemon/sessions.d.ts +21 -0
- package/dist/daemon/sessions.d.ts.map +1 -0
- package/dist/daemon/sessions.js +125 -0
- package/dist/daemon/sessions.js.map +1 -0
- package/dist/daemon/workspace.d.ts +3 -0
- package/dist/daemon/workspace.d.ts.map +1 -0
- package/dist/daemon/workspace.js +27 -0
- package/dist/daemon/workspace.js.map +1 -0
- package/dist/install/adapters/deepseek.d.ts +4 -0
- package/dist/install/adapters/deepseek.d.ts.map +1 -1
- package/dist/install/adapters/deepseek.js +4 -2
- package/dist/install/adapters/deepseek.js.map +1 -1
- package/dist/inventory/common.d.ts +2 -0
- package/dist/inventory/common.d.ts.map +1 -1
- package/dist/inventory/common.js.map +1 -1
- package/dist/inventory/runtime.d.ts +40 -0
- package/dist/inventory/runtime.d.ts.map +1 -0
- package/dist/inventory/runtime.js +114 -0
- package/dist/inventory/runtime.js.map +1 -0
- package/dist/inventory/scanners/claude-code.d.ts +2 -0
- package/dist/inventory/scanners/claude-code.d.ts.map +1 -1
- package/dist/inventory/scanners/claude-code.js +103 -39
- package/dist/inventory/scanners/claude-code.js.map +1 -1
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../../../src/daemon/acp/adapters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../../../src/daemon/acp/adapters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAiCzD,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,UAAU,GAAG,IAAI,CAQhG"}
|
|
@@ -9,9 +9,15 @@
|
|
|
9
9
|
* tests at a fixture agent.
|
|
10
10
|
*/
|
|
11
11
|
const DEFAULT_ACP_COMMANDS = {
|
|
12
|
-
//
|
|
13
|
-
//
|
|
14
|
-
|
|
12
|
+
// The ACP project's official wrapper (took over from @zed-industries's
|
|
13
|
+
// 0.23.x, which the daemon shipped until 2026-09). Reason for the swap,
|
|
14
|
+
// rig-verified: the old wrapper never requests thinking on gateway/unknown
|
|
15
|
+
// models (MAX_THINKING_TOKENS on the adapter env didn't help either), so
|
|
16
|
+
// chat showed no thought stream; the official 0.76.0 streams
|
|
17
|
+
// agent_thought_chunk by default, advertises loadSession + list/resume
|
|
18
|
+
// (both caps shapes the daemon already detects), and returns full
|
|
19
|
+
// SessionInfo. Same switch the stable reference CC bridge runs.
|
|
20
|
+
'claude-code': ['npx', '-y', '@agentclientprotocol/claude-agent-acp'],
|
|
15
21
|
// Official Zed adapter wrapping the OpenAI Codex CLI (needs `codex` on PATH).
|
|
16
22
|
codex: ['npx', '-y', '@zed-industries/codex-acp'],
|
|
17
23
|
// DeepSeek Harness ships a native ACP v1 profile (needs `dsh` on PATH and a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../../src/daemon/acp/adapters.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,MAAM,oBAAoB,GAAkD;IAC1E,
|
|
1
|
+
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../../src/daemon/acp/adapters.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,MAAM,oBAAoB,GAAkD;IAC1E,uEAAuE;IACvE,wEAAwE;IACxE,2EAA2E;IAC3E,yEAAyE;IACzE,6DAA6D;IAC7D,uEAAuE;IACvE,kEAAkE;IAClE,gEAAgE;IAChE,aAAa,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,uCAAuC,CAAC;IACrE,8EAA8E;IAC9E,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,2BAA2B,CAAC;IACjD,4EAA4E;IAC5E,kDAAkD;IAClD,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC;IACrC,yDAAyD;IACzD,MAAM,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,CAAC;IACxC,KAAK,EAAE,IAAI,EAAE,oDAAoD;IACjE,OAAO,EAAE,IAAI;CACd,CAAC;AAOF,MAAM,UAAU,iBAAiB,CAAC,MAAmB,EAAE,GAAsB;IAC3E,MAAM,QAAQ,GAAG,GAAG,CAAC,kBAAkB,MAAM,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAClF,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACrD,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3C,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACtD,CAAC;IACD,MAAM,GAAG,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACzC,OAAO,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAE,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AACxE,CAAC"}
|
|
@@ -8,6 +8,27 @@ export interface AcpAgentInfo {
|
|
|
8
8
|
name?: string | undefined;
|
|
9
9
|
version?: string | undefined;
|
|
10
10
|
}
|
|
11
|
+
/** The resume-relevant slice of `agentCapabilities` (9 W7). */
|
|
12
|
+
export interface AcpSessionCaps {
|
|
13
|
+
/** `session/load` — resume WITH history replay (claude/codex adapters). */
|
|
14
|
+
load: boolean;
|
|
15
|
+
/** `session/resume` — resume WITHOUT replay (dsh's native adapter). */
|
|
16
|
+
resume: boolean;
|
|
17
|
+
/** `session/list` exists (the claude/codex listing path). */
|
|
18
|
+
list: boolean;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Advertised caps decide the resume dialect (9 W7): prefer `session/load`
|
|
22
|
+
* (replay for free), fall back to `session/resume`. `loadSession` is the
|
|
23
|
+
* pre-capability legacy flag — and WHERE it sits differs by adapter family:
|
|
24
|
+
* the Zed adapters set it at the initialize RESULT ROOT, the official
|
|
25
|
+
* `@agentclientprotocol/claude-agent-acp` sets it NESTED inside
|
|
26
|
+
* `agentCapabilities.loadSession` while its `sessionCapabilities` has `resume`
|
|
27
|
+
* but NOT `load`. Reading only the root made the official wrapper look like a
|
|
28
|
+
* resume-only adapter — claude-code channels then resumed with NO replay
|
|
29
|
+
* ("opening a history session shows an empty pane").
|
|
30
|
+
*/
|
|
31
|
+
export declare function deriveSessionCaps(result: unknown): AcpSessionCaps;
|
|
11
32
|
export declare class AcpAgentConnection {
|
|
12
33
|
private proc;
|
|
13
34
|
private nextId;
|
|
@@ -25,6 +46,7 @@ export declare class AcpAgentConnection {
|
|
|
25
46
|
}): Promise<{
|
|
26
47
|
conn: AcpAgentConnection;
|
|
27
48
|
agentInfo: AcpAgentInfo;
|
|
49
|
+
sessionCaps: AcpSessionCaps;
|
|
28
50
|
}>;
|
|
29
51
|
/** JSON-RPC request with a timeout; rejects on error/exit. */
|
|
30
52
|
request(method: string, params: unknown, timeoutMs: number): Promise<unknown>;
|
|
@@ -35,7 +57,14 @@ export declare class AcpAgentConnection {
|
|
|
35
57
|
setPermissionHandler(handler: (jsonrpcId: number, params: Record<string, unknown>) => void): void;
|
|
36
58
|
/** Fires when the subprocess exits on its own (crash/quit) — not on kill(). */
|
|
37
59
|
onExit(handler: () => void): void;
|
|
38
|
-
/**
|
|
60
|
+
/**
|
|
61
|
+
* SIGTERM the whole process GROUP, then SIGKILL it after `graceMs`.
|
|
62
|
+
* Idempotent. The group signal is the point: the direct child (npm/npx)
|
|
63
|
+
* dying does NOT take the wrapper and the vendor binary with it — they
|
|
64
|
+
* reparent to init and keep running. The timer is unref'd and NOT cleared
|
|
65
|
+
* on leader exit: grandchildren can outlive the leader, and the follow-up
|
|
66
|
+
* SIGKILL to a dead group is a caught ESRCH.
|
|
67
|
+
*/
|
|
39
68
|
kill(graceMs?: number): void;
|
|
40
69
|
private handleLine;
|
|
41
70
|
private send;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-connection.d.ts","sourceRoot":"","sources":["../../../src/daemon/acp/agent-connection.ts"],"names":[],"mappings":"AAkBA,MAAM,MAAM,iBAAiB,GAC3B;IAAE,OAAO,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,CAAC;AAEvE,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,IAAI,CAAe;IAC3B,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,cAAc,CAA4E;IAClG,OAAO,CAAC,YAAY,CACb;IACP,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO;IAwBP,mEAAmE;WACtD,KAAK,CAChB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC;QAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;KAAE,GACvF,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-connection.d.ts","sourceRoot":"","sources":["../../../src/daemon/acp/agent-connection.ts"],"names":[],"mappings":"AAkBA,MAAM,MAAM,iBAAiB,GAC3B;IAAE,OAAO,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,CAAC;AAEvE,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED,+DAA+D;AAC/D,MAAM,WAAW,cAAc;IAC7B,2EAA2E;IAC3E,IAAI,EAAE,OAAO,CAAC;IACd,uEAAuE;IACvE,MAAM,EAAE,OAAO,CAAC;IAChB,6DAA6D;IAC7D,IAAI,EAAE,OAAO,CAAC;CACf;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,cAAc,CAcjE;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,IAAI,CAAe;IAC3B,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,cAAc,CAA4E;IAClG,OAAO,CAAC,YAAY,CACb;IACP,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO;IAwBP,mEAAmE;WACtD,KAAK,CAChB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC;QAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;KAAE,GACvF,OAAO,CAAC;QACT,IAAI,EAAE,kBAAkB,CAAC;QACzB,SAAS,EAAE,YAAY,CAAC;QACxB,WAAW,EAAE,cAAc,CAAC;KAC7B,CAAC;IAsCF,8DAA8D;IAC9D,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAmB7E,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAI7C,2EAA2E;IAC3E,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAItE,sBAAsB,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,IAAI;IAIhG,oBAAoB,CAClB,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GACpE,IAAI;IAIP,+EAA+E;IAC/E,MAAM,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI;IAIjC;;;;;;;OAOG;IACH,IAAI,CAAC,OAAO,SAAO,GAAG,IAAI;IAoB1B,OAAO,CAAC,UAAU;IA4ClB,OAAO,CAAC,IAAI;IAKZ,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,gBAAgB;CAGzB"}
|
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
import { spawn } from 'node:child_process';
|
|
2
2
|
import { createInterface } from 'node:readline';
|
|
3
|
+
/**
|
|
4
|
+
* Advertised caps decide the resume dialect (9 W7): prefer `session/load`
|
|
5
|
+
* (replay for free), fall back to `session/resume`. `loadSession` is the
|
|
6
|
+
* pre-capability legacy flag — and WHERE it sits differs by adapter family:
|
|
7
|
+
* the Zed adapters set it at the initialize RESULT ROOT, the official
|
|
8
|
+
* `@agentclientprotocol/claude-agent-acp` sets it NESTED inside
|
|
9
|
+
* `agentCapabilities.loadSession` while its `sessionCapabilities` has `resume`
|
|
10
|
+
* but NOT `load`. Reading only the root made the official wrapper look like a
|
|
11
|
+
* resume-only adapter — claude-code channels then resumed with NO replay
|
|
12
|
+
* ("opening a history session shows an empty pane").
|
|
13
|
+
*/
|
|
14
|
+
export function deriveSessionCaps(result) {
|
|
15
|
+
const r = (result ?? {});
|
|
16
|
+
const caps = r.agentCapabilities?.sessionCapabilities ?? {};
|
|
17
|
+
return {
|
|
18
|
+
load: caps['load'] !== undefined ||
|
|
19
|
+
r.loadSession === true ||
|
|
20
|
+
r.agentCapabilities?.loadSession === true,
|
|
21
|
+
resume: caps['resume'] !== undefined,
|
|
22
|
+
list: caps['list'] !== undefined,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
3
25
|
export class AcpAgentConnection {
|
|
4
26
|
proc;
|
|
5
27
|
nextId = 1;
|
|
@@ -41,6 +63,11 @@ export class AcpAgentConnection {
|
|
|
41
63
|
cwd: opts.cwd,
|
|
42
64
|
env: { ...process.env, ...(opts.env ?? {}) },
|
|
43
65
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
66
|
+
// Own process group: adapters spawn their own trees (npm → sh →
|
|
67
|
+
// wrapper → the vendor binary). Signaling only the direct child
|
|
68
|
+
// orphaned the grandchildren — a bare `claude` binary survived every
|
|
69
|
+
// teardown, parented to init. kill() takes the whole group down.
|
|
70
|
+
detached: true,
|
|
44
71
|
});
|
|
45
72
|
}
|
|
46
73
|
catch (e) {
|
|
@@ -52,7 +79,11 @@ export class AcpAgentConnection {
|
|
|
52
79
|
});
|
|
53
80
|
const result = (await conn.request('initialize', { protocolVersion: 1, clientCapabilities: {} }, initializeTimeoutMs));
|
|
54
81
|
conn.notify('initialized', {});
|
|
55
|
-
return {
|
|
82
|
+
return {
|
|
83
|
+
conn,
|
|
84
|
+
agentInfo: result?.agentInfo ?? {},
|
|
85
|
+
sessionCaps: deriveSessionCaps(result),
|
|
86
|
+
};
|
|
56
87
|
}
|
|
57
88
|
/** JSON-RPC request with a timeout; rejects on error/exit. */
|
|
58
89
|
request(method, params, timeoutMs) {
|
|
@@ -90,14 +121,33 @@ export class AcpAgentConnection {
|
|
|
90
121
|
onExit(handler) {
|
|
91
122
|
this.proc.on('exit', handler);
|
|
92
123
|
}
|
|
93
|
-
/**
|
|
124
|
+
/**
|
|
125
|
+
* SIGTERM the whole process GROUP, then SIGKILL it after `graceMs`.
|
|
126
|
+
* Idempotent. The group signal is the point: the direct child (npm/npx)
|
|
127
|
+
* dying does NOT take the wrapper and the vendor binary with it — they
|
|
128
|
+
* reparent to init and keep running. The timer is unref'd and NOT cleared
|
|
129
|
+
* on leader exit: grandchildren can outlive the leader, and the follow-up
|
|
130
|
+
* SIGKILL to a dead group is a caught ESRCH.
|
|
131
|
+
*/
|
|
94
132
|
kill(graceMs = 3000) {
|
|
95
133
|
if (this.exited || this.proc.stdin === null)
|
|
96
134
|
return;
|
|
97
135
|
this.proc.removeAllListeners('exit');
|
|
98
|
-
const
|
|
99
|
-
|
|
100
|
-
|
|
136
|
+
const pid = this.proc.pid;
|
|
137
|
+
const sigGroup = (sig) => {
|
|
138
|
+
if (pid === undefined)
|
|
139
|
+
return;
|
|
140
|
+
try {
|
|
141
|
+
process.kill(-pid, sig); // negative pid = the process group
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
// group already gone
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
const killTimer = setTimeout(() => sigGroup('SIGKILL'), graceMs);
|
|
148
|
+
killTimer.unref();
|
|
149
|
+
sigGroup('SIGTERM');
|
|
150
|
+
this.proc.kill('SIGTERM'); // the leader too (belt and braces)
|
|
101
151
|
this.failAll(new Error('agent process killed'));
|
|
102
152
|
this.exited = true;
|
|
103
153
|
}
|
|
@@ -129,7 +179,10 @@ export class AcpAgentConnection {
|
|
|
129
179
|
this.pending.delete(Number(msg.id));
|
|
130
180
|
clearTimeout(pending.timer);
|
|
131
181
|
if (msg.error !== undefined) {
|
|
132
|
-
|
|
182
|
+
// Error `data` (e.g. dsh's `details: "no adapter registered for …"`)
|
|
183
|
+
// rides along — the callers key retry/surface logic off it.
|
|
184
|
+
const details = msg.error.data?.details;
|
|
185
|
+
pending.reject(new Error(`${msg.error.message ?? 'ACP request failed'}${details ? `: ${details}` : ''}`));
|
|
133
186
|
}
|
|
134
187
|
else {
|
|
135
188
|
pending.resolve(msg.result);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-connection.js","sourceRoot":"","sources":["../../../src/daemon/acp/agent-connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-connection.js","sourceRoot":"","sources":["../../../src/daemon/acp/agent-connection.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon/chat.d.ts
CHANGED
|
@@ -5,6 +5,8 @@ export interface ChatHandlersOptions {
|
|
|
5
5
|
env?: NodeJS.ProcessEnv;
|
|
6
6
|
/** Extra env for the adapter subprocess. */
|
|
7
7
|
spawnEnv?: NodeJS.ProcessEnv;
|
|
8
|
+
/** Overridable for tests (transcript lookup on dsh resume). */
|
|
9
|
+
homeDir?: string;
|
|
8
10
|
}
|
|
9
11
|
export declare function attachChatHandlers(socket: Socket, opts?: ChatHandlersOptions): void;
|
|
10
12
|
type UnknownRecord = Record<string, unknown>;
|
|
@@ -16,7 +18,13 @@ export declare function textOf(contentBlock: unknown): string;
|
|
|
16
18
|
* Defensive view of an ACP ToolCallUpdate: shared-schema-validated, falling
|
|
17
19
|
* back to the bare id when an adapter sends something malformed (the server
|
|
18
20
|
* re-validates everything crossing the wire).
|
|
21
|
+
*
|
|
22
|
+
* 9 W6 enrichment: carries `toolName` (the card registry key — from the
|
|
23
|
+
* update itself or the Claude `_meta.claudeCode.toolName` on the envelope),
|
|
24
|
+
* `rawInput` (dropped when oversized — Write-style file bodies), structured
|
|
25
|
+
* `content` (diff/text/terminal items), and the `rawOutput` text — the rich
|
|
26
|
+
* tool cards' rendering inputs.
|
|
19
27
|
*/
|
|
20
|
-
export declare function toolCallView(toolCallUpdate: unknown): AcpToolCallView;
|
|
28
|
+
export declare function toolCallView(toolCallUpdate: unknown, metaToolName?: string): AcpToolCallView;
|
|
21
29
|
export {};
|
|
22
30
|
//# sourceMappingURL=chat.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/daemon/chat.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/daemon/chat.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAUL,KAAK,eAAe,EACpB,KAAK,eAAe,EAGrB,MAAM,uBAAuB,CAAC;AAiI/B,MAAM,WAAW,mBAAmB;IAClC,oFAAoF;IACpF,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAC7B,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,mBAAwB,GAAG,IAAI,CAkcvF;AA+OD,KAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE7C,2EAA2E;AAC3E,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,eAAe,GAAG,IAAI,CA6C1E;AAED,2DAA2D;AAC3D,wBAAgB,MAAM,CAAC,YAAY,EAAE,OAAO,GAAG,MAAM,CAgBpD;AAaD;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,cAAc,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,eAAe,CAK5F"}
|