@zelari/core 2.55.0 → 2.57.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/README.md +1 -1
  2. package/dist/core/hooks/lifecycleHookRunner.d.ts +30 -1
  3. package/dist/core/hooks/lifecycleHookRunner.d.ts.map +1 -1
  4. package/dist/core/hooks/lifecycleHookRunner.js +54 -0
  5. package/dist/core/hooks/lifecycleHookRunner.js.map +1 -1
  6. package/dist/core/hooks/types.d.ts +143 -5
  7. package/dist/core/hooks/types.d.ts.map +1 -1
  8. package/dist/core/hooks/types.js +63 -5
  9. package/dist/core/hooks/types.js.map +1 -1
  10. package/dist/core/tools/observationCompactor.d.ts +57 -0
  11. package/dist/core/tools/observationCompactor.d.ts.map +1 -0
  12. package/dist/core/tools/observationCompactor.js +129 -0
  13. package/dist/core/tools/observationCompactor.js.map +1 -0
  14. package/dist/core/tools/registry.d.ts +18 -23
  15. package/dist/core/tools/registry.d.ts.map +1 -1
  16. package/dist/core/tools/registry.js +8 -102
  17. package/dist/core/tools/registry.js.map +1 -1
  18. package/dist/memory/index.d.ts +1 -0
  19. package/dist/memory/index.d.ts.map +1 -1
  20. package/dist/memory/index.js +1 -0
  21. package/dist/memory/index.js.map +1 -1
  22. package/dist/memory/relevantWhen.d.ts +8 -0
  23. package/dist/memory/relevantWhen.d.ts.map +1 -0
  24. package/dist/memory/relevantWhen.js +73 -0
  25. package/dist/memory/relevantWhen.js.map +1 -0
  26. package/dist/memory/schemas.d.ts +2 -0
  27. package/dist/memory/schemas.d.ts.map +1 -1
  28. package/dist/memory/schemas.js +3 -0
  29. package/dist/memory/schemas.js.map +1 -1
  30. package/dist/memory/scoring.d.ts +1 -0
  31. package/dist/memory/scoring.d.ts.map +1 -1
  32. package/dist/memory/scoring.js +11 -1
  33. package/dist/memory/scoring.js.map +1 -1
  34. package/dist/memory/service.d.ts +12 -0
  35. package/dist/memory/service.d.ts.map +1 -1
  36. package/dist/memory/service.js +59 -0
  37. package/dist/memory/service.js.map +1 -1
  38. package/dist/memory/types.d.ts +20 -0
  39. package/dist/memory/types.d.ts.map +1 -1
  40. package/dist/session/decisionEvents.d.ts +167 -0
  41. package/dist/session/decisionEvents.d.ts.map +1 -0
  42. package/dist/session/decisionEvents.js +206 -0
  43. package/dist/session/decisionEvents.js.map +1 -0
  44. package/dist/session/index.d.ts +2 -0
  45. package/dist/session/index.d.ts.map +1 -1
  46. package/dist/session/index.js +2 -0
  47. package/dist/session/index.js.map +1 -1
  48. package/dist/session/replay.d.ts +33 -0
  49. package/dist/session/replay.d.ts.map +1 -1
  50. package/dist/session/replay.js +58 -1
  51. package/dist/session/replay.js.map +1 -1
  52. package/dist/session/types.d.ts +7 -1
  53. package/dist/session/types.d.ts.map +1 -1
  54. package/dist/session/types.js +20 -0
  55. package/dist/session/types.js.map +1 -1
  56. package/dist/session/verifyDebt.d.ts +41 -0
  57. package/dist/session/verifyDebt.d.ts.map +1 -0
  58. package/dist/session/verifyDebt.js +40 -0
  59. package/dist/session/verifyDebt.js.map +1 -0
  60. package/dist/version.d.ts +1 -1
  61. package/dist/version.js +1 -1
  62. package/package.json +1 -1
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Reusable runtime for [Zelari Code](https://github.com/N-THEM-Studio/zelari-code) — **Apache-2.0**.
4
4
 
5
- Current version: **2.55.0** (kept in lockstep with the `zelari-code` CLI).
5
+ Current version: **2.57.0** (kept in lockstep with the `zelari-code` CLI).
6
6
 
7
7
  ## What it is
8
8
 
@@ -27,7 +27,12 @@
27
27
  *
28
28
  * @since v1.32.0
29
29
  */
30
- import { type HookDefinition, type PreToolUseResult, type SessionHookResult } from './types.js';
30
+ import { type HookDefinition, type NotificationPayload, type PermissionRequestPayload, type PreToolUseResult, type SessionHookResult, type SubagentPayload } from './types.js';
31
+ /** Correlation fields every hook invocation carries. */
32
+ export interface HookContext {
33
+ sessionId?: string;
34
+ cwd?: string;
35
+ }
31
36
  export interface LifecycleHookRunnerOptions {
32
37
  /** Directories to scan for `*.json` hook files. */
33
38
  dirs?: string[];
@@ -67,6 +72,14 @@ export declare function splitHookCommandLine(line: string): string[];
67
72
  * (crash / timeout / invalid JSON / deny without reason) becomes an explicit
68
73
  * allow (fail-open, default) or an explicit deny 'hook-failed' (fail-closed,
69
74
  * t22), with a logged warning either way.
75
+ *
76
+ * v2.57 (WS5): the `run*` methods split in two families —
77
+ * - GATE events (`runPreToolUse`, `runSessionStart`, `runSessionEnd`) return
78
+ * a verdict; only an explicit hook `deny` blocks (failureMode decides the
79
+ * unreliable case);
80
+ * - OBSERVER events (`runPermissionRequest`, `runSubagentStart`,
81
+ * `runSubagentEnd`, `runNotification`) return `void`; the verdict is
82
+ * discarded, so nothing an observer does can block the spine.
70
83
  */
71
84
  export declare class LifecycleHookRunner {
72
85
  private hooks;
@@ -108,6 +121,22 @@ export declare class LifecycleHookRunner {
108
121
  cwd?: string;
109
122
  }): Promise<SessionHookResult>;
110
123
  private runSessionHooks;
124
+ /** Fire `PermissionRequest` — the gate resolved this dispatch to ask/deny. */
125
+ runPermissionRequest(request: PermissionRequestPayload, ctx?: HookContext): Promise<void>;
126
+ /** Fire `SubagentStart` — a Kraken tentacle run began. */
127
+ runSubagentStart(subagent: SubagentPayload, ctx?: HookContext): Promise<void>;
128
+ /** Fire `SubagentEnd` — a tentacle run reached its terminal state. */
129
+ runSubagentEnd(subagent: SubagentPayload, ctx?: HookContext): Promise<void>;
130
+ /** Fire `Notification` — the WS2 inbox gained an item. */
131
+ runNotification(notification: NotificationPayload, ctx?: HookContext): Promise<void>;
132
+ /**
133
+ * Run every matching observer hook in registration order, swallowing
134
+ * everything: a failing hook is logged by runHookSafely, and the returned
135
+ * verdict is thrown away. `toolName`/`agentKind` feed the matcher so
136
+ * `PermissionRequest` stays tool-scoped and the subagent events honor
137
+ * `match.agents`.
138
+ */
139
+ private runObserverHooks;
111
140
  /** Execute a single hook; the failure mode decides allow vs deny 'hook-failed'. */
112
141
  private runHookSafely;
113
142
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycleHookRunner.d.ts","sourceRoot":"","sources":["../../../src/core/hooks/lifecycleHookRunner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAKH,OAAO,EAGL,KAAK,cAAc,EAGnB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,0BAA0B;IACzC,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED,2DAA2D;AAC3D,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,aAAa,CAAC;AAY1D;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAoC3D;AAED;;;;;GAKG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,+DAA+D;IAC/D,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;gBAE1B,OAAO,GAAE,0BAA+B;IASpD,0EAA0E;IAC1E,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAInC,6EAA6E;IAC7E,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IA2B5B,SAAS,IAAI,cAAc,EAAE;IAI7B;;;;;OAKG;IACG,aAAa,CACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,OAAO,EAClB,GAAG,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GACxC,OAAO,CAAC,gBAAgB,CAAC;IAsB5B,0EAA0E;IACpE,cAAc,CAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,OAAO,EAClB,UAAU,EAAE,OAAO,EACnB,GAAG,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GACtE,OAAO,CAAC,IAAI,CAAC;IAiBhB,gFAAgF;IAC1E,eAAe,CAAC,GAAG,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAI5F,8EAA8E;IACxE,aAAa,CAAC,GAAG,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;YAI5E,eAAe;IAuB7B,mFAAmF;YACrE,aAAa;IA2B3B;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAMvB,6EAA6E;IAC7E,OAAO,CAAC,WAAW;IAyDnB,8DAA8D;YAChD,QAAQ;CAsBvB"}
1
+ {"version":3,"file":"lifecycleHookRunner.d.ts","sourceRoot":"","sources":["../../../src/core/hooks/lifecycleHookRunner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAKH,OAAO,EAIL,KAAK,cAAc,EAGnB,KAAK,mBAAmB,EAGxB,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AAEpB,wDAAwD;AACxD,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,0BAA0B;IACzC,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED,2DAA2D;AAC3D,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,aAAa,CAAC;AAY1D;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAoC3D;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,+DAA+D;IAC/D,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC;gBAE1B,OAAO,GAAE,0BAA+B;IASpD,0EAA0E;IAC1E,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAInC,6EAA6E;IAC7E,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IA2B5B,SAAS,IAAI,cAAc,EAAE;IAI7B;;;;;OAKG;IACG,aAAa,CACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,OAAO,EAClB,GAAG,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GACxC,OAAO,CAAC,gBAAgB,CAAC;IAsB5B,0EAA0E;IACpE,cAAc,CAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,OAAO,EAClB,UAAU,EAAE,OAAO,EACnB,GAAG,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GACtE,OAAO,CAAC,IAAI,CAAC;IAiBhB,gFAAgF;IAC1E,eAAe,CAAC,GAAG,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAI5F,8EAA8E;IACxE,aAAa,CAAC,GAAG,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;YAI5E,eAAe;IA+B7B,8EAA8E;IACxE,oBAAoB,CAAC,OAAO,EAAE,wBAAwB,EAAE,GAAG,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQnG,0DAA0D;IACpD,gBAAgB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvF,sEAAsE;IAChE,cAAc,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrF,0DAA0D;IACpD,eAAe,CAAC,YAAY,EAAE,mBAAmB,EAAE,GAAG,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9F;;;;;;OAMG;YACW,gBAAgB;IAW9B,mFAAmF;YACrE,aAAa;IA2B3B;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAMvB,6EAA6E;IAC7E,OAAO,CAAC,WAAW;IAyDnB,8DAA8D;YAChD,QAAQ;CAsBvB"}
@@ -106,6 +106,14 @@ export function splitHookCommandLine(line) {
106
106
  * (crash / timeout / invalid JSON / deny without reason) becomes an explicit
107
107
  * allow (fail-open, default) or an explicit deny 'hook-failed' (fail-closed,
108
108
  * t22), with a logged warning either way.
109
+ *
110
+ * v2.57 (WS5): the `run*` methods split in two families —
111
+ * - GATE events (`runPreToolUse`, `runSessionStart`, `runSessionEnd`) return
112
+ * a verdict; only an explicit hook `deny` blocks (failureMode decides the
113
+ * unreliable case);
114
+ * - OBSERVER events (`runPermissionRequest`, `runSubagentStart`,
115
+ * `runSubagentEnd`, `runNotification`) return `void`; the verdict is
116
+ * discarded, so nothing an observer does can block the spine.
109
117
  */
110
118
  export class LifecycleHookRunner {
111
119
  hooks = [];
@@ -231,6 +239,52 @@ export class LifecycleHookRunner {
231
239
  }
232
240
  return { ok: true };
233
241
  }
242
+ // ── v2.57 (WS5) OBSERVER events ───────────────────────────────────────────
243
+ // A hook is also a SUBSCRIBER of the spine. Each method below fires one
244
+ // observer event at its real seam and returns `void`: the decision a hook
245
+ // replies with is DISCARDED, so no observer — crashing, hanging, returning
246
+ // garbage or answering non-2xx — can block the caller or corrupt the spine.
247
+ // There is no deny channel here by construction, in EITHER failure mode
248
+ // (fail-closed still only LOGS for observers). Callers fire-and-forget.
249
+ /** Fire `PermissionRequest` — the gate resolved this dispatch to ask/deny. */
250
+ async runPermissionRequest(request, ctx = {}) {
251
+ await this.runObserverHooks('PermissionRequest', {
252
+ event: 'PermissionRequest',
253
+ permission: request,
254
+ ...ctx,
255
+ });
256
+ }
257
+ /** Fire `SubagentStart` — a Kraken tentacle run began. */
258
+ async runSubagentStart(subagent, ctx = {}) {
259
+ await this.runObserverHooks('SubagentStart', { event: 'SubagentStart', subagent, ...ctx });
260
+ }
261
+ /** Fire `SubagentEnd` — a tentacle run reached its terminal state. */
262
+ async runSubagentEnd(subagent, ctx = {}) {
263
+ await this.runObserverHooks('SubagentEnd', { event: 'SubagentEnd', subagent, ...ctx });
264
+ }
265
+ /** Fire `Notification` — the WS2 inbox gained an item. */
266
+ async runNotification(notification, ctx = {}) {
267
+ await this.runObserverHooks('Notification', { event: 'Notification', notification, ...ctx });
268
+ }
269
+ /**
270
+ * Run every matching observer hook in registration order, swallowing
271
+ * everything: a failing hook is logged by runHookSafely, and the returned
272
+ * verdict is thrown away. `toolName`/`agentKind` feed the matcher so
273
+ * `PermissionRequest` stays tool-scoped and the subagent events honor
274
+ * `match.agents`.
275
+ */
276
+ async runObserverHooks(event, payload) {
277
+ for (const hook of this.hooks) {
278
+ if (!hookMatches(hook, event, payload.permission?.tool, payload.subagent?.agent))
279
+ continue;
280
+ try {
281
+ await this.runHookSafely(hook, payload);
282
+ }
283
+ catch {
284
+ /* an observer never propagates: the subscription is best-effort */
285
+ }
286
+ }
287
+ }
234
288
  /** Execute a single hook; the failure mode decides allow vs deny 'hook-failed'. */
235
289
  async runHookSafely(hook, payload) {
236
290
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycleHookRunner.js","sourceRoot":"","sources":["../../../src/core/hooks/lifecycleHookRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lifecycleHookRunner.js","sourceRoot":"","sources":["../../../src/core/hooks/lifecycleHookRunner.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,16 @@
1
1
  /**
2
2
  * Lifecycle hook types — provider-neutral contract for PreToolUse /
3
- * PostToolUse / SessionStart / SessionEnd hooks.
3
+ * PostToolUse / SessionStart / SessionEnd hooks, plus the v2.57 OBSERVER
4
+ * events PermissionRequest / SubagentStart / SubagentEnd / Notification.
4
5
  *
5
6
  * Design (v1.32.0):
6
7
  * - FAIL-OPEN: a crashing, timing-out, or misbehaving hook NEVER blocks a
7
8
  * tool. The only way to block is an explicit JSON decision `deny`.
9
+ * - v2.57 (WS5): a hook is also a SUBSCRIBER of the spine. The four OBSERVER
10
+ * events (see {@link OBSERVER_HOOK_EVENTS}) are fire-and-forget: their
11
+ * decision is DISCARDED by contract, so a crashing / slow / non-2xx hook on
12
+ * those events can neither block nor corrupt anything. Only the four v1.32
13
+ * events can block (PreToolUse), and that never changes here.
8
14
  * - Hooks are external processes (or HTTP endpoints) that receive a JSON
9
15
  * payload on stdin / request body and reply with a JSON decision on
10
16
  * stdout / response body.
@@ -16,12 +22,31 @@
16
22
  */
17
23
  /** Hook event names. */
18
24
  export type HookEvent = 'PreToolUse' | 'PostToolUse' | 'SessionStart' | 'SessionEnd';
25
+ /**
26
+ * v2.57 (WS5) observation-only event names. A hook registered on one of these
27
+ * receives the structured payload below and its decision is IGNORED — see
28
+ * {@link ObserverHookPayload}.
29
+ */
30
+ export type ObserverHookEvent = 'PermissionRequest' | 'SubagentStart' | 'SubagentEnd' | 'Notification';
31
+ /** Every event a hook can be registered on (v1.32 tooling + v2.57 observers). */
32
+ export type AnyHookEvent = HookEvent | ObserverHookEvent;
33
+ /** The v2.57 observer events, as a value (docs / iteration / validation). */
34
+ export declare const OBSERVER_HOOK_EVENTS: readonly ObserverHookEvent[];
35
+ /** True for the fire-and-forget events whose decision is discarded. */
36
+ export declare function isObserverEvent(event: AnyHookEvent): event is ObserverHookEvent;
19
37
  /** A single tool matcher entry — Claude-like glob over tool names. */
20
38
  export interface HookToolMatch {
21
39
  /** Tool name patterns. `*` matches any tool. Case/alias-insensitive. */
22
40
  tools: string[];
23
- /** Events this hook fires on. */
24
- events: HookEvent[];
41
+ /** Events this hook fires on (v1.32 tooling events + v2.57 observers). */
42
+ events: AnyHookEvent[];
43
+ /**
44
+ * v2.57 (WS5): optional SUBAGENT-kind filter for `SubagentStart` /
45
+ * `SubagentEnd` (`general`, `explore`, `verify`, …). Absent ⇒ every kind,
46
+ * which is the additive default for pre-v2.57 files. `*` matches any kind.
47
+ * Ignored by every other event.
48
+ */
49
+ agents?: string[];
25
50
  }
26
51
  /**
27
52
  * One hook definition, loaded from a JSON file (or injected in tests).
@@ -70,6 +95,106 @@ export interface HookPayload {
70
95
  /** Error message when the tool call failed. */
71
96
  error?: string;
72
97
  }
98
+ /**
99
+ * v2.57 (WS5): payload of a `PermissionRequest` observer hook — fired when the
100
+ * permission gate resolved a dispatch to `ask` or `deny` (WS1/t133 gate), i.e.
101
+ * exactly when the operator (or the host) is being asked, or when the call is
102
+ * blocked by a rule.
103
+ */
104
+ export interface PermissionRequestPayload {
105
+ /** The tool whose dispatch needed a decision. */
106
+ tool: string;
107
+ /** Declared permission categories of that call (`read`, `write`, …). */
108
+ categories: string[];
109
+ /** Resolved effect for this dispatch: a prompt (`ask`) or a block (`deny`). */
110
+ effect: 'ask' | 'deny';
111
+ /** WS1 rule id that drove the decision — absent when no rule did. */
112
+ matchedRuleId?: string;
113
+ /** Layer the rule came from (`project` / `session` / `fail-closed` / …). */
114
+ source?: string;
115
+ /** The rule's own reason, verbatim. */
116
+ reason?: string;
117
+ /** Bounded one-line summary of the args (see {@link summarizeHookArgs}). */
118
+ argsSummary?: string;
119
+ }
120
+ /**
121
+ * v2.57 (WS5): payload of a `SubagentStart` / `SubagentEnd` observer hook —
122
+ * fired around a Kraken tentacle run (the `task` tool and the graph executor
123
+ * share the seam).
124
+ */
125
+ export interface SubagentPayload {
126
+ /** Sub-agent kind: `general` / `explore` / `verify` / persona kinds. */
127
+ agent: string;
128
+ /** The tentacle's one-line description. */
129
+ description: string;
130
+ /** Requested thoroughness, when the caller set one. */
131
+ thoroughness?: string;
132
+ /** WS3 isolation: does this tentacle run in its own git worktree? */
133
+ worktree: boolean;
134
+ /** Resolved `ZELARI_KRAKEN_WORKTREE` mode (`on` / `off` / `auto`). */
135
+ worktreeMode?: string;
136
+ /** Worktree path when isolation is active. */
137
+ worktreePath?: string;
138
+ /** Graph node / graph ids when the run came from the Kraken graph engine. */
139
+ nodeId?: string;
140
+ graphId?: string;
141
+ /** Effective working directory of the sub-agent. */
142
+ cwd?: string;
143
+ /** SubagentEnd only: absent is NEVER a success claim. */
144
+ ok?: boolean;
145
+ cancelled?: boolean;
146
+ durationMs?: number;
147
+ /** SubagentEnd only: failure detail when the tentacle failed. */
148
+ error?: string;
149
+ }
150
+ /**
151
+ * v2.57 (WS5): payload of a `Notification` observer hook — fired when the WS2
152
+ * inbox gains an item ("something is waiting on YOU"). Vocabulary mirrors
153
+ * `src/cli/inboxSources.ts`: `question` (unanswered `ask_user`),
154
+ * `tentacle-finished` (a Kraken node ended), `needs-input` (open verify debt /
155
+ * a denied tool call).
156
+ */
157
+ export interface NotificationPayload {
158
+ /** Which inbox source this item belongs to. */
159
+ source: 'question' | 'tentacle-finished' | 'needs-input';
160
+ /** Spine event kind that produced it, when a spine event did. */
161
+ kind?: string;
162
+ /** One-line, already-collapsed summary of the item. */
163
+ summary: string;
164
+ /** Spine seq of the underlying event, when known. */
165
+ seq?: number;
166
+ /** Verify-debt slot id (`needs-input` / unverified work). */
167
+ taskId?: string;
168
+ /** Denied tool name (`needs-input` / denied). */
169
+ tool?: string;
170
+ }
171
+ /**
172
+ * v2.57 (WS5): payload of an OBSERVER hook. Same envelope as {@link HookPayload}
173
+ * minus the tool fields, plus the one structured block the event carries. The
174
+ * `decision` a hook replies with is DISCARDED — these events are subscriptions,
175
+ * so an unreliable observer (crash / timeout / non-2xx) can neither block nor
176
+ * corrupt the spine.
177
+ */
178
+ export interface ObserverHookPayload {
179
+ event: ObserverHookEvent;
180
+ sessionId?: string;
181
+ cwd?: string;
182
+ /** `PermissionRequest`. */
183
+ permission?: PermissionRequestPayload;
184
+ /** `SubagentStart` / `SubagentEnd`. */
185
+ subagent?: SubagentPayload;
186
+ /** `Notification`. */
187
+ notification?: NotificationPayload;
188
+ }
189
+ /** Anything the runner can hand to a hook. */
190
+ export type AnyHookPayload = HookPayload | ObserverHookPayload;
191
+ /**
192
+ * v2.57 (WS5): bounded, single-line summary of tool args for a hook payload —
193
+ * "if safely available". Never throws (circular / exotic values degrade to a
194
+ * type tag), never returns more than `max` characters, and collapses
195
+ * whitespace so a hook can log it verbatim.
196
+ */
197
+ export declare function summarizeHookArgs(value: unknown, max?: number): string;
73
198
  /** JSON decision a hook must reply with. */
74
199
  export type HookDecision = {
75
200
  decision: 'allow';
@@ -100,6 +225,19 @@ export interface SessionHookResult {
100
225
  export declare function normalizeToolName(raw: string): string;
101
226
  /** True if `pattern` matches `toolName` (case/alias-insensitive, `*` = any). */
102
227
  export declare function toolMatches(pattern: string, toolName: string): boolean;
103
- /** True if this hook matches the given event + tool name. */
104
- export declare function hookMatches(hook: HookDefinition, event: HookEvent, toolName: string | undefined): boolean;
228
+ /**
229
+ * True if this hook matches the given event, tool name and (for the v2.57
230
+ * subagent events) sub-agent kind.
231
+ *
232
+ * Matching rules:
233
+ * - tool-scoped events (`PreToolUse`, `PostToolUse`, `PermissionRequest`)
234
+ * require a tool name and match it case/alias-insensitively against
235
+ * `match.tools`;
236
+ * - `SubagentStart` / `SubagentEnd` match the AGENT KIND against
237
+ * `match.agents` when that filter is present (absent ⇒ every kind) —
238
+ * `match.tools` is NOT consulted;
239
+ * - `SessionStart` / `SessionEnd` / `Notification` carry no subject: the
240
+ * event decides, `match.tools` is ignored (unchanged v1.32 behavior).
241
+ */
242
+ export declare function hookMatches(hook: HookDefinition, event: AnyHookEvent, toolName: string | undefined, agentKind?: string): boolean;
105
243
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/hooks/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,wBAAwB;AACxB,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,aAAa,GAAG,cAAc,GAAG,YAAY,CAAC;AAErF,sEAAsE;AACtE,MAAM,WAAW,aAAa;IAC5B,wEAAwE;IACxE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,iCAAiC;IACjC,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,cAAc;IAC7B,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,KAAK,EAAE,aAAa,CAAC;IACrB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,mCAAmC;AACnC,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,SAAS,CAAC;IACjB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mCAAmC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qDAAqD;IACrD,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,4CAA4C;AAC5C,MAAM,MAAM,YAAY,GACpB;IAAE,QAAQ,EAAE,OAAO,CAAA;CAAE,GACrB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzC,iFAAiF;AACjF,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,sDAAsD;AACtD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGrD;AA4BD,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGtE;AAED,6DAA6D;AAC7D,wBAAgB,WAAW,CACzB,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,OAAO,CAQT"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/hooks/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,wBAAwB;AACxB,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,aAAa,GAAG,cAAc,GAAG,YAAY,CAAC;AAErF;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,GAAG,eAAe,GAAG,aAAa,GAAG,cAAc,CAAC;AAEvG,iFAAiF;AACjF,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,iBAAiB,CAAC;AAEzD,6EAA6E;AAC7E,eAAO,MAAM,oBAAoB,EAAE,SAAS,iBAAiB,EAK5D,CAAC;AAEF,uEAAuE;AACvE,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,KAAK,IAAI,iBAAiB,CAE/E;AAKD,sEAAsE;AACtE,MAAM,WAAW,aAAa;IAC5B,wEAAwE;IACxE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,0EAA0E;IAC1E,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,cAAc;IAC7B,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,KAAK,EAAE,aAAa,CAAC;IACrB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,mCAAmC;AACnC,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,SAAS,CAAC;IACjB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mCAAmC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qDAAqD;IACrD,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACvC,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,+EAA+E;IAC/E,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,QAAQ,EAAE,OAAO,CAAC;IAClB,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,+CAA+C;IAC/C,MAAM,EAAE,UAAU,GAAG,mBAAmB,GAAG,aAAa,CAAC;IACzD,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,iBAAiB,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,uCAAuC;IACvC,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,sBAAsB;IACtB,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC;AAED,8CAA8C;AAC9C,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,mBAAmB,CAAC;AAE/D;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,SAAM,GAAG,MAAM,CAWnE;AAED,4CAA4C;AAC5C,MAAM,MAAM,YAAY,GACpB;IAAE,QAAQ,EAAE,OAAO,CAAA;CAAE,GACrB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzC,iFAAiF;AACjF,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,sDAAsD;AACtD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGrD;AA4BD,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGtE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAaT"}
@@ -1,10 +1,16 @@
1
1
  /**
2
2
  * Lifecycle hook types — provider-neutral contract for PreToolUse /
3
- * PostToolUse / SessionStart / SessionEnd hooks.
3
+ * PostToolUse / SessionStart / SessionEnd hooks, plus the v2.57 OBSERVER
4
+ * events PermissionRequest / SubagentStart / SubagentEnd / Notification.
4
5
  *
5
6
  * Design (v1.32.0):
6
7
  * - FAIL-OPEN: a crashing, timing-out, or misbehaving hook NEVER blocks a
7
8
  * tool. The only way to block is an explicit JSON decision `deny`.
9
+ * - v2.57 (WS5): a hook is also a SUBSCRIBER of the spine. The four OBSERVER
10
+ * events (see {@link OBSERVER_HOOK_EVENTS}) are fire-and-forget: their
11
+ * decision is DISCARDED by contract, so a crashing / slow / non-2xx hook on
12
+ * those events can neither block nor corrupt anything. Only the four v1.32
13
+ * events can block (PreToolUse), and that never changes here.
8
14
  * - Hooks are external processes (or HTTP endpoints) that receive a JSON
9
15
  * payload on stdin / request body and reply with a JSON decision on
10
16
  * stdout / response body.
@@ -14,6 +20,39 @@
14
20
  * @see lifecycleHookRunner.ts — the runner that executes these hooks
15
21
  * @since v1.32.0
16
22
  */
23
+ /** The v2.57 observer events, as a value (docs / iteration / validation). */
24
+ export const OBSERVER_HOOK_EVENTS = [
25
+ 'PermissionRequest',
26
+ 'SubagentStart',
27
+ 'SubagentEnd',
28
+ 'Notification',
29
+ ];
30
+ /** True for the fire-and-forget events whose decision is discarded. */
31
+ export function isObserverEvent(event) {
32
+ return OBSERVER_HOOK_EVENTS.includes(event);
33
+ }
34
+ /** Events carrying a tool component, matched against `match.tools`. */
35
+ const TOOL_SCOPED_EVENTS = ['PreToolUse', 'PostToolUse', 'PermissionRequest'];
36
+ /**
37
+ * v2.57 (WS5): bounded, single-line summary of tool args for a hook payload —
38
+ * "if safely available". Never throws (circular / exotic values degrade to a
39
+ * type tag), never returns more than `max` characters, and collapses
40
+ * whitespace so a hook can log it verbatim.
41
+ */
42
+ export function summarizeHookArgs(value, max = 300) {
43
+ let text;
44
+ try {
45
+ if (value === undefined)
46
+ return '';
47
+ const json = typeof value === 'string' ? value : JSON.stringify(value);
48
+ text = json === undefined ? String(value) : json;
49
+ }
50
+ catch {
51
+ return '[unserializable]';
52
+ }
53
+ const flat = text.replace(/\s+/g, ' ').trim();
54
+ return flat.length > max ? `${flat.slice(0, Math.max(0, max - 1))}…` : flat;
55
+ }
17
56
  /**
18
57
  * Normalize a tool name for matching: lowercase + strip separators, then
19
58
  * apply Claude-style aliases so `Bash`/`shell`/`terminal` all map to `bash`
@@ -55,16 +94,35 @@ export function toolMatches(pattern, toolName) {
55
94
  return true;
56
95
  return normalizeToolName(pattern) === normalizeToolName(toolName);
57
96
  }
58
- /** True if this hook matches the given event + tool name. */
59
- export function hookMatches(hook, event, toolName) {
97
+ /**
98
+ * True if this hook matches the given event, tool name and (for the v2.57
99
+ * subagent events) sub-agent kind.
100
+ *
101
+ * Matching rules:
102
+ * - tool-scoped events (`PreToolUse`, `PostToolUse`, `PermissionRequest`)
103
+ * require a tool name and match it case/alias-insensitively against
104
+ * `match.tools`;
105
+ * - `SubagentStart` / `SubagentEnd` match the AGENT KIND against
106
+ * `match.agents` when that filter is present (absent ⇒ every kind) —
107
+ * `match.tools` is NOT consulted;
108
+ * - `SessionStart` / `SessionEnd` / `Notification` carry no subject: the
109
+ * event decides, `match.tools` is ignored (unchanged v1.32 behavior).
110
+ */
111
+ export function hookMatches(hook, event, toolName, agentKind) {
60
112
  if (!hook.match.events.includes(event))
61
113
  return false;
62
- if (event === 'PreToolUse' || event === 'PostToolUse') {
114
+ if (TOOL_SCOPED_EVENTS.includes(event)) {
63
115
  if (!toolName)
64
116
  return false;
65
117
  return hook.match.tools.some((t) => toolMatches(t, toolName));
66
118
  }
67
- // Session events: no tool component.
119
+ if (event === 'SubagentStart' || event === 'SubagentEnd') {
120
+ const agents = hook.match.agents;
121
+ if (!agents || agents.length === 0)
122
+ return true; // additive: no filter ⇒ all kinds
123
+ return agentKind !== undefined && agents.some((a) => toolMatches(a, agentKind));
124
+ }
125
+ // Session / Notification events: no tool component.
68
126
  return true;
69
127
  }
70
128
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/hooks/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAmFH;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACjD,OAAO,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,0EAA0E;AAC1E,MAAM,YAAY,GAA2B;IAC3C,IAAI,EAAE,WAAW;IACjB,QAAQ,EAAE,WAAW;IACrB,GAAG,EAAE,WAAW;IAChB,KAAK,EAAE,YAAY;IACnB,SAAS,EAAE,YAAY;IACvB,IAAI,EAAE,WAAW;IACjB,QAAQ,EAAE,WAAW;IACrB,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,YAAY;IACrB,aAAa,EAAE,YAAY;IAC3B,EAAE,EAAE,YAAY;IAChB,GAAG,EAAE,YAAY;IACjB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,cAAc;IACpB,MAAM,EAAE,cAAc;IACtB,SAAS,EAAE,iBAAiB;IAC5B,GAAG,EAAE,iBAAiB;IACtB,KAAK,EAAE,MAAM;IACb,QAAQ,EAAE,MAAM;IAChB,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,MAAM;IACX,IAAI,EAAE,MAAM;CACb,CAAC;AAEF,gFAAgF;AAChF,MAAM,UAAU,WAAW,CAAC,OAAe,EAAE,QAAgB;IAC3D,IAAI,OAAO,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IACjC,OAAO,iBAAiB,CAAC,OAAO,CAAC,KAAK,iBAAiB,CAAC,QAAQ,CAAC,CAAC;AACpE,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,WAAW,CACzB,IAAoB,EACpB,KAAgB,EAChB,QAA4B;IAE5B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACrD,IAAI,KAAK,KAAK,YAAY,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;QACtD,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,qCAAqC;IACrC,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/hooks/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import type { TypedResult } from './toolTypes.js';
2
+ export interface TruncateToolResultOptions {
3
+ /** Line cap (default ZELARI_TOOL_RESULT_LINES / 200). */
4
+ cap?: number;
5
+ /** When true (default), spill full text to managed dir if truncated. */
6
+ spill?: boolean;
7
+ /** Used in spill filename + marker. */
8
+ toolName?: string;
9
+ }
10
+ /**
11
+ * v1.5.3: tool-result truncation. A read_file / show_diff / bash on a large
12
+ * target used to dump the entire output into config.messages verbatim — a
13
+ * 5000-line file is ~100k tokens, re-sent every subsequent provider turn, and
14
+ * a single such call can consume 50–100% of a context window. This truncates
15
+ * tool results to a bounded head + tail with a marker, so the transcript LLM
16
+ * sees stays under control regardless of what a tool returns.
17
+ *
18
+ * Strategy: if the result has more than `cap` lines, keep the first half and
19
+ * the last half of `cap`, with a marker naming the omission. Single-line
20
+ * payloads (e.g. compact JSON) are split on a char budget derived from cap.
21
+ * Results under the cap pass through verbatim — zero overhead on the common
22
+ * case. Errors (ok:false) are never truncated (they're small by nature).
23
+ *
24
+ * Env override: ZELARI_TOOL_RESULT_LINES (default 200). Set higher for
25
+ * sessions that need more file context, lower to save tokens on tight windows.
26
+ */
27
+ export declare const TOOL_RESULT_LINE_CAP: number;
28
+ /**
29
+ * Truncate a string result to head + tail with a marker, bounded by line count
30
+ * (and a soft char budget for huge single-line payloads).
31
+ *
32
+ * When the result is truncated and spill is enabled, the **full** text is
33
+ * written under the managed tool-output dir and the marker includes the path
34
+ * so the model can re-open it with read_file if needed.
35
+ *
36
+ * Exported for tests. Returns the original string if under the cap.
37
+ *
38
+ * Overloads:
39
+ * truncateToolResult(text, cap?)
40
+ * truncateToolResult(text, { cap, spill, toolName })
41
+ */
42
+ export declare function truncateToolResult(text: string, capOrOpts?: number | TruncateToolResultOptions): string;
43
+ /**
44
+ * Compact a TypedResult's model-facing payload IN PLACE and return the SAME
45
+ * reference. String values are truncated; object values with a string
46
+ * `content` field have that field truncated on the same object (no clone).
47
+ * Errors (ok:false) and other shapes pass through untouched.
48
+ *
49
+ * spill defaults to true (matches truncateToolResult); the CLI tool-result
50
+ * cache passes spill:false so a cache fill never writes to disk.
51
+ */
52
+ export declare function compactToolResult<O>(result: TypedResult<O>, opts?: {
53
+ toolName?: string;
54
+ cap?: number;
55
+ spill?: boolean;
56
+ }): TypedResult<O>;
57
+ //# sourceMappingURL=observationCompactor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observationCompactor.d.ts","sourceRoot":"","sources":["../../../src/core/tools/observationCompactor.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,WAAW,yBAAyB;IACxC,yDAAyD;IACzD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAI/B,CAAC;AAEL;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,MAAM,GAAG,yBAAgD,GACnE,MAAM,CA0DR;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EACtB,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAC9D,WAAW,CAAC,CAAC,CAAC,CAgBhB"}