@kodax-ai/kodax 0.7.52 → 0.7.54

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 (46) hide show
  1. package/CHANGELOG.md +1855 -1814
  2. package/README.md +6 -0
  3. package/README_CN.md +4 -0
  4. package/dist/chunks/{agent-XXTR7T37.js → agent-5FZH3VUN.js} +1 -1
  5. package/dist/chunks/argument-completer-VURFBB37.js +2 -0
  6. package/dist/chunks/{chunk-LE6STNVN.js → chunk-7C2QUBLE.js} +1 -1
  7. package/dist/chunks/chunk-AMFPS2WC.js +584 -0
  8. package/dist/chunks/chunk-EM4GOL3S.js +551 -0
  9. package/dist/chunks/chunk-FV6KHPWT.js +425 -0
  10. package/dist/chunks/chunk-JEQ62ZMK.js +651 -0
  11. package/dist/chunks/chunk-KSBSEPV5.js +314 -0
  12. package/dist/chunks/{chunk-BFXFSEHK.js → chunk-QQX333VC.js} +1 -1
  13. package/dist/chunks/{chunk-JJTUBNQX.js → chunk-UHNSW2SR.js} +1 -1
  14. package/dist/chunks/{compaction-config-UBPCNGC2.js → compaction-config-HY46N24Q.js} +1 -1
  15. package/dist/chunks/{construction-bootstrap-BXRMA3KL.js → construction-bootstrap-AVTILHEH.js} +1 -1
  16. package/dist/chunks/{dist-Z6U7TWKJ.js → dist-BNKIZRCP.js} +1 -1
  17. package/dist/chunks/dist-EV5MWJQ6.js +2 -0
  18. package/dist/chunks/{utils-6WZHBMCC.js → utils-ZUC3AIL5.js} +1 -1
  19. package/dist/index.d.ts +7 -4
  20. package/dist/index.js +6 -6
  21. package/dist/kodax_cli.js +1137 -1001
  22. package/dist/provider-capabilities.json +3 -3
  23. package/dist/sdk-agent.d.ts +395 -3
  24. package/dist/sdk-agent.js +1 -1
  25. package/dist/sdk-coding.d.ts +47 -27
  26. package/dist/sdk-coding.js +1 -1
  27. package/dist/sdk-llm.js +1 -1
  28. package/dist/sdk-mcp.js +1 -1
  29. package/dist/sdk-repl.d.ts +43 -8
  30. package/dist/sdk-repl.js +2 -2
  31. package/dist/sdk-session.d.ts +3 -3
  32. package/dist/sdk-session.js +1 -1
  33. package/dist/sdk-skills.d.ts +1 -1
  34. package/dist/sdk-skills.js +1 -1
  35. package/dist/types-chunks/{bash-prefix-extractor.d-DBFZEwop.d.ts → bash-prefix-extractor.d-CBLoD2Jk.d.ts} +96 -14
  36. package/dist/types-chunks/{sdk-session-D4tqRl0_.d.ts → sdk-session-DrPxcDuO.d.ts} +2 -2
  37. package/dist/types-chunks/{storage.d-CabW10Nt.d.ts → storage.d-DoA3NvdD.d.ts} +1 -1
  38. package/dist/types-chunks/{utils.d-23Gn14zP.d.ts → utils.d-DSqmMq7l.d.ts} +26 -18
  39. package/package.json +1 -1
  40. package/dist/chunks/argument-completer-VMH6VZ4X.js +0 -2
  41. package/dist/chunks/chunk-4RVSFOUT.js +0 -420
  42. package/dist/chunks/chunk-5USNUSTL.js +0 -648
  43. package/dist/chunks/chunk-7X7SOVER.js +0 -492
  44. package/dist/chunks/chunk-HMATTIU6.js +0 -574
  45. package/dist/chunks/chunk-MFPYZT52.js +0 -301
  46. package/dist/chunks/dist-IHH4BYIU.js +0 -2
