@kenkaiiii/ggcoder 5.78.0 → 5.79.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.
Files changed (69) hide show
  1. package/dist/app-sidecar/goal-routes.d.ts +26 -0
  2. package/dist/app-sidecar/goal-routes.js +444 -0
  3. package/dist/app-sidecar/goal-routes.js.map +1 -0
  4. package/dist/app-sidecar/history-routes.d.ts +13 -0
  5. package/dist/app-sidecar/history-routes.js +36 -25
  6. package/dist/app-sidecar/history-routes.js.map +1 -1
  7. package/dist/app-sidecar/route-context.d.ts +12 -0
  8. package/dist/app-sidecar/run-control-routes.js +2 -1
  9. package/dist/app-sidecar/run-control-routes.js.map +1 -1
  10. package/dist/app-sidecar/session-routes.js +41 -0
  11. package/dist/app-sidecar/session-routes.js.map +1 -1
  12. package/dist/app-sidecar/session-types.d.ts +2 -0
  13. package/dist/app-sidecar/workspace-routes.js +3 -0
  14. package/dist/app-sidecar/workspace-routes.js.map +1 -1
  15. package/dist/app-sidecar.js +108 -8
  16. package/dist/app-sidecar.js.map +1 -1
  17. package/dist/core/acceptance-checks.js +17 -4
  18. package/dist/core/acceptance-checks.js.map +1 -1
  19. package/dist/core/agent-notifications.d.ts +1 -1
  20. package/dist/core/agent-session.d.ts +50 -0
  21. package/dist/core/agent-session.js +49 -11
  22. package/dist/core/agent-session.js.map +1 -1
  23. package/dist/core/ask-user.d.ts +11 -0
  24. package/dist/core/ask-user.js +6 -1
  25. package/dist/core/ask-user.js.map +1 -1
  26. package/dist/core/context-files.d.ts +8 -0
  27. package/dist/core/context-files.js +46 -0
  28. package/dist/core/context-files.js.map +1 -0
  29. package/dist/core/goals-store.d.ts +208 -0
  30. package/dist/core/goals-store.js +520 -0
  31. package/dist/core/goals-store.js.map +1 -0
  32. package/dist/core/project-discovery.d.ts +7 -0
  33. package/dist/core/project-discovery.js +8 -2
  34. package/dist/core/project-discovery.js.map +1 -1
  35. package/dist/core/session-manager.d.ts +7 -1
  36. package/dist/core/session-manager.js +17 -7
  37. package/dist/core/session-manager.js.map +1 -1
  38. package/dist/core/session-storage.js +5 -1
  39. package/dist/core/session-storage.js.map +1 -1
  40. package/dist/core/subagent-manager.d.ts +51 -0
  41. package/dist/core/subagent-manager.js +95 -15
  42. package/dist/core/subagent-manager.js.map +1 -1
  43. package/dist/core/subagent-store.js +2 -1
  44. package/dist/core/subagent-store.js.map +1 -1
  45. package/dist/goals-agent/goal-team.d.ts +2 -0
  46. package/dist/goals-agent/goal-team.js +82 -0
  47. package/dist/goals-agent/goal-team.js.map +1 -0
  48. package/dist/goals-agent/goals-agent.d.ts +90 -0
  49. package/dist/goals-agent/goals-agent.js +246 -0
  50. package/dist/goals-agent/goals-agent.js.map +1 -0
  51. package/dist/modes/subagent-worker-mode.d.ts +12 -0
  52. package/dist/modes/subagent-worker-mode.js +22 -1
  53. package/dist/modes/subagent-worker-mode.js.map +1 -1
  54. package/dist/tools/bash-read-evidence.d.ts +13 -0
  55. package/dist/tools/bash-read-evidence.js +48 -1
  56. package/dist/tools/bash-read-evidence.js.map +1 -1
  57. package/dist/tools/index.d.ts +7 -1
  58. package/dist/tools/index.js +10 -2
  59. package/dist/tools/index.js.map +1 -1
  60. package/dist/tools/read-tracker.d.ts +6 -12
  61. package/dist/tools/read-tracker.js +21 -36
  62. package/dist/tools/read-tracker.js.map +1 -1
  63. package/dist/tools/read.js +2 -2
  64. package/dist/tools/read.js.map +1 -1
  65. package/dist/tools/subagent-control.js +22 -3
  66. package/dist/tools/subagent-control.js.map +1 -1
  67. package/dist/tools/write.js +110 -8
  68. package/dist/tools/write.js.map +1 -1
  69. package/package.json +4 -4
