linkshell-cli 0.3.28 → 0.4.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/dist/cli/src/commands/setup.js +20 -2
- package/dist/cli/src/commands/setup.js.map +1 -1
- package/dist/cli/src/commands/upgrade.js +9 -24
- package/dist/cli/src/commands/upgrade.js.map +1 -1
- package/dist/cli/src/index.js +28 -26
- package/dist/cli/src/index.js.map +1 -1
- package/dist/cli/src/providers.d.ts +3 -7
- package/dist/cli/src/providers.js +76 -19
- package/dist/cli/src/providers.js.map +1 -1
- package/dist/cli/src/runtime/acp/acp-client.d.ts +0 -10
- package/dist/cli/src/runtime/acp/acp-client.js +20 -146
- package/dist/cli/src/runtime/acp/acp-client.js.map +1 -1
- package/dist/cli/src/runtime/acp/agent-session.d.ts +62 -0
- package/dist/cli/src/runtime/acp/agent-session.js +1075 -0
- package/dist/cli/src/runtime/acp/agent-session.js.map +1 -0
- package/dist/cli/src/runtime/acp/agent-workspace.d.ts +2 -27
- package/dist/cli/src/runtime/acp/agent-workspace.js +224 -1008
- package/dist/cli/src/runtime/acp/agent-workspace.js.map +1 -1
- package/dist/cli/src/runtime/acp/claude-sdk-client.d.ts +1 -3
- package/dist/cli/src/runtime/acp/claude-sdk-client.js +50 -82
- package/dist/cli/src/runtime/acp/claude-sdk-client.js.map +1 -1
- package/dist/cli/src/runtime/acp/claude-stream-json-client.d.ts +1 -2
- package/dist/cli/src/runtime/acp/claude-stream-json-client.js +36 -54
- package/dist/cli/src/runtime/acp/claude-stream-json-client.js.map +1 -1
- package/dist/cli/src/runtime/acp/json-rpc.d.ts +1 -34
- package/dist/cli/src/runtime/acp/json-rpc.js +8 -32
- package/dist/cli/src/runtime/acp/json-rpc.js.map +1 -1
- package/dist/cli/src/runtime/acp/provider-resolver.d.ts +0 -3
- package/dist/cli/src/runtime/acp/provider-resolver.js +6 -26
- package/dist/cli/src/runtime/acp/provider-resolver.js.map +1 -1
- package/dist/cli/src/runtime/bridge-session.d.ts +31 -1
- package/dist/cli/src/runtime/bridge-session.js +991 -81
- package/dist/cli/src/runtime/bridge-session.js.map +1 -1
- package/dist/cli/src/runtime/screen-fallback.d.ts +1 -1
- package/dist/cli/src/runtime/screen-fallback.js +4 -4
- package/dist/cli/src/runtime/screen-fallback.js.map +1 -1
- package/dist/cli/src/runtime/screen-share.d.ts +1 -1
- package/dist/cli/src/runtime/screen-share.js +7 -7
- package/dist/cli/src/runtime/screen-share.js.map +1 -1
- package/dist/cli/tsconfig.tsbuildinfo +1 -1
- package/dist/shared-protocol/src/index.d.ts +11978 -3423
- package/dist/shared-protocol/src/index.js +114 -163
- package/dist/shared-protocol/src/index.js.map +1 -1
- package/package.json +13 -13
- package/src/commands/setup.ts +31 -5
- package/src/commands/upgrade.ts +8 -28
- package/src/index.ts +34 -29
- package/src/providers.ts +108 -26
- package/src/runtime/acp/acp-client.ts +22 -159
- package/src/runtime/acp/agent-session.ts +1180 -0
- package/src/runtime/acp/agent-workspace.ts +246 -1094
- package/src/runtime/acp/claude-sdk-client.ts +51 -86
- package/src/runtime/acp/claude-stream-json-client.ts +42 -59
- package/src/runtime/acp/json-rpc.ts +14 -46
- package/src/runtime/acp/provider-resolver.ts +6 -29
- package/src/runtime/bridge-session.ts +1092 -84
- package/src/runtime/screen-fallback.ts +5 -5
- package/src/runtime/screen-share.ts +8 -8
- package/src/runtime/acp/claude-sessions.ts +0 -563
- package/src/runtime/acp/codex-rpc-bridge.ts +0 -233
- package/src/runtime/acp/codex-sessions.ts +0 -802
- package/src/types/linkshell-gateway.d.ts +0 -18
|
@@ -5,20 +5,16 @@ export class JsonRpcStdioTransport {
|
|
|
5
5
|
onNotification;
|
|
6
6
|
onRequest;
|
|
7
7
|
onExit;
|
|
8
|
-
onMessage;
|
|
9
|
-
options;
|
|
10
8
|
child;
|
|
11
9
|
nextId = 1;
|
|
12
10
|
pending = new Map();
|
|
13
11
|
buffer = "";
|
|
14
|
-
constructor(command, framing, onNotification, onRequest, onExit
|
|
12
|
+
constructor(command, framing, onNotification, onRequest, onExit) {
|
|
15
13
|
this.command = command;
|
|
16
14
|
this.framing = framing;
|
|
17
15
|
this.onNotification = onNotification;
|
|
18
16
|
this.onRequest = onRequest;
|
|
19
17
|
this.onExit = onExit;
|
|
20
|
-
this.onMessage = onMessage;
|
|
21
|
-
this.options = options;
|
|
22
18
|
}
|
|
23
19
|
start(cwd) {
|
|
24
20
|
if (this.child)
|
|
@@ -34,10 +30,8 @@ export class JsonRpcStdioTransport {
|
|
|
34
30
|
this.child.stdout.on("data", (chunk) => this.read(chunk));
|
|
35
31
|
this.child.stderr.on("data", (chunk) => {
|
|
36
32
|
const trimmed = chunk.trim();
|
|
37
|
-
if (trimmed)
|
|
33
|
+
if (trimmed)
|
|
38
34
|
process.stderr.write(`[agent:stderr] ${trimmed}\n`);
|
|
39
|
-
this.options.onStderrData?.(trimmed);
|
|
40
|
-
}
|
|
41
35
|
});
|
|
42
36
|
this.child.on("error", (error) => this.failAll(error.message));
|
|
43
37
|
this.child.on("exit", (code, signal) => {
|
|
@@ -49,7 +43,7 @@ export class JsonRpcStdioTransport {
|
|
|
49
43
|
return Promise.reject(new Error("ACP agent is not running"));
|
|
50
44
|
}
|
|
51
45
|
const id = this.nextId++;
|
|
52
|
-
const message =
|
|
46
|
+
const message = { jsonrpc: "2.0", id, method, params };
|
|
53
47
|
return new Promise((resolve, reject) => {
|
|
54
48
|
const timer = timeoutMs && timeoutMs > 0
|
|
55
49
|
? setTimeout(() => {
|
|
@@ -62,10 +56,7 @@ export class JsonRpcStdioTransport {
|
|
|
62
56
|
});
|
|
63
57
|
}
|
|
64
58
|
notify(method, params) {
|
|
65
|
-
this.write(
|
|
66
|
-
}
|
|
67
|
-
send(message) {
|
|
68
|
-
this.write(this.normalizeOutgoing(message));
|
|
59
|
+
this.write({ jsonrpc: "2.0", method, params });
|
|
69
60
|
}
|
|
70
61
|
stop() {
|
|
71
62
|
const child = this.child;
|
|
@@ -74,16 +65,6 @@ export class JsonRpcStdioTransport {
|
|
|
74
65
|
child.kill("SIGTERM");
|
|
75
66
|
this.failAll("ACP transport stopped");
|
|
76
67
|
}
|
|
77
|
-
normalizeOutgoing(message) {
|
|
78
|
-
const includeJsonrpc = this.options.includeJsonrpc ?? true;
|
|
79
|
-
if (includeJsonrpc)
|
|
80
|
-
return { jsonrpc: "2.0", ...message };
|
|
81
|
-
const { jsonrpc: _jsonrpc, ...rest } = message;
|
|
82
|
-
return rest;
|
|
83
|
-
}
|
|
84
|
-
withJsonrpc(message) {
|
|
85
|
-
return this.normalizeOutgoing(message);
|
|
86
|
-
}
|
|
87
68
|
write(message) {
|
|
88
69
|
const raw = JSON.stringify(message);
|
|
89
70
|
if (this.framing === "newline") {
|
|
@@ -125,12 +106,6 @@ export class JsonRpcStdioTransport {
|
|
|
125
106
|
message = JSON.parse(raw);
|
|
126
107
|
}
|
|
127
108
|
catch {
|
|
128
|
-
if (this.options.verbose) {
|
|
129
|
-
process.stderr.write(`[agent:rpc] ignored invalid JSON: ${raw.slice(0, 200)}\n`);
|
|
130
|
-
}
|
|
131
|
-
return;
|
|
132
|
-
}
|
|
133
|
-
if (this.onMessage?.(message)) {
|
|
134
109
|
return;
|
|
135
110
|
}
|
|
136
111
|
if ("id" in message && ("result" in message || "error" in message)) {
|
|
@@ -149,15 +124,16 @@ export class JsonRpcStdioTransport {
|
|
|
149
124
|
}
|
|
150
125
|
if ("method" in message && "id" in message) {
|
|
151
126
|
Promise.resolve(this.onRequest(message.method, message.params))
|
|
152
|
-
.then((result) => this.write(
|
|
127
|
+
.then((result) => this.write({ jsonrpc: "2.0", id: message.id, result }))
|
|
153
128
|
.catch((error) => {
|
|
154
|
-
this.write(
|
|
129
|
+
this.write({
|
|
130
|
+
jsonrpc: "2.0",
|
|
155
131
|
id: message.id,
|
|
156
132
|
error: {
|
|
157
133
|
code: -32000,
|
|
158
134
|
message: error instanceof Error ? error.message : String(error),
|
|
159
135
|
},
|
|
160
|
-
})
|
|
136
|
+
});
|
|
161
137
|
});
|
|
162
138
|
return;
|
|
163
139
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-rpc.js","sourceRoot":"","sources":["../../../../../src/runtime/acp/json-rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAuC,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"json-rpc.js","sourceRoot":"","sources":["../../../../../src/runtime/acp/json-rpc.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,9 +7,6 @@ export interface AgentCommandConfig {
|
|
|
7
7
|
protocol: AgentProtocol;
|
|
8
8
|
framing: AgentFraming;
|
|
9
9
|
}
|
|
10
|
-
export declare function resolveCodexAppServerCommands(input: {
|
|
11
|
-
command?: string;
|
|
12
|
-
}): AgentCommandConfig[];
|
|
13
10
|
export declare function resolveAgentCommand(input: {
|
|
14
11
|
provider: AgentProvider;
|
|
15
12
|
command?: string;
|
|
@@ -3,31 +3,6 @@ import { createRequire } from "node:module";
|
|
|
3
3
|
import { homedir } from "node:os";
|
|
4
4
|
import { existsSync } from "node:fs";
|
|
5
5
|
const require = createRequire(import.meta.url);
|
|
6
|
-
export function resolveCodexAppServerCommands(input) {
|
|
7
|
-
const explicit = input.command?.trim();
|
|
8
|
-
if (explicit) {
|
|
9
|
-
return [{
|
|
10
|
-
provider: "codex",
|
|
11
|
-
command: explicit,
|
|
12
|
-
protocol: "codex-app-server",
|
|
13
|
-
framing: "newline",
|
|
14
|
-
}];
|
|
15
|
-
}
|
|
16
|
-
return [
|
|
17
|
-
{
|
|
18
|
-
provider: "codex",
|
|
19
|
-
command: "codex app-server --listen stdio://",
|
|
20
|
-
protocol: "codex-app-server",
|
|
21
|
-
framing: "newline",
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
provider: "codex",
|
|
25
|
-
command: "codex app-server proxy",
|
|
26
|
-
protocol: "codex-app-server",
|
|
27
|
-
framing: "newline",
|
|
28
|
-
},
|
|
29
|
-
];
|
|
30
|
-
}
|
|
31
6
|
export function resolveAgentCommand(input) {
|
|
32
7
|
const explicit = input.command?.trim();
|
|
33
8
|
if (explicit) {
|
|
@@ -41,7 +16,12 @@ export function resolveAgentCommand(input) {
|
|
|
41
16
|
};
|
|
42
17
|
}
|
|
43
18
|
if (input.provider === "codex") {
|
|
44
|
-
return
|
|
19
|
+
return {
|
|
20
|
+
provider: "codex",
|
|
21
|
+
command: "codex app-server --listen stdio://",
|
|
22
|
+
protocol: "codex-app-server",
|
|
23
|
+
framing: "newline",
|
|
24
|
+
};
|
|
45
25
|
}
|
|
46
26
|
if (input.provider === "claude") {
|
|
47
27
|
if (process.env.LINKSHELL_CLAUDE_PROVIDER !== "stream-json" && hasPackage("@anthropic-ai/claude-agent-sdk")) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-resolver.js","sourceRoot":"","sources":["../../../../../src/runtime/acp/provider-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAMrC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAS/C,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"provider-resolver.js","sourceRoot":"","sources":["../../../../../src/runtime/acp/provider-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ export interface BridgeSessionOptions {
|
|
|
4
4
|
gatewayUrl: string;
|
|
5
5
|
gatewayHttpUrl: string;
|
|
6
6
|
pairingGateway?: string;
|
|
7
|
-
|
|
7
|
+
sessionId?: string;
|
|
8
8
|
cols: number;
|
|
9
9
|
rows: number;
|
|
10
10
|
clientName: string;
|
|
@@ -29,14 +29,19 @@ export declare class BridgeSession {
|
|
|
29
29
|
private sessionId;
|
|
30
30
|
private exited;
|
|
31
31
|
private stopped;
|
|
32
|
+
private permissionStacks;
|
|
33
|
+
private pendingPermissions;
|
|
34
|
+
private hookMarker;
|
|
32
35
|
private screenCapture;
|
|
33
36
|
private screenShare;
|
|
34
37
|
private tunnelSockets;
|
|
35
38
|
private keepAwake;
|
|
39
|
+
private agentSession;
|
|
36
40
|
private agentWorkspace;
|
|
37
41
|
private machineIdentity;
|
|
38
42
|
constructor(options: BridgeSessionOptions);
|
|
39
43
|
private log;
|
|
44
|
+
private terminalHookMarker;
|
|
40
45
|
start(): Promise<void>;
|
|
41
46
|
private createPairing;
|
|
42
47
|
private resolveAuthToken;
|
|
@@ -50,6 +55,31 @@ export declare class BridgeSession {
|
|
|
50
55
|
private sendTerminalList;
|
|
51
56
|
private replayFrom;
|
|
52
57
|
private spawnTerminal;
|
|
58
|
+
private setupHookServer;
|
|
59
|
+
private refreshAgentPermissionHooks;
|
|
60
|
+
private setupClaudeHooks;
|
|
61
|
+
private setupCodexHooks;
|
|
62
|
+
private setupGeminiHooks;
|
|
63
|
+
private setupCopilotHooks;
|
|
64
|
+
private handleHookEvent;
|
|
65
|
+
private sendHookPermissionRequest;
|
|
66
|
+
/**
|
|
67
|
+
* Normalize hook event names from different CLI providers to unified internal names.
|
|
68
|
+
* Claude: PascalCase (PreToolUse, PostToolUse, Stop, PermissionRequest)
|
|
69
|
+
* Codex: camelCase (preToolUse, postToolUse, sessionStart)
|
|
70
|
+
* Gemini: PascalCase but different names (BeforeTool, AfterTool, BeforeSubmitPrompt)
|
|
71
|
+
*/
|
|
72
|
+
private normalizeHookName;
|
|
73
|
+
/** Auto-resolve a single pending permission (user acted in terminal) */
|
|
74
|
+
private autoResolvePending;
|
|
75
|
+
/** Drain all pending permissions for a terminal (session ended, stop, etc.) */
|
|
76
|
+
private drainPendingPermissions;
|
|
77
|
+
private resolvePendingPermission;
|
|
78
|
+
private formatHookPermissionDecision;
|
|
79
|
+
private sendPermissionSnapshot;
|
|
80
|
+
private cleanupHookServer;
|
|
81
|
+
/** Remove hook entries containing our marker from a JSON config file */
|
|
82
|
+
private removeHookEntries;
|
|
53
83
|
private send;
|
|
54
84
|
private startHeartbeat;
|
|
55
85
|
private stopHeartbeat;
|