@cleocode/adapters 2026.10.21 → 2026.10.22
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 +119 -5
- package/dist/heavy-command-hook.js.map +1 -1
- package/dist/index.js +177 -14
- package/dist/index.js.map +2 -2
- package/dist/project-hook-delivery.js.map +1 -1
- package/dist/providers/claude-code/hooks.d.ts +8 -6
- 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 +58 -2
- package/dist/providers/shared/heavy-command-hook-install.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/providers/claude-code/__tests__/stop-dispatch-hook.test.ts +22 -1
- package/src/providers/claude-code/hooks.ts +14 -7
- package/src/providers/shared/__tests__/heavy-command-hook-delivery.test.ts +59 -1
- package/src/providers/shared/__tests__/heavy-command-hook-install.test.ts +17 -0
- package/src/providers/shared/heavy-command-hook-delivery.ts +130 -12
- package/src/providers/shared/heavy-command-hook-install.ts +148 -2
|
@@ -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
|
}
|
|
@@ -17,12 +17,13 @@
|
|
|
17
17
|
*/
|
|
18
18
|
import type { AdapterHookProvider } from '@cleocode/contracts';
|
|
19
19
|
/**
|
|
20
|
-
* The `Stop` hook command: the one Stop dispatcher (T13796)
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* fight over the event.
|
|
20
|
+
* The `Stop` hook command: the one Stop dispatcher (T13796): a live goal
|
|
21
|
+
* runtime first, then ask-enforce. Stop fires every turn, so it never ends
|
|
22
|
+
* the CLEO session (T13913).
|
|
24
23
|
*/
|
|
25
24
|
export declare const NATIVE_STOP_HOOK_COMMAND: string;
|
|
25
|
+
/** The `SessionEnd` hook command: ends the CLEO session when the Claude Code session ends (T13913). */
|
|
26
|
+
export declare const NATIVE_SESSION_END_HOOK_COMMAND: string;
|
|
26
27
|
/** The `Stop` command before T13796; recognised so registration replaces it. */
|
|
27
28
|
export declare const LEGACY_NATIVE_STOP_HOOK_COMMAND = "cleo session end --quiet # cleo-hook";
|
|
28
29
|
/** The `PostToolUse` (`Write|Edit`) hook command: a brain observation per file write. */
|
|
@@ -92,8 +93,9 @@ export declare class ClaudeCodeHookProvider implements AdapterHookProvider {
|
|
|
92
93
|
* Idempotent: skips writing if the native hooks are already present.
|
|
93
94
|
*
|
|
94
95
|
* Hook entries registered:
|
|
95
|
-
* - `Stop` → `cleo hook stop` (the goal runtime first, then
|
|
96
|
-
*
|
|
96
|
+
* - `Stop` → `cleo hook stop` (the goal runtime first, then ask-enforce; T13796)
|
|
97
|
+
* - `SessionEnd` → `cleo hook session-end` (`cleo session end`, which triggers
|
|
98
|
+
* LLM extraction, reflector, consolidation; T13913: never per turn)
|
|
97
99
|
* - `PostToolUse` (Write|Edit) → brain observation for file modifications
|
|
98
100
|
* and the NEXUS post-check
|
|
99
101
|
*
|
|
@@ -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;AAY/D;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,QAAwD,CAAC;AAE9F,uGAAuG;AACvG,eAAO,MAAM,+BAA+B,QAAyC,CAAC;AAEtF,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;AAmFzL;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;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 +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;
|
|
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;AAsC7B,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;AA4CD;;;;;;;;;;;;GAYG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,aAAa,GAAG,OAAO,GAChC,OAAO,CAAC,wBAAwB,CAAC,CAgCnC;AA4DD;;;;;;;;;;GAUG;AACH,wBAAsB,4BAA4B,CAChD,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,oBAAoB,EAC1B,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,SAAS,wBAAwB,EAAE,CAAC,CAwB9C;AAqSD;;;;;;;;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,oBAKjC,CAAC"}
|
|
@@ -159,12 +159,13 @@ export declare function askEnforceHookObject(provider: 'claude-code' | 'codex'):
|
|
|
159
159
|
export declare function isAskEnforceHookObject(hook: unknown): boolean;
|
|
160
160
|
/** The command CLEO's Stop dispatcher runs (T13796); also its marker. */
|
|
161
161
|
export declare const STOP_DISPATCH_HOOK_ID = "cleo hook stop";
|
|
162
|
-
/** Seconds a Stop dispatch may take: the goal tick (
|
|
162
|
+
/** Seconds a Stop dispatch may take: the goal tick (60 s at most) and ask-enforce. */
|
|
163
163
|
export declare const STOP_DISPATCH_HOOK_TIMEOUT_SEC = 120;
|
|
164
164
|
/** Claude Code's Stop command before T13796, which ended the session on its own. */
|
|
165
165
|
export declare const LEGACY_SESSION_END_STOP_COMMAND = "cleo session end --quiet # cleo-hook";
|
|
166
166
|
/**
|
|
167
|
-
* CLEO's one Stop hook object (T13796): goal tick → ask-enforce
|
|
167
|
+
* CLEO's one Stop hook object (T13796): goal tick → ask-enforce. It never ends
|
|
168
|
+
* the session (T13913); {@link sessionEndHookObject} does, on `SessionEnd`.
|
|
168
169
|
* Like the ask-enforce script, it forwards only a JSON answer and always exits
|
|
169
170
|
* 0, so a machine without `cleo` (or with an older one) is never blocked.
|
|
170
171
|
*
|
|
@@ -195,6 +196,61 @@ export declare function applyStopDispatch(hooks: Record<string, unknown>, provid
|
|
|
195
196
|
* @returns what changed.
|
|
196
197
|
*/
|
|
197
198
|
export declare function syncJsonStopDispatchHook(configPath: string, provider: 'claude-code' | 'codex', install: boolean): Promise<HeavyHookSyncResult>;
|
|
199
|
+
/** The command CLEO's SubagentStart lean hook runs (T13667); also its marker. */
|
|
200
|
+
export declare const SUBAGENT_START_HOOK_ID = "cleo hook subagent-start";
|
|
201
|
+
/**
|
|
202
|
+
* CLEO's SubagentStart lean hook object (T13667), Claude Code only. Like the
|
|
203
|
+
* Stop dispatcher, it forwards only a JSON answer and always exits 0, so a
|
|
204
|
+
* machine without `cleo` (or with an older one) never breaks a subagent.
|
|
205
|
+
*/
|
|
206
|
+
export declare function subagentStartHookObject(): Record<string, unknown>;
|
|
207
|
+
/** Whether one hook object is CLEO's SubagentStart lean hook. */
|
|
208
|
+
export declare function isSubagentStartHookObject(hook: unknown): boolean;
|
|
209
|
+
/**
|
|
210
|
+
* Add, refresh or (`install: false`) remove CLEO's SubagentStart lean hook
|
|
211
|
+
* (`hooks.SubagentStart`, T13667) through CAAMP's locked atomic writer. Claude
|
|
212
|
+
* Code only: Codex has no SubagentStart event, and CLEO-spawned agents get the
|
|
213
|
+
* rules from the spawn prompt. Only CLEO's own object is touched; a malformed
|
|
214
|
+
* file throws untouched.
|
|
215
|
+
*
|
|
216
|
+
* @param configPath - Claude Code's `.claude/settings.local.json`.
|
|
217
|
+
* @param install - `false` removes the hook.
|
|
218
|
+
* @returns what changed.
|
|
219
|
+
*/
|
|
220
|
+
export declare function syncJsonSubagentStartHook(configPath: string, install: boolean): Promise<HeavyHookSyncResult>;
|
|
221
|
+
/** The command CLEO's SessionEnd hook runs (T13913); also its marker. */
|
|
222
|
+
export declare const SESSION_END_HOOK_ID = "cleo hook session-end";
|
|
223
|
+
/** Seconds the SessionEnd hook may take: `cleo session end`, waited for at most 20 s, then detached. */
|
|
224
|
+
export declare const SESSION_END_HOOK_TIMEOUT_SEC = 30;
|
|
225
|
+
/**
|
|
226
|
+
* CLEO's SessionEnd hook object (T13913), Claude Code only: the harness
|
|
227
|
+
* session really ended, so the CLEO session ends. A turn's Stop no longer
|
|
228
|
+
* does. Prints nothing and always exits 0, so a machine without `cleo` (or
|
|
229
|
+
* with an older one) never breaks the exit.
|
|
230
|
+
*/
|
|
231
|
+
export declare function sessionEndHookObject(): Record<string, unknown>;
|
|
232
|
+
/** Whether one hook object is CLEO's SessionEnd hook. */
|
|
233
|
+
export declare function isSessionEndHookObject(hook: unknown): boolean;
|
|
234
|
+
/**
|
|
235
|
+
* Leave exactly one CLEO SessionEnd hook (T13913) in a `hooks` map, or
|
|
236
|
+
* (`install: false`) none; user hooks stay.
|
|
237
|
+
*
|
|
238
|
+
* @param hooks - The config's `hooks` map (edited in place).
|
|
239
|
+
* @param install - `false` removes it.
|
|
240
|
+
* @returns whether the map changed.
|
|
241
|
+
*/
|
|
242
|
+
export declare function applySessionEndHook(hooks: Record<string, unknown>, install: boolean): boolean;
|
|
243
|
+
/**
|
|
244
|
+
* Add, refresh or (`install: false`) remove CLEO's SessionEnd hook
|
|
245
|
+
* (`hooks.SessionEnd`, T13913) through CAAMP's locked atomic writer. Claude
|
|
246
|
+
* Code only: Codex has no session-end event. A malformed file throws
|
|
247
|
+
* untouched.
|
|
248
|
+
*
|
|
249
|
+
* @param configPath - Claude Code's `.claude/settings.local.json`.
|
|
250
|
+
* @param install - `false` removes the hook.
|
|
251
|
+
* @returns what changed.
|
|
252
|
+
*/
|
|
253
|
+
export declare function syncJsonSessionEndHook(configPath: string, install: boolean): Promise<HeavyHookSyncResult>;
|
|
198
254
|
/** Claude Code's per-machine settings file, relative to the project. */
|
|
199
255
|
export declare const CLAUDE_LOCAL_SETTINGS = ".claude/settings.local.json";
|
|
200
256
|
/** 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,yEAAyE;AACzE,eAAO,MAAM,qBAAqB,mBAAmB,CAAC;AAEtD,
|
|
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.22",
|
|
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.22",
|
|
31
|
+
"@cleocode/contracts": "2026.10.22",
|
|
32
|
+
"@cleocode/paths": "2026.10.22"
|
|
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.
|
|
46
|
-
"@cleocode/playbooks": "2026.10.
|
|
45
|
+
"@cleocode/core": "2026.10.22",
|
|
46
|
+
"@cleocode/playbooks": "2026.10.22"
|
|
47
47
|
},
|
|
48
48
|
"repository": {
|
|
49
49
|
"type": "git",
|
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
* Claude Code's native Stop hook is the one Stop dispatcher (T13796): a fresh
|
|
3
3
|
* project gets `cleo hook stop`, and a project carrying the pre-dispatcher
|
|
4
4
|
* `cleo session end --quiet` Stop entry has it replaced in place, the user's
|
|
5
|
-
* own hooks untouched.
|
|
5
|
+
* own hooks untouched. The Stop never ends the session; the `SessionEnd`
|
|
6
|
+
* hook does (T13913).
|
|
6
7
|
*
|
|
7
8
|
* @task T13796
|
|
9
|
+
* @task T13913
|
|
8
10
|
*/
|
|
9
11
|
|
|
10
12
|
import { execFileSync } from 'node:child_process';
|
|
@@ -18,6 +20,7 @@ import {
|
|
|
18
20
|
LEGACY_NATIVE_STOP_HOOK_COMMAND,
|
|
19
21
|
NATIVE_NEXUS_HOOK_COMMAND,
|
|
20
22
|
NATIVE_OBSERVE_HOOK_COMMAND,
|
|
23
|
+
NATIVE_SESSION_END_HOOK_COMMAND,
|
|
21
24
|
NATIVE_STOP_HOOK_COMMAND,
|
|
22
25
|
} from '../hooks.js';
|
|
23
26
|
|
|
@@ -45,6 +48,8 @@ const read = (): Settings =>
|
|
|
45
48
|
JSON.parse(readFileSync(join(projectDir, '.claude', 'settings.local.json'), 'utf-8'));
|
|
46
49
|
const stopCommands = (s: Settings) =>
|
|
47
50
|
(s.hooks.Stop ?? []).flatMap((e) => e.hooks.map((h) => h.command));
|
|
51
|
+
const sessionEndCommands = (s: Settings) =>
|
|
52
|
+
(s.hooks.SessionEnd ?? []).flatMap((e) => e.hooks.map((h) => h.command));
|
|
48
53
|
|
|
49
54
|
describe('Claude Code Stop dispatcher hook (T13796)', () => {
|
|
50
55
|
it('registers cleo hook stop as the Stop command', async () => {
|
|
@@ -54,6 +59,20 @@ describe('Claude Code Stop dispatcher hook (T13796)', () => {
|
|
|
54
59
|
expect(stopCommands(read())).toEqual([NATIVE_STOP_HOOK_COMMAND]);
|
|
55
60
|
});
|
|
56
61
|
|
|
62
|
+
it('ends the CLEO session on SessionEnd, never on Stop (T13913)', async () => {
|
|
63
|
+
expect(NATIVE_STOP_HOOK_COMMAND).not.toContain('session end');
|
|
64
|
+
expect(NATIVE_SESSION_END_HOOK_COMMAND).toContain(
|
|
65
|
+
'cleo hook session-end --provider claude-code >/dev/null 2>&1; exit 0',
|
|
66
|
+
);
|
|
67
|
+
expect(NATIVE_SESSION_END_HOOK_COMMAND.endsWith('# cleo-hook')).toBe(true);
|
|
68
|
+
const provider = new ClaudeCodeHookProvider();
|
|
69
|
+
await provider.registerNativeHooks(projectDir);
|
|
70
|
+
expect(sessionEndCommands(read())).toEqual([NATIVE_SESSION_END_HOOK_COMMAND]);
|
|
71
|
+
// Dispose removes it with the other native hooks.
|
|
72
|
+
await provider.unregisterNativeHooks();
|
|
73
|
+
expect(read().hooks.SessionEnd).toBeUndefined();
|
|
74
|
+
});
|
|
75
|
+
|
|
57
76
|
it('folds the old session-end and ask-enforce Stop entries into one dispatcher, keeping user hooks', async () => {
|
|
58
77
|
writeFileSync(
|
|
59
78
|
join(projectDir, '.claude', 'settings.local.json'),
|
|
@@ -80,6 +99,8 @@ describe('Claude Code Stop dispatcher hook (T13796)', () => {
|
|
|
80
99
|
await provider.registerNativeHooks(projectDir);
|
|
81
100
|
const after = read();
|
|
82
101
|
expect(stopCommands(after).sort()).toEqual([NATIVE_STOP_HOOK_COMMAND, 'my-stop.sh'].sort());
|
|
102
|
+
// A wired project gains the SessionEnd hook that replaces the Stop's session end.
|
|
103
|
+
expect(sessionEndCommands(after)).toEqual([NATIVE_SESSION_END_HOOK_COMMAND]);
|
|
83
104
|
expect(JSON.stringify(after)).not.toContain(LEGACY_NATIVE_STOP_HOOK_COMMAND);
|
|
84
105
|
expect(JSON.stringify(after)).not.toContain('cleo hook ask-enforce');
|
|
85
106
|
expect(after.hooks.PostToolUse?.flatMap((e) => e.hooks.map((h) => h.command))).toEqual([
|
|
@@ -23,22 +23,26 @@ import { updateJsonConfigFile } from '@cleocode/caamp';
|
|
|
23
23
|
import { PROVIDER_NATIVE_EVENT_MAPS } from '@cleocode/caamp/hooks';
|
|
24
24
|
import type { AdapterHookProvider } from '@cleocode/contracts';
|
|
25
25
|
import {
|
|
26
|
+
applySessionEndHook,
|
|
26
27
|
applyStopDispatch,
|
|
27
28
|
excludeLocalSettingsFromGit,
|
|
28
29
|
isStopDispatchHookObject,
|
|
29
30
|
LEGACY_SESSION_END_STOP_COMMAND,
|
|
31
|
+
sessionEndHookObject,
|
|
30
32
|
stopDispatchHookObject,
|
|
31
33
|
} from '../shared/heavy-command-hook-install.js';
|
|
32
34
|
import { appendHookEntry, hookMap, isPlainObject, projectClaudeSettingsPath } from './paths.js';
|
|
33
35
|
|
|
34
36
|
/**
|
|
35
|
-
* The `Stop` hook command: the one Stop dispatcher (T13796)
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
* fight over the event.
|
|
37
|
+
* The `Stop` hook command: the one Stop dispatcher (T13796): a live goal
|
|
38
|
+
* runtime first, then ask-enforce. Stop fires every turn, so it never ends
|
|
39
|
+
* the CLEO session (T13913).
|
|
39
40
|
*/
|
|
40
41
|
export const NATIVE_STOP_HOOK_COMMAND = String(stopDispatchHookObject('claude-code').command);
|
|
41
42
|
|
|
43
|
+
/** The `SessionEnd` hook command: ends the CLEO session when the Claude Code session ends (T13913). */
|
|
44
|
+
export const NATIVE_SESSION_END_HOOK_COMMAND = String(sessionEndHookObject().command);
|
|
45
|
+
|
|
42
46
|
/** The `Stop` command before T13796; recognised so registration replaces it. */
|
|
43
47
|
export const LEGACY_NATIVE_STOP_HOOK_COMMAND = LEGACY_SESSION_END_STOP_COMMAND;
|
|
44
48
|
|
|
@@ -57,6 +61,7 @@ export const NATIVE_NEXUS_HOOK_COMMAND =
|
|
|
57
61
|
/** Every command {@link ClaudeCodeHookProvider.registerNativeHooks} writes, and alone may remove. */
|
|
58
62
|
const NATIVE_HOOK_COMMANDS: ReadonlySet<string> = new Set([
|
|
59
63
|
NATIVE_STOP_HOOK_COMMAND,
|
|
64
|
+
NATIVE_SESSION_END_HOOK_COMMAND,
|
|
60
65
|
LEGACY_NATIVE_STOP_HOOK_COMMAND,
|
|
61
66
|
NATIVE_OBSERVE_HOOK_COMMAND,
|
|
62
67
|
NATIVE_NEXUS_HOOK_COMMAND,
|
|
@@ -198,8 +203,9 @@ export class ClaudeCodeHookProvider implements AdapterHookProvider {
|
|
|
198
203
|
* Idempotent: skips writing if the native hooks are already present.
|
|
199
204
|
*
|
|
200
205
|
* Hook entries registered:
|
|
201
|
-
* - `Stop` → `cleo hook stop` (the goal runtime first, then
|
|
202
|
-
*
|
|
206
|
+
* - `Stop` → `cleo hook stop` (the goal runtime first, then ask-enforce; T13796)
|
|
207
|
+
* - `SessionEnd` → `cleo hook session-end` (`cleo session end`, which triggers
|
|
208
|
+
* LLM extraction, reflector, consolidation; T13913: never per turn)
|
|
203
209
|
* - `PostToolUse` (Write|Edit) → brain observation for file modifications
|
|
204
210
|
* and the NEXUS post-check
|
|
205
211
|
*
|
|
@@ -218,7 +224,8 @@ export class ClaudeCodeHookProvider implements AdapterHookProvider {
|
|
|
218
224
|
const fresh = !hasNativeHooks(hooks) && !holdsHook(hooks, isStopDispatchHookObject);
|
|
219
225
|
// T13796: one Stop hook, folding in the separate ask-enforce and old session-end hooks.
|
|
220
226
|
const stopChanged = applyStopDispatch(hooks, 'claude-code', true);
|
|
221
|
-
|
|
227
|
+
const endChanged = applySessionEndHook(hooks, true);
|
|
228
|
+
if (!fresh) return stopChanged || endChanged;
|
|
222
229
|
appendHookEntry(hooks, 'PostToolUse', {
|
|
223
230
|
matcher: 'Write|Edit',
|
|
224
231
|
hooks: [
|
|
@@ -109,10 +109,27 @@ describe('syncProjectHeavyCommandHooks', () => {
|
|
|
109
109
|
expect(stop(claude)).not.toContain('ask-enforce');
|
|
110
110
|
expect(stop(codex)).not.toContain('ask-enforce');
|
|
111
111
|
expect(stop(claude).match(/cleo hook stop/g)).toHaveLength(1);
|
|
112
|
-
//
|
|
112
|
+
// T13913: Claude Code ends the session on SessionEnd, never on Stop; Codex has no such event.
|
|
113
|
+
const sessionEnd = (file: string) =>
|
|
114
|
+
JSON.stringify(JSON.parse(readFileSync(file, 'utf-8')).hooks.SessionEnd ?? []);
|
|
115
|
+
expect(sessionEnd(claude)).toContain('cleo hook session-end --provider claude-code');
|
|
116
|
+
expect(sessionEnd(codex)).toBe('[]');
|
|
117
|
+
// Mode off removes Codex's dispatcher; Claude Code keeps its Stop and SessionEnd hooks.
|
|
113
118
|
await syncProjectHeavyCommandHooks(project, 'off', { env });
|
|
114
119
|
expect(stop(codex)).not.toContain('cleo hook stop');
|
|
115
120
|
expect(stop(claude)).toContain('cleo hook stop --provider claude-code');
|
|
121
|
+
expect(sessionEnd(claude)).toContain('cleo hook session-end --provider claude-code');
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
it('installs the SubagentStart lean hook for Claude Code only (T13667)', async () => {
|
|
125
|
+
useAll();
|
|
126
|
+
await syncProjectHeavyCommandHooks(project, 'rewrite', { env });
|
|
127
|
+
const hooks = (file: string) => JSON.parse(readFileSync(file, 'utf-8')).hooks;
|
|
128
|
+
const claude = join(project, '.claude', 'settings.local.json');
|
|
129
|
+
expect(JSON.stringify(hooks(claude).SubagentStart)).toContain('cleo hook subagent-start');
|
|
130
|
+
expect(hooks(join(project, '.codex', 'hooks.json')).SubagentStart).toBeUndefined();
|
|
131
|
+
await syncProjectHeavyCommandHooks(project, 'off', { env });
|
|
132
|
+
expect(JSON.stringify(hooks(claude).SubagentStart ?? [])).not.toContain('subagent-start');
|
|
116
133
|
});
|
|
117
134
|
|
|
118
135
|
it('a .codex FILE blocks only Codex, with the reason and remedy; the others install', async () => {
|
|
@@ -219,6 +236,47 @@ describe('inspectProjectHeavyCommandHooks', () => {
|
|
|
219
236
|
expect(state()['claude-code']).toBe('installed');
|
|
220
237
|
});
|
|
221
238
|
|
|
239
|
+
it('reports outdated when a companion hook is missing or stale (T13960)', async () => {
|
|
240
|
+
mkdirSync(join(project, '.claude'));
|
|
241
|
+
await syncProjectHeavyCommandHooks(project, 'rewrite', { env });
|
|
242
|
+
const file = join(project, '.claude', 'settings.local.json');
|
|
243
|
+
const synced = readFileSync(file, 'utf-8');
|
|
244
|
+
const inspect = () => inspectProjectHeavyCommandHooks(project, 'rewrite', { env })[0];
|
|
245
|
+
for (const [event, why] of [
|
|
246
|
+
['SessionEnd', 'its SessionEnd hook is missing'],
|
|
247
|
+
['SubagentStart', 'its SubagentStart hook is missing'],
|
|
248
|
+
['Stop', 'its Stop hook is missing'],
|
|
249
|
+
] as const) {
|
|
250
|
+
const config = JSON.parse(synced);
|
|
251
|
+
delete config.hooks[event];
|
|
252
|
+
writeFileSync(file, JSON.stringify(config));
|
|
253
|
+
expect(inspect()?.state, event).toBe('outdated');
|
|
254
|
+
expect(inspect()?.detail, event).toContain(why);
|
|
255
|
+
expect(inspect()?.remedy).toBe('run: cleo doctor heavy-command-hook --fix');
|
|
256
|
+
}
|
|
257
|
+
// A Stop entry an older build wrote (it still ended the session) is stale too.
|
|
258
|
+
const old = JSON.parse(synced);
|
|
259
|
+
old.hooks.Stop[0].hooks[0].timeout = 1;
|
|
260
|
+
writeFileSync(file, JSON.stringify(old));
|
|
261
|
+
expect(inspect()?.detail).toContain('its Stop hook was written by another CLEO build');
|
|
262
|
+
await syncProjectHeavyCommandHooks(project, 'rewrite', { env });
|
|
263
|
+
expect(inspect()?.state).toBe('installed');
|
|
264
|
+
});
|
|
265
|
+
|
|
266
|
+
it('with the mode off, the Claude Code Stop and SessionEnd hooks are still audited', async () => {
|
|
267
|
+
mkdirSync(join(project, '.claude'));
|
|
268
|
+
await syncProjectHeavyCommandHooks(project, 'off', { env });
|
|
269
|
+
expect(state('off')['claude-code']).toBe('disabled');
|
|
270
|
+
const file = join(project, '.claude', 'settings.local.json');
|
|
271
|
+
const config = JSON.parse(readFileSync(file, 'utf-8'));
|
|
272
|
+
delete config.hooks.SessionEnd;
|
|
273
|
+
writeFileSync(file, JSON.stringify(config));
|
|
274
|
+
const off = inspectProjectHeavyCommandHooks(project, 'off', { env })[0];
|
|
275
|
+
expect(off?.state).toBe('outdated');
|
|
276
|
+
expect(off?.detail).toContain('its SessionEnd hook is missing');
|
|
277
|
+
expect(off?.remedy).toBe('run: cleo doctor heavy-command-hook --fix');
|
|
278
|
+
});
|
|
279
|
+
|
|
222
280
|
it('reports outdated for another build, a legacy location, or a hook left while off', async () => {
|
|
223
281
|
mkdirSync(join(project, '.claude'));
|
|
224
282
|
const local = join(project, '.claude', 'settings.local.json');
|
|
@@ -61,9 +61,11 @@ import {
|
|
|
61
61
|
OLDER_CLEO_MARKER_PREFIX,
|
|
62
62
|
OPENCODE_HEAVY_COMMAND_PLUGIN,
|
|
63
63
|
STOP_DISPATCH_HOOK_ID,
|
|
64
|
+
SUBAGENT_START_HOOK_ID,
|
|
64
65
|
stopDispatchHookObject,
|
|
65
66
|
syncJsonHeavyCommandHook,
|
|
66
67
|
syncJsonStopDispatchHook,
|
|
68
|
+
syncJsonSubagentStartHook,
|
|
67
69
|
syncOpencodeHeavyCommandPlugin,
|
|
68
70
|
} from '../heavy-command-hook-install.js';
|
|
69
71
|
|
|
@@ -333,6 +335,21 @@ describe.each(SHELLS)('heavyCommandHookCommand under %s', (shell) => {
|
|
|
333
335
|
});
|
|
334
336
|
});
|
|
335
337
|
|
|
338
|
+
describe('syncJsonSubagentStartHook (T13667)', () => {
|
|
339
|
+
const read = (p: string) => JSON.parse(readFileSync(p, 'utf-8'));
|
|
340
|
+
|
|
341
|
+
it('adds one SubagentStart entry for Claude Code, idempotent, and removes only its own', async () => {
|
|
342
|
+
const path = join(dir, 'project', '.claude', 'settings.local.json');
|
|
343
|
+
expect(await syncJsonSubagentStartHook(path, true)).toBe('installed');
|
|
344
|
+
expect(await syncJsonSubagentStartHook(path, true)).toBe('unchanged');
|
|
345
|
+
const entry = read(path).hooks.SubagentStart[0].hooks[0];
|
|
346
|
+
expect(entry.command).toContain(`${SUBAGENT_START_HOOK_ID} --provider claude-code`);
|
|
347
|
+
expect(entry.command.endsWith('exit 0 # cleo-hook')).toBe(true);
|
|
348
|
+
expect(await syncJsonSubagentStartHook(path, false)).toBe('removed');
|
|
349
|
+
expect(read(path).hooks.SubagentStart).toEqual([]);
|
|
350
|
+
});
|
|
351
|
+
});
|
|
352
|
+
|
|
336
353
|
describe('askEnforceHookObject (T13420)', () => {
|
|
337
354
|
it('runs a fail-open script: exits 0 and prints only a JSON answer', () => {
|
|
338
355
|
const claude = String(askEnforceHookObject('claude-code').command);
|