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.
- package/README.md +36 -4
- package/dist/alternator/chassis/lsp.js +36 -4
- package/dist/alternator/chassis/lsp.js.map +1 -1
- package/dist/alternator/chassis/provision.js +54 -6
- package/dist/alternator/chassis/provision.js.map +1 -1
- package/dist/alternator/chassis/servers.js +34 -21
- package/dist/alternator/chassis/servers.js.map +1 -1
- package/dist/cli/App.js +2 -2
- package/dist/cli/App.js.map +1 -1
- package/dist/cli/attachments.js +37 -1
- package/dist/cli/attachments.js.map +1 -1
- package/dist/cli/bootstrap.js +25 -3
- package/dist/cli/bootstrap.js.map +1 -1
- package/dist/cli/components/MarathonBox.js +2 -1
- package/dist/cli/components/MarathonBox.js.map +1 -1
- package/dist/cli/marathonUi.js +2 -0
- package/dist/cli/marathonUi.js.map +1 -1
- package/dist/core/permissions.js +26 -1
- package/dist/core/permissions.js.map +1 -1
- package/dist/core/spendView.js +8 -1
- package/dist/core/spendView.js.map +1 -1
- package/dist/core/turnRunner.js +28 -2
- package/dist/core/turnRunner.js.map +1 -1
- package/dist/drivers/deepseek/inlineTools.js +36 -2
- package/dist/drivers/deepseek/inlineTools.js.map +1 -1
- package/dist/drivers/ollama/endpoint.js +25 -0
- package/dist/drivers/ollama/endpoint.js.map +1 -1
- package/dist/dynamo/engine.js +408 -88
- package/dist/dynamo/engine.js.map +1 -1
- package/dist/dynamo/guard.js +11 -4
- package/dist/dynamo/guard.js.map +1 -1
- package/dist/dynamo/hooks.js +209 -0
- package/dist/dynamo/hooks.js.map +1 -0
- package/dist/dynamo/marathon.js +67 -10
- package/dist/dynamo/marathon.js.map +1 -1
- package/dist/dynamo/todoReminder.js +26 -0
- package/dist/dynamo/todoReminder.js.map +1 -0
- package/dist/governor/forbidden.js +19 -0
- package/dist/governor/forbidden.js.map +1 -1
- package/dist/governor/freshness.js +1 -1
- package/dist/governor/freshness.js.map +1 -1
- package/dist/governor/index.js +8 -1
- package/dist/governor/index.js.map +1 -1
- package/dist/governor/rules.js +1 -0
- package/dist/governor/rules.js.map +1 -1
- package/dist/governor/write.js +50 -2
- package/dist/governor/write.js.map +1 -1
- package/dist/mcp/config.js +0 -41
- package/dist/mcp/config.js.map +1 -1
- package/dist/mcp/projectApproval.js +117 -0
- package/dist/mcp/projectApproval.js.map +1 -0
- package/dist/mcp/resultStore.js +19 -5
- package/dist/mcp/resultStore.js.map +1 -1
- package/dist/mcp/transport/stdio.js +4 -1
- package/dist/mcp/transport/stdio.js.map +1 -1
- package/dist/memory/allMetas.js +1 -1
- package/dist/memory/allMetas.js.map +1 -1
- package/dist/memory/autoMemory.js +1 -0
- package/dist/memory/autoMemory.js.map +1 -1
- package/dist/memory/clearedArchive.js +120 -0
- package/dist/memory/clearedArchive.js.map +1 -0
- package/dist/memory/compaction.js +154 -14
- package/dist/memory/compaction.js.map +1 -1
- package/dist/memory/counters.js +64 -0
- package/dist/memory/counters.js.map +1 -0
- package/dist/memory/projectNotes.js +61 -13
- package/dist/memory/projectNotes.js.map +1 -1
- package/dist/memory/rewind.js +6 -2
- package/dist/memory/rewind.js.map +1 -1
- package/dist/memory/session.js +13 -5
- package/dist/memory/session.js.map +1 -1
- package/dist/memory/sessionMemory.js +6 -2
- package/dist/memory/sessionMemory.js.map +1 -1
- package/dist/memory/store.js +3 -0
- package/dist/memory/store.js.map +1 -1
- package/dist/memory/workingSet.js +0 -375
- package/dist/memory/workingSet.js.map +1 -1
- package/dist/project/context.js +54 -7
- package/dist/project/context.js.map +1 -1
- package/dist/tools/approval.js +19 -4
- package/dist/tools/approval.js.map +1 -1
- package/dist/tools/backgroundShells.js +8 -1
- package/dist/tools/backgroundShells.js.map +1 -1
- package/dist/tools/browser.js +2 -1
- package/dist/tools/browser.js.map +1 -1
- package/dist/tools/checkpoints.js +28 -4
- package/dist/tools/checkpoints.js.map +1 -1
- package/dist/tools/childEnv.js +50 -0
- package/dist/tools/childEnv.js.map +1 -0
- package/dist/tools/codeIntel.js +4 -1
- package/dist/tools/codeIntel.js.map +1 -1
- package/dist/tools/commandParse.js +238 -0
- package/dist/tools/commandParse.js.map +1 -0
- package/dist/tools/commandPolicy.js +283 -0
- package/dist/tools/commandPolicy.js.map +1 -0
- package/dist/tools/edit.js +2 -1
- package/dist/tools/edit.js.map +1 -1
- package/dist/tools/editRipple.js +18 -3
- package/dist/tools/editRipple.js.map +1 -1
- package/dist/tools/editTarget.js +11 -6
- package/dist/tools/editTarget.js.map +1 -1
- package/dist/tools/governorTools.js +61 -1
- package/dist/tools/governorTools.js.map +1 -1
- package/dist/tools/grep.js +13 -5
- package/dist/tools/grep.js.map +1 -1
- package/dist/tools/guard.js +249 -2
- package/dist/tools/guard.js.map +1 -1
- package/dist/tools/invisible.js +62 -0
- package/dist/tools/invisible.js.map +1 -0
- package/dist/tools/killTree.js +3 -0
- package/dist/tools/killTree.js.map +1 -1
- package/dist/tools/readFile.js +2 -2
- package/dist/tools/readFile.js.map +1 -1
- package/dist/tools/readSymbol.js +5 -24
- package/dist/tools/readSymbol.js.map +1 -1
- package/dist/tools/replaceSymbol.js +1 -1
- package/dist/tools/replaceSymbol.js.map +1 -1
- package/dist/tools/ripgrepShell.js +56 -0
- package/dist/tools/ripgrepShell.js.map +1 -0
- package/dist/tools/runCommand.js +74 -15
- package/dist/tools/runCommand.js.map +1 -1
- package/dist/tools/runsLater.js +50 -0
- package/dist/tools/runsLater.js.map +1 -0
- package/dist/tools/serverConsent.js +27 -0
- package/dist/tools/serverConsent.js.map +1 -0
- package/dist/tools/ui.js +27 -0
- package/dist/tools/ui.js.map +1 -1
- package/dist/tools/untrusted.js +22 -1
- package/dist/tools/untrusted.js.map +1 -1
- package/dist/tools/viewImage.js +2 -2
- package/dist/tools/viewImage.js.map +1 -1
- package/dist/tools/webFetch.js +76 -8
- package/dist/tools/webFetch.js.map +1 -1
- package/dist/tools/workspace.js +87 -24
- package/dist/tools/workspace.js.map +1 -1
- package/dist/tools/writeFile.js +9 -4
- package/dist/tools/writeFile.js.map +1 -1
- 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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"}
|
package/dist/dynamo/marathon.js
CHANGED
|
@@ -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 {
|
|
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
|
|
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 =
|
|
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":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;
|
|
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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE3D,qEAAqE;AACrE,MAAM,eAAe,GAAG,CAAC,cAAc,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,cAAc,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"freshness.js","sourceRoot":"","sources":["../../src/governor/freshness.ts"],"names":[],"mappings":"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"}
|
package/dist/governor/index.js
CHANGED
|
@@ -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":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/governor/index.ts"],"names":[],"mappings":"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"}
|
package/dist/governor/rules.js
CHANGED
|
@@ -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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"}
|
package/dist/governor/write.js
CHANGED
|
@@ -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 {
|
|
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":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAExE,OAAO,EAAE,aAAa,EAAwB,MAAM,YAAY,CAAC;AAEjE,0EAA0E;AAC1E,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,OAAO,CACL,IAAI;SACD,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,MAAM,CAC1B,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,OAAO,CAAC,KAAa;IAC5B,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAC/C,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,WAAW,CAAC,MAA0C;IAC7D,MAAM,KAAK,GAAa,CAAC,KAAK,CAAC,CAAC;IAChC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QACjC,IAAI,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACtB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,GAAW,EACX,IAAY,EACZ,IAAY,EACZ,WAAW,GAAG,EAAE,EAChB,QAAkB,EAAE;IAEpB,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,WAAW,CAAC;QACzB,IAAI;QACJ,WAAW;QACX,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;KACxB,CAAC,CAAC;IACH,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,MAAM,GAAG,IAAI,IAAI,EAAE,MAAM,CAAC,CAAC;IACvD,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAClH,CAAC;AAYD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAW,EAAE,KAAe;IAC3D,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAClD,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEzC,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IACjD,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,WAAW,CAAC;QACzB,IAAI,EAAE,mDAAmD;QACzD,WAAW;QACX,WAAW,EAAE,SAAS;QACtB,eAAe,EAAE,YAAY;QAC7B,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;KACrC,CAAC,CAAC;IACH,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,GAAG,MAAM,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,MAAM,CAAC,CAAC;IAE9E,OAAO;QACL,IAAI;QACJ,WAAW;QACX,SAAS;QACT,GAAG;QACH,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzE,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAW,EACX,OAAe,EACf,QAAyB,SAAS;IAElC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5E,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IAE9D,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACxC,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,yBAAyB;IAC3B,CAAC;IACD,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IAE5F,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,IAAI,EAAE,MAAM,CAAC,CAAC;IACvE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,GAAW,EACX,IAAY,EACZ,QAAyB,SAAS;IAElC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IAE9D,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC;IAClD,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,mCAAmC;IACrC,CAAC;IACD,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IAEpG,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,IAAI,EAAE,MAAM,CAAC,CAAC;IACvE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AAC9C,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,GAAW,EACX,OAAe,EACf,QAAyB,SAAS;IAElC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAClC,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IAE9D,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;IACjD,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,kCAAkC;IACpC,CAAC;IACD,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IAEpG,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,IAAI,EAAE,MAAM,CAAC,CAAC;IACvE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AAC9C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAW,EAAE,IAAY;IACxD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnE,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,uFAAuF;AACvF,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAW,EAAE,IAAY;IACzD,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,yFAAyF;AACzF,KAAK,UAAU,mBAAmB,CAAC,GAAW,EAAE,QAAgB,EAAE,KAAa,EAAE,QAAyB,SAAS;IACjH,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC;IACvD,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClC,kFAAkF;IAClF,kFAAkF;IAClF,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,MAAM,CAAC,CAAC;IAC5D,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC/C,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;IAClD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,GAAW,EAAE,OAAe,EAAE,QAAyB,SAAS;IACxG,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC1E,OAAO,mBAAmB,CAAC,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,GAAW,EAAE,OAAe,EAAE,QAAyB,SAAS;IAC3G,OAAO,mBAAmB,CAAC,GAAG,EAAE,uBAAuB,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,GAAW,EAAE,IAAY,EAAE,QAAyB,SAAS;IACxG,OAAO,mBAAmB,CAAC,GAAG,EAAE,wBAAwB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACzE,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,GAAW,EACX,IAAY,EACZ,QAAyB,SAAS;IAElC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IAC9D,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAC7C,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,cAAc;IAChB,CAAC;IACD,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IACpG,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,IAAI,EAAE,MAAM,CAAC,CAAC;IACvE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,GAAW,EAAE,IAAY,EAAE,QAAyB,SAAS;IACrG,OAAO,mBAAmB,CAAC,GAAG,EAAE,mBAAmB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACpE,CAAC"}
|
|
1
|
+
{"version":3,"file":"write.js","sourceRoot":"","sources":["../../src/governor/write.ts"],"names":[],"mappings":"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"}
|