@kodax-ai/kodax 0.7.72 → 0.7.74

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 (91) hide show
  1. package/CHANGELOG.md +226 -0
  2. package/README.md +72 -18
  3. package/README_CN.md +55 -14
  4. package/config-templates/config.example.jsonc +7 -0
  5. package/dist/chunks/agent-2ABIG5NW.js +2 -0
  6. package/dist/chunks/argument-completer-C45DEO34.js +2 -0
  7. package/dist/chunks/chunk-5GH3SVI3.js +74 -0
  8. package/dist/chunks/{chunk-SQODXBLX.js → chunk-64M5HOCA.js} +1 -1
  9. package/dist/chunks/{chunk-PKQOEDHJ.js → chunk-7W6KYJU2.js} +224 -230
  10. package/dist/chunks/chunk-C7TZAT3S.js +369 -0
  11. package/dist/chunks/chunk-F7AIEHSS.js +46 -0
  12. package/dist/chunks/{chunk-E27LHEIP.js → chunk-GAFFYJU3.js} +1 -1
  13. package/dist/chunks/chunk-KPGVY6PF.js +321 -0
  14. package/dist/chunks/{chunk-44QXPEEE.js → chunk-MBAPT2R5.js} +1 -1
  15. package/dist/chunks/{chunk-IR5KIK7E.js → chunk-MVCAFD6M.js} +1 -1
  16. package/dist/chunks/chunk-PP53SIIL.js +5 -0
  17. package/dist/chunks/chunk-QH56WEHK.js +2 -0
  18. package/dist/chunks/chunk-UJS7JAO6.js +770 -0
  19. package/dist/chunks/{chunk-MVARIMQV.js → chunk-VK5QTHS6.js} +6 -6
  20. package/dist/chunks/chunk-VPURXE2F.js +427 -0
  21. package/dist/chunks/chunk-XM724XAA.js +329 -0
  22. package/dist/chunks/{chunk-WIBLZK4G.js → chunk-XMP66YWG.js} +11 -4
  23. package/dist/chunks/chunk-XXQLPTAN.js +78 -0
  24. package/dist/chunks/compaction-config-QYCDOW3Q.js +2 -0
  25. package/dist/chunks/{construction-bootstrap-ZJPXUPXQ.js → construction-bootstrap-BKNPJI7O.js} +1 -1
  26. package/dist/chunks/dist-6EK4H7TP.js +2 -0
  27. package/dist/chunks/{dist-GOUP4YVE.js → dist-EVEJAII2.js} +1 -1
  28. package/dist/chunks/host-KS4TJKWQ.js +2 -0
  29. package/dist/chunks/run-manager-L7MKGQNX.js +2 -0
  30. package/dist/chunks/{utils-OTT5CG5J.js → utils-GTJLL4GT.js} +1 -1
  31. package/dist/index.d.ts +17 -16
  32. package/dist/index.js +5 -5
  33. package/dist/kodax_cli.js +1357 -1294
  34. package/dist/provider-capabilities.json +184 -5
  35. package/dist/runtime-worker.js +1277 -1224
  36. package/dist/sdk-a2a.d.ts +11 -10
  37. package/dist/sdk-a2a.js +1 -1
  38. package/dist/sdk-agent.d.ts +110 -62
  39. package/dist/sdk-agent.js +1 -1
  40. package/dist/sdk-coding.d.ts +114 -32
  41. package/dist/sdk-coding.js +1 -1
  42. package/dist/sdk-experimental-memory.d.ts +1 -1
  43. package/dist/sdk-experimental-memory.js +1 -1
  44. package/dist/sdk-llm.d.ts +8 -49
  45. package/dist/sdk-llm.js +1 -1
  46. package/dist/sdk-mcp.js +1 -1
  47. package/dist/sdk-media.d.ts +1 -1
  48. package/dist/sdk-media.js +1 -1
  49. package/dist/sdk-repl.d.ts +153 -24
  50. package/dist/sdk-repl.js +2 -2
  51. package/dist/sdk-runtime.d.ts +238 -19
  52. package/dist/sdk-runtime.js +1 -1
  53. package/dist/sdk-session.d.ts +6 -6
  54. package/dist/sdk-session.js +1 -1
  55. package/dist/sdk-skills.js +1 -1
  56. package/dist/semantic-worker.js +16 -14
  57. package/dist/types-chunks/{base.d-Cz_rwpOi.d.ts → base.d-ChvpaKjZ.d.ts} +1 -1
  58. package/dist/types-chunks/{bash-prefix-extractor.d-CHJO5y94.d.ts → bash-prefix-extractor.d-r1beOESM.d.ts} +50 -14
  59. package/dist/types-chunks/{capability-learning.d-_lR0J4iR.d.ts → capability-learning.d-DPrYxRjF.d.ts} +1 -1
  60. package/dist/types-chunks/{capsule.d-DxtdE-GD.d.ts → capsule.d-zeqV4IQX.d.ts} +11 -3
  61. package/dist/types-chunks/{commands.d-DZxHzH5-.d.ts → commands.d-DUxnK2TU.d.ts} +67 -8
  62. package/dist/types-chunks/{guardrail.d-DlpMnd-Y.d.ts → guardrail.d-CWYD1bdL.d.ts} +2 -1
  63. package/dist/types-chunks/{guardrail.d-auV61_h5.d.ts → guardrail.d-qjuKJZ31.d.ts} +79 -18
  64. package/dist/types-chunks/history-retrieval.d-BKTJIrVd.d.ts +57 -0
  65. package/dist/types-chunks/{public-api.d--IDNJsu1.d.ts → public-api.d-CX4B11qY.d.ts} +19 -5
  66. package/dist/types-chunks/{run-manager.d-Bh50OdVl.d.ts → run-manager.d-B9fEIjZk.d.ts} +1 -1
  67. package/dist/types-chunks/{sdk-session-Cfw6NFu-.d.ts → sdk-session-B0fhAOPa.d.ts} +3 -3
  68. package/dist/types-chunks/{resolver.d-ssgNSlrh.d.ts → side-query.d-DWTMsndP.d.ts} +68 -5
  69. package/dist/types-chunks/{types.d-EqQmHztg.d.ts → types.d-Bm_y6YuM.d.ts} +16 -9
  70. package/dist/types-chunks/{types.d-Cqaw71Ax.d.ts → types.d-CSmF0t0n.d.ts} +6 -5
  71. package/dist/types-chunks/{types.d-CNZgY52F.d.ts → types.d-DEctY20M.d.ts} +10 -3
  72. package/dist/types-chunks/{types.d-DH1mvdcl.d.ts → types.d-sRLugmjy.d.ts} +64 -15
  73. package/dist/types-chunks/{utils.d-gmn3c5U4.d.ts → utils.d-D0wPxz8y.d.ts} +94 -10
  74. package/docs/SDK_EMBEDDER_GUIDE.md +1952 -1573
  75. package/package.json +9 -2
  76. package/dist/chunks/agent-YKGU4USA.js +0 -2
  77. package/dist/chunks/argument-completer-QZETLNAB.js +0 -2
  78. package/dist/chunks/chunk-23X6REO4.js +0 -46
  79. package/dist/chunks/chunk-2RI252RN.js +0 -2
  80. package/dist/chunks/chunk-CLFP6UGU.js +0 -71
  81. package/dist/chunks/chunk-EDZ5KJFT.js +0 -5
  82. package/dist/chunks/chunk-GIK4SGAT.js +0 -364
  83. package/dist/chunks/chunk-GVWPHE23.js +0 -310
  84. package/dist/chunks/chunk-JSDLBXME.js +0 -755
  85. package/dist/chunks/chunk-VDGCGOQH.js +0 -328
  86. package/dist/chunks/chunk-VVE3UM4F.js +0 -410
  87. package/dist/chunks/chunk-ZJIMT5I3.js +0 -78
  88. package/dist/chunks/compaction-config-TWCDFLX6.js +0 -2
  89. package/dist/chunks/dist-JT4ATXVM.js +0 -2
  90. package/dist/chunks/host-SVEDZUC5.js +0 -2
  91. package/dist/chunks/run-manager-RX42UNEM.js +0 -2
@@ -1,4 +1,4 @@
1
- import { q as KodaXProviderConfig, k as KodaXMessage, a1 as KodaXToolDefinition, H as KodaXReasoningRequest, y as KodaXProviderStreamOptions, N as KodaXStreamResult, a7 as KodaXVerifyCredentialResult, l as KodaXModelDescriptor, p as KodaXProviderCapabilityProfile, B as KodaXReasoningCapability, G as KodaXReasoningProfile, n as KodaXNormalizedReasoningRequest, a9 as KodaXWireReasoningEffort } from './types.d-Cqaw71Ax.js';
1
+ import { q as KodaXProviderConfig, k as KodaXMessage, a1 as KodaXToolDefinition, H as KodaXReasoningRequest, y as KodaXProviderStreamOptions, N as KodaXStreamResult, a7 as KodaXVerifyCredentialResult, l as KodaXModelDescriptor, p as KodaXProviderCapabilityProfile, B as KodaXReasoningCapability, G as KodaXReasoningProfile, n as KodaXNormalizedReasoningRequest, a9 as KodaXWireReasoningEffort } from './types.d-CSmF0t0n.js';
2
2
 
