@codyswann/lisa 2.163.2 → 2.163.4

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.
Files changed (72) hide show
  1. package/dist/cli/apply.d.ts.map +1 -1
  2. package/dist/cli/apply.js +35 -11
  3. package/dist/cli/apply.js.map +1 -1
  4. package/dist/core/bootstrap-environment.d.ts +32 -0
  5. package/dist/core/bootstrap-environment.d.ts.map +1 -0
  6. package/dist/core/bootstrap-environment.js +51 -0
  7. package/dist/core/bootstrap-environment.js.map +1 -0
  8. package/dist/core/index.d.ts +1 -0
  9. package/dist/core/index.d.ts.map +1 -1
  10. package/dist/core/index.js +1 -0
  11. package/dist/core/index.js.map +1 -1
  12. package/dist/strategies/package-lisa-types.d.ts +19 -1
  13. package/dist/strategies/package-lisa-types.d.ts.map +1 -1
  14. package/dist/strategies/package-lisa.d.ts +17 -2
  15. package/dist/strategies/package-lisa.d.ts.map +1 -1
  16. package/dist/strategies/package-lisa.js +34 -3
  17. package/dist/strategies/package-lisa.js.map +1 -1
  18. package/harper-fabric/package-lisa/package.lisa.json +6 -1
  19. package/package.json +2 -2
  20. package/phaser/package-lisa/package.lisa.json +10 -2
  21. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  22. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  23. package/plugins/lisa-agy/plugin.json +1 -1
  24. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  25. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  26. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  27. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  28. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  29. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  30. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  31. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  32. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  33. package/plugins/lisa-expo-agy/plugin.json +1 -1
  34. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  35. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  36. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  37. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  38. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  39. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  40. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  41. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  42. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  43. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  44. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  45. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  46. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  47. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  48. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  49. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  50. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  51. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  52. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  53. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  54. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  55. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  56. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  57. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  58. package/plugins/lisa-rails-agy/plugin.json +1 -1
  59. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  60. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  61. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  62. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  63. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  64. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  65. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  66. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  67. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  68. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  69. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  70. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  71. package/typescript/copy-contents/.husky/pre-push +13 -3
  72. package/typescript/package-lisa/package.lisa.json +6 -1
