@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.
- package/CHANGELOG.md +33 -0
- package/README.md +21 -23
- package/README_CN.md +15 -17
- package/dist/builtin/code-review/SKILL.md +22 -3
- package/dist/chunks/{agent-MAAKRAF2.js → agent-EHWQZA4C.js} +1 -1
- package/dist/chunks/argument-completer-AYDAYGKL.js +2 -0
- package/dist/chunks/chunk-3WWPJGPQ.js +2 -0
- package/dist/chunks/chunk-4SHP3M67.js +2 -0
- package/dist/chunks/chunk-KN6IJMTB.js +636 -0
- package/dist/chunks/{chunk-ZBK3DZ3S.js → chunk-LZKGOR2C.js} +1 -1
- package/dist/chunks/chunk-MJFPFRGK.js +423 -0
- package/dist/chunks/chunk-N2N2W3AQ.js +584 -0
- package/dist/chunks/chunk-PCPFLPS4.js +5 -0
- package/dist/chunks/chunk-TCLSPUTR.js +31 -0
- package/dist/chunks/chunk-VACH6QWN.js +315 -0
- package/dist/chunks/chunk-YSVPF6SN.js +597 -0
- package/dist/chunks/{compaction-config-NAJEEPG5.js → compaction-config-TLDMFMZO.js} +1 -1
- package/dist/chunks/{construction-bootstrap-EDDVNP2B.js → construction-bootstrap-55B7Q5RX.js} +4 -4
- package/dist/chunks/dist-IE4HVWP7.js +2 -0
- package/dist/chunks/dist-IKOK2MJQ.js +2 -0
- package/dist/chunks/paste-WTL2XN7P.js +2 -0
- package/dist/chunks/utils-EJ2VCRTC.js +2 -0
- package/dist/index.d.ts +21 -17
- package/dist/index.js +6 -6
- package/dist/kodax_cli.js +1098 -1073
- package/dist/provider-capabilities.json +986 -197
- package/dist/sdk-agent.d.ts +20 -13
- package/dist/sdk-agent.js +1 -1
- package/dist/sdk-coding.d.ts +140 -110
- package/dist/sdk-coding.js +1 -1
- package/dist/sdk-llm.d.ts +5 -5
- package/dist/sdk-llm.js +1 -1
- package/dist/sdk-mcp.d.ts +1 -1
- package/dist/sdk-mcp.js +1 -1
- package/dist/sdk-media.d.ts +48 -5
- package/dist/sdk-media.js +1 -1
- package/dist/sdk-repl.d.ts +106 -97
- package/dist/sdk-repl.js +1 -1
- package/dist/sdk-session.d.ts +6 -6
- package/dist/sdk-session.js +1 -1
- package/dist/sdk-skills.js +1 -1
- package/dist/semantic-worker.js +11 -0
- package/dist/types-chunks/{base.d-CwPfI8WQ.d.ts → base.d-BnjQrSVf.d.ts} +36 -6
- package/dist/types-chunks/{bash-prefix-extractor.d-DZF1gDDz.d.ts → bash-prefix-extractor.d-BgvMbfq6.d.ts} +190 -135
- package/dist/types-chunks/{capsule.d-D0kjnqYy.d.ts → capsule.d-DwJp5r63.d.ts} +14 -11
- package/dist/types-chunks/{types.d-BKuHSiR0.d.ts → guardrail.d-BP3yyr6u.d.ts} +3 -121
- package/dist/types-chunks/{guardrail.d-DQQknOfb.d.ts → guardrail.d-C1DhxnvC.d.ts} +31 -9
- package/dist/types-chunks/{manager.d-DLmDhX3i.d.ts → manager.d-DBD7SOTT.d.ts} +7 -2
- package/dist/types-chunks/{process.d-BdiIUr8T.d.ts → process.d-BZncyzEj.d.ts} +2 -1
- package/dist/types-chunks/{resolver.d-Djq8KlCE.d.ts → resolver.d-ZvKQgl0X.d.ts} +82 -18
- package/dist/types-chunks/{sdk-session-BP6ZNpOp.d.ts → sdk-session-DAScB0rW.d.ts} +6 -4
- package/dist/types-chunks/{storage.d-CkydxFsV.d.ts → storage.d-CPvn9qI0.d.ts} +2 -2
- package/dist/types-chunks/{types.d-BJmoMf5H.d.ts → types.d-6VOXvF88.d.ts} +101 -22
- package/dist/types-chunks/types.d-D8WcfrOD.d.ts +143 -0
- package/dist/types-chunks/{utils.d-bC97IuQZ.d.ts → utils.d-CpgVIjYZ.d.ts} +16 -18
- package/package.json +11 -6
- package/dist/chunks/argument-completer-OWEXGWNL.js +0 -2
- package/dist/chunks/chunk-4OHXHC2S.js +0 -314
- package/dist/chunks/chunk-5YJIAP6C.js +0 -551
- package/dist/chunks/chunk-7EAGBLRV.js +0 -2
- package/dist/chunks/chunk-CDGOEK3T.js +0 -31
- package/dist/chunks/chunk-DHETLULC.js +0 -425
- package/dist/chunks/chunk-JCDO2FR4.js +0 -584
- package/dist/chunks/chunk-NZVJ3DFC.js +0 -656
- package/dist/chunks/chunk-QI3MRJGU.js +0 -5
- package/dist/chunks/chunk-XXQ3RLA2.js +0 -2
- package/dist/chunks/dist-2267YGB5.js +0 -2
- package/dist/chunks/dist-GW32CHO5.js +0 -2
- package/dist/chunks/paste-5IDBBQQ3.js +0 -2
- package/dist/chunks/utils-J7XBBZGB.js +0 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
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
|
-
|
|
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):
|
|
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-
|
|
2
|
-
import {
|
|
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-
|
|
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' | '
|
|
1207
|
-
type KodaXRepoIntelligenceResolvedMode = 'off' | '
|
|
1255
|
+
type KodaXRepoIntelligenceMode = 'auto' | 'off' | 'light' | 'full';
|
|
1256
|
+
type KodaXRepoIntelligenceResolvedMode = 'off' | 'light' | 'full';
|
|
1208
1257
|
interface KodaXRepoIntelligenceCapability {
|
|
1209
1258
|
mode: KodaXRepoIntelligenceResolvedMode;
|
|
1210
|
-
engine: '
|
|
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: '
|
|
1220
|
-
bridge: 'none' | 'shared' | 'native';
|
|
1267
|
+
engine: 'light' | 'full';
|
|
1221
1268
|
triggeredAt: string;
|
|
1222
|
-
source: '
|
|
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:
|
|
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:
|
|
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?:
|
|
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
|
|
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
|
-
|
|
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,
|
|
2873
|
-
export type {
|
|
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 };
|