@codyswann/lisa 1.2.0 → 1.4.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/core/manifest.d.ts +5 -0
- package/dist/core/manifest.d.ts.map +1 -1
- package/dist/core/manifest.js +17 -0
- package/dist/core/manifest.js.map +1 -1
- package/dist/strategies/merge.d.ts +3 -3
- package/dist/strategies/merge.js +5 -5
- package/dist/strategies/merge.js.map +1 -1
- package/dist/utils/json-utils.d.ts +4 -4
- package/dist/utils/json-utils.js +4 -4
- package/package.json +1 -1
package/dist/core/manifest.d.ts
CHANGED
|
@@ -33,6 +33,11 @@ export declare class ManifestService implements IManifestService {
|
|
|
33
33
|
private manifestPath;
|
|
34
34
|
private lisaDir;
|
|
35
35
|
init(destDir: string, lisaDir: string): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Get the version of Lisa from package.json
|
|
38
|
+
* @returns The version string from package.json, or "unknown" if it cannot be read
|
|
39
|
+
*/
|
|
40
|
+
private getVersion;
|
|
36
41
|
record(relativePath: string, strategy: CopyStrategy): void;
|
|
37
42
|
finalize(): Promise<void>;
|
|
38
43
|
read(destDir: string): Promise<readonly ManifestEntry[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/core/manifest.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,4CAA4C;IAC5C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtD,0CAA0C;IAC1C,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAE3D,0CAA0C;IAC1C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1B,uCAAuC;IACvC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,aAAa,EAAE,CAAC,CAAC;IAEzD,+BAA+B;IAC/B,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC;AAED;;GAEG;AACH,qBAAa,eAAgB,YAAW,gBAAgB;IACtD,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,OAAO,CAAc;IAEvB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3D,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI;IAIpD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/core/manifest.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,4CAA4C;IAC5C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtD,0CAA0C;IAC1C,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAE3D,0CAA0C;IAC1C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1B,uCAAuC;IACvC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,aAAa,EAAE,CAAC,CAAC;IAEzD,+BAA+B;IAC/B,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC;AAED;;GAEG;AACH,qBAAa,eAAgB,YAAW,gBAAgB;IACtD,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,OAAO,CAAc;IAEvB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM3D;;;OAGG;YACW,UAAU;IAWxB,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI;IAIpD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBzB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,aAAa,EAAE,CAAC;IAgCxD,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAI7C;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;aAKlB,YAAY,EAAE,MAAM;IAJhD;;;OAGG;gBACyB,YAAY,EAAE,MAAM;CAIjD;AAaD;;GAEG;AACH,qBAAa,qBAAsB,YAAW,gBAAgB;IACtD,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,GAAG,IAAI;IAItD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,aAAa,EAAE,CAAC;IAMxD,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG9C"}
|
package/dist/core/manifest.js
CHANGED
|
@@ -17,6 +17,21 @@ export class ManifestService {
|
|
|
17
17
|
this.manifestPath = path.join(destDir, MANIFEST_FILENAME);
|
|
18
18
|
this.lisaDir = lisaDir;
|
|
19
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Get the version of Lisa from package.json
|
|
22
|
+
* @returns The version string from package.json, or "unknown" if it cannot be read
|
|
23
|
+
*/
|
|
24
|
+
async getVersion() {
|
|
25
|
+
try {
|
|
26
|
+
const packageJsonPath = path.join(this.lisaDir, "package.json");
|
|
27
|
+
const content = await readFile(packageJsonPath, "utf-8");
|
|
28
|
+
const packageJson = JSON.parse(content);
|
|
29
|
+
return packageJson.version || "unknown";
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return "unknown";
|
|
33
|
+
}
|
|
34
|
+
}
|
|
20
35
|
record(relativePath, strategy) {
|
|
21
36
|
this.entries.push({ strategy, relativePath });
|
|
22
37
|
}
|
|
@@ -24,9 +39,11 @@ export class ManifestService {
|
|
|
24
39
|
if (!this.manifestPath) {
|
|
25
40
|
throw new Error("Manifest not initialized");
|
|
26
41
|
}
|
|
42
|
+
const version = await this.getVersion();
|
|
27
43
|
const lines = [
|
|
28
44
|
"# Lisa manifest - DO NOT EDIT",
|
|
29
45
|
`# Generated: ${new Date().toISOString()}`,
|
|
46
|
+
`# Lisa version: ${version}`,
|
|
30
47
|
`# Lisa directory: ${this.lisaDir}`,
|
|
31
48
|
"",
|
|
32
49
|
...this.entries.map(entry => `${entry.strategy}:${entry.relativePath}`),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/core/manifest.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/core/manifest.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { FileOperationResult } from "../core/config.js";
|
|
2
2
|
import type { ICopyStrategy, StrategyContext } from "./strategy.interface.js";
|
|
3
3
|
/**
|
|
4
|
-
* Merge strategy: Deep merge JSON files (
|
|
5
|
-
* -
|
|
6
|
-
* -
|
|
4
|
+
* Merge strategy: Deep merge JSON files (Lisa values take precedence)
|
|
5
|
+
* - Project values serve as defaults
|
|
6
|
+
* - Lisa values take precedence on conflicts
|
|
7
7
|
* - Handle nested paths (.claude/settings.json)
|
|
8
8
|
*/
|
|
9
9
|
export declare class MergeStrategy implements ICopyStrategy {
|
package/dist/strategies/merge.js
CHANGED
|
@@ -4,9 +4,9 @@ import { ensureParentDir } from "../utils/file-operations.js";
|
|
|
4
4
|
import { readJson, writeJson, deepMerge } from "../utils/json-utils.js";
|
|
5
5
|
import { JsonMergeError } from "../errors/index.js";
|
|
6
6
|
/**
|
|
7
|
-
* Merge strategy: Deep merge JSON files (
|
|
8
|
-
* -
|
|
9
|
-
* -
|
|
7
|
+
* Merge strategy: Deep merge JSON files (Lisa values take precedence)
|
|
8
|
+
* - Project values serve as defaults
|
|
9
|
+
* - Lisa values take precedence on conflicts
|
|
10
10
|
* - Handle nested paths (.claude/settings.json)
|
|
11
11
|
*/
|
|
12
12
|
export class MergeStrategy {
|
|
@@ -38,8 +38,8 @@ export class MergeStrategy {
|
|
|
38
38
|
const destJson = await readJson(destPath).catch(() => {
|
|
39
39
|
throw new JsonMergeError(relativePath, `Failed to parse destination: ${destPath}`);
|
|
40
40
|
});
|
|
41
|
-
// Deep merge: Lisa (source)
|
|
42
|
-
const merged = deepMerge(
|
|
41
|
+
// Deep merge: Lisa (source) takes precedence, project (dest) provides defaults
|
|
42
|
+
const merged = deepMerge(destJson, sourceJson);
|
|
43
43
|
// Normalize for comparison (parse and re-stringify both)
|
|
44
44
|
const normalizedDest = JSON.stringify(destJson, null, 2);
|
|
45
45
|
const normalizedMerged = JSON.stringify(merged, null, 2);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/strategies/merge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,OAAO,aAAa;IACf,IAAI,GAAG,OAAgB,CAAC;IAEjC;;;;;;;OAOG;IACH,KAAK,CAAC,KAAK,CACT,UAAkB,EAClB,QAAgB,EAChB,YAAoB,EACpB,OAAwB;QAExB,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;QACnD,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAElD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,4CAA4C;YAC5C,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;gBAChC,MAAM,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBACrC,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC;YACD,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QACjE,CAAC;QAED,gCAAgC;QAChC,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAS,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YAC/D,MAAM,IAAI,cAAc,CACtB,YAAY,EACZ,2BAA2B,UAAU,EAAE,CACxC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAS,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YAC3D,MAAM,IAAI,cAAc,CACtB,YAAY,EACZ,gCAAgC,QAAQ,EAAE,CAC3C,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH
|
|
1
|
+
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/strategies/merge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,OAAO,aAAa;IACf,IAAI,GAAG,OAAgB,CAAC;IAEjC;;;;;;;OAOG;IACH,KAAK,CAAC,KAAK,CACT,UAAkB,EAClB,QAAgB,EAChB,YAAoB,EACpB,OAAwB;QAExB,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;QACnD,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAElD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,4CAA4C;YAC5C,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;gBAChC,MAAM,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBACrC,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC;YACD,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QACjE,CAAC;QAED,gCAAgC;QAChC,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAS,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YAC/D,MAAM,IAAI,cAAc,CACtB,YAAY,EACZ,2BAA2B,UAAU,EAAE,CACxC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAS,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YAC3D,MAAM,IAAI,cAAc,CACtB,YAAY,EACZ,gCAAgC,QAAQ,EAAE,CAC3C,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,+EAA+E;QAC/E,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAE/C,yDAAyD;QACzD,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACzD,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAEzD,IAAI,cAAc,KAAK,gBAAgB,EAAE,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACnB,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC;YACD,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAClE,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC3B,MAAM,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAClC,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IACjE,CAAC;CACF"}
|
|
@@ -24,11 +24,11 @@ export declare function writeJson(filePath: string, data: unknown, spaces?: numb
|
|
|
24
24
|
*/
|
|
25
25
|
export declare function isValidJson(filePath: string): Promise<boolean>;
|
|
26
26
|
/**
|
|
27
|
-
* Deep merge two objects (
|
|
27
|
+
* Deep merge two objects (Lisa values take precedence on conflicts)
|
|
28
28
|
* Uses lodash.merge for deep merging
|
|
29
|
-
* @param base Base object
|
|
30
|
-
* @param override Override object with precedence
|
|
31
|
-
* @returns Merged object
|
|
29
|
+
* @param base Base object (project values)
|
|
30
|
+
* @param override Override object with precedence (Lisa values)
|
|
31
|
+
* @returns Merged object with Lisa values winning conflicts
|
|
32
32
|
*/
|
|
33
33
|
export declare function deepMerge<T extends object>(base: T, override: T): T;
|
|
34
34
|
//# sourceMappingURL=json-utils.d.ts.map
|
package/dist/utils/json-utils.js
CHANGED
|
@@ -56,11 +56,11 @@ export async function isValidJson(filePath) {
|
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
/**
|
|
59
|
-
* Deep merge two objects (
|
|
59
|
+
* Deep merge two objects (Lisa values take precedence on conflicts)
|
|
60
60
|
* Uses lodash.merge for deep merging
|
|
61
|
-
* @param base Base object
|
|
62
|
-
* @param override Override object with precedence
|
|
63
|
-
* @returns Merged object
|
|
61
|
+
* @param base Base object (project values)
|
|
62
|
+
* @param override Override object with precedence (Lisa values)
|
|
63
|
+
* @returns Merged object with Lisa values winning conflicts
|
|
64
64
|
*/
|
|
65
65
|
export function deepMerge(base, override) {
|
|
66
66
|
// Create a new object to avoid mutating inputs
|
package/package.json
CHANGED
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
"@ast-grep/cli"
|
|
80
80
|
],
|
|
81
81
|
"name": "@codyswann/lisa",
|
|
82
|
-
"version": "1.
|
|
82
|
+
"version": "1.4.0",
|
|
83
83
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
84
84
|
"main": "dist/index.js",
|
|
85
85
|
"bin": {
|