@falai/agent 3.4.3 → 3.4.5

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 (110) hide show
  1. package/dist/cjs/adapters/MemoryAdapter.d.ts +47 -0
  2. package/dist/cjs/adapters/MemoryAdapter.d.ts.map +1 -0
  3. package/dist/cjs/adapters/MemoryAdapter.js +208 -0
  4. package/dist/cjs/adapters/MemoryAdapter.js.map +1 -0
  5. package/dist/cjs/adapters/MongoAdapter.d.ts +97 -0
  6. package/dist/cjs/adapters/MongoAdapter.d.ts.map +1 -0
  7. package/dist/cjs/adapters/MongoAdapter.js +200 -0
  8. package/dist/cjs/adapters/MongoAdapter.js.map +1 -0
  9. package/dist/cjs/adapters/OpenSearchAdapter.d.ts +169 -0
  10. package/dist/cjs/adapters/OpenSearchAdapter.d.ts.map +1 -0
  11. package/dist/cjs/adapters/OpenSearchAdapter.js +475 -0
  12. package/dist/cjs/adapters/OpenSearchAdapter.js.map +1 -0
  13. package/dist/cjs/adapters/PostgreSQLAdapter.d.ts +85 -0
  14. package/dist/cjs/adapters/PostgreSQLAdapter.d.ts.map +1 -0
  15. package/dist/cjs/adapters/PostgreSQLAdapter.js +312 -0
  16. package/dist/cjs/adapters/PostgreSQLAdapter.js.map +1 -0
  17. package/dist/cjs/adapters/PrismaAdapter.d.ts +115 -0
  18. package/dist/cjs/adapters/PrismaAdapter.d.ts.map +1 -0
  19. package/dist/cjs/adapters/PrismaAdapter.js +410 -0
  20. package/dist/cjs/adapters/PrismaAdapter.js.map +1 -0
  21. package/dist/cjs/adapters/RedisAdapter.d.ts +72 -0
  22. package/dist/cjs/adapters/RedisAdapter.d.ts.map +1 -0
  23. package/dist/cjs/adapters/RedisAdapter.js +290 -0
  24. package/dist/cjs/adapters/RedisAdapter.js.map +1 -0
  25. package/dist/cjs/adapters/SQLiteAdapter.d.ts +86 -0
  26. package/dist/cjs/adapters/SQLiteAdapter.d.ts.map +1 -0
  27. package/dist/cjs/adapters/SQLiteAdapter.js +341 -0
  28. package/dist/cjs/adapters/SQLiteAdapter.js.map +1 -0
  29. package/dist/cjs/adapters/index.d.ts +17 -0
  30. package/dist/cjs/adapters/index.d.ts.map +1 -0
  31. package/dist/cjs/adapters/index.js +21 -0
  32. package/dist/cjs/adapters/index.js.map +1 -0
  33. package/dist/cjs/adapters/sessionRow.d.ts +22 -0
  34. package/dist/cjs/adapters/sessionRow.d.ts.map +1 -0
  35. package/dist/cjs/adapters/sessionRow.js +52 -0
  36. package/dist/cjs/adapters/sessionRow.js.map +1 -0
  37. package/dist/cjs/constants/index.d.ts +1 -0
  38. package/dist/cjs/constants/index.d.ts.map +1 -0
  39. package/dist/cjs/constants/index.js +4 -0
  40. package/dist/cjs/constants/index.js.map +1 -0
  41. package/dist/cjs/core/Agent.d.ts +382 -0
  42. package/dist/cjs/core/Agent.d.ts.map +1 -0
  43. package/dist/cjs/core/Agent.js +1198 -0
  44. package/dist/cjs/core/Agent.js.map +1 -0
  45. package/dist/cjs/core/ResponseModal.d.ts +305 -0
  46. package/dist/cjs/core/ResponseModal.d.ts.map +1 -0
  47. package/dist/cjs/core/ResponseModal.js +1414 -0
  48. package/dist/cjs/core/ResponseModal.js.map +1 -0
  49. package/dist/cjs/core/ToolLoopExecutor.d.ts +133 -0
  50. package/dist/cjs/core/ToolLoopExecutor.d.ts.map +1 -0
  51. package/dist/cjs/core/ToolLoopExecutor.js +568 -0
  52. package/dist/cjs/core/ToolLoopExecutor.js.map +1 -0
  53. package/dist/cjs/core/createAgent.d.ts +35 -0
  54. package/dist/cjs/core/createAgent.d.ts.map +1 -0
  55. package/dist/cjs/core/createAgent.js +39 -0
  56. package/dist/cjs/core/createAgent.js.map +1 -0
  57. package/dist/cjs/index.d.ts +61 -0
  58. package/dist/cjs/index.d.ts.map +1 -0
  59. package/dist/cjs/index.js +113 -0
  60. package/dist/cjs/index.js.map +1 -0
  61. package/dist/cjs/package.json +1 -0
  62. package/dist/cjs/providers/AnthropicProvider.d.ts +46 -0
  63. package/dist/cjs/providers/AnthropicProvider.d.ts.map +1 -0
  64. package/dist/cjs/providers/AnthropicProvider.js +50 -0
  65. package/dist/cjs/providers/AnthropicProvider.js.map +1 -0
  66. package/dist/cjs/providers/DeepSeekProvider.d.ts +47 -0
  67. package/dist/cjs/providers/DeepSeekProvider.d.ts.map +1 -0
  68. package/dist/cjs/providers/DeepSeekProvider.js +42 -0
  69. package/dist/cjs/providers/DeepSeekProvider.js.map +1 -0
  70. package/dist/cjs/providers/FallbackAiProvider.d.ts +26 -0
  71. package/dist/cjs/providers/FallbackAiProvider.d.ts.map +1 -0
  72. package/dist/cjs/providers/FallbackAiProvider.js +54 -0
  73. package/dist/cjs/providers/FallbackAiProvider.js.map +1 -0
  74. package/dist/cjs/providers/GeminiProvider.d.ts +51 -0
  75. package/dist/cjs/providers/GeminiProvider.d.ts.map +1 -0
  76. package/dist/cjs/providers/GeminiProvider.js +53 -0
  77. package/dist/cjs/providers/GeminiProvider.js.map +1 -0
  78. package/dist/cjs/providers/GenericOpenAICompatibleProvider.d.ts +80 -0
  79. package/dist/cjs/providers/GenericOpenAICompatibleProvider.d.ts.map +1 -0
  80. package/dist/cjs/providers/GenericOpenAICompatibleProvider.js +89 -0
  81. package/dist/cjs/providers/GenericOpenAICompatibleProvider.js.map +1 -0
  82. package/dist/cjs/providers/OpenAICompatibleProvider.d.ts +61 -0
  83. package/dist/cjs/providers/OpenAICompatibleProvider.d.ts.map +1 -0
  84. package/dist/cjs/providers/OpenAICompatibleProvider.js +58 -0
  85. package/dist/cjs/providers/OpenAICompatibleProvider.js.map +1 -0
  86. package/dist/cjs/providers/OpenAIProvider.d.ts +40 -0
  87. package/dist/cjs/providers/OpenAIProvider.d.ts.map +1 -0
  88. package/dist/cjs/providers/OpenAIProvider.js +42 -0
  89. package/dist/cjs/providers/OpenAIProvider.js.map +1 -0
  90. package/dist/cjs/providers/OpenRouterProvider.d.ts +56 -0
  91. package/dist/cjs/providers/OpenRouterProvider.d.ts.map +1 -0
  92. package/dist/cjs/providers/OpenRouterProvider.js +45 -0
  93. package/dist/cjs/providers/OpenRouterProvider.js.map +1 -0
  94. package/dist/cjs/providers/ProviderAdapter.d.ts +126 -0
  95. package/dist/cjs/providers/ProviderAdapter.d.ts.map +1 -0
  96. package/dist/cjs/providers/ProviderAdapter.js +313 -0
  97. package/dist/cjs/providers/ProviderAdapter.js.map +1 -0
  98. package/dist/cjs/providers/ZaiProvider.d.ts +45 -0
  99. package/dist/cjs/providers/ZaiProvider.d.ts.map +1 -0
  100. package/dist/cjs/providers/ZaiProvider.js +51 -0
  101. package/dist/cjs/providers/ZaiProvider.js.map +1 -0
  102. package/dist/cjs/providers/index.d.ts +26 -0
  103. package/dist/cjs/providers/index.d.ts.map +1 -0
  104. package/dist/cjs/providers/index.js +30 -0
  105. package/dist/cjs/providers/index.js.map +1 -0
  106. package/dist/cjs/utils/streamingMessage.d.ts +48 -0
  107. package/dist/cjs/utils/streamingMessage.d.ts.map +1 -0
  108. package/dist/cjs/utils/streamingMessage.js +210 -0
  109. package/dist/cjs/utils/streamingMessage.js.map +1 -0
  110. package/package.json +2 -2
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ /**
3
+ * Level-1 factory for constructing an Agent from a single options object.
4
+ *
5
+ * `createAgent` is syntactic sugar over `new Agent(options)` and is the
6
+ * recommended entry point in docs and examples. Generic inference flows
7
+ * from `schema` through `flows[].steps[].collect` identically to `new Agent`.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * const agent = createAgent({
12
+ * name: 'BookingBot',
13
+ * provider: new GeminiProvider({ apiKey }),
14
+ * schema: { type: 'object', properties: { name: { type: 'string' }, email: { type: 'string' } } },
15
+ * flows: [{ title: 'Onboarding', steps: [{ collect: ['name', 'email'] }] }],
16
+ * });
17
+ * ```
18
+ *
19
+ * **Validates: Requirements 14.1–14.7**
20
+ */
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.createAgent = createAgent;
23
+ const Agent_js_1 = require("./Agent.js");
24
+ /**
25
+ * Create an Agent from a single options object.
26
+ *
27
+ * This is the recommended entry point for constructing agents in v2.
28
+ * Accepts the same options as `new Agent(options)` — `schema`, `provider`,
29
+ * `instructions`, `flows`, and everything else `AgentOptions` carries.
30
+ *
31
+ * Generic inference flows from `schema` through `flows[].steps[].collect`.
32
+ * Invalid `collect` references throw `FlowConfigurationError` at construction time.
33
+ *
34
+ * Post-construction flow registration is still available via `agent.createFlow(...)`.
35
+ */
36
+ function createAgent(options) {
37
+ return new Agent_js_1.Agent(options);
38
+ }
39
+ //# sourceMappingURL=createAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createAgent.js","sourceRoot":"","sources":["../../../src/core/createAgent.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;AAiBH,kCAIC;AAnBD,yCAAmC;AAGnC;;;;;;;;;;;GAWG;AACH,SAAgB,WAAW,CACvB,OAAsC;IAEtC,OAAO,IAAI,gBAAK,CAAkB,OAAO,CAAC,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * @falai/agent — Conversational state engine for TypeScript
3
+ *
4
+ * The AI understands. The code is in control.
5
+ */
6
+ export { Agent } from "./core/Agent.js";
7
+ export type { RespondParams, StreamOptions, GenerateOptions } from "./core/ResponseModal.js";
8
+ export { ResponseGenerationError } from "./core/ResponseGenerationError.js";
9
+ export type { EndedFlow } from "./types/agent.js";
10
+ export { createAgent } from "./core/createAgent.js";
11
+ export { Flow } from "./core/Flow.js";
12
+ export { Step, FlowConfigurationError } from "./core/Step.js";
13
+ export { flow } from "./core/flow-namespace.js";
14
+ export { adaptEvent, convertHistoryToEvents } from "./core/Events.js";
15
+ export { PersistenceManager } from "./core/PersistenceManager.js";
16
+ export { SessionManager } from "./core/SessionManager.js";
17
+ export { ToolManager, ToolCreationError, ToolExecutionError } from "./core/ToolManager.js";
18
+ export { NotImplementedError, SessionConflictError, ProviderError } from "./types/errors.js";
19
+ export type { ErrorKind } from "./types/errors.js";
20
+ export { GeminiProvider } from "./providers/GeminiProvider.js";
21
+ export type { GeminiProviderOptions } from "./providers/GeminiProvider.js";
22
+ export { OpenAIProvider } from "./providers/OpenAIProvider.js";
23
+ export type { OpenAIProviderOptions } from "./providers/OpenAIProvider.js";
24
+ export { OpenRouterProvider } from "./providers/OpenRouterProvider.js";
25
+ export type { OpenRouterProviderOptions } from "./providers/OpenRouterProvider.js";
26
+ export { ZaiProvider } from "./providers/ZaiProvider.js";
27
+ export type { ZaiProviderOptions } from "./providers/ZaiProvider.js";
28
+ export { AnthropicProvider } from "./providers/AnthropicProvider.js";
29
+ export type { AnthropicProviderOptions } from "./providers/AnthropicProvider.js";
30
+ export { DeepSeekProvider } from "./providers/DeepSeekProvider.js";
31
+ export type { DeepSeekProviderOptions } from "./providers/DeepSeekProvider.js";
32
+ export { FallbackAiProvider } from "./providers/FallbackAiProvider.js";
33
+ export type { FallbackAiProviderOptions } from "./providers/FallbackAiProvider.js";
34
+ export { OpenAICompatibleProvider } from "./providers/OpenAICompatibleProvider.js";
35
+ export type { JsonWithTools, OpenAICompatibleProviderInit, StructuredOutputMode, } from "./providers/OpenAICompatibleProvider.js";
36
+ export { createOpenAICompatibleProvider } from "./providers/GenericOpenAICompatibleProvider.js";
37
+ export type { OpenAICompatibleOptions } from "./providers/GenericOpenAICompatibleProvider.js";
38
+ export { ProviderAdapter, resolveRetryConfig } from "./providers/ProviderAdapter.js";
39
+ export type { JsonWithToolsProbe, ProbeOptions } from "@providerkit/core";
40
+ export type { ProviderAdapterInit, RequestConfig, RetryConfig, } from "./providers/ProviderAdapter.js";
41
+ export { PrismaAdapter } from "./adapters/PrismaAdapter.js";
42
+ export type { PrismaClient, FieldMappings, PrismaAdapterOptions, } from "./adapters/PrismaAdapter.js";
43
+ export { RedisAdapter } from "./adapters/RedisAdapter.js";
44
+ export type { RedisClient, RedisAdapterOptions } from "./adapters/RedisAdapter.js";
45
+ export { MongoAdapter } from "./adapters/MongoAdapter.js";
46
+ export type { MongoClient, MongoDatabase, MongoCollection, MongoAdapterOptions, } from "./adapters/MongoAdapter.js";
47
+ export { PostgreSQLAdapter } from "./adapters/PostgreSQLAdapter.js";
48
+ export type { PgClient, PgQueryResult, PostgreSQLAdapterOptions, } from "./adapters/PostgreSQLAdapter.js";
49
+ export { SQLiteAdapter } from "./adapters/SQLiteAdapter.js";
50
+ export type { SqliteDatabase, SqliteStatement, SQLiteAdapterOptions, } from "./adapters/SQLiteAdapter.js";
51
+ export { MemoryAdapter } from "./adapters/MemoryAdapter.js";
52
+ export { OpenSearchAdapter } from "./adapters/OpenSearchAdapter.js";
53
+ export type { OpenSearchClient, OpenSearchAdapterOptions, } from "./adapters/OpenSearchAdapter.js";
54
+ export { generateFlowId, generateStepId, generateToolId } from "./utils/id.js";
55
+ export { formatKnowledgeBase } from "./utils/template.js";
56
+ export { ConditionEvaluator, createConditionEvaluator, extractAIContextStrings, hasProgrammaticConditions } from "./utils/condition.js";
57
+ export { historyItemToEvent, historyToEvents, eventToHistoryItem, eventsToHistory, userMessage, assistantMessage, toolMessage, systemMessage, } from "./utils/history.js";
58
+ export type { AgentOptions, AgentCompactionConfig, AgentResponse, Term, Instruction, ScopedInstructions, AppliedInstruction, ContextLifecycleHooks, ContextProvider, HookContext, ExitReason, Event, EmittedEvent, MessageEventData, ToolEventData, StatusEventData, Participant, FlowRef, StepRef, FlowOptions, StepOptions, FlowLifecycleHooks, StepLifecycleHooks, SessionState, SignalsState, SignalTriggerState, Signal, SignalContext, SignalDirective, ResolvedSignalDirective, SignalPredicate, SignalPredicateContext, SignalFiring, SignalSchema, ToolContext, ToolResult, ToolHandler, Tool, ToolValidationResult, ToolPermissionResult, ToolCallRequest, ToolExecutionUpdate, CompactionOptions, CompactionResult, DataEnrichmentConfig, ValidationConfig, ValidationError, ApiCallConfig, ComputationConfig, ToolScope, AiProvider, ProviderCapabilities, GenerateMessageInput, GenerateMessageOutput, AgentStructuredResponse, ReasoningConfig, StructuredSchema, SessionData, MessageData, CollectedStateData, SessionStatus, SessionRepository, SessionUpdateOptions, MessageRepository, PersistenceConfig, CreateSessionOptions, SaveMessageOptions, AgentResponseStreamChunk, Role, HistoryItem, History, PersistenceAdapter, Template, TemplateContext, ConditionEvaluationResult, UserHistoryItem, AssistantHistoryItem, ToolHistoryItem, SystemHistoryItem, StoppedReason, PrepareResult, Directive, BranchEntry, BranchMap, BranchPredicate, BranchPredicateContext, ConditionPredicate, ConditionIf, ConditionWhen, } from "./types/index.js";
59
+ export { EventKind, MessageRole } from "./types/index.js";
60
+ export { restoreSession, createSession, createSessionId, createPersistedState, enterFlow, enterStep, completeCurrentFlow, isFlowCompletedThisSession, mergeCollected } from "./utils/index.js";
61
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ /**
3
+ * @falai/agent — Conversational state engine for TypeScript
4
+ *
5
+ * The AI understands. The code is in control.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.toolMessage = exports.assistantMessage = exports.userMessage = exports.eventsToHistory = exports.eventToHistoryItem = exports.historyToEvents = exports.historyItemToEvent = exports.hasProgrammaticConditions = exports.extractAIContextStrings = exports.createConditionEvaluator = exports.ConditionEvaluator = exports.formatKnowledgeBase = exports.generateToolId = exports.generateStepId = exports.generateFlowId = exports.OpenSearchAdapter = exports.MemoryAdapter = exports.SQLiteAdapter = exports.PostgreSQLAdapter = exports.MongoAdapter = exports.RedisAdapter = exports.PrismaAdapter = exports.resolveRetryConfig = exports.ProviderAdapter = exports.createOpenAICompatibleProvider = exports.OpenAICompatibleProvider = exports.FallbackAiProvider = exports.DeepSeekProvider = exports.AnthropicProvider = exports.ZaiProvider = exports.OpenRouterProvider = exports.OpenAIProvider = exports.GeminiProvider = exports.ProviderError = exports.SessionConflictError = exports.NotImplementedError = exports.ToolExecutionError = exports.ToolCreationError = exports.ToolManager = exports.SessionManager = exports.PersistenceManager = exports.convertHistoryToEvents = exports.adaptEvent = exports.flow = exports.FlowConfigurationError = exports.Step = exports.Flow = exports.createAgent = exports.ResponseGenerationError = exports.Agent = void 0;
9
+ exports.mergeCollected = exports.isFlowCompletedThisSession = exports.completeCurrentFlow = exports.enterStep = exports.enterFlow = exports.createPersistedState = exports.createSessionId = exports.createSession = exports.restoreSession = exports.MessageRole = exports.EventKind = exports.systemMessage = void 0;
10
+ // Core
11
+ var Agent_js_1 = require("./core/Agent.js");
12
+ Object.defineProperty(exports, "Agent", { enumerable: true, get: function () { return Agent_js_1.Agent; } });
13
+ var ResponseGenerationError_js_1 = require("./core/ResponseGenerationError.js");
14
+ Object.defineProperty(exports, "ResponseGenerationError", { enumerable: true, get: function () { return ResponseGenerationError_js_1.ResponseGenerationError; } });
15
+ var createAgent_js_1 = require("./core/createAgent.js");
16
+ Object.defineProperty(exports, "createAgent", { enumerable: true, get: function () { return createAgent_js_1.createAgent; } });
17
+ var Flow_js_1 = require("./core/Flow.js");
18
+ Object.defineProperty(exports, "Flow", { enumerable: true, get: function () { return Flow_js_1.Flow; } });
19
+ var Step_js_1 = require("./core/Step.js");
20
+ Object.defineProperty(exports, "Step", { enumerable: true, get: function () { return Step_js_1.Step; } });
21
+ Object.defineProperty(exports, "FlowConfigurationError", { enumerable: true, get: function () { return Step_js_1.FlowConfigurationError; } });
22
+ var flow_namespace_js_1 = require("./core/flow-namespace.js");
23
+ Object.defineProperty(exports, "flow", { enumerable: true, get: function () { return flow_namespace_js_1.flow; } });
24
+ var Events_js_1 = require("./core/Events.js");
25
+ Object.defineProperty(exports, "adaptEvent", { enumerable: true, get: function () { return Events_js_1.adaptEvent; } });
26
+ Object.defineProperty(exports, "convertHistoryToEvents", { enumerable: true, get: function () { return Events_js_1.convertHistoryToEvents; } });
27
+ var PersistenceManager_js_1 = require("./core/PersistenceManager.js");
28
+ Object.defineProperty(exports, "PersistenceManager", { enumerable: true, get: function () { return PersistenceManager_js_1.PersistenceManager; } });
29
+ var SessionManager_js_1 = require("./core/SessionManager.js");
30
+ Object.defineProperty(exports, "SessionManager", { enumerable: true, get: function () { return SessionManager_js_1.SessionManager; } });
31
+ var ToolManager_js_1 = require("./core/ToolManager.js");
32
+ Object.defineProperty(exports, "ToolManager", { enumerable: true, get: function () { return ToolManager_js_1.ToolManager; } });
33
+ Object.defineProperty(exports, "ToolCreationError", { enumerable: true, get: function () { return ToolManager_js_1.ToolCreationError; } });
34
+ Object.defineProperty(exports, "ToolExecutionError", { enumerable: true, get: function () { return ToolManager_js_1.ToolExecutionError; } });
35
+ var errors_js_1 = require("./types/errors.js");
36
+ Object.defineProperty(exports, "NotImplementedError", { enumerable: true, get: function () { return errors_js_1.NotImplementedError; } });
37
+ Object.defineProperty(exports, "SessionConflictError", { enumerable: true, get: function () { return errors_js_1.SessionConflictError; } });
38
+ Object.defineProperty(exports, "ProviderError", { enumerable: true, get: function () { return errors_js_1.ProviderError; } });
39
+ // Providers
40
+ var GeminiProvider_js_1 = require("./providers/GeminiProvider.js");
41
+ Object.defineProperty(exports, "GeminiProvider", { enumerable: true, get: function () { return GeminiProvider_js_1.GeminiProvider; } });
42
+ var OpenAIProvider_js_1 = require("./providers/OpenAIProvider.js");
43
+ Object.defineProperty(exports, "OpenAIProvider", { enumerable: true, get: function () { return OpenAIProvider_js_1.OpenAIProvider; } });
44
+ var OpenRouterProvider_js_1 = require("./providers/OpenRouterProvider.js");
45
+ Object.defineProperty(exports, "OpenRouterProvider", { enumerable: true, get: function () { return OpenRouterProvider_js_1.OpenRouterProvider; } });
46
+ var ZaiProvider_js_1 = require("./providers/ZaiProvider.js");
47
+ Object.defineProperty(exports, "ZaiProvider", { enumerable: true, get: function () { return ZaiProvider_js_1.ZaiProvider; } });
48
+ var AnthropicProvider_js_1 = require("./providers/AnthropicProvider.js");
49
+ Object.defineProperty(exports, "AnthropicProvider", { enumerable: true, get: function () { return AnthropicProvider_js_1.AnthropicProvider; } });
50
+ var DeepSeekProvider_js_1 = require("./providers/DeepSeekProvider.js");
51
+ Object.defineProperty(exports, "DeepSeekProvider", { enumerable: true, get: function () { return DeepSeekProvider_js_1.DeepSeekProvider; } });
52
+ var FallbackAiProvider_js_1 = require("./providers/FallbackAiProvider.js");
53
+ Object.defineProperty(exports, "FallbackAiProvider", { enumerable: true, get: function () { return FallbackAiProvider_js_1.FallbackAiProvider; } });
54
+ // Base class for building OpenAI-compatible providers (Groq, Together, etc.)
55
+ var OpenAICompatibleProvider_js_1 = require("./providers/OpenAICompatibleProvider.js");
56
+ Object.defineProperty(exports, "OpenAICompatibleProvider", { enumerable: true, get: function () { return OpenAICompatibleProvider_js_1.OpenAICompatibleProvider; } });
57
+ var GenericOpenAICompatibleProvider_js_1 = require("./providers/GenericOpenAICompatibleProvider.js");
58
+ Object.defineProperty(exports, "createOpenAICompatibleProvider", { enumerable: true, get: function () { return GenericOpenAICompatibleProvider_js_1.createOpenAICompatibleProvider; } });
59
+ // The bridge every provider above is built on — subclass it to bind any
60
+ // `@providerkit/core` provider to this framework's seam.
61
+ var ProviderAdapter_js_1 = require("./providers/ProviderAdapter.js");
62
+ Object.defineProperty(exports, "ProviderAdapter", { enumerable: true, get: function () { return ProviderAdapter_js_1.ProviderAdapter; } });
63
+ Object.defineProperty(exports, "resolveRetryConfig", { enumerable: true, get: function () { return ProviderAdapter_js_1.resolveRetryConfig; } });
64
+ // Adapters
65
+ var PrismaAdapter_js_1 = require("./adapters/PrismaAdapter.js");
66
+ Object.defineProperty(exports, "PrismaAdapter", { enumerable: true, get: function () { return PrismaAdapter_js_1.PrismaAdapter; } });
67
+ var RedisAdapter_js_1 = require("./adapters/RedisAdapter.js");
68
+ Object.defineProperty(exports, "RedisAdapter", { enumerable: true, get: function () { return RedisAdapter_js_1.RedisAdapter; } });
69
+ var MongoAdapter_js_1 = require("./adapters/MongoAdapter.js");
70
+ Object.defineProperty(exports, "MongoAdapter", { enumerable: true, get: function () { return MongoAdapter_js_1.MongoAdapter; } });
71
+ var PostgreSQLAdapter_js_1 = require("./adapters/PostgreSQLAdapter.js");
72
+ Object.defineProperty(exports, "PostgreSQLAdapter", { enumerable: true, get: function () { return PostgreSQLAdapter_js_1.PostgreSQLAdapter; } });
73
+ var SQLiteAdapter_js_1 = require("./adapters/SQLiteAdapter.js");
74
+ Object.defineProperty(exports, "SQLiteAdapter", { enumerable: true, get: function () { return SQLiteAdapter_js_1.SQLiteAdapter; } });
75
+ var MemoryAdapter_js_1 = require("./adapters/MemoryAdapter.js");
76
+ Object.defineProperty(exports, "MemoryAdapter", { enumerable: true, get: function () { return MemoryAdapter_js_1.MemoryAdapter; } });
77
+ var OpenSearchAdapter_js_1 = require("./adapters/OpenSearchAdapter.js");
78
+ Object.defineProperty(exports, "OpenSearchAdapter", { enumerable: true, get: function () { return OpenSearchAdapter_js_1.OpenSearchAdapter; } });
79
+ // Utils
80
+ var id_js_1 = require("./utils/id.js");
81
+ Object.defineProperty(exports, "generateFlowId", { enumerable: true, get: function () { return id_js_1.generateFlowId; } });
82
+ Object.defineProperty(exports, "generateStepId", { enumerable: true, get: function () { return id_js_1.generateStepId; } });
83
+ Object.defineProperty(exports, "generateToolId", { enumerable: true, get: function () { return id_js_1.generateToolId; } });
84
+ var template_js_1 = require("./utils/template.js");
85
+ Object.defineProperty(exports, "formatKnowledgeBase", { enumerable: true, get: function () { return template_js_1.formatKnowledgeBase; } });
86
+ var condition_js_1 = require("./utils/condition.js");
87
+ Object.defineProperty(exports, "ConditionEvaluator", { enumerable: true, get: function () { return condition_js_1.ConditionEvaluator; } });
88
+ Object.defineProperty(exports, "createConditionEvaluator", { enumerable: true, get: function () { return condition_js_1.createConditionEvaluator; } });
89
+ Object.defineProperty(exports, "extractAIContextStrings", { enumerable: true, get: function () { return condition_js_1.extractAIContextStrings; } });
90
+ Object.defineProperty(exports, "hasProgrammaticConditions", { enumerable: true, get: function () { return condition_js_1.hasProgrammaticConditions; } });
91
+ var history_js_1 = require("./utils/history.js");
92
+ Object.defineProperty(exports, "historyItemToEvent", { enumerable: true, get: function () { return history_js_1.historyItemToEvent; } });
93
+ Object.defineProperty(exports, "historyToEvents", { enumerable: true, get: function () { return history_js_1.historyToEvents; } });
94
+ Object.defineProperty(exports, "eventToHistoryItem", { enumerable: true, get: function () { return history_js_1.eventToHistoryItem; } });
95
+ Object.defineProperty(exports, "eventsToHistory", { enumerable: true, get: function () { return history_js_1.eventsToHistory; } });
96
+ Object.defineProperty(exports, "userMessage", { enumerable: true, get: function () { return history_js_1.userMessage; } });
97
+ Object.defineProperty(exports, "assistantMessage", { enumerable: true, get: function () { return history_js_1.assistantMessage; } });
98
+ Object.defineProperty(exports, "toolMessage", { enumerable: true, get: function () { return history_js_1.toolMessage; } });
99
+ Object.defineProperty(exports, "systemMessage", { enumerable: true, get: function () { return history_js_1.systemMessage; } });
100
+ var index_js_1 = require("./types/index.js");
101
+ Object.defineProperty(exports, "EventKind", { enumerable: true, get: function () { return index_js_1.EventKind; } });
102
+ Object.defineProperty(exports, "MessageRole", { enumerable: true, get: function () { return index_js_1.MessageRole; } });
103
+ var index_js_2 = require("./utils/index.js");
104
+ Object.defineProperty(exports, "restoreSession", { enumerable: true, get: function () { return index_js_2.restoreSession; } });
105
+ Object.defineProperty(exports, "createSession", { enumerable: true, get: function () { return index_js_2.createSession; } });
106
+ Object.defineProperty(exports, "createSessionId", { enumerable: true, get: function () { return index_js_2.createSessionId; } });
107
+ Object.defineProperty(exports, "createPersistedState", { enumerable: true, get: function () { return index_js_2.createPersistedState; } });
108
+ Object.defineProperty(exports, "enterFlow", { enumerable: true, get: function () { return index_js_2.enterFlow; } });
109
+ Object.defineProperty(exports, "enterStep", { enumerable: true, get: function () { return index_js_2.enterStep; } });
110
+ Object.defineProperty(exports, "completeCurrentFlow", { enumerable: true, get: function () { return index_js_2.completeCurrentFlow; } });
111
+ Object.defineProperty(exports, "isFlowCompletedThisSession", { enumerable: true, get: function () { return index_js_2.isFlowCompletedThisSession; } });
112
+ Object.defineProperty(exports, "mergeCollected", { enumerable: true, get: function () { return index_js_2.mergeCollected; } });
113
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;AAEH,OAAO;AACP,4CAAwC;AAA/B,iGAAA,KAAK,OAAA;AAEd,gFAA4E;AAAnE,qIAAA,uBAAuB,OAAA;AAEhC,wDAAoD;AAA3C,6GAAA,WAAW,OAAA;AACpB,0CAAsC;AAA7B,+FAAA,IAAI,OAAA;AACb,0CAA8D;AAArD,+FAAA,IAAI,OAAA;AAAE,iHAAA,sBAAsB,OAAA;AACrC,8DAAgD;AAAvC,yGAAA,IAAI,OAAA;AAEb,8CAAsE;AAA7D,uGAAA,UAAU,OAAA;AAAE,mHAAA,sBAAsB,OAAA;AAC3C,sEAAkE;AAAzD,2HAAA,kBAAkB,OAAA;AAC3B,8DAA0D;AAAjD,mHAAA,cAAc,OAAA;AACvB,wDAA2F;AAAlF,6GAAA,WAAW,OAAA;AAAE,mHAAA,iBAAiB,OAAA;AAAE,oHAAA,kBAAkB,OAAA;AAC3D,+CAA6F;AAApF,gHAAA,mBAAmB,OAAA;AAAE,iHAAA,oBAAoB,OAAA;AAAE,0GAAA,aAAa,OAAA;AAIjE,YAAY;AACZ,mEAA+D;AAAtD,mHAAA,cAAc,OAAA;AAEvB,mEAA+D;AAAtD,mHAAA,cAAc,OAAA;AAEvB,2EAAuE;AAA9D,2HAAA,kBAAkB,OAAA;AAE3B,6DAAyD;AAAhD,6GAAA,WAAW,OAAA;AAEpB,yEAAqE;AAA5D,yHAAA,iBAAiB,OAAA;AAE1B,uEAAmE;AAA1D,uHAAA,gBAAgB,OAAA;AAEzB,2EAAuE;AAA9D,2HAAA,kBAAkB,OAAA;AAE3B,6EAA6E;AAC7E,uFAAmF;AAA1E,uIAAA,wBAAwB,OAAA;AAMjC,qGAAgG;AAAvF,oJAAA,8BAA8B,OAAA;AAEvC,wEAAwE;AACxE,yDAAyD;AACzD,qEAAqF;AAA5E,qHAAA,eAAe,OAAA;AAAE,wHAAA,kBAAkB,OAAA;AAU5C,WAAW;AACX,gEAA4D;AAAnD,iHAAA,aAAa,OAAA;AAMtB,8DAA0D;AAAjD,+GAAA,YAAY,OAAA;AAErB,8DAA0D;AAAjD,+GAAA,YAAY,OAAA;AAOrB,wEAAoE;AAA3D,yHAAA,iBAAiB,OAAA;AAM1B,gEAA4D;AAAnD,iHAAA,aAAa,OAAA;AAMtB,gEAA4D;AAAnD,iHAAA,aAAa,OAAA;AACtB,wEAAoE;AAA3D,yHAAA,iBAAiB,OAAA;AAM1B,QAAQ;AACR,uCAA+E;AAAtE,uGAAA,cAAc,OAAA;AAAE,uGAAA,cAAc,OAAA;AAAE,uGAAA,cAAc,OAAA;AACvD,mDAA0D;AAAjD,kHAAA,mBAAmB,OAAA;AAC5B,qDAK8B;AAJ5B,kHAAA,kBAAkB,OAAA;AAClB,wHAAA,wBAAwB,OAAA;AACxB,uHAAA,uBAAuB,OAAA;AACvB,yHAAA,yBAAyB,OAAA;AAE3B,iDAS4B;AAR1B,gHAAA,kBAAkB,OAAA;AAClB,6GAAA,eAAe,OAAA;AACf,gHAAA,kBAAkB,OAAA;AAClB,6GAAA,eAAe,OAAA;AACf,yGAAA,WAAW,OAAA;AACX,8GAAA,gBAAgB,OAAA;AAChB,yGAAA,WAAW,OAAA;AACX,2GAAA,aAAa,OAAA;AAmGf,6CAA0D;AAAjD,qGAAA,SAAS,OAAA;AAAE,uGAAA,WAAW,OAAA;AAC/B,6CAA+L;AAAtL,0GAAA,cAAc,OAAA;AAAE,yGAAA,aAAa,OAAA;AAAE,2GAAA,eAAe,OAAA;AAAE,gHAAA,oBAAoB,OAAA;AAAE,qGAAA,SAAS,OAAA;AAAE,qGAAA,SAAS,OAAA;AAAE,+GAAA,mBAAmB,OAAA;AAAE,sHAAA,0BAA0B,OAAA;AAAE,0GAAA,cAAc,OAAA"}
@@ -0,0 +1 @@
1
+ {"type":"commonjs"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Anthropic (Claude).
3
+ *
4
+ * Anthropic has no native schema mode, so a structured request carries the
5
+ * schema as an extra system block — placed after the cached one, where a
6
+ * per-call schema cannot invalidate the system prompt's cache. That, the
7
+ * thinking budget, its 529, and its cache-token accounting all live in
8
+ * `@providerkit/core`; this file is the constructor.
9
+ */
10
+ import { type FallbackOptions, type Provider } from "@providerkit/core";
11
+ import type { AiProvider, ProviderCapabilities } from "../types/ai.js";
12
+ import { ProviderAdapter, type RequestConfig } from "./ProviderAdapter.js";
13
+ export interface AnthropicProviderOptions {
14
+ /** Anthropic API key */
15
+ apiKey: string;
16
+ /** Model to use (required) — e.g. "claude-sonnet-5" or "claude-opus-5" */
17
+ model: string;
18
+ /** Backup models to try if the primary fails (default: []) */
19
+ backupModels?: string[];
20
+ /** Fallback providers to try if this provider fails/exhausts */
21
+ fallbacks?: Array<AiProvider | Provider>;
22
+ fallbackOptions?: FallbackOptions<Provider>;
23
+ /** Any endpoint speaking the Anthropic Messages dialect. */
24
+ baseUrl?: string;
25
+ /** Request defaults sent with every call */
26
+ config?: RequestConfig;
27
+ /** Idle-stream deadline and retry budget */
28
+ retryConfig?: {
29
+ timeout?: number;
30
+ retries?: number;
31
+ };
32
+ /**
33
+ * Replacement `fetch`, for tests that script the wire.
34
+ *
35
+ * v3 note: this replaces the injected SDK client. There is no SDK now, so a
36
+ * test drives the same bytes the provider really receives rather than an
37
+ * SDK's idea of them.
38
+ */
39
+ fetchImpl?: typeof fetch;
40
+ }
41
+ export declare class AnthropicProvider extends ProviderAdapter {
42
+ readonly name = "anthropic";
43
+ readonly capabilities: ProviderCapabilities;
44
+ constructor(options: AnthropicProviderOptions);
45
+ }
46
+ //# sourceMappingURL=AnthropicProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnthropicProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/AnthropicProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAA2B,KAAK,eAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEjG,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE3E,MAAM,WAAW,wBAAwB;IACvC,wBAAwB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,gEAAgE;IAChE,SAAS,CAAC,EAAE,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC;IACzC,eAAe,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC5C,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,4CAA4C;IAC5C,WAAW,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAED,qBAAa,iBAAkB,SAAQ,eAAe;IACpD,SAAgB,IAAI,eAAe;IACnC,SAAgB,YAAY,EAAE,oBAAoB,CAMhD;gBAEU,OAAO,EAAE,wBAAwB;CAwB9C"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ /**
3
+ * Anthropic (Claude).
4
+ *
5
+ * Anthropic has no native schema mode, so a structured request carries the
6
+ * schema as an extra system block — placed after the cached one, where a
7
+ * per-call schema cannot invalidate the system prompt's cache. That, the
8
+ * thinking budget, its 529, and its cache-token accounting all live in
9
+ * `@providerkit/core`; this file is the constructor.
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AnthropicProvider = void 0;
13
+ const core_1 = require("@providerkit/core");
14
+ const ProviderAdapter_js_1 = require("./ProviderAdapter.js");
15
+ class AnthropicProvider extends ProviderAdapter_js_1.ProviderAdapter {
16
+ constructor(options) {
17
+ if (!options.apiKey)
18
+ throw new Error("Anthropic API key is required");
19
+ if (!options.model) {
20
+ throw new Error("Model is required. Example: 'claude-sonnet-5' or 'claude-opus-5'");
21
+ }
22
+ super({
23
+ provider: (0, core_1.createAnthropicProvider)({
24
+ apiKey: options.apiKey,
25
+ model: options.model,
26
+ id: "anthropic",
27
+ ...(options.baseUrl ? { baseUrl: options.baseUrl } : {}),
28
+ ...(options.config?.maxTokens ? { maxTokens: options.config.maxTokens } : {}),
29
+ ...(options.config?.effort ? { effort: options.config.effort } : {}),
30
+ ...(options.fetchImpl ? { fetchImpl: options.fetchImpl } : {}),
31
+ }),
32
+ model: options.model,
33
+ ...(options.config ? { defaults: options.config } : {}),
34
+ ...(options.backupModels ? { backupModels: options.backupModels } : {}),
35
+ ...(options.fallbacks ? { fallbacks: options.fallbacks } : {}),
36
+ ...(options.fallbackOptions ? { fallbackOptions: options.fallbackOptions } : {}),
37
+ ...(options.retryConfig ? { retryConfig: options.retryConfig } : {}),
38
+ });
39
+ this.name = "anthropic";
40
+ this.capabilities = {
41
+ supportsTools: true,
42
+ supportsNativeJsonSchema: false,
43
+ supportsStreaming: true,
44
+ supportsStreamingToolCalls: true,
45
+ supportsPromptCaching: true,
46
+ };
47
+ }
48
+ }
49
+ exports.AnthropicProvider = AnthropicProvider;
50
+ //# sourceMappingURL=AnthropicProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnthropicProvider.js","sourceRoot":"","sources":["../../../src/providers/AnthropicProvider.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH,4CAAiG;AAGjG,6DAA2E;AA4B3E,MAAa,iBAAkB,SAAQ,oCAAe;IAUpD,YAAY,OAAiC;QAC3C,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACtE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;QACtF,CAAC;QAED,KAAK,CAAC;YACJ,QAAQ,EAAE,IAAA,8BAAuB,EAAC;gBAChC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,EAAE,EAAE,WAAW;gBACf,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxD,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7E,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpE,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC/D,CAAC;YACF,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChF,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrE,CAAC,CAAC;QA/BW,SAAI,GAAG,WAAW,CAAC;QACnB,iBAAY,GAAyB;YACnD,aAAa,EAAE,IAAI;YACnB,wBAAwB,EAAE,KAAK;YAC/B,iBAAiB,EAAE,IAAI;YACvB,0BAA0B,EAAE,IAAI;YAChC,qBAAqB,EAAE,IAAI;SAC5B,CAAC;IAyBF,CAAC;CACF;AAlCD,8CAkCC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * DeepSeek (OpenAI-compatible). Its reasoning arrives on `reasoning_content`
3
+ * and its cache hits under `prompt_cache_hit_tokens`; both are read one layer
4
+ * down, where they are the dialect's business rather than this file's.
5
+ */
6
+ import type { AiProvider, ProviderCapabilities } from "../types/ai.js";
7
+ import { OpenAICompatibleProvider, type JsonWithTools } from "./OpenAICompatibleProvider.js";
8
+ import type { Provider } from "@providerkit/core";
9
+ import type { RequestConfig } from "./ProviderAdapter.js";
10
+ export interface DeepSeekProviderOptions {
11
+ /** DeepSeek API key */
12
+ apiKey: string;
13
+ /** Model to use (required) — e.g. "deepseek-chat", "deepseek-reasoner" */
14
+ model: string;
15
+ /** Backup models to try if the primary fails (default: []) */
16
+ backupModels?: string[];
17
+ /**
18
+ * Fallback providers, tried in order after this one fails or exhausts.
19
+ * Accepts both @falai/agent AiProviders (like ZaiProvider) and
20
+ * @providerkit/core Providers — the seam that makes a coding-plan primary
21
+ * degrade to anything else rather than fail the turn.
22
+ */
23
+ fallbacks?: Array<AiProvider | Provider>;
24
+ /** Custom base URL (default: "https://api.deepseek.com") */
25
+ baseURL?: string;
26
+ /** Request defaults sent with every call */
27
+ config?: RequestConfig;
28
+ /**
29
+ * See {@link JsonWithTools} — and reach for it here first. The measured
30
+ * DeepSeek flash models called a tool 0/5 with the schema on the response
31
+ * format, and narrated it instead.
32
+ */
33
+ jsonWithTools?: JsonWithTools;
34
+ /** Idle-stream deadline and retry budget */
35
+ retryConfig?: {
36
+ timeout?: number;
37
+ retries?: number;
38
+ };
39
+ /** Replacement `fetch`, for tests that script the wire. */
40
+ fetchImpl?: typeof fetch;
41
+ }
42
+ export declare class DeepSeekProvider extends OpenAICompatibleProvider {
43
+ readonly name = "deepseek";
44
+ readonly capabilities: ProviderCapabilities;
45
+ constructor(options: DeepSeekProviderOptions);
46
+ }
47
+ //# sourceMappingURL=DeepSeekProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeepSeekProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/DeepSeekProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,KAAK,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC7F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,WAAW,uBAAuB;IACtC,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC;IACzC,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB;;;;OAIG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,4CAA4C;IAC5C,WAAW,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,2DAA2D;IAC3D,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAED,qBAAa,gBAAiB,SAAQ,wBAAwB;IAC5D,SAAgB,IAAI,cAAc;IAClC,SAAgB,YAAY,EAAE,oBAAoB,CAMhD;gBAEU,OAAO,EAAE,uBAAuB;CAqB7C"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ /**
3
+ * DeepSeek (OpenAI-compatible). Its reasoning arrives on `reasoning_content`
4
+ * and its cache hits under `prompt_cache_hit_tokens`; both are read one layer
5
+ * down, where they are the dialect's business rather than this file's.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.DeepSeekProvider = void 0;
9
+ const OpenAICompatibleProvider_js_1 = require("./OpenAICompatibleProvider.js");
10
+ class DeepSeekProvider extends OpenAICompatibleProvider_js_1.OpenAICompatibleProvider {
11
+ constructor(options) {
12
+ if (!options.apiKey)
13
+ throw new Error("DeepSeek API key is required");
14
+ if (!options.model) {
15
+ throw new Error("Model is required. Example: 'deepseek-chat' or 'deepseek-reasoner'");
16
+ }
17
+ super({
18
+ id: "deepseek",
19
+ apiKey: options.apiKey,
20
+ baseUrl: options.baseURL ?? "https://api.deepseek.com",
21
+ model: options.model,
22
+ // No Responses API here; chat completions enforces the schema natively.
23
+ structuredOutput: "json_schema",
24
+ ...(options.jsonWithTools ? { jsonWithTools: options.jsonWithTools } : {}),
25
+ ...(options.backupModels ? { backupModels: options.backupModels } : {}),
26
+ ...(options.fallbacks ? { fallbacks: options.fallbacks } : {}),
27
+ ...(options.config ? { config: options.config } : {}),
28
+ ...(options.retryConfig ? { retryConfig: options.retryConfig } : {}),
29
+ ...(options.fetchImpl ? { fetchImpl: options.fetchImpl } : {}),
30
+ });
31
+ this.name = "deepseek";
32
+ this.capabilities = {
33
+ supportsTools: true,
34
+ supportsNativeJsonSchema: true,
35
+ supportsStreaming: true,
36
+ supportsStreamingToolCalls: true,
37
+ supportsPromptCaching: true,
38
+ };
39
+ }
40
+ }
41
+ exports.DeepSeekProvider = DeepSeekProvider;
42
+ //# sourceMappingURL=DeepSeekProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeepSeekProvider.js","sourceRoot":"","sources":["../../../src/providers/DeepSeekProvider.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAGH,+EAA6F;AAkC7F,MAAa,gBAAiB,SAAQ,sDAAwB;IAU5D,YAAY,OAAgC;QAC1C,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACrE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;QACxF,CAAC;QAED,KAAK,CAAC;YACJ,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,0BAA0B;YACtD,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,wEAAwE;YACxE,gBAAgB,EAAE,aAAa;YAC/B,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1E,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/D,CAAC,CAAC;QA5BW,SAAI,GAAG,UAAU,CAAC;QAClB,iBAAY,GAAyB;YACnD,aAAa,EAAE,IAAI;YACnB,wBAAwB,EAAE,IAAI;YAC9B,iBAAiB,EAAE,IAAI;YACvB,0BAA0B,EAAE,IAAI;YAChC,qBAAqB,EAAE,IAAI;SAC5B,CAAC;IAsBF,CAAC;CACF;AA/BD,4CA+BC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Fallback AI Provider: runs an ordered list of AiProviders.
3
+ *
4
+ * Each child AiProvider is tried in turn using `@providerkit/core`'s FallbackPool,
5
+ * preserving per-provider cooldowns (e.g. 5h or weekly rate limit / quota resets)
6
+ * across calls.
7
+ */
8
+ import { FallbackPool, type FallbackOptions, type ErrorKind } from "@providerkit/core";
9
+ import type { AgentStructuredResponse, AiProvider, GenerateMessageInput, GenerateMessageOutput, GenerateMessageStreamChunk, ProviderCapabilities } from "../types/ai.js";
10
+ export interface FallbackAiProviderOptions {
11
+ /** The ordered list of providers to try. The first is primary. */
12
+ providers: AiProvider[];
13
+ /** Optional cooldown configuration overrides. */
14
+ cooldownMs?: Partial<Record<ErrorKind, number | null>>;
15
+ /** Optional callback when a provider enters cooldown. */
16
+ onCooldown?: FallbackOptions<AiProvider>["onCooldown"];
17
+ }
18
+ export declare class FallbackAiProvider implements AiProvider {
19
+ readonly name: string;
20
+ readonly capabilities: ProviderCapabilities;
21
+ readonly pool: FallbackPool<AiProvider>;
22
+ constructor(options: FallbackAiProviderOptions);
23
+ generateMessage<TContext = unknown, TStructured = AgentStructuredResponse>(input: GenerateMessageInput<TContext>): Promise<GenerateMessageOutput<TStructured>>;
24
+ generateMessageStream<TContext = unknown, TStructured = AgentStructuredResponse>(input: GenerateMessageInput<TContext>): AsyncGenerator<GenerateMessageStreamChunk<TStructured>>;
25
+ }
26
+ //# sourceMappingURL=FallbackAiProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FallbackAiProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/FallbackAiProvider.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,SAAS,EACf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EACV,uBAAuB,EACvB,UAAU,EACV,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,oBAAoB,EACrB,MAAM,gBAAgB,CAAC;AAGxB,MAAM,WAAW,yBAAyB;IACxC,kEAAkE;IAClE,SAAS,EAAE,UAAU,EAAE,CAAC;IACxB,iDAAiD;IACjD,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;IACvD,yDAAyD;IACzD,UAAU,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC;CACxD;AAED,qBAAa,kBAAmB,YAAW,UAAU;IACnD,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,YAAY,EAAE,oBAAoB,CAAC;IACnD,SAAgB,IAAI,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;gBAEnC,OAAO,EAAE,yBAAyB;IAkCxC,eAAe,CAAC,QAAQ,GAAG,OAAO,EAAE,WAAW,GAAG,uBAAuB,EAC7E,KAAK,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GACpC,OAAO,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;IASvC,qBAAqB,CAAC,QAAQ,GAAG,OAAO,EAAE,WAAW,GAAG,uBAAuB,EACpF,KAAK,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GACpC,cAAc,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAC;CAQ3D"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ /**
3
+ * Fallback AI Provider: runs an ordered list of AiProviders.
4
+ *
5
+ * Each child AiProvider is tried in turn using `@providerkit/core`'s FallbackPool,
6
+ * preserving per-provider cooldowns (e.g. 5h or weekly rate limit / quota resets)
7
+ * across calls.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.FallbackAiProvider = void 0;
11
+ const core_1 = require("@providerkit/core");
12
+ const logger_js_1 = require("../utils/logger.js");
13
+ class FallbackAiProvider {
14
+ constructor(options) {
15
+ if (!options.providers || options.providers.length === 0) {
16
+ throw new Error("FallbackAiProvider requires at least one provider");
17
+ }
18
+ this.name = `fallback(${options.providers.map((p) => p.name).join("->")})`;
19
+ // Capabilities represent the intersection of supported critical features
20
+ // while inheriting primary's defaults.
21
+ this.capabilities = {
22
+ supportsTools: options.providers.every((p) => p.capabilities.supportsTools),
23
+ supportsNativeJsonSchema: options.providers.every((p) => p.capabilities.supportsNativeJsonSchema),
24
+ supportsStreaming: options.providers.every((p) => p.capabilities.supportsStreaming),
25
+ supportsStreamingToolCalls: options.providers.every((p) => p.capabilities.supportsStreamingToolCalls),
26
+ supportsPromptCaching: options.providers.every((p) => p.capabilities.supportsPromptCaching),
27
+ };
28
+ this.pool = new core_1.FallbackPool(options.providers, {
29
+ ...(options.cooldownMs ? { cooldownMs: options.cooldownMs } : {}),
30
+ onCooldown: (info) => {
31
+ logger_js_1.logger.warn(`[${this.name}] Provider "${info.candidate.name}" cooled down until ${new Date(info.retryAtMs).toISOString()} (${info.kind}${info.window ? ` / ${info.window}` : ""})`);
32
+ options.onCooldown?.(info);
33
+ },
34
+ });
35
+ }
36
+ async generateMessage(input) {
37
+ return this.pool.with(async (provider, signal) => {
38
+ return provider.generateMessage({
39
+ ...input,
40
+ signal,
41
+ });
42
+ }, input.signal);
43
+ }
44
+ async *generateMessageStream(input) {
45
+ yield* this.pool.stream(async function* (provider, signal) {
46
+ yield* provider.generateMessageStream({
47
+ ...input,
48
+ signal,
49
+ });
50
+ }, input.signal);
51
+ }
52
+ }
53
+ exports.FallbackAiProvider = FallbackAiProvider;
54
+ //# sourceMappingURL=FallbackAiProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FallbackAiProvider.js","sourceRoot":"","sources":["../../../src/providers/FallbackAiProvider.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,4CAI2B;AAU3B,kDAA4C;AAW5C,MAAa,kBAAkB;IAK7B,YAAY,OAAkC;QAC5C,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,YAAY,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAE3E,yEAAyE;QACzE,uCAAuC;QACvC,IAAI,CAAC,YAAY,GAAG;YAClB,aAAa,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC;YAC3E,wBAAwB,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,CAC/C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,wBAAwB,CAC/C;YACD,iBAAiB,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,iBAAiB,CAAC;YACnF,0BAA0B,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,CACjD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,0BAA0B,CACjD;YACD,qBAAqB,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,qBAAqB,CAAC;SAC5F,CAAC;QAEF,IAAI,CAAC,IAAI,GAAG,IAAI,mBAAY,CAAa,OAAO,CAAC,SAAS,EAAE;YAC1D,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE;gBACnB,kBAAM,CAAC,IAAI,CACT,IAAI,IAAI,CAAC,IAAI,eAAe,IAAI,CAAC,SAAS,CAAC,IAAI,uBAAuB,IAAI,IAAI,CAC5E,IAAI,CAAC,SAAS,CACf,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAC1E,CAAC;gBACF,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,KAAqC;QAErC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE;YAC/C,OAAO,QAAQ,CAAC,eAAe,CAAwB;gBACrD,GAAG,KAAK;gBACR,MAAM;aACP,CAAC,CAAC;QACL,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,CAAC,qBAAqB,CAC1B,KAAqC;QAErC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM;YACvD,KAAK,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAwB;gBAC3D,GAAG,KAAK;gBACR,MAAM;aACP,CAAC,CAAC;QACL,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC;CACF;AA5DD,gDA4DC"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Google Gemini.
3
+ *
4
+ * Thought signatures, the `functionResponse`-by-name pairing, implicit cache
5
+ * hits and the thinking levels are all in `@providerkit/core`, written against
6
+ * the REST API rather than the SDK.
7
+ *
8
+ * v3 sends a response schema alongside tools when a caller asks for both. v2
9
+ * dropped the schema in that case, from a 2024-era constraint that no longer
10
+ * holds — a sibling codebase runs the combination in production today.
11
+ */
12
+ import { type FallbackOptions, type Provider } from "@providerkit/core";
13
+ import type { AiProvider, ProviderCapabilities } from "../types/ai.js";
14
+ import type { JsonWithTools } from "./OpenAICompatibleProvider.js";
15
+ import { ProviderAdapter, type RequestConfig } from "./ProviderAdapter.js";
16
+ export interface GeminiProviderOptions {
17
+ /** Gemini API key */
18
+ apiKey: string;
19
+ /** Model to use (required) — e.g. "gemini-3.1-pro-preview" */
20
+ model: string;
21
+ /** Backup models to try if the primary fails (default: []) */
22
+ backupModels?: string[];
23
+ /** Fallback providers to try if this provider fails/exhausts */
24
+ fallbacks?: Array<AiProvider | Provider>;
25
+ fallbackOptions?: FallbackOptions<Provider>;
26
+ /** Any endpoint speaking the Gemini generateContent dialect. */
27
+ baseUrl?: string;
28
+ /**
29
+ * See {@link JsonWithTools}. The answer is the MODEL's, not the endpoint's:
30
+ * `gemini-3.5-flash` and `-flash-lite` called their tool under
31
+ * `responseJsonSchema` every time, while `gemini-3.8-flash` managed 3/10
32
+ * (2026-09-07). `probeJsonWithTools()` asks the one you serve.
33
+ */
34
+ jsonWithTools?: JsonWithTools;
35
+ /** Request defaults sent with every call */
36
+ config?: RequestConfig;
37
+ /** Idle-stream deadline and retry budget */
38
+ retryConfig?: {
39
+ timeout?: number;
40
+ retries?: number;
41
+ };
42
+ /** Replacement `fetch`, for tests that script the wire. Replaces v2's
43
+ * injected SDK client — see {@link AnthropicProviderOptions.fetchImpl}. */
44
+ fetchImpl?: typeof fetch;
45
+ }
46
+ export declare class GeminiProvider extends ProviderAdapter {
47
+ readonly name = "gemini";
48
+ readonly capabilities: ProviderCapabilities;
49
+ constructor(options: GeminiProviderOptions);
50
+ }
51
+ //# sourceMappingURL=GeminiProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeminiProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/GeminiProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAwB,KAAK,eAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE9F,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE3E,MAAM,WAAW,qBAAqB;IACpC,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,gEAAgE;IAChE,SAAS,CAAC,EAAE,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC;IACzC,eAAe,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC5C,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,4CAA4C;IAC5C,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,4CAA4C;IAC5C,WAAW,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD;gFAC4E;IAC5E,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAED,qBAAa,cAAe,SAAQ,eAAe;IACjD,SAAgB,IAAI,YAAY;IAChC,SAAgB,YAAY,EAAE,oBAAoB,CAMhD;gBAEU,OAAO,EAAE,qBAAqB;CAyB3C"}