mindweave 3.0.1 → 3.2.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 (177) hide show
  1. package/README.md +36 -4
  2. package/dist/alternator/chassis/lsp.js +36 -4
  3. package/dist/alternator/chassis/lsp.js.map +1 -1
  4. package/dist/alternator/chassis/provision.js +54 -6
  5. package/dist/alternator/chassis/provision.js.map +1 -1
  6. package/dist/alternator/chassis/servers.js +34 -21
  7. package/dist/alternator/chassis/servers.js.map +1 -1
  8. package/dist/cli/App.js +118 -16
  9. package/dist/cli/App.js.map +1 -1
  10. package/dist/cli/attachments.js +37 -1
  11. package/dist/cli/attachments.js.map +1 -1
  12. package/dist/cli/bootstrap.js +25 -3
  13. package/dist/cli/bootstrap.js.map +1 -1
  14. package/dist/cli/components/BlockView.js +5 -5
  15. package/dist/cli/components/BlockView.js.map +1 -1
  16. package/dist/cli/components/CommandGroup.js +100 -0
  17. package/dist/cli/components/CommandGroup.js.map +1 -0
  18. package/dist/cli/components/MarathonBox.js +2 -1
  19. package/dist/cli/components/MarathonBox.js.map +1 -1
  20. package/dist/cli/components/TipLine.js +1 -0
  21. package/dist/cli/components/TipLine.js.map +1 -1
  22. package/dist/cli/components/ToolLine.js +69 -14
  23. package/dist/cli/components/ToolLine.js.map +1 -1
  24. package/dist/cli/components/WorkGroup.js +115 -0
  25. package/dist/cli/components/WorkGroup.js.map +1 -0
  26. package/dist/cli/diffWrap.js +24 -0
  27. package/dist/cli/diffWrap.js.map +1 -0
  28. package/dist/cli/expandHits.js +74 -0
  29. package/dist/cli/expandHits.js.map +1 -0
  30. package/dist/cli/marathonUi.js +2 -0
  31. package/dist/cli/marathonUi.js.map +1 -1
  32. package/dist/cli/mouse.js +16 -8
  33. package/dist/cli/mouse.js.map +1 -1
  34. package/dist/cli/scrollGlide.js +72 -0
  35. package/dist/cli/scrollGlide.js.map +1 -0
  36. package/dist/cli/scrollPill.js +21 -1
  37. package/dist/cli/scrollPill.js.map +1 -1
  38. package/dist/cli/selfUpdate.js +7 -0
  39. package/dist/cli/selfUpdate.js.map +1 -1
  40. package/dist/cli/terminalRestore.js +1 -1
  41. package/dist/cli/terminalRestore.js.map +1 -1
  42. package/dist/cli/toolDisplay.js +14 -10
  43. package/dist/cli/toolDisplay.js.map +1 -1
  44. package/dist/cli/transcript.js +100 -29
  45. package/dist/cli/transcript.js.map +1 -1
  46. package/dist/cli/uiLines.js +60 -0
  47. package/dist/cli/uiLines.js.map +1 -0
  48. package/dist/cli/wheelStep.js +29 -0
  49. package/dist/cli/wheelStep.js.map +1 -0
  50. package/dist/cli/workLines.js +84 -0
  51. package/dist/cli/workLines.js.map +1 -0
  52. package/dist/core/permissions.js +26 -1
  53. package/dist/core/permissions.js.map +1 -1
  54. package/dist/core/spendView.js +8 -1
  55. package/dist/core/spendView.js.map +1 -1
  56. package/dist/core/turnRunner.js +36 -8
  57. package/dist/core/turnRunner.js.map +1 -1
  58. package/dist/drivers/deepseek/inlineTools.js +36 -2
  59. package/dist/drivers/deepseek/inlineTools.js.map +1 -1
  60. package/dist/drivers/ollama/endpoint.js +25 -0
  61. package/dist/drivers/ollama/endpoint.js.map +1 -1
  62. package/dist/dynamo/engine.js +414 -88
  63. package/dist/dynamo/engine.js.map +1 -1
  64. package/dist/dynamo/guard.js +11 -4
  65. package/dist/dynamo/guard.js.map +1 -1
  66. package/dist/dynamo/hooks.js +209 -0
  67. package/dist/dynamo/hooks.js.map +1 -0
  68. package/dist/dynamo/marathon.js +67 -10
  69. package/dist/dynamo/marathon.js.map +1 -1
  70. package/dist/dynamo/todoReminder.js +26 -0
  71. package/dist/dynamo/todoReminder.js.map +1 -0
  72. package/dist/governor/forbidden.js +19 -0
  73. package/dist/governor/forbidden.js.map +1 -1
  74. package/dist/governor/freshness.js +1 -1
  75. package/dist/governor/freshness.js.map +1 -1
  76. package/dist/governor/index.js +8 -1
  77. package/dist/governor/index.js.map +1 -1
  78. package/dist/governor/rules.js +1 -0
  79. package/dist/governor/rules.js.map +1 -1
  80. package/dist/governor/write.js +50 -2
  81. package/dist/governor/write.js.map +1 -1
  82. package/dist/mcp/config.js +0 -41
  83. package/dist/mcp/config.js.map +1 -1
  84. package/dist/mcp/projectApproval.js +117 -0
  85. package/dist/mcp/projectApproval.js.map +1 -0
  86. package/dist/mcp/resultStore.js +19 -5
  87. package/dist/mcp/resultStore.js.map +1 -1
  88. package/dist/mcp/transport/stdio.js +4 -1
  89. package/dist/mcp/transport/stdio.js.map +1 -1
  90. package/dist/memory/allMetas.js +1 -1
  91. package/dist/memory/allMetas.js.map +1 -1
  92. package/dist/memory/autoMemory.js +1 -0
  93. package/dist/memory/autoMemory.js.map +1 -1
  94. package/dist/memory/clearedArchive.js +120 -0
  95. package/dist/memory/clearedArchive.js.map +1 -0
  96. package/dist/memory/compaction.js +178 -15
  97. package/dist/memory/compaction.js.map +1 -1
  98. package/dist/memory/counters.js +64 -0
  99. package/dist/memory/counters.js.map +1 -0
  100. package/dist/memory/projectNotes.js +61 -13
  101. package/dist/memory/projectNotes.js.map +1 -1
  102. package/dist/memory/rewind.js +6 -2
  103. package/dist/memory/rewind.js.map +1 -1
  104. package/dist/memory/session.js +13 -5
  105. package/dist/memory/session.js.map +1 -1
  106. package/dist/memory/sessionMemory.js +6 -2
  107. package/dist/memory/sessionMemory.js.map +1 -1
  108. package/dist/memory/store.js +3 -0
  109. package/dist/memory/store.js.map +1 -1
  110. package/dist/memory/types.js.map +1 -1
  111. package/dist/memory/workingSet.js +0 -375
  112. package/dist/memory/workingSet.js.map +1 -1
  113. package/dist/project/context.js +54 -7
  114. package/dist/project/context.js.map +1 -1
  115. package/dist/tools/approval.js +19 -4
  116. package/dist/tools/approval.js.map +1 -1
  117. package/dist/tools/backgroundShells.js +8 -1
  118. package/dist/tools/backgroundShells.js.map +1 -1
  119. package/dist/tools/browser.js +2 -1
  120. package/dist/tools/browser.js.map +1 -1
  121. package/dist/tools/checkpoints.js +28 -4
  122. package/dist/tools/checkpoints.js.map +1 -1
  123. package/dist/tools/childEnv.js +50 -0
  124. package/dist/tools/childEnv.js.map +1 -0
  125. package/dist/tools/codeIntel.js +4 -1
  126. package/dist/tools/codeIntel.js.map +1 -1
  127. package/dist/tools/commandParse.js +238 -0
  128. package/dist/tools/commandParse.js.map +1 -0
  129. package/dist/tools/commandPolicy.js +283 -0
  130. package/dist/tools/commandPolicy.js.map +1 -0
  131. package/dist/tools/detail.js +113 -1
  132. package/dist/tools/detail.js.map +1 -1
  133. package/dist/tools/edit.js +2 -1
  134. package/dist/tools/edit.js.map +1 -1
  135. package/dist/tools/editRipple.js +18 -3
  136. package/dist/tools/editRipple.js.map +1 -1
  137. package/dist/tools/editTarget.js +11 -6
  138. package/dist/tools/editTarget.js.map +1 -1
  139. package/dist/tools/governorTools.js +61 -1
  140. package/dist/tools/governorTools.js.map +1 -1
  141. package/dist/tools/grep.js +13 -5
  142. package/dist/tools/grep.js.map +1 -1
  143. package/dist/tools/guard.js +249 -2
  144. package/dist/tools/guard.js.map +1 -1
  145. package/dist/tools/invisible.js +62 -0
  146. package/dist/tools/invisible.js.map +1 -0
  147. package/dist/tools/killTree.js +3 -0
  148. package/dist/tools/killTree.js.map +1 -1
  149. package/dist/tools/readFile.js +11 -3
  150. package/dist/tools/readFile.js.map +1 -1
  151. package/dist/tools/readSymbol.js +5 -24
  152. package/dist/tools/readSymbol.js.map +1 -1
  153. package/dist/tools/rebuildDetail.js +155 -0
  154. package/dist/tools/rebuildDetail.js.map +1 -0
  155. package/dist/tools/replaceSymbol.js +1 -1
  156. package/dist/tools/replaceSymbol.js.map +1 -1
  157. package/dist/tools/ripgrepShell.js +56 -0
  158. package/dist/tools/ripgrepShell.js.map +1 -0
  159. package/dist/tools/runCommand.js +77 -18
  160. package/dist/tools/runCommand.js.map +1 -1
  161. package/dist/tools/runsLater.js +50 -0
  162. package/dist/tools/runsLater.js.map +1 -0
  163. package/dist/tools/serverConsent.js +27 -0
  164. package/dist/tools/serverConsent.js.map +1 -0
  165. package/dist/tools/ui.js +81 -1
  166. package/dist/tools/ui.js.map +1 -1
  167. package/dist/tools/untrusted.js +22 -1
  168. package/dist/tools/untrusted.js.map +1 -1
  169. package/dist/tools/viewImage.js +2 -2
  170. package/dist/tools/viewImage.js.map +1 -1
  171. package/dist/tools/webFetch.js +76 -8
  172. package/dist/tools/webFetch.js.map +1 -1
  173. package/dist/tools/workspace.js +87 -24
  174. package/dist/tools/workspace.js.map +1 -1
  175. package/dist/tools/writeFile.js +9 -4
  176. package/dist/tools/writeFile.js.map +1 -1
  177. package/package.json +4 -4
