linkshell-cli 0.5.1 → 0.5.4

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.
Files changed (47) hide show
  1. package/dist/cli/src/index.js +23 -1
  2. package/dist/cli/src/index.js.map +1 -1
  3. package/dist/cli/src/runtime/acp/acp-client.d.ts +16 -0
  4. package/dist/cli/src/runtime/acp/acp-client.js +81 -21
  5. package/dist/cli/src/runtime/acp/acp-client.js.map +1 -1
  6. package/dist/cli/src/runtime/acp/agent-workspace-git.d.ts +63 -0
  7. package/dist/cli/src/runtime/acp/agent-workspace-git.js +297 -0
  8. package/dist/cli/src/runtime/acp/agent-workspace-git.js.map +1 -0
  9. package/dist/cli/src/runtime/acp/agent-workspace.d.ts +14 -0
  10. package/dist/cli/src/runtime/acp/agent-workspace.js +845 -88
  11. package/dist/cli/src/runtime/acp/agent-workspace.js.map +1 -1
  12. package/dist/cli/src/runtime/acp/claude-sdk-client.d.ts +17 -1
  13. package/dist/cli/src/runtime/acp/claude-sdk-client.js +331 -19
  14. package/dist/cli/src/runtime/acp/claude-sdk-client.js.map +1 -1
  15. package/dist/cli/src/runtime/acp/claude-stream-json-client.d.ts +1 -0
  16. package/dist/cli/src/runtime/acp/claude-stream-json-client.js +87 -14
  17. package/dist/cli/src/runtime/acp/claude-stream-json-client.js.map +1 -1
  18. package/dist/cli/src/runtime/acp/json-rpc.d.ts +1 -0
  19. package/dist/cli/src/runtime/acp/json-rpc.js +6 -0
  20. package/dist/cli/src/runtime/acp/json-rpc.js.map +1 -1
  21. package/dist/cli/src/runtime/acp-relay.d.ts +23 -0
  22. package/dist/cli/src/runtime/acp-relay.js +73 -0
  23. package/dist/cli/src/runtime/acp-relay.js.map +1 -0
  24. package/dist/cli/src/runtime/bridge-session.d.ts +37 -0
  25. package/dist/cli/src/runtime/bridge-session.js +318 -69
  26. package/dist/cli/src/runtime/bridge-session.js.map +1 -1
  27. package/dist/cli/tsconfig.tsbuildinfo +1 -1
  28. package/dist/shared-protocol/src/index.d.ts +5436 -3886
  29. package/dist/shared-protocol/src/index.js +127 -13
  30. package/dist/shared-protocol/src/index.js.map +1 -1
  31. package/package.json +3 -3
  32. package/src/index.ts +29 -1
  33. package/src/runtime/acp/acp-client.ts +96 -21
  34. package/src/runtime/acp/agent-workspace.ts +916 -83
  35. package/src/runtime/acp/claude-sdk-client.ts +352 -31
  36. package/src/runtime/acp/claude-stream-json-client.ts +89 -16
  37. package/src/runtime/acp/json-rpc.ts +5 -0
  38. package/src/runtime/bridge-session.ts +343 -75
  39. package/dist/cli/src/runtime/acp/claude-sessions.d.ts +0 -57
  40. package/dist/cli/src/runtime/acp/claude-sessions.js +0 -506
  41. package/dist/cli/src/runtime/acp/claude-sessions.js.map +0 -1
  42. package/dist/cli/src/runtime/acp/codex-rpc-bridge.d.ts +0 -34
  43. package/dist/cli/src/runtime/acp/codex-rpc-bridge.js +0 -204
  44. package/dist/cli/src/runtime/acp/codex-rpc-bridge.js.map +0 -1
  45. package/dist/cli/src/runtime/acp/codex-sessions.d.ts +0 -60
  46. package/dist/cli/src/runtime/acp/codex-sessions.js +0 -731
  47. package/dist/cli/src/runtime/acp/codex-sessions.js.map +0 -1
