@codyswann/lisa 2.262.0 → 2.264.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/all/copy-contents/gitignore +2 -0
- package/dist/cli/ui-config-write.d.ts.map +1 -1
- package/dist/cli/ui-config-write.js +24 -1
- package/dist/cli/ui-config-write.js.map +1 -1
- package/dist/core/learnings-lock.d.ts +7 -0
- package/dist/core/learnings-lock.d.ts.map +1 -1
- package/dist/core/learnings-lock.js +49 -8
- package/dist/core/learnings-lock.js.map +1 -1
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +26 -10
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/dist/health/contract.d.ts +56 -0
- package/dist/health/contract.d.ts.map +1 -0
- package/dist/health/contract.js +153 -0
- package/dist/health/contract.js.map +1 -0
- package/dist/health/directory-sync.d.ts +17 -0
- package/dist/health/directory-sync.d.ts.map +1 -0
- package/dist/health/directory-sync.js +69 -0
- package/dist/health/directory-sync.js.map +1 -0
- package/dist/health/index.d.ts +3 -0
- package/dist/health/index.d.ts.map +1 -0
- package/dist/health/index.js +3 -0
- package/dist/health/index.js.map +1 -0
- package/dist/health/storage.d.ts +39 -0
- package/dist/health/storage.d.ts.map +1 -0
- package/dist/health/storage.js +262 -0
- package/dist/health/storage.js.map +1 -0
- package/dist/health/strict-validation.d.ts +56 -0
- package/dist/health/strict-validation.d.ts.map +1 -0
- package/dist/health/strict-validation.js +144 -0
- package/dist/health/strict-validation.js.map +1 -0
- package/dist/sync/config-sync.d.ts.map +1 -1
- package/dist/sync/config-sync.js +18 -6
- package/dist/sync/config-sync.js.map +1 -1
- package/dist/sync/registry.d.ts +2 -0
- package/dist/sync/registry.d.ts.map +1 -1
- package/dist/sync/registry.js +7 -0
- package/dist/sync/registry.js.map +1 -1
- package/package.json +4 -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-github-evidence/SKILL.md +10 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-jira-evidence/SKILL.md +10 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-linear-evidence/SKILL.md +10 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-tracker-evidence/SKILL.md +10 -3
- package/plugins/lisa/rules/eager/claim-evidence-mapping.md +23 -3
- package/plugins/lisa/rules/reference/claim-evidence-mapping.md +134 -8
- package/plugins/lisa/rules/reference/config-resolution.md +1 -0
- package/plugins/lisa/rules/reference/verification.md +26 -0
- package/plugins/lisa/skills/lisa-github-evidence/SKILL.md +10 -0
- package/plugins/lisa/skills/lisa-jira-evidence/SKILL.md +10 -0
- package/plugins/lisa/skills/lisa-linear-evidence/SKILL.md +10 -0
- package/plugins/lisa/skills/lisa-tracker-evidence/SKILL.md +10 -3
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/skills/lisa-github-evidence/SKILL.md +10 -0
- package/plugins/lisa-agy/skills/lisa-jira-evidence/SKILL.md +10 -0
- package/plugins/lisa-agy/skills/lisa-linear-evidence/SKILL.md +10 -0
- package/plugins/lisa-agy/skills/lisa-tracker-evidence/SKILL.md +10 -3
- 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/rules/eager/claim-evidence-mapping.md +23 -3
- package/plugins/lisa-copilot/rules/reference/claim-evidence-mapping.md +134 -8
- package/plugins/lisa-copilot/rules/reference/config-resolution.md +1 -0
- package/plugins/lisa-copilot/rules/reference/verification.md +26 -0
- package/plugins/lisa-copilot/skills/lisa-github-evidence/SKILL.md +10 -0
- package/plugins/lisa-copilot/skills/lisa-jira-evidence/SKILL.md +10 -0
- package/plugins/lisa-copilot/skills/lisa-linear-evidence/SKILL.md +10 -0
- package/plugins/lisa-copilot/skills/lisa-tracker-evidence/SKILL.md +10 -3
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/rules/claim-evidence-mapping-reference.mdc +134 -8
- package/plugins/lisa-cursor/rules/claim-evidence-mapping.mdc +23 -3
- package/plugins/lisa-cursor/rules/config-resolution-reference.mdc +1 -0
- package/plugins/lisa-cursor/rules/verification-reference.mdc +26 -0
- package/plugins/lisa-cursor/skills/lisa-github-evidence/SKILL.md +10 -0
- package/plugins/lisa-cursor/skills/lisa-jira-evidence/SKILL.md +10 -0
- package/plugins/lisa-cursor/skills/lisa-linear-evidence/SKILL.md +10 -0
- package/plugins/lisa-cursor/skills/lisa-tracker-evidence/SKILL.md +10 -3
- 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/rules/eager/claim-evidence-mapping.md +23 -3
- package/plugins/src/base/rules/reference/claim-evidence-mapping.md +134 -8
- package/plugins/src/base/rules/reference/config-resolution.md +1 -0
- package/plugins/src/base/rules/reference/verification.md +26 -0
- package/plugins/src/base/skills/lisa-github-evidence/SKILL.md +10 -0
- package/plugins/src/base/skills/lisa-jira-evidence/SKILL.md +10 -0
- package/plugins/src/base/skills/lisa-linear-evidence/SKILL.md +10 -0
- package/plugins/src/base/skills/lisa-tracker-evidence/SKILL.md +10 -3
- package/scripts/verify-health-contract-built.mjs +143 -0
- package/ui/README.md +8 -3
|
@@ -213,6 +213,8 @@ expo-env.d.ts
|
|
|
213
213
|
# Transient verification verdict used by Lisa's completion gate. Durable
|
|
214
214
|
# verification evidence belongs under evidence/<ticket>/ and remains trackable.
|
|
215
215
|
.lisa/verification-status.json
|
|
216
|
+
# Latest Health v1 result is local runtime state, never project configuration.
|
|
217
|
+
.lisa/health/latest.json
|
|
216
218
|
|
|
217
219
|
# Automation run outcomes — local scheduler observations read by
|
|
218
220
|
# /lisa:automation-status. Runbooks are project knowledge; run records are not.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-config-write.d.ts","sourceRoot":"","sources":["../../src/cli/ui-config-write.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"ui-config-write.d.ts","sourceRoot":"","sources":["../../src/cli/ui-config-write.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAkSlC;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,IAAI,CAAC,eAAe,EAC7B,QAAQ,EAAE,IAAI,CAAC,cAAc,EAC7B,OAAO,EAAE,MAAM,GACd,IAAI,CAsDN"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as path from "node:path";
|
|
2
2
|
import { readFile } from "node:fs/promises";
|
|
3
|
-
import { isJsonObject, setAtPath, } from "../sync/json-path.js";
|
|
3
|
+
import { getAtPath, isJsonObject, setAtPath, } from "../sync/json-path.js";
|
|
4
4
|
import { writeJson } from "../utils/index.js";
|
|
5
|
+
import { SYNC_REGISTRY } from "../sync/registry.js";
|
|
5
6
|
const CONFIG_FILE = ".lisa.config.json";
|
|
6
7
|
const JSON_CONTENT_TYPE = "application/json; charset=utf-8";
|
|
7
8
|
const MAX_CONFIG_WRITE_BYTES = 128 * 1024;
|
|
@@ -134,6 +135,27 @@ function validateChangeEntry(key, change) {
|
|
|
134
135
|
}
|
|
135
136
|
return undefined;
|
|
136
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* Validate every registered constraint against the fully merged document.
|
|
140
|
+
* @param config - Prospective committed config
|
|
141
|
+
*/
|
|
142
|
+
function validateProspectiveConfig(config) {
|
|
143
|
+
SYNC_REGISTRY.forEach(entry => {
|
|
144
|
+
if (entry.validate === undefined)
|
|
145
|
+
return;
|
|
146
|
+
const prospective = getAtPath(config, entry.key);
|
|
147
|
+
if (prospective === undefined)
|
|
148
|
+
return;
|
|
149
|
+
try {
|
|
150
|
+
entry.validate(prospective);
|
|
151
|
+
}
|
|
152
|
+
catch (error) {
|
|
153
|
+
throw new RequestBodyError(error instanceof Error
|
|
154
|
+
? error.message
|
|
155
|
+
: `Config value "${entry.key}" is invalid`);
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
}
|
|
137
159
|
/**
|
|
138
160
|
* Parse and validate the sparse config-write payload.
|
|
139
161
|
* @param value - Parsed JSON request body
|
|
@@ -219,6 +241,7 @@ async function writeConfigChanges(destDir, changes) {
|
|
|
219
241
|
return await withConfigWriteLock(destDir, async () => {
|
|
220
242
|
const original = await readCommittedConfig(destDir);
|
|
221
243
|
const next = Object.entries(changes).reduce((state, [key, value]) => setAtPath(state, key, value), original);
|
|
244
|
+
validateProspectiveConfig(next);
|
|
222
245
|
await writeJson(path.join(destDir, CONFIG_FILE), next);
|
|
223
246
|
return next;
|
|
224
247
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-config-write.js","sourceRoot":"","sources":["../../src/cli/ui-config-write.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EACL,YAAY,EACZ,SAAS,GAGV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"ui-config-write.js","sourceRoot":"","sources":["../../src/cli/ui-config-write.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,4 +5,11 @@
|
|
|
5
5
|
* @returns Operation result
|
|
6
6
|
*/
|
|
7
7
|
export declare function withLearningTargetLock<T>(target: string, operation: () => Promise<T>): Promise<T>;
|
|
8
|
+
/**
|
|
9
|
+
* Serialize same-target file transactions across processes.
|
|
10
|
+
* @param target - Absolute target whose adjacent lock is acquired
|
|
11
|
+
* @param operation - Transaction performed while the caller owns the lock
|
|
12
|
+
* @returns Operation result
|
|
13
|
+
*/
|
|
14
|
+
export declare function withFileTargetLock<T>(target: string, operation: () => Promise<T>): Promise<T>;
|
|
8
15
|
//# sourceMappingURL=learnings-lock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"learnings-lock.d.ts","sourceRoot":"","sources":["../../src/core/learnings-lock.ts"],"names":[],"mappings":"AAoBA;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,CAAC,EAC5C,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAC1B,OAAO,CAAC,CAAC,CAAC,CAaZ"}
|
|
1
|
+
{"version":3,"file":"learnings-lock.d.ts","sourceRoot":"","sources":["../../src/core/learnings-lock.ts"],"names":[],"mappings":"AAoBA;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,CAAC,EAC5C,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAC1B,OAAO,CAAC,CAAC,CAAC,CAEZ;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,EACxC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAC1B,OAAO,CAAC,CAAC,CAAC,CAaZ"}
|
|
@@ -10,6 +10,15 @@ const STALE_LOCK_MS = 30_000;
|
|
|
10
10
|
* @returns Operation result
|
|
11
11
|
*/
|
|
12
12
|
export async function withLearningTargetLock(target, operation) {
|
|
13
|
+
return withFileTargetLock(target, operation);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Serialize same-target file transactions across processes.
|
|
17
|
+
* @param target - Absolute target whose adjacent lock is acquired
|
|
18
|
+
* @param operation - Transaction performed while the caller owns the lock
|
|
19
|
+
* @returns Operation result
|
|
20
|
+
*/
|
|
21
|
+
export async function withFileTargetLock(target, operation) {
|
|
13
22
|
const lockPath = `${target}.lock`;
|
|
14
23
|
const owner = {
|
|
15
24
|
token: crypto.randomUUID(),
|
|
@@ -43,7 +52,7 @@ async function acquireLock(lockPath, owner, attempt) {
|
|
|
43
52
|
}
|
|
44
53
|
await removeFileIfPresent(ownerPath);
|
|
45
54
|
if (attempt >= MAX_LOCK_ATTEMPTS) {
|
|
46
|
-
throw new Error(`Timed out waiting for
|
|
55
|
+
throw new Error(`Timed out waiting for file lock: ${lockPath}`);
|
|
47
56
|
}
|
|
48
57
|
await reclaimStaleLock(lockPath);
|
|
49
58
|
await delay(LOCK_RETRY_DELAY_MS);
|
|
@@ -88,17 +97,41 @@ async function releaseLock(lockPath, lease) {
|
|
|
88
97
|
* @param lockPath - Shared lock path
|
|
89
98
|
*/
|
|
90
99
|
async function reclaimStaleLock(lockPath) {
|
|
91
|
-
const
|
|
92
|
-
if (
|
|
100
|
+
const retainedOwnerPath = await staleOwnerPath(lockPath);
|
|
101
|
+
if (retainedOwnerPath === null) {
|
|
93
102
|
return;
|
|
94
103
|
}
|
|
104
|
+
await quarantineStaleLock(lockPath, retainedOwnerPath);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Determine whether a regular lock is reclaimable and retain its owner path.
|
|
108
|
+
* @param lockPath - Shared lock path
|
|
109
|
+
* @returns Owner path, undefined for unlinked ownership, or null when live
|
|
110
|
+
*/
|
|
111
|
+
async function staleOwnerPath(lockPath) {
|
|
112
|
+
const before = await statFile(lockPath);
|
|
113
|
+
if (before === undefined) {
|
|
114
|
+
return null;
|
|
115
|
+
}
|
|
116
|
+
if (!before.isFile() || before.isSymbolicLink()) {
|
|
117
|
+
throw new Error(`Unsafe file lock path: ${lockPath}`);
|
|
118
|
+
}
|
|
95
119
|
const owner = await readLockOwner(lockPath);
|
|
96
120
|
const timestamp = owner?.createdAt ?? Number(before.mtimeMs);
|
|
97
|
-
if (
|
|
98
|
-
|
|
99
|
-
return;
|
|
121
|
+
if (owner !== undefined && isProcessLive(owner.pid)) {
|
|
122
|
+
return null;
|
|
100
123
|
}
|
|
101
|
-
|
|
124
|
+
if (owner === undefined && Date.now() - timestamp <= STALE_LOCK_MS) {
|
|
125
|
+
return null;
|
|
126
|
+
}
|
|
127
|
+
return owner === undefined ? undefined : `${lockPath}.${owner.token}.owner`;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Reclaim only the same lock inode retained in a safe quarantine link.
|
|
131
|
+
* @param lockPath - Shared lock path
|
|
132
|
+
* @param retainedOwnerPath - Optional owner hard link
|
|
133
|
+
*/
|
|
134
|
+
async function quarantineStaleLock(lockPath, retainedOwnerPath) {
|
|
102
135
|
const quarantine = retainedOwnerPath !== undefined &&
|
|
103
136
|
(await sameFile(lockPath, retainedOwnerPath))
|
|
104
137
|
? retainedOwnerPath
|
|
@@ -190,11 +223,19 @@ async function removeFileIfPresent(filePath) {
|
|
|
190
223
|
* @returns Whether the metadata is a lock owner
|
|
191
224
|
*/
|
|
192
225
|
function isLockOwner(value) {
|
|
193
|
-
if (value === null ||
|
|
226
|
+
if (value === null ||
|
|
227
|
+
typeof value !== "object" ||
|
|
228
|
+
Object.getPrototypeOf(value) !== Object.prototype) {
|
|
229
|
+
return false;
|
|
230
|
+
}
|
|
231
|
+
const keys = Reflect.ownKeys(value);
|
|
232
|
+
if (keys.length !== 3 ||
|
|
233
|
+
keys.some(key => typeof key !== "string" || !["token", "pid", "createdAt"].includes(key))) {
|
|
194
234
|
return false;
|
|
195
235
|
}
|
|
196
236
|
const owner = value;
|
|
197
237
|
return (typeof owner.token === "string" &&
|
|
238
|
+
/^[A-Za-z0-9-]{1,128}$/u.test(owner.token) &&
|
|
198
239
|
typeof owner.pid === "number" &&
|
|
199
240
|
Number.isSafeInteger(owner.pid) &&
|
|
200
241
|
owner.pid > 0 &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"learnings-lock.js","sourceRoot":"","sources":["../../src/core/learnings-lock.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE5E,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAC9B,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAC/B,MAAM,aAAa,GAAG,MAAM,CAAC;AAe7B;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAc,EACd,SAA2B;IAE3B,MAAM,QAAQ,GAAG,GAAG,MAAM,OAAO,CAAC;IAClC,MAAM,KAAK,GAAG;QACZ,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE;QAC1B,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACb,CAAC;IACX,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACpD,IAAI,CAAC;QACH,OAAO,MAAM,SAAS,EAAE,CAAC;IAC3B,CAAC;YAAS,CAAC;QACT,MAAM,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,WAAW,CACxB,QAAgB,EAChB,KAAgB,EAChB,OAAe;IAEf,MAAM,SAAS,GAAG,GAAG,QAAQ,IAAI,KAAK,CAAC,KAAK,QAAQ,CAAC;IACrD,MAAM,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;QAChD,QAAQ,EAAE,MAAM;QAChB,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC7D,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAC9B,CAAC;IACD,MAAM,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,OAAO,IAAI,iBAAiB,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"learnings-lock.js","sourceRoot":"","sources":["../../src/core/learnings-lock.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,CAk/DpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAo+LjE,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/gitignore": "
|
|
4
|
+
"all/copy-contents/gitignore": "74e0f12be861c5583cedbed89d0b029709748d7f38bc77bad22babded0489231",
|
|
5
5
|
"all/copy-overwrite/scripts/lisa-work-item.mjs": "f88f69d44693084428f44e3f2b80afecda08c7ee8747588f40277fdc9396fd8f",
|
|
6
6
|
"all/create-only/.claude/rules/PROJECT_RULES.md": "6e1c7923ad2a15356babc60c97e7f97be728d790af285b6a7cd7d1b4d39cd97f",
|
|
7
7
|
"all/create-only/.lisaignore": "3c9827e7e98daa46510b5357cd6dd9406da1821e64cc46d2eea9f311cd6d06b9",
|
|
@@ -305,7 +305,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
305
305
|
"plugins/src/base/rules/eager/automation-runbook-contract.md": "b9b4f4d82b366959e90451a2b425ac116953ac074ab6a192dc3909ec8a2be1d6",
|
|
306
306
|
"plugins/src/base/rules/eager/base-rules.md": "d3a4bd518acf2c6f4e866042542f9155fdbf5b2fdad5747e1afd097bdef15351",
|
|
307
307
|
"plugins/src/base/rules/eager/claim-archaeology.md": "96afa034075593dfb7433c5c990b472a6b6f7320332da42ef54b1f01fa45664b",
|
|
308
|
-
"plugins/src/base/rules/eager/claim-evidence-mapping.md": "
|
|
308
|
+
"plugins/src/base/rules/eager/claim-evidence-mapping.md": "d3428bb877c1a25639745d776e20b16c8ade7987e81c7c3bf3175fc0f12dbfb3",
|
|
309
309
|
"plugins/src/base/rules/eager/coding-philosophy.md": "cf2c52032e0368d81f17f002fed5c957ab350d01fc4a43f66b5f366516bac54a",
|
|
310
310
|
"plugins/src/base/rules/eager/config-resolution.md": "2689c1f47903a5f6c84677fbfd2f1f148096faf122b7498b21d3b0f2345c6c87",
|
|
311
311
|
"plugins/src/base/rules/eager/convergent-review.md": "700e0ac9c9812316930134c92f0b2d65cee90e70cb45a27b7966edfbe6962bc3",
|
|
@@ -333,9 +333,9 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
333
333
|
"plugins/src/base/rules/reference/automation-runbook-contract.md": "920469276ffb2dd3eb1bf33dbdbc740336619d68bf41ae8fda3e8a89d68ffa22",
|
|
334
334
|
"plugins/src/base/rules/reference/base-rules.md": "487ea1764c4b636ca4a33b78a90e925f028bb9a54182c0795cd1bbdc437a262d",
|
|
335
335
|
"plugins/src/base/rules/reference/claim-archaeology.md": "fff025d47848c768d5b2c7047de744b7151eb2e44148d2df058c87310859457b",
|
|
336
|
-
"plugins/src/base/rules/reference/claim-evidence-mapping.md": "
|
|
336
|
+
"plugins/src/base/rules/reference/claim-evidence-mapping.md": "97a7cf623f6df51d57f6d649036c04067d4fe42d4ab66230ac51306f0104b4a1",
|
|
337
337
|
"plugins/src/base/rules/reference/coding-philosophy.md": "fed8381f16a5d6793a49d84d5813d62125808cb2f4981a558b119cf63e2586d9",
|
|
338
|
-
"plugins/src/base/rules/reference/config-resolution.md": "
|
|
338
|
+
"plugins/src/base/rules/reference/config-resolution.md": "071b2c91f3b661ee493ea6f37d78f0fdea8004b4e4e7b5e94dcf232df7eceda7",
|
|
339
339
|
"plugins/src/base/rules/reference/convergent-review.md": "65f309c04095179eac28f8572da3c49c0e02741c4c594fe992ff643b341a4139",
|
|
340
340
|
"plugins/src/base/rules/reference/documentation-source-paths.md": "555155889c9cf279865b9d8fc554bdd461c96a3ec76a5001dfeb361a71056999",
|
|
341
341
|
"plugins/src/base/rules/reference/empirical-inquiry.md": "85f4552aa4c561677de40fd01bc6cccf5dbcf13865647db9df819d11f3cc3389",
|
|
@@ -356,7 +356,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
356
356
|
"plugins/src/base/rules/reference/tracked-work.md": "cc956e7a61d8f65bfc4e0e3bc4c3da1b5a9e541683aa17dc1850979d04abac24",
|
|
357
357
|
"plugins/src/base/rules/reference/upstream-to-lisa.md": "dcf07f8eba66aaf1d132bfaeff73cbf7576279822893235a3c3f8cbc4a4a3323",
|
|
358
358
|
"plugins/src/base/rules/reference/usage-accounting.md": "d2a24f8f176dbd900beb6e396fc669008b0be0c9033fac5c1c1ecc19002bd7c2",
|
|
359
|
-
"plugins/src/base/rules/reference/verification.md": "
|
|
359
|
+
"plugins/src/base/rules/reference/verification.md": "aeb348f8bcf4cd3dc1e6c8e3984afd4461bb2f1283055b9298dab3979c53a115",
|
|
360
360
|
"plugins/src/base/rules/reference/wiki-knowledge-source.md": "305d38e13984c2a64144f302336405d0ccbec493a6ed3ec67d210fed44940717",
|
|
361
361
|
"plugins/src/base/scripts/automation-run-record.mjs": "89143e06975d8333b137fd2bdb5f12bcd703403752337f00c25d18fefba6a4c8",
|
|
362
362
|
"plugins/src/base/scripts/automation-status-claude-adapter.mjs": "b1054acf4a5cbbe5354bd62a22b96533bcbc69b6cb9245976ceb8af638a04494",
|
|
@@ -405,7 +405,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
405
405
|
"plugins/src/base/skills/lisa-github-build-intake/SKILL.md": "1086a1ac7422a8d042140a82d4acef14bf9f1289792aef91138bdb3a89c3a0d9",
|
|
406
406
|
"plugins/src/base/skills/lisa-github-claim/SKILL.md": "71301c6d45d7eb5523e74aa7f070bb2becf57ca68fb8bde9e02ee937b78815f7",
|
|
407
407
|
"plugins/src/base/skills/lisa-github-create/SKILL.md": "2ac0b9812d0a76fa7609384189d0b67bcabc4d8b1e2188010109c6b1ea7c9aca",
|
|
408
|
-
"plugins/src/base/skills/lisa-github-evidence/SKILL.md": "
|
|
408
|
+
"plugins/src/base/skills/lisa-github-evidence/SKILL.md": "73142ef660766f4b4e4947ad25d00614b8fb9ad4dfa7e4f45b19379ae981d84d",
|
|
409
409
|
"plugins/src/base/skills/lisa-github-journey/SKILL.md": "0d13fb57fb2650c5909e208846a979e8dc08a6bbe507333093b1b7ae5bd2287c",
|
|
410
410
|
"plugins/src/base/skills/lisa-github-prd-intake/SKILL.md": "80898cc844785596b22c2c24c5abb92fefbe4b15ecfbf6deb59425e6f86e834b",
|
|
411
411
|
"plugins/src/base/skills/lisa-github-project-v2/SKILL.md": "80fac6d91ae36c6e130c220d9d35c5a20e6610d790fbb91343503f49cdb9ec3a",
|
|
@@ -430,7 +430,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
430
430
|
"plugins/src/base/skills/lisa-jira-build-intake/SKILL.md": "ce4ed1ea8ea8ab4a9fef406da3a6de1554ec15989848228e369225b0c0e74ccb",
|
|
431
431
|
"plugins/src/base/skills/lisa-jira-claim/SKILL.md": "9c4935441a4e6b55df0949178f96e927184c4909bffff8929b39a304bc5ac00a",
|
|
432
432
|
"plugins/src/base/skills/lisa-jira-create/SKILL.md": "d0bda0966b4e63aa4780ade9eab72252c2121ad512c45573ba1142aa8c1fed02",
|
|
433
|
-
"plugins/src/base/skills/lisa-jira-evidence/SKILL.md": "
|
|
433
|
+
"plugins/src/base/skills/lisa-jira-evidence/SKILL.md": "2da838a3fcc9ce4eec0c915d5df490e511b68928cec9a1de9c5a660f96b1900b",
|
|
434
434
|
"plugins/src/base/skills/lisa-jira-evidence/scripts/post-evidence.sh": "2cad7d1d81dc4630f6d94299335edefd98807b8df6a9d7966a38cb80cb8117aa",
|
|
435
435
|
"plugins/src/base/skills/lisa-jira-journey/SKILL.md": "26ae97efe0a996dd54ffa83eadaef03d6797bf716c67ee73d79fefe2fec1d599",
|
|
436
436
|
"plugins/src/base/skills/lisa-jira-journey/scripts/generate-templates.py": "906c6d02d2191f12573a452059d939bb85de6489c86f3626e0a206dd5af7e3b7",
|
|
@@ -449,7 +449,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
449
449
|
"plugins/src/base/skills/lisa-linear-build-intake/SKILL.md": "37dcf503f99dafb38bc6b721c48163d3bca3c52d28e7d1130a5bb9a379895d27",
|
|
450
450
|
"plugins/src/base/skills/lisa-linear-claim/SKILL.md": "07e99b5bf91da096f7fcec3b0055d2671794011a6134bbb2b2f39967cc4f8aea",
|
|
451
451
|
"plugins/src/base/skills/lisa-linear-create/SKILL.md": "4c769499b3db0fbf60e2f5fe1116ea3536012a9af5f78ee4858508090e340322",
|
|
452
|
-
"plugins/src/base/skills/lisa-linear-evidence/SKILL.md": "
|
|
452
|
+
"plugins/src/base/skills/lisa-linear-evidence/SKILL.md": "ea5dc01bc0ac315fa4f0335577cb7517237cdde50d85abdb69d257588d2d5fc9",
|
|
453
453
|
"plugins/src/base/skills/lisa-linear-journey/SKILL.md": "855f714cf5dcc932688dce94757d2e0e4b57f35c753135141482521ed6e01f49",
|
|
454
454
|
"plugins/src/base/skills/lisa-linear-prd-intake/SKILL.md": "8a2d577e16b3762093fd2a217a544896676ef00b4fc9d72903ae03853134eb3b",
|
|
455
455
|
"plugins/src/base/skills/lisa-linear-read-issue/SKILL.md": "a6b8241648ba4b7b9f1196a37e9924ffaccc5461f3ac2ee8ae283c58559e9717",
|
|
@@ -531,7 +531,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
531
531
|
"plugins/src/base/skills/lisa-tracker-build-intake/SKILL.md": "80467c0ebc3463c8392b55fc9c04d843f64acdee7ed7556bb7bd52a7e0432bce",
|
|
532
532
|
"plugins/src/base/skills/lisa-tracker-claim/SKILL.md": "481922dba26c4e62ae36193a2e1565860aecf7e344bf5c37b3a0759f42676846",
|
|
533
533
|
"plugins/src/base/skills/lisa-tracker-create/SKILL.md": "c381ee34e0a8c29b05e6946f1b095b8e546573e577e8d2e8a652f45d36b1c2d7",
|
|
534
|
-
"plugins/src/base/skills/lisa-tracker-evidence/SKILL.md": "
|
|
534
|
+
"plugins/src/base/skills/lisa-tracker-evidence/SKILL.md": "5d844840266dcec7f7e909951de0ac7fb8c4de9b2db405427d61c1be6646a511",
|
|
535
535
|
"plugins/src/base/skills/lisa-tracker-journey/SKILL.md": "65fe727adfdbcc22141ad009e89cd7d91195600377c5357d552d50ed98ecf66b",
|
|
536
536
|
"plugins/src/base/skills/lisa-tracker-read/SKILL.md": "2a1047a723193ce999c0d4dc4d205a49f231c724fd812581c78fdef9e8f58b30",
|
|
537
537
|
"plugins/src/base/skills/lisa-tracker-source-artifacts/SKILL.md": "dd61d236391e4c2624c1063fb109ef01fbd5fcb9608620cd3c07c8bf6794d0ac",
|
|
@@ -943,6 +943,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
943
943
|
"scripts/test-intent-routing.sh": "97b9dc86cbd805df8a7fdb8c99ffab9b8c5e751ba2e84c05420b2a124f80635d",
|
|
944
944
|
"scripts/update-node-version.ts": "a286750ac2006dd84209bb713e85f994d8d15d9bb596ec3e287a187672e5072d",
|
|
945
945
|
"scripts/update-test-skill-paths.mjs": "e26a3ac716c33013e22bf5223a58457452f5af2038218a0e3a51c244eab5ddc9",
|
|
946
|
+
"scripts/verify-health-contract-built.mjs": "9e090e3378325c4193e96ba03acff17fb63e40c9e7f2dd89296f72353ab6ba88",
|
|
946
947
|
"tsconfig/base.json": "d04a105ec81aa9dc69d230d4a83406d920c305b6fc13c641ebafde0c41fc658f",
|
|
947
948
|
"tsconfig/build.json": "a743350ea93b0e8d2151c974c5a8a4cbcf946cd7f06c40d83146079bde70afe1",
|
|
948
949
|
"tsconfig/cdk.json": "f9c0bfad5e40ce30bc037f08abf2f8feb78963484f2929ab17ec187ffe34b732",
|
|
@@ -1014,7 +1015,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
1014
1015
|
"typescript/merge/.claude/settings.json": "8cc0b88780f4cbca5effa196a4e272953f835e7dc46572a31ab1e74130bb5e48",
|
|
1015
1016
|
"typescript/merge/.oxlintrc.json": "4debc093acfd263eb81ae15894073ebf098513204f45f40b83fb8fa5353fa1f8",
|
|
1016
1017
|
"typescript/package-lisa/package.lisa.json": "7e99286c549c79b1c02c07a4313dcfe5b41b4ebb80a6fbbb8741dd74dc5f454d",
|
|
1017
|
-
"ui/README.md": "
|
|
1018
|
+
"ui/README.md": "e055b899ec7d40e8035dbf91ce1621872296d4d6b460dd113f80c80aed7198df",
|
|
1018
1019
|
"ui/index.html": "74c35220d1b8b7d8041374196eba2c821eb90d1b57d884f12afb695f47f5016c",
|
|
1019
1020
|
});
|
|
1020
1021
|
/** Exact paths tracked by the public Lisa repository at generation time. */
|
|
@@ -6191,6 +6192,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
6191
6192
|
"scripts/test-intent-routing.sh": true,
|
|
6192
6193
|
"scripts/update-node-version.ts": true,
|
|
6193
6194
|
"scripts/update-test-skill-paths.mjs": true,
|
|
6195
|
+
"scripts/verify-health-contract-built.mjs": true,
|
|
6194
6196
|
"sgconfig.yml": true,
|
|
6195
6197
|
"specs/.keep": true,
|
|
6196
6198
|
"src/agy/mcp-installer.ts": true,
|
|
@@ -6332,6 +6334,11 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
6332
6334
|
"src/detection/detectors/typescript.ts": true,
|
|
6333
6335
|
"src/detection/index.ts": true,
|
|
6334
6336
|
"src/errors/index.ts": true,
|
|
6337
|
+
"src/health/contract.ts": true,
|
|
6338
|
+
"src/health/directory-sync.ts": true,
|
|
6339
|
+
"src/health/index.ts": true,
|
|
6340
|
+
"src/health/storage.ts": true,
|
|
6341
|
+
"src/health/strict-validation.ts": true,
|
|
6335
6342
|
"src/index.ts": true,
|
|
6336
6343
|
"src/logging/console-logger.ts": true,
|
|
6337
6344
|
"src/logging/index.ts": true,
|
|
@@ -6475,6 +6482,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
6475
6482
|
"tests/unit/cli/ui-enabled-plugins-probe.test.ts": true,
|
|
6476
6483
|
"tests/unit/cli/ui-github-repo-map.test.ts": true,
|
|
6477
6484
|
"tests/unit/cli/ui-github-repo.test.ts": true,
|
|
6485
|
+
"tests/unit/cli/ui-health-schedule-write.test.ts": true,
|
|
6478
6486
|
"tests/unit/cli/ui-lisa-version-probe.test.ts": true,
|
|
6479
6487
|
"tests/unit/cli/ui-observability-providers-probe.test.ts": true,
|
|
6480
6488
|
"tests/unit/cli/ui-status-contract.test.ts": true,
|
|
@@ -6567,6 +6575,11 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
6567
6575
|
"tests/unit/core/upstream-attribution-integrity.test.ts": true,
|
|
6568
6576
|
"tests/unit/detection/detectors.test.ts": true,
|
|
6569
6577
|
"tests/unit/governance-contracts.test.ts": true,
|
|
6578
|
+
"tests/unit/health/contract.test.ts": true,
|
|
6579
|
+
"tests/unit/health/directory-sync.test.ts": true,
|
|
6580
|
+
"tests/unit/health/gitignore.test.ts": true,
|
|
6581
|
+
"tests/unit/health/package-surfaces.test.ts": true,
|
|
6582
|
+
"tests/unit/health/storage.test.ts": true,
|
|
6570
6583
|
"tests/unit/hooks/block-generated-artifact-edits.test.ts": true,
|
|
6571
6584
|
"tests/unit/hooks/block-no-verify.test.ts": true,
|
|
6572
6585
|
"tests/unit/hooks/block-shell-json-parsing.test.ts": true,
|
|
@@ -6641,6 +6654,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
6641
6654
|
"tests/unit/scripts/upstream-evidence-manifest.test.ts": true,
|
|
6642
6655
|
"tests/unit/scripts/verification-coverage.test.ts": true,
|
|
6643
6656
|
"tests/unit/strategies/agent-ready-ingest-boundary.test.ts": true,
|
|
6657
|
+
"tests/unit/strategies/artifact-identity-contract.test.ts": true,
|
|
6644
6658
|
"tests/unit/strategies/atlassian-access-acli-profile.test.ts": true,
|
|
6645
6659
|
"tests/unit/strategies/atlassian-access-changelog.test.ts": true,
|
|
6646
6660
|
"tests/unit/strategies/automation-run-history-helpers.ts": true,
|
|
@@ -6728,6 +6742,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
6728
6742
|
"tests/unit/strategies/mld-telemetry-contract.test.ts": true,
|
|
6729
6743
|
"tests/unit/strategies/monitor-threshold-compatibility.test.ts": true,
|
|
6730
6744
|
"tests/unit/strategies/multi-repo-container-decomposition.test.ts": true,
|
|
6745
|
+
"tests/unit/strategies/not-established-section-contract.test.ts": true,
|
|
6731
6746
|
"tests/unit/strategies/package-lisa.test.ts": true,
|
|
6732
6747
|
"tests/unit/strategies/parent-status-rollup.test.ts": true,
|
|
6733
6748
|
"tests/unit/strategies/plugin-sync-explain-fixtures.test.ts": true,
|
|
@@ -6786,6 +6801,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
6786
6801
|
"tests/unit/strategies/wiki-status-verdicts.test.ts": true,
|
|
6787
6802
|
"tests/unit/sync/config-sync-artifacts.test.ts": true,
|
|
6788
6803
|
"tests/unit/sync/config-sync.test.ts": true,
|
|
6804
|
+
"tests/unit/sync/health-schedule.test.ts": true,
|
|
6789
6805
|
"tests/unit/sync/legacy-monitor-thresholds.test.ts": true,
|
|
6790
6806
|
"tests/unit/templates/project-learnings-template.test.ts": true,
|
|
6791
6807
|
"tests/unit/templates/stack-tsconfig-shadowing.test.ts": true,
|