@@ -45,6 +45,29 @@ export function catTargets(command) {
45
45
  }
46
46
  return [...new Set(targets)];
47
47
  }
48
+ /**
49
+ * Line-range views a command prints: `sed -n 'A,Bp' FILE`, `sed -n 'Ap' FILE`,
50
+ * `head -N FILE` and `head -n N FILE`. Exactly one literal file per command,
51
+ * nothing piped or redirected — the output must be the raw lines.
52
+ */
53
+ export function rangeTargets(command) {
54
+ const out = [];
55
+ for (const seg of command.split(/;|&&|\n/).map((s) => s.trim())) {
56
+ const sed = /^sed -n (['"]?)(\d+)(?:,(\d+))?p\1 (\S+)$/.exec(seg);
57
+ const head = /^head (?:-n ?)?-?(\d+) (\S+)$/.exec(seg);
58
+ const [target, start, end] = sed
59
+ ? [sed[4], Number(sed[2]), Number(sed[3] ?? sed[2])]
60
+ : head
61
+ ? [head[2], 1, Number(head[1])]
62
+ : [undefined, 0, 0];
63
+ if (!target || !SAFE_PATH.test(target) || target.includes("*") || target.startsWith("-")) {
64
+ continue;
65
+ }
66
+ if (start >= 1 && end >= start)
67
+ out.push({ target, start, end });
68
+ }
69
+ return out;
70
+ }
48
71
  /**
49
72
  * Expand one target to concrete files. A `*` is matched within its own
50
73
  * directory only (shell semantics, dotfiles excluded); a glob that matches
@@ -95,9 +118,33 @@ export async function recordBashReads(tracker, cwd, ops, toolCalls, toolResults)
95
118
  if (!result || result.isError || typeof command !== "string")
96
119
  continue;
97
120
  const targets = catTargets(command);
98
- if (targets.length === 0)
121
+ const ranges = rangeTargets(command);
122
+ if (targets.length === 0 && ranges.length === 0)
99
123
  continue;
100
124
  const output = resultText(result);
125
+ for (const { target, start, end } of ranges) {
126
+ try {
127
+ const resolved = resolvePath(cwd, target);
128
+ const stat = await ops.stat(resolved);
129
+ if (!stat.isFile() || stat.size > MAX_FILE_BYTES)
130
+ continue;
131
+ const content = await ops.readFile(resolved);
132
+ const lines = content.split("\n");
133
+ if (content.endsWith("\n"))
134
+ lines.pop();
135
+ const last = Math.min(end, lines.length);
136
+ if (start > last)
137
+ continue;
138
+ // Credit only lines the model literally received, in order.
139
+ if (!output.includes(lines.slice(start - 1, last).join("\n")))
140
+ continue;
141
+ recordRead(tracker, resolved, content, stat.mtimeMs, [start, last]);
142
+ recorded.push(resolved);
143
+ }
144
+ catch {
145
+ // Missing or unreadable: nothing was proven.
146
+ }
147
+ }
101
148
  const files = [];
102
149
  for (const target of targets) {
103
150
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"bash-read-evidence.js","sourceRoot":"","sources":["../../src/tools/bash-read-evidence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bash-read-evidence.js","sourceRoot":"","sources":["../../src/tools/bash-read-evidence.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { AgentTool, ToolExecuteResult } from "@kenkaiiii/gg-agent";
2
2
  import type { Provider, ThinkingLevel, ToolCall, ToolResult } from "@kenkaiiii/gg-ai";
3
3
  import type { ContextLimits } from "../core/context-limits.js";
4
- import { SubAgentManager, type SubAgentSnapshot } from "../core/subagent-manager.js";
4
+ import { SubAgentManager, type ChildModelPick, type SubAgentSnapshot } from "../core/subagent-manager.js";
5
5
  import { ProcessManager } from "../core/process-manager.js";
6
6
  import { LspManager } from "../core/lsp/manager.js";
7
7
  import { TestImpactIndex } from "../core/test-impact.js";
@@ -17,6 +17,12 @@ import type { AgentNotificationQueue } from "../core/agent-notifications.js";
17
17
  export { BUILTIN_TOOL_NAMES } from "./prompt-hints.js";
18
18
  export interface CreateToolsOptions {
19
19
  agents?: AgentDefinition[];
20
+ /** Start spawned children with the parent's extra workspace roots too (see SubAgentManager). */
21
+ shareWorkspaceRoots?: boolean;
22
+ /** The agent a spawned child is when the spawn names none (see SubAgentManager). */
23
+ defaultSubAgent?: string;
24
+ /** Default provider/model for spawned children (see SubAgentManagerOptions). */
25
+ getChildModel?: () => ChildModelPick | undefined;
20
26
  skills?: Skill[];
21
27
  /** Byte budgets for skill catalog / MCP descriptions in tool schemas. */
22
28
  contextLimits?: ContextLimits;
@@ -1,4 +1,4 @@
1
- import { SubAgentManager } from "../core/subagent-manager.js";
1
+ import { SubAgentManager, } from "../core/subagent-manager.js";
2
2
  import { ProcessManager } from "../core/process-manager.js";
3
3
  import { LspManager } from "../core/lsp/manager.js";
4
4
  import { TestImpactIndex } from "../core/test-impact.js";
@@ -121,9 +121,17 @@ export async function createTools(cwd, opts) {
121
121
  opts.agents.length > 0 &&
122
122
  baseProvider &&
123
123
  baseModel) {
124
- tools.push(createSubAgentTool(cwd, opts.agents, () => opts.getProvider?.() ?? baseProvider, () => opts.getModel?.() ?? baseModel, opts.getCacheKey, planModeRef, opts.getThinkingLevel));
124
+ tools.push(createSubAgentTool(cwd, opts.agents,
125
+ // A one-shot child follows the same pick as spawned workers.
126
+ () => opts.getChildModel?.()?.provider ?? opts.getProvider?.() ?? baseProvider, () => opts.getChildModel?.()?.model ?? opts.getModel?.() ?? baseModel, opts.getCacheKey, planModeRef, opts.getThinkingLevel));
125
127
  subAgentManager = new SubAgentManager({
126
128
  cwd,
129
+ // A child may also be started in one of the parent's extra roots (GG
130
+ // Goals sends each worker to the attached project it works on).
131
+ getWorkspaceRoots: () => opts.getWriteGuardSettings?.()?.additionalRoots ?? [],
132
+ shareWorkspaceRoots: opts.shareWorkspaceRoots,
133
+ defaultAgent: opts.defaultSubAgent,
134
+ getChildModel: opts.getChildModel,
127
135
  agents: opts.agents,
128
136
  getProvider: () => opts.getProvider?.() ?? baseProvider,
129
137
  getModel: () => opts.getModel?.() ?? baseModel,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
@@ -29,21 +29,15 @@ export declare function recordRead(tracker: ReadTracker | undefined, resolvedPat
29
29
  */
30
30
  export declare function recordWrite(tracker: ReadTracker | undefined, resolvedPath: string, content: string, ops: ToolOperations, scope?: "whole" | "edit"): Promise<void>;
31
31
  /**
32
- * Verify the file hasn't been modified since it was last read.
33
- * Throws if unread, or if mtime AND hash differ from the recorded value.
34
- * mtime alone is not sufficient — some filesystems have low resolution and
35
- * formatters can rewrite a file with the same mtime; we re-hash on mtime miss.
32
+ * Lines of the file as it is on disk now that the model has not been shown:
33
+ * `"all"` when it never read the file or the file changed since its last
34
+ * read/write (mtime, else content hash), otherwise the gaps between the ranges
35
+ * it has seen (empty when it has seen every line). A full-file `write` uses
36
+ * this to report which lines it removed without the model having seen them.
36
37
  */
37
- export declare function assertFresh(tracker: ReadTracker | undefined, resolvedPath: string, ops: ToolOperations): Promise<void>;
38
+ export declare function unseenLines(tracker: ReadTracker | undefined, resolvedPath: string, ops: ToolOperations): Promise<"all" | readonly LineRange[]>;
38
39
  /**
39
40
  * True when the recorded read still matches disk (mtime, else content hash).
40
41
  * A hash match after an mtime-only change refreshes the recorded mtime.
41
42
  */
42
43
  export declare function isFresh(tracker: ReadTracker, resolvedPath: string, ops: ToolOperations): Promise<boolean>;
43
- /**
44
- * Throw unless the model has been shown every line of the file as it is now.
45
- * `write` replaces the whole file, so after a read cut short by offset/limit or
46
- * the read tool's size cap it would silently drop the lines the model never
47
- * saw. Call after {@link assertFresh}, which guarantees the entry matches disk.
48
- */
49
- export declare function assertFullySeen(tracker: ReadTracker | undefined, resolvedPath: string): void;
@@ -75,21 +75,30 @@ export async function recordWrite(tracker, resolvedPath, content, ops, scope = "
75
75
  });
76
76
  }
77
77
  /**
78
- * Verify the file hasn't been modified since it was last read.
79
- * Throws if unread, or if mtime AND hash differ from the recorded value.
80
- * mtime alone is not sufficient — some filesystems have low resolution and
81
- * formatters can rewrite a file with the same mtime; we re-hash on mtime miss.
78
+ * Lines of the file as it is on disk now that the model has not been shown:
79
+ * `"all"` when it never read the file or the file changed since its last
80
+ * read/write (mtime, else content hash), otherwise the gaps between the ranges
81
+ * it has seen (empty when it has seen every line). A full-file `write` uses
82
+ * this to report which lines it removed without the model having seen them.
82
83
  */
83
- export async function assertFresh(tracker, resolvedPath, ops) {
84
+ export async function unseenLines(tracker, resolvedPath, ops) {
84
85
  if (!tracker)
85
- return;
86
- if (!tracker.has(resolvedPath)) {
87
- throw new Error("File must be read first before editing. Use the read tool first.");
86
+ return [];
87
+ if (!tracker.has(resolvedPath) || !(await isFresh(tracker, resolvedPath, ops)))
88
+ return "all";
89
+ const entry = tracker.get(resolvedPath);
90
+ if (!entry || entry.seen === "all")
91
+ return [];
92
+ const gaps = [];
93
+ let next = 1;
94
+ for (const [start, end] of entry.seen) {
95
+ if (start > next)
96
+ gaps.push([next, start - 1]);
97
+ next = end + 1;
88
98
  }
89
- if (await isFresh(tracker, resolvedPath, ops))
90
- return;
91
- throw new Error("File has been modified since it was read (likely by a formatter, linter, or external tool). " +
92
- "Re-read the file before editing.");
99
+ if (next <= entry.lineCount)
100
+ gaps.push([next, entry.lineCount]);
101
+ return gaps;
93
102
  }
94
103
  /**
95
104
  * True when the recorded read still matches disk (mtime, else content hash).
@@ -108,28 +117,4 @@ export async function isFresh(tracker, resolvedPath, ops) {
108
117
  tracker.set(resolvedPath, { ...entry, mtimeMs: stat.mtimeMs });
109
118
  return true;
110
119
  }
111
- /**
112
- * Throw unless the model has been shown every line of the file as it is now.
113
- * `write` replaces the whole file, so after a read cut short by offset/limit or
114
- * the read tool's size cap it would silently drop the lines the model never
115
- * saw. Call after {@link assertFresh}, which guarantees the entry matches disk.
116
- */
117
- export function assertFullySeen(tracker, resolvedPath) {
118
- const entry = tracker?.get(resolvedPath);
119
- if (!entry || entry.seen === "all")
120
- return;
121
- const consequence = "write replaces the whole file, so it would drop the lines you have not seen. " +
122
- "Read the whole file first";
123
- const first = entry.seen[0];
124
- if (!first) {
125
- throw new Error(`You have not seen this file's current ${entry.lineCount} lines in full. ` +
126
- `${consequence}, or use edit for a targeted change.`);
127
- }
128
- const ranges = entry.seen
129
- .map(([start, end]) => (start === end ? `${start}` : `${start}-${end}`))
130
- .join(", ");
131
- const nextUnread = first[0] > 1 ? 1 : first[1] + 1;
132
- throw new Error(`You have only seen lines ${ranges} of ${entry.lineCount} in this file. ` +
133
- `${consequence} (next unread line: offset=${nextUnread}), or use edit for a targeted change.`);
134
- }
135
120
  //# sourceMappingURL=read-tracker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"read-tracker.js","sourceRoot":"","sources":["../../src/tools/read-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"read-tracker.js","sourceRoot":"","sources":["../../src/tools/read-tracker.ts"],"names":[],"mappings":"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"}
@@ -264,8 +264,8 @@ videoByteLimit) {
264
264
  : "Use bash";
265
265
  return `[Line ${lineNo} is too long to show (${bytes} bytes). ${next} (e.g. cut -c1-2000) to inspect it.]`;
266
266
  }
267
- // Record exactly which lines the model is shown: a full-file write is only
268
- // allowed once it has seen every line (see assertFullySeen).
267
+ // Record exactly which lines the model is shown: a full-file write reports
268
+ // any lines it removes that the model has not seen (see unseenLines).
269
269
  recordRead(readFiles, resolved, raw, stat.mtimeMs, [
270
270
  startLine + 1,
271
271
  startLine + result.keptLines,
@@ -1 +1 @@
1
- {"version":3,"file":"read.js","sourceRoot":"","sources":["../../src/tools/read.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"read.js","sourceRoot":"","sources":["../../src/tools/read.ts"],"names":[],"mappings":"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"}
@@ -14,12 +14,27 @@ export function createSubAgentControlTools(manager, planModeRef) {
14
14
  // throwing at spawn time or silently starting a generic child with no agent
15
15
  // prompt and the full toolset.
16
16
  const agentNames = manager.agents.map((agent) => agent.name);
17
- const agentParam = (agentNames.length > 0 ? z.enum(agentNames) : z.string()).optional();
17
+ const anyAgent = agentNames.length > 0 ? z.enum(agentNames) : z.string();
18
+ // A fixed team (GG Goals) must pick each worker's role: left out, every task
19
+ // went to the default builder, research without web search included.
20
+ const agentParam = manager.defaultAgent && agentNames.length > 0
21
+ ? anyAgent.describe("Which team member does this task: pick the one whose role fits it")
22
+ : anyAgent.optional();
18
23
  const taskParams = z.object({
19
24
  task_name: z.string().min(1),
20
25
  task: z.string().min(1).describe("Standalone brief"),
21
26
  agent: agentParam,
22
27
  checks: AcceptanceChecksParam,
28
+ cwd: z
29
+ .string()
30
+ .min(1)
31
+ .optional()
32
+ .describe("Absolute folder to work in (a workspace root); default: yours"),
33
+ context_files: z
34
+ .array(z.string().min(1))
35
+ .max(20)
36
+ .optional()
37
+ .describe("Files you already read that it needs: their contents go in its brief, so it doesn't read them again"),
23
38
  });
24
39
  // A list, so one call starts every child: on models that send one tool call
25
40
  // per turn (GPT-6.x), a one-child-per-call shape cost a model turn per child
@@ -43,8 +58,12 @@ export function createSubAgentControlTools(manager, planModeRef) {
43
58
  // Each spawn runs its limit and duplicate-name checks and registers its
44
59
  // worker before its first await, so starting them together cannot
45
60
  // exceed ACTIVE_LIMIT or the per-model cap.
46
- const settled = await Promise.allSettled(args.tasks.map((t) => t.checks
47
- ? manager.spawn(t.task_name, t.task, t.agent, { checks: t.checks })
61
+ const settled = await Promise.allSettled(args.tasks.map((t) => t.checks || t.cwd || t.context_files
62
+ ? manager.spawn(t.task_name, t.task, t.agent, {
63
+ ...(t.checks && { checks: t.checks }),
64
+ ...(t.cwd && { cwd: t.cwd }),
65
+ ...(t.context_files && { contextFiles: t.context_files }),
66
+ })
48
67
  : manager.spawn(t.task_name, t.task, t.agent)));
49
68
  const results = settled.map((result, index) => result.status === "fulfilled"
50
69
  ? result.value
@@ -1 +1 @@
1
- {"version":3,"file":"subagent-control.js","sourceRoot":"","sources":["../../src/tools/subagent-control.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subagent-control.js","sourceRoot":"","sources":["../../src/tools/subagent-control.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,9 @@ import path from "node:path";
3
3
  import { z } from "zod";
4
4
  import { resolvePath, rejectSymlink } from "./path-utils.js";
5
5
  import { localOperations } from "./operations.js";
6
- import { assertFresh, assertFullySeen, recordWrite } from "./read-tracker.js";
6
+ import { diffLines } from "diff";
7
+ import { recordWrite, unseenLines } from "./read-tracker.js";
8
+ import { writeOverflow } from "./overflow.js";
7
9
  import { isPlanModeActive } from "../core/runtime-mode.js";
8
10
  import { resolveWriteGuard } from "../core/workspace-guard.js";
9
11
  import { REDACTION_MARKER } from "@kenkaiiii/gg-ai";
@@ -20,6 +22,98 @@ const WriteParams = z.object({
20
22
  file_path: z.string(),
21
23
  content: z.string(),
22
24
  });
25
+ /** Above this, removed unseen lines are summarized instead of listed. */
26
+ const MAX_LISTED_CHARS = 4_000;
27
+ /**
28
+ * Edit distance past which the exact line diff gives up. Its cost grows with
29
+ * this distance times the file size, so an unbounded diff of a large rewrite
30
+ * blocked the shared daemon for minutes (30k changed lines: ~190s).
31
+ */
32
+ const MAX_DIFF_EDITS = 1_000;
33
+ /** Lines of `text`; a trailing newline does not add an empty last line. */
34
+ function splitLines(text) {
35
+ return text === "" ? [] : text.replace(/\n$/, "").split("\n");
36
+ }
37
+ /**
38
+ * Fallback for rewrites too different to diff: an old line counts as removed
39
+ * once the new text has no copies of it left. Linear time; a line that only
40
+ * moved is not reported.
41
+ */
42
+ function removedByCount(before, after, isUnseen) {
43
+ const left = new Map();
44
+ for (const text of splitLines(after))
45
+ left.set(text, (left.get(text) ?? 0) + 1);
46
+ const removed = [];
47
+ for (const [i, text] of splitLines(before).entries()) {
48
+ const copies = left.get(text) ?? 0;
49
+ if (copies > 0)
50
+ left.set(text, copies - 1);
51
+ else if (isUnseen(i + 1))
52
+ removed.push([i + 1, text]);
53
+ }
54
+ return removed;
55
+ }
56
+ /**
57
+ * On-disk lines `next` removes or replaces that fall in `unseen`, with their
58
+ * original 1-based line numbers. Line endings are normalized so a CRLF file
59
+ * rewritten with LF does not count every line as removed.
60
+ */
61
+ function removedUnseen(current, next, unseen) {
62
+ const isUnseen = (line) => unseen === "all" || unseen.some(([start, end]) => line >= start && line <= end);
63
+ const normalize = (text) => text.replace(/\r\n/g, "\n");
64
+ const before = normalize(current);
65
+ const after = normalize(next);
66
+ const changes = diffLines(before, after, { maxEditLength: MAX_DIFF_EDITS });
67
+ if (!changes)
68
+ return removedByCount(before, after, isUnseen);
69
+ const removed = [];
70
+ let line = 1;
71
+ for (const change of changes) {
72
+ if (change.added)
73
+ continue;
74
+ const lines = change.value.replace(/\n$/, "").split("\n");
75
+ if (change.removed) {
76
+ for (const [i, text] of lines.entries()) {
77
+ if (isUnseen(line + i))
78
+ removed.push([line + i, text]);
79
+ }
80
+ }
81
+ line += change.count ?? lines.length;
82
+ }
83
+ return removed;
84
+ }
85
+ /** Collapse sorted line numbers into "3-7, 12" form. */
86
+ function spans(lines) {
87
+ const ranges = [];
88
+ for (const line of lines) {
89
+ const last = ranges[ranges.length - 1];
90
+ if (last && line === last[1] + 1)
91
+ last[1] = line;
92
+ else
93
+ ranges.push([line, line]);
94
+ }
95
+ return ranges.map(([start, end]) => (start === end ? `${start}` : `${start}-${end}`)).join(", ");
96
+ }
97
+ /**
98
+ * Note appended to a successful write that removed lines the model never saw
99
+ * (unread file, changed since its last read, or only partly read). The write
100
+ * is never refused for this: refusing threw away the generated content and
101
+ * forced a full regeneration. Instead the previous file is backed up and the
102
+ * model is shown exactly what went, so it can restore anything unintended.
103
+ */
104
+ function unseenRemovalNote(removed, backup) {
105
+ const count = removed.length;
106
+ const lines = `${count} line${count === 1 ? "" : "s"}`;
107
+ const listing = removed.map(([line, text]) => `${line}|-${text}`).join("\n");
108
+ const where = backup
109
+ ? ` The previous file is saved at ${backup}.`
110
+ : " /rewind restores the previous file.";
111
+ const body = listing.length <= MAX_LISTED_CHARS
112
+ ? `:\n${listing}`
113
+ : ` (old lines ${spans(removed.map(([line]) => line))}).`;
114
+ return (`\n\nNote: this write removed ${lines} you had not seen in their current form${body}\n` +
115
+ `If that was intended, carry on. If not, put them back with edit.${where}`);
116
+ }
23
117
  export function createWriteTool(cwd, readFiles, ops = localOperations, planModeRefOrOnFileMutated, onFileMutated, onPreFileMutation, getDiagnostics, getWriteGuardSettings) {
24
118
  const planModeRef = isPlanModeRef(planModeRefOrOnFileMutated)
25
119
  ? planModeRefOrOnFileMutated
@@ -48,13 +142,7 @@ export function createWriteTool(cwd, readFiles, ops = localOperations, planModeR
48
142
  }
49
143
  await fs.mkdir(plansDir, { recursive: true });
50
144
  }
51
- // Block overwriting existing files that haven't been read, that changed
52
- // since the last read, or that were only partly read.
53
145
  const exists = await ops.stat(resolved).then(() => true, () => false);
54
- if (readFiles && exists) {
55
- await assertFresh(readFiles, resolved, ops);
56
- assertFullySeen(readFiles, resolved);
57
- }
58
146
  // Never replace real secrets with the placeholder the model was shown.
59
147
  if (exists && content.includes(REDACTION_MARKER)) {
60
148
  const original = await ops.readFile(resolved).catch(() => undefined);
@@ -62,6 +150,20 @@ export function createWriteTool(cwd, readFiles, ops = localOperations, planModeR
62
150
  if (lossError)
63
151
  return `Error: ${lossError}`;
64
152
  }
153
+ // Lines this overwrite drops that the model never saw are reported, not
154
+ // refused. Computed before the write, against the file as it is now.
155
+ let unseenNote = "";
156
+ if (exists) {
157
+ const unseen = await unseenLines(readFiles, resolved, ops);
158
+ if (unseen === "all" || unseen.length > 0) {
159
+ const current = await ops.readFile(resolved);
160
+ const removed = removedUnseen(current, content, unseen);
161
+ if (removed.length > 0) {
162
+ const backup = await writeOverflow(current, "write-backup").catch(() => null);
163
+ unseenNote = unseenRemovalNote(removed, backup);
164
+ }
165
+ }
166
+ }
65
167
  // Snapshot the pre-mutation on-disk state for /rewind before writing.
66
168
  await onPreFileMutation?.(resolved);
67
169
  await ops.writeFile(resolved, content);
@@ -79,7 +181,7 @@ export function createWriteTool(cwd, readFiles, ops = localOperations, planModeR
79
181
  }
80
182
  }
81
183
  const lines = content.split("\n").length;
82
- return `Wrote ${lines} lines to ${resolved}` + diagnosticsNote;
184
+ return `Wrote ${lines} lines to ${resolved}` + unseenNote + diagnosticsNote;
83
185
  },
84
186
  };
85
187
  }