@@ -0,0 +1,297 @@
1
+ import { execFile } from "node:child_process";
2
+ import { promisify } from "node:util";
3
+ const execFileAsync = promisify(execFile);
4
+ const GIT_TIMEOUT_MS = 30_000;
5
+ const MAX_BUFFER = 2 * 1024 * 1024; // 2 MiB stdout cap — enough for large diffs without OOM
6
+ class GitError extends Error {
7
+ constructor(message) {
8
+ super(message);
9
+ this.name = "GitError";
10
+ }
11
+ }
12
+ async function git(cwd, args) {
13
+ try {
14
+ const { stdout, stderr } = await execFileAsync("git", args, {
15
+ cwd,
16
+ timeout: GIT_TIMEOUT_MS,
17
+ maxBuffer: MAX_BUFFER,
18
+ env: { ...process.env, GIT_TERMINAL_PROMPT: "0", LC_ALL: "C" },
19
+ });
20
+ return { stdout: stdout.toString(), stderr: stderr.toString() };
21
+ }
22
+ catch (err) {
23
+ if (err && typeof err === "object" && "stderr" in err) {
24
+ const stderr = String(err.stderr ?? "");
25
+ const stdout = String(err.stdout ?? "");
26
+ const msg = stderr.trim() || err.message || "git failed";
27
+ const e = new GitError(msg);
28
+ e.stdout = stdout;
29
+ e.stderr = stderr;
30
+ throw e;
31
+ }
32
+ throw new GitError(err.message ?? String(err));
33
+ }
34
+ }
35
+ function parsePorcelainStatus(porcelain) {
36
+ const files = [];
37
+ const lines = porcelain.split("\n").filter(Boolean);
38
+ for (const line of lines) {
39
+ if (line.length < 3)
40
+ continue;
41
+ const status = line.slice(0, 2);
42
+ const rest = line.slice(3);
43
+ // Rename: `R old -> new`
44
+ const path = rest.includes(" -> ") ? rest.split(" -> ")[1] ?? rest : rest;
45
+ files.push({
46
+ path,
47
+ status,
48
+ staged: status[0] !== " " && status[0] !== "?",
49
+ untracked: status === "??",
50
+ });
51
+ }
52
+ return files;
53
+ }
54
+ function parseLogPretty(stdout) {
55
+ // Format: %H%x1f%h%x1f%an%x1f%aI%x1f%s%x1f%b%x1e
56
+ const records = stdout.split("\x1e").map((r) => r.trim()).filter(Boolean);
57
+ return records.map((record) => {
58
+ const [hash, shortHash, author, date, subject, body] = record.split("\x1f");
59
+ return {
60
+ hash: hash ?? "",
61
+ shortHash: shortHash ?? "",
62
+ author: author || undefined,
63
+ date: date || undefined,
64
+ subject: subject ?? "",
65
+ body: body || undefined,
66
+ };
67
+ });
68
+ }
69
+ async function readBranches(cwd) {
70
+ // Format: name|current(*/space)|upstream|ahead|behind
71
+ const fmt = "%(refname:short)%00%(HEAD)%00%(upstream:short)%00%(upstream:track,nobracket)";
72
+ const { stdout } = await git(cwd, ["for-each-ref", `--format=${fmt}`, "refs/heads"]);
73
+ const branches = [];
74
+ for (const line of stdout.split("\n").filter(Boolean)) {
75
+ const [name, head, upstream, track] = line.split("\x00");
76
+ if (!name)
77
+ continue;
78
+ let ahead;
79
+ let behind;
80
+ if (track) {
81
+ const aheadMatch = track.match(/ahead (\d+)/);
82
+ const behindMatch = track.match(/behind (\d+)/);
83
+ if (aheadMatch)
84
+ ahead = Number(aheadMatch[1]);
85
+ if (behindMatch)
86
+ behind = Number(behindMatch[1]);
87
+ }
88
+ branches.push({
89
+ name,
90
+ current: head === "*",
91
+ remote: upstream || undefined,
92
+ ahead,
93
+ behind,
94
+ });
95
+ }
96
+ return branches;
97
+ }
98
+ async function readUpstreamCounts(cwd) {
99
+ try {
100
+ const { stdout: upstream } = await git(cwd, ["rev-parse", "--abbrev-ref", "@{upstream}"]);
101
+ const upstreamRef = upstream.trim();
102
+ if (!upstreamRef)
103
+ return {};
104
+ const { stdout } = await git(cwd, ["rev-list", "--left-right", "--count", `${upstreamRef}...HEAD`]);
105
+ const [behindStr, aheadStr] = stdout.trim().split(/\s+/);
106
+ return {
107
+ upstream: upstreamRef,
108
+ ahead: Number.isFinite(Number(aheadStr)) ? Number(aheadStr) : undefined,
109
+ behind: Number.isFinite(Number(behindStr)) ? Number(behindStr) : undefined,
110
+ };
111
+ }
112
+ catch {
113
+ return {};
114
+ }
115
+ }
116
+ async function actionStatus(cwd) {
117
+ const [{ stdout: branchOut }, { stdout: porcelainOut }, { stdout: diffOut }] = await Promise.all([
118
+ git(cwd, ["rev-parse", "--abbrev-ref", "HEAD"]),
119
+ git(cwd, ["status", "--porcelain"]),
120
+ git(cwd, ["diff", "--no-color"]).catch(() => ({ stdout: "" })),
121
+ ]);
122
+ const upstreamCounts = await readUpstreamCounts(cwd);
123
+ const files = parsePorcelainStatus(porcelainOut);
124
+ return {
125
+ branch: branchOut.trim(),
126
+ upstream: upstreamCounts.upstream,
127
+ ahead: upstreamCounts.ahead,
128
+ behind: upstreamCounts.behind,
129
+ dirty: files.length > 0,
130
+ files,
131
+ diff: diffOut || undefined,
132
+ };
133
+ }
134
+ async function actionCommit(cwd, args) {
135
+ const message = args?.message?.trim();
136
+ if (!message)
137
+ throw new GitError("commit message is required");
138
+ if (args?.addAll)
139
+ await git(cwd, ["add", "-A"]);
140
+ const { stdout, stderr } = await git(cwd, ["commit", "-m", message]);
141
+ return { stdout, stderr };
142
+ }
143
+ async function actionPush(cwd, args) {
144
+ if (args?.force && !args.confirmed) {
145
+ throw new GitError("force push requires confirmed: true");
146
+ }
147
+ const remote = args?.remote ?? "origin";
148
+ const branch = args?.branch;
149
+ const cmd = ["push"];
150
+ if (args?.force)
151
+ cmd.push("--force-with-lease");
152
+ cmd.push(remote);
153
+ if (branch)
154
+ cmd.push(branch);
155
+ const { stdout, stderr } = await git(cwd, cmd);
156
+ return { stdout, stderr };
157
+ }
158
+ async function actionPull(cwd, args) {
159
+ const remote = args?.remote ?? "origin";
160
+ const cmd = ["pull", "--ff-only", remote];
161
+ if (args?.branch)
162
+ cmd.push(args.branch);
163
+ const { stdout, stderr } = await git(cwd, cmd);
164
+ return { stdout, stderr };
165
+ }
166
+ async function actionBranches(cwd) {
167
+ return { branches: await readBranches(cwd) };
168
+ }
169
+ async function actionCheckout(cwd, args) {
170
+ const branch = args?.branch;
171
+ if (!branch)
172
+ throw new GitError("branch is required");
173
+ const { stdout, stderr } = await git(cwd, ["checkout", branch]);
174
+ return { stdout, stderr, branch };
175
+ }
176
+ async function actionCreateBranch(cwd, args) {
177
+ const branch = args?.branch;
178
+ if (!branch)
179
+ throw new GitError("branch is required");
180
+ const { stdout, stderr } = await git(cwd, ["checkout", "-b", branch]);
181
+ return { stdout, stderr, branch };
182
+ }
183
+ async function actionLog(cwd, args) {
184
+ const limit = Math.min(Math.max(args?.limit ?? 30, 1), 200);
185
+ const fmt = "%H%x1f%h%x1f%an%x1f%aI%x1f%s%x1f%b%x1e";
186
+ const { stdout } = await git(cwd, ["log", `-n${limit}`, `--pretty=format:${fmt}`]);
187
+ return { commits: parseLogPretty(stdout) };
188
+ }
189
+ async function actionStash(cwd, args) {
190
+ const cmd = ["stash", "push"];
191
+ if (args?.message)
192
+ cmd.push("-m", args.message);
193
+ const { stdout, stderr } = await git(cwd, cmd);
194
+ return { stdout, stderr };
195
+ }
196
+ async function actionStashPop(cwd) {
197
+ const { stdout, stderr } = await git(cwd, ["stash", "pop"]);
198
+ return { stdout, stderr };
199
+ }
200
+ async function actionResetToRemote(cwd, args) {
201
+ if (!args?.confirmed)
202
+ throw new GitError("resetToRemote requires confirmed: true");
203
+ const upstream = await readUpstreamCounts(cwd);
204
+ if (!upstream.upstream)
205
+ throw new GitError("no upstream branch configured");
206
+ await git(cwd, ["fetch", "--prune"]);
207
+ const { stdout, stderr } = await git(cwd, ["reset", "--hard", upstream.upstream]);
208
+ return { stdout, stderr };
209
+ }
210
+ async function actionRemoteUrl(cwd, args) {
211
+ const remote = args?.remote ?? "origin";
212
+ const { stdout } = await git(cwd, ["remote", "get-url", remote]);
213
+ const url = stdout.trim();
214
+ // Best-effort owner/repo parsing for both ssh and https forms.
215
+ let owner;
216
+ let repo;
217
+ const match = url.match(/[:/]([^:/]+)\/([^/]+?)(?:\.git)?$/);
218
+ if (match) {
219
+ owner = match[1];
220
+ repo = match[2];
221
+ }
222
+ return { remoteUrl: url, remoteOwner: owner, remoteRepo: repo };
223
+ }
224
+ async function actionDiff(cwd, args) {
225
+ const cmd = ["diff", "--no-color"];
226
+ if (args?.staged)
227
+ cmd.push("--cached");
228
+ if (args?.targetRef)
229
+ cmd.push(args.targetRef);
230
+ if (args?.paths && args.paths.length > 0) {
231
+ cmd.push("--", ...args.paths);
232
+ }
233
+ const { stdout } = await git(cwd, cmd);
234
+ return { diff: stdout };
235
+ }
236
+ export async function runGitAction(cwd, action, args) {
237
+ try {
238
+ switch (action) {
239
+ case "status": return { ok: true, data: await actionStatus(cwd) };
240
+ case "commit": return { ok: true, data: await actionCommit(cwd, args) };
241
+ case "push": return { ok: true, data: await actionPush(cwd, args) };
242
+ case "pull": return { ok: true, data: await actionPull(cwd, args) };
243
+ case "branches": return { ok: true, data: await actionBranches(cwd) };
244
+ case "checkout": return { ok: true, data: await actionCheckout(cwd, args) };
245
+ case "createBranch": return { ok: true, data: await actionCreateBranch(cwd, args) };
246
+ case "log": return { ok: true, data: await actionLog(cwd, args) };
247
+ case "stash": return { ok: true, data: await actionStash(cwd, args) };
248
+ case "stashPop": return { ok: true, data: await actionStashPop(cwd) };
249
+ case "resetToRemote": return { ok: true, data: await actionResetToRemote(cwd, args) };
250
+ case "remoteUrl": return { ok: true, data: await actionRemoteUrl(cwd, args) };
251
+ case "diff": return { ok: true, data: await actionDiff(cwd, args) };
252
+ default: {
253
+ const _exhaustive = action;
254
+ return { ok: false, error: `unknown action: ${String(_exhaustive)}` };
255
+ }
256
+ }
257
+ }
258
+ catch (err) {
259
+ return { ok: false, error: err instanceof Error ? err.message : String(err) };
260
+ }
261
+ }
262
+ export async function applyReversePatch(cwd, unifiedDiff, mode) {
263
+ if (!unifiedDiff || !unifiedDiff.trim()) {
264
+ return { ok: false, error: "empty diff" };
265
+ }
266
+ const args = ["apply", "-R"];
267
+ if (mode === "preview")
268
+ args.push("--check");
269
+ args.push("--unidiff-zero", "-p1");
270
+ return new Promise((resolve) => {
271
+ const child = execFile("git", args, {
272
+ cwd,
273
+ timeout: GIT_TIMEOUT_MS,
274
+ maxBuffer: MAX_BUFFER,
275
+ env: { ...process.env, GIT_TERMINAL_PROMPT: "0", LC_ALL: "C" },
276
+ }, (err, _stdout, stderrBuf) => {
277
+ const stderr = stderrBuf?.toString() ?? "";
278
+ if (!err) {
279
+ const paths = [...stderr.matchAll(/error: patch failed: (\S+)/g)]
280
+ .map((m) => m[1])
281
+ .filter((p) => typeof p === "string");
282
+ resolve({ ok: true, appliedPaths: paths });
283
+ return;
284
+ }
285
+ const conflicts = [...stderr.matchAll(/error: patch failed: (\S+)/g)]
286
+ .map((m) => m[1])
287
+ .filter((p) => typeof p === "string");
288
+ resolve({
289
+ ok: false,
290
+ conflicts: conflicts.length > 0 ? conflicts : undefined,
291
+ error: stderr.trim() || err.message,
292
+ });
293
+ });
294
+ child.stdin?.end(unifiedDiff);
295
+ });
296
+ }
297
+ //# sourceMappingURL=agent-workspace-git.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-workspace-git.js","sourceRoot":"","sources":["../../../../../src/runtime/acp/agent-workspace-git.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
1
  import { type Envelope } from "@linkshell/protocol";