3
3
  /**
4
4
  * Retry-After header parsing — FEATURE_130 (v0.7.36).
@@ -1,10 +1,10 @@
1
- import { br as KodaXGoalState, a8 as AgentMessage, du as StopHookFn, bL as KodaXSessionLineage, k as AgentActorStore, aC as AgentTurnExecutor, t as AgentBudgetPort, h as AgentActorClient, N as AgentExecutionResult, V as AgentExecutorPlaneBinding, bx as KodaXJsonValue, bl as KodaXExtensionSessionRecord, f as Agent, dR as WorkflowIsolation, bm as KodaXExtensionSessionState, bC as KodaXSessionArtifactLedgerEntry, de as SessionErrorMetadata, bT as KodaXSessionScope, bU as KodaXSessionStorage, ci as MemoryContextIdentity, cu as MemoryPack, aK as AskUserQuestionOptions, aG as AskUserAnswer, aI as AskUserMultiOptions, dO as WorkflowEventCorrelation, aS as CompactionUpdate, e3 as WorkflowProcessEvent, dN as WorkflowEvent, cI as MemoryReviewPlan, bz as KodaXMemoryOutcomeDigest, ba as Guardrail, aX as DiscoveredInstance, bv as KodaXInputArtifact, cJ as MemoryReviewRunner } from './types.d-DH1mvdcl.js';
2
- import { a0 as KodaXTokenUsage, k as KodaXMessage, a1 as KodaXToolDefinition, a9 as KodaXWireReasoningEffort, U as KodaXTaskRoutingDecision, V as KodaXTaskType, W as KodaXTaskWorkIntent, Q as KodaXTaskComplexity, L as KodaXRiskLevel, h as KodaXHarnessProfile, f as KodaXExecutionMode, b as KodaXChildFanoutClass, F as KodaXReasoningMode, J as KodaXReviewScale } from './types.d-Cqaw71Ax.js';
1
+ import { bs as KodaXGoalState, a8 as AgentMessage, dv as StopHookFn, bM as KodaXSessionLineage, k as AgentActorStore, aC as AgentTurnExecutor, t as AgentBudgetPort, h as AgentActorClient, N as AgentExecutionResult, V as AgentExecutorPlaneBinding, by as KodaXJsonValue, bm as KodaXExtensionSessionRecord, f as Agent, dS as WorkflowIsolation, bn as KodaXExtensionSessionState, bD as KodaXSessionArtifactLedgerEntry, df as SessionErrorMetadata, bU as KodaXSessionScope, bV as KodaXSessionStorage, cj as MemoryContextIdentity, cv as MemoryPack, aK as AskUserQuestionOptions, aG as AskUserAnswer, aI as AskUserMultiOptions, dP as WorkflowEventCorrelation, aT as CompactionUpdate, e4 as WorkflowProcessEvent, dO as WorkflowEvent, cJ as MemoryReviewPlan, bA as KodaXMemoryOutcomeDigest, bb as Guardrail, aY as DiscoveredInstance, bw as KodaXInputArtifact, cK as MemoryReviewRunner } from './types.d-sRLugmjy.js';
2
+ import { a0 as KodaXTokenUsage, k as KodaXMessage, a1 as KodaXToolDefinition, a9 as KodaXWireReasoningEffort, U as KodaXTaskRoutingDecision, V as KodaXTaskType, W as KodaXTaskWorkIntent, Q as KodaXTaskComplexity, L as KodaXRiskLevel, h as KodaXHarnessProfile, f as KodaXExecutionMode, b as KodaXChildFanoutClass, F as KodaXReasoningMode, J as KodaXReviewScale } from './types.d-CSmF0t0n.js';
3
3
  import { d as SkillDynamicContextExecutor, I as ISkillRegistry } from './types.d-DCQVBqVn.js';
4
4
  import { Diagnostic, Position, Location, Hover, DocumentSymbol, SymbolInformation, WorkspaceSymbol, CallHierarchyItem, CallHierarchyIncomingCall, CallHierarchyOutgoingCall } from 'vscode-languageserver-protocol';
5
5
  import { K as KodaXLlmTimeoutConfig, a as CostTracker } from './cost-tracker.d-BeaenODW.js';
6
6
  import { C as CapabilityKind, f as CapabilitySearchSnapshot, b as CapabilityResult } from './capability.d-K664nHOS.js';
7
- import { K as KodaXBaseProvider } from './base.d-Cz_rwpOi.js';
7
+ import { K as KodaXBaseProvider } from './base.d-ChvpaKjZ.js';
8
8
 
9
9
  /**
10
10
  * FEATURE_192 v0.7.44 Phase C — Goal-tools execution context.
@@ -665,6 +665,7 @@ interface GoalLifecycleContext {
665
665
  interface BeforeNextTurnFnCtx {
666
666
  readonly transcript: readonly AgentMessage[];
667
667
  readonly iteration: number;
668
+ readonly lastTurnToolNames?: readonly string[];
668
669
  }
669
670
  type BeforeNextTurnFn = (ctx: BeforeNextTurnFnCtx) => Promise<readonly AgentMessage[]>;
670
671
  /**
@@ -869,7 +870,7 @@ declare function createExternalActorTurnExecutor(binding: AgentExecutorPlaneBind
869
870
  * configure / install / troubleshoot KodaX?" questions. Pure data + a
870
871
  * deterministic resolver — no RAG, no vector store, no network fetch.
871
872
  */
872
- type KodaXManualTopicId = 'overview' | 'license' | 'install' | 'quickstart' | 'providers' | 'custom-providers' | 'config' | 'permissions' | 'commands' | 'tools' | 'agents' | 'skills' | 'extensions' | 'mcp' | 'a2a' | 'repo-intelligence' | 'sessions' | 'memory' | 'doctor' | 'sdk' | 'troubleshooting';
873
+ type KodaXManualTopicId = 'overview' | 'license' | 'install' | 'quickstart' | 'providers' | 'custom-providers' | 'config' | 'permissions' | 'commands' | 'tools' | 'agents' | 'skills' | 'extensions' | 'mcp' | 'a2a' | 'repo-intelligence' | 'sessions' | 'compaction' | 'memory' | 'doctor' | 'sdk' | 'troubleshooting';
873
874
  /** A pointer to the code/doc the topic is derived from (for traceability). */