@@ -1 +1 @@
1
- {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../src/cli/apply.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,UAAU,EAAsB,MAAM,qBAAqB,CAAC;AAsD1E;;;;;;;;;;GAUG;AACH,wBAAsB,QAAQ,CAC5B,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,IAAI,CAAC,CAkEf"}
1
+ {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../src/cli/apply.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,UAAU,EAAsB,MAAM,qBAAqB,CAAC;AAgG1E;;;;;;;;;;GAUG;AACH,wBAAsB,QAAQ,CAC5B,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,IAAI,CAAC,CAiEf"}
package/dist/cli/apply.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import * as path from "node:path";
2
2
  import { fileURLToPath } from "node:url";
3
+ import { getBootstrapApplySkipNotice } from "../core/bootstrap-environment.js";
3
4
  import { ACCEPTED_HARNESS_INPUTS } from "../core/config.js";
4
5
  import { Lisa } from "../core/lisa.js";
5
6
  import { projectConfigExists, readProjectConfig, resolveHarness, shouldPersistProjectConfig, writeProjectConfig, } from "../core/project-config.js";
@@ -42,6 +43,28 @@ function printUsageAndExit() {
42
43
  console.log(" lisa --harness=all . # Emit for every agent (alias for fleet)");
43
44
  process.exit(1);
44
45
  }
46
+ /**
47
+ * Resolve the required destination argument or print the legacy usage error.
48
+ * @param destination - Destination argument from the CLI
49
+ * @returns Absolute destination path
50
+ */
51
+ function resolveDestinationOrExit(destination) {
52
+ if (!destination) {
53
+ printUsageAndExit();
54
+ }
55
+ return toAbsolutePath(destination);
56
+ }
57
+ /**
58
+ * Persist the resolved harness when a real apply needs to backfill or update
59
+ * `.lisa.config.json`.
60
+ * @param destDir - Destination project directory
61
+ * @param input - Existing config state and resolved harness values
62
+ */
63
+ async function persistProjectConfigIfNeeded(destDir, input) {
64
+ if (!shouldPersistProjectConfig(input))
65
+ return;
66
+ await writeProjectConfig(destDir, { harness: input.resolvedHarness });
67
+ }
45
68
  /**
46
69
  * Apply Lisa to the given destination with the given options.
47
70
  *
@@ -54,12 +77,16 @@ function printUsageAndExit() {
54
77
  * @returns Promise that completes when Lisa finishes
55
78
  */
56
79
  export async function runApply(destination, options) {
57
- if (!destination) {
58
- printUsageAndExit();
59
- }
60
80
  const dryRun = options.dryRun ?? options.validate ?? false;
61
81
  const yesMode = options.yes ?? false;
62
- const destDir = toAbsolutePath(destination);
82
+ const validateOnly = options.validate ?? false;
83
+ const destDir = resolveDestinationOrExit(destination);
84
+ const logger = new ConsoleLogger();
85
+ const skipNotice = getBootstrapApplySkipNotice({ validateOnly });
86
+ if (skipNotice !== undefined) {
87
+ console.log(skipNotice);
88
+ return;
89
+ }
63
90
  // Resolve harness with precedence: CLI flag > .lisa.config.json > default
64
91
  const projectConfig = await readProjectConfig(destDir);
65
92
  const configFileExists = await projectConfigExists(destDir);
@@ -69,11 +96,10 @@ export async function runApply(destination, options) {
69
96
  destDir,
70
97
  dryRun,
71
98
  yesMode,
72
- validateOnly: options.validate ?? false,
99
+ validateOnly,
73
100
  skipGitCheck: options.skipGitCheck ?? false,
74
101
  harness,
75
102
  };
76
- const logger = new ConsoleLogger();
77
103
  const deps = createDependencies(dryRun, yesMode, logger);
78
104
  const lisa = new Lisa(config, deps);
79
105
  try {
@@ -89,15 +115,13 @@ export async function runApply(destination, options) {
89
115
  // resolved harness (the default when no --harness was passed) so no
90
116
  // project is left config-less; an existing file is only rewritten when
91
117
  // --harness actually changes the persisted value, avoiding churn.
92
- if (!options.validate &&
93
- !dryRun &&
94
- shouldPersistProjectConfig({
118
+ if (!options.validate && !dryRun) {
119
+ await persistProjectConfigIfNeeded(destDir, {
95
120
  fileExists: configFileExists,
96
121
  flagHarness: options.harness,
97
122
  existingHarness: projectConfig.harness,
98
123
  resolvedHarness: harness,
99
- })) {
100
- await writeProjectConfig(destDir, { harness });
124
+ });
101
125
  }
102
126
  // After a real apply, surface (read-only) whether any locally-authored
103
127
  // agent definitions need cross-pollinating to the project's other agents.
@@ -1 +1 @@
1
- {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/cli/apply.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAmB,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE1E,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D;;;GAGG;AACH,SAAS,UAAU;IACjB,sCAAsC;IACtC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB;IACxB,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACxB,OAAO,CAAC,GAAG,CACT,oEAAoE,CACrE,CAAC;IACF,OAAO,CAAC,GAAG,CACT,wFAAwF,CACzF,CAAC;IACF,OAAO,CAAC,GAAG,CACT,6EAA6E,CAC9E,CAAC;IACF,OAAO,CAAC,GAAG,CACT,kFAAkF,CACnF,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CACT,6DAA6D,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,mCAAmC,CACpI,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACzB,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,CACT,mEAAmE,CACpE,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,CACT,iFAAiF,CAClF,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,WAA+B,EAC/B,OAAmB;IAEnB,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,iBAAiB,EAAE,CAAC;IACtB,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC;IAC3D,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,IAAI,KAAK,CAAC;IACrC,MAAM,OAAO,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IAE5C,0EAA0E;IAC1E,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,gBAAgB,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAE/D,MAAM,MAAM,GAAe;QACzB,OAAO,EAAE,UAAU,EAAE;QACrB,OAAO;QACP,MAAM;QACN,OAAO;QACP,YAAY,EAAE,OAAO,CAAC,QAAQ,IAAI,KAAK;QACvC,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,KAAK;QAC3C,OAAO;KACR,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAEpC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ;YAC7B,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE;YACvB,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAEvB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,mEAAmE;QACnE,oEAAoE;QACpE,oEAAoE;QACpE,uEAAuE;QACvE,kEAAkE;QAClE,IACE,CAAC,OAAO,CAAC,QAAQ;YACjB,CAAC,MAAM;YACP,0BAA0B,CAAC;gBACzB,UAAU,EAAE,gBAAgB;gBAC5B,WAAW,EAAE,OAAO,CAAC,OAAO;gBAC5B,eAAe,EAAE,aAAa,CAAC,OAAO;gBACtC,eAAe,EAAE,OAAO;aACzB,CAAC,EACF,CAAC;YACD,MAAM,kBAAkB,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,uEAAuE;QACvE,0EAA0E;QAC1E,wEAAwE;QACxE,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;YACjC,MAAM,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,MAAM,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/cli/apply.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ export declare const LISA_BOOTSTRAP_ENV = "LISA_BOOTSTRAP";
2
+ export declare const BUILD_ENV_FINGERPRINTS: readonly string[];
3
+ export declare const BOOTSTRAP_SKIP_NOTICE = "lisa: skipped (non-interactive environment; set LISA_BOOTSTRAP=1 to force)";
4
+ /**
5
+ * Runtime state used by the bootstrap guard.
6
+ */
7
+ export interface BootstrapEnvironment {
8
+ /** Environment variables visible to the current process. */
9
+ readonly env: NodeJS.ProcessEnv;
10
+ /** Whether stdin is attached to an interactive TTY. */
11
+ readonly stdinIsTTY: boolean;
12
+ }
13
+ /**
14
+ * Options for deciding whether the apply entry point should be skipped.
15
+ */
16
+ export interface BootstrapGuardOptions {
17
+ /** Whether the caller requested validate-only mode. */
18
+ readonly validateOnly: boolean;
19
+ /** Injectable runtime state for tests. Defaults to the current process. */
20
+ readonly environment?: BootstrapEnvironment;
21
+ }
22
+ /**
23
+ * Decide whether the Lisa apply entry point should refuse to run.
24
+ *
25
+ * Validate mode is intentionally exempt because it never writes project files.
26
+ * Real apply must be explicitly opted in when running without a TTY or under a
27
+ * known build-system fingerprint.
28
+ * @param options - Guard options and injectable runtime state
29
+ * @returns The skip notice when apply should be skipped, otherwise undefined
30
+ */
31
+ export declare function getBootstrapApplySkipNotice(options: BootstrapGuardOptions): string | undefined;
32
+ //# sourceMappingURL=bootstrap-environment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap-environment.d.ts","sourceRoot":"","sources":["../../src/core/bootstrap-environment.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,mBAAmB,CAAC;AAEnD,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAUnD,CAAC;AAEF,eAAO,MAAM,qBAAqB,+EAC4C,CAAC;AAE/E;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,4DAA4D;IAC5D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,uDAAuD;IACvD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,uDAAuD;IACvD,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,CAAC,EAAE,oBAAoB,CAAC;CAC7C;AAaD;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,qBAAqB,GAC7B,MAAM,GAAG,SAAS,CAoBpB"}
@@ -0,0 +1,51 @@
1
+ export const LISA_BOOTSTRAP_ENV = "LISA_BOOTSTRAP";
2
+ export const BUILD_ENV_FINGERPRINTS = [
3
+ "CI",
4
+ "CODEBUILD_BUILD_ID",
5
+ "GITHUB_ACTIONS",
6
+ "EAS_BUILD",
7
+ "VERCEL",
8
+ "BUILDKITE",
9
+ "JENKINS_URL",
10
+ "AMPLIFY_APP_ID",
11
+ "AWS_BRANCH",
12
+ ];
13
+ export const BOOTSTRAP_SKIP_NOTICE = "lisa: skipped (non-interactive environment; set LISA_BOOTSTRAP=1 to force)";
14
+ /**
15
+ * Read process.env through one explicit, reviewable exception to the app-template
16
+ * config access ban. Lisa's CLI bootstrap guard must inspect externally supplied
17
+ * build-system fingerprints before any project config is available.
18
+ * @returns The current process environment
19
+ */
20
+ function readProcessEnv() {
21
+ // eslint-disable-next-line no-restricted-syntax -- CLI bootstrap guard must read externally supplied build env vars once
22
+ return process.env;
23
+ }
24
+ /**
25
+ * Decide whether the Lisa apply entry point should refuse to run.
26
+ *
27
+ * Validate mode is intentionally exempt because it never writes project files.
28
+ * Real apply must be explicitly opted in when running without a TTY or under a
29
+ * known build-system fingerprint.
30
+ * @param options - Guard options and injectable runtime state
31
+ * @returns The skip notice when apply should be skipped, otherwise undefined
32
+ */
33
+ export function getBootstrapApplySkipNotice(options) {
34
+ if (options.validateOnly)
35
+ return undefined;
36
+ const environment = options.environment ?? {
37
+ env: readProcessEnv(),
38
+ stdinIsTTY: process.stdin.isTTY === true,
39
+ };
40
+ if (environment.env[LISA_BOOTSTRAP_ENV] === "1")
41
+ return undefined;
42
+ const hasBuildEnvFingerprint = BUILD_ENV_FINGERPRINTS.some(name => {
43
+ const value = environment.env[name];
44
+ return value !== undefined && value !== "";
45
+ });
46
+ if (!environment.stdinIsTTY || hasBuildEnvFingerprint) {
47
+ return BOOTSTRAP_SKIP_NOTICE;
48
+ }
49
+ return undefined;
50
+ }
51
+ //# sourceMappingURL=bootstrap-environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap-environment.js","sourceRoot":"","sources":["../../src/core/bootstrap-environment.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AAEnD,MAAM,CAAC,MAAM,sBAAsB,GAAsB;IACvD,IAAI;IACJ,oBAAoB;IACpB,gBAAgB;IAChB,WAAW;IACX,QAAQ;IACR,WAAW;IACX,aAAa;IACb,gBAAgB;IAChB,YAAY;CACb,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAChC,4EAA4E,CAAC;AAsB/E;;;;;GAKG;AACH,SAAS,cAAc;IACrB,yHAAyH;IACzH,OAAO,OAAO,CAAC,GAAG,CAAC;AACrB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,2BAA2B,CACzC,OAA8B;IAE9B,IAAI,OAAO,CAAC,YAAY;QAAE,OAAO,SAAS,CAAC;IAE3C,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI;QACzC,GAAG,EAAE,cAAc,EAAE;QACrB,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI;KACzC,CAAC;IAEF,IAAI,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC,KAAK,GAAG;QAAE,OAAO,SAAS,CAAC;IAElE,MAAM,sBAAsB,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAChE,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,WAAW,CAAC,UAAU,IAAI,sBAAsB,EAAE,CAAC;QACtD,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export * from "./config.js";
2
+ export * from "./bootstrap-environment.js";
2
3
  export { Lisa, type LisaDependencies } from "./lisa.js";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export * from "./config.js";
2
+ export * from "./bootstrap-environment.js";
2
3
  export { Lisa } from "./lisa.js";
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAyB,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAyB,MAAM,WAAW,CAAC"}
@@ -31,12 +31,24 @@ export interface DefaultsSection {
31
31
  export interface MergeSection {
32
32
  [key: string]: unknown[];
33
33
  }
34
+ /**
35
+ * Remove behavior: Keys Lisa deletes from the named package.json section.
36
+ * Used to retire keys Lisa previously forced (e.g. a renamed script) so they
37
+ * don't linger in downstream projects forever. Applied after force/defaults/
38
+ * merge, so a removed key cannot be reintroduced by an earlier phase in the
39
+ * same apply. Each entry maps a package.json section (e.g. "scripts") to the
40
+ * list of keys to delete from it.
41
+ */
42
+ export interface RemoveSection {
43
+ [key: string]: string[];
44
+ }
34
45
  /**
35
46
  * Template structure for package.lisa.json files
36
47
  * @remarks
37
48
  * - `force`: Sections where Lisa's values completely replace project's values
38
49
  * - `defaults`: Sections where project's values take precedence if they exist
39
50
  * - `merge`: Array sections that are concatenated and deduplicated
51
+ * - `remove`: Section keys Lisa deletes from the project (retired keys)
40
52
  *
41
53
  * When multiple package.lisa.json files are loaded from the inheritance chain (all → typescript → specific),
42
54
  * they are merged with child types overriding parent types in each section.
@@ -59,6 +71,9 @@ export interface MergeSection {
59
71
  * },
60
72
  * "merge": {
61
73
  * "trustedDependencies": ["@ast-grep/cli"]
74
+ * },
75
+ * "remove": {
76
+ * "scripts": ["knip"]
62
77
  * }
63
78
  * }
64
79
  * ```
@@ -70,14 +85,17 @@ export interface PackageLisaTemplate {
70
85
  defaults?: Record<string, unknown>;
71
86
  /** Array sections that are concatenated and deduplicated */
72
87
  merge?: Record<string, unknown[]>;
88
+ /** Section keys Lisa deletes from the project (retired keys) */
89
+ remove?: Record<string, string[]>;
73
90
  }
74
91
  /**
75
- * Merged template with resolved force/defaults/merge sections
92
+ * Merged template with resolved force/defaults/merge/remove sections
76
93
  * ready to be applied to a project's package.json
77
94
  */
78
95
  export interface ResolvedPackageLisaTemplate extends PackageLisaTemplate {
79
96
  force: Record<string, unknown>;
80
97
  defaults: Record<string, unknown>;
81
98
  merge: Record<string, unknown[]>;
99
+ remove: Record<string, string[]>;
82
100
  }
83
101
  //# sourceMappingURL=package-lisa-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"package-lisa-types.d.ts","sourceRoot":"","sources":["../../src/strategies/package-lisa-types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,EAAE,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,WAAW,mBAAmB;IAClC,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEhC,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;CACnC;AAED;;;GAGG;AACH,MAAM,WAAW,2BAA4B,SAAQ,mBAAmB;IACtE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;CAClC"}
1
+ {"version":3,"file":"package-lisa-types.d.ts","sourceRoot":"","sources":["../../src/strategies/package-lisa-types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,EAAE,CAAC;CAC1B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,WAAW,mBAAmB;IAClC,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEhC,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAElC,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACnC;AAED;;;GAGG;AACH,MAAM,WAAW,2BAA4B,SAAQ,mBAAmB;IACtE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAClC"}
@@ -143,7 +143,7 @@ export declare class PackageLisaStrategy implements ICopyStrategy {
143
143
  /**
144
144
  * Merge two template objects
145
145
  * Child template (override) values win in force and defaults.
146
- * Merge arrays are concatenated without deduplication at merge time.
146
+ * Merge and remove arrays are concatenated without deduplication at merge time.
147
147
  * @param parent - Parent template (e.g., "all" or "typescript")
148
148
  * @param child - Child template (e.g., "expo") that overrides parent
149
149
  * @returns Merged template
@@ -160,18 +160,33 @@ export declare class PackageLisaStrategy implements ICopyStrategy {
160
160
  */
161
161
  private mergeMergeSections;
162
162
  /**
163
- * Apply force/defaults/merge logic to project's package.json
163
+ * Apply force/defaults/merge/remove logic to project's package.json
164
164
  * @remarks
165
165
  * Processing order:
166
166
  * 1. Apply force: Deep merge with Lisa values winning (entire section replaced)
167
167
  * 2. Apply defaults: Deep merge with project values winning (only set if missing)
168
168
  * 3. Apply merge: Concatenate arrays and deduplicate
169
+ * 4. Apply remove: Delete retired keys from their sections (runs last so an
170
+ * earlier phase cannot reintroduce a removed key)
169
171
  * @param projectJson - Current project's package.json
170
172
  * @param template - Merged package.lisa.json template
171
173
  * @returns Modified package.json
172
174
  * @private
173
175
  */
174
176
  private applyTemplate;
177
+ /**
178
+ * Delete retired keys from their package.json sections
179
+ * @remarks
180
+ * Used to clean up keys Lisa previously forced and has since renamed or
181
+ * retired (e.g. the "knip" script renamed to "knip:check"). Runs after
182
+ * force/defaults/merge so a removed key cannot be reintroduced within the
183
+ * same apply. Sections that don't exist or aren't objects are left alone.
184
+ * @param packageJson - Current package.json after force/defaults/merge applied
185
+ * @param removeSections - Map of section name to keys to delete from it
186
+ * @returns Package.json with retired keys removed
187
+ * @private
188
+ */
189
+ private applyRemoveSections;
175
190
  /**
176
191
  * Apply merge-section arrays to package.json
177
192
  * Concatenates Lisa's items and project's items, deduplicated by JSON.stringify equality.
@@ -1 +1 @@
1
- {"version":3,"file":"package-lisa.d.ts","sourceRoot":"","sources":["../../src/strategies/package-lisa.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAe,MAAM,mBAAmB,CAAC;AAE1E,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAc9E;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;;;GAMG;AACH,qBAAa,mBAAoB,YAAW,aAAa;IACvD,QAAQ,CAAC,IAAI,EAAG,cAAc,CAAU;IAExC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkB;IAC/C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmB;IACjD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAc;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAc;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmB;IACjD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAc;IACvC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA0C;IAC5E,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAGhC;IAEF;;;;;;;;;;;;;OAaG;IACG,KAAK,CACT,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,mBAAmB,CAAC;IAqD/B;;;;;;;;OAQG;YACW,iBAAiB;IAa/B;;;;;;;;OAQG;YACW,iBAAiB;IAwB/B;;;;;;OAMG;YACW,gBAAgB;IAsB9B;;;;;;OAMG;YACW,kBAAkB;IA0DhC;;;;;;OAMG;YACW,+BAA+B;IAkB7C;;;;;;OAMG;YACW,wBAAwB;IAgBtC;;;;;;OAMG;YACW,8BAA8B;IAmB5C;;;;;;OAMG;YACW,gBAAgB;IAW9B;;;;;;;;;OASG;YACW,qBAAqB;IAwCnC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,mBAAmB;IAgB3B;;;;;;;;OAQG;IACH,OAAO,CAAC,cAAc;IAWtB;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;IAmB1B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,aAAa;IAoBrB;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;IAsB1B;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;CA2B1B"}
1
+ {"version":3,"file":"package-lisa.d.ts","sourceRoot":"","sources":["../../src/strategies/package-lisa.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAe,MAAM,mBAAmB,CAAC;AAE1E,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAc9E;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;;;GAMG;AACH,qBAAa,mBAAoB,YAAW,aAAa;IACvD,QAAQ,CAAC,IAAI,EAAG,cAAc,CAAU;IAExC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkB;IAC/C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmB;IACjD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAc;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAc;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmB;IACjD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAc;IACvC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA0C;IAC5E,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAGhC;IAEF;;;;;;;;;;;;;OAaG;IACG,KAAK,CACT,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,mBAAmB,CAAC;IAqD/B;;;;;;;;OAQG;YACW,iBAAiB;IAa/B;;;;;;;;OAQG;YACW,iBAAiB;IAwB/B;;;;;;OAMG;YACW,gBAAgB;IAsB9B;;;;;;OAMG;YACW,kBAAkB;IA0DhC;;;;;;OAMG;YACW,+BAA+B;IAkB7C;;;;;;OAMG;YACW,wBAAwB;IAgBtC;;;;;;OAMG;YACW,8BAA8B;IAmB5C;;;;;;OAMG;YACW,gBAAgB;IAW9B;;;;;;;;;OASG;YACW,qBAAqB;IAyCnC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,mBAAmB;IAgB3B;;;;;;;;OAQG;IACH,OAAO,CAAC,cAAc;IAetB;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;IAmB1B;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,aAAa;IAuBrB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,mBAAmB;IAwB3B;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;IAsB1B;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;CA2B1B"}
@@ -275,6 +275,7 @@ export class PackageLisaStrategy {
275
275
  force: {},
276
276
  defaults: {},
277
277
  merge: {},
278
+ remove: {},
278
279
  };
279
280
  // Expand types to include parents (e.g., expo includes typescript)
280
281
  const allTypes = this.expandTypeHierarchy(detectedTypes);
@@ -320,7 +321,7 @@ export class PackageLisaStrategy {
320
321
  /**
321
322
  * Merge two template objects
322
323
  * Child template (override) values win in force and defaults.
323
- * Merge arrays are concatenated without deduplication at merge time.
324
+ * Merge and remove arrays are concatenated without deduplication at merge time.
324
325
  * @param parent - Parent template (e.g., "all" or "typescript")
325
326
  * @param child - Child template (e.g., "expo") that overrides parent
326
327
  * @returns Merged template
@@ -331,6 +332,7 @@ export class PackageLisaStrategy {
331
332
  force: deepMerge(parent.force, child.force || {}),
332
333
  defaults: deepMerge(parent.defaults, child.defaults || {}),
333
334
  merge: this.mergeMergeSections(parent.merge, child.merge || {}),
335
+ remove: this.mergeMergeSections(parent.remove, child.remove || {}),
334
336
  };
335
337
  }
336
338
  /**
@@ -356,12 +358,14 @@ export class PackageLisaStrategy {
356
358
  return result;
357
359
  }
358
360
  /**
359
- * Apply force/defaults/merge logic to project's package.json
361
+ * Apply force/defaults/merge/remove logic to project's package.json
360
362
  * @remarks
361
363
  * Processing order:
362
364
  * 1. Apply force: Deep merge with Lisa values winning (entire section replaced)
363
365
  * 2. Apply defaults: Deep merge with project values winning (only set if missing)
364
366
  * 3. Apply merge: Concatenate arrays and deduplicate
367
+ * 4. Apply remove: Delete retired keys from their sections (runs last so an
368
+ * earlier phase cannot reintroduce a removed key)
365
369
  * @param projectJson - Current project's package.json
366
370
  * @param template - Merged package.lisa.json template
367
371
  * @returns Modified package.json
@@ -373,7 +377,34 @@ export class PackageLisaStrategy {
373
377
  // Phase 2: Apply defaults (project's values preserved, Lisa provides fallback)
374
378
  const afterDefaults = deepMerge(template.defaults, afterForce);
375
379
  // Phase 3: Apply merge (concatenate and deduplicate arrays)
376
- return this.applyMergeSections(afterDefaults, template.merge);
380
+ const afterMerge = this.applyMergeSections(afterDefaults, template.merge);
381
+ // Phase 4: Apply remove (delete retired keys from their sections)
382
+ return this.applyRemoveSections(afterMerge, template.remove);
383
+ }
384
+ /**
385
+ * Delete retired keys from their package.json sections
386
+ * @remarks
387
+ * Used to clean up keys Lisa previously forced and has since renamed or
388
+ * retired (e.g. the "knip" script renamed to "knip:check"). Runs after
389
+ * force/defaults/merge so a removed key cannot be reintroduced within the
390
+ * same apply. Sections that don't exist or aren't objects are left alone.
391
+ * @param packageJson - Current package.json after force/defaults/merge applied
392
+ * @param removeSections - Map of section name to keys to delete from it
393
+ * @returns Package.json with retired keys removed
394
+ * @private
395
+ */
396
+ applyRemoveSections(packageJson, removeSections) {
397
+ const result = { ...packageJson };
398
+ for (const [sectionName, keysToRemove] of Object.entries(removeSections)) {
399
+ const section = result[sectionName];
400
+ if (!section || typeof section !== "object" || Array.isArray(section)) {
401
+ // Section missing or not a plain object; nothing to remove
402
+ continue;
403
+ }
404
+ const cleaned = Object.fromEntries(Object.entries(section).filter(([key]) => !keysToRemove.includes(key)));
405
+ result[sectionName] = cleaned;
406
+ }
407
+ return result;
377
408
  }
378
409
  /**
379
410
  * Apply merge-section arrays to package.json
@@ -1 +1 @@
1
- {"version":3,"file":"package-lisa.js","sourceRoot":"","sources":["../../src/strategies/package-lisa.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"package-lisa.js","sourceRoot":"","sources":["../../src/strategies/package-lisa.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@
11
11
  "lint:slow": "eslint . --config eslint.slow.config.ts --quiet",
12
12
  "format:check": "prettier --check .",
13
13
  "format": "prettier --check . --write",
14
- "knip": "knip",
14
+ "knip:check": "knip",
15
15
  "knip:fix": "knip --fix",
16
16
  "sg:scan": "ast-grep scan",
17
17
  "start": "harperdb start",
@@ -78,5 +78,10 @@
78
78
  "dev:server": "bun run build && node dist/scripts/dev_server.js",
79
79
  "deploy": "bun run build && node dist/scripts/deploy.js"
80
80
  }
81
+ },
82
+ "remove": {
83
+ "scripts": [
84
+ "knip"
85
+ ]
81
86
  }
82
87
  }
package/package.json CHANGED
@@ -14,7 +14,7 @@
14
14
  "typecheck": "tsc --noEmit",
15
15
  "format:check": "prettier --check .",
16
16
  "format": "prettier --check . --write",
17
- "knip": "knip",
17
+ "knip:check": "knip",
18
18
  "knip:fix": "knip --fix",
19
19
  "sg:scan": "ast-grep scan",
20
20
  "build:plugins": "bash scripts/build-plugins.sh",
@@ -85,7 +85,7 @@
85
85
  "lodash": ">=4.18.1"
86
86
  },
87
87
  "name": "@codyswann/lisa",
88
- "version": "2.163.2",
88
+ "version": "2.163.4",
89
89
  "description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
90
90
  "main": "dist/index.js",
91
91
  "exports": {
@@ -10,7 +10,7 @@
10
10
  "lint:slow": "eslint . --config eslint.slow.config.ts --quiet",
11
11
  "format:check": "prettier --check .",
12
12
  "format": "prettier --write .",
13
- "knip": "knip",
13
+ "knip:check": "knip",
14
14
  "knip:fix": "knip --fix",
15
15
  "sg:scan": "ast-grep scan",
16
16
  "prepare": "husky install || true"
@@ -55,7 +55,10 @@
55
55
  "private": true
56
56
  },
57
57
  "merge": {
58
- "trustedDependencies": ["@ast-grep/cli", "@codyswann/lisa"]
58
+ "trustedDependencies": [
59
+ "@ast-grep/cli",
60
+ "@codyswann/lisa"
61
+ ]
59
62
  },
60
63
  "defaults": {
61
64
  "scripts": {
@@ -69,5 +72,10 @@
69
72
  "devDependencies": {
70
73
  "vite": "^6.3.1"
71
74
  }
75
+ },
76
+ "remove": {
77
+ "scripts": [
78
+ "knip"
79
+ ]
72
80
  }
73
81
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "Universal governance — agents, skills, commands, hooks, and rules for all projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "Universal governance: agents, skills, commands, hooks, and rules for all projects.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "Universal governance — agents, skills, commands, hooks, and rules for all projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-cdk",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "AWS CDK-specific plugin",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-cdk",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "AWS CDK-specific Lisa plugin.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-cdk",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "AWS CDK-specific plugin",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-cdk",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "AWS CDK-specific plugin",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-cdk",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "AWS CDK-specific plugin",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "Universal governance — agents, skills, commands, hooks, and rules for all projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "Universal governance — agents, skills, commands, hooks, and rules for all projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-expo",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "Expo/React Native-specific skills, agents, rules, and MCP servers",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-expo",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "Expo and React Native-specific skills, agents, rules, and MCP servers.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-expo",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "Expo/React Native-specific skills, agents, rules, and MCP servers",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-expo",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "Expo/React Native-specific skills, agents, rules, and MCP servers",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-expo",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "Expo/React Native-specific skills, agents, rules, and MCP servers",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-harper-fabric",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "Harper/Fabric-specific rules for TypeScript component apps",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-harper-fabric",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "Harper/Fabric-specific Lisa rules for TypeScript component apps.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-harper-fabric",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "Harper/Fabric-specific rules for TypeScript component apps",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-harper-fabric",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "Harper/Fabric-specific rules for TypeScript component apps",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-harper-fabric",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "Harper/Fabric-specific rules for TypeScript component apps",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-nestjs",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "NestJS-specific skills (GraphQL, TypeORM) and hooks (migration write-protection)",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-nestjs",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "NestJS-specific skills and migration write-protection hooks.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-nestjs",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "NestJS-specific skills (GraphQL, TypeORM) and hooks (migration write-protection)",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-nestjs",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "NestJS-specific skills (GraphQL, TypeORM) and hooks (migration write-protection)",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-nestjs",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "NestJS-specific skills (GraphQL, TypeORM) and hooks (migration write-protection)",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-openclaw",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-openclaw",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, across Claude and Codex.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-openclaw",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-openclaw",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-openclaw",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-phaser",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "Phaser 4 game-development rules for TypeScript projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "Ruby on Rails-specific hooks — RuboCop linting/formatting and ast-grep scanning on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "Ruby on Rails-specific skills and hooks for RuboCop and ast-grep scanning on edit.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "Ruby on Rails-specific hooks — RuboCop linting/formatting and ast-grep scanning on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "Ruby on Rails-specific hooks — RuboCop linting/formatting and ast-grep scanning on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-rails",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "Ruby on Rails-specific hooks — RuboCop linting/formatting and ast-grep scanning on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "TypeScript-specific hooks — Prettier formatting, ESLint linting, ast-grep scanning, and error-suppression blocking on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "TypeScript-specific hooks for formatting, linting, and ast-grep scanning on edit.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "TypeScript-specific hooks — Prettier formatting, ESLint linting, ast-grep scanning, and error-suppression blocking on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "TypeScript-specific hooks — Prettier formatting, ESLint linting, ast-grep scanning, and error-suppression blocking on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-typescript",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "TypeScript-specific hooks — Prettier formatting, ESLint linting, ast-grep scanning, and error-suppression blocking on edit",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "LLM Wiki — a distributable, git-native markdown knowledge base for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "Distributable LLM Wiki kernel — ingest, query, lint, and maintain a git-native markdown knowledge base across Claude and Codex.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "LLM Wiki — a distributable, git-native markdown knowledge base for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "LLM Wiki — a distributable, git-native markdown knowledge base for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa-wiki",
3
- "version": "2.163.2",
3
+ "version": "2.163.4",
4
4
  "description": "LLM Wiki — a distributable, git-native markdown knowledge base for Claude Code and Codex",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -183,10 +183,20 @@ else
183
183
  echo "ℹ️ Skipping slow lint rules (lint:slow not configured)"
184
184
  fi
185
185
 
186
- # Run dead code detection (knip) - only if script exists
187
- if jq -e '.scripts.knip' package.json >/dev/null 2>&1; then
186
+ # Run dead code detection (knip) - only if script exists.
187
+ # Prefer knip:check (the script was renamed because expo-doctor flags scripts
188
+ # that shadow node_modules/.bin entries); fall back to the legacy knip name.
189
+ if jq -e '.scripts["knip:check"]' package.json >/dev/null 2>&1; then
190
+ KNIP_SCRIPT="knip:check"
191
+ elif jq -e '.scripts.knip' package.json >/dev/null 2>&1; then
192
+ KNIP_SCRIPT="knip"
193
+ else
194
+ KNIP_SCRIPT=""
195
+ fi
196
+
197
+ if [ -n "$KNIP_SCRIPT" ]; then
188
198
  echo "🗑️ Running dead code detection (knip)..."
189
- $RUNNER knip
199
+ $RUNNER "$KNIP_SCRIPT"
190
200
  if [ $? -ne 0 ]; then
191
201
  echo "❌ Dead code detected. Please remove unused exports/dependencies before pushing."
192
202
  echo ""
@@ -12,7 +12,7 @@
12
12
  "lint:fix": "oxlint --fix && eslint . --fix",
13
13
  "lint:slow": "eslint . --config eslint.slow.config.ts --quiet",
14
14
  "typecheck": "tsc --noEmit",
15
- "knip": "knip",
15
+ "knip:check": "knip",
16
16
  "knip:fix": "knip --fix",
17
17
  "sg:scan": "ast-grep scan",
18
18
  "prepare": "node -e \"if (process.env.INIT_CWD && process.env.INIT_CWD.includes('.serverless')) { process.exit(0); }\" && husky install || true"
@@ -56,5 +56,10 @@
56
56
  "@codyswann/lisa",
57
57
  "@sentry/cli"
58
58
  ]
59
+ },
60
+ "remove": {
61
+ "scripts": [
62
+ "knip"
63
+ ]
59
64
  }
60
65
  }