@kodax-ai/kodax 0.7.71 → 0.7.72

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/CHANGELOG.md +602 -487
  2. package/README.md +46 -27
  3. package/README_CN.md +30 -13
  4. package/dist/chunks/agent-YKGU4USA.js +2 -0
  5. package/dist/chunks/argument-completer-QZETLNAB.js +2 -0
  6. package/dist/chunks/{chunk-SX2WFHIS.js → chunk-2RI252RN.js} +1 -1
  7. package/dist/chunks/chunk-CLFP6UGU.js +71 -0
  8. package/dist/chunks/chunk-E27LHEIP.js +37 -0
  9. package/dist/chunks/chunk-EDZ5KJFT.js +5 -0
  10. package/dist/chunks/chunk-GIK4SGAT.js +364 -0
  11. package/dist/chunks/chunk-GVWPHE23.js +310 -0
  12. package/dist/chunks/{chunk-A2TFSV5M.js → chunk-IR5KIK7E.js} +1 -1
  13. package/dist/chunks/chunk-JSDLBXME.js +755 -0
  14. package/dist/chunks/chunk-MVARIMQV.js +22 -0
  15. package/dist/chunks/chunk-PKQOEDHJ.js +628 -0
  16. package/dist/chunks/{chunk-64NQBOSN.js → chunk-SQODXBLX.js} +1 -1
  17. package/dist/chunks/chunk-VDGCGOQH.js +328 -0
  18. package/dist/chunks/chunk-VVE3UM4F.js +410 -0
  19. package/dist/chunks/chunk-WIBLZK4G.js +151 -0
  20. package/dist/chunks/{compaction-config-5KKKXYFT.js → compaction-config-TWCDFLX6.js} +1 -1
  21. package/dist/chunks/{construction-bootstrap-OXDDDW6O.js → construction-bootstrap-ZJPXUPXQ.js} +1 -1
  22. package/dist/chunks/dist-JT4ATXVM.js +2 -0
  23. package/dist/chunks/host-SVEDZUC5.js +2 -0
  24. package/dist/chunks/{run-manager-Z3W6MDO7.js → run-manager-RX42UNEM.js} +1 -1
  25. package/dist/chunks/{utils-CFOXDCB5.js → utils-OTT5CG5J.js} +1 -1
  26. package/dist/index.d.ts +13 -13
  27. package/dist/index.js +4 -4
  28. package/dist/kodax_bootstrap.js +28 -0
  29. package/dist/kodax_cli.js +1325 -1333
  30. package/dist/kodax_resume.js +44 -0
  31. package/dist/provider-capabilities.json +50 -48
  32. package/dist/runtime-worker.js +1322 -1330
  33. package/dist/sdk-a2a.d.ts +10 -9
  34. package/dist/sdk-a2a.js +1 -1
  35. package/dist/sdk-agent.d.ts +382 -206
  36. package/dist/sdk-agent.js +1 -1
  37. package/dist/sdk-coding.d.ts +80 -128
  38. package/dist/sdk-coding.js +1 -1
  39. package/dist/sdk-experimental-memory.js +1 -1
  40. package/dist/sdk-mcp.js +1 -1
  41. package/dist/sdk-media.d.ts +3 -0
  42. package/dist/sdk-media.js +1 -1
  43. package/dist/sdk-repl.d.ts +71 -23
  44. package/dist/sdk-repl.js +2 -2
  45. package/dist/sdk-runtime.d.ts +143 -31
  46. package/dist/sdk-runtime.js +1 -1
  47. package/dist/sdk-session.d.ts +6 -5
  48. package/dist/sdk-session.js +1 -1
  49. package/dist/sdk-skills.d.ts +5 -5
  50. package/dist/sdk-skills.js +1 -1
  51. package/dist/semantic-worker.js +14 -14
  52. package/dist/types-chunks/{bash-prefix-extractor.d-YoiZl5yt.d.ts → bash-prefix-extractor.d-CHJO5y94.d.ts} +107 -248
  53. package/dist/types-chunks/{capsule.d-CK5Pfz1k.d.ts → capsule.d-DxtdE-GD.d.ts} +24 -95
  54. package/dist/types-chunks/center-types.d-BBT122uJ.d.ts +91 -0
  55. package/dist/types-chunks/{commands.d-D6g2jq8V.d.ts → commands.d-DZxHzH5-.d.ts} +6 -4
  56. package/dist/types-chunks/{guardrail.d-DilYC1dh.d.ts → guardrail.d-DlpMnd-Y.d.ts} +1 -1
  57. package/dist/types-chunks/{guardrail.d-DdeDWnVu.d.ts → guardrail.d-auV61_h5.d.ts} +83 -10
  58. package/dist/types-chunks/public-api.d--IDNJsu1.d.ts +1342 -0
  59. package/dist/types-chunks/{run-manager.d-DxU3SSGR.d.ts → run-manager.d-Bh50OdVl.d.ts} +1 -1
  60. package/dist/types-chunks/sdk-session-Cfw6NFu-.d.ts +82 -0
  61. package/dist/types-chunks/{types.d-CEZZSY9s.d.ts → types.d-CNZgY52F.d.ts} +2 -2
  62. package/dist/types-chunks/{types.d-vJExiRje.d.ts → types.d-DCQVBqVn.d.ts} +10 -5
  63. package/dist/types-chunks/{types.d-CRCaLt_s.d.ts → types.d-DH1mvdcl.d.ts} +284 -164
  64. package/dist/types-chunks/{types.d-CzsLFqmf.d.ts → types.d-EqQmHztg.d.ts} +9 -10
  65. package/dist/types-chunks/{utils.d-Cb6vdvFM.d.ts → utils.d-gmn3c5U4.d.ts} +9 -12
  66. package/docs/SDK_EMBEDDER_GUIDE.md +171 -26
  67. package/package.json +4 -4
  68. package/scripts/kodax-bin.cjs +4 -2
  69. package/scripts/production-env.cjs +9 -0
  70. package/dist/chunks/agent-X2EWQADL.js +0 -2
  71. package/dist/chunks/argument-completer-BLNXDO2F.js +0 -2
  72. package/dist/chunks/chunk-4DY756KL.js +0 -70
  73. package/dist/chunks/chunk-52JSZ77P.js +0 -37
  74. package/dist/chunks/chunk-A574DBTV.js +0 -422
  75. package/dist/chunks/chunk-F7KGYHJ3.js +0 -624
  76. package/dist/chunks/chunk-GVTM4Z6O.js +0 -151
  77. package/dist/chunks/chunk-PHH4TRGF.js +0 -22
  78. package/dist/chunks/chunk-PVUXONQB.js +0 -366
  79. package/dist/chunks/chunk-T7LYK53M.js +0 -329
  80. package/dist/chunks/chunk-VRSVNU2Y.js +0 -7
  81. package/dist/chunks/chunk-Y5XKAN7C.js +0 -755
  82. package/dist/chunks/chunk-Z535BARK.js +0 -306
  83. package/dist/chunks/dist-IXJRJ27U.js +0 -2
  84. package/dist/chunks/host-VRKDAN26.js +0 -2
  85. package/dist/types-chunks/public-api.d-BvCp5VkW.d.ts +0 -601
  86. package/dist/types-chunks/sdk-session-wGpa7X_U.d.ts +0 -796
