@cleocode/adapters 2026.10.17 → 2026.10.18
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/heavy-command-hook.js +42 -31
- package/dist/heavy-command-hook.js.map +1 -1
- package/dist/index.js +73 -44
- package/dist/index.js.map +2 -2
- package/dist/project-hook-delivery.d.ts.map +1 -1
- package/dist/project-hook-delivery.js +88 -5
- package/dist/project-hook-delivery.js.map +1 -1
- package/dist/providers/claude-code/hooks.d.ts +11 -3
- package/dist/providers/claude-code/hooks.d.ts.map +1 -1
- package/dist/providers/shared/heavy-command-hook-delivery.d.ts.map +1 -1
- package/dist/providers/shared/heavy-command-hook-install.d.ts +32 -5
- package/dist/providers/shared/heavy-command-hook-install.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/__tests__/project-hook-delivery.test.ts +127 -2
- package/src/project-hook-delivery.ts +130 -6
- package/src/providers/claude-code/__tests__/stop-dispatch-hook.test.ts +94 -0
- package/src/providers/claude-code/hooks.ts +33 -16
- package/src/providers/shared/__tests__/heavy-command-hook-delivery.test.ts +9 -6
- package/src/providers/shared/__tests__/heavy-command-hook-install.test.ts +32 -25
- package/src/providers/shared/heavy-command-hook-delivery.ts +10 -11
- package/src/providers/shared/heavy-command-hook-install.ts +84 -27
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-hook-delivery.d.ts","sourceRoot":"","sources":["../src/project-hook-delivery.ts"],"names":[],"mappings":"AAeA,OAAO,EAGL,KAAK,0BAA0B,EAG/B,KAAK,yBAAyB,EAG/B,MAAM,8CAA8C,CAAC;AA4ftD,+FAA+F;AAC/F,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,SAAS,yBAAyB,EAAE,GAC5C,OAAO,CAUT;
|
|
1
|
+
{"version":3,"file":"project-hook-delivery.d.ts","sourceRoot":"","sources":["../src/project-hook-delivery.ts"],"names":[],"mappings":"AAeA,OAAO,EAGL,KAAK,0BAA0B,EAG/B,KAAK,yBAAyB,EAG/B,MAAM,8CAA8C,CAAC;AA4ftD,+FAA+F;AAC/F,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,SAAS,yBAAyB,EAAE,GAC5C,OAAO,CAUT;AA+JD,0FAA0F;AAC1F,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,yBAAyB,EAAE,CAAC,CAgDtC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { execFileSync as execFileSync2, spawnSync } from "node:child_process";
|
|
3
3
|
import { createHash } from "node:crypto";
|
|
4
4
|
import { existsSync as existsSync2 } from "node:fs";
|
|
5
|
-
import { lstat, realpath, rmdir, unlink } from "node:fs/promises";
|
|
5
|
+
import { lstat, mkdir, realpath, rmdir, unlink } from "node:fs/promises";
|
|
6
6
|
import { homedir } from "node:os";
|
|
7
7
|
import { dirname as dirname2, isAbsolute as isAbsolute2, join as join2, relative, resolve as resolve2, sep } from "node:path";
|
|
8
8
|
import {
|
|
@@ -556,6 +556,90 @@ async function validateStateDirectory(options) {
|
|
|
556
556
|
if (existsSync2(gitState) && (!(await lstat(gitState)).isDirectory() || (await lstat(gitState)).isSymbolicLink()))
|
|
557
557
|
throw new Error("HOOK_STATE_DIRECTORY_INVALID");
|
|
558
558
|
}
|
|
559
|
+
var ROOT_CHECKOUT_HOOK_PROVIDERS = /* @__PURE__ */ new Set(["codex"]);
|
|
560
|
+
async function rootCheckoutOptions(options) {
|
|
561
|
+
const git = (cwd, ...args) => {
|
|
562
|
+
try {
|
|
563
|
+
return execFileSync2("git", ["-C", cwd, "rev-parse", ...args], {
|
|
564
|
+
encoding: "utf8",
|
|
565
|
+
timeout: 2e3,
|
|
566
|
+
maxBuffer: 16384,
|
|
567
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
568
|
+
env: options.services.gitEnvironment
|
|
569
|
+
}).trim();
|
|
570
|
+
} catch {
|
|
571
|
+
return void 0;
|
|
572
|
+
}
|
|
573
|
+
};
|
|
574
|
+
const common = git(options.projectRoot, "--path-format=absolute", "--git-common-dir");
|
|
575
|
+
const gitDir = git(options.projectRoot, "--path-format=absolute", "--git-dir");
|
|
576
|
+
if (!common || !gitDir || await realpath(common) === await realpath(gitDir)) return void 0;
|
|
577
|
+
const rootGitDir = git(dirname2(common), "--path-format=absolute", "--git-dir");
|
|
578
|
+
const root = git(dirname2(common), "--show-toplevel");
|
|
579
|
+
const stateDir = git(
|
|
580
|
+
dirname2(common),
|
|
581
|
+
"--path-format=absolute",
|
|
582
|
+
"--git-path",
|
|
583
|
+
"cleo-project-hooks"
|
|
584
|
+
);
|
|
585
|
+
if (!rootGitDir || !root || !stateDir || await realpath(rootGitDir) !== await realpath(common))
|
|
586
|
+
return void 0;
|
|
587
|
+
return { ...options, projectRoot: root, stateDir: resolve2(root, stateDir) };
|
|
588
|
+
}
|
|
589
|
+
function deliverLocked(options, provider) {
|
|
590
|
+
return options.dryRun ? deliverProvider(options, provider) : withFileLock(
|
|
591
|
+
join2(options.stateDir, "provider-" + provider + ".json"),
|
|
592
|
+
() => deliverProvider(options, provider)
|
|
593
|
+
);
|
|
594
|
+
}
|
|
595
|
+
async function deliverFromLinkedWorktree(worktree, root, provider) {
|
|
596
|
+
const configPath = GENERATED_PROVIDER_HOOK_PROFILES[provider]?.projectDelivery?.configPath;
|
|
597
|
+
if (!configPath) return deliverLocked(worktree, provider);
|
|
598
|
+
if (!worktree.dryRun && existsSync2(join2(worktree.stateDir, "provider-" + provider + ".json")))
|
|
599
|
+
await deliverLocked({ ...worktree, rollback: true }, provider);
|
|
600
|
+
const folder = await localTarget(worktree.projectRoot, dirname2(configPath));
|
|
601
|
+
if (worktree.rollback) {
|
|
602
|
+
if (!worktree.dryRun) await rmdir(folder).catch(() => void 0);
|
|
603
|
+
return {
|
|
604
|
+
provider,
|
|
605
|
+
state: "disabled",
|
|
606
|
+
capability: "unverified",
|
|
607
|
+
nativeTrust: "unverified",
|
|
608
|
+
provenance: "unknown",
|
|
609
|
+
diagnostics: ["HOOK_ROOT_CHECKOUT_ENTRY_RETAINED"]
|
|
610
|
+
};
|
|
611
|
+
}
|
|
612
|
+
if (worktree.events.length === 0)
|
|
613
|
+
return {
|
|
614
|
+
provider,
|
|
615
|
+
state: "unsupported",
|
|
616
|
+
capability: "unverified",
|
|
617
|
+
nativeTrust: "unverified",
|
|
618
|
+
provenance: "unknown",
|
|
619
|
+
diagnostics: ["HOOK_NO_AGENT_BINDINGS", "HOOK_ROOT_CHECKOUT_ENTRY_RETAINED"]
|
|
620
|
+
};
|
|
621
|
+
const receiptPath = join2(root.stateDir, "provider-" + provider + ".json");
|
|
622
|
+
const deliver = async () => {
|
|
623
|
+
const prior = await receiptAt(receiptPath, root.services);
|
|
624
|
+
const delivered = (prior?.entries ?? []).flatMap(
|
|
625
|
+
(item) => /--event ([A-Za-z][A-Za-z0-9]*)/.exec(item.command)?.[1] ?? []
|
|
626
|
+
);
|
|
627
|
+
return deliverProvider(
|
|
628
|
+
{
|
|
629
|
+
...root,
|
|
630
|
+
events: [.../* @__PURE__ */ new Set([...delivered, ...worktree.events])],
|
|
631
|
+
enabled: worktree.enabled,
|
|
632
|
+
dryRun: worktree.dryRun
|
|
633
|
+
},
|
|
634
|
+
provider
|
|
635
|
+
);
|
|
636
|
+
};
|
|
637
|
+
const result = worktree.dryRun ? await deliver() : await withFileLock(receiptPath, deliver);
|
|
638
|
+
result.diagnostics.push("HOOK_ROOT_CHECKOUT_DELIVERY");
|
|
639
|
+
if (!worktree.dryRun && (result.state === "installed" || result.state === "current") && !existsSync2(folder))
|
|
640
|
+
await mkdir(folder);
|
|
641
|
+
return result;
|
|
642
|
+
}
|
|
559
643
|
async function syncProjectHookProviders(options) {
|
|
560
644
|
const providers = options.providers ?? Object.entries(GENERATED_PROVIDER_HOOK_PROFILES).filter(
|
|
561
645
|
([id, profile]) => profile.projectDelivery && (probeVersion(id) !== void 0 || profile.projectDelivery.configPath !== null && existsSync2(
|
|
@@ -568,11 +652,10 @@ async function syncProjectHookProviders(options) {
|
|
|
568
652
|
if (!Object.hasOwn(GENERATED_PROVIDER_HOOK_PROFILES, provider) || !/^[a-z][a-z0-9-]*$/.test(provider))
|
|
569
653
|
throw new Error("HOOK_PROVIDER_INVALID");
|
|
570
654
|
await validateStateDirectory(options);
|
|
655
|
+
const root = ROOT_CHECKOUT_HOOK_PROVIDERS.has(provider) ? await rootCheckoutOptions(options) : void 0;
|
|
656
|
+
if (root) await validateStateDirectory(root);
|
|
571
657
|
outcomes.push(
|
|
572
|
-
|
|
573
|
-
join2(options.stateDir, "provider-" + provider + ".json"),
|
|
574
|
-
() => deliverProvider(options, provider)
|
|
575
|
-
)
|
|
658
|
+
root ? await deliverFromLinkedWorktree(options, root, provider) : await deliverLocked(options, provider)
|
|
576
659
|
);
|
|
577
660
|
} catch (error) {
|
|
578
661
|
outcomes.push({
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/project-hook-delivery.ts", "../src/providers/shared/heavy-command-hook-install.ts"],
|
|
4
|
-
"mappings": "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",
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["execFileSync", "existsSync", "dirname", "isAbsolute", "join", "resolve", "execFileSync", "isAbsolute", "resolve", "existsSync", "dirname", "join", "event"]
|
|
6
6
|
}
|
|
@@ -16,8 +16,15 @@
|
|
|
16
16
|
* @epic T134
|
|
17
17
|
*/
|
|
18
18
|
import type { AdapterHookProvider } from '@cleocode/contracts';
|
|
19
|
-
/**
|
|
20
|
-
|
|
19
|
+
/**
|
|
20
|
+
* The `Stop` hook command: the one Stop dispatcher (T13796). It asks a live
|
|
21
|
+
* goal runtime first and ends the CLEO session only when the goal says the
|
|
22
|
+
* turn is final or no goal is live, so a goal hook and the session end never
|
|
23
|
+
* fight over the event.
|
|
24
|
+
*/
|
|
25
|
+
export declare const NATIVE_STOP_HOOK_COMMAND: string;
|
|
26
|
+
/** The `Stop` command before T13796; recognised so registration replaces it. */
|
|
27
|
+
export declare const LEGACY_NATIVE_STOP_HOOK_COMMAND = "cleo session end --quiet # cleo-hook";
|
|
21
28
|
/** The `PostToolUse` (`Write|Edit`) hook command: a brain observation per file write. */
|
|
22
29
|
export declare const NATIVE_OBSERVE_HOOK_COMMAND = "cleo observe \"File modified via $TOOL_NAME\" --title \"tool-use\" --quiet # cleo-hook";
|
|
23
30
|
/**
|
|
@@ -85,7 +92,8 @@ export declare class ClaudeCodeHookProvider implements AdapterHookProvider {
|
|
|
85
92
|
* Idempotent: skips writing if the native hooks are already present.
|
|
86
93
|
*
|
|
87
94
|
* Hook entries registered:
|
|
88
|
-
* - `Stop` → `cleo
|
|
95
|
+
* - `Stop` → `cleo hook stop` (the goal runtime first, then `cleo session end`,
|
|
96
|
+
* which triggers LLM extraction, reflector, consolidation; T13796)
|
|
89
97
|
* - `PostToolUse` (Write|Edit) → brain observation for file modifications
|
|
90
98
|
* and the NEXUS post-check
|
|
91
99
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/providers/claude-code/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAOH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/providers/claude-code/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAOH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAU/D;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,QAAwD,CAAC;AAE9F,gFAAgF;AAChF,eAAO,MAAM,+BAA+B,yCAAkC,CAAC;AAE/E,yFAAyF;AACzF,eAAO,MAAM,2BAA2B,2FAC8C,CAAC;AAEvF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,6LACkJ,CAAC;AAkFzL;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,sBAAuB,YAAW,mBAAmB;IAChE,kEAAkE;IAClE,OAAO,CAAC,UAAU,CAAS;IAE3B;;;;;;;;;;;OAWG;IACH,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAItD,+DAA+D;IAC/D,OAAO,CAAC,UAAU,CAAuB;IAEzC;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB5D;;;;;;;;;;OAUG;IACG,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB5C,gFAAgF;IAChF,OAAO,CAAC,aAAa,CAAuB;IAE5C;;;;;;;;;;OAUG;IACH,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAIjC;;;;;OAKG;YACW,cAAc;IAmB5B;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;;;OAIG;IACH,aAAa,IAAI,MAAM,GAAG,IAAI;IAI9B;;;;;;;;OAQG;IACH,WAAW,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAI/C;;;;;;;;;;OAUG;IACG,2BAA2B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAStD;;;;;;;;;;OAUG;IACG,kBAAkB,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IASnD;;;;;;;;;;OAUG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAW9D;;;;;;;;;;;;;;;;OAgBG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CA4FpF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heavy-command-hook-delivery.d.ts","sourceRoot":"","sources":["../../../src/providers/shared/heavy-command-hook-delivery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAOH,OAAO,KAAK,EACV,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,EACxB,wBAAwB,EACxB,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AA2B7B,8DAA8D;AAC9D,eAAO,MAAM,6BAA6B,EAAE,SAAS,wBAAwB,EAK3E,CAAC;AAEH,gEAAgE;AAChE,eAAO,MAAM,sBAAsB,yCAAyC,CAAC;AAE7E,KAAK,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;AAgBxD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,wBAAwB,EAClC,UAAU,EAAE,MAAM,EAClB,GAAG,GAAE,GAAiB,GACrB,MAAM,CAWR;AAED,uEAAuE;AACvE,MAAM,WAAW,kBAAkB;IACjC,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,8DAA8D;IAC9D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,wBAAwB,EAClC,UAAU,EAAE,MAAM,EAClB,GAAG,GAAE,GAAiB,GACrB,kBAAkB,CAgDpB;
|
|
1
|
+
{"version":3,"file":"heavy-command-hook-delivery.d.ts","sourceRoot":"","sources":["../../../src/providers/shared/heavy-command-hook-delivery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAOH,OAAO,KAAK,EACV,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,EACxB,wBAAwB,EACxB,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AA2B7B,8DAA8D;AAC9D,eAAO,MAAM,6BAA6B,EAAE,SAAS,wBAAwB,EAK3E,CAAC;AAEH,gEAAgE;AAChE,eAAO,MAAM,sBAAsB,yCAAyC,CAAC;AAE7E,KAAK,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;AAgBxD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,wBAAwB,EAClC,UAAU,EAAE,MAAM,EAClB,GAAG,GAAE,GAAiB,GACrB,MAAM,CAWR;AAED,uEAAuE;AACvE,MAAM,WAAW,kBAAkB;IACjC,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,8DAA8D;IAC9D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,wBAAwB,EAClC,UAAU,EAAE,MAAM,EAClB,GAAG,GAAE,GAAiB,GACrB,kBAAkB,CAgDpB;AAqFD;;;;;;;;;;GAUG;AACH,wBAAsB,4BAA4B,CAChD,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,oBAAoB,EAC1B,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,SAAS,wBAAwB,EAAE,CAAC,CAwB9C;AA2MD;;;;;;;;GAQG;AACH,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,oBAAoB,EAC1B,OAAO,GAAE,wBAA6B,GACrC,SAAS,mBAAmB,EAAE,CAchC;AAwCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,wBAA6B,GACrC,iBAAiB,CA6CnB;AAED,+DAA+D;AAC/D,eAAO,MAAM,oBAAoB,EAAE,oBAIjC,CAAC"}
|
|
@@ -157,17 +157,44 @@ export declare const ASK_ENFORCE_HOOK_ID = "cleo hook ask-enforce";
|
|
|
157
157
|
export declare function askEnforceHookObject(provider: 'claude-code' | 'codex'): Record<string, unknown>;
|
|
158
158
|
/** Whether one hook object is CLEO's ask-enforce Stop hook. */
|
|
159
159
|
export declare function isAskEnforceHookObject(hook: unknown): boolean;
|
|
160
|
+
/** The command CLEO's Stop dispatcher runs (T13796); also its marker. */
|
|
161
|
+
export declare const STOP_DISPATCH_HOOK_ID = "cleo hook stop";
|
|
162
|
+
/** Seconds a Stop dispatch may take: the goal tick (30 s), ask-enforce and `cleo session end`. */
|
|
163
|
+
export declare const STOP_DISPATCH_HOOK_TIMEOUT_SEC = 120;
|
|
164
|
+
/** Claude Code's Stop command before T13796, which ended the session on its own. */
|
|
165
|
+
export declare const LEGACY_SESSION_END_STOP_COMMAND = "cleo session end --quiet # cleo-hook";
|
|
160
166
|
/**
|
|
161
|
-
*
|
|
162
|
-
*
|
|
163
|
-
*
|
|
167
|
+
* CLEO's one Stop hook object (T13796): goal tick → ask-enforce → session end.
|
|
168
|
+
* Like the ask-enforce script, it forwards only a JSON answer and always exits
|
|
169
|
+
* 0, so a machine without `cleo` (or with an older one) is never blocked.
|
|
170
|
+
*
|
|
171
|
+
* @param provider - `claude-code` or `codex` (Codex runs hooks through the login shell).
|
|
172
|
+
*/
|
|
173
|
+
export declare function stopDispatchHookObject(provider: 'claude-code' | 'codex'): Record<string, unknown>;
|
|
174
|
+
/** Whether one hook object is CLEO's Stop dispatcher. */
|
|
175
|
+
export declare function isStopDispatchHookObject(hook: unknown): boolean;
|
|
176
|
+
/**
|
|
177
|
+
* Leave exactly one CLEO Stop hook, the dispatcher (or, `install: false`,
|
|
178
|
+
* none), in a `hooks` map: the separate ask-enforce and legacy session-end
|
|
179
|
+
* Stop hooks are removed in place, user hooks stay.
|
|
180
|
+
*
|
|
181
|
+
* @param hooks - The config's `hooks` map (edited in place).
|
|
182
|
+
* @param provider - `claude-code` or `codex`.
|
|
183
|
+
* @param install - `false` removes the dispatcher too.
|
|
184
|
+
* @returns whether the map changed.
|
|
185
|
+
*/
|
|
186
|
+
export declare function applyStopDispatch(hooks: Record<string, unknown>, provider: 'claude-code' | 'codex', install: boolean): boolean;
|
|
187
|
+
/**
|
|
188
|
+
* Sync CLEO's Stop dispatcher into a JSON hook config through CAAMP's locked
|
|
189
|
+
* atomic writer, folding the separate ask-enforce and session-end Stop hooks
|
|
190
|
+
* into it (T13796). A malformed file throws untouched.
|
|
164
191
|
*
|
|
165
192
|
* @param configPath - the config file (created when missing, unless removing).
|
|
166
193
|
* @param provider - `claude-code` or `codex`.
|
|
167
|
-
* @param install - `false` removes the
|
|
194
|
+
* @param install - `false` removes the dispatcher.
|
|
168
195
|
* @returns what changed.
|
|
169
196
|
*/
|
|
170
|
-
export declare function
|
|
197
|
+
export declare function syncJsonStopDispatchHook(configPath: string, provider: 'claude-code' | 'codex', install: boolean): Promise<HeavyHookSyncResult>;
|
|
171
198
|
/** Claude Code's per-machine settings file, relative to the project. */
|
|
172
199
|
export declare const CLAUDE_LOCAL_SETTINGS = ".claude/settings.local.json";
|
|
173
200
|
/** First line of the `info/exclude` block CLEO adds for `settings.local.json` (and alone may remove). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heavy-command-hook-install.d.ts","sourceRoot":"","sources":["../../../src/providers/shared/heavy-command-hook-install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAgBH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGhE,oEAAoE;AACpE,eAAO,MAAM,qBAAqB,4BAA4B,CAAC;AAE/D,iFAAiF;AACjF,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAEjD,kDAAkD;AAClD,eAAO,MAAM,6BAA6B,0BAA0B,CAAC;AAErE;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EA+B5C,CAAC;AAEH;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;AAehG;;;;;GAKG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,iDAAiD;IACjD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;OAGG;gBACS,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAKzC;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAa/D;AASD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,GAAE,MAAkB,GAAG,OAAO,CAEnF;AAED;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,QAOjC,CAAC;AAEH,mFAAmF;AACnF,eAAO,MAAM,wBAAwB,2BAA2B,CAAC;AAEjE;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,GAAE,MAAgD,GACpD,MAAM,CAkBR;AAqDD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,GAAG,MAAM,CAIjF;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMjG;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEhG;AAED,4DAA4D;AAC5D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAOxD;AAsDD;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,aAAa,GAAG,OAAO,EACjC,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,mBAAmB,CAAC,CA4B9B;AAED,+EAA+E;AAC/E,eAAO,MAAM,mBAAmB,0BAA0B,CAAC;AAE3D;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQ/F;AAED,+DAA+D;AAC/D,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAO7D;AAED;;;;;;;;;GASG;AACH,wBAAsB,
|
|
1
|
+
{"version":3,"file":"heavy-command-hook-install.d.ts","sourceRoot":"","sources":["../../../src/providers/shared/heavy-command-hook-install.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cleocode/adapters",
|
|
3
|
-
"version": "2026.10.
|
|
3
|
+
"version": "2026.10.18",
|
|
4
4
|
"description": "Unified provider adapters for CLEO (Claude Code, OpenCode, Cursor)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -27,9 +27,9 @@
|
|
|
27
27
|
"@ai-sdk/anthropic": "^3.0.69",
|
|
28
28
|
"@ai-sdk/openai": "^2.0.53",
|
|
29
29
|
"ai": "^6.0.168",
|
|
30
|
-
"@cleocode/caamp": "2026.10.
|
|
31
|
-
"@cleocode/contracts": "2026.10.
|
|
32
|
-
"@cleocode/paths": "2026.10.
|
|
30
|
+
"@cleocode/caamp": "2026.10.18",
|
|
31
|
+
"@cleocode/contracts": "2026.10.18",
|
|
32
|
+
"@cleocode/paths": "2026.10.18"
|
|
33
33
|
},
|
|
34
34
|
"license": "MIT",
|
|
35
35
|
"engines": {
|
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@types/node": "^24.3.0",
|
|
44
44
|
"vitest": "^4.1.4",
|
|
45
|
-
"@cleocode/
|
|
46
|
-
"@cleocode/
|
|
45
|
+
"@cleocode/playbooks": "2026.10.18",
|
|
46
|
+
"@cleocode/core": "2026.10.18"
|
|
47
47
|
},
|
|
48
48
|
"repository": {
|
|
49
49
|
"type": "git",
|
|
@@ -2,14 +2,17 @@
|
|
|
2
2
|
import { execFileSync, spawnSync } from 'node:child_process';
|
|
3
3
|
import { createHash } from 'node:crypto';
|
|
4
4
|
import { existsSync } from 'node:fs';
|
|
5
|
-
import { mkdir, mkdtemp, readFile, rm, symlink, writeFile } from 'node:fs/promises';
|
|
5
|
+
import { mkdir, mkdtemp, readFile, realpath, rm, symlink, writeFile } from 'node:fs/promises';
|
|
6
6
|
import { tmpdir } from 'node:os';
|
|
7
7
|
import { join } from 'node:path';
|
|
8
8
|
import {
|
|
9
9
|
type ProjectHookDeliveryOptions,
|
|
10
10
|
ProjectHookDeliveryReceiptSchema,
|
|
11
11
|
} from '@cleocode/contracts/project-hook-delivery.js';
|
|
12
|
-
import {
|
|
12
|
+
import {
|
|
13
|
+
createProjectHookDeliveryServices,
|
|
14
|
+
resolveProjectHookContext,
|
|
15
|
+
} from '@cleocode/core/hooks/project-state';
|
|
13
16
|
import { afterEach, describe, expect, it, vi } from 'vitest';
|
|
14
17
|
import {
|
|
15
18
|
hasUnsupportedProjectHookDelivery,
|
|
@@ -35,6 +38,128 @@ async function options(): Promise<ProjectHookDeliveryOptions> {
|
|
|
35
38
|
dryRun: false,
|
|
36
39
|
};
|
|
37
40
|
}
|
|
41
|
+
/** A root checkout plus a linked worktree, each with its own Git-private receipt directory. */
|
|
42
|
+
async function linkedWorktree(): Promise<{
|
|
43
|
+
main: ProjectHookDeliveryOptions;
|
|
44
|
+
worktree: ProjectHookDeliveryOptions;
|
|
45
|
+
}> {
|
|
46
|
+
const main = await options();
|
|
47
|
+
const git = (...args: string[]): string =>
|
|
48
|
+
execFileSync('git', ['-C', main.projectRoot, ...args], { encoding: 'utf8' }).trim();
|
|
49
|
+
git(
|
|
50
|
+
'-c',
|
|
51
|
+
'user.name=t',
|
|
52
|
+
'-c',
|
|
53
|
+
'user.email=t@example.com',
|
|
54
|
+
'commit',
|
|
55
|
+
'-q',
|
|
56
|
+
'--allow-empty',
|
|
57
|
+
'-m',
|
|
58
|
+
'T1 init',
|
|
59
|
+
);
|
|
60
|
+
const path = await realpath(main.projectRoot);
|
|
61
|
+
git('worktree', 'add', '-q', '-b', 'wt', join(path, '..', 'wt-' + path.split('/').pop()));
|
|
62
|
+
const worktreeRoot = join(path, '..', 'wt-' + path.split('/').pop());
|
|
63
|
+
dirs.push(worktreeRoot);
|
|
64
|
+
const context = resolveProjectHookContext(worktreeRoot);
|
|
65
|
+
return {
|
|
66
|
+
main: { ...main, projectRoot: path, stateDir: join(path, '.git/cleo-project-hooks') },
|
|
67
|
+
worktree: { ...main, projectRoot: context.projectRoot, stateDir: context.stateDir },
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
describe('Codex delivery from a linked worktree (T13772)', () => {
|
|
71
|
+
it('writes the root checkout config Codex reads and keeps the worktree layer discoverable', async () => {
|
|
72
|
+
const { main, worktree } = await linkedWorktree();
|
|
73
|
+
const result = (await syncProjectHookProviders(worktree))[0];
|
|
74
|
+
expect(result?.state).toBe('installed');
|
|
75
|
+
expect(result?.diagnostics).toContain('HOOK_ROOT_CHECKOUT_DELIVERY');
|
|
76
|
+
expect(result?.configPath).toBe(join(main.projectRoot, '.codex/hooks.json'));
|
|
77
|
+
expect(await readFile(join(main.projectRoot, '.codex/hooks.json'), 'utf8')).toContain(
|
|
78
|
+
'--provider codex --event PreToolUse',
|
|
79
|
+
);
|
|
80
|
+
// Codex discovers the layer only through the worktree's own .codex directory.
|
|
81
|
+
expect(existsSync(join(worktree.projectRoot, '.codex'))).toBe(true);
|
|
82
|
+
expect(existsSync(join(worktree.projectRoot, '.codex/hooks.json'))).toBe(false);
|
|
83
|
+
// The runner resolves the invoking worktree from its cwd, not the root checkout.
|
|
84
|
+
expect(resolveProjectHookContext(worktree.projectRoot).projectRoot).toBe(worktree.projectRoot);
|
|
85
|
+
// One shared receipt: the root checkout sees the same delivery as its own.
|
|
86
|
+
expect(existsSync(join(main.stateDir, 'provider-codex.json'))).toBe(true);
|
|
87
|
+
expect((await syncProjectHookProviders(main))[0]?.state).toBe('current');
|
|
88
|
+
expect((await syncProjectHookProviders(worktree))[0]?.state).toBe('current');
|
|
89
|
+
});
|
|
90
|
+
it('a worktree only grows the shared root entry; a root sync can shrink it', async () => {
|
|
91
|
+
const { main, worktree } = await linkedWorktree();
|
|
92
|
+
const file = join(main.projectRoot, '.codex/hooks.json');
|
|
93
|
+
await syncProjectHookProviders({
|
|
94
|
+
...main,
|
|
95
|
+
events: ['PreToolUse', 'ResponseComplete', 'SessionStart'],
|
|
96
|
+
});
|
|
97
|
+
const full = await readFile(file, 'utf8');
|
|
98
|
+
for (const event of ['PreToolUse', 'ResponseComplete', 'SessionStart'])
|
|
99
|
+
expect(full).toContain('--event ' + event);
|
|
100
|
+
// A subset activation in a worktree keeps every root event.
|
|
101
|
+
expect((await syncProjectHookProviders(worktree))[0]?.state).toBe('current');
|
|
102
|
+
expect(await readFile(file, 'utf8')).toBe(full);
|
|
103
|
+
// A worktree with no agent bindings leaves the root untouched.
|
|
104
|
+
const empty = (await syncProjectHookProviders({ ...worktree, events: [] }))[0];
|
|
105
|
+
expect(empty?.diagnostics).toContain('HOOK_NO_AGENT_BINDINGS');
|
|
106
|
+
expect(await readFile(file, 'utf8')).toBe(full);
|
|
107
|
+
// Shrinking stays with the root checkout.
|
|
108
|
+
await syncProjectHookProviders(main);
|
|
109
|
+
expect(await readFile(file, 'utf8')).not.toContain('--event ResponseComplete');
|
|
110
|
+
// A worktree event the root lacks is added alongside the root's.
|
|
111
|
+
await syncProjectHookProviders({ ...worktree, events: ['ResponseComplete'] });
|
|
112
|
+
const grown = await readFile(file, 'utf8');
|
|
113
|
+
expect(grown).toContain('--event PreToolUse');
|
|
114
|
+
expect(grown).toContain('--event ResponseComplete');
|
|
115
|
+
});
|
|
116
|
+
it('worktree disable keeps the shared root entry; root disable removes it', async () => {
|
|
117
|
+
const { main, worktree } = await linkedWorktree();
|
|
118
|
+
await rm(join(worktree.projectRoot, '.codex'), { recursive: true, force: true });
|
|
119
|
+
await syncProjectHookProviders(worktree);
|
|
120
|
+
const off = (
|
|
121
|
+
await syncProjectHookProviders({ ...worktree, enabled: false, rollback: true })
|
|
122
|
+
)[0];
|
|
123
|
+
expect(off?.state).toBe('disabled');
|
|
124
|
+
expect(off?.diagnostics).toContain('HOOK_ROOT_CHECKOUT_ENTRY_RETAINED');
|
|
125
|
+
expect(existsSync(join(worktree.projectRoot, '.codex'))).toBe(false);
|
|
126
|
+
expect(await readFile(join(main.projectRoot, '.codex/hooks.json'), 'utf8')).toContain(
|
|
127
|
+
'# cleo-project-hook:v1',
|
|
128
|
+
);
|
|
129
|
+
await syncProjectHookProviders({ ...main, enabled: false, rollback: true });
|
|
130
|
+
expect(existsSync(join(main.projectRoot, '.codex/hooks.json'))).toBe(false);
|
|
131
|
+
expect(existsSync(join(main.stateDir, 'provider-codex.json'))).toBe(false);
|
|
132
|
+
});
|
|
133
|
+
it('removes a worktree-local entry an earlier release delivered by its receipt', async () => {
|
|
134
|
+
const { main, worktree } = await linkedWorktree();
|
|
135
|
+
// Produce the 10.17 shape: a worktree-local config plus a worktree receipt pointing at it.
|
|
136
|
+
await syncProjectHookProviders(main);
|
|
137
|
+
const legacy = join(worktree.projectRoot, '.codex/hooks.json');
|
|
138
|
+
await mkdir(join(worktree.projectRoot, '.codex'));
|
|
139
|
+
await writeFile(legacy, await readFile(join(main.projectRoot, '.codex/hooks.json'), 'utf8'));
|
|
140
|
+
const receipt = JSON.parse(await readFile(join(main.stateDir, 'provider-codex.json'), 'utf8'));
|
|
141
|
+
await mkdir(worktree.stateDir, { recursive: true });
|
|
142
|
+
await writeFile(
|
|
143
|
+
join(worktree.stateDir, 'provider-codex.json'),
|
|
144
|
+
JSON.stringify({
|
|
145
|
+
...receipt,
|
|
146
|
+
configPath: legacy,
|
|
147
|
+
createdConfig: true,
|
|
148
|
+
createdDir: undefined,
|
|
149
|
+
}),
|
|
150
|
+
);
|
|
151
|
+
expect((await syncProjectHookProviders(worktree))[0]?.state).toBe('current');
|
|
152
|
+
expect(existsSync(legacy)).toBe(false);
|
|
153
|
+
expect(existsSync(join(worktree.stateDir, 'provider-codex.json'))).toBe(false);
|
|
154
|
+
expect(existsSync(join(worktree.projectRoot, '.codex'))).toBe(true);
|
|
155
|
+
});
|
|
156
|
+
it('leaves Claude Code delivery in the worktree itself', async () => {
|
|
157
|
+
const { main, worktree } = await linkedWorktree();
|
|
158
|
+
const result = (await syncProjectHookProviders({ ...worktree, providers: ['claude-code'] }))[0];
|
|
159
|
+
expect(result?.configPath).toBe(join(worktree.projectRoot, '.claude/settings.local.json'));
|
|
160
|
+
expect(existsSync(join(main.projectRoot, '.claude'))).toBe(false);
|
|
161
|
+
});
|
|
162
|
+
});
|
|
38
163
|
describe('project hook delivery', () => {
|
|
39
164
|
it('discovers the checkout through injected SDK services despite ambient Git overrides', async () => {
|
|
40
165
|
const opts = await options();
|