@yuaone/core 0.6.1 → 0.7.1

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 (67) hide show
  1. package/dist/agent-loop.d.ts +38 -0
  2. package/dist/agent-loop.d.ts.map +1 -1
  3. package/dist/agent-loop.js +532 -117
  4. package/dist/agent-loop.js.map +1 -1
  5. package/dist/code-indexer.d.ts +50 -0
  6. package/dist/code-indexer.d.ts.map +1 -0
  7. package/dist/code-indexer.js +199 -0
  8. package/dist/code-indexer.js.map +1 -0
  9. package/dist/failure-recovery.d.ts +15 -2
  10. package/dist/failure-recovery.d.ts.map +1 -1
  11. package/dist/failure-recovery.js +53 -2
  12. package/dist/failure-recovery.js.map +1 -1
  13. package/dist/index.d.ts +8 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +8 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/llm-client.d.ts +20 -2
  18. package/dist/llm-client.d.ts.map +1 -1
  19. package/dist/llm-client.js +213 -8
  20. package/dist/llm-client.js.map +1 -1
  21. package/dist/llm-orchestrator.d.ts +74 -0
  22. package/dist/llm-orchestrator.d.ts.map +1 -0
  23. package/dist/llm-orchestrator.js +144 -0
  24. package/dist/llm-orchestrator.js.map +1 -0
  25. package/dist/planner/index.d.ts +9 -0
  26. package/dist/planner/index.d.ts.map +1 -0
  27. package/dist/planner/index.js +5 -0
  28. package/dist/planner/index.js.map +1 -0
  29. package/dist/planner/milestone-checker.d.ts +48 -0
  30. package/dist/planner/milestone-checker.d.ts.map +1 -0
  31. package/dist/planner/milestone-checker.js +113 -0
  32. package/dist/planner/milestone-checker.js.map +1 -0
  33. package/dist/planner/plan-evaluator.d.ts +35 -0
  34. package/dist/planner/plan-evaluator.d.ts.map +1 -0
  35. package/dist/planner/plan-evaluator.js +92 -0
  36. package/dist/planner/plan-evaluator.js.map +1 -0
  37. package/dist/planner/replanning-engine.d.ts +37 -0
  38. package/dist/planner/replanning-engine.d.ts.map +1 -0
  39. package/dist/planner/replanning-engine.js +130 -0
  40. package/dist/planner/replanning-engine.js.map +1 -0
  41. package/dist/planner/risk-estimator.d.ts +44 -0
  42. package/dist/planner/risk-estimator.d.ts.map +1 -0
  43. package/dist/planner/risk-estimator.js +108 -0
  44. package/dist/planner/risk-estimator.js.map +1 -0
  45. package/dist/types.d.ts +12 -0
  46. package/dist/types.d.ts.map +1 -1
  47. package/dist/world-model/index.d.ts +8 -0
  48. package/dist/world-model/index.d.ts.map +1 -0
  49. package/dist/world-model/index.js +5 -0
  50. package/dist/world-model/index.js.map +1 -0
  51. package/dist/world-model/simulation-engine.d.ts +58 -0
  52. package/dist/world-model/simulation-engine.d.ts.map +1 -0
  53. package/dist/world-model/simulation-engine.js +191 -0
  54. package/dist/world-model/simulation-engine.js.map +1 -0
  55. package/dist/world-model/state-store.d.ts +149 -0
  56. package/dist/world-model/state-store.d.ts.map +1 -0
  57. package/dist/world-model/state-store.js +379 -0
  58. package/dist/world-model/state-store.js.map +1 -0
  59. package/dist/world-model/state-updater.d.ts +35 -0
  60. package/dist/world-model/state-updater.d.ts.map +1 -0
  61. package/dist/world-model/state-updater.js +131 -0
  62. package/dist/world-model/state-updater.js.map +1 -0
  63. package/dist/world-model/transition-model.d.ts +54 -0
  64. package/dist/world-model/transition-model.d.ts.map +1 -0
  65. package/dist/world-model/transition-model.js +240 -0
  66. package/dist/world-model/transition-model.js.map +1 -0
  67. package/package.json +1 -1
@@ -95,10 +95,15 @@ export class BYOKClient {
95
95
  * @param tools 사용 가능한 도구 정의
96
96
  * @returns 비동기 이터레이터
97
97
  */
98
- async *chatStream(messages, tools) {
98
+ async *chatStream(messages, tools, abortSignal) {
99
99
  try {
100
100
  if (this.config.provider === "anthropic") {
101
- yield* this.chatStreamAnthropic(messages, tools);
101
+ yield* this.chatStreamAnthropic(messages, tools, abortSignal);
102
+ return;
103
+ }
104
+ // Native Gemini API — exposes thinking/reasoning parts not available via OpenAI gateway
105
+ if (this.config.provider === "google") {
106
+ yield* this.chatStreamGeminiNative(messages, tools, abortSignal);
102
107
  return;
103
108
  }
104
109
  if (!this.openaiClient) {
@@ -113,7 +118,7 @@ export class BYOKClient {
113
118
  ? { tools: tools.map((t) => this.toOpenAITool(t)) }
114
119
  : {}),
115
120
  };
116
- const stream = await this.openaiClient.chat.completions.create(params);
121
+ const stream = await this.openaiClient.chat.completions.create(params, { signal: abortSignal });
117
122
  const toolCallAccumulators = new Map();
118
123
  // id → index mapping: Gemini may omit index but always sends id
119
124
  const idToIndex = new Map();
@@ -249,7 +254,7 @@ export class BYOKClient {
249
254
  /**
250
255
  * Anthropic Messages API 호출 (streaming).
251
256
  */
252
- async *chatStreamAnthropic(messages, tools) {
257
+ async *chatStreamAnthropic(messages, tools, abortSignal) {
253
258
  const systemMessages = messages.filter((m) => m.role === "system");
254
259
  const systemTexts = systemMessages
255
260
  .map((m) => typeof m.content === "string" ? m.content : (Array.isArray(m.content) ? m.content.filter((b) => b.type === "text").map((b) => b.text).join("\n") : ""))
@@ -285,6 +290,7 @@ export class BYOKClient {
285
290
  "anthropic-beta": "prompt-caching-2024-07-31",
286
291
  },
287
292
  body: JSON.stringify(body),
293
+ signal: abortSignal,
288
294
  });
289
295
  if (!response.ok) {
290
296
  const text = await response.text();
@@ -551,24 +557,37 @@ export class BYOKClient {
551
557
  }
552
558
  /**
553
559
  * Build system payload with cache_control markers for Anthropic prompt caching.
554
- * Caches the first block (stable base prompt) to maximize token savings.
560
+ *
561
+ * CAG (Cache-Augmented Generation) strategy:
562
+ * - "Cold" data (stable across tasks): system prompt, YUAN.md, project conventions, memory
563
+ * → mark with cache_control (Anthropic caches up to 4 checkpoints)
564
+ * - "Hot" data (per-task dynamic): RAG hits, task memory, reflexion guidance
565
+ * → no cache_control (always fresh retrieval)
566
+ *
567
+ * Heuristic: cache the first ceil(N/2) blocks (injected first = more stable),
568
+ * leave the later half uncached (injected later = task-specific hot data).
569
+ * Max 4 cache checkpoints per Anthropic API constraint.
555
570
  */
556
571
  buildAnthropicSystemPayload(systemTexts) {
557
572
  if (systemTexts.length === 0)
558
573
  return undefined;
574
+ // Single block: always cache (it's the base system prompt)
559
575
  if (systemTexts.length === 1) {
560
576
  return [
561
577
  { type: "text", text: systemTexts[0], cache_control: { type: "ephemeral" } },
562
578
  ];
563
579
  }
564
- // Multiple system messages: cache the first block (stable base prompt)
565
- // Anthropic caches everything up to the cache_control marker
580
+ // Multiple blocks: cache stable cold-data blocks, leave hot-data blocks uncached.
581
+ // Cold = first ceil(N/2) blocks (base prompt + YUAN.md + memory learnings)
582
+ // Hot = remaining blocks (per-task RAG, getRelevant, reflexion guidance)
583
+ // Anthropic supports max 4 cache_control checkpoints.
584
+ const coldCount = Math.min(Math.ceil(systemTexts.length / 2), 4);
566
585
  return systemTexts.map((text, i) => {
567
586
  const block = {
568
587
  type: "text",
569
588
  text,
570
589
  };
571
- if (i === 0) {
590
+ if (i < coldCount) {
572
591
  block.cache_control = { type: "ephemeral" };
573
592
  }
574
593
  return block;
@@ -608,6 +627,192 @@ export class BYOKClient {
608
627
  finishReason: data.stop_reason ?? "end_turn",
609
628
  };
610
629
  }
630
+ /**
631
+ * Native Gemini REST API streaming — uses the `generateContent` endpoint directly
632
+ * instead of the OpenAI-compatible gateway. This unlocks native thinking/reasoning
633
+ * parts (parts with `thought: true`) that the OpenAI gateway does not expose.
634
+ *
635
+ * Endpoint: https://generativelanguage.googleapis.com/v1beta/models/{model}:streamGenerateContent
636
+ * Auth: API key via `?key=` query param
637
+ */
638
+ async *chatStreamGeminiNative(messages, tools, abortSignal) {
639
+ const apiKey = this.config.apiKey;
640
+ const baseUrl = this.config.baseUrl?.replace(/\/openai\/?$/, "") ??
641
+ "https://generativelanguage.googleapis.com/v1beta";
642
+ const endpoint = `${baseUrl}/models/${this.model}:streamGenerateContent?alt=sse&key=${apiKey}`;
643
+ // Convert messages to Gemini format
644
+ const systemParts = [];
645
+ const geminiContents = [];
646
+ for (const msg of messages) {
647
+ const textContent = typeof msg.content === "string"
648
+ ? msg.content
649
+ : Array.isArray(msg.content)
650
+ ? msg.content
651
+ .filter((b) => b.type === "text")
652
+ .map((b) => b.text)
653
+ .join("\n")
654
+ : "";
655
+ if (msg.role === "system") {
656
+ if (textContent)
657
+ systemParts.push(textContent);
658
+ continue;
659
+ }
660
+ if (msg.role === "tool") {
661
+ // Tool results → functionResponse parts
662
+ const toolCalls = Array.isArray(msg.content)
663
+ ? msg.content
664
+ : [];
665
+ const parts = toolCalls
666
+ .filter((b) => b.type === "tool_result")
667
+ .map((b) => ({
668
+ functionResponse: {
669
+ name: b.name ?? "tool",
670
+ response: { content: b.content ?? "" },
671
+ },
672
+ }));
673
+ if (parts.length > 0) {
674
+ geminiContents.push({ role: "user", parts });
675
+ }
676
+ continue;
677
+ }
678
+ const role = msg.role === "assistant" ? "model" : "user";
679
+ // Check for tool calls in assistant messages
680
+ if (msg.role === "assistant" && Array.isArray(msg.content)) {
681
+ const parts = [];
682
+ for (const block of msg.content) {
683
+ if (block.type === "text" && typeof block.text === "string" && block.text) {
684
+ parts.push({ text: block.text });
685
+ }
686
+ else if (block.type === "tool_use") {
687
+ parts.push({
688
+ functionCall: {
689
+ name: block.name,
690
+ args: block.input ?? {},
691
+ },
692
+ });
693
+ }
694
+ }
695
+ if (parts.length > 0)
696
+ geminiContents.push({ role, parts });
697
+ continue;
698
+ }
699
+ if (textContent) {
700
+ geminiContents.push({ role, parts: [{ text: textContent }] });
701
+ }
702
+ }
703
+ // Build Gemini tool declarations
704
+ const functionDeclarations = tools?.map((t) => ({
705
+ name: t.name,
706
+ description: t.description,
707
+ parameters: t.parameters,
708
+ }));
709
+ const body = {
710
+ contents: geminiContents,
711
+ ...(systemParts.length > 0
712
+ ? { systemInstruction: { parts: systemParts.map((t) => ({ text: t })) } }
713
+ : {}),
714
+ ...(functionDeclarations && functionDeclarations.length > 0
715
+ ? { tools: [{ functionDeclarations }] }
716
+ : {}),
717
+ generationConfig: {
718
+ maxOutputTokens: 8192,
719
+ thinkingConfig: {
720
+ thinkingBudget: 8192,
721
+ },
722
+ },
723
+ };
724
+ const response = await fetch(endpoint, {
725
+ method: "POST",
726
+ headers: { "Content-Type": "application/json" },
727
+ body: JSON.stringify(body),
728
+ signal: abortSignal,
729
+ });
730
+ if (!response.ok) {
731
+ const errText = await response.text().catch(() => "");
732
+ throw new LLMError("google", `Gemini API error ${response.status}: ${errText}`);
733
+ }
734
+ const reader = response.body?.getReader();
735
+ if (!reader)
736
+ throw new LLMError("google", "No response body");
737
+ const decoder = new TextDecoder();
738
+ let buffer = "";
739
+ const pendingToolCalls = new Map();
740
+ let inputTokens = 0;
741
+ let outputTokens = 0;
742
+ try {
743
+ while (true) {
744
+ const { done, value } = await reader.read();
745
+ if (done)
746
+ break;
747
+ buffer += decoder.decode(value, { stream: true });
748
+ const lines = buffer.split("\n");
749
+ buffer = lines.pop() ?? "";
750
+ for (const line of lines) {
751
+ if (!line.startsWith("data: "))
752
+ continue;
753
+ const jsonStr = line.slice(6).trim();
754
+ if (jsonStr === "[DONE]" || !jsonStr)
755
+ continue;
756
+ let chunk;
757
+ try {
758
+ chunk = JSON.parse(jsonStr);
759
+ }
760
+ catch {
761
+ continue;
762
+ }
763
+ // Extract usage from usageMetadata
764
+ const usage = chunk.usageMetadata;
765
+ if (usage) {
766
+ inputTokens = usage.promptTokenCount ?? inputTokens;
767
+ outputTokens = usage.candidatesTokenCount ?? outputTokens;
768
+ }
769
+ const candidates = chunk.candidates ?? [];
770
+ for (const candidate of candidates) {
771
+ const content = candidate.content;
772
+ const parts = content?.parts ?? [];
773
+ for (const part of parts) {
774
+ // Thinking part (native reasoning)
775
+ if (part.thought === true && typeof part.text === "string" && part.text) {
776
+ const rc = this.buildReasoningChunk(part.text);
777
+ if (rc)
778
+ yield rc;
779
+ continue;
780
+ }
781
+ // Text part
782
+ if (typeof part.text === "string" && part.text) {
783
+ yield { type: "text", text: part.text };
784
+ continue;
785
+ }
786
+ // Function call part
787
+ const fc = part.functionCall;
788
+ if (fc && typeof fc.name === "string") {
789
+ const callId = `call_gemini_${Date.now()}_${Math.random().toString(36).slice(2, 6)}`;
790
+ pendingToolCalls.set(callId, {
791
+ name: fc.name,
792
+ args: fc.args ?? {},
793
+ });
794
+ }
795
+ }
796
+ }
797
+ }
798
+ }
799
+ }
800
+ finally {
801
+ reader.releaseLock();
802
+ }
803
+ // Emit accumulated tool calls
804
+ for (const [callId, tc] of pendingToolCalls) {
805
+ yield {
806
+ type: "tool_call",
807
+ toolCall: {
808
+ id: callId,
809
+ name: tc.name,
810
+ arguments: tc.args,
811
+ },
812
+ };
813
+ }
814
+ yield { type: "done", usage: { input: inputTokens, output: outputTokens } };
815
+ }
611
816
  /**
612
817
  * 리소스 정리. 내부 클라이언트 참조를 해제한다.
613
818
  */
@@ -1 +1 @@
1
- {"version":3,"file":"llm-client.js","sourceRoot":"","sources":["../src/llm-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm-client.js","sourceRoot":"","sources":["../src/llm-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * @module llm-orchestrator
3
+ * @description Unified LLM Orchestrator — single entry point for all LLM provider calls.
4
+ *
5
+ * Sits above BYOKClient to add:
6
+ * - Provider capability registry (which models support reasoning, function calling, etc.)
7
+ * - Automatic retry with exponential backoff
8
+ * - Normalized LLM event emission for logging/telemetry
9
+ * - Model routing hints (prefer reasoning-capable model for planning tasks)
10
+ *
11
+ * All agent-loop LLM calls should go through this orchestrator.
12
+ * BYOKClient handles the per-provider protocol details (Anthropic native, Gemini native, OpenAI).
13
+ */
14
+ import type { Message, ToolDefinition, LLMProvider } from "./types.js";
15
+ import { type LLMStreamChunk, type LLMResponse } from "./llm-client.js";
16
+ import type { BYOKConfig } from "./types.js";
17
+ /** Capabilities that a provider/model combination may support */
18
+ export interface ProviderCapabilities {
19
+ /** Supports extended reasoning / thinking stream */
20
+ reasoning: boolean;
21
+ /** Supports parallel function calling (multiple tools in one response) */
22
+ parallelTools: boolean;
23
+ /** Max output tokens */
24
+ maxOutputTokens: number;
25
+ /** Whether this model has a large context window (≥128k) */
26
+ largeContext: boolean;
27
+ }
28
+ export declare function getModelCapabilities(model: string): ProviderCapabilities;
29
+ export type NormalizedLLMEventKind = "text" | "reasoning" | "tool_call" | "usage" | "done" | "error" | "retry";
30
+ export interface NormalizedLLMEvent {
31
+ kind: NormalizedLLMEventKind;
32
+ provider: LLMProvider;
33
+ model: string;
34
+ /** Milliseconds since orchestrator.chatStream() was called */
35
+ elapsedMs: number;
36
+ /** Event payload */
37
+ payload: LLMStreamChunk | {
38
+ message: string;
39
+ attempt: number;
40
+ };
41
+ }
42
+ export interface OrchestratorConfig {
43
+ /** Max retry attempts on transient errors (default: 2) */
44
+ maxRetries?: number;
45
+ /** Initial backoff ms for retry (default: 1000, doubles each attempt) */
46
+ retryBackoffMs?: number;
47
+ /** Optional event listener for telemetry/logging */
48
+ onEvent?: (event: NormalizedLLMEvent) => void;
49
+ }
50
+ /**
51
+ * Unified orchestrator wrapping BYOKClient.
52
+ * Provides retry, event normalization, and capability queries.
53
+ */
54
+ export declare class LLMOrchestrator {
55
+ private readonly client;
56
+ private readonly config;
57
+ private readonly provider;
58
+ private readonly model;
59
+ readonly capabilities: ProviderCapabilities;
60
+ constructor(byokConfig: BYOKConfig, orchConfig?: OrchestratorConfig);
61
+ /**
62
+ * Streaming chat with automatic retry on transient errors.
63
+ * Emits normalized events to `onEvent` if configured.
64
+ */
65
+ chatStream(messages: Message[], tools?: ToolDefinition[], abortSignal?: AbortSignal): AsyncGenerator<LLMStreamChunk>;
66
+ /**
67
+ * Non-streaming chat with retry.
68
+ */
69
+ chat(messages: Message[], tools?: ToolDefinition[], abortSignal?: AbortSignal): Promise<LLMResponse>;
70
+ destroy(): void;
71
+ private emit;
72
+ private isTransientError;
73
+ }
74
+ //# sourceMappingURL=llm-orchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-orchestrator.d.ts","sourceRoot":"","sources":["../src/llm-orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EAAc,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,iEAAiE;AACjE,MAAM,WAAW,oBAAoB;IACnC,oDAAoD;IACpD,SAAS,EAAE,OAAO,CAAC;IACnB,0EAA0E;IAC1E,aAAa,EAAE,OAAO,CAAC;IACvB,wBAAwB;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,YAAY,EAAE,OAAO,CAAC;CACvB;AAmBD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,oBAAoB,CAOxE;AAID,MAAM,MAAM,sBAAsB,GAC9B,MAAM,GACN,WAAW,GACX,WAAW,GACX,OAAO,GACP,MAAM,GACN,OAAO,GACP,OAAO,CAAC;AAEZ,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,sBAAsB,CAAC;IAC7B,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB;IACpB,OAAO,EAAE,cAAc,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAChE;AAID,MAAM,WAAW,kBAAkB;IACjC,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAC/C;AAID;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAc;IACvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC;gBAEhC,UAAU,EAAE,UAAU,EAAE,UAAU,GAAE,kBAAuB;IAYvE;;;OAGG;IACI,UAAU,CACf,QAAQ,EAAE,OAAO,EAAE,EACnB,KAAK,CAAC,EAAE,cAAc,EAAE,EACxB,WAAW,CAAC,EAAE,WAAW,GACxB,cAAc,CAAC,cAAc,CAAC;IA8BjC;;OAEG;IACG,IAAI,CACR,QAAQ,EAAE,OAAO,EAAE,EACnB,KAAK,CAAC,EAAE,cAAc,EAAE,EACxB,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,WAAW,CAAC;IAqBvB,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,IAAI;IAcZ,OAAO,CAAC,gBAAgB;CAazB"}
@@ -0,0 +1,144 @@
1
+ /**
2
+ * @module llm-orchestrator
3
+ * @description Unified LLM Orchestrator — single entry point for all LLM provider calls.
4
+ *
5
+ * Sits above BYOKClient to add:
6
+ * - Provider capability registry (which models support reasoning, function calling, etc.)
7
+ * - Automatic retry with exponential backoff
8
+ * - Normalized LLM event emission for logging/telemetry
9
+ * - Model routing hints (prefer reasoning-capable model for planning tasks)
10
+ *
11
+ * All agent-loop LLM calls should go through this orchestrator.
12
+ * BYOKClient handles the per-provider protocol details (Anthropic native, Gemini native, OpenAI).
13
+ */
14
+ import { BYOKClient } from "./llm-client.js";
15
+ /** Known capability overrides per model prefix */
16
+ const MODEL_CAPABILITIES = [
17
+ { prefix: /^claude-3-5-opus|^claude-opus-4|^claude-sonnet-4/i, caps: { reasoning: true, parallelTools: true, maxOutputTokens: 8192, largeContext: true } },
18
+ { prefix: /^claude/i, caps: { reasoning: false, parallelTools: true, maxOutputTokens: 8192, largeContext: true } },
19
+ { prefix: /^gemini-2\.5/i, caps: { reasoning: true, parallelTools: true, maxOutputTokens: 8192, largeContext: true } },
20
+ { prefix: /^gemini/i, caps: { reasoning: false, parallelTools: true, maxOutputTokens: 8192, largeContext: true } },
21
+ { prefix: /^gpt-4/i, caps: { reasoning: false, parallelTools: true, maxOutputTokens: 4096, largeContext: false } },
22
+ { prefix: /^o1|^o3/i, caps: { reasoning: true, parallelTools: false, maxOutputTokens: 8192, largeContext: false } },
23
+ ];
24
+ const DEFAULT_CAPABILITIES = {
25
+ reasoning: false,
26
+ parallelTools: true,
27
+ maxOutputTokens: 4096,
28
+ largeContext: false,
29
+ };
30
+ export function getModelCapabilities(model) {
31
+ for (const entry of MODEL_CAPABILITIES) {
32
+ if (entry.prefix.test(model)) {
33
+ return { ...DEFAULT_CAPABILITIES, ...entry.caps };
34
+ }
35
+ }
36
+ return { ...DEFAULT_CAPABILITIES };
37
+ }
38
+ // ─── LLMOrchestrator ───
39
+ /**
40
+ * Unified orchestrator wrapping BYOKClient.
41
+ * Provides retry, event normalization, and capability queries.
42
+ */
43
+ export class LLMOrchestrator {
44
+ client;
45
+ config;
46
+ provider;
47
+ model;
48
+ capabilities;
49
+ constructor(byokConfig, orchConfig = {}) {
50
+ this.client = new BYOKClient(byokConfig);
51
+ this.config = {
52
+ maxRetries: orchConfig.maxRetries ?? 2,
53
+ retryBackoffMs: orchConfig.retryBackoffMs ?? 1000,
54
+ onEvent: orchConfig.onEvent,
55
+ };
56
+ this.provider = byokConfig.provider;
57
+ this.model = byokConfig.model ?? "";
58
+ this.capabilities = getModelCapabilities(this.model);
59
+ }
60
+ /**
61
+ * Streaming chat with automatic retry on transient errors.
62
+ * Emits normalized events to `onEvent` if configured.
63
+ */
64
+ async *chatStream(messages, tools, abortSignal) {
65
+ const maxRetries = this.config.maxRetries ?? 2;
66
+ const baseBackoff = this.config.retryBackoffMs ?? 1000;
67
+ const startTime = Date.now();
68
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
69
+ try {
70
+ const stream = this.client.chatStream(messages, tools, abortSignal);
71
+ for await (const chunk of stream) {
72
+ this.emit(chunk.type, chunk, startTime);
73
+ yield chunk;
74
+ }
75
+ return; // success
76
+ }
77
+ catch (err) {
78
+ const isAbort = abortSignal?.aborted || (err instanceof Error && err.name === "AbortError");
79
+ if (isAbort)
80
+ throw err; // don't retry aborts
81
+ const isRetryable = this.isTransientError(err);
82
+ if (!isRetryable || attempt >= maxRetries) {
83
+ this.emit("error", { message: String(err), attempt }, startTime);
84
+ throw err;
85
+ }
86
+ const backoff = baseBackoff * Math.pow(2, attempt);
87
+ this.emit("retry", { message: String(err), attempt }, startTime);
88
+ await sleep(backoff);
89
+ }
90
+ }
91
+ }
92
+ /**
93
+ * Non-streaming chat with retry.
94
+ */
95
+ async chat(messages, tools, abortSignal) {
96
+ const maxRetries = this.config.maxRetries ?? 2;
97
+ const baseBackoff = this.config.retryBackoffMs ?? 1000;
98
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
99
+ try {
100
+ return await this.client.chat(messages, tools);
101
+ }
102
+ catch (err) {
103
+ const isAbort = abortSignal?.aborted || (err instanceof Error && err.name === "AbortError");
104
+ if (isAbort)
105
+ throw err;
106
+ if (!this.isTransientError(err) || attempt >= maxRetries)
107
+ throw err;
108
+ const backoff = baseBackoff * Math.pow(2, attempt);
109
+ await sleep(backoff);
110
+ }
111
+ }
112
+ // unreachable
113
+ throw new Error("LLMOrchestrator: retry loop exhausted");
114
+ }
115
+ destroy() {
116
+ this.client.destroy();
117
+ }
118
+ // ─── Private ───
119
+ emit(kind, payload, startTime) {
120
+ this.config.onEvent?.({
121
+ kind,
122
+ provider: this.provider,
123
+ model: this.model,
124
+ elapsedMs: Date.now() - startTime,
125
+ payload,
126
+ });
127
+ }
128
+ isTransientError(err) {
129
+ if (!(err instanceof Error))
130
+ return false;
131
+ const msg = err.message.toLowerCase();
132
+ return (msg.includes("rate limit") ||
133
+ msg.includes("429") ||
134
+ msg.includes("503") ||
135
+ msg.includes("overloaded") ||
136
+ msg.includes("timeout") ||
137
+ msg.includes("econnreset") ||
138
+ msg.includes("enotfound"));
139
+ }
140
+ }
141
+ function sleep(ms) {
142
+ return new Promise((resolve) => setTimeout(resolve, ms));
143
+ }
144
+ //# sourceMappingURL=llm-orchestrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-orchestrator.js","sourceRoot":"","sources":["../src/llm-orchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export { MilestoneChecker } from "./milestone-checker.js";
2
+ export type { Milestone, MilestoneStatus } from "./milestone-checker.js";
3
+ export { RiskEstimator } from "./risk-estimator.js";
4
+ export type { RiskScore, RiskComponents } from "./risk-estimator.js";
5
+ export { PlanEvaluator } from "./plan-evaluator.js";
6
+ export type { PlanHealth, PlanDeviation, DeviantType } from "./plan-evaluator.js";
7
+ export { ReplanningEngine } from "./replanning-engine.js";
8
+ export type { ReplanDecision, ProactiveReplanResult } from "./replanning-engine.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/planner/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { MilestoneChecker } from "./milestone-checker.js";
2
+ export { RiskEstimator } from "./risk-estimator.js";
3
+ export { PlanEvaluator } from "./plan-evaluator.js";
4
+ export { ReplanningEngine } from "./replanning-engine.js";
5
+ //# sourceMappingURL=index.js.map