@@ -1,5 +1,5 @@
1
- import { U as KodaXGoalState, f as AgentMessage, b0 as StopHookFn, a4 as KodaXSessionLineage, a9 as KodaXSessionScope, aa as KodaXSessionStorage, W as KodaXJsonValue, 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-Bj82oJhD.js';
2
- import { _ as KodaXTokenUsage, o as KodaXMessage, G as KodaXReasoningMode, l as KodaXHarnessProfile, V as KodaXTaskWorkIntent, M as KodaXReviewScale, R as KodaXTaskComplexity, a as KodaXAmaFanoutClass, T as KodaXTaskRoutingDecision, U as KodaXTaskType, N as KodaXRiskLevel, j as KodaXExecutionMode, c as KodaXAmaProfile, d as KodaXAmaTactic, b as KodaXAmaFanoutPolicy, f as KodaXBaseProvider } from './base.d-BBNUF9nz.js';
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-Bj82oJhD.js';
2
+ import { _ as KodaXTokenUsage, G as KodaXReasoningMode, o as KodaXMessage, l as KodaXHarnessProfile, V as KodaXTaskWorkIntent, M as KodaXReviewScale, R as KodaXTaskComplexity, a as KodaXAmaFanoutClass, T as KodaXTaskRoutingDecision, U as KodaXTaskType, N as KodaXRiskLevel, j as KodaXExecutionMode, c as KodaXAmaProfile, d as KodaXAmaTactic, b as KodaXAmaFanoutPolicy, f as KodaXBaseProvider } from './base.d-BBNUF9nz.js';
3
3
  import { Diagnostic, Position, Location, Hover, DocumentSymbol, SymbolInformation } from 'vscode-languageserver-protocol';
4
4
  import { C as CapabilityKind, b as CapabilityResult } from './capability.d-3C62G8Eq.js';
5
5
  import { a as CostTracker } from './cost-tracker.d-wRtyEW9d.js';
@@ -872,7 +872,7 @@ declare function buildGoalRuntimeBinding(deps: GoalRuntimeBindingDeps): GoalRunt
872
872
  * configure / install / troubleshoot KodaX?" questions. Pure data + a
873
873
  * deterministic resolver — no RAG, no vector store, no network fetch.
874
874
  */
875
- type KodaXManualTopicId = 'overview' | 'install' | 'quickstart' | 'providers' | 'custom-providers' | 'config' | 'permissions' | 'commands' | 'tools' | 'agents' | 'skills' | 'mcp' | 'repo-intelligence' | 'sessions' | 'doctor' | 'sdk' | 'troubleshooting';
875
+ type KodaXManualTopicId = 'overview' | 'install' | 'quickstart' | 'providers' | 'custom-providers' | 'config' | 'permissions' | 'commands' | 'tools' | 'agents' | 'skills' | 'extensions' | 'mcp' | 'repo-intelligence' | 'sessions' | 'doctor' | 'sdk' | 'troubleshooting';
876
876
  /** A pointer to the code/doc the topic is derived from (for traceability). */
877
877
  interface KodaXManualSource {
878
878
  readonly label: string;
@@ -918,22 +918,46 @@ interface ResolveKodaXManualResult {
918
918
  }
919
919
 
920
920
  /**
921
- * FEATURE_093 (v0.7.24): minimal contract interface for the coding extension
921
+ * FEATURE_093 (v0.7.24): minimal contract interfaces for the coding extension
922
922
  * runtime. Extracted so `@kodax-ai/coding/src/types.ts` can reference the
923
923
  * extension runtime at the type level without importing `./extensions/runtime.js`,
924
924
  * which in turn imports from `types.ts` — a cycle that lasted since v0.7.20.
925
925
  *
926
- * Scope: only the methods that `KodaXOptions.extensionRuntime` and
927
- * `KodaXToolExecutionContext.extensionRuntime` consumers actually invoke.
928
- * The concrete `KodaXExtensionRuntime` class in `./runtime.ts` implements
929
- * this contract plus ~40 additional internal methods that are not exposed
930
- * through Options/Context fields.
926
+ * Scope: the capability methods that tool execution consumes, plus optional
927
+ * session lifecycle hooks that the coding run loop uses when the runtime
928
+ * supports them.
931
929
  *
932
930
  * File must have NO imports from `../types.js` (that is the cycle we are
933
- * breaking). Capability types come from `@kodax-ai/core`.
931
+ * breaking). Shared capability/session value types come from `@kodax-ai/agent`.
934
932
  */
935
933
 
936
- interface ExtensionRuntimeContract {
934
+ interface ExtensionRuntimeModelSelection {
935
+ provider?: string;
936
+ model?: string;
937
+ }
938
+ interface RuntimeDefaultsSnapshot {
939
+ activeTools?: string[];
940
+ modelSelection: ExtensionRuntimeModelSelection;
941
+ thinkingLevel?: KodaXReasoningMode;
942
+ }
943
+ interface BoundExtensionRuntimeController {
944
+ queueUserMessage(message: string | KodaXMessage): void;
945
+ getSessionState<T = KodaXJsonValue>(extensionId: string, key: string): T | undefined;
946
+ setSessionState(extensionId: string, key: string, value: KodaXJsonValue | undefined): void;
947
+ getSessionStateSnapshot(extensionId: string): Record<string, KodaXJsonValue>;
948
+ appendSessionRecord(extensionId: string, type: string, data?: KodaXJsonValue, options?: {
949
+ dedupeKey?: string;
950
+ }): KodaXExtensionSessionRecord;
951
+ listSessionRecords(extensionId: string, type?: string): KodaXExtensionSessionRecord[];
952
+ clearSessionRecords(extensionId: string, type?: string): number;
953
+ getActiveTools(): string[];
954
+ setActiveTools(toolNames: string[]): void;
955
+ getModelSelection(): ExtensionRuntimeModelSelection;
956
+ setModelSelection(next: ExtensionRuntimeModelSelection): void;
957
+ getThinkingLevel(): KodaXReasoningMode | undefined;
958
+ setThinkingLevel(level: KodaXReasoningMode): void;
959
+ }
960
+ interface CapabilityRuntimeContract {
937
961
  searchCapabilities(providerId: string, query: string, options?: {
938
962
  kind?: CapabilityKind;
939
963
  limit?: number;
@@ -945,6 +969,11 @@ interface ExtensionRuntimeContract {
945
969
  getCapabilityPrompt(providerId: string, capabilityId: string, args?: Record<string, unknown>): Promise<unknown>;
946
970
  getCapabilityPromptContext(providerId: string): Promise<string | undefined>;
947
971
  }
972
+ interface ExtensionRuntimeContract extends CapabilityRuntimeContract {
973
+ getDefaults?(): RuntimeDefaultsSnapshot;
974
+ bindController?(controller: BoundExtensionRuntimeController): (() => void) | void;
975
+ hydrateSession?(sessionId: string): Promise<void>;
976
+ }
948
977
 
949
978
  /**
950
979
  * KodaX Provider Resilience Types (Feature 045)
@@ -1233,6 +1262,26 @@ interface KodaXActivityEventMeta extends KodaXWorkflowEventMeta {
1233
1262
  interface KodaXToolEventMeta extends KodaXActivityEventMeta {
1234
1263
  readonly toolId?: string;
1235
1264
  }
1265
+ interface KodaXSidecarMessageEvent {
1266
+ readonly source: 'sidecar-verifier';
1267
+ readonly verdict: 'revise' | 'blocked';
1268
+ readonly recipient: 'main-agent' | 'user';
1269
+ readonly delivery: 'synthetic-user-message' | 'budget-exhausted' | 'terminal-block';
1270
+ /** Exact actionable text from the sidecar. `budget-exhausted` means it was not injected. */
1271
+ readonly content: string;
1272
+ readonly suggestedFix?: string;
1273
+ readonly trace?: string;
1274
+ }
1275
+ interface KodaXTodoDriftWarningEvent {
1276
+ readonly kind: 'work_started_without_claimed_todo';
1277
+ readonly toolName: string;
1278
+ readonly toolCallId?: string;
1279
+ readonly count: number;
1280
+ readonly pendingCount: number;
1281
+ readonly openCount: number;
1282
+ readonly firstPendingTodoId?: string;
1283
+ readonly firstPendingTodoSubject?: string;
1284
+ }
1236
1285
  interface KodaXEvents {
1237
1286
  /** FEATURE_229: correlates child-agent SDK callbacks back to a workflow run/item. */
1238
1287
  workflowCorrelation?: WorkflowEventCorrelation;
@@ -1347,6 +1396,16 @@ interface KodaXEvents {
1347
1396
  maxAttempts: number;
1348
1397
  }, meta?: KodaXActivityEventMeta) => void;
1349
1398
  onRepoIntelligenceTrace?: (event: KodaXRepoIntelligenceTraceEvent) => void;
1399
+ /**
1400
+ * Fired when the Sidecar Verifier produces an actionable message.
1401
+ *
1402
+ * `revise` is usually injected back into the main agent as a synthetic user
1403
+ * message; if the reanimate budget is already exhausted, the same verdict is
1404
+ * surfaced with `delivery: "budget-exhausted"` and no injection occurs.
1405
+ * `blocked` is surfaced terminally to the user. Accept remains silent here
1406
+ * because there is no sidecar-to-agent reply to show.
1407
+ */
1408
+ onSidecarMessage?: (event: KodaXSidecarMessageEvent) => void;
1350
1409
  /**
1351
1410
  * FEATURE_097 (v0.7.34): emitted whenever the Scout-seeded todo list
1352
1411
  * changes — initial seed at `emit_scout_verdict`, per-item updates from
@@ -1357,6 +1416,13 @@ interface KodaXEvents {
1357
1416
  * (FEATURE_086 onRepoIntelligenceTrace single-rail precedent).
1358
1417
  */
1359
1418
  onTodoUpdate?: (items: TodoList) => void;
1419
+ /**
1420
+ * Warn-only telemetry: a successful real work tool completed while the
1421
+ * visible todo list had pending items but no item marked in_progress.
1422
+ * The runner does not mutate the todo list for this signal; it only
1423
+ * nudges the next model turn to call todo_update explicitly.
1424
+ */
1425
+ onTodoDriftWarning?: (event: KodaXTodoDriftWarningEvent) => void;
1360
1426
  /** Structured provider recovery event (Feature 045) */
1361
1427
  onProviderRecovery?: (event: ProviderRecoveryEvent, meta?: KodaXActivityEventMeta) => void;
1362
1428
  onComplete?: () => void;
@@ -1455,6 +1521,10 @@ interface KodaXSessionOptions {
1455
1521
  tag?: string;
1456
1522
  storage?: KodaXSessionStorage;
1457
1523
  initialMessages?: KodaXMessage[];
1524
+ /** Host-provided extension state paired with initialMessages, avoiding a full storage load. */
1525
+ initialExtensionState?: KodaXExtensionSessionState;
1526
+ /** Host-provided extension records paired with initialMessages, avoiding a full storage load. */
1527
+ initialExtensionRecords?: KodaXExtensionSessionRecord[];
1458
1528
  /**
1459
1529
  * Persistence ownership signal (FEATURE_173 dual-writer fix).
1460
1530
  *
@@ -2227,6 +2297,12 @@ interface KodaXManagedTaskRuntimeState {
2227
2297
  reviewFilesOrAreas?: string[];
2228
2298
  toolOutputTruncated?: boolean;
2229
2299
  toolOutputTruncationNotes?: string[];
2300
+ /**
2301
+ * Warn-only todo hygiene telemetry: successful real work started while
2302
+ * pending todos existed and no item was marked in_progress. The runner
2303
+ * never mutates todo state from this signal.
2304
+ */
2305
+ todoDriftWarnings?: KodaXTodoDriftWarningEvent[];
2230
2306
  managedTimeline?: KodaXManagedLiveEvent[];
2231
2307
  evidenceAcquisitionMode?: 'overview' | 'diff-bundle' | 'diff-slice' | 'file-read';
2232
2308
  consecutiveEvidenceOnlyIterations?: number;
@@ -2290,6 +2366,10 @@ type KodaXScoutSuspiciousSignal = 'mutation-expected-but-none' | 'budget-exhaust
2290
2366
  interface KodaXManagedProtocolPayload {
2291
2367
  verdict?: KodaXManagedVerdictPayload;
2292
2368
  }
2369
+ interface KodaXRuntimeSessionSnapshot {
2370
+ extensionState?: KodaXExtensionSessionState;
2371
+ extensionRecords?: KodaXExtensionSessionRecord[];
2372
+ }
2293
2373
  interface KodaXResult {
2294
2374
  success: boolean;
2295
2375
  lastText: string;
@@ -2310,6 +2390,8 @@ interface KodaXResult {
2310
2390
  contextTokenSnapshot?: KodaXContextTokenSnapshot;
2311
2391
  /** Latest provider usage when the caller has it directly. */
2312
2392
  usage?: KodaXTokenUsage;
2393
+ /** Serializable runtime-owned session state for host-owned persistence. */
2394
+ runtimeSessionSnapshot?: KodaXRuntimeSessionSnapshot;
2313
2395
  /**
2314
2396
  * FEATURE_076: artifact ledger pre-extracted before round-boundary reshape.
2315
2397
  * Populated when the reshape replaces `messages` with a clean {user, assistant}
@@ -2349,7 +2431,7 @@ interface KodaXToolExecutionContext {
2349
2431
  */
2350
2432
  workflowWorktreeBaseDir?: string;
2351
2433
  /** Shared extension capability runtime used by retrieval-family tools. */
2352
- extensionRuntime?: ExtensionRuntimeContract;
2434
+ extensionRuntime?: CapabilityRuntimeContract;
2353
2435
  /** Ask user a question interactively (select mode) - 交互式向用户提问 (Issue 069) */
2354
2436
  askUser?: (options: AskUserQuestionOptions) => Promise<string>;
2355
2437
  /** Ask user multiple independent questions sequentially - 多问题顺序提问 */
@@ -2781,5 +2863,5 @@ interface CreateBashPrefixExtractorOptions {
2781
2863
  */
2782
2864
  declare function createBashPrefixExtractor(opts: CreateBashPrefixExtractorOptions): BashPrefixExtractor;
2783
2865
 
2784
- export { BASH_POLICY_SPEC as B, buildGoalRuntimeBinding as aQ, createBashPrefixExtractor as aR, decideWorkflowInvocation as aS, extractCommandPrefix as aT, getDefaultLspService as aU, makeDisabledGoalToolsContext as aV, shutdownDefaultLspService as aW, withGoalBeforeNextTurn as aX, withGoalStopHook as aY, workflowStartOutcomeConsumesTurn as aZ, LSP_SERVERS as ap, LspService as ar };
2785
- export type { KodaXRuntimeVerificationContract as $, KodaXManagedBudgetSnapshot as A, ChildSnapshotEvent as C, DiagnosticsRequest as D, ExtensionRuntimeContract as E, FailureStage as F, GoalBlockedResult as G, KodaXManagedProtocolPayload as H, KodaXManagedTask as I, KodaXManagedTaskRuntimeState as J, KodaXActivityEventMeta as K, KodaXManagedTaskStatusEvent as L, KodaXManualTopicId as M, KodaXManualTopicInput as N, KodaXMemoryStrategy as O, KodaXOptions as P, KodaXOrchestrationVerdict as Q, KodaXParentReductionContract as R, KodaXProviderPolicyHints as S, KodaXRepoIntelligenceCapability as T, KodaXRepoIntelligenceMode as U, KodaXRepoIntelligenceResolvedMode as V, KodaXRepoIntelligenceTrace as W, KodaXRepoIntelligenceTraceEvent as X, KodaXRepoRoutingSignals as Y, KodaXResult as Z, KodaXRoleRoundSummary as _, BashPrefixExtractor as a, KodaXSelfManualConfig as a0, KodaXSessionControl as a1, KodaXSessionMutators as a2, KodaXSessionOptions as a3, KodaXSkillInvocationContext as a4, KodaXSkillMap as a5, KodaXSkillProjectionConfidence as a6, KodaXTaskCapabilityHint as a7, KodaXTaskContract as a8, KodaXTaskEvidenceArtifact as a9, RecoveryResult as aA, ResilienceClassification as aB, ResilienceErrorClass as aC, ResolveKodaXManualInput as aD, ResolveKodaXManualOptions as aE, ResolveKodaXManualResult as aF, TodoItem as aG, TodoList as aH, TodoStatus as aI, WorkflowHostPolicy as aJ, WorkflowInvocationAction as aK, WorkflowInvocationPolicyDecision as aL, WorkflowInvocationPolicyInput as aM, WorkflowInvocationSource as aN, WorkflowInvocationTrigger as aO, WorkflowStartOutcome as aP, KodaXTaskEvidenceBundle as aa, KodaXTaskEvidenceEntry as ab, KodaXTaskRole as ac, KodaXTaskRoleAssignment as ad, KodaXTaskStatus as ae, KodaXTaskSurface as af, KodaXTaskToolPolicy as ag, KodaXTaskVerificationContract as ah, KodaXTaskVerificationCriterion as ai, KodaXTaskWorkItem as aj, KodaXToolEventMeta as ak, KodaXToolExecutionContext as al, KodaXVerificationScorecard as am, KodaXVerificationScorecardCriterion as an, KodaXWorkflowEventMeta as ao, LspServerInfo as aq, LspServiceConfig as as, ProviderExecutionState as at, ProviderRecoveryEvent as au, ProviderResilienceConfig as av, ProviderResiliencePolicy as aw, RecoveryAction as ax, RecoveryDecision as ay, RecoveryLadderStep as az, BashPrefixResult as b, CreateBashPrefixExtractorOptions as c, ExtractCommandPrefixOptions as d, GoalCompleteResult as e, GoalCreateInput as f, GoalLifecycleContext as g, GoalRuntimeBinding as h, GoalRuntimeBindingDeps as i, GoalToolsContext as j, KodaXAgentMode as k, KodaXBudgetDisclosureZone as l, KodaXBudgetExtensionRequest as m, KodaXChildAgentResult as n, KodaXChildContextBundle as o, KodaXChildExecutionResult as p, KodaXCompactionOverride as q, KodaXContextOptions as r, KodaXContextTokenSnapshot as s, KodaXEvents as t, KodaXFanoutBranchLifecycle as u, KodaXFanoutBranchRecord as v, KodaXFanoutBranchTransition as w, KodaXFanoutSchedulerInput as x, KodaXFanoutSchedulerPlan as y, KodaXInputArtifact as z };
2866
+ export { BASH_POLICY_SPEC as B, withGoalBeforeNextTurn as a$, buildGoalRuntimeBinding as aU, createBashPrefixExtractor as aV, decideWorkflowInvocation as aW, extractCommandPrefix as aX, getDefaultLspService as aY, makeDisabledGoalToolsContext as aZ, shutdownDefaultLspService as a_, LSP_SERVERS as as, LspService as au, withGoalStopHook as b0, workflowStartOutcomeConsumesTurn as b1 };
2867
+ export type { KodaXResult as $, KodaXFanoutSchedulerPlan as A, CapabilityRuntimeContract as C, DiagnosticsRequest as D, ExtensionRuntimeContract as E, FailureStage as F, GoalBlockedResult as G, KodaXInputArtifact 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, RecoveryAction as aA, RecoveryDecision as aB, RecoveryLadderStep as aC, RecoveryResult as aD, ResilienceClassification as aE, ResilienceErrorClass as aF, ResolveKodaXManualInput as aG, ResolveKodaXManualOptions as aH, ResolveKodaXManualResult as aI, RuntimeDefaultsSnapshot as aJ, TodoItem as aK, TodoList as aL, TodoStatus as aM, WorkflowHostPolicy as aN, WorkflowInvocationAction as aO, WorkflowInvocationPolicyDecision as aP, WorkflowInvocationPolicyInput as aQ, WorkflowInvocationSource as aR, WorkflowInvocationTrigger as aS, WorkflowStartOutcome as aT, 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, KodaXToolEventMeta as an, KodaXToolExecutionContext as ao, KodaXVerificationScorecard as ap, KodaXVerificationScorecardCriterion as aq, KodaXWorkflowEventMeta as ar, LspServerInfo as at, LspServiceConfig as av, ProviderExecutionState as aw, ProviderRecoveryEvent as ax, ProviderResilienceConfig as ay, ProviderResiliencePolicy 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 };
@@ -1,6 +1,6 @@
1
- import { b as PermissionMode, S as SessionData, F as FileSessionStorage } from './storage.d-CabW10Nt.js';
1
+ import { b as PermissionMode, S as SessionData, F as FileSessionStorage } from './storage.d-DoA3NvdD.js';
2
2
  import { G as KodaXReasoningMode, o as KodaXMessage, h as KodaXContentBlock } from './base.d-BBNUF9nz.js';
3
- import { k as KodaXAgentMode } from './bash-prefix-extractor.d-DBFZEwop.js';
3
+ import { m as KodaXAgentMode } from './bash-prefix-extractor.d-CBLoD2Jk.js';
4
4
  import { ac as KodaXSessionUiHistoryItem, ag as KodaXSessionUiToolCall } from './process.d-Bj82oJhD.js';
5
5
 
6
6
  /**
@@ -1,4 +1,4 @@
1
- import { a as BashPrefixExtractor } from './bash-prefix-extractor.d-DBFZEwop.js';
1
+ import { a as BashPrefixExtractor } from './bash-prefix-extractor.d-CBLoD2Jk.js';
2
2
  import { $ as KodaXSessionData, a4 as KodaXSessionLineage, a7 as KodaXSessionNavigationOptions, a8 as KodaXSessionRuntimeInfo, aa as KodaXSessionStorage } from './process.d-Bj82oJhD.js';
3
3
 
4
4
  /**
@@ -1,6 +1,6 @@
1
- import { P as KodaXOptions, s as KodaXContextTokenSnapshot, k as KodaXAgentMode, U as KodaXRepoIntelligenceMode, a4 as KodaXSkillInvocationContext } from './bash-prefix-extractor.d-DBFZEwop.js';
2
- import { c as SessionStorage$1, b as PermissionMode } from './storage.d-CabW10Nt.js';
3
- import { aa as KodaXSessionStorage, $ as KodaXSessionData, ac as KodaXSessionUiHistoryItem, a4 as KodaXSessionLineage, Y as KodaXSessionArtifactLedgerEntry, a8 as KodaXSessionRuntimeInfo, bD as WorkflowProcessSource } from './process.d-Bj82oJhD.js';
1
+ import { R as KodaXOptions, u as KodaXContextTokenSnapshot, m as KodaXAgentMode, W as KodaXRepoIntelligenceMode, a7 as KodaXSkillInvocationContext } from './bash-prefix-extractor.d-CBLoD2Jk.js';
2
+ import { c as SessionStorage$1, b as PermissionMode } from './storage.d-DoA3NvdD.js';
3
+ import { ac as KodaXSessionUiHistoryItem, a4 as KodaXSessionLineage, Y as KodaXSessionArtifactLedgerEntry, Q as KodaXExtensionSessionState, P as KodaXExtensionSessionRecord, a8 as KodaXSessionRuntimeInfo, aa as KodaXSessionStorage, $ as KodaXSessionData, bD as WorkflowProcessSource } from './process.d-Bj82oJhD.js';
4
4
  import { o as KodaXMessage, G as KodaXReasoningMode, t as KodaXProviderCapabilityProfile, H as KodaXReasoningOverride, i as KodaXCustomProviderConfig } from './base.d-BBNUF9nz.js';
5
5
  import { A as AgentsFile, f as AutoModeStats, l as KodaXMcpServersConfig } from './guardrail.d-B18oO1gt.js';
6
6
  import * as readline from 'readline';
@@ -27,21 +27,6 @@ interface InkREPLOptions extends KodaXOptions {
27
27
  */
28
28
  declare function runInkInteractiveMode(options: InkREPLOptions): Promise<void>;
29
29
 
30
- interface SessionStorage extends KodaXSessionStorage {
31
- list(gitRoot?: string): Promise<Array<{
32
- id: string;
33
- title: string;
34
- msgCount: number;
35
- tag?: string;
36
- runtimeInfo?: KodaXSessionData['runtimeInfo'];
37
- }>>;
38
- }
39
- interface RepLOptions extends KodaXOptions {
40
- storage?: SessionStorage;
41
- }
42
- declare function runInteractiveMode(options: RepLOptions): Promise<void>;
43
- declare function processSpecialSyntax(input: string): Promise<string>;
44
-
45
30
  /**
46
31
  * KodaX Interactive Context Management - 交互式上下文管理
47
32
  */
@@ -53,6 +38,10 @@ interface InteractiveContext {
53
38
  contextTokenSnapshot?: KodaXContextTokenSnapshot;
54
39
  lineage?: KodaXSessionLineage;
55
40
  artifactLedger?: KodaXSessionArtifactLedgerEntry[];
41
+ extensionState?: KodaXExtensionSessionState;
42
+ extensionRecords?: KodaXExtensionSessionRecord[];
43
+ extensionStateDirty?: boolean;
44
+ extensionRecordsDirty?: boolean;
56
45
  sessionId: string;
57
46
  title: string;
58
47
  gitRoot?: string;
@@ -68,9 +57,26 @@ declare function createInteractiveContext(options: {
68
57
  existingUiHistory?: KodaXSessionUiHistoryItem[];
69
58
  existingLineage?: KodaXSessionLineage;
70
59
  existingArtifactLedger?: KodaXSessionArtifactLedgerEntry[];
60
+ existingExtensionState?: KodaXExtensionSessionState;
61
+ existingExtensionRecords?: KodaXExtensionSessionRecord[];
71
62
  }): Promise<InteractiveContext>;
72
63
  declare function touchContext(context: InteractiveContext): void;
73
64
 
65
+ interface SessionStorage extends KodaXSessionStorage {
66
+ list(gitRoot?: string): Promise<Array<{
67
+ id: string;
68
+ title: string;
69
+ msgCount: number;
70
+ tag?: string;
71
+ runtimeInfo?: KodaXSessionData['runtimeInfo'];
72
+ }>>;
73
+ }
74
+ interface RepLOptions extends KodaXOptions {
75
+ storage?: SessionStorage;
76
+ }
77
+ declare function runInteractiveMode(options: RepLOptions): Promise<void>;
78
+ declare function processSpecialSyntax(input: string): Promise<string>;
79
+
74
80
  /**
75
81
  * UI Context Interface - UI 交互上下文接口
76
82
  *
@@ -164,6 +170,7 @@ type SessionLoadStatus = 'loaded' | 'missing' | 'blocked';
164
170
  type SessionBranchSwitchStatus = 'switched' | 'missing' | 'blocked';
165
171
  type SessionForkStatus = 'forked' | 'failed' | 'blocked';
166
172
  type SessionRewindStatus = 'rewound' | 'failed' | 'blocked';
173
+ type SessionRecoverStatus = 'recovered' | 'empty' | 'failed' | 'blocked';
167
174
  interface CommandCallbacks {
168
175
  exit: () => void | Promise<void>;
169
176
  saveSession: () => Promise<void>;
@@ -236,6 +243,7 @@ interface CommandCallbacks {
236
243
  switchSessionBranch?: (selector: string) => Promise<SessionBranchSwitchStatus>;
237
244
  labelSessionBranch?: (selector: string, label?: string) => Promise<boolean>;
238
245
  forkSession?: (selector?: string) => Promise<SessionForkStatus>;
246
+ recoverSession?: (prompt?: string) => Promise<SessionRecoverStatus>;
239
247
  rewindSession?: (selector?: string) => Promise<SessionRewindStatus>;
240
248
  getCostReport?: () => string | null;
241
249
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kodax-ai/kodax",
3
- "version": "0.7.52",
3
+ "version": "0.7.54",
4
4
  "description": "极致轻量化 Coding Agent - TypeScript 实现,支持 12 个 LLM 提供商,可发布为免 Node 单文件二进制",
5
5
  "type": "module",
6
6
  "private": false,
@@ -1,2 +0,0 @@
1
- // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
- import{sa as a,ta as b}from"./chunk-7X7SOVER.js";import"./chunk-BFXFSEHK.js";import"./chunk-JJTUBNQX.js";import"./chunk-4RVSFOUT.js";import"./chunk-5USNUSTL.js";import"./chunk-LE6STNVN.js";import"./chunk-HMATTIU6.js";import"./chunk-V4WSBIXB.js";export{a as ArgumentCompleter,b as createArgumentCompleter};