@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.
- package/README.md +1 -1
- package/dist/core/hooks/lifecycleHookRunner.d.ts +30 -1
- package/dist/core/hooks/lifecycleHookRunner.d.ts.map +1 -1
- package/dist/core/hooks/lifecycleHookRunner.js +54 -0
- package/dist/core/hooks/lifecycleHookRunner.js.map +1 -1
- package/dist/core/hooks/types.d.ts +143 -5
- package/dist/core/hooks/types.d.ts.map +1 -1
- package/dist/core/hooks/types.js +63 -5
- package/dist/core/hooks/types.js.map +1 -1
- package/dist/core/tools/observationCompactor.d.ts +57 -0
- package/dist/core/tools/observationCompactor.d.ts.map +1 -0
- package/dist/core/tools/observationCompactor.js +129 -0
- package/dist/core/tools/observationCompactor.js.map +1 -0
- package/dist/core/tools/registry.d.ts +18 -23
- package/dist/core/tools/registry.d.ts.map +1 -1
- package/dist/core/tools/registry.js +8 -102
- package/dist/core/tools/registry.js.map +1 -1
- package/dist/memory/index.d.ts +1 -0
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +1 -0
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/relevantWhen.d.ts +8 -0
- package/dist/memory/relevantWhen.d.ts.map +1 -0
- package/dist/memory/relevantWhen.js +73 -0
- package/dist/memory/relevantWhen.js.map +1 -0
- package/dist/memory/schemas.d.ts +2 -0
- package/dist/memory/schemas.d.ts.map +1 -1
- package/dist/memory/schemas.js +3 -0
- package/dist/memory/schemas.js.map +1 -1
- package/dist/memory/scoring.d.ts +1 -0
- package/dist/memory/scoring.d.ts.map +1 -1
- package/dist/memory/scoring.js +11 -1
- package/dist/memory/scoring.js.map +1 -1
- package/dist/memory/service.d.ts +12 -0
- package/dist/memory/service.d.ts.map +1 -1
- package/dist/memory/service.js +59 -0
- package/dist/memory/service.js.map +1 -1
- package/dist/memory/types.d.ts +20 -0
- package/dist/memory/types.d.ts.map +1 -1
- package/dist/session/decisionEvents.d.ts +167 -0
- package/dist/session/decisionEvents.d.ts.map +1 -0
- package/dist/session/decisionEvents.js +206 -0
- package/dist/session/decisionEvents.js.map +1 -0
- package/dist/session/index.d.ts +2 -0
- package/dist/session/index.d.ts.map +1 -1
- package/dist/session/index.js +2 -0
- package/dist/session/index.js.map +1 -1
- package/dist/session/replay.d.ts +33 -0
- package/dist/session/replay.d.ts.map +1 -1
- package/dist/session/replay.js +58 -1
- package/dist/session/replay.js.map +1 -1
- package/dist/session/types.d.ts +7 -1
- package/dist/session/types.d.ts.map +1 -1
- package/dist/session/types.js +20 -0
- package/dist/session/types.js.map +1 -1
- package/dist/session/verifyDebt.d.ts +41 -0
- package/dist/session/verifyDebt.d.ts.map +1 -0
- package/dist/session/verifyDebt.js +40 -0
- package/dist/session/verifyDebt.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- 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.
|
|
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,
|
|
1
|
+
{"version":3,"file":"lifecycleHookRunner.d.ts","sourceRoot":"","sources":["../../../src/core/hooks/lifecycleHookRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -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:
|
|
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
|
-
/**
|
|
104
|
-
|
|
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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/hooks/types.ts"],"names":[],"mappings":"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"}
|
package/dist/core/hooks/types.js
CHANGED
|
@@ -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
|
-
/**
|
|
59
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/hooks/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAeH,6EAA6E;AAC7E,MAAM,CAAC,MAAM,oBAAoB,GAAiC;IAChE,mBAAmB;IACnB,eAAe;IACf,aAAa;IACb,cAAc;CACf,CAAC;AAEF,uEAAuE;AACvE,MAAM,UAAU,eAAe,CAAC,KAAmB;IACjD,OAAQ,oBAA0C,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrE,CAAC;AAED,uEAAuE;AACvE,MAAM,kBAAkB,GAA4B,CAAC,YAAY,EAAE,aAAa,EAAE,mBAAmB,CAAC,CAAC;AAoKvG;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc,EAAE,GAAG,GAAG,GAAG;IACzD,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACvE,IAAI,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9E,CAAC;AAuBD;;;;;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;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,WAAW,CACzB,IAAoB,EACpB,KAAmB,EACnB,QAA4B,EAC5B,SAAkB;IAElB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACrD,IAAI,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACvC,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,IAAI,KAAK,KAAK,eAAe,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACjC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,CAAC,kCAAkC;QACnF,OAAO,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;IAClF,CAAC;IACD,oDAAoD;IACpD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -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"}
|