@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.
- package/dist/build-provenance.json +2 -2
- package/dist/cloud/http.d.ts +8 -0
- package/dist/cloud/http.d.ts.map +1 -1
- package/dist/cloud/http.js +11 -0
- package/dist/cloud/http.js.map +1 -1
- package/dist/cloud/journal.d.ts +6 -0
- package/dist/cloud/journal.d.ts.map +1 -1
- package/dist/cloud/journal.js +1 -1
- package/dist/cloud/journal.js.map +1 -1
- package/dist/cloud/nexus-cloud-status.d.ts.map +1 -1
- package/dist/cloud/nexus-cloud-status.js +3 -1
- package/dist/cloud/nexus-cloud-status.js.map +1 -1
- package/dist/cloud/nexus-vault.d.ts +86 -1
- package/dist/cloud/nexus-vault.d.ts.map +1 -1
- package/dist/cloud/nexus-vault.js +875 -98
- package/dist/cloud/nexus-vault.js.map +1 -1
- package/dist/docs/doctor.d.ts +183 -0
- package/dist/docs/doctor.d.ts.map +1 -0
- package/dist/docs/doctor.js +537 -0
- package/dist/docs/doctor.js.map +1 -0
- package/dist/doctor/system-health.d.ts +189 -0
- package/dist/doctor/system-health.d.ts.map +1 -0
- package/dist/doctor/system-health.js +783 -0
- package/dist/doctor/system-health.js.map +1 -0
- package/dist/git/hooks-install.d.ts +17 -34
- package/dist/git/hooks-install.d.ts.map +1 -1
- package/dist/git/hooks-install.js +173 -70
- package/dist/git/hooks-install.js.map +1 -1
- package/dist/harness/ask-enforce.d.ts +43 -0
- package/dist/harness/ask-enforce.d.ts.map +1 -0
- package/dist/harness/ask-enforce.js +165 -0
- package/dist/harness/ask-enforce.js.map +1 -0
- package/dist/hooks.d.ts +8 -30
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +36 -116
- package/dist/hooks.js.map +1 -1
- package/dist/init.d.ts +2 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +5 -14
- package/dist/init.js.map +1 -1
- package/dist/injection.d.ts +2 -2
- package/dist/injection.d.ts.map +1 -1
- package/dist/injection.js +108 -10
- package/dist/injection.js.map +1 -1
- package/dist/internal.d.ts +1 -1
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +1 -1
- package/dist/internal.js.map +1 -1
- package/dist/issue/create.d.ts +4 -0
- package/dist/issue/create.d.ts.map +1 -1
- package/dist/issue/create.js +12 -0
- package/dist/issue/create.js.map +1 -1
- package/dist/issue/index.d.ts +1 -1
- package/dist/issue/index.d.ts.map +1 -1
- package/dist/issue/index.js +1 -1
- package/dist/issue/index.js.map +1 -1
- package/dist/orchestrate/spawn-ops.d.ts.map +1 -1
- package/dist/orchestrate/spawn-ops.js +8 -2
- package/dist/orchestrate/spawn-ops.js.map +1 -1
- package/dist/orchestration/lean-change.d.ts +15 -0
- package/dist/orchestration/lean-change.d.ts.map +1 -0
- package/dist/orchestration/lean-change.js +17 -0
- package/dist/orchestration/lean-change.js.map +1 -0
- package/dist/orchestration/spawn-prompt.d.ts.map +1 -1
- package/dist/orchestration/spawn-prompt.js +6 -4
- package/dist/orchestration/spawn-prompt.js.map +1 -1
- package/dist/release/ci-evidence.d.ts +59 -0
- package/dist/release/ci-evidence.d.ts.map +1 -1
- package/dist/release/ci-evidence.js +150 -5
- package/dist/release/ci-evidence.js.map +1 -1
- package/dist/release/plan.d.ts.map +1 -1
- package/dist/release/plan.js +11 -2
- package/dist/release/plan.js.map +1 -1
- package/dist/release/pr-evidence.d.ts +15 -0
- package/dist/release/pr-evidence.d.ts.map +1 -1
- package/dist/release/pr-evidence.js +42 -1
- package/dist/release/pr-evidence.js.map +1 -1
- package/dist/release/reconcile.js +2 -2
- package/dist/release/reconcile.js.map +1 -1
- package/dist/release/verify-provenance.js +2 -2
- package/dist/release/verify-provenance.js.map +1 -1
- package/dist/resources/admission-ledger.d.ts +8 -0
- package/dist/resources/admission-ledger.d.ts.map +1 -1
- package/dist/resources/admission-ledger.js +5 -0
- package/dist/resources/admission-ledger.js.map +1 -1
- package/dist/resources/claim-keepalive.d.ts +34 -0
- package/dist/resources/claim-keepalive.d.ts.map +1 -0
- package/dist/resources/claim-keepalive.js +49 -0
- package/dist/resources/claim-keepalive.js.map +1 -0
- package/dist/resources/governor.d.ts.map +1 -1
- package/dist/resources/governor.js +3 -0
- package/dist/resources/governor.js.map +1 -1
- package/dist/scaffold/ensure-config.js +1 -1
- package/dist/scaffold/ensure-config.js.map +1 -1
- package/dist/store/attachment-store.d.ts.map +1 -1
- package/dist/store/attachment-store.js +2 -1
- package/dist/store/attachment-store.js.map +1 -1
- package/dist/store/restore-marker.d.ts +50 -7
- package/dist/store/restore-marker.d.ts.map +1 -1
- package/dist/store/restore-marker.js +77 -25
- package/dist/store/restore-marker.js.map +1 -1
- package/dist/store/row-identity-registry.d.ts +6 -4
- package/dist/store/row-identity-registry.d.ts.map +1 -1
- package/dist/store/row-identity-registry.js +156 -33
- package/dist/store/row-identity-registry.js.map +1 -1
- package/dist/store/schema/cleo-project/provenance-orphans.d.ts +16 -0
- package/dist/store/schema/cleo-project/provenance-orphans.d.ts.map +1 -1
- package/dist/store/schema/cleo-project/provenance-orphans.js +4 -1
- package/dist/store/schema/cleo-project/provenance-orphans.js.map +1 -1
- package/dist/store/schema/cleo-shared/brain.d.ts +240 -0
- package/dist/store/schema/cleo-shared/brain.d.ts.map +1 -1
- package/dist/store/schema/cleo-shared/brain.js +69 -0
- package/dist/store/schema/cleo-shared/brain.js.map +1 -1
- package/dist/store/schema/tasks.d.ts +1 -1
- package/dist/store/schema/tasks.d.ts.map +1 -1
- package/dist/store/schema/tasks.js +9 -1
- package/dist/store/schema/tasks.js.map +1 -1
- package/dist/store/sync/apply/applier.d.ts.map +1 -1
- package/dist/store/sync/apply/applier.js +85 -3
- package/dist/store/sync/apply/applier.js.map +1 -1
- package/dist/store/sync/apply/parent-delete.d.ts.map +1 -1
- package/dist/store/sync/apply/parent-delete.js +4 -0
- package/dist/store/sync/apply/parent-delete.js.map +1 -1
- package/dist/store/sync/capture.d.ts +8 -0
- package/dist/store/sync/capture.d.ts.map +1 -1
- package/dist/store/sync/capture.js +20 -0
- package/dist/store/sync/capture.js.map +1 -1
- package/dist/store/sync/clock-store.d.ts +21 -0
- package/dist/store/sync/clock-store.d.ts.map +1 -1
- package/dist/store/sync/clock-store.js +47 -0
- package/dist/store/sync/clock-store.js.map +1 -1
- package/dist/store/sync/conflicts.d.ts +13 -0
- package/dist/store/sync/conflicts.d.ts.map +1 -1
- package/dist/store/sync/conflicts.js +22 -0
- package/dist/store/sync/conflicts.js.map +1 -1
- package/dist/store/sync/genesis.d.ts +113 -12
- package/dist/store/sync/genesis.d.ts.map +1 -1
- package/dist/store/sync/genesis.js +325 -27
- package/dist/store/sync/genesis.js.map +1 -1
- package/dist/store/sync/merge/types.d.ts +8 -2
- package/dist/store/sync/merge/types.d.ts.map +1 -1
- package/dist/store/sync/pull.d.ts +192 -0
- package/dist/store/sync/pull.d.ts.map +1 -0
- package/dist/store/sync/pull.js +429 -0
- package/dist/store/sync/pull.js.map +1 -0
- package/dist/store/sync/push.d.ts +110 -0
- package/dist/store/sync/push.d.ts.map +1 -0
- package/dist/store/sync/push.js +172 -0
- package/dist/store/sync/push.js.map +1 -0
- package/dist/store/sync/replay-pin.d.ts +70 -0
- package/dist/store/sync/replay-pin.d.ts.map +1 -0
- package/dist/store/sync/replay-pin.js +172 -0
- package/dist/store/sync/replay-pin.js.map +1 -0
- package/dist/store/sync/sealer.d.ts.map +1 -1
- package/dist/store/sync/sealer.js +6 -2
- package/dist/store/sync/sealer.js.map +1 -1
- package/dist/store/sync/timestamp-canon.d.ts.map +1 -1
- package/dist/store/sync/timestamp-canon.js +15 -0
- package/dist/store/sync/timestamp-canon.js.map +1 -1
- package/dist/store/table-classification.d.ts.map +1 -1
- package/dist/store/table-classification.js +51 -15
- package/dist/store/table-classification.js.map +1 -1
- package/dist/store/tasks-schema.d.ts +1 -1
- package/dist/store/tasks-schema.d.ts.map +1 -1
- package/dist/store/tasks-schema.js +1 -1
- package/dist/store/tasks-schema.js.map +1 -1
- package/dist/store/twin-collapse.d.ts.map +1 -1
- package/dist/store/twin-collapse.js +5 -0
- package/dist/store/twin-collapse.js.map +1 -1
- package/dist/store/vault-manifest.d.ts +7 -0
- package/dist/store/vault-manifest.d.ts.map +1 -1
- package/dist/store/vault-manifest.js +4 -0
- package/dist/store/vault-manifest.js.map +1 -1
- package/dist/tasks/ac-table.d.ts +17 -0
- package/dist/tasks/ac-table.d.ts.map +1 -1
- package/dist/tasks/ac-table.js +49 -0
- package/dist/tasks/ac-table.js.map +1 -1
- package/dist/tasks/affected-scope.d.ts +52 -3
- package/dist/tasks/affected-scope.d.ts.map +1 -1
- package/dist/tasks/affected-scope.js +94 -3
- package/dist/tasks/affected-scope.js.map +1 -1
- package/dist/tasks/change-set.d.ts.map +1 -1
- package/dist/tasks/change-set.js +9 -5
- package/dist/tasks/change-set.js.map +1 -1
- package/dist/tasks/complete-ci.d.ts +2 -0
- package/dist/tasks/complete-ci.d.ts.map +1 -1
- package/dist/tasks/complete-ci.js +26 -7
- package/dist/tasks/complete-ci.js.map +1 -1
- package/dist/tasks/complete.d.ts.map +1 -1
- package/dist/tasks/complete.js +10 -0
- package/dist/tasks/complete.js.map +1 -1
- package/dist/tasks/done-plan.d.ts.map +1 -1
- package/dist/tasks/done-plan.js +63 -6
- package/dist/tasks/done-plan.js.map +1 -1
- package/dist/tasks/evidence.d.ts +3 -0
- package/dist/tasks/evidence.d.ts.map +1 -1
- package/dist/tasks/evidence.js +106 -2
- package/dist/tasks/evidence.js.map +1 -1
- package/dist/tasks/gate-preview.d.ts +19 -1
- package/dist/tasks/gate-preview.d.ts.map +1 -1
- package/dist/tasks/gate-preview.js +44 -2
- package/dist/tasks/gate-preview.js.map +1 -1
- package/dist/tasks/gate-runner.d.ts +16 -0
- package/dist/tasks/gate-runner.d.ts.map +1 -1
- package/dist/tasks/gate-runner.js +25 -2
- package/dist/tasks/gate-runner.js.map +1 -1
- package/dist/tasks/qa-run-binding.d.ts +88 -0
- package/dist/tasks/qa-run-binding.d.ts.map +1 -0
- package/dist/tasks/qa-run-binding.js +188 -0
- package/dist/tasks/qa-run-binding.js.map +1 -0
- package/dist/tasks/req.d.ts +50 -0
- package/dist/tasks/req.d.ts.map +1 -1
- package/dist/tasks/req.js +99 -1
- package/dist/tasks/req.js.map +1 -1
- package/dist/tasks/test-run-binding.d.ts +29 -0
- package/dist/tasks/test-run-binding.d.ts.map +1 -1
- package/dist/tasks/test-run-binding.js +47 -23
- package/dist/tasks/test-run-binding.js.map +1 -1
- package/dist/tasks/tool-resolver.d.ts +9 -0
- package/dist/tasks/tool-resolver.d.ts.map +1 -1
- package/dist/tasks/tool-resolver.js +14 -3
- package/dist/tasks/tool-resolver.js.map +1 -1
- package/dist/tasks/tool-semaphore.d.ts.map +1 -1
- package/dist/tasks/tool-semaphore.js +3 -0
- package/dist/tasks/tool-semaphore.js.map +1 -1
- package/dist/upgrade.d.ts.map +1 -1
- package/dist/upgrade.js +10 -1
- package/dist/upgrade.js.map +1 -1
- package/dist/validation/engine-ops.d.ts.map +1 -1
- package/dist/validation/engine-ops.js +14 -3
- package/dist/validation/engine-ops.js.map +1 -1
- package/migrations/drizzle-cleo-global/20261010130000_t12895-brain-natural-uids/migration.sql +28 -0
- package/migrations/drizzle-cleo-global/20261010140000_t12896-brain-autoinc-uids/migration.sql +54 -0
- package/migrations/drizzle-cleo-project/20261010130000_t12895-brain-natural-uids/migration.sql +36 -0
- package/migrations/drizzle-cleo-project/20261010140000_t12896-brain-autoinc-uids/migration.sql +58 -0
- package/migrations/sync-journal/20261008120000_t12343-pull-cursor/migration.sql +28 -0
- package/migrations/sync-journal/20261009120000_t13318-seen-floor/migration.sql +41 -0
- package/package.json +18 -18
- package/templates/CLEO-INJECTION.md +5 -3
- package/templates/CLEO-REFERENCE.md +1 -1
- package/templates/git-hooks/legacy-hashes.json +20 -0
- 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
|
-
*
|
|
14
|
-
*
|
|
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
|
-
*
|
|
20
|
-
*
|
|
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;
|
|
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
|
|
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).
|
|
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
|
|
71
|
-
* -
|
|
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
|
-
*
|
|
81
|
-
*
|
|
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
|
-
*
|
|
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
|
|
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
|
-
*
|
|
14
|
-
*
|
|
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
|
-
*
|
|
23
|
-
*
|
|
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;
|
|
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 =
|
|
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).
|
|
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
|
|
42
|
-
* -
|
|
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
|
-
|
|
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
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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
|
-
|
|
73
|
-
const
|
|
74
|
-
|
|
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] =
|
|
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
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
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.
|
|
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
|
|
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
|
-
*
|
|
98
|
-
*
|
|
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
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
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
|
-
|
|
131
|
-
|
|
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
|
-
*
|
|
256
|
+
* Git resolves its common directory for linked worktrees.
|
|
146
257
|
*/
|
|
147
258
|
export function resolveHooksDir(projectRoot, gitDir) {
|
|
148
|
-
//
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
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
|
|
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"}
|