@@ -1,6 +1,6 @@
1
- import { aT as KodaXGoalState, M as AgentMessage, cX as StopHookFn, bb as KodaXSessionLineage, aZ as KodaXJsonValue, aN as KodaXExtensionSessionRecord, f as Agent, dj as WorkflowIsolation, aO as KodaXExtensionSessionState, b2 as KodaXSessionArtifactLedgerEntry, cI as SessionErrorMetadata, bj as KodaXSessionScope, bk as KodaXSessionStorage, bK as MemoryContextIdentity, bW as MemoryPack, aX as KodaXInputArtifact, D as AgentExecutorPlaneBinding, ac as ChildTaskRegistry, dg as WorkflowEventCorrelation, ai as CompactionUpdate, dt as WorkflowProcessEvent, df as WorkflowEvent, a9 as AskUserQuestionOptions, a5 as AskUserAnswer, a7 as AskUserMultiOptions, c8 as MemoryReviewPlan, a$ as KodaXMemoryOutcomeDigest, c9 as MemoryReviewRunner, aC as Guardrail, an as DiscoveredInstance, c$ as TaskAbortRegistry } from './types.d-CRCaLt_s.js';
1
+ import { br as KodaXGoalState, a8 as AgentMessage, du as StopHookFn, bL as KodaXSessionLineage, k as AgentActorStore, aC as AgentTurnExecutor, t as AgentBudgetPort, h as AgentActorClient, N as AgentExecutionResult, V as AgentExecutorPlaneBinding, bx as KodaXJsonValue, bl as KodaXExtensionSessionRecord, f as Agent, dR as WorkflowIsolation, bm as KodaXExtensionSessionState, bC as KodaXSessionArtifactLedgerEntry, de as SessionErrorMetadata, bT as KodaXSessionScope, bU as KodaXSessionStorage, ci as MemoryContextIdentity, cu as MemoryPack, aK as AskUserQuestionOptions, aG as AskUserAnswer, aI as AskUserMultiOptions, dO as WorkflowEventCorrelation, aS as CompactionUpdate, e3 as WorkflowProcessEvent, dN as WorkflowEvent, cI as MemoryReviewPlan, bz as KodaXMemoryOutcomeDigest, ba as Guardrail, aX as DiscoveredInstance, bv as KodaXInputArtifact, cJ as MemoryReviewRunner } from './types.d-DH1mvdcl.js';
2
2
  import { a0 as KodaXTokenUsage, k as KodaXMessage, a1 as KodaXToolDefinition, a9 as KodaXWireReasoningEffort, U as KodaXTaskRoutingDecision, V as KodaXTaskType, W as KodaXTaskWorkIntent, Q as KodaXTaskComplexity, L as KodaXRiskLevel, h as KodaXHarnessProfile, f as KodaXExecutionMode, b as KodaXChildFanoutClass, F as KodaXReasoningMode, J as KodaXReviewScale } from './types.d-Cqaw71Ax.js';
3
- import { I as ISkillRegistry, d as SkillDynamicContextExecutor } from './types.d-vJExiRje.js';
3
+ import { d as SkillDynamicContextExecutor, I as ISkillRegistry } from './types.d-DCQVBqVn.js';
4
4
  import { Diagnostic, Position, Location, Hover, DocumentSymbol, SymbolInformation, WorkspaceSymbol, CallHierarchyItem, CallHierarchyIncomingCall, CallHierarchyOutgoingCall } from 'vscode-languageserver-protocol';
5
5
  import { K as KodaXLlmTimeoutConfig, a as CostTracker } from './cost-tracker.d-BeaenODW.js';
6
6
  import { C as CapabilityKind, f as CapabilitySearchSnapshot, b as CapabilityResult } from './capability.d-K664nHOS.js';
