@codyswann/lisa 4.71.2 → 4.71.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 (95) hide show
  1. package/all/copy-overwrite/scripts/lib/github-attestation-provider.mjs +22 -0
  2. package/all/copy-overwrite/scripts/lib/npm-update-allocate.mjs +13 -3
  3. package/all/copy-overwrite/scripts/lib/npm-update-cancel-origin.mjs +291 -0
  4. package/all/copy-overwrite/scripts/lib/npm-update-cancellation-proof.mjs +327 -0
  5. package/all/copy-overwrite/scripts/lib/npm-update-cancellation.mjs +248 -0
  6. package/all/copy-overwrite/scripts/lib/npm-update-classifier-cache.mjs +94 -0
  7. package/all/copy-overwrite/scripts/lib/npm-update-helper-inventory.mjs +5 -0
  8. package/all/copy-overwrite/scripts/lib/npm-update-helper.mjs +9 -2
  9. package/all/copy-overwrite/scripts/lib/npm-update-invariants.mjs +4 -0
  10. package/all/copy-overwrite/scripts/lib/npm-update-leaf-contract.mjs +1 -1
  11. package/all/copy-overwrite/scripts/lib/npm-update-leaf.mjs +29 -3
  12. package/all/copy-overwrite/scripts/lib/npm-update-supersession.mjs +274 -0
  13. package/all/copy-overwrite/scripts/lisa-hooks/parity-safety-net.sh +122 -8
  14. package/all/copy-overwrite/scripts/lisa-npm-updater.mjs +61 -5
  15. package/all/copy-overwrite/scripts/npm-updater-helper-graph.json +85 -10
  16. package/dist/cli/hook-refresh-files.d.ts +86 -0
  17. package/dist/cli/hook-refresh-files.d.ts.map +1 -0
  18. package/dist/cli/hook-refresh-files.js +209 -0
  19. package/dist/cli/hook-refresh-files.js.map +1 -0
  20. package/dist/cli/index.d.ts +3 -0
  21. package/dist/cli/index.d.ts.map +1 -1
  22. package/dist/cli/index.js +3 -0
  23. package/dist/cli/index.js.map +1 -1
  24. package/dist/cli/refresh-hooks-cmd.d.ts +27 -0
  25. package/dist/cli/refresh-hooks-cmd.d.ts.map +1 -0
  26. package/dist/cli/refresh-hooks-cmd.js +156 -0
  27. package/dist/cli/refresh-hooks-cmd.js.map +1 -0
  28. package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
  29. package/dist/core/lisa-owned-hash-ledger.js +78 -0
  30. package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
  31. package/dist/core/nightly-e2e-guard-behavior-certificate.js +2 -2
  32. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  33. package/dist/core/upstream-evidence-manifest.js +37 -14
  34. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  35. package/dist/opencode/plugin-templates/parity-safety-net.sh +122 -8
  36. package/package.json +4 -4
  37. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  38. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  39. package/plugins/lisa/hooks/parity-safety-net.sh +122 -8
  40. package/plugins/lisa-agy/hooks/parity-safety-net.sh +122 -8
  41. package/plugins/lisa-agy/plugin.json +1 -1
  42. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  43. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  44. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  45. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  46. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  47. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  48. package/plugins/lisa-copilot/hooks/parity-safety-net.sh +122 -8
  49. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  50. package/plugins/lisa-cursor/hooks/parity-safety-net.sh +122 -8
  51. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  52. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  53. package/plugins/lisa-expo-agy/plugin.json +1 -1
  54. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  55. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  56. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  57. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  58. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  59. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  60. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  61. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  62. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  63. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  64. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  65. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  66. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  67. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  68. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  69. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  70. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  71. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  72. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  73. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  74. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  75. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  76. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  77. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  78. package/plugins/lisa-rails-agy/plugin.json +1 -1
  79. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  80. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  81. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  82. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  83. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  84. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  85. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  86. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  87. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  88. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  89. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  90. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  91. package/plugins/src/base/hooks/parity-safety-net.sh +122 -8
  92. package/rails/copy-overwrite/scripts/lisa-scratch-run.sh +54 -9
  93. package/scripts/build-plugins.sh +3 -0
  94. package/scripts/generate-scratch-supervisor-profile.mjs +75 -0
  95. package/scripts/two-channel-couplings.json +2 -2
@@ -72,7 +72,7 @@
72
72
  "children": []
73
73
  },