874
875
  interface KodaXManualSource {
875
876
  readonly label: string;
@@ -1194,6 +1195,8 @@ declare function planToolExposure(input: RuntimeToolExposurePlanInput): RuntimeT
1194
1195
  interface CompactionAntiThrashState {
1195
1196
  readonly lowSavingsStreak: number;
1196
1197
  readonly cooldownTurnsRemaining: number;
1198
+ readonly coveredTokensAfter?: number;
1199
+ readonly rearmAtTokens?: number;
1197
1200
  }
1198
1201
  interface CompactionSavingsSample {
1199
1202
  readonly tokensBefore: number;
@@ -1210,7 +1213,7 @@ interface CompactionSavingsDecision {
1210
1213
  readonly lowSavings: boolean;
1211
1214
  readonly enteredCooldown: boolean;
1212
1215
  }
1213
- type CompactionSkipReason = 'low_savings_cooldown';
1216
+ type CompactionSkipReason = 'low_savings_cooldown' | 'covered_context_unchanged';
1214
1217
  interface RuntimeCompactionSkippedEvent {
1215
1218
  readonly reason: CompactionSkipReason;
1216
1219
  readonly currentTokens: number;
@@ -1220,7 +1223,7 @@ interface RuntimeCompactionSkippedEvent {
1220
1223
  readonly lowSavingsStreak: number;
1221
1224
  }
1222
1225
  declare function createCompactionAntiThrashState(): CompactionAntiThrashState;
1223
- declare function shouldSkipLlmCompaction(state: CompactionAntiThrashState | undefined): boolean;
1226
+ declare function shouldSkipLlmCompaction(state: CompactionAntiThrashState | undefined, currentTokens?: number): boolean;
1224
1227
  declare function consumeCompactionCooldown(state: CompactionAntiThrashState | undefined): CompactionAntiThrashState;
1225
1228
  declare function recordCompactionSavings(state: CompactionAntiThrashState | undefined, sample: CompactionSavingsSample, config?: CompactionAntiThrashConfig): CompactionSavingsDecision;
1226
1229
 
@@ -1598,7 +1601,14 @@ interface KodaXWorkflowEventMeta {
1598
1601
  readonly workflowCorrelation?: WorkflowEventCorrelation;
1599
1602
  }
1600
1603
  type KodaXTurnDeliveryKind = 'initial' | 'queued' | 'interrupt' | 'resume';
1601
- interface KodaXLiveEventMeta {
1604
+ interface KodaXContextIdentity {
1605
+ readonly contextId: string;
1606
+ readonly contextKind: 'root' | 'child';
1607
+ readonly parentContextId?: string;
1608
+ readonly agentId?: string;
1609
+ readonly contextRevision: number;
1610
+ }
1611
+ interface KodaXLiveEventMeta extends Partial<KodaXContextIdentity> {
1602
1612
  readonly sessionId: string;
1603
1613
  readonly seq: number;
1604
1614
  readonly turnId: string;
@@ -1630,6 +1640,8 @@ interface KodaXActivityEventMeta extends KodaXWorkflowEventMeta, Partial<KodaXLi
1630
1640
  * session. Absent on paths that do not yet thread the resolved session id.
1631
1641
  */
1632
1642
  readonly sessionId?: string;
1643
+ /** Exact queue identities consumed by a mid-turn user-message boundary. */
1644
+ readonly queuedMessageIds?: readonly string[];
1633
1645
  /**
1634
1646
  * FEATURE_247 (R8) — SDK-consumer agent profile that produced this event.
1635
1647
  * Absent ⇒ default Coding Agent (or an event emitted before a profile is known).
@@ -1650,6 +1662,21 @@ interface KodaXWorkflowAgentDigestEvent {
1650
1662
  interface KodaXToolEventMeta extends KodaXActivityEventMeta {
1651
1663
  readonly toolId?: string;
1652
1664
  }
1665
+ interface KodaXContextCompactionFinishedEvent extends Partial<KodaXLiveEventMeta> {
1666
+ readonly source: 'manual' | 'automatic_threshold' | 'physical_capacity';
1667
+ readonly tokensBefore: number;
1668
+ readonly tokensAfter: number;
1669
+ readonly committed: boolean;
1670
+ readonly elapsedMs: number;
1671
+ readonly strategy?: 'full_prefix' | 'map_reduce';
1672
+ readonly effectiveTriggerTokens?: number;
1673
+ readonly protectedBudgetTokens?: number;
1674
+ readonly fixedInputTokens?: number;
1675
+ readonly eligibleTokens?: number;
1676
+ readonly rawTailTokens?: number;
1677
+ readonly summaryTokens?: number;
1678
+ readonly queryLedgerTokens?: number;
1679
+ }
1653
1680
  interface KodaXSidecarMessageEvent {
1654
1681
  readonly source: 'sidecar-verifier';
1655
1682
  readonly verdict: 'revise' | 'blocked';
@@ -1742,7 +1769,9 @@ interface KodaXEvents {
1742
1769
  tokensAfter: number;
1743
1770
  } & Partial<KodaXLiveEventMeta>) => void;
1744
1771
  /** Emitted with the rewritten message history when automatic compaction changes the context. */
1745
- onCompactedMessages?: (messages: KodaXMessage[], update?: CompactionUpdate, meta?: KodaXActivityEventMeta) => void;
1772
+ onCompactedMessages?: (messages: KodaXMessage[], update?: CompactionUpdate, meta?: KodaXActivityEventMeta) => void | Promise<void>;
1773
+ /** Canonical, post-commit compaction fact. Legacy callbacks are projections. */
1774
+ onContextCompactionFinished?: (event: KodaXContextCompactionFinishedEvent) => void;
1746
1775
  /** Emitted to silently dismiss the compaction UI if compaction aborted or completed without changes */
1747
1776
  onCompactEnd?: (meta?: KodaXActivityEventMeta) => void;
1748
1777
  /** Whether the caller has queued follow-up input waiting for the next round */
@@ -2781,16 +2810,18 @@ interface KodaXSelfManualConfig {
2781
2810
  * over both the adaptive default and `~/.kodax/config.json`. Lets an
2782
2811
  * embedder that calls `runManagedTask` in-process pin the context window /
2783
2812
  * trigger for a model the built-in capability table doesn't cover (or that
2784
- * it resolves through a custom provider), or disable auto-compaction for a
2785
- * run — without writing to the user's home-dir config file. Omitted fields
2813
+ * it resolves through a custom provider), or tune the always-on compaction
2814
+ * policy for a run — without writing to the user's home-dir config file. Omitted fields
2786
2815
  * fall through to the normal resolution cascade.
2787
2816
  */
2788
2817
  interface KodaXCompactionOverride {
2789
2818
  /** Override the resolved provider context window, in tokens. */
2790
2819
  contextWindow?: number;
2791
- /** Override the auto-compaction trigger percentage (0-100). */
2820
+ /** Override the auto-compaction trigger percentage (normalized to 15-90). */
2792
2821
  triggerPercent?: number;
2793
- /** Set false to disable automatic compaction for this run. */
2822
+ /** Optional absolute token threshold. Missing/zero is inactive. */
2823
+ triggerTokens?: number;
2824
+ /** @deprecated Automatic large compaction is always enabled. */
2794
2825
  enabled?: boolean;
2795
2826
  }
2796
2827
  /**
@@ -3176,6 +3207,8 @@ interface KodaXToolExecutionContext {
3176
3207
  readonly content: string;
3177
3208
  readonly evidenceRefs: readonly string[];
3178
3209
  } | undefined>;
3210
+ /** Exact persisted history loader for the current root or isolated worker Session. */
3211
+ loadSessionHistory?: () => Promise<KodaXSessionLineage | null>;
3179
3212
  /** Git root directory - Git 鏍圭洰褰?*/
3180
3213
  gitRoot?: string;
3181
3214
  /**
@@ -3222,6 +3255,8 @@ interface KodaXToolExecutionContext {
3222
3255
  assertReadablePath?: (candidate: string) => void;
3223
3256
  /** Host tool visibility ceiling inherited by child agents. */
3224
3257
  toolVisibilityPolicy?: KodaXToolVisibilityPolicy;
3258
+ /** Static caller exclusions applied before constructing a model-visible tool schema. */
3259
+ excludeTools?: readonly string[];
3225
3260
  /** Maximum physical input capacity of the active model request. */
3226
3261
  maximumInputTokens?: number;
3227
3262
  /** Remaining capacity for the complete tool-result batch in this request. */
@@ -3294,6 +3329,7 @@ interface KodaXToolExecutionContext {
3294
3329
  readonly effort?: KodaXWireReasoningEffort;
3295
3330
  readonly repoIntelligenceMode?: KodaXRepoIntelligenceMode;
3296
3331
  readonly repoIntelligenceTrace?: boolean;
3332
+ readonly compaction?: Readonly<KodaXCompactionOverride>;
3297
3333
  };
3298
3334
  /** Parent SDK/REPL callback surface used to preserve nested Agent telemetry. */
3299
3335
  parentEvents?: KodaXEvents;
@@ -3653,5 +3689,5 @@ interface CreateBashPrefixExtractorOptions {
3653
3689
  */
3654
3690
  declare function createBashPrefixExtractor(opts: CreateBashPrefixExtractorOptions): BashPrefixExtractor;
3655
3691
 
3656
- export { ALWAYS_RESIDENT_TOOL_NAMES as A, BASH_POLICY_SPEC as B, LSP_SERVERS as aQ, LspService as aS, createExternalActorTurnExecutor as bA, createLocalCodingActorControl as bB, createRuntimeContextBudgetSnapshot as bC, decideWorkflowInvocation as bD, drainPendingSwaps as bE, estimateToolSchemaTokens as bF, extractCommandPrefix as bG, getDefaultLspService as bH, hasExplicitNaturalLanguageWorkflowIntent as bI, hasPendingSwap as bJ, makeDisabledGoalToolsContext as bK, normalizeKodaXAgentMode as bL, planToolExposure as bM, providerResilienceConfigFromTimeouts as bN, recordCompactionSavings as bO, resolveConstructedAgent as bP, shouldSkipLlmCompaction as bQ, shutdownDefaultLspService as bR, withGoalBeforeNextTurn as bS, withGoalStopHook as bT, workflowStartOutcomeConsumesTurn as bU, buildGoalRuntimeBinding as bw, consumeCompactionCooldown as bx, createBashPrefixExtractor as by, createCompactionAntiThrashState as bz, CodingActorSession as d };
3657
- export type { KodaXOptions as $, CapabilityRuntimeContract as C, DiagnosticsRequest as D, ExtensionRuntimeContract as E, FailureStage as F, GoalBlockedResult as G, KodaXChildContextBundle as H, KodaXChildExecutionResult as I, KodaXCompactionOverride as J, KodaXActivityEventMeta as K, KodaXContextOptions as L, KodaXContextTokenSnapshot as M, KodaXEffectiveTaskConfig as N, KodaXEvents as O, KodaXLiveEventMeta as P, KodaXManagedBudgetSnapshot as Q, KodaXManagedProtocolPayload as R, KodaXManagedTask as S, KodaXManagedTaskRuntimeState as T, KodaXManagedTaskStatusEvent as U, KodaXManualIndexTopic as V, KodaXManualSource as W, KodaXManualTopic as X, KodaXManualTopicId as Y, KodaXManualTopicInput as Z, KodaXMemoryStrategy as _, BashPrefixExtractor as a, RecoveryResult as a$, KodaXOrchestrationVerdict as a0, KodaXParentReductionContract as a1, KodaXProviderPolicyHints as a2, KodaXRepoIntelligenceCapability as a3, KodaXRepoIntelligenceMode as a4, KodaXRepoIntelligenceResolvedMode as a5, KodaXRepoIntelligenceTrace as a6, KodaXRepoIntelligenceTraceEvent as a7, KodaXRepoRoutingSignals as a8, KodaXResult as a9, KodaXTaskVerificationCriterion as aA, KodaXTaskWorkItem as aB, KodaXTimeoutConfig as aC, KodaXToolEventMeta as aD, KodaXToolExecutionContext as aE, KodaXToolVisibilityMeta as aF, KodaXToolVisibilityPolicy as aG, KodaXTurnCompletedEvent as aH, KodaXTurnDeliveryKind as aI, KodaXTurnFailedEvent as aJ, KodaXTurnStartedEvent as aK, KodaXVerificationScorecard as aL, KodaXVerificationScorecardCriterion as aM, KodaXWorkflowAgentDigestEvent as aN, KodaXWorkflowEventMeta as aO, KodaXWorkflowTimeoutConfig as aP, LspServerInfo as aR, LspServiceConfig as aT, ProviderExecutionState as aU, ProviderRecoveryEvent as aV, ProviderResilienceConfig as aW, ProviderResiliencePolicy as aX, RecoveryAction as aY, RecoveryDecision as aZ, RecoveryLadderStep as a_, KodaXRoleRoundSummary as aa, KodaXRuntimeVerificationContract as ab, KodaXSelfManualConfig as ac, KodaXSessionControl as ad, KodaXSessionMutators as ae, KodaXSessionOptions as af, KodaXSidecarMessageEvent as ag, KodaXSkillDynamicContextPolicy as ah, KodaXSkillInvocationContext as ai, KodaXSkillMap as aj, KodaXSkillProjectionConfidence as ak, KodaXSkillScriptInputFile as al, KodaXSkillScriptOutputFile as am, KodaXSkillScriptRunInput as an, KodaXSkillScriptRunner as ao, KodaXTaskCapabilityHint as ap, KodaXTaskContract as aq, KodaXTaskEvidenceArtifact as ar, KodaXTaskEvidenceBundle as as, KodaXTaskEvidenceEntry as at, KodaXTaskRole as au, KodaXTaskRoleAssignment as av, KodaXTaskStatus as aw, KodaXTaskSurface as ax, KodaXTaskToolPolicy as ay, KodaXTaskVerificationContract as az, BashPrefixResult as b, ResilienceClassification as b0, ResilienceErrorClass as b1, ResolveKodaXManualInput as b2, ResolveKodaXManualOptions as b3, ResolveKodaXManualResult as b4, RuntimeCompactionSkippedEvent as b5, RuntimeContextBudgetBreakdown as b6, RuntimeContextBudgetRecommendation as b7, RuntimeContextBudgetSnapshot as b8, RuntimeContextBudgetSnapshotInput as b9, RuntimeContextOptimizationProfile as ba, RuntimeContextPressure as bb, RuntimeDefaultsSnapshot as bc, RuntimeToolExposureDecision as bd, RuntimeToolExposureMode as be, RuntimeToolExposurePlan as bf, RuntimeToolExposurePlanInput as bg, RuntimeToolExposureReason as bh, TodoItem as bi, TodoList as bj, TodoStatus as bk, ToolSideEffect as bl, WorkflowHostPolicy as bm, WorkflowInvocationAction as bn, WorkflowInvocationPolicyDecision as bo, WorkflowInvocationPolicyInput as bp, WorkflowInvocationSource as bq, WorkflowStartOutcome as br, WorkflowToolHost as bs, WorkflowToolHostInlineInput as bt, WorkflowToolHostResult as bu, WorkflowToolHostStartResult as bv, BoundExtensionRuntimeController as c, CodingActorSessionOptions as e, CompactionAntiThrashConfig as f, CompactionAntiThrashState as g, CompactionSavingsDecision as h, CompactionSavingsSample as i, CompactionSkipReason as j, CreateBashPrefixExtractorOptions as k, ExtractCommandPrefixOptions as l, GoalCompleteResult as m, GoalCreateInput as n, GoalLifecycleContext as o, GoalRuntimeBinding as p, GoalRuntimeBindingDeps as q, GoalToolsContext as r, KodaXActorHost as s, KodaXAgentMode as t, KodaXAgentProfile as u, KodaXAgentScope as v, KodaXBudgetDisclosureZone as w, KodaXBudgetExtensionRequest as x, KodaXCanonicalAgentMode as y, KodaXChildAgentResult as z };
3692
+ export { ALWAYS_RESIDENT_TOOL_NAMES as A, BASH_POLICY_SPEC as B, LSP_SERVERS as aS, LspService as aU, createBashPrefixExtractor as bA, createCompactionAntiThrashState as bB, createExternalActorTurnExecutor as bC, createLocalCodingActorControl as bD, createRuntimeContextBudgetSnapshot as bE, decideWorkflowInvocation as bF, drainPendingSwaps as bG, estimateToolSchemaTokens as bH, extractCommandPrefix as bI, getDefaultLspService as bJ, hasExplicitNaturalLanguageWorkflowIntent as bK, hasPendingSwap as bL, makeDisabledGoalToolsContext as bM, normalizeKodaXAgentMode as bN, planToolExposure as bO, providerResilienceConfigFromTimeouts as bP, recordCompactionSavings as bQ, resolveConstructedAgent as bR, shouldSkipLlmCompaction as bS, shutdownDefaultLspService as bT, withGoalBeforeNextTurn as bU, withGoalStopHook as bV, workflowStartOutcomeConsumesTurn as bW, buildGoalRuntimeBinding as by, consumeCompactionCooldown as bz, CodingActorSession as d };
3693
+ export type { KodaXManualTopicInput as $, CapabilityRuntimeContract as C, DiagnosticsRequest as D, ExtensionRuntimeContract as E, FailureStage as F, GoalBlockedResult as G, KodaXChildContextBundle as H, KodaXChildExecutionResult as I, KodaXCompactionOverride as J, KodaXActivityEventMeta as K, KodaXContextCompactionFinishedEvent as L, KodaXContextIdentity as M, KodaXContextOptions as N, KodaXContextTokenSnapshot as O, KodaXEffectiveTaskConfig as P, KodaXEvents as Q, KodaXLiveEventMeta as R, KodaXManagedBudgetSnapshot as S, KodaXManagedProtocolPayload as T, KodaXManagedTask as U, KodaXManagedTaskRuntimeState as V, KodaXManagedTaskStatusEvent as W, KodaXManualIndexTopic as X, KodaXManualSource as Y, KodaXManualTopic as Z, KodaXManualTopicId as _, BashPrefixExtractor as a, RecoveryDecision as a$, KodaXMemoryStrategy as a0, KodaXOptions as a1, KodaXOrchestrationVerdict as a2, KodaXParentReductionContract as a3, KodaXProviderPolicyHints as a4, KodaXRepoIntelligenceCapability as a5, KodaXRepoIntelligenceMode as a6, KodaXRepoIntelligenceResolvedMode as a7, KodaXRepoIntelligenceTrace as a8, KodaXRepoIntelligenceTraceEvent as a9, KodaXTaskToolPolicy as aA, KodaXTaskVerificationContract as aB, KodaXTaskVerificationCriterion as aC, KodaXTaskWorkItem as aD, KodaXTimeoutConfig as aE, KodaXToolEventMeta as aF, KodaXToolExecutionContext as aG, KodaXToolVisibilityMeta as aH, KodaXToolVisibilityPolicy as aI, KodaXTurnCompletedEvent as aJ, KodaXTurnDeliveryKind as aK, KodaXTurnFailedEvent as aL, KodaXTurnStartedEvent as aM, KodaXVerificationScorecard as aN, KodaXVerificationScorecardCriterion as aO, KodaXWorkflowAgentDigestEvent as aP, KodaXWorkflowEventMeta as aQ, KodaXWorkflowTimeoutConfig as aR, LspServerInfo as aT, LspServiceConfig as aV, ProviderExecutionState as aW, ProviderRecoveryEvent as aX, ProviderResilienceConfig as aY, ProviderResiliencePolicy as aZ, RecoveryAction as a_, KodaXRepoRoutingSignals as aa, KodaXResult as ab, KodaXRoleRoundSummary as ac, KodaXRuntimeVerificationContract as ad, KodaXSelfManualConfig as ae, KodaXSessionControl as af, KodaXSessionMutators as ag, KodaXSessionOptions as ah, KodaXSidecarMessageEvent as ai, KodaXSkillDynamicContextPolicy as aj, KodaXSkillInvocationContext as ak, KodaXSkillMap as al, KodaXSkillProjectionConfidence as am, KodaXSkillScriptInputFile as an, KodaXSkillScriptOutputFile as ao, KodaXSkillScriptRunInput as ap, KodaXSkillScriptRunner as aq, KodaXTaskCapabilityHint as ar, KodaXTaskContract as as, KodaXTaskEvidenceArtifact as at, KodaXTaskEvidenceBundle as au, KodaXTaskEvidenceEntry as av, KodaXTaskRole as aw, KodaXTaskRoleAssignment as ax, KodaXTaskStatus as ay, KodaXTaskSurface as az, BashPrefixResult as b, RecoveryLadderStep as b0, RecoveryResult as b1, ResilienceClassification as b2, ResilienceErrorClass as b3, ResolveKodaXManualInput as b4, ResolveKodaXManualOptions as b5, ResolveKodaXManualResult as b6, RuntimeCompactionSkippedEvent as b7, RuntimeContextBudgetBreakdown as b8, RuntimeContextBudgetRecommendation as b9, RuntimeContextBudgetSnapshot as ba, RuntimeContextBudgetSnapshotInput as bb, RuntimeContextOptimizationProfile as bc, RuntimeContextPressure as bd, RuntimeDefaultsSnapshot as be, RuntimeToolExposureDecision as bf, RuntimeToolExposureMode as bg, RuntimeToolExposurePlan as bh, RuntimeToolExposurePlanInput as bi, RuntimeToolExposureReason as bj, TodoItem as bk, TodoList as bl, TodoStatus as bm, ToolSideEffect as bn, WorkflowHostPolicy as bo, WorkflowInvocationAction as bp, WorkflowInvocationPolicyDecision as bq, WorkflowInvocationPolicyInput as br, WorkflowInvocationSource as bs, WorkflowStartOutcome as bt, WorkflowToolHost as bu, WorkflowToolHostInlineInput as bv, WorkflowToolHostResult as bw, WorkflowToolHostStartResult as bx, BoundExtensionRuntimeController as c, CodingActorSessionOptions as e, CompactionAntiThrashConfig as f, CompactionAntiThrashState as g, CompactionSavingsDecision as h, CompactionSavingsSample as i, CompactionSkipReason as j, CreateBashPrefixExtractorOptions as k, ExtractCommandPrefixOptions as l, GoalCompleteResult as m, GoalCreateInput as n, GoalLifecycleContext as o, GoalRuntimeBinding as p, GoalRuntimeBindingDeps as q, GoalToolsContext as r, KodaXActorHost as s, KodaXAgentMode as t, KodaXAgentProfile as u, KodaXAgentScope as v, KodaXBudgetDisclosureZone as w, KodaXBudgetExtensionRequest as x, KodaXCanonicalAgentMode as y, KodaXChildAgentResult as z };
@@ -1,4 +1,4 @@
1
- import { G as KodaXReasoningProfile } from './types.d-Cqaw71Ax.js';
1
+ import { G as KodaXReasoningProfile } from './types.d-CSmF0t0n.js';
2
2
 
3
3
  type CapabilityCacheSource = 'observed' | 'probed';
4
4
  interface CapabilityCacheEntry {
@@ -1,5 +1,5 @@
1
- import { k as KodaXMessage } from './types.d-Cqaw71Ax.js';
2
- import { a8 as AgentMessage, dd as SessionEntry, db as Session, df as SessionExtension, bL as KodaXSessionLineage, bx as KodaXJsonValue, aP as CompactionDetails, bk as KodaXCompactMemorySeed, bH as KodaXSessionEntry, bV as KodaXSessionTreeNode, bK as KodaXSessionLabelEntry, bJ as KodaXSessionGoalEntry, bE as KodaXSessionClientNoticeEntry, bR as KodaXSessionRewindMarkerEntry, bM as KodaXSessionMemoryOutcomeDigestEntry, bN as KodaXSessionMemoryReviewReceiptEntry, bQ as KodaXSessionNavigationOptions, bC as KodaXSessionArtifactLedgerEntry, b8 as FileOperations, dU as WorkflowMeta, dV as WorkflowModelHint, dW as WorkflowModule } from './types.d-DH1mvdcl.js';
1
+ import { k as KodaXMessage } from './types.d-CSmF0t0n.js';
2
+ import { a8 as AgentMessage, de as SessionEntry, dc as Session, dg as SessionExtension, bM as KodaXSessionLineage, by as KodaXJsonValue, aP as CompactionDetails, bl as KodaXCompactMemorySeed, bI as KodaXSessionEntry, bW as KodaXSessionTreeNode, bL as KodaXSessionLabelEntry, bK as KodaXSessionGoalEntry, bF as KodaXSessionClientNoticeEntry, bS as KodaXSessionRewindMarkerEntry, bN as KodaXSessionMemoryOutcomeDigestEntry, bO as KodaXSessionMemoryReviewReceiptEntry, bR as KodaXSessionNavigationOptions, bD as KodaXSessionArtifactLedgerEntry, b9 as FileOperations, dV as WorkflowMeta, dW as WorkflowModelHint, dX as WorkflowModule } from './types.d-sRLugmjy.js';
3
3
 
4
4
  /**
5
5
  * @kodax-ai/agent Constants
@@ -583,6 +583,14 @@ declare function applySessionCompaction(lineage: KodaXSessionLineage | undefined
583
583
  * defines the helper; no production caller yet.
584
584
  */
585
585
  declare function applyLineageTruncation(lineage: KodaXSessionLineage | undefined, trimmedMessages: KodaXMessage[]): KodaXSessionLineage;
586
+ /**
587
+ * Replace message content of entries in old islands (not the active island)
588
+ * with a lightweight placeholder. This releases large tool_result payloads
589
+ * from memory while preserving the entry skeleton for tree structure.
590
+ *
591
+ * Hosts call this only after the exact lineage has been durably committed.
592
+ */
593
+ declare function evictOldIslandMessageContent(lineage: KodaXSessionLineage): KodaXSessionLineage;
586
594
  declare function findPreviousUserEntryId(lineage: KodaXSessionLineage): string | null;
587
595
  declare function rewindSessionLineage(lineage: KodaXSessionLineage, targetEntryId: string): KodaXSessionLineage | null;
588
596
  declare function forkSessionLineage(lineage: KodaXSessionLineage, selector?: string): KodaXSessionLineage | null;
@@ -760,5 +768,5 @@ declare function buildWorkflowCapsuleIntent(manifest: {
760
768
  readonly originalRequest?: string;
761
769
  }): WorkflowCapsuleIntent;
762
770
 
763
- export { createSessionLineage as $, DefaultSummaryCompaction as D, KODAX_API_MIN_INTERVAL as K, LINEAGE_ENTRY_TYPES as L, actorQueueId as N, appendSessionLineageLabel as O, PROMISE_PATTERN as P, applyLineageTruncation as Q, applySessionCompaction as R, archiveOldIslands as S, assertRestrictedWorkflowQuality as T, buildSessionTree as U, buildWorkflowCapsuleIntent as V, WORKFLOW_CAPSULE_API_VERSION as W, cleanupIncompleteToolCalls as X, countActiveLineageMessages as Y, countTokens as Z, _resetActiveRootQueueRoutesForTests as _, createWorkflowCapsule as a0, createWorkflowModuleFromCapsule as a1, estimateTokens as a2, extractArtifactLedger as a3, extractFileOps as a4, extractTitleFromMessages as a5, findPreviousUserEntryId as a6, forkSessionLineage as a7, generateSessionId as a8, getAgentConfigHome as a9, getAgentConfigPath as aa, getAppDataDir as ab, getSessionLineagePath as ac, getSessionMessagesFromLineage as ad, isPathInsideDirectory as ae, lintRestrictedWorkflowSource as af, mergeArtifactLedger as ag, mergeFileOps as ah, registerActiveRootQueueRoute as ai, resolveActiveRootQueueRoute as aj, resolveExecutionPath as ak, resolveSessionLineageTarget as al, rewindSessionLineage as am, setAgentConfigHome as an, setSessionLineageActiveEntry as ao, validateAndFixToolHistory as ap, validateWorkflowCapsule as aq, validateWorkflowScriptManifest as ar, KODAX_DEFAULT_TIMEOUT as f, KODAX_HARD_TIMEOUT as g, KODAX_MAX_INCOMPLETE_RETRIES as h, KODAX_MAX_MAXTOKENS_RETRIES as i, KODAX_MAX_RETRIES as j, KODAX_MAX_TOKENS as k, KODAX_RETRY_BASE_DELAY as l, KODAX_STAGGER_DELAY as m, LineageCompaction as o, LineageExtension as r, WORKFLOW_CAPSULE_FORMAT as v, WORKFLOW_CAPSULE_VERSION as w, WORKFLOW_PATTERN_IDS as x };
771
+ export { createSessionLineage as $, DefaultSummaryCompaction as D, KODAX_API_MIN_INTERVAL as K, LINEAGE_ENTRY_TYPES as L, actorQueueId as N, appendSessionLineageLabel as O, PROMISE_PATTERN as P, applyLineageTruncation as Q, applySessionCompaction as R, archiveOldIslands as S, assertRestrictedWorkflowQuality as T, buildSessionTree as U, buildWorkflowCapsuleIntent as V, WORKFLOW_CAPSULE_API_VERSION as W, cleanupIncompleteToolCalls as X, countActiveLineageMessages as Y, countTokens as Z, _resetActiveRootQueueRoutesForTests as _, createWorkflowCapsule as a0, createWorkflowModuleFromCapsule as a1, estimateTokens as a2, evictOldIslandMessageContent as a3, extractArtifactLedger as a4, extractFileOps as a5, extractTitleFromMessages as a6, findPreviousUserEntryId as a7, forkSessionLineage as a8, generateSessionId as a9, getAgentConfigHome as aa, getAgentConfigPath as ab, getAppDataDir as ac, getSessionLineagePath as ad, getSessionMessagesFromLineage as ae, isPathInsideDirectory as af, lintRestrictedWorkflowSource as ag, mergeArtifactLedger as ah, mergeFileOps as ai, registerActiveRootQueueRoute as aj, resolveActiveRootQueueRoute as ak, resolveExecutionPath as al, resolveSessionLineageTarget as am, rewindSessionLineage as an, setAgentConfigHome as ao, setSessionLineageActiveEntry as ap, validateAndFixToolHistory as aq, validateWorkflowCapsule as ar, validateWorkflowScriptManifest as as, KODAX_DEFAULT_TIMEOUT as f, KODAX_HARD_TIMEOUT as g, KODAX_MAX_INCOMPLETE_RETRIES as h, KODAX_MAX_MAXTOKENS_RETRIES as i, KODAX_MAX_RETRIES as j, KODAX_MAX_TOKENS as k, KODAX_RETRY_BASE_DELAY as l, KODAX_STAGGER_DELAY as m, LineageCompaction as o, LineageExtension as r, WORKFLOW_CAPSULE_FORMAT as v, WORKFLOW_CAPSULE_VERSION as w, WORKFLOW_PATTERN_IDS as x };
764
772
  export type { WorkflowCapsuleInputs as A, WorkflowCapsuleIntent as B, CompactionContext as C, WorkflowCapsuleProvenance as E, WorkflowCapsuleRequirements as F, WorkflowPatternId as G, WorkflowQualityLintFinding as H, WorkflowQualityLintOptions as I, WorkflowQualityLintSeverity as J, WorkflowScriptManifest as M, CompactionEntry as a, CompactionEntryPayload as b, CompactionPolicy as c, CreateWorkflowCapsuleInput as d, DefaultSummaryCompactionOptions as e, LineageArtifactLedgerPayload as n, LineageCompactionDelegates as p, LineageEntryType as q, LineageLabelPayload as s, LineageTreeNode as t, PolicyCompactionResult as u, WorkflowCapsule as y, WorkflowCapsuleEnvironmentRequirement as z };
@@ -1,7 +1,53 @@
1
- import { X as SessionStorage$1, R as PermissionMode, L as LearningBinding } from './public-api.d--IDNJsu1.js';
2
- import { $ as KodaXOptions, a9 as KodaXResult } from './bash-prefix-extractor.d-CHJO5y94.js';
3
- import { n as RuntimeSurfaceStatus, b as CommandDefinition, e as CommandSource, c as CommandInfo, C as Command$1, I as InteractiveContext, a as CommandCallbacks, g as CurrentConfig, d as CommandInvocationRequest, f as CommandWorkflowInvocationRequest } from './utils.d-gmn3c5U4.js';
4
- import { bU as KodaXSessionStorage, bG as KodaXSessionData } from './types.d-DH1mvdcl.js';
1
+ import { X as SessionStorage$1, R as PermissionMode, L as LearningBinding } from './public-api.d-CX4B11qY.js';
2
+ import { a1 as KodaXOptions, ab as KodaXResult } from './bash-prefix-extractor.d-r1beOESM.js';
3
+ import { n as ResolvedAutoModeSettings, p as RuntimeSurfaceStatus, b as CommandDefinition, e as CommandSource, c as CommandInfo, C as Command$1, I as InteractiveContext, a as CommandCallbacks, g as CurrentConfig, d as CommandInvocationRequest, f as CommandWorkflowInvocationRequest } from './utils.d-D0wPxz8y.js';
4
+ import { bV as KodaXSessionStorage, bH as KodaXSessionData } from './types.d-sRLugmjy.js';
5
+ import { r as AutoModeStats } from './guardrail.d-qjuKJZ31.js';
6
+
7
+ interface ReplRuntimePermissionGrantSuggestion {
8
+ readonly id: string;
9
+ readonly kind: 'session' | 'persistent';
10
+ readonly label: string;
11
+ }
12
+ interface ReplRuntimePermissionRequest {
13
+ readonly id: string;
14
+ readonly toolName: string;
15
+ readonly toolCallId?: string;
16
+ readonly input: Readonly<Record<string, unknown>>;
17
+ readonly reason?: string;
18
+ readonly risk?: 'low' | 'medium' | 'high';
19
+ readonly executionCwd?: string;
20
+ readonly grantSuggestions?: readonly ReplRuntimePermissionGrantSuggestion[];
21
+ }
22
+ type ReplRuntimePermissionDecision = {
23
+ readonly type: 'allow_once';
24
+ } | {
25
+ readonly type: 'allow_session';
26
+ readonly suggestionId: string;
27
+ } | {
28
+ readonly type: 'allow_always';
29
+ readonly suggestionId: string;
30
+ } | {
31
+ readonly type: 'reject';
32
+ readonly reason?: string;
33
+ };
34
+ type ReplRuntimePermissionPrompt = (request: ReplRuntimePermissionRequest) => Promise<ReplRuntimePermissionDecision>;
35
+ declare const RUNTIME_PERMISSION_PENDING_NOTICE = "Runtime state: run active until this approval is resolved.";
36
+ interface ReplRuntimeAutoModeControl {
37
+ getStats(sessionId: string): Promise<AutoModeStats | undefined>;
38
+ setEngine(sessionId: string, engine: 'llm' | 'rules'): Promise<AutoModeStats | undefined>;
39
+ syncSettings?(sessionId: string, permissionMode: string, settings: ReplRuntimeAutoModeSettings): Promise<AutoModeStats | undefined>;
40
+ subscribe?(sessionId: string, listener: (stats: AutoModeStats | undefined) => void): {
41
+ close(): void;
42
+ };
43
+ }
44
+ interface ReplRuntimeAutoModeSettings {
45
+ readonly engine: 'llm' | 'rules';
46
+ readonly classifierModel?: string;
47
+ readonly timeoutMs?: number;
48
+ readonly speculativeWindowMs?: number;
49
+ }
50
+ declare function toReplRuntimeAutoModeSettings(settings: ResolvedAutoModeSettings): ReplRuntimeAutoModeSettings;
5
51
 
6
52
  /**
7
53
  * InkREPL - Ink-based REPL Adapter
@@ -20,6 +66,10 @@ interface InkRuntimeRunnerInput {
20
66
  readonly prompt: string;
21
67
  readonly sessionId: string;
22
68
  readonly permissionMode: PermissionMode;
69
+ readonly autoModeSettings?: ReplRuntimeAutoModeSettings;
70
+ readonly requestPermission?: ReplRuntimePermissionPrompt;
71
+ /** Marks the callback installed by the REPL's legacy permission UI. */
72
+ readonly legacyPermissionHook?: true;
23
73
  }
24
74
  type InkRuntimeRunner = (input: InkRuntimeRunnerInput) => Promise<KodaXResult>;
25
75
  type InkRuntimeStatusProvider = () => Promise<RuntimeSurfaceStatus | undefined>;
@@ -27,6 +77,7 @@ interface InkREPLOptions extends KodaXOptions {
27
77
  storage?: SessionStorage$1;
28
78
  hardExitOnClose?: boolean;
29
79
  runtimeRunner?: InkRuntimeRunner;
80
+ runtimeAutoModeControl?: ReplRuntimeAutoModeControl;
30
81
  getRuntimeStatus?: InkRuntimeStatusProvider;
31
82
  learning?: LearningBinding;
32
83
  }
@@ -36,7 +87,10 @@ interface InkREPLOptions extends KodaXOptions {
36
87
  declare function runInkInteractiveMode(options: InkREPLOptions): Promise<void>;
37
88
 
38
89
  interface SessionStorage extends KodaXSessionStorage {
39
- list(gitRoot?: string): Promise<Array<{
90
+ list(gitRoot?: string, options?: {
91
+ limit?: number;
92
+ includeArchived?: boolean;
93
+ }): Promise<Array<{
40
94
  id: string;
41
95
  title: string;
42
96
  msgCount: number;
@@ -49,17 +103,22 @@ interface ReplRuntimeRunnerInput {
49
103
  readonly prompt: string;
50
104
  readonly sessionId: string;
51
105
  readonly permissionMode: PermissionMode;
106
+ readonly autoModeSettings?: ReplRuntimeAutoModeSettings;
107
+ readonly requestPermission?: ReplRuntimePermissionPrompt;
108
+ /** Marks the callback installed by the REPL's legacy permission UI. */
109
+ readonly legacyPermissionHook?: true;
52
110
  }
53
111
  type ReplRuntimeRunner = (input: ReplRuntimeRunnerInput) => Promise<KodaXResult>;
54
112
  type ReplRuntimeStatusProvider = () => Promise<RuntimeSurfaceStatus | undefined>;
55
113
  interface RepLOptions extends KodaXOptions {
56
114
  storage?: SessionStorage;
57
115
  runtimeRunner?: ReplRuntimeRunner;
116
+ runtimeAutoModeControl?: ReplRuntimeAutoModeControl;
58
117
  getRuntimeStatus?: ReplRuntimeStatusProvider;
59
118
  learning?: LearningBinding;
60
119
  }
61
120
  declare function runInteractiveMode(options: RepLOptions): Promise<void>;
62
- declare function processSpecialSyntax(input: string): Promise<string>;
121
+ declare function processSpecialSyntax(input: string, executionCwd?: string): Promise<string>;
63
122
 
64
123
  /**
65
124
  * Command Registry - Dynamic command registration system
@@ -211,5 +270,5 @@ declare function executeCommand(parsed: {
211
270
  };
212
271
  }, context: InteractiveContext, callbacks: CommandCallbacks, currentConfig: CurrentConfig): Promise<CommandResult>;
213
272
 
214
- export { BUILTIN_COMMANDS as B, executeCommand as g, getCommandRegistry as h, processSpecialSyntax as i, runInteractiveMode as j, parseCommand as p, runInkInteractiveMode as r };
215
- export type { Command as C, InkREPLOptions as I, RepLOptions as R, InkRuntimeRunner as a, InkRuntimeRunnerInput as b, InkRuntimeStatusProvider as c, ReplRuntimeRunner as d, ReplRuntimeRunnerInput as e, ReplRuntimeStatusProvider as f };
273
+ export { BUILTIN_COMMANDS as B, RUNTIME_PERMISSION_PENDING_NOTICE as R, executeCommand as n, getCommandRegistry as o, parseCommand as p, processSpecialSyntax as q, runInkInteractiveMode as r, runInteractiveMode as s, toReplRuntimeAutoModeSettings as t };
274
+ export type { Command as C, InkREPLOptions as I, InkRuntimeRunner as a, InkRuntimeRunnerInput as b, InkRuntimeStatusProvider as c, RepLOptions as d, ReplRuntimeAutoModeControl as e, ReplRuntimeAutoModeSettings as f, ReplRuntimePermissionDecision as g, ReplRuntimePermissionGrantSuggestion as h, ReplRuntimePermissionPrompt as i, ReplRuntimePermissionRequest as j, ReplRuntimeRunner as k, ReplRuntimeRunnerInput as l, ReplRuntimeStatusProvider as m };
@@ -1,4 +1,4 @@
1
- import { ba as Guardrail, d5 as RunnerToolCall, f as Agent, a8 as AgentMessage, d8 as RunnerToolResult, dj as Span } from './types.d-DH1mvdcl.js';
1
+ import { bb as Guardrail, d6 as RunnerToolCall, f as Agent, a8 as AgentMessage, d9 as RunnerToolResult, dk as Span } from './types.d-sRLugmjy.js';
2
2
 
3
3
  /**
4
4
  * Guardrail Runtime — FEATURE_085 (v0.7.26).
@@ -137,6 +137,7 @@ type ToolBeforeOutcome = {
137
137
  readonly call: RunnerToolCall;
138
138
  } | {
139
139
  readonly kind: 'block';
140
+ readonly call: RunnerToolCall;
140
141
  readonly result: RunnerToolResult;
141
142
  };
142
143
  /**
@@ -1,8 +1,8 @@
1
1
  import { b as McpServersConfig, M as McpConnectMode, a as McpServerConfig, c as McpTransportKind } from './config.d-CJy1WENT.js';
2
- import { K as KodaXBaseProvider } from './base.d-Cz_rwpOi.js';
2
+ import { K as KodaXBaseProvider } from './base.d-ChvpaKjZ.js';
3
3
  import { a as CostTracker } from './cost-tracker.d-BeaenODW.js';
4
- import { d5 as RunnerToolCall } from './types.d-DH1mvdcl.js';
5
- import { d as ToolGuardrail } from './guardrail.d-DlpMnd-Y.js';
4
+ import { d6 as RunnerToolCall } from './types.d-sRLugmjy.js';
5
+ import { d as ToolGuardrail } from './guardrail.d-CWYD1bdL.js';
6
6
 
7
7
  /**
8
8
  * FEATURE_200 Phase F (v0.7.45) — MCP domain types extracted from types.ts.
@@ -365,10 +365,10 @@ declare function checkAbsoluteDeny(call: RunnerToolCall, projectRoot: string, ex
365
365
  *
366
366
  * Decision flow (per design doc "三层权限金字塔"):
367
367
  *
368
- * 1. Tool projection is '' (Tier 1) → allow (zero token cost)
369
- * 2. Engine has been downgraded to rules → escalate (user confirms)
370
- * 3. denialTracker.shouldFallback (3/20) → engine downgrade, then escalate
371
- * 4. circuitBreaker.shouldFallback (5/10m) → engine downgrade, then escalate
368
+ * 1. Tier-0 deterministic deny → block
369
+ * 2. Tool projection is '' (Tier 1) → allow (zero token cost)
370
+ * 3. Engine is rules → deterministic Tier 2, otherwise user confirms
371
+ * 4. denial/circuit threshold → engine downgrade, then escalate
372
372
  * 5. classify(...) sideQuery
373
373
  * allow → allow (record allow → reset consecutive)
374
374
  * block → block + reason (record block)
@@ -386,10 +386,10 @@ declare function checkAbsoluteDeny(call: RunnerToolCall, projectRoot: string, ex
386
386
  * shared (per design doc "防绕阈值"). Without it each guardrail is
387
387
  * independent.
388
388
  *
389
- * Capability check, Tier 2 path-shortcuts, and the explicit
390
- * `supportsAutoModeClassifier` provider flag are deferred to follow-up
391
- * phases — v1 of the guardrail relies on Tier 1 (projection==='') as the
392
- * structural opt-out and forwards everything else to the classifier.
389
+ * Provider capability checks and the explicit `supportsAutoModeClassifier`
390
+ * flag are deferred to follow-up phases. Tier 2 is supplied by the Runtime
391
+ * host because canonical filesystem and shell parsing live in @kodax/repl;
392
+ * the guardrail remains the single decision point.
393
393
  */
394
394
 
395
395
  type AutoModeEngine = 'llm' | 'rules';
@@ -426,10 +426,59 @@ type AutoModeAskUser = (call: RunnerToolCall, reason: string,
426
426
  * confirm dialog (replacing the input-marker path from FEATURE_066).
427
427
  */
428
428
  signals?: readonly ToolCallSignal[]) => Promise<AutoModeAskUserVerdict>;
429
+ interface AutoModeRulesContext {
430
+ readonly projectRoot: string;
431
+ readonly executionCwd: string;
432
+ readonly signals: readonly ToolCallSignal[];
433
+ }
434
+ type AutoModePermissionBoundary = 'workspace' | 'system-temp' | 'outside-workspace' | 'protected' | 'unresolved';
435
+ interface AutoModePermissionTarget {
436
+ readonly path: string;
437
+ readonly boundary: AutoModePermissionBoundary;
438
+ }
439
+ type AutoModePermissionOperation = {
440
+ readonly kind: 'read' | 'write' | 'create' | 'delete';
441
+ readonly target: AutoModePermissionTarget;
442
+ readonly options?: Readonly<Record<string, boolean | number | string>>;
443
+ } | {
444
+ readonly kind: 'copy' | 'move' | 'rename';
445
+ readonly source: AutoModePermissionTarget;
446
+ readonly destination: AutoModePermissionTarget;
447
+ readonly options?: Readonly<Record<string, boolean | number | string>>;
448
+ } | {
449
+ readonly kind: 'execute' | 'unknown';
450
+ readonly summary: string;
451
+ readonly options?: Readonly<Record<string, boolean | number | string>>;
452
+ };
453
+ /** Compact deterministic facts supplied to the permission reviewer. */
454
+ interface AutoModePermissionReview {
455
+ readonly schemaVersion: 1;
456
+ readonly analysis: {
457
+ readonly status: 'complete' | 'incomplete';
458
+ readonly shell: 'powershell' | 'shell' | 'tool';
459
+ readonly binding: 'exact' | 'partial';
460
+ readonly reason?: string;
461
+ };
462
+ readonly operations: readonly AutoModePermissionOperation[];
463
+ readonly risks: readonly string[];
464
+ }
465
+ type AutoModeCallAnalyzer = (call: RunnerToolCall, context: AutoModeRulesContext) => AutoModePermissionReview | Promise<AutoModePermissionReview>;
466
+ type AutoModeRulesDecision = {
467
+ readonly action: 'allow';
468
+ } | {
469
+ readonly action: 'block';
470
+ readonly reason: string;
471
+ } | {
472
+ readonly action: 'escalate';
473
+ readonly reason: string;
474
+ };
475
+ /** Deterministic Tier-2 evaluator used only while the rules engine is active. */
476
+ type AutoModeRulesEvaluator = (call: RunnerToolCall, context: AutoModeRulesContext) => AutoModeRulesDecision | Promise<AutoModeRulesDecision>;
429
477
  interface AutoModeGuardrailConfig {
430
478
  readonly rules: AutoRules;
431
479
  readonly claudeMd?: string;
432
480
  /**
481
+ * Legacy classifier path only. Runtime compact review excludes AGENTS.md.
433
482
  * FEATURE_092 follow-up (auto-mode classifier AGENTS.md staleness fix):
434
483
  * live getter for the project AGENTS.md content. Takes precedence over the
435
484
  * static `claudeMd` string and is evaluated INSIDE the classify path on
@@ -449,11 +498,22 @@ interface AutoModeGuardrailConfig {
449
498
  * paths. See `AutoModeAskUser` for semantics.
450
499
  */
451
500
  readonly askUser?: AutoModeAskUser;
501
+ /**
502
+ * Runtime-owned deterministic Tier-2 evaluator. It is injected rather than
503
+ * implemented in @kodax/coding because canonical path and shell-AST helpers
504
+ * live in @kodax/repl. Omitting it preserves fail-closed SDK compatibility:
505
+ * every non-Tier-1 rules call escalates.
506
+ */
507
+ readonly evaluateRulesCall?: AutoModeRulesEvaluator;
508
+ /**
509
+ * Runtime-owned compact facts used by deterministic read admission and the
510
+ * LLM permission reviewer. Direct read tools fail closed when this is absent.
511
+ */
512
+ readonly analyzeCall?: AutoModeCallAnalyzer;
452
513
  /**
453
514
  * Look up a tool's `toClassifierInput` projection by tool name.
454
- * Returns `undefined` when the tool isn't in the registry — guardrail
455
- * treats that as "no projection ⇒ Tier 1 skip" (conservative for
456
- * unknown tools is debatable; v1 favors not blocking on noise).
515
+ * Returns `undefined` when the tool isn't in the registry. Unknown tools
516
+ * receive a metadata-only fail-closed projection rather than a Tier-1 skip.
457
517
  */
458
518
  readonly getToolProjection: (toolName: string) => ((input: unknown) => string) | undefined;
459
519
  /**
@@ -505,8 +565,8 @@ interface AutoModeGuardrailConfig {
505
565
  /**
506
566
  * FEATURE_092 phase 2b.7b slice C: starting engine. Defaults to `'llm'`.
507
567
  * Set to `'rules'` to skip the classifier entirely from session start
508
- * (the rules-mode escalate path runs immediately on the first non-Tier-1
509
- * tool call). Resolved by the REPL from `~/.kodax/config.json`
568
+ * (the deterministic Tier-2 evaluator runs for non-Tier-1 calls). Resolved
569
+ * by the REPL from `~/.kodax/config.json`
510
570
  * `autoMode.engine` and the `KODAX_AUTO_MODE_ENGINE` env var.
511
571
  */
512
572
  readonly initialEngine?: AutoModeEngine;
@@ -585,6 +645,7 @@ interface AutoModeGuardrailConfig {
585
645
  */
586
646
  interface AutoModeStats {
587
647
  readonly engine: AutoModeEngine;
648
+ readonly classifierModel?: string;
588
649
  readonly denials: DenialTracker;
589
650
  readonly breaker: CircuitBreaker;
590
651
  }
@@ -609,5 +670,5 @@ interface AutoModeToolGuardrail extends ToolGuardrail {
609
670
  }
610
671
  declare function createAutoModeToolGuardrail(config: AutoModeGuardrailConfig): AutoModeToolGuardrail;
611
672
 
612
- export { createCircuitBreaker as B, CONSECUTIVE_THRESHOLD as C, ERROR_THRESHOLD as E, createDenialTracker as F, formatAgentsForPrompt as G, getKodaxGlobalDir as H, loadAgentsFiles as I, loadAutoRules as J, parseAutoRules as M, readTrustState as N, recordAllow as O, recordBlock as P, recordError as Q, shouldFallback$1 as U, shouldFallback as V, WINDOW_MS as W, trustProjectRules as X, CUMULATIVE_THRESHOLD as m, checkAbsoluteDeny as w, collectAllSignals as x, computeRulesFingerprint as y, createAutoModeToolGuardrail as z };
613
- export type { AbsoluteDenyCheck as A, DenialTracker as D, KodaXMcpConnectMode as K, LoadAgentsOptions as L, RulesLoadError as R, SignalCollector as S, TierZeroPatternId as T, AbsoluteDenyMatch as a, AbsoluteDenyMiss as b, AbsoluteDenyResult as c, AgentsFile as d, AutoModeAskUser as e, AutoModeAskUserVerdict as f, AutoModeEngine as g, AutoModeGuardrailConfig as h, AutoModeSharedState as i, AutoModeStats as j, AutoModeToolGuardrail as k, AutoRules as l, CircuitBreaker as n, KodaXMcpServerConfig as o, KodaXMcpServersConfig as p, KodaXMcpTransport as q, LoadedRulesSource as r, RulesLoadResult as s, SkippedRulesSource as t, ToolCallSignal as u, TrustState as v };
673
+ export { recordBlock as $, CONSECUTIVE_THRESHOLD as C, ERROR_THRESHOLD as E, checkAbsoluteDeny as I, collectAllSignals as J, computeRulesFingerprint as M, createAutoModeToolGuardrail as N, createCircuitBreaker as O, createDenialTracker as P, formatAgentsForPrompt as Q, getKodaxGlobalDir as U, loadAgentsFiles as V, WINDOW_MS as W, loadAutoRules as X, parseAutoRules as Y, readTrustState as Z, recordAllow as _, recordError as a0, shouldFallback$1 as a1, shouldFallback as a2, trustProjectRules as a3, CUMULATIVE_THRESHOLD as u };
674
+ export type { AbsoluteDenyCheck as A, RulesLoadResult as B, DenialTracker as D, SkippedRulesSource as F, ToolCallSignal as G, TrustState as H, KodaXMcpConnectMode as K, LoadAgentsOptions as L, RulesLoadError as R, SignalCollector as S, TierZeroPatternId as T, AbsoluteDenyMatch as a, AbsoluteDenyMiss as b, AbsoluteDenyResult as c, AgentsFile as d, AutoModeAskUser as e, AutoModeAskUserVerdict as f, AutoModeCallAnalyzer as g, AutoModeEngine as h, AutoModeGuardrailConfig as i, AutoModePermissionBoundary as j, AutoModePermissionOperation as k, AutoModePermissionReview as l, AutoModePermissionTarget as m, AutoModeRulesContext as n, AutoModeRulesDecision as o, AutoModeRulesEvaluator as p, AutoModeSharedState as q, AutoModeStats as r, AutoModeToolGuardrail as s, AutoRules as t, CircuitBreaker as v, KodaXMcpServerConfig as w, KodaXMcpServersConfig as x, KodaXMcpTransport as y, LoadedRulesSource as z };
@@ -0,0 +1,57 @@
1
+ import { k as KodaXMessage } from './types.d-CSmF0t0n.js';
2
+ import { bM as KodaXSessionLineage } from './types.d-sRLugmjy.js';
3
+
4
+ type KodaXSessionHistoryScope = 'compacted' | 'all';
5
+ type KodaXSessionHistorySource = 'user' | 'assistant' | 'system' | 'tool' | 'child_task';
6
+ interface KodaXSessionHistorySearchOptions {
7
+ query: string;
8
+ limit?: number;
9
+ role?: KodaXMessage['role'];
10
+ scope?: KodaXSessionHistoryScope;
11
+ }
12
+ interface KodaXSessionHistoryHit {
13
+ entryId: string;
14
+ logicalId?: string;
15
+ sourceEntryId?: string;
16
+ timestamp: string;
17
+ role: KodaXMessage['role'];
18
+ source: KodaXSessionHistorySource;
19
+ active: boolean;
20
+ score: number;
21
+ snippet: string;
22
+ citation: string;
23
+ }
24
+ interface KodaXSessionHistorySearchResult {
25
+ revision: string;
26
+ hits: KodaXSessionHistoryHit[];
27
+ }
28
+ interface KodaXSessionHistoryReadOptions {
29
+ entryId: string;
30
+ revision?: string;
31
+ offset?: number;
32
+ maxChars?: number;
33
+ }
34
+ type KodaXSessionHistoryReadResult = {
35
+ status: 'not_found';
36
+ revision: string;
37
+ entryId: string;
38
+ } | {
39
+ status: 'stale';
40
+ revision: string;
41
+ entryId: string;
42
+ } | {
43
+ status: 'ok';
44
+ revision: string;
45
+ entryId: string;
46
+ content: string;
47
+ offset: number;
48
+ nextOffset: number | null;
49
+ totalChars: number;
50
+ redactedBlockCount: number;
51
+ citation: string;
52
+ };
53
+ declare function searchSessionHistory(lineage: KodaXSessionLineage, options: KodaXSessionHistorySearchOptions): KodaXSessionHistorySearchResult;
54
+ declare function readSessionHistoryEntry(lineage: KodaXSessionLineage, options: KodaXSessionHistoryReadOptions): KodaXSessionHistoryReadResult;
55
+
56
+ export { readSessionHistoryEntry as r, searchSessionHistory as s };
57
+ export type { KodaXSessionHistoryHit as K, KodaXSessionHistoryReadOptions as a, KodaXSessionHistoryReadResult as b, KodaXSessionHistoryScope as c, KodaXSessionHistorySearchOptions as d, KodaXSessionHistorySearchResult as e, KodaXSessionHistorySource as f };