@codyswann/lisa 4.69.1 → 4.69.3

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 (76) hide show
  1. package/README.md +14 -0
  2. package/dist/cli/doctor-legacy-overlay.d.ts.map +1 -1
  3. package/dist/cli/doctor-legacy-overlay.js +37 -5
  4. package/dist/cli/doctor-legacy-overlay.js.map +1 -1
  5. package/dist/codex/hooks-installer.d.ts +12 -0
  6. package/dist/codex/hooks-installer.d.ts.map +1 -1
  7. package/dist/codex/hooks-installer.js +256 -7
  8. package/dist/codex/hooks-installer.js.map +1 -1
  9. package/dist/codex/manifest.d.ts +4 -1
  10. package/dist/codex/manifest.d.ts.map +1 -1
  11. package/dist/codex/manifest.js +18 -2
  12. package/dist/codex/manifest.js.map +1 -1
  13. package/dist/codex/project-hooks-cleanup.d.ts +3 -3
  14. package/dist/codex/project-hooks-cleanup.d.ts.map +1 -1
  15. package/dist/codex/project-hooks-cleanup.js +5 -14
  16. package/dist/codex/project-hooks-cleanup.js.map +1 -1
  17. package/dist/codex/project-overlay.d.ts.map +1 -1
  18. package/dist/codex/project-overlay.js +4 -1
  19. package/dist/codex/project-overlay.js.map +1 -1
  20. package/dist/core/nightly-e2e-guard-behavior-certificate.js +2 -2
  21. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  22. package/dist/core/upstream-evidence-manifest.js +16 -2
  23. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  24. package/package.json +4 -4
  25. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  26. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  27. package/plugins/lisa-agy/plugin.json +1 -1
  28. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  29. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  30. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  31. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  32. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  33. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  34. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  35. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  36. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  37. package/plugins/lisa-expo-agy/plugin.json +1 -1
  38. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  39. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  40. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  41. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  42. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  43. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  44. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  45. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  46. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  47. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  48. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  49. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  50. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  51. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  52. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  53. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  54. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  55. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  56. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  57. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  58. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  59. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  60. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  61. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  62. package/plugins/lisa-rails-agy/plugin.json +1 -1
  63. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  64. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  65. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  66. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  67. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  68. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  69. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  70. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  71. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  72. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  73. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  74. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  75. package/rails/create-only/spec/rails_helper.rb +78 -6
  76. package/scripts/two-channel-couplings.json +1 -1
package/README.md CHANGED
@@ -288,6 +288,18 @@ into the project and unrelated Lisa stacks are not loaded. Project settings use
288
288
  `[features].hooks`; the deprecated `codex_hooks` key is removed during
289
289
  reconciliation.
290
290
 
291
+ During an explicit Codex hook migration, including `--refresh-templates`, apply
292
+ retains previously installed hook commands as functional regular copies with
293
+ their helpers and rule data. An active session can keep using its loaded
294
+ commands while a fresh session uses the current generated fallback. Host hooks
295
+ remain intact. Keep the managed compatibility files recorded in
296
+ `.codex/.lisa-managed.json` rather than deleting them during a running session.
297
+ Review changed project hook definitions through Codex’s `/hooks` interface
298
+ before trusting them in a fresh session. Automatic postinstall still skips
299
+ agent configuration changes. This retirement
300
+ boundary belongs to the Codex project overlay. The other supported agents do
301
+ not delete this shell-command layout during apply.
302
+
291
303
  Remote coding environments use one vendor-neutral AWS bootstrap rather than
292
304
  repository-specific or agent-specific IAM users. Run `/lisa:setup-remote-aws`
293
305
  to install the common setup script and native Cursor/Copilot adapters; Claude,
@@ -376,6 +388,8 @@ A downstream project can add the same knowledge base on demand rather than recei
376
388
 
377
389
  ## Extending or contributing to Lisa
378
390
 
391
+ Rails consumers can follow the [test helper isolation and existing-consumer migration guide](docs/rails-test-isolation.md).
392
+
379
393
  If you're changing Lisa itself: author agent content and templates at their source, never in generated output, and rebuild so the distributed artifacts regenerate. Lisa applies its own standards to itself, so the same gates that guard downstream projects guard this one — including the requirement to prove your change works.
380
394
 
381
395
  > **Prompt for your coding agent**
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-legacy-overlay.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-legacy-overlay.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI/C;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CAoCvE"}
1
+ {"version":3,"file":"doctor-legacy-overlay.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-legacy-overlay.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI/C;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CA2CvE"}
@@ -1,6 +1,8 @@
1
- import { existsSync } from "node:fs";
1
+ import { existsSync, lstatSync, readFileSync } from "node:fs";
2
2
  import * as path from "node:path";
3
3
  import { LISA_HOOKS_SUBDIR, LISA_RULES_SUBDIR, } from "../codex/hooks-installer.js";
4
+ import { LISA_MANAGED_MANIFEST_FILENAME } from "../codex/manifest.js";
5
+ import { parseHooksFile } from "../codex/hooks-merger.js";
4
6
  import { LISA_SKILLS_SUBDIR } from "../codex/skills-installer.js";
5
7
  const LEGACY_CODEX_OVERLAY_CHECK_NAME = "Codex overlay current?";