2
2
  import type { AgentProvider } from "./provider-resolver.js";
3
+ export declare function makeAgentV2RemoteConversationId(provider: AgentProvider, agentSessionId: string): string;
3
4
  export declare class AgentWorkspaceProxy {
4
5
  private readonly input;
5
6
  private clients;
6
7
  private agentProtocols;
7
8
  private providerCapabilities;
9
+ private providerErrors;
8
10
  private initialized;
9
11
  private status;
10
12
  private error;
@@ -14,6 +16,7 @@ export declare class AgentWorkspaceProxy {
14
16
  private conversations;
15
17
  private conversationByAgentSessionId;
16
18
  private timelines;
19
+ private historyCursors;
17
20
  private toolOutputBuffers;
18
21
  private pendingPermissions;
19
22
  private permissionWaiters;
@@ -33,14 +36,19 @@ export declare class AgentWorkspaceProxy {
33
36
  handleEnvelope(envelope: Envelope): Promise<void>;
34
37
  stop(): void;
35
38
  private clientForProvider;
39
+ private shouldRecycleProviderClient;
40
+ private recycleProviderClient;
36
41
  private protocolForProvider;
42
+ private defaultModelForProvider;
37
43
  private initialize;
38
44
  private ensureProviderClient;
39
45
  private refreshProviderCapabilities;
40
46
  private syncProviderSessions;
47
+ private hydrateConversationFromProvider;
41
48
  private sendCapabilities;
42
49
  private openConversation;
43
50
  private openFailure;
51
+ private openOfflineHistory;
44
52
  private sendPrompt;
45
53
  private commandForConversation;
46
54
  private executeCommand;
@@ -80,9 +88,15 @@ export declare class AgentWorkspaceProxy {
80
88
  private emitConversation;
81
89
  private emitStatus;
82
90
  private emitNotice;
91
+ private rejectAgentAction;
83
92
  private updateConversationPreview;
84
93
  private updateConversationStatus;
85
94
  private sendSnapshot;
95
+ /** Page OLDER transcript history for a conversation (client scrolling up).
96
+ * Only Codex's app-server exposes paginated reads; other providers report
97
+ * no more history. Pure pass-through — does not touch the bounded live
98
+ * timeline. The client prepends the returned (ascending) items. */
99
+ private loadOlderHistory;
86
100
  private conversationIdFromParams;
87
101
  private fallbackConversationId;
88
102
  private rememberTurnConversationId;