@kodax-ai/kodax 0.7.41 → 0.7.43
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 +119 -3
- package/README.md +214 -286
- package/README_CN.md +173 -277
- package/dist/chunks/chunk-7G5PSL6C.js +830 -0
- package/dist/chunks/{chunk-6OB4AJOM.js → chunk-IYSK7LUK.js} +1 -1
- package/dist/chunks/chunk-K75O2CAE.js +31 -0
- package/dist/chunks/chunk-UG4262JI.js +502 -0
- package/dist/chunks/chunk-VHKAJDQD.js +425 -0
- package/dist/chunks/chunk-YMRZBS4G.js +2 -0
- package/dist/chunks/{compaction-config-LT5PEXPT.js → compaction-config-3E57ABCT.js} +1 -1
- package/dist/chunks/{construction-bootstrap-HBCWJFHC.js → construction-bootstrap-JR63KI5N.js} +4 -4
- package/dist/chunks/dist-KWHUKXEL.js +2 -0
- package/dist/chunks/dist-XANXEVTU.js +2 -0
- package/dist/chunks/utils-HQ2QCKJA.js +2 -0
- package/dist/index.d.ts +15 -10
- package/dist/index.js +5 -5
- package/dist/kodax_cli.js +1084 -1054
- package/dist/sdk-agent.d.ts +853 -135
- package/dist/sdk-agent.js +1 -1
- package/dist/sdk-coding.d.ts +932 -981
- package/dist/sdk-coding.js +1 -1
- package/dist/sdk-llm.d.ts +8 -5
- package/dist/sdk-llm.js +1 -1
- package/dist/sdk-mcp.d.ts +17 -0
- package/dist/sdk-mcp.js +2 -0
- package/dist/sdk-repl.d.ts +343 -10
- package/dist/sdk-repl.js +2 -1
- package/dist/sdk-session.d.ts +176 -0
- package/dist/sdk-session.js +2 -0
- package/dist/sdk-skills.d.ts +72 -4
- package/dist/sdk-skills.js +1 -1
- package/dist/types-chunks/{cost-tracker.d-C4dMlQuV.d.ts → base.d-FUJahC0i.d.ts} +22 -112
- package/dist/types-chunks/{bash-prefix-extractor.d-B2iliwdi.d.ts → bash-prefix-extractor.d-DMrGImMl.d.ts} +266 -228
- package/dist/types-chunks/capability.d-3C62G8Eq.d.ts +39 -0
- package/dist/types-chunks/config.d-BfJUXxC0.d.ts +41 -0
- package/dist/types-chunks/cost-tracker.d-wRtyEW9d.d.ts +110 -0
- package/dist/types-chunks/{history-cleanup.d-q1vAvCss.d.ts → file-tracker.d-zaLZeNBK.d.ts} +532 -15
- package/dist/types-chunks/manager.d-87belpiS.d.ts +370 -0
- package/dist/types-chunks/{resolver.d-BwD6TKz7.d.ts → resolver.d-CA68_NeH.d.ts} +150 -5
- package/dist/types-chunks/storage.d-DPAEX7zS.d.ts +115 -0
- package/dist/types-chunks/{capability.d-BxNgd1-c.d.ts → types.d-B1uGoVTE.d.ts} +72 -40
- package/dist/types-chunks/{instance-discovery.d-DZhp77vb.d.ts → types.d-CKJtjo-6.d.ts} +168 -258
- package/dist/types-chunks/types.d-mM8vqvhT.d.ts +254 -0
- package/dist/types-chunks/{storage.d-Bv9T99Qu.d.ts → utils.d-DkLZD_wa.d.ts} +38 -112
- package/package.json +15 -6
- package/dist/chunks/chunk-5TFLMGER.js +0 -2
- package/dist/chunks/chunk-6QO6HWGU.js +0 -30
- package/dist/chunks/chunk-EQ5DGS2W.js +0 -14
- package/dist/chunks/chunk-HYWVRTFA.js +0 -1233
- package/dist/chunks/chunk-SX2IS5JP.js +0 -16
- package/dist/chunks/chunk-ZPJPNLBK.js +0 -462
- package/dist/chunks/dist-M57GIWR4.js +0 -2
- package/dist/chunks/dist-V3BS2NKB.js +0 -2
- package/dist/chunks/utils-FAFUQJ2A.js +0 -2
|
@@ -1,6 +1,110 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { K as
|
|
1
|
+
import { t as KodaXSessionScope, u as KodaXSessionStorage, f as KodaXJsonValue, h as KodaXSessionArtifactLedgerEntry, S as SessionErrorMetadata } from './types.d-mM8vqvhT.js';
|
|
2
|
+
import { m as KodaXMessage, W as KodaXTokenUsage, D as KodaXReasoningMode, k as KodaXHarnessProfile, R as KodaXTaskWorkIntent, H as KodaXReviewScale, N as KodaXTaskComplexity, a as KodaXAmaFanoutClass, P as KodaXTaskRoutingDecision, Q as KodaXTaskType, I as KodaXRiskLevel, i as KodaXExecutionMode, c as KodaXAmaProfile, d as KodaXAmaTactic, b as KodaXAmaFanoutPolicy } from './types.d-B1uGoVTE.js';
|
|
3
|
+
import { k as CompactionUpdate, o as Guardrail, D as DiscoveredInstance, C as ChildTaskRegistry, a1 as TaskAbortRegistry, K as RunnerToolCall, a4 as ToolGuardrail } from './types.d-CKJtjo-6.js';
|
|
4
|
+
import { M as McpConnectMode, a as McpServerConfig, b as McpServersConfig, c as McpTransportKind } from './config.d-BfJUXxC0.js';
|
|
5
|
+
import { C as CapabilityKind, b as CapabilityResult } from './capability.d-3C62G8Eq.js';
|
|
6
|
+
import { K as KodaXBaseProvider } from './base.d-FUJahC0i.js';
|
|
7
|
+
import { a as CostTracker } from './cost-tracker.d-wRtyEW9d.js';
|
|
8
|
+
|
|
9
|
+
/** One tool-call breadcrumb. Captures only the name + a 60-char input
|
|
10
|
+
* hint so the snapshot stays compact under fan-out. Mirrors the
|
|
11
|
+
* `inputHint` extraction in `buildChildEvents.onToolUseStart`. */
|
|
12
|
+
interface ChildToolCallBreadcrumb {
|
|
13
|
+
readonly iteration: number;
|
|
14
|
+
readonly toolName: string;
|
|
15
|
+
/** Truncated path/pattern/command, ≤60 chars. May be empty when the
|
|
16
|
+
* tool input has no obvious key field. */
|
|
17
|
+
readonly inputHint: string;
|
|
18
|
+
/** Monotonic wall-clock ms at the time the tool call started. */
|
|
19
|
+
readonly startedAt: number;
|
|
20
|
+
}
|
|
21
|
+
/** Snapshot status. `running` is the initial state on dispatch. The
|
|
22
|
+
* three terminal states map from the child promise outcome:
|
|
23
|
+
* - `completed` — child returned success
|
|
24
|
+
* - `failed` — child returned non-success OR threw (non-AbortError)
|
|
25
|
+
* - `aborted` — child threw an AbortError (parent or task_stop fired)
|
|
26
|
+
*/
|
|
27
|
+
type ChildProgressStatus = 'running' | 'completed' | 'failed' | 'aborted';
|
|
28
|
+
interface ChildProgressSnapshot {
|
|
29
|
+
readonly childId: string;
|
|
30
|
+
/** Mutable in the writer (dispatch-child-tasks) — terminal status is
|
|
31
|
+
* set once in the inner-IIFE `.finally` block. Readers
|
|
32
|
+
* (task-output tool) treat it as authoritative. */
|
|
33
|
+
status: ChildProgressStatus;
|
|
34
|
+
/** Monotonic wall-clock ms at dispatch. */
|
|
35
|
+
readonly startedAt: number;
|
|
36
|
+
/** Monotonic wall-clock ms at terminal. Undefined while `status===
|
|
37
|
+
* 'running'`. */
|
|
38
|
+
endedAt?: number;
|
|
39
|
+
/** Iterations consumed by the child agent. Updated by
|
|
40
|
+
* `snapshotUpdater({kind:'iteration', iteration, max})` from
|
|
41
|
+
* `buildChildEvents.onIterationStart`. */
|
|
42
|
+
iterations: number;
|
|
43
|
+
/** Iteration ceiling forwarded from `ChildExecutorOptions
|
|
44
|
+
* .maxIterationsPerChild`. */
|
|
45
|
+
maxIterations: number;
|
|
46
|
+
/** Mutable ring buffer; writer must respect `RECENT_TOOL_CALLS_RING_CAP`
|
|
47
|
+
* via `pushBreadcrumb`. */
|
|
48
|
+
recentToolCalls: ChildToolCallBreadcrumb[];
|
|
49
|
+
/** Populated at terminal (any of `completed` / `failed` / `aborted`)
|
|
50
|
+
* with the same pre-guardrail `rawSummary` string that
|
|
51
|
+
* `dispatch-child-tasks.ts` produces for the `<task-completed>` body.
|
|
52
|
+
* For success-empty / failed-empty paths this is the diagnostic
|
|
53
|
+
* envelope (mode= ... iterations=... etc.) so post-completion
|
|
54
|
+
* `task_output` reads stay in lock-step with the banner the Worker
|
|
55
|
+
* already saw. */
|
|
56
|
+
finalText?: string;
|
|
57
|
+
/** Optional dispatcher role (`scout` / `worker` / `generator`),
|
|
58
|
+
* captured at init so a debug-style `task_output` peek can correlate
|
|
59
|
+
* the child with the parent fan-out class. Not surfaced in the
|
|
60
|
+
* envelope; reserved for future tracing. */
|
|
61
|
+
readonly parentRole?: string;
|
|
62
|
+
/** Read-only flag forwarded from the dispatch bundle. Same rationale
|
|
63
|
+
* as `parentRole` — currently captured for future surfacing. */
|
|
64
|
+
readonly readOnly?: boolean;
|
|
65
|
+
/**
|
|
66
|
+
* FEATURE_191 — registered specialist agent name when the dispatch
|
|
67
|
+
* routed through a `subagent_type` argument. `undefined` for generic
|
|
68
|
+
* anonymous children. Surfaced by `task_output` so post-mortem peeks
|
|
69
|
+
* can identify which specialist owned the child.
|
|
70
|
+
*/
|
|
71
|
+
readonly specialistName?: string;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/** Result of a cache lookup. */
|
|
75
|
+
type ReadStateLookup = {
|
|
76
|
+
readonly kind: 'miss';
|
|
77
|
+
} | {
|
|
78
|
+
readonly kind: 'hit';
|
|
79
|
+
/** Wall-clock time (ms since epoch) of the prior matching read. */
|
|
80
|
+
readonly previousReadAtMs: number;
|
|
81
|
+
};
|
|
82
|
+
interface ReadFileStateCache {
|
|
83
|
+
/**
|
|
84
|
+
* Have we read this exact `(filePath, offset, limit)` in this task,
|
|
85
|
+
* with no mtime change since? `'hit'` means yes — caller should
|
|
86
|
+
* return a stub instead of re-reading the file off disk.
|
|
87
|
+
*
|
|
88
|
+
* On stat failure (file deleted / permission denied between record
|
|
89
|
+
* and lookup), returns `'miss'` so the read tool runs its own stat
|
|
90
|
+
* and reports the right error to the LLM rather than serving a stale
|
|
91
|
+
* stub.
|
|
92
|
+
*/
|
|
93
|
+
lookup(filePath: string, offset: number, limit: number): ReadStateLookup;
|
|
94
|
+
/**
|
|
95
|
+
* Record a successful read at this `(filePath, offset, limit)` with
|
|
96
|
+
* the mtime observed at read time. The mtime is supplied by the
|
|
97
|
+
* caller (the read tool already stats the file) so the cache does
|
|
98
|
+
* not pay a second stat call.
|
|
99
|
+
*/
|
|
100
|
+
record(filePath: string, offset: number, limit: number, mtimeMs: number): void;
|
|
101
|
+
/** Drop all entries for this file. Called by Edit / Write / MultiEdit on success. */
|
|
102
|
+
forget(filePath: string): void;
|
|
103
|
+
/** Drop everything. Called by the compaction post-hook. */
|
|
104
|
+
clear(): void;
|
|
105
|
+
/** Test/diagnostic accessor — number of distinct files currently cached. */
|
|
106
|
+
size(): number;
|
|
107
|
+
}
|
|
4
108
|
|
|
5
109
|
/** Result of a stale-check against the current on-disk content. */
|
|
6
110
|
type StaleCheckResult = {
|
|
@@ -70,7 +174,9 @@ interface ContentHashCache {
|
|
|
70
174
|
|
|
71
175
|
interface TodoInit {
|
|
72
176
|
readonly id: string;
|
|
73
|
-
|
|
177
|
+
/** v0.7.42 — see TodoItem.subject JSDoc. */
|
|
178
|
+
readonly subject: string;
|
|
179
|
+
readonly description?: string;
|
|
74
180
|
readonly owner?: string;
|
|
75
181
|
readonly sourceObligationIndex?: number;
|
|
76
182
|
/**
|
|
@@ -96,9 +202,12 @@ interface TodoInit {
|
|
|
96
202
|
/**
|
|
97
203
|
* FEATURE_170 v0.7.41 — input shape for `add()`. No `id` (auto-generated
|
|
98
204
|
* by the store), no `status` (always created as `pending`).
|
|
205
|
+
*
|
|
206
|
+
* v0.7.42 — `content` renamed to `subject` + optional `description`.
|
|
99
207
|
*/
|
|
100
208
|
interface TodoAddSeed {
|
|
101
|
-
readonly
|
|
209
|
+
readonly subject: string;
|
|
210
|
+
readonly description?: string;
|
|
102
211
|
readonly activeForm?: string;
|
|
103
212
|
readonly evaluator?: TodoEvaluatorHint;
|
|
104
213
|
readonly owner?: string;
|
|
@@ -107,9 +216,22 @@ interface TodoAddSeed {
|
|
|
107
216
|
}
|
|
108
217
|
/**
|
|
109
218
|
* FEATURE_170 v0.7.41 — input shape for `patch()`. Every field optional;
|
|
110
|
-
* only those present in the patch object are applied.
|
|
111
|
-
*
|
|
112
|
-
*
|
|
219
|
+
* only those present in the patch object are applied.
|
|
220
|
+
*
|
|
221
|
+
* Metadata patch semantics (mirrors React setState mental model):
|
|
222
|
+
* - `metadata: undefined` (omitted) → preserve existing metadata as-is.
|
|
223
|
+
* - `metadata: null` (explicit) → CLEAR all metadata.
|
|
224
|
+
* - `metadata: {key: value}` → shallow-merge `key=value` into
|
|
225
|
+
* existing metadata.
|
|
226
|
+
* - `metadata: {key: null}` → v0.7.42 — DELETE that key from
|
|
227
|
+
* existing metadata. Other existing
|
|
228
|
+
* keys not mentioned in the patch
|
|
229
|
+
* are preserved. If all keys end up
|
|
230
|
+
* removed, the metadata field is
|
|
231
|
+
* set back to `undefined` so the
|
|
232
|
+
* JSON envelope stays compact.
|
|
233
|
+
* - Mixed (`{keyA: null, keyB: v}`) → deletes keyA, sets keyB. Useful
|
|
234
|
+
* for atomic "rename a flag" patches.
|
|
113
235
|
*
|
|
114
236
|
* `owner` and `sourceObligationIndex` are intentionally NOT patchable
|
|
115
237
|
* post-creation — they identify provenance (which dispatch_child_task
|
|
@@ -118,11 +240,20 @@ interface TodoAddSeed {
|
|
|
118
240
|
* seed and treat them as immutable thereafter.
|
|
119
241
|
*/
|
|
120
242
|
interface TodoPatch {
|
|
121
|
-
|
|
243
|
+
/** v0.7.42 — `content` renamed; patch the row label. */
|
|
244
|
+
readonly subject?: string;
|
|
245
|
+
/** v0.7.42 — patch the optional fuller description. Empty string clears. */
|
|
246
|
+
readonly description?: string;
|
|
122
247
|
readonly activeForm?: string;
|
|
123
248
|
readonly status?: TodoStatus;
|
|
124
249
|
readonly note?: string;
|
|
125
250
|
readonly evaluator?: TodoEvaluatorHint;
|
|
251
|
+
/**
|
|
252
|
+
* Opaque metadata patch. See type-level JSDoc for the four semantics
|
|
253
|
+
* (preserve / clear-all / merge / per-key-delete). Individual values
|
|
254
|
+
* inside the object MAY be `null` (v0.7.42 — interpreted as "delete
|
|
255
|
+
* this key from existing metadata").
|
|
256
|
+
*/
|
|
126
257
|
readonly metadata?: Record<string, unknown> | null;
|
|
127
258
|
}
|
|
128
259
|
interface TodoStore {
|
|
@@ -192,84 +323,6 @@ interface TodoStore {
|
|
|
192
323
|
reset(): void;
|
|
193
324
|
}
|
|
194
325
|
|
|
195
|
-
/**
|
|
196
|
-
* Telemetry payload for the `events.onEvaluatorFallbackSynthesized`
|
|
197
|
-
* event. Fires AFTER `recorder.verdict` is written but BEFORE
|
|
198
|
-
* `formatDeterministicEvaluatorResult` builds the final `KodaXResult`,
|
|
199
|
-
* so consumers see the synth event in causal order before the result.
|
|
200
|
-
*/
|
|
201
|
-
interface EvaluatorFallbackSynthesizedInfo {
|
|
202
|
-
/**
|
|
203
|
-
* Number of retries that were attempted before falling back. `0` means
|
|
204
|
-
* the very first detection of `verdict missing` led to fallback with
|
|
205
|
-
* no retry (only possible if `cap === 0`, which we don't allow — but
|
|
206
|
-
* keeping the field non-optional to keep the telemetry shape stable).
|
|
207
|
-
*/
|
|
208
|
-
readonly retriesAttempted: number;
|
|
209
|
-
/** The cap value resolved for this run's model alias. */
|
|
210
|
-
readonly cap: number;
|
|
211
|
-
/**
|
|
212
|
-
* The model alias the run used, if known. `undefined` when the run
|
|
213
|
-
* dispatcher didn't surface the alias to the outer loop.
|
|
214
|
-
*/
|
|
215
|
-
readonly modelAlias: string | undefined;
|
|
216
|
-
/**
|
|
217
|
-
* The last assistant text the Evaluator produced (the text-only
|
|
218
|
-
* response that triggered B2). Stored verbatim so post-hoc audit can
|
|
219
|
-
* see what the model said when it failed to terminate.
|
|
220
|
-
*/
|
|
221
|
-
readonly userFacingText: string;
|
|
222
|
-
/** Stable reason string written into the synthesized verdict. */
|
|
223
|
-
readonly reason: string;
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
/**
|
|
227
|
-
* @kodax-ai/agent Compaction Types
|
|
228
|
-
*/
|
|
229
|
-
|
|
230
|
-
interface CompactionDetails {
|
|
231
|
-
readFiles: string[];
|
|
232
|
-
modifiedFiles: string[];
|
|
233
|
-
}
|
|
234
|
-
interface CompactionAnchor {
|
|
235
|
-
summary: string;
|
|
236
|
-
tokensBefore: number;
|
|
237
|
-
tokensAfter: number;
|
|
238
|
-
entriesRemoved: number;
|
|
239
|
-
reason: string;
|
|
240
|
-
artifactLedgerId?: string;
|
|
241
|
-
details?: CompactionDetails;
|
|
242
|
-
memorySeed?: KodaXCompactMemorySeed;
|
|
243
|
-
}
|
|
244
|
-
interface CompactionUpdate {
|
|
245
|
-
anchor?: CompactionAnchor;
|
|
246
|
-
artifactLedger?: KodaXSessionArtifactLedgerEntry[];
|
|
247
|
-
memorySeed?: KodaXCompactMemorySeed;
|
|
248
|
-
/**
|
|
249
|
-
* FEATURE_072: ledger-summary + file-content messages produced by
|
|
250
|
-
* `buildPostCompactAttachments` + `buildFileContentMessages`. Agent.ts
|
|
251
|
-
* passes these separately from the kept-tail messages so REPL-side
|
|
252
|
-
* `applySessionCompaction` can store them natively on the CompactionEntry
|
|
253
|
-
* rather than inlining them as loose `[Post-compact: ...]` system messages
|
|
254
|
-
* in lineage. Agent.ts keeps inlining them into its local flat `messages`
|
|
255
|
-
* via `injectPostCompactAttachments` (P4 belt-and-suspenders); the lineage
|
|
256
|
-
* is the persistence source of truth.
|
|
257
|
-
*/
|
|
258
|
-
postCompactAttachments?: readonly KodaXMessage[];
|
|
259
|
-
}
|
|
260
|
-
interface CompactionResult {
|
|
261
|
-
compacted: boolean;
|
|
262
|
-
messages: KodaXMessage[];
|
|
263
|
-
summary?: string;
|
|
264
|
-
tokensBefore: number;
|
|
265
|
-
tokensAfter: number;
|
|
266
|
-
entriesRemoved: number;
|
|
267
|
-
details?: CompactionDetails;
|
|
268
|
-
artifactLedger?: KodaXSessionArtifactLedgerEntry[];
|
|
269
|
-
anchor?: CompactionAnchor;
|
|
270
|
-
memorySeed?: KodaXCompactMemorySeed;
|
|
271
|
-
}
|
|
272
|
-
|
|
273
326
|
/**
|
|
274
327
|
* FEATURE_093 (v0.7.24): minimal contract interface for the coding extension
|
|
275
328
|
* runtime. Extracted so `@kodax-ai/coding/src/types.ts` can reference the
|
|
@@ -430,46 +483,6 @@ interface ProviderResiliencePolicy extends ProviderResilienceConfig {
|
|
|
430
483
|
provider: string;
|
|
431
484
|
}
|
|
432
485
|
|
|
433
|
-
/**
|
|
434
|
-
* MCP server configuration shapes.
|
|
435
|
-
*
|
|
436
|
-
* FEATURE_082 (v0.7.24): moved from `@kodax-ai/coding/src/types.ts`. Kept as the
|
|
437
|
-
* `Mcp*` names here; the `KodaXMcp*` aliases continue to re-export from
|
|
438
|
-
* `@kodax-ai/coding` for backward compatibility.
|
|
439
|
-
*/
|
|
440
|
-
type McpTransportKind = 'stdio' | 'sse' | 'streamable-http';
|
|
441
|
-
type McpConnectMode = 'lazy' | 'prewarm' | 'disabled';
|
|
442
|
-
interface McpServerConfig {
|
|
443
|
-
/** Transport type. Defaults to 'stdio' when omitted. */
|
|
444
|
-
type?: McpTransportKind;
|
|
445
|
-
/** stdio: executable command. */
|
|
446
|
-
command?: string;
|
|
447
|
-
/** stdio: command arguments. */
|
|
448
|
-
args?: string[];
|
|
449
|
-
/** stdio: working directory for the spawned process. */
|
|
450
|
-
cwd?: string;
|
|
451
|
-
/** stdio: extra environment variables for the spawned process. */
|
|
452
|
-
env?: Record<string, string>;
|
|
453
|
-
/** sse / streamable-http: server endpoint URL. */
|
|
454
|
-
url?: string;
|
|
455
|
-
/** sse / streamable-http: extra HTTP headers (e.g. Authorization). */
|
|
456
|
-
headers?: Record<string, string>;
|
|
457
|
-
connect?: McpConnectMode;
|
|
458
|
-
startupTimeoutMs?: number;
|
|
459
|
-
requestTimeoutMs?: number;
|
|
460
|
-
/** OAuth 2.0 configuration for authenticated MCP servers. */
|
|
461
|
-
auth?: {
|
|
462
|
-
readonly type: 'oauth2';
|
|
463
|
-
readonly clientId: string;
|
|
464
|
-
readonly authorizationUrl: string;
|
|
465
|
-
readonly tokenUrl: string;
|
|
466
|
-
readonly scopes?: readonly string[];
|
|
467
|
-
readonly redirectPort?: number;
|
|
468
|
-
};
|
|
469
|
-
}
|
|
470
|
-
/** Flat map of MCP server configs, keyed under `mcpServers` in config.json. */
|
|
471
|
-
type McpServersConfig = Record<string, McpServerConfig>;
|
|
472
|
-
|
|
473
486
|
interface KodaXEvents {
|
|
474
487
|
onTextDelta?: (text: string) => void;
|
|
475
488
|
onThinkingDelta?: (text: string) => void;
|
|
@@ -628,7 +641,6 @@ interface KodaXEvents {
|
|
|
628
641
|
* — consumers see the synth signal in causal order before the result
|
|
629
642
|
* surfaces.
|
|
630
643
|
*/
|
|
631
|
-
onEvaluatorFallbackSynthesized?: (info: EvaluatorFallbackSynthesizedInfo) => void;
|
|
632
644
|
/** Returns a formatted cost report for the current session. Set by agent at session start. */
|
|
633
645
|
getCostReport?: {
|
|
634
646
|
current: (() => string) | null;
|
|
@@ -747,7 +759,7 @@ interface KodaXRepoIntelligenceTrace {
|
|
|
747
759
|
* (interactive REPL), and `acp_server`.
|
|
748
760
|
*
|
|
749
761
|
* Note: FEATURE_083 (v0.7.24) initially marked this as superseded by
|
|
750
|
-
* `EvidenceSpan` in `@kodax-ai/
|
|
762
|
+
* `EvidenceSpan` in `@kodax-ai/agent`. **FEATURE_086 (v0.7.27) re-evaluated
|
|
751
763
|
* and retained it**: `EvidenceSpanData` is a generic
|
|
752
764
|
* `{ source, queryPreview?, resultCount?, cacheHit?, error? }` abstraction
|
|
753
765
|
* that does not carry the repo-intelligence-specific `stage` enum,
|
|
@@ -781,17 +793,34 @@ type TodoStatus = 'pending' | 'in_progress' | 'completed' | 'failed' | 'skipped'
|
|
|
781
793
|
*/
|
|
782
794
|
type TodoEvaluatorHint = 'build' | 'test' | 'lint';
|
|
783
795
|
/**
|
|
784
|
-
* One row in the planner-produced todo list.
|
|
785
|
-
*
|
|
786
|
-
*
|
|
787
|
-
*
|
|
796
|
+
* One row in the planner-produced todo list. Subject is the short
|
|
797
|
+
* imperative title (shown in the UI row + throttle reminder); the
|
|
798
|
+
* optional description carries fuller context for downstream consumers
|
|
799
|
+
* that need the full work instruction. Sourced from Scout's existing
|
|
800
|
+
* `executionObligations: string[]` payload (each string becomes the
|
|
801
|
+
* `subject` of one seed item, no `description`). Status is advanced
|
|
802
|
+
* via the `todo_update` tool by Scout (H0 path) / Worker / Generator /
|
|
803
|
+
* Planner.
|
|
804
|
+
*
|
|
805
|
+
* v0.7.42 — `content` field renamed to `subject` to match claudecode V2
|
|
806
|
+
* `TaskSchema` (TaskCreateTool's required `subject` + `description`
|
|
807
|
+
* pair). KodaX makes `description` optional because trivial single-line
|
|
808
|
+
* steps don't need it; weaker models reach the API more easily without
|
|
809
|
+
* the forced second-string burden.
|
|
788
810
|
*
|
|
789
811
|
* `owner` partitions the list when child agents run in parallel under
|
|
790
812
|
* `dispatch_child_task`; "main" is the parent thread.
|
|
791
813
|
*/
|
|
792
814
|
interface TodoItem {
|
|
793
815
|
readonly id: string;
|
|
794
|
-
|
|
816
|
+
/** Brief imperative title — the row label users see in the plan list. */
|
|
817
|
+
readonly subject: string;
|
|
818
|
+
/**
|
|
819
|
+
* Optional fuller description / context. Read by the executing role
|
|
820
|
+
* when picking up an item (claudecode V2 `TaskGet`-style detail view).
|
|
821
|
+
* Not rendered in the compact plan-list row.
|
|
822
|
+
*/
|
|
823
|
+
readonly description?: string;
|
|
795
824
|
readonly status: TodoStatus;
|
|
796
825
|
readonly owner?: string;
|
|
797
826
|
/** Index into the originating `executionObligations: string[]` array (0-based). */
|
|
@@ -943,6 +972,17 @@ interface KodaXChildContextBundle {
|
|
|
943
972
|
* lands separately.
|
|
944
973
|
*/
|
|
945
974
|
modelHint?: KodaXChildModelHint;
|
|
975
|
+
/**
|
|
976
|
+
* FEATURE_191 — optional registered specialist agent name. When set,
|
|
977
|
+
* the child is dispatched with that agent's `instructions` /
|
|
978
|
+
* `tools` / `reasoning` / `guardrails` instead of the stock Worker
|
|
979
|
+
* bundle. Resolved via `resolveConstructedAgent(name)` at dispatch
|
|
980
|
+
* time; unknown names are rejected by `toolDispatchChildTask` with
|
|
981
|
+
* a tool-result error (not throw) before the bundle reaches
|
|
982
|
+
* `executeReadChild` / `executeWriteChild`. Optional — omitting
|
|
983
|
+
* preserves byte-identical v0.7.42 baseline dispatch behavior.
|
|
984
|
+
*/
|
|
985
|
+
specialistName?: string;
|
|
946
986
|
}
|
|
947
987
|
/**
|
|
948
988
|
* FEATURE_120 v0.7.39 Phase 4 — model tier hint. Tier semantics:
|
|
@@ -967,6 +1007,15 @@ interface KodaXChildAgentResult {
|
|
|
967
1007
|
sessionId?: string;
|
|
968
1008
|
/** Actual iterations consumed by this child agent. */
|
|
969
1009
|
actualIterations?: number;
|
|
1010
|
+
/**
|
|
1011
|
+
* True when the child's `runKodaX` exited via CAP-083 AbortError silent
|
|
1012
|
+
* terminal (`KodaXResult.interrupted === true`). Surfaces the
|
|
1013
|
+
* "success but empty lastText" path that produces empty
|
|
1014
|
+
* `<task-completed task_id="X"></task-completed>` banners.
|
|
1015
|
+
* Diagnostic field — populated by child-executor on the success branch
|
|
1016
|
+
* and consumed by dispatch-child-tasks' empty-summary fallback.
|
|
1017
|
+
*/
|
|
1018
|
+
interrupted?: boolean;
|
|
970
1019
|
}
|
|
971
1020
|
interface KodaXParentReductionContract {
|
|
972
1021
|
owner: 'parent';
|
|
@@ -981,8 +1030,6 @@ interface KodaXChildExecutionResult {
|
|
|
981
1030
|
readonly mergedArtifacts: readonly string[];
|
|
982
1031
|
readonly totalTokensUsed: number;
|
|
983
1032
|
readonly cancelledChildren: readonly string[];
|
|
984
|
-
/** Worktree paths for write children, keyed by childId. Available for evaluator review. */
|
|
985
|
-
readonly worktreePaths?: ReadonlyMap<string, string>;
|
|
986
1033
|
}
|
|
987
1034
|
interface KodaXChildFinding {
|
|
988
1035
|
readonly childId: string;
|
|
@@ -1042,7 +1089,7 @@ interface KodaXManagedTaskHarnessTransition {
|
|
|
1042
1089
|
approved: boolean;
|
|
1043
1090
|
denialReason?: string;
|
|
1044
1091
|
}
|
|
1045
|
-
type KodaXManagedTaskPhase = 'starting' | 'routing' | 'preflight' | 'round' | 'worker' | 'upgrade' | 'completed';
|
|
1092
|
+
type KodaXManagedTaskPhase = 'starting' | 'routing' | 'preflight' | 'round' | 'worker' | 'upgrade' | 'verifying' | 'completed';
|
|
1046
1093
|
type KodaXManagedLiveEventPresentation = 'status' | 'assistant' | 'thinking';
|
|
1047
1094
|
interface KodaXManagedLiveEvent {
|
|
1048
1095
|
key: string;
|
|
@@ -1235,8 +1282,6 @@ interface KodaXContextOptions {
|
|
|
1235
1282
|
};
|
|
1236
1283
|
/** Mutable mutation tracker shared between worker events and the protocol tool handler. */
|
|
1237
1284
|
mutationTracker?: ManagedMutationTracker;
|
|
1238
|
-
/** FEATURE_067 v2: Callback for dispatch_child_tasks to register write worktree paths. */
|
|
1239
|
-
registerChildWriteWorktrees?: (worktreePaths: ReadonlyMap<string, string>) => void;
|
|
1240
1285
|
/** FEATURE_067 v3: Tool names to exclude from API-level tool list (child agents). */
|
|
1241
1286
|
excludeTools?: readonly string[];
|
|
1242
1287
|
/**
|
|
@@ -1281,6 +1326,37 @@ interface KodaXOptions {
|
|
|
1281
1326
|
guardrails?: readonly Guardrail[];
|
|
1282
1327
|
/** AbortSignal for cancelling the API request */
|
|
1283
1328
|
abortSignal?: AbortSignal;
|
|
1329
|
+
/**
|
|
1330
|
+
* v0.7.42 — `RunningSession` plumbing (closes gap 6 reported by KodaX
|
|
1331
|
+
* Space). When provided, the substrate `_attach`es low-level mutators
|
|
1332
|
+
* onto this control object so the embedder can flip provider / model
|
|
1333
|
+
* / reasoning between turns without restarting the run. The mutations
|
|
1334
|
+
* land on the live `RuntimeSessionState` and are picked up by the
|
|
1335
|
+
* next-turn CAP-055 provider re-resolution. `startKodaX` (the
|
|
1336
|
+
* non-blocking entry) is the canonical producer of this field; direct
|
|
1337
|
+
* SDK callers can also instantiate one via {@link createSessionControl}.
|
|
1338
|
+
*/
|
|
1339
|
+
sessionControl?: KodaXSessionControl;
|
|
1340
|
+
}
|
|
1341
|
+
/**
|
|
1342
|
+
* Low-level mutators handed to a `KodaXSessionControl` by the substrate.
|
|
1343
|
+
* Each setter writes directly into the live `RuntimeSessionState`. Called
|
|
1344
|
+
* exactly once per session (just after `buildRuntimeSessionState`).
|
|
1345
|
+
*/
|
|
1346
|
+
interface KodaXSessionMutators {
|
|
1347
|
+
setProvider(name: string): void;
|
|
1348
|
+
setModel(model: string | undefined): void;
|
|
1349
|
+
setReasoning(mode: KodaXReasoningMode | undefined): void;
|
|
1350
|
+
}
|
|
1351
|
+
/**
|
|
1352
|
+
* Embedder-facing control surface. Created by the embedder (or by
|
|
1353
|
+
* `startKodaX`), passed in via `KodaXOptions.sessionControl`. The
|
|
1354
|
+
* substrate calls `_attach` once, after which the control's setter
|
|
1355
|
+
* methods apply live to the in-flight run.
|
|
1356
|
+
*/
|
|
1357
|
+
interface KodaXSessionControl {
|
|
1358
|
+
/** @internal — wired by `run-substrate`. Do not call from user code. */
|
|
1359
|
+
_attach(mutators: KodaXSessionMutators): void;
|
|
1284
1360
|
}
|
|
1285
1361
|
type KodaXTaskSurface = 'cli' | 'repl' | 'plan';
|
|
1286
1362
|
type KodaXTaskStatus = 'planned' | 'running' | 'blocked' | 'failed' | 'completed';
|
|
@@ -1365,7 +1441,6 @@ interface KodaXOrchestrationVerdict {
|
|
|
1365
1441
|
signalReason?: string;
|
|
1366
1442
|
signalDebugReason?: string;
|
|
1367
1443
|
disposition?: 'complete' | 'blocked' | 'needs_continuation';
|
|
1368
|
-
continuationSuggested?: boolean;
|
|
1369
1444
|
}
|
|
1370
1445
|
interface KodaXManagedTaskRuntimeState {
|
|
1371
1446
|
amaProfile?: KodaXAmaProfile;
|
|
@@ -1387,24 +1462,6 @@ interface KodaXManagedTaskRuntimeState {
|
|
|
1387
1462
|
currentHarness?: KodaXHarnessProfile;
|
|
1388
1463
|
upgradeCeiling?: KodaXHarnessProfile;
|
|
1389
1464
|
harnessTransitions?: KodaXManagedTaskHarnessTransition[];
|
|
1390
|
-
scoutDecision?: {
|
|
1391
|
-
summary: string;
|
|
1392
|
-
recommendedHarness: KodaXHarnessProfile;
|
|
1393
|
-
readyForUpgrade: boolean;
|
|
1394
|
-
scope?: string[];
|
|
1395
|
-
requiredEvidence?: string[];
|
|
1396
|
-
reviewFilesOrAreas?: string[];
|
|
1397
|
-
evidenceAcquisitionMode?: 'overview' | 'diff-bundle' | 'diff-slice' | 'file-read';
|
|
1398
|
-
harnessRationale?: string;
|
|
1399
|
-
blockingEvidence?: string[];
|
|
1400
|
-
directCompletionReady?: 'yes' | 'no';
|
|
1401
|
-
skillSummary?: string;
|
|
1402
|
-
executionObligations?: string[];
|
|
1403
|
-
verificationObligations?: string[];
|
|
1404
|
-
ambiguities?: string[];
|
|
1405
|
-
projectionConfidence?: KodaXSkillProjectionConfidence;
|
|
1406
|
-
};
|
|
1407
|
-
skillMap?: KodaXSkillMap;
|
|
1408
1465
|
completionContractStatus?: Record<string, 'ready' | 'incomplete' | 'blocked' | 'missing'>;
|
|
1409
1466
|
rawRoutingDecision?: KodaXTaskRoutingDecision;
|
|
1410
1467
|
finalRoutingDecision?: KodaXTaskRoutingDecision;
|
|
@@ -1432,8 +1489,6 @@ interface KodaXManagedTaskRuntimeState {
|
|
|
1432
1489
|
childWriteReviewPrompt?: string;
|
|
1433
1490
|
/** FEATURE_067: Number of write child diffs pending evaluator review. */
|
|
1434
1491
|
childWriteDiffCount?: number;
|
|
1435
|
-
/** FEATURE_067 v2: Worktree paths from dispatch_child_tasks write fan-out, keyed by childId. */
|
|
1436
|
-
childWriteWorktreePaths?: ReadonlyMap<string, string>;
|
|
1437
1492
|
}
|
|
1438
1493
|
interface KodaXManagedTask {
|
|
1439
1494
|
contract: KodaXTaskContract;
|
|
@@ -1444,7 +1499,11 @@ interface KodaXManagedTask {
|
|
|
1444
1499
|
runtime?: KodaXManagedTaskRuntimeState;
|
|
1445
1500
|
}
|
|
1446
1501
|
interface KodaXManagedVerdictPayload {
|
|
1447
|
-
|
|
1502
|
+
/** FEATURE_184 (v0.7.45): `'sidecar'` is the new architectural source —
|
|
1503
|
+
* Sidecar Verifier replaces the in-chain Evaluator role. `'evaluator'`
|
|
1504
|
+
* / `'worker'` are retained for backward-compat reads of session jsonl
|
|
1505
|
+
* written before v0.7.45. New writes use `'sidecar'`. */
|
|
1506
|
+
source: 'evaluator' | 'worker' | 'sidecar';
|
|
1448
1507
|
status: 'accept' | 'revise' | 'blocked';
|
|
1449
1508
|
reason?: string;
|
|
1450
1509
|
debugReason?: string;
|
|
@@ -1457,7 +1516,6 @@ interface KodaXManagedVerdictPayload {
|
|
|
1457
1516
|
nextHarness?: KodaXTaskRoutingDecision['harnessProfile'];
|
|
1458
1517
|
protocolParseFailed?: boolean;
|
|
1459
1518
|
verificationDegraded?: boolean;
|
|
1460
|
-
continuationSuggested?: boolean;
|
|
1461
1519
|
preferredFallbackWorkerId?: string;
|
|
1462
1520
|
/**
|
|
1463
1521
|
* v0.7.26 Risk-3 fix — Evaluator explicit budget-extension request.
|
|
@@ -1470,72 +1528,19 @@ interface KodaXManagedVerdictPayload {
|
|
|
1470
1528
|
budgetRequest?: string;
|
|
1471
1529
|
}
|
|
1472
1530
|
/**
|
|
1473
|
-
* Signals surfaced by the harness (not the LLM) when Scout's completion
|
|
1474
|
-
* suspicious.
|
|
1531
|
+
* Signals surfaced by the harness (not the LLM) when V1 Scout's completion
|
|
1532
|
+
* looked suspicious.
|
|
1533
|
+
*
|
|
1534
|
+
* FEATURE_193 (v0.7.43) deep V1 cleanup: V1 Scout role is retired and the
|
|
1535
|
+
* Runner-driven path no longer fires `onScoutSuspiciousCompletion`. The
|
|
1536
|
+
* type is kept on the SDK surface so the `KodaXEvents.onScoutSuspiciousCompletion`
|
|
1537
|
+
* callback signature continues to compile for pre-1.0 SDK consumers (e.g.
|
|
1538
|
+
* the REPL renderers that still register a handler). New code MUST NOT
|
|
1539
|
+
* emit this signal.
|
|
1475
1540
|
*/
|
|
1476
1541
|
type KodaXScoutSuspiciousSignal = 'mutation-expected-but-none' | 'budget-exhausted' | 'no-formal-completion';
|
|
1477
|
-
interface KodaXManagedScoutPayload {
|
|
1478
|
-
summary?: string;
|
|
1479
|
-
scope: string[];
|
|
1480
|
-
requiredEvidence: string[];
|
|
1481
|
-
reviewFilesOrAreas?: string[];
|
|
1482
|
-
evidenceAcquisitionMode?: 'overview' | 'diff-bundle' | 'diff-slice' | 'file-read';
|
|
1483
|
-
confirmedHarness?: KodaXTaskRoutingDecision['harnessProfile'];
|
|
1484
|
-
harnessRationale?: string;
|
|
1485
|
-
blockingEvidence?: string[];
|
|
1486
|
-
directCompletionReady?: 'yes' | 'no';
|
|
1487
|
-
/**
|
|
1488
|
-
* FEATURE_078 (v0.7.29): Scout's optional non-binding suggestion for
|
|
1489
|
-
* the reasoning depth downstream workers (Planner / Generator /
|
|
1490
|
-
* Evaluator) should use. Resolved by `resolveRoleReasoning(role,
|
|
1491
|
-
* userCeiling, profile, scoutHint)` as the L3 input — clamped by L1
|
|
1492
|
-
* (user ceiling) and L2 (agent profile max). Scout SHOULD set this
|
|
1493
|
-
* sparingly: only when the scoped task signals atypically low
|
|
1494
|
-
* complexity (`'quick'`) or atypically high stakes (`'deep'`); leave
|
|
1495
|
-
* undefined for the default path so workers stick to their own
|
|
1496
|
-
* `Agent.reasoning.default`.
|
|
1497
|
-
*/
|
|
1498
|
-
downstreamReasoningHint?: KodaXReasoningMode;
|
|
1499
|
-
userFacingText?: string;
|
|
1500
|
-
skillMap?: {
|
|
1501
|
-
skillSummary?: string;
|
|
1502
|
-
executionObligations: string[];
|
|
1503
|
-
verificationObligations: string[];
|
|
1504
|
-
ambiguities: string[];
|
|
1505
|
-
projectionConfidence?: KodaXSkillProjectionConfidence;
|
|
1506
|
-
};
|
|
1507
|
-
/**
|
|
1508
|
-
* Harness-observed confidence in Scout's completion. 'confident' is the default
|
|
1509
|
-
* (omitted). 'uncertain' means the harness detected signals that Scout may not
|
|
1510
|
-
* have actually finished (e.g. mutation task with zero mutations, budget
|
|
1511
|
-
* exhausted without explicit completion, tool calls followed by text-only exit
|
|
1512
|
-
* without a completion statement).
|
|
1513
|
-
*
|
|
1514
|
-
* This field is set by the harness, not by the LLM — emit_managed_protocol
|
|
1515
|
-
* payloads from models are ignored here and overwritten.
|
|
1516
|
-
*/
|
|
1517
|
-
completionConfidence?: 'confident' | 'uncertain';
|
|
1518
|
-
/** Which signals contributed to an 'uncertain' confidence verdict. */
|
|
1519
|
-
suspiciousSignals?: KodaXScoutSuspiciousSignal[];
|
|
1520
|
-
}
|
|
1521
|
-
interface KodaXManagedContractPayload {
|
|
1522
|
-
summary?: string;
|
|
1523
|
-
successCriteria: string[];
|
|
1524
|
-
requiredEvidence: string[];
|
|
1525
|
-
constraints: string[];
|
|
1526
|
-
}
|
|
1527
|
-
interface KodaXManagedHandoffPayload {
|
|
1528
|
-
status: 'ready' | 'incomplete' | 'blocked';
|
|
1529
|
-
summary?: string;
|
|
1530
|
-
evidence: string[];
|
|
1531
|
-
followup: string[];
|
|
1532
|
-
userFacingText: string;
|
|
1533
|
-
}
|
|
1534
1542
|
interface KodaXManagedProtocolPayload {
|
|
1535
1543
|
verdict?: KodaXManagedVerdictPayload;
|
|
1536
|
-
scout?: KodaXManagedScoutPayload;
|
|
1537
|
-
contract?: KodaXManagedContractPayload;
|
|
1538
|
-
handoff?: KodaXManagedHandoffPayload;
|
|
1539
1544
|
}
|
|
1540
1545
|
interface KodaXResult {
|
|
1541
1546
|
success: boolean;
|
|
@@ -1661,8 +1666,6 @@ interface KodaXToolExecutionContext {
|
|
|
1661
1666
|
/** FEATURE_067 v2: Callback for long-running tools to report execution progress to the REPL transcript.
|
|
1662
1667
|
* The string will be displayed as the tool's "Running:" line in the transcript. */
|
|
1663
1668
|
reportToolProgress?: (message: string) => void;
|
|
1664
|
-
/** FEATURE_067 v2: Callback to store write child worktree paths for Evaluator diff injection. */
|
|
1665
|
-
registerChildWriteWorktrees?: (worktreePaths: ReadonlyMap<string, string>) => void;
|
|
1666
1669
|
/** Mutation tracker for scope-aware protocol responses. Populated by createWorkerEvents. */
|
|
1667
1670
|
mutationTracker?: ManagedMutationTracker;
|
|
1668
1671
|
/**
|
|
@@ -1714,6 +1717,20 @@ interface KodaXToolExecutionContext {
|
|
|
1714
1717
|
* See `packages/coding/src/multi-instance/content-hash-cache.ts`.
|
|
1715
1718
|
*/
|
|
1716
1719
|
contentHashCache?: ContentHashCache;
|
|
1720
|
+
/**
|
|
1721
|
+
* FEATURE_177 v0.7.42 — per-task read-file-state cache (anti-loop).
|
|
1722
|
+
*
|
|
1723
|
+
* Tracks `(filePath, offset, limit)` tuples the LLM has already read
|
|
1724
|
+
* in this task. On a re-read with unchanged mtime, the Read tool
|
|
1725
|
+
* returns a short stub instead of the full content — breaking
|
|
1726
|
+
* `narrate-then-re-read` loops on models with structural decoder
|
|
1727
|
+
* floors (kimi-code 2026-05). Edit / Write / MultiEdit call `forget`
|
|
1728
|
+
* after a successful mutation; the compaction post-hook calls
|
|
1729
|
+
* `clear`. Disabled by `KODAX_READ_DEDUP_KILLSWITCH=1`.
|
|
1730
|
+
*
|
|
1731
|
+
* See `packages/coding/src/multi-instance/read-file-state-cache.ts`.
|
|
1732
|
+
*/
|
|
1733
|
+
readFileStateCache?: ReadFileStateCache;
|
|
1717
1734
|
/**
|
|
1718
1735
|
* FEATURE_125 v0.7.41 — Team Mode Layer 3 input.
|
|
1719
1736
|
*
|
|
@@ -1779,6 +1796,27 @@ interface KodaXToolExecutionContext {
|
|
|
1779
1796
|
* `childTaskRegistry`).
|
|
1780
1797
|
*/
|
|
1781
1798
|
childAbortControllers?: TaskAbortRegistry;
|
|
1799
|
+
/**
|
|
1800
|
+
* FEATURE_177 v0.7.45 substrate for the `task_output` tool. Per-child
|
|
1801
|
+
* runtime snapshot a parent agent can query mid-flight to peek at
|
|
1802
|
+
* iteration count + recent tool-call breadcrumbs without waiting for
|
|
1803
|
+
* the child's `<task-completed>` banner.
|
|
1804
|
+
*
|
|
1805
|
+
* Populated by `dispatch_child_task` at launch (`initChildSnapshot`)
|
|
1806
|
+
* and at terminal (`finalizeChildSnapshot` in the child promise's
|
|
1807
|
+
* inner-IIFE `.finally`). The `task_output` tool reads from this map.
|
|
1808
|
+
*
|
|
1809
|
+
* Snapshots survive the child task settling (so post-completion peeks
|
|
1810
|
+
* work) and are bounded by `CHILD_PROGRESS_SNAPSHOT_CAP` (FIFO prune
|
|
1811
|
+
* by `startedAt` when the cap is exceeded). No TTL — snapshots are
|
|
1812
|
+
* cleared with the ctx itself when the parent runner exits.
|
|
1813
|
+
*
|
|
1814
|
+
* Undefined in legacy sync-mode dispatch (same gate as
|
|
1815
|
+
* `childTaskRegistry`). Children's own SA contexts do NOT inherit
|
|
1816
|
+
* this map (verified by `buildToolExecutionContext` not forwarding
|
|
1817
|
+
* it into child `runKodaX` calls).
|
|
1818
|
+
*/
|
|
1819
|
+
childProgressSnapshots?: Map<string, ChildProgressSnapshot>;
|
|
1782
1820
|
}
|
|
1783
1821
|
|
|
1784
1822
|
/**
|
|
@@ -2428,5 +2466,5 @@ interface CreateBashPrefixExtractorOptions {
|
|
|
2428
2466
|
*/
|
|
2429
2467
|
declare function createBashPrefixExtractor(opts: CreateBashPrefixExtractorOptions): BashPrefixExtractor;
|
|
2430
2468
|
|
|
2431
|
-
export { BASH_POLICY_SPEC as B, CONSECUTIVE_THRESHOLD as C, ERROR_THRESHOLD as E,
|
|
2432
|
-
export type {
|
|
2469
|
+
export { BASH_POLICY_SPEC as B, CONSECUTIVE_THRESHOLD as C, ERROR_THRESHOLD as E, readTrustState as a$, WINDOW_MS as aO, collectAllSignals as aP, computeRulesFingerprint as aQ, createAutoModeToolGuardrail as aR, createBashPrefixExtractor as aS, createCircuitBreaker as aT, createDenialTracker as aU, extractCommandPrefix as aV, formatAgentsForPrompt as aW, getKodaxGlobalDir as aX, loadAgentsFiles as aY, loadAutoRules as aZ, parseAutoRules as a_, recordAllow as b0, recordBlock as b1, recordError as b2, shouldFallback$1 as b3, shouldFallback as b4, trustProjectRules as b5, CUMULATIVE_THRESHOLD as n };
|
|
2470
|
+
export type { KodaXRepoIntelligenceMode as $, AgentsFile as A, DenialTracker as D, FailureStage as F, KodaXFanoutBranchRecord as G, KodaXFanoutBranchTransition as H, KodaXFanoutSchedulerInput as I, KodaXFanoutSchedulerPlan as J, KodaXAgentMode as K, KodaXInputArtifact as L, KodaXManagedBudgetSnapshot as M, KodaXManagedProtocolPayload as N, KodaXManagedTask as O, KodaXManagedTaskRuntimeState as P, KodaXManagedTaskStatusEvent as Q, KodaXMcpConnectMode as R, KodaXMcpServerConfig as S, KodaXMcpServersConfig as T, KodaXMcpTransport as U, KodaXMemoryStrategy as V, KodaXOptions as W, KodaXOrchestrationVerdict as X, KodaXParentReductionContract as Y, KodaXProviderPolicyHints as Z, KodaXRepoIntelligenceCapability as _, AskUserMultiOptions as a, KodaXRepoIntelligenceResolvedMode as a0, KodaXRepoIntelligenceTrace as a1, KodaXRepoIntelligenceTraceEvent as a2, KodaXRepoRoutingSignals as a3, KodaXResult as a4, KodaXRoleRoundSummary as a5, KodaXRuntimeVerificationContract as a6, KodaXSessionControl as a7, KodaXSessionMutators as a8, KodaXSessionOptions as a9, RecoveryDecision as aA, RecoveryLadderStep as aB, RecoveryResult as aC, ResilienceClassification as aD, ResilienceErrorClass as aE, RulesLoadError as aF, RulesLoadResult as aG, SignalCollector as aH, SkippedRulesSource as aI, TodoItem as aJ, TodoList as aK, TodoStatus as aL, ToolCallSignal as aM, TrustState as aN, KodaXSkillInvocationContext as aa, KodaXSkillMap as ab, KodaXSkillProjectionConfidence as ac, KodaXTaskCapabilityHint as ad, KodaXTaskContract as ae, KodaXTaskEvidenceArtifact as af, KodaXTaskEvidenceBundle as ag, KodaXTaskEvidenceEntry as ah, KodaXTaskRole as ai, KodaXTaskRoleAssignment as aj, KodaXTaskStatus as ak, KodaXTaskSurface as al, KodaXTaskToolPolicy as am, KodaXTaskVerificationContract as an, KodaXTaskVerificationCriterion as ao, KodaXTaskWorkItem as ap, KodaXToolExecutionContext as aq, KodaXVerificationScorecard as ar, KodaXVerificationScorecardCriterion as as, LoadAgentsOptions as at, LoadedRulesSource as au, ProviderExecutionState as av, ProviderRecoveryEvent as aw, ProviderResilienceConfig as ax, ProviderResiliencePolicy as ay, RecoveryAction as az, AskUserQuestionItem as b, AskUserQuestionOptions as c, AutoModeAskUser as d, AutoModeAskUserVerdict as e, AutoModeEngine as f, AutoModeGuardrailConfig as g, AutoModeSharedState as h, AutoModeStats as i, AutoModeToolGuardrail as j, AutoRules as k, BashPrefixExtractor as l, BashPrefixResult as m, CircuitBreaker as o, CreateBashPrefixExtractorOptions as p, ExtensionRuntimeContract as q, ExtractCommandPrefixOptions as r, KodaXBudgetDisclosureZone as s, KodaXBudgetExtensionRequest as t, KodaXChildAgentResult as u, KodaXChildContextBundle as v, KodaXContextOptions as w, KodaXContextTokenSnapshot as x, KodaXEvents as y, KodaXFanoutBranchLifecycle as z };
|