6
8
  /**
@@ -24,16 +26,20 @@ export function checkLegacyCodexOverlay(targetPath) {
24
26
  detail: "No .codex directory present",
25
27
  };
26
28
  }
29
+ const compatibility = hasManagedCompatibility(codexDir);
27
30
  const legacyPaths = [
28
31
  LISA_HOOKS_SUBDIR,
29
32
  LISA_RULES_SUBDIR,
30
33
  LISA_SKILLS_SUBDIR,
31
- ].filter(subdir => existsSync(path.join(codexDir, subdir)));
34
+ ].filter(subdir => existsSync(path.join(codexDir, subdir)) &&
35
+ !(compatibility && subdir !== LISA_SKILLS_SUBDIR));
32
36
  if (legacyPaths.length === 0) {
33
37
  return {
34
38
  name: LEGACY_CODEX_OVERLAY_CHECK_NAME,
35
39
  status: "ok",
36
- detail: "No legacy project-level Codex overlay present",
40
+ detail: compatibility
41
+ ? "Managed compatibility copies retained for active sessions; fresh sessions use the current enforcement fallback"
42
+ : "No legacy project-level Codex overlay present",
37
43
  };
38
44
  }
39
45
  const listed = legacyPaths
@@ -43,9 +49,35 @@ export function checkLegacyCodexOverlay(targetPath) {
43
49
  name: LEGACY_CODEX_OVERLAY_CHECK_NAME,
44
50
  status: "warn",
45
51
  detail: `Legacy pre-2.198 Codex overlay present (${listed}). ` +
46
- "Run `lisa apply` in the primary checkout and commit the removals — " +
52
+ "Run `lisa apply` in the primary checkout to migrate the configuration and retain functional copies for active sessions — " +
47
53
  "fresh clones/worktrees otherwise load stale hooks/skills that a later " +
48
- "apply deletes mid-session (CodySwannGT/lisa#1632)",
54
+ "apply must keep executable mid-session (CodySwannGT/lisa#1632)",
49
55
  };
50
56
  }
57
+ /**
58
+ * Distinguish intentional copied compatibility from an unmigrated overlay.
59
+ * @param codexDir Host Codex directory.
60
+ * @returns Whether every recorded compatibility path remains a regular file.
61
+ */
62
+ function hasManagedCompatibility(codexDir) {
63
+ try {
64
+ const manifest = JSON.parse(readFileSync(path.join(codexDir, LISA_MANAGED_MANIFEST_FILENAME), "utf8"));
65
+ const compatibility = manifest.hookCompatibilityFiles;
66
+ if (!Array.isArray(compatibility) ||
67
+ compatibility.length === 0 ||
68
+ !compatibility.every(file => typeof file === "string" &&
69
+ manifest.files?.includes(file) &&
70
+ (file.startsWith(`${LISA_HOOKS_SUBDIR}${path.sep}`) ||
71
+ file.startsWith(`${LISA_RULES_SUBDIR}${path.sep}`)) &&
72
+ !file.split(path.sep).includes("..") &&
73
+ lstatSync(path.join(codexDir, file)).isFile()))
74
+ return false;
75
+ const hooks = parseHooksFile(readFileSync(path.join(codexDir, "hooks.json"), "utf8"));
76
+ const managed = Object.values(hooks.hooks ?? {}).flatMap(groups => groups.flatMap(group => group.hooks.filter(hook => hook._lisaManaged === true)));
77
+ return (managed.length === 1 && managed[0]?._lisaId === "enforcement-fallback");
78
+ }
79
+ catch {
80
+ return false;
81
+ }
82
+ }
51
83
  //# sourceMappingURL=doctor-legacy-overlay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-legacy-overlay.js","sourceRoot":"","sources":["../../src/cli/doctor-legacy-overlay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EACL,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAGlE,MAAM,+BAA+B,GAAG,wBAAwB,CAAC;AAEjE;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAAkB;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACjD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,OAAO;YACL,IAAI,EAAE,+BAA+B;YACrC,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,6BAA6B;SACtC,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG;QAClB,iBAAiB;QACjB,iBAAiB;QACjB,kBAAkB;KACnB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAE5D,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,IAAI,EAAE,+BAA+B;YACrC,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,+CAA+C;SACxD,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,WAAW;SACvB,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;SAC1C,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO;QACL,IAAI,EAAE,+BAA+B;QACrC,MAAM,EAAE,MAAM;QACd,MAAM,EACJ,2CAA2C,MAAM,KAAK;YACtD,qEAAqE;YACrE,wEAAwE;YACxE,mDAAmD;KACtD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"doctor-legacy-overlay.js","sourceRoot":"","sources":["../../src/cli/doctor-legacy-overlay.ts"],"names":[],"mappings":"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"}
