@falai/agent 2.6.1 → 3.0.0
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.
- package/README.md +2 -2
- package/dist/adapters/MemoryAdapter.d.ts +1 -1
- package/dist/adapters/MemoryAdapter.d.ts.map +1 -1
- package/dist/adapters/MemoryAdapter.js +32 -36
- package/dist/adapters/MemoryAdapter.js.map +1 -1
- package/dist/adapters/MongoAdapter.d.ts +1 -1
- package/dist/adapters/MongoAdapter.d.ts.map +1 -1
- package/dist/adapters/MongoAdapter.js +2 -2
- package/dist/adapters/MongoAdapter.js.map +1 -1
- package/dist/adapters/OpenSearchAdapter.d.ts +1 -1
- package/dist/adapters/OpenSearchAdapter.d.ts.map +1 -1
- package/dist/adapters/OpenSearchAdapter.js +3 -3
- package/dist/adapters/OpenSearchAdapter.js.map +1 -1
- package/dist/adapters/PostgreSQLAdapter.d.ts +1 -1
- package/dist/adapters/PostgreSQLAdapter.d.ts.map +1 -1
- package/dist/adapters/PostgreSQLAdapter.js +18 -13
- package/dist/adapters/PostgreSQLAdapter.js.map +1 -1
- package/dist/adapters/PrismaAdapter.d.ts +1 -1
- package/dist/adapters/PrismaAdapter.d.ts.map +1 -1
- package/dist/adapters/PrismaAdapter.js +3 -3
- package/dist/adapters/PrismaAdapter.js.map +1 -1
- package/dist/adapters/RedisAdapter.d.ts +2 -1
- package/dist/adapters/RedisAdapter.d.ts.map +1 -1
- package/dist/adapters/RedisAdapter.js +77 -27
- package/dist/adapters/RedisAdapter.js.map +1 -1
- package/dist/adapters/SQLiteAdapter.d.ts +1 -1
- package/dist/adapters/SQLiteAdapter.d.ts.map +1 -1
- package/dist/adapters/SQLiteAdapter.js +9 -31
- package/dist/adapters/SQLiteAdapter.js.map +1 -1
- package/dist/adapters/index.d.ts +13 -13
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +7 -7
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/sessionRow.d.ts +22 -0
- package/dist/adapters/sessionRow.d.ts.map +1 -0
- package/dist/adapters/sessionRow.js +48 -0
- package/dist/adapters/sessionRow.js.map +1 -0
- package/dist/cjs/adapters/MemoryAdapter.d.ts +1 -1
- package/dist/cjs/adapters/MemoryAdapter.d.ts.map +1 -1
- package/dist/cjs/adapters/MemoryAdapter.js +39 -43
- package/dist/cjs/adapters/MemoryAdapter.js.map +1 -1
- package/dist/cjs/adapters/MongoAdapter.d.ts +1 -1
- package/dist/cjs/adapters/MongoAdapter.d.ts.map +1 -1
- package/dist/cjs/adapters/MongoAdapter.js +4 -4
- package/dist/cjs/adapters/MongoAdapter.js.map +1 -1
- package/dist/cjs/adapters/OpenSearchAdapter.d.ts +1 -1
- package/dist/cjs/adapters/OpenSearchAdapter.d.ts.map +1 -1
- package/dist/cjs/adapters/OpenSearchAdapter.js +6 -6
- package/dist/cjs/adapters/OpenSearchAdapter.js.map +1 -1
- package/dist/cjs/adapters/PostgreSQLAdapter.d.ts +1 -1
- package/dist/cjs/adapters/PostgreSQLAdapter.d.ts.map +1 -1
- package/dist/cjs/adapters/PostgreSQLAdapter.js +20 -15
- package/dist/cjs/adapters/PostgreSQLAdapter.js.map +1 -1
- package/dist/cjs/adapters/PrismaAdapter.d.ts +1 -1
- package/dist/cjs/adapters/PrismaAdapter.d.ts.map +1 -1
- package/dist/cjs/adapters/PrismaAdapter.js +7 -7
- package/dist/cjs/adapters/PrismaAdapter.js.map +1 -1
- package/dist/cjs/adapters/RedisAdapter.d.ts +2 -1
- package/dist/cjs/adapters/RedisAdapter.d.ts.map +1 -1
- package/dist/cjs/adapters/RedisAdapter.js +81 -31
- package/dist/cjs/adapters/RedisAdapter.js.map +1 -1
- package/dist/cjs/adapters/SQLiteAdapter.d.ts +1 -1
- package/dist/cjs/adapters/SQLiteAdapter.d.ts.map +1 -1
- package/dist/cjs/adapters/SQLiteAdapter.js +11 -33
- package/dist/cjs/adapters/SQLiteAdapter.js.map +1 -1
- package/dist/cjs/adapters/index.d.ts +13 -13
- package/dist/cjs/adapters/index.d.ts.map +1 -1
- package/dist/cjs/adapters/index.js +14 -14
- package/dist/cjs/adapters/index.js.map +1 -1
- package/dist/cjs/adapters/sessionRow.d.ts +22 -0
- package/dist/cjs/adapters/sessionRow.d.ts.map +1 -0
- package/dist/cjs/adapters/sessionRow.js +52 -0
- package/dist/cjs/adapters/sessionRow.js.map +1 -0
- package/dist/cjs/core/Agent.d.ts +19 -11
- package/dist/cjs/core/Agent.d.ts.map +1 -1
- package/dist/cjs/core/Agent.js +102 -64
- package/dist/cjs/core/Agent.js.map +1 -1
- package/dist/cjs/core/AutoChainExecutor.d.ts +12 -22
- package/dist/cjs/core/AutoChainExecutor.d.ts.map +1 -1
- package/dist/cjs/core/AutoChainExecutor.js +46 -49
- package/dist/cjs/core/AutoChainExecutor.js.map +1 -1
- package/dist/cjs/core/BranchEvaluator.d.ts +4 -4
- package/dist/cjs/core/BranchEvaluator.d.ts.map +1 -1
- package/dist/cjs/core/BranchEvaluator.js +6 -6
- package/dist/cjs/core/BranchEvaluator.js.map +1 -1
- package/dist/cjs/core/CompactionEngine.d.ts +16 -3
- package/dist/cjs/core/CompactionEngine.d.ts.map +1 -1
- package/dist/cjs/core/CompactionEngine.js +30 -6
- package/dist/cjs/core/CompactionEngine.js.map +1 -1
- package/dist/cjs/core/DirectiveChainTracker.d.ts +1 -1
- package/dist/cjs/core/DirectiveChainTracker.d.ts.map +1 -1
- package/dist/cjs/core/DirectiveChainTracker.js +5 -5
- package/dist/cjs/core/DirectiveChainTracker.js.map +1 -1
- package/dist/cjs/core/Events.d.ts +1 -1
- package/dist/cjs/core/Events.d.ts.map +1 -1
- package/dist/cjs/core/Events.js +15 -15
- package/dist/cjs/core/Events.js.map +1 -1
- package/dist/cjs/core/Flow.d.ts +4 -4
- package/dist/cjs/core/Flow.d.ts.map +1 -1
- package/dist/cjs/core/Flow.js +15 -15
- package/dist/cjs/core/Flow.js.map +1 -1
- package/dist/cjs/core/FlowRouter.d.ts +4 -4
- package/dist/cjs/core/FlowRouter.d.ts.map +1 -1
- package/dist/cjs/core/FlowRouter.js +92 -70
- package/dist/cjs/core/FlowRouter.js.map +1 -1
- package/dist/cjs/core/PersistenceManager.d.ts +1 -1
- package/dist/cjs/core/PersistenceManager.d.ts.map +1 -1
- package/dist/cjs/core/PersistenceManager.js +10 -10
- package/dist/cjs/core/PersistenceManager.js.map +1 -1
- package/dist/cjs/core/PromptComposer.d.ts +4 -4
- package/dist/cjs/core/PromptComposer.d.ts.map +1 -1
- package/dist/cjs/core/PromptComposer.js +13 -13
- package/dist/cjs/core/PromptComposer.js.map +1 -1
- package/dist/cjs/core/PromptSectionCache.d.ts +2 -2
- package/dist/cjs/core/PromptSectionCache.d.ts.map +1 -1
- package/dist/cjs/core/ResponseEngine.d.ts +4 -4
- package/dist/cjs/core/ResponseEngine.d.ts.map +1 -1
- package/dist/cjs/core/ResponseEngine.js +7 -7
- package/dist/cjs/core/ResponseEngine.js.map +1 -1
- package/dist/cjs/core/ResponseGenerationError.d.ts.map +1 -1
- package/dist/cjs/core/ResponseGenerationError.js +3 -5
- package/dist/cjs/core/ResponseGenerationError.js.map +1 -1
- package/dist/cjs/core/ResponseModal.d.ts +39 -10
- package/dist/cjs/core/ResponseModal.d.ts.map +1 -1
- package/dist/cjs/core/ResponseModal.js +195 -72
- package/dist/cjs/core/ResponseModal.js.map +1 -1
- package/dist/cjs/core/ResponsePipeline.d.ts +50 -12
- package/dist/cjs/core/ResponsePipeline.d.ts.map +1 -1
- package/dist/cjs/core/ResponsePipeline.js +301 -158
- package/dist/cjs/core/ResponsePipeline.js.map +1 -1
- package/dist/cjs/core/SessionFinalizer.d.ts +4 -4
- package/dist/cjs/core/SessionFinalizer.d.ts.map +1 -1
- package/dist/cjs/core/SessionFinalizer.js +36 -9
- package/dist/cjs/core/SessionFinalizer.js.map +1 -1
- package/dist/cjs/core/SessionManager.d.ts +15 -6
- package/dist/cjs/core/SessionManager.d.ts.map +1 -1
- package/dist/cjs/core/SessionManager.js +49 -22
- package/dist/cjs/core/SessionManager.js.map +1 -1
- package/dist/cjs/core/SignalCoordinator.d.ts +5 -5
- package/dist/cjs/core/SignalCoordinator.d.ts.map +1 -1
- package/dist/cjs/core/SignalCoordinator.js +12 -12
- package/dist/cjs/core/SignalCoordinator.js.map +1 -1
- package/dist/cjs/core/SignalEvaluator.d.ts +4 -4
- package/dist/cjs/core/SignalEvaluator.d.ts.map +1 -1
- package/dist/cjs/core/SignalEvaluator.js +6 -6
- package/dist/cjs/core/SignalEvaluator.js.map +1 -1
- package/dist/cjs/core/SignalProcessor.d.ts +6 -6
- package/dist/cjs/core/SignalProcessor.d.ts.map +1 -1
- package/dist/cjs/core/SignalProcessor.js +17 -89
- package/dist/cjs/core/SignalProcessor.js.map +1 -1
- package/dist/cjs/core/Step.d.ts +5 -5
- package/dist/cjs/core/Step.d.ts.map +1 -1
- package/dist/cjs/core/Step.js +65 -17
- package/dist/cjs/core/Step.js.map +1 -1
- package/dist/cjs/core/StepLifecycle.d.ts +18 -8
- package/dist/cjs/core/StepLifecycle.d.ts.map +1 -1
- package/dist/cjs/core/StepLifecycle.js +103 -20
- package/dist/cjs/core/StepLifecycle.js.map +1 -1
- package/dist/cjs/core/StreamingToolExecutor.d.ts +1 -1
- package/dist/cjs/core/StreamingToolExecutor.d.ts.map +1 -1
- package/dist/cjs/core/StreamingToolExecutor.js +30 -6
- package/dist/cjs/core/StreamingToolExecutor.js.map +1 -1
- package/dist/cjs/core/ToolLoopExecutor.d.ts +8 -4
- package/dist/cjs/core/ToolLoopExecutor.d.ts.map +1 -1
- package/dist/cjs/core/ToolLoopExecutor.js +189 -97
- package/dist/cjs/core/ToolLoopExecutor.js.map +1 -1
- package/dist/cjs/core/ToolManager.d.ts +6 -6
- package/dist/cjs/core/ToolManager.d.ts.map +1 -1
- package/dist/cjs/core/ToolManager.js +102 -79
- package/dist/cjs/core/ToolManager.js.map +1 -1
- package/dist/cjs/core/createAgent.d.ts +2 -2
- package/dist/cjs/core/createAgent.d.ts.map +1 -1
- package/dist/cjs/core/createAgent.js +2 -2
- package/dist/cjs/core/createAgent.js.map +1 -1
- package/dist/cjs/core/flow-namespace.d.ts +16 -1
- package/dist/cjs/core/flow-namespace.d.ts.map +1 -1
- package/dist/cjs/core/flow-namespace.js +26 -4
- package/dist/cjs/core/flow-namespace.js.map +1 -1
- package/dist/cjs/core/toolGates.d.ts +1 -1
- package/dist/cjs/core/toolGates.d.ts.map +1 -1
- package/dist/cjs/core/toolGates.js +3 -3
- package/dist/cjs/core/toolGates.js.map +1 -1
- package/dist/cjs/index.d.ts +50 -45
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +96 -88
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/providers/AnthropicProvider.d.ts +25 -35
- package/dist/cjs/providers/AnthropicProvider.d.ts.map +1 -1
- package/dist/cjs/providers/AnthropicProvider.js +30 -426
- package/dist/cjs/providers/AnthropicProvider.js.map +1 -1
- package/dist/cjs/providers/DeepSeekProvider.d.ts +13 -34
- package/dist/cjs/providers/DeepSeekProvider.d.ts.map +1 -1
- package/dist/cjs/providers/DeepSeekProvider.js +17 -51
- package/dist/cjs/providers/DeepSeekProvider.js.map +1 -1
- package/dist/cjs/providers/GeminiProvider.d.ts +22 -75
- package/dist/cjs/providers/GeminiProvider.d.ts.map +1 -1
- package/dist/cjs/providers/GeminiProvider.js +32 -558
- package/dist/cjs/providers/GeminiProvider.js.map +1 -1
- package/dist/cjs/providers/GenericOpenAICompatibleProvider.d.ts +9 -10
- package/dist/cjs/providers/GenericOpenAICompatibleProvider.d.ts.map +1 -1
- package/dist/cjs/providers/GenericOpenAICompatibleProvider.js +14 -20
- package/dist/cjs/providers/GenericOpenAICompatibleProvider.js.map +1 -1
- package/dist/cjs/providers/OpenAICompatibleProvider.d.ts +26 -135
- package/dist/cjs/providers/OpenAICompatibleProvider.d.ts.map +1 -1
- package/dist/cjs/providers/OpenAICompatibleProvider.js +40 -496
- package/dist/cjs/providers/OpenAICompatibleProvider.js.map +1 -1
- package/dist/cjs/providers/OpenAIProvider.d.ts +14 -20
- package/dist/cjs/providers/OpenAIProvider.d.ts.map +1 -1
- package/dist/cjs/providers/OpenAIProvider.js +21 -28
- package/dist/cjs/providers/OpenAIProvider.js.map +1 -1
- package/dist/cjs/providers/OpenRouterProvider.d.ts +20 -24
- package/dist/cjs/providers/OpenRouterProvider.d.ts.map +1 -1
- package/dist/cjs/providers/OpenRouterProvider.js +22 -38
- package/dist/cjs/providers/OpenRouterProvider.js.map +1 -1
- package/dist/cjs/providers/ProviderAdapter.d.ts +94 -0
- package/dist/cjs/providers/ProviderAdapter.d.ts.map +1 -0
- package/dist/cjs/providers/ProviderAdapter.js +257 -0
- package/dist/cjs/providers/ProviderAdapter.js.map +1 -0
- package/dist/cjs/providers/index.d.ts +21 -18
- package/dist/cjs/providers/index.d.ts.map +1 -1
- package/dist/cjs/providers/index.js +23 -21
- package/dist/cjs/providers/index.js.map +1 -1
- package/dist/cjs/types/agent.d.ts +37 -11
- package/dist/cjs/types/agent.d.ts.map +1 -1
- package/dist/cjs/types/ai.d.ts +11 -21
- package/dist/cjs/types/ai.d.ts.map +1 -1
- package/dist/cjs/types/compaction.d.ts +2 -2
- package/dist/cjs/types/compaction.d.ts.map +1 -1
- package/dist/cjs/types/errors.d.ts +16 -20
- package/dist/cjs/types/errors.d.ts.map +1 -1
- package/dist/cjs/types/errors.js +17 -18
- package/dist/cjs/types/errors.js.map +1 -1
- package/dist/cjs/types/flow.d.ts +56 -39
- package/dist/cjs/types/flow.d.ts.map +1 -1
- package/dist/cjs/types/history.d.ts +1 -1
- package/dist/cjs/types/history.d.ts.map +1 -1
- package/dist/cjs/types/index.d.ts +17 -17
- package/dist/cjs/types/index.d.ts.map +1 -1
- package/dist/cjs/types/index.js +14 -14
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/types/persistence.d.ts +2 -2
- package/dist/cjs/types/persistence.d.ts.map +1 -1
- package/dist/cjs/types/session.d.ts +4 -4
- package/dist/cjs/types/session.d.ts.map +1 -1
- package/dist/cjs/types/signals.d.ts +3 -3
- package/dist/cjs/types/signals.d.ts.map +1 -1
- package/dist/cjs/types/template.d.ts +2 -2
- package/dist/cjs/types/template.d.ts.map +1 -1
- package/dist/cjs/types/tool.d.ts +4 -2
- package/dist/cjs/types/tool.d.ts.map +1 -1
- package/dist/cjs/types/tool.js.map +1 -1
- package/dist/cjs/utils/condition.d.ts +1 -1
- package/dist/cjs/utils/condition.d.ts.map +1 -1
- package/dist/cjs/utils/condition.js +6 -6
- package/dist/cjs/utils/condition.js.map +1 -1
- package/dist/cjs/utils/event.d.ts +1 -1
- package/dist/cjs/utils/event.d.ts.map +1 -1
- package/dist/cjs/utils/event.js +2 -2
- package/dist/cjs/utils/event.js.map +1 -1
- package/dist/cjs/utils/history.d.ts +2 -2
- package/dist/cjs/utils/history.d.ts.map +1 -1
- package/dist/cjs/utils/history.js +15 -15
- package/dist/cjs/utils/history.js.map +1 -1
- package/dist/cjs/utils/index.d.ts +11 -13
- package/dist/cjs/utils/index.d.ts.map +1 -1
- package/dist/cjs/utils/index.js +57 -58
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/serialize.d.ts +17 -0
- package/dist/cjs/utils/serialize.d.ts.map +1 -1
- package/dist/cjs/utils/serialize.js +33 -0
- package/dist/cjs/utils/serialize.js.map +1 -1
- package/dist/cjs/utils/session.d.ts +23 -3
- package/dist/cjs/utils/session.d.ts.map +1 -1
- package/dist/cjs/utils/session.js +40 -8
- package/dist/cjs/utils/session.js.map +1 -1
- package/dist/cjs/utils/template.d.ts +3 -3
- package/dist/cjs/utils/template.d.ts.map +1 -1
- package/dist/cjs/utils/template.js +5 -5
- package/dist/cjs/utils/template.js.map +1 -1
- package/dist/constants/index.d.ts +1 -0
- package/dist/constants/index.js +1 -1
- package/dist/core/Agent.d.ts +19 -11
- package/dist/core/Agent.d.ts.map +1 -1
- package/dist/core/Agent.js +53 -15
- package/dist/core/Agent.js.map +1 -1
- package/dist/core/AutoChainExecutor.d.ts +12 -22
- package/dist/core/AutoChainExecutor.d.ts.map +1 -1
- package/dist/core/AutoChainExecutor.js +27 -30
- package/dist/core/AutoChainExecutor.js.map +1 -1
- package/dist/core/BranchEvaluator.d.ts +4 -4
- package/dist/core/BranchEvaluator.d.ts.map +1 -1
- package/dist/core/BranchEvaluator.js +2 -2
- package/dist/core/BranchEvaluator.js.map +1 -1
- package/dist/core/CompactionEngine.d.ts +16 -3
- package/dist/core/CompactionEngine.d.ts.map +1 -1
- package/dist/core/CompactionEngine.js +30 -6
- package/dist/core/CompactionEngine.js.map +1 -1
- package/dist/core/DirectiveChainTracker.d.ts +1 -1
- package/dist/core/DirectiveChainTracker.d.ts.map +1 -1
- package/dist/core/DirectiveChainTracker.js +2 -2
- package/dist/core/DirectiveChainTracker.js.map +1 -1
- package/dist/core/Events.d.ts +1 -1
- package/dist/core/Events.d.ts.map +1 -1
- package/dist/core/Events.js +1 -1
- package/dist/core/Events.js.map +1 -1
- package/dist/core/Flow.d.ts +4 -4
- package/dist/core/Flow.d.ts.map +1 -1
- package/dist/core/Flow.js +3 -3
- package/dist/core/Flow.js.map +1 -1
- package/dist/core/FlowRouter.d.ts +4 -4
- package/dist/core/FlowRouter.d.ts.map +1 -1
- package/dist/core/FlowRouter.js +36 -14
- package/dist/core/FlowRouter.js.map +1 -1
- package/dist/core/PersistenceManager.d.ts +1 -1
- package/dist/core/PersistenceManager.d.ts.map +1 -1
- package/dist/core/PersistenceManager.js +3 -3
- package/dist/core/PersistenceManager.js.map +1 -1
- package/dist/core/PromptComposer.d.ts +4 -4
- package/dist/core/PromptComposer.d.ts.map +1 -1
- package/dist/core/PromptComposer.js +3 -3
- package/dist/core/PromptComposer.js.map +1 -1
- package/dist/core/PromptSectionCache.d.ts +2 -2
- package/dist/core/PromptSectionCache.d.ts.map +1 -1
- package/dist/core/ResponseEngine.d.ts +4 -4
- package/dist/core/ResponseEngine.d.ts.map +1 -1
- package/dist/core/ResponseEngine.js +2 -2
- package/dist/core/ResponseEngine.js.map +1 -1
- package/dist/core/ResponseGenerationError.d.ts.map +1 -1
- package/dist/core/ResponseGenerationError.js +3 -5
- package/dist/core/ResponseGenerationError.js.map +1 -1
- package/dist/core/ResponseModal.d.ts +39 -10
- package/dist/core/ResponseModal.d.ts.map +1 -1
- package/dist/core/ResponseModal.js +152 -29
- package/dist/core/ResponseModal.js.map +1 -1
- package/dist/core/ResponsePipeline.d.ts +50 -12
- package/dist/core/ResponsePipeline.d.ts.map +1 -1
- package/dist/core/ResponsePipeline.js +232 -89
- package/dist/core/ResponsePipeline.js.map +1 -1
- package/dist/core/SessionFinalizer.d.ts +4 -4
- package/dist/core/SessionFinalizer.d.ts.map +1 -1
- package/dist/core/SessionFinalizer.js +32 -5
- package/dist/core/SessionFinalizer.js.map +1 -1
- package/dist/core/SessionManager.d.ts +15 -6
- package/dist/core/SessionManager.d.ts.map +1 -1
- package/dist/core/SessionManager.js +46 -19
- package/dist/core/SessionManager.js.map +1 -1
- package/dist/core/SignalCoordinator.d.ts +5 -5
- package/dist/core/SignalCoordinator.d.ts.map +1 -1
- package/dist/core/SignalCoordinator.js +2 -2
- package/dist/core/SignalCoordinator.js.map +1 -1
- package/dist/core/SignalEvaluator.d.ts +4 -4
- package/dist/core/SignalEvaluator.d.ts.map +1 -1
- package/dist/core/SignalEvaluator.js +2 -2
- package/dist/core/SignalEvaluator.js.map +1 -1
- package/dist/core/SignalProcessor.d.ts +6 -6
- package/dist/core/SignalProcessor.d.ts.map +1 -1
- package/dist/core/SignalProcessor.js +7 -79
- package/dist/core/SignalProcessor.js.map +1 -1
- package/dist/core/Step.d.ts +5 -5
- package/dist/core/Step.d.ts.map +1 -1
- package/dist/core/Step.js +53 -5
- package/dist/core/Step.js.map +1 -1
- package/dist/core/StepLifecycle.d.ts +18 -8
- package/dist/core/StepLifecycle.d.ts.map +1 -1
- package/dist/core/StepLifecycle.js +98 -15
- package/dist/core/StepLifecycle.js.map +1 -1
- package/dist/core/StreamingToolExecutor.d.ts +1 -1
- package/dist/core/StreamingToolExecutor.d.ts.map +1 -1
- package/dist/core/StreamingToolExecutor.js +29 -5
- package/dist/core/StreamingToolExecutor.js.map +1 -1
- package/dist/core/ToolLoopExecutor.d.ts +8 -4
- package/dist/core/ToolLoopExecutor.d.ts.map +1 -1
- package/dist/core/ToolLoopExecutor.js +157 -65
- package/dist/core/ToolLoopExecutor.js.map +1 -1
- package/dist/core/ToolManager.d.ts +6 -6
- package/dist/core/ToolManager.d.ts.map +1 -1
- package/dist/core/ToolManager.js +44 -21
- package/dist/core/ToolManager.js.map +1 -1
- package/dist/core/createAgent.d.ts +2 -2
- package/dist/core/createAgent.d.ts.map +1 -1
- package/dist/core/createAgent.js +1 -1
- package/dist/core/createAgent.js.map +1 -1
- package/dist/core/flow-namespace.d.ts +16 -1
- package/dist/core/flow-namespace.d.ts.map +1 -1
- package/dist/core/flow-namespace.js +23 -1
- package/dist/core/flow-namespace.js.map +1 -1
- package/dist/core/toolGates.d.ts +1 -1
- package/dist/core/toolGates.d.ts.map +1 -1
- package/dist/core/toolGates.js +1 -1
- package/dist/core/toolGates.js.map +1 -1
- package/dist/index.d.ts +50 -45
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +34 -30
- package/dist/index.js.map +1 -1
- package/dist/providers/AnthropicProvider.d.ts +25 -35
- package/dist/providers/AnthropicProvider.d.ts.map +1 -1
- package/dist/providers/AnthropicProvider.js +30 -423
- package/dist/providers/AnthropicProvider.js.map +1 -1
- package/dist/providers/DeepSeekProvider.d.ts +13 -34
- package/dist/providers/DeepSeekProvider.d.ts.map +1 -1
- package/dist/providers/DeepSeekProvider.js +16 -47
- package/dist/providers/DeepSeekProvider.js.map +1 -1
- package/dist/providers/GeminiProvider.d.ts +22 -75
- package/dist/providers/GeminiProvider.d.ts.map +1 -1
- package/dist/providers/GeminiProvider.js +32 -558
- package/dist/providers/GeminiProvider.js.map +1 -1
- package/dist/providers/GenericOpenAICompatibleProvider.d.ts +9 -10
- package/dist/providers/GenericOpenAICompatibleProvider.d.ts.map +1 -1
- package/dist/providers/GenericOpenAICompatibleProvider.js +13 -16
- package/dist/providers/GenericOpenAICompatibleProvider.js.map +1 -1
- package/dist/providers/OpenAICompatibleProvider.d.ts +26 -135
- package/dist/providers/OpenAICompatibleProvider.d.ts.map +1 -1
- package/dist/providers/OpenAICompatibleProvider.js +39 -495
- package/dist/providers/OpenAICompatibleProvider.js.map +1 -1
- package/dist/providers/OpenAIProvider.d.ts +14 -20
- package/dist/providers/OpenAIProvider.d.ts.map +1 -1
- package/dist/providers/OpenAIProvider.js +20 -24
- package/dist/providers/OpenAIProvider.js.map +1 -1
- package/dist/providers/OpenRouterProvider.d.ts +20 -24
- package/dist/providers/OpenRouterProvider.d.ts.map +1 -1
- package/dist/providers/OpenRouterProvider.js +21 -34
- package/dist/providers/OpenRouterProvider.js.map +1 -1
- package/dist/providers/ProviderAdapter.d.ts +94 -0
- package/dist/providers/ProviderAdapter.d.ts.map +1 -0
- package/dist/providers/ProviderAdapter.js +251 -0
- package/dist/providers/ProviderAdapter.js.map +1 -0
- package/dist/providers/index.d.ts +21 -18
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +13 -10
- package/dist/providers/index.js.map +1 -1
- package/dist/types/agent.d.ts +37 -11
- package/dist/types/agent.d.ts.map +1 -1
- package/dist/types/ai.d.ts +11 -21
- package/dist/types/ai.d.ts.map +1 -1
- package/dist/types/compaction.d.ts +2 -2
- package/dist/types/compaction.d.ts.map +1 -1
- package/dist/types/errors.d.ts +16 -20
- package/dist/types/errors.d.ts.map +1 -1
- package/dist/types/errors.js +15 -16
- package/dist/types/errors.js.map +1 -1
- package/dist/types/flow.d.ts +56 -39
- package/dist/types/flow.d.ts.map +1 -1
- package/dist/types/history.d.ts +1 -1
- package/dist/types/history.d.ts.map +1 -1
- package/dist/types/index.d.ts +17 -17
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +4 -4
- package/dist/types/index.js.map +1 -1
- package/dist/types/persistence.d.ts +2 -2
- package/dist/types/persistence.d.ts.map +1 -1
- package/dist/types/session.d.ts +4 -4
- package/dist/types/session.d.ts.map +1 -1
- package/dist/types/signals.d.ts +3 -3
- package/dist/types/signals.d.ts.map +1 -1
- package/dist/types/template.d.ts +2 -2
- package/dist/types/template.d.ts.map +1 -1
- package/dist/types/tool.d.ts +4 -2
- package/dist/types/tool.d.ts.map +1 -1
- package/dist/types/tool.js.map +1 -1
- package/dist/utils/condition.d.ts +1 -1
- package/dist/utils/condition.d.ts.map +1 -1
- package/dist/utils/condition.js +2 -2
- package/dist/utils/condition.js.map +1 -1
- package/dist/utils/event.d.ts +1 -1
- package/dist/utils/event.d.ts.map +1 -1
- package/dist/utils/event.js +1 -1
- package/dist/utils/event.js.map +1 -1
- package/dist/utils/history.d.ts +2 -2
- package/dist/utils/history.d.ts.map +1 -1
- package/dist/utils/history.js +1 -1
- package/dist/utils/history.js.map +1 -1
- package/dist/utils/index.d.ts +11 -13
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +11 -12
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/serialize.d.ts +17 -0
- package/dist/utils/serialize.d.ts.map +1 -1
- package/dist/utils/serialize.js +31 -0
- package/dist/utils/serialize.js.map +1 -1
- package/dist/utils/session.d.ts +23 -3
- package/dist/utils/session.d.ts.map +1 -1
- package/dist/utils/session.js +35 -6
- package/dist/utils/session.js.map +1 -1
- package/dist/utils/template.d.ts +3 -3
- package/dist/utils/template.d.ts.map +1 -1
- package/dist/utils/template.js +1 -1
- package/dist/utils/template.js.map +1 -1
- package/docs/concepts/architecture.md +3 -3
- package/docs/concepts/directives.md +1 -1
- package/docs/guides/error-handling.md +46 -45
- package/docs/guides/flow-control.md +8 -1
- package/docs/guides/instructions.md +15 -6
- package/docs/guides/persistence.md +12 -5
- package/docs/guides/streaming.md +10 -0
- package/docs/migration/README.md +4 -0
- package/docs/migration/v2-3-to-v2-4.md +4 -0
- package/docs/migration/v2-6-to-v2-7.md +246 -0
- package/docs/reference/adapters.md +15 -1
- package/docs/reference/branches.md +2 -0
- package/docs/reference/create-agent.md +28 -0
- package/docs/reference/directive.md +1 -1
- package/docs/reference/errors.md +30 -32
- package/docs/reference/providers.md +63 -60
- package/docs/reference/step.md +28 -21
- package/docs/reference/tool.md +14 -5
- package/docs/start/02-first-agent.md +8 -4
- package/docs/start/03-collect-data.md +19 -10
- package/examples/01-quickstart.ts +2 -2
- package/examples/02-data-extraction.ts +1 -1
- package/examples/03-tools.ts +1 -1
- package/examples/04-instructions.ts +2 -2
- package/examples/05-branching.ts +3 -3
- package/examples/06-flow-control.ts +3 -3
- package/examples/07-streaming.ts +1 -1
- package/examples/08-persistence.ts +2 -2
- package/examples/09-signals.ts +1 -1
- package/examples/tsconfig.json +6 -3
- package/package.json +9 -7
- package/src/adapters/MemoryAdapter.ts +33 -37
- package/src/adapters/MongoAdapter.ts +3 -3
- package/src/adapters/OpenSearchAdapter.ts +4 -4
- package/src/adapters/PostgreSQLAdapter.ts +26 -21
- package/src/adapters/PrismaAdapter.ts +4 -4
- package/src/adapters/RedisAdapter.ts +84 -37
- package/src/adapters/SQLiteAdapter.ts +13 -34
- package/src/adapters/index.ts +13 -13
- package/src/adapters/sessionRow.ts +57 -0
- package/src/core/Agent.ts +64 -18
- package/src/core/AutoChainExecutor.ts +44 -57
- package/src/core/BranchEvaluator.ts +5 -5
- package/src/core/CompactionEngine.ts +42 -8
- package/src/core/DirectiveChainTracker.ts +3 -3
- package/src/core/Events.ts +2 -2
- package/src/core/Flow.ts +9 -9
- package/src/core/FlowRouter.ts +46 -20
- package/src/core/PersistenceManager.ts +4 -4
- package/src/core/PromptComposer.ts +8 -8
- package/src/core/PromptSectionCache.ts +2 -2
- package/src/core/ResponseEngine.ts +6 -6
- package/src/core/ResponseGenerationError.ts +3 -6
- package/src/core/ResponseModal.ts +205 -39
- package/src/core/ResponsePipeline.ts +301 -107
- package/src/core/SessionFinalizer.ts +40 -10
- package/src/core/SessionManager.ts +61 -27
- package/src/core/SignalCoordinator.ts +7 -7
- package/src/core/SignalEvaluator.ts +6 -6
- package/src/core/SignalProcessor.ts +13 -93
- package/src/core/Step.ts +87 -10
- package/src/core/StepLifecycle.ts +129 -26
- package/src/core/StreamingToolExecutor.ts +33 -8
- package/src/core/ToolLoopExecutor.ts +206 -80
- package/src/core/ToolManager.ts +53 -26
- package/src/core/createAgent.ts +2 -2
- package/src/core/flow-namespace.ts +31 -2
- package/src/core/toolGates.ts +2 -2
- package/src/index.ts +59 -45
- package/src/providers/AnthropicProvider.ts +44 -595
- package/src/providers/DeepSeekProvider.ts +27 -92
- package/src/providers/GeminiProvider.ts +41 -752
- package/src/providers/GenericOpenAICompatibleProvider.ts +19 -27
- package/src/providers/OpenAICompatibleProvider.ts +58 -764
- package/src/providers/OpenAIProvider.ts +31 -55
- package/src/providers/OpenRouterProvider.ts +40 -70
- package/src/providers/ProviderAdapter.ts +368 -0
- package/src/providers/index.ts +21 -23
- package/src/types/agent.ts +36 -11
- package/src/types/ai.ts +11 -21
- package/src/types/compaction.ts +2 -2
- package/src/types/errors.ts +17 -35
- package/src/types/flow.ts +44 -46
- package/src/types/history.ts +1 -1
- package/src/types/index.ts +18 -17
- package/src/types/persistence.ts +2 -2
- package/src/types/session.ts +4 -4
- package/src/types/signals.ts +3 -3
- package/src/types/template.ts +2 -2
- package/src/types/tool.ts +4 -2
- package/src/utils/condition.ts +3 -3
- package/src/utils/event.ts +1 -1
- package/src/utils/history.ts +3 -3
- package/src/utils/index.ts +14 -15
- package/src/utils/serialize.ts +38 -0
- package/src/utils/session.ts +46 -9
- package/src/utils/template.ts +3 -3
- package/dist/cjs/core/DirectiveBus.d.ts +0 -88
- package/dist/cjs/core/DirectiveBus.d.ts.map +0 -1
- package/dist/cjs/core/DirectiveBus.js +0 -196
- package/dist/cjs/core/DirectiveBus.js.map +0 -1
- package/dist/cjs/providers/errorClassification.d.ts +0 -61
- package/dist/cjs/providers/errorClassification.d.ts.map +0 -1
- package/dist/cjs/providers/errorClassification.js +0 -123
- package/dist/cjs/providers/errorClassification.js.map +0 -1
- package/dist/cjs/utils/retry.d.ts +0 -67
- package/dist/cjs/utils/retry.d.ts.map +0 -1
- package/dist/cjs/utils/retry.js +0 -201
- package/dist/cjs/utils/retry.js.map +0 -1
- package/dist/core/DirectiveBus.d.ts +0 -88
- package/dist/core/DirectiveBus.d.ts.map +0 -1
- package/dist/core/DirectiveBus.js +0 -192
- package/dist/core/DirectiveBus.js.map +0 -1
- package/dist/providers/errorClassification.d.ts +0 -61
- package/dist/providers/errorClassification.d.ts.map +0 -1
- package/dist/providers/errorClassification.js +0 -116
- package/dist/providers/errorClassification.js.map +0 -1
- package/dist/utils/retry.d.ts +0 -67
- package/dist/utils/retry.d.ts.map +0 -1
- package/dist/utils/retry.js +0 -193
- package/dist/utils/retry.js.map +0 -1
- package/src/core/DirectiveBus.ts +0 -248
- package/src/providers/errorClassification.ts +0 -172
- package/src/utils/retry.ts +0 -274
|
@@ -1,36 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* OpenAI provider
|
|
3
|
+
* OpenAI provider. Structured output goes out on the Responses API, which
|
|
4
|
+
* enforces the schema natively.
|
|
4
5
|
*/
|
|
5
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
|
-
};
|
|
8
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
7
|
exports.OpenAIProvider = void 0;
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* OpenAI provider implementation with backup models and retry logic.
|
|
14
|
-
* Structured output uses the responses.parse API (native JSON schema).
|
|
15
|
-
*/
|
|
16
|
-
class OpenAIProvider extends OpenAICompatibleProvider_1.OpenAICompatibleProvider {
|
|
8
|
+
const OpenAICompatibleProvider_js_1 = require("./OpenAICompatibleProvider.js");
|
|
9
|
+
class OpenAIProvider extends OpenAICompatibleProvider_js_1.OpenAICompatibleProvider {
|
|
17
10
|
constructor(options) {
|
|
18
|
-
|
|
19
|
-
if (!apiKey) {
|
|
11
|
+
if (!options.apiKey)
|
|
20
12
|
throw new Error("OpenAI API key is required");
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
throw new Error("Model is required. Example: 'gpt-5.5' or 'gpt-5.4'");
|
|
24
|
-
}
|
|
13
|
+
if (!options.model)
|
|
14
|
+
throw new Error("Model is required. Example: 'gpt-5.6' or 'gpt-5.5'");
|
|
25
15
|
super({
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
16
|
+
id: "openai",
|
|
17
|
+
apiKey: options.apiKey,
|
|
18
|
+
model: options.model,
|
|
19
|
+
structuredOutput: "responses_parse",
|
|
20
|
+
...(options.organization
|
|
21
|
+
? { headers: { "OpenAI-Organization": options.organization } }
|
|
22
|
+
: {}),
|
|
23
|
+
...(options.backupModels ? { backupModels: options.backupModels } : {}),
|
|
24
|
+
...(options.config ? { config: options.config } : {}),
|
|
25
|
+
...(options.retryConfig ? { retryConfig: options.retryConfig } : {}),
|
|
26
|
+
...(options.fetchImpl ? { fetchImpl: options.fetchImpl } : {}),
|
|
34
27
|
});
|
|
35
28
|
this.name = "openai";
|
|
36
29
|
this.capabilities = {
|
|
@@ -38,10 +31,10 @@ class OpenAIProvider extends OpenAICompatibleProvider_1.OpenAICompatibleProvider
|
|
|
38
31
|
supportsNativeJsonSchema: true,
|
|
39
32
|
supportsStreaming: true,
|
|
40
33
|
supportsStreamingToolCalls: true,
|
|
41
|
-
|
|
34
|
+
// v3: the shape auto-caches repeated prefixes and now reports the hit
|
|
35
|
+
// count, which the old adapter never read.
|
|
36
|
+
supportsPromptCaching: true,
|
|
42
37
|
};
|
|
43
|
-
this.logLabel = "OPENAI";
|
|
44
|
-
this.displayName = "OpenAI";
|
|
45
38
|
}
|
|
46
39
|
}
|
|
47
40
|
exports.OpenAIProvider = OpenAIProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAIProvider.js","sourceRoot":"","sources":["../../../src/providers/OpenAIProvider.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"OpenAIProvider.js","sourceRoot":"","sources":["../../../src/providers/OpenAIProvider.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,+EAAyE;AAoBzE,MAAa,cAAe,SAAQ,sDAAwB;IAY1D,YAAY,OAA8B;QACxC,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QAE1F,KAAK,CAAC;YACJ,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,gBAAgB,EAAE,iBAAiB;YACnC,GAAG,CAAC,OAAO,CAAC,YAAY;gBACtB,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,qBAAqB,EAAE,OAAO,CAAC,YAAY,EAAE,EAAE;gBAC9D,CAAC,CAAC,EAAE,CAAC;YACP,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,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;QA3BW,SAAI,GAAG,QAAQ,CAAC;QAChB,iBAAY,GAAyB;YACnD,aAAa,EAAE,IAAI;YACnB,wBAAwB,EAAE,IAAI;YAC9B,iBAAiB,EAAE,IAAI;YACvB,0BAA0B,EAAE,IAAI;YAChC,sEAAsE;YACtE,2CAA2C;YAC3C,qBAAqB,EAAE,IAAI;SAC5B,CAAC;IAmBF,CAAC;CACF;AA9BD,wCA8BC"}
|
|
@@ -1,44 +1,40 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* OpenRouter
|
|
3
|
-
* OpenRouter provides access to multiple AI models through a unified OpenAI-compatible API
|
|
4
|
-
*/
|
|
5
|
-
import type { ProviderCapabilities } from "../types/ai";
|
|
6
|
-
import type { ErrorClassificationOptions } from "./errorClassification";
|
|
7
|
-
import { OpenAICompatibleProvider, type OpenAICompatibleRequestConfig } from "./OpenAICompatibleProvider";
|
|
8
|
-
/**
|
|
9
|
-
* Configuration options for OpenRouter provider
|
|
10
|
-
* Uses types from openai package (OpenRouter is OpenAI-compatible)
|
|
2
|
+
* OpenRouter — one OpenAI-compatible endpoint in front of many models.
|
|
11
3
|
*/
|
|
4
|
+
import type { ProviderCapabilities } from "../types/ai.js";
|
|
5
|
+
import { OpenAICompatibleProvider } from "./OpenAICompatibleProvider.js";
|
|
6
|
+
import type { RequestConfig } from "./ProviderAdapter.js";
|
|
12
7
|
export interface OpenRouterProviderOptions {
|
|
13
8
|
/** OpenRouter API key */
|
|
14
9
|
apiKey: string;
|
|
15
|
-
/** Model to use (required)
|
|
10
|
+
/** Model to use (required) — see https://openrouter.ai/models */
|
|
16
11
|
model: string;
|
|
17
|
-
/** Backup models to try if primary fails (default: []) */
|
|
12
|
+
/** Backup models to try if the primary fails (default: []) */
|
|
18
13
|
backupModels?: string[];
|
|
19
|
-
/**
|
|
14
|
+
/** Site URL for OpenRouter's rankings */
|
|
20
15
|
siteUrl?: string;
|
|
21
|
-
/**
|
|
16
|
+
/** App name for OpenRouter's rankings */
|
|
22
17
|
siteName?: string;
|
|
23
|
-
/**
|
|
24
|
-
|
|
25
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Preferred upstream hosts, in order. OpenRouter's prompt cache lives on the
|
|
20
|
+
* upstream host's account and default routing hops between them, so every hop
|
|
21
|
+
* is a cold cache — worse latency and a higher effective input cost across a
|
|
22
|
+
* conversation's rounds. Fallbacks stay on: this is a preference, not a lock.
|
|
23
|
+
*/
|
|
24
|
+
providerOrder?: string[];
|
|
25
|
+
/** Request defaults sent with every call */
|
|
26
|
+
config?: RequestConfig;
|
|
27
|
+
/** Idle-stream deadline and retry budget */
|
|
26
28
|
retryConfig?: {
|
|
27
29
|
timeout?: number;
|
|
28
30
|
retries?: number;
|
|
29
31
|
};
|
|
32
|
+
/** Replacement `fetch`, for tests that script the wire. */
|
|
33
|
+
fetchImpl?: typeof fetch;
|
|
30
34
|
}
|
|
31
|
-
/**
|
|
32
|
-
* OpenRouter provider implementation
|
|
33
|
-
* Provides access to multiple AI models through OpenRouter's unified API
|
|
34
|
-
*/
|
|
35
35
|
export declare class OpenRouterProvider extends OpenAICompatibleProvider {
|
|
36
36
|
readonly name = "openrouter";
|
|
37
37
|
readonly capabilities: ProviderCapabilities;
|
|
38
|
-
protected readonly logLabel = "OPENROUTER";
|
|
39
|
-
protected readonly displayName = "OpenRouter";
|
|
40
|
-
/** OpenRouter additionally reports capacity issues in error messages */
|
|
41
|
-
protected readonly classificationOptions: ErrorClassificationOptions;
|
|
42
38
|
constructor(options: OpenRouterProviderOptions);
|
|
43
39
|
}
|
|
44
40
|
//# sourceMappingURL=OpenRouterProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenRouterProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/OpenRouterProvider.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"OpenRouterProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/OpenRouterProvider.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,WAAW,yBAAyB;IACxC,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,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,2DAA2D;IAC3D,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAED,qBAAa,kBAAmB,SAAQ,wBAAwB;IAC9D,SAAgB,IAAI,gBAAgB;IACpC,SAAgB,YAAY,EAAE,oBAAoB,CAMhD;gBAEU,OAAO,EAAE,yBAAyB;CAuB/C"}
|
|
@@ -1,42 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* OpenRouter
|
|
4
|
-
* OpenRouter provides access to multiple AI models through a unified OpenAI-compatible API
|
|
3
|
+
* OpenRouter — one OpenAI-compatible endpoint in front of many models.
|
|
5
4
|
*/
|
|
6
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
-
};
|
|
9
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
6
|
exports.OpenRouterProvider = void 0;
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* OpenRouter provider implementation
|
|
15
|
-
* Provides access to multiple AI models through OpenRouter's unified API
|
|
16
|
-
*/
|
|
17
|
-
class OpenRouterProvider extends OpenAICompatibleProvider_1.OpenAICompatibleProvider {
|
|
7
|
+
const OpenAICompatibleProvider_js_1 = require("./OpenAICompatibleProvider.js");
|
|
8
|
+
class OpenRouterProvider extends OpenAICompatibleProvider_js_1.OpenAICompatibleProvider {
|
|
18
9
|
constructor(options) {
|
|
19
|
-
|
|
20
|
-
if (!apiKey) {
|
|
10
|
+
if (!options.apiKey)
|
|
21
11
|
throw new Error("OpenRouter API key is required");
|
|
22
|
-
|
|
23
|
-
if (!model) {
|
|
12
|
+
if (!options.model)
|
|
24
13
|
throw new Error("Model is required. See https://openrouter.ai/models");
|
|
25
|
-
}
|
|
26
|
-
// Initialize OpenAI client with OpenRouter base URL
|
|
27
14
|
super({
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
15
|
+
id: "openrouter",
|
|
16
|
+
apiKey: options.apiKey,
|
|
17
|
+
baseUrl: "https://openrouter.ai/api",
|
|
18
|
+
model: options.model,
|
|
19
|
+
// Chat completions rather than the Responses API: this gateway's
|
|
20
|
+
// json_schema passthrough is what its models actually support.
|
|
21
|
+
structuredOutput: "json_schema",
|
|
22
|
+
headers: {
|
|
23
|
+
...(options.siteUrl ? { "HTTP-Referer": options.siteUrl } : {}),
|
|
24
|
+
...(options.siteName ? { "X-Title": options.siteName } : {}),
|
|
25
|
+
},
|
|
26
|
+
...(options.providerOrder ? { providerOrder: options.providerOrder } : {}),
|
|
27
|
+
...(options.backupModels ? { backupModels: options.backupModels } : {}),
|
|
28
|
+
...(options.config ? { config: options.config } : {}),
|
|
29
|
+
...(options.retryConfig ? { retryConfig: options.retryConfig } : {}),
|
|
30
|
+
...(options.fetchImpl ? { fetchImpl: options.fetchImpl } : {}),
|
|
40
31
|
});
|
|
41
32
|
this.name = "openrouter";
|
|
42
33
|
this.capabilities = {
|
|
@@ -44,14 +35,7 @@ class OpenRouterProvider extends OpenAICompatibleProvider_1.OpenAICompatibleProv
|
|
|
44
35
|
supportsNativeJsonSchema: true,
|
|
45
36
|
supportsStreaming: true,
|
|
46
37
|
supportsStreamingToolCalls: true,
|
|
47
|
-
supportsPromptCaching:
|
|
48
|
-
};
|
|
49
|
-
this.logLabel = "OPENROUTER";
|
|
50
|
-
this.displayName = "OpenRouter";
|
|
51
|
-
/** OpenRouter additionally reports capacity issues in error messages */
|
|
52
|
-
this.classificationOptions = {
|
|
53
|
-
overloadedCodes: ["model_not_found", "model_overloaded"],
|
|
54
|
-
overloadedMessages: ["capacity"],
|
|
38
|
+
supportsPromptCaching: true,
|
|
55
39
|
};
|
|
56
40
|
}
|
|
57
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenRouterProvider.js","sourceRoot":"","sources":["../../../src/providers/OpenRouterProvider.ts"],"names":[],"mappings":";AAAA;;;
|
|
1
|
+
{"version":3,"file":"OpenRouterProvider.js","sourceRoot":"","sources":["../../../src/providers/OpenRouterProvider.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAGH,+EAAyE;AA6BzE,MAAa,kBAAmB,SAAQ,sDAAwB;IAU9D,YAAY,OAAkC;QAC5C,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACvE,IAAI,CAAC,OAAO,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QAE3F,KAAK,CAAC;YACJ,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,2BAA2B;YACpC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,iEAAiE;YACjE,+DAA+D;YAC/D,gBAAgB,EAAE,aAAa;YAC/B,OAAO,EAAE;gBACP,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC7D;YACD,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,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;QA9BW,SAAI,GAAG,YAAY,CAAC;QACpB,iBAAY,GAAyB;YACnD,aAAa,EAAE,IAAI;YACnB,wBAAwB,EAAE,IAAI;YAC9B,iBAAiB,EAAE,IAAI;YACvB,0BAA0B,EAAE,IAAI;YAChC,qBAAqB,EAAE,IAAI;SAC5B,CAAC;IAwBF,CAAC;CACF;AAjCD,gDAiCC"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The bridge between this framework's provider seam and `@providerkit/core`.
|
|
3
|
+
*
|
|
4
|
+
* The two seams are different shapes on purpose. Core speaks in normalized
|
|
5
|
+
* chunks — `createStream(messages, tools, opts)` — because that is the only
|
|
6
|
+
* shape every vendor's wire actually is. This framework speaks in whole turns:
|
|
7
|
+
* `generateMessage(input)` takes a composed prompt plus history and hands back
|
|
8
|
+
* a parsed structured response, because that is what a flow step needs.
|
|
9
|
+
*
|
|
10
|
+
* Everything vendor-specific now lives one layer down, so what is left here is
|
|
11
|
+
* exactly the translation and nothing else: history to messages, tools to tool
|
|
12
|
+
* definitions, chunks to an accumulated turn.
|
|
13
|
+
*
|
|
14
|
+
* Both entry points run the SAME pipeline. `generateMessage` is
|
|
15
|
+
* `generateMessageStream` drained — one code path for the streaming and
|
|
16
|
+
* non-streaming APIs, where there used to be two of everything per vendor and
|
|
17
|
+
* the pair drifted (the streaming path silently lost native schema enforcement
|
|
18
|
+
* because only the non-streaming one could reach `responses.parse`).
|
|
19
|
+
*/
|
|
20
|
+
import { type ChatMessage, type Provider } from "@providerkit/core";
|
|
21
|
+
import type { AgentStructuredResponse, AiProvider, GenerateMessageInput, GenerateMessageOutput, GenerateMessageStreamChunk, ProviderCapabilities } from "../types/ai.js";
|
|
22
|
+
import type { HistoryItem } from "../types/history.js";
|
|
23
|
+
/** Provider timeout (ms) + retry count, after defaults are applied. */
|
|
24
|
+
export interface RetryConfig {
|
|
25
|
+
/**
|
|
26
|
+
* How long a stream may stay SILENT before it is considered wedged.
|
|
27
|
+
*
|
|
28
|
+
* In v2 this was a total wall-clock cap on a non-streaming call, so a healthy
|
|
29
|
+
* but long generation died at the one-minute mark. It now bounds silence
|
|
30
|
+
* instead: time to the first byte, and the gap between any two after it. A
|
|
31
|
+
* request that never gets a reply still fails at the same moment; one that is
|
|
32
|
+
* steadily producing tokens is left alone.
|
|
33
|
+
*/
|
|
34
|
+
timeout: number;
|
|
35
|
+
/** Retries AFTER the first attempt, so `0` still performs one call. */
|
|
36
|
+
retries: number;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Normalize a provider's optional retry config against the defaults. `timeout`
|
|
40
|
+
* uses `||` (a 0ms timeout is degenerate — it would abort every call before it
|
|
41
|
+
* began), while `retries` uses `??` so an explicit `retries: 0` is honored
|
|
42
|
+
* rather than treated as unset.
|
|
43
|
+
*/
|
|
44
|
+
export declare function resolveRetryConfig(input?: {
|
|
45
|
+
timeout?: number;
|
|
46
|
+
retries?: number;
|
|
47
|
+
}): RetryConfig;
|
|
48
|
+
/**
|
|
49
|
+
* Request defaults sent with every call.
|
|
50
|
+
*
|
|
51
|
+
* Only the fields every supported shape has. In v2 each provider took its own
|
|
52
|
+
* vendor's SDK parameter type here — which is how one vendor's package ended
|
|
53
|
+
* up in the dependency tree of consumers who used a different vendor, and how
|
|
54
|
+
* a field set on one provider silently vanished on another.
|
|
55
|
+
*/
|
|
56
|
+
export interface RequestConfig {
|
|
57
|
+
temperature?: number;
|
|
58
|
+
topP?: number;
|
|
59
|
+
maxTokens?: number;
|
|
60
|
+
stopSequences?: string[];
|
|
61
|
+
}
|
|
62
|
+
export interface ProviderAdapterInit {
|
|
63
|
+
/** The `@providerkit/core` provider this adapter drives. */
|
|
64
|
+
provider: Provider;
|
|
65
|
+
model: string;
|
|
66
|
+
/**
|
|
67
|
+
* Sampling defaults for every call, overridden by anything the caller sets
|
|
68
|
+
* per turn. Only the fields every supported shape has: a knob one vendor
|
|
69
|
+
* alone understands belongs to that vendor's own client, not to a seam four
|
|
70
|
+
* of them share.
|
|
71
|
+
*/
|
|
72
|
+
defaults?: RequestConfig;
|
|
73
|
+
/** Tried in order after the primary. */
|
|
74
|
+
backupModels?: string[];
|
|
75
|
+
retryConfig?: {
|
|
76
|
+
timeout?: number;
|
|
77
|
+
retries?: number;
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/** History plus the composed prompt, as the seam's messages. */
|
|
81
|
+
export declare function toMessages(history: HistoryItem[], prompt: string): ChatMessage[];
|
|
82
|
+
export declare abstract class ProviderAdapter implements AiProvider {
|
|
83
|
+
abstract readonly name: string;
|
|
84
|
+
abstract readonly capabilities: ProviderCapabilities;
|
|
85
|
+
protected readonly provider: Provider;
|
|
86
|
+
protected readonly primaryModel: string;
|
|
87
|
+
protected readonly backupModels: string[];
|
|
88
|
+
protected readonly retryConfig: RetryConfig;
|
|
89
|
+
private readonly defaults;
|
|
90
|
+
protected constructor(init: ProviderAdapterInit);
|
|
91
|
+
generateMessage<TContext = unknown, TStructured = AgentStructuredResponse>(input: GenerateMessageInput<TContext>): Promise<GenerateMessageOutput<TStructured>>;
|
|
92
|
+
generateMessageStream<TContext = unknown, TStructured = AgentStructuredResponse>(input: GenerateMessageInput<TContext>): AsyncGenerator<GenerateMessageStreamChunk<TStructured>>;
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=ProviderAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProviderAdapter.d.ts","sourceRoot":"","sources":["../../../src/providers/ProviderAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EASL,KAAK,WAAW,EAEhB,KAAK,QAAQ,EAId,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EACV,uBAAuB,EACvB,UAAU,EACV,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,oBAAoB,EACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIvD,uEAAuE;AACvE,MAAM,WAAW,WAAW;IAC1B;;;;;;;;OAQG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;CACjB;AAID;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,WAAW,CAK9F;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,4DAA4D;IAC5D,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACtD;AAgBD,gEAAgE;AAChE,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,EAAE,CAuChF;AAsED,8BAAsB,eAAgB,YAAW,UAAU;IACzD,kBAAyB,IAAI,EAAE,MAAM,CAAC;IACtC,kBAAyB,YAAY,EAAE,oBAAoB,CAAC;IAE5D,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACtC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IACxC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAC1C,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;IAE3D,SAAS,aAAa,IAAI,EAAE,mBAAmB;IAQzC,eAAe,CAAC,QAAQ,GAAG,OAAO,EAAE,WAAW,GAAG,uBAAuB,EAC7E,KAAK,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GACpC,OAAO,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAWvC,qBAAqB,CAAC,QAAQ,GAAG,OAAO,EAAE,WAAW,GAAG,uBAAuB,EACpF,KAAK,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GACpC,cAAc,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAC;CAmG3D"}
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* The bridge between this framework's provider seam and `@providerkit/core`.
|
|
4
|
+
*
|
|
5
|
+
* The two seams are different shapes on purpose. Core speaks in normalized
|
|
6
|
+
* chunks — `createStream(messages, tools, opts)` — because that is the only
|
|
7
|
+
* shape every vendor's wire actually is. This framework speaks in whole turns:
|
|
8
|
+
* `generateMessage(input)` takes a composed prompt plus history and hands back
|
|
9
|
+
* a parsed structured response, because that is what a flow step needs.
|
|
10
|
+
*
|
|
11
|
+
* Everything vendor-specific now lives one layer down, so what is left here is
|
|
12
|
+
* exactly the translation and nothing else: history to messages, tools to tool
|
|
13
|
+
* definitions, chunks to an accumulated turn.
|
|
14
|
+
*
|
|
15
|
+
* Both entry points run the SAME pipeline. `generateMessage` is
|
|
16
|
+
* `generateMessageStream` drained — one code path for the streaming and
|
|
17
|
+
* non-streaming APIs, where there used to be two of everything per vendor and
|
|
18
|
+
* the pair drifted (the streaming path silently lost native schema enforcement
|
|
19
|
+
* because only the non-streaming one could reach `responses.parse`).
|
|
20
|
+
*/
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.ProviderAdapter = void 0;
|
|
23
|
+
exports.resolveRetryConfig = resolveRetryConfig;
|
|
24
|
+
exports.toMessages = toMessages;
|
|
25
|
+
const core_1 = require("@providerkit/core");
|
|
26
|
+
const completion_js_1 = require("../utils/completion.js");
|
|
27
|
+
const logger_js_1 = require("../utils/logger.js");
|
|
28
|
+
const DEFAULT_RETRY_CONFIG = { timeout: 60000, retries: 3 };
|
|
29
|
+
/**
|
|
30
|
+
* Normalize a provider's optional retry config against the defaults. `timeout`
|
|
31
|
+
* uses `||` (a 0ms timeout is degenerate — it would abort every call before it
|
|
32
|
+
* began), while `retries` uses `??` so an explicit `retries: 0` is honored
|
|
33
|
+
* rather than treated as unset.
|
|
34
|
+
*/
|
|
35
|
+
function resolveRetryConfig(input) {
|
|
36
|
+
return {
|
|
37
|
+
timeout: input?.timeout || DEFAULT_RETRY_CONFIG.timeout,
|
|
38
|
+
retries: input?.retries ?? DEFAULT_RETRY_CONFIG.retries,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* A model id the endpoint will not serve is grounds to try the next model on
|
|
43
|
+
* the list — that is what the list is FOR. Core's default is deliberately
|
|
44
|
+
* narrower (a throttle and an overload only), because there a typo'd model
|
|
45
|
+
* should fail loudly rather than quietly answer from a different one. Here the
|
|
46
|
+
* backup list is explicit and per-provider, so the wider reading is the right
|
|
47
|
+
* one: a gateway that has deprecated or cannot currently route the primary is
|
|
48
|
+
* routine, and falling through is exactly the intent.
|
|
49
|
+
*/
|
|
50
|
+
function shouldTryBackup(error) {
|
|
51
|
+
const kind = (0, core_1.classify)(error);
|
|
52
|
+
return (0, core_1.isBackupEligible)(kind) || kind === "model";
|
|
53
|
+
}
|
|
54
|
+
/** History plus the composed prompt, as the seam's messages. */
|
|
55
|
+
function toMessages(history, prompt) {
|
|
56
|
+
const out = [];
|
|
57
|
+
for (const item of history) {
|
|
58
|
+
switch (item.role) {
|
|
59
|
+
case "system":
|
|
60
|
+
out.push({ role: "system", content: item.content });
|
|
61
|
+
break;
|
|
62
|
+
case "user":
|
|
63
|
+
out.push({ role: "user", content: item.content });
|
|
64
|
+
break;
|
|
65
|
+
case "assistant":
|
|
66
|
+
out.push({
|
|
67
|
+
role: "assistant",
|
|
68
|
+
content: item.content ?? "",
|
|
69
|
+
...(item.tool_calls?.length
|
|
70
|
+
? {
|
|
71
|
+
toolCalls: item.tool_calls.map((call) => ({
|
|
72
|
+
id: call.id,
|
|
73
|
+
name: call.name,
|
|
74
|
+
// The seam carries raw JSON: arguments arrive in fragments and
|
|
75
|
+
// can be truncated mid-stream, so parsing is the consumer's.
|
|
76
|
+
arguments: JSON.stringify(call.arguments),
|
|
77
|
+
})),
|
|
78
|
+
}
|
|
79
|
+
: {}),
|
|
80
|
+
});
|
|
81
|
+
break;
|
|
82
|
+
case "tool":
|
|
83
|
+
out.push({
|
|
84
|
+
role: "tool",
|
|
85
|
+
toolCallId: item.tool_call_id,
|
|
86
|
+
name: item.name,
|
|
87
|
+
content: typeof item.content === "string" ? item.content : JSON.stringify(item.content),
|
|
88
|
+
});
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
out.push({ role: "user", content: prompt });
|
|
93
|
+
return out;
|
|
94
|
+
}
|
|
95
|
+
function toTools(tools) {
|
|
96
|
+
return (tools ?? []).map((tool) => ({
|
|
97
|
+
name: tool.name || tool.id,
|
|
98
|
+
description: tool.description ?? "",
|
|
99
|
+
inputSchema: (tool.parameters ?? { type: "object" }),
|
|
100
|
+
}));
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* A schema with nothing in it is not a request for JSON — it is a caller who
|
|
104
|
+
* has no schema. Sent as one it becomes a `json_schema` block with no `type`,
|
|
105
|
+
* which is a flat 400 on the shapes that enforce schemas.
|
|
106
|
+
*/
|
|
107
|
+
function toJsonOutput(input) {
|
|
108
|
+
const schema = input.parameters?.jsonSchema;
|
|
109
|
+
if (!schema || Object.keys(schema).length === 0)
|
|
110
|
+
return undefined;
|
|
111
|
+
return {
|
|
112
|
+
name: input.parameters?.schemaName || "structured_output",
|
|
113
|
+
schema: schema,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
function fold(acc, chunk) {
|
|
117
|
+
if (chunk.usage) {
|
|
118
|
+
acc.promptTokens = chunk.usage.inputTokens;
|
|
119
|
+
acc.completionTokens = chunk.usage.outputTokens;
|
|
120
|
+
acc.cachedInputTokens = chunk.usage.cachedInputTokens;
|
|
121
|
+
}
|
|
122
|
+
if (chunk.finishReason)
|
|
123
|
+
acc.finishReason = chunk.finishReason;
|
|
124
|
+
for (const call of chunk.toolCalls ?? []) {
|
|
125
|
+
const entry = acc.calls.get(call.index) ?? { name: "", arguments: "" };
|
|
126
|
+
if (call.name)
|
|
127
|
+
entry.name = call.name;
|
|
128
|
+
if (call.arguments)
|
|
129
|
+
entry.arguments += call.arguments;
|
|
130
|
+
acc.calls.set(call.index, entry);
|
|
131
|
+
}
|
|
132
|
+
if (!chunk.content)
|
|
133
|
+
return "";
|
|
134
|
+
acc.text += chunk.content;
|
|
135
|
+
return chunk.content;
|
|
136
|
+
}
|
|
137
|
+
function toolCallsOf(acc, label) {
|
|
138
|
+
const out = [];
|
|
139
|
+
for (const [, entry] of [...acc.calls.entries()].sort(([a], [b]) => a - b)) {
|
|
140
|
+
if (!entry.name)
|
|
141
|
+
continue;
|
|
142
|
+
let args = {};
|
|
143
|
+
try {
|
|
144
|
+
if (entry.arguments)
|
|
145
|
+
args = JSON.parse(entry.arguments);
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
logger_js_1.logger.warn(`[${label}] Failed to parse tool call arguments:`, error);
|
|
149
|
+
}
|
|
150
|
+
out.push({ toolName: entry.name, arguments: args });
|
|
151
|
+
}
|
|
152
|
+
return out;
|
|
153
|
+
}
|
|
154
|
+
class ProviderAdapter {
|
|
155
|
+
constructor(init) {
|
|
156
|
+
this.defaults = init.defaults;
|
|
157
|
+
this.provider = init.provider;
|
|
158
|
+
this.primaryModel = init.model;
|
|
159
|
+
this.backupModels = init.backupModels ?? [];
|
|
160
|
+
this.retryConfig = resolveRetryConfig(init.retryConfig);
|
|
161
|
+
}
|
|
162
|
+
async generateMessage(input) {
|
|
163
|
+
let last;
|
|
164
|
+
for await (const chunk of this.generateMessageStream(input)) {
|
|
165
|
+
last = chunk;
|
|
166
|
+
}
|
|
167
|
+
// The stream always ends on its terminal chunk, and the empty-completion
|
|
168
|
+
// guard has already thrown if there was nothing in it.
|
|
169
|
+
if (!last)
|
|
170
|
+
throw new core_1.ProviderError(this.name, "overload", `${this.name}: no response`);
|
|
171
|
+
return { message: last.accumulated, metadata: last.metadata, structured: last.structured };
|
|
172
|
+
}
|
|
173
|
+
async *generateMessageStream(input) {
|
|
174
|
+
const messages = toMessages(input.history, input.prompt);
|
|
175
|
+
const tools = toTools(input.tools);
|
|
176
|
+
const json = toJsonOutput(input);
|
|
177
|
+
const acc = { text: "", model: this.primaryModel, calls: new Map() };
|
|
178
|
+
const opts = {
|
|
179
|
+
...this.defaults,
|
|
180
|
+
...(input.parameters?.maxOutputTokens !== undefined
|
|
181
|
+
? { maxTokens: input.parameters.maxOutputTokens }
|
|
182
|
+
: {}),
|
|
183
|
+
...(input.parameters?.reasoning?.effort ? { effort: input.parameters.reasoning.effort } : {}),
|
|
184
|
+
...(json ? { json } : {}),
|
|
185
|
+
};
|
|
186
|
+
const attempt = (model) => (0, core_1.withStreamRetry)((signal) => {
|
|
187
|
+
acc.model = model;
|
|
188
|
+
const watch = (0, core_1.streamWatch)({
|
|
189
|
+
provider: this.name,
|
|
190
|
+
idleMs: this.retryConfig.timeout,
|
|
191
|
+
signal,
|
|
192
|
+
});
|
|
193
|
+
return (0, core_1.requireContent)(this.name, (0, core_1.watchChunks)(watch, this.provider.createStream(messages, tools, {
|
|
194
|
+
...opts,
|
|
195
|
+
model,
|
|
196
|
+
signal: watch.signal,
|
|
197
|
+
})));
|
|
198
|
+
}, {
|
|
199
|
+
maxAttempts: this.retryConfig.retries + 1,
|
|
200
|
+
...(input.signal ? { signal: input.signal } : {}),
|
|
201
|
+
onRetry: ({ error, attempt: n }) => logger_js_1.logger.warn(`[${this.name}] ${model} attempt ${n} failed, retrying:`, error),
|
|
202
|
+
});
|
|
203
|
+
const stream = (0, core_1.streamWithBackupModels)(attempt, {
|
|
204
|
+
models: [this.primaryModel, ...this.backupModels],
|
|
205
|
+
shouldTryNext: shouldTryBackup,
|
|
206
|
+
onFallback: ({ model, position, total }) => logger_js_1.logger.warn(`[${this.name}] falling back to ${model} (${position}/${total})`),
|
|
207
|
+
});
|
|
208
|
+
for await (const chunk of stream) {
|
|
209
|
+
const delta = fold(acc, chunk);
|
|
210
|
+
if (delta)
|
|
211
|
+
yield { delta, accumulated: acc.text, done: false };
|
|
212
|
+
}
|
|
213
|
+
const toolCalls = toolCallsOf(acc, this.name);
|
|
214
|
+
let structured;
|
|
215
|
+
if (json && acc.text) {
|
|
216
|
+
try {
|
|
217
|
+
structured = JSON.parse(acc.text);
|
|
218
|
+
}
|
|
219
|
+
catch (error) {
|
|
220
|
+
logger_js_1.logger.warn(`[${this.name}] Failed to parse JSON response:`, error);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
if (toolCalls.length > 0) {
|
|
224
|
+
structured = {
|
|
225
|
+
...(structured ?? {}),
|
|
226
|
+
message: structured?.message || acc.text,
|
|
227
|
+
toolCalls,
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
// A parsed-but-blank message with no tool calls is as empty as no text. The
|
|
231
|
+
// stream guard upstream only knows about chunks; this one knows what the
|
|
232
|
+
// turn was FOR, and a turn that produced `{"message":""}` did not do it.
|
|
233
|
+
(0, completion_js_1.assertUsableCompletion)(structured, acc.text, toolCalls.length, this.name);
|
|
234
|
+
yield {
|
|
235
|
+
delta: "",
|
|
236
|
+
accumulated: acc.text,
|
|
237
|
+
done: true,
|
|
238
|
+
metadata: {
|
|
239
|
+
model: acc.model,
|
|
240
|
+
...(acc.finishReason ? { finishReason: acc.finishReason } : {}),
|
|
241
|
+
...(acc.promptTokens !== undefined
|
|
242
|
+
? {
|
|
243
|
+
tokensUsed: acc.promptTokens + (acc.completionTokens ?? 0),
|
|
244
|
+
promptTokens: acc.promptTokens,
|
|
245
|
+
completionTokens: acc.completionTokens,
|
|
246
|
+
// New in v3: the cache-hit subset of the prompt, which the old
|
|
247
|
+
// adapters never read and which is billed far cheaper.
|
|
248
|
+
cachedInputTokens: acc.cachedInputTokens,
|
|
249
|
+
}
|
|
250
|
+
: {}),
|
|
251
|
+
},
|
|
252
|
+
structured,
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
exports.ProviderAdapter = ProviderAdapter;
|
|
257
|
+
//# sourceMappingURL=ProviderAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProviderAdapter.js","sourceRoot":"","sources":["../../../src/providers/ProviderAdapter.ts"],"names":[],"mappings":"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"}
|