@@ -74,88 +74,6 @@ interface GoalToolsContext {
74
74
  */
75
75
  declare function makeDisabledGoalToolsContext(): GoalToolsContext;
76
76
 
77
- /** One tool-call breadcrumb. Captures only the name + a 60-char input
78
- * hint so the snapshot stays compact under fan-out. Mirrors the
79
- * `inputHint` extraction in `buildChildEvents.onToolUseStart`. */
80
- interface ChildToolCallBreadcrumb {
81
- readonly iteration: number;
82
- readonly toolName: string;
83
- /** Truncated path/pattern/command, ≤60 chars. May be empty when the
84
- * tool input has no obvious key field. */
85
- readonly inputHint: string;
86
- /** Monotonic wall-clock ms at the time the tool call started. */
87
- readonly startedAt: number;
88
- }
89
- /** Snapshot status. `running` is the initial state on dispatch. The
90
- * three terminal states map from the child promise outcome:
91
- * - `completed` — child returned success
92
- * - `failed` — child returned non-success OR threw (non-AbortError)
93
- * - `aborted` — child threw an AbortError (parent or task_stop fired)
94
- */
95
- type ChildProgressStatus = 'running' | 'completed' | 'failed' | 'aborted';
96
- interface ChildProgressSnapshot {
97
- readonly childId: string;
98
- /** Mutable in the writer (dispatch-child-tasks) — terminal status is
99
- * set once in the inner-IIFE `.finally` block. Readers
100
- * (task-output tool) treat it as authoritative. */
101
- status: ChildProgressStatus;
102
- /** Monotonic wall-clock ms at dispatch. */
103
- readonly startedAt: number;
104
- /** Monotonic wall-clock ms at terminal. Undefined while `status===
105
- * 'running'`. */
106
- endedAt?: number;
107
- /** Iterations consumed by the child agent. Updated by
108
- * `snapshotUpdater({kind:'iteration', iteration, max})` from
109
- * `buildChildEvents.onIterationStart`. */
110
- iterations: number;
111
- /** Iteration ceiling forwarded from `ChildExecutorOptions
112
- * .maxIterationsPerChild`. */
113
- maxIterations: number;
114
- /** Mutable ring buffer; writer must respect `RECENT_TOOL_CALLS_RING_CAP`
115
- * via `pushBreadcrumb`. */
116
- recentToolCalls: ChildToolCallBreadcrumb[];
117
- /** Populated at terminal (any of `completed` / `failed` / `aborted`)
118
- * with the same pre-guardrail `rawSummary` string that
119
- * `dispatch-child-tasks.ts` produces for the `<task-completed>` body.
120
- * For success-empty / failed-empty paths this is the diagnostic
121
- * envelope (mode= ... iterations=... etc.) so post-completion
122
- * `task_output` reads stay in lock-step with the banner the Worker
123
- * already saw. */
124
- finalText?: string;
125
- /** Optional dispatcher role (`scout` / `worker` / `generator`),
126
- * captured at init so a debug-style `task_output` peek can correlate
127
- * the child with the parent fan-out class. Not surfaced in the
128
- * envelope; reserved for future tracing. */
129
- readonly parentRole?: string;
130
- /** Read-only flag forwarded from the dispatch bundle. Same rationale
131
- * as `parentRole` — currently captured for future surfacing. */
132
- readonly readOnly?: boolean;
133
- /**
134
- * FEATURE_191 — registered specialist agent name when the dispatch
135
- * routed through a `subagent_type` argument. `undefined` for generic
136
- * anonymous children. Surfaced by `task_output` so post-mortem peeks
137
- * can identify which specialist owned the child.
138
- */
139
- readonly specialistName?: string;
140
- }
141
- /**
142
- * Event variants the per-child events bridge feeds back to the
143
- * snapshot. Kept as a discriminated union so future event kinds (e.g.,
144
- * a real assistant-text chunk hook if the agent runtime grows one) can
145
- * be added without breaking existing call sites.
146
- */
147
- type ChildSnapshotEvent = {
148
- readonly kind: 'iteration';
149
- readonly iteration: number;
150
- readonly maxIterations: number;
151
- } | {
152
- readonly kind: 'tool-start';
153
- readonly iteration: number;
154
- readonly toolName: string;
155
- readonly inputHint: string;
156
- readonly startedAt: number;
157
- };
158
-
159
77
  /** Result of a cache lookup. */
160
78
  type ReadStateLookup = {
161
79
  readonly kind: 'miss';
@@ -319,7 +237,7 @@ interface TodoAddSeed {
319
237
  * for atomic "rename a flag" patches.
320
238
  *
321
239
  * `owner` and `sourceObligationIndex` are intentionally NOT patchable
322
- * post-creation — they identify provenance (which dispatch_child_task
240
+ * post-creation — they identify provenance (which child-Actor
323
241
  * branch / which Scout obligation produced the item) and must stay
324
242
  * stable for downstream consumers. Pass them via `add()` or `init()`
325
243
  * seed and treat them as immutable thereafter.
@@ -428,6 +346,14 @@ interface WorkflowInvocationPolicyInput {
428
346
  interface WorkflowInvocationPolicyDecision {
429
347
  readonly action: WorkflowInvocationAction;
430
348
  }
349
+ /**
350
+ * Decide whether a natural-language turn should receive the model-callable
351
+ * Workflow surface. This does not launch or generate anything: the Worker still
352
+ * scouts and authors the protocol. Requiring the standalone product word keeps
353
+ * ordinary parallel/review requests from acquiring `run_workflow`; the code
354
+ * identifier `run_workflow` alone is deliberately not an activation signal.
355
+ */
356
+ declare function hasExplicitNaturalLanguageWorkflowIntent(input: string): boolean;
431
357
  /**
432
358
  * Decide whether the REPL host should launch a workflow before the agent runs.
433
359
  *
@@ -903,6 +829,39 @@ interface GoalRuntimeBinding {
903
829
  */
904
830
  declare function buildGoalRuntimeBinding(deps: GoalRuntimeBindingDeps): GoalRuntimeBinding;
905
831
 
832
+ interface CodingActorSessionOptions {
833
+ readonly maxConcurrentThreadsPerSession?: number;
834
+ readonly sessionId?: string;
835
+ readonly store?: AgentActorStore;
836
+ readonly executor?: AgentTurnExecutor;
837
+ readonly budget?: AgentBudgetPort;
838
+ }
839
+ /** One Runtime-owned Actor tree for one KodaX session. */
840
+ declare class CodingActorSession {
841
+ private readonly sessionOptions;
842
+ private readonly controller;
843
+ private readonly turnExecutors;
844
+ private environment?;
845
+ private activeBudget?;
846
+ constructor(sessionOptions?: CodingActorSessionOptions);
847
+ initialize(): Promise<void>;
848
+ attach(parentCtx: KodaXToolExecutionContext, options: KodaXOptions, callerPath?: string): AgentActorClient;
849
+ rootControl(): AgentActorClient;
850
+ createWorkflowOwner(parentPath: string, runId: string): Promise<AgentActorClient>;
851
+ workflowOwnerSignal(ownerPath: string): AbortSignal;
852
+ settleWorkflowOwner(ownerPath: string, state: 'completed' | 'failed' | 'interrupted', result: AgentExecutionResult & {
853
+ readonly error?: string;
854
+ }): Promise<void>;
855
+ bindActor(actorPath: string): AgentActorClient;
856
+ closeActor(targetPath: string, reason?: string): Promise<void>;
857
+ registerTurnExecutor(key: string, executor: AgentTurnExecutor): () => void;
858
+ waitForAgentCapacity(signal?: AbortSignal): Promise<boolean>;
859
+ close(reason?: string): Promise<void>;
860
+ }
861
+ declare function createLocalCodingActorControl(parentCtx: KodaXToolExecutionContext, options: KodaXOptions): AgentActorClient;
862
+ /** Runtime adapter for detached external Actor turns. The executor plane stays internal. */
863
+ declare function createExternalActorTurnExecutor(binding: AgentExecutorPlaneBinding): AgentTurnExecutor;
864
+
906
865
  /**
907
866
  * FEATURE_218 — KodaX Self-Knowledge Manual types.
908
867
  *
@@ -1340,7 +1299,7 @@ interface ExtensionRuntimeContract extends CapabilityRuntimeContract {
1340
1299
  * Required field on every {@link import('./types.js').LocalToolDefinition}. Used by:
1341
1300
  * - Plan mode: tools with `sideEffect !== 'readonly'` are blocked unless
1342
1301
  * they explicitly opt in via `planModeAllowed: true` (e.g.
1343
- * `exit_plan_mode`, `task_stop`).
1302
+ * `exit_plan_mode`, `interrupt_agent`).
1344
1303
  * - SDK embedders (KodaX Space etc.): iterate `getAllRegisteredTools()`
1345
1304
  * and build their own blocklist by category — replaces the previous
1346
1305
  * practice of hardcoding a `Set<string>` of tool names, which silently
@@ -1371,12 +1330,12 @@ interface ExtensionRuntimeContract extends CapabilityRuntimeContract {
1371
1330
  * state (web_fetch with a mutating method, mcp_call).
1372
1331
  * - `'mutates-state'` — changes internal session/agent state without
1373
1332
  * FS or shell side effects (todo_update,
1374
- * send_message, dispatch_child_task,
1333
+ * send_message, spawn_agent, followup_task,
1375
1334
  * exit_plan_mode, emit_managed_protocol).
1376
1335
  *
1377
- * Pick the dominant effect when a tool touches multiple. e.g. `dispatch_
1378
- * child_task` may transitively run any tool, but its own direct effect is
1379
- * spawning a child agent (`mutates-state`).
1336
+ * Pick the dominant effect when a tool touches multiple. For example,
1337
+ * `spawn_agent` may transitively run any tool, but its own direct effect is
1338
+ * starting an Actor turn (`mutates-state`).
1380
1339
  */
1381
1340
  type ToolSideEffect = 'readonly' | 'reads-network' | 'mutates-fs' | 'mutates-shell' | 'mutates-network' | 'mutates-state';
1382
1341
 
@@ -1533,8 +1492,8 @@ type TodoEvaluatorHint = 'build' | 'test' | 'lint';
1533
1492
  * steps don't need it; weaker models reach the API more easily without
1534
1493
  * the forced second-string burden.
1535
1494
  *
1536
- * `owner` partitions the list when child agents run in parallel under
1537
- * `dispatch_child_task`; "main" is the parent thread.
1495
+ * `owner` partitions the list when child Actors run in parallel;
1496
+ * "main" is the parent thread.
1538
1497
  */
1539
1498
  interface TodoItem {
1540
1499
  readonly id: string;
@@ -1902,7 +1861,7 @@ interface KodaXEvents {
1902
1861
  * (`agent_completed` / `agent_unverified` / `agent_failed` /
1903
1862
  * `agent_summary_updated`). The REPL formats each via `formatWorkflowAgentDigest`
1904
1863
  * and writes it to the transcript — matching the slash `/workflow` path and
1905
- * `dispatch_child_task` children, whose summaries persist in scrollback.
1864
+ * Actor children, whose summaries persist in scrollback.
1906
1865
  */
1907
1866
  onWorkflowAgentDigest?: (event: KodaXWorkflowAgentDigestEvent & Partial<KodaXLiveEventMeta>) => void;
1908
1867
  /**
@@ -2344,7 +2303,14 @@ interface KodaXChildFinding {
2344
2303
  readonly evidence: readonly string[];
2345
2304
  readonly artifacts: readonly string[];
2346
2305
  }
2347
- type KodaXAgentMode = 'ama' | 'sa' | 'amaw';
2306
+ type KodaXAgentMode = 'ama' | 'sa'
2307
+ /** @deprecated AMAW was merged into AMA in v0.7.72; accepted as an input alias only. */
2308
+ | 'amaw';
2309
+ type KodaXCanonicalAgentMode = Exclude<KodaXAgentMode, 'amaw'>;
2310
+ /** Normalize the retired AMAW spelling at every public SDK entry boundary. */
2311
+ declare function normalizeKodaXAgentMode(mode: KodaXAgentMode): KodaXCanonicalAgentMode;
2312
+ declare function normalizeKodaXAgentMode(mode: undefined): undefined;
2313
+ declare function normalizeKodaXAgentMode(mode: KodaXAgentMode | undefined): KodaXCanonicalAgentMode | undefined;
2348
2314
  type KodaXMemoryStrategy = 'continuous' | 'compact' | 'reset-handoff';
2349
2315
  type KodaXBudgetDisclosureZone = 'green' | 'yellow' | 'orange' | 'red';
2350
2316
  interface KodaXManagedTaskHarnessTransition {
@@ -2585,11 +2551,40 @@ interface KodaXSkillScriptRunner {
2585
2551
  }): Promise<string>;
2586
2552
  dispose(): Promise<void>;
2587
2553
  }
2554
+ /** Trusted coding host bridge; lifecycle state remains owned by the Agent controller. */
2555
+ interface KodaXActorHost {
2556
+ createWorkflowOwner(parentPath: string, runId: string): Promise<AgentActorClient>;
2557
+ workflowOwnerSignal(ownerPath: string): AbortSignal;
2558
+ settleWorkflowOwner(ownerPath: string, state: 'completed' | 'failed' | 'interrupted', result: AgentExecutionResult & {
2559
+ readonly error?: string;
2560
+ }): Promise<void>;
2561
+ bindActor(actorPath: string): AgentActorClient;
2562
+ closeActor(targetPath: string, reason?: string): Promise<void>;
2563
+ registerTurnExecutor(key: string, executor: AgentTurnExecutor): () => void;
2564
+ waitForAgentCapacity(signal?: AbortSignal): Promise<boolean>;
2565
+ }
2566
+ interface KodaXManagedWorkBudget {
2567
+ totalBudget: number;
2568
+ spentBudget: number;
2569
+ currentHarness: KodaXHarnessProfile;
2570
+ upgradeCeiling?: KodaXHarnessProfile;
2571
+ lastApprovalBudgetTotal?: number;
2572
+ }
2588
2573
  interface KodaXContextOptions {
2574
+ /** Runtime-internal shared work ledger inherited by every descendant Agent run. */
2575
+ managedWorkBudget?: KodaXManagedWorkBudget;
2589
2576
  /** FEATURE_260 runtime-owned identity used for scoped memory reads. */
2590
2577
  memoryIdentity?: MemoryContextIdentity;
2591
2578
  /** Runtime-built F228 pack reused by prompt rendering and MemorySession. */
2592
2579
  memoryPack?: MemoryPack;
2580
+ /** Runtime-minted collaboration principal for this actor execution. */
2581
+ actorControl?: AgentActorClient;
2582
+ /** Trusted host operations that are intentionally absent from model-facing clients. */
2583
+ actorHost?: KodaXActorHost;
2584
+ /** Runtime-owned session Actor tree; attached when a root run builds its tool context. */
2585
+ actorSession?: CodingActorSession;
2586
+ /** Host attribution for an explicit Workflow command, SDK request, or natural-language product word. */
2587
+ workflowIntent?: 'explicit';
2593
2588
  /** Project root used for project-scoped prompts, permissions, and path policy. */
2594
2589
  gitRoot?: string | null;
2595
2590
  /**
@@ -2727,15 +2722,6 @@ interface KodaXContextOptions {
2727
2722
  * than the top-level Worker.
2728
2723
  */
2729
2724
  parentAgentId?: string;
2730
- /**
2731
- * FEATURE_123 v0.7.44 — when set, the spawned runtime's
2732
- * `ctx.childTaskRegistry` reuses this Map instead of allocating a
2733
- * fresh one. Children pass the parent's registry through so peer
2734
- * routing (`send_message` to a sibling task_id) finds the target.
2735
- * Children remain unable to mutate the registry because
2736
- * `dispatch_child_task` stays in `CHILD_EXCLUDE_TOOLS_BASE`.
2737
- */
2738
- inheritedChildTaskRegistry?: ChildTaskRegistry<KodaXChildExecutionResult>;
2739
2725
  /**
2740
2726
  * FEATURE_192 v0.7.44 Phase F — `/goal` runtime binding.
2741
2727
  *
@@ -2830,6 +2816,8 @@ interface KodaXOptions {
2830
2816
  thinking?: boolean;
2831
2817
  reasoningMode?: KodaXReasoningMode;
2832
2818
  agentMode?: KodaXAgentMode;
2819
+ /** Total concurrent Agent turns for one session, including the root. Defaults to 4. */
2820
+ maxConcurrentThreadsPerSession?: number;
2833
2821
  maxIter?: number;
2834
2822
  session?: KodaXSessionOptions;
2835
2823
  context?: KodaXContextOptions;
@@ -3177,6 +3165,12 @@ interface KodaXResult {
3177
3165
  interface KodaXToolExecutionContext {
3178
3166
  /** File backups for undo functionality - 文件备份用于撤销功能 */
3179
3167
  backups: Map<string, string>;
3168
+ /** Runtime-minted collaboration principal; model inputs cannot replace its caller path. */
3169
+ actorControl?: AgentActorClient;
3170
+ /** Shared root-run work ledger; descendant runtimes retain this exact object. */
3171
+ managedWorkBudget?: KodaXManagedWorkBudget;
3172
+ /** Trusted host operations that are intentionally absent from model-facing clients. */
3173
+ actorHost?: KodaXActorHost;
3180
3174
  /** FEATURE_260: current exactly-scoped read-only MemorySession query binding. */
3181
3175
  memoryRecall?: (need: string) => Promise<{
3182
3176
  readonly content: string;
@@ -3301,22 +3295,13 @@ interface KodaXToolExecutionContext {
3301
3295
  readonly repoIntelligenceMode?: KodaXRepoIntelligenceMode;
3302
3296
  readonly repoIntelligenceTrace?: boolean;
3303
3297
  };
3304
- /**
3305
- * Parent SDK/REPL callback surface available to child-dispatch tools.
3306
- * `dispatch_child_task` uses this to preserve live child telemetry without
3307
- * copying every callback onto KodaXToolExecutionContext as a separate field.
3308
- */
3298
+ /** Parent SDK/REPL callback surface used to preserve nested Agent telemetry. */
3309
3299
  parentEvents?: KodaXEvents;
3310
3300
  /**
3311
3301
  * FEATURE_123 v0.7.44 — agentId of the agent whose tool call this
3312
3302
  * context backs. `undefined` for the top-level Worker (main runtime
3313
3303
  * loop); set to the child's `bundle.id` for sub-agent runtimes.
3314
3304
  *
3315
- * Consumed by `send_message` to:
3316
- * - know who "self" is for broadcast self-exclusion and for the
3317
- * `from=...` framing tag,
3318
- * - reject self-targeted sends as a single-hop cycle guard.
3319
- *
3320
3305
  * Wired by `child-executor.executeReadChild` / `executeWriteChild`
3321
3306
  * via `options.context.currentAgentId`.
3322
3307
  */
@@ -3328,31 +3313,13 @@ interface KodaXToolExecutionContext {
3328
3313
  * `'worker'` sentinel rather than an agentId). Set for grand-child
3329
3314
  * runtimes whose parent is itself a child.
3330
3315
  *
3331
- * Consumed by `send_message` when `to === 'worker'`:
3332
- * - If `parentAgentId` is set, route to that specific id.
3333
- * - If `parentAgentId` is undefined, route to `agentId: undefined`
3334
- * (the main loop / top Worker).
3335
3316
  */
3336
3317
  parentAgentId?: string;
3337
3318
  /**
3338
3319
  * FEATURE_123 v0.7.44 — per-turn `send_message` flood throttle counter.
3339
3320
  *
3340
- * Mutable ref that the `send_message` tool increments on every
3341
- * outbound enqueue (broadcast counts as N — one per recipient).
3342
- * `runner-driven.ts`' `beforeNextTurn` resets `count = 0` at every
3343
- * turn boundary so the limit is "per LLM turn", matching the
3344
- * design's "≤5 per child-turn / ≤20 per Worker-turn".
3345
- *
3346
- * The cap chosen by `send_message` is per-call:
3347
- * - Worker (`currentAgentId === undefined`): 20 outbound enqueues
3348
- * per turn — Worker is the coordinator + has the higher fan-out
3349
- * budget.
3350
- * - Child (`currentAgentId !== undefined`): 5 outbound enqueues
3351
- * per turn — peer chatter that goes over this is almost always
3352
- * a misfire (storm vs coordination).
3353
- *
3354
- * When undefined (sync-mode dispatch, no async substrate), the
3355
- * throttle is bypassed.
3321
+ * Legacy-compatible per-turn collaboration throttle counter. Actor controls
3322
+ * enforce their own topology and permission limits.
3356
3323
  */
3357
3324
  sendMessageTurnCounter?: {
3358
3325
  count: number;
@@ -3375,9 +3342,8 @@ interface KodaXToolExecutionContext {
3375
3342
  */
3376
3343
  planModeBlockCheck?: (tool: string, input: Record<string, unknown>) => string | null;
3377
3344
  /**
3378
- * FEATURE_092 phase 2b.7b slice D: parent-Runner guardrails surfaced into the
3379
- * tool-execution context so `dispatch_child_task` can forward them to the
3380
- * child's `Runner.run` via `KodaXOptions.guardrails`. Sharing the SAME
3345
+ * Parent-Runner guardrails surfaced into the tool-execution context so nested
3346
+ * Agent turns share the same mutable safety state. Sharing the SAME
3381
3347
  * guardrail instance means the auto-mode `engine` + `denialTracker` +
3382
3348
  * `circuitBreaker` state is observed across the parent/child boundary —
3383
3349
  * rate-limit by hitting the threshold from a fresh tracker).
@@ -3456,73 +3422,6 @@ interface KodaXToolExecutionContext {
3456
3422
  * See `packages/coding/src/multi-instance/active-file-warning.ts`.
3457
3423
  */
3458
3424
  siblingSnapshot?: readonly DiscoveredInstance[];
3459
- /**
3460
- * FEATURE_119 v0.7.36 Pattern B: registry of in-flight async child
3461
- * dispatches. When set, `dispatch_child_task` runs in fire-and-forget
3462
- * mode (returns a `task_id` immediately without awaiting). The Worker
3463
- * launches multiple children in parallel; under FEATURE_155 (v0.7.39)
3464
- * idle-yield, the runner-driven outer loop awaits the registered
3465
- * promises on the Worker's behalf and splices a `<task-completed>`
3466
- * banner into the next user turn — the Worker no longer pulls results
3467
- * itself (the legacy `await_child_task` tool was removed in Slice C1).
3468
- *
3469
- * The map's value is the executor's full result promise, identical to
3470
- * what the legacy synchronous dispatch returned.
3471
- *
3472
- * When `undefined`, dispatch falls back to the legacy synchronous path
3473
- * (await inline, return finding text). The registry is populated by
3474
- * `runner-driven.ts` per turn so each agent run has its own registry
3475
- * scope.
3476
- *
3477
- * **v0.7.39 FEATURE_120 Step 0**: the type alias is now imported from
3478
- * `@kodax-ai/agent`'s orchestration layer (`ChildTaskRegistry<T>`).
3479
- * Structure-compatible with the previous `Map<string, Promise<…>>`
3480
- * inline shape — the rename is a packaging-only change per ADR-021.
3481
- * Coding-flavor consumers should keep using
3482
- * `registerChildTask(registry, id, promise)` (also from
3483
- * `@kodax-ai/agent`) to get the FEATURE_155 Bug A cleanup chain
3484
- * built-in.
3485
- */
3486
- childTaskRegistry?: ChildTaskRegistry<KodaXChildExecutionResult>;
3487
- /**
3488
- * FEATURE_120 v0.7.39 Phase 3b: per-child AbortController registry.
3489
- * Provisioned alongside `childTaskRegistry` by `runner-driven.ts`
3490
- * when async dispatch is enabled. `dispatch_child_task` allocates
3491
- * a fresh `AbortController` per child and registers it here under
3492
- * the child's task id; the child's executor receives the controller's
3493
- * signal (chained with the parent's `abortSignal` so EITHER source
3494
- * can cancel the child). The `task_stop` tool looks up the
3495
- * controller and calls `requestTaskStop` to fire the signal.
3496
- *
3497
- * The map is cleaned in the dispatch handler's `.finally` chain
3498
- * alongside the child-task registry cleanup so an aborted or
3499
- * settled child does not leak its controller reference.
3500
- *
3501
- * Undefined in legacy sync-mode dispatch (same gate as
3502
- * `childTaskRegistry`).
3503
- */
3504
- childAbortControllers?: TaskAbortRegistry;
3505
- /**
3506
- * FEATURE_177 v0.7.45 substrate for the `task_output` tool. Per-child
3507
- * runtime snapshot a parent agent can query mid-flight to peek at
3508
- * iteration count + recent tool-call breadcrumbs without waiting for
3509
- * the child's `<task-completed>` banner.
3510
- *
3511
- * Populated by `dispatch_child_task` at launch (`initChildSnapshot`)
3512
- * and at terminal (`finalizeChildSnapshot` in the child promise's
3513
- * inner-IIFE `.finally`). The `task_output` tool reads from this map.
3514
- *
3515
- * Snapshots survive the child task settling (so post-completion peeks
3516
- * work) and are bounded by `CHILD_PROGRESS_SNAPSHOT_CAP` (FIFO prune
3517
- * by `startedAt` when the cap is exceeded). No TTL — snapshots are
3518
- * cleared with the ctx itself when the parent runner exits.
3519
- *
3520
- * Undefined in legacy sync-mode dispatch (same gate as
3521
- * `childTaskRegistry`). Children's own SA contexts do NOT inherit
3522
- * this map (verified by `buildToolExecutionContext` not forwarding
3523
- * it into child `runKodaX` calls).
3524
- */
3525
- childProgressSnapshots?: Map<string, ChildProgressSnapshot>;
3526
3425
  /**
3527
3426
  * FEATURE_192 v0.7.44 — `/goal` Persistent Goal runtime hook.
3528
3427
  *
@@ -3542,15 +3441,6 @@ interface KodaXToolExecutionContext {
3542
3441
  * absent in SA / when no runs dir is configured, so the tool fails closed.
3543
3442
  */
3544
3443
  workflowHost?: WorkflowToolHost;
3545
- /**
3546
- * Gap A — run-level progress getters keyed by a background workflow's runId.
3547
- * The async `run_workflow` path registers a getter here on start and removes
3548
- * it when the run settles, so `task_output(runId)` can render live workflow
3549
- * progress (phase + active/finished agents) while it is in flight, instead of
3550
- * `not_found`. Same lifetime as `childAbortControllers` (per ctx). Undefined
3551
- * outside the async/idle-yield path.
3552
- */
3553
- workflowRunProgress?: Map<string, () => WorkflowRunProgressView | undefined>;
3554
3444
  }
3555
3445
  /** Result of a model-launched workflow run (FEATURE_246 Part A2). */
3556
3446
  interface WorkflowToolHostResult {
@@ -3587,40 +3477,12 @@ interface WorkflowToolHostInlineInput {
3587
3477
  readonly source: string;
3588
3478
  readonly args?: unknown;
3589
3479
  readonly resumeFromRunId?: string;
3590
- /**
3591
- * Per-run abort signal, combined with the session signal. Lets the Worker stop
3592
- * THIS running workflow (via task_stop on its task_id) without aborting the
3593
- * whole session — so it can change the goal, stop, and re-run an improved script.
3594
- */
3480
+ /** Per-run abort signal, combined with the session signal. */
3595
3481
  readonly signal?: AbortSignal;
3596
3482
  }
3597
- /**
3598
- * Compact live view of a running workflow. Surfaced so the Worker can peek at a
3599
- * background `run_workflow`'s progress via `task_output(runId)` while it is still
3600
- * in flight (gap A) — otherwise it only ever sees the final `<task-completed>`.
3601
- * Derived on demand from the run's process snapshot; deliberately free of any
3602
- * workflow-layer type import so this module stays dependency-light.
3603
- */
3604
- interface WorkflowRunProgressView {
3605
- readonly status: 'running' | 'completed' | 'failed' | 'stopped';
3606
- readonly workflowName: string;
3607
- /** Active phase title (e.g. "Verify"), when the script uses phases. */
3608
- readonly phase?: string;
3609
- readonly phaseIndex?: number;
3610
- readonly phaseTotal?: number;
3611
- /** Names of the agents currently running. */
3612
- readonly activeAgents: readonly string[];
3613
- readonly completedAgents: number;
3614
- readonly failedAgents: number;
3615
- readonly stoppedAgents: number;
3616
- readonly totalSpawned: number;
3617
- readonly plannedAgents?: number;
3618
- readonly elapsedMs?: number;
3619
- }
3620
3483
  /** ADR-049: a started-but-not-awaited workflow handle. `done` resolves with the
3621
- * terminal result when the run settles the async run_workflow path registers it
3622
- * in the Worker's childTaskRegistry so the idle-yield loop resumes the Worker with
3623
- * the synthesis instead of blocking the turn. */
3484
+ * terminal result when the run settles. The Workflow owner Actor exposes that
3485
+ * result without blocking the launching turn. */
3624
3486
  type WorkflowToolHostStartResult = {
3625
3487
  readonly kind: 'declined';
3626
3488
  readonly reason?: string;
@@ -3630,9 +3492,6 @@ type WorkflowToolHostStartResult = {
3630
3492
  readonly done: Promise<WorkflowToolHostResult>;
3631
3493
  /** Non-blocking diagnostic preflight warnings available immediately at start. */
3632
3494
  readonly workflowQualityWarnings?: readonly string[];
3633
- /** Gap A: on-demand live progress for a `task_output(runId)` peek while the
3634
- * run is in flight. Absent when the host cannot snapshot the run. */
3635
- readonly getProgress?: () => WorkflowRunProgressView | undefined;
3636
3495
  };
3637
3496
  interface WorkflowToolHost {
3638
3497
  /** Start an inline-authored workflow ({manifest, source}) and await its result.
@@ -3794,5 +3653,5 @@ interface CreateBashPrefixExtractorOptions {
3794
3653
  */
3795
3654
  declare function createBashPrefixExtractor(opts: CreateBashPrefixExtractorOptions): BashPrefixExtractor;
3796
3655
 
3797
- export { ALWAYS_RESIDENT_TOOL_NAMES as A, BASH_POLICY_SPEC as B, LSP_SERVERS as aN, LspService as aP, drainPendingSwaps as bA, estimateToolSchemaTokens as bB, extractCommandPrefix as bC, getDefaultLspService as bD, hasPendingSwap as bE, makeDisabledGoalToolsContext as bF, planToolExposure as bG, providerResilienceConfigFromTimeouts as bH, recordCompactionSavings as bI, resolveConstructedAgent as bJ, shouldSkipLlmCompaction as bK, shutdownDefaultLspService as bL, withGoalBeforeNextTurn as bM, withGoalStopHook as bN, workflowStartOutcomeConsumesTurn as bO, buildGoalRuntimeBinding as bu, consumeCompactionCooldown as bv, createBashPrefixExtractor as bw, createCompactionAntiThrashState as bx, createRuntimeContextBudgetSnapshot as by, decideWorkflowInvocation as bz };
3798
- export type { KodaXProviderPolicyHints as $, CapabilityRuntimeContract as C, DiagnosticsRequest as D, ExtensionRuntimeContract as E, FailureStage as F, GoalBlockedResult as G, KodaXContextOptions as H, KodaXContextTokenSnapshot as I, KodaXEffectiveTaskConfig as J, KodaXActivityEventMeta as K, KodaXEvents as L, KodaXLiveEventMeta as M, KodaXManagedBudgetSnapshot as N, KodaXManagedProtocolPayload as O, KodaXManagedTask as P, KodaXManagedTaskRuntimeState as Q, KodaXManagedTaskStatusEvent as R, KodaXManualIndexTopic as S, KodaXManualSource as T, KodaXManualTopic as U, KodaXManualTopicId as V, KodaXManualTopicInput as W, KodaXMemoryStrategy as X, KodaXOptions as Y, KodaXOrchestrationVerdict as Z, KodaXParentReductionContract as _, BashPrefixExtractor as a, ResolveKodaXManualInput as a$, KodaXRepoIntelligenceCapability as a0, KodaXRepoIntelligenceMode as a1, KodaXRepoIntelligenceResolvedMode as a2, KodaXRepoIntelligenceTrace as a3, KodaXRepoIntelligenceTraceEvent as a4, KodaXRepoRoutingSignals as a5, KodaXResult as a6, KodaXRoleRoundSummary as a7, KodaXRuntimeVerificationContract as a8, KodaXSelfManualConfig as a9, KodaXToolEventMeta as aA, KodaXToolExecutionContext as aB, KodaXToolVisibilityMeta as aC, KodaXToolVisibilityPolicy as aD, KodaXTurnCompletedEvent as aE, KodaXTurnDeliveryKind as aF, KodaXTurnFailedEvent as aG, KodaXTurnStartedEvent as aH, KodaXVerificationScorecard as aI, KodaXVerificationScorecardCriterion as aJ, KodaXWorkflowAgentDigestEvent as aK, KodaXWorkflowEventMeta as aL, KodaXWorkflowTimeoutConfig as aM, LspServerInfo as aO, LspServiceConfig as aQ, ProviderExecutionState as aR, ProviderRecoveryEvent as aS, ProviderResilienceConfig as aT, ProviderResiliencePolicy as aU, RecoveryAction as aV, RecoveryDecision as aW, RecoveryLadderStep as aX, RecoveryResult as aY, ResilienceClassification as aZ, ResilienceErrorClass as a_, KodaXSessionControl as aa, KodaXSessionMutators as ab, KodaXSessionOptions as ac, KodaXSidecarMessageEvent as ad, KodaXSkillDynamicContextPolicy as ae, KodaXSkillInvocationContext as af, KodaXSkillMap as ag, KodaXSkillProjectionConfidence as ah, KodaXSkillScriptInputFile as ai, KodaXSkillScriptOutputFile as aj, KodaXSkillScriptRunInput as ak, KodaXSkillScriptRunner as al, KodaXTaskCapabilityHint as am, KodaXTaskContract as an, KodaXTaskEvidenceArtifact as ao, KodaXTaskEvidenceBundle as ap, KodaXTaskEvidenceEntry as aq, KodaXTaskRole as ar, KodaXTaskRoleAssignment as as, KodaXTaskStatus as at, KodaXTaskSurface as au, KodaXTaskToolPolicy as av, KodaXTaskVerificationContract as aw, KodaXTaskVerificationCriterion as ax, KodaXTaskWorkItem as ay, KodaXTimeoutConfig as az, BashPrefixResult as b, ResolveKodaXManualOptions as b0, ResolveKodaXManualResult as b1, RuntimeCompactionSkippedEvent as b2, RuntimeContextBudgetBreakdown as b3, RuntimeContextBudgetRecommendation as b4, RuntimeContextBudgetSnapshot as b5, RuntimeContextBudgetSnapshotInput as b6, RuntimeContextOptimizationProfile as b7, RuntimeContextPressure as b8, RuntimeDefaultsSnapshot as b9, RuntimeToolExposureDecision as ba, RuntimeToolExposureMode as bb, RuntimeToolExposurePlan as bc, RuntimeToolExposurePlanInput as bd, RuntimeToolExposureReason as be, TodoItem as bf, TodoList as bg, TodoStatus as bh, ToolSideEffect as bi, WorkflowHostPolicy as bj, WorkflowInvocationAction as bk, WorkflowInvocationPolicyDecision as bl, WorkflowInvocationPolicyInput as bm, WorkflowInvocationSource as bn, WorkflowRunProgressView as bo, WorkflowStartOutcome as bp, WorkflowToolHost as bq, WorkflowToolHostInlineInput as br, WorkflowToolHostResult as bs, WorkflowToolHostStartResult as bt, BoundExtensionRuntimeController as c, ChildSnapshotEvent as d, CompactionAntiThrashConfig as e, CompactionAntiThrashState as f, CompactionSavingsDecision as g, CompactionSavingsSample as h, CompactionSkipReason as i, CreateBashPrefixExtractorOptions as j, ExtractCommandPrefixOptions as k, GoalCompleteResult as l, GoalCreateInput as m, GoalLifecycleContext as n, GoalRuntimeBinding as o, GoalRuntimeBindingDeps as p, GoalToolsContext as q, KodaXAgentMode as r, KodaXAgentProfile as s, KodaXAgentScope as t, KodaXBudgetDisclosureZone as u, KodaXBudgetExtensionRequest as v, KodaXChildAgentResult as w, KodaXChildContextBundle as x, KodaXChildExecutionResult as y, KodaXCompactionOverride as z };
3656
+ export { ALWAYS_RESIDENT_TOOL_NAMES as A, BASH_POLICY_SPEC as B, LSP_SERVERS as aQ, LspService as aS, createExternalActorTurnExecutor as bA, createLocalCodingActorControl as bB, createRuntimeContextBudgetSnapshot as bC, decideWorkflowInvocation as bD, drainPendingSwaps as bE, estimateToolSchemaTokens as bF, extractCommandPrefix as bG, getDefaultLspService as bH, hasExplicitNaturalLanguageWorkflowIntent as bI, hasPendingSwap as bJ, makeDisabledGoalToolsContext as bK, normalizeKodaXAgentMode as bL, planToolExposure as bM, providerResilienceConfigFromTimeouts as bN, recordCompactionSavings as bO, resolveConstructedAgent as bP, shouldSkipLlmCompaction as bQ, shutdownDefaultLspService as bR, withGoalBeforeNextTurn as bS, withGoalStopHook as bT, workflowStartOutcomeConsumesTurn as bU, buildGoalRuntimeBinding as bw, consumeCompactionCooldown as bx, createBashPrefixExtractor as by, createCompactionAntiThrashState as bz, CodingActorSession as d };
3657
+ export type { KodaXOptions as $, CapabilityRuntimeContract as C, DiagnosticsRequest as D, ExtensionRuntimeContract as E, FailureStage as F, GoalBlockedResult as G, KodaXChildContextBundle as H, KodaXChildExecutionResult as I, KodaXCompactionOverride as J, KodaXActivityEventMeta as K, KodaXContextOptions as L, KodaXContextTokenSnapshot as M, KodaXEffectiveTaskConfig as N, KodaXEvents as O, KodaXLiveEventMeta as P, KodaXManagedBudgetSnapshot as Q, KodaXManagedProtocolPayload as R, KodaXManagedTask as S, KodaXManagedTaskRuntimeState as T, KodaXManagedTaskStatusEvent as U, KodaXManualIndexTopic as V, KodaXManualSource as W, KodaXManualTopic as X, KodaXManualTopicId as Y, KodaXManualTopicInput as Z, KodaXMemoryStrategy as _, BashPrefixExtractor as a, RecoveryResult as a$, KodaXOrchestrationVerdict as a0, KodaXParentReductionContract as a1, KodaXProviderPolicyHints as a2, KodaXRepoIntelligenceCapability as a3, KodaXRepoIntelligenceMode as a4, KodaXRepoIntelligenceResolvedMode as a5, KodaXRepoIntelligenceTrace as a6, KodaXRepoIntelligenceTraceEvent as a7, KodaXRepoRoutingSignals as a8, KodaXResult as a9, KodaXTaskVerificationCriterion as aA, KodaXTaskWorkItem as aB, KodaXTimeoutConfig as aC, KodaXToolEventMeta as aD, KodaXToolExecutionContext as aE, KodaXToolVisibilityMeta as aF, KodaXToolVisibilityPolicy as aG, KodaXTurnCompletedEvent as aH, KodaXTurnDeliveryKind as aI, KodaXTurnFailedEvent as aJ, KodaXTurnStartedEvent as aK, KodaXVerificationScorecard as aL, KodaXVerificationScorecardCriterion as aM, KodaXWorkflowAgentDigestEvent as aN, KodaXWorkflowEventMeta as aO, KodaXWorkflowTimeoutConfig as aP, LspServerInfo as aR, LspServiceConfig as aT, ProviderExecutionState as aU, ProviderRecoveryEvent as aV, ProviderResilienceConfig as aW, ProviderResiliencePolicy as aX, RecoveryAction as aY, RecoveryDecision as aZ, RecoveryLadderStep as a_, KodaXRoleRoundSummary as aa, KodaXRuntimeVerificationContract as ab, KodaXSelfManualConfig as ac, KodaXSessionControl as ad, KodaXSessionMutators as ae, KodaXSessionOptions as af, KodaXSidecarMessageEvent as ag, KodaXSkillDynamicContextPolicy as ah, KodaXSkillInvocationContext as ai, KodaXSkillMap as aj, KodaXSkillProjectionConfidence as ak, KodaXSkillScriptInputFile as al, KodaXSkillScriptOutputFile as am, KodaXSkillScriptRunInput as an, KodaXSkillScriptRunner as ao, KodaXTaskCapabilityHint as ap, KodaXTaskContract as aq, KodaXTaskEvidenceArtifact as ar, KodaXTaskEvidenceBundle as as, KodaXTaskEvidenceEntry as at, KodaXTaskRole as au, KodaXTaskRoleAssignment as av, KodaXTaskStatus as aw, KodaXTaskSurface as ax, KodaXTaskToolPolicy as ay, KodaXTaskVerificationContract as az, BashPrefixResult as b, ResilienceClassification as b0, ResilienceErrorClass as b1, ResolveKodaXManualInput as b2, ResolveKodaXManualOptions as b3, ResolveKodaXManualResult as b4, RuntimeCompactionSkippedEvent as b5, RuntimeContextBudgetBreakdown as b6, RuntimeContextBudgetRecommendation as b7, RuntimeContextBudgetSnapshot as b8, RuntimeContextBudgetSnapshotInput as b9, RuntimeContextOptimizationProfile as ba, RuntimeContextPressure as bb, RuntimeDefaultsSnapshot as bc, RuntimeToolExposureDecision as bd, RuntimeToolExposureMode as be, RuntimeToolExposurePlan as bf, RuntimeToolExposurePlanInput as bg, RuntimeToolExposureReason as bh, TodoItem as bi, TodoList as bj, TodoStatus as bk, ToolSideEffect as bl, WorkflowHostPolicy as bm, WorkflowInvocationAction as bn, WorkflowInvocationPolicyDecision as bo, WorkflowInvocationPolicyInput as bp, WorkflowInvocationSource as bq, WorkflowStartOutcome as br, WorkflowToolHost as bs, WorkflowToolHostInlineInput as bt, WorkflowToolHostResult as bu, WorkflowToolHostStartResult as bv, BoundExtensionRuntimeController as c, CodingActorSessionOptions as e, CompactionAntiThrashConfig as f, CompactionAntiThrashState as g, CompactionSavingsDecision as h, CompactionSavingsSample as i, CompactionSkipReason as j, CreateBashPrefixExtractorOptions as k, ExtractCommandPrefixOptions as l, GoalCompleteResult as m, GoalCreateInput as n, GoalLifecycleContext as o, GoalRuntimeBinding as p, GoalRuntimeBindingDeps as q, GoalToolsContext as r, KodaXActorHost as s, KodaXAgentMode as t, KodaXAgentProfile as u, KodaXAgentScope as v, KodaXBudgetDisclosureZone as w, KodaXBudgetExtensionRequest as x, KodaXCanonicalAgentMode as y, KodaXChildAgentResult as z };