@@ -55,4 +55,16 @@ export interface HooksInstallResult {
55
55
  * @returns Result describing what was written
56
56
  */
57
57
  export declare function installHooks(lisaDir: string, destDir: string, detectedTypes: readonly ProjectType[], previousManagedFiles?: readonly string[]): Promise<HooksInstallResult>;
58
+ /**
59
+ * Keep previously installed catalog commands functional without registering
60
+ * them again. Copies outlive replacement of the package that owned old links.
61
+ * Host-authored siblings are never pruned. This is an apply-time migration,
62
+ * not runtime/session detection or an assumed hot-reload boundary.
63
+ * @param lisaDir Lisa source/package root.
64
+ * @param destDir Host root.
65
+ * @param detectedTypes Current project types.
66
+ * @param previousManagedFiles Previous manifest ownership.
67
+ * @returns Compatibility files to retain in the current manifest.
68
+ */
69
+ export declare function installHookCompatibility(lisaDir: string, destDir: string, detectedTypes: readonly ProjectType[], previousManagedFiles: readonly string[]): Promise<readonly string[]>;
58
70
  //# sourceMappingURL=hooks-installer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks-installer.d.ts","sourceRoot":"","sources":["../../src/codex/hooks-installer.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAWrD,kEAAkE;AAClE,eAAO,MAAM,iBAAiB,QAA6B,CAAC;AAE5D;;;;;GAKG;AACH,eAAO,MAAM,cAAc,2BAA2B,CAAC;AAEvD;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,sBAAsB,CAAC;AAEjD,kFAAkF;AAClF,eAAO,MAAM,iBAAiB,eAAe,CAAC;AAE9C,+DAA+D;AAC/D,eAAO,MAAM,cAAc,eAAe,CAAC;AAmL3C;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAInD,CAAC;AAEF,uCAAuC;AACvC,MAAM,WAAW,kBAAkB;IACjC,yEAAyE;IACzE,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,0DAA0D;IAC1D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,iEAAiE;IACjE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,SAAS,WAAW,EAAE,EACrC,oBAAoB,GAAE,SAAS,MAAM,EAAO,GAC3C,OAAO,CAAC,kBAAkB,CAAC,CAsF7B"}
1
+ {"version":3,"file":"hooks-installer.d.ts","sourceRoot":"","sources":["../../src/codex/hooks-installer.ts"],"names":[],"mappings":"AA2CA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAWrD,kEAAkE;AAClE,eAAO,MAAM,iBAAiB,QAA6B,CAAC;AAE5D;;;;;GAKG;AACH,eAAO,MAAM,cAAc,2BAA2B,CAAC;AAEvD;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,sBAAsB,CAAC;AAEjD,kFAAkF;AAClF,eAAO,MAAM,iBAAiB,eAAe,CAAC;AAE9C,+DAA+D;AAC/D,eAAO,MAAM,cAAc,eAAe,CAAC;AAqL3C;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAInD,CAAC;AAEF,uCAAuC;AACvC,MAAM,WAAW,kBAAkB;IACjC,yEAAyE;IACzE,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,0DAA0D;IAC1D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,iEAAiE;IACjE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,SAAS,WAAW,EAAE,EACrC,oBAAoB,GAAE,SAAS,MAAM,EAAO,GAC3C,OAAO,CAAC,kBAAkB,CAAC,CAsF7B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,SAAS,WAAW,EAAE,EACrC,oBAAoB,EAAE,SAAS,MAAM,EAAE,GACtC,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAmE5B"}
@@ -25,11 +25,11 @@
25
25
  * The project overlay now uses plugin-bundled hooks for the complete catalog
26
26
  * and one repository-owned enforcement dispatcher as the fail-closed delivery
27
27
  * fallback. This module remains for migration coverage of the retired linked
28
- * script/rule layout.
28
+ * script/rule layout and source-owned compatibility copies for loaded sessions.
29
29
  * @module codex/hooks-installer
30
30
  */
31
31
  import * as fse from "fs-extra";
32
- import { readFile, rm, symlink, writeFile } from "node:fs/promises";
32
+ import { lstat, mkdtemp, readFile, readlink, rename, rm, symlink, writeFile, } from "node:fs/promises";
33
33
  import * as path from "node:path";
34
34
  import { fileURLToPath } from "node:url";
35
35
  import { mirrorLisaRules } from "../core/lisa-rules-mirror.js";
@@ -62,6 +62,7 @@ export const HOOKS_FILENAME = "hooks.json";
62
62
  * its three write paths (text Edit, file Write, apply_patch diff).
63
63
  */
64
64
  const WRITE_MATCHER = "Edit|Write|apply_patch";
65
+ const INJECT_RULES_ID = "inject-rules";
65
66
  const HARPER_PLUGIN = "lisa-harper-fabric";
66
67
  /**
67
68
  * Hook catalog. Adding a new hook? Three steps:
@@ -74,7 +75,7 @@ const HARPER_PLUGIN = "lisa-harper-fabric";
74
75
  */
75
76
  const HOOK_CATALOG = [
76
77
  {
77
- id: "inject-rules",
78
+ id: INJECT_RULES_ID,
78
79
  event: "SessionStart",
79
80
  matcher: "",
80
81
  scriptFilename: "inject-rules.sh",
@@ -110,6 +111,7 @@ const HOOK_CATALOG = [
110
111
  event: "PreToolUse",
111
112
  matcher: "Bash",
112
113
  scriptFilename: "block-direct-issue-create.sh",
114
+ sourcePlugin: "lisa",
113
115
  forProjectTypes: ["*"],
114
116
  statusMessage: "Checking work-item filing policy",
115
117
  },
@@ -256,7 +258,7 @@ export async function installHooks(lisaDir, destDir, detectedTypes, previousMana
256
258
  : [];
257
259
  // Step 2: mirror rules from Lisa into .codex/lisa-rules/ (only when
258
260
  // inject-rules is being installed — i.e., always, since it's a "*" hook)
259
- const ruleFiles = applicable.some(e => e.id === "inject-rules")
261
+ const ruleFiles = applicable.some(e => e.id === INJECT_RULES_ID)
260
262
  ? (await mirrorLisaRules(lisaDir, rulesDir, detectedTypes, "link")).map(file => path.join(LISA_RULES_SUBDIR, file))
261
263
  : [];
262
264
  // Step 3: tagged-merge hooks.json
@@ -279,6 +281,245 @@ export async function installHooks(lisaDir, destDir, detectedTypes, previousMana
279
281
  deleted: Object.freeze(deleted),
280
282
  };
281
283
  }
284
+ /**
285
+ * Keep previously installed catalog commands functional without registering
286
+ * them again. Copies outlive replacement of the package that owned old links.
287
+ * Host-authored siblings are never pruned. This is an apply-time migration,
288
+ * not runtime/session detection or an assumed hot-reload boundary.
289
+ * @param lisaDir Lisa source/package root.
290
+ * @param destDir Host root.
291
+ * @param detectedTypes Current project types.
292
+ * @param previousManagedFiles Previous manifest ownership.
293
+ * @returns Compatibility files to retain in the current manifest.
294
+ */
295
+ export async function installHookCompatibility(lisaDir, destDir, detectedTypes, previousManagedFiles) {
296
+ const codexDir = path.join(destDir, ".codex");
297
+ const hooksDir = path.join(codexDir, LISA_HOOKS_SUBDIR);
298
+ const existing = await readHooksFile(path.join(codexDir, HOOKS_FILENAME));
299
+ const taggedCommands = new Set(Object.values(existing.hooks ?? {}).flatMap(groups => groups.flatMap(group => group.hooks
300
+ .filter(hook => hook._lisaManaged === true)
301
+ .map(hook => hook.command))));
302
+ const owned = new Set([
303
+ ...previousManagedFiles,
304
+ ...HOOK_CATALOG.filter(entry => taggedCommands.has(catalogEntryToSpec(entry, destDir).command)).map(entry => path.join(LISA_HOOKS_SUBDIR, entry.scriptFilename)),
305
+ ]);
306
+ const candidates = await Promise.all(HOOK_CATALOG.map(async (entry) => {
307
+ const relative = path.join(LISA_HOOKS_SUBDIR, entry.scriptFilename);
308
+ const keep = owned.has(relative) ||
309
+ taggedCommands.has(catalogEntryToSpec(entry, destDir).command) ||
310
+ (await isManagedSourceLink(path.join(codexDir, relative), resolveHookScript(lisaDir, entry), lisaDir, destDir));
311
+ return keep ? entry : undefined;
312
+ }));
313
+ const retained = candidates.filter((entry) => entry !== undefined);
314
+ if (retained.length === 0)
315
+ return [];
316
+ const sources = compatibilitySources(lisaDir, retained);
317
+ await assertCompatibilityOwnership(sources, codexDir, owned, lisaDir, destDir);
318
+ await fse.ensureDir(hooksDir);
319
+ const entrypoints = new Set(retained.map(entry => entry.scriptFilename));
320
+ const rules = retained.some(entry => entry.id === INJECT_RULES_ID)
321
+ ? await copyCompatibilityRules(lisaDir, codexDir, detectedTypes, retained, owned)
322
+ : [];
323
+ // Install complete dependencies before atomically replacing loaded entrypoints.
324
+ const helpers = await copyCompatibilitySources(sources.filter(source => !entrypoints.has(source.filename)), codexDir);
325
+ const scripts = await copyCompatibilitySources(sources.filter(source => entrypoints.has(source.filename)), codexDir);
326
+ return Object.freeze([...scripts, ...helpers, ...rules]);
327
+ }
328
+ /**
329
+ * Reject unknown companion collisions before changing any compatibility file.
330
+ * A retained command does not grant ownership of a host-authored helper.
331
+ * @param sources Complete catalog closure.
332
+ * @param codexDir Host Codex root.
333
+ * @param owned Proven manifest/tagged-handler ownership.
334
+ * @param lisaDir Verified Lisa package root.
335
+ * @param destDir Host root.
336
+ */
337
+ async function assertCompatibilityOwnership(sources, codexDir, owned, lisaDir, destDir) {
338
+ await Promise.all(sources.map(async ({ source, filename }) => {
339
+ const relative = path.join(LISA_HOOKS_SUBDIR, filename);
340
+ const destination = path.join(codexDir, relative);
341
+ const stat = await lstat(destination).catch(error => {
342
+ if (error.code === "ENOENT")
343
+ return undefined;
344
+ throw error;
345
+ });
346
+ if (!stat || owned.has(relative))
347
+ return;
348
+ if (stat.isSymbolicLink()) {
349
+ if (await isManagedSourceLink(destination, source, lisaDir, destDir))
350
+ return;
351
+ }
352
+ else if (stat.isFile() &&
353
+ (await readFile(destination)).equals(await readFile(source))) {
354
+ return;
355
+ }
356
+ throw new Error(`Cannot migrate Codex hooks: .codex/${relative} contains host-owned content. No compatibility files were changed. Preserve it and resolve the source ownership conflict before applying again.`);
357
+ }));
358
+ }
359
+ /**
360
+ * Copy one dependency group before exposing dependent entrypoints.
361
+ * @param sources Package implementations.
362
+ * @param codexDir Host Codex directory.
363
+ * @returns Installed paths.
364
+ */
365
+ async function copyCompatibilitySources(sources, codexDir) {
366
+ return Promise.all(sources.map(async ({ source, filename }) => {
367
+ const relative = path.join(LISA_HOOKS_SUBDIR, filename);
368
+ await copyManagedCompatibility(source, path.join(codexDir, relative));
369
+ return relative;
370
+ }));
371
+ }
372
+ /**
373
+ * Resolve the full helper/data closure from the existing hook catalog.
374
+ * @param lisaDir Source/package root.
375
+ * @param retained Previously installed catalog entries.
376
+ * @returns Script and companion sources.
377
+ */
378
+ function compatibilitySources(lisaDir, retained) {
379
+ const helpers = [
380
+ ...(retained.some(entry => entry.needsEditPathLib) ? [EDIT_PATHS_LIB] : []),
381
+ ...(retained.some(entry => entry.needsEditGate) ? [EDIT_GATE_LIB] : []),
382
+ ];
383
+ return [
384
+ ...retained.map(entry => ({
385
+ source: resolveHookScript(lisaDir, entry),
386
+ filename: entry.scriptFilename,
387
+ })),
388
+ ...helpers.map(filename => ({
389
+ source: resolveBundledScript(filename),
390
+ filename,
391
+ })),
392
+ ...(retained.some(entry => entry.sourcePlugin === "lisa")
393
+ ? [
394
+ {
395
+ source: path.join(lisaDir, "plugins/lisa/hooks/guard-dedupe.bash"),
396
+ filename: "guard-dedupe.bash",
397
+ },
398
+ ]
399
+ : []),
400
+ ...(retained.some(entry => entry.sourcePlugin === HARPER_PLUGIN)
401
+ ? harperSupportSources(lisaDir)
402
+ : []),
403
+ ];
404
+ }
405
+ /**
406
+ * Copy rule dependencies without replacing host-authored rules.
407
+ * @param lisaDir Source/package root.
408
+ * @param codexDir Host Codex directory.
409
+ * @param detectedTypes Current types.
410
+ * @param retained Entries determining required earlier stack rules.
411
+ * @param owned Prior manifest paths.
412
+ * @returns Copied rule paths.
413
+ */
414
+ async function copyCompatibilityRules(lisaDir, codexDir, detectedTypes, retained, owned) {
415
+ const ruleTypes = [
416
+ ...new Set([
417
+ ...detectedTypes,
418
+ ...retained.flatMap(entry => entry.forProjectTypes.filter(type => type !== "*")),
419
+ ]),
420
+ ];
421
+ const scratch = await mkdtemp(path.join(codexDir, ".compat-rules-"));
422
+ try {
423
+ const rules = await mirrorLisaRules(lisaDir, scratch, ruleTypes, "link");
424
+ const copied = await Promise.all(rules.map(async (relativeRule) => {
425
+ const relative = path.join(LISA_RULES_SUBDIR, relativeRule);
426
+ const destination = path.join(codexDir, relative);
427
+ const stat = await lstat(destination).catch(() => undefined);
428
+ const source = await readlink(path.join(scratch, relativeRule));
429
+ const linkedRule = stat?.isSymbolicLink() &&
430
+ (await isManagedSourceLink(destination, source, lisaDir, path.dirname(codexDir)));
431
+ if (stat && !linkedRule && !owned.has(relative))
432
+ return undefined;
433
+ await fse.ensureDir(path.dirname(destination));
434
+ await copyManagedCompatibility(path.join(scratch, relativeRule), destination);
435
+ return relative;
436
+ }));
437
+ return copied.filter((file) => file !== undefined);
438
+ }
439
+ finally {
440
+ await rm(scratch, { recursive: true, force: true });
441
+ }
442
+ }
443
+ /**
444
+ * Admit links to known Lisa sources, not host paths with similar suffixes.
445
+ * Canonical installed-package paths also recover genuinely dangling links.
446
+ * @param destination Host script path.
447
+ * @param source Exact shipped source.
448
+ * @param lisaDir Verified Lisa package root.
449
+ * @param destDir Host root.
450
+ * @returns Whether the catalog owns this legacy representation.
451
+ */
452
+ async function isManagedSourceLink(destination, source, lisaDir, destDir) {
453
+ const stat = await lstat(destination).catch(() => undefined);
454
+ if (!stat?.isSymbolicLink())
455
+ return false;
456
+ const target = path.resolve(path.dirname(destination), await readlink(destination));
457
+ const relative = path.relative(lisaDir, source);
458
+ if (target === path.resolve(source))
459
+ return true;
460
+ if (relative.startsWith(`..${path.sep}`) || path.isAbsolute(relative))
461
+ return false;
462
+ const variants = sourceLocationVariants(relative);
463
+ if (variants.some(file => target === path.resolve(lisaDir, file)))
464
+ return true;
465
+ const installedRoot = path.join(destDir, "node_modules/@codyswann/lisa");
466
+ return isLisaPackageTarget(target, variants, installedRoot);
467
+ }
468
+ /**
469
+ * Source and compiled trees contain the same legacy bundled scripts.
470
+ * @param relative Source path within the verified Lisa package.
471
+ * @returns Exact supported source locations within that package.
472
+ */
473
+ function sourceLocationVariants(relative) {
474
+ const tree = ["src", "dist"].find(directory => relative.startsWith(path.join(directory, "codex", "scripts") + path.sep));
475
+ return tree === undefined
476
+ ? [relative]
477
+ : [
478
+ relative,
479
+ path.join(tree === "src" ? "dist" : "src", "codex", "scripts", path.basename(relative)),
480
+ ];
481
+ }
482
+ /**
483
+ * Verify old package/store roots rather than relying on their directory layout.
484
+ * @param target Resolved legacy link target.
485
+ * @param variants Exact supported paths within a Lisa package.
486
+ * @param installedRoot Canonical host package path, including dangling installs.
487
+ * @returns Whether positive package identity owns this expected source path.
488
+ */
489
+ async function isLisaPackageTarget(target, variants, installedRoot) {
490
+ const roots = variants
491
+ .filter(file => target.endsWith(path.sep + file))
492
+ .map(file => target.slice(0, -(file.length + 1)));
493
+ const verified = await Promise.all(roots.map(async (root) => {
494
+ if (root === path.resolve(installedRoot) && !(await fse.pathExists(root)))
495
+ return true;
496
+ const metadata = await readFile(path.join(root, "package.json"), "utf8")
497
+ .then(raw => JSON.parse(raw))
498
+ .catch(() => undefined);
499
+ return (typeof metadata === "object" &&
500
+ metadata !== null &&
501
+ "name" in metadata &&
502
+ metadata.name === "@codyswann/lisa");
503
+ }));
504
+ return verified.some(Boolean);
505
+ }
506
+ /**
507
+ * Replace a managed representation with executable regular source bytes.
508
+ * @param source Functional shipped implementation.
509
+ * @param destination Old loaded-command path.
510
+ */
511
+ async function copyManagedCompatibility(source, destination) {
512
+ const content = await readFile(source);
513
+ const scratch = await mkdtemp(path.join(path.dirname(destination), ".compat-file-"));
514
+ try {
515
+ const replacement = path.join(scratch, "replacement");
516
+ await writeFile(replacement, content, { mode: 0o755 });
517
+ await rename(replacement, destination);
518
+ }
519
+ finally {
520
+ await rm(scratch, { force: true, recursive: true });
521
+ }
522
+ }
282
523
  /** Project-local directory prefixes wholly owned by the hook installer. */
283
524
  const MANAGED_HOOK_PREFIXES = [
284
525
  `${LISA_HOOKS_SUBDIR}${path.sep}`,
@@ -374,7 +615,17 @@ function resolveHookScript(lisaDir, entry) {
374
615
  * @returns Managed paths relative to `.codex/`.
375
616
  */
376
617
  async function linkHarperSupportFiles(lisaDir, hooksDir) {
377
- const sources = [
618
+ const sources = harperSupportSources(lisaDir);
619
+ await Promise.all(sources.map(({ source, filename }) => linkManagedFile(source, path.join(hooksDir, filename))));
620
+ return sources.map(({ filename }) => path.join(LISA_HOOKS_SUBDIR, filename));
621
+ }
622
+ /**
623
+ * Companion sources shared by linked installation and copied compatibility.
624
+ * @param lisaDir Lisa package root.
625
+ * @returns Complete Harper companion list.
626
+ */
627
+ function harperSupportSources(lisaDir) {
628
+ return [
378
629
  {
379
630
  source: path.join(lisaDir, "plugins", HARPER_PLUGIN, "hooks", "enforce-config-extensions.mjs"),
380
631
  filename: "enforce-config-extensions.mjs",
@@ -384,8 +635,6 @@ async function linkHarperSupportFiles(lisaDir, hooksDir) {
384
635
  filename: "generated-artifact-globs.txt",
385
636
  },
386
637
  ];
387
- await Promise.all(sources.map(({ source, filename }) => linkManagedFile(source, path.join(hooksDir, filename))));
388
- return sources.map(({ filename }) => path.join(LISA_HOOKS_SUBDIR, filename));
389
638
  }
390
639
  /**
391
640
  * Replace a Lisa-owned project file with a link to its package source.
@@ -1 +1 @@
1
- {"version":3,"file":"hooks-installer.js","sourceRoot":"","sources":["../../src/codex/hooks-installer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks-installer.js","sourceRoot":"","sources":["../../src/codex/hooks-installer.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,EACL,KAAK,EACL,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,EAAE,EACF,OAAO,EACP,SAAS,GACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAIL,cAAc,EACd,cAAc,EACd,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAE3B,kEAAkE;AAClE,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAE5D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAEvD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAEjD,kFAAkF;AAClF,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAAY,CAAC;AAE9C,+DAA+D;AAC/D,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC;AAE3C;;;;GAIG;AACH,MAAM,aAAa,GAAG,wBAAwB,CAAC;AAC/C,MAAM,eAAe,GAAG,cAAc,CAAC;AACvC,MAAM,aAAa,GAAG,oBAAoB,CAAC;AAsC3C;;;;;;;;GAQG;AACH,MAAM,YAAY,GAAgC;IAChD;QACE,EAAE,EAAE,eAAe;QACnB,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,EAAE;QACX,cAAc,EAAE,iBAAiB;QACjC,eAAe,EAAE,CAAC,GAAG,CAAC;QACtB,aAAa,EAAE,2CAA2C;KAC3D;IACD;QACE,EAAE,EAAE,cAAc;QAClB,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,SAAS;QAClB,cAAc,EAAE,iBAAiB;QACjC,eAAe,EAAE,CAAC,GAAG,CAAC;QACtB,aAAa,EAAE,+BAA+B;KAC/C;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,EAAE;QACX,cAAc,EAAE,mBAAmB;QACnC,eAAe,EAAE,CAAC,GAAG,CAAC;QACtB,aAAa,EAAE,kCAAkC;KAClD;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE,MAAM;QACf,cAAc,EAAE,oBAAoB;QACpC,eAAe,EAAE,CAAC,GAAG,CAAC;QACtB,aAAa,EAAE,+BAA+B;KAC/C;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE,MAAM;QACf,cAAc,EAAE,8BAA8B;QAC9C,YAAY,EAAE,MAAM;QACpB,eAAe,EAAE,CAAC,GAAG,CAAC;QACtB,aAAa,EAAE,kCAAkC;KAClD;IACD;QACE,EAAE,EAAE,mBAAmB;QACvB,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,MAAM;QACf,cAAc,EAAE,sBAAsB;QACtC,eAAe,EAAE,CAAC,GAAG,CAAC;QACtB,aAAa,EAAE,iCAAiC;KACjD;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,aAAa;QACtB,cAAc,EAAE,mBAAmB;QACnC,eAAe,EAAE,CAAC,YAAY,CAAC;QAC/B,gBAAgB,EAAE,IAAI;QACtB,aAAa,EAAE,IAAI;KACpB;IACD;QACE,EAAE,EAAE,cAAc;QAClB,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,aAAa;QACtB,cAAc,EAAE,iBAAiB;QACjC,eAAe,EAAE,CAAC,YAAY,CAAC;QAC/B,gBAAgB,EAAE,IAAI;QACtB,aAAa,EAAE,IAAI;KACpB;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,aAAa;QACtB,cAAc,EAAE,oBAAoB;QACpC,eAAe,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC;QACxC,gBAAgB,EAAE,IAAI;QACtB,aAAa,EAAE,IAAI;KACpB;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,aAAa;QACtB,cAAc,EAAE,oBAAoB;QACpC,eAAe,EAAE,CAAC,OAAO,CAAC;QAC1B,gBAAgB,EAAE,IAAI;QACtB,aAAa,EAAE,IAAI;KACpB;IACD;QACE,EAAE,EAAE,uBAAuB;QAC3B,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE,aAAa;QACtB,cAAc,EAAE,0BAA0B;QAC1C,eAAe,EAAE,CAAC,QAAQ,CAAC;QAC3B,gBAAgB,EAAE,IAAI;QACtB,aAAa,EAAE,IAAI;KACpB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE,aAAa;QACtB,cAAc,EAAE,8BAA8B;QAC9C,eAAe,EAAE,CAAC,YAAY,CAAC;QAC/B,aAAa,EAAE,2CAA2C;QAC1D,gBAAgB,EAAE,IAAI;QACtB,aAAa,EAAE,IAAI;KACpB;IACD;QACE,EAAE,EAAE,gCAAgC;QACpC,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE,aAAa;QACtB,cAAc,EAAE,mCAAmC;QACnD,YAAY,EAAE,aAAa;QAC3B,eAAe,EAAE,CAAC,eAAe,CAAC;QAClC,gBAAgB,EAAE,IAAI;KACvB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,aAAa;QACtB,cAAc,EAAE,8BAA8B;QAC9C,YAAY,EAAE,aAAa;QAC3B,eAAe,EAAE,CAAC,eAAe,CAAC;QAClC,gBAAgB,EAAE,IAAI;KACvB;CACF,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAsB,MAAM,CAAC,MAAM,CACpE,YAAY,CAAC,MAAM,CACjB,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,aAAa,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,CAC7E,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CACrC,CAAC;AAYF;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAe,EACf,OAAe,EACf,aAAqC,EACrC,uBAA0C,EAAE;IAE5C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IACxD,MAAM,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC9B,MAAM,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAE9B,MAAM,UAAU,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;IAEvD,wEAAwE;IACxE,MAAM,WAAW,GAAsB,MAAM,OAAO,CAAC,GAAG,CACtD,UAAU,CAAC,GAAG,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;QAC3B,MAAM,YAAY,GAAG,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;QAC7D,MAAM,eAAe,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IAC5D,CAAC,CAAC,CACH,CAAC;IAEF,4EAA4E;IAC5E,4EAA4E;IAC5E,qCAAqC;IACrC,EAAE;IACF,0EAA0E;IAC1E,6EAA6E;IAC7E,4EAA4E;IAC5E,mBAAmB;IACnB,MAAM,UAAU,GAAsB;QACpC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC;YAClD,CAAC,CAAC,CAAC,cAAc,CAAC;YAClB,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1E,CAAC;IACF,MAAM,QAAQ,GAAsB,MAAM,OAAO,CAAC,GAAG,CACnD,UAAU,CAAC,GAAG,CAAC,KAAK,EAAC,GAAG,EAAC,EAAE;QACzB,MAAM,eAAe,CACnB,oBAAoB,CAAC,GAAG,CAAC,EACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CACzB,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;IAC3C,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,kBAAkB,GAAsB,UAAU,CAAC,IAAI,CAC3D,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,KAAK,aAAa,CAC9C;QACC,CAAC,CAAC,MAAM,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC;QACjD,CAAC,CAAC,EAAE,CAAC;IAEP,oEAAoE;IACpE,yEAAyE;IACzE,MAAM,SAAS,GAAsB,UAAU,CAAC,IAAI,CAClD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,eAAe,CAC9B;QACC,CAAC,CAAC,CAAC,MAAM,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CACnE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAC3C;QACH,CAAC,CAAC,EAAE,CAAC;IAEP,kCAAkC;IAClC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,aAAa,CAAC,CAAC;IACpD,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAC3C,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CACnC,CAAC;IACF,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACvD,MAAM,SAAS,CAAC,aAAa,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;IAEnE,MAAM,YAAY,GAAG;QACnB,GAAG,WAAW;QACd,GAAG,QAAQ;QACX,GAAG,kBAAkB;QACrB,GAAG,SAAS;QACZ,cAAc;KACf,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,oBAAoB,CACxC,oBAAoB,EACpB,IAAI,GAAG,CAAC,YAAY,CAAC,EACrB,QAAQ,CACT,CAAC;IAEF,OAAO;QACL,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;QACzC,WAAW,EAAE,aAAa,CAAC,MAAM;QACjC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;KAChC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,OAAe,EACf,OAAe,EACf,aAAqC,EACrC,oBAAuC;IAEvC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC;IAC1E,MAAM,cAAc,GAAG,IAAI,GAAG,CAC5B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CACnD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CACrB,KAAK,CAAC,KAAK;SACR,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC;SAC1C,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAC7B,CACF,CACF,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC;QACpB,GAAG,oBAAoB;QACvB,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC7B,cAAc,CAAC,GAAG,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,CAC/D,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;KACnE,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;QACpE,MAAM,IAAI,GACR,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YACnB,cAAc,CAAC,GAAG,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC;YAC9D,CAAC,MAAM,mBAAmB,CACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAC7B,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,EACjC,OAAO,EACP,OAAO,CACR,CAAC,CAAC;QACL,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAClC,CAAC,CAAC,CACH,CAAC;IACF,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAChC,CAAC,KAAK,EAA6B,EAAE,CAAC,KAAK,KAAK,SAAS,CAC1D,CAAC;IACF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACxD,MAAM,4BAA4B,CAChC,OAAO,EACP,QAAQ,EACR,KAAK,EACL,OAAO,EACP,OAAO,CACR,CAAC;IACF,MAAM,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC9B,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;IACzE,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,eAAe,CAAC;QAChE,CAAC,CAAC,MAAM,sBAAsB,CAC1B,OAAO,EACP,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,KAAK,CACN;QACH,CAAC,CAAC,EAAE,CAAC;IACP,gFAAgF;IAChF,MAAM,OAAO,GAAG,MAAM,wBAAwB,CAC5C,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAC3D,QAAQ,CACT,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,wBAAwB,CAC5C,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAC1D,QAAQ,CACT,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,4BAA4B,CACzC,OAA0E,EAC1E,QAAgB,EAChB,KAA0B,EAC1B,OAAe,EACf,OAAe;IAEf,MAAM,OAAO,CAAC,GAAG,CACf,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YAClD,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,SAAS,CAAC;YAC9C,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAO;QACzC,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;YAC1B,IAAI,MAAM,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;gBAClE,OAAO;QACX,CAAC;aAAM,IACL,IAAI,CAAC,MAAM,EAAE;YACb,CAAC,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC,EAC5D,CAAC;YACD,OAAO;QACT,CAAC;QACD,MAAM,IAAI,KAAK,CACb,sCAAsC,QAAQ,iJAAiJ,CAChM,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,wBAAwB,CACrC,OAA0E,EAC1E,QAAgB;IAEhB,OAAO,OAAO,CAAC,GAAG,CAChB,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;QACxD,MAAM,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QACtE,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,oBAAoB,CAC3B,OAAe,EACf,QAAqC;IAErC,MAAM,OAAO,GAAG;QACd,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACxE,CAAC;IACF,OAAO;QACL,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACxB,MAAM,EAAE,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC;YACzC,QAAQ,EAAE,KAAK,CAAC,cAAc;SAC/B,CAAC,CAAC;QACH,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC1B,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC;YACtC,QAAQ;SACT,CAAC,CAAC;QACH,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,KAAK,MAAM,CAAC;YACvD,CAAC,CAAC;gBACE;oBACE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,sCAAsC,CAAC;oBAClE,QAAQ,EAAE,mBAAmB;iBAC9B;aACF;YACH,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,KAAK,aAAa,CAAC;YAC9D,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC;YAC/B,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,sBAAsB,CACnC,OAAe,EACf,QAAgB,EAChB,aAAqC,EACrC,QAAqC,EACrC,KAA0B;IAE1B,MAAM,SAAS,GAAG;QAChB,GAAG,IAAI,GAAG,CAAC;YACT,GAAG,aAAa;YAChB,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAC1B,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,CACnD;SACF,CAAC;KACH,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACrE,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,KAAK,CAAC,GAAG,CAAC,KAAK,EAAC,YAAY,EAAC,EAAE;YAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;YAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAClD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAC7D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;YAChE,MAAM,UAAU,GACd,IAAI,EAAE,cAAc,EAAE;gBACtB,CAAC,MAAM,mBAAmB,CACxB,WAAW,EACX,MAAM,EACN,OAAO,EACP,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CACvB,CAAC,CAAC;YACL,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAAE,OAAO,SAAS,CAAC;YAClE,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;YAC/C,MAAM,wBAAwB,CAC5B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,EAChC,WAAW,CACZ,CAAC;YACF,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC,CACH,CAAC;QACF,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IACrE,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,mBAAmB,CAChC,WAAmB,EACnB,MAAc,EACd,OAAe,EACf,OAAe;IAEf,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC7D,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE;QAAE,OAAO,KAAK,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CACzB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EACzB,MAAM,QAAQ,CAAC,WAAW,CAAC,CAC5B,CAAC;IACF,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAChD,IAAI,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACjD,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,MAAM,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAClD,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC;IACd,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;IACzE,OAAO,mBAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;AAC9D,CAAC;AAED;;;;GAIG;AACH,SAAS,sBAAsB,CAAC,QAAgB;IAC9C,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAC5C,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CACzE,CAAC;IACF,OAAO,IAAI,KAAK,SAAS;QACvB,CAAC,CAAC,CAAC,QAAQ,CAAC;QACZ,CAAC,CAAC;YACE,QAAQ;YACR,IAAI,CAAC,IAAI,CACP,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAC/B,OAAO,EACP,SAAS,EACT,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACxB;SACF,CAAC;AACR,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,mBAAmB,CAChC,MAAc,EACd,QAA2B,EAC3B,aAAqB;IAErB,MAAM,KAAK,GAAG,QAAQ;SACnB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;SAChD,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAC,IAAI,EAAC,EAAE;QACrB,IAAI,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACvE,OAAO,IAAI,CAAC;QACd,MAAM,QAAQ,GAAY,MAAM,QAAQ,CACtC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAC/B,MAAM,CACP;aACE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;aACvC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC1B,OAAO,CACL,OAAO,QAAQ,KAAK,QAAQ;YAC5B,QAAQ,KAAK,IAAI;YACjB,MAAM,IAAI,QAAQ;YAClB,QAAQ,CAAC,IAAI,KAAK,iBAAiB,CACpC,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;IACF,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,wBAAwB,CACrC,MAAc,EACd,WAAmB;IAEnB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,OAAO,CAC3B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,eAAe,CAAC,CACtD,CAAC;IACF,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACtD,MAAM,SAAS,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACvD,MAAM,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACzC,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED,2EAA2E;AAC3E,MAAM,qBAAqB,GAAG;IAC5B,GAAG,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE;IACjC,GAAG,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE;CACzB,CAAC;AAEX;;;;;;;GAOG;AACH,KAAK,UAAU,oBAAoB,CACjC,oBAAuC,EACvC,mBAAwC,EACxC,QAAgB;IAEhB,MAAM,KAAK,GAAG,oBAAoB;SAC/B,MAAM,CAAC,IAAI,CAAC,EAAE,CACb,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAC9D;SACA,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SAC9C,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IAEpD,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAClE,CAAC;IACF,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,SAAS,oBAAoB,CAC3B,aAAqC;IAErC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAS,aAAa,CAAC,CAAC;IACnD,OAAO,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACjC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CACjE,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,kBAAkB,CACzB,KAAuB,EACvB,QAAgB;IAEhB,MAAM,OAAO,GAAG,oEAAoE,iBAAiB,IAAI,KAAK,CAAC,cAAc,GAAG,CAAC;IACjI,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,OAAO;QACP,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS;YACnC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE;YACxC,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,aAAa,CAAC,aAAqB;IAChD,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAClD,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;;GAMG;AACH,SAAS,oBAAoB,CAAC,QAAgB;IAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AACnD,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,OAAe,EAAE,KAAuB;IACjE,OAAO,KAAK,CAAC,YAAY,KAAK,SAAS;QACrC,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,cAAc,CAAC;QAC5C,CAAC,CAAC,IAAI,CAAC,IAAI,CACP,OAAO,EACP,SAAS,EACT,KAAK,CAAC,YAAY,EAClB,OAAO,EACP,KAAK,CAAC,cAAc,CACrB,CAAC;AACR,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,sBAAsB,CACnC,OAAe,EACf,QAAgB;IAEhB,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,OAAO,CAAC,GAAG,CACf,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CACnC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CACvD,CACF,CAAC;IACF,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED;;;;GAIG;AACH,SAAS,oBAAoB,CAC3B,OAAe;IAEf,OAAO;QACL;YACE,MAAM,EAAE,IAAI,CAAC,IAAI,CACf,OAAO,EACP,SAAS,EACT,aAAa,EACb,OAAO,EACP,+BAA+B,CAChC;YACD,QAAQ,EAAE,+BAA+B;SAC1C;QACD;YACE,MAAM,EAAE,IAAI,CAAC,IAAI,CACf,OAAO,EACP,SAAS,EACT,aAAa,EACb,8BAA8B,CAC/B;YACD,QAAQ,EAAE,8BAA8B;SACzC;KACO,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,eAAe,CAC5B,MAAc,EACd,WAAmB;IAEnB,MAAM,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,MAAM,OAAO,CACX,MAAM,EACN,WAAW,EACX,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAClD,CAAC;AACJ,CAAC;AACD,+DAA+D"}
@@ -7,6 +7,8 @@ export interface LisaManagedManifest {
7
7
  * Used to identify which files to delete when they stop being shipped.
8
8
  */
9
9
  readonly files: readonly string[];
10
+ /** Intentional copied commands/data retained for already-loaded sessions. */
11
+ readonly hookCompatibilityFiles?: readonly string[];
10
12
  }
11
13
  /**
12
14
  * Read the Lisa-managed manifest from `<destDir>/.codex/.lisa-managed.json`.
@@ -19,8 +21,9 @@ export declare function readManagedManifest(destDir: string): Promise<LisaManage
19
21
  * Write the Lisa-managed manifest to disk, replacing any existing content.
20
22
  * @param destDir - Absolute path to the destination project root
21
23
  * @param files - Sorted list of relative-to-`.codex/` file paths Lisa shipped
24
+ * @param hookCompatibilityFiles Intentional copied legacy paths.
22
25
  */
23
- export declare function writeManagedManifest(destDir: string, files: readonly string[]): Promise<void>;
26
+ export declare function writeManagedManifest(destDir: string, files: readonly string[], hookCompatibilityFiles?: readonly string[]): Promise<void>;
24
27
  /**
25
28
  * Compute the set of stale files: in the previous manifest but not in the
26
29
  * new shipment. These are candidates for deletion.
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/codex/manifest.ts"],"names":[],"mappings":"AAuBA,mEAAmE;AACnE,eAAO,MAAM,8BAA8B,uBAAuB,CAAC;AAEnE,4CAA4C;AAC5C,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,mBAAmB,CAAC,CAY9B;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,SAAS,MAAM,EAAE,GACvB,OAAO,CAAC,IAAI,CAAC,CAYf;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,EAAE,SAAS,MAAM,EAAE,GACzB,SAAS,MAAM,EAAE,CAGnB"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/codex/manifest.ts"],"names":[],"mappings":"AAuBA,mEAAmE;AACnE,eAAO,MAAM,8BAA8B,uBAAuB,CAAC;AAEnE,4CAA4C;AAC5C,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,6EAA6E;IAC7E,QAAQ,CAAC,sBAAsB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACrD;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,mBAAmB,CAAC,CAY9B;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,sBAAsB,GAAE,SAAS,MAAM,EAAO,GAC7C,OAAO,CAAC,IAAI,CAAC,CAef;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,EAAE,SAAS,MAAM,EAAE,GACzB,SAAS,MAAM,EAAE,CAGnB"}
@@ -41,13 +41,17 @@ export async function readManagedManifest(destDir) {
41
41
  * Write the Lisa-managed manifest to disk, replacing any existing content.
42
42
  * @param destDir - Absolute path to the destination project root
43
43
  * @param files - Sorted list of relative-to-`.codex/` file paths Lisa shipped
44
+ * @param hookCompatibilityFiles Intentional copied legacy paths.
44
45
  */
45
- export async function writeManagedManifest(destDir, files) {
46
+ export async function writeManagedManifest(destDir, files, hookCompatibilityFiles = []) {
46
47
  const codexDir = path.join(destDir, ".codex");
47
48
  await fse.ensureDir(codexDir);
48
49
  const manifestPath = path.join(codexDir, LISA_MANAGED_MANIFEST_FILENAME);
49
50
  const manifest = {
50
51
  files: [...files].sort((a, b) => a.localeCompare(b)),
52
+ ...(hookCompatibilityFiles.length > 0
53
+ ? { hookCompatibilityFiles: [...hookCompatibilityFiles] }
54
+ : {}),
51
55
  };
52
56
  await writeFile(manifestPath, `${JSON.stringify(manifest, null, 2)}\n`, "utf8");
53
57
  }
@@ -81,6 +85,18 @@ function validateManifest(parsed, manifestPath) {
81
85
  if (files.length !== obj.files.length) {
82
86
  throw new Error(`Invalid Lisa-managed manifest at ${manifestPath}: "files" must contain only strings`);
83
87
  }
84
- return { files: Object.freeze(files) };
88
+ if (obj.hookCompatibilityFiles !== undefined &&
89
+ (!Array.isArray(obj.hookCompatibilityFiles) ||
90
+ obj.hookCompatibilityFiles.some(file => typeof file !== "string" || !files.includes(file)))) {
91
+ throw new Error(`Invalid Lisa-managed manifest at ${manifestPath}: compatibility files must be managed files`);
92
+ }
93
+ return {
94
+ files: Object.freeze(files),
95
+ ...(obj.hookCompatibilityFiles !== undefined
96
+ ? {
97
+ hookCompatibilityFiles: Object.freeze(obj.hookCompatibilityFiles),
98
+ }
99
+ : {}),
100
+ };
85
101
  }
86
102
  //# sourceMappingURL=manifest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/codex/manifest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/codex/manifest.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,10 @@ export interface ProjectHooksCleanupResult {
3
3
  readonly deleted: readonly string[];
4
4
  }
5
5
  /**
6
- * Remove only Lisa-tagged hook handlers and Lisa-owned legacy directories.
6
+ * Remove only Lisa-tagged handlers. Loaded commands still need their files.
7
7
  * @param destDir Host project root.
8
- * @param previousManagedFiles Previous `.codex` ownership entries.
8
+ * @param _previousManagedFiles Previous `.codex` ownership entries.
9
9
  * @returns Removed Lisa-owned paths.
10
10
  */
11
- export declare function retireProjectHooks(destDir: string, previousManagedFiles: readonly string[]): Promise<ProjectHooksCleanupResult>;
11
+ export declare function retireProjectHooks(destDir: string, _previousManagedFiles: readonly string[]): Promise<ProjectHooksCleanupResult>;
12
12
  //# sourceMappingURL=project-hooks-cleanup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"project-hooks-cleanup.d.ts","sourceRoot":"","sources":["../../src/codex/project-hooks-cleanup.ts"],"names":[],"mappings":"AAgBA,6CAA6C;AAC7C,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,oBAAoB,EAAE,SAAS,MAAM,EAAE,GACtC,OAAO,CAAC,yBAAyB,CAAC,CAoBpC"}
1
+ {"version":3,"file":"project-hooks-cleanup.d.ts","sourceRoot":"","sources":["../../src/codex/project-hooks-cleanup.ts"],"names":[],"mappings":"AAWA,6CAA6C;AAC7C,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,qBAAqB,EAAE,SAAS,MAAM,EAAE,GACvC,OAAO,CAAC,yBAAyB,CAAC,CAQpC"}