@kodax-ai/kodax 0.7.56 → 0.7.57

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 (70) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +21 -23
  3. package/README_CN.md +15 -17
  4. package/dist/builtin/code-review/SKILL.md +22 -3
  5. package/dist/chunks/{agent-MAAKRAF2.js → agent-EHWQZA4C.js} +1 -1
  6. package/dist/chunks/argument-completer-AYDAYGKL.js +2 -0
  7. package/dist/chunks/chunk-3WWPJGPQ.js +2 -0
  8. package/dist/chunks/chunk-4SHP3M67.js +2 -0
  9. package/dist/chunks/chunk-KN6IJMTB.js +636 -0
  10. package/dist/chunks/{chunk-ZBK3DZ3S.js → chunk-LZKGOR2C.js} +1 -1
  11. package/dist/chunks/chunk-MJFPFRGK.js +423 -0
  12. package/dist/chunks/chunk-N2N2W3AQ.js +584 -0
  13. package/dist/chunks/chunk-PCPFLPS4.js +5 -0
  14. package/dist/chunks/chunk-TCLSPUTR.js +31 -0
  15. package/dist/chunks/chunk-VACH6QWN.js +315 -0
  16. package/dist/chunks/chunk-YSVPF6SN.js +597 -0
  17. package/dist/chunks/{compaction-config-NAJEEPG5.js → compaction-config-TLDMFMZO.js} +1 -1
  18. package/dist/chunks/{construction-bootstrap-EDDVNP2B.js → construction-bootstrap-55B7Q5RX.js} +4 -4
  19. package/dist/chunks/dist-IE4HVWP7.js +2 -0
  20. package/dist/chunks/dist-IKOK2MJQ.js +2 -0
  21. package/dist/chunks/paste-WTL2XN7P.js +2 -0
  22. package/dist/chunks/utils-EJ2VCRTC.js +2 -0
  23. package/dist/index.d.ts +21 -17
  24. package/dist/index.js +6 -6
  25. package/dist/kodax_cli.js +1098 -1073
  26. package/dist/provider-capabilities.json +986 -197
  27. package/dist/sdk-agent.d.ts +20 -13
  28. package/dist/sdk-agent.js +1 -1
  29. package/dist/sdk-coding.d.ts +140 -110
  30. package/dist/sdk-coding.js +1 -1
  31. package/dist/sdk-llm.d.ts +5 -5
  32. package/dist/sdk-llm.js +1 -1
  33. package/dist/sdk-mcp.d.ts +1 -1
  34. package/dist/sdk-mcp.js +1 -1
  35. package/dist/sdk-media.d.ts +48 -5
  36. package/dist/sdk-media.js +1 -1
  37. package/dist/sdk-repl.d.ts +106 -97
  38. package/dist/sdk-repl.js +1 -1
  39. package/dist/sdk-session.d.ts +6 -6
  40. package/dist/sdk-session.js +1 -1
  41. package/dist/sdk-skills.js +1 -1
  42. package/dist/semantic-worker.js +11 -0
  43. package/dist/types-chunks/{base.d-CwPfI8WQ.d.ts → base.d-BnjQrSVf.d.ts} +36 -6
  44. package/dist/types-chunks/{bash-prefix-extractor.d-DZF1gDDz.d.ts → bash-prefix-extractor.d-BgvMbfq6.d.ts} +190 -135
  45. package/dist/types-chunks/{capsule.d-D0kjnqYy.d.ts → capsule.d-DwJp5r63.d.ts} +14 -11
  46. package/dist/types-chunks/{types.d-BKuHSiR0.d.ts → guardrail.d-BP3yyr6u.d.ts} +3 -121
  47. package/dist/types-chunks/{guardrail.d-DQQknOfb.d.ts → guardrail.d-C1DhxnvC.d.ts} +31 -9
  48. package/dist/types-chunks/{manager.d-DLmDhX3i.d.ts → manager.d-DBD7SOTT.d.ts} +7 -2
  49. package/dist/types-chunks/{process.d-BdiIUr8T.d.ts → process.d-BZncyzEj.d.ts} +2 -1
  50. package/dist/types-chunks/{resolver.d-Djq8KlCE.d.ts → resolver.d-ZvKQgl0X.d.ts} +82 -18
  51. package/dist/types-chunks/{sdk-session-BP6ZNpOp.d.ts → sdk-session-DAScB0rW.d.ts} +6 -4
  52. package/dist/types-chunks/{storage.d-CkydxFsV.d.ts → storage.d-CPvn9qI0.d.ts} +2 -2
  53. package/dist/types-chunks/{types.d-BJmoMf5H.d.ts → types.d-6VOXvF88.d.ts} +101 -22
  54. package/dist/types-chunks/types.d-D8WcfrOD.d.ts +143 -0
  55. package/dist/types-chunks/{utils.d-bC97IuQZ.d.ts → utils.d-CpgVIjYZ.d.ts} +16 -18
  56. package/package.json +11 -6
  57. package/dist/chunks/argument-completer-OWEXGWNL.js +0 -2
  58. package/dist/chunks/chunk-4OHXHC2S.js +0 -314
  59. package/dist/chunks/chunk-5YJIAP6C.js +0 -551
  60. package/dist/chunks/chunk-7EAGBLRV.js +0 -2
  61. package/dist/chunks/chunk-CDGOEK3T.js +0 -31
  62. package/dist/chunks/chunk-DHETLULC.js +0 -425
  63. package/dist/chunks/chunk-JCDO2FR4.js +0 -584
  64. package/dist/chunks/chunk-NZVJ3DFC.js +0 -656
  65. package/dist/chunks/chunk-QI3MRJGU.js +0 -5
  66. package/dist/chunks/chunk-XXQ3RLA2.js +0 -2
  67. package/dist/chunks/dist-2267YGB5.js +0 -2
  68. package/dist/chunks/dist-GW32CHO5.js +0 -2
  69. package/dist/chunks/paste-5IDBBQQ3.js +0 -2
  70. package/dist/chunks/utils-J7XBBZGB.js +0 -2
@@ -1,4 +1,4 @@
1
- import { s as KodaXProviderConfig, n as KodaXMessage, Y as KodaXToolDefinition, G as KodaXReasoningRequest, A as KodaXProviderStreamOptions, L as KodaXStreamResult, a2 as KodaXVerifyCredentialResult, o as KodaXModelDescriptor, r as KodaXProviderCapabilityProfile, D as KodaXReasoningCapability, F as KodaXReasoningOverride } from './types.d-BJmoMf5H.js';
1
+ import { p as KodaXProviderConfig, j as KodaXMessage, _ as KodaXToolDefinition, G as KodaXReasoningRequest, x as KodaXProviderStreamOptions, M as KodaXStreamResult, a4 as KodaXVerifyCredentialResult, k as KodaXModelDescriptor, o as KodaXProviderCapabilityProfile, A as KodaXReasoningCapability, F as KodaXReasoningProfile, m as KodaXNormalizedReasoningRequest, a6 as KodaXWireReasoningEffort } from './types.d-6VOXvF88.js';
2
2
 
3
3
  /**
4
4
  * Retry-After header parsing — FEATURE_130 (v0.7.36).
@@ -89,6 +89,27 @@ declare function extractHeadersFromError(error: unknown): HeadersLike;
89
89
  * Provider 抽象基类 - 所有 Provider 的公共基础
90
90
  */
