@codyswann/lisa 4.25.3 → 4.26.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/dist/cli/check-learnings-budget-cmd.d.ts +2 -0
- package/dist/cli/check-learnings-budget-cmd.d.ts.map +1 -1
- package/dist/cli/check-learnings-budget-cmd.js +17 -6
- package/dist/cli/check-learnings-budget-cmd.js.map +1 -1
- package/dist/cli/gate-commands.d.ts +3 -1
- package/dist/cli/gate-commands.d.ts.map +1 -1
- package/dist/cli/gate-commands.js +5 -2
- package/dist/cli/gate-commands.js.map +1 -1
- package/dist/core/configured-learnings-path.d.ts +16 -0
- package/dist/core/configured-learnings-path.d.ts.map +1 -0
- package/dist/core/configured-learnings-path.js +42 -0
- package/dist/core/configured-learnings-path.js.map +1 -0
- package/dist/core/learnings-budget-check.d.ts +13 -3
- package/dist/core/learnings-budget-check.d.ts.map +1 -1
- package/dist/core/learnings-budget-check.js +41 -10
- package/dist/core/learnings-budget-check.js.map +1 -1
- package/dist/core/learnings-overflow-path.d.ts +11 -0
- package/dist/core/learnings-overflow-path.d.ts.map +1 -0
- package/dist/core/learnings-overflow-path.js +19 -0
- package/dist/core/learnings-overflow-path.js.map +1 -0
- package/dist/core/learnings-overflow.d.ts +1 -11
- package/dist/core/learnings-overflow.d.ts.map +1 -1
- package/dist/core/learnings-overflow.js +2 -17
- package/dist/core/learnings-overflow.js.map +1 -1
- package/dist/core/nightly-e2e-guard-behavior-certificate.js +2 -2
- package/dist/core/project-config.d.ts.map +1 -1
- package/dist/core/project-config.js +4 -38
- package/dist/core/project-config.js.map +1 -1
- package/dist/core/safe-relative-markdown-path.d.ts +10 -0
- package/dist/core/safe-relative-markdown-path.d.ts.map +1 -0
- package/dist/core/safe-relative-markdown-path.js +42 -0
- package/dist/core/safe-relative-markdown-path.js.map +1 -0
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +5 -1
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/package.json +3 -3
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-agy/plugin.json +1 -1
- package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-agy/plugin.json +1 -1
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/plugin.json +1 -1
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-agy/plugin.json +1 -1
- package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-agy/plugin.json +1 -1
- package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-agy/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
- package/scripts/check-learnings-budget.ts +96 -22
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
/** Injectable collaborators for {@link runCheckLearningsBudget}. */
|
|
2
2
|
export interface CheckLearningsBudgetDependencies {
|
|
3
|
+
/** Check the configured ledger's sibling overflow rather than the ledger. */
|
|
4
|
+
readonly overflow?: boolean;
|
|
3
5
|
/** Working directory used to resolve the config and default file. */
|
|
4
6
|
readonly cwd?: string;
|
|
5
7
|
/** Sink for the pass / missing informational line (defaults to stdout). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-learnings-budget-cmd.d.ts","sourceRoot":"","sources":["../../src/cli/check-learnings-budget-cmd.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"check-learnings-budget-cmd.d.ts","sourceRoot":"","sources":["../../src/cli/check-learnings-budget-cmd.ts"],"names":[],"mappings":"AA2BA,oEAAoE;AACpE,MAAM,WAAW,gCAAgC;IAC/C,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,qEAAqE;IACrE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C;AA0BD;;;;;;;;;GASG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,YAAY,GAAE,gCAAqC,GAClD,OAAO,CAAC,MAAM,CAAC,CAqCjB"}
|
|
@@ -15,20 +15,23 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import * as path from "node:path";
|
|
17
17
|
import { checkLearningsBudget, formatBudgetVerdict, formatDiagnosticPath, } from "../core/learnings-budget-check.js";
|
|
18
|
+
import { resolveLearningsOverflowFile } from "../core/learnings-overflow-path.js";
|
|
18
19
|
import { readProjectConfig, resolveProjectLearningsFile, } from "../core/project-config.js";
|
|
19
20
|
/**
|
|
20
21
|
* Resolve the learnings file to check: an explicit path argument wins;
|
|
21
22
|
* otherwise the project config's resolved learnings path (never hardcoded).
|
|
22
23
|
* @param fileArg - Optional explicit learnings file argument
|
|
23
24
|
* @param cwd - Working directory the run is anchored to
|
|
25
|
+
* @param overflow - Whether to resolve the configured ledger's overflow sibling
|
|
24
26
|
* @returns Absolute learnings file path
|
|
25
27
|
*/
|
|
26
|
-
async function resolveLearningsPath(fileArg, cwd) {
|
|
28
|
+
async function resolveLearningsPath(fileArg, cwd, overflow) {
|
|
27
29
|
if (fileArg !== undefined) {
|
|
28
30
|
return path.resolve(cwd, fileArg);
|
|
29
31
|
}
|
|
30
32
|
const config = await readProjectConfig(cwd);
|
|
31
|
-
|
|
33
|
+
const ledger = resolveProjectLearningsFile(config);
|
|
34
|
+
return path.resolve(cwd, overflow ? resolveLearningsOverflowFile(ledger) : ledger);
|
|
32
35
|
}
|
|
33
36
|
/**
|
|
34
37
|
* Run the budget check for one project and return the intended process exit
|
|
@@ -44,10 +47,18 @@ export async function runCheckLearningsBudget(fileArg, dependencies = {}) {
|
|
|
44
47
|
const cwd = dependencies.cwd ?? process.cwd();
|
|
45
48
|
const log = dependencies.log ?? ((message) => console.log(message));
|
|
46
49
|
const error = dependencies.error ?? ((message) => console.error(message));
|
|
47
|
-
const
|
|
48
|
-
|
|
50
|
+
const overflow = dependencies.overflow ?? false;
|
|
51
|
+
if (overflow && fileArg !== undefined) {
|
|
52
|
+
error("check-learnings-budget: --overflow resolves from .lisa.config.json and cannot be combined with an explicit path");
|
|
53
|
+
return 1;
|
|
54
|
+
}
|
|
55
|
+
const resolvedFile = await resolveLearningsPath(fileArg, cwd, overflow);
|
|
56
|
+
const surface = overflow ? "overflow" : "ledger";
|
|
57
|
+
const result = await checkLearningsBudget(resolvedFile, { surface });
|
|
49
58
|
if (result.kind === "missing") {
|
|
50
|
-
log(
|
|
59
|
+
log(overflow
|
|
60
|
+
? `no learnings overflow file at ${formatDiagnosticPath(resolvedFile)} — nothing to check`
|
|
61
|
+
: `no learnings file at ${formatDiagnosticPath(resolvedFile)} — nothing to check`);
|
|
51
62
|
return 0;
|
|
52
63
|
}
|
|
53
64
|
if (result.kind === "violation") {
|
|
@@ -60,7 +71,7 @@ export async function runCheckLearningsBudget(fileArg, dependencies = {}) {
|
|
|
60
71
|
// project's unrelated pull request for a state its change never created, and
|
|
61
72
|
// the remedy (retire or promote an entry) belongs to the gardener, not to
|
|
62
73
|
// whoever is mid-change. See describeLearningsSaturation.
|
|
63
|
-
log(formatBudgetVerdict(resolvedFile, result));
|
|
74
|
+
log(formatBudgetVerdict(resolvedFile, result, { surface }));
|
|
64
75
|
return 0;
|
|
65
76
|
}
|
|
66
77
|
//# sourceMappingURL=check-learnings-budget-cmd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-learnings-budget-cmd.js","sourceRoot":"","sources":["../../src/cli/check-learnings-budget-cmd.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"check-learnings-budget-cmd.js","sourceRoot":"","sources":["../../src/cli/check-learnings-budget-cmd.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC;AAClF,OAAO,EACL,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AAcnC;;;;;;;GAOG;AACH,KAAK,UAAU,oBAAoB,CACjC,OAA2B,EAC3B,GAAW,EACX,QAAiB;IAEjB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;IACnD,OAAO,IAAI,CAAC,OAAO,CACjB,GAAG,EACH,QAAQ,CAAC,CAAC,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CACzD,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,OAA2B,EAC3B,eAAiD,EAAE;IAEnD,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC9C,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC,OAAe,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5E,MAAM,KAAK,GACT,YAAY,CAAC,KAAK,IAAI,CAAC,CAAC,OAAe,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,IAAI,KAAK,CAAC;IAChD,IAAI,QAAQ,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACtC,KAAK,CACH,iHAAiH,CAClH,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;IACjD,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACrE,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,GAAG,CACD,QAAQ;YACN,CAAC,CAAC,iCAAiC,oBAAoB,CAAC,YAAY,CAAC,qBAAqB;YAC1F,CAAC,CAAC,wBAAwB,oBAAoB,CAAC,YAAY,CAAC,qBAAqB,CACpF,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAChC,KAAK,CACH,2BAA2B,oBAAoB,CAAC,YAAY,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,CAClF,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IACD,8EAA8E;IAC9E,6EAA6E;IAC7E,qEAAqE;IACrE,6EAA6E;IAC7E,0EAA0E;IAC1E,0DAA0D;IAC1D,GAAG,CAAC,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC5D,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -18,7 +18,9 @@ import type { FileUpstreamOptions } from "./file-upstream-cmd.js";
|
|
|
18
18
|
* that drive real `git merge`.
|
|
19
19
|
*/
|
|
20
20
|
export interface GateCommandDependencies {
|
|
21
|
-
runCheckLearningsBudget: (path: string | undefined
|
|
21
|
+
runCheckLearningsBudget: (path: string | undefined, options?: {
|
|
22
|
+
readonly overflow?: boolean;
|
|
23
|
+
}) => Promise<number>;
|
|
22
24
|
runFileUpstream: (options: FileUpstreamOptions) => Promise<number>;
|
|
23
25
|
}
|
|
24
26
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-commands.d.ts","sourceRoot":"","sources":["../../src/cli/gate-commands.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAWlE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,uBAAuB;IACtC,uBAAuB,EAAE,
|
|
1
|
+
{"version":3,"file":"gate-commands.d.ts","sourceRoot":"","sources":["../../src/cli/gate-commands.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAWlE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,uBAAuB;IACtC,uBAAuB,EAAE,CACvB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,KACtC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,eAAe,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACpE;AAED;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,uHAMrB,CAAC;AAyHX;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,uBAAuB,GACpC,IAAI,CAMN"}
|
|
@@ -25,8 +25,11 @@ function addCheckLearningsBudgetCommand(program, dependencies) {
|
|
|
25
25
|
.command("check-learnings-budget")
|
|
26
26
|
.description("Fail if the project learnings file exceeds its hard budget (missing file passes)")
|
|
27
27
|
.argument("[path]", "Learnings file to check (default: resolved from .lisa.config.json)")
|
|
28
|
-
.
|
|
29
|
-
|
|
28
|
+
.option("--overflow", "Check the configured ledger's sibling overflow (cannot be combined with path)")
|
|
29
|
+
.action(async (targetPath, options) => {
|
|
30
|
+
const code = await dependencies.runCheckLearningsBudget(targetPath, {
|
|
31
|
+
overflow: options.overflow ?? false,
|
|
32
|
+
});
|
|
30
33
|
if (code !== 0)
|
|
31
34
|
process.exitCode = code;
|
|
32
35
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-commands.js","sourceRoot":"","sources":["../../src/cli/gate-commands.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EACL,oBAAoB,GAErB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,iBAAiB,GAElB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"gate-commands.js","sourceRoot":"","sources":["../../src/cli/gate-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validate a `learnings.file` override with the canonical path policy.
|
|
3
|
+
* @param value - Raw configured path
|
|
4
|
+
* @param source - Config source for diagnostics
|
|
5
|
+
* @returns Validated cold, project-relative Markdown path
|
|
6
|
+
*/
|
|
7
|
+
export declare function validateConfiguredLearningsFile(value: unknown, source: string): string;
|
|
8
|
+
/**
|
|
9
|
+
* Resolve the learnings path from an untrusted parsed config without importing
|
|
10
|
+
* the full config writer and its package dependencies.
|
|
11
|
+
* @param parsed - Parsed `.lisa.config.json` value
|
|
12
|
+
* @param source - Config source for diagnostics
|
|
13
|
+
* @returns Validated configured path or the canonical default
|
|
14
|
+
*/
|
|
15
|
+
export declare function resolveLearningsFileFromRawConfig(parsed: unknown, source: string): string;
|
|
16
|
+
//# sourceMappingURL=configured-learnings-path.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configured-learnings-path.d.ts","sourceRoot":"","sources":["../../src/core/configured-learnings-path.ts"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,GACb,MAAM,CAaR;AAED;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,MAAM,GACb,MAAM,CAmBR"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/** Lightweight resolver for the configured project-learnings path. */
|
|
2
|
+
import { DEFAULT_PROJECT_LEARNINGS_FILE, eagerContextRejection, findEagerContextSurface, } from "./learnings-location.js";
|
|
3
|
+
import { validateSafeRelativeMarkdownPath } from "./safe-relative-markdown-path.js";
|
|
4
|
+
/**
|
|
5
|
+
* Validate a `learnings.file` override with the canonical path policy.
|
|
6
|
+
* @param value - Raw configured path
|
|
7
|
+
* @param source - Config source for diagnostics
|
|
8
|
+
* @returns Validated cold, project-relative Markdown path
|
|
9
|
+
*/
|
|
10
|
+
export function validateConfiguredLearningsFile(value, source) {
|
|
11
|
+
const safe = validateSafeRelativeMarkdownPath(value, source, "learnings.file");
|
|
12
|
+
const surface = findEagerContextSurface(safe);
|
|
13
|
+
if (surface !== undefined) {
|
|
14
|
+
throw new Error(`Invalid learnings.file in ${source}: ${eagerContextRejection(surface)}`);
|
|
15
|
+
}
|
|
16
|
+
return safe;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Resolve the learnings path from an untrusted parsed config without importing
|
|
20
|
+
* the full config writer and its package dependencies.
|
|
21
|
+
* @param parsed - Parsed `.lisa.config.json` value
|
|
22
|
+
* @param source - Config source for diagnostics
|
|
23
|
+
* @returns Validated configured path or the canonical default
|
|
24
|
+
*/
|
|
25
|
+
export function resolveLearningsFileFromRawConfig(parsed, source) {
|
|
26
|
+
if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) {
|
|
27
|
+
throw new Error(`Invalid .lisa.config.json at ${source}: expected JSON object`);
|
|
28
|
+
}
|
|
29
|
+
const learnings = parsed.learnings;
|
|
30
|
+
if (learnings === undefined)
|
|
31
|
+
return DEFAULT_PROJECT_LEARNINGS_FILE;
|
|
32
|
+
if (learnings === null ||
|
|
33
|
+
typeof learnings !== "object" ||
|
|
34
|
+
Array.isArray(learnings)) {
|
|
35
|
+
throw new Error(`Invalid learnings in ${source}: expected an object`);
|
|
36
|
+
}
|
|
37
|
+
const file = learnings.file;
|
|
38
|
+
return file === undefined
|
|
39
|
+
? DEFAULT_PROJECT_LEARNINGS_FILE
|
|
40
|
+
: validateConfiguredLearningsFile(file, source);
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=configured-learnings-path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configured-learnings-path.js","sourceRoot":"","sources":["../../src/core/configured-learnings-path.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,OAAO,EACL,8BAA8B,EAC9B,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;AAEpF;;;;;GAKG;AACH,MAAM,UAAU,+BAA+B,CAC7C,KAAc,EACd,MAAc;IAEd,MAAM,IAAI,GAAG,gCAAgC,CAC3C,KAAK,EACL,MAAM,EACN,gBAAgB,CACjB,CAAC;IACF,MAAM,OAAO,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,6BAA6B,MAAM,KAAK,qBAAqB,CAAC,OAAO,CAAC,EAAE,CACzE,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iCAAiC,CAC/C,MAAe,EACf,MAAc;IAEd,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CACb,gCAAgC,MAAM,wBAAwB,CAC/D,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAI,MAAkC,CAAC,SAAS,CAAC;IAChE,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,8BAA8B,CAAC;IACnE,IACE,SAAS,KAAK,IAAI;QAClB,OAAO,SAAS,KAAK,QAAQ;QAC7B,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EACxB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,sBAAsB,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,IAAI,GAAI,SAAqC,CAAC,IAAI,CAAC;IACzD,OAAO,IAAI,KAAK,SAAS;QACvB,CAAC,CAAC,8BAA8B;QAChC,CAAC,CAAC,+BAA+B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -31,14 +31,22 @@ export interface LearningsBudgetViolation {
|
|
|
31
31
|
}
|
|
32
32
|
/** Structured outcome of one budget check. */
|
|
33
33
|
export type LearningsBudgetResult = LearningsBudgetOk | LearningsBudgetMissing | LearningsBudgetViolation;
|
|
34
|
+
/** The learnings surface being judged, which owns its remediation language. */
|
|
35
|
+
export type LearningsBudgetSurface = "ledger" | "overflow";
|
|
36
|
+
/** Presentation policy for one budget check. Validation stays shared. */
|
|
37
|
+
export interface LearningsBudgetCheckOptions {
|
|
38
|
+
/** Surface whose operator action should be named in diagnostics. */
|
|
39
|
+
readonly surface?: LearningsBudgetSurface;
|
|
40
|
+
}
|
|
34
41
|
/**
|
|
35
42
|
* Check one already-resolved absolute learnings path against the shared hard
|
|
36
43
|
* budgets. Callers resolve the path (from config or an explicit argument) and
|
|
37
44
|
* decide the exit policy from the returned discriminated union.
|
|
38
45
|
* @param file - Absolute learnings file path
|
|
46
|
+
* @param options - Surface-specific presentation policy
|
|
39
47
|
* @returns Structured budget-check result
|
|
40
48
|
*/
|
|
41
|
-
export declare function checkLearningsBudget(file: string): Promise<LearningsBudgetResult>;
|
|
49
|
+
export declare function checkLearningsBudget(file: string, options?: LearningsBudgetCheckOptions): Promise<LearningsBudgetResult>;
|
|
42
50
|
/**
|
|
43
51
|
* Describe a ledger that is inside its hard budget but has no room left for a
|
|
44
52
|
* further learning, or `undefined` when room remains.
|
|
@@ -96,9 +104,10 @@ export declare function checkLearningsBudget(file: string): Promise<LearningsBud
|
|
|
96
104
|
* @param entryCount - Entries the document holds
|
|
97
105
|
* @param measuredTokens - Measured document size under the contract's measure
|
|
98
106
|
* @param maxTokens - Source-version byte ceiling used for saturation
|
|
107
|
+
* @param surface - Learnings surface whose operator action should be named
|
|
99
108
|
* @returns Single-line saturation clause, or undefined when room remains
|
|
100
109
|
*/
|
|
101
|
-
export declare function describeLearningsSaturation(entryCount: number, measuredTokens: number, maxTokens?: number): string | undefined;
|
|
110
|
+
export declare function describeLearningsSaturation(entryCount: number, measuredTokens: number, maxTokens?: number, surface?: LearningsBudgetSurface): string | undefined;
|
|
102
111
|
/**
|
|
103
112
|
* Render the one operator-facing verdict line for a within-budget document.
|
|
104
113
|
*
|
|
@@ -108,9 +117,10 @@ export declare function describeLearningsSaturation(entryCount: number, measured
|
|
|
108
117
|
* `passed` for a full ledger after the other stopped.
|
|
109
118
|
* @param file - Absolute learnings file path
|
|
110
119
|
* @param result - Successful budget-check result
|
|
120
|
+
* @param options - Surface-specific presentation policy
|
|
111
121
|
* @returns Single-line, terminal-safe verdict
|
|
112
122
|
*/
|
|
113
|
-
export declare function formatBudgetVerdict(file: string, result: LearningsBudgetOk): string;
|
|
123
|
+
export declare function formatBudgetVerdict(file: string, result: LearningsBudgetOk, options?: LearningsBudgetCheckOptions): string;
|
|
114
124
|
/**
|
|
115
125
|
* Render a caught failure without allowing filesystem paths or control bytes
|
|
116
126
|
* embedded in an Error message to forge additional terminal/CI output.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"learnings-budget-check.d.ts","sourceRoot":"","sources":["../../src/core/learnings-budget-check.ts"],"names":[],"mappings":"AA+BA,yDAAyD;AACzD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AAED,gFAAgF;AAChF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,8EAA8E;AAC9E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,8CAA8C;AAC9C,MAAM,MAAM,qBAAqB,GAC7B,iBAAiB,GACjB,sBAAsB,GACtB,wBAAwB,CAAC;AAE7B
|
|
1
|
+
{"version":3,"file":"learnings-budget-check.d.ts","sourceRoot":"","sources":["../../src/core/learnings-budget-check.ts"],"names":[],"mappings":"AA+BA,yDAAyD;AACzD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AAED,gFAAgF;AAChF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,8EAA8E;AAC9E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,8CAA8C;AAC9C,MAAM,MAAM,qBAAqB,GAC7B,iBAAiB,GACjB,sBAAsB,GACtB,wBAAwB,CAAC;AAE7B,+EAA+E;AAC/E,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE3D,yEAAyE;AACzE,MAAM,WAAW,2BAA2B;IAC1C,oEAAoE;IACpE,QAAQ,CAAC,OAAO,CAAC,EAAE,sBAAsB,CAAC;CAC3C;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,qBAAqB,CAAC,CAsChC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,SAAS,GAAE,MAAqC,EAChD,OAAO,GAAE,sBAAiC,GACzC,MAAM,GAAG,SAAS,CAiBpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,iBAAiB,EACzB,OAAO,GAAE,2BAAgC,GACxC,MAAM,CAQR;AAyED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAYxD;AAoCD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzD"}
|
|
@@ -24,9 +24,11 @@ import { validateLearningEntry } from "./learnings-entry.js";
|
|
|
24
24
|
* budgets. Callers resolve the path (from config or an explicit argument) and
|
|
25
25
|
* decide the exit policy from the returned discriminated union.
|
|
26
26
|
* @param file - Absolute learnings file path
|
|
27
|
+
* @param options - Surface-specific presentation policy
|
|
27
28
|
* @returns Structured budget-check result
|
|
28
29
|
*/
|
|
29
|
-
export async function checkLearningsBudget(file) {
|
|
30
|
+
export async function checkLearningsBudget(file, options = {}) {
|
|
31
|
+
const surface = options.surface ?? "ledger";
|
|
30
32
|
try {
|
|
31
33
|
const content = await readBoundedRegularFile(file, LEARNINGS_CONTRACT.maxTokens);
|
|
32
34
|
const measuredTokens = estimateLearningTokens(content);
|
|
@@ -44,14 +46,17 @@ export async function checkLearningsBudget(file) {
|
|
|
44
46
|
maxEntries: LEARNINGS_CONTRACT.maxEntries,
|
|
45
47
|
measuredTokens,
|
|
46
48
|
maxTokens: document.sourceMaxTokens,
|
|
47
|
-
saturation: describeLearningsSaturation(entries.length, measuredTokens, document.sourceMaxTokens),
|
|
49
|
+
saturation: describeLearningsSaturation(entries.length, measuredTokens, document.sourceMaxTokens, surface),
|
|
48
50
|
};
|
|
49
51
|
}
|
|
50
52
|
catch (error) {
|
|
51
53
|
const detail = formatErrorDetail(error);
|
|
52
54
|
return isFileNotFound(error)
|
|
53
55
|
? { kind: "missing", detail }
|
|
54
|
-
: {
|
|
56
|
+
: {
|
|
57
|
+
kind: "violation",
|
|
58
|
+
detail: withRemediation(detail, file, surface),
|
|
59
|
+
};
|
|
55
60
|
}
|
|
56
61
|
}
|
|
57
62
|
/**
|
|
@@ -111,9 +116,10 @@ export async function checkLearningsBudget(file) {
|
|
|
111
116
|
* @param entryCount - Entries the document holds
|
|
112
117
|
* @param measuredTokens - Measured document size under the contract's measure
|
|
113
118
|
* @param maxTokens - Source-version byte ceiling used for saturation
|
|
119
|
+
* @param surface - Learnings surface whose operator action should be named
|
|
114
120
|
* @returns Single-line saturation clause, or undefined when room remains
|
|
115
121
|
*/
|
|
116
|
-
export function describeLearningsSaturation(entryCount, measuredTokens, maxTokens = LEARNINGS_CONTRACT.maxTokens) {
|
|
122
|
+
export function describeLearningsSaturation(entryCount, measuredTokens, maxTokens = LEARNINGS_CONTRACT.maxTokens, surface = "ledger") {
|
|
117
123
|
const averageEntryAllowance = maxTokens === LEARNINGS_CONTRACT.maxTokens
|
|
118
124
|
? PER_ENTRY_BYTE_ALLOWANCE
|
|
119
125
|
: Math.floor(maxTokens / LEARNINGS_CONTRACT.maxEntries);
|
|
@@ -125,6 +131,9 @@ export function describeLearningsSaturation(entryCount, measuredTokens, maxToken
|
|
|
125
131
|
const reason = entriesFull
|
|
126
132
|
? `every one of the ${LEARNINGS_CONTRACT.maxEntries} entry slots is taken`
|
|
127
133
|
: `fewer than ${averageEntryAllowance} bytes remain, less than one average entry`;
|
|
134
|
+
if (surface === "overflow") {
|
|
135
|
+
return `${reason}, so the next dropped learning cannot be preserved here. Drain the overflow with the gardener (\`lisa learnings-overflow\`); never trim the buffer by hand or raise the cap`;
|
|
136
|
+
}
|
|
128
137
|
return `${reason}, so the next learning captured here will be rejected. Retire or promote an entry with the gardener (\`/lisa:learnings:audit\`); raising the cap is not the remedy`;
|
|
129
138
|
}
|
|
130
139
|
/**
|
|
@@ -136,13 +145,16 @@ export function describeLearningsSaturation(entryCount, measuredTokens, maxToken
|
|
|
136
145
|
* `passed` for a full ledger after the other stopped.
|
|
137
146
|
* @param file - Absolute learnings file path
|
|
138
147
|
* @param result - Successful budget-check result
|
|
148
|
+
* @param options - Surface-specific presentation policy
|
|
139
149
|
* @returns Single-line, terminal-safe verdict
|
|
140
150
|
*/
|
|
141
|
-
export function formatBudgetVerdict(file, result) {
|
|
151
|
+
export function formatBudgetVerdict(file, result, options = {}) {
|
|
152
|
+
const surface = options.surface ?? "ledger";
|
|
153
|
+
const label = surface === "overflow" ? "learnings overflow budget" : "learnings budget";
|
|
142
154
|
const counts = `(${result.entryCount}/${result.maxEntries} entries, ${result.measuredTokens}/${result.maxTokens} maxTokens)`;
|
|
143
155
|
return result.saturation === undefined
|
|
144
|
-
? `${formatDiagnosticPath(file)}:
|
|
145
|
-
: `${formatDiagnosticPath(file)}:
|
|
156
|
+
? `${formatDiagnosticPath(file)}: ${label} passed ${counts}`
|
|
157
|
+
: `${formatDiagnosticPath(file)}: ${label} saturated ${counts} — ${result.saturation}`;
|
|
146
158
|
}
|
|
147
159
|
/**
|
|
148
160
|
* Append a terse, actionable remediation clause to a file-level budget breach
|
|
@@ -152,10 +164,11 @@ export function formatBudgetVerdict(file, result) {
|
|
|
152
164
|
* and are left verbatim, as are non-budget filesystem errors.
|
|
153
165
|
* @param detail - Terminal-safe diagnostic detail
|
|
154
166
|
* @param file - Absolute learnings file path
|
|
167
|
+
* @param surface - Learnings surface whose remediation should be named
|
|
155
168
|
* @returns The detail, with a remediation clause when one applies
|
|
156
169
|
*/
|
|
157
|
-
function withRemediation(detail, file) {
|
|
158
|
-
if (detail.startsWith("Invalid learning entry")) {
|
|
170
|
+
function withRemediation(detail, file, surface) {
|
|
171
|
+
if (detail.startsWith("Invalid learning entry") && surface === "ledger") {
|
|
159
172
|
return detail;
|
|
160
173
|
}
|
|
161
174
|
const target = formatDiagnosticPath(file);
|
|
@@ -163,7 +176,13 @@ function withRemediation(detail, file) {
|
|
|
163
176
|
// block, so this failure often ALSO breaches a budget, and "shorten entries"
|
|
164
177
|
// is the wrong instruction for it.
|
|
165
178
|
if (detail.includes(CONFLICT_MARKER_DIAGNOSIS)) {
|
|
166
|
-
|
|
179
|
+
const repair = `${detail} — recompact ${target} from both conflicting versions, then register the union merge driver (\`lisa install-merge-driver\`) so concurrent learning branches merge instead of conflicting`;
|
|
180
|
+
return surface === "overflow"
|
|
181
|
+
? `${repair}; after repair, drain the overflow with the gardener (\`lisa learnings-overflow\`)`
|
|
182
|
+
: repair;
|
|
183
|
+
}
|
|
184
|
+
if (surface === "overflow") {
|
|
185
|
+
return withOverflowRemediation(detail, target);
|
|
167
186
|
}
|
|
168
187
|
if (detail.includes("maxEntries")) {
|
|
169
188
|
return `${detail} — consolidate or remove entries in ${target} to fit the learnings budget`;
|
|
@@ -176,6 +195,18 @@ function withRemediation(detail, file) {
|
|
|
176
195
|
}
|
|
177
196
|
return detail;
|
|
178
197
|
}
|
|
198
|
+
/**
|
|
199
|
+
* Add overflow-specific recovery without changing the shared violation.
|
|
200
|
+
* @param detail - Terminal-safe diagnostic detail
|
|
201
|
+
* @param target - Terminal-safe overflow path
|
|
202
|
+
* @returns Detail with the appropriate overflow recovery action
|
|
203
|
+
*/
|
|
204
|
+
function withOverflowRemediation(detail, target) {
|
|
205
|
+
if (detail.includes("maxEntries") || detail.includes("maxTokens")) {
|
|
206
|
+
return `${detail} — drain entries from ${target} with the gardener (\`lisa learnings-overflow\`); never hand-edit or trim the overflow, and do not raise the cap`;
|
|
207
|
+
}
|
|
208
|
+
return `${detail} — restore ${target} through the learnings writer, then drain it with the gardener (\`lisa learnings-overflow\`); never hand-edit or trim the overflow`;
|
|
209
|
+
}
|
|
179
210
|
/**
|
|
180
211
|
* Whether a caught failure is a "file does not exist" filesystem error, which
|
|
181
212
|
* callers treat as an expected, silent condition rather than a violation.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"learnings-budget-check.js","sourceRoot":"","sources":["../../src/core/learnings-budget-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,IAAI,EAAmB,MAAM,kBAAkB,CAAC;AACzD,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"learnings-budget-check.js","sourceRoot":"","sources":["../../src/core/learnings-budget-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Derive the overflow path from a project's configured ledger path.
|
|
3
|
+
*
|
|
4
|
+
* This leaf has no package dependencies so source-only CI can resolve the
|
|
5
|
+
* overflow without importing the writer, lock, or filesystem transaction
|
|
6
|
+
* graph in a job that deliberately performs no dependency install.
|
|
7
|
+
* @param learningsFile - Project-relative ledger path
|
|
8
|
+
* @returns Project-relative overflow path
|
|
9
|
+
*/
|
|
10
|
+
export declare function resolveLearningsOverflowFile(learningsFile: string): string;
|
|
11
|
+
//# sourceMappingURL=learnings-overflow-path.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"learnings-overflow-path.d.ts","sourceRoot":"","sources":["../../src/core/learnings-overflow-path.ts"],"names":[],"mappings":"AAMA;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAI1E"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/** Pure location rule for the learnings overflow sibling. */
|
|
2
|
+
import * as path from "node:path";
|
|
3
|
+
/** Suffix distinguishing the overflow from the ledger it belongs to. */
|
|
4
|
+
const OVERFLOW_SUFFIX = ".overflow";
|
|
5
|
+
/**
|
|
6
|
+
* Derive the overflow path from a project's configured ledger path.
|
|
7
|
+
*
|
|
8
|
+
* This leaf has no package dependencies so source-only CI can resolve the
|
|
9
|
+
* overflow without importing the writer, lock, or filesystem transaction
|
|
10
|
+
* graph in a job that deliberately performs no dependency install.
|
|
11
|
+
* @param learningsFile - Project-relative ledger path
|
|
12
|
+
* @returns Project-relative overflow path
|
|
13
|
+
*/
|
|
14
|
+
export function resolveLearningsOverflowFile(learningsFile) {
|
|
15
|
+
const extension = path.posix.extname(learningsFile);
|
|
16
|
+
const base = learningsFile.slice(0, learningsFile.length - extension.length);
|
|
17
|
+
return `${base}${OVERFLOW_SUFFIX}${extension}`;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=learnings-overflow-path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"learnings-overflow-path.js","sourceRoot":"","sources":["../../src/core/learnings-overflow-path.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,wEAAwE;AACxE,MAAM,eAAe,GAAG,WAAW,CAAC;AAEpC;;;;;;;;GAQG;AACH,MAAM,UAAU,4BAA4B,CAAC,aAAqB;IAChE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAC7E,OAAO,GAAG,IAAI,GAAG,eAAe,GAAG,SAAS,EAAE,CAAC;AACjD,CAAC"}
|
|
@@ -1,16 +1,6 @@
|
|
|
1
1
|
import { type LearningEntry } from "./learnings-contract.js";
|
|
2
2
|
import { LearningsBudgetError } from "./learnings-document.js";
|
|
3
|
-
|
|
4
|
-
* Derive the overflow path from a project's configured ledger path.
|
|
5
|
-
*
|
|
6
|
-
* Derived rather than separately configurable so a project that relocates its
|
|
7
|
-
* ledger through `learnings.file` cannot end up with the two halves of one
|
|
8
|
-
* mechanism in different directories — and so there is no second config key to
|
|
9
|
-
* validate, contain, and keep in sync.
|
|
10
|
-
* @param learningsFile - Project-relative ledger path
|
|
11
|
-
* @returns Project-relative overflow path
|
|
12
|
-
*/
|
|
13
|
-
export declare function resolveLearningsOverflowFile(learningsFile: string): string;
|
|
3
|
+
export { resolveLearningsOverflowFile } from "./learnings-overflow-path.js";
|
|
14
4
|
/** Entries currently awaiting drain, and where they live. */
|
|
15
5
|
export interface LearningsOverflowContents {
|
|
16
6
|
/** Absolute overflow path, whether or not the file exists yet. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"learnings-overflow.d.ts","sourceRoot":"","sources":["../../src/core/learnings-overflow.ts"],"names":[],"mappings":"AAkDA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EACL,oBAAoB,EAIrB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"learnings-overflow.d.ts","sourceRoot":"","sources":["../../src/core/learnings-overflow.ts"],"names":[],"mappings":"AAkDA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EACL,oBAAoB,EAIrB,MAAM,yBAAyB,CAAC;AAejC,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AA6C5E,6DAA6D;AAC7D,MAAM,WAAW,yBAAyB;IACxC,kEAAkE;IAClE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;CAC5C;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,yBAAyB,CAAC,CAIpC;AAED,kEAAkE;AAClE,MAAM,WAAW,sBAAsB;IACrC,8BAA8B;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,0CAA0C;IAC1C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,SAAS,MAAM,EAAE,GACrB,OAAO,CAAC,sBAAsB,CAAC,CAwBjC;AAoHD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,uBAAuB,CAC3C,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,KAAK,CAAC,CA0BhB"}
|
|
@@ -53,23 +53,8 @@ import { validateLearningEntry } from "./learnings-entry.js";
|
|
|
53
53
|
import { assertLearningsUnchanged, assertSafeLearningParents, readExistingLearnings, resolveSafeLearningTarget, } from "./learnings-file-safety.js";
|
|
54
54
|
import { withFileTargetLock } from "./learnings-lock.js";
|
|
55
55
|
import { readProjectConfig, resolveProjectLearningsFile, } from "./project-config.js";
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Derive the overflow path from a project's configured ledger path.
|
|
60
|
-
*
|
|
61
|
-
* Derived rather than separately configurable so a project that relocates its
|
|
62
|
-
* ledger through `learnings.file` cannot end up with the two halves of one
|
|
63
|
-
* mechanism in different directories — and so there is no second config key to
|
|
64
|
-
* validate, contain, and keep in sync.
|
|
65
|
-
* @param learningsFile - Project-relative ledger path
|
|
66
|
-
* @returns Project-relative overflow path
|
|
67
|
-
*/
|
|
68
|
-
export function resolveLearningsOverflowFile(learningsFile) {
|
|
69
|
-
const extension = path.posix.extname(learningsFile);
|
|
70
|
-
const base = learningsFile.slice(0, learningsFile.length - extension.length);
|
|
71
|
-
return `${base}${OVERFLOW_SUFFIX}${extension}`;
|
|
72
|
-
}
|
|
56
|
+
import { resolveLearningsOverflowFile } from "./learnings-overflow-path.js";
|
|
57
|
+
export { resolveLearningsOverflowFile } from "./learnings-overflow-path.js";
|
|
73
58
|
/**
|
|
74
59
|
* Resolve and contain the overflow target for one project.
|
|
75
60
|
* @param projectRoot - Absolute path to the host project root
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"learnings-overflow.js","sourceRoot":"","sources":["../../src/core/learnings-overflow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EACL,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"learnings-overflow.js","sourceRoot":"","sources":["../../src/core/learnings-overflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,9 +13,9 @@ export const NIGHTLY_E2E_GUARD_CERTIFICATE_SCHEMA_VERSION = 1;
|
|
|
13
13
|
export const NIGHTLY_E2E_GUARD_BEHAVIOR_CERTIFICATES = Object.freeze({
|
|
14
14
|
"11608828a0ca51d4505e37742f8120102e68e081a92e054b631876b8d3a6d0bc": Object.freeze({
|
|
15
15
|
contractVersion: "1.7.0",
|
|
16
|
-
packageVersions: Object.freeze(["4.
|
|
16
|
+
packageVersions: Object.freeze(["4.26.0"]),
|
|
17
17
|
provenances: Object.freeze([
|
|
18
|
-
"workspace package @codyswann/lisa@4.
|
|
18
|
+
"workspace package @codyswann/lisa@4.26.0 (typescript/copy-overwrite/scripts/check-nightly-e2e-health.mjs)",
|
|
19
19
|
]),
|
|
20
20
|
}),
|
|
21
21
|
"1c79ec49e5f4a3bba700bc1d97e9fc0f4f1799dec3acdf2bed5e3e5b866a0efd": Object.freeze({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-config.d.ts","sourceRoot":"","sources":["../../src/core/project-config.ts"],"names":[],"mappings":"AAYA,OAAO,EAML,KAAK,OAAO,EACb,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"project-config.d.ts","sourceRoot":"","sources":["../../src/core/project-config.ts"],"names":[],"mappings":"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"}
|