lody 0.107.2 → 0.108.0-nightly.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 +17 -0
- package/dist/baguette-worker.js +3 -3
- package/dist/chunks/{cloudflared-native-2AOPFkF0.js → cloudflared-native-DBP9VL7n.js} +3 -3
- package/dist/chunks/{daemon-session-tools-C-Yrq3QD.js → daemon-session-tools-DLk0L4Ya.js} +10 -10
- package/dist/chunks/{diff-line-counts-G7qDgMXg.js → diff-line-counts-BxIn6ndj.js} +2 -2
- package/dist/chunks/{diff-worker-task-B1Ju3wjo.js → diff-worker-task-BHb8VRuV.js} +2 -2
- package/dist/chunks/{directory-handle-C242tYw5.js → directory-handle-CaLRQd6-.js} +106 -63
- package/dist/chunks/{index-DuduZto9.js → index-BOtRa7m1.js} +54 -53
- package/dist/chunks/{index-BPsHGk5B.js → index-CH73vPUo.js} +2 -2
- package/dist/chunks/{ios-simulator-B6mhaluY.js → ios-simulator-CIEJaknT.js} +2 -2
- package/dist/chunks/{process-CoLmXmOP.js → process-B57UgtjU.js} +39 -39
- package/dist/chunks/{profile-WAvt7jC4.js → profile-CL7H2MUB.js} +2 -2
- package/dist/chunks/{review-viewer-DWax4Zej.js → review-viewer-BA_JrNTw.js} +6 -6
- package/dist/chunks/{schemas-Bue2bhN8.js → schemas-CsULZlsv.js} +5 -5
- package/dist/claude-acp.js +1 -1
- package/dist/cloudflared-worker.js +3 -3
- package/dist/deepseek-acp.js +2 -2
- package/dist/diff-worker.js +3 -3
- package/dist/file-index-scan-worker.js +34 -12
- package/dist/index.js +4961 -3218
- package/package.json +7 -6
package/README.md
CHANGED
|
@@ -22,6 +22,23 @@ retain the production-only check. `tsconfig.tests.json` remains the explicit
|
|
|
22
22
|
test-inclusive check; existing test typing errors are not part of the production
|
|
23
23
|
check.
|
|
24
24
|
|
|
25
|
+
## Roost cache recovery tests
|
|
26
|
+
|
|
27
|
+
Regular `pnpm test` runs the Native recovery contract with 1 and 120 retained turns
|
|
28
|
+
(three 40-turn pages). It checks the complete cached history against the owner and
|
|
29
|
+
rejects requests for unchanged pages during recovery.
|
|
30
|
+
|
|
31
|
+
Run the same assertions with 2,000 turns outside regular CI:
|
|
32
|
+
|
|
33
|
+
```sh
|
|
34
|
+
corepack pnpm --dir apps/cli test:roost-recovery:perf
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Run this command from the repository root. The scale test allows 120 seconds for
|
|
38
|
+
the Native SQLite import; regular setup and recovery each keep a 30-second limit.
|
|
39
|
+
Vitest reports recovery's test-body duration separately from the file duration,
|
|
40
|
+
which also includes setup. This is a scale regression test, not a network benchmark.
|
|
41
|
+
|
|
25
42
|
## Daemon upgrades and autostart
|
|
26
43
|
|
|
27
44
|
Remote upgrades install globally using the daemon's npm environment, resolve the
|
package/dist/baguette-worker.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { s as startProcessLegacy, b as runPromise, c as raceAll, p as promise, d as sleep, t as terminateChildTreeLegacy, e as provide, f as runCommand, g as processLayer } from "./chunks/process-
|
|
1
|
+
import { s as startProcessLegacy, b as runPromise, c as raceAll, p as promise, d as sleep, t as terminateChildTreeLegacy, e as provide, f as runCommand, g as processLayer } from "./chunks/process-B57UgtjU.js";
|
|
2
2
|
import { createServer } from "node:net";
|
|
3
3
|
import { setTimeout as setTimeout$1 } from "node:timers/promises";
|
|
4
4
|
import { mkdtemp, writeFile, rm } from "node:fs/promises";
|
|
5
5
|
import { tmpdir } from "node:os";
|
|
6
6
|
import { join } from "node:path";
|
|
7
|
-
import { I as IosSimulatorDeviceControlSchema } from "./chunks/ios-simulator-
|
|
8
|
-
import { s as string, o as object, u as union, _ as _enum, n as number, l as literal } from "./chunks/schemas-
|
|
7
|
+
import { I as IosSimulatorDeviceControlSchema } from "./chunks/ios-simulator-CIEJaknT.js";
|
|
8
|
+
import { s as string, o as object, u as union, _ as _enum, n as number, l as literal } from "./chunks/schemas-CsULZlsv.js";
|
|
9
9
|
import "node:child_process";
|
|
10
10
|
import "node:fs";
|
|
11
11
|
import "node:url";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { h as tracerLogger$1, i as effect, w as withFiber, j as fnUntraced, k as isEffect, C as CurrentLoggers$1, l as loggerMake, m as getAugmentedNamespace, n as commonjsGlobal, o as getDefaultExportFromCjs, q as merge, u as
|
|
1
|
+
import { h as tracerLogger$1, i as effect, w as withFiber, j as fnUntraced, k as isEffect, C as CurrentLoggers$1, l as loggerMake, m as getAugmentedNamespace, n as commonjsGlobal, o as getDefaultExportFromCjs, q as merge, u as succeed, v as CurrentLogAnnotations, M as MinimumLogLevel, g as processLayer, x as nodeProcessLive, s as startProcessLegacy } from "./process-B57UgtjU.js";
|
|
2
2
|
import { EventEmitter } from "node:events";
|
|
3
3
|
import require$$0$1 from "util";
|
|
4
4
|
import os__default$1 from "os";
|
|
@@ -19,7 +19,7 @@ import path__default, { join } from "node:path";
|
|
|
19
19
|
import os__default, { tmpdir } from "node:os";
|
|
20
20
|
import fs__default$2, { mkdtemp, writeFile, rm } from "node:fs/promises";
|
|
21
21
|
import Zlib__default from "node:zlib";
|
|
22
|
-
import { o as object, _ as _enum, s as string } from "./schemas-
|
|
22
|
+
import { o as object, _ as _enum, s as string } from "./schemas-CsULZlsv.js";
|
|
23
23
|
const PLATFORM_ENV_VAR = "LODY_PLATFORM";
|
|
24
24
|
const LOCAL_WORKSPACE_ID_PREFIX = "lw_";
|
|
25
25
|
const LOCAL_USER_ID_PREFIX = "local:";
|
|
@@ -17044,4 +17044,4 @@ export {
|
|
|
17044
17044
|
readLatestLogTail as y,
|
|
17045
17045
|
createFileLogger as z
|
|
17046
17046
|
};
|
|
17047
|
-
//# sourceMappingURL=cloudflared-native-
|
|
17047
|
+
//# sourceMappingURL=cloudflared-native-DBP9VL7n.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { a0 as getDaemonWorkspace, a1 as getSessionCommandEnvironment, a2 as getSessionRoomId, a3 as isLoroRepoDocDeleted, a4 as runWithMcpSessionContext, a5 as SessionToolResultSchema, a6 as buildSessionToolServer } from "../index.js";
|
|
2
2
|
import "path";
|
|
3
3
|
import "node:fs";
|
|
4
4
|
import "node:readline";
|
|
5
5
|
import "node:async_hooks";
|
|
6
|
-
import "./cloudflared-native-
|
|
7
|
-
import "./process-
|
|
6
|
+
import "./cloudflared-native-DBP9VL7n.js";
|
|
7
|
+
import "./process-B57UgtjU.js";
|
|
8
8
|
import "node:child_process";
|
|
9
9
|
import "node:path";
|
|
10
10
|
import "node:url";
|
|
@@ -27,12 +27,12 @@ import "node:util";
|
|
|
27
27
|
import "node:os";
|
|
28
28
|
import "node:fs/promises";
|
|
29
29
|
import "node:zlib";
|
|
30
|
-
import "./schemas-
|
|
30
|
+
import "./schemas-CsULZlsv.js";
|
|
31
31
|
import "node:process";
|
|
32
32
|
import "./loro_wasm_bg-MVC5eAwd.js";
|
|
33
33
|
import "./plan-mode-D0D5cnMs.js";
|
|
34
|
-
import "./profile-
|
|
35
|
-
import "./ios-simulator-
|
|
34
|
+
import "./profile-CL7H2MUB.js";
|
|
35
|
+
import "./ios-simulator-CIEJaknT.js";
|
|
36
36
|
import "./subagent-events-MVcQFxYe.js";
|
|
37
37
|
import "node:diagnostics_channel";
|
|
38
38
|
import "node:assert";
|
|
@@ -55,8 +55,8 @@ import "node:crypto";
|
|
|
55
55
|
import "fs/promises";
|
|
56
56
|
import "./workspace-watch-path-policy-BRzhvEkG.js";
|
|
57
57
|
import "node:string_decoder";
|
|
58
|
-
import "./directory-handle-
|
|
59
|
-
import "./diff-line-counts-
|
|
58
|
+
import "./directory-handle-CaLRQd6-.js";
|
|
59
|
+
import "./diff-line-counts-BxIn6ndj.js";
|
|
60
60
|
import "perf_hooks";
|
|
61
61
|
import "better-sqlite3";
|
|
62
62
|
import "module";
|
|
@@ -68,7 +68,7 @@ import "dgram";
|
|
|
68
68
|
import "timers/promises";
|
|
69
69
|
import "node:timers/promises";
|
|
70
70
|
import "@loro-dev/roost-node";
|
|
71
|
-
import "./diff-worker-task-
|
|
71
|
+
import "./diff-worker-task-BHb8VRuV.js";
|
|
72
72
|
import "node:module";
|
|
73
73
|
import "node:v8";
|
|
74
74
|
import "http2";
|
|
@@ -100,4 +100,4 @@ async function executeDaemonSessionTool(context, name, args) {
|
|
|
100
100
|
export {
|
|
101
101
|
executeDaemonSessionTool
|
|
102
102
|
};
|
|
103
|
-
//# sourceMappingURL=daemon-session-tools-
|
|
103
|
+
//# sourceMappingURL=daemon-session-tools-DLk0L4Ya.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { mkdtempSync, writeFileSync, rmSync } from "node:fs";
|
|
2
2
|
import os__default from "node:os";
|
|
3
3
|
import path__default from "node:path";
|
|
4
|
-
import { a as runCommandTextSyncLegacy } from "./process-
|
|
4
|
+
import { a as runCommandTextSyncLegacy } from "./process-B57UgtjU.js";
|
|
5
5
|
function Diff() {
|
|
6
6
|
}
|
|
7
7
|
Diff.prototype = {
|
|
@@ -682,4 +682,4 @@ export {
|
|
|
682
682
|
countTextLines as a,
|
|
683
683
|
computeLineCounts as c
|
|
684
684
|
};
|
|
685
|
-
//# sourceMappingURL=diff-line-counts-
|
|
685
|
+
//# sourceMappingURL=diff-line-counts-BxIn6ndj.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createHash } from "node:crypto";
|
|
2
2
|
import { open, stat } from "node:fs/promises";
|
|
3
|
-
import { c as computeLineCounts } from "./diff-line-counts-
|
|
3
|
+
import { c as computeLineCounts } from "./diff-line-counts-BxIn6ndj.js";
|
|
4
4
|
async function runDiffWorkerTask(input) {
|
|
5
5
|
const lineCounts = computeLineCounts(input.oldText, input.newText);
|
|
6
6
|
if (input.kind === "line-count") return { kind: input.kind, lineCounts };
|
|
@@ -58,4 +58,4 @@ function nodeErrorCode(error) {
|
|
|
58
58
|
export {
|
|
59
59
|
runDiffWorkerTask as r
|
|
60
60
|
};
|
|
61
|
-
//# sourceMappingURL=diff-worker-task-
|
|
61
|
+
//# sourceMappingURL=diff-worker-task-BHb8VRuV.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { o as object, s as string, l as literal, b as boolean, _ as _enum, u as union, n as number, d as discriminatedUnion, a as array, r as record, t as tuple, c as unknown } from "./schemas-
|
|
1
|
+
import { o as object, s as string, l as literal, b as boolean, _ as _enum, u as union, n as number, d as discriminatedUnion, a as array, r as record, t as tuple, c as unknown } from "./schemas-CsULZlsv.js";
|
|
2
2
|
import { readFile } from "node:fs/promises";
|
|
3
3
|
import path__default from "node:path";
|
|
4
|
-
import { r as runCommandTextLegacy } from "./process-
|
|
5
|
-
import { a as countTextLines } from "./diff-line-counts-
|
|
4
|
+
import { r as runCommandTextLegacy } from "./process-B57UgtjU.js";
|
|
5
|
+
import { a as countTextLines } from "./diff-line-counts-BxIn6ndj.js";
|
|
6
6
|
_enum(["host", "write", "read"]);
|
|
7
7
|
_enum([
|
|
8
8
|
"not-started",
|
|
@@ -197,9 +197,11 @@ const CodeCollabV2SaveTextResponseSchema = discriminatedUnion("status", [
|
|
|
197
197
|
CodeCollabV2SaveTextOkSchema,
|
|
198
198
|
CodeCollabV2SaveTextConflictSchema
|
|
199
199
|
]);
|
|
200
|
+
const CodeCollabAllChangesScopeSchema = _enum(["branch", "uncommitted"]);
|
|
200
201
|
const CodeCollabV2OpenCurrentDiffRequestSchema = object({
|
|
201
202
|
sessionId: string().trim().min(1),
|
|
202
|
-
path: string().min(1)
|
|
203
|
+
path: string().min(1),
|
|
204
|
+
scope: CodeCollabAllChangesScopeSchema.optional()
|
|
203
205
|
}).strict();
|
|
204
206
|
const CodeCollabV2DiffSnapshotSchema = discriminatedUnion("kind", [
|
|
205
207
|
object({
|
|
@@ -223,14 +225,22 @@ const CodeCollabV2OpenCurrentDiffResponseSchema = discriminatedUnion("status", [
|
|
|
223
225
|
object({
|
|
224
226
|
status: literal("unavailable"),
|
|
225
227
|
path: string().min(1),
|
|
226
|
-
reason: _enum([
|
|
228
|
+
reason: _enum([
|
|
229
|
+
"base_unavailable",
|
|
230
|
+
"not_changed",
|
|
231
|
+
"transient_io",
|
|
232
|
+
"unsupported_binary",
|
|
233
|
+
"not_a_git_worktree",
|
|
234
|
+
"no_commits"
|
|
235
|
+
]),
|
|
227
236
|
message: string().min(1).optional()
|
|
228
237
|
}).strict()
|
|
229
238
|
]);
|
|
230
239
|
const CodeCollabV2OpenAllChangesDiffRequestSchema = object({
|
|
231
240
|
sessionId: string().trim().min(1),
|
|
232
241
|
// Inline this file first (the file the user clicked) regardless of size ordering.
|
|
233
|
-
focusPath: string().min(1).optional()
|
|
242
|
+
focusPath: string().min(1).optional(),
|
|
243
|
+
scope: CodeCollabAllChangesScopeSchema.optional()
|
|
234
244
|
}).strict();
|
|
235
245
|
const CodeCollabV2AllChangesDiffEntrySchema = discriminatedUnion("status", [
|
|
236
246
|
object({
|
|
@@ -272,7 +282,7 @@ const CodeCollabV2OpenAllChangesDiffResponseSchema = discriminatedUnion("status"
|
|
|
272
282
|
}).strict(),
|
|
273
283
|
object({
|
|
274
284
|
status: literal("unavailable"),
|
|
275
|
-
reason: _enum(["base_unavailable", "transient_io"]),
|
|
285
|
+
reason: _enum(["base_unavailable", "transient_io", "not_a_git_worktree", "no_commits"]),
|
|
276
286
|
message: string().min(1).optional()
|
|
277
287
|
}).strict()
|
|
278
288
|
]);
|
|
@@ -858,15 +868,15 @@ function gitDiffBaseRefCandidates(preferredBaseBranch) {
|
|
|
858
868
|
return [.../* @__PURE__ */ new Set([...refs, "origin/main", "main", "origin/master", "master", "origin/HEAD"])];
|
|
859
869
|
}
|
|
860
870
|
const GIT_MAX_BUFFER_BYTES = 64 * 1024 * 1024;
|
|
861
|
-
async function isInsideGitWorktree(workspaceRoot) {
|
|
862
|
-
const inside = await runGit(workspaceRoot, ["rev-parse", "--is-inside-work-tree"]);
|
|
871
|
+
async function isInsideGitWorktree(workspaceRoot, signal) {
|
|
872
|
+
const inside = await runGit(workspaceRoot, ["rev-parse", "--is-inside-work-tree"], signal);
|
|
863
873
|
return inside.ok && inside.stdout.trim() === "true";
|
|
864
874
|
}
|
|
865
875
|
async function scanGitDirectoryEntries(options) {
|
|
866
876
|
if (!options.recursive) {
|
|
867
877
|
return null;
|
|
868
878
|
}
|
|
869
|
-
const result = await runGitLsFiles(options.directoryAbsolutePath);
|
|
879
|
+
const result = await runGitLsFiles(options.directoryAbsolutePath, options.signal);
|
|
870
880
|
if (!result.ok) {
|
|
871
881
|
return null;
|
|
872
882
|
}
|
|
@@ -877,20 +887,24 @@ async function scanGitDirectoryEntries(options) {
|
|
|
877
887
|
relativeFilePaths: result.paths
|
|
878
888
|
});
|
|
879
889
|
}
|
|
880
|
-
async function runGitLsFiles(cwd) {
|
|
881
|
-
const
|
|
882
|
-
runGit(
|
|
883
|
-
|
|
884
|
-
"-z",
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
"--deduplicate",
|
|
889
|
-
"--",
|
|
890
|
-
"."
|
|
891
|
-
]),
|
|
892
|
-
runGit(cwd, ["ls-files", "--deleted", "-z", "--", "."])
|
|
890
|
+
async function runGitLsFiles(cwd, signal) {
|
|
891
|
+
const results = await Promise.allSettled([
|
|
892
|
+
runGit(
|
|
893
|
+
cwd,
|
|
894
|
+
["ls-files", "-z", "--cached", "--others", "--exclude-standard", "--deduplicate", "--", "."],
|
|
895
|
+
signal
|
|
896
|
+
),
|
|
897
|
+
runGit(cwd, ["ls-files", "--deleted", "-z", "--", "."], signal)
|
|
893
898
|
]);
|
|
899
|
+
for (const result of results) {
|
|
900
|
+
if (result.status === "rejected") throw result.reason;
|
|
901
|
+
}
|
|
902
|
+
const [listedResult, deletedResult] = results;
|
|
903
|
+
if (listedResult?.status !== "fulfilled" || deletedResult?.status !== "fulfilled") {
|
|
904
|
+
throw new Error("Git listing did not settle");
|
|
905
|
+
}
|
|
906
|
+
const listed = listedResult.value;
|
|
907
|
+
const deleted = deletedResult.value;
|
|
894
908
|
if (!listed.ok) {
|
|
895
909
|
return { ok: false };
|
|
896
910
|
}
|
|
@@ -901,33 +915,43 @@ async function runGitLsFiles(cwd) {
|
|
|
901
915
|
};
|
|
902
916
|
}
|
|
903
917
|
async function computeAllChanges(workspaceRoot, options = {}) {
|
|
904
|
-
const diffBase = options.diffBase ?? await resolveAllChangesDiffBase(workspaceRoot, options.preferredBaseBranch);
|
|
918
|
+
const diffBase = options.diffBase ?? await resolveAllChangesDiffBase(workspaceRoot, options.preferredBaseBranch, options.signal);
|
|
905
919
|
const diffTarget = diffBase ?? "HEAD";
|
|
906
|
-
const
|
|
920
|
+
const results = await Promise.allSettled([
|
|
907
921
|
// `--numstat` cannot use `-z`, so disable `core.quotePath` to keep non-ASCII paths
|
|
908
922
|
// raw (matching the `-z` outputs below); otherwise they are mis-keyed and lose their
|
|
909
923
|
// All Changes diff counts.
|
|
910
|
-
runGit(
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
diffTarget,
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
runGit(workspaceRoot, ["ls-files", "--others", "--exclude-standard", "-z"])
|
|
924
|
+
runGit(
|
|
925
|
+
workspaceRoot,
|
|
926
|
+
[
|
|
927
|
+
"-c",
|
|
928
|
+
"core.quotePath=false",
|
|
929
|
+
"diff",
|
|
930
|
+
"--numstat",
|
|
931
|
+
"--no-renames",
|
|
932
|
+
"--relative",
|
|
933
|
+
diffTarget,
|
|
934
|
+
"--"
|
|
935
|
+
],
|
|
936
|
+
options.signal
|
|
937
|
+
),
|
|
938
|
+
runGit(
|
|
939
|
+
workspaceRoot,
|
|
940
|
+
["diff", "--name-status", "--no-renames", "-z", "--relative", diffTarget, "--"],
|
|
941
|
+
options.signal
|
|
942
|
+
),
|
|
943
|
+
runGit(workspaceRoot, ["ls-files", "--others", "--exclude-standard", "-z"], options.signal)
|
|
930
944
|
]);
|
|
945
|
+
for (const result of results) {
|
|
946
|
+
if (result.status === "rejected") throw result.reason;
|
|
947
|
+
}
|
|
948
|
+
const [numstatResult, nameStatusResult, untrackedResult] = results;
|
|
949
|
+
if (numstatResult?.status !== "fulfilled" || nameStatusResult?.status !== "fulfilled" || untrackedResult?.status !== "fulfilled") {
|
|
950
|
+
throw new Error("Git diff did not settle");
|
|
951
|
+
}
|
|
952
|
+
const numstat = numstatResult.value;
|
|
953
|
+
const nameStatus = nameStatusResult.value;
|
|
954
|
+
const untracked = untrackedResult.value;
|
|
931
955
|
if (!numstat.ok && !nameStatus.ok && !untracked.ok) {
|
|
932
956
|
return {};
|
|
933
957
|
}
|
|
@@ -956,48 +980,62 @@ async function computeAllChanges(workspaceRoot, options = {}) {
|
|
|
956
980
|
}
|
|
957
981
|
if (untracked.ok) {
|
|
958
982
|
for (const filePath of untracked.stdout.split("\0")) {
|
|
983
|
+
options.signal?.throwIfAborted();
|
|
959
984
|
if (!filePath) continue;
|
|
960
985
|
const normalizedPath = normalizeGitPath(filePath);
|
|
961
986
|
if (!(normalizedPath in changes)) {
|
|
962
|
-
changes[normalizedPath] = await lineStatsForUntrackedFile(
|
|
987
|
+
changes[normalizedPath] = await lineStatsForUntrackedFile(
|
|
988
|
+
workspaceRoot,
|
|
989
|
+
normalizedPath,
|
|
990
|
+
options.signal
|
|
991
|
+
);
|
|
963
992
|
}
|
|
964
993
|
}
|
|
965
994
|
}
|
|
966
995
|
return changes;
|
|
967
996
|
}
|
|
968
|
-
async function resolveAllChangesDiffBase(workspaceRoot, preferredBaseBranch) {
|
|
969
|
-
if (!await isInsideGitWorktree(workspaceRoot)) {
|
|
997
|
+
async function resolveAllChangesDiffBase(workspaceRoot, preferredBaseBranch, signal) {
|
|
998
|
+
if (!await isInsideGitWorktree(workspaceRoot, signal)) {
|
|
970
999
|
return null;
|
|
971
1000
|
}
|
|
972
|
-
const baseRef = await resolveAllChangesBaseRef(workspaceRoot, preferredBaseBranch);
|
|
1001
|
+
const baseRef = await resolveAllChangesBaseRef(workspaceRoot, preferredBaseBranch, signal);
|
|
973
1002
|
if (baseRef) {
|
|
974
|
-
const mergeBase = await runGit(workspaceRoot, ["merge-base", baseRef, "HEAD"]);
|
|
1003
|
+
const mergeBase = await runGit(workspaceRoot, ["merge-base", baseRef, "HEAD"], signal);
|
|
975
1004
|
const trimmed = mergeBase.ok ? mergeBase.stdout.trim() : "";
|
|
976
1005
|
if (trimmed) {
|
|
977
1006
|
return trimmed;
|
|
978
1007
|
}
|
|
979
1008
|
}
|
|
980
|
-
const head = await
|
|
1009
|
+
const head = await resolveGitHeadCommit(workspaceRoot, signal);
|
|
1010
|
+
return head;
|
|
1011
|
+
}
|
|
1012
|
+
async function resolveGitHeadCommit(workspaceRoot, signal) {
|
|
1013
|
+
const head = await runGit(workspaceRoot, ["rev-parse", "--verify", "HEAD^{commit}"], signal);
|
|
981
1014
|
return head.ok && head.stdout.trim() ? head.stdout.trim() : null;
|
|
982
1015
|
}
|
|
983
|
-
async function resolveAllChangesBaseRef(workspaceRoot, preferredBaseBranch) {
|
|
1016
|
+
async function resolveAllChangesBaseRef(workspaceRoot, preferredBaseBranch, signal) {
|
|
984
1017
|
const candidates = gitDiffBaseRefCandidates(preferredBaseBranch);
|
|
985
1018
|
for (const candidate of candidates) {
|
|
986
|
-
const exists = await runGit(
|
|
1019
|
+
const exists = await runGit(
|
|
1020
|
+
workspaceRoot,
|
|
1021
|
+
["rev-parse", "--verify", `${candidate}^{commit}`],
|
|
1022
|
+
signal
|
|
1023
|
+
);
|
|
987
1024
|
if (exists.ok) {
|
|
988
1025
|
return candidate;
|
|
989
1026
|
}
|
|
990
1027
|
}
|
|
991
1028
|
return null;
|
|
992
1029
|
}
|
|
993
|
-
async function lineStatsForUntrackedFile(workspaceRoot, workspacePath) {
|
|
1030
|
+
async function lineStatsForUntrackedFile(workspaceRoot, workspacePath, signal) {
|
|
994
1031
|
try {
|
|
995
1032
|
const absolutePath = path__default.resolve(workspaceRoot, workspacePath);
|
|
996
|
-
const bytes = await readFile(absolutePath);
|
|
1033
|
+
const bytes = await readFile(absolutePath, { signal });
|
|
997
1034
|
if (hasBinaryNul(bytes)) return true;
|
|
998
1035
|
const text = decodeUtf8(bytes);
|
|
999
1036
|
return { diff: [countTextLines(text), 0] };
|
|
1000
1037
|
} catch {
|
|
1038
|
+
signal?.throwIfAborted();
|
|
1001
1039
|
return true;
|
|
1002
1040
|
}
|
|
1003
1041
|
}
|
|
@@ -1023,16 +1061,21 @@ function parseDeletedPathsFromNameStatus(stdout) {
|
|
|
1023
1061
|
}
|
|
1024
1062
|
return deleted;
|
|
1025
1063
|
}
|
|
1026
|
-
async function runGit(cwd, args) {
|
|
1064
|
+
async function runGit(cwd, args, signal) {
|
|
1027
1065
|
try {
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1066
|
+
signal?.throwIfAborted();
|
|
1067
|
+
const { stdout } = await runCommandTextLegacy(
|
|
1068
|
+
{
|
|
1069
|
+
command: "git",
|
|
1070
|
+
args: ["-C", cwd, ...args],
|
|
1071
|
+
maxOutputBytes: GIT_MAX_BUFFER_BYTES,
|
|
1072
|
+
check: "exit-0"
|
|
1073
|
+
},
|
|
1074
|
+
{ signal }
|
|
1075
|
+
);
|
|
1034
1076
|
return { ok: true, stdout };
|
|
1035
1077
|
} catch {
|
|
1078
|
+
signal?.throwIfAborted();
|
|
1036
1079
|
return { ok: false };
|
|
1037
1080
|
}
|
|
1038
1081
|
}
|
|
@@ -1178,4 +1221,4 @@ export {
|
|
|
1178
1221
|
CodeCollabV2RpcContentEnvelopeSchema as y,
|
|
1179
1222
|
deriveCodeCollabV2ContentKeyId as z
|
|
1180
1223
|
};
|
|
1181
|
-
//# sourceMappingURL=directory-handle-
|
|
1224
|
+
//# sourceMappingURL=directory-handle-CaLRQd6-.js.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { c as createRoostSessionData } from "../index.js";
|
|
2
|
-
import { E, a, H, b, d, e, f, R, S, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, F, G, I, J, K, L, M, N, O, P, Q, T, U, V, W, X, Y, Z, _ } from "../index.js";
|
|
2
|
+
import { E, a, H, b, d, e, f, R, S, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, F, G, I, J, K, L, M, N, O, P, Q, T, U, V, W, X, Y, Z, _, $ } from "../index.js";
|
|
3
3
|
import "path";
|
|
4
4
|
import "node:fs";
|
|
5
5
|
import "node:readline";
|
|
6
6
|
import "node:async_hooks";
|
|
7
|
-
import "./cloudflared-native-
|
|
8
|
-
import "./process-
|
|
7
|
+
import "./cloudflared-native-DBP9VL7n.js";
|
|
8
|
+
import "./process-B57UgtjU.js";
|
|
9
9
|
import "node:child_process";
|
|
10
10
|
import "node:path";
|
|
11
11
|
import "node:url";
|
|
@@ -28,12 +28,12 @@ import "node:util";
|
|
|
28
28
|
import "node:os";
|
|
29
29
|
import "node:fs/promises";
|
|
30
30
|
import "node:zlib";
|
|
31
|
-
import "./schemas-
|
|
31
|
+
import "./schemas-CsULZlsv.js";
|
|
32
32
|
import "node:process";
|
|
33
33
|
import "./loro_wasm_bg-MVC5eAwd.js";
|
|
34
34
|
import "./plan-mode-D0D5cnMs.js";
|
|
35
|
-
import "./profile-
|
|
36
|
-
import "./ios-simulator-
|
|
35
|
+
import "./profile-CL7H2MUB.js";
|
|
36
|
+
import "./ios-simulator-CIEJaknT.js";
|
|
37
37
|
import "./subagent-events-MVcQFxYe.js";
|
|
38
38
|
import "node:diagnostics_channel";
|
|
39
39
|
import "node:assert";
|
|
@@ -56,8 +56,8 @@ import "node:crypto";
|
|
|
56
56
|
import "fs/promises";
|
|
57
57
|
import "./workspace-watch-path-policy-BRzhvEkG.js";
|
|
58
58
|
import "node:string_decoder";
|
|
59
|
-
import "./directory-handle-
|
|
60
|
-
import "./diff-line-counts-
|
|
59
|
+
import "./directory-handle-CaLRQd6-.js";
|
|
60
|
+
import "./diff-line-counts-BxIn6ndj.js";
|
|
61
61
|
import "perf_hooks";
|
|
62
62
|
import "better-sqlite3";
|
|
63
63
|
import "module";
|
|
@@ -69,7 +69,7 @@ import "dgram";
|
|
|
69
69
|
import "timers/promises";
|
|
70
70
|
import "node:timers/promises";
|
|
71
71
|
import "@loro-dev/roost-node";
|
|
72
|
-
import "./diff-worker-task-
|
|
72
|
+
import "./diff-worker-task-BHb8VRuV.js";
|
|
73
73
|
import "node:module";
|
|
74
74
|
import "node:v8";
|
|
75
75
|
import "http2";
|
|
@@ -83,49 +83,50 @@ export {
|
|
|
83
83
|
f as HistoryImportRefused,
|
|
84
84
|
R as ROOST_CLEAR_FIELDS_KEY,
|
|
85
85
|
S as SESSION_DIRECTORY_INPUT_CONFIG_KEYS,
|
|
86
|
-
g as
|
|
87
|
-
h as
|
|
88
|
-
i as
|
|
89
|
-
j as
|
|
90
|
-
k as
|
|
91
|
-
l as
|
|
92
|
-
m as
|
|
93
|
-
n as
|
|
94
|
-
o as
|
|
95
|
-
p as
|
|
96
|
-
q as
|
|
97
|
-
r as
|
|
98
|
-
s as
|
|
99
|
-
t as
|
|
86
|
+
g as SessionHistoryContentPatchSchema,
|
|
87
|
+
h as SessionTurnTokenUsageSchema,
|
|
88
|
+
i as addSessionTurnTokenUsage,
|
|
89
|
+
j as applyHistoryAction,
|
|
90
|
+
k as applyMarkTurnSeen,
|
|
91
|
+
l as applyOpenAssistantTurn,
|
|
92
|
+
m as applyRespondPermission,
|
|
93
|
+
n as applyResumeAssistant,
|
|
94
|
+
o as areStringArraysEqual,
|
|
95
|
+
p as buildOperationProgressContent,
|
|
96
|
+
q as createAssistantTurn,
|
|
97
|
+
r as createImportCursor,
|
|
98
|
+
s as createLoroSessionData,
|
|
99
|
+
t as createRoostDirectoryRow,
|
|
100
|
+
u as createRoostHistoryReader,
|
|
100
101
|
createRoostSessionData,
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
102
|
+
v as decideHistoryConflictResolution,
|
|
103
|
+
w as decideHistoryRefresh,
|
|
104
|
+
x as findProgressMessageId,
|
|
105
|
+
y as getOperationProgressTargetKey,
|
|
106
|
+
z as getOperationProgressTurnId,
|
|
107
|
+
A as hashHistoryEntry,
|
|
108
|
+
B as hashHistoryEntryForVersion,
|
|
109
|
+
C as hashHistoryEntryV2,
|
|
110
|
+
D as hashHistoryForStoredVersion,
|
|
111
|
+
F as hashText,
|
|
112
|
+
G as historyActionTarget,
|
|
113
|
+
I as isEmptySessionTurnTokenUsage,
|
|
114
|
+
J as markAssistantTurnFinished,
|
|
115
|
+
K as markTurnSeenBlocked,
|
|
116
|
+
L as mergeOperationProgressContent,
|
|
117
|
+
M as pageVisibleTranscript,
|
|
118
|
+
N as planEditableTailReplacement,
|
|
119
|
+
O as planHistoryImport,
|
|
120
|
+
P as projectRoostSegments,
|
|
121
|
+
Q as readLatestTurn,
|
|
122
|
+
T as readSessionHistory,
|
|
123
|
+
U as readSessionTurnTokenUsage,
|
|
124
|
+
V as resolveEditableTail,
|
|
125
|
+
W as resolveImportHashVersion,
|
|
126
|
+
X as resolveImportedTurnHashes,
|
|
127
|
+
Y as resolveStoredHashVersion,
|
|
128
|
+
Z as selectTurnOutput,
|
|
129
|
+
_ as setFieldTo,
|
|
130
|
+
$ as storedBaselineHashes
|
|
130
131
|
};
|
|
131
|
-
//# sourceMappingURL=index-
|
|
132
|
+
//# sourceMappingURL=index-BOtRa7m1.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { readFile } from "node:fs/promises";
|
|
2
2
|
import path__default from "node:path";
|
|
3
|
-
import { r as runCommandTextLegacy } from "./process-
|
|
3
|
+
import { r as runCommandTextLegacy } from "./process-B57UgtjU.js";
|
|
4
4
|
import { d as parseReviewMarkdown, v as validateParsedReviewDocument, f as validateResolvedBlock, a as countLines, b as createSparseTextForRanges } from "./sparse-text-DcovXrdo.js";
|
|
5
5
|
import "node:child_process";
|
|
6
6
|
import "node:fs";
|
|
@@ -315,4 +315,4 @@ function formatGitError(error) {
|
|
|
315
315
|
export {
|
|
316
316
|
resolveReviewBundle
|
|
317
317
|
};
|
|
318
|
-
//# sourceMappingURL=index-
|
|
318
|
+
//# sourceMappingURL=index-CH73vPUo.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { o as object, l as literal, s as string, d as discriminatedUnion, _ as _enum, a as array, b as boolean, n as number, u as union } from "./schemas-
|
|
1
|
+
import { o as object, l as literal, s as string, d as discriminatedUnion, _ as _enum, a as array, b as boolean, n as number, u as union } from "./schemas-CsULZlsv.js";
|
|
2
2
|
const RPC_SECRET_PUBLIC_KEY_TYPE = "rpc-secret-public-key-v1";
|
|
3
3
|
const RPC_SECRET_ENVELOPE_TYPE = "rpc-secret-envelope-v1";
|
|
4
4
|
const RPC_SECRET_ALGORITHM = "ECDH-P256-AES-256-GCM";
|
|
@@ -158,4 +158,4 @@ export {
|
|
|
158
158
|
IosSimulatorDeviceControlRequestSchema as k,
|
|
159
159
|
IosSimulatorUdidSchema as l
|
|
160
160
|
};
|
|
161
|
-
//# sourceMappingURL=ios-simulator-
|
|
161
|
+
//# sourceMappingURL=ios-simulator-CIEJaknT.js.map
|