@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
|
@@ -14,27 +14,17 @@
|
|
|
14
14
|
*
|
|
15
15
|
* Implements Algorithm 1 from `.kiro/specs/auto-steps/design.md`.
|
|
16
16
|
*/
|
|
17
|
-
import type { SessionState } from "../types";
|
|
18
|
-
import type { Event } from "../types/history";
|
|
19
|
-
import { Step } from "./Step";
|
|
20
|
-
import { Flow } from "./Flow";
|
|
21
|
-
import type { StoppedReason } from "../types/flow";
|
|
17
|
+
import type { Directive, SessionState } from "../types/index.js";
|
|
18
|
+
import type { Event } from "../types/history.js";
|
|
19
|
+
import { Step } from "./Step.js";
|
|
20
|
+
import { Flow } from "./Flow.js";
|
|
21
|
+
import type { StoppedReason } from "../types/flow.js";
|
|
22
22
|
/**
|
|
23
23
|
* The directive-like object that `prepare` may return on auto-steps.
|
|
24
|
-
*
|
|
24
|
+
* A structural subset of Directive (pre-LLM + position fields), so results
|
|
25
|
+
* merge through the canonical Algorithm 4 (`flow.merge`).
|
|
25
26
|
*/
|
|
26
|
-
export
|
|
27
|
-
dataUpdate?: Record<string, unknown>;
|
|
28
|
-
contextUpdate?: Record<string, unknown>;
|
|
29
|
-
halt?: boolean;
|
|
30
|
-
reply?: string;
|
|
31
|
-
/** Position-changing: jump to a step within the current flow. */
|
|
32
|
-
goToStep?: string;
|
|
33
|
-
/** Position-changing: jump to another flow. */
|
|
34
|
-
goTo?: string;
|
|
35
|
-
/** Position-changing: mark the flow as complete. */
|
|
36
|
-
complete?: boolean;
|
|
37
|
-
}
|
|
27
|
+
export type AutoStepPrepareResult<TContext = unknown, TData = unknown> = Pick<Directive<TContext, TData>, "dataUpdate" | "contextUpdate" | "halt" | "reply" | "goToStep" | "goTo" | "complete">;
|
|
38
28
|
/**
|
|
39
29
|
* Result of running the auto-chain.
|
|
40
30
|
*/
|
|
@@ -42,7 +32,7 @@ export interface AutoChainResult<TContext = unknown, TData = unknown> {
|
|
|
42
32
|
/** The interactive step to hand off to the LLM path (undefined if chain ended without one). */
|
|
43
33
|
resolvedStep?: Step<TContext, TData>;
|
|
44
34
|
/** The merged directive from the halting auto-step's prepare (only set when stoppedReason = 'halt'). */
|
|
45
|
-
mergedDirective?: AutoStepPrepareResult
|
|
35
|
+
mergedDirective?: AutoStepPrepareResult<TContext, TData>;
|
|
46
36
|
/** Why the chain stopped, if it didn't reach an interactive step normally. */
|
|
47
37
|
stoppedReason?: StoppedReason;
|
|
48
38
|
/** Updated session after all auto-step state writes. */
|
|
@@ -80,13 +70,13 @@ export declare class AutoChainExecutor<TContext = unknown, TData = unknown> {
|
|
|
80
70
|
*/
|
|
81
71
|
run(params: AutoChainRunParams<TContext, TData>): Promise<AutoChainResult<TContext, TData>>;
|
|
82
72
|
/**
|
|
83
|
-
* Run
|
|
73
|
+
* Run the prepare hook for an auto-step, collecting any
|
|
84
74
|
* Directive return values (pre-LLM fields honored).
|
|
85
75
|
*/
|
|
86
76
|
private runStepHooks;
|
|
87
77
|
/**
|
|
88
|
-
* Merge two directive-like objects
|
|
89
|
-
*
|
|
78
|
+
* Merge two directive-like objects via the canonical Algorithm 4 merge —
|
|
79
|
+
* one algorithm shared with tools, hooks and signals.
|
|
90
80
|
*/
|
|
91
81
|
private mergeDirectives;
|
|
92
82
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoChainExecutor.d.ts","sourceRoot":"","sources":["../../../src/core/AutoChainExecutor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"AutoChainExecutor.d.ts","sourceRoot":"","sources":["../../../src/core/AutoChainExecutor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAA0B,IAAI,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,OAAO,KAAK,EACR,aAAa,EAIhB,MAAM,kBAAkB,CAAC;AAG1B;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,IAAI,IAAI,CACzE,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,EAC1B,YAAY,GAAG,eAAe,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,CACvF,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO;IAChE,+FAA+F;IAC/F,YAAY,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACrC,wGAAwG;IACxG,eAAe,CAAC,EAAE,qBAAqB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACzD,8EAA8E;IAC9E,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,wDAAwD;IACxD,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACrC,4EAA4E;IAC5E,mBAAmB,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,QAAQ,EAAE,KAAK;IAC/C,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IAC7B,OAAO,EAAE,QAAQ,CAAC;IAClB,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC5B,0EAA0E;IAC1E,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC;CACrB;AAED;;;;;;GAMG;AACH,qBAAa,iBAAiB,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,wBAAwB;IAE9D;;OAEG;IACG,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAwLjG;;;OAGG;YACW,YAAY;IAkC1B;;;OAGG;IACH,OAAO,CAAC,eAAe;IAUvB;;;;;;;OAOG;YACW,gBAAgB;IA6C9B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;CAe5B"}
|
|
@@ -17,10 +17,11 @@
|
|
|
17
17
|
*/
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
19
|
exports.AutoChainExecutor = void 0;
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
const
|
|
23
|
-
const
|
|
20
|
+
const Step_js_1 = require("./Step.js");
|
|
21
|
+
const flow_namespace_js_1 = require("./flow-namespace.js");
|
|
22
|
+
const index_js_1 = require("../utils/index.js");
|
|
23
|
+
const template_js_1 = require("../utils/template.js");
|
|
24
|
+
const condition_js_1 = require("../utils/condition.js");
|
|
24
25
|
/**
|
|
25
26
|
* Executes the auto-step chain for a single turn.
|
|
26
27
|
*
|
|
@@ -59,13 +60,13 @@ class AutoChainExecutor {
|
|
|
59
60
|
// Track visited steps for cap/cycle detection
|
|
60
61
|
visited.push(step.id);
|
|
61
62
|
if (visited.length > maxAutoStepsPerTurn) {
|
|
62
|
-
throw new
|
|
63
|
+
throw new Step_js_1.FlowConfigurationError(`[FlowConfigurationError] Auto-step chain exceeded limit: visited ${visited.length} steps which exceeds maxAutoStepsPerTurn (${maxAutoStepsPerTurn}). ` +
|
|
63
64
|
`Break the cycle or increase maxAutoStepsPerTurn. Visited: ${visited.join(' → ')}.`);
|
|
64
65
|
}
|
|
65
|
-
|
|
66
|
+
index_js_1.logger.debug(`[AutoChainExecutor] Processing auto-step: ${step.id} (${visited.length}/${maxAutoStepsPerTurn})`);
|
|
66
67
|
// STEP 1: skip evaluation (code-only predicates, OR semantics)
|
|
67
68
|
if (step.skip) {
|
|
68
|
-
const templateContext = (0,
|
|
69
|
+
const templateContext = (0, template_js_1.createTemplateContext)({
|
|
69
70
|
context,
|
|
70
71
|
data: session.data,
|
|
71
72
|
session,
|
|
@@ -73,13 +74,13 @@ class AutoChainExecutor {
|
|
|
73
74
|
});
|
|
74
75
|
const skipResult = await step.evaluateSkip(templateContext);
|
|
75
76
|
if (skipResult.shouldSkip) {
|
|
76
|
-
|
|
77
|
+
index_js_1.logger.debug(`[AutoChainExecutor] Skipping auto-step ${step.id} due to skip condition`);
|
|
77
78
|
const nextSteps = step.getTransitions();
|
|
78
79
|
if (nextSteps.length === 0) {
|
|
79
80
|
// Last step was skipped and has no successor → flow complete
|
|
80
81
|
return { stoppedReason: 'last_step', session };
|
|
81
82
|
}
|
|
82
|
-
session = (0,
|
|
83
|
+
session = (0, index_js_1.enterStep)(session, nextSteps[0].id, nextSteps[0].description);
|
|
83
84
|
continue;
|
|
84
85
|
}
|
|
85
86
|
}
|
|
@@ -88,7 +89,7 @@ class AutoChainExecutor {
|
|
|
88
89
|
const sessionData = (session.data || {});
|
|
89
90
|
const missing = step.requires.filter(field => sessionData[String(field)] === undefined);
|
|
90
91
|
if (missing.length > 0) {
|
|
91
|
-
throw new
|
|
92
|
+
throw new Step_js_1.FlowConfigurationError(`[FlowConfigurationError] Auto-step "${step.id}" missing required fields: fields [${missing.join(', ')}] must be populated before this step runs. ` +
|
|
92
93
|
`Ensure a preceding step or hook populates these fields.`);
|
|
93
94
|
}
|
|
94
95
|
}
|
|
@@ -97,17 +98,17 @@ class AutoChainExecutor {
|
|
|
97
98
|
// Apply state writes immediately so subsequent steps see them
|
|
98
99
|
if (merged) {
|
|
99
100
|
if (merged.dataUpdate && Object.keys(merged.dataUpdate).length > 0) {
|
|
100
|
-
session = (0,
|
|
101
|
-
|
|
101
|
+
session = (0, index_js_1.mergeCollected)(session, merged.dataUpdate);
|
|
102
|
+
index_js_1.logger.debug(`[AutoChainExecutor] Applied dataUpdate from step ${step.id}`);
|
|
102
103
|
}
|
|
103
104
|
if (merged.contextUpdate && Object.keys(merged.contextUpdate).length > 0) {
|
|
104
105
|
// contextUpdate is reserved for future agent-level application.
|
|
105
106
|
// The caller can read mergedDirective.contextUpdate and apply it externally.
|
|
106
|
-
|
|
107
|
+
index_js_1.logger.debug(`[AutoChainExecutor] contextUpdate from step ${step.id} will be applied by caller`);
|
|
107
108
|
}
|
|
108
109
|
// STEP 4: halt short-circuit
|
|
109
110
|
if (merged.halt) {
|
|
110
|
-
|
|
111
|
+
index_js_1.logger.debug(`[AutoChainExecutor] Halt directive from step ${step.id}`);
|
|
111
112
|
return {
|
|
112
113
|
resolvedStep: step,
|
|
113
114
|
mergedDirective: merged,
|
|
@@ -117,13 +118,27 @@ class AutoChainExecutor {
|
|
|
117
118
|
}
|
|
118
119
|
// STEP 5: position-changing directive (goToStep, goTo, complete)
|
|
119
120
|
if (merged.goToStep) {
|
|
120
|
-
|
|
121
|
+
// String form targets the current flow; object form carrying
|
|
122
|
+
// a different `flow` defers to the pipeline for cross-flow
|
|
123
|
+
// resolution (same as goTo).
|
|
124
|
+
const goTarget = typeof merged.goToStep === "string"
|
|
125
|
+
? { step: merged.goToStep, flowId: undefined }
|
|
126
|
+
: { step: merged.goToStep.step, flowId: merged.goToStep.flow };
|
|
127
|
+
if (goTarget.flowId && goTarget.flowId !== flow.id) {
|
|
128
|
+
return {
|
|
129
|
+
resolvedStep: step,
|
|
130
|
+
mergedDirective: merged,
|
|
131
|
+
stoppedReason: 'goto',
|
|
132
|
+
session,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
const targetStep = flow.getStep(goTarget.step);
|
|
121
136
|
if (!targetStep) {
|
|
122
|
-
throw new
|
|
137
|
+
throw new Step_js_1.FlowConfigurationError(`[FlowConfigurationError] Auto-step "${step.id}" goToStep targets unknown step: "${goTarget.step}" does not exist in the current flow. ` +
|
|
123
138
|
`Check the step id or use goTo to target a different flow.`);
|
|
124
139
|
}
|
|
125
|
-
session = (0,
|
|
126
|
-
|
|
140
|
+
session = (0, index_js_1.enterStep)(session, targetStep.id, targetStep.description);
|
|
141
|
+
index_js_1.logger.debug(`[AutoChainExecutor] Position directive goToStep → ${targetStep.id}`);
|
|
127
142
|
continue; // Re-enter loop at the new step (which may itself be auto)
|
|
128
143
|
}
|
|
129
144
|
if (merged.goTo) {
|
|
@@ -151,8 +166,8 @@ class AutoChainExecutor {
|
|
|
151
166
|
// Check if it resolves to a step in this flow
|
|
152
167
|
const targetStep = flow.getStep(branchTarget);
|
|
153
168
|
if (targetStep) {
|
|
154
|
-
session = (0,
|
|
155
|
-
|
|
169
|
+
session = (0, index_js_1.enterStep)(session, targetStep.id, targetStep.description);
|
|
170
|
+
index_js_1.logger.debug(`[AutoChainExecutor] Branch resolved → ${targetStep.id}`);
|
|
156
171
|
continue;
|
|
157
172
|
}
|
|
158
173
|
// Not a step in this flow — treat as a flow id, return to pipeline
|
|
@@ -169,27 +184,19 @@ class AutoChainExecutor {
|
|
|
169
184
|
const nextSteps = step.getTransitions();
|
|
170
185
|
if (nextSteps.length === 0) {
|
|
171
186
|
// Auto-step is the last step → flow completes
|
|
172
|
-
|
|
187
|
+
index_js_1.logger.debug(`[AutoChainExecutor] Auto-step ${step.id} is terminal — flow complete`);
|
|
173
188
|
return { stoppedReason: 'last_step', session };
|
|
174
189
|
}
|
|
175
190
|
// Take the first transition (linear advance)
|
|
176
|
-
session = (0,
|
|
191
|
+
session = (0, index_js_1.enterStep)(session, nextSteps[0].id, nextSteps[0].description);
|
|
177
192
|
}
|
|
178
193
|
}
|
|
179
194
|
/**
|
|
180
|
-
* Run
|
|
195
|
+
* Run the prepare hook for an auto-step, collecting any
|
|
181
196
|
* Directive return values (pre-LLM fields honored).
|
|
182
197
|
*/
|
|
183
198
|
async runStepHooks(step, session, context) {
|
|
184
199
|
let merged;
|
|
185
|
-
// onEnter (future hook — not yet in StepOptions, but handle if present)
|
|
186
|
-
const stepWithHooks = step;
|
|
187
|
-
if (typeof stepWithHooks.onEnter === 'function') {
|
|
188
|
-
const onEnterResult = await stepWithHooks.onEnter(context, session.data);
|
|
189
|
-
if (onEnterResult && typeof onEnterResult === 'object') {
|
|
190
|
-
merged = this.mergeDirectives(merged, onEnterResult);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
200
|
// prepare hook — for auto-steps, prepare may return a Directive with pre-LLM fields
|
|
194
201
|
if (step.prepare) {
|
|
195
202
|
if (typeof step.prepare === 'function') {
|
|
@@ -202,32 +209,22 @@ class AutoChainExecutor {
|
|
|
202
209
|
else {
|
|
203
210
|
// Tool reference (string or Tool object) — for auto-steps, tool-based
|
|
204
211
|
// prepare cannot return directives. Log a warning.
|
|
205
|
-
|
|
212
|
+
index_js_1.logger.warn(`[FlowConfigurationError] Auto-step "${step.id}" has a tool-based prepare: tool-based prepare on auto-steps cannot return directives. ` +
|
|
206
213
|
`Use a function-based prepare hook instead.`);
|
|
207
214
|
}
|
|
208
215
|
}
|
|
209
216
|
return merged;
|
|
210
217
|
}
|
|
211
218
|
/**
|
|
212
|
-
* Merge two directive-like objects
|
|
213
|
-
*
|
|
219
|
+
* Merge two directive-like objects via the canonical Algorithm 4 merge —
|
|
220
|
+
* one algorithm shared with tools, hooks and signals.
|
|
214
221
|
*/
|
|
215
222
|
mergeDirectives(base, incoming) {
|
|
216
223
|
if (!base)
|
|
217
224
|
return { ...incoming };
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
: base.dataUpdate,
|
|
222
|
-
contextUpdate: incoming.contextUpdate
|
|
223
|
-
? { ...(base.contextUpdate || {}), ...incoming.contextUpdate }
|
|
224
|
-
: base.contextUpdate,
|
|
225
|
-
halt: incoming.halt ?? base.halt,
|
|
226
|
-
reply: incoming.reply ?? base.reply,
|
|
227
|
-
goTo: incoming.goTo ?? base.goTo,
|
|
228
|
-
goToStep: incoming.goToStep ?? base.goToStep,
|
|
229
|
-
complete: incoming.complete ?? base.complete,
|
|
230
|
-
};
|
|
225
|
+
// AutoStepPrepareResult is a structural subset of Directive, so both
|
|
226
|
+
// sides flow through the canonical merge directly — no casts needed.
|
|
227
|
+
return flow_namespace_js_1.flow.merge(base, incoming);
|
|
231
228
|
}
|
|
232
229
|
/**
|
|
233
230
|
* Evaluate branches on an auto-step. Returns the target step/flow id
|
|
@@ -249,12 +246,12 @@ class AutoChainExecutor {
|
|
|
249
246
|
const predicateContext = {
|
|
250
247
|
data: session.data, context, session, history,
|
|
251
248
|
};
|
|
252
|
-
const allPassed = await (0,
|
|
249
|
+
const allPassed = await (0, condition_js_1.evaluateIfPredicates)(entry.if, predicateContext, "AutoChainExecutor");
|
|
253
250
|
if (!allPassed)
|
|
254
251
|
continue;
|
|
255
252
|
// If entry also has `when`, skip it in auto-step context (no LLM available)
|
|
256
253
|
if (entry.when) {
|
|
257
|
-
|
|
254
|
+
index_js_1.logger.debug(`[AutoChainExecutor] Branch entry has 'when' condition — ` +
|
|
258
255
|
`skipping AI evaluation in auto-step context`);
|
|
259
256
|
continue;
|
|
260
257
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutoChainExecutor.js","sourceRoot":"","sources":["../../../src/core/AutoChainExecutor.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAIH,
|
|
1
|
+
{"version":3,"file":"AutoChainExecutor.js","sourceRoot":"","sources":["../../../src/core/AutoChainExecutor.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,10 +7,10 @@
|
|
|
7
7
|
*
|
|
8
8
|
* @module BranchEvaluator
|
|
9
9
|
*/
|
|
10
|
-
import type { BranchMap, BranchPredicateContext, Directive } from "../types/flow";
|
|
11
|
-
import type { AiProvider } from "../types/ai";
|
|
12
|
-
import type { Event } from "../types/history";
|
|
13
|
-
import { type WhenConditionGroups } from "../utils/condition";
|
|
10
|
+
import type { BranchMap, BranchPredicateContext, Directive } from "../types/flow.js";
|
|
11
|
+
import type { AiProvider } from "../types/ai.js";
|
|
12
|
+
import type { Event } from "../types/history.js";
|
|
13
|
+
import { type WhenConditionGroups } from "../utils/condition.js";
|
|
14
14
|
/**
|
|
15
15
|
* The AI condition evaluator function signature.
|
|
16
16
|
* Accepts split condition strings and returns whether the condition passes:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BranchEvaluator.d.ts","sourceRoot":"","sources":["../../../src/core/BranchEvaluator.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACR,SAAS,EACT,sBAAsB,EACtB,SAAS,EACZ,MAAM,
|
|
1
|
+
{"version":3,"file":"BranchEvaluator.d.ts","sourceRoot":"","sources":["../../../src/core/BranchEvaluator.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACR,SAAS,EACT,sBAAsB,EACtB,SAAS,EACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAA6C,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5G;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,UAAU,EAAE,mBAAmB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAEzF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,GAAG,OAAO,EACzD,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,KAAK,EAAE,EAChB,OAAO,EAAE,QAAQ,GAClB,oBAAoB,CA+CtB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,EACtE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,EACpC,GAAG,EAAE,sBAAsB,CAAC,QAAQ,EAAE,KAAK,CAAC,EAC5C,UAAU,EAAE,oBAAoB,GACjC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC,CA2C1D"}
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.createAiConditionEvaluator = createAiConditionEvaluator;
|
|
13
13
|
exports.evaluateBranches = evaluateBranches;
|
|
14
|
-
const
|
|
15
|
-
const
|
|
14
|
+
const index_js_1 = require("../utils/index.js");
|
|
15
|
+
const condition_js_1 = require("../utils/condition.js");
|
|
16
16
|
/**
|
|
17
17
|
* Creates an `AiConditionEvaluator` bound to a provider and conversation context.
|
|
18
18
|
*
|
|
@@ -54,7 +54,7 @@ function createAiConditionEvaluator(provider, history, context) {
|
|
|
54
54
|
].join("\n");
|
|
55
55
|
const result = await provider.generateMessage({
|
|
56
56
|
prompt,
|
|
57
|
-
history: (0,
|
|
57
|
+
history: (0, index_js_1.eventsToHistory)(history),
|
|
58
58
|
context,
|
|
59
59
|
parameters: {
|
|
60
60
|
jsonSchema: {
|
|
@@ -98,14 +98,14 @@ async function evaluateBranches(branches, ctx, evaluateAi) {
|
|
|
98
98
|
}
|
|
99
99
|
// Code predicate first (free evaluation)
|
|
100
100
|
if (entry.if) {
|
|
101
|
-
const ifPassed = await (0,
|
|
101
|
+
const ifPassed = await (0, condition_js_1.evaluateIfPredicates)(entry.if, ctx, "BranchEvaluator");
|
|
102
102
|
if (!ifPassed) {
|
|
103
103
|
continue; // skip this entry; do NOT evaluate `when`
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
106
|
// AI condition (costs tokens — only reached if `if` passed or was absent)
|
|
107
107
|
if (entry.when) {
|
|
108
|
-
const conditions = (0,
|
|
108
|
+
const conditions = (0, condition_js_1.splitWhenConditions)(entry.when);
|
|
109
109
|
const aiResult = await evaluateAi(conditions);
|
|
110
110
|
if (!aiResult) {
|
|
111
111
|
continue; // skip this entry
|
|
@@ -118,7 +118,7 @@ async function evaluateBranches(branches, ctx, evaluateAi) {
|
|
|
118
118
|
return undefined;
|
|
119
119
|
}
|
|
120
120
|
catch (error) {
|
|
121
|
-
|
|
121
|
+
index_js_1.logger.error(`[BranchEvaluator] Error during branch evaluation: ${error instanceof Error ? error.message : String(error)}`);
|
|
122
122
|
return undefined;
|
|
123
123
|
}
|
|
124
124
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BranchEvaluator.js","sourceRoot":"","sources":["../../../src/core/BranchEvaluator.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AAuCH,gEAmDC;AAeD,4CA+CC;AA/ID,
|
|
1
|
+
{"version":3,"file":"BranchEvaluator.js","sourceRoot":"","sources":["../../../src/core/BranchEvaluator.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
* 3. micro_compact - compress verbose tool outputs inline (no LLM call)
|
|
8
8
|
* 4. auto_compact - summarize old messages via LLM provider
|
|
9
9
|
*/
|
|
10
|
-
import type { HistoryItem } from "../types/history";
|
|
11
|
-
import type { CompactionOptions, CompactionResult } from "../types/compaction";
|
|
10
|
+
import type { HistoryItem } from "../types/history.js";
|
|
11
|
+
import type { CompactionOptions, CompactionResult } from "../types/compaction.js";
|
|
12
12
|
export declare class CompactionEngine {
|
|
13
13
|
/**
|
|
14
14
|
* Validate CompactionOptions. Throws on invalid values.
|
|
@@ -45,6 +45,17 @@ export declare class CompactionEngine {
|
|
|
45
45
|
* On failure, returns null (caller should fall back).
|
|
46
46
|
*/
|
|
47
47
|
private static summarizeMessages;
|
|
48
|
+
/**
|
|
49
|
+
* Adjust the left edge of a preserved window so it never begins with an
|
|
50
|
+
* orphaned tool result — a role:'tool' message whose assistant tool_calls
|
|
51
|
+
* parent lies outside the window. Providers reject such histories at the
|
|
52
|
+
* next request.
|
|
53
|
+
*
|
|
54
|
+
* The preserve count is a target, not a hard guarantee: when the naive
|
|
55
|
+
* message-count boundary would split an assistant/tool pair, the window
|
|
56
|
+
* grows left just enough to keep the pair together.
|
|
57
|
+
*/
|
|
58
|
+
private static alignPreserveStart;
|
|
48
59
|
/**
|
|
49
60
|
* Aggressive truncation fallback: remove oldest messages (no LLM needed).
|
|
50
61
|
* Keeps only the most recent messages that fit within the token budget.
|
|
@@ -58,7 +69,9 @@ export declare class CompactionEngine {
|
|
|
58
69
|
* Layer 3 (micro_compact): Compress verbose tool outputs inline
|
|
59
70
|
* Layer 4 (auto_compact): Summarize old messages via LLM provider
|
|
60
71
|
*
|
|
61
|
-
* The last `preserveRecentCount` messages are NEVER modified or removed
|
|
72
|
+
* The last `preserveRecentCount` messages are NEVER modified or removed
|
|
73
|
+
* (the preserved window may extend slightly further left so it never
|
|
74
|
+
* splits an assistant/tool pair at its boundary).
|
|
62
75
|
*/
|
|
63
76
|
static checkAndCompact(history: HistoryItem[], options: CompactionOptions): Promise<CompactionResult>;
|
|
64
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CompactionEngine.d.ts","sourceRoot":"","sources":["../../../src/core/CompactionEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"CompactionEngine.d.ts","sourceRoot":"","sources":["../../../src/core/CompactionEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAElF,qBAAa,gBAAgB;IACzB;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IA4BxD;;;;;;OAMG;IACH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM;IAiBrD;;;;;;OAMG;IACH,MAAM,CAAC,qBAAqB,CACxB,OAAO,EAAE,WAAW,EAAE,EACtB,iBAAiB,EAAE,MAAM,GAC1B,WAAW,EAAE;IAkBhB;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IA2B3B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAc/B;;;OAGG;mBACkB,iBAAiB;IA+BtC;;;;;;;;;OASG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAWjC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAgCjC;;;;;;;;;;;OAWG;WACU,eAAe,CACxB,OAAO,EAAE,WAAW,EAAE,EACtB,OAAO,EAAE,iBAAiB,GAC3B,OAAO,CAAC,gBAAgB,CAAC;CAiG/B"}
|
|
@@ -143,6 +143,23 @@ class CompactionEngine {
|
|
|
143
143
|
return null;
|
|
144
144
|
}
|
|
145
145
|
}
|
|
146
|
+
/**
|
|
147
|
+
* Adjust the left edge of a preserved window so it never begins with an
|
|
148
|
+
* orphaned tool result — a role:'tool' message whose assistant tool_calls
|
|
149
|
+
* parent lies outside the window. Providers reject such histories at the
|
|
150
|
+
* next request.
|
|
151
|
+
*
|
|
152
|
+
* The preserve count is a target, not a hard guarantee: when the naive
|
|
153
|
+
* message-count boundary would split an assistant/tool pair, the window
|
|
154
|
+
* grows left just enough to keep the pair together.
|
|
155
|
+
*/
|
|
156
|
+
static alignPreserveStart(history, start) {
|
|
157
|
+
let aligned = Math.max(0, Math.min(start, history.length));
|
|
158
|
+
while (aligned > 0 && history[aligned].role === "tool") {
|
|
159
|
+
aligned--;
|
|
160
|
+
}
|
|
161
|
+
return aligned;
|
|
162
|
+
}
|
|
146
163
|
/**
|
|
147
164
|
* Aggressive truncation fallback: remove oldest messages (no LLM needed).
|
|
148
165
|
* Keeps only the most recent messages that fit within the token budget.
|
|
@@ -150,10 +167,12 @@ class CompactionEngine {
|
|
|
150
167
|
static aggressiveTruncate(history, options) {
|
|
151
168
|
const threshold = options.maxTokens * options.compactionThreshold;
|
|
152
169
|
const preserveCount = options.preserveRecentCount;
|
|
153
|
-
// Always preserve the last preserveRecentCount messages
|
|
154
|
-
|
|
170
|
+
// Always preserve the last ~preserveRecentCount messages (aligned so
|
|
171
|
+
// the window never opens on an orphaned tool result)
|
|
172
|
+
const preserveStart = CompactionEngine.alignPreserveStart(history, Math.max(0, history.length - preserveCount));
|
|
173
|
+
const preserved = history.slice(preserveStart);
|
|
155
174
|
// Try to keep as many older messages as fit within budget
|
|
156
|
-
const older = history.slice(0,
|
|
175
|
+
const older = history.slice(0, preserveStart);
|
|
157
176
|
const result = [];
|
|
158
177
|
// Add older messages from most recent backwards until we'd exceed budget
|
|
159
178
|
for (let i = older.length - 1; i >= 0; i--) {
|
|
@@ -175,7 +194,9 @@ class CompactionEngine {
|
|
|
175
194
|
* Layer 3 (micro_compact): Compress verbose tool outputs inline
|
|
176
195
|
* Layer 4 (auto_compact): Summarize old messages via LLM provider
|
|
177
196
|
*
|
|
178
|
-
* The last `preserveRecentCount` messages are NEVER modified or removed
|
|
197
|
+
* The last `preserveRecentCount` messages are NEVER modified or removed
|
|
198
|
+
* (the preserved window may extend slightly further left so it never
|
|
199
|
+
* splits an assistant/tool pair at its boundary).
|
|
179
200
|
*/
|
|
180
201
|
static async checkAndCompact(history, options) {
|
|
181
202
|
CompactionEngine.validateOptions(options);
|
|
@@ -219,8 +240,11 @@ class CompactionEngine {
|
|
|
219
240
|
};
|
|
220
241
|
}
|
|
221
242
|
// Layer 4: Auto-compact (summarize old messages via LLM)
|
|
222
|
-
|
|
223
|
-
|
|
243
|
+
// preserveRecentCount is a target, not a hard guarantee: the window's
|
|
244
|
+
// left edge is aligned so it never opens on an orphaned tool result.
|
|
245
|
+
const preserveStart = CompactionEngine.alignPreserveStart(microCompacted, Math.max(0, microCompacted.length - preserveCount));
|
|
246
|
+
const oldMessages = microCompacted.slice(0, preserveStart);
|
|
247
|
+
const recentMessages = microCompacted.slice(preserveStart);
|
|
224
248
|
const summary = await CompactionEngine.summarizeMessages(oldMessages, options);
|
|
225
249
|
if (summary !== null) {
|
|
226
250
|
const summaryItem = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CompactionEngine.js","sourceRoot":"","sources":["../../../src/core/CompactionEngine.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"CompactionEngine.js","sourceRoot":"","sources":["../../../src/core/CompactionEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DirectiveChainTracker.d.ts","sourceRoot":"","sources":["../../../src/core/DirectiveChainTracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"DirectiveChainTracker.d.ts","sourceRoot":"","sources":["../../../src/core/DirectiveChainTracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,sGAAsG;IACtG,WAAW,EAAE,MAAM,CAAC;IACpB,uFAAuF;IACvF,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,iBAAiB,EAAE,MAAM;IAIrC;;;;;;;;OAQG;IACH,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAkCtD,2BAA2B;IAC3B,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,sCAAsC;IACtC,IAAI,OAAO,IAAI,aAAa,CAAC,mBAAmB,CAAC,CAEhD;IAED,yEAAyE;IACzE,KAAK,IAAI,IAAI;CAGhB"}
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
*/
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
16
|
exports.DirectiveChainTracker = void 0;
|
|
17
|
-
const
|
|
18
|
-
const
|
|
17
|
+
const Step_js_1 = require("./Step.js");
|
|
18
|
+
const index_js_1 = require("../utils/index.js");
|
|
19
19
|
/**
|
|
20
20
|
* Tracks directive chain depth within a single turn.
|
|
21
21
|
* Create one instance per turn; discard at turn end.
|
|
@@ -39,7 +39,7 @@ class DirectiveChainTracker {
|
|
|
39
39
|
// Check if this is a chain breaker (abort)
|
|
40
40
|
if (directive.abort !== undefined) {
|
|
41
41
|
this.chain.push({ description, emitter });
|
|
42
|
-
|
|
42
|
+
index_js_1.logger.debug(`[DirectiveChainTracker] Chain breaker (abort) at depth ${this.chain.length}: ${description} from ${emitter}`);
|
|
43
43
|
return true; // Chain breaker — apply and stop
|
|
44
44
|
}
|
|
45
45
|
this.chain.push({ description, emitter });
|
|
@@ -47,12 +47,12 @@ class DirectiveChainTracker {
|
|
|
47
47
|
const chainDescription = this.chain
|
|
48
48
|
.map((entry, i) => ` ${i + 1}. ${entry.description} (from: ${entry.emitter})`)
|
|
49
49
|
.join("\n");
|
|
50
|
-
throw new
|
|
50
|
+
throw new Step_js_1.FlowConfigurationError(`[FlowConfigurationError] Directive chain cycle detected: ` +
|
|
51
51
|
`chain depth (${this.chain.length}) exceeded maxDirectiveChain (${this.maxDepth}). ` +
|
|
52
52
|
`Review flow hooks and tool handlers for circular redirections.\n` +
|
|
53
53
|
`Chain (in emission order):\n${chainDescription}`);
|
|
54
54
|
}
|
|
55
|
-
|
|
55
|
+
index_js_1.logger.debug(`[DirectiveChainTracker] Chain depth ${this.chain.length}/${this.maxDepth}: ${description} from ${emitter}`);
|
|
56
56
|
return false; // Not a chain breaker — continue normally
|
|
57
57
|
}
|
|
58
58
|
/** Current chain depth. */
|