@namzu/sdk 63.1.0 → 64.0.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/CHANGELOG.md +53 -0
- package/dist/agents/QueryAgent.d.ts.map +1 -1
- package/dist/agents/QueryAgent.js +2 -1
- package/dist/agents/QueryAgent.js.map +1 -1
- package/dist/compaction/hooks.d.ts +57 -0
- package/dist/compaction/hooks.d.ts.map +1 -0
- package/dist/compaction/hooks.js +44 -0
- package/dist/compaction/hooks.js.map +1 -0
- package/dist/compaction/manual.d.ts +9 -0
- package/dist/compaction/manual.d.ts.map +1 -1
- package/dist/compaction/manual.js +74 -5
- package/dist/compaction/manual.js.map +1 -1
- package/dist/compaction/model-summary.d.ts +6 -0
- package/dist/compaction/model-summary.d.ts.map +1 -1
- package/dist/compaction/model-summary.js +13 -3
- package/dist/compaction/model-summary.js.map +1 -1
- package/dist/compaction/verifier.d.ts +8 -2
- package/dist/compaction/verifier.d.ts.map +1 -1
- package/dist/compaction/verifier.js +23 -7
- package/dist/compaction/verifier.js.map +1 -1
- package/dist/plugin/hook-context.d.ts +16 -0
- package/dist/plugin/hook-context.d.ts.map +1 -1
- package/dist/plugin/hook-context.js +40 -0
- package/dist/plugin/hook-context.js.map +1 -1
- package/dist/plugin/index.d.ts +4 -3
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +3 -2
- package/dist/plugin/index.js.map +1 -1
- package/dist/plugin/shell-hook-command.d.ts +25 -0
- package/dist/plugin/shell-hook-command.d.ts.map +1 -0
- package/dist/plugin/shell-hook-command.js +218 -0
- package/dist/plugin/shell-hook-command.js.map +1 -0
- package/dist/plugin/shell-hook-tool-names.d.ts +20 -0
- package/dist/plugin/shell-hook-tool-names.d.ts.map +1 -0
- package/dist/plugin/shell-hook-tool-names.js +43 -0
- package/dist/plugin/shell-hook-tool-names.js.map +1 -0
- package/dist/plugin/shell-hook.d.ts +62 -20
- package/dist/plugin/shell-hook.d.ts.map +1 -1
- package/dist/plugin/shell-hook.js +372 -85
- package/dist/plugin/shell-hook.js.map +1 -1
- package/dist/public-runtime.d.ts +3 -1
- package/dist/public-runtime.d.ts.map +1 -1
- package/dist/public-runtime.js +2 -1
- package/dist/public-runtime.js.map +1 -1
- package/dist/public-types.d.ts +2 -1
- package/dist/public-types.d.ts.map +1 -1
- package/dist/runtime/query/compact-session.d.ts +7 -1
- package/dist/runtime/query/compact-session.d.ts.map +1 -1
- package/dist/runtime/query/compact-session.js +8 -3
- package/dist/runtime/query/compact-session.js.map +1 -1
- package/dist/runtime/query/executor/tool-call-admission.d.ts +1 -1
- package/dist/runtime/query/executor/tool-call-admission.d.ts.map +1 -1
- package/dist/runtime/query/executor/tool-call-admission.js +4 -3
- package/dist/runtime/query/executor/tool-call-admission.js.map +1 -1
- package/dist/runtime/query/executor.d.ts.map +1 -1
- package/dist/runtime/query/executor.js +5 -3
- package/dist/runtime/query/executor.js.map +1 -1
- package/dist/runtime/query/finalize-turn.d.ts.map +1 -1
- package/dist/runtime/query/finalize-turn.js +9 -2
- package/dist/runtime/query/finalize-turn.js.map +1 -1
- package/dist/runtime/query/iteration/index.d.ts.map +1 -1
- package/dist/runtime/query/iteration/index.js +2 -1
- package/dist/runtime/query/iteration/index.js.map +1 -1
- package/dist/runtime/query/iteration/phases/compaction.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/compaction.js +24 -12
- package/dist/runtime/query/iteration/phases/compaction.js.map +1 -1
- package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
- package/dist/runtime/query/iteration/phases/tool-review.js +2 -0
- package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
- package/dist/runtime/query/plugin-hooks.d.ts +13 -0
- package/dist/runtime/query/plugin-hooks.d.ts.map +1 -1
- package/dist/runtime/query/plugin-hooks.js +29 -2
- package/dist/runtime/query/plugin-hooks.js.map +1 -1
- package/dist/types/agent/query.d.ts +8 -0
- package/dist/types/agent/query.d.ts.map +1 -1
- package/dist/types/plugin/index.d.ts +55 -11
- package/dist/types/plugin/index.d.ts.map +1 -1
- package/dist/types/plugin/index.js.map +1 -1
- package/package.json +1 -1
- package/src/agents/QueryAgent.ts +2 -1
- package/src/compaction/hooks.ts +104 -0
- package/src/compaction/manual.ts +117 -4
- package/src/compaction/model-summary.ts +19 -3
- package/src/compaction/verifier.ts +33 -3
- package/src/plugin/hook-context.ts +46 -0
- package/src/plugin/index.ts +14 -0
- package/src/plugin/shell-hook-command.ts +215 -0
- package/src/plugin/shell-hook-tool-names.ts +46 -0
- package/src/plugin/shell-hook.ts +405 -79
- package/src/public-runtime.ts +12 -0
- package/src/public-types.ts +2 -0
- package/src/runtime/query/compact-session.ts +16 -4
- package/src/runtime/query/executor/tool-call-admission.ts +10 -2
- package/src/runtime/query/executor.ts +5 -2
- package/src/runtime/query/finalize-turn.ts +9 -2
- package/src/runtime/query/iteration/index.ts +2 -1
- package/src/runtime/query/iteration/phases/compaction.ts +31 -12
- package/src/runtime/query/iteration/phases/tool-review.ts +2 -0
- package/src/runtime/query/plugin-hooks.ts +32 -2
- package/src/types/agent/query.ts +9 -0
- package/src/types/plugin/index.ts +66 -22
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
* same facts as `NAMZU_HOOK_EVENT`, `NAMZU_SESSION_ID`, `NAMZU_TURN_ID`,
|
|
25
25
|
* `NAMZU_TOOL_NAME` and, when the input names a file, `NAMZU_TOOL_PATH`;
|
|
26
26
|
* `NAMZU_PROJECT_DIR` is the folder the session was started for.
|
|
27
|
-
* `session_start` also sends `source` (`startup` or `
|
|
28
|
-
* `reason` (`exit` or `
|
|
27
|
+
* `session_start` also sends `source` (`startup`, `resume` or `clear`) and
|
|
28
|
+
* `session_end` `reason` (`exit`, `replaced` or `clear`).
|
|
29
29
|
*
|
|
30
30
|
* `session_start` and `session_end` run outside any turn, so they carry no
|
|
31
31
|
* `turn_id` on stdin and no `NAMZU_TURN_ID` in the environment — not even
|
|
@@ -36,7 +36,8 @@
|
|
|
36
36
|
* stdout. The exit codes:
|
|
37
37
|
*
|
|
38
38
|
* - `0` — carry on. On `user_prompt_submit`, `subagent_start` and
|
|
39
|
-
* `session_start`, plain (non-JSON) stdout becomes context for the model
|
|
39
|
+
* `session_start`, plain (non-JSON) stdout becomes context for the model;
|
|
40
|
+
* on `pre_compact` it is instructions for the summariser.
|
|
40
41
|
* - `2` — **block**, read per event: before a tool (`pre_tool_use`) the call is
|
|
41
42
|
* skipped and the model is told why, with the hook's stderr as the reason;
|
|
42
43
|
* on `user_prompt_submit` the turn ends; on `turn_end` and `subagent_stop`
|
|
@@ -107,6 +108,7 @@ import type { PluginId } from '../types/ids/index.js';
|
|
|
107
108
|
import type { PluginCompactionInfo, PluginHookDefinition, PluginHookEvent, PluginHookResult, PluginNotificationInfo, PluginToolBatchCall } from '../types/plugin/index.js';
|
|
108
109
|
import type { Logger } from '../utils/logger.js';
|
|
109
110
|
import type { PluginLifecycleManager } from './lifecycle.js';
|
|
111
|
+
import { type ShellHookToolNames } from './shell-hook-tool-names.js';
|
|
110
112
|
/**
|
|
111
113
|
* The events a shell hook may attach to: the ones an operator can act on
|
|
112
114
|
* from a script. The model-call and iteration events stay in-process —
|
|
@@ -158,6 +160,15 @@ interface ShellHookEntryBase {
|
|
|
158
160
|
* here are the same entry.
|
|
159
161
|
*/
|
|
160
162
|
readonly source?: string;
|
|
163
|
+
/**
|
|
164
|
+
* Which spelling of a tool's name the hook is sent as `tool_name` (and
|
|
165
|
+
* `NAMZU_TOOL_NAME`): `namzu`, the name the tool is registered under
|
|
166
|
+
* (`bash`; the default), or `written`, the capitalised name a person writes
|
|
167
|
+
* in a matcher (`Bash`). A tool with no written name, and every tool-server
|
|
168
|
+
* tool, keeps its own. `matcher` and `if` read either spelling whatever this
|
|
169
|
+
* says. An entry read from the common hook contract is `written`.
|
|
170
|
+
*/
|
|
171
|
+
readonly toolNames?: ShellHookToolNames;
|
|
161
172
|
}
|
|
162
173
|
/** One shell command at one event. */
|
|
163
174
|
export interface ShellHookEntry extends ShellHookEntryBase {
|
|
@@ -217,21 +228,26 @@ export declare const MAX_SHELL_HOOK_TIMEOUT_MS: number;
|
|
|
217
228
|
* Empty or `*` matches everything. A list of names separated by `|` or `,`
|
|
218
229
|
* matches exactly, each part optionally ending in `*` as a prefix (the
|
|
219
230
|
* spelling this adapter has always taken). Anything else is a regular
|
|
220
|
-
* expression, tested unanchored against the name
|
|
221
|
-
* matches
|
|
222
|
-
*
|
|
231
|
+
* expression, tested unanchored against the name. This function called with no
|
|
232
|
+
* name matches only `*`; a hook on an event that has no name (`turn_end`)
|
|
233
|
+
* ignores its matcher and fires (see `createShellHook`).
|
|
234
|
+
*
|
|
235
|
+
* A text that reads both ways (it is a list, and it holds a `.*`
|
|
236
|
+
* that a regular expression reads differently: `Bash.*`,
|
|
237
|
+
* `mcp__.*__search`) fires when either reading matches. A pattern that does
|
|
238
|
+
* not compile cannot be read, and a guard that silently matches nothing is
|
|
239
|
+
* the failure to avoid, so it matches every name; `/hooks` and
|
|
240
|
+
* `namzu doctor` say that it cannot be read (`shellHookMatcherProblem`).
|
|
223
241
|
*
|
|
224
242
|
* Names in a list compare without regard to case. With `tool: true` (the
|
|
225
243
|
* event's name is a tool: the tool events and `permission_request`) they also
|
|
226
|
-
* take the names skills write, the way an entry's `if` does
|
|
227
|
-
*
|
|
228
|
-
*
|
|
229
|
-
*
|
|
230
|
-
*
|
|
231
|
-
*
|
|
232
|
-
*
|
|
233
|
-
*
|
|
234
|
-
* A list part ending in `.*` is also tried as a regular expression.
|
|
244
|
+
* take the names skills write, the way an entry's `if` does, and a tool name
|
|
245
|
+
* compares without its `_` and `-`: `Bash` matches the tool `bash`,
|
|
246
|
+
* `MultiEdit` matches `edit`, `ViewImage` matches `view_image`, `Task` and
|
|
247
|
+
* `Agent` match the sub-agent tool `Agent`, and a prefix such as `Web*`
|
|
248
|
+
* matches `web_fetch`. Where the name is not a tool (a notification's type,
|
|
249
|
+
* an agent's name, a session's `source` or `reason`) no tool alias applies,
|
|
250
|
+
* since those words are not tool names; case is still ignored there.
|
|
235
251
|
*
|
|
236
252
|
* A regular expression is tested, case-sensitively as written, against the
|
|
237
253
|
* real name and, with `tool: true`, against each name skills write for that
|
|
@@ -241,12 +257,25 @@ export declare const MAX_SHELL_HOOK_TIMEOUT_MS: number;
|
|
|
241
257
|
export declare function shellHookMatches(matcher: string | undefined, toolName: string | undefined, options?: {
|
|
242
258
|
readonly tool?: boolean;
|
|
243
259
|
}): boolean;
|
|
260
|
+
/**
|
|
261
|
+
* Why a `matcher` cannot be read, or `undefined` when it can. A matcher that
|
|
262
|
+
* is not a list of names and does not compile as a regular expression fires
|
|
263
|
+
* for every name (see {@link shellHookMatches}).
|
|
264
|
+
*/
|
|
265
|
+
export declare function shellHookMatcherProblem(matcher: string | undefined): string | undefined;
|
|
266
|
+
/**
|
|
267
|
+
* Why an `if` cannot be read, or `undefined` when it can. A filter that
|
|
268
|
+
* cannot be read runs the hook.
|
|
269
|
+
*/
|
|
270
|
+
export declare function shellHookIfProblem(filter: string | undefined): string | undefined;
|
|
244
271
|
/**
|
|
245
272
|
* A hook's `if` against one tool call: `Tool` or `Tool(pattern)`. The tool
|
|
246
|
-
* part
|
|
247
|
-
* `Read`)
|
|
248
|
-
*
|
|
249
|
-
*
|
|
273
|
+
* part takes every spelling a `matcher` takes as a list: names skills write
|
|
274
|
+
* (`Bash`, `Read`, `Agent`), separated by `|` or `,`, a prefix ending in `*`,
|
|
275
|
+
* case ignored; a regular expression is not read here (use `matcher`). A
|
|
276
|
+
* pattern is matched against a shell tool's command line (one command at a
|
|
277
|
+
* time) or, for a file tool, a path the host reads; for a tool with neither
|
|
278
|
+
* the filter cannot be read, which runs the hook.
|
|
250
279
|
*/
|
|
251
280
|
export declare function shellHookIfMatches(filter: string | undefined, toolName: string | undefined, toolInput: unknown, pathFilter?: ShellHookPathFilter): boolean;
|
|
252
281
|
/**
|
|
@@ -290,6 +319,10 @@ export interface ShellHookInput {
|
|
|
290
319
|
readonly prompt?: string;
|
|
291
320
|
readonly compaction?: PluginCompactionInfo;
|
|
292
321
|
readonly toolName?: string;
|
|
322
|
+
/** The spelling `toolName` (and each `toolCalls` name) is sent in; absent is `namzu`. */
|
|
323
|
+
readonly toolNames?: ShellHookToolNames;
|
|
324
|
+
/** The call's id, on the single-call tool events. Sent as `tool_use_id`. */
|
|
325
|
+
readonly toolCallId?: string;
|
|
293
326
|
readonly toolInput?: unknown;
|
|
294
327
|
readonly toolResult?: {
|
|
295
328
|
readonly success: boolean;
|
|
@@ -306,6 +339,8 @@ export interface ShellHookInput {
|
|
|
306
339
|
readonly notification?: PluginNotificationInfo;
|
|
307
340
|
/** On `turn_end` and `subagent_stop`: an earlier answer already kept this turn going. */
|
|
308
341
|
readonly stopHookActive?: boolean;
|
|
342
|
+
/** On `turn_end` and `subagent_stop`: the model's last message of the turn. Sent as `last_assistant_message`. */
|
|
343
|
+
readonly lastAssistantMessage?: string;
|
|
309
344
|
/** The session's transcript file, when the host has one. Sent as `transcript_path`. */
|
|
310
345
|
readonly transcriptPath?: string;
|
|
311
346
|
/** How tool calls are being decided right now. Sent as `permission_mode`. */
|
|
@@ -315,12 +350,19 @@ export interface ShellHookInput {
|
|
|
315
350
|
export declare function shellHookPayload(input: ShellHookInput): string;
|
|
316
351
|
/** Run one hook command to completion, bounded by its deadline and capture. */
|
|
317
352
|
export declare function runShellHook(entry: ShellHookEntry, input: ShellHookInput, signal?: AbortSignal): Promise<ShellHookOutcome>;
|
|
353
|
+
/** The PascalCase spelling of each event name, which a hook's JSON may use. */
|
|
354
|
+
export declare const SHELL_HOOK_PASCAL_EVENT_NAMES: Readonly<Partial<Record<ShellHookEvent, string>>>;
|
|
355
|
+
/** The tool tied to an answer: what a rewrite or a replacement is read against. */
|
|
356
|
+
export interface ShellHookCall {
|
|
357
|
+
readonly toolName?: string;
|
|
358
|
+
readonly toolInput?: unknown;
|
|
359
|
+
}
|
|
318
360
|
/**
|
|
319
361
|
* The verdict, from the outcome and the event. Pure apart from the logger,
|
|
320
362
|
* so the mapping — the part that decides what the model is told — is
|
|
321
363
|
* testable without a process.
|
|
322
364
|
*/
|
|
323
|
-
export declare function shellHookVerdict(event: ShellHookEvent, entry: ShellHookHandler, outcome: ShellHookOutcome, log?: Logger): PluginHookResult;
|
|
365
|
+
export declare function shellHookVerdict(event: ShellHookEvent, entry: ShellHookHandler, outcome: ShellHookOutcome, log?: Logger, call?: ShellHookCall): PluginHookResult;
|
|
324
366
|
/** A short name for a hook in logs: its command, its url, or the start of its prompt. */
|
|
325
367
|
export declare function describeShellHook(entry: ShellHookHandler): string;
|
|
326
368
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell-hook.d.ts","sourceRoot":"","sources":["../../src/plugin/shell-hook.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"shell-hook.d.ts","sourceRoot":"","sources":["../../src/plugin/shell-hook.ts"],"names":[],"mappings":"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"}
|