74
74
  "lib/github-attestation-provider.mjs": {
75
- "sha256": "43be8987bd5af04130eedcc256f8a3c5667d3648dfdf37b0fb7d3ce28f417c08",
75
+ "sha256": "98dbe0326546a1d10e148ed9036d5696159dee38068beddff321f1b2d47fcdc7",
76
76
  "staticImports": [
77
77
  "lib/bounded-spawn.mjs",
78
78
  "lib/github-attestation-verifier.mjs"
@@ -176,7 +176,7 @@
176
176
  "children": []
177
177
  },
178
178
  "lib/npm-update-allocate.mjs": {
179
- "sha256": "f28cd52c08836bd7cf18a14e18e1f69293bbb2c84e2da77ddbcd267d71f6c11e",
179
+ "sha256": "c35a8c44bf67e4afb2849f2ea41948e190f1b108b35db25b38418478a3227e36",
180
180
  "staticImports": [
181
181
  "lib/github-attestation-verifier.mjs",
182
182
  "lib/npm-update-contract.mjs",
@@ -184,7 +184,9 @@
184
184
  "lib/npm-update-npm.mjs",
185
185
  "lib/npm-update-prepare.mjs",
186
186
  "lib/npm-update-process.mjs",
187
- "lib/npm-update-recovery.mjs"
187
+ "lib/npm-update-recovery.mjs",
188
+ "lib/npm-update-supersession.mjs",
189
+ "lisa-automation-provenance.mjs"
188
190
  ],
189
191
  "dynamicImports": [],
190
192
  "children": []
@@ -219,6 +221,54 @@
219
221
  "dynamicImports": [],
220
222
  "children": []
221
223
  },
224
+ "lib/npm-update-cancel-origin.mjs": {
225
+ "sha256": "331554c8d2201fb6fe6934d158f5f60d7da11bbb1d4aa938ef9437afe724b5ff",
226
+ "staticImports": [
227
+ "lib/automation-provenance-contract.mjs",
228
+ "lib/github-attestation-provider.mjs",
229
+ "lib/github-attestation-recovery.mjs",
230
+ "lib/github-attestation-verifier.mjs",
231
+ "lib/npm-update-checkpoint.mjs",
232
+ "lib/npm-update-contract.mjs",
233
+ "lib/npm-update-leaf.mjs",
234
+ "lib/npm-update-process.mjs",
235
+ "lisa-automation-provenance.mjs",
236
+ "node:fs",
237
+ "node:path"
238
+ ],
239
+ "dynamicImports": [],
240
+ "children": []
241
+ },
242
+ "lib/npm-update-cancellation-proof.mjs": {
243
+ "sha256": "56365dbe20ef540b8a3d59a3ce9e0fa33c9c4efdfb27c2b69e27cbe60b2ba204",
244
+ "staticImports": [
245
+ "lib/github-attestation-verifier.mjs",
246
+ "lib/npm-update-contract.mjs",
247
+ "lisa-automation-provenance.mjs"
248
+ ],
249
+ "dynamicImports": [],
250
+ "children": []
251
+ },
252
+ "lib/npm-update-cancellation.mjs": {
253
+ "sha256": "529122fd37117526d97277de116fe0080bce85557062585bd73ce7d8be2f88b9",
254
+ "staticImports": [
255
+ "lib/github-attestation-verifier.mjs",
256
+ "lib/npm-update-allocate.mjs",
257
+ "lib/npm-update-cancel-origin.mjs",
258
+ "lib/npm-update-cancellation-proof.mjs",
259
+ "lib/npm-update-checkpoint.mjs",
260
+ "lib/npm-update-contract.mjs",
261
+ "lib/npm-update-hosted-gate.mjs",
262
+ "lib/npm-update-invariants.mjs",
263
+ "lib/npm-update-process.mjs",
264
+ "lib/npm-update-supersession.mjs",
265
+ "lisa-automation-provenance.mjs",
266
+ "node:fs",
267
+ "node:path"
268
+ ],
269
+ "dynamicImports": [],
270
+ "children": []
271
+ },
222
272
  "lib/npm-update-checkpoint.mjs": {
223
273
  "sha256": "1c0c9d1442d65cc848a80bce010fc0d7d9f3792b9080df03ce3286177b4d37a0",
224
274
  "staticImports": [
@@ -230,6 +280,14 @@
230
280
  "dynamicImports": [],
231
281
  "children": []
232
282
  },
283
+ "lib/npm-update-classifier-cache.mjs": {
284
+ "sha256": "92272e40617ca9d620ff47e3ffe07a0e5bc1a3949d139752aa2675398ab49f9b",
285
+ "staticImports": [
286
+ "lib/npm-update-contract.mjs"
287
+ ],
288
+ "dynamicImports": [],
289
+ "children": []
290
+ },
233
291
  "lib/npm-update-contract.mjs": {
234
292
  "sha256": "6905dd9d5747702ab502b66bcb38b6d4dcb30127f02466d29b3905f53c27981d",
235
293
  "staticImports": [
@@ -422,14 +480,15 @@
422
480
  "children": []
423
481
  },
424
482
  "lib/npm-update-helper-inventory.mjs": {
425
- "sha256": "da1bd212a20406c060d26c52bc8e67dac3fef51afafb604042b9c6e26b07bdb6",
483
+ "sha256": "3561c20458d74eff34650d6b4366f4f03ed4e7825ae886ea78394f63f98a18bb",
426
484
  "staticImports": [],
427
485
  "dynamicImports": [],
428
486
  "children": []
429
487
  },
430
488
  "lib/npm-update-helper.mjs": {
431
- "sha256": "f4012383184237aa0a7ca21847864fdcc2241f94fd3d2cd6d82a6345763e5824",
489
+ "sha256": "41e5a37769ec3737829ed1948d0a1442792b25d120f0fb4f4b5e424a50f34705",
432
490
  "staticImports": [
491
+ "lib/npm-update-classifier-cache.mjs",
433
492
  "lib/npm-update-contract.mjs",
434
493
  "lib/npm-update-helper-graph.mjs",
435
494
  "lib/npm-update-helper-inventory.mjs",
@@ -536,7 +595,7 @@
536
595
  ]
537
596
  },
538
597
  "lib/npm-update-invariants.mjs": {
539
- "sha256": "e7a093ceeaca34b6e0cf2ea2eccd3b5e1882e295ec2baeeaec9da0373e669687",
598
+ "sha256": "136cb22396d33252494c4df1e35d13ff58c58a0ca34fbe5c68954b077cb3f30b",
540
599
  "staticImports": [],
541
600
  "dynamicImports": [],
542
601
  "children": []
@@ -552,7 +611,7 @@
552
611
  "children": []
553
612
  },
554
613
  "lib/npm-update-leaf-contract.mjs": {
555
- "sha256": "8e7bcfb1d604f2d49cd86c1964330a84d4f8a4945feb5e5a9d4f72e2aa03dc07",
614
+ "sha256": "1686c41dd54accb8e52595cbe66b0780878c2dc9eba3436b574d869bcfe93110",
556
615
  "staticImports": [
557
616
  "lib/npm-update-contract.mjs",
558
617
  "lisa-automation-provenance.mjs",
@@ -562,7 +621,7 @@
562
621
  "children": []
563
622
  },
564
623
  "lib/npm-update-leaf.mjs": {
565
- "sha256": "0cc4210470edf0042a61a74799d570b2a1a3e524dca03faca78e49ad88a4dfb9",
624
+ "sha256": "6638fa03bb9bb44bd84fc9b4a91d8a334030c108e2759a2a673000dcbfbfe637",
566
625
  "staticImports": [
567
626
  "lib/github-attestation-verifier.mjs",
568
627
  "lib/npm-update-contract.mjs",
@@ -779,6 +838,21 @@
779
838
  "dynamicImports": [],
780
839
  "children": []
781
840
  },
841
+ "lib/npm-update-supersession.mjs": {
842
+ "sha256": "d336e2c611f43ec2c576ddba19cad6533c1bc50e100f291e4c2cffd82bad3cde",
843
+ "staticImports": [
844
+ "lib/github-attestation-verifier.mjs",
845
+ "lib/npm-update-cancel-origin.mjs",
846
+ "lib/npm-update-cancellation-proof.mjs",
847
+ "lib/npm-update-contract.mjs",
848
+ "lib/npm-update-process.mjs",
849
+ "lisa-automation-provenance.mjs",
850
+ "node:fs",
851
+ "node:path"
852
+ ],
853
+ "dynamicImports": [],
854
+ "children": []
855
+ },
782
856
  "lib/npm-update-tool-launcher.mjs": {
783
857
  "sha256": "03e58c15ceee04a80a2c2a597454132ab742fc13c878eb1cb742a6ee0e045045",
784
858
  "staticImports": [
@@ -953,12 +1027,13 @@
953
1027
  "children": []
954
1028
  },
955
1029
  "lisa-npm-updater.mjs": {
956
- "sha256": "0bfa51b90df7ef2e076d35312ece4b6b550e586f2f343a85d94e7dca52156809",
1030
+ "sha256": "3ee8529f74396b06b1189db9dd37bc002d1e17d9abd9fbd9da6c20c212db7898",
957
1031
  "staticImports": [
958
1032
  "lib/github-attestation-verifier.mjs",
959
1033
  "lib/invoked-as-script.mjs",
960
1034
  "lib/npm-update-allocate.mjs",
961
1035
  "lib/npm-update-authorization.mjs",
1036
+ "lib/npm-update-cancellation.mjs",
962
1037
  "lib/npm-update-contract.mjs",
963
1038
  "lib/npm-update-gate-proof.mjs",
964
1039
  "lib/npm-update-gate.mjs",
@@ -1010,7 +1085,7 @@
1010
1085
  ]
1011
1086
  },
1012
1087
  "lisa-scratch-run.sh": {
1013
- "sha256": "ef3c38f8d1d2f48ba265e21f841310d25142228dac57b0a5742c7d902113ca9a",
1088
+ "sha256": "6fdec1ad0441d7636dc6749c44a23167baf7b75004f156b8a7d4ce1c18c790b7",
1014
1089
  "staticImports": [],
1015
1090
  "dynamicImports": [],
1016
1091
  "children": []
@@ -0,0 +1,86 @@
1
+ /** Confine refresh IO and rollback to held native file identities. */
2
+ import { type BigIntStats } from "node:fs";
3
+ import { type FileHandle } from "node:fs/promises";
4
+ /** Retained object; pathname replacement never supplies write authority. */
5
+ export interface Pin {
6
+ readonly filename: string;
7
+ readonly handle: FileHandle;
8
+ readonly identity: BigIntStats;
9
+ }
10
+ /**
11
+ * Require the pathname still selects its retained object.
12
+ * @param pin - Original native object.
13
+ */
14
+ export declare function checkPath(pin: Pin): Promise<void>;
15
+ /**
16
+ * Read a bounded regular descriptor, detecting growth or torn observations.
17
+ * @param pin - Retained file.
18
+ * @returns Complete bytes.
19
+ */
20
+ export declare function bytes(pin: Pin): Promise<Buffer>;
21
+ /** Bounded original bytes and acknowledged writes on one retained destination. */
22
+ export declare class HookPair {
23
+ readonly source: Pin;
24
+ readonly host: Pin;
25
+ readonly sourceBytes: Buffer;
26
+ readonly hostBytes: Buffer;
27
+ private expected;
28
+ private expectedMode;
29
+ /**
30
+ * Keep source and destination authority for one operation.
31
+ * @param source - Read-only package descriptor.
32
+ * @param host - Original writable host descriptor.
33
+ * @param sourceBytes - Authenticated release bytes.
34
+ * @param hostBytes - Bounded original backup.
35
+ */
36
+ constructor(source: Pin, host: Pin, sourceBytes: Buffer, hostBytes: Buffer);
37
+ /**
38
+ * Write only the held inode; verify each acknowledged write before truncation.
39
+ * @param content - Complete replacement or backup bytes.
40
+ */
41
+ write(content: Buffer): Promise<void>;
42
+ /** Reject shared inodes or concurrent bytes before any further mutation. */
43
+ private assertOwnWrites;
44
+ /**
45
+ * Change permissions only on the retained inode containing our writes.
46
+ * @param mode - Original authenticated source or backup permissions.
47
+ */
48
+ chmod(mode: number): Promise<void>;
49
+ /** Restore only this original inode while it contains our acknowledged writes. */
50
+ restore(): Promise<void>;
51
+ }
52
+ /** Operation-local native resources and error accumulation, always finally-closed. */
53
+ export declare class HookFiles {
54
+ private readonly pins;
55
+ private readonly changed;
56
+ private readonly failures;
57
+ /**
58
+ * Retain a no-follow object before subsequent validation can fail.
59
+ * @param filename - Confined absolute path.
60
+ * @param flags - Native access flags.
61
+ * @returns Original object.
62
+ */
63
+ retain(filename: string, flags: number): Promise<Pin>;
64
+ /**
65
+ * Hold every closed directory component including the resolved root.
66
+ * @param root - Canonical package or host root.
67
+ * @param relative - Closed directory suffix.
68
+ * @returns Pinned ancestors.
69
+ */
70
+ directories(root: string, relative: string): Promise<Pin[]>;
71
+ /**
72
+ * Register a backup immediately before the first possible write.
73
+ * @param pair - Original descriptor and bytes.
74
+ */
75
+ mark(pair: HookPair): void;
76
+ /**
77
+ * Preserve the original failure and attempt every descriptor-bound rollback.
78
+ * @param original - Original refresh failure.
79
+ */
80
+ rollback(original: unknown): Promise<void>;
81
+ /** Close every retained handle even after preflight, write or rollback errors. */
82
+ close(): Promise<void>;
83
+ /** Surface all native failures, preserving the original error object first. */
84
+ assertSuccess(): void;
85
+ }
86
+ //# sourceMappingURL=hook-refresh-files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-refresh-files.d.ts","sourceRoot":"","sources":["../../src/cli/hook-refresh-files.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAKhE,4EAA4E;AAC5E,MAAM,WAAW,GAAG;IAClB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;CAChC;AAYD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAIvD;AAED;;;;GAIG;AACH,wBAAsB,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CA+BrD;AAED,kFAAkF;AAClF,qBAAa,QAAQ;IAYjB,QAAQ,CAAC,MAAM,EAAE,GAAG;IACpB,QAAQ,CAAC,IAAI,EAAE,GAAG;IAClB,QAAQ,CAAC,WAAW,EAAE,MAAM;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM;IAd5B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAAS;IAE7B;;;;;;OAMG;gBAEQ,MAAM,EAAE,GAAG,EACX,IAAI,EAAE,GAAG,EACT,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM;IAM5B;;;OAGG;IACG,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B3C,4EAA4E;YAC9D,eAAe;IAY7B;;;OAGG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxC,kFAAkF;IAC5E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAO/B;AAED,sFAAsF;AACtF,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAE1C;;;;;OAKG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAe3D;;;;;OAKG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAqBjE;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAI1B;;;OAGG;IACG,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAWhD,kFAAkF;IAC5E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAU5B,+EAA+E;IAC/E,aAAa,IAAI,IAAI;CAQtB"}
@@ -0,0 +1,209 @@
1
+ /** Confine refresh IO and rollback to held native file identities. */
2
+ import { constants } from "node:fs";
3
+ import { lstat, open } from "node:fs/promises";
4
+ import path from "node:path";
5
+ const MAXIMUM = 4 * 1024 * 1024;
6
+ /**
7
+ * Compare native objects; failed observations never mean absence.
8
+ * @param left - Fresh native metadata.
9
+ * @param right - Retained metadata.
10
+ * @returns Same device and inode.
11
+ */
12
+ function sameIdentity(left, right) {
13
+ return left.dev === right.dev && left.ino === right.ino;
14
+ }
15
+ /**
16
+ * Require the pathname still selects its retained object.
17
+ * @param pin - Original native object.
18
+ */
19
+ export async function checkPath(pin) {
20
+ const actual = await lstat(pin.filename, { bigint: true });
21
+ if (actual.isSymbolicLink() || !sameIdentity(actual, pin.identity))
22
+ throw new Error("Hook path changed after preflight");
23
+ }
24
+ /**
25
+ * Read a bounded regular descriptor, detecting growth or torn observations.
26
+ * @param pin - Retained file.
27
+ * @returns Complete bytes.
28
+ */
29
+ export async function bytes(pin) {
30
+ const before = await pin.handle.stat({ bigint: true });
31
+ if (!before.isFile() ||
32
+ !sameIdentity(before, pin.identity) ||
33
+ before.size < 0n ||
34
+ before.size > BigInt(MAXIMUM))
35
+ throw new Error("Hook refresh requires bounded regular files");
36
+ const size = Number(before.size);
37
+ const buffer = Buffer.alloc(size + 1);
38
+ const cursor = { value: 0 };
39
+ while (cursor.value < buffer.length) {
40
+ const result = await pin.handle.read(buffer, cursor.value, buffer.length - cursor.value, cursor.value);
41
+ if (result.bytesRead === 0)
42
+ break;
43
+ cursor.value += result.bytesRead;
44
+ }
45
+ const after = await pin.handle.stat({ bigint: true });
46
+ if (cursor.value !== size ||
47
+ before.size !== after.size ||
48
+ before.mtimeNs !== after.mtimeNs ||
49
+ before.ctimeNs !== after.ctimeNs)
50
+ throw new Error("Hook changed during descriptor read");
51
+ return buffer.subarray(0, cursor.value);
52
+ }
53
+ /** Bounded original bytes and acknowledged writes on one retained destination. */
54
+ export class HookPair {
55
+ source;
56
+ host;
57
+ sourceBytes;
58
+ hostBytes;
59
+ expected;
60
+ expectedMode;
61
+ /**
62
+ * Keep source and destination authority for one operation.
63
+ * @param source - Read-only package descriptor.
64
+ * @param host - Original writable host descriptor.
65
+ * @param sourceBytes - Authenticated release bytes.
66
+ * @param hostBytes - Bounded original backup.
67
+ */
68
+ constructor(source, host, sourceBytes, hostBytes) {
69
+ this.source = source;
70
+ this.host = host;
71
+ this.sourceBytes = sourceBytes;
72
+ this.hostBytes = hostBytes;
73
+ this.expected = hostBytes;
74
+ this.expectedMode = Number(host.identity.mode & 511n);
75
+ }
76
+ /**
77
+ * Write only the held inode; verify each acknowledged write before truncation.
78
+ * @param content - Complete replacement or backup bytes.
79
+ */
80
+ async write(content) {
81
+ const cursor = { value: 0 };
82
+ while (cursor.value < content.length) {
83
+ await this.assertOwnWrites();
84
+ const result = await this.host.handle.write(content, cursor.value, content.length - cursor.value, cursor.value);
85
+ if (result.bytesWritten <= 0)
86
+ throw new Error("Hook descriptor write made no progress");
87
+ const next = Buffer.alloc(Math.max(this.expected.length, cursor.value + result.bytesWritten));
88
+ this.expected.copy(next);
89
+ content.copy(next, cursor.value, cursor.value, cursor.value + result.bytesWritten);
90
+ this.expected = next;
91
+ cursor.value += result.bytesWritten;
92
+ await this.assertOwnWrites();
93
+ }
94
+ await this.assertOwnWrites();
95
+ await this.host.handle.truncate(content.length);
96
+ this.expected = Buffer.from(content);
97
+ }
98
+ /** Reject shared inodes or concurrent bytes before any further mutation. */
99
+ async assertOwnWrites() {
100
+ const info = await this.host.handle.stat({ bigint: true });
101
+ if (info.nlink > 1n ||
102
+ Number(info.mode & 511n) !== this.expectedMode ||
103
+ !(await bytes(this.host)).equals(this.expected))
104
+ throw new Error("Concurrent hook edit or hardlink preserved; rollback refused");
105
+ }
106
+ /**
107
+ * Change permissions only on the retained inode containing our writes.
108
+ * @param mode - Original authenticated source or backup permissions.
109
+ */
110
+ async chmod(mode) {
111
+ await this.assertOwnWrites();
112
+ await this.host.handle.chmod(mode);
113
+ this.expectedMode = mode;
114
+ }
115
+ /** Restore only this original inode while it contains our acknowledged writes. */
116
+ async restore() {
117
+ await this.assertOwnWrites();
118
+ await this.write(this.hostBytes);
119
+ await this.chmod(Number(this.host.identity.mode & 511n));
120
+ if (!(await bytes(this.host)).equals(this.hostBytes))
121
+ throw new Error("Descriptor rollback readback differs");
122
+ }
123
+ }
124
+ /** Operation-local native resources and error accumulation, always finally-closed. */
125
+ export class HookFiles {
126
+ pins = [];
127
+ changed = [];
128
+ failures = [];
129
+ /**
130
+ * Retain a no-follow object before subsequent validation can fail.
131
+ * @param filename - Confined absolute path.
132
+ * @param flags - Native access flags.
133
+ * @returns Original object.
134
+ */
135
+ async retain(filename, flags) {
136
+ const identity = await lstat(filename, { bigint: true });
137
+ if (identity.isSymbolicLink() ||
138
+ (!identity.isFile() && !identity.isDirectory()))
139
+ throw new Error("Hook refresh requires regular objects");
140
+ const handle = await open(filename, flags | constants.O_NOFOLLOW);
141
+ const pin = { filename, handle, identity };
142
+ this.pins.push(pin);
143
+ if (!sameIdentity(await handle.stat({ bigint: true }), identity))
144
+ throw new Error("Hook identity changed during open");
145
+ return pin;
146
+ }
147
+ /**
148
+ * Hold every closed directory component including the resolved root.
149
+ * @param root - Canonical package or host root.
150
+ * @param relative - Closed directory suffix.
151
+ * @returns Pinned ancestors.
152
+ */
153
+ async directories(root, relative) {
154
+ const parts = relative.split("/");
155
+ const filenames = [
156
+ root,
157
+ ...parts.map((_part, index) => path.join(root, ...parts.slice(0, index + 1))),
158
+ ];
159
+ const results = [];
160
+ for (const filename of filenames) {
161
+ const pin = await this.retain(filename, constants.O_RDONLY | constants.O_DIRECTORY);
162
+ if (!pin.identity.isDirectory())
163
+ throw new Error("Hook refresh requires regular directory components");
164
+ results.push(pin);
165
+ }
166
+ return results;
167
+ }
168
+ /**
169
+ * Register a backup immediately before the first possible write.
170
+ * @param pair - Original descriptor and bytes.
171
+ */
172
+ mark(pair) {
173
+ this.changed.push(pair);
174
+ }
175
+ /**
176
+ * Preserve the original failure and attempt every descriptor-bound rollback.
177
+ * @param original - Original refresh failure.
178
+ */
179
+ async rollback(original) {
180
+ this.failures.push(original);
181
+ for (const pair of [...this.changed].reverse()) {
182
+ try {
183
+ await pair.restore();
184
+ }
185
+ catch (error) {
186
+ this.failures.push(error);
187
+ }
188
+ }
189
+ }
190
+ /** Close every retained handle even after preflight, write or rollback errors. */
191
+ async close() {
192
+ for (const pin of [...this.pins].reverse()) {
193
+ try {
194
+ await pin.handle.close();
195
+ }
196
+ catch (error) {
197
+ this.failures.push(error);
198
+ }
199
+ }
200
+ }
201
+ /** Surface all native failures, preserving the original error object first. */
202
+ assertSuccess() {
203
+ if (this.failures.length === 1)
204
+ throw this.failures[0];
205
+ if (this.failures.length > 1)
206
+ throw new AggregateError(this.failures, "Hook refresh failed; rollback or close also failed");
207
+ }
208
+ }
209
+ //# sourceMappingURL=hook-refresh-files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-refresh-files.js","sourceRoot":"","sources":["../../src/cli/hook-refresh-files.ts"],"names":[],"mappings":"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"}
@@ -15,12 +15,15 @@ import { runUi } from "./ui-cmd.js";
15
15
  import { runUpdate } from "./update-cmd.js";
16
16
  import { runUpdateCheck } from "./update-check.js";
17
17
  import { runVersion } from "./version-cmd.js";
18
+ import { refreshHooks } from "./refresh-hooks-cmd.js";
18
19
  /**
19
20
  * Injectable collaborators for {@link createProgram}. Defaults wire the real
20
21
  * apply action and npm update-check; tests override them to observe the program
21
22
  * wiring without touching the registry or the orchestrator.
22
23
  */
23
24
  export interface ProgramDependencies {
25
+ /** Refreshes the explicitly selected released hook cohort only. */
26
+ refreshHooks: typeof refreshHooks;
24
27
  /** Applies Lisa to a destination (defaults to the real {@link runApply}). */
25
28
  runApply: typeof runApply;
26
29
  /** Creates a starter-backed project and applies Lisa overlays. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAEL,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAyB,MAAM,iBAAiB,CAAC;AAEtE,OAAO,EACL,UAAU,EACV,eAAe,EACf,eAAe,EAEhB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAEL,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAI/C,OAAO,EAEL,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,OAAO,EAAuB,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAgB,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAO9C;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,6EAA6E;IAC7E,QAAQ,EAAE,OAAO,QAAQ,CAAC;IAC1B,kEAAkE;IAClE,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,4DAA4D;IAC5D,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,wCAAwC;IACxC,UAAU,EAAE,OAAO,UAAU,CAAC;IAC9B,yDAAyD;IACzD,SAAS,EAAE,OAAO,SAAS,CAAC;IAC5B,qCAAqC;IACrC,SAAS,EAAE,OAAO,SAAS,CAAC;IAC5B,4EAA4E;IAC5E,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,2EAA2E;IAC3E,OAAO,EAAE,OAAO,OAAO,CAAC;IACxB,8DAA8D;IAC9D,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,iEAAiE;IACjE,uBAAuB,EAAE,OAAO,uBAAuB,CAAC;IACxD,sEAAsE;IACtE,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,uDAAuD;IACvD,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,qEAAqE;IACrE,oBAAoB,EAAE,OAAO,oBAAoB,CAAC;IAClD,iEAAiE;IACjE,UAAU,EAAE,OAAO,UAAU,CAAC;IAC9B,4EAA4E;IAC5E,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,kEAAkE;IAClE,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,gFAAgF;IAChF,cAAc,EAAE,OAAO,cAAc,CAAC;IACtC,0EAA0E;IAC1E,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;CAC/C;AAgND;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,YAAY,GAAE,OAAO,CAAC,mBAAmB,CAAM,GAC9C,OAAO,CAiET;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAEL,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAyB,MAAM,iBAAiB,CAAC;AAEtE,OAAO,EACL,UAAU,EACV,eAAe,EACf,eAAe,EAEhB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAEL,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAI/C,OAAO,EAEL,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,OAAO,EAAuB,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAgB,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAM9C,OAAO,EAAyB,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE7E;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,mEAAmE;IACnE,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,6EAA6E;IAC7E,QAAQ,EAAE,OAAO,QAAQ,CAAC;IAC1B,kEAAkE;IAClE,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,4DAA4D;IAC5D,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,wCAAwC;IACxC,UAAU,EAAE,OAAO,UAAU,CAAC;IAC9B,yDAAyD;IACzD,SAAS,EAAE,OAAO,SAAS,CAAC;IAC5B,qCAAqC;IACrC,SAAS,EAAE,OAAO,SAAS,CAAC;IAC5B,4EAA4E;IAC5E,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,2EAA2E;IAC3E,OAAO,EAAE,OAAO,OAAO,CAAC;IACxB,8DAA8D;IAC9D,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,iEAAiE;IACjE,uBAAuB,EAAE,OAAO,uBAAuB,CAAC;IACxD,sEAAsE;IACtE,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,uDAAuD;IACvD,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,qEAAqE;IACrE,oBAAoB,EAAE,OAAO,oBAAoB,CAAC;IAClD,iEAAiE;IACjE,UAAU,EAAE,OAAO,UAAU,CAAC;IAC9B,4EAA4E;IAC5E,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,kEAAkE;IAClE,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,gFAAgF;IAChF,cAAc,EAAE,OAAO,cAAc,CAAC;IACtC,0EAA0E;IAC1E,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;CAC/C;AAiND;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,YAAY,GAAE,OAAO,CAAC,mBAAmB,CAAM,GAC9C,OAAO,CAmET;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
package/dist/cli/index.js CHANGED
@@ -26,7 +26,9 @@ import { addRemoteEnvCommand } from "./remote-env-cmd.js";
26
26
  import { addWorkstationCommand } from "./workstation-cmd.js";
27
27
  import { getPackageVersion } from "./version.js";
28
28
  import { addEffectivenessCommand } from "./effectiveness-cmd.js";
29
+ import { addHookRefreshCommand, refreshHooks } from "./refresh-hooks-cmd.js";
29
30
  const DEFAULT_DEPENDENCIES = {
31
+ refreshHooks,
30
32
  runApply,
31
33
  runSetupProject,
32
34
  runSetupWiki,
@@ -202,6 +204,7 @@ export function createProgram(dependencies = {}) {
202
204
  .version(getPackageVersion())
203
205
  .option("--no-update-check", "Skip the npm latest-version check");
204
206
  addUpdateCheckHook(program, deps);
207
+ addHookRefreshCommand(program, deps.refreshHooks);
205
208
  // `apply` is both the explicit subcommand and the default command, so the
206
209
  // historical positional form `lisa <destination>` routes here unchanged and
207
210
  // produces the same result as `lisa apply <destination>`. Commander rejects a
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAEL,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAyB,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACL,UAAU,EACV,eAAe,EACf,eAAe,GAEhB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EACL,kCAAkC,EAClC,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAmB,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EACL,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,OAAO,EAAuB,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AA8CjE,MAAM,oBAAoB,GAAwB;IAChD,QAAQ;IACR,eAAe;IACf,YAAY;IACZ,UAAU;IACV,SAAS;IACT,SAAS;IACT,iBAAiB;IACjB,OAAO;IACP,KAAK;IACL,uBAAuB;IACvB,eAAe;IACf,YAAY;IACZ,oBAAoB;IACpB,UAAU;IACV,eAAe;IACf,eAAe;IACf,cAAc;IACd,kBAAkB;CACnB,CAAC;AAEF,0EAA0E;AAC1E,MAAM,oBAAoB,GAAG,2CAA2C,CAAC;AAEzE;;;;GAIG;AACH,SAAS,eAAe,CAAC,OAAgB,EAAE,IAAyB;IAClE,MAAM,IAAI,GAAG,OAAO;SACjB,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,uDAAuD,CAAC,CAAC;IACxE,IAAI;SACD,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CACV,mEAAmE,CACpE;SACA,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;SACxC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC;SAC7B,MAAM,CACL,KAAK,EAAE,UAA8B,EAAE,OAA2B,EAAE,EAAE;QACpE,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAChE,CAAC,CACF,CAAC;IACJ,IAAI;SACD,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CACV,gEAAgE,CACjE;SACA,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;SACxC,cAAc,CAAC,oBAAoB,EAAE,kCAAkC,CAAC;SACxE,cAAc,CAAC,sBAAsB,EAAE,8BAA8B,CAAC;SACtE,cAAc,CACb,oBAAoB,EACpB,8DAA8D,CAC/D;SACA,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC;SACrC,MAAM,CAAC,qBAAqB,EAAE,2BAA2B,CAAC;SAC1D,MAAM,CAAC,QAAQ,EAAE,oCAAoC,CAAC;SACtD,MAAM,CAAC,KAAK,EAAE,UAA8B,EAAE,OAAuB,EAAE,EAAE;QACxE,IACE,CAAE,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAW,CAAC,QAAQ,CACrD,OAAO,CAAC,QAAQ,CACjB,EACD,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IACL,IAAI;SACD,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,2DAA2D,CAAC;SACxE,QAAQ,CAAC,YAAY,EAAE,sCAAsC,CAAC;SAC9D,MAAM,CAAC,eAAe,EAAE,+CAA+C,CAAC;SACxE,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,OAAiC,EAAE,EAAE;QACpE,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,OAAgB,EAAE,IAAyB;IACnE,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,kDAAkD,CAAC;SAC/D,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;SAC7C,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC;SAC7B,MAAM,CAAC,WAAW,EAAE,qBAAqB,CAAC;SAC1C,MAAM,CACL,aAAa,EACb,iGAAiG,CAClG;SACA,MAAM,CAAC,KAAK,EAAE,UAA8B,EAAE,OAAO,EAAE,EAAE;QACxD,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,OAAgB,EAAE,IAAyB;IACnE,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CACV,+DAA+D,CAChE;SACA,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;SACxC,MAAM,CACL,mBAAmB,EACnB,kEAAkE,CACnE;SACA,MAAM,CACL,sBAAsB,EACtB,4DAA4D,CAC7D;SACA,MAAM,CACL,KAAK,EAAE,UAA8B,EAAE,OAAyB,EAAE,EAAE;QAClE,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC,CACF,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,SAAS,sBAAsB,CAC7B,OAAgB,EAChB,IAAyB;IAEzB,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,6BAA6B,CAAC;SAC1C,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CACV,0EAA0E,CAC3E;SACA,MAAM,CAAC,OAAO,EAAE,8CAA8C,CAAC;SAC/D,MAAM,CAAC,KAAK,EAAE,OAA0B,EAAE,EAAE;QAC3C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAChC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAChC,wBAAwB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAExC,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CACV,6FAA6F,CAC9F;SACA,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;SACxC,MAAM,CAAC,WAAW,EAAE,0CAA0C,CAAC;SAC/D,MAAM,CAAC,QAAQ,EAAE,yBAAyB,CAAC;SAC3C,MAAM,CAAC,KAAK,EAAE,UAA8B,EAAE,OAAuB,EAAE,EAAE;QACxE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACrD,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC1B,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAElC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/B,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/B,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAE1B,OAAO;SACJ,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CACV,6FAA6F,CAC9F;SACA,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;SACxC,MAAM,CAAC,SAAS,EAAE,wDAAwD,CAAC;SAC3E,MAAM,CACL,KAAK,EACH,UAA8B,EAC9B,OAA8B,EAC9B,EAAE;QACF,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC,CACF,CAAC;IAEJ,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAC3B,eAA6C,EAAE;IAE/C,MAAM,IAAI,GAAwB;QAChC,GAAG,oBAAoB;QACvB,GAAG,YAAY;KAChB,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,MAAM,CAAC;SACZ,WAAW,CACV,0FAA0F,CAC3F;SACA,OAAO,CAAC,iBAAiB,EAAE,CAAC;SAC5B,MAAM,CAAC,mBAAmB,EAAE,mCAAmC,CAAC,CAAC;IAEpE,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAElC,0EAA0E;IAC1E,4EAA4E;IAC5E,8EAA8E;IAC9E,0EAA0E;IAC1E,uEAAuE;IACvE,gBAAgB,CACd,OAAO;SACJ,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;SACrC,WAAW,CAAC,0DAA0D,CAAC;SACvE,QAAQ,CAAC,eAAe,EAAE,+BAA+B,CAAC,CAC9D,CAAC,MAAM,CAAC,KAAK,EAAE,WAA+B,EAAE,OAAmB,EAAE,EAAE;QACtE,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,gBAAgB,CACd,OAAO;SACJ,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,uDAAuD,CAAC;SACpE,cAAc,CACb,eAAe,EACf,iBAAiB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAC3C;SACA,QAAQ,CAAC,eAAe,EAAE,8CAA8C,CAAC,CAC7E,CAAC,MAAM,CACN,KAAK,EACH,WAA+B,EAC/B,OAAuC,EACvC,EAAE;QACF,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,OAAO,EAAE;YAC/C,GAAG,kCAAkC;YACrC,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;IACL,CAAC,CACF,CAAC;IAEF,gBAAgB,CACd,OAAO;SACJ,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,0DAA0D,CAAC;SACvE,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAC5C,CAAC,MAAM,CAAC,KAAK,EAAE,WAA+B,EAAE,OAAmB,EAAE,EAAE;QACtE,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACtC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAE3B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { Command } from "commander";
2
+ import { type HashLedger } from "../core/lisa-owned-provenance.js";
3
+ /**
4
+ * Register finite refresh without entering full apply.
5
+ * @param program - CLI program.
6
+ * @param execute - Native refresh or command-routing fixture.
7
+ */
8
+ export declare function addHookRefreshCommand(program: Command, execute: typeof refreshHooks): void;
9
+ /** Installed-package and shipping-history seams for protocol fixtures. */
10
+ export interface HookRefreshDependencies {
11
+ readonly packageDir?: string;
12
+ readonly ledger?: HashLedger;
13
+ }
14
+ /**
15
+ * Select only unique declared guards and required companions.
16
+ * @param selection - Exact comma-separated names.
17
+ * @returns Deterministic filenames.
18
+ */
19
+ export declare function hookCohort(selection: string): readonly string[];
20
+ /**
21
+ * Refresh a closed cohort with bounded backups on retained original inodes.
22
+ * @param destination - Host root; unrelated dirty files are permitted.
23
+ * @param dependencies - Package/history defaults or fixture inputs.
24
+ * @param selection - Closed guard names.
25
+ */
26
+ export declare function refreshHooks(destination: string, dependencies?: HookRefreshDependencies, selection?: string): Promise<void>;
27
+ //# sourceMappingURL=refresh-hooks-cmd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refresh-hooks-cmd.d.ts","sourceRoot":"","sources":["../../src/cli/refresh-hooks-cmd.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAEL,KAAK,UAAU,EAChB,MAAM,kCAAkC,CAAC;AAqB1C;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,YAAY,GAC3B,IAAI,CAcN;AAED,0EAA0E;AAC1E,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;CAC9B;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAY/D;AAqHD;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,EACnB,YAAY,GAAE,uBAA4B,EAC1C,SAAS,SAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAqCf"}