@lore-co/cli 0.2.25 → 0.2.27
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 +69 -18
- package/dist/agents.d.ts +9 -0
- package/dist/agents.d.ts.map +1 -1
- package/dist/agents.js +19 -6
- package/dist/agents.js.map +1 -1
- package/dist/api.d.ts +2 -1
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +15 -2
- package/dist/api.js.map +1 -1
- package/dist/approach-guidance.d.ts +8 -1
- package/dist/approach-guidance.d.ts.map +1 -1
- package/dist/approach-guidance.js +13 -3
- package/dist/approach-guidance.js.map +1 -1
- package/dist/approach.d.ts.map +1 -1
- package/dist/approach.js +2 -2
- package/dist/approach.js.map +1 -1
- package/dist/ask.d.ts.map +1 -1
- package/dist/ask.js +2 -2
- package/dist/ask.js.map +1 -1
- package/dist/capture-scope.d.ts.map +1 -1
- package/dist/capture-scope.js +2 -1
- package/dist/capture-scope.js.map +1 -1
- package/dist/chat.d.ts.map +1 -1
- package/dist/chat.js +2 -2
- package/dist/chat.js.map +1 -1
- package/dist/cli.d.ts +66 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +547 -91
- package/dist/cli.js.map +1 -1
- package/dist/codex-hook-approval.d.ts.map +1 -1
- package/dist/codex-hook-approval.js +9 -2
- package/dist/codex-hook-approval.js.map +1 -1
- package/dist/command-help.d.ts.map +1 -1
- package/dist/command-help.js +7 -3
- package/dist/command-help.js.map +1 -1
- package/dist/config-command.js +2 -2
- package/dist/config-command.js.map +1 -1
- package/dist/connect-project.d.ts.map +1 -1
- package/dist/connect-project.js +2 -1
- package/dist/connect-project.js.map +1 -1
- package/dist/console-keys.d.ts +11 -0
- package/dist/console-keys.d.ts.map +1 -0
- package/dist/console-keys.js +24 -0
- package/dist/console-keys.js.map +1 -0
- package/dist/cursor-mcp.d.ts.map +1 -1
- package/dist/cursor-mcp.js +4 -0
- package/dist/cursor-mcp.js.map +1 -1
- package/dist/demo-process.js +3 -3
- package/dist/demo-process.js.map +1 -1
- package/dist/devin-capture.d.ts.map +1 -1
- package/dist/devin-capture.js +2 -2
- package/dist/devin-capture.js.map +1 -1
- package/dist/devin-cli.d.ts.map +1 -1
- package/dist/devin-cli.js +23 -13
- package/dist/devin-cli.js.map +1 -1
- package/dist/devin-client.d.ts +3 -0
- package/dist/devin-client.d.ts.map +1 -1
- package/dist/devin-client.js +5 -0
- package/dist/devin-client.js.map +1 -1
- package/dist/devin.d.ts.map +1 -1
- package/dist/devin.js +29 -9
- package/dist/devin.js.map +1 -1
- package/dist/generated-assets.d.ts +8 -8
- package/dist/generated-assets.d.ts.map +1 -1
- package/dist/generated-assets.js +8 -8
- package/dist/generated-assets.js.map +1 -1
- package/dist/github.d.ts.map +1 -1
- package/dist/github.js +38 -7
- package/dist/github.js.map +1 -1
- package/dist/guard.d.ts +1 -1
- package/dist/guard.d.ts.map +1 -1
- package/dist/guard.js +42 -14
- package/dist/guard.js.map +1 -1
- package/dist/handoff.js +2 -2
- package/dist/handoff.js.map +1 -1
- package/dist/host.js +4 -4
- package/dist/host.js.map +1 -1
- package/dist/image-capture.d.ts.map +1 -1
- package/dist/image-capture.js +5 -4
- package/dist/image-capture.js.map +1 -1
- package/dist/learnings.d.ts.map +1 -1
- package/dist/learnings.js +3 -3
- package/dist/learnings.js.map +1 -1
- package/dist/live.d.ts +7 -0
- package/dist/live.d.ts.map +1 -1
- package/dist/live.js +11 -6
- package/dist/live.js.map +1 -1
- package/dist/lore-agent.d.ts +8 -1
- package/dist/lore-agent.d.ts.map +1 -1
- package/dist/lore-agent.js +33 -11
- package/dist/lore-agent.js.map +1 -1
- package/dist/mcp-config.d.ts +7 -0
- package/dist/mcp-config.d.ts.map +1 -1
- package/dist/mcp-config.js +19 -3
- package/dist/mcp-config.js.map +1 -1
- package/dist/npm-installation.d.ts +30 -0
- package/dist/npm-installation.d.ts.map +1 -0
- package/dist/npm-installation.js +46 -0
- package/dist/npm-installation.js.map +1 -0
- package/dist/owned-files.d.ts +14 -4
- package/dist/owned-files.d.ts.map +1 -1
- package/dist/owned-files.js +24 -9
- package/dist/owned-files.js.map +1 -1
- package/dist/platform.d.ts +26 -3
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +87 -20
- package/dist/platform.js.map +1 -1
- package/dist/pty.d.ts +2 -1
- package/dist/pty.d.ts.map +1 -1
- package/dist/pty.js +20 -7
- package/dist/pty.js.map +1 -1
- package/dist/recovery-cloud-receipt.d.ts.map +1 -1
- package/dist/recovery-cloud-receipt.js +2 -1
- package/dist/recovery-cloud-receipt.js.map +1 -1
- package/dist/recovery-cloud-workspace.d.ts.map +1 -1
- package/dist/recovery-cloud-workspace.js +2 -1
- package/dist/recovery-cloud-workspace.js.map +1 -1
- package/dist/recovery-cloud.d.ts.map +1 -1
- package/dist/recovery-cloud.js +8 -9
- package/dist/recovery-cloud.js.map +1 -1
- package/dist/recovery-copilot.d.ts.map +1 -1
- package/dist/recovery-copilot.js +3 -2
- package/dist/recovery-copilot.js.map +1 -1
- package/dist/recovery-desktop.d.ts.map +1 -1
- package/dist/recovery-desktop.js +3 -2
- package/dist/recovery-desktop.js.map +1 -1
- package/dist/recovery-hooks.js +2 -2
- package/dist/recovery-hooks.js.map +1 -1
- package/dist/recovery-hosts.d.ts.map +1 -1
- package/dist/recovery-hosts.js +53 -6
- package/dist/recovery-hosts.js.map +1 -1
- package/dist/recovery-polytoken.d.ts +2 -2
- package/dist/recovery-polytoken.d.ts.map +1 -1
- package/dist/recovery-polytoken.js +13 -8
- package/dist/recovery-polytoken.js.map +1 -1
- package/dist/recovery-remote.js +3 -3
- package/dist/recovery-remote.js.map +1 -1
- package/dist/recovery-state.d.ts +22 -1
- package/dist/recovery-state.d.ts.map +1 -1
- package/dist/recovery-state.js +167 -31
- package/dist/recovery-state.js.map +1 -1
- package/dist/recovery-transfer.d.ts.map +1 -1
- package/dist/recovery-transfer.js +8 -4
- package/dist/recovery-transfer.js.map +1 -1
- package/dist/recovery.d.ts.map +1 -1
- package/dist/recovery.js +30 -11
- package/dist/recovery.js.map +1 -1
- package/dist/reliability-store.d.ts +13 -0
- package/dist/reliability-store.d.ts.map +1 -1
- package/dist/reliability-store.js +110 -8
- package/dist/reliability-store.js.map +1 -1
- package/dist/remember.d.ts.map +1 -1
- package/dist/remember.js +2 -2
- package/dist/remember.js.map +1 -1
- package/dist/retained-context.d.ts.map +1 -1
- package/dist/retained-context.js +3 -2
- package/dist/retained-context.js.map +1 -1
- package/dist/retrieval-task.d.ts +30 -0
- package/dist/retrieval-task.d.ts.map +1 -1
- package/dist/retrieval-task.js +98 -2
- package/dist/retrieval-task.js.map +1 -1
- package/dist/review.d.ts +1 -1
- package/dist/review.d.ts.map +1 -1
- package/dist/review.js +5 -2
- package/dist/review.js.map +1 -1
- package/dist/runtime.d.ts +4 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +138 -91
- package/dist/runtime.js.map +1 -1
- package/dist/self-host.d.ts +1 -1
- package/dist/self-host.d.ts.map +1 -1
- package/dist/self-host.js +105 -23
- package/dist/self-host.js.map +1 -1
- package/dist/share.d.ts.map +1 -1
- package/dist/share.js +2 -1
- package/dist/share.js.map +1 -1
- package/dist/signed-snapshot.d.ts +7 -0
- package/dist/signed-snapshot.d.ts.map +1 -1
- package/dist/signed-snapshot.js +27 -0
- package/dist/signed-snapshot.js.map +1 -1
- package/dist/skill-command.d.ts +5 -2
- package/dist/skill-command.d.ts.map +1 -1
- package/dist/skill-command.js +73 -10
- package/dist/skill-command.js.map +1 -1
- package/dist/skill-guidance.js +1 -1
- package/dist/skill-guidance.js.map +1 -1
- package/dist/skills.d.ts +2 -0
- package/dist/skills.d.ts.map +1 -1
- package/dist/skills.js +16 -11
- package/dist/skills.js.map +1 -1
- package/dist/status-health.d.ts +26 -0
- package/dist/status-health.d.ts.map +1 -0
- package/dist/status-health.js +49 -0
- package/dist/status-health.js.map +1 -0
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +2 -2
- package/dist/telemetry.js.map +1 -1
- package/dist/terminal-output.d.ts +76 -0
- package/dist/terminal-output.d.ts.map +1 -0
- package/dist/terminal-output.js +151 -0
- package/dist/terminal-output.js.map +1 -0
- package/dist/uninstall.d.ts.map +1 -1
- package/dist/uninstall.js +14 -32
- package/dist/uninstall.js.map +1 -1
- package/dist/update.d.ts +17 -1
- package/dist/update.d.ts.map +1 -1
- package/dist/update.js +150 -51
- package/dist/update.js.map +1 -1
- package/dist/windows-permissions.d.ts +6 -0
- package/dist/windows-permissions.d.ts.map +1 -1
- package/dist/windows-permissions.js +22 -2
- package/dist/windows-permissions.js.map +1 -1
- package/dist/windows-pty.d.ts.map +1 -1
- package/dist/windows-pty.js +4 -3
- package/dist/windows-pty.js.map +1 -1
- package/package.json +4 -4
|
@@ -7,8 +7,8 @@ export declare function polytokenConnection(run: RecoveryRun, env?: NodeJS.Proce
|
|
|
7
7
|
json: (path: string, method?: string) => Promise<any>;
|
|
8
8
|
}>;
|
|
9
9
|
export declare function polytokenFailureReason(value: unknown, sessionId: string, promptId: string): "rate_limit" | "agent_error" | undefined;
|
|
10
|
-
/** Subscribe before pre_model_turn returns, so an immediate 429 cannot be missed. */
|
|
11
|
-
export declare function observePolytokenRecovery(home: string, id: string, env?: NodeJS.ProcessEnv): () => void
|
|
10
|
+
/** Subscribe before pre_model_turn returns, so an immediate 429 cannot be missed. The returned stop resolves once the observer has released its store locks. */
|
|
11
|
+
export declare function observePolytokenRecovery(home: string, id: string, env?: NodeJS.ProcessEnv): () => Promise<void>;
|
|
12
12
|
/** A failed turn can leave the daemon active. Yes cancels that exact saved prompt. */
|
|
13
13
|
export declare function verifyPolytokenStopped(run: RecoveryRun, env?: NodeJS.ProcessEnv): Promise<void>;
|
|
14
14
|
//# sourceMappingURL=recovery-polytoken.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recovery-polytoken.d.ts","sourceRoot":"","sources":["../src/recovery-polytoken.ts"],"names":[],"mappings":"AAKA,OAAO,EAA8F,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"recovery-polytoken.d.ts","sourceRoot":"","sources":["../src/recovery-polytoken.ts"],"names":[],"mappings":"AAKA,OAAO,EAA8F,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAQnJ,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,oBAAc;;;;;iBAejD,MAAM;GAajC;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,aAAa,GAAG,SAAS,CAOpI;AA8BD,gKAAgK;AAChK,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,oBAAc,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAgDzG;AAED,sFAAsF;AACtF,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,oBAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB/F"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { assertRecoveryConnection } from "./recovery-connection.js";
|
|
2
|
-
import {
|
|
2
|
+
import { realpath } from "node:fs/promises";
|
|
3
3
|
import { constants } from "node:fs";
|
|
4
4
|
import { resolve } from "node:path";
|
|
5
5
|
import { z } from "zod";
|
|
6
6
|
import { RecoveryRunSchema, recoveryRunKey, recoveryStore, markRecoveryFailure, recoveryMessageText } from "./recovery-state.js";
|
|
7
7
|
import { readOwnedJson } from "./recovery-hosts.js";
|
|
8
8
|
import { readBoundedUtf8 } from "./stdin.js";
|
|
9
|
+
import { openNoFollow } from "@lore-co/core/no-follow";
|
|
9
10
|
const SessionId = z.string().regex(/^[0-9abcdefghjkmnpqrstvwxyz]{6}-[a-z][a-z0-9_]*(?:-[a-z][a-z0-9_]*)?$/u);
|
|
10
11
|
const Registry = z.object({ session_id: SessionId, port: z.number().int().min(1).max(65535), pid: z.number().int().positive(),
|
|
11
12
|
project_path: z.string(), credential_file_path: z.string(), parent_session_id: z.object({ kind: z.literal("standalone") }), non_interactive: z.literal(false).optional() });
|
|
@@ -16,7 +17,7 @@ export async function polytokenConnection(run, env = process.env) {
|
|
|
16
17
|
const record = Registry.parse(await readOwnedJson(resolve(directory, "record.json"), 16000));
|
|
17
18
|
if (record.session_id !== id || await realpath(record.project_path) !== run.root || await realpath(record.credential_file_path) !== resolve(directory, "credential.json"))
|
|
18
19
|
throw new Error("Polytoken registry does not match this session/worktree");
|
|
19
|
-
const file = await
|
|
20
|
+
const file = await openNoFollow(resolve(directory, "credential.json"), constants.O_RDONLY);
|
|
20
21
|
let token;
|
|
21
22
|
try {
|
|
22
23
|
const stat = await file.stat();
|
|
@@ -92,7 +93,7 @@ async function refreshPolytokenContext(home, run, connection) {
|
|
|
92
93
|
return current;
|
|
93
94
|
});
|
|
94
95
|
}
|
|
95
|
-
/** Subscribe before pre_model_turn returns, so an immediate 429 cannot be missed. */
|
|
96
|
+
/** Subscribe before pre_model_turn returns, so an immediate 429 cannot be missed. The returned stop resolves once the observer has released its store locks. */
|
|
96
97
|
export function observePolytokenRecovery(home, id, env = process.env) {
|
|
97
98
|
const store = recoveryStore(home);
|
|
98
99
|
let stopped = false;
|
|
@@ -151,17 +152,21 @@ export function observePolytokenRecovery(home, id, env = process.env) {
|
|
|
151
152
|
}
|
|
152
153
|
catch { /* A later pre-model hook retries the subscription; never scrape UI text. */ }
|
|
153
154
|
finally {
|
|
154
|
-
const ready = await store.readState(`polytoken-ready-${id}`);
|
|
155
|
-
if (ready?.pid === process.pid)
|
|
156
|
-
await store.deleteState(`polytoken-ready-${id}`);
|
|
157
155
|
controller?.abort();
|
|
156
|
+
// The loop runs unawaited, so a throw here would be an unhandled rejection. A leftover marker is harmless: readers check its pid is alive.
|
|
157
|
+
try {
|
|
158
|
+
const ready = await store.readState(`polytoken-ready-${id}`);
|
|
159
|
+
if (ready?.pid === process.pid)
|
|
160
|
+
await store.deleteState(`polytoken-ready-${id}`);
|
|
161
|
+
}
|
|
162
|
+
catch { /* The next subscription overwrites the marker. */ }
|
|
158
163
|
}
|
|
159
164
|
if (!stopped)
|
|
160
165
|
await new Promise(done => setTimeout(done, 250));
|
|
161
166
|
}
|
|
162
167
|
};
|
|
163
|
-
|
|
164
|
-
return () => { stopped = true; controller?.abort(); };
|
|
168
|
+
const done = work();
|
|
169
|
+
return () => { stopped = true; controller?.abort(); return done; };
|
|
165
170
|
}
|
|
166
171
|
/** A failed turn can leave the daemon active. Yes cancels that exact saved prompt. */
|
|
167
172
|
export async function verifyPolytokenStopped(run, env = process.env) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recovery-polytoken.js","sourceRoot":"","sources":["../src/recovery-polytoken.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"recovery-polytoken.js","sourceRoot":"","sources":["../src/recovery-polytoken.ts"],"names":[],"mappings":"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"}
|
package/dist/recovery-remote.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { spawn } from "./platform.js";
|
|
1
|
+
import { spawn, systemCommand } from "./platform.js";
|
|
2
2
|
import { readBoundedUtf8 } from "./stdin.js";
|
|
3
3
|
import { resolve } from "node:path";
|
|
4
4
|
import { createHash } from "node:crypto";
|
|
@@ -14,7 +14,7 @@ function sshArguments(remote, command, interactive = false) {
|
|
|
14
14
|
}
|
|
15
15
|
async function remoteRequest(remote, command, input, env = process.env, signal) {
|
|
16
16
|
return await new Promise((done, reject) => {
|
|
17
|
-
const child = spawn("ssh", sshArguments(remote, ["lore", "recovery", ...command]), {
|
|
17
|
+
const child = spawn(systemCommand("ssh", { env }), sshArguments(remote, ["lore", "recovery", ...command]), {
|
|
18
18
|
env, stdio: ["pipe", "pipe", "pipe"], ...(signal === undefined ? {} : { signal }),
|
|
19
19
|
});
|
|
20
20
|
let output = "", errorOutput = "", finished = false;
|
|
@@ -62,7 +62,7 @@ export async function launchRemoteRecovery(run, remote, env = process.env, onLau
|
|
|
62
62
|
await onRestored();
|
|
63
63
|
process.stdout.write(`\nTransferred HEAD, tracked changes and ${packet.files.filter(file => !file.tracked).length} untracked file(s) to ${remote.host}:${receipt.cwd}.\n`);
|
|
64
64
|
await new Promise((done, reject) => {
|
|
65
|
-
const child = spawn("ssh", sshArguments(remote, ["lore", "recovery", "worker-launch", packet.id], true), { env, stdio: "inherit" });
|
|
65
|
+
const child = spawn(systemCommand("ssh", { env }), sshArguments(remote, ["lore", "recovery", "worker-launch", packet.id], true), { env, stdio: "inherit" });
|
|
66
66
|
// Once the remote launch command is dispatched, a lost receipt cannot prove
|
|
67
67
|
// that the agent never started. Keep the local restored files in that case.
|
|
68
68
|
child.once("spawn", onStarted);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recovery-remote.js","sourceRoot":"","sources":["../src/recovery-remote.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"recovery-remote.js","sourceRoot":"","sources":["../src/recovery-remote.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,eAAe,EAAwB,MAAM,aAAa,CAAC;AACvG,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,UAAU,EAA0B,MAAM,wBAAwB,CAAC;AACzN,OAAO,EAAE,aAAa,EAAoB,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACpH,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEtG,SAAS,YAAY,CAAC,MAAyB,EAAE,OAA0B,EAAE,WAAW,GAAG,KAAK;IAC9F,uBAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtC,OAAO,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACnJ,CAAC;AACD,KAAK,UAAU,aAAa,CAAC,MAAyB,EAAE,OAAiB,EAAE,KAAc,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,MAAoB;IAChI,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE;YACzG,GAAG,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;SAClF,CAAC,CAAC;QACH,IAAI,MAAM,GAAG,EAAE,EAAE,WAAW,GAAG,EAAE,EAAE,QAAQ,GAAG,KAAK,CAAC;QACpD,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,KAAe,EAAE,EAAE,GAAG,IAAI,QAAQ;YAAE,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1J,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC5H,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3F,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,CAAC;YAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAAC,MAAM,CAAC,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC,CAAC;QAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1L,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,WAAW,GAAG,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;YACzB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBAAC,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,IAAI,MAAM,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YACzG,IAAI,CAAC;gBAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,MAAM,CAAC,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC,CAAC;YAAC,CAAC;QACpI,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,MAAyB,EAAE,KAAsB,EAAE,oBAAmC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,MAAoB;IAC3K,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,CAAC,cAAc,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAChH,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,wBAAwB,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC3J,IAAI,KAAK,CAAC,YAAY,KAAK,oBAAoB;QAAE,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAC;AACxJ,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,GAAgB,EAAE,MAAyB,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,QAAQ,GAAG,KAAK,IAAI,EAAE,GAAE,CAAC,EAAE,UAAU,GAAG,KAAK,IAAI,EAAE,GAAE,CAAC,EAAE,SAAS,GAAG,GAAG,EAAE,GAAE,CAAC;IACrL,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC;IAC9C,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,wBAAwB,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,aAAa,CAAC,MAAM,EAAE,CAAC,cAAc,EAAE,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3K,IAAI,KAAK,CAAC,YAAY,KAAK,YAAY;QAAE,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAC;IAC9I,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5G,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,IAAI,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACvI,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC1H,MAAM,UAAU,EAAE,CAAC;IACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,yBAAyB,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;IAC3K,MAAM,IAAI,OAAO,CAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QACvC,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAC5J,4EAA4E;QAC5E,4EAA4E;QAC5E,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YAClC,OAAO,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9C,KAAK,CAAC,KAAK,IAAI,EAAE;gBACf,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;gBAC3F,IAAI,OAAO,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;gBACtH,oEAAoE;gBACpE,+DAA+D;gBAC/D,MAAM,QAAQ,EAAE,CAAC;YACnB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,wBAAwB,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACzP,uGAAuG;AACvG,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAuB,EAAE,IAAY;IAC3E,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,gBAAgB,EAAE,CAAC;QACjC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;QACxE,MAAM,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC7C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QAAC,OAAO;IACzF,CAAC;IACD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,eAAe,EAAE,CAAC;QAChC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,wBAAwB,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/F,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE;YAC/E,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACvC,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YAC/H,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACrC,CAAC,CAAC,CAAC,CAAC;QACJ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAChF,MAAM,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC/B,OAAO,GAAG,CAAC,oBAAoB,CAAC;QAAC,OAAO,GAAG,CAAC,oBAAoB,CAAC;QAAC,OAAO,GAAG,CAAC,sBAAsB,CAAC;QACpG,IAAI,QAAQ,GAAqB,OAAO,CAAC,OAAO,EAAE,CAAC;QACnD,MAAM,IAAI,OAAO,CAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YACvC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC,KAAwB,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YACzI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3G,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAChI,CAAC,CAAC,CAAC;QACH,MAAM,QAAQ,CAAC;QACf,OAAO;IACT,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC1G,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACnF,MAAM,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,YAAY,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACjE,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,cAAc,EAAE,CAAC;QAC/B,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAAC,MAAM,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACtG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QAAC,OAAO;IACxG,CAAC;IACD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,eAAe;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACpF,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,wBAAwB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9G,IAAI,YAAY,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IAC9G,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACzG,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;QACtE,IAAI,IAAI,KAAK,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACtE,KAAK,GAAG,IAAI,CAAC;IACf,CAAC;YAAS,CAAC;QAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAAC,CAAC;IACpC,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,0BAA0B,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACzE,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAC,QAAQ,EAAC,EAAE;QAC3F,IAAI,YAAY,IAAI,MAAM,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YAAC,MAAM,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YAAC,KAAK,GAAG,IAAI,CAAC;QAAC,CAAC;QAC3I,MAAM,wBAAwB,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC;QAC1E,MAAM,KAAK,CAAC,UAAU,CAAC,UAAU,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACtI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;QACrB,8EAA8E;QAC9E,IAAI,KAAK;YAAE,MAAM,sBAAsB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC3D,MAAM,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;AAC7G,CAAC"}
|
package/dist/recovery-state.d.ts
CHANGED
|
@@ -9,6 +9,8 @@ declare const Snapshot: z.ZodObject<{
|
|
|
9
9
|
status: z.ZodString;
|
|
10
10
|
diff: z.ZodString;
|
|
11
11
|
fingerprint: z.ZodString;
|
|
12
|
+
statusUnavailable: z.ZodOptional<z.ZodString>;
|
|
13
|
+
diffUnavailable: z.ZodOptional<z.ZodString>;
|
|
12
14
|
}, z.core.$strip>;
|
|
13
15
|
export declare const RecoveryRunSchema: z.ZodObject<{
|
|
14
16
|
id: z.ZodUUID;
|
|
@@ -75,6 +77,8 @@ export declare const RecoveryRunSchema: z.ZodObject<{
|
|
|
75
77
|
status: z.ZodString;
|
|
76
78
|
diff: z.ZodString;
|
|
77
79
|
fingerprint: z.ZodString;
|
|
80
|
+
statusUnavailable: z.ZodOptional<z.ZodString>;
|
|
81
|
+
diffUnavailable: z.ZodOptional<z.ZodString>;
|
|
78
82
|
}, z.core.$strip>;
|
|
79
83
|
}, z.core.$strip>>;
|
|
80
84
|
}, z.core.$strip>;
|
|
@@ -83,7 +87,24 @@ export type WorkspaceSnapshot = z.infer<typeof Snapshot>;
|
|
|
83
87
|
export declare function recoveryStore(home: string): ReliabilityStore;
|
|
84
88
|
export declare const recoveryRunKey: (id: string) => string;
|
|
85
89
|
export declare const recoveryMessageText: (text: string) => string;
|
|
86
|
-
|
|
90
|
+
/** Total time for one snapshot. Hooks use less: Claude kills StopFailure hooks after 10 s. */
|
|
91
|
+
export declare const SNAPSHOT_BUDGET_MS = 10000;
|
|
92
|
+
export declare const HOOK_SNAPSHOT_BUDGET_MS = 4000;
|
|
93
|
+
export declare const UNAVAILABLE = "(unavailable)";
|
|
94
|
+
/**
|
|
95
|
+
* Root, branch and HEAD are cheap; status and diff scan the working tree and
|
|
96
|
+
* can be slow or huge. Those two are bounded and marked unavailable, never fatal.
|
|
97
|
+
*/
|
|
98
|
+
export declare function workspaceSnapshot(cwd: string, budgetMs?: number, knownRoot?: string): Promise<WorkspaceSnapshot>;
|
|
99
|
+
declare const Diagnostic: z.ZodObject<{
|
|
100
|
+
at: z.ZodString;
|
|
101
|
+
runId: z.ZodNullable<z.ZodString>;
|
|
102
|
+
stage: z.ZodString;
|
|
103
|
+
message: z.ZodString;
|
|
104
|
+
}, z.core.$strip>;
|
|
105
|
+
/** The real reason a recovery step degraded or failed, kept locally for lore recovery status. */
|
|
106
|
+
export declare function recordRecoveryDiagnostic(home: string, runId: string | null, stage: string, message: string): Promise<void>;
|
|
107
|
+
export declare function recoveryDiagnostics(home: string): Promise<z.infer<typeof Diagnostic>[]>;
|
|
87
108
|
export declare function createRecoveryRun(home: string, cwd: string, sourceAgent?: RecoverySource, targetAgent?: LaunchableAgent, targetRemote?: {
|
|
88
109
|
host: string;
|
|
89
110
|
directory: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recovery-state.d.ts","sourceRoot":"","sources":["../src/recovery-state.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAA+C,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"recovery-state.d.ts","sourceRoot":"","sources":["../src/recovery-state.ts"],"names":[],"mappings":"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"}
|
package/dist/recovery-state.js
CHANGED
|
@@ -1,19 +1,23 @@
|
|
|
1
|
-
import { execFile as execFileCallback } from "node:child_process";
|
|
1
|
+
import { execFile as execFileCallback, spawn } from "node:child_process";
|
|
2
2
|
import { promisify } from "node:util";
|
|
3
3
|
import { createHash, randomUUID } from "node:crypto";
|
|
4
4
|
import { constants } from "node:fs";
|
|
5
|
-
import {
|
|
5
|
+
import { realpath } from "node:fs/promises";
|
|
6
6
|
import { isAbsolute } from "node:path";
|
|
7
7
|
import { z } from "zod";
|
|
8
8
|
import { redactSensitiveText } from "@lore-co/core";
|
|
9
9
|
import { ReliabilityStore } from "./reliability-store.js";
|
|
10
10
|
import { RecoveryConnectionSchema, assertRecoveryConnection, assertRecoverySession, recoveryConnectionId } from "./recovery-connection.js";
|
|
11
11
|
import { AGENTS, LAUNCHABLE_AGENTS, RECOVERY_SOURCES } from "./agents.js";
|
|
12
|
+
import { openNoFollow } from "@lore-co/core/no-follow";
|
|
13
|
+
import { systemCommand } from "@lore-co/core/system-command";
|
|
12
14
|
const execFile = promisify(execFileCallback);
|
|
13
15
|
const Message = z.object({ role: z.enum(["user", "assistant"]), text: z.string().max(6000) });
|
|
14
16
|
const Snapshot = z.object({
|
|
15
17
|
cwd: z.string(), root: z.string(), branch: z.string(), head: z.string(),
|
|
16
18
|
status: z.string(), diff: z.string(), fingerprint: z.string(),
|
|
19
|
+
// Set when git could not report in time; the failure is still recorded.
|
|
20
|
+
statusUnavailable: z.string().max(1000).optional(), diffUnavailable: z.string().max(1000).optional(),
|
|
17
21
|
});
|
|
18
22
|
export const RecoveryRunSchema = z.object({
|
|
19
23
|
id: z.uuid(), startedAt: z.string(), updatedAt: z.string(),
|
|
@@ -35,9 +39,9 @@ export function recoveryStore(home) {
|
|
|
35
39
|
return new ReliabilityStore("recovery-local", { home });
|
|
36
40
|
}
|
|
37
41
|
export const recoveryRunKey = (id) => `run-${id}`;
|
|
38
|
-
function bounded(text, limit) {
|
|
42
|
+
function bounded(text, limit, truncated = false) {
|
|
39
43
|
const safe = redactSensitiveText(text).text.replace(/[\u0000-\u0008\u000b-\u001f\u007f]/gu, "");
|
|
40
|
-
if (Buffer.byteLength(safe) <= limit)
|
|
44
|
+
if (!truncated && Buffer.byteLength(safe) <= limit)
|
|
41
45
|
return safe;
|
|
42
46
|
const suffix = "\n[truncated by Lore]";
|
|
43
47
|
const bytes = Buffer.from(safe);
|
|
@@ -47,42 +51,155 @@ function bounded(text, limit) {
|
|
|
47
51
|
return bytes.subarray(0, end).toString("utf8") + suffix;
|
|
48
52
|
}
|
|
49
53
|
export const recoveryMessageText = (text) => bounded(text, 6000);
|
|
50
|
-
async function git(cwd, args) {
|
|
51
|
-
const { stdout } = await execFile("git", args, {
|
|
52
|
-
cwd, encoding: "utf8", timeout
|
|
54
|
+
async function git(cwd, args, timeout = 5000) {
|
|
55
|
+
const { stdout } = await execFile(systemCommand("git", { exclude: [cwd] }), args, {
|
|
56
|
+
cwd, encoding: "utf8", timeout, maxBuffer: 1024 * 1024,
|
|
53
57
|
env: { ...process.env, GIT_OPTIONAL_LOCKS: "0" },
|
|
54
58
|
});
|
|
55
59
|
return stdout.trimEnd();
|
|
56
60
|
}
|
|
57
|
-
|
|
61
|
+
/** Total time for one snapshot. Hooks use less: Claude kills StopFailure hooks after 10 s. */
|
|
62
|
+
export const SNAPSHOT_BUDGET_MS = 10000;
|
|
63
|
+
export const HOOK_SNAPSHOT_BUDGET_MS = 4000;
|
|
64
|
+
const STATUS_LIMIT = 12000, DIFF_LIMIT = 48000;
|
|
65
|
+
// Redact with room past the cut so a secret that straddles it is still matched whole.
|
|
66
|
+
const REDACTION_SLACK = 64 * 1024;
|
|
67
|
+
export const UNAVAILABLE = "(unavailable)";
|
|
68
|
+
class GitTimeout extends Error {
|
|
69
|
+
}
|
|
70
|
+
/** Stream git stdout, keeping a bounded prefix and a digest of all of it, until the deadline. */
|
|
71
|
+
function gitBounded(cwd, args, deadline, limit) {
|
|
72
|
+
return new Promise((done, reject) => {
|
|
73
|
+
const started = Date.now(), remaining = deadline - started;
|
|
74
|
+
const timeoutError = () => new GitTimeout(`git ${args[0]} did not finish within ${Math.round((Date.now() - started) / 100) / 10} s`);
|
|
75
|
+
if (remaining <= 0) {
|
|
76
|
+
reject(new GitTimeout(`git ${args[0]} was skipped: Lore's snapshot time limit was reached`));
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
const child = spawn(systemCommand("git", { exclude: [cwd] }), args, { cwd, env: { ...process.env, GIT_OPTIONAL_LOCKS: "0" }, stdio: ["ignore", "pipe", "pipe"], windowsHide: true });
|
|
80
|
+
const hash = createHash("sha256"), kept = [];
|
|
81
|
+
let size = 0, stderr = "", timedOut = false;
|
|
82
|
+
child.stdout.on("data", (chunk) => {
|
|
83
|
+
hash.update(chunk);
|
|
84
|
+
if (size < limit + REDACTION_SLACK)
|
|
85
|
+
kept.push(chunk.subarray(0, limit + REDACTION_SLACK - size));
|
|
86
|
+
size += chunk.length;
|
|
87
|
+
});
|
|
88
|
+
child.stderr.on("data", (chunk) => { if (stderr.length < 2000)
|
|
89
|
+
stderr += chunk.toString("utf8"); });
|
|
90
|
+
const timer = setTimeout(() => {
|
|
91
|
+
// Settle now: a helper process can keep the pipes open after git is killed.
|
|
92
|
+
timedOut = true;
|
|
93
|
+
child.kill("SIGKILL");
|
|
94
|
+
child.stdout.destroy();
|
|
95
|
+
child.stderr.destroy();
|
|
96
|
+
reject(timeoutError());
|
|
97
|
+
}, remaining);
|
|
98
|
+
child.once("error", error => { clearTimeout(timer); reject(error); });
|
|
99
|
+
child.once("close", code => {
|
|
100
|
+
clearTimeout(timer);
|
|
101
|
+
if (timedOut)
|
|
102
|
+
return;
|
|
103
|
+
if (code !== 0)
|
|
104
|
+
reject(new Error(`git ${args[0]} exited with code ${code}${stderr.trim() ? `: ${stderr.trim()}` : ""}`));
|
|
105
|
+
else
|
|
106
|
+
done({ text: Buffer.concat(kept).toString("utf8").trimEnd(), truncated: size > limit, digest: hash.digest("hex") });
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
const gitReason = (error) => bounded(error instanceof Error ? error.message : String(error), 500);
|
|
111
|
+
async function gitLine(cwd, args, deadline, fallback) {
|
|
112
|
+
try {
|
|
113
|
+
return (await gitBounded(cwd, args, deadline, 4096)).text;
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
return error instanceof GitTimeout ? UNAVAILABLE : fallback;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
async function trackedDiff(root, deadline) {
|
|
120
|
+
const diff = ["diff", "--no-ext-diff", "--no-textconv"];
|
|
121
|
+
try {
|
|
122
|
+
return await gitBounded(root, [...diff, "HEAD", "--"], deadline, DIFF_LIMIT);
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
if (error instanceof GitTimeout)
|
|
126
|
+
throw error;
|
|
127
|
+
// Unborn repositories still have staged and unstaged changes.
|
|
128
|
+
const [staged, unstaged] = await Promise.all([gitBounded(root, [...diff, "--cached"], deadline, DIFF_LIMIT), gitBounded(root, diff, deadline, DIFF_LIMIT)]);
|
|
129
|
+
return {
|
|
130
|
+
text: [staged.text, unstaged.text].filter(Boolean).join("\n"), truncated: staged.truncated || unstaged.truncated,
|
|
131
|
+
digest: createHash("sha256").update(staged.digest + unstaged.digest).digest("hex"),
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
function fingerprintOf(parts) {
|
|
136
|
+
return createHash("sha256").update(JSON.stringify(parts)).digest("hex");
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Root, branch and HEAD are cheap; status and diff scan the working tree and
|
|
140
|
+
* can be slow or huge. Those two are bounded and marked unavailable, never fatal.
|
|
141
|
+
*/
|
|
142
|
+
export async function workspaceSnapshot(cwd, budgetMs = SNAPSHOT_BUDGET_MS, knownRoot) {
|
|
143
|
+
const deadline = Date.now() + budgetMs;
|
|
58
144
|
const directory = await realpath(cwd);
|
|
59
|
-
const root = await realpath(await git(directory, ["rev-parse", "--show-toplevel"]));
|
|
145
|
+
const root = knownRoot ?? await realpath(await git(directory, ["rev-parse", "--show-toplevel"], Math.max(1, deadline - Date.now())));
|
|
60
146
|
const [branch, head, status, diff] = await Promise.all([
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
// Unborn repositories still have staged and unstaged changes.
|
|
66
|
-
return (await git(root, ["diff", "--no-ext-diff", "--no-textconv", "--cached"])) +
|
|
67
|
-
(await git(root, ["diff", "--no-ext-diff", "--no-textconv"]));
|
|
68
|
-
}),
|
|
147
|
+
gitLine(root, ["symbolic-ref", "--short", "-q", "HEAD"], deadline, "(detached HEAD)"),
|
|
148
|
+
gitLine(root, ["rev-parse", "--verify", "HEAD"], deadline, "(unborn branch)"),
|
|
149
|
+
gitBounded(root, ["status", "--porcelain=v1", "--untracked-files=all"], deadline, STATUS_LIMIT).catch((error) => gitReason(error)),
|
|
150
|
+
trackedDiff(root, deadline).catch((error) => gitReason(error)),
|
|
69
151
|
]);
|
|
70
152
|
return {
|
|
71
153
|
cwd: directory, root, branch, head,
|
|
72
|
-
status:
|
|
73
|
-
|
|
154
|
+
status: typeof status === "string" ? "" : bounded(status.text, STATUS_LIMIT, status.truncated),
|
|
155
|
+
diff: typeof diff === "string" ? "" : bounded(diff.text, DIFF_LIMIT, diff.truncated),
|
|
156
|
+
...(typeof status === "string" ? { statusUnavailable: status } : {}),
|
|
157
|
+
...(typeof diff === "string" ? { diffUnavailable: diff } : {}),
|
|
158
|
+
fingerprint: fingerprintOf([root, branch, head,
|
|
159
|
+
typeof status === "string" ? `unavailable:${randomUUID()}` : status.digest,
|
|
160
|
+
typeof diff === "string" ? `unavailable:${randomUUID()}` : diff.digest]),
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
/** What can still be recorded when even the bounded snapshot failed. */
|
|
164
|
+
function minimalSnapshot(cwd, root, error) {
|
|
165
|
+
const reason = gitReason(error);
|
|
166
|
+
return {
|
|
167
|
+
cwd, root, branch: UNAVAILABLE, head: UNAVAILABLE, status: "", diff: "",
|
|
168
|
+
statusUnavailable: reason, diffUnavailable: reason, fingerprint: fingerprintOf([root, `unavailable:${randomUUID()}`]),
|
|
74
169
|
};
|
|
75
170
|
}
|
|
171
|
+
/** A snapshot for a failure record: degraded when it must be, never lost. */
|
|
172
|
+
async function failureSnapshot(home, runId, stage, cwd, root, budgetMs) {
|
|
173
|
+
const snapshot = await workspaceSnapshot(cwd, budgetMs, root).catch((error) => minimalSnapshot(cwd, root, error));
|
|
174
|
+
const missing = [snapshot.statusUnavailable && `status: ${snapshot.statusUnavailable}`, snapshot.diffUnavailable && `diff: ${snapshot.diffUnavailable}`].filter(Boolean);
|
|
175
|
+
if (missing.length)
|
|
176
|
+
await recordRecoveryDiagnostic(home, runId, stage, `Recorded the failure without the full working tree (${missing.join("; ")}).`);
|
|
177
|
+
return snapshot;
|
|
178
|
+
}
|
|
179
|
+
const Diagnostic = z.object({ at: z.string(), runId: z.string().nullable(), stage: z.string(), message: z.string() });
|
|
180
|
+
/** The real reason a recovery step degraded or failed, kept locally for lore recovery status. */
|
|
181
|
+
export async function recordRecoveryDiagnostic(home, runId, stage, message) {
|
|
182
|
+
await recoveryStore(home).updateState("diagnostics", current => {
|
|
183
|
+
const previous = z.array(Diagnostic).safeParse(current);
|
|
184
|
+
return [...(previous.success ? previous.data : []), { at: new Date().toISOString(), runId, stage, message: bounded(message, 1000) }].slice(-20);
|
|
185
|
+
}).catch(() => { });
|
|
186
|
+
}
|
|
187
|
+
export async function recoveryDiagnostics(home) {
|
|
188
|
+
const value = z.array(Diagnostic).safeParse(await recoveryStore(home).readState("diagnostics").catch(() => null));
|
|
189
|
+
return value.success ? value.data : [];
|
|
190
|
+
}
|
|
76
191
|
export async function createRecoveryRun(home, cwd, sourceAgent = "claude", targetAgent = "codex", targetRemote, expectedConnection) {
|
|
77
192
|
if (sourceAgent === targetAgent)
|
|
78
193
|
throw new Error("Choose a different fallback agent.");
|
|
79
194
|
const connectionId = await recoveryConnectionId(home, cwd);
|
|
80
195
|
if (expectedConnection !== undefined && connectionId !== expectedConnection)
|
|
81
196
|
throw new Error("Recovery destination belongs to another Lore connection or is outside its folder rules.");
|
|
82
|
-
|
|
197
|
+
// Only the checkout is needed here; a slow git status must not delay the agent's start.
|
|
198
|
+
const directory = await realpath(cwd);
|
|
199
|
+
const root = await realpath(await git(directory, ["rev-parse", "--show-toplevel"]));
|
|
83
200
|
const now = new Date().toISOString();
|
|
84
201
|
const run = {
|
|
85
|
-
id: randomUUID(), connectionId, startedAt: now, updatedAt: now, cwd:
|
|
202
|
+
id: randomUUID(), connectionId, startedAt: now, updatedAt: now, cwd: directory, root,
|
|
86
203
|
sourceAgent, targetAgent, ...(targetRemote ? { targetRemote } : {}), sessionId: null, goal: "", messages: [], turn: 0, turnPending: false, failure: null,
|
|
87
204
|
};
|
|
88
205
|
const store = recoveryStore(home);
|
|
@@ -112,7 +229,7 @@ export async function createRecoveryRun(home, cwd, sourceAgent = "claude", targe
|
|
|
112
229
|
async function transcriptMessages(path, sessionId) {
|
|
113
230
|
if (!isAbsolute(path))
|
|
114
231
|
return [];
|
|
115
|
-
const file = await
|
|
232
|
+
const file = await openNoFollow(path, constants.O_RDONLY);
|
|
116
233
|
try {
|
|
117
234
|
const stat = await file.stat();
|
|
118
235
|
if (!stat.isFile() || (process.getuid && stat.uid !== process.getuid()))
|
|
@@ -182,7 +299,7 @@ export async function captureRecoveryHook(home, runId, value, agent = "claude")
|
|
|
182
299
|
return;
|
|
183
300
|
const cwd = await realpath(input.cwd);
|
|
184
301
|
// A worktree launched by Claude itself must use a separately wrapped session.
|
|
185
|
-
const root = await realpath(await git(cwd, ["rev-parse", "--show-toplevel"]));
|
|
302
|
+
const root = await realpath(await git(cwd, ["rev-parse", "--show-toplevel"], 2000));
|
|
186
303
|
if (root !== prior.data.root)
|
|
187
304
|
return;
|
|
188
305
|
await assertRecoverySession(home, { ...prior.data, cwd }, agent, input.session_id);
|
|
@@ -190,9 +307,12 @@ export async function captureRecoveryHook(home, runId, value, agent = "claude")
|
|
|
190
307
|
input.error === "provider_retry" && agent === "opencode" ? "provider_retry" :
|
|
191
308
|
input.error === "agent_error" && ["cursor", "copilot-cli"].includes(agent) ? "agent_error" : undefined;
|
|
192
309
|
const failed = input.hook_event_name === "StopFailure" && reason !== undefined;
|
|
193
|
-
|
|
194
|
-
const transcript =
|
|
195
|
-
?
|
|
310
|
+
// The host kills slow hooks; read the transcript while git runs.
|
|
311
|
+
const [snapshot, transcript] = await Promise.all([
|
|
312
|
+
failed ? failureSnapshot(home, runId, "failure hook", cwd, root, HOOK_SNAPSHOT_BUDGET_MS) : null,
|
|
313
|
+
agent === "claude" && failed && input.transcript_path
|
|
314
|
+
? transcriptMessages(input.transcript_path, input.session_id).catch(() => []) : [],
|
|
315
|
+
]);
|
|
196
316
|
const unavailable = Symbol("unavailable recovery run");
|
|
197
317
|
await store.updateState(recoveryRunKey(runId), (current) => {
|
|
198
318
|
const latest = RecoveryRunSchema.safeParse(current);
|
|
@@ -252,9 +372,11 @@ export async function markRecoveryFailure(home, observed, reason) {
|
|
|
252
372
|
if (!observed.goal || !observed.sessionId || !observed.turnPending || observed.failure)
|
|
253
373
|
return;
|
|
254
374
|
await assertRecoverySession(home, observed, observed.sourceAgent, observed.sessionId);
|
|
255
|
-
|
|
256
|
-
|
|
375
|
+
// An unreadable root still records the failure; launch re-checks the checkout before switching.
|
|
376
|
+
const root = await git(observed.cwd, ["rev-parse", "--show-toplevel"]).then(path => realpath(path)).catch(() => null);
|
|
377
|
+
if (root !== null && root !== observed.root)
|
|
257
378
|
return;
|
|
379
|
+
const snapshot = await failureSnapshot(home, observed.id, `${reason} observer`, observed.cwd, observed.root, SNAPSHOT_BUDGET_MS);
|
|
258
380
|
await recoveryStore(home).updateState(recoveryRunKey(observed.id), current => {
|
|
259
381
|
const run = RecoveryRunSchema.parse(current);
|
|
260
382
|
if (run.turn !== observed.turn || run.sessionId !== observed.sessionId || !run.turnPending || run.failure)
|
|
@@ -291,9 +413,19 @@ export async function requestRecoverySwitch(home, id) {
|
|
|
291
413
|
await assertRecoveryConnection(home, run);
|
|
292
414
|
if (!run.goal || !run.sessionId)
|
|
293
415
|
throw new Error("No prompt checkpoint yet. Submit a task before switching.");
|
|
294
|
-
|
|
416
|
+
let snapshot;
|
|
417
|
+
try {
|
|
418
|
+
snapshot = await workspaceSnapshot(run.cwd);
|
|
419
|
+
}
|
|
420
|
+
catch (error) {
|
|
421
|
+
await recordRecoveryDiagnostic(home, id, "manual switch", gitReason(error));
|
|
422
|
+
throw new Error(`Lore could not read this working tree, so it cannot offer a switch yet (${gitReason(error)}). Check that git works in ${JSON.stringify(run.cwd)}, then try again.`);
|
|
423
|
+
}
|
|
295
424
|
if (snapshot.root !== run.root)
|
|
296
425
|
throw new Error("The working tree changed; cannot offer a switch.");
|
|
426
|
+
if (snapshot.statusUnavailable || snapshot.diffUnavailable) {
|
|
427
|
+
await recordRecoveryDiagnostic(home, id, "manual switch", `Switch requested without the full working tree (${snapshot.statusUnavailable ?? snapshot.diffUnavailable}).`);
|
|
428
|
+
}
|
|
297
429
|
await store.updateState(recoveryRunKey(id), (current) => {
|
|
298
430
|
const latest = RecoveryRunSchema.parse(current);
|
|
299
431
|
latest.failure = { id: `${id}:manual:${randomUUID()}`, reason: "manual", snapshot };
|
|
@@ -334,8 +466,12 @@ export function recoveryBrief(run, snapshot) {
|
|
|
334
466
|
"", "Original goal:", bounded(run.goal, 6000),
|
|
335
467
|
"", "Latest user request / correction:", bounded(latestUser?.text ?? run.goal, 6000),
|
|
336
468
|
"", "Recent conversation and available tool results (oldest first):", ...recent,
|
|
337
|
-
|
|
338
|
-
|
|
469
|
+
...(snapshot.statusUnavailable || snapshot.diffUnavailable ? ["",
|
|
470
|
+
"Lore could not capture the working-tree changes, so the status or diff below is missing. Run git status and git diff yourself before editing; the files on disk are the source of truth."] : []),
|
|
471
|
+
"", "Current git status (untracked file contents remain on disk):",
|
|
472
|
+
snapshot.statusUnavailable ? `Unavailable: ${bounded(snapshot.statusUnavailable, 1000)}` : bounded(snapshot.status || "Clean", 8000),
|
|
473
|
+
"", "Current tracked diff:",
|
|
474
|
+
snapshot.diffUnavailable ? `Unavailable: ${bounded(snapshot.diffUnavailable, 1000)}` : bounded(snapshot.diff || "No tracked diff", 28000),
|
|
339
475
|
"", "Next step: determine what is still unfinished from the latest request and current files. Verify the result with the relevant checks.",
|
|
340
476
|
"If connected, query Lore for additional prior decisions. Do not assume an omitted tool result or test was successful.",
|
|
341
477
|
].join("\n");
|