@kodax-ai/kodax 0.7.49 → 0.7.50

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 (43) hide show
  1. package/CHANGELOG.md +35 -3
  2. package/README.md +11 -8
  3. package/README_CN.md +10 -8
  4. package/dist/chunks/argument-completer-3WX5B42G.js +2 -0
  5. package/dist/chunks/chunk-5UJQ2GKJ.js +574 -0
  6. package/dist/chunks/{chunk-TYZAH3YP.js → chunk-HR64F32V.js} +1 -1
  7. package/dist/chunks/{chunk-67SWUEEN.js → chunk-MFOMFMSK.js} +318 -297
  8. package/dist/chunks/{chunk-YW4RQV7U.js → chunk-SK4HOYT2.js} +1 -1
  9. package/dist/chunks/chunk-UB5IAZHF.js +476 -0
  10. package/dist/chunks/chunk-XZY4CIDV.js +31 -0
  11. package/dist/chunks/chunk-YJLRBIEW.js +301 -0
  12. package/dist/chunks/{compaction-config-BQBYOWX2.js → compaction-config-DDJSQ4OT.js} +1 -1
  13. package/dist/chunks/{construction-bootstrap-5TFGMSWQ.js → construction-bootstrap-4QNM2BVM.js} +1 -1
  14. package/dist/chunks/{dist-BL7IBQHD.js → dist-OJSNNI7P.js} +1 -1
  15. package/dist/chunks/dist-T256OSDI.js +2 -0
  16. package/dist/chunks/{utils-XWDT3W5X.js → utils-JHIEOX6Z.js} +1 -1
  17. package/dist/index.d.ts +6 -6
  18. package/dist/index.js +2 -2
  19. package/dist/kodax_cli.js +967 -886
  20. package/dist/sdk-agent.d.ts +14 -6
  21. package/dist/sdk-agent.js +1 -1
  22. package/dist/sdk-coding.d.ts +138 -28
  23. package/dist/sdk-coding.js +1 -1
  24. package/dist/sdk-llm.d.ts +1 -1
  25. package/dist/sdk-llm.js +1 -1
  26. package/dist/sdk-mcp.js +1 -1
  27. package/dist/sdk-repl.d.ts +29 -7
  28. package/dist/sdk-repl.js +2 -2
  29. package/dist/sdk-session.d.ts +27 -3
  30. package/dist/sdk-session.js +1 -1
  31. package/dist/sdk-skills.js +1 -1
  32. package/dist/types-chunks/{bash-prefix-extractor.d-CI_xcPhn.d.ts → bash-prefix-extractor.d-B0CIb0N3.d.ts} +72 -19
  33. package/dist/types-chunks/{capsule.d-DaPuhyyK.d.ts → capsule.d-CwBEm6M-.d.ts} +4 -1
  34. package/dist/types-chunks/{types.d-BR9oNWup.d.ts → process.d-BbiXD24v.d.ts} +142 -3
  35. package/dist/types-chunks/{resolver.d-B_wm409c.d.ts → resolver.d-CQfaJbht.d.ts} +22 -4
  36. package/dist/types-chunks/{utils.d-BJ_-y8gC.d.ts → utils.d-D_-jrRku.d.ts} +3 -1
  37. package/package.json +1 -1
  38. package/dist/chunks/argument-completer-GDG5OHN7.js +0 -2
  39. package/dist/chunks/chunk-C5PKZX5Z.js +0 -291
  40. package/dist/chunks/chunk-ISGHUKRY.js +0 -428
  41. package/dist/chunks/chunk-JTHMWRXM.js +0 -566
  42. package/dist/chunks/chunk-YACQ4OST.js +0 -31
  43. package/dist/chunks/dist-D7HOETCE.js +0 -2
@@ -2468,7 +2468,7 @@ interface FileOperations {
2468
2468
  * injected clock). The run graph models agent relationships as a
2469
2469
  * thread/edge/event stream, not just a final summary blob.
2470
2470
  */
2471
- type WorkflowEventType = 'workflow_started' | 'phase_started' | 'phase_finished' | 'agent_spawned' | 'agent_message_sent' | 'agent_completed' | 'agent_stopped' | 'artifact_written' | 'synthesis_completed' | 'workflow_completed' | 'workflow_stopped' | 'workflow_failed';
2471
+ type WorkflowEventType = 'workflow_started' | 'phase_started' | 'phase_finished' | 'agent_spawned' | 'agent_message_sent' | 'agent_completed' | 'agent_summary_updated' | 'agent_stopped' | 'workflow_log' | 'artifact_written' | 'synthesis_completed' | 'workflow_completed' | 'workflow_stopped' | 'workflow_failed';
2472
2472
  interface WorkflowEvent {
2473
2473
  /** Monotonic sequence number — stable append ordering. */
2474
2474
  readonly seq: number;
@@ -2536,6 +2536,12 @@ interface WorkflowTaskUsage {
2536
2536
  readonly outputTokens?: number;
2537
2537
  readonly totalTokens?: number;
2538
2538
  }
2539
+ type WorkflowTaskSummaryKind = 'digest' | 'excerpt' | 'digest-failed' | 'pending';
2540
+ interface WorkflowTaskSummaryEventUpdate {
2541
+ readonly summary?: string;
2542
+ readonly summaryKind: WorkflowTaskSummaryKind;
2543
+ readonly usage?: WorkflowTaskUsage;
2544
+ }
2539
2545
  /** Terminal result of a spawned agent (from `wait` / `runAgent`). */
2540
2546
  interface WorkflowTaskResult {
2541
2547
  readonly taskId: string;
@@ -2546,6 +2552,11 @@ interface WorkflowTaskResult {
2546
2552
  readonly digest?: string;
2547
2553
  /** True when a digest was attempted but failed (error/timeout/empty); the UI then labels the excerpt fallback. */
2548
2554
  readonly digestFailed?: boolean;
2555
+ /** True when a digest was scheduled asynchronously and may arrive via `agent_summary_updated`. */
2556
+ readonly digestPending?: boolean;
2557
+ /** Best-known provider/model used by the child, for host correlation only. */
2558
+ readonly provider?: string;
2559
+ readonly model?: string;
2549
2560
  readonly usage?: WorkflowTaskUsage;
2550
2561
  }
2551
2562
  /** Point-in-time snapshot of a (possibly still-running) agent. */
@@ -2615,6 +2626,9 @@ interface WorkflowApi {
2615
2626
  /** Await a spawned agent's terminal result. */
2616
2627
  wait(taskId: string, opts?: WorkflowWaitOptions): Promise<WorkflowTaskResult>;
2617
2628
  /** Snapshot a (possibly running) agent. */
2629
+ snapshot(taskId: string): Promise<WorkflowTaskSnapshot>;
2630
+ /** Snapshot a (possibly running) agent.
2631
+ * @deprecated Prefer `snapshot(taskId)`; `output` is kept as a compatibility alias. */
2618
2632
  output(taskId: string): Promise<WorkflowTaskSnapshot>;
2619
2633
  /** Send a message to a running agent (via MessageQueue routing). */
2620
2634
  send(taskId: string, content: string): Promise<void>;
@@ -2683,6 +2697,8 @@ interface WorkflowAgentBackend {
2683
2697
  output(taskId: string): Promise<WorkflowTaskSnapshot>;
2684
2698
  send(taskId: string, content: string): Promise<void>;
2685
2699
  stop(taskId: string, reason: string): Promise<void>;
2700
+ /** Optional late summary stream for presentation-only async digests. */
2701
+ subscribeTaskSummaryUpdates?(listener: (taskId: string, update: WorkflowTaskSummaryEventUpdate) => void): () => void;
2686
2702
  /** Optional durable artifact writer (Phase D wires the run graph).
2687
2703
  * `wf.synthesize` is NOT a backend method — it runs as a gated agent
2688
2704
  * through `spawn`/`wait` so it counts toward the runtime's caps. */
@@ -2698,5 +2714,128 @@ interface WorkflowRunState {
2698
2714
  readonly artifacts: readonly WorkflowArtifactRef[];
2699
2715
  }
2700
2716
 
2701
- export { DEFAULT_SYSTEM_CAP as D, GuardrailBlockedError as H, GuardrailEscalateError as J, InvariantSession as T, MAX_TOOL_LOOP_ITERATIONS as U, WorkflowEventRecorder as a$, Tracer as aR, Runner as af, SpanImpl as ax, extractAssistantTextFromMessage as bA, getActiveUserInteraction as bB, getAdmittedAgentBindings as bC, isRunnableTool as bD, isRunnerLlmResult as bE, registerChildTask as bF, registerPresetDispatcher as bG, requestTaskStop as bH, runAdmissionAudit as bI, runInputGuardrails as bJ, runOutputGuardrails as bK, runToolAfterGuardrails as bL, runToolBeforeGuardrails as bM, setActiveUserInteraction as bN, setAdmittedAgentBindings as bO, _resetAdmittedAgentBindings as bk, _resetPresetDispatchers as bl, buildAssistantMessageFromLlmResult as bm, buildSystemPrompt as bn, buildToolResultMessage as bo, collectGuardrails as bp, createAgent as bq, createHandoff as br, createInMemorySession as bs, createInvariantSessionForAgent as bt, createStateWriter as bu, createTrace as bv, defaultTracer as bw, detectInstructionsInjection as bx, discoverInstances as by, executeRunnerToolCall as bz };
2702
- export type { PersistedSessionState as $, AdmissionAuditOptions as A, Guardrail as B, ChildTaskRegistry as C, EnqueueInput as E, FanoutSpanData as F, GenerationSpanData as G, GuardrailContext as I, GuardrailSpanData as K, GuardrailVerdict as L, Handoff as M, HandoffSpanData as N, InMemorySessionOptions as O, InputGuardrail as P, InstanceDiscoveryFs as Q, InvariantId as R, InvariantResult as S, ManifestPatch as V, MessageEntry as W, MessageMode as X, MessagePriority as Y, ObserveCtx as Z, OutputGuardrail as _, AdmissionCtx as a, PresetDispatcher as a0, PresetTracingContext as a1, QualityInvariant as a2, QueueEventListener as a3, QueuedMessage as a4, ReadonlyMutationTracker as a5, ReadonlyRecorder as a6, ReasoningDepth as a7, RecentlyModifiedFile as a8, RequestTaskStopOptions as a9, StateWriter as aA, StateWriterFs as aB, StateWriterOptions as aC, StopHookContext as aD, StopHookFn as aE, StopHookResult as aF, StopHookSpanData as aG, SystemCap as aH, TaskAbortRegistry as aI, TerminalCtx as aJ, ToolBeforeOutcome as aK, ToolCallSpanData as aL, ToolCapability as aM, ToolGuardrail as aN, ToolPermission as aO, Trace as aP, TraceOptions as aQ, TracerOptions as aS, UserInteraction as aT, WorkflowAgentBackend as aU, WorkflowApi as aV, WorkflowApproval as aW, WorkflowApprovalSummary as aX, WorkflowArtifactRef as aY, WorkflowBudget as aZ, WorkflowEvent as a_, RequestTaskStopResult as aa, RunEvent as ab, RunOptions as ac, RunResult as ad, RunnableTool as ae, RunnerEvent as ag, RunnerLlmResult as ah, RunnerLlmReturn as ai, RunnerToolCall as aj, RunnerToolContext as ak, RunnerToolObserver as al, RunnerToolResult as am, Session as an, SessionDispatchResult as ao, SessionEntry as ap, SessionExtension as aq, SessionForkOptions as ar, SessionMeta as as, SessionStateSnapshot as at, Span as au, SpanData as av, SpanError as aw, SpanImplOptions as ay, StartTraceOptions as az, AdmissionVerdict as b, WorkflowEventType as b0, WorkflowIsolation as b1, WorkflowLimits as b2, WorkflowLogEvent as b3, WorkflowMeta as b4, WorkflowModelHint as b5, WorkflowModule as b6, WorkflowParallelOptions as b7, WorkflowRun as b8, WorkflowRunState as b9, WorkflowRunStatus as ba, WorkflowSpawnAgentInput as bb, WorkflowSynthesis as bc, WorkflowSynthesizeInput as bd, WorkflowTaskHandle as be, WorkflowTaskResult as bf, WorkflowTaskSnapshot as bg, WorkflowTaskStatus as bh, WorkflowTaskUsage as bi, WorkflowWaitOptions as bj, AdmittedHandle as c, Agent as d, AgentManifest as e, AgentMessage as f, AgentMiddlewareDeclaration as g, AgentReasoningProfile as h, AgentSpanData as i, AgentTool as j, AskUserMultiOptions as k, AskUserQuestionItem as l, AskUserQuestionOptions as m, CompactionAnchor as n, CompactionConfig as o, CompactionDetails as p, CompactionResult as q, CompactionSpanData as r, CompactionUpdate as s, CurrentTodoSummary as t, Deliverable as u, DequeueFilter as v, DiscoveredInstance as w, DiscoveryOptions as x, EvidenceSpanData as y, FileOperations as z };
2717
+ type WorkflowProcessStatus = 'running' | 'paused' | 'completed' | 'failed' | 'cancelled';
2718
+ type WorkflowProcessItemStatus = 'pending' | 'running' | 'completed' | 'failed' | 'cancelled' | 'skipped';
2719
+ type WorkflowProcessItemKind = 'phase' | 'agent' | 'step' | 'artifact';
2720
+ type WorkflowProcessSummaryStatus = 'pending' | 'result' | 'notice' | 'unavailable';
2721
+ type WorkflowProcessSource = 'command' | 'amaw' | 'review' | 'sdk' | 'capsule' | 'extension' | 'automation';
2722
+ interface WorkflowProcessItem {
2723
+ readonly id: string;
2724
+ readonly title: string;
2725
+ readonly kind: WorkflowProcessItemKind;
2726
+ readonly status: WorkflowProcessItemStatus;
2727
+ readonly phaseId?: string;
2728
+ readonly parentId?: string;
2729
+ readonly agentId?: string;
2730
+ readonly childAgentId?: string;
2731
+ readonly provider?: string;
2732
+ readonly model?: string;
2733
+ readonly startedAt?: string;
2734
+ readonly endedAt?: string;
2735
+ readonly summary?: string;
2736
+ readonly summaryStatus?: WorkflowProcessSummaryStatus;
2737
+ readonly error?: string;
2738
+ }
2739
+ interface WorkflowEventCorrelation {
2740
+ readonly workflowRunId: string;
2741
+ readonly childAgentId?: string;
2742
+ readonly phaseId?: string;
2743
+ readonly itemId?: string;
2744
+ }
2745
+ interface WorkflowProcessCounts {
2746
+ readonly pending: number;
2747
+ readonly running: number;
2748
+ readonly completed: number;
2749
+ readonly failed: number;
2750
+ readonly cancelled: number;
2751
+ readonly skipped: number;
2752
+ }
2753
+ interface WorkflowProcessProgress {
2754
+ readonly spawnedAgents: number;
2755
+ readonly finishedAgents: number;
2756
+ readonly activeAgents: number;
2757
+ readonly failedAgents: number;
2758
+ readonly stoppedAgents: number;
2759
+ readonly agentCap?: number;
2760
+ readonly plannedItems?: number;
2761
+ }
2762
+ interface WorkflowProcessTokenUsage {
2763
+ readonly spent: number;
2764
+ readonly total?: number;
2765
+ }
2766
+ interface WorkflowProcessArtifact {
2767
+ readonly name: string;
2768
+ readonly path?: string;
2769
+ readonly description?: string;
2770
+ }
2771
+ interface WorkflowProcessSnapshot {
2772
+ readonly runId: string;
2773
+ readonly workflowName: string;
2774
+ readonly displayName?: string;
2775
+ readonly status: WorkflowProcessStatus;
2776
+ readonly startedAt: string;
2777
+ readonly updatedAt: string;
2778
+ readonly elapsedMs?: number;
2779
+ readonly goal?: string;
2780
+ readonly source?: WorkflowProcessSource;
2781
+ readonly savedWorkflowName?: string;
2782
+ readonly sourceRunId?: string;
2783
+ readonly sourceWorkflowName?: string;
2784
+ readonly revisionOf?: string;
2785
+ readonly activePhaseId?: string;
2786
+ readonly activePhaseIndex?: number;
2787
+ readonly phaseCount?: number;
2788
+ readonly items: readonly WorkflowProcessItem[];
2789
+ readonly counts: WorkflowProcessCounts;
2790
+ readonly progress: WorkflowProcessProgress;
2791
+ readonly tokens?: WorkflowProcessTokenUsage;
2792
+ readonly latestMessage?: string;
2793
+ readonly resultSummary?: string;
2794
+ readonly error?: string;
2795
+ readonly artifacts?: readonly WorkflowProcessArtifact[];
2796
+ }
2797
+ type WorkflowProcessEvent = {
2798
+ readonly type: 'workflow_started';
2799
+ readonly snapshot: WorkflowProcessSnapshot;
2800
+ } | {
2801
+ readonly type: 'workflow_updated';
2802
+ readonly snapshot: WorkflowProcessSnapshot;
2803
+ readonly message?: string;
2804
+ } | {
2805
+ readonly type: 'workflow_finished';
2806
+ readonly snapshot: WorkflowProcessSnapshot;
2807
+ };
2808
+ interface WorkflowProcessTrackerOptions {
2809
+ readonly runId: string;
2810
+ readonly workflowName: string;
2811
+ readonly displayName?: string;
2812
+ readonly goal?: string;
2813
+ readonly source?: WorkflowProcessSource;
2814
+ readonly savedWorkflowName?: string;
2815
+ readonly sourceRunId?: string;
2816
+ readonly sourceWorkflowName?: string;
2817
+ readonly revisionOf?: string;
2818
+ readonly phases?: readonly string[];
2819
+ readonly maxAgents?: number;
2820
+ readonly plannedAgents?: number;
2821
+ readonly tokenBudget?: number;
2822
+ readonly resultSummary?: string;
2823
+ readonly artifacts?: readonly WorkflowArtifactRef[];
2824
+ readonly now?: () => string;
2825
+ }
2826
+ interface WorkflowTaskSummaryUpdate {
2827
+ readonly summary?: string;
2828
+ readonly summaryStatus: WorkflowProcessSummaryStatus;
2829
+ }
2830
+ interface WorkflowProcessTracker {
2831
+ applyEvent(event: WorkflowEvent): WorkflowProcessEvent;
2832
+ updateTaskSummary(taskId: string, update: WorkflowTaskSummaryUpdate): WorkflowProcessEvent | undefined;
2833
+ setStatus(status: WorkflowProcessStatus, message?: string): WorkflowProcessEvent;
2834
+ setResultSummary(resultSummary: string | undefined): WorkflowProcessEvent;
2835
+ getSnapshot(): WorkflowProcessSnapshot;
2836
+ }
2837
+ declare function isFinalWorkflowProcessStatus(status: WorkflowProcessStatus): boolean;
2838
+ declare function createWorkflowProcessTracker(options: WorkflowProcessTrackerOptions): WorkflowProcessTracker;
2839
+
2840
+ export { DEFAULT_SYSTEM_CAP as D, GuardrailBlockedError as H, GuardrailEscalateError as J, InvariantSession as T, MAX_TOOL_LOOP_ITERATIONS as U, Tracer as aR, Runner as af, SpanImpl as ax, requestTaskStop as b$, WorkflowEventRecorder as b0, _resetAdmittedAgentBindings as bC, _resetPresetDispatchers as bD, buildAssistantMessageFromLlmResult as bE, buildSystemPrompt as bF, buildToolResultMessage as bG, collectGuardrails as bH, createAgent as bI, createHandoff as bJ, createInMemorySession as bK, createInvariantSessionForAgent as bL, createStateWriter as bM, createTrace as bN, createWorkflowProcessTracker as bO, defaultTracer as bP, detectInstructionsInjection as bQ, discoverInstances as bR, executeRunnerToolCall as bS, extractAssistantTextFromMessage as bT, getActiveUserInteraction as bU, getAdmittedAgentBindings as bV, isFinalWorkflowProcessStatus as bW, isRunnableTool as bX, isRunnerLlmResult as bY, registerChildTask as bZ, registerPresetDispatcher as b_, runAdmissionAudit as c0, runInputGuardrails as c1, runOutputGuardrails as c2, runToolAfterGuardrails as c3, runToolBeforeGuardrails as c4, setActiveUserInteraction as c5, setAdmittedAgentBindings as c6 };
2841
+ export type { PersistedSessionState as $, AdmissionAuditOptions as A, Guardrail as B, ChildTaskRegistry as C, EnqueueInput as E, FanoutSpanData as F, GenerationSpanData as G, GuardrailContext as I, GuardrailSpanData as K, GuardrailVerdict as L, Handoff as M, HandoffSpanData as N, InMemorySessionOptions as O, InputGuardrail as P, InstanceDiscoveryFs as Q, InvariantId as R, InvariantResult as S, ManifestPatch as V, MessageEntry as W, MessageMode as X, MessagePriority as Y, ObserveCtx as Z, OutputGuardrail as _, AdmissionCtx as a, WorkflowEventCorrelation as a$, PresetDispatcher as a0, PresetTracingContext as a1, QualityInvariant as a2, QueueEventListener as a3, QueuedMessage as a4, ReadonlyMutationTracker as a5, ReadonlyRecorder as a6, ReasoningDepth as a7, RecentlyModifiedFile as a8, RequestTaskStopOptions as a9, StateWriter as aA, StateWriterFs as aB, StateWriterOptions as aC, StopHookContext as aD, StopHookFn as aE, StopHookResult as aF, StopHookSpanData as aG, SystemCap as aH, TaskAbortRegistry as aI, TerminalCtx as aJ, ToolBeforeOutcome as aK, ToolCallSpanData as aL, ToolCapability as aM, ToolGuardrail as aN, ToolPermission as aO, Trace as aP, TraceOptions as aQ, TracerOptions as aS, UserInteraction as aT, WorkflowAgentBackend as aU, WorkflowApi as aV, WorkflowApproval as aW, WorkflowApprovalSummary as aX, WorkflowArtifactRef as aY, WorkflowBudget as aZ, WorkflowEvent as a_, RequestTaskStopResult as aa, RunEvent as ab, RunOptions as ac, RunResult as ad, RunnableTool as ae, RunnerEvent as ag, RunnerLlmResult as ah, RunnerLlmReturn as ai, RunnerToolCall as aj, RunnerToolContext as ak, RunnerToolObserver as al, RunnerToolResult as am, Session as an, SessionDispatchResult as ao, SessionEntry as ap, SessionExtension as aq, SessionForkOptions as ar, SessionMeta as as, SessionStateSnapshot as at, Span as au, SpanData as av, SpanError as aw, SpanImplOptions as ay, StartTraceOptions as az, AdmissionVerdict as b, WorkflowEventType as b1, WorkflowIsolation as b2, WorkflowLimits as b3, WorkflowLogEvent as b4, WorkflowMeta as b5, WorkflowModelHint as b6, WorkflowModule as b7, WorkflowParallelOptions as b8, WorkflowProcessArtifact as b9, WorkflowTaskUsage as bA, WorkflowWaitOptions as bB, WorkflowProcessCounts as ba, WorkflowProcessEvent as bb, WorkflowProcessItem as bc, WorkflowProcessItemKind as bd, WorkflowProcessItemStatus as be, WorkflowProcessProgress as bf, WorkflowProcessSnapshot as bg, WorkflowProcessSource as bh, WorkflowProcessStatus as bi, WorkflowProcessSummaryStatus as bj, WorkflowProcessTokenUsage as bk, WorkflowProcessTracker as bl, WorkflowProcessTrackerOptions as bm, WorkflowRun as bn, WorkflowRunState as bo, WorkflowRunStatus as bp, WorkflowSpawnAgentInput as bq, WorkflowSynthesis as br, WorkflowSynthesizeInput as bs, WorkflowTaskHandle as bt, WorkflowTaskResult as bu, WorkflowTaskSnapshot as bv, WorkflowTaskStatus as bw, WorkflowTaskSummaryEventUpdate as bx, WorkflowTaskSummaryKind as by, WorkflowTaskSummaryUpdate as bz, AdmittedHandle as c, Agent as d, AgentManifest as e, AgentMessage as f, AgentMiddlewareDeclaration as g, AgentReasoningProfile as h, AgentSpanData as i, AgentTool as j, AskUserMultiOptions as k, AskUserQuestionItem as l, AskUserQuestionOptions as m, CompactionAnchor as n, CompactionConfig as o, CompactionDetails as p, CompactionResult as q, CompactionSpanData as r, CompactionUpdate as s, CurrentTodoSummary as t, Deliverable as u, DequeueFilter as v, DiscoveredInstance as w, DiscoveryOptions as x, EvidenceSpanData as y, FileOperations as z };
@@ -61,8 +61,17 @@ declare abstract class KodaXAnthropicCompatProvider extends KodaXBaseProvider {
61
61
  abstract readonly name: string;
62
62
  readonly supportsThinking = true;
63
63
  protected abstract readonly config: KodaXProviderConfig;
64
- protected client: Anthropic;
65
- protected initClient(): void;
64
+ private _client?;
65
+ /**
66
+ * The SDK client is built lazily on first use. Constructing it requires the
67
+ * API key (`getApiKey()` throws when the env var is unset), so deferring it
68
+ * lets callers construct a provider and read static metadata (context
69
+ * window, model descriptors) without a key. This also keeps key-less unit
70
+ * tests (which mock the actual LLM calls) from failing at construction time.
71
+ */
72
+ protected get client(): Anthropic;
73
+ protected set client(client: Anthropic);
74
+ protected buildClient(): Anthropic;
66
75
  protected onStaleConnection(): void;
67
76
  /**
68
77
  * FEATURE_216 v0.7.45 — Lightweight credential verification.
@@ -122,8 +131,17 @@ declare abstract class KodaXOpenAICompatProvider extends KodaXBaseProvider {
122
131
  abstract readonly name: string;
123
132
  readonly supportsThinking = true;
124
133
  protected abstract readonly config: KodaXProviderConfig;
125
- protected client: OpenAI;
126
- protected initClient(): void;
134
+ private _client?;
135
+ /**
136
+ * The SDK client is built lazily on first use. Constructing it requires the
137
+ * API key (`getApiKey()` throws when the env var is unset), so deferring it
138
+ * lets callers construct a provider and read static metadata (context
139
+ * window, model descriptors) without a key. This also keeps key-less unit
140
+ * tests (which mock the actual LLM calls) from failing at construction time.
141
+ */
142
+ protected get client(): OpenAI;
143
+ protected set client(client: OpenAI);
144
+ protected buildClient(): OpenAI;
127
145
  protected onStaleConnection(): void;
128
146
  /**
129
147
  * FEATURE_216 v0.7.45 — Lightweight credential verification.
@@ -1,7 +1,8 @@
1
- import { i as BashPrefixExtractor, a4 as KodaXOptions, M as KodaXContextTokenSnapshot, K as KodaXAgentMode, a9 as KodaXRepoIntelligenceMode, A as AgentsFile, f as AutoModeStats, al as KodaXSkillInvocationContext, a1 as KodaXMcpServersConfig } from './bash-prefix-extractor.d-CI_xcPhn.js';
1
+ import { i as BashPrefixExtractor, a5 as KodaXOptions, N as KodaXContextTokenSnapshot, x as KodaXAgentMode, aa as KodaXRepoIntelligenceMode, A as AgentsFile, f as AutoModeStats, am as KodaXSkillInvocationContext, a2 as KodaXMcpServersConfig } from './bash-prefix-extractor.d-B0CIb0N3.js';
2
2
  import { a as SessionStorage$1 } from './storage.d-J2GqOgaX.js';
3
3
  import { y as KodaXSessionStorage, n as KodaXSessionData, A as KodaXSessionUiHistoryItem, s as KodaXSessionLineage, k as KodaXSessionArtifactLedgerEntry, w as KodaXSessionRuntimeInfo } from './types.d-BnjX2Gn4.js';
4
4
  import { n as KodaXMessage, E as KodaXReasoningMode, r as KodaXProviderCapabilityProfile, F as KodaXReasoningOverride, h as KodaXCustomProviderConfig } from './types.d-rPRl2LSB.js';
5
+ import { bh as WorkflowProcessSource } from './process.d-BbiXD24v.js';
5
6
  import * as readline from 'readline';
6
7
  import { SpawnSyncReturns } from 'child_process';
7
8
 
@@ -347,6 +348,7 @@ interface CommandWorkflowInvocationRequest {
347
348
  request: string;
348
349
  source: 'command' | 'natural-language';
349
350
  displayName: string;
351
+ processSource?: WorkflowProcessSource;
350
352
  }
351
353
  type CommandResult$1 = boolean | CommandResultData;
352
354
  type CommandHandler = (args: string[], context: InteractiveContext, callbacks: CommandCallbacks, currentConfig: CurrentConfig) => Promise<CommandResult$1 | void>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kodax-ai/kodax",
3
- "version": "0.7.49",
3
+ "version": "0.7.50",
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{ea as a,fa as b}from"./chunk-ISGHUKRY.js";import"./chunk-TYZAH3YP.js";import"./chunk-YW4RQV7U.js";import"./chunk-67SWUEEN.js";import"./chunk-YACQ4OST.js";import"./chunk-JTHMWRXM.js";import"./chunk-V4WSBIXB.js";export{a as ArgumentCompleter,b as createArgumentCompleter};