@falai/agent 1.2.8 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +40 -886
- package/dist/adapters/MemoryAdapter.js +2 -2
- package/dist/adapters/MemoryAdapter.js.map +1 -1
- package/dist/adapters/MongoAdapter.js +2 -2
- package/dist/adapters/MongoAdapter.js.map +1 -1
- package/dist/adapters/OpenSearchAdapter.d.ts.map +1 -1
- package/dist/adapters/OpenSearchAdapter.js +9 -7
- package/dist/adapters/OpenSearchAdapter.js.map +1 -1
- package/dist/adapters/PostgreSQLAdapter.d.ts +14 -0
- package/dist/adapters/PostgreSQLAdapter.d.ts.map +1 -1
- package/dist/adapters/PostgreSQLAdapter.js +25 -9
- package/dist/adapters/PostgreSQLAdapter.js.map +1 -1
- package/dist/adapters/PrismaAdapter.js +5 -5
- package/dist/adapters/PrismaAdapter.js.map +1 -1
- package/dist/adapters/RedisAdapter.js +2 -2
- package/dist/adapters/RedisAdapter.js.map +1 -1
- package/dist/adapters/SQLiteAdapter.d.ts +17 -0
- package/dist/adapters/SQLiteAdapter.d.ts.map +1 -1
- package/dist/adapters/SQLiteAdapter.js +30 -11
- package/dist/adapters/SQLiteAdapter.js.map +1 -1
- package/dist/cjs/adapters/MemoryAdapter.js +2 -2
- package/dist/cjs/adapters/MemoryAdapter.js.map +1 -1
- package/dist/cjs/adapters/MongoAdapter.js +2 -2
- package/dist/cjs/adapters/MongoAdapter.js.map +1 -1
- package/dist/cjs/adapters/OpenSearchAdapter.d.ts.map +1 -1
- package/dist/cjs/adapters/OpenSearchAdapter.js +9 -7
- package/dist/cjs/adapters/OpenSearchAdapter.js.map +1 -1
- package/dist/cjs/adapters/PostgreSQLAdapter.d.ts +14 -0
- package/dist/cjs/adapters/PostgreSQLAdapter.d.ts.map +1 -1
- package/dist/cjs/adapters/PostgreSQLAdapter.js +25 -9
- package/dist/cjs/adapters/PostgreSQLAdapter.js.map +1 -1
- package/dist/cjs/adapters/PrismaAdapter.js +5 -5
- package/dist/cjs/adapters/PrismaAdapter.js.map +1 -1
- package/dist/cjs/adapters/RedisAdapter.js +2 -2
- package/dist/cjs/adapters/RedisAdapter.js.map +1 -1
- package/dist/cjs/adapters/SQLiteAdapter.d.ts +17 -0
- package/dist/cjs/adapters/SQLiteAdapter.d.ts.map +1 -1
- package/dist/cjs/adapters/SQLiteAdapter.js +30 -11
- package/dist/cjs/adapters/SQLiteAdapter.js.map +1 -1
- package/dist/cjs/constants/index.d.ts +0 -9
- package/dist/cjs/constants/index.d.ts.map +1 -1
- package/dist/cjs/constants/index.js +2 -11
- package/dist/cjs/constants/index.js.map +1 -1
- package/dist/cjs/core/Agent.d.ts +119 -153
- package/dist/cjs/core/Agent.d.ts.map +1 -1
- package/dist/cjs/core/Agent.js +471 -324
- package/dist/cjs/core/Agent.js.map +1 -1
- package/dist/cjs/core/AutoChainExecutor.d.ts +107 -0
- package/dist/cjs/core/AutoChainExecutor.d.ts.map +1 -0
- package/dist/cjs/core/AutoChainExecutor.js +297 -0
- package/dist/cjs/core/AutoChainExecutor.js.map +1 -0
- package/dist/cjs/core/BranchEvaluator.d.ts +54 -0
- package/dist/cjs/core/BranchEvaluator.d.ts.map +1 -0
- package/dist/cjs/core/BranchEvaluator.js +130 -0
- package/dist/cjs/core/BranchEvaluator.js.map +1 -0
- package/dist/cjs/core/DirectiveBus.d.ts +88 -0
- package/dist/cjs/core/DirectiveBus.d.ts.map +1 -0
- package/dist/cjs/core/DirectiveBus.js +196 -0
- package/dist/cjs/core/DirectiveBus.js.map +1 -0
- package/dist/cjs/core/DirectiveChainTracker.d.ts +49 -0
- package/dist/cjs/core/DirectiveChainTracker.d.ts.map +1 -0
- package/dist/cjs/core/DirectiveChainTracker.js +121 -0
- package/dist/cjs/core/DirectiveChainTracker.js.map +1 -0
- package/dist/cjs/core/Flow.d.ts +186 -0
- package/dist/cjs/core/Flow.d.ts.map +1 -0
- package/dist/cjs/core/Flow.js +550 -0
- package/dist/cjs/core/Flow.js.map +1 -0
- package/dist/cjs/core/FlowRouter.d.ts +182 -0
- package/dist/cjs/core/FlowRouter.d.ts.map +1 -0
- package/dist/cjs/core/{RoutingEngine.js → FlowRouter.js} +323 -306
- package/dist/cjs/core/FlowRouter.js.map +1 -0
- package/dist/cjs/core/PersistenceManager.d.ts +2 -2
- package/dist/cjs/core/PersistenceManager.d.ts.map +1 -1
- package/dist/cjs/core/PersistenceManager.js +7 -7
- package/dist/cjs/core/PersistenceManager.js.map +1 -1
- package/dist/cjs/core/PromptComposer.d.ts +21 -8
- package/dist/cjs/core/PromptComposer.d.ts.map +1 -1
- package/dist/cjs/core/PromptComposer.js +182 -105
- package/dist/cjs/core/PromptComposer.js.map +1 -1
- package/dist/cjs/core/PromptSectionCache.d.ts +1 -1
- package/dist/cjs/core/PromptSectionCache.js +1 -1
- package/dist/cjs/core/ResponseEngine.d.ts +18 -8
- package/dist/cjs/core/ResponseEngine.d.ts.map +1 -1
- package/dist/cjs/core/ResponseEngine.js +38 -36
- package/dist/cjs/core/ResponseEngine.js.map +1 -1
- package/dist/cjs/core/ResponseModal.d.ts +73 -56
- package/dist/cjs/core/ResponseModal.d.ts.map +1 -1
- package/dist/cjs/core/ResponseModal.js +1191 -1014
- package/dist/cjs/core/ResponseModal.js.map +1 -1
- package/dist/cjs/core/ResponsePipeline.d.ts +124 -26
- package/dist/cjs/core/ResponsePipeline.d.ts.map +1 -1
- package/dist/cjs/core/ResponsePipeline.js +509 -136
- package/dist/cjs/core/ResponsePipeline.js.map +1 -1
- package/dist/cjs/core/SignalEvaluator.d.ts +86 -0
- package/dist/cjs/core/SignalEvaluator.d.ts.map +1 -0
- package/dist/cjs/core/SignalEvaluator.js +333 -0
- package/dist/cjs/core/SignalEvaluator.js.map +1 -0
- package/dist/cjs/core/SignalProcessor.d.ts +152 -0
- package/dist/cjs/core/SignalProcessor.d.ts.map +1 -0
- package/dist/cjs/core/SignalProcessor.js +562 -0
- package/dist/cjs/core/SignalProcessor.js.map +1 -0
- package/dist/cjs/core/Step.d.ts +43 -32
- package/dist/cjs/core/Step.d.ts.map +1 -1
- package/dist/cjs/core/Step.js +221 -126
- package/dist/cjs/core/Step.js.map +1 -1
- package/dist/cjs/core/StreamingToolExecutor.d.ts +2 -2
- package/dist/cjs/core/StreamingToolExecutor.d.ts.map +1 -1
- package/dist/cjs/core/StreamingToolExecutor.js.map +1 -1
- package/dist/cjs/core/ToolManager.d.ts +44 -13
- package/dist/cjs/core/ToolManager.d.ts.map +1 -1
- package/dist/cjs/core/ToolManager.js +174 -91
- package/dist/cjs/core/ToolManager.js.map +1 -1
- package/dist/cjs/core/createAgent.d.ts +35 -0
- package/dist/cjs/core/createAgent.d.ts.map +1 -0
- package/dist/cjs/core/createAgent.js +39 -0
- package/dist/cjs/core/createAgent.js.map +1 -0
- package/dist/cjs/core/flow-namespace.d.ts +49 -0
- package/dist/cjs/core/flow-namespace.d.ts.map +1 -0
- package/dist/cjs/core/flow-namespace.js +171 -0
- package/dist/cjs/core/flow-namespace.js.map +1 -0
- package/dist/cjs/index.d.ts +11 -14
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +18 -22
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/providers/AnthropicProvider.d.ts +1 -1
- package/dist/cjs/providers/AnthropicProvider.js +1 -1
- package/dist/cjs/providers/GeminiProvider.d.ts +1 -1
- package/dist/cjs/providers/GeminiProvider.d.ts.map +1 -1
- package/dist/cjs/providers/GeminiProvider.js +1 -1
- package/dist/cjs/providers/GeminiProvider.js.map +1 -1
- package/dist/cjs/providers/OpenAIProvider.d.ts +1 -1
- package/dist/cjs/providers/OpenAIProvider.d.ts.map +1 -1
- package/dist/cjs/providers/OpenAIProvider.js +1 -1
- package/dist/cjs/providers/OpenAIProvider.js.map +1 -1
- package/dist/cjs/types/agent.d.ts +183 -54
- package/dist/cjs/types/agent.d.ts.map +1 -1
- package/dist/cjs/types/agent.js +0 -6
- package/dist/cjs/types/agent.js.map +1 -1
- package/dist/cjs/types/ai.d.ts +3 -3
- package/dist/cjs/types/ai.d.ts.map +1 -1
- package/dist/cjs/types/errors.d.ts +15 -0
- package/dist/cjs/types/errors.d.ts.map +1 -0
- package/dist/cjs/types/errors.js +22 -0
- package/dist/cjs/types/errors.js.map +1 -0
- package/dist/cjs/types/flow.d.ts +513 -0
- package/dist/cjs/types/flow.d.ts.map +1 -0
- package/dist/cjs/types/{route.js → flow.js} +2 -2
- package/dist/cjs/types/flow.js.map +1 -0
- package/dist/cjs/types/index.d.ts +7 -6
- package/dist/cjs/types/index.d.ts.map +1 -1
- package/dist/cjs/types/index.js +6 -2
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/types/persistence.d.ts +11 -7
- package/dist/cjs/types/persistence.d.ts.map +1 -1
- package/dist/cjs/types/routing.d.ts +1 -1
- package/dist/cjs/types/routing.d.ts.map +1 -1
- package/dist/cjs/types/session.d.ts +24 -23
- package/dist/cjs/types/session.d.ts.map +1 -1
- package/dist/cjs/types/signals.d.ts +248 -0
- package/dist/cjs/types/signals.d.ts.map +1 -0
- package/dist/cjs/types/signals.js +11 -0
- package/dist/cjs/types/signals.js.map +1 -0
- package/dist/cjs/types/template.d.ts +2 -8
- package/dist/cjs/types/template.d.ts.map +1 -1
- package/dist/cjs/types/tool.d.ts +36 -29
- package/dist/cjs/types/tool.d.ts.map +1 -1
- package/dist/cjs/types/tool.js +1 -1
- package/dist/cjs/types/tool.js.map +1 -1
- package/dist/cjs/utils/condition.d.ts +7 -1
- package/dist/cjs/utils/condition.d.ts.map +1 -1
- package/dist/cjs/utils/condition.js.map +1 -1
- package/dist/cjs/utils/id.d.ts +13 -5
- package/dist/cjs/utils/id.d.ts.map +1 -1
- package/dist/cjs/utils/id.js +24 -10
- package/dist/cjs/utils/id.js.map +1 -1
- package/dist/cjs/utils/index.d.ts +2 -2
- package/dist/cjs/utils/index.d.ts.map +1 -1
- package/dist/cjs/utils/index.js +7 -3
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/session.d.ts +44 -5
- package/dist/cjs/utils/session.d.ts.map +1 -1
- package/dist/cjs/utils/session.js +197 -38
- package/dist/cjs/utils/session.js.map +1 -1
- package/dist/constants/index.d.ts +0 -9
- package/dist/constants/index.d.ts.map +1 -1
- package/dist/constants/index.js +3 -9
- package/dist/constants/index.js.map +1 -1
- package/dist/core/Agent.d.ts +119 -153
- package/dist/core/Agent.d.ts.map +1 -1
- package/dist/core/Agent.js +472 -325
- package/dist/core/Agent.js.map +1 -1
- package/dist/core/AutoChainExecutor.d.ts +107 -0
- package/dist/core/AutoChainExecutor.d.ts.map +1 -0
- package/dist/core/AutoChainExecutor.js +293 -0
- package/dist/core/AutoChainExecutor.js.map +1 -0
- package/dist/core/BranchEvaluator.d.ts +54 -0
- package/dist/core/BranchEvaluator.d.ts.map +1 -0
- package/dist/core/BranchEvaluator.js +126 -0
- package/dist/core/BranchEvaluator.js.map +1 -0
- package/dist/core/DirectiveBus.d.ts +88 -0
- package/dist/core/DirectiveBus.d.ts.map +1 -0
- package/dist/core/DirectiveBus.js +192 -0
- package/dist/core/DirectiveBus.js.map +1 -0
- package/dist/core/DirectiveChainTracker.d.ts +49 -0
- package/dist/core/DirectiveChainTracker.d.ts.map +1 -0
- package/dist/core/DirectiveChainTracker.js +117 -0
- package/dist/core/DirectiveChainTracker.js.map +1 -0
- package/dist/core/Flow.d.ts +186 -0
- package/dist/core/Flow.d.ts.map +1 -0
- package/dist/core/Flow.js +546 -0
- package/dist/core/Flow.js.map +1 -0
- package/dist/core/FlowRouter.d.ts +182 -0
- package/dist/core/FlowRouter.d.ts.map +1 -0
- package/dist/core/{RoutingEngine.js → FlowRouter.js} +322 -305
- package/dist/core/FlowRouter.js.map +1 -0
- package/dist/core/PersistenceManager.d.ts +2 -2
- package/dist/core/PersistenceManager.d.ts.map +1 -1
- package/dist/core/PersistenceManager.js +7 -7
- package/dist/core/PersistenceManager.js.map +1 -1
- package/dist/core/PromptComposer.d.ts +21 -8
- package/dist/core/PromptComposer.d.ts.map +1 -1
- package/dist/core/PromptComposer.js +183 -106
- package/dist/core/PromptComposer.js.map +1 -1
- package/dist/core/PromptSectionCache.d.ts +1 -1
- package/dist/core/PromptSectionCache.js +1 -1
- package/dist/core/ResponseEngine.d.ts +18 -8
- package/dist/core/ResponseEngine.d.ts.map +1 -1
- package/dist/core/ResponseEngine.js +38 -36
- package/dist/core/ResponseEngine.js.map +1 -1
- package/dist/core/ResponseModal.d.ts +73 -56
- package/dist/core/ResponseModal.d.ts.map +1 -1
- package/dist/core/ResponseModal.js +1193 -1016
- package/dist/core/ResponseModal.js.map +1 -1
- package/dist/core/ResponsePipeline.d.ts +124 -26
- package/dist/core/ResponsePipeline.d.ts.map +1 -1
- package/dist/core/ResponsePipeline.js +509 -137
- package/dist/core/ResponsePipeline.js.map +1 -1
- package/dist/core/SignalEvaluator.d.ts +86 -0
- package/dist/core/SignalEvaluator.d.ts.map +1 -0
- package/dist/core/SignalEvaluator.js +326 -0
- package/dist/core/SignalEvaluator.js.map +1 -0
- package/dist/core/SignalProcessor.d.ts +152 -0
- package/dist/core/SignalProcessor.d.ts.map +1 -0
- package/dist/core/SignalProcessor.js +555 -0
- package/dist/core/SignalProcessor.js.map +1 -0
- package/dist/core/Step.d.ts +43 -32
- package/dist/core/Step.d.ts.map +1 -1
- package/dist/core/Step.js +220 -126
- package/dist/core/Step.js.map +1 -1
- package/dist/core/StreamingToolExecutor.d.ts +2 -2
- package/dist/core/StreamingToolExecutor.d.ts.map +1 -1
- package/dist/core/StreamingToolExecutor.js.map +1 -1
- package/dist/core/ToolManager.d.ts +44 -13
- package/dist/core/ToolManager.d.ts.map +1 -1
- package/dist/core/ToolManager.js +174 -91
- package/dist/core/ToolManager.js.map +1 -1
- package/dist/core/createAgent.d.ts +35 -0
- package/dist/core/createAgent.d.ts.map +1 -0
- package/dist/core/createAgent.js +36 -0
- package/dist/core/createAgent.js.map +1 -0
- package/dist/core/flow-namespace.d.ts +49 -0
- package/dist/core/flow-namespace.d.ts.map +1 -0
- package/dist/core/flow-namespace.js +168 -0
- package/dist/core/flow-namespace.js.map +1 -0
- package/dist/index.d.ts +11 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -12
- package/dist/index.js.map +1 -1
- package/dist/providers/AnthropicProvider.d.ts +1 -1
- package/dist/providers/AnthropicProvider.js +1 -1
- package/dist/providers/GeminiProvider.d.ts +1 -1
- package/dist/providers/GeminiProvider.d.ts.map +1 -1
- package/dist/providers/GeminiProvider.js +1 -1
- package/dist/providers/GeminiProvider.js.map +1 -1
- package/dist/providers/OpenAIProvider.d.ts +1 -1
- package/dist/providers/OpenAIProvider.d.ts.map +1 -1
- package/dist/providers/OpenAIProvider.js +1 -1
- package/dist/providers/OpenAIProvider.js.map +1 -1
- package/dist/types/agent.d.ts +183 -54
- package/dist/types/agent.d.ts.map +1 -1
- package/dist/types/agent.js +0 -6
- package/dist/types/agent.js.map +1 -1
- package/dist/types/ai.d.ts +3 -3
- package/dist/types/ai.d.ts.map +1 -1
- package/dist/types/errors.d.ts +15 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/errors.js +18 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/flow.d.ts +513 -0
- package/dist/types/flow.d.ts.map +1 -0
- package/dist/types/flow.js +5 -0
- package/dist/types/flow.js.map +1 -0
- package/dist/types/index.d.ts +7 -6
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +4 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/persistence.d.ts +11 -7
- package/dist/types/persistence.d.ts.map +1 -1
- package/dist/types/routing.d.ts +1 -1
- package/dist/types/routing.d.ts.map +1 -1
- package/dist/types/session.d.ts +24 -23
- package/dist/types/session.d.ts.map +1 -1
- package/dist/types/signals.d.ts +248 -0
- package/dist/types/signals.d.ts.map +1 -0
- package/dist/types/signals.js +10 -0
- package/dist/types/signals.js.map +1 -0
- package/dist/types/template.d.ts +2 -8
- package/dist/types/template.d.ts.map +1 -1
- package/dist/types/tool.d.ts +36 -29
- package/dist/types/tool.d.ts.map +1 -1
- package/dist/types/tool.js +1 -1
- package/dist/types/tool.js.map +1 -1
- package/dist/utils/condition.d.ts +7 -1
- package/dist/utils/condition.d.ts.map +1 -1
- package/dist/utils/condition.js.map +1 -1
- package/dist/utils/id.d.ts +13 -5
- package/dist/utils/id.d.ts.map +1 -1
- package/dist/utils/id.js +22 -9
- package/dist/utils/id.js.map +1 -1
- package/dist/utils/index.d.ts +2 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -2
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/session.d.ts +44 -5
- package/dist/utils/session.d.ts.map +1 -1
- package/dist/utils/session.js +193 -37
- package/dist/utils/session.js.map +1 -1
- package/docs/README.md +22 -200
- package/docs/concepts/architecture.md +281 -0
- package/docs/concepts/directives.md +400 -0
- package/docs/concepts/pipeline.md +399 -0
- package/docs/guides/branching.md +263 -0
- package/docs/guides/compaction.md +163 -0
- package/docs/guides/conditions.md +167 -0
- package/docs/guides/error-handling.md +176 -0
- package/docs/guides/flow-control.md +409 -0
- package/docs/guides/instructions.md +210 -0
- package/docs/guides/persistence.md +182 -0
- package/docs/guides/streaming.md +137 -0
- package/docs/migration/README.md +14 -0
- package/docs/migration/route-to-flow.md +561 -0
- package/docs/migration/v1-to-v2.md +909 -0
- package/docs/reference/adapters.md +481 -0
- package/docs/reference/branches.md +241 -0
- package/docs/reference/create-agent.md +186 -0
- package/docs/reference/directive.md +243 -0
- package/docs/reference/errors.md +122 -0
- package/docs/reference/flow.md +238 -0
- package/docs/reference/instruction.md +177 -0
- package/docs/reference/pre-directive.md +131 -0
- package/docs/reference/providers.md +227 -0
- package/docs/reference/signals.md +356 -0
- package/docs/reference/step.md +339 -0
- package/docs/reference/tool.md +269 -0
- package/docs/start/01-install.md +81 -0
- package/docs/start/02-first-agent.md +196 -0
- package/docs/start/03-collect-data.md +222 -0
- package/docs/start/04-add-tools.md +276 -0
- package/docs/start/05-go-to-production.md +216 -0
- package/examples/01-quickstart.ts +20 -0
- package/examples/02-data-extraction.ts +90 -0
- package/examples/03-tools.ts +136 -0
- package/examples/04-instructions.ts +100 -0
- package/examples/05-branching.ts +140 -0
- package/examples/06-flow-control.ts +103 -0
- package/examples/07-streaming.ts +69 -0
- package/examples/08-persistence.ts +98 -0
- package/examples/09-signals.ts +144 -0
- package/examples/tsconfig.json +30 -0
- package/package.json +2 -1
- package/src/adapters/MemoryAdapter.ts +3 -3
- package/src/adapters/MongoAdapter.ts +3 -3
- package/src/adapters/OpenSearchAdapter.ts +10 -8
- package/src/adapters/PostgreSQLAdapter.ts +26 -10
- package/src/adapters/PrismaAdapter.ts +6 -6
- package/src/adapters/RedisAdapter.ts +3 -3
- package/src/adapters/SQLiteAdapter.ts +31 -12
- package/src/constants/index.ts +2 -10
- package/src/core/Agent.ts +585 -374
- package/src/core/AutoChainExecutor.ts +440 -0
- package/src/core/BranchEvaluator.ts +167 -0
- package/src/core/DirectiveBus.ts +248 -0
- package/src/core/DirectiveChainTracker.ts +144 -0
- package/src/core/Flow.ts +666 -0
- package/src/core/{RoutingEngine.ts → FlowRouter.ts} +385 -365
- package/src/core/PersistenceManager.ts +8 -8
- package/src/core/PromptComposer.ts +209 -140
- package/src/core/PromptSectionCache.ts +1 -1
- package/src/core/ResponseEngine.ts +61 -46
- package/src/core/ResponseModal.ts +1453 -1240
- package/src/core/ResponsePipeline.ts +655 -175
- package/src/core/SignalEvaluator.ts +420 -0
- package/src/core/SignalProcessor.ts +723 -0
- package/src/core/Step.ts +279 -176
- package/src/core/StreamingToolExecutor.ts +4 -4
- package/src/core/ToolManager.ts +200 -97
- package/src/core/createAgent.ts +40 -0
- package/src/core/flow-namespace.ts +219 -0
- package/src/index.ts +42 -36
- package/src/providers/AnthropicProvider.ts +2 -2
- package/src/providers/GeminiProvider.ts +2 -2
- package/src/providers/OpenAIProvider.ts +2 -2
- package/src/types/agent.ts +182 -53
- package/src/types/ai.ts +3 -3
- package/src/types/errors.ts +18 -0
- package/src/types/flow.ts +590 -0
- package/src/types/index.ts +43 -16
- package/src/types/persistence.ts +12 -8
- package/src/types/routing.ts +1 -1
- package/src/types/session.ts +26 -23
- package/src/types/signals.ts +321 -0
- package/src/types/template.ts +3 -11
- package/src/types/tool.ts +50 -42
- package/src/utils/condition.ts +13 -4
- package/src/utils/id.ts +27 -9
- package/src/utils/index.ts +6 -2
- package/src/utils/session.ts +238 -42
- package/dist/cjs/core/BatchExecutor.d.ts +0 -359
- package/dist/cjs/core/BatchExecutor.d.ts.map +0 -1
- package/dist/cjs/core/BatchExecutor.js +0 -861
- package/dist/cjs/core/BatchExecutor.js.map +0 -1
- package/dist/cjs/core/BatchPromptBuilder.d.ts +0 -89
- package/dist/cjs/core/BatchPromptBuilder.d.ts.map +0 -1
- package/dist/cjs/core/BatchPromptBuilder.js +0 -223
- package/dist/cjs/core/BatchPromptBuilder.js.map +0 -1
- package/dist/cjs/core/Route.d.ts +0 -180
- package/dist/cjs/core/Route.d.ts.map +0 -1
- package/dist/cjs/core/Route.js +0 -542
- package/dist/cjs/core/Route.js.map +0 -1
- package/dist/cjs/core/RoutingEngine.d.ts +0 -185
- package/dist/cjs/core/RoutingEngine.d.ts.map +0 -1
- package/dist/cjs/core/RoutingEngine.js.map +0 -1
- package/dist/cjs/types/route.d.ts +0 -336
- package/dist/cjs/types/route.d.ts.map +0 -1
- package/dist/cjs/types/route.js.map +0 -1
- package/dist/core/BatchExecutor.d.ts +0 -359
- package/dist/core/BatchExecutor.d.ts.map +0 -1
- package/dist/core/BatchExecutor.js +0 -856
- package/dist/core/BatchExecutor.js.map +0 -1
- package/dist/core/BatchPromptBuilder.d.ts +0 -89
- package/dist/core/BatchPromptBuilder.d.ts.map +0 -1
- package/dist/core/BatchPromptBuilder.js +0 -219
- package/dist/core/BatchPromptBuilder.js.map +0 -1
- package/dist/core/Route.d.ts +0 -180
- package/dist/core/Route.d.ts.map +0 -1
- package/dist/core/Route.js +0 -538
- package/dist/core/Route.js.map +0 -1
- package/dist/core/RoutingEngine.d.ts +0 -185
- package/dist/core/RoutingEngine.d.ts.map +0 -1
- package/dist/core/RoutingEngine.js.map +0 -1
- package/dist/types/route.d.ts +0 -336
- package/dist/types/route.d.ts.map +0 -1
- package/dist/types/route.js +0 -5
- package/dist/types/route.js.map +0 -1
- package/docs/CONTRIBUTING.md +0 -521
- package/docs/api/README.md +0 -3299
- package/docs/api/overview.md +0 -1410
- package/docs/architecture/data-extraction-flow.md +0 -360
- package/docs/architecture/multi-step-execution.md +0 -277
- package/docs/core/agent/README.md +0 -938
- package/docs/core/agent/context-management.md +0 -796
- package/docs/core/agent/rules-and-prohibitions.md +0 -113
- package/docs/core/agent/session-management.md +0 -693
- package/docs/core/ai-integration/prompt-composition.md +0 -355
- package/docs/core/ai-integration/providers.md +0 -515
- package/docs/core/ai-integration/response-processing.md +0 -433
- package/docs/core/conversation-flows/data-collection.md +0 -772
- package/docs/core/conversation-flows/route-dsl.md +0 -509
- package/docs/core/conversation-flows/routes.md +0 -249
- package/docs/core/conversation-flows/step-transitions.md +0 -731
- package/docs/core/conversation-flows/steps.md +0 -268
- package/docs/core/error-handling.md +0 -830
- package/docs/core/persistence/adapters.md +0 -255
- package/docs/core/persistence/session-storage.md +0 -656
- package/docs/core/routing/intelligent-routing.md +0 -470
- package/docs/core/tools/enhanced-tool.md +0 -186
- package/docs/core/tools/streaming-execution.md +0 -161
- package/docs/core/tools/tool-definition.md +0 -970
- package/docs/core/tools/tool-scoping.md +0 -819
- package/docs/guides/advanced-patterns/publishing.md +0 -186
- package/docs/guides/context-compaction.md +0 -96
- package/docs/guides/error-handling-patterns.md +0 -578
- package/docs/guides/getting-started/README.md +0 -795
- package/docs/guides/migration/README.md +0 -101
- package/docs/guides/migration/flexible-routing-conditions.md +0 -375
- package/docs/guides/migration/multi-step-execution.md +0 -393
- package/docs/guides/migration/response-modal-refactor.md +0 -518
- package/docs/guides/prompt-optimization.md +0 -164
- package/examples/advanced-patterns/context-compaction.ts +0 -223
- package/examples/advanced-patterns/knowledge-based-agent.ts +0 -735
- package/examples/advanced-patterns/persistent-onboarding.ts +0 -728
- package/examples/advanced-patterns/route-lifecycle-hooks.ts +0 -556
- package/examples/advanced-patterns/streaming-responses.ts +0 -656
- package/examples/ai-providers/anthropic-integration.ts +0 -388
- package/examples/ai-providers/openai-integration.ts +0 -228
- package/examples/condition-patterns/function-only-conditions.ts +0 -365
- package/examples/condition-patterns/mixed-array-conditions.ts +0 -477
- package/examples/condition-patterns/route-skipif-patterns.ts +0 -468
- package/examples/condition-patterns/step-skipif-patterns.ts +0 -0
- package/examples/condition-patterns/string-only-conditions.ts +0 -296
- package/examples/conversation-flows/completion-transitions.ts +0 -318
- package/examples/core-concepts/basic-agent.ts +0 -503
- package/examples/core-concepts/modern-streaming-api.ts +0 -309
- package/examples/core-concepts/schema-driven-extraction.ts +0 -332
- package/examples/core-concepts/session-management.ts +0 -494
- package/examples/integrations/database-integration.ts +0 -631
- package/examples/integrations/healthcare-integration.ts +0 -595
- package/examples/integrations/search-integration.ts +0 -530
- package/examples/integrations/server-session-management.ts +0 -307
- package/examples/persistence/custom-adapter.ts +0 -526
- package/examples/persistence/database-persistence.ts +0 -583
- package/examples/persistence/memory-sessions.ts +0 -495
- package/examples/persistence/prisma-schema.example.prisma +0 -74
- package/examples/persistence/redis-persistence.ts +0 -488
- package/examples/tools/basic-tools.ts +0 -765
- package/examples/tools/data-enrichment-tools.ts +0 -593
- package/examples/tools/enhanced-tool-metadata.ts +0 -268
- package/examples/tools/streaming-tool-execution.ts +0 -283
- package/src/core/BatchExecutor.ts +0 -1187
- package/src/core/BatchPromptBuilder.ts +0 -299
- package/src/core/Route.ts +0 -678
- package/src/types/route.ts +0 -392
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Level-1 factory for constructing an Agent from a single options object.
|
|
3
|
+
*
|
|
4
|
+
* `createAgent` is syntactic sugar over `new Agent(options)` and is the
|
|
5
|
+
* recommended entry point in docs and examples. Generic inference flows
|
|
6
|
+
* from `schema` through `flows[].steps[].collect` identically to `new Agent`.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* const agent = createAgent({
|
|
11
|
+
* name: 'BookingBot',
|
|
12
|
+
* provider: new GeminiProvider({ apiKey }),
|
|
13
|
+
* schema: { type: 'object', properties: { name: { type: 'string' }, email: { type: 'string' } } },
|
|
14
|
+
* flows: [{ title: 'Onboarding', steps: [{ collect: ['name', 'email'] }] }],
|
|
15
|
+
* });
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* **Validates: Requirements 14.1–14.7**
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
import { Agent } from "./Agent";
|
|
22
|
+
import type { AgentOptions } from "../types";
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Create an Agent from a single options object.
|
|
26
|
+
*
|
|
27
|
+
* This is the recommended entry point for constructing agents in v2.
|
|
28
|
+
* Accepts the same options as `new Agent(options)` — `schema`, `provider`,
|
|
29
|
+
* `instructions`, `flows`, and everything else `AgentOptions` carries.
|
|
30
|
+
*
|
|
31
|
+
* Generic inference flows from `schema` through `flows[].steps[].collect`.
|
|
32
|
+
* Invalid `collect` references throw `FlowConfigurationError` at construction time.
|
|
33
|
+
*
|
|
34
|
+
* Post-construction flow registration is still available via `agent.createFlow(...)`.
|
|
35
|
+
*/
|
|
36
|
+
export function createAgent<TContext = unknown, TData = unknown>(
|
|
37
|
+
options: AgentOptions<TContext, TData>
|
|
38
|
+
): Agent<TContext, TData> {
|
|
39
|
+
return new Agent<TContext, TData>(options);
|
|
40
|
+
}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `flow` namespace — type guards, merge, and validation helpers for Directives.
|
|
3
|
+
*
|
|
4
|
+
* No builder constructors live here (no `flow.goTo(...)`, `flow.complete(...)` etc.).
|
|
5
|
+
* Directives are plain object literals; this namespace provides runtime utilities only.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { Directive } from "../types/flow";
|
|
9
|
+
import { FlowConfigurationError } from "./Step";
|
|
10
|
+
|
|
11
|
+
// ─── Position field metadata ─────────────────────────────────────────────────
|
|
12
|
+
|
|
13
|
+
/** Position fields in precedence order (highest first). */
|
|
14
|
+
const POSITION_FIELDS = ["abort", "complete", "goTo", "goToStep", "reset"] as const;
|
|
15
|
+
type PositionField = (typeof POSITION_FIELDS)[number];
|
|
16
|
+
|
|
17
|
+
/** Precedence map: lower number = higher priority. */
|
|
18
|
+
const POSITION_PRECEDENCE: Record<PositionField, number> = {
|
|
19
|
+
abort: 0,
|
|
20
|
+
complete: 1,
|
|
21
|
+
goTo: 2,
|
|
22
|
+
goToStep: 2,
|
|
23
|
+
reset: 3,
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
// ─── Helpers ─────────────────────────────────────────────────────────────────
|
|
27
|
+
|
|
28
|
+
function getSetPositionFields(d: Directive): PositionField[] {
|
|
29
|
+
return POSITION_FIELDS.filter((f) => d[f] !== undefined && d[f] !== null);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Determines whether `candidate` beats `current` by precedence.
|
|
34
|
+
* Lower precedence number wins. On tie, candidate wins (last-emission-wins).
|
|
35
|
+
*/
|
|
36
|
+
function beatsCurrent(
|
|
37
|
+
candidate: PositionField,
|
|
38
|
+
current: PositionField | null
|
|
39
|
+
): boolean {
|
|
40
|
+
if (current === null) return true;
|
|
41
|
+
return POSITION_PRECEDENCE[candidate] <= POSITION_PRECEDENCE[current];
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// ─── Public API ──────────────────────────────────────────────────────────────
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Type guard: is `x` a Directive (or any subtype like PreDirective)?
|
|
48
|
+
*
|
|
49
|
+
* A value is considered a Directive if it is a non-null object. The Directive
|
|
50
|
+
* interface has all-optional fields, so any plain object qualifies structurally.
|
|
51
|
+
* This guard filters out primitives, null, undefined, arrays, and functions.
|
|
52
|
+
*/
|
|
53
|
+
function isDirective(x: unknown): x is Directive {
|
|
54
|
+
return (
|
|
55
|
+
x !== null &&
|
|
56
|
+
x !== undefined &&
|
|
57
|
+
typeof x === "object" &&
|
|
58
|
+
!Array.isArray(x)
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Merge two directives by Algorithm 4's rules:
|
|
64
|
+
* - Position fields: precedence (abort > complete > goTo/goToStep > reset);
|
|
65
|
+
* ties broken by emission order (b wins over a — last wins).
|
|
66
|
+
* - reply: last-wins (b.reply overrides a.reply if set).
|
|
67
|
+
* - dataUpdate / contextUpdate: shallow-merge (b overrides a on key collision).
|
|
68
|
+
* - appendPrompt / injectTools (PreDirective fields): concatenate then dedupe.
|
|
69
|
+
* - halt: logical-OR.
|
|
70
|
+
*/
|
|
71
|
+
function merge<T extends Directive>(a: T, b: T): T {
|
|
72
|
+
const result = {} as Record<string, unknown>;
|
|
73
|
+
|
|
74
|
+
// ── Position field: winner-takes-all by precedence, b wins ties ──
|
|
75
|
+
const aPos = getSetPositionFields(a as Directive);
|
|
76
|
+
const bPos = getSetPositionFields(b as Directive);
|
|
77
|
+
|
|
78
|
+
// Pick the highest-priority position field across both directives.
|
|
79
|
+
// b's fields are evaluated after a's, so b wins on same precedence (last-wins).
|
|
80
|
+
let winnerField: PositionField | null = null;
|
|
81
|
+
let winnerSource: Directive | null = null;
|
|
82
|
+
|
|
83
|
+
for (const field of aPos) {
|
|
84
|
+
if (beatsCurrent(field, winnerField)) {
|
|
85
|
+
winnerField = field;
|
|
86
|
+
winnerSource = a as Directive;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
for (const field of bPos) {
|
|
90
|
+
if (beatsCurrent(field, winnerField)) {
|
|
91
|
+
winnerField = field;
|
|
92
|
+
winnerSource = b as Directive;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
if (winnerField !== null && winnerSource !== null) {
|
|
97
|
+
result[winnerField] = (winnerSource as Record<string, unknown>)[winnerField];
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// ── reply: last-wins ──
|
|
101
|
+
if ((b as Directive).reply !== undefined) {
|
|
102
|
+
result.reply = (b as Directive).reply;
|
|
103
|
+
} else if ((a as Directive).reply !== undefined) {
|
|
104
|
+
result.reply = (a as Directive).reply;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// ── dataUpdate: shallow merge ──
|
|
108
|
+
const aData = (a as Record<string, unknown>).dataUpdate as
|
|
109
|
+
| Record<string, unknown>
|
|
110
|
+
| undefined;
|
|
111
|
+
const bData = (b as Record<string, unknown>).dataUpdate as
|
|
112
|
+
| Record<string, unknown>
|
|
113
|
+
| undefined;
|
|
114
|
+
if (aData || bData) {
|
|
115
|
+
result.dataUpdate = { ...aData, ...bData };
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// ── contextUpdate: shallow merge ──
|
|
119
|
+
const aCtx = (a as Record<string, unknown>).contextUpdate as
|
|
120
|
+
| Record<string, unknown>
|
|
121
|
+
| undefined;
|
|
122
|
+
const bCtx = (b as Record<string, unknown>).contextUpdate as
|
|
123
|
+
| Record<string, unknown>
|
|
124
|
+
| undefined;
|
|
125
|
+
if (aCtx || bCtx) {
|
|
126
|
+
result.contextUpdate = { ...aCtx, ...bCtx };
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// ── appendPrompt (PreDirective): concatenate ──
|
|
130
|
+
const aPrompt = (a as Record<string, unknown>).appendPrompt as
|
|
131
|
+
| string[]
|
|
132
|
+
| undefined;
|
|
133
|
+
const bPrompt = (b as Record<string, unknown>).appendPrompt as
|
|
134
|
+
| string[]
|
|
135
|
+
| undefined;
|
|
136
|
+
if (aPrompt || bPrompt) {
|
|
137
|
+
result.appendPrompt = [...(aPrompt ?? []), ...(bPrompt ?? [])];
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
// ── injectTools (PreDirective): concatenate then dedupe by id (last wins) ──
|
|
141
|
+
const aTools = (a as Record<string, unknown>).injectTools as
|
|
142
|
+
| Array<{ id: string;[k: string]: unknown }>
|
|
143
|
+
| undefined;
|
|
144
|
+
const bTools = (b as Record<string, unknown>).injectTools as
|
|
145
|
+
| Array<{ id: string;[k: string]: unknown }>
|
|
146
|
+
| undefined;
|
|
147
|
+
if (aTools || bTools) {
|
|
148
|
+
const combined = [...(aTools ?? []), ...(bTools ?? [])];
|
|
149
|
+
// Dedupe by id — last definition wins
|
|
150
|
+
const seen = new Map<string, (typeof combined)[number]>();
|
|
151
|
+
for (const tool of combined) {
|
|
152
|
+
seen.set(tool.id, tool);
|
|
153
|
+
}
|
|
154
|
+
result.injectTools = Array.from(seen.values());
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
// ── halt (PreDirective): logical OR ──
|
|
158
|
+
const aHalt = (a as Record<string, unknown>).halt as boolean | undefined;
|
|
159
|
+
const bHalt = (b as Record<string, unknown>).halt as boolean | undefined;
|
|
160
|
+
if (aHalt || bHalt) {
|
|
161
|
+
result.halt = true;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
return result as T;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Runtime validator. Throws FlowConfigurationError for invalid combinations:
|
|
169
|
+
* - Multiple position fields set.
|
|
170
|
+
* - `goTo` set as empty object `{}` (no flow target).
|
|
171
|
+
* - `reply` co-existing with `abort` (abort ends the conversation; a reply is nonsensical).
|
|
172
|
+
*/
|
|
173
|
+
function validate(d: Directive): void {
|
|
174
|
+
// ── Multiple position fields ──
|
|
175
|
+
const setFields = getSetPositionFields(d);
|
|
176
|
+
if (setFields.length > 1) {
|
|
177
|
+
throw new FlowConfigurationError(
|
|
178
|
+
`[FlowConfigurationError] Invalid directive: multiple position fields set (${setFields.join(", ")}). ` +
|
|
179
|
+
`A directive may have at most one position field. Remove the extras.`
|
|
180
|
+
);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
// ── Empty goTo object ──
|
|
184
|
+
if (d.goTo !== undefined && d.goTo !== null) {
|
|
185
|
+
if (typeof d.goTo === "object") {
|
|
186
|
+
const goToObj = d.goTo as { flow?: string; step?: string };
|
|
187
|
+
if (!goToObj.flow && !goToObj.step) {
|
|
188
|
+
throw new FlowConfigurationError(
|
|
189
|
+
`[FlowConfigurationError] Invalid directive: goTo is set as an empty object. ` +
|
|
190
|
+
`goTo requires a flow id or title. Provide { flow: "<id>" } or use the string shorthand.`
|
|
191
|
+
);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
// ── reply co-existing with abort ──
|
|
197
|
+
if (d.reply !== undefined && d.abort !== undefined) {
|
|
198
|
+
throw new FlowConfigurationError(
|
|
199
|
+
`[FlowConfigurationError] Invalid directive: reply cannot co-exist with abort. ` +
|
|
200
|
+
`An aborted conversation cannot deliver a reply. Remove one of the fields.`
|
|
201
|
+
);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* The `flow` namespace object. Exported as a single const for ergonomic usage:
|
|
207
|
+
*
|
|
208
|
+
* ```ts
|
|
209
|
+
* import { flow } from '@falai/agent';
|
|
210
|
+
* if (flow.isDirective(x)) { ... }
|
|
211
|
+
* const merged = flow.merge(a, b);
|
|
212
|
+
* flow.validate(d);
|
|
213
|
+
* ```
|
|
214
|
+
*/
|
|
215
|
+
export const flow = {
|
|
216
|
+
isDirective,
|
|
217
|
+
merge,
|
|
218
|
+
validate,
|
|
219
|
+
} as const;
|
package/src/index.ts
CHANGED
|
@@ -1,30 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @falai/agent - Standalone AI Agent framework
|
|
3
3
|
*
|
|
4
|
-
* A strongly-typed, modular agent framework with
|
|
4
|
+
* A strongly-typed, modular agent framework with flow DSL and AI provider strategy
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
// Core
|
|
8
8
|
export { Agent } from "./core/Agent";
|
|
9
|
-
export {
|
|
10
|
-
export {
|
|
11
|
-
export {
|
|
12
|
-
export
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
GenerateOptions
|
|
17
|
-
} from "./core/ResponseModal";
|
|
9
|
+
export { createAgent } from "./core/createAgent";
|
|
10
|
+
export { Flow } from "./core/Flow";
|
|
11
|
+
export { Step, FlowConfigurationError } from "./core/Step";
|
|
12
|
+
export { flow } from "./core/flow-namespace";
|
|
13
|
+
export { DirectiveChainTracker } from "./core/DirectiveChainTracker";
|
|
14
|
+
export type { DirectiveChainEntry } from "./core/DirectiveChainTracker";
|
|
15
|
+
|
|
18
16
|
export { adaptEvent, convertHistoryToEvents } from "./core/Events";
|
|
19
17
|
export { PersistenceManager } from "./core/PersistenceManager";
|
|
20
18
|
export { SessionManager } from "./core/SessionManager";
|
|
21
19
|
export { ToolManager, ToolCreationError, ToolExecutionError } from "./core/ToolManager";
|
|
22
|
-
export {
|
|
23
|
-
|
|
24
|
-
export { CompactionEngine } from "./core/CompactionEngine";
|
|
20
|
+
export { NotImplementedError } from "./types/errors";
|
|
21
|
+
|
|
25
22
|
export { StreamingToolExecutor } from "./core/StreamingToolExecutor";
|
|
26
|
-
|
|
27
|
-
export type { PromptSectionType, PromptCacheConfig, SectionCompute } from "./core/PromptSectionCache";
|
|
23
|
+
|
|
28
24
|
|
|
29
25
|
// Providers
|
|
30
26
|
export { GeminiProvider } from "./providers/GeminiProvider";
|
|
@@ -71,11 +67,8 @@ export type {
|
|
|
71
67
|
OpenSearchAdapterOptions,
|
|
72
68
|
} from "./adapters/OpenSearchAdapter";
|
|
73
69
|
|
|
74
|
-
// Constants
|
|
75
|
-
export { END_ROUTE, END_ROUTE_ID } from "./constants";
|
|
76
|
-
|
|
77
70
|
// Utils
|
|
78
|
-
export {
|
|
71
|
+
export { generateFlowId, generateStepId, generateToolId } from "./utils/id";
|
|
79
72
|
export { formatKnowledgeBase } from "./utils/template";
|
|
80
73
|
export {
|
|
81
74
|
ConditionEvaluator,
|
|
@@ -101,30 +94,40 @@ export type {
|
|
|
101
94
|
AgentCompactionConfig,
|
|
102
95
|
AgentResponse,
|
|
103
96
|
Term,
|
|
104
|
-
|
|
105
|
-
|
|
97
|
+
Instruction,
|
|
98
|
+
ScopedInstructions,
|
|
99
|
+
AppliedInstruction,
|
|
106
100
|
ContextLifecycleHooks,
|
|
107
101
|
ContextProvider,
|
|
102
|
+
HookContext,
|
|
103
|
+
ExitReason,
|
|
108
104
|
Event,
|
|
109
105
|
EmittedEvent,
|
|
110
106
|
MessageEventData,
|
|
111
107
|
ToolEventData,
|
|
112
108
|
StatusEventData,
|
|
113
109
|
Participant,
|
|
114
|
-
|
|
110
|
+
FlowRef,
|
|
115
111
|
StepRef,
|
|
116
|
-
|
|
112
|
+
FlowOptions,
|
|
117
113
|
StepOptions,
|
|
118
|
-
|
|
119
|
-
|
|
114
|
+
FlowLifecycleHooks,
|
|
115
|
+
StepLifecycleHooks,
|
|
120
116
|
SessionState,
|
|
121
|
-
|
|
117
|
+
SignalsState,
|
|
118
|
+
SignalTriggerState,
|
|
119
|
+
Signal,
|
|
120
|
+
SignalContext,
|
|
121
|
+
SignalDirective,
|
|
122
|
+
SignalPredicate,
|
|
123
|
+
SignalPredicateContext,
|
|
124
|
+
SignalFiring,
|
|
125
|
+
SignalSchema,
|
|
122
126
|
ToolContext,
|
|
123
127
|
ToolResult,
|
|
124
128
|
ToolHandler,
|
|
125
129
|
Tool,
|
|
126
130
|
|
|
127
|
-
EnhancedTool,
|
|
128
131
|
ToolValidationResult,
|
|
129
132
|
ToolPermissionResult,
|
|
130
133
|
ToolCallRequest,
|
|
@@ -161,20 +164,23 @@ export type {
|
|
|
161
164
|
PersistenceAdapter,
|
|
162
165
|
Template,
|
|
163
166
|
TemplateContext,
|
|
164
|
-
ConditionTemplate,
|
|
165
167
|
ConditionEvaluationResult,
|
|
166
168
|
UserHistoryItem,
|
|
167
169
|
AssistantHistoryItem,
|
|
168
170
|
ToolHistoryItem,
|
|
169
171
|
SystemHistoryItem,
|
|
170
|
-
//
|
|
172
|
+
// Flow execution types
|
|
171
173
|
StoppedReason,
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
174
|
+
PrepareResult,
|
|
175
|
+
Directive,
|
|
176
|
+
PreDirective,
|
|
177
|
+
BranchEntry,
|
|
178
|
+
BranchMap,
|
|
179
|
+
BranchPredicate,
|
|
180
|
+
BranchPredicateContext,
|
|
181
|
+
ConditionPredicate,
|
|
182
|
+
ConditionIf,
|
|
183
|
+
ConditionWhen,
|
|
178
184
|
} from "./types";
|
|
179
185
|
export { CompositionMode, EventKind, MessageRole } from "./types";
|
|
180
|
-
export { createSession, createSessionId,
|
|
186
|
+
export { createSession, createSessionId, enterFlow, enterStep, completeCurrentFlow, isFlowCompletedThisSession, mergeCollected } from "./utils";
|
|
@@ -30,7 +30,7 @@ const DEFAULT_RETRY_CONFIG = {
|
|
|
30
30
|
export interface AnthropicProviderOptions {
|
|
31
31
|
/** Anthropic API key */
|
|
32
32
|
apiKey: string;
|
|
33
|
-
/** Model to use (required) - e.g., "claude-sonnet-4-
|
|
33
|
+
/** Model to use (required) - e.g., "claude-sonnet-4-6", "claude-opus-4-7" */
|
|
34
34
|
model: string;
|
|
35
35
|
/** Backup models to try if primary fails (default: []) */
|
|
36
36
|
backupModels?: string[];
|
|
@@ -138,7 +138,7 @@ export class AnthropicProvider implements AiProvider {
|
|
|
138
138
|
}
|
|
139
139
|
|
|
140
140
|
if (!model) {
|
|
141
|
-
throw new Error("Model is required. Example: 'claude-sonnet-4-
|
|
141
|
+
throw new Error("Model is required. Example: 'claude-sonnet-4-6'");
|
|
142
142
|
}
|
|
143
143
|
|
|
144
144
|
this.client = new Anthropic({
|
|
@@ -36,7 +36,7 @@ const DEFAULT_RETRY_CONFIG = {
|
|
|
36
36
|
export interface GeminiProviderOptions {
|
|
37
37
|
/** Gemini API key */
|
|
38
38
|
apiKey: string;
|
|
39
|
-
/** Model to use (required) - e.g., "
|
|
39
|
+
/** Model to use (required) - e.g., "gemini-3.1-pro-preview" */
|
|
40
40
|
model: string;
|
|
41
41
|
/** Backup models to try if primary fails (default: []) */
|
|
42
42
|
backupModels?: string[];
|
|
@@ -140,7 +140,7 @@ export class GeminiProvider implements AiProvider {
|
|
|
140
140
|
}
|
|
141
141
|
|
|
142
142
|
if (!model) {
|
|
143
|
-
throw new Error("Model is required. Example: '
|
|
143
|
+
throw new Error("Model is required. Example: 'gemini-3.1-pro-preview'");
|
|
144
144
|
}
|
|
145
145
|
|
|
146
146
|
this.genAI = new GoogleGenAI({ apiKey });
|
|
@@ -31,7 +31,7 @@ export interface OpenAIProviderOptions {
|
|
|
31
31
|
apiKey: string;
|
|
32
32
|
/** Organization ID (optional) */
|
|
33
33
|
organization?: string;
|
|
34
|
-
/** Model to use (required) - e.g., "gpt-5", "gpt-5
|
|
34
|
+
/** Model to use (required) - e.g., "gpt-5.5", "gpt-5.4" */
|
|
35
35
|
model: string;
|
|
36
36
|
/** Backup models to try if primary fails (default: []) */
|
|
37
37
|
backupModels?: string[];
|
|
@@ -144,7 +144,7 @@ export class OpenAIProvider implements AiProvider {
|
|
|
144
144
|
}
|
|
145
145
|
|
|
146
146
|
if (!model) {
|
|
147
|
-
throw new Error("Model is required. Example: 'gpt-5' or 'gpt-5
|
|
147
|
+
throw new Error("Model is required. Example: 'gpt-5.5' or 'gpt-5.4'");
|
|
148
148
|
}
|
|
149
149
|
|
|
150
150
|
// Dynamic import to avoid bundling issues
|