@namzu/sdk 63.0.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 +60 -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 +8 -0
- package/dist/runtime/query/executor.d.ts.map +1 -1
- package/dist/runtime/query/executor.js +17 -7
- 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 +4 -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/runtime/query/turn/outcome-ledger.d.ts +4 -0
- package/dist/runtime/query/turn/outcome-ledger.d.ts.map +1 -1
- package/dist/runtime/query/turn/outcome-ledger.js +2 -1
- package/dist/runtime/query/turn/outcome-ledger.js.map +1 -1
- package/dist/tools/builtins/bash.d.ts.map +1 -1
- package/dist/tools/builtins/bash.js +10 -2
- package/dist/tools/builtins/bash.js.map +1 -1
- package/dist/tools/coordinator/index.d.ts.map +1 -1
- package/dist/tools/coordinator/index.js +1 -0
- package/dist/tools/coordinator/index.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/dist/types/session/events.d.ts +2 -0
- package/dist/types/session/events.d.ts.map +1 -1
- package/dist/types/session/events.js.map +1 -1
- package/dist/types/tool/index.d.ts +13 -1
- package/dist/types/tool/index.d.ts.map +1 -1
- package/dist/types/tool/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 +33 -8
- package/src/runtime/query/finalize-turn.ts +9 -2
- package/src/runtime/query/iteration/index.ts +4 -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/runtime/query/turn/outcome-ledger.ts +6 -1
- package/src/tools/builtins/bash.ts +16 -3
- package/src/tools/coordinator/index.ts +1 -0
- package/src/types/agent/query.ts +9 -0
- package/src/types/plugin/index.ts +66 -22
- package/src/types/session/events.ts +2 -0
- package/src/types/tool/index.ts +14 -1
|
@@ -246,12 +246,36 @@ export interface PluginModelResponse {
|
|
|
246
246
|
|
|
247
247
|
/** What a compaction hook is shown about the pass. */
|
|
248
248
|
export interface PluginCompactionInfo {
|
|
249
|
-
/**
|
|
250
|
-
|
|
249
|
+
/**
|
|
250
|
+
* `threshold`: the estimate crossed the line. `overflow`: the provider
|
|
251
|
+
* rejected the prompt. `manual`: a host asked for the pass outside a turn
|
|
252
|
+
* (a person's `/compact`, a summarised span, an idle pass); test `trigger`
|
|
253
|
+
* to tell a person's request from the kernel's own.
|
|
254
|
+
*/
|
|
255
|
+
readonly reason: 'threshold' | 'overflow' | 'manual'
|
|
251
256
|
readonly tokensBefore: number
|
|
252
257
|
/** Present on `post_compact`. */
|
|
253
258
|
readonly tokensAfter?: number
|
|
254
259
|
readonly contextWindowTokens: number
|
|
260
|
+
/**
|
|
261
|
+
* Who started the pass: `manual` for one a person asked for (`/compact`,
|
|
262
|
+
* summarising a span), `auto` for every pass the kernel or a host started
|
|
263
|
+
* on its own (the threshold, a provider overflow, an idle pass). The
|
|
264
|
+
* kernel always sets it; it is optional only so a host that builds this
|
|
265
|
+
* context by hand keeps compiling. A matcher on these two events tests it.
|
|
266
|
+
*/
|
|
267
|
+
readonly trigger?: 'manual' | 'auto'
|
|
268
|
+
/**
|
|
269
|
+
* On `pre_compact`: what the person typed with the command, or `null` when
|
|
270
|
+
* they typed nothing or the pass is not one a person asked for.
|
|
271
|
+
*/
|
|
272
|
+
readonly instructions?: string | null
|
|
273
|
+
/**
|
|
274
|
+
* On `post_compact`: the summary the pass wrote, cut to
|
|
275
|
+
* `MAX_COMPACTION_SUMMARY_HOOK_CHARS`. Absent when the pass wrote none (a
|
|
276
|
+
* context reducer shed the history, or the pass shed nothing).
|
|
277
|
+
*/
|
|
278
|
+
readonly summary?: string
|
|
255
279
|
}
|
|
256
280
|
|
|
257
281
|
/** One call in a `post_tool_batch` hook's context. */
|
|
@@ -275,19 +299,22 @@ export interface PluginNotificationInfo {
|
|
|
275
299
|
}
|
|
276
300
|
|
|
277
301
|
/**
|
|
278
|
-
* Why a
|
|
302
|
+
* Why a conversation began, on `session_start`: `startup` for a conversation
|
|
279
303
|
* with no earlier turn, `resume` for one that already had turns (a resumed
|
|
280
|
-
* conversation, a `--continue`, or a session rebuilt under a running
|
|
304
|
+
* conversation, a `--continue`, a fork, or a session rebuilt under a running
|
|
305
|
+
* one), `clear` for the empty conversation a host opens when the person
|
|
306
|
+
* clears the old one (`/clear`, `/new`).
|
|
281
307
|
*/
|
|
282
|
-
export type PluginSessionSource = 'startup' | 'resume'
|
|
308
|
+
export type PluginSessionSource = 'startup' | 'resume' | 'clear'
|
|
283
309
|
|
|
284
310
|
/**
|
|
285
|
-
* Why a
|
|
286
|
-
* with it (the process ends, the person quits), `replaced` when the
|
|
287
|
-
*
|
|
288
|
-
* conversation opened)
|
|
311
|
+
* Why a conversation ended, on `session_end`: `exit` when the host is
|
|
312
|
+
* finishing with it (the process ends, the person quits), `replaced` when the
|
|
313
|
+
* host moves to another session or conversation in its place (a model or
|
|
314
|
+
* account switch, another conversation opened or forked), `clear` when the
|
|
315
|
+
* person cleared it and a new, empty conversation begins (`/clear`, `/new`).
|
|
289
316
|
*/
|
|
290
|
-
export type PluginSessionEndReason = 'exit' | 'replaced'
|
|
317
|
+
export type PluginSessionEndReason = 'exit' | 'replaced' | 'clear'
|
|
291
318
|
|
|
292
319
|
export interface PluginHookContext {
|
|
293
320
|
/** The turn the hook fired in. Absent on `session_start` and `session_end`. */
|
|
@@ -311,6 +338,14 @@ export interface PluginHookContext {
|
|
|
311
338
|
/** The pass, on `pre_compact` and `post_compact`. */
|
|
312
339
|
readonly compaction?: PluginCompactionInfo
|
|
313
340
|
readonly toolName?: string
|
|
341
|
+
/**
|
|
342
|
+
* The id of the call, on `pre_tool_use`, `post_tool_use`,
|
|
343
|
+
* `post_tool_use_failure`, `permission_request` and `permission_denied`: the
|
|
344
|
+
* same id `post_tool_batch` carries as `toolCallId`, so a hook can pair a
|
|
345
|
+
* before with an after. Absent on a call a tool makes through
|
|
346
|
+
* `dispatchTool` (it has no model-issued id).
|
|
347
|
+
*/
|
|
348
|
+
readonly toolCallId?: string
|
|
314
349
|
readonly toolInput?: unknown
|
|
315
350
|
readonly toolResult?: ToolResult
|
|
316
351
|
/** The calls of one model step with their outcomes, on `post_tool_batch`. */
|
|
@@ -328,6 +363,13 @@ export interface PluginHookContext {
|
|
|
328
363
|
* keep the model working until the turn's own limits stop it.
|
|
329
364
|
*/
|
|
330
365
|
readonly stopHookActive?: boolean
|
|
366
|
+
/**
|
|
367
|
+
* On `turn_end` and `subagent_stop`: the text of the model's last message
|
|
368
|
+
* of the turn, cut to `MAX_LAST_MESSAGE_HOOK_CHARS`. Absent when the turn
|
|
369
|
+
* produced no text (it ended on a tool call, was interrupted before the
|
|
370
|
+
* model wrote anything, or failed).
|
|
371
|
+
*/
|
|
372
|
+
readonly lastAssistantMessage?: string
|
|
331
373
|
readonly iteration?: number
|
|
332
374
|
/**
|
|
333
375
|
* Why the turn was stopped, on `turn_interrupt`.
|
|
@@ -501,18 +543,20 @@ export type PluginHookResultFor<E extends PluginHookEvent> = E extends 'user_pro
|
|
|
501
543
|
? Extract<PluginHookResult, { action: 'continue' | 'error' }>
|
|
502
544
|
: E extends 'permission_request'
|
|
503
545
|
? Extract<PluginHookResult, { action: 'continue' | 'skip' }>
|
|
504
|
-
: E extends '
|
|
505
|
-
? Extract<PluginHookResult, { action: 'continue' | 'skip' | 'error' }>
|
|
506
|
-
: E extends '
|
|
507
|
-
? Extract<PluginHookResult, { action: 'continue' | '
|
|
508
|
-
: E extends
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
546
|
+
: E extends 'pre_compact'
|
|
547
|
+
? Extract<PluginHookResult, { action: 'continue' | 'annotate' | 'skip' | 'error' }>
|
|
548
|
+
: E extends 'turn_end' | 'subagent_stop'
|
|
549
|
+
? Extract<PluginHookResult, { action: 'continue' | 'skip' | 'error' }>
|
|
550
|
+
: E extends 'session_start'
|
|
551
|
+
? Extract<PluginHookResult, { action: 'continue' | 'annotate' }>
|
|
552
|
+
: E extends
|
|
553
|
+
| 'turn_interrupt'
|
|
554
|
+
| 'session_end'
|
|
555
|
+
| 'notification'
|
|
556
|
+
| 'turn_failure'
|
|
557
|
+
| 'permission_denied'
|
|
558
|
+
? Extract<PluginHookResult, { action: 'continue' }>
|
|
559
|
+
: Extract<PluginHookResult, { action: 'continue' | 'error' }>
|
|
516
560
|
|
|
517
561
|
/** The event and its handler verdict stay correlated, including in hook arrays. */
|
|
518
562
|
export type PluginHookDefinition<E extends PluginHookEvent = PluginHookEvent> =
|
|
@@ -435,6 +435,8 @@ type CoreSessionEvent =
|
|
|
435
435
|
message: string
|
|
436
436
|
/** Optional completion in [0,1] when the tool genuinely knows it. */
|
|
437
437
|
fraction?: number
|
|
438
|
+
/** Lines of output the call has produced so far, when the tool counts them (a shell command). Cumulative: the newest report wins. */
|
|
439
|
+
outputLines?: number
|
|
438
440
|
}
|
|
439
441
|
/** Provider-executed activity, retained as evidence rather than a local tool request. */
|
|
440
442
|
| {
|
package/src/types/tool/index.ts
CHANGED
|
@@ -940,7 +940,13 @@ export interface ToolContext {
|
|
|
940
940
|
*
|
|
941
941
|
* Absent when the executing surface has no event stream to write to.
|
|
942
942
|
*/
|
|
943
|
-
report?: (message: string, fraction?: number) => void
|
|
943
|
+
report?: (message: string, fraction?: number, details?: ToolProgressDetails) => void
|
|
944
|
+
}
|
|
945
|
+
|
|
946
|
+
/** Facts a tool can attach to a progress report besides its words. */
|
|
947
|
+
export interface ToolProgressDetails {
|
|
948
|
+
/** Lines of output the call has produced so far, counted by the tool itself (never by a renderer from what it was shown). */
|
|
949
|
+
readonly outputLines?: number
|
|
944
950
|
}
|
|
945
951
|
|
|
946
952
|
export interface ToolResult {
|
|
@@ -1009,6 +1015,13 @@ export interface ToolResult {
|
|
|
1009
1015
|
* the child's turn fails with {@link ToolHandoff.reason} instead.
|
|
1010
1016
|
*/
|
|
1011
1017
|
handoff?: ToolHandoff
|
|
1018
|
+
/**
|
|
1019
|
+
* This call only started work that goes on after it returned (a sub-agent
|
|
1020
|
+
* launched in the background, or one whose wait was released): the call itself
|
|
1021
|
+
* changed nothing. The turn's outcome record does not count it as a call that
|
|
1022
|
+
* may have changed files; what the started work does is its own record.
|
|
1023
|
+
*/
|
|
1024
|
+
launched?: true
|
|
1012
1025
|
/**
|
|
1013
1026
|
* What this call did, as typed fields for the PERSON's view: the exit code
|
|
1014
1027
|
* and the two streams of a command, the path and size of a read, whether a
|