@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.
@@ -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;AAqCD,0FAA0F;AAC1F,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,yBAAyB,EAAE,CAAC,CA8CtC"}
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
- options.dryRun ? await deliverProvider(options, provider) : await withFileLock(
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
- /** The `Stop` hook command: end the CLEO session when Claude Code stops. */
20
- export declare const NATIVE_STOP_HOOK_COMMAND = "cleo session end --quiet # cleo-hook";
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 session end --quiet` (triggers LLM extraction, reflector, consolidation)
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;AAI/D,4EAA4E;AAC5E,eAAO,MAAM,wBAAwB,yCAAyC,CAAC;AAE/E,yFAAyF;AACzF,eAAO,MAAM,2BAA2B,2FAC8C,CAAC;AAEvF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,6LACkJ,CAAC;AA+EzL;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B5D;;;;;;;;;;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
+ {"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;AAsFD;;;;;;;;;;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"}
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
- * Add, refresh or (`install: false`) remove CLEO's ask-enforce Stop hook in a
162
- * JSON hook config (`hooks.Stop`), through CAAMP's locked atomic writer. Only
163
- * CLEO's own hook object is touched; a malformed file throws untouched.
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 hook.
194
+ * @param install - `false` removes the dispatcher.
168
195
  * @returns what changed.
169
196
  */
170
- export declare function syncJsonAskEnforceHook(configPath: string, provider: 'claude-code' | 'codex', install: boolean): Promise<HeavyHookSyncResult>;
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":"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"}
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.17",
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.17",
31
- "@cleocode/contracts": "2026.10.17",
32
- "@cleocode/paths": "2026.10.17"
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/core": "2026.10.17",
46
- "@cleocode/playbooks": "2026.10.17"
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 { createProjectHookDeliveryServices } from '@cleocode/core/hooks/project-state';
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();