@@ -18,7 +18,119 @@ export function capLines(lines, max) {
18
18
  }
19
19
  /** Line budget for `ToolResult.detailFull` — the uncut block a graphical front end
20
20
  * shows when a row is expanded. Still bounded, so one giant write can't flood it. */
21
- export const FULL_DETAIL_MAX = 2000;
21
+ export const FULL_DETAIL_MAX = 5000;
22
+ /** The line a cut leaves in place of what it hid: `… (3 more lines)` from `capLines`, or
23
+ * `… 57 earlier lines hidden` from `capEnds`. It says something is missing; it is not content. */
24
+ const CUT_MARKER = /^\s*\u2026 (\(\d+ more lines?\)|[\d,]+ earlier lines? hidden)$/;
25
+ /**
26
+ * The lines of a shortened block that are CONTENT (pure): the marker a cut leaves behind
27
+ * does not count.
28
+ *
29
+ * It matters at the edge. A block cut to thirty lines that had thirty-one is thirty lines and
30
+ * a marker, which is as many lines as the whole block; compared by count the two looked the
31
+ * same size, nothing was thought to be hidden, and the row said "(1 more line)" with no way
32
+ * to open it.
33
+ */
34
+ export function contentLines(detail) {
35
+ if (!detail)
36
+ return 0;
37
+ return detail.split("\n").filter((l) => !CUT_MARKER.test(l)).length;
38
+ }
39
+ /** What a saved session keeps of an uncut block, so a resumed chat can still open it. */
40
+ export const SESSION_DETAIL_LINES = 5000;
41
+ export const SESSION_DETAIL_CHARS = 500_000;
42
+ /**
43
+ * The uncut block as it is kept in the session file, or undefined when there is nothing
44
+ * worth keeping (pure).
45
+ *
46
+ * Only when the uncut text says more than the shortened one did: a row with nothing to
47
+ * open costs the file nothing. Bounded in lines AND characters, because the session file
48
+ * is read back whole and one minified bundle is a single enormous line. Past the bound
49
+ * the beginning and the end are kept and the cut is said where it is, so a resumed row
50
+ * never claims to show everything when it does not.
51
+ */
52
+ export function sessionDetailFull(detail, full) {
53
+ if (!full || full === detail)
54
+ return undefined;
55
+ let lines = full.split("\n");
56
+ if (lines.length <= contentLines(detail))
57
+ return undefined;
58
+ if (lines.length > SESSION_DETAIL_LINES) {
59
+ const head = Math.floor(SESSION_DETAIL_LINES * 0.75);
60
+ const tail = SESSION_DETAIL_LINES - head;
61
+ const dropped = lines.length - head - tail;
62
+ lines = [...lines.slice(0, head), `… ${dropped} lines are not kept in the saved session …`, ...lines.slice(-tail)];
63
+ }
64
+ let text = lines.join("\n");
65
+ if (text.length > SESSION_DETAIL_CHARS) {
66
+ text = `${text.slice(0, SESSION_DETAIL_CHARS)}\n… the rest is not kept in the saved session …`;
67
+ }
68
+ return text;
69
+ }
70
+ /**
71
+ * A batch's numbered steps, each on ONE row (pure).
72
+ *
73
+ * A step that typed a paragraph carries its line breaks into the list, and the list then
74
+ * reads as five rows for three steps, with the typed text spilling between them. Each step
75
+ * is joined into one row with the break marked, and clipped to a width a row can hold.
76
+ * The "Ran 3 of 3 steps:" header is dropped: the row already says how many, and a batch
77
+ * that did not run to the end is shown whole, not through this.
78
+ */
79
+ export function oneLineSteps(did) {
80
+ const steps = [];
81
+ for (const raw of did.split("\n")) {
82
+ if (/^\d+\. /.test(raw))
83
+ steps.push(raw);
84
+ else if (steps.length > 0 && raw.trim() !== "")
85
+ steps[steps.length - 1] += `\u21b5${raw.trim()}`;
86
+ else if (steps.length > 0)
87
+ steps[steps.length - 1] += "\u21b5";
88
+ }
89
+ return steps.map((s) => {
90
+ const tidy = s.replace(/(\u21b5)+$/, "").replace(/\u21b5+/g, "\u21b5");
91
+ return tidy.length > 110 ? `${tidy.slice(0, 109)}\u2026` : tidy;
92
+ });
93
+ }
94
+ /**
95
+ * A UI test's whole result as the opened row shows it: the steps, then the page, each under
96
+ * its own title (pure).
97
+ *
98
+ * What the model is given is a run of numbered sentences followed, after a blank line, by the
99
+ * numbered controls: right for it, and for a person a flat block in which the part they care
100
+ * about (what was done) is the same grey as the part they do not (the controls). Here each
101
+ * has a title and an indent, a typed line break is marked instead of splitting a step, and a
102
+ * run that stopped early says so in the title. `list` is the controls exactly as the model
103
+ * reads them, grouping lines included.
104
+ */
105
+ export function uiOpenedText(o) {
106
+ const sections = [];
107
+ if (o.did.trim() !== "") {
108
+ const lines = o.did.split("\n");
109
+ const ran = /Ran (\d+) of (\d+) steps?/.exec(lines[0] ?? "");
110
+ const stopped = /^Could not/.test(lines[0] ?? "");
111
+ const body = ran ? lines.slice(1) : lines;
112
+ const steps = [];
113
+ const notes = [];
114
+ for (const raw of body) {
115
+ if (/^\d+\. /.test(raw))
116
+ steps.push(raw);
117
+ else if (/^Stopped at step/.test(raw))
118
+ notes.push(raw);
119
+ else if (steps.length > 0 && notes.length === 0)
120
+ steps[steps.length - 1] += raw.trim() === "" ? "\u21b5" : `\u21b5${raw.trim()}`;
121
+ else if (raw.trim() !== "")
122
+ notes.push(raw.trim());
123
+ }
124
+ const title = ran ? `Steps \u00b7 ${stopped ? "stopped, " : ""}${ran[1]} of ${ran[2]} ran` : stopped ? "Result" : "Steps";
125
+ const tidy = steps.map((s) => s.replace(/(\u21b5)+$/, "").replace(/\u21b5{2,}/g, "\u21b5\u21b5"));
126
+ sections.push([title, ...[...tidy, ...notes].map((l) => ` ${l}`)].join("\n"));
127
+ }
128
+ const place = o.total === 0 ? "Page \u00b7 nothing readable" : `Page \u00b7 ${o.total} element${o.total === 1 ? "" : "s"}${o.off ? ` (${o.off} out of view)` : ""}`;
129
+ sections.push([place, ...o.list.split("\n").map((l) => ` ${l}`)].join("\n"));
130
+ if (o.reports.trim() !== "")
131
+ sections.push(["Page reported", ...o.reports.split("\n").map((l) => ` ${l}`)].join("\n"));
132
+ return sections.join("\n\n");
133
+ }
22
134
  // ── Scope helpers (pure) — the "what/where/how much" a change touched, so the row
23
135
  // isn't just a diff with no sense of range or magnitude. Kept pure + tested.
24
136
  /** Lines a replacement string spans (an empty string spans none). */
@@ -1 +1 @@
1
- {"version":3,"file":"detail.js","sourceRoot":"","sources":["../../src/tools/detail.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"detail.js","sourceRoot":"","sources":["../../src/tools/detail.ts"],"names":[],"mappings":"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"}
@@ -100,7 +100,8 @@ export const edit = {
100
100
  }
101
101
  ops.push({ oldString: e.old_string, newString: e.new_string, replaceAll: e.replace_all === true });
102
102
  }
103
- const target = await prepareEditTarget(ctx, rawPath, "editing");
103
+ const preview = ops.map((o) => `- ${o.oldString}\n+ ${o.newString}`).join("\n\n");
104
+ const target = await prepareEditTarget(ctx, rawPath, "editing", preview);
104
105
  if (!target.ok)
105
106
  return target.error;
106
107
  const { filePath, content, eol } = target;
@@ -1 +1 @@
1
- {"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/tools/edit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/tools/edit.ts"],"names":[],"mappings":"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"}
@@ -72,13 +72,28 @@ export async function rippleTargets(ctx, edited) {
72
72
  * which are different problems with different fixes.
73
73
  */
74
74
  export function formatRippleNote(diags, editedSet, label) {
75
- if (diags.length === 0)
75
+ // Compared case- and slash-insensitively on Windows: diagnostics arrive with forward
76
+ // slashes and the edited paths with backslashes, so a plain comparison marked every
77
+ // diagnostic, the edited file's included, as a caller's.
78
+ const key = (p) => {
79
+ const s = p.split("\\").join("/");
80
+ return process.platform === "win32" ? s.toLowerCase() : s;
81
+ };
82
+ const edited = new Set([...editedSet].map(key));
83
+ const isEdited = (d) => edited.has(key(d.file));
84
+ // What is worth interrupting the model with: anything in a file it just edited, but only
85
+ // ERRORS in a caller (a warning over there is not something this edit caused), and never
86
+ // a server failing to load its own schema. In real sessions the only notes this check
87
+ // ever produced were such warnings from the JSON server about files the model had not
88
+ // touched, which sent it off to fix what was not broken.
89
+ const relevant = diags.filter((d) => !/\bschema\b.*\b(unable|could not|failed|ENOENT|not found)|\b(unable|could not|failed) to load schema/i.test(d.message) && (isEdited(d) || d.severity === "error"));
90
+ if (relevant.length === 0)
76
91
  return "";
77
92
  const rank = (d) => (d.severity === "error" ? 0 : 1);
78
- const sorted = [...diags].sort((a, b) => rank(a) - rank(b));
93
+ const sorted = [...relevant].sort((a, b) => rank(a) - rank(b));
79
94
  const shown = sorted.slice(0, MAX_REPORTED);
80
95
  const lines = shown.map((d) => {
81
- const where = editedSet.has(d.file) ? "" : " (caller)";
96
+ const where = isEdited(d) ? "" : " (caller)";
82
97
  return `- ${label(d.file)}:${d.line}${where} ${d.severity}: ${d.message}`;
83
98
  });
84
99
  const hidden = sorted.length - shown.length;
@@ -1 +1 @@
1
- {"version":3,"file":"editRipple.js","sourceRoot":"","sources":["../../src/tools/editRipple.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editRipple.js","sourceRoot":"","sources":["../../src/tools/editRipple.ts"],"names":[],"mappings":"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"}
@@ -9,8 +9,9 @@
9
9
  * failure ToolResult to hand straight back.
10
10
  */
11
11
  import { promises as fs } from "node:fs";
12
- import { foreignAgentReason, protectedPathReason } from "./guard.js";
13
- import { forbiddenPathReason } from "../governor/forbidden.js";
12
+ import { foreignAgentReason, guardedPathReason } from "./guard.js";
13
+ import { forbiddenRealPathReason } from "../governor/forbidden.js";
14
+ import { requestRunsLaterWrite } from "./runsLater.js";
14
15
  import { requestAgentDataAccess, requestForbiddenLift, requestOutsideWorkspaceWrite } from "./approval.js";
15
16
  import { resolvePath } from "./paths.js";
16
17
  import { detectEol } from "./eol.js";
@@ -18,10 +19,10 @@ import { fail, failQuietly } from "./results.js";
18
19
  // Re-exported because the edit tools reach for these alongside the gauntlet itself.
19
20
  export { fail, failQuietly } from "./results.js";
20
21
  /** Run the shared pre-edit checks for `rawPath`. `verb` names the action in
21
- * messages (e.g. "editing"). */
22
- export async function prepareEditTarget(ctx, rawPath, verb) {
22
+ * messages (e.g. "editing"); `preview` is the change, shown if the user is asked. */
23
+ export async function prepareEditTarget(ctx, rawPath, verb, preview = "") {
23
24
  const filePath = resolvePath(ctx, rawPath);
24
- const blocked = protectedPathReason(filePath);
25
+ const blocked = await guardedPathReason(filePath);
25
26
  if (blocked)
26
27
  return { ok: false, error: fail(`Refusing to edit ${rawPath}: it is ${blocked}.`) };
27
28
  // Another tool's data. Writing to it is worse than reading it — we'd be editing
@@ -32,7 +33,7 @@ export async function prepareEditTarget(ctx, rawPath, verb) {
32
33
  if (denied)
33
34
  return { ok: false, error: denied };
34
35
  }
35
- const forbidden = forbiddenPathReason(ctx.governance?.forbidden, filePath, ctx.roots ?? []);
36
+ const forbidden = await forbiddenRealPathReason(ctx.governance?.forbidden, filePath, ctx.roots ?? []);
36
37
  if (forbidden) {
37
38
  const lift = await requestForbiddenLift(ctx, forbidden, `${verb} ${rawPath}`, `the user has forbidden touching '${forbidden}'.`);
38
39
  if (lift)
@@ -43,6 +44,10 @@ export async function prepareEditTarget(ctx, rawPath, verb) {
43
44
  const outside = await requestOutsideWorkspaceWrite(ctx, filePath, `${verb} ${rawPath}`);
44
45
  if (outside)
45
46
  return { ok: false, error: outside };
47
+ // A file that runs code later (an editor task, a hook, a workflow) asks first.
48
+ const later = await requestRunsLaterWrite(ctx, filePath, rawPath, preview);
49
+ if (later)
50
+ return { ok: false, error: later };
46
51
  let stat;
47
52
  try {
48
53
  stat = await fs.stat(filePath);
@@ -1 +1 @@
1
- {"version":3,"file":"editTarget.js","sourceRoot":"","sources":["../../src/tools/editTarget.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editTarget.js","sourceRoot":"","sources":["../../src/tools/editTarget.ts"],"names":[],"mappings":"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"}
@@ -8,13 +8,55 @@ import { failQuietly } from "./results.js";
8
8
  function projectRoot(ctx) {
9
9
  return ctx.governance?.forbidden.root ?? ctx.cwd;
10
10
  }
11
+ /**
12
+ * Ask the user before a change to what binds every later session: saving or dropping a
13
+ * rule, creating or deleting a skill, or lifting a protection. Returns null when they
14
+ * agreed, or the result to hand back instead.
15
+ *
16
+ * A rule is sent on every request as the user's own binding instruction, and a skill is
17
+ * followed as written. Without this, ONE injected instruction (a web page, a README, a
18
+ * tool result) could become a permanent rule every future session obeys as the user's,
19
+ * or quietly lift a path the user had forbidden. The tool's text always said the user
20
+ * decides; this is what makes that true. Adding a protection only restricts, so it does
21
+ * not ask. With nobody to ask (a sub-agent), the change is refused.
22
+ */
23
+ async function confirmStanding(ctx, question, detail) {
24
+ if (!ctx.requestApproval) {
25
+ return failQuietly("Not done: this changes what applies to every later session, which needs the user's agreement, " +
26
+ "and there is no way to ask from here. Say what you would change in your result instead.");
27
+ }
28
+ const choice = await ctx.requestApproval(question, ["Yes", "No"], detail, "Standing change");
29
+ if (choice.startsWith("Yes"))
30
+ return null;
31
+ return { output: "The user declined; nothing was changed.", summary: "declined by the user" };
32
+ }
33
+ /** Most rules the agent may have proposed at once, and the longest one. */
34
+ export const MAX_AGENT_RULES = 20;
35
+ export const MAX_AGENT_RULE_CHARS = 1000;
11
36
  async function doRememberRule(args, ctx) {
12
37
  const body = typeof args.value === "string" ? args.value.trim() : "";
13
38
  if (!body)
14
39
  return failQuietly("`value` is required — the rule text.");
15
40
  const name = (typeof args.name === "string" && args.name.trim()) || deriveRuleName(body);
16
41
  const globs = parseGlobs(typeof args.globs === "string" ? args.globs : undefined);
17
- const saved = await writeRule(projectRoot(ctx), name, body, "", globs);
42
+ const where = globs.length > 0 ? `files matching ${globs.join(", ")}` : "every request";
43
+ // Agent-made rules are capped in size and number: each one is read back as the user's binding instruction in
44
+ // every later session, so a runaway or injected stream of them must run out of room. A rule the user wrote by
45
+ // hand has no origin line and is not counted. Re-stating an existing rule (same slug) is not a new one.
46
+ if (body.length > MAX_AGENT_RULE_CHARS) {
47
+ return failQuietly(`Not saved: a rule is at most ${MAX_AGENT_RULE_CHARS} characters (this one is ${body.length}). Say it shorter.`);
48
+ }
49
+ const slugOfName = slugify(name);
50
+ const agentRules = (ctx.governance?.rules ?? []).filter((r) => r.origin && slugify(r.name) !== slugOfName);
51
+ if (agentRules.length >= MAX_AGENT_RULES) {
52
+ return failQuietly(`Not saved: there are already ${MAX_AGENT_RULES} rules you proposed. Ask the user which to drop, ` +
53
+ `or tell them to edit the rules folder themselves.`);
54
+ }
55
+ const declined = await confirmStanding(ctx, `Save this as a standing rule for this project? It will apply to ${where}, in this session and future ones.`, `${name}\n\n${body}`);
56
+ if (declined)
57
+ return declined;
58
+ const origin = `agent, confirmed by the user ${new Date().toISOString().slice(0, 10)}`;
59
+ const saved = await writeRule(projectRoot(ctx), name, body, "", globs, origin);
18
60
  // Mirror into the live session so the rule is in the very next prompt.
19
61
  //
20
62
  // Deduplicate by SLUG, not by the display name. The rule FILE is `<slug>.md`, so
@@ -116,6 +158,9 @@ async function doForgetRule(args, ctx) {
116
158
  const name = typeof args.value === "string" ? args.value.trim() : "";
117
159
  if (!name)
118
160
  return failQuietly("`value` is required — the rule's name.");
161
+ const declined = await confirmStanding(ctx, `Drop the standing rule '${name}' for this project?`, name);
162
+ if (declined)
163
+ return declined;
119
164
  const gone = await removeRule(projectRoot(ctx), name);
120
165
  // The live session drops it too, so the very next turn is built without it.
121
166
  if (ctx.governance && gone) {
@@ -132,6 +177,9 @@ async function doUnforbidPath(args, ctx) {
132
177
  const pattern = typeof args.value === "string" ? args.value.trim() : "";
133
178
  if (!pattern)
134
179
  return failQuietly("`value` is required — the forbidden path pattern to lift.");
180
+ const declinedPath = await confirmStanding(ctx, `Lift the protection on '${pattern}', so it can be edited again?`, pattern);
181
+ if (declinedPath)
182
+ return declinedPath;
135
183
  const normalized = pattern.replace(/^\.\//, "").replace(/\/$/, "");
136
184
  const gone = await removeForbiddenPath(projectRoot(ctx), pattern);
137
185
  if (ctx.governance && gone) {
@@ -148,6 +196,9 @@ async function doUnforbidCommand(args, ctx) {
148
196
  const pattern = typeof args.value === "string" ? args.value.trim() : "";
149
197
  if (!pattern)
150
198
  return failQuietly("`value` is required — the forbidden command to lift.");
199
+ const declined = await confirmStanding(ctx, `Allow the forbidden command '${pattern}' to run again?`, pattern);
200
+ if (declined)
201
+ return declined;
151
202
  const gone = await removeForbiddenCommand(projectRoot(ctx), pattern);
152
203
  if (ctx.governance && gone) {
153
204
  ctx.governance.forbidden = {
@@ -163,6 +214,9 @@ async function doUnforbidMcpTool(args, ctx) {
163
214
  const name = typeof args.value === "string" ? args.value.trim() : "";
164
215
  if (!name)
165
216
  return failQuietly("`value` is required — the full MCP tool name to lift.");
217
+ const declined = await confirmStanding(ctx, `Make the forbidden MCP tool '${name}' available again?`, name);
218
+ if (declined)
219
+ return declined;
166
220
  const gone = await removeForbiddenMcpTool(projectRoot(ctx), name);
167
221
  if (ctx.governance && gone) {
168
222
  const mcpTools = (ctx.governance.forbidden.mcpTools ?? []).filter((t) => t !== name);
@@ -326,6 +380,9 @@ export const skillTool = {
326
380
  if (!name)
327
381
  return failQuietly("`name` is required.");
328
382
  if (args.action === "delete") {
383
+ const declinedDelete = await confirmStanding(ctx, `Delete the skill '${slugify(name)}' from this project?`, name);
384
+ if (declinedDelete)
385
+ return declinedDelete;
329
386
  const gone = await removeSkill(projectRoot(ctx), name);
330
387
  // Out of the live catalog too, so /name stops offering it immediately.
331
388
  if (ctx.governance && gone) {
@@ -338,6 +395,9 @@ export const skillTool = {
338
395
  }
339
396
  if (!body)
340
397
  return failQuietly("`steps` is required — the skill needs a body.");
398
+ const declined = await confirmStanding(ctx, `Save this as the skill '/${slugify(name)}' for this project? A skill is followed as written whenever it runs.`, description ? `${description}\n\n${body}` : body);
399
+ if (declined)
400
+ return declined;
341
401
  const saved = await writeSkill(projectRoot(ctx), {
342
402
  name,
343
403
  description,
@@ -1 +1 @@
1
- {"version":3,"file":"governorTools.js","sourceRoot":"","sources":["../../src/tools/governorTools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"governorTools.js","sourceRoot":"","sources":["../../src/tools/governorTools.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@ import { join } from "node:path";
19
19
  import { isMultiRoot, nextTouch, relativize, resolvePath, rootLabel, rootsOf, searchUnits, markScope } from "./paths.js";
20
20
  import { addFocus } from "./focus.js";
21
21
  import { DEFAULT_IGNORES, globToRegExp, walkFiles } from "./walk.js";
22
- import { SEARCH_EXCLUDE_GLOBS, excludedFromSearch } from "./guard.js";
22
+ import { SEARCH_EXCLUDE_GLOBS, excludedFromSearch, guardedPathReason } from "./guard.js";
23
23
  import { ripgrepAvailable, runRipgrep } from "./ripgrep.js";
24
24
  import { fail, failQuietly } from "./results.js";
25
25
  const MAX_FILES = 5_000;
@@ -146,6 +146,14 @@ export const grepDef = {
146
146
  return fail(`path not found: ${rawPath}`);
147
147
  continue; // a missing root in a multi-root sweep is skipped, not fatal
148
148
  }
149
+ // A walk leaves secrets out, but a target named outright was searched as given: a
150
+ // search pointed at .env returned its lines. The target itself goes through the
151
+ // same guard a read does, which also catches a folder that is a link to .ssh.
152
+ if (rawPath) {
153
+ const blocked = await guardedPathReason(target);
154
+ if (blocked)
155
+ return fail(`Refusing to search ${rawPath}: it is ${blocked}.`);
156
+ }
149
157
  const o = { pattern, mode, before, after, multiline, caseInsensitive, glob, ctx, unit, isFile: stat.isFile() };
150
158
  const got = haveRg ? await grepViaRipgrep(o) : await grepViaWalk(o);
151
159
  if (got.invalid)
@@ -154,10 +162,10 @@ export const grepDef = {
154
162
  }
155
163
  // Keep what the search found. Without this a grep is the one useful thing the model
156
164
  // can do that leaves NOTHING behind: its result lives only in the transcript, which
157
- // keeps the last 8 tool results and sweeps to 2 at a task boundary, while a read is
158
- // re-rendered from disk into <working_files> on every step, forever. The harness was
159
- // teaching, mechanically, that reading sticks and searching does not — so the model
160
- // read, narrowly and repeatedly, where one search would have answered it.
165
+ // keeps the last 8 tool results and sweeps to 2 at a task boundary, while a read leaves
166
+ // its file in the read ledger. Left alone, the harness teaches, mechanically, that
167
+ // reading sticks and searching does not, and the model reads, narrowly and repeatedly,
168
+ // where one search would have answered it.
161
169
  if (mode === "content" && lines.length > 0)
162
170
  await recordSearchHits(ctx, lines);
163
171
  return formatGrep(mode, pattern, lines, headLimit, offset);