91
91
 
92
+ /**
93
+ * Passive-learning guard threaded into `withRateLimit`: when the request fails
94
+ * with a reasoning-effort rejection, fire `onRejected` (so the REPL records it)
95
+ * and surface a typed error. `effort` is the value that was on the wire (used
96
+ * when the provider error doesn't echo a value).
97
+ */
98
+ interface ReasoningRejectionGuard {
99
+ readonly model: string;
100
+ readonly effort?: string;
101
+ readonly onRejected?: (event: {
102
+ provider: string;
103
+ model: string;
104
+ effort: string;
105
+ }) => void;
106
+ }
107
+
108
+ interface ResolvedV2ReasoningIntent {
109
+ readonly disabled: boolean;
110
+ readonly effort?: KodaXWireReasoningEffort;
111
+ readonly requestedEffort?: KodaXWireReasoningEffort;
112
+ }
92
113
  /**
93
114
  * FEATURE_130 (v0.7.36): structured payload fired through
94
115
  * `KodaXEvents.onRetryAfter` whenever a provider's `withRateLimit`
@@ -121,6 +142,14 @@ declare abstract class KodaXBaseProvider {
121
142
  * returns `stop_reason: max_tokens`. See `coding/src/agent.ts`.
122
143
  */
123
144
  protected maxOutputTokensOverride?: number;
145
+ /**
146
+ * One-shot flag for the passive-learning self-heal: when a request is
147
+ * rejected for its reasoning-effort value, `withRateLimit` flips this true
148
+ * and retries the SAME turn. The reasoning-application path then drops the
149
+ * effort param so the retry uses the provider default and the user's turn
150
+ * still completes — no interruption, no re-typed query. Cleared on success.
151
+ */
152
+ protected suppressReasoningEffort: boolean;
124
153
  /**
125
154
  * Public setter for the one-shot override above. Callers outside the
126
155
  * provider package (notably the agent loop's escalation branch) use this
@@ -165,6 +194,7 @@ declare abstract class KodaXBaseProvider {
165
194
  * layer sets it — matches third-party Anthropic-compat behavior.
166
195
  */
167
196
  getEffectiveStrictThinkingSignature(model?: string): boolean;
197
+ protected getEffectiveThinkingBudgetCap(model?: string): number | undefined;
168
198
  abstract stream(messages: KodaXMessage[], tools: KodaXToolDefinition[], system: string, reasoning?: boolean | KodaXReasoningRequest, streamOptions?: KodaXProviderStreamOptions, signal?: AbortSignal): Promise<KodaXStreamResult>;
169
199
  supportsNonStreamingFallback(): boolean;
170
200
  complete(_messages: KodaXMessage[], _tools: KodaXToolDefinition[], _system: string, _reasoning?: boolean | KodaXReasoningRequest, _streamOptions?: KodaXProviderStreamOptions, _signal?: AbortSignal): Promise<KodaXStreamResult>;
@@ -194,9 +224,7 @@ declare abstract class KodaXBaseProvider {
194
224
  getCapabilityProfile(): KodaXProviderCapabilityProfile;
195
225
  getConfiguredReasoningCapability(modelOverride?: string): KodaXReasoningCapability;
196
226
  getReasoningCapability(modelOverride?: string): KodaXReasoningCapability;
197
- getReasoningOverride(modelOverride?: string): KodaXReasoningOverride | undefined;
198
- getReasoningOverrideKey(modelOverride?: string): string;
199
- protected persistReasoningCapabilityOverride(capability: KodaXReasoningCapability, modelOverride?: string): void;
227
+ getReasoningProfile(modelOverride?: string): KodaXReasoningProfile | undefined;
200
228
  protected shouldFallbackForReasoningError(error: unknown, ...terms: string[]): boolean;
201
229
  protected shouldFallbackForSpecificReasoningError(error: unknown, ...terms: string[]): boolean;
202
230
  protected shouldFallbackForForcedToolChoiceError(error: unknown): boolean;
@@ -225,7 +253,9 @@ declare abstract class KodaXBaseProvider {
225
253
  protected getApiKey(): string;
226
254
  protected shouldLogStreamDiagnostics(): boolean;
227
255
  protected logStreamDiagnostic(...args: unknown[]): void;
228
- protected normalizeReasoning(reasoning?: boolean | KodaXReasoningRequest): Required<KodaXReasoningRequest>;
256
+ protected normalizeReasoning(reasoning?: boolean | KodaXReasoningRequest): KodaXNormalizedReasoningRequest;
257
+ protected validateExplicitReasoningEffort(reasoning: KodaXNormalizedReasoningRequest, modelOverride?: string): void;
258
+ protected resolveReasoningProfileIntent(reasoning: KodaXNormalizedReasoningRequest, capability: KodaXReasoningProfile, modelOverride?: string): ResolvedV2ReasoningIntent;
229
259
  /**
230
260
  * Called when ECONNRESET/EPIPE is detected, indicating a stale keep-alive
231
261
  * socket. Subclasses should override to rebuild their HTTP client with a
@@ -264,7 +294,7 @@ declare abstract class KodaXBaseProvider {
264
294
  */
265
295
  protected parseContextOverflow(error: unknown): number | undefined;
266
296
  protected isContextOverflowError(error: unknown): boolean;
267
- protected withRateLimit<T>(fn: () => Promise<T>, signal?: AbortSignal, retries?: number, onRateLimit?: (attempt: number, maxRetries: number, delayMs: number) => void, onRetryAfter?: KodaXOnRetryAfterCallback): Promise<T>;
297
+ protected withRateLimit<T>(fn: () => Promise<T>, signal?: AbortSignal, retries?: number, onRateLimit?: (attempt: number, maxRetries: number, delayMs: number) => void, onRetryAfter?: KodaXOnRetryAfterCallback, reasoningGuard?: ReasoningRejectionGuard): Promise<T>;
268
298
  }
269
299
 
270
300
  export { KodaXBaseProvider as K, extractHeadersFromError as e, parseRetryAfter as p };
@@ -1,8 +1,8 @@
1
- import { U as KodaXGoalState, f as AgentMessage, b0 as StopHookFn, a4 as KodaXSessionLineage, W as KodaXJsonValue, P as KodaXExtensionSessionRecord, a9 as KodaXSessionScope, aa as KodaXSessionStorage, Q as KodaXExtensionSessionState, C as ChildTaskRegistry, bl as WorkflowEventCorrelation, s as CompactionUpdate, bx as WorkflowProcessEvent, m as AskUserQuestionOptions, k as AskUserMultiOptions, y as Guardrail, bo as WorkflowIsolation, Y as KodaXSessionArtifactLedgerEntry, aN as SessionErrorMetadata, v as DiscoveredInstance, b4 as TaskAbortRegistry } from './process.d-BdiIUr8T.js';
2
- import { X as KodaXTokenUsage, E as KodaXReasoningMode, n as KodaXMessage, k as KodaXHarnessProfile, S as KodaXTaskWorkIntent, I as KodaXReviewScale, O as KodaXTaskComplexity, a as KodaXAmaFanoutClass, Q as KodaXTaskRoutingDecision, R as KodaXTaskType, J as KodaXRiskLevel, i as KodaXExecutionMode, c as KodaXAmaProfile, d as KodaXAmaTactic, b as KodaXAmaFanoutPolicy } from './types.d-BJmoMf5H.js';
3
- import { Diagnostic, Position, Location, Hover, DocumentSymbol, SymbolInformation } from 'vscode-languageserver-protocol';
1
+ import { U as KodaXGoalState, f as AgentMessage, b0 as StopHookFn, a4 as KodaXSessionLineage, W as KodaXJsonValue, P as KodaXExtensionSessionRecord, a9 as KodaXSessionScope, aa as KodaXSessionStorage, Q as KodaXExtensionSessionState, C as ChildTaskRegistry, bl as WorkflowEventCorrelation, s as CompactionUpdate, bx as WorkflowProcessEvent, m as AskUserQuestionOptions, k as AskUserMultiOptions, y as Guardrail, bo as WorkflowIsolation, Y as KodaXSessionArtifactLedgerEntry, aN as SessionErrorMetadata, v as DiscoveredInstance, b4 as TaskAbortRegistry } from './process.d-BZncyzEj.js';
2
+ import { Z as KodaXTokenUsage, j as KodaXMessage, a6 as KodaXWireReasoningEffort, E as KodaXReasoningMode, g as KodaXHarnessProfile, T as KodaXTaskWorkIntent, I as KodaXReviewScale, P as KodaXTaskComplexity, b as KodaXChildFanoutClass, R as KodaXTaskRoutingDecision, S as KodaXTaskType, J as KodaXRiskLevel, e as KodaXExecutionMode } from './types.d-6VOXvF88.js';
3
+ import { Diagnostic, Position, Location, Hover, DocumentSymbol, SymbolInformation, WorkspaceSymbol, CallHierarchyItem, CallHierarchyIncomingCall, CallHierarchyOutgoingCall } from 'vscode-languageserver-protocol';
4
4
  import { C as CapabilityKind, b as CapabilityResult } from './capability.d-3C62G8Eq.js';
5
- import { K as KodaXBaseProvider } from './base.d-CwPfI8WQ.js';
5
+ import { K as KodaXBaseProvider } from './base.d-BnjQrSVf.js';
6
6
  import { a as CostTracker } from './cost-tracker.d-wRtyEW9d.js';
7
7
 
8
8
  /**
@@ -524,6 +524,16 @@ interface LspClient {
524
524
  references(file: string, position: Position): Promise<Location[]>;
525
525
  /** The document's symbol outline. */
526
526
  documentSymbols(file: string): Promise<Array<DocumentSymbol | SymbolInformation>>;
527
+ /** Project-wide symbols matching a query string. */
528
+ workspaceSymbols(query: string): Promise<Array<SymbolInformation | WorkspaceSymbol>>;
529
+ /** Implementation site(s) of the symbol at a position. */
530
+ implementation(file: string, position: Position): Promise<Location[]>;
531
+ /** Prepare the call hierarchy item(s) for a symbol at a position. */
532
+ prepareCallHierarchy(file: string, position: Position): Promise<CallHierarchyItem[]>;
533
+ /** Incoming callers for a prepared call hierarchy item. */
534
+ incomingCalls(item: CallHierarchyItem): Promise<CallHierarchyIncomingCall[]>;
535
+ /** Outgoing callees for a prepared call hierarchy item. */
536
+ outgoingCalls(item: CallHierarchyItem): Promise<CallHierarchyOutgoingCall[]>;
527
537
  /** Graceful shutdown (await server exit so the OS releases handles). */
528
538
  shutdown(): Promise<void>;
529
539
  /** Synchronous best-effort kill, for a `process.on('exit')` last resort. */
@@ -596,6 +606,16 @@ declare class LspService {
596
606
  getReferences(file: string, position: Position, request?: DiagnosticsRequest): Promise<string>;
597
607
  /** The file's symbol outline, as indented text. */
598
608
  getDocumentSymbols(file: string, request?: DiagnosticsRequest): Promise<string>;
609
+ /** Project-wide symbols matching `query`, across all available language servers. */
610
+ getWorkspaceSymbols(query: string, request?: DiagnosticsRequest): Promise<string>;
611
+ /** Implementation site(s) of the symbol at `position` (0-based), as text. */
612
+ getImplementation(file: string, position: Position, request?: DiagnosticsRequest): Promise<string>;
613
+ /** Prepared call hierarchy item(s) for the symbol at `position` (0-based). */
614
+ getPrepareCallHierarchy(file: string, position: Position, request?: DiagnosticsRequest): Promise<string>;
615
+ /** Incoming callers of the symbol at `position` (0-based). */
616
+ getIncomingCalls(file: string, position: Position, request?: DiagnosticsRequest): Promise<string>;
617
+ /** Outgoing callees of the symbol at `position` (0-based). */
618
+ getOutgoingCalls(file: string, position: Position, request?: DiagnosticsRequest): Promise<string>;
599
619
  /**
600
620
  * Resolve the primary client for a navigation request, opening the file so
601
621
  * the server has current content. Returns guidance text when no server is
@@ -603,6 +623,7 @@ declare class LspService {
603
623
  * NOT silent), or an unsupported message for non-LSP file types.
604
624
  */
605
625
  private navClient;
626
+ private workspaceClients;
606
627
  /** Shut down all spawned servers gracefully (call on session teardown). */
607
628
  shutdownAll(): Promise<void>;
608
629
  /** Synchronous best-effort kill of all servers — for `process.on('exit')`. */
@@ -918,64 +939,6 @@ interface ResolveKodaXManualResult {
918
939
  readonly nextTopics: readonly string[];
919
940
  }
920
941
 
921
- /**
922
- * FEATURE_093 (v0.7.24): minimal contract interfaces for the coding extension
923
- * runtime. Extracted so `@kodax-ai/coding/src/types.ts` can reference the
924
- * extension runtime at the type level without importing `./extensions/runtime.js`,
925
- * which in turn imports from `types.ts` — a cycle that lasted since v0.7.20.
926
- *
927
- * Scope: the capability methods that tool execution consumes, plus optional
928
- * session lifecycle hooks that the coding run loop uses when the runtime
929
- * supports them.
930
- *
931
- * File must have NO imports from `../types.js` (that is the cycle we are
932
- * breaking). Shared capability/session value types come from `@kodax-ai/agent`.
933
- */
934
-
935
- interface ExtensionRuntimeModelSelection {
936
- provider?: string;
937
- model?: string;
938
- }
939
- interface RuntimeDefaultsSnapshot {
940
- activeTools?: string[];
941
- modelSelection: ExtensionRuntimeModelSelection;
942
- thinkingLevel?: KodaXReasoningMode;
943
- }
944
- interface BoundExtensionRuntimeController {
945
- queueUserMessage(message: string | KodaXMessage): void;
946
- getSessionState<T = KodaXJsonValue>(extensionId: string, key: string): T | undefined;
947
- setSessionState(extensionId: string, key: string, value: KodaXJsonValue | undefined): void;
948
- getSessionStateSnapshot(extensionId: string): Record<string, KodaXJsonValue>;
949
- appendSessionRecord(extensionId: string, type: string, data?: KodaXJsonValue, options?: {
950
- dedupeKey?: string;
951
- }): KodaXExtensionSessionRecord;
952
- listSessionRecords(extensionId: string, type?: string): KodaXExtensionSessionRecord[];
953
- clearSessionRecords(extensionId: string, type?: string): number;
954
- getActiveTools(): string[];
955
- setActiveTools(toolNames: string[]): void;
956
- getModelSelection(): ExtensionRuntimeModelSelection;
957
- setModelSelection(next: ExtensionRuntimeModelSelection): void;
958
- getThinkingLevel(): KodaXReasoningMode | undefined;
959
- setThinkingLevel(level: KodaXReasoningMode): void;
960
- }
961
- interface CapabilityRuntimeContract {
962
- searchCapabilities(providerId: string, query: string, options?: {
963
- kind?: CapabilityKind;
964
- limit?: number;
965
- server?: string;
966
- }): Promise<unknown[]>;
967
- describeCapability(providerId: string, capabilityId: string): Promise<unknown>;
968
- executeCapability(providerId: string, capabilityId: string, input: Record<string, unknown>): Promise<CapabilityResult>;
969
- readCapability(providerId: string, capabilityId: string, options?: Record<string, unknown>): Promise<CapabilityResult>;
970
- getCapabilityPrompt(providerId: string, capabilityId: string, args?: Record<string, unknown>): Promise<unknown>;
971
- getCapabilityPromptContext(providerId: string): Promise<string | undefined>;
972
- }
973
- interface ExtensionRuntimeContract extends CapabilityRuntimeContract {
974
- getDefaults?(): RuntimeDefaultsSnapshot;
975
- bindController?(controller: BoundExtensionRuntimeController): (() => void) | void;
976
- hydrateSession?(sessionId: string): Promise<void>;
977
- }
978
-
979
942
  /**
980
943
  * KodaX Provider Resilience Types (Feature 045)
981
944
  *
@@ -1107,6 +1070,92 @@ interface ProviderResiliencePolicy extends ProviderResilienceConfig {
1107
1070
  provider: string;
1108
1071
  }
1109
1072
 
1073
+ interface KodaXLlmTimeoutConfig {
1074
+ /** Main provider request hard timeout, in seconds. Default 600s. */
1075
+ readonly requestTimeoutSec?: number;
1076
+ /** Idle timeout between stream deltas, in seconds. Set 0 to disable. Default 0. */
1077
+ readonly streamIdleTimeoutSec?: number;
1078
+ /** Per stream chunk timeout, in seconds. Default 30s. */
1079
+ readonly chunkTimeoutSec?: number;
1080
+ /** Maximum retry delay, in seconds. Default 60s. */
1081
+ readonly maxRetryDelaySec?: number;
1082
+ }
1083
+ interface KodaXWorkflowTimeoutConfig {
1084
+ /** Workflow harness generation LLM call timeout, in seconds. Default 120s. */
1085
+ readonly generationTimeoutSec?: number;
1086
+ }
1087
+ /**
1088
+ * Public timeout budgets for user-facing waits. Internal cleanup and
1089
+ * resource-protection watchdogs intentionally stay outside this SDK contract.
1090
+ */
1091
+ interface KodaXTimeoutConfig {
1092
+ readonly llm?: KodaXLlmTimeoutConfig;
1093
+ readonly workflow?: KodaXWorkflowTimeoutConfig;
1094
+ }
1095
+ declare function timeoutSecToMs(value: number | undefined, label: string, opts?: {
1096
+ readonly allowZero?: boolean;
1097
+ }): number | undefined;
1098
+ declare function parseTimeoutSecEnvMs(raw: string | undefined): number | undefined;
1099
+ declare function providerResilienceConfigFromTimeouts(timeouts: KodaXTimeoutConfig | undefined): ProviderResilienceConfig | undefined;
1100
+
1101
+ /**
1102
+ * FEATURE_093 (v0.7.24): minimal contract interfaces for the coding extension
1103
+ * runtime. Extracted so `@kodax-ai/coding/src/types.ts` can reference the
1104
+ * extension runtime at the type level without importing `./extensions/runtime.js`,
1105
+ * which in turn imports from `types.ts` — a cycle that lasted since v0.7.20.
1106
+ *
1107
+ * Scope: the capability methods that tool execution consumes, plus optional
1108
+ * session lifecycle hooks that the coding run loop uses when the runtime
1109
+ * supports them.
1110
+ *
1111
+ * File must have NO imports from `../types.js` (that is the cycle we are
1112
+ * breaking). Shared capability/session value types come from `@kodax-ai/agent`.
1113
+ */
1114
+
1115
+ interface ExtensionRuntimeModelSelection {
1116
+ provider?: string;
1117
+ model?: string;
1118
+ }
1119
+ interface RuntimeDefaultsSnapshot {
1120
+ activeTools?: string[];
1121
+ modelSelection: ExtensionRuntimeModelSelection;
1122
+ thinkingLevel?: KodaXWireReasoningEffort;
1123
+ }
1124
+ interface BoundExtensionRuntimeController {
1125
+ queueUserMessage(message: string | KodaXMessage): void;
1126
+ getSessionState<T = KodaXJsonValue>(extensionId: string, key: string): T | undefined;
1127
+ setSessionState(extensionId: string, key: string, value: KodaXJsonValue | undefined): void;
1128
+ getSessionStateSnapshot(extensionId: string): Record<string, KodaXJsonValue>;
1129
+ appendSessionRecord(extensionId: string, type: string, data?: KodaXJsonValue, options?: {
1130
+ dedupeKey?: string;
1131
+ }): KodaXExtensionSessionRecord;
1132
+ listSessionRecords(extensionId: string, type?: string): KodaXExtensionSessionRecord[];
1133
+ clearSessionRecords(extensionId: string, type?: string): number;
1134
+ getActiveTools(): string[];
1135
+ setActiveTools(toolNames: string[]): void;
1136
+ getModelSelection(): ExtensionRuntimeModelSelection;
1137
+ setModelSelection(next: ExtensionRuntimeModelSelection): void;
1138
+ getThinkingLevel(): KodaXWireReasoningEffort | undefined;
1139
+ setThinkingLevel(level: KodaXWireReasoningEffort): void;
1140
+ }
1141
+ interface CapabilityRuntimeContract {
1142
+ searchCapabilities(providerId: string, query: string, options?: {
1143
+ kind?: CapabilityKind;
1144
+ limit?: number;
1145
+ server?: string;
1146
+ }): Promise<unknown[]>;
1147
+ describeCapability(providerId: string, capabilityId: string): Promise<unknown>;
1148
+ executeCapability(providerId: string, capabilityId: string, input: Record<string, unknown>): Promise<CapabilityResult>;
1149
+ readCapability(providerId: string, capabilityId: string, options?: Record<string, unknown>): Promise<CapabilityResult>;
1150
+ getCapabilityPrompt(providerId: string, capabilityId: string, args?: Record<string, unknown>): Promise<unknown>;
1151
+ getCapabilityPromptContext(providerId: string): Promise<string | undefined>;
1152
+ }
1153
+ interface ExtensionRuntimeContract extends CapabilityRuntimeContract {
1154
+ getDefaults?(): RuntimeDefaultsSnapshot;
1155
+ bindController?(controller: BoundExtensionRuntimeController): (() => void) | void;
1156
+ hydrateSession?(sessionId: string): Promise<void>;
1157
+ }
1158
+
1110
1159
  /**
1111
1160
  * FEATURE_200 Phase F (v0.7.45) — Todo domain types extracted from types.ts.
1112
1161
  * Self-contained (no other coding-type deps); re-exported from ../types.ts
@@ -1203,12 +1252,11 @@ type TodoList = readonly TodoItem[];
1203
1252
  * from types.ts. Self-contained; re-exported from ../types.ts (and 4 members
1204
1253
  * re-imported there for internal use). `../types` importers unaffected.
1205
1254
  */
1206
- type KodaXRepoIntelligenceMode = 'auto' | 'off' | 'oss' | 'premium-shared' | 'premium-native';
1207
- type KodaXRepoIntelligenceResolvedMode = 'off' | 'oss' | 'premium-shared' | 'premium-native';
1255
+ type KodaXRepoIntelligenceMode = 'auto' | 'off' | 'light' | 'full';
1256
+ type KodaXRepoIntelligenceResolvedMode = 'off' | 'light' | 'full';
1208
1257
  interface KodaXRepoIntelligenceCapability {
1209
1258
  mode: KodaXRepoIntelligenceResolvedMode;
1210
- engine: 'oss' | 'premium';
1211
- bridge: 'none' | 'shared' | 'native';
1259
+ engine: 'light' | 'full';
1212
1260
  level: 'basic' | 'enhanced';
1213
1261
  status: 'ok' | 'limited' | 'unavailable' | 'warming';
1214
1262
  warnings: string[];
@@ -1216,12 +1264,9 @@ interface KodaXRepoIntelligenceCapability {
1216
1264
  }
1217
1265
  interface KodaXRepoIntelligenceTrace {
1218
1266
  mode: KodaXRepoIntelligenceResolvedMode;
1219
- engine: 'oss' | 'premium';
1220
- bridge: 'none' | 'shared' | 'native';
1267
+ engine: 'light' | 'full';
1221
1268
  triggeredAt: string;
1222
- source: 'fallback' | 'premium';
1223
- daemonLatencyMs?: number;
1224
- cliLatencyMs?: number;
1269
+ source: 'light' | 'full';
1225
1270
  cacheHit?: boolean;
1226
1271
  capsuleBytes?: number;
1227
1272
  capsuleEstimatedTokens?: number;
@@ -1377,8 +1422,7 @@ interface KodaXEvents {
1377
1422
  * Fires whenever a provider's `withRateLimit` loop catches a 429 /
1378
1423
  * 503 / 529 (overloaded) response and decides to wait before
1379
1424
  * retrying. Supersedes the legacy `onProviderRateLimit` (kept for
1380
- * back-compat) by carrying the parsed source of the wait duration —
1381
- * UI layers (InkREPL spinner, cost tracker) can surface the
1425
+ * back-compat) by carrying the parsed source of the wait duration — * UI layers (InkREPL spinner, cost tracker) can surface the
1382
1426
  * difference between "provider told us to wait 45s" and "no header,
1383
1427
  * we're guessing 4s exp-backoff".
1384
1428
  *
@@ -1396,6 +1440,16 @@ interface KodaXEvents {
1396
1440
  attempt: number;
1397
1441
  maxAttempts: number;
1398
1442
  }, meta?: KodaXActivityEventMeta) => void;
1443
+ /**
1444
+ * Passive capability learning — fired when a provider HARD-rejects a
1445
+ * reasoning-effort value. The REPL records it in `capability-cache.json` so
1446
+ * the rung is narrowed out of the ladder and never offered/sent again.
1447
+ */
1448
+ onReasoningEffortRejected?: (event: {
1449
+ provider: string;
1450
+ model: string;
1451
+ effort: string;
1452
+ }) => void;
1399
1453
  onRepoIntelligenceTrace?: (event: KodaXRepoIntelligenceTraceEvent) => void;
1400
1454
  /**
1401
1455
  * Fired when the Sidecar Verifier produces an actionable message.
@@ -1470,7 +1524,7 @@ interface KodaXEvents {
1470
1524
  beforeToolExecute?: (tool: string, input: Record<string, unknown>, meta?: KodaXToolEventMeta) => Promise<boolean | string>;
1471
1525
  /** Ask user a question interactively - Issue 069 - 交互式向用户提问 */
1472
1526
  askUser?: (options: AskUserQuestionOptions, meta?: KodaXToolEventMeta) => Promise<string>;
1473
- /** Ask user multiple independent questions sequentially - 多问题顺序提问 */
1527
+ /** Ask user multiple independent questions sequentially - 澶氶棶棰橀『搴忔彁闂?*/
1474
1528
  askUserMulti?: (options: AskUserMultiOptions, meta?: KodaXToolEventMeta) => Promise<Record<string, string> | undefined>;
1475
1529
  /** Ask user for free-text input - 自由文本输入 (Issue 112) */
1476
1530
  askUserInput?: (options: {
@@ -1659,7 +1713,7 @@ interface KodaXTaskToolPolicy {
1659
1713
  }
1660
1714
  interface KodaXChildContextBundle {
1661
1715
  id: string;
1662
- fanoutClass: KodaXAmaFanoutClass;
1716
+ fanoutClass: KodaXChildFanoutClass;
1663
1717
  objective: string;
1664
1718
  scopeSummary?: string;
1665
1719
  evidenceRefs: string[];
@@ -1700,6 +1754,8 @@ interface KodaXChildContextBundle {
1700
1754
  */
1701
1755
  provider?: string;
1702
1756
  model?: string;
1757
+ /** Optional per-dispatch reasoning effort. Omit to inherit the parent effort. */
1758
+ effort?: KodaXWireReasoningEffort;
1703
1759
  }
1704
1760
  /**
1705
1761
  * FEATURE_120 v0.7.39 Phase 4 — model tier hint. Tier semantics:
@@ -1714,7 +1770,7 @@ interface KodaXChildContextBundle {
1714
1770
  type KodaXChildModelHint = 'fast' | 'balanced' | 'deep';
1715
1771
  interface KodaXChildAgentResult {
1716
1772
  childId: string;
1717
- fanoutClass: KodaXAmaFanoutClass;
1773
+ fanoutClass: KodaXChildFanoutClass;
1718
1774
  status: 'completed' | 'blocked' | 'failed';
1719
1775
  disposition: 'candidate' | 'valid' | 'false-positive' | 'needs-more-evidence';
1720
1776
  summary: string;
@@ -1767,46 +1823,6 @@ interface KodaXChildFinding {
1767
1823
  readonly evidence: readonly string[];
1768
1824
  readonly artifacts: readonly string[];
1769
1825
  }
1770
- interface KodaXFanoutSchedulerInput {
1771
- profile: KodaXAmaProfile;
1772
- fanoutClass: KodaXAmaFanoutClass;
1773
- maxChildren?: number;
1774
- bundles: KodaXChildContextBundle[];
1775
- reductionStrategy: KodaXParentReductionContract['strategy'];
1776
- }
1777
- type KodaXFanoutBranchLifecycle = 'scheduled' | 'deferred' | 'completed' | 'cancelled';
1778
- interface KodaXFanoutBranchRecord {
1779
- bundleId: string;
1780
- status: KodaXFanoutBranchLifecycle;
1781
- workerId?: string;
1782
- childId?: string;
1783
- reason?: string;
1784
- }
1785
- type KodaXFanoutBranchTransition = {
1786
- type: 'assign';
1787
- bundleId: string;
1788
- workerId: string;
1789
- } | {
1790
- type: 'complete';
1791
- bundleId: string;
1792
- childId?: string;
1793
- } | {
1794
- type: 'cancel';
1795
- bundleId: string;
1796
- reason: string;
1797
- };
1798
- interface KodaXFanoutSchedulerPlan {
1799
- enabled: boolean;
1800
- profile: KodaXAmaProfile;
1801
- fanoutClass: KodaXAmaFanoutClass;
1802
- branches: KodaXFanoutBranchRecord[];
1803
- scheduledBundleIds: string[];
1804
- deferredBundleIds: string[];
1805
- maxParallel: number;
1806
- mergeStrategy: KodaXParentReductionContract['strategy'];
1807
- cancellationPolicy: 'none' | 'winner-cancel' | 'budget-cancel';
1808
- reason: string;
1809
- }
1810
1826
  type KodaXAgentMode = 'ama' | 'sa' | 'amaw';
1811
1827
  type KodaXMemoryStrategy = 'continuous' | 'compact' | 'reset-handoff';
1812
1828
  type KodaXBudgetDisclosureZone = 'green' | 'yellow' | 'orange' | 'red';
@@ -1837,7 +1853,7 @@ interface KodaXManagedTaskStatusEvent {
1837
1853
  harnessProfile: KodaXHarnessProfile;
1838
1854
  activeWorkerId?: string;
1839
1855
  activeWorkerTitle?: string;
1840
- childFanoutClass?: KodaXAmaFanoutClass;
1856
+ childFanoutClass?: KodaXChildFanoutClass;
1841
1857
  childFanoutCount?: number;
1842
1858
  currentRound?: number;
1843
1859
  maxRounds?: number;
@@ -1878,8 +1894,7 @@ interface KodaXManagedTaskStatusEvent {
1878
1894
  * can tell how many outstanding pieces of work are pending. 0 with
1879
1895
  * `idleWaiting=true` is the transitional "background banner queued,
1880
1896
  * registry already drained" state (fast-child race recovery path,
1881
- * see FEATURE_155 hotfix follow-up #2) and renders as "idle —
1882
- * resuming".
1897
+ * see FEATURE_155 hotfix follow-up #2) and renders as "idle — * resuming".
1883
1898
  */
1884
1899
  idleWaitingPendingCount?: number;
1885
1900
  }
@@ -1944,10 +1959,30 @@ interface KodaXManagedBudgetSnapshot {
1944
1959
  extensionDenied?: boolean;
1945
1960
  extensionReason?: string;
1946
1961
  }
1947
- /** Mutable tracker for Scout mutation scope shared between worker events and protocol tool. */
1962
+ /** Mutable tracker for filesystem/shell mutations observed during managed Worker execution. */
1948
1963
  interface ManagedMutationTracker {
1949
1964
  readonly files: Map<string, number>;
1950
1965
  totalOps: number;
1966
+ /**
1967
+ * Count of high-risk shell mutations (git push/commit/rm, npm install/publish,
1968
+ * rm/mv/cp, etc.) the Worker ran via `bash`. Tracked separately from `totalOps`
1969
+ * because bash writes are a blind spot — we cannot know which file / how many
1970
+ * lines a shell command touched — so the Verifier gate fires conservatively on
1971
+ * any risky shell op rather than inferring risk back out of `totalOps`.
1972
+ * Optional: defaults to 0 when absent (read as `riskyShellOps ?? 0`).
1973
+ */
1974
+ riskyShellOps?: number;
1975
+ /**
1976
+ * Count of filesystem mutations whose touched file could NOT be attributed
1977
+ * from the tool input (the path is computed inside the handler): `undo`,
1978
+ * `worktree_create` / `worktree_remove`, `stage_construction` /
1979
+ * `stage_agent_construction`, or `stage_self_modify`. These bump `totalOps`
1980
+ * but leave `files` empty,
1981
+ * so without a separate count they would look like trivial no-op work to the
1982
+ * Verifier gate. Like `riskyShellOps`, an unattributable write is a blind spot
1983
+ * the gate fires on conservatively. Optional: read as `unattributedWriteOps ?? 0`.
1984
+ */
1985
+ unattributedWriteOps?: number;
1951
1986
  /** Set to true after scope reflection has been injected once. Prevents repeated injection. */
1952
1987
  reflectionInjected?: boolean;
1953
1988
  }
@@ -1982,8 +2017,7 @@ interface KodaXContextOptions {
1982
2017
  /**
1983
2018
  * FEATURE_087/088 (v0.7.28): when true, the prompt builder injects a
1984
2019
  * Tool Construction section that orients the LLM to the
1985
- * scaffold_tool → validate_tool → stage_construction → test_tool →
1986
- * activate_tool staircase. Off by default; the surrounding agent (REPL
2020
+ * scaffold_tool → validate_tool → stage_construction → test_tool → * activate_tool staircase. Off by default; the surrounding agent (REPL
1987
2021
  * config or task router) flips this on when self-construction is
1988
2022
  * authorized for the session. The corresponding builtin tool handlers
1989
2023
  * are still gated independently by the active-tool set.
@@ -2117,6 +2151,7 @@ interface KodaXOptions {
2117
2151
  provider: string;
2118
2152
  model?: string;
2119
2153
  modelOverride?: string;
2154
+ effort?: KodaXWireReasoningEffort;
2120
2155
  thinking?: boolean;
2121
2156
  reasoningMode?: KodaXReasoningMode;
2122
2157
  agentMode?: KodaXAgentMode;
@@ -2156,6 +2191,12 @@ interface KodaXOptions {
2156
2191
  * and `~/.kodax/config.json`. See {@link KodaXCompactionOverride}.
2157
2192
  */
2158
2193
  compaction?: KodaXCompactionOverride;
2194
+ /**
2195
+ * SDK-consumer timeout budgets for user-facing waits. Values are seconds at
2196
+ * the public API boundary; KodaX converts them to milliseconds internally.
2197
+ * This does not control internal cleanup/resource-protection watchdogs.
2198
+ */
2199
+ timeouts?: KodaXTimeoutConfig;
2159
2200
  }
2160
2201
  /**
2161
2202
  * Low-level mutators handed to a `KodaXSessionControl` by the substrate.
@@ -2227,6 +2268,7 @@ interface KodaXTaskEvidenceArtifact {
2227
2268
  description?: string;
2228
2269
  }
2229
2270
  type KodaXImageMediaType = 'image/png' | 'image/jpeg' | 'image/webp' | 'image/gif';
2271
+ type KodaXVideoMediaType = 'video/mp4' | 'video/mpeg' | 'video/quicktime' | 'video/x-msvideo' | 'video/x-flv' | 'video/webm' | 'video/x-ms-wmv' | 'video/3gpp';
2230
2272
  type KodaXInputArtifactSource = 'user-inline' | 'clipboard' | 'drag-drop' | 'file-picker';
2231
2273
  interface KodaXImageInputArtifact {
2232
2274
  readonly kind: 'image';
@@ -2235,7 +2277,24 @@ interface KodaXImageInputArtifact {
2235
2277
  readonly source?: KodaXInputArtifactSource;
2236
2278
  readonly description?: string;
2237
2279
  }
2238
- type KodaXInputArtifact = KodaXImageInputArtifact;
2280
+ interface KodaXFileInputArtifact {
2281
+ readonly kind: 'file';
2282
+ readonly path: string;
2283
+ readonly mediaType?: string;
2284
+ readonly mimeType?: string;
2285
+ readonly name?: string;
2286
+ readonly source?: KodaXInputArtifactSource;
2287
+ readonly description?: string;
2288
+ }
2289
+ interface KodaXVideoInputArtifact {
2290
+ readonly kind: 'video';
2291
+ readonly path: string;
2292
+ readonly mediaType: KodaXVideoMediaType;
2293
+ readonly name?: string;
2294
+ readonly source?: KodaXInputArtifactSource;
2295
+ readonly description?: string;
2296
+ }
2297
+ type KodaXInputArtifact = KodaXImageInputArtifact | KodaXFileInputArtifact | KodaXVideoInputArtifact;
2239
2298
  interface KodaXTaskEvidenceEntry {
2240
2299
  assignmentId: string;
2241
2300
  role: KodaXTaskRole;
@@ -2265,14 +2324,9 @@ interface KodaXOrchestrationVerdict {
2265
2324
  disposition?: 'complete' | 'blocked' | 'needs_continuation';
2266
2325
  }
2267
2326
  interface KodaXManagedTaskRuntimeState {
2268
- amaProfile?: KodaXAmaProfile;
2269
- amaTactics?: KodaXAmaTactic[];
2270
- amaFanout?: KodaXAmaFanoutPolicy;
2271
- amaControllerReason?: string;
2272
2327
  childContextBundles?: KodaXChildContextBundle[];
2273
2328
  childAgentResults?: KodaXChildAgentResult[];
2274
2329
  parentReductionContract?: KodaXParentReductionContract;
2275
- fanoutSchedulerPlan?: KodaXFanoutSchedulerPlan;
2276
2330
  budget?: KodaXManagedBudgetSnapshot;
2277
2331
  scorecard?: KodaXVerificationScorecard;
2278
2332
  qualityAssuranceMode?: 'required' | 'optional';
@@ -2327,8 +2381,7 @@ interface KodaXManagedTask {
2327
2381
  runtime?: KodaXManagedTaskRuntimeState;
2328
2382
  }
2329
2383
  interface KodaXManagedVerdictPayload {
2330
- /** FEATURE_184 (v0.7.45): `'sidecar'` is the new architectural source —
2331
- * Sidecar Verifier replaces the in-chain Evaluator role. `'evaluator'`
2384
+ /** FEATURE_184 (v0.7.45): `'sidecar'` is the new architectural source — * Sidecar Verifier replaces the in-chain Evaluator role. `'evaluator'`
2332
2385
  * / `'worker'` are retained for backward-compat reads of session jsonl
2333
2386
  * written before v0.7.45. New writes use `'sidecar'`. */
2334
2387
  source: 'evaluator' | 'worker' | 'sidecar';
@@ -2416,7 +2469,7 @@ interface KodaXResult {
2416
2469
  interface KodaXToolExecutionContext {
2417
2470
  /** File backups for undo functionality - 文件备份用于撤销功能 */
2418
2471
  backups: Map<string, string>;
2419
- /** Git root directory - Git 根目录 */
2472
+ /** Git root directory - Git 鏍圭洰褰?*/
2420
2473
  gitRoot?: string;
2421
2474
  /** FEATURE_221: SDK-consumer self-manual injection, forwarded from KodaXOptions. */
2422
2475
  selfManual?: KodaXSelfManualConfig;
@@ -2440,7 +2493,7 @@ interface KodaXToolExecutionContext {
2440
2493
  extensionRuntime?: CapabilityRuntimeContract;
2441
2494
  /** Ask user a question interactively (select mode) - 交互式向用户提问 (Issue 069) */
2442
2495
  askUser?: (options: AskUserQuestionOptions) => Promise<string>;
2443
- /** Ask user multiple independent questions sequentially - 多问题顺序提问 */
2496
+ /** Ask user multiple independent questions sequentially - 澶氶棶棰橀『搴忔彁闂?*/
2444
2497
  askUserMulti?: (options: AskUserMultiOptions) => Promise<Record<string, string> | undefined>;
2445
2498
  /** Ask user for free-text input - 自由文本输入 (Issue 112) */
2446
2499
  askUserInput?: (options: {
@@ -2482,6 +2535,9 @@ interface KodaXToolExecutionContext {
2482
2535
  readonly provider: string;
2483
2536
  readonly model?: string;
2484
2537
  readonly reasoningMode?: KodaXReasoningMode;
2538
+ readonly effort?: KodaXWireReasoningEffort;
2539
+ readonly repoIntelligenceMode?: KodaXRepoIntelligenceMode;
2540
+ readonly repoIntelligenceTrace?: boolean;
2485
2541
  };
2486
2542
  /**
2487
2543
  * Parent SDK/REPL callback surface available to child-dispatch tools.
@@ -2562,7 +2618,6 @@ interface KodaXToolExecutionContext {
2562
2618
  * child's `Runner.run` via `KodaXOptions.guardrails`. Sharing the SAME
2563
2619
  * guardrail instance means the auto-mode `engine` + `denialTracker` +
2564
2620
  * `circuitBreaker` state is observed across the parent/child boundary —
2565
- * design doc "防绕阈值" defense (a child can't escape the parent's
2566
2621
  * rate-limit by hitting the threshold from a fresh tracker).
2567
2622
  *
2568
2623
  * Single-process / single-thread execution makes the shared mutable state
@@ -2869,5 +2924,5 @@ interface CreateBashPrefixExtractorOptions {
2869
2924
  */
2870
2925
  declare function createBashPrefixExtractor(opts: CreateBashPrefixExtractorOptions): BashPrefixExtractor;
2871
2926
 
2872
- export { BASH_POLICY_SPEC as B, getDefaultLspService as a$, buildGoalRuntimeBinding as aX, createBashPrefixExtractor as aY, decideWorkflowInvocation as aZ, extractCommandPrefix as a_, LSP_SERVERS as av, LspService as ax, makeDisabledGoalToolsContext as b0, shutdownDefaultLspService as b1, withGoalBeforeNextTurn as b2, withGoalStopHook as b3, workflowStartOutcomeConsumesTurn as b4 };
2873
- export type { KodaXRepoIntelligenceTrace as $, KodaXFanoutSchedulerPlan as A, CapabilityRuntimeContract as C, DiagnosticsRequest as D, ExtensionRuntimeContract as E, FailureStage as F, GoalBlockedResult as G, KodaXImageInputArtifact as H, KodaXImageMediaType as I, KodaXInputArtifact as J, KodaXActivityEventMeta as K, KodaXInputArtifactSource as L, KodaXManagedBudgetSnapshot as M, KodaXManagedProtocolPayload as N, KodaXManagedTask as O, KodaXManagedTaskRuntimeState as P, KodaXManagedTaskStatusEvent as Q, KodaXManualTopicId as R, KodaXManualTopicInput as S, KodaXMemoryStrategy as T, KodaXOptions as U, KodaXOrchestrationVerdict as V, KodaXParentReductionContract as W, KodaXProviderPolicyHints as X, KodaXRepoIntelligenceCapability as Y, KodaXRepoIntelligenceMode as Z, KodaXRepoIntelligenceResolvedMode as _, BashPrefixExtractor as a, KodaXRepoIntelligenceTraceEvent as a0, KodaXRepoRoutingSignals as a1, KodaXResult as a2, KodaXRoleRoundSummary as a3, KodaXRuntimeVerificationContract as a4, KodaXSelfManualConfig as a5, KodaXSessionControl as a6, KodaXSessionMutators as a7, KodaXSessionOptions as a8, KodaXSidecarMessageEvent as a9, ProviderRecoveryEvent as aA, ProviderResilienceConfig as aB, ProviderResiliencePolicy as aC, RecoveryAction as aD, RecoveryDecision as aE, RecoveryLadderStep as aF, RecoveryResult as aG, ResilienceClassification as aH, ResilienceErrorClass as aI, ResolveKodaXManualInput as aJ, ResolveKodaXManualOptions as aK, ResolveKodaXManualResult as aL, RuntimeDefaultsSnapshot as aM, TodoItem as aN, TodoList as aO, TodoStatus as aP, WorkflowHostPolicy as aQ, WorkflowInvocationAction as aR, WorkflowInvocationPolicyDecision as aS, WorkflowInvocationPolicyInput as aT, WorkflowInvocationSource as aU, WorkflowInvocationTrigger as aV, WorkflowStartOutcome as aW, 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, KodaXToolEventMeta as aq, KodaXToolExecutionContext as ar, KodaXVerificationScorecard as as, KodaXVerificationScorecardCriterion as at, KodaXWorkflowEventMeta as au, LspServerInfo as aw, LspServiceConfig as ay, ProviderExecutionState as az, BashPrefixResult as b, BoundExtensionRuntimeController as c, ChildSnapshotEvent as d, CreateBashPrefixExtractorOptions as e, ExtractCommandPrefixOptions as f, GoalCompleteResult as g, GoalCreateInput as h, GoalLifecycleContext as i, GoalRuntimeBinding as j, GoalRuntimeBindingDeps as k, GoalToolsContext as l, KodaXAgentMode as m, KodaXBudgetDisclosureZone as n, KodaXBudgetExtensionRequest as o, KodaXChildAgentResult as p, KodaXChildContextBundle as q, KodaXChildExecutionResult as r, KodaXCompactionOverride as s, KodaXContextOptions as t, KodaXContextTokenSnapshot as u, KodaXEvents as v, KodaXFanoutBranchLifecycle as w, KodaXFanoutBranchRecord as x, KodaXFanoutBranchTransition as y, KodaXFanoutSchedulerInput as z };
2927
+ export { BASH_POLICY_SPEC as B, extractCommandPrefix as a$, buildGoalRuntimeBinding as aY, createBashPrefixExtractor as aZ, decideWorkflowInvocation as a_, LSP_SERVERS as aw, LspService as ay, getDefaultLspService as b0, makeDisabledGoalToolsContext as b1, parseTimeoutSecEnvMs as b2, providerResilienceConfigFromTimeouts as b3, shutdownDefaultLspService as b4, timeoutSecToMs as b5, withGoalBeforeNextTurn as b6, withGoalStopHook as b7, workflowStartOutcomeConsumesTurn as b8 };
2928
+ export type { KodaXResult as $, KodaXInputArtifactSource as A, CapabilityRuntimeContract as C, DiagnosticsRequest as D, ExtensionRuntimeContract as E, FailureStage as F, GoalBlockedResult as G, KodaXLlmTimeoutConfig as H, KodaXManagedBudgetSnapshot as I, KodaXManagedProtocolPayload as J, KodaXActivityEventMeta as K, KodaXManagedTask as L, KodaXManagedTaskRuntimeState as M, KodaXManagedTaskStatusEvent as N, KodaXManualTopicId as O, KodaXManualTopicInput as P, KodaXMemoryStrategy as Q, KodaXOptions as R, KodaXOrchestrationVerdict as S, KodaXParentReductionContract as T, KodaXProviderPolicyHints as U, KodaXRepoIntelligenceCapability as V, KodaXRepoIntelligenceMode as W, KodaXRepoIntelligenceResolvedMode as X, KodaXRepoIntelligenceTrace as Y, KodaXRepoIntelligenceTraceEvent as Z, KodaXRepoRoutingSignals as _, BashPrefixExtractor as a, KodaXRoleRoundSummary as a0, KodaXRuntimeVerificationContract as a1, KodaXSelfManualConfig as a2, KodaXSessionControl as a3, KodaXSessionMutators as a4, KodaXSessionOptions as a5, KodaXSidecarMessageEvent as a6, KodaXSkillInvocationContext as a7, KodaXSkillMap as a8, KodaXSkillProjectionConfidence as a9, ProviderExecutionState as aA, ProviderRecoveryEvent as aB, ProviderResilienceConfig as aC, ProviderResiliencePolicy as aD, RecoveryAction as aE, RecoveryDecision as aF, RecoveryLadderStep as aG, RecoveryResult as aH, ResilienceClassification as aI, ResilienceErrorClass as aJ, ResolveKodaXManualInput as aK, ResolveKodaXManualOptions as aL, ResolveKodaXManualResult as aM, RuntimeDefaultsSnapshot as aN, TodoItem as aO, TodoList as aP, TodoStatus as aQ, WorkflowHostPolicy as aR, WorkflowInvocationAction as aS, WorkflowInvocationPolicyDecision as aT, WorkflowInvocationPolicyInput as aU, WorkflowInvocationSource as aV, WorkflowInvocationTrigger as aW, WorkflowStartOutcome as aX, KodaXTaskCapabilityHint as aa, KodaXTaskContract as ab, KodaXTaskEvidenceArtifact as ac, KodaXTaskEvidenceBundle as ad, KodaXTaskEvidenceEntry as ae, KodaXTaskRole as af, KodaXTaskRoleAssignment as ag, KodaXTaskStatus as ah, KodaXTaskSurface as ai, KodaXTaskToolPolicy as aj, KodaXTaskVerificationContract as ak, KodaXTaskVerificationCriterion as al, KodaXTaskWorkItem as am, KodaXTimeoutConfig as an, KodaXToolEventMeta as ao, KodaXToolExecutionContext as ap, KodaXVerificationScorecard as aq, KodaXVerificationScorecardCriterion as ar, KodaXVideoInputArtifact as as, KodaXVideoMediaType as at, KodaXWorkflowEventMeta as au, KodaXWorkflowTimeoutConfig as av, LspServerInfo as ax, LspServiceConfig as az, BashPrefixResult as b, BoundExtensionRuntimeController as c, ChildSnapshotEvent as d, CreateBashPrefixExtractorOptions as e, ExtractCommandPrefixOptions as f, GoalCompleteResult as g, GoalCreateInput as h, GoalLifecycleContext as i, GoalRuntimeBinding as j, GoalRuntimeBindingDeps as k, GoalToolsContext as l, KodaXAgentMode as m, KodaXBudgetDisclosureZone as n, KodaXBudgetExtensionRequest as o, KodaXChildAgentResult as p, KodaXChildContextBundle as q, KodaXChildExecutionResult as r, KodaXCompactionOverride as s, KodaXContextOptions as t, KodaXContextTokenSnapshot as u, KodaXEvents as v, KodaXFileInputArtifact as w, KodaXImageInputArtifact as x, KodaXImageMediaType as y, KodaXInputArtifact as z };