@cleocode/core 2026.10.6 → 2026.10.7

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 (242) hide show
  1. package/dist/build-provenance.json +2 -2
  2. package/dist/cloud/http.d.ts +8 -0
  3. package/dist/cloud/http.d.ts.map +1 -1
  4. package/dist/cloud/http.js +11 -0
  5. package/dist/cloud/http.js.map +1 -1
  6. package/dist/cloud/journal.d.ts +6 -0
  7. package/dist/cloud/journal.d.ts.map +1 -1
  8. package/dist/cloud/journal.js +1 -1
  9. package/dist/cloud/journal.js.map +1 -1
  10. package/dist/cloud/nexus-cloud-status.d.ts.map +1 -1
  11. package/dist/cloud/nexus-cloud-status.js +3 -1
  12. package/dist/cloud/nexus-cloud-status.js.map +1 -1
  13. package/dist/cloud/nexus-vault.d.ts +86 -1
  14. package/dist/cloud/nexus-vault.d.ts.map +1 -1
  15. package/dist/cloud/nexus-vault.js +875 -98
  16. package/dist/cloud/nexus-vault.js.map +1 -1
  17. package/dist/docs/doctor.d.ts +183 -0
  18. package/dist/docs/doctor.d.ts.map +1 -0
  19. package/dist/docs/doctor.js +537 -0
  20. package/dist/docs/doctor.js.map +1 -0
  21. package/dist/doctor/system-health.d.ts +189 -0
  22. package/dist/doctor/system-health.d.ts.map +1 -0
  23. package/dist/doctor/system-health.js +783 -0
  24. package/dist/doctor/system-health.js.map +1 -0
  25. package/dist/git/hooks-install.d.ts +17 -34
  26. package/dist/git/hooks-install.d.ts.map +1 -1
  27. package/dist/git/hooks-install.js +173 -70
  28. package/dist/git/hooks-install.js.map +1 -1
  29. package/dist/harness/ask-enforce.d.ts +43 -0
  30. package/dist/harness/ask-enforce.d.ts.map +1 -0
  31. package/dist/harness/ask-enforce.js +165 -0
  32. package/dist/harness/ask-enforce.js.map +1 -0
  33. package/dist/hooks.d.ts +8 -30
  34. package/dist/hooks.d.ts.map +1 -1
  35. package/dist/hooks.js +36 -116
  36. package/dist/hooks.js.map +1 -1
  37. package/dist/init.d.ts +2 -1
  38. package/dist/init.d.ts.map +1 -1
  39. package/dist/init.js +5 -14
  40. package/dist/init.js.map +1 -1
  41. package/dist/injection.d.ts +2 -2
  42. package/dist/injection.d.ts.map +1 -1
  43. package/dist/injection.js +108 -10
  44. package/dist/injection.js.map +1 -1
  45. package/dist/internal.d.ts +1 -1
  46. package/dist/internal.d.ts.map +1 -1
  47. package/dist/internal.js +1 -1
  48. package/dist/internal.js.map +1 -1
  49. package/dist/issue/create.d.ts +4 -0
  50. package/dist/issue/create.d.ts.map +1 -1
  51. package/dist/issue/create.js +12 -0
  52. package/dist/issue/create.js.map +1 -1
  53. package/dist/issue/index.d.ts +1 -1
  54. package/dist/issue/index.d.ts.map +1 -1
  55. package/dist/issue/index.js +1 -1
  56. package/dist/issue/index.js.map +1 -1
  57. package/dist/orchestrate/spawn-ops.d.ts.map +1 -1
  58. package/dist/orchestrate/spawn-ops.js +8 -2
  59. package/dist/orchestrate/spawn-ops.js.map +1 -1
  60. package/dist/orchestration/lean-change.d.ts +15 -0
  61. package/dist/orchestration/lean-change.d.ts.map +1 -0
  62. package/dist/orchestration/lean-change.js +17 -0
  63. package/dist/orchestration/lean-change.js.map +1 -0
  64. package/dist/orchestration/spawn-prompt.d.ts.map +1 -1
  65. package/dist/orchestration/spawn-prompt.js +6 -4
  66. package/dist/orchestration/spawn-prompt.js.map +1 -1
  67. package/dist/release/ci-evidence.d.ts +59 -0
  68. package/dist/release/ci-evidence.d.ts.map +1 -1
  69. package/dist/release/ci-evidence.js +150 -5
  70. package/dist/release/ci-evidence.js.map +1 -1
  71. package/dist/release/plan.d.ts.map +1 -1
  72. package/dist/release/plan.js +11 -2
  73. package/dist/release/plan.js.map +1 -1
  74. package/dist/release/pr-evidence.d.ts +15 -0
  75. package/dist/release/pr-evidence.d.ts.map +1 -1
  76. package/dist/release/pr-evidence.js +42 -1
  77. package/dist/release/pr-evidence.js.map +1 -1
  78. package/dist/release/reconcile.js +2 -2
  79. package/dist/release/reconcile.js.map +1 -1
  80. package/dist/release/verify-provenance.js +2 -2
  81. package/dist/release/verify-provenance.js.map +1 -1
  82. package/dist/resources/admission-ledger.d.ts +8 -0
  83. package/dist/resources/admission-ledger.d.ts.map +1 -1
  84. package/dist/resources/admission-ledger.js +5 -0
  85. package/dist/resources/admission-ledger.js.map +1 -1
  86. package/dist/resources/claim-keepalive.d.ts +34 -0
  87. package/dist/resources/claim-keepalive.d.ts.map +1 -0
  88. package/dist/resources/claim-keepalive.js +49 -0
  89. package/dist/resources/claim-keepalive.js.map +1 -0
  90. package/dist/resources/governor.d.ts.map +1 -1
  91. package/dist/resources/governor.js +3 -0
  92. package/dist/resources/governor.js.map +1 -1
  93. package/dist/scaffold/ensure-config.js +1 -1
  94. package/dist/scaffold/ensure-config.js.map +1 -1
  95. package/dist/store/attachment-store.d.ts.map +1 -1
  96. package/dist/store/attachment-store.js +2 -1
  97. package/dist/store/attachment-store.js.map +1 -1
  98. package/dist/store/restore-marker.d.ts +50 -7
  99. package/dist/store/restore-marker.d.ts.map +1 -1
  100. package/dist/store/restore-marker.js +77 -25
  101. package/dist/store/restore-marker.js.map +1 -1
  102. package/dist/store/row-identity-registry.d.ts +6 -4
  103. package/dist/store/row-identity-registry.d.ts.map +1 -1
  104. package/dist/store/row-identity-registry.js +156 -33
  105. package/dist/store/row-identity-registry.js.map +1 -1
  106. package/dist/store/schema/cleo-project/provenance-orphans.d.ts +16 -0
  107. package/dist/store/schema/cleo-project/provenance-orphans.d.ts.map +1 -1
  108. package/dist/store/schema/cleo-project/provenance-orphans.js +4 -1
  109. package/dist/store/schema/cleo-project/provenance-orphans.js.map +1 -1
  110. package/dist/store/schema/cleo-shared/brain.d.ts +240 -0
  111. package/dist/store/schema/cleo-shared/brain.d.ts.map +1 -1
  112. package/dist/store/schema/cleo-shared/brain.js +69 -0
  113. package/dist/store/schema/cleo-shared/brain.js.map +1 -1
  114. package/dist/store/schema/tasks.d.ts +1 -1
  115. package/dist/store/schema/tasks.d.ts.map +1 -1
  116. package/dist/store/schema/tasks.js +9 -1
  117. package/dist/store/schema/tasks.js.map +1 -1
  118. package/dist/store/sync/apply/applier.d.ts.map +1 -1
  119. package/dist/store/sync/apply/applier.js +85 -3
  120. package/dist/store/sync/apply/applier.js.map +1 -1
  121. package/dist/store/sync/apply/parent-delete.d.ts.map +1 -1
  122. package/dist/store/sync/apply/parent-delete.js +4 -0
  123. package/dist/store/sync/apply/parent-delete.js.map +1 -1
  124. package/dist/store/sync/capture.d.ts +8 -0
  125. package/dist/store/sync/capture.d.ts.map +1 -1
  126. package/dist/store/sync/capture.js +20 -0
  127. package/dist/store/sync/capture.js.map +1 -1
  128. package/dist/store/sync/clock-store.d.ts +21 -0
  129. package/dist/store/sync/clock-store.d.ts.map +1 -1
  130. package/dist/store/sync/clock-store.js +47 -0
  131. package/dist/store/sync/clock-store.js.map +1 -1
  132. package/dist/store/sync/conflicts.d.ts +13 -0
  133. package/dist/store/sync/conflicts.d.ts.map +1 -1
  134. package/dist/store/sync/conflicts.js +22 -0
  135. package/dist/store/sync/conflicts.js.map +1 -1
  136. package/dist/store/sync/genesis.d.ts +113 -12
  137. package/dist/store/sync/genesis.d.ts.map +1 -1
  138. package/dist/store/sync/genesis.js +325 -27
  139. package/dist/store/sync/genesis.js.map +1 -1
  140. package/dist/store/sync/merge/types.d.ts +8 -2
  141. package/dist/store/sync/merge/types.d.ts.map +1 -1
  142. package/dist/store/sync/pull.d.ts +192 -0
  143. package/dist/store/sync/pull.d.ts.map +1 -0
  144. package/dist/store/sync/pull.js +429 -0
  145. package/dist/store/sync/pull.js.map +1 -0
  146. package/dist/store/sync/push.d.ts +110 -0
  147. package/dist/store/sync/push.d.ts.map +1 -0
  148. package/dist/store/sync/push.js +172 -0
  149. package/dist/store/sync/push.js.map +1 -0
  150. package/dist/store/sync/replay-pin.d.ts +70 -0
  151. package/dist/store/sync/replay-pin.d.ts.map +1 -0
  152. package/dist/store/sync/replay-pin.js +172 -0
  153. package/dist/store/sync/replay-pin.js.map +1 -0
  154. package/dist/store/sync/sealer.d.ts.map +1 -1
  155. package/dist/store/sync/sealer.js +6 -2
  156. package/dist/store/sync/sealer.js.map +1 -1
  157. package/dist/store/sync/timestamp-canon.d.ts.map +1 -1
  158. package/dist/store/sync/timestamp-canon.js +15 -0
  159. package/dist/store/sync/timestamp-canon.js.map +1 -1
  160. package/dist/store/table-classification.d.ts.map +1 -1
  161. package/dist/store/table-classification.js +51 -15
  162. package/dist/store/table-classification.js.map +1 -1
  163. package/dist/store/tasks-schema.d.ts +1 -1
  164. package/dist/store/tasks-schema.d.ts.map +1 -1
  165. package/dist/store/tasks-schema.js +1 -1
  166. package/dist/store/tasks-schema.js.map +1 -1
  167. package/dist/store/twin-collapse.d.ts.map +1 -1
  168. package/dist/store/twin-collapse.js +5 -0
  169. package/dist/store/twin-collapse.js.map +1 -1
  170. package/dist/store/vault-manifest.d.ts +7 -0
  171. package/dist/store/vault-manifest.d.ts.map +1 -1
  172. package/dist/store/vault-manifest.js +4 -0
  173. package/dist/store/vault-manifest.js.map +1 -1
  174. package/dist/tasks/ac-table.d.ts +17 -0
  175. package/dist/tasks/ac-table.d.ts.map +1 -1
  176. package/dist/tasks/ac-table.js +49 -0
  177. package/dist/tasks/ac-table.js.map +1 -1
  178. package/dist/tasks/affected-scope.d.ts +52 -3
  179. package/dist/tasks/affected-scope.d.ts.map +1 -1
  180. package/dist/tasks/affected-scope.js +94 -3
  181. package/dist/tasks/affected-scope.js.map +1 -1
  182. package/dist/tasks/change-set.d.ts.map +1 -1
  183. package/dist/tasks/change-set.js +9 -5
  184. package/dist/tasks/change-set.js.map +1 -1
  185. package/dist/tasks/complete-ci.d.ts +2 -0
  186. package/dist/tasks/complete-ci.d.ts.map +1 -1
  187. package/dist/tasks/complete-ci.js +26 -7
  188. package/dist/tasks/complete-ci.js.map +1 -1
  189. package/dist/tasks/complete.d.ts.map +1 -1
  190. package/dist/tasks/complete.js +10 -0
  191. package/dist/tasks/complete.js.map +1 -1
  192. package/dist/tasks/done-plan.d.ts.map +1 -1
  193. package/dist/tasks/done-plan.js +63 -6
  194. package/dist/tasks/done-plan.js.map +1 -1
  195. package/dist/tasks/evidence.d.ts +3 -0
  196. package/dist/tasks/evidence.d.ts.map +1 -1
  197. package/dist/tasks/evidence.js +106 -2
  198. package/dist/tasks/evidence.js.map +1 -1
  199. package/dist/tasks/gate-preview.d.ts +19 -1
  200. package/dist/tasks/gate-preview.d.ts.map +1 -1
  201. package/dist/tasks/gate-preview.js +44 -2
  202. package/dist/tasks/gate-preview.js.map +1 -1
  203. package/dist/tasks/gate-runner.d.ts +16 -0
  204. package/dist/tasks/gate-runner.d.ts.map +1 -1
  205. package/dist/tasks/gate-runner.js +25 -2
  206. package/dist/tasks/gate-runner.js.map +1 -1
  207. package/dist/tasks/qa-run-binding.d.ts +88 -0
  208. package/dist/tasks/qa-run-binding.d.ts.map +1 -0
  209. package/dist/tasks/qa-run-binding.js +188 -0
  210. package/dist/tasks/qa-run-binding.js.map +1 -0
  211. package/dist/tasks/req.d.ts +50 -0
  212. package/dist/tasks/req.d.ts.map +1 -1
  213. package/dist/tasks/req.js +99 -1
  214. package/dist/tasks/req.js.map +1 -1
  215. package/dist/tasks/test-run-binding.d.ts +29 -0
  216. package/dist/tasks/test-run-binding.d.ts.map +1 -1
  217. package/dist/tasks/test-run-binding.js +47 -23
  218. package/dist/tasks/test-run-binding.js.map +1 -1
  219. package/dist/tasks/tool-resolver.d.ts +9 -0
  220. package/dist/tasks/tool-resolver.d.ts.map +1 -1
  221. package/dist/tasks/tool-resolver.js +14 -3
  222. package/dist/tasks/tool-resolver.js.map +1 -1
  223. package/dist/tasks/tool-semaphore.d.ts.map +1 -1
  224. package/dist/tasks/tool-semaphore.js +3 -0
  225. package/dist/tasks/tool-semaphore.js.map +1 -1
  226. package/dist/upgrade.d.ts.map +1 -1
  227. package/dist/upgrade.js +10 -1
  228. package/dist/upgrade.js.map +1 -1
  229. package/dist/validation/engine-ops.d.ts.map +1 -1
  230. package/dist/validation/engine-ops.js +14 -3
  231. package/dist/validation/engine-ops.js.map +1 -1
  232. package/migrations/drizzle-cleo-global/20261010130000_t12895-brain-natural-uids/migration.sql +28 -0
  233. package/migrations/drizzle-cleo-global/20261010140000_t12896-brain-autoinc-uids/migration.sql +54 -0
  234. package/migrations/drizzle-cleo-project/20261010130000_t12895-brain-natural-uids/migration.sql +36 -0
  235. package/migrations/drizzle-cleo-project/20261010140000_t12896-brain-autoinc-uids/migration.sql +58 -0
  236. package/migrations/sync-journal/20261008120000_t12343-pull-cursor/migration.sql +28 -0
  237. package/migrations/sync-journal/20261009120000_t13318-seen-floor/migration.sql +41 -0
  238. package/package.json +18 -18
  239. package/templates/CLEO-INJECTION.md +5 -3
  240. package/templates/CLEO-REFERENCE.md +1 -1
  241. package/templates/git-hooks/legacy-hashes.json +20 -0
  242. package/templates/git-hooks/pre-commit +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-health.js","sourceRoot":"","sources":["../../src/doctor/system-health.ts"],"names":[],"mappings":"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"}
@@ -10,48 +10,31 @@
10
10
  * node/pnpm dependencies, so they install cleanly into Rust, Python,
11
11
  * bare-repo, or any other environment cleo init runs against.
12
12
  *
13
- * Sentinel-based ownership: only files containing the
14
- * `# CLEO_MANAGED_HOOK v1` line in their first 5 lines are considered
15
- * CLEO-owned and will be overwritten without `force`. Any pre-existing,
16
- * non-CLEO hook is preserved unless `force: true` is passed.
13
+ * Content-based ownership: only exact shipped templates or hash-verified installation receipts authorize
14
+ * refresh. Foreign and customized files are always preserved.
17
15
  */
16
+ import { type GitHookInstallOptions, type GitHookInstallReceipt } from '@cleocode/contracts/git-hooks.js';
18
17
  /**
19
- * Sentinel line embedded in every CLEO-managed hook script. Used to
20
- * distinguish CLEO-owned hooks from user-customized hooks at upgrade
21
- * time, so a `cleo upgrade hooks_sync` (T1588) never clobbers user work.
18
+ * Diagnostic marker embedded in shipped hooks. A marker alone never grants
19
+ * refresh authority; installation validates content hashes.
22
20
  */
23
21
  export declare const CLEO_HOOK_SENTINEL = "# CLEO_MANAGED_HOOK v1";
24
22
  /**
25
23
  * The set of hooks CLEO ships and manages. Order matches the order
26
- * we iterate them; both names match the on-disk filenames in
24
+ * we iterate them; all names match the on-disk filenames in
27
25
  * `packages/core/templates/git-hooks/` (T9858 relocated cleo→core).
28
26
  */
29
- export declare const CLEO_HOOK_NAMES: readonly ["commit-msg", "pre-push"];
27
+ export declare const CLEO_HOOK_NAMES: readonly ["commit-msg", "pre-commit", "pre-push"];
28
+ /** Name of a shipped Git hook. */
30
29
  export type CleoHookName = (typeof CLEO_HOOK_NAMES)[number];
31
30
  /** Options for {@link installCleoHooks}. */
32
- export interface InstallCleoHooksOptions {
33
- /**
34
- * Override the hook source directory. Defaults to
35
- * `<repoRoot>/packages/core/templates/git-hooks` (in-monorepo) or the
36
- * resolved `@cleocode/core` install location at runtime. T9858 relocated
37
- * the hook templates packages/cleo → packages/core.
38
- */
39
- templatesDir?: string;
40
- /**
41
- * If true, overwrite existing hook files even when they are NOT
42
- * CLEO-managed (no sentinel). Used for emergency repair / explicit
43
- * `--force`. Defaults to false.
44
- */
45
- force?: boolean;
46
- /**
47
- * If true, do not actually write — return what WOULD happen.
48
- */
49
- dryRun?: boolean;
50
- }
31
+ export type InstallCleoHooksOptions = GitHookInstallOptions;
51
32
  /** Result of {@link installCleoHooks}. */
52
33
  export interface InstallCleoHooksResult {
53
34
  /** Absolute path to the hooks dir we wrote into. */
54
35
  hooksDir: string;
36
+ /** Recovery receipt for this installation; absent on previews. */
37
+ receipt?: GitHookInstallReceipt;
55
38
  /** Names of hooks that were installed (newly written or overwritten). */
56
39
  installed: CleoHookName[];
57
40
  /** Names of hooks skipped because a non-CLEO file already exists. */
@@ -63,12 +46,12 @@ export interface InstallCleoHooksResult {
63
46
  * Install CLEO's git hooks into a project.
64
47
  *
65
48
  * Resolves `core.hooksPath` first (so Husky / lefthook / nested
66
- * worktree configs are respected). Falls back to `<projectRoot>/.git/hooks`.
49
+ * worktree configs are respected). Git resolves the common directory for linked worktrees.
67
50
  *
68
51
  * For each managed hook:
69
52
  * - If the destination file is missing → write it (mode 0o755).
70
- * - If it exists AND has the CLEO sentinel → overwrite (refresh).
71
- * - If it exists AND has NO sentinel → skip unless `force: true`.
53
+ * - If its hash matches a shipped template or receipt → refresh.
54
+ * - Otherwise preserve it, including files with customized CLEO markers.
72
55
  *
73
56
  * @param projectRoot Absolute path to the git project root.
74
57
  * @param opts See {@link InstallCleoHooksOptions}.
@@ -77,8 +60,8 @@ export interface InstallCleoHooksResult {
77
60
  */
78
61
  export declare function installCleoHooks(projectRoot: string, opts?: InstallCleoHooksOptions): Promise<InstallCleoHooksResult>;
79
62
  /**
80
- * Returns true when `filePath` is a CLEO-managed hook (the first 5 lines
81
- * contain {@link CLEO_HOOK_SENTINEL}). Returns false on read error.
63
+ * Detect the CLEO marker for diagnostics, without establishing ownership.
64
+ * Returns false on read error; installers must validate the content hash.
82
65
  */
83
66
  export declare function isCleoManagedHook(filePath: string): boolean;
84
67
  /**
@@ -93,7 +76,7 @@ export declare function resolveGitDir(projectRoot: string): string | null;
93
76
  * Resolve the hooks directory the project actually uses.
94
77
  *
95
78
  * If `core.hooksPath` is set (Husky / lefthook / custom), respect it.
96
- * Otherwise fall back to `<gitDir>/hooks`.
79
+ * Git resolves its common directory for linked worktrees.
97
80
  */
98
81
  export declare function resolveHooksDir(projectRoot: string, gitDir: string): string;
99
82
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"hooks-install.d.ts","sourceRoot":"","sources":["../../src/git/hooks-install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAMH;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,2BAA2B,CAAC;AAE3D;;;;GAIG;AACH,eAAO,MAAM,eAAe,qCAAsC,CAAC;AACnE,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5D,4CAA4C;AAC5C,MAAM,WAAW,uBAAuB;IACtC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,0CAA0C;AAC1C,MAAM,WAAW,sBAAsB;IACrC,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,qEAAqE;IACrE,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,gDAAgD;IAChD,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;CACpD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,uBAA4B,GACjC,OAAO,CAAC,sBAAsB,CAAC,CAuDjC;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAY3D;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkBhE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAc3E;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAyB5C"}
1
+ {"version":3,"file":"hooks-install.d.ts","sourceRoot":"","sources":["../../src/git/hooks-install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,OAAO,EAGL,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAG3B,MAAM,kCAAkC,CAAC;AAK1C;;;GAGG;AACH,eAAO,MAAM,kBAAkB,2BAA2B,CAAC;AAE3D;;;;GAIG;AACH,eAAO,MAAM,eAAe,mDAAsB,CAAC;AACnD,kCAAkC;AAClC,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5D,4CAA4C;AAC5C,MAAM,MAAM,uBAAuB,GAAG,qBAAqB,CAAC;AAE5D,0CAA0C;AAC1C,MAAM,WAAW,sBAAsB;IACrC,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,yEAAyE;IACzE,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,qEAAqE;IACrE,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,gDAAgD;IAChD,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;CACpD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,uBAA4B,GACjC,OAAO,CAAC,sBAAsB,CAAC,CAuKjC;AA4BD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAY3D;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAShE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAY3E;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAyB5C"}
@@ -10,36 +10,39 @@
10
10
  * node/pnpm dependencies, so they install cleanly into Rust, Python,
11
11
  * bare-repo, or any other environment cleo init runs against.
12
12
  *
13
- * Sentinel-based ownership: only files containing the
14
- * `# CLEO_MANAGED_HOOK v1` line in their first 5 lines are considered
15
- * CLEO-owned and will be overwritten without `force`. Any pre-existing,
16
- * non-CLEO hook is preserved unless `force: true` is passed.
13
+ * Content-based ownership: only exact shipped templates or hash-verified installation receipts authorize
14
+ * refresh. Foreign and customized files are always preserved.
17
15
  */
18
16
  import { execFileSync } from 'node:child_process';
17
+ import { createHash } from 'node:crypto';
19
18
  import * as fs from 'node:fs';
20
19
  import * as path from 'node:path';
20
+ import { fileURLToPath } from 'node:url';
21
+ import { CLEO_GIT_HOOK_NAMES, GitHookInstallReceiptSchema, GitHookLegacyHashesSchema, } from '@cleocode/contracts/git-hooks.js';
22
+ import { atomicWrite } from '../store/atomic.js';
23
+ import { withFileLock } from '../store/file-utils.js';
24
+ import { canonicalizePath } from '../tools/fs.js';
21
25
  /**
22
- * Sentinel line embedded in every CLEO-managed hook script. Used to
23
- * distinguish CLEO-owned hooks from user-customized hooks at upgrade
24
- * time, so a `cleo upgrade hooks_sync` (T1588) never clobbers user work.
26
+ * Diagnostic marker embedded in shipped hooks. A marker alone never grants
27
+ * refresh authority; installation validates content hashes.
25
28
  */
26
29
  export const CLEO_HOOK_SENTINEL = '# CLEO_MANAGED_HOOK v1';
27
30
  /**
28
31
  * The set of hooks CLEO ships and manages. Order matches the order
29
- * we iterate them; both names match the on-disk filenames in
32
+ * we iterate them; all names match the on-disk filenames in
30
33
  * `packages/core/templates/git-hooks/` (T9858 relocated cleo→core).
31
34
  */
32
- export const CLEO_HOOK_NAMES = ['commit-msg', 'pre-push'];
35
+ export const CLEO_HOOK_NAMES = CLEO_GIT_HOOK_NAMES;
33
36
  /**
34
37
  * Install CLEO's git hooks into a project.
35
38
  *
36
39
  * Resolves `core.hooksPath` first (so Husky / lefthook / nested
37
- * worktree configs are respected). Falls back to `<projectRoot>/.git/hooks`.
40
+ * worktree configs are respected). Git resolves the common directory for linked worktrees.
38
41
  *
39
42
  * For each managed hook:
40
43
  * - If the destination file is missing → write it (mode 0o755).
41
- * - If it exists AND has the CLEO sentinel → overwrite (refresh).
42
- * - If it exists AND has NO sentinel → skip unless `force: true`.
44
+ * - If its hash matches a shipped template or receipt → refresh.
45
+ * - Otherwise preserve it, including files with customized CLEO markers.
43
46
  *
44
47
  * @param projectRoot Absolute path to the git project root.
45
48
  * @param opts See {@link InstallCleoHooksOptions}.
@@ -53,49 +56,166 @@ export async function installCleoHooks(projectRoot, opts = {}) {
53
56
  throw new Error(`installCleoHooks: ${absRoot} is not inside a git repository (no .git/ found).`);
54
57
  }
55
58
  const hooksDir = resolveHooksDir(absRoot, gitDir);
59
+ const commonDir = fs.realpathSync(execFileSync('git', ['-C', absRoot, 'rev-parse', '--path-format=absolute', '--git-common-dir'], {
60
+ encoding: 'utf8',
61
+ }).trim());
62
+ const bare = execFileSync('git', ['-C', absRoot, 'rev-parse', '--is-bare-repository'], {
63
+ encoding: 'utf8',
64
+ }).trim() === 'true';
65
+ const checkoutRoot = bare
66
+ ? commonDir
67
+ : fs.realpathSync(execFileSync('git', ['-C', absRoot, 'rev-parse', '--show-toplevel'], {
68
+ encoding: 'utf8',
69
+ }).trim());
70
+ const effective = await canonicalizePath(hooksDir);
71
+ const inside = (parent, child) => {
72
+ const rel = path.relative(parent, child);
73
+ return (rel === '' || (!path.isAbsolute(rel) && rel !== '..' && !rel.startsWith(`..${path.sep}`)));
74
+ };
75
+ if (inside(checkoutRoot, effective) &&
76
+ !inside(commonDir, effective) &&
77
+ !opts.allowTrackedHooksPath) {
78
+ const recommendation = `in-worktree core.hooksPath preserved; opt in explicitly: cleo init --git-hooks-only --allow-tracked-hooks-path`;
79
+ return {
80
+ hooksDir,
81
+ installed: [],
82
+ skipped: [...CLEO_HOOK_NAMES],
83
+ skipReasons: Object.fromEntries(CLEO_HOOK_NAMES.map((name) => [name, recommendation])),
84
+ };
85
+ }
86
+ // Receipts and locks remain Git-private even when hooksPath points into tracked files.
87
+ const stateDir = path.join(commonDir, 'cleo-git-hooks');
88
+ const stateEntry = fs.lstatSync(stateDir, { throwIfNoEntry: false });
89
+ if (stateEntry && (!stateEntry.isDirectory() || stateEntry.isSymbolicLink())) {
90
+ // @sync-invariant none:local-only refuse redirected local filesystem installation metadata.
91
+ throw new Error('Git hook state directory is unsafe');
92
+ }
56
93
  if (!opts.dryRun) {
94
+ fs.mkdirSync(stateDir, { recursive: true });
57
95
  fs.mkdirSync(hooksDir, { recursive: true });
58
96
  }
59
97
  const templatesDir = opts.templatesDir ?? defaultTemplatesDir();
60
98
  if (!fs.existsSync(templatesDir)) {
61
99
  throw new Error(`installCleoHooks: hook templates dir not found: ${templatesDir}`);
62
100
  }
63
- const installed = [];
64
- const skipped = [];
65
- const skipReasons = {};
101
+ // Validate the entire shipped set before replacing any destination.
66
102
  for (const name of CLEO_HOOK_NAMES) {
67
- const src = path.join(templatesDir, name);
68
- const dst = path.join(hooksDir, name);
69
- if (!fs.existsSync(src)) {
70
- throw new Error(`installCleoHooks: missing template ${src}`);
103
+ const source = path.join(templatesDir, name);
104
+ if (!fs.existsSync(source))
105
+ throw new Error(`installCleoHooks: missing template ${source}`);
106
+ }
107
+ const perform = async () => {
108
+ const installed = [];
109
+ const skipped = [];
110
+ const skipReasons = {};
111
+ const changes = [];
112
+ const ledgerPath = path.join(stateDir, `install-${hash(effective)}.json`);
113
+ const ledger = readReceipt(ledgerPath, hooksDir);
114
+ if (opts.rollbackReceipt) {
115
+ const receipt = GitHookInstallReceiptSchema.parse(opts.rollbackReceipt);
116
+ // @sync-invariant none:local-only rollback targets local Git hook files, not synced tables.
117
+ if (receipt.hooksDir !== hooksDir)
118
+ throw new Error('Git hook rollback directory mismatch');
119
+ for (const change of receipt.changes) {
120
+ const dst = path.join(hooksDir, change.name);
121
+ if (!fs.existsSync(dst) ||
122
+ fs.lstatSync(dst).isSymbolicLink() ||
123
+ hash(fs.readFileSync(dst, 'utf8')) !== change.afterHash) {
124
+ skipped.push(change.name);
125
+ skipReasons[change.name] = 'rollback conflict: hook changed since installation';
126
+ continue;
127
+ }
128
+ if (!opts.dryRun) {
129
+ if (change.before === null)
130
+ fs.unlinkSync(dst);
131
+ else
132
+ await atomicWrite(dst, change.before, { mode: change.beforeMode ?? 0o755 });
133
+ }
134
+ installed.push(change.name);
135
+ }
136
+ if (!opts.dryRun && ledger) {
137
+ const restored = receipt.changes.filter((change) => installed.includes(change.name));
138
+ const untouched = ledger.changes.filter((change) => !installed.includes(change.name));
139
+ const images = restored.flatMap((change) => change.before === null ? [] : [{ ...change, afterHash: hash(change.before) }]);
140
+ await atomicWrite(ledgerPath, JSON.stringify({ ...ledger, changes: [...untouched, ...images] }) + '\n', { mode: 0o600 });
141
+ }
142
+ return { hooksDir, installed, skipped, skipReasons };
71
143
  }
72
- if (fs.existsSync(dst) && !opts.force) {
73
- const isManaged = isCleoManagedHook(dst);
74
- if (!isManaged) {
144
+ for (const name of CLEO_HOOK_NAMES) {
145
+ const src = path.join(templatesDir, name);
146
+ const dst = path.join(hooksDir, name);
147
+ const body = fs.readFileSync(src, 'utf8');
148
+ const entry = fs.lstatSync(dst, { throwIfNoEntry: false });
149
+ if (entry && !entry.isFile()) {
150
+ skipped.push(name);
151
+ skipReasons[name] = 'existing non-CLEO symbolic or non-file hook preserved';
152
+ continue;
153
+ }
154
+ const exists = entry !== undefined;
155
+ const before = exists ? fs.readFileSync(dst, 'utf8') : null;
156
+ const recorded = ledger?.changes.find((change) => change.name === name);
157
+ const safe = !exists ||
158
+ (!fs.lstatSync(dst).isSymbolicLink() &&
159
+ (before === body ||
160
+ (before !== null && legacyHashes(name).includes(hash(before))) ||
161
+ (before !== null && recorded?.afterHash === hash(before))));
162
+ if (!safe) {
75
163
  skipped.push(name);
76
- skipReasons[name] = 'existing non-CLEO hook (no sentinel) — pass force:true to overwrite';
164
+ skipReasons[name] =
165
+ `existing non-CLEO or customized hook preserved; integration: sh '${src.replace(/'/g, "'\\''")}' "$@"`;
77
166
  continue;
78
167
  }
168
+ const change = {
169
+ name,
170
+ before,
171
+ beforeMode: exists ? fs.statSync(dst).mode & 0o777 : null,
172
+ afterHash: hash(body),
173
+ };
174
+ changes.push(change);
175
+ if (!opts.dryRun)
176
+ await atomicWrite(dst, body, { mode: 0o755 });
177
+ installed.push(name);
79
178
  }
179
+ const receipt = { schemaVersion: 1, hooksDir, changes };
80
180
  if (!opts.dryRun) {
81
- const body = fs.readFileSync(src, 'utf8');
82
- fs.writeFileSync(dst, body, { mode: 0o755 });
83
- // Some filesystems (Windows under WSL) don't honor the mode in
84
- // writeFileSync — chmod explicitly.
85
- try {
86
- fs.chmodSync(dst, 0o755);
87
- }
88
- catch {
89
- // Best-effort; on non-POSIX filesystems chmod is a no-op.
90
- }
181
+ // Keep ownership for preserved entries, without claiming foreign files.
182
+ const retained = ledger?.changes.filter((change) => !changes.some((next) => next.name === change.name)) ??
183
+ [];
184
+ await atomicWrite(ledgerPath, JSON.stringify({ ...receipt, changes: [...retained, ...changes] }) + '\n', { mode: 0o600 });
91
185
  }
92
- installed.push(name);
186
+ return { hooksDir, installed, skipped, skipReasons, ...(opts.dryRun ? {} : { receipt }) };
187
+ };
188
+ return opts.dryRun
189
+ ? perform()
190
+ : withFileLock(path.join(stateDir, `install-${hash(effective)}`), perform);
191
+ }
192
+ function hash(body) {
193
+ return createHash('sha256').update(body).digest('hex');
194
+ }
195
+ function readReceipt(filePath, hooksDir) {
196
+ const entry = fs.lstatSync(filePath, { throwIfNoEntry: false });
197
+ if (!entry)
198
+ return undefined;
199
+ // @sync-invariant none:local-only local receipt file ownership protects filesystem hook delivery.
200
+ if (!entry.isFile())
201
+ throw new Error('Git hook receipt is not a regular file');
202
+ const parsed = GitHookInstallReceiptSchema.safeParse(JSON.parse(fs.readFileSync(filePath, 'utf8')));
203
+ if (!parsed.success || parsed.data.hooksDir !== hooksDir) {
204
+ // @sync-invariant none:local-only malformed or misplaced local Git hook receipts confer no ownership.
205
+ throw new Error('Git hook receipt is invalid or belongs to another directory');
93
206
  }
94
- return { hooksDir, installed, skipped, skipReasons };
207
+ return parsed.data;
208
+ }
209
+ function legacyHashes(name) {
210
+ const file = path.join(defaultTemplatesDir(), 'legacy-hashes.json');
211
+ if (!fs.existsSync(file))
212
+ return [];
213
+ const parsed = GitHookLegacyHashesSchema.safeParse(JSON.parse(fs.readFileSync(file, 'utf8')));
214
+ return parsed.success ? (parsed.data[name] ?? []) : [];
95
215
  }
96
216
  /**
97
- * Returns true when `filePath` is a CLEO-managed hook (the first 5 lines
98
- * contain {@link CLEO_HOOK_SENTINEL}). Returns false on read error.
217
+ * Detect the CLEO marker for diagnostics, without establishing ownership.
218
+ * Returns false on read error; installers must validate the content hash.
99
219
  */
100
220
  export function isCleoManagedHook(filePath) {
101
221
  try {
@@ -119,46 +239,30 @@ export function isCleoManagedHook(filePath) {
119
239
  * pointing at `gitdir: ...`).
120
240
  */
121
241
  export function resolveGitDir(projectRoot) {
122
- const dotGit = path.join(projectRoot, '.git');
123
- if (!fs.existsSync(dotGit)) {
124
- return null;
125
- }
126
- const stat = fs.statSync(dotGit);
127
- if (stat.isDirectory()) {
128
- return dotGit;
242
+ try {
243
+ return execFileSync('git', ['-C', projectRoot, 'rev-parse', '--absolute-git-dir'], {
244
+ encoding: 'utf8',
245
+ stdio: ['ignore', 'pipe', 'ignore'],
246
+ }).trim();
129
247
  }
130
- if (stat.isFile()) {
131
- // Worktree-style `.git` file: `gitdir: <abs-or-rel-path>`.
132
- const content = fs.readFileSync(dotGit, 'utf8').trim();
133
- const m = content.match(/^gitdir:\s*(.+)$/m);
134
- if (!m)
135
- return null;
136
- const target = m[1].trim();
137
- return path.isAbsolute(target) ? target : path.resolve(projectRoot, target);
248
+ catch {
249
+ return null;
138
250
  }
139
- return null;
140
251
  }
141
252
  /**
142
253
  * Resolve the hooks directory the project actually uses.
143
254
  *
144
255
  * If `core.hooksPath` is set (Husky / lefthook / custom), respect it.
145
- * Otherwise fall back to `<gitDir>/hooks`.
256
+ * Git resolves its common directory for linked worktrees.
146
257
  */
147
258
  export function resolveHooksDir(projectRoot, gitDir) {
148
- // 1. Try `git config core.hooksPath`.
149
- try {
150
- const out = execFileSync('git', ['-C', projectRoot, 'config', '--get', 'core.hooksPath'], {
151
- encoding: 'utf8',
152
- stdio: ['ignore', 'pipe', 'ignore'],
153
- }).trim();
154
- if (out) {
155
- return path.isAbsolute(out) ? out : path.resolve(projectRoot, out);
156
- }
157
- }
158
- catch {
159
- // git config exits 1 when key is unset — fall through.
160
- }
161
- return path.join(gitDir, 'hooks');
259
+ // Git resolves both the common worktree directory and core.hooksPath.
260
+ const resolved = execFileSync('git', ['-C', projectRoot, 'rev-parse', '--path-format=absolute', '--git-path', 'hooks'], {
261
+ encoding: 'utf8',
262
+ stdio: ['ignore', 'pipe', 'ignore'],
263
+ }).trim();
264
+ void gitDir; // Retained for source compatibility with existing consumers.
265
+ return resolved;
162
266
  }
163
267
  /**
164
268
  * Default templates dir resolution.
@@ -209,8 +313,7 @@ export function defaultTemplatesDir() {
209
313
  function fileURLToDirname() {
210
314
  // import.meta.url isn't available in CJS; vitest runs ESM in this repo
211
315
  // (see packages/core/package.json "type": "module").
212
- const url = import.meta.url;
213
- const filePath = url.startsWith('file://') ? new URL(url).pathname : url;
316
+ const filePath = fileURLToPath(import.meta.url);
214
317
  return path.dirname(filePath);
215
318
  }
216
319
  //# sourceMappingURL=hooks-install.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks-install.js","sourceRoot":"","sources":["../../src/git/hooks-install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks-install.js","sourceRoot":"","sources":["../../src/git/hooks-install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Ask-enforce classifier: does an ended turn ask the owner something in prose?
3
+ *
4
+ * Pure and deterministic, run by the `cleo hook ask-enforce` Stop hook on every
5
+ * turn end, so it is regex-only with no I/O and no model call. It is tuned
6
+ * against false positives: anything that is not the agent's own closing prose
7
+ * (code, quotes, headings, tables, URLs, a research report's open-questions
8
+ * list) is removed first, only the reply's tail is read, and a question
9
+ * attributed to someone else or answered on the spot does not count. Every
10
+ * doubt resolves to `allow`; a corpus test pins the false-positive rate at 0.
11
+ *
12
+ * Design: `cleo docs fetch t13420-ask-enforce-stop-hook-design`.
13
+ *
14
+ * @task T13420
15
+ * @epic T13418
16
+ */
17
+ import type { AskEnforceInput, AskEnforceVerdict } from '@cleocode/contracts';
18
+ /**
19
+ * Classify one ended turn.
20
+ *
21
+ * @param input - The final reply, the turn's tool calls and the ask-tool names.
22
+ * @returns `block` when the reply's tail asks the owner something in prose and
23
+ * the turn made no ask-tool call; `allow` otherwise, including on any doubt.
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * classifyOwnerAsk({
28
+ * lastAssistantText: 'Tests pass. Should I merge it?',
29
+ * turnToolCalls: [],
30
+ * askToolNames: ['AskUserQuestion'],
31
+ * }).verdict; // "block"
32
+ * ```
33
+ */
34
+ export declare function classifyOwnerAsk(input: AskEnforceInput): AskEnforceVerdict;
35
+ /**
36
+ * The block reason the agent reads: re-ask with the harness ask tool.
37
+ *
38
+ * @param verdict - A `block` verdict from {@link classifyOwnerAsk}.
39
+ * @param askToolName - The provider's ask tool, or `null` for the `hitl.request` fallback.
40
+ * @returns One paragraph telling the agent how to re-ask.
41
+ */
42
+ export declare function askEnforceReason(verdict: AskEnforceVerdict, askToolName: string | null): string;
43
+ //# sourceMappingURL=ask-enforce.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ask-enforce.d.ts","sourceRoot":"","sources":["../../src/harness/ask-enforce.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAoG9E;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,iBAAiB,CAgC1E;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAM/F"}