@codyswann/lisa 4.20.0 → 4.21.1
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/all/copy-contents/.gitattributes +2 -1
- package/all/create-only/.lisa/PROJECT_LEARNINGS.md +1 -1
- package/dist/core/learnings-alias.d.ts +26 -45
- package/dist/core/learnings-alias.d.ts.map +1 -1
- package/dist/core/learnings-alias.js +29 -48
- package/dist/core/learnings-alias.js.map +1 -1
- package/dist/core/learnings-budget-check.d.ts +2 -1
- package/dist/core/learnings-budget-check.d.ts.map +1 -1
- package/dist/core/learnings-budget-check.js +13 -11
- package/dist/core/learnings-budget-check.js.map +1 -1
- package/dist/core/learnings-contract.d.ts +27 -10
- package/dist/core/learnings-contract.d.ts.map +1 -1
- package/dist/core/learnings-contract.js +37 -9
- package/dist/core/learnings-contract.js.map +1 -1
- package/dist/core/learnings-document.d.ts +20 -1
- package/dist/core/learnings-document.d.ts.map +1 -1
- package/dist/core/learnings-document.js +81 -14
- package/dist/core/learnings-document.js.map +1 -1
- package/dist/core/learnings-entry.d.ts +11 -1
- package/dist/core/learnings-entry.d.ts.map +1 -1
- package/dist/core/learnings-entry.js +98 -24
- package/dist/core/learnings-entry.js.map +1 -1
- package/dist/core/learnings-merge-driver.d.ts +4 -2
- package/dist/core/learnings-merge-driver.d.ts.map +1 -1
- package/dist/core/learnings-merge-driver.js +6 -3
- package/dist/core/learnings-merge-driver.js.map +1 -1
- package/dist/core/learnings-merge.d.ts.map +1 -1
- package/dist/core/learnings-merge.js +96 -10
- package/dist/core/learnings-merge.js.map +1 -1
- package/dist/core/learnings-overflow.d.ts.map +1 -1
- package/dist/core/learnings-overflow.js +72 -3
- package/dist/core/learnings-overflow.js.map +1 -1
- package/dist/core/learnings-supersede.d.ts +56 -0
- package/dist/core/learnings-supersede.d.ts.map +1 -0
- package/dist/core/learnings-supersede.js +199 -0
- package/dist/core/learnings-supersede.js.map +1 -0
- package/dist/core/learnings-writer.d.ts +9 -7
- package/dist/core/learnings-writer.d.ts.map +1 -1
- package/dist/core/learnings-writer.js +31 -58
- package/dist/core/learnings-writer.js.map +1 -1
- package/dist/core/learnings.d.ts +3 -0
- package/dist/core/learnings.d.ts.map +1 -1
- package/dist/core/learnings.js +3 -0
- package/dist/core/learnings.js.map +1 -1
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +17 -7
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/package.json +3 -2
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-debrief-apply/SKILL.md +5 -4
- package/plugins/lisa/.codex-plugin/skills/lisa-persist-learning/SKILL.md +2 -2
- package/plugins/lisa/.codex-plugin/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs +1 -0
- package/plugins/lisa/agents/learner.md +7 -6
- package/plugins/lisa/rules/reference/project-learnings.md +34 -1
- package/plugins/lisa/skills/lisa-debrief-apply/SKILL.md +5 -4
- package/plugins/lisa/skills/lisa-persist-learning/SKILL.md +2 -2
- package/plugins/lisa/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs +1 -0
- package/plugins/lisa-agy/agents/learner.md +7 -6
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/skills/lisa-debrief-apply/SKILL.md +5 -4
- package/plugins/lisa-agy/skills/lisa-persist-learning/SKILL.md +2 -2
- package/plugins/lisa-agy/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs +1 -0
- 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-copilot/agents/learner.agent.md +7 -6
- package/plugins/lisa-copilot/rules/reference/project-learnings.md +34 -1
- package/plugins/lisa-copilot/skills/lisa-debrief-apply/SKILL.md +5 -4
- package/plugins/lisa-copilot/skills/lisa-persist-learning/SKILL.md +2 -2
- package/plugins/lisa-copilot/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs +1 -0
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/agents/learner.md +7 -6
- package/plugins/lisa-cursor/rules/project-learnings-reference.mdc +34 -1
- package/plugins/lisa-cursor/skills/lisa-debrief-apply/SKILL.md +5 -4
- package/plugins/lisa-cursor/skills/lisa-persist-learning/SKILL.md +2 -2
- package/plugins/lisa-cursor/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs +1 -0
- 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/plugins/src/base/agents/learner.md +7 -6
- package/plugins/src/base/rules/reference/project-learnings.md +34 -1
- package/plugins/src/base/skills/lisa-debrief-apply/SKILL.md +5 -4
- package/plugins/src/base/skills/lisa-persist-learning/SKILL.md +2 -2
- package/plugins/src/base/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs +1 -0
- package/scripts/verify-learner-frontmatter-built.mjs +1 -1
- package/scripts/verify-packed-learnings-contract.mjs +268 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"learnings-writer.d.ts","sourceRoot":"","sources":["../../src/core/learnings-writer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"learnings-writer.d.ts","sourceRoot":"","sources":["../../src/core/learnings-writer.ts"],"names":[],"mappings":"AAwBA,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,0BAA0B,CAAC;AAMlC,gFAAgF;AAChF,MAAM,WAAW,2BAA2B;IAC1C,2EAA2E;IAC3E,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACnD,2EAA2E;IAC3E,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAC1B,OAAO,EAAE,SAAS,oBAAoB,EAAE,KACrC,IAAI,CAAC;IACV;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,KAAK,IAAI,CAAC;IAC9D;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,KAAK,IAAI,CAAC;CACrE;AAED;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,OAAO,GACjB,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,2BAA2B,CAC/C,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,OAAO,EAClB,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,MAAM,CAAC,CA8BjB;AAyED,2DAA2D;AAC3D,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;AAE5E,uEAAuE;AACvE,MAAM,WAAW,qBAAqB;IACpC,8EAA8E;IAC9E,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IACvC,gDAAgD;IAChD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,qBAAqB,CAAC,CA8ChC;AAED,OAAO,EACL,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -8,6 +8,7 @@ import { requireIsoDate, validateLearningEntry } from "./learnings-entry.js";
|
|
|
8
8
|
import { assertLearningsUnchanged, assertSafeLearningParents, readExistingLearnings, resolveSafeLearningTarget, } from "./learnings-file-safety.js";
|
|
9
9
|
import { withLearningTargetLock } from "./learnings-lock.js";
|
|
10
10
|
import { preserveDroppedLearning } from "./learnings-overflow.js";
|
|
11
|
+
import { planLearningSupersede, validateLearningEntryStamps, } from "./learnings-supersede.js";
|
|
11
12
|
import { readProjectConfig, resolveProjectLearningsFile, } from "./project-config.js";
|
|
12
13
|
/**
|
|
13
14
|
* Persist one already-selected learning without generating or truncating it.
|
|
@@ -15,7 +16,7 @@ import { readProjectConfig, resolveProjectLearningsFile, } from "./project-confi
|
|
|
15
16
|
* entry point; consolidation-aware writers use
|
|
16
17
|
* {@link persistConsolidatedLearning} instead.
|
|
17
18
|
* @param projectRoot - Absolute path to the host project root
|
|
18
|
-
* @param candidate - Untrusted
|
|
19
|
+
* @param candidate - Untrusted eight-field learning entry
|
|
19
20
|
* @returns Absolute path to the persisted learnings file
|
|
20
21
|
*/
|
|
21
22
|
export async function persistLearningEntry(projectRoot, candidate) {
|
|
@@ -30,7 +31,7 @@ export async function persistLearningEntry(projectRoot, candidate) {
|
|
|
30
31
|
* consolidation. Without `supersede` this is exactly the append-only
|
|
31
32
|
* {@link persistLearningEntry} behavior, including the duplicate-id throw.
|
|
32
33
|
* @param projectRoot - Absolute path to the host project root
|
|
33
|
-
* @param candidate - Untrusted
|
|
34
|
+
* @param candidate - Untrusted eight-field learning entry
|
|
34
35
|
* @param options - Optional consolidation directives
|
|
35
36
|
* @returns Absolute path to the persisted learnings file
|
|
36
37
|
*/
|
|
@@ -40,12 +41,12 @@ export async function persistConsolidatedLearning(projectRoot, candidate, option
|
|
|
40
41
|
if (mintedAlias !== undefined) {
|
|
41
42
|
throw mintedAlias;
|
|
42
43
|
}
|
|
43
|
-
const supersede =
|
|
44
|
+
const supersede = validateLearningEntryStamps(options.supersede);
|
|
44
45
|
const config = await readProjectConfig(projectRoot);
|
|
45
46
|
const relativeFile = resolveProjectLearningsFile(config);
|
|
46
47
|
const { root, target } = resolveSafeLearningTarget(projectRoot, relativeFile);
|
|
47
48
|
// Fast budget fail on the lone entry before any directory is created.
|
|
48
|
-
|
|
49
|
+
renderNextDocument([], entry);
|
|
49
50
|
await assertSafeLearningParents(root, path.dirname(target));
|
|
50
51
|
await fse.ensureDir(path.dirname(target));
|
|
51
52
|
try {
|
|
@@ -67,7 +68,7 @@ export async function persistConsolidatedLearning(projectRoot, candidate, option
|
|
|
67
68
|
* @param location.root - Resolved project root
|
|
68
69
|
* @param location.target - Absolute learnings file path
|
|
69
70
|
* @param entry - New validated entry
|
|
70
|
-
* @param supersede -
|
|
71
|
+
* @param supersede - Exact versions of existing entries the new entry replaces
|
|
71
72
|
* @param options - Caller diagnostics for absent targets and dropped aliases
|
|
72
73
|
* @returns Absolute path to the persisted learnings file
|
|
73
74
|
*/
|
|
@@ -76,11 +77,17 @@ function writeLearningEntriesWithLock({ root, target }, entry, supersede, option
|
|
|
76
77
|
await assertSafeLearningParents(root, path.dirname(target));
|
|
77
78
|
const existing = await readExistingLearnings(target);
|
|
78
79
|
const entries = existing === undefined ? [] : parseLearningsFile(existing);
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
80
|
+
const plan = planLearningSupersede(entries, entry, supersede);
|
|
81
|
+
const aliased = aliasSupersededEntries(plan.removed, plan.entry, options);
|
|
82
|
+
const rendered = renderNextDocument(plan.retained, aliased);
|
|
83
|
+
if (plan.stale.length > 0) {
|
|
84
|
+
options.onStaleSupersede?.(plan.stale);
|
|
85
|
+
const absent = plan.stale
|
|
86
|
+
.filter(target => target.reason === "absent")
|
|
87
|
+
.map(target => target.expected.id);
|
|
88
|
+
if (absent.length > 0)
|
|
89
|
+
options.onAbsentSupersede?.(absent);
|
|
90
|
+
}
|
|
84
91
|
await writeFileAtomically(target, rendered, {
|
|
85
92
|
beforeRename: async () => {
|
|
86
93
|
await assertSafeLearningParents(root, path.dirname(target));
|
|
@@ -101,17 +108,14 @@ function writeLearningEntriesWithLock({ root, target }, entry, supersede, option
|
|
|
101
108
|
*
|
|
102
109
|
* The rewritten entry is pushed back through `validateLearningEntry` rather than
|
|
103
110
|
* spread-and-trusted, so the added references are held to the same schema as any
|
|
104
|
-
* caller-supplied one and the persisted object stays a frozen, exactly-
|
|
111
|
+
* caller-supplied one and the persisted object stays a frozen, exactly-eight-field
|
|
105
112
|
* entry.
|
|
106
|
-
* @param
|
|
113
|
+
* @param removed - Exact targets this write will remove together
|
|
107
114
|
* @param entry - New validated entry as the caller composed it
|
|
108
|
-
* @param supersede - Validated supersede ids
|
|
109
115
|
* @param options - Caller diagnostics
|
|
110
116
|
* @returns The entry to persist, carrying its supersede aliases
|
|
111
117
|
*/
|
|
112
|
-
function aliasSupersededEntries(
|
|
113
|
-
const superseded = new Set(supersede);
|
|
114
|
-
const removed = entries.filter(current => superseded.has(current.id));
|
|
118
|
+
function aliasSupersededEntries(removed, entry, options) {
|
|
115
119
|
if (removed.length === 0) {
|
|
116
120
|
return entry;
|
|
117
121
|
}
|
|
@@ -194,54 +198,23 @@ function renderConfirmedDocument(entries) {
|
|
|
194
198
|
return rendered;
|
|
195
199
|
}
|
|
196
200
|
/**
|
|
197
|
-
*
|
|
198
|
-
*
|
|
199
|
-
*
|
|
200
|
-
*
|
|
201
|
-
*
|
|
202
|
-
* is already satisfied when X is gone, and at write time a concurrently
|
|
203
|
-
* consolidated id is indistinguishable from a bogus one — so an error here
|
|
204
|
-
* cannot mean what it claims. The costs are wildly asymmetric: throwing
|
|
205
|
-
* discards the writer's ENTIRE learning (the CodySwannGT/lisa#1995 data-loss
|
|
206
|
-
* symptom, just pointed the other way), while proceeding leaves at worst two
|
|
207
|
-
* entries where one consolidation was intended — visible, bounded, and exactly
|
|
208
|
-
* what the gardener and the entry budget already handle. Callers that care are
|
|
209
|
-
* told through `onAbsentSupersede`.
|
|
210
|
-
*
|
|
211
|
-
* This replaces PR #2008's pre-lock snapshot, which tried to tell those two
|
|
212
|
-
* cases apart by reading the file before acquiring the lock. That read is
|
|
213
|
-
* itself a TOCTOU: it only rescues writers whose snapshot predates the removal,
|
|
214
|
-
* so it narrowed the window rather than closing it and failed intermittently in
|
|
215
|
-
* CI under precisely the contention it was written for.
|
|
216
|
-
* @param entries - Existing validated entries
|
|
217
|
-
* @param entry - New validated entry
|
|
218
|
-
* @param supersede - Ids of existing entries the new entry replaces
|
|
201
|
+
* Render and budget-check entries after the locked supersede planner has made
|
|
202
|
+
* the only mutation decision. Keeping this helper plan-free prevents a second
|
|
203
|
+
* stale/exact interpretation from drifting away from the CAS boundary.
|
|
204
|
+
* @param entries - Existing entries retained by the plan
|
|
205
|
+
* @param entry - Planned entry carrying its final stable id
|
|
219
206
|
* @returns Next canonical document
|
|
220
207
|
*/
|
|
221
|
-
function
|
|
222
|
-
|
|
223
|
-
const retained = entries.filter(current => !supersededIds.has(current.id));
|
|
224
|
-
if (retained.some(current => current.id === entry.id)) {
|
|
208
|
+
function renderNextDocument(entries, entry) {
|
|
209
|
+
if (entries.some(current => current.id === entry.id)) {
|
|
225
210
|
throw new Error(`Duplicate learning id: ${entry.id}`);
|
|
226
211
|
}
|
|
227
|
-
|
|
212
|
+
if (entries.some(current => current.fingerprint === entry.fingerprint)) {
|
|
213
|
+
throw new Error(`Duplicate learning fingerprint: ${entry.fingerprint}`);
|
|
214
|
+
}
|
|
215
|
+
const nextEntries = [...entries, entry].sort((left, right) => left.id.localeCompare(right.id));
|
|
228
216
|
const rendered = renderLearningsFile(nextEntries);
|
|
229
217
|
assertDocumentBudget(rendered, nextEntries.length, "Learnings file");
|
|
230
218
|
return rendered;
|
|
231
219
|
}
|
|
232
|
-
/**
|
|
233
|
-
* Reject malformed supersede directives before any filesystem work.
|
|
234
|
-
* @param supersede - Caller-supplied (possibly untrusted) supersede ids
|
|
235
|
-
* @returns Deduplicated list of validated supersede ids
|
|
236
|
-
*/
|
|
237
|
-
function validateSupersedeIds(supersede) {
|
|
238
|
-
if (supersede === undefined) {
|
|
239
|
-
return [];
|
|
240
|
-
}
|
|
241
|
-
if (!Array.isArray(supersede) ||
|
|
242
|
-
supersede.some(id => typeof id !== "string" || id.trim() === "")) {
|
|
243
|
-
throw new Error("Invalid supersede option: expected non-empty learning id strings");
|
|
244
|
-
}
|
|
245
|
-
return [...new Set(supersede)];
|
|
246
|
-
}
|
|
247
220
|
//# sourceMappingURL=learnings-writer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"learnings-writer.js","sourceRoot":"","sources":["../../src/core/learnings-writer.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EACL,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EACL,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"learnings-writer.js","sourceRoot":"","sources":["../../src/core/learnings-writer.ts"],"names":[],"mappings":"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"}
|
package/dist/core/learnings.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
export * from "./learnings-alias.js";
|
|
2
2
|
export * from "./learnings-contract.js";
|
|
3
|
+
export { parseLearningsDocument, type ParsedLearningsDocument, } from "./learnings-document.js";
|
|
4
|
+
export * from "./learnings-merge.js";
|
|
3
5
|
export * from "./learnings-overflow.js";
|
|
4
6
|
export * from "./learnings-projection.js";
|
|
7
|
+
export * from "./learnings-supersede.js";
|
|
5
8
|
export * from "./learnings-writer.js";
|
|
6
9
|
export * from "./upstream-attribution-body.js";
|
|
7
10
|
export { DEFAULT_PROJECT_LEARNINGS_FILE, HOST_RULES_DIR, LEGACY_PROJECT_RULES_FILE, PROJECT_LEARNINGS_FILENAME, readProjectConfig, resolveLegacyProjectLearningsFile, resolveLegacyProjectRulesFile, resolveProjectLearningsFile, type LearningsConfig, type ProjectConfig, } from "./project-config.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"learnings.d.ts","sourceRoot":"","sources":["../../src/core/learnings.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,OAAO,EACL,8BAA8B,EAC9B,cAAc,EACd,yBAAyB,EACzB,0BAA0B,EAC1B,iBAAiB,EACjB,iCAAiC,EACjC,6BAA6B,EAC7B,2BAA2B,EAC3B,KAAK,eAAe,EACpB,KAAK,aAAa,GACnB,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"learnings.d.ts","sourceRoot":"","sources":["../../src/core/learnings.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,OAAO,EACL,sBAAsB,EACtB,KAAK,uBAAuB,GAC7B,MAAM,yBAAyB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,OAAO,EACL,8BAA8B,EAC9B,cAAc,EACd,yBAAyB,EACzB,0BAA0B,EAC1B,iBAAiB,EACjB,iCAAiC,EACjC,6BAA6B,EAC7B,2BAA2B,EAC3B,KAAK,eAAe,EACpB,KAAK,aAAa,GACnB,MAAM,qBAAqB,CAAC"}
|
package/dist/core/learnings.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
export * from "./learnings-alias.js";
|
|
2
2
|
export * from "./learnings-contract.js";
|
|
3
|
+
export { parseLearningsDocument, } from "./learnings-document.js";
|
|
4
|
+
export * from "./learnings-merge.js";
|
|
3
5
|
export * from "./learnings-overflow.js";
|
|
4
6
|
export * from "./learnings-projection.js";
|
|
7
|
+
export * from "./learnings-supersede.js";
|
|
5
8
|
export * from "./learnings-writer.js";
|
|
6
9
|
export * from "./upstream-attribution-body.js";
|
|
7
10
|
export { DEFAULT_PROJECT_LEARNINGS_FILE, HOST_RULES_DIR, LEGACY_PROJECT_RULES_FILE, PROJECT_LEARNINGS_FILENAME, readProjectConfig, resolveLegacyProjectLearningsFile, resolveLegacyProjectRulesFile, resolveProjectLearningsFile, } from "./project-config.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"learnings.js","sourceRoot":"","sources":["../../src/core/learnings.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,OAAO,EACL,8BAA8B,EAC9B,cAAc,EACd,yBAAyB,EACzB,0BAA0B,EAC1B,iBAAiB,EACjB,iCAAiC,EACjC,6BAA6B,EAC7B,2BAA2B,GAG5B,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"learnings.js","sourceRoot":"","sources":["../../src/core/learnings.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,OAAO,EACL,sBAAsB,GAEvB,MAAM,yBAAyB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,OAAO,EACL,8BAA8B,EAC9B,cAAc,EACd,yBAAyB,EACzB,0BAA0B,EAC1B,iBAAiB,EACjB,iCAAiC,EACjC,6BAA6B,EAC7B,2BAA2B,GAG5B,MAAM,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upstream-evidence-manifest.d.ts","sourceRoot":"","sources":["../../src/core/upstream-evidence-manifest.ts"],"names":[],"mappings":"AACA,iFAAiF;AACjF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"upstream-evidence-manifest.d.ts","sourceRoot":"","sources":["../../src/core/upstream-evidence-manifest.ts"],"names":[],"mappings":"AACA,iFAAiF;AACjF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAk7EpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAgwPjE,CAAC;AAEL,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAk6I/D,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* eslint-disable max-lines -- generated exact public-evidence allowlist */
|
|
2
2
|
/** Generated by scripts/generate-upstream-evidence-manifest.mjs. Do not edit. */
|
|
3
3
|
export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
4
|
-
"all/copy-contents/.gitattributes": "
|
|
4
|
+
"all/copy-contents/.gitattributes": "39b6fea7a398e6cb9afff8735c19823ed3eabd1cd36d087f6fc21ab6b7fd7d3a",
|
|
5
5
|
"all/copy-contents/gitignore": "3c3ce0693a6bf0531c7e080aef16103c5cfa6aeb0f897ffaba730966c103ffb6",
|
|
6
6
|
"all/copy-overwrite/scripts/check-conflict-markers.mjs": "d7a689bcc122af7f38d1c536924fc2f3dcb503b09658ffc6035ccbe720d14d6b",
|
|
7
7
|
"all/copy-overwrite/scripts/check-state-classification.mjs": "a72910f9885629dd6d8a739b900f5603e4b53d68ece64100a2a5647016b58e1e",
|
|
@@ -256,7 +256,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
256
256
|
"plugins/src/base/agents/github-prd-intake.md": "d8d4cb8d246b0da7b70c98adb6305451be35f3ba4e3ea384aa086e8ed3d15b46",
|
|
257
257
|
"plugins/src/base/agents/jira-agent.md": "2c3049c5c04b9912ac8414a73bf69e5632417a55de300cf918e329c1db763622",
|
|
258
258
|
"plugins/src/base/agents/jira-build-intake.md": "51397c08fe09380f53bd630fb81ff28905a532ea71336a424e944c28a0c2db55",
|
|
259
|
-
"plugins/src/base/agents/learner.md": "
|
|
259
|
+
"plugins/src/base/agents/learner.md": "1e43e74801354e3ed29beed787a673b99599b442d69d8f769829273fdd1c293b",
|
|
260
260
|
"plugins/src/base/agents/learning-judge.md": "28618c3e20a0f790e4d254a9c8118645774233f19e3042b3cfeddf4ffbaf783a",
|
|
261
261
|
"plugins/src/base/agents/learnings-synthesizer.md": "d3ffc4294df44813772d8c2641ebbd79a97cbc9051fa88b407ef7bfdc5b8e0d9",
|
|
262
262
|
"plugins/src/base/agents/linear-agent.md": "d55664da47505d702d9bbbb96f9f98930d871acc5fc2972d35e1ae143f2dbde7",
|
|
@@ -460,7 +460,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
460
460
|
"plugins/src/base/rules/reference/prd-definition-of-ready.md": "041a8f3c9b703b3921acc30fe92acfb9e2ab43da04cf019c102ebca98b2f4ba3",
|
|
461
461
|
"plugins/src/base/rules/reference/prd-lifecycle-rollup.md": "f539e7b43918e173dd7491a139be078815d26098f992cd7fc86cd05878c90b9b",
|
|
462
462
|
"plugins/src/base/rules/reference/pre-flight-autofill.md": "e61b745bb1ddfbe24634246588c13e4e78c25b50817e5e8ff02e1a9681ad1130",
|
|
463
|
-
"plugins/src/base/rules/reference/project-learnings.md": "
|
|
463
|
+
"plugins/src/base/rules/reference/project-learnings.md": "4c267636d842ba87953edcfafb1a15c41d82166a84f87e93f20dc2ea504ad717",
|
|
464
464
|
"plugins/src/base/rules/reference/promotion-contract.md": "d1370532bb79262ec2a1ca48376aed796051f5dd9930cf1f1b17c993e24f469b",
|
|
465
465
|
"plugins/src/base/rules/reference/readiness-rubric.md": "6b09f171166a7fc8e85f6e2deea68f42d89a554767bc91e8eed08d1e08501672",
|
|
466
466
|
"plugins/src/base/rules/reference/ready-role-filing.md": "b5f222ca3eda3bcf1a25d8d31f363f035d25fc0dc6af66d6943a3d6a3255bba2",
|
|
@@ -521,7 +521,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
521
521
|
"plugins/src/base/skills/lisa-confluence-to-tracker/SKILL.md": "a5c72af70f017d45d45a0206c8c6c063fc10ca2f80f9404341cc6fe689076055",
|
|
522
522
|
"plugins/src/base/skills/lisa-confluence-write-prd/SKILL.md": "29fce0dce5f3d1b9cbe8705c8fc002e5885675e1807cf948b166aef88ddfd73a",
|
|
523
523
|
"plugins/src/base/skills/lisa-cross-pollinate/SKILL.md": "d1d33a149cab2de0d0b4c7ddc6bb2f67f43a097e5f551f642b1cb076747a5a05",
|
|
524
|
-
"plugins/src/base/skills/lisa-debrief-apply/SKILL.md": "
|
|
524
|
+
"plugins/src/base/skills/lisa-debrief-apply/SKILL.md": "2f9fe30f786ac171f9177bac6f151fc6f12117386ba8f08938240edc6db46a9c",
|
|
525
525
|
"plugins/src/base/skills/lisa-debrief/SKILL.md": "6a0981107f907d3362ab0001f46412b76a70ec5ecc37ea1cd1def6ce4a38c9ee",
|
|
526
526
|
"plugins/src/base/skills/lisa-delivery-effectiveness/SKILL.md": "21bc55fa0e86a9694bd22269fd089dbfae0c54c199262f46a4955447acea0f35",
|
|
527
527
|
"plugins/src/base/skills/lisa-design-intake/SKILL.md": "8d0a72248d9d74b15aa31b0a51d13b77069677ea20117ddf93073d38c512ebf1",
|
|
@@ -613,7 +613,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
613
613
|
"plugins/src/base/skills/lisa-parity-sentry-seer/SKILL.md": "ec09515906a55e98ac0f619f048f14c4a16db74c1cd5744dda0cdfa42ce7fed6",
|
|
614
614
|
"plugins/src/base/skills/lisa-parity-skill-creator/SKILL.md": "616e0493f75fe92c18137548d7c86a91a9b04d9844ca76fa3f14156e3e7814e5",
|
|
615
615
|
"plugins/src/base/skills/lisa-performance-review/SKILL.md": "351542c256e54940e6d672a70606b8414425c6435ae6f026841bcc02f9fce9c4",
|
|
616
|
-
"plugins/src/base/skills/lisa-persist-learning/SKILL.md": "
|
|
616
|
+
"plugins/src/base/skills/lisa-persist-learning/SKILL.md": "a6d4e9726291dea3af336579978663b591aa212e0a1f1bffb39f4f06b4ab477b",
|
|
617
617
|
"plugins/src/base/skills/lisa-plan/SKILL.md": "9c372e106afd53ff988046119cf36b0f6519c4426775dd8ad3c9d9baeee5d3e2",
|
|
618
618
|
"plugins/src/base/skills/lisa-plugin-sync-explain/SKILL.md": "b41619f3d0d342af2438afd54cb97db7d2445e54e3fc7bb012292079acbc6a4f",
|
|
619
619
|
"plugins/src/base/skills/lisa-posthog-access/SKILL.md": "1e101fb92465d364b7253760961dc529a3c5f17ba3690f8aaca905a4b2126414",
|
|
@@ -685,7 +685,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
685
685
|
"plugins/src/base/skills/lisa-setup-remote-env/assets/setup.sh": "c30d98a5645f033fc1d3a723043691b9ad997ae5666df539ff6aa19c563431b2",
|
|
686
686
|
"plugins/src/base/skills/lisa-setup-remote-env/scripts/environment.mjs": "3b9be11691d81a896fc779c37fb6d69e8e7222f95e23f84aa03d4e590f9d9108",
|
|
687
687
|
"plugins/src/base/skills/lisa-setup-remote-env/scripts/preflight-tools.mjs": "eb8ee672fbfdb0ab41dde5f17337dae59912f18eafa6f15a05fd203906d16352",
|
|
688
|
-
"plugins/src/base/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs": "
|
|
688
|
+
"plugins/src/base/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs": "5c1e0094693f9c01a1bac7c1a9edfdee2de68ee4652bfd21b7360b45ac244c3d",
|
|
689
689
|
"plugins/src/base/skills/lisa-setup-remote-env/scripts/tool-floor.mjs": "8bf279a2b198c7a6d4163420ec73f871fb9c9cb70d7c87d852026bc5dbf97091",
|
|
690
690
|
"plugins/src/base/skills/lisa-setup-remote-env/scripts/toolchain.mjs": "496de5aed034692fee421dc3a1fbad9f85ed9e1d0c83a1080f781a486d0274e6",
|
|
691
691
|
"plugins/src/base/skills/lisa-setup-remote-env/scripts/verify-remote-env.mjs": "bec0b624c1031d0936afd6e5dd4a3d09adea102d5936b5b9fcf545c7f86a3a11",
|
|
@@ -1165,7 +1165,8 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
1165
1165
|
"scripts/verify-health-consumer-built.mjs": "bd0676f7e76e4ebceb3a94c89a2b40f4c0266ab0ef7280a9bebbcb388c2731c3",
|
|
1166
1166
|
"scripts/verify-health-contract-built.mjs": "4041780d412bee7b9e1bbe24d908bac64705184a8b0698f0d5bb748ec36b0bcd",
|
|
1167
1167
|
"scripts/verify-health-deterministic-built.mjs": "9016663d16c93d0d0d74b41a957d200cd3aa8ef5b12e0879d24ba5ea041ab307",
|
|
1168
|
-
"scripts/verify-learner-frontmatter-built.mjs": "
|
|
1168
|
+
"scripts/verify-learner-frontmatter-built.mjs": "b8ac0240726721a047811e98d42f661426abc3e427a0c86f3b20082eb498809d",
|
|
1169
|
+
"scripts/verify-packed-learnings-contract.mjs": "6ed8390ec9e06fededf0dc87b714f36c6f55546b04a22e03186569cd39d8f661",
|
|
1169
1170
|
"tsconfig/base.json": "d04a105ec81aa9dc69d230d4a83406d920c305b6fc13c641ebafde0c41fc658f",
|
|
1170
1171
|
"tsconfig/build.json": "a743350ea93b0e8d2151c974c5a8a4cbcf946cd7f06c40d83146079bde70afe1",
|
|
1171
1172
|
"tsconfig/cdk.json": "f9c0bfad5e40ce30bc037f08abf2f8feb78963484f2929ab17ec187ffe34b732",
|
|
@@ -7196,6 +7197,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
7196
7197
|
"scripts/verify-health-contract-built.mjs": true,
|
|
7197
7198
|
"scripts/verify-health-deterministic-built.mjs": true,
|
|
7198
7199
|
"scripts/verify-learner-frontmatter-built.mjs": true,
|
|
7200
|
+
"scripts/verify-packed-learnings-contract.mjs": true,
|
|
7199
7201
|
"sgconfig.yml": true,
|
|
7200
7202
|
"spec/tasc-0.1-draft.md": true,
|
|
7201
7203
|
"specs/.keep": true,
|
|
@@ -7462,6 +7464,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
7462
7464
|
"src/core/learnings-overflow.ts": true,
|
|
7463
7465
|
"src/core/learnings-projection.ts": true,
|
|
7464
7466
|
"src/core/learnings-stray-ledger.ts": true,
|
|
7467
|
+
"src/core/learnings-supersede.ts": true,
|
|
7465
7468
|
"src/core/learnings-writer.ts": true,
|
|
7466
7469
|
"src/core/learnings.ts": true,
|
|
7467
7470
|
"src/core/lisa-owned-hash-ledger.ts": true,
|
|
@@ -8148,6 +8151,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
8148
8151
|
"tests/unit/core/learnings-consolidation.test.ts": true,
|
|
8149
8152
|
"tests/unit/core/learnings-contract.test.ts": true,
|
|
8150
8153
|
"tests/unit/core/learnings-eager-tree-guard.test.ts": true,
|
|
8154
|
+
"tests/unit/core/learnings-entry-security.test.ts": true,
|
|
8151
8155
|
"tests/unit/core/learnings-gitattributes.test.ts": true,
|
|
8152
8156
|
"tests/unit/core/learnings-lock-acquire.test.ts": true,
|
|
8153
8157
|
"tests/unit/core/learnings-lock-reclaim.test.ts": true,
|
|
@@ -8155,11 +8159,14 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
8155
8159
|
"tests/unit/core/learnings-merge-driver-install.test.ts": true,
|
|
8156
8160
|
"tests/unit/core/learnings-merge-driver.test.ts": true,
|
|
8157
8161
|
"tests/unit/core/learnings-merge.test.ts": true,
|
|
8162
|
+
"tests/unit/core/learnings-migration.test.ts": true,
|
|
8163
|
+
"tests/unit/core/learnings-overflow-identity.test.ts": true,
|
|
8158
8164
|
"tests/unit/core/learnings-overflow.test.ts": true,
|
|
8159
8165
|
"tests/unit/core/learnings-projection.test.ts": true,
|
|
8160
8166
|
"tests/unit/core/learnings-stable-ids.test.ts": true,
|
|
8161
8167
|
"tests/unit/core/learnings-stray-ledger.test.ts": true,
|
|
8162
8168
|
"tests/unit/core/learnings-supersede-race.test.ts": true,
|
|
8169
|
+
"tests/unit/core/learnings-supersede-security.test.ts": true,
|
|
8163
8170
|
"tests/unit/core/learnings-unlocked-read.test.ts": true,
|
|
8164
8171
|
"tests/unit/core/learnings-writer.test.ts": true,
|
|
8165
8172
|
"tests/unit/core/lisa-owned-enforcement-scripts.test.ts": true,
|
|
@@ -8170,6 +8177,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
8170
8177
|
"tests/unit/core/lisa-skill-sources.test.ts": true,
|
|
8171
8178
|
"tests/unit/core/no-downstream-project-names.test.ts": true,
|
|
8172
8179
|
"tests/unit/core/override-floors.test.ts": true,
|
|
8180
|
+
"tests/unit/core/packed-learnings-contract.test.ts": true,
|
|
8173
8181
|
"tests/unit/core/plugin-sync-marker.test.ts": true,
|
|
8174
8182
|
"tests/unit/core/project-config-harness-migration.test.ts": true,
|
|
8175
8183
|
"tests/unit/core/project-config-kane.test.ts": true,
|
|
@@ -8543,6 +8551,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
8543
8551
|
"tests/unit/secrets/remote-dispatch-claude-web.test.ts": true,
|
|
8544
8552
|
"tests/unit/secrets/remote-dispatch.test.ts": true,
|
|
8545
8553
|
"tests/unit/secrets/remote-env-bindir-path.test.ts": true,
|
|
8554
|
+
"tests/unit/secrets/remote-env-cli-entrypoint.test.ts": true,
|
|
8546
8555
|
"tests/unit/secrets/remote-env-installed-copy.test.ts": true,
|
|
8547
8556
|
"tests/unit/secrets/remote-env-materialize-both.test.ts": true,
|
|
8548
8557
|
"tests/unit/secrets/remote-env-phases.test.ts": true,
|
|
@@ -8708,6 +8717,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
8708
8717
|
"tests/unit/strategies/learner-capture-contract.test.ts": true,
|
|
8709
8718
|
"tests/unit/strategies/learnings-audit-contract.test.ts": true,
|
|
8710
8719
|
"tests/unit/strategies/learnings-confirmation-contract.test.ts": true,
|
|
8720
|
+
"tests/unit/strategies/learnings-fingerprint-contract.test.ts": true,
|
|
8711
8721
|
"tests/unit/strategies/learnings-overflow-contract.test.ts": true,
|
|
8712
8722
|
"tests/unit/strategies/lifecycle-label-claimability.test.ts": true,
|
|
8713
8723
|
"tests/unit/strategies/lifecycle-label-trust-contract.test.ts": true,
|