@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.
Files changed (216) hide show
  1. package/README.md +69 -18
  2. package/dist/agents.d.ts +9 -0
  3. package/dist/agents.d.ts.map +1 -1
  4. package/dist/agents.js +19 -6
  5. package/dist/agents.js.map +1 -1
  6. package/dist/api.d.ts +2 -1
  7. package/dist/api.d.ts.map +1 -1
  8. package/dist/api.js +15 -2
  9. package/dist/api.js.map +1 -1
  10. package/dist/approach-guidance.d.ts +8 -1
  11. package/dist/approach-guidance.d.ts.map +1 -1
  12. package/dist/approach-guidance.js +13 -3
  13. package/dist/approach-guidance.js.map +1 -1
  14. package/dist/approach.d.ts.map +1 -1
  15. package/dist/approach.js +2 -2
  16. package/dist/approach.js.map +1 -1
  17. package/dist/ask.d.ts.map +1 -1
  18. package/dist/ask.js +2 -2
  19. package/dist/ask.js.map +1 -1
  20. package/dist/capture-scope.d.ts.map +1 -1
  21. package/dist/capture-scope.js +2 -1
  22. package/dist/capture-scope.js.map +1 -1
  23. package/dist/chat.d.ts.map +1 -1
  24. package/dist/chat.js +2 -2
  25. package/dist/chat.js.map +1 -1
  26. package/dist/cli.d.ts +66 -2
  27. package/dist/cli.d.ts.map +1 -1
  28. package/dist/cli.js +547 -91
  29. package/dist/cli.js.map +1 -1
  30. package/dist/codex-hook-approval.d.ts.map +1 -1
  31. package/dist/codex-hook-approval.js +9 -2
  32. package/dist/codex-hook-approval.js.map +1 -1
  33. package/dist/command-help.d.ts.map +1 -1
  34. package/dist/command-help.js +7 -3
  35. package/dist/command-help.js.map +1 -1
  36. package/dist/config-command.js +2 -2
  37. package/dist/config-command.js.map +1 -1
  38. package/dist/connect-project.d.ts.map +1 -1
  39. package/dist/connect-project.js +2 -1
  40. package/dist/connect-project.js.map +1 -1
  41. package/dist/console-keys.d.ts +11 -0
  42. package/dist/console-keys.d.ts.map +1 -0
  43. package/dist/console-keys.js +24 -0
  44. package/dist/console-keys.js.map +1 -0
  45. package/dist/cursor-mcp.d.ts.map +1 -1
  46. package/dist/cursor-mcp.js +4 -0
  47. package/dist/cursor-mcp.js.map +1 -1
  48. package/dist/demo-process.js +3 -3
  49. package/dist/demo-process.js.map +1 -1
  50. package/dist/devin-capture.d.ts.map +1 -1
  51. package/dist/devin-capture.js +2 -2
  52. package/dist/devin-capture.js.map +1 -1
  53. package/dist/devin-cli.d.ts.map +1 -1
  54. package/dist/devin-cli.js +23 -13
  55. package/dist/devin-cli.js.map +1 -1
  56. package/dist/devin-client.d.ts +3 -0
  57. package/dist/devin-client.d.ts.map +1 -1
  58. package/dist/devin-client.js +5 -0
  59. package/dist/devin-client.js.map +1 -1
  60. package/dist/devin.d.ts.map +1 -1
  61. package/dist/devin.js +29 -9
  62. package/dist/devin.js.map +1 -1
  63. package/dist/generated-assets.d.ts +8 -8
  64. package/dist/generated-assets.d.ts.map +1 -1
  65. package/dist/generated-assets.js +8 -8
  66. package/dist/generated-assets.js.map +1 -1
  67. package/dist/github.d.ts.map +1 -1
  68. package/dist/github.js +38 -7
  69. package/dist/github.js.map +1 -1
  70. package/dist/guard.d.ts +1 -1
  71. package/dist/guard.d.ts.map +1 -1
  72. package/dist/guard.js +42 -14
  73. package/dist/guard.js.map +1 -1
  74. package/dist/handoff.js +2 -2
  75. package/dist/handoff.js.map +1 -1
  76. package/dist/host.js +4 -4
  77. package/dist/host.js.map +1 -1
  78. package/dist/image-capture.d.ts.map +1 -1
  79. package/dist/image-capture.js +5 -4
  80. package/dist/image-capture.js.map +1 -1
  81. package/dist/learnings.d.ts.map +1 -1
  82. package/dist/learnings.js +3 -3
  83. package/dist/learnings.js.map +1 -1
  84. package/dist/live.d.ts +7 -0
  85. package/dist/live.d.ts.map +1 -1
  86. package/dist/live.js +11 -6
  87. package/dist/live.js.map +1 -1
  88. package/dist/lore-agent.d.ts +8 -1
  89. package/dist/lore-agent.d.ts.map +1 -1
  90. package/dist/lore-agent.js +33 -11
  91. package/dist/lore-agent.js.map +1 -1
  92. package/dist/mcp-config.d.ts +7 -0
  93. package/dist/mcp-config.d.ts.map +1 -1
  94. package/dist/mcp-config.js +19 -3
  95. package/dist/mcp-config.js.map +1 -1
  96. package/dist/npm-installation.d.ts +30 -0
  97. package/dist/npm-installation.d.ts.map +1 -0
  98. package/dist/npm-installation.js +46 -0
  99. package/dist/npm-installation.js.map +1 -0
  100. package/dist/owned-files.d.ts +14 -4
  101. package/dist/owned-files.d.ts.map +1 -1
  102. package/dist/owned-files.js +24 -9
  103. package/dist/owned-files.js.map +1 -1
  104. package/dist/platform.d.ts +26 -3
  105. package/dist/platform.d.ts.map +1 -1
  106. package/dist/platform.js +87 -20
  107. package/dist/platform.js.map +1 -1
  108. package/dist/pty.d.ts +2 -1
  109. package/dist/pty.d.ts.map +1 -1
  110. package/dist/pty.js +20 -7
  111. package/dist/pty.js.map +1 -1
  112. package/dist/recovery-cloud-receipt.d.ts.map +1 -1
  113. package/dist/recovery-cloud-receipt.js +2 -1
  114. package/dist/recovery-cloud-receipt.js.map +1 -1
  115. package/dist/recovery-cloud-workspace.d.ts.map +1 -1
  116. package/dist/recovery-cloud-workspace.js +2 -1
  117. package/dist/recovery-cloud-workspace.js.map +1 -1
  118. package/dist/recovery-cloud.d.ts.map +1 -1
  119. package/dist/recovery-cloud.js +8 -9
  120. package/dist/recovery-cloud.js.map +1 -1
  121. package/dist/recovery-copilot.d.ts.map +1 -1
  122. package/dist/recovery-copilot.js +3 -2
  123. package/dist/recovery-copilot.js.map +1 -1
  124. package/dist/recovery-desktop.d.ts.map +1 -1
  125. package/dist/recovery-desktop.js +3 -2
  126. package/dist/recovery-desktop.js.map +1 -1
  127. package/dist/recovery-hooks.js +2 -2
  128. package/dist/recovery-hooks.js.map +1 -1
  129. package/dist/recovery-hosts.d.ts.map +1 -1
  130. package/dist/recovery-hosts.js +53 -6
  131. package/dist/recovery-hosts.js.map +1 -1
  132. package/dist/recovery-polytoken.d.ts +2 -2
  133. package/dist/recovery-polytoken.d.ts.map +1 -1
  134. package/dist/recovery-polytoken.js +13 -8
  135. package/dist/recovery-polytoken.js.map +1 -1
  136. package/dist/recovery-remote.js +3 -3
  137. package/dist/recovery-remote.js.map +1 -1
  138. package/dist/recovery-state.d.ts +22 -1
  139. package/dist/recovery-state.d.ts.map +1 -1
  140. package/dist/recovery-state.js +167 -31
  141. package/dist/recovery-state.js.map +1 -1
  142. package/dist/recovery-transfer.d.ts.map +1 -1
  143. package/dist/recovery-transfer.js +8 -4
  144. package/dist/recovery-transfer.js.map +1 -1
  145. package/dist/recovery.d.ts.map +1 -1
  146. package/dist/recovery.js +30 -11
  147. package/dist/recovery.js.map +1 -1
  148. package/dist/reliability-store.d.ts +13 -0
  149. package/dist/reliability-store.d.ts.map +1 -1
  150. package/dist/reliability-store.js +110 -8
  151. package/dist/reliability-store.js.map +1 -1
  152. package/dist/remember.d.ts.map +1 -1
  153. package/dist/remember.js +2 -2
  154. package/dist/remember.js.map +1 -1
  155. package/dist/retained-context.d.ts.map +1 -1
  156. package/dist/retained-context.js +3 -2
  157. package/dist/retained-context.js.map +1 -1
  158. package/dist/retrieval-task.d.ts +30 -0
  159. package/dist/retrieval-task.d.ts.map +1 -1
  160. package/dist/retrieval-task.js +98 -2
  161. package/dist/retrieval-task.js.map +1 -1
  162. package/dist/review.d.ts +1 -1
  163. package/dist/review.d.ts.map +1 -1
  164. package/dist/review.js +5 -2
  165. package/dist/review.js.map +1 -1
  166. package/dist/runtime.d.ts +4 -1
  167. package/dist/runtime.d.ts.map +1 -1
  168. package/dist/runtime.js +138 -91
  169. package/dist/runtime.js.map +1 -1
  170. package/dist/self-host.d.ts +1 -1
  171. package/dist/self-host.d.ts.map +1 -1
  172. package/dist/self-host.js +105 -23
  173. package/dist/self-host.js.map +1 -1
  174. package/dist/share.d.ts.map +1 -1
  175. package/dist/share.js +2 -1
  176. package/dist/share.js.map +1 -1
  177. package/dist/signed-snapshot.d.ts +7 -0
  178. package/dist/signed-snapshot.d.ts.map +1 -1
  179. package/dist/signed-snapshot.js +27 -0
  180. package/dist/signed-snapshot.js.map +1 -1
  181. package/dist/skill-command.d.ts +5 -2
  182. package/dist/skill-command.d.ts.map +1 -1
  183. package/dist/skill-command.js +73 -10
  184. package/dist/skill-command.js.map +1 -1
  185. package/dist/skill-guidance.js +1 -1
  186. package/dist/skill-guidance.js.map +1 -1
  187. package/dist/skills.d.ts +2 -0
  188. package/dist/skills.d.ts.map +1 -1
  189. package/dist/skills.js +16 -11
  190. package/dist/skills.js.map +1 -1
  191. package/dist/status-health.d.ts +26 -0
  192. package/dist/status-health.d.ts.map +1 -0
  193. package/dist/status-health.js +49 -0
  194. package/dist/status-health.js.map +1 -0
  195. package/dist/telemetry.d.ts.map +1 -1
  196. package/dist/telemetry.js +2 -2
  197. package/dist/telemetry.js.map +1 -1
  198. package/dist/terminal-output.d.ts +76 -0
  199. package/dist/terminal-output.d.ts.map +1 -0
  200. package/dist/terminal-output.js +151 -0
  201. package/dist/terminal-output.js.map +1 -0
  202. package/dist/uninstall.d.ts.map +1 -1
  203. package/dist/uninstall.js +14 -32
  204. package/dist/uninstall.js.map +1 -1
  205. package/dist/update.d.ts +17 -1
  206. package/dist/update.d.ts.map +1 -1
  207. package/dist/update.js +150 -51
  208. package/dist/update.js.map +1 -1
  209. package/dist/windows-permissions.d.ts +6 -0
  210. package/dist/windows-permissions.d.ts.map +1 -1
  211. package/dist/windows-permissions.js +22 -2
  212. package/dist/windows-permissions.js.map +1 -1
  213. package/dist/windows-pty.d.ts.map +1 -1
  214. package/dist/windows-pty.js +4 -3
  215. package/dist/windows-pty.js.map +1 -1
  216. 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;AAOnJ,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,qFAAqF;AACrF,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,oBAAc,GAAG,MAAM,IAAI,CA6ChG;AAED,sFAAsF;AACtF,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,oBAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB/F"}
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 { open, realpath } from "node:fs/promises";
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 open(resolve(directory, "credential.json"), constants.O_RDONLY | constants.O_NOFOLLOW);
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
- void work();
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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"}
@@ -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":"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"}
@@ -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
- export declare function workspaceSnapshot(cwd: string): Promise<WorkspaceSnapshot>;
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;AAIrH,QAAA,MAAM,QAAQ;;;;;;;;iBAGZ,CAAC;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAc5B,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAGzD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAE5D;AACD,eAAO,MAAM,cAAc,GAAI,IAAI,MAAM,KAAG,MAAqB,CAAC;AAUlE,eAAO,MAAM,mBAAmB,GAAI,MAAM,MAAM,KAAG,MAA6B,CAAC;AAQjF,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAkB/E;AACD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,GAAE,cAAyB,EAAE,WAAW,GAAE,eAAyB,EAAE,YAAY,CAAC,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAAE,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CA8B/P;AAmCD,yFAAyF;AACzF,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,GAAE,cAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsEtI;AAED,oFAAoF;AACpF,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,GAAG,aAAa,GAAG,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAWnJ;AAED,oFAAoF;AACpF,wBAAsB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAejH;AAED,4EAA4E;AAC5E,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYnF;AAUD,wBAAgB,aAAa,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CA8BnF;AAED,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,eAAe,GAAG,QAAQ,GAAG,YAAY,CAAC;AAK1H,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAY7H;AACD,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAYpE"}
1
+ {"version":3,"file":"recovery-state.d.ts","sourceRoot":"","sources":["../src/recovery-state.ts"],"names":[],"mappings":"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"}
@@ -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 { open, realpath } from "node:fs/promises";
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: 5000, maxBuffer: 8 * 1024 * 1024,
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
- export async function workspaceSnapshot(cwd) {
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
- git(root, ["symbolic-ref", "--short", "-q", "HEAD"]).catch(() => "(detached HEAD)"),
62
- git(root, ["rev-parse", "--verify", "HEAD"]).catch(() => "(unborn branch)"),
63
- git(root, ["status", "--porcelain=v1", "--untracked-files=all"]),
64
- git(root, ["diff", "--no-ext-diff", "--no-textconv", "HEAD", "--"]).catch(async () => {
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: bounded(status, 12000), diff: bounded(diff, 48000),
73
- fingerprint: createHash("sha256").update(JSON.stringify([root, branch, head, status, diff])).digest("hex"),
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
- const snapshot = await workspaceSnapshot(cwd);
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: snapshot.cwd, root: snapshot.root,
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 open(path, constants.O_RDONLY | constants.O_NOFOLLOW);
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
- const snapshot = failed ? await workspaceSnapshot(cwd) : null;
194
- const transcript = agent === "claude" && failed && input.transcript_path
195
- ? await transcriptMessages(input.transcript_path, input.session_id).catch(() => []) : [];
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
- const snapshot = await workspaceSnapshot(observed.cwd);
256
- if (snapshot.root !== observed.root)
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
- const snapshot = await workspaceSnapshot(run.cwd);
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
- "", "Current git status (untracked file contents remain on disk):", bounded(snapshot.status || "Clean", 8000),
338
- "", "Current tracked diff:", bounded(snapshot.diff || "No tracked diff", 28000),
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");