mindweave 3.0.1 → 3.1.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 (138) 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 +2 -2
  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/MarathonBox.js +2 -1
  15. package/dist/cli/components/MarathonBox.js.map +1 -1
  16. package/dist/cli/marathonUi.js +2 -0
  17. package/dist/cli/marathonUi.js.map +1 -1
  18. package/dist/core/permissions.js +26 -1
  19. package/dist/core/permissions.js.map +1 -1
  20. package/dist/core/spendView.js +8 -1
  21. package/dist/core/spendView.js.map +1 -1
  22. package/dist/core/turnRunner.js +28 -2
  23. package/dist/core/turnRunner.js.map +1 -1
  24. package/dist/drivers/deepseek/inlineTools.js +36 -2
  25. package/dist/drivers/deepseek/inlineTools.js.map +1 -1
  26. package/dist/drivers/ollama/endpoint.js +25 -0
  27. package/dist/drivers/ollama/endpoint.js.map +1 -1
  28. package/dist/dynamo/engine.js +408 -88
  29. package/dist/dynamo/engine.js.map +1 -1
  30. package/dist/dynamo/guard.js +11 -4
  31. package/dist/dynamo/guard.js.map +1 -1
  32. package/dist/dynamo/hooks.js +209 -0
  33. package/dist/dynamo/hooks.js.map +1 -0
  34. package/dist/dynamo/marathon.js +67 -10
  35. package/dist/dynamo/marathon.js.map +1 -1
  36. package/dist/dynamo/todoReminder.js +26 -0
  37. package/dist/dynamo/todoReminder.js.map +1 -0
  38. package/dist/governor/forbidden.js +19 -0
  39. package/dist/governor/forbidden.js.map +1 -1
  40. package/dist/governor/freshness.js +1 -1
  41. package/dist/governor/freshness.js.map +1 -1
  42. package/dist/governor/index.js +8 -1
  43. package/dist/governor/index.js.map +1 -1
  44. package/dist/governor/rules.js +1 -0
  45. package/dist/governor/rules.js.map +1 -1
  46. package/dist/governor/write.js +50 -2
  47. package/dist/governor/write.js.map +1 -1
  48. package/dist/mcp/config.js +0 -41
  49. package/dist/mcp/config.js.map +1 -1
  50. package/dist/mcp/projectApproval.js +117 -0
  51. package/dist/mcp/projectApproval.js.map +1 -0
  52. package/dist/mcp/resultStore.js +19 -5
  53. package/dist/mcp/resultStore.js.map +1 -1
  54. package/dist/mcp/transport/stdio.js +4 -1
  55. package/dist/mcp/transport/stdio.js.map +1 -1
  56. package/dist/memory/allMetas.js +1 -1
  57. package/dist/memory/allMetas.js.map +1 -1
  58. package/dist/memory/autoMemory.js +1 -0
  59. package/dist/memory/autoMemory.js.map +1 -1
  60. package/dist/memory/clearedArchive.js +120 -0
  61. package/dist/memory/clearedArchive.js.map +1 -0
  62. package/dist/memory/compaction.js +154 -14
  63. package/dist/memory/compaction.js.map +1 -1
  64. package/dist/memory/counters.js +64 -0
  65. package/dist/memory/counters.js.map +1 -0
  66. package/dist/memory/projectNotes.js +61 -13
  67. package/dist/memory/projectNotes.js.map +1 -1
  68. package/dist/memory/rewind.js +6 -2
  69. package/dist/memory/rewind.js.map +1 -1
  70. package/dist/memory/session.js +13 -5
  71. package/dist/memory/session.js.map +1 -1
  72. package/dist/memory/sessionMemory.js +6 -2
  73. package/dist/memory/sessionMemory.js.map +1 -1
  74. package/dist/memory/store.js +3 -0
  75. package/dist/memory/store.js.map +1 -1
  76. package/dist/memory/workingSet.js +0 -375
  77. package/dist/memory/workingSet.js.map +1 -1
  78. package/dist/project/context.js +54 -7
  79. package/dist/project/context.js.map +1 -1
  80. package/dist/tools/approval.js +19 -4
  81. package/dist/tools/approval.js.map +1 -1
  82. package/dist/tools/backgroundShells.js +8 -1
  83. package/dist/tools/backgroundShells.js.map +1 -1
  84. package/dist/tools/browser.js +2 -1
  85. package/dist/tools/browser.js.map +1 -1
  86. package/dist/tools/checkpoints.js +28 -4
  87. package/dist/tools/checkpoints.js.map +1 -1
  88. package/dist/tools/childEnv.js +50 -0
  89. package/dist/tools/childEnv.js.map +1 -0
  90. package/dist/tools/codeIntel.js +4 -1
  91. package/dist/tools/codeIntel.js.map +1 -1
  92. package/dist/tools/commandParse.js +238 -0
  93. package/dist/tools/commandParse.js.map +1 -0
  94. package/dist/tools/commandPolicy.js +283 -0
  95. package/dist/tools/commandPolicy.js.map +1 -0
  96. package/dist/tools/edit.js +2 -1
  97. package/dist/tools/edit.js.map +1 -1
  98. package/dist/tools/editRipple.js +18 -3
  99. package/dist/tools/editRipple.js.map +1 -1
  100. package/dist/tools/editTarget.js +11 -6
  101. package/dist/tools/editTarget.js.map +1 -1
  102. package/dist/tools/governorTools.js +61 -1
  103. package/dist/tools/governorTools.js.map +1 -1
  104. package/dist/tools/grep.js +13 -5
  105. package/dist/tools/grep.js.map +1 -1
  106. package/dist/tools/guard.js +249 -2
  107. package/dist/tools/guard.js.map +1 -1
  108. package/dist/tools/invisible.js +62 -0
  109. package/dist/tools/invisible.js.map +1 -0
  110. package/dist/tools/killTree.js +3 -0
  111. package/dist/tools/killTree.js.map +1 -1
  112. package/dist/tools/readFile.js +2 -2
  113. package/dist/tools/readFile.js.map +1 -1
  114. package/dist/tools/readSymbol.js +5 -24
  115. package/dist/tools/readSymbol.js.map +1 -1
  116. package/dist/tools/replaceSymbol.js +1 -1
  117. package/dist/tools/replaceSymbol.js.map +1 -1
  118. package/dist/tools/ripgrepShell.js +56 -0
  119. package/dist/tools/ripgrepShell.js.map +1 -0
  120. package/dist/tools/runCommand.js +74 -15
  121. package/dist/tools/runCommand.js.map +1 -1
  122. package/dist/tools/runsLater.js +50 -0
  123. package/dist/tools/runsLater.js.map +1 -0
  124. package/dist/tools/serverConsent.js +27 -0
  125. package/dist/tools/serverConsent.js.map +1 -0
  126. package/dist/tools/ui.js +27 -0
  127. package/dist/tools/ui.js.map +1 -1
  128. package/dist/tools/untrusted.js +22 -1
  129. package/dist/tools/untrusted.js.map +1 -1
  130. package/dist/tools/viewImage.js +2 -2
  131. package/dist/tools/viewImage.js.map +1 -1
  132. package/dist/tools/webFetch.js +76 -8
  133. package/dist/tools/webFetch.js.map +1 -1
  134. package/dist/tools/workspace.js +87 -24
  135. package/dist/tools/workspace.js.map +1 -1
  136. package/dist/tools/writeFile.js +9 -4
  137. package/dist/tools/writeFile.js.map +1 -1
  138. package/package.json +3 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/dynamo/hooks.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { forkSession } from "../memory/session.js";
2
2
  import { respond } from "./engine.js";
3
- import { summarizeTask, taskLimitReason } from "./pricing.js";
3
+ import { formatCost, summarizeTask, taskLimitReason } from "./pricing.js";
4
4
  import { VERIFIER_PROMPT, VERDICT_INSTRUCTION, parseVerdict } from "../tools/verifyReport.js";
5
5
  /** How many consecutive non-passing verifications before Marathon gives up and
6
6
  * hands back to the user, rather than retry the same goal forever. Same shape as
@@ -21,8 +21,36 @@ const STUCK_WINDOW = 40;
21
21
  * the whole run feel stalled. */
22
22
  const DEFAULT_BACKGROUND_POLL_WAIT_MS = 5_000;
23
23
  /** A fresh Marathon over `goal`, not yet run. */
24
- export function initMarathon(goal) {
25
- return { goal, startedAt: Date.now(), turnsSpent: 0, resumes: 0, consecutiveVerifyFails: 0, status: "running" };
24
+ export function initMarathon(goal, limits) {
25
+ return {
26
+ goal,
27
+ startedAt: Date.now(),
28
+ turnsSpent: 0,
29
+ resumes: 0,
30
+ consecutiveVerifyFails: 0,
31
+ status: "running",
32
+ ...(limits !== undefined ? { limits } : {}),
33
+ };
34
+ }
35
+ /**
36
+ * What a run may spend unless the person chose otherwise: a few dollars and a few hours.
37
+ * A run is unattended and on the user's own key; one that is not stuck, keeps making small
38
+ * progress and can never be verified was bounded only by ten failed checks of forty rounds
39
+ * each, a worst case in the hundreds of model rounds. "No limit" has to be asked for.
40
+ */
41
+ export const DEFAULT_MARATHON_LIMITS = { maxUsd: 5, maxSeconds: 4 * 60 * 60 };
42
+ /** The ceiling in words, for the start line. */
43
+ export function describeLimits(limits) {
44
+ if (limits === "none")
45
+ return "no spending or time limit";
46
+ if (!limits)
47
+ return "no recorded limit";
48
+ const parts = [];
49
+ if (limits.maxUsd > 0)
50
+ parts.push(formatCost(limits.maxUsd));
51
+ if (limits.maxSeconds > 0)
52
+ parts.push(limits.maxSeconds % 3600 === 0 ? `${limits.maxSeconds / 3600}h` : `${Math.round(limits.maxSeconds / 60)} min`);
53
+ return parts.length ? `stops at ${parts.join(" or ")}` : "no spending or time limit";
26
54
  }
27
55
  // ---------------------------------------------------------------------------
28
56
  // Stuck detection (pure) — fixed numeric thresholds, checked directly against
@@ -162,9 +190,11 @@ const PAUSE_WORDS = {
162
190
  export function describeMarathonEvent(e) {
163
191
  switch (e.type) {
164
192
  case "started":
165
- return "Marathon started";
193
+ return e.ceiling ? `Marathon started (${e.ceiling})` : "Marathon started";
166
194
  case "resumed":
167
- return `Marathon resumed at turn ${e.turnsSpent + 1}`;
195
+ return e.ceiling
196
+ ? `Marathon resumed at turn ${e.turnsSpent + 1} (${e.ceiling}; ${formatCost(e.spentUsd ?? 0)} spent so far)`
197
+ : `Marathon resumed at turn ${e.turnsSpent + 1}`;
168
198
  case "turn":
169
199
  return e.phase === "plan" ? "Understanding the goal (questions open)" : `Working, turn ${e.n}`;
170
200
  case "planned":
@@ -189,6 +219,8 @@ export function describeMarathonEvent(e) {
189
219
  : `Stopped, over budget: ${e.outcome}`;
190
220
  case "paused":
191
221
  return e.reason === "limit" ? "Paused: your usage limit is reached" : "Paused";
222
+ case "spend":
223
+ return e.limitUsd ? `${formatCost(e.spentUsd)} of ${formatCost(e.limitUsd)}` : `${formatCost(e.spentUsd)} spent`;
192
224
  }
193
225
  }
194
226
  const defaultDeps = {
@@ -229,14 +261,22 @@ async function runLoop(session, goal, options, deps) {
229
261
  const resumed = session.marathon !== undefined;
230
262
  const state = session.marathon ?? initMarathon(goal);
231
263
  session.marathon = state;
264
+ // The ceiling is decided once and kept: the caller's choice, else what the run already
265
+ // has (a resume), else the default. A run saved before ceilings existed gets the default.
266
+ state.limits = options.limits ?? state.limits ?? DEFAULT_MARATHON_LIMITS;
267
+ const limits = state.limits === "none" ? undefined : state.limits;
232
268
  const emit = options.onMarathon;
233
269
  if (state.status === "running") {
234
270
  for (const tool of MARATHON_TOOLS)
235
271
  session.toolContext.activatedTools?.add(tool);
272
+ const ceiling = describeLimits(state.limits);
236
273
  emit?.(resumed && state.turnsSpent > 0
237
- ? { type: "resumed", goal: state.goal, turnsSpent: state.turnsSpent }
238
- : { type: "started", goal: state.goal });
274
+ ? { type: "resumed", goal: state.goal, turnsSpent: state.turnsSpent, ceiling, spentUsd: state.costUsd ?? 0 }
275
+ : { type: "started", goal: state.goal, ceiling });
239
276
  }
277
+ // Spending from earlier runs of this goal, then this run's own usage on top: work turns
278
+ // and the checker both push here.
279
+ const spentBefore = state.costUsd ?? 0;
240
280
  const usages = [];
241
281
  // Feedback from a non-passing verification, queued for the NEXT turn rather than
242
282
  // pushed immediately — the turn that just ran already recorded its own pause
@@ -296,6 +336,9 @@ async function runLoop(session, goal, options, deps) {
296
336
  pauseReason = reason;
297
337
  },
298
338
  });
339
+ // Whatever happens next (a stop, a pause, a decision), this turn's spend is on the record.
340
+ state.costUsd = withEarlierSpend(summarizeTask(usages, session.modelConfig.model), spentBefore)?.costUsd ?? state.costUsd;
341
+ emit?.({ type: "spend", spentUsd: state.costUsd ?? 0, ...(limits?.maxUsd ? { limitUsd: limits.maxUsd } : {}) });
299
342
  // Esc mid-turn ends respond() with no pause and no finished answer, which the
300
343
  // decision below would read as "looks done" and spend a verification on. A stop
301
344
  // the user asked for is not an outcome: leave the run resumable and say so.
@@ -321,8 +364,8 @@ async function runLoop(session, goal, options, deps) {
321
364
  continue;
322
365
  }
323
366
  const stuck = detectStuck(session.transcript.slice(-STUCK_WINDOW));
324
- const usage = summarizeTask(usages, session.modelConfig.model);
325
- const budgetExceeded = options.limits ? taskLimitReason(usage, Date.now() - state.startedAt, options.limits) : null;
367
+ const usage = withEarlierSpend(summarizeTask(usages, session.modelConfig.model), spentBefore);
368
+ const budgetExceeded = limits ? taskLimitReason(usage, Date.now() - state.startedAt, limits) : null;
326
369
  const decision = decide({ pauseReason, stuck, budgetExceeded });
327
370
  switch (decision.action) {
328
371
  case "resume":
@@ -339,6 +382,10 @@ async function runLoop(session, goal, options, deps) {
339
382
  const report = await deps.verify(session, state.goal, {
340
383
  signal: options.signal,
341
384
  onEvent: (e) => {
385
+ // The checker's own tokens count toward the ceiling: it is the largest single
386
+ // spender of a run, and it ran in a session whose usage never reached the tally.
387
+ if (e.type === "usage")
388
+ usages.push(e);
342
389
  if (e.type !== "tool" || e.phase !== "start")
343
390
  return;
344
391
  const arg = ["path", "command", "cmd", "pattern", "query", "url"].map((k) => e.args[k]).find((v) => typeof v === "string");
@@ -351,6 +398,10 @@ async function runLoop(session, goal, options, deps) {
351
398
  return state;
352
399
  }
353
400
  state.lastVerification = { at: Date.now(), verdict: report.verdict, note: report.body.slice(0, 2000) };
401
+ // What the check cost, counted now: the ceiling is judged after the next turn, and a
402
+ // run that is about to stop should say so with the true figure.
403
+ state.costUsd = withEarlierSpend(summarizeTask(usages, session.modelConfig.model), spentBefore)?.costUsd ?? state.costUsd;
404
+ emit?.({ type: "spend", spentUsd: state.costUsd ?? 0, ...(limits?.maxUsd ? { limitUsd: limits.maxUsd } : {}) });
354
405
  if (report.verdict === "pass") {
355
406
  state.consecutiveVerifyFails = 0;
356
407
  state.status = "done";
@@ -384,13 +435,19 @@ async function runLoop(session, goal, options, deps) {
384
435
  emit?.({ type: "paused" }); // left the loop on an abort before the next turn
385
436
  return state;
386
437
  }
438
+ /** The usage so far with the dollars spent in earlier runs of the same goal added (pure). */
439
+ function withEarlierSpend(usage, before) {
440
+ if (before <= 0)
441
+ return usage;
442
+ return usage ? { ...usage, costUsd: usage.costUsd + before } : null;
443
+ }
387
444
  /**
388
445
  * Begin a NEW goal, replacing whatever Marathon the session already holds (a finished
389
446
  * one, or one the user is abandoning by starting over). The front ends call this when
390
447
  * the user arms Marathon and sends their goal.
391
448
  */
392
449
  export function startMarathon(session, goal, options = {}, deps = defaultDeps) {
393
- session.marathon = initMarathon(goal);
450
+ session.marathon = initMarathon(goal, options.limits);
394
451
  return runMarathon(session, goal, options, deps);
395
452
  }
396
453
  /** Carry on a run that stopped while still "running" (stopped by the user, or the
@@ -1 +1 @@
1
- {"version":3,"file":"marathon.js","sourceRoot":"","sources":["../../src/dynamo/marathon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"marathon.js","sourceRoot":"","sources":["../../src/dynamo/marathon.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /** Rounds of tool use without a todo_write before the reminder is added. */
2
+ export const TODO_QUIET_ROUNDS = 10;
3
+ /**
4
+ * Advance the counter by one round and say whether to remind now.
5
+ * `wrote` is whether this round included a todo_write.
6
+ */
7
+ export function todoReminderDue(state, todos, wrote) {
8
+ if (wrote) {
9
+ state.rounds = 0;
10
+ return false;
11
+ }
12
+ state.rounds++;
13
+ const open = todos.some((t) => t.status !== "completed");
14
+ if (!open || state.rounds < TODO_QUIET_ROUNDS)
15
+ return false;
16
+ state.rounds = 0; // once per quiet run
17
+ return true;
18
+ }
19
+ export function todoReminderText(todos) {
20
+ const doing = todos.find((t) => t.status === "in_progress");
21
+ const open = todos.filter((t) => t.status !== "completed").length;
22
+ return (`[Reminder: your task list has not been updated for ${TODO_QUIET_ROUNDS} rounds and ${open} item${open === 1 ? " is" : "s are"} still open` +
23
+ (doing ? ` (in progress: "${doing.content}")` : "") +
24
+ `. If any of it is done, mark it with todo_write; otherwise carry on.]`);
25
+ }
26
+ //# sourceMappingURL=todoReminder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todoReminder.js","sourceRoot":"","sources":["../../src/dynamo/todoReminder.ts"],"names":[],"mappings":"AAWA,4EAA4E;AAC5E,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAOpC;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAAgB,EAAE,KAA0B,EAAE,KAAc;IAC1F,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACjB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,KAAK,CAAC,MAAM,EAAE,CAAC;IACf,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;IACzD,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,iBAAiB;QAAE,OAAO,KAAK,CAAC;IAC5D,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,qBAAqB;IACvC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAA0B;IACzD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM,CAAC;IAClE,OAAO,CACL,sDAAsD,iBAAiB,eAAe,IAAI,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,aAAa;QAC3I,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,uEAAuE,CACxE,CAAC;AACJ,CAAC"}
@@ -17,6 +17,7 @@
17
17
  */
18
18
  import { isAbsolute, relative, resolve } from "node:path";
19
19
  import { globToRegExp, literalPrefix } from "./glob.js";
20
+ import { realPathOf } from "../tools/guard.js";
20
21
  /** Parse the raw text of a forbidden.md into a clean pattern list. */
21
22
  export function parseForbidden(text) {
22
23
  const patterns = [];
@@ -138,6 +139,24 @@ export function forbiddenPathReason(cfg, absPath, roots = []) {
138
139
  }
139
140
  return null;
140
141
  }
142
+ /**
143
+ * `forbiddenPathReason`, also judged by where the path really leads. A link inside the
144
+ * project to a forbidden folder (`docs` pointing at `src/legacy`) reached it under a name
145
+ * no pattern matched. The real path is compared with the real roots, links resolved on
146
+ * both sides.
147
+ */
148
+ export async function forbiddenRealPathReason(cfg, absPath, roots = []) {
149
+ const textual = forbiddenPathReason(cfg, absPath, roots);
150
+ if (textual || !cfg || cfg.patterns.length === 0)
151
+ return textual;
152
+ const real = await realPathOf(isAbsolute(absPath) ? absPath : resolve(cfg.root, absPath));
153
+ for (const base of [cfg.root, ...roots]) {
154
+ const hit = matchUnderRoot(cfg, real, await realPathOf(base));
155
+ if (hit)
156
+ return hit;
157
+ }
158
+ return null;
159
+ }
141
160
  /** Test one absolute path against the patterns, read relative to `base`. */
142
161
  function matchUnderRoot(cfg, abs, base) {
143
162
  const rel = toPosix(relative(base, abs));
@@ -1 +1 @@
1
- {"version":3,"file":"forbidden.js","sourceRoot":"","sources":["../../src/governor/forbidden.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"forbidden.js","sourceRoot":"","sources":["../../src/governor/forbidden.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,7 @@ import { promises as fs } from "node:fs";
29
29
  import { join } from "node:path";
30
30
  import { projectDir, stateRoot } from "../memory/store.js";
31
31
  /** The files and directories a project's governance is read from. */
32
- const FORBIDDEN_FILES = ["forbidden.md", "forbidden-commands.md", "forbidden-mcp-tools.md", "sentinel-allow.md", "context.json"];
32
+ const FORBIDDEN_FILES = ["forbidden.md", "forbidden-commands.md", "forbidden-mcp-tools.md", "sentinel-allow.md", "command-rules.md", "context.json"];
33
33
  /** One directory's entries as `name:mtime:size`, sorted so the stamp is order-stable. */
34
34
  async function dirStamp(dir, depth) {
35
35
  let names;
@@ -1 +1 @@
1
- {"version":3,"file":"freshness.js","sourceRoot":"","sources":["../../src/governor/freshness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"freshness.js","sourceRoot":"","sources":["../../src/governor/freshness.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@ import { join } from "node:path";
20
20
  import { loadRules } from "./rules.js";
21
21
  import { loadSkillCatalog } from "./skills.js";
22
22
  import { parseForbidden, parseForbiddenCommands, parseForbiddenMcpTools } from "./forbidden.js";
23
+ import { parseCommandRules } from "../tools/commandPolicy.js";
23
24
  /** Read a project state file (forbidden.md / forbidden-commands.md), "" if absent. */
24
25
  async function readStateFile(stateDir, name) {
25
26
  try {
@@ -39,17 +40,19 @@ export function governanceDir(cwd, scope) {
39
40
  /** The deny-lists and Sentinel allowances of ONE scope, unmerged, for a settings screen. */
40
41
  export async function loadPermissionLists(cwd, scope) {
41
42
  const dir = governanceDir(cwd, scope);
42
- const [paths, commands, mcpTools, sentinel] = await Promise.all([
43
+ const [paths, commands, mcpTools, sentinel, commandRules] = await Promise.all([
43
44
  readStateFile(dir, "forbidden.md"),
44
45
  readStateFile(dir, "forbidden-commands.md"),
45
46
  readStateFile(dir, "forbidden-mcp-tools.md"),
46
47
  readStateFile(dir, "sentinel-allow.md"),
48
+ readStateFile(dir, "command-rules.md"),
47
49
  ]);
48
50
  return {
49
51
  paths: parseForbidden(paths),
50
52
  commands: parseForbiddenCommands(commands),
51
53
  mcpTools: parseForbiddenMcpTools(mcpTools),
52
54
  sentinelAllow: parseForbiddenCommands(sentinel),
55
+ commandRules: parseCommandRules(commandRules),
53
56
  };
54
57
  }
55
58
  const unique = (list) => [...new Set(list)];
@@ -104,6 +107,9 @@ export async function loadGovernance(cwd) {
104
107
  const rules = byName(globalRules, projectRules);
105
108
  const skills = byName(globalSkills, projectSkills);
106
109
  const sentinelAllow = unique([...global.sentinelAllow, ...project.sentinelAllow]);
110
+ // A project's rules come after the user's own, so on a conflict the project's line is the one found last;
111
+ // matching takes forbid over prompt over allow whichever file a rule came from.
112
+ const commandRules = [...global.commandRules, ...project.commandRules];
107
113
  return {
108
114
  rules,
109
115
  skills,
@@ -114,6 +120,7 @@ export async function loadGovernance(cwd) {
114
120
  root: cwd,
115
121
  },
116
122
  ...(sentinelAllow.length ? { sentinelAllow } : {}),
123
+ ...(commandRules.length ? { commandRules } : {}),
117
124
  ...(projectContext !== null ? { contextAutoCompactTokens: projectContext } : globalContext !== null ? { contextAutoCompactTokens: globalContext } : {}),
118
125
  };
119
126
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/governor/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/governor/index.ts"],"names":[],"mappings":"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"}
@@ -45,6 +45,7 @@ export async function loadRules(stateDir) {
45
45
  name: data.name || basename(name, ".md"),
46
46
  description: data.description || "",
47
47
  body,
48
+ ...(data.origin ? { origin: data.origin } : {}),
48
49
  ...(globs.length > 0 ? { globs } : {}),
49
50
  });
50
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/governor/rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/governor/rules.ts"],"names":[],"mappings":"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"}
@@ -64,7 +64,7 @@ export function deriveRuleName(body) {
64
64
  * `globs` to SCOPE the rule (fires only when the work touches matching files);
65
65
  * omit them for an always-on rule (the default).
66
66
  */
67
- export async function writeRule(cwd, name, body, description = "", globs = []) {
67
+ export async function writeRule(cwd, name, body, description = "", globs = [], origin = "") {
68
68
  const dir = join(projectDir(cwd), "rules");
69
69
  await fs.mkdir(dir, { recursive: true });
70
70
  const file = join(dir, `${slugify(name)}.md`);
@@ -72,9 +72,16 @@ export async function writeRule(cwd, name, body, description = "", globs = []) {
72
72
  name,
73
73
  description,
74
74
  globs: globs.join(", "),
75
+ origin,
75
76
  });
76
77
  await fs.writeFile(file, `${header}${body}\n`, "utf8");
77
- return { name: oneLine(name), description: oneLine(description), body, ...(globs.length > 0 ? { globs } : {}) };
78
+ return {
79
+ name: oneLine(name),
80
+ description: oneLine(description),
81
+ body,
82
+ ...(globs.length > 0 ? { globs } : {}),
83
+ ...(origin ? { origin: oneLine(origin) } : {}),
84
+ };
78
85
  }
79
86
  /**
80
87
  * Create (or overwrite) a skill at `skills/<slug>/SKILL.md` in the project's
@@ -269,4 +276,45 @@ export async function appendSentinelAllow(cwd, tool, scope = "project") {
269
276
  export async function removeSentinelAllow(cwd, tool, scope = "project") {
270
277
  return removeForbiddenLine(cwd, "sentinel-allow.md", tool, scope);
271
278
  }
279
+ // ── command rules (command-rules.md) ─────────────────────────────────────────
280
+ /**
281
+ * Add one line to command-rules.md: `allow npm test`, `prompt git push`, `forbid rm -rf :: why`.
282
+ * Idempotent; the same decision for the same words is one line. Returns the line as written.
283
+ */
284
+ export async function appendCommandRule(cwd, decision, words, scope = "project", why = "") {
285
+ const prefix = words.trim().replace(/\s+/g, " ").replace(/[\r\n]/g, " ");
286
+ const reason = why.replace(/[\r\n]+/g, " ").replace(/::/g, ":").trim();
287
+ const line = `${decision} ${prefix}${reason ? ` :: ${reason}` : ""}`;
288
+ if (!prefix)
289
+ return { added: false, line };
290
+ const base = governanceDir(cwd, scope);
291
+ const file = join(base, "command-rules.md");
292
+ let text = "";
293
+ try {
294
+ text = await fs.readFile(file, "utf8");
295
+ }
296
+ catch {
297
+ /* none yet */
298
+ }
299
+ const same = (l) => l.trim().toLowerCase().replace(/\s*::.*$/, "") === `${decision} ${prefix}`.toLowerCase();
300
+ if (text.split(/\r?\n/).some(same))
301
+ return { added: false, line };
302
+ await fs.mkdir(base, { recursive: true });
303
+ const separator = text && !text.endsWith("\n") ? "\n" : "";
304
+ await fs.writeFile(file, `${text}${separator}${line}\n`, "utf8");
305
+ return { added: true, line };
306
+ }
307
+ /** The rule lines of command-rules.md, comments and blanks left out. */
308
+ export async function readCommandRuleLines(cwd, scope = "project") {
309
+ try {
310
+ const text = await fs.readFile(join(governanceDir(cwd, scope), "command-rules.md"), "utf8");
311
+ return text.split(/\r?\n/).map((l) => l.trim()).filter((l) => l && !l.startsWith("#"));
312
+ }
313
+ catch {
314
+ return [];
315
+ }
316
+ }
317
+ export async function removeCommandRule(cwd, line, scope = "project") {
318
+ return removeForbiddenLine(cwd, "command-rules.md", line, scope);
319
+ }
272
320
  //# sourceMappingURL=write.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"write.js","sourceRoot":"","sources":["../../src/governor/write.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"write.js","sourceRoot":"","sources":["../../src/governor/write.ts"],"names":[],"mappings":"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"}