@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
package/dist/utils/session.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { cloneDeep } from "./clone";
|
|
2
|
+
import { logger } from "./logger";
|
|
2
3
|
export function createSession(sessionIdOrState, metadata) {
|
|
3
4
|
// Overload 2: partial state object
|
|
4
5
|
if (typeof sessionIdOrState === "object" && sessionIdOrState !== null) {
|
|
@@ -9,10 +10,11 @@ export function createSession(sessionIdOrState, metadata) {
|
|
|
9
10
|
return {
|
|
10
11
|
id,
|
|
11
12
|
data: state.data ?? {},
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
flowHistory: state.flowHistory ?? [],
|
|
14
|
+
currentFlow: state.currentFlow,
|
|
14
15
|
currentStep: state.currentStep,
|
|
15
|
-
|
|
16
|
+
pendingDirective: state.pendingDirective,
|
|
17
|
+
signals: state.signals,
|
|
16
18
|
history: state.history,
|
|
17
19
|
metadata: {
|
|
18
20
|
createdAt: now,
|
|
@@ -27,7 +29,7 @@ export function createSession(sessionIdOrState, metadata) {
|
|
|
27
29
|
return {
|
|
28
30
|
id,
|
|
29
31
|
data: {},
|
|
30
|
-
|
|
32
|
+
flowHistory: [],
|
|
31
33
|
metadata: {
|
|
32
34
|
...metadata,
|
|
33
35
|
createdAt: new Date(),
|
|
@@ -48,33 +50,33 @@ export function cloneSession(session) {
|
|
|
48
50
|
return cloneDeep(session);
|
|
49
51
|
}
|
|
50
52
|
/**
|
|
51
|
-
* Helper to update session with new
|
|
52
|
-
* With agent-level data,
|
|
53
|
+
* Helper to update session with new flow
|
|
54
|
+
* With agent-level data, flows share the same data structure
|
|
53
55
|
*/
|
|
54
|
-
export function
|
|
55
|
-
// Exit current
|
|
56
|
-
const
|
|
57
|
-
if (session.
|
|
58
|
-
const
|
|
59
|
-
if (
|
|
60
|
-
|
|
56
|
+
export function enterFlow(session, flowId, flowTitle) {
|
|
57
|
+
// Exit current flow if exists
|
|
58
|
+
const flowHistory = [...(session.flowHistory || [])];
|
|
59
|
+
if (session.currentFlow) {
|
|
60
|
+
const lastFlowIndex = flowHistory.findIndex((r) => r.flowId === session.currentFlow?.id && !r.exitedAt);
|
|
61
|
+
if (lastFlowIndex >= 0) {
|
|
62
|
+
flowHistory[lastFlowIndex].exitedAt = new Date();
|
|
61
63
|
}
|
|
62
64
|
}
|
|
63
|
-
// Enter new
|
|
65
|
+
// Enter new flow - data persists across flows at agent level
|
|
64
66
|
const now = new Date();
|
|
65
67
|
return {
|
|
66
68
|
...session,
|
|
67
|
-
|
|
68
|
-
id:
|
|
69
|
-
title:
|
|
69
|
+
currentFlow: {
|
|
70
|
+
id: flowId,
|
|
71
|
+
title: flowTitle,
|
|
70
72
|
enteredAt: now,
|
|
71
73
|
},
|
|
72
74
|
currentStep: undefined,
|
|
73
|
-
// data remains the same - shared across all
|
|
74
|
-
|
|
75
|
-
...
|
|
75
|
+
// data remains the same - shared across all flows
|
|
76
|
+
flowHistory: [
|
|
77
|
+
...flowHistory,
|
|
76
78
|
{
|
|
77
|
-
|
|
79
|
+
flowId: flowId,
|
|
78
80
|
enteredAt: now,
|
|
79
81
|
completed: false,
|
|
80
82
|
},
|
|
@@ -102,6 +104,71 @@ export function enterStep(session, stepId, stepDescription) {
|
|
|
102
104
|
},
|
|
103
105
|
};
|
|
104
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Helper to release the session to idle state on flow completion.
|
|
109
|
+
*
|
|
110
|
+
* Marks the active flow's `flowHistory` entry as completed (sets
|
|
111
|
+
* `completed: true` and `exitedAt: <now>`), clears `currentFlow` and
|
|
112
|
+
* `currentStep`, and (when `clearOwnedFields` is provided) removes those
|
|
113
|
+
* fields from `session.data` to support `flow.reentrant` re-entry.
|
|
114
|
+
*
|
|
115
|
+
* Does **not** generate any message, copy, or LLM call. The framework
|
|
116
|
+
* speaks no text of its own at the completion boundary — the developer
|
|
117
|
+
* controls every word emitted to the user via flow steps.
|
|
118
|
+
*/
|
|
119
|
+
export function completeCurrentFlow(session, options) {
|
|
120
|
+
const now = new Date();
|
|
121
|
+
const flowHistory = [...(session.flowHistory || [])];
|
|
122
|
+
if (session.currentFlow) {
|
|
123
|
+
const lastFlowIndex = flowHistory.findIndex((entry) => entry.flowId === session.currentFlow?.id && !entry.exitedAt);
|
|
124
|
+
if (lastFlowIndex >= 0) {
|
|
125
|
+
flowHistory[lastFlowIndex] = {
|
|
126
|
+
...flowHistory[lastFlowIndex],
|
|
127
|
+
exitedAt: now,
|
|
128
|
+
completed: true,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
let nextData = session.data;
|
|
133
|
+
if (options?.clearOwnedFields && options.clearOwnedFields.length > 0) {
|
|
134
|
+
const owned = new Set(options.clearOwnedFields);
|
|
135
|
+
const filtered = {};
|
|
136
|
+
for (const key of Object.keys(session.data ?? {})) {
|
|
137
|
+
if (!owned.has(key)) {
|
|
138
|
+
filtered[key] =
|
|
139
|
+
session.data[key];
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
nextData = filtered;
|
|
143
|
+
}
|
|
144
|
+
return {
|
|
145
|
+
...session,
|
|
146
|
+
currentFlow: undefined,
|
|
147
|
+
currentStep: undefined,
|
|
148
|
+
flowHistory,
|
|
149
|
+
data: nextData,
|
|
150
|
+
metadata: {
|
|
151
|
+
...session.metadata,
|
|
152
|
+
lastUpdatedAt: now,
|
|
153
|
+
},
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Returns true when the given flow id has a most-recent `flowHistory`
|
|
158
|
+
* entry marked as completed within this session. Used by the router to
|
|
159
|
+
* exclude completed flows from candidate scoring (unless the flow is
|
|
160
|
+
* `reentrant`).
|
|
161
|
+
*/
|
|
162
|
+
export function isFlowCompletedThisSession(session, flowId) {
|
|
163
|
+
const history = session.flowHistory ?? [];
|
|
164
|
+
for (let i = history.length - 1; i >= 0; i--) {
|
|
165
|
+
const entry = history[i];
|
|
166
|
+
if (entry.flowId === flowId) {
|
|
167
|
+
return entry.completed === true;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
return false;
|
|
171
|
+
}
|
|
105
172
|
/**
|
|
106
173
|
* Helper to merge collected data into session
|
|
107
174
|
* Updates agent-level data structure
|
|
@@ -125,17 +192,31 @@ export function mergeCollected(session, data) {
|
|
|
125
192
|
* Used when saving to database
|
|
126
193
|
*/
|
|
127
194
|
export function sessionStepToData(session) {
|
|
195
|
+
// Strip PreDirective fields before persisting pendingDirective
|
|
196
|
+
let pendingDirective;
|
|
197
|
+
if (session.pendingDirective) {
|
|
198
|
+
pendingDirective = stripPreDirectiveFields(session.pendingDirective);
|
|
199
|
+
}
|
|
200
|
+
const collectedData = {
|
|
201
|
+
data: session.data || {},
|
|
202
|
+
flowHistory: session.flowHistory,
|
|
203
|
+
history: session.history,
|
|
204
|
+
currentFlowTitle: session.currentFlow?.title,
|
|
205
|
+
currentStepDescription: session.currentStep?.description,
|
|
206
|
+
metadata: session.metadata,
|
|
207
|
+
};
|
|
208
|
+
// Only include pendingDirective when defined (omit key when undefined)
|
|
209
|
+
if (pendingDirective !== undefined) {
|
|
210
|
+
collectedData.pendingDirective = pendingDirective;
|
|
211
|
+
}
|
|
212
|
+
// Pass through signals bit-identical (reserved for v2.x)
|
|
213
|
+
if (session.signals !== undefined) {
|
|
214
|
+
collectedData.signals = session.signals;
|
|
215
|
+
}
|
|
128
216
|
return {
|
|
129
|
-
|
|
217
|
+
currentFlow: session.currentFlow?.id,
|
|
130
218
|
currentStep: session.currentStep?.id,
|
|
131
|
-
collectedData
|
|
132
|
-
data: session.data || {},
|
|
133
|
-
routeHistory: session.routeHistory,
|
|
134
|
-
history: session.history, // Include conversation history
|
|
135
|
-
currentRouteTitle: session.currentRoute?.title,
|
|
136
|
-
currentStepDescription: session.currentStep?.description,
|
|
137
|
-
metadata: session.metadata,
|
|
138
|
-
},
|
|
219
|
+
collectedData,
|
|
139
220
|
};
|
|
140
221
|
}
|
|
141
222
|
/**
|
|
@@ -147,18 +228,18 @@ export function sessionStepToData(session) {
|
|
|
147
228
|
export function sessionDataToStep(sessionId, data) {
|
|
148
229
|
const collectedData = data.collectedData || {
|
|
149
230
|
data: {},
|
|
150
|
-
|
|
231
|
+
flowHistory: [],
|
|
151
232
|
history: [],
|
|
152
233
|
metadata: {},
|
|
153
|
-
|
|
234
|
+
currentFlowTitle: undefined,
|
|
154
235
|
currentStepDescription: undefined,
|
|
155
236
|
};
|
|
156
|
-
|
|
237
|
+
const session = {
|
|
157
238
|
id: sessionId,
|
|
158
|
-
|
|
239
|
+
currentFlow: data.currentFlow
|
|
159
240
|
? {
|
|
160
|
-
id: data.
|
|
161
|
-
title: collectedData.
|
|
241
|
+
id: data.currentFlow,
|
|
242
|
+
title: collectedData.currentFlowTitle || data.currentFlow,
|
|
162
243
|
enteredAt: new Date(),
|
|
163
244
|
}
|
|
164
245
|
: undefined,
|
|
@@ -170,9 +251,84 @@ export function sessionDataToStep(sessionId, data) {
|
|
|
170
251
|
}
|
|
171
252
|
: undefined,
|
|
172
253
|
data: collectedData.data || {},
|
|
173
|
-
|
|
254
|
+
flowHistory: collectedData.flowHistory || [],
|
|
174
255
|
history: collectedData.history || [],
|
|
175
256
|
metadata: collectedData.metadata || {},
|
|
176
257
|
};
|
|
258
|
+
// Restore pendingDirective if present (ignore any legacy pendingTransition — per Req 12.3)
|
|
259
|
+
if (collectedData.pendingDirective !== undefined) {
|
|
260
|
+
session.pendingDirective = collectedData.pendingDirective;
|
|
261
|
+
}
|
|
262
|
+
// Restore signals bit-identical (reserved for v2.x)
|
|
263
|
+
if (collectedData.signals !== undefined) {
|
|
264
|
+
session.signals = collectedData.signals;
|
|
265
|
+
}
|
|
266
|
+
return session;
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Strip PreDirective-only fields from a directive before persistence.
|
|
270
|
+
*
|
|
271
|
+
* `appendPrompt`, `injectTools`, and `halt` are transient (one-turn lifetime)
|
|
272
|
+
* and must not be serialized. This is a belt-and-suspenders safety net —
|
|
273
|
+
* `Agent.dispatch` already strips before setting `pendingDirective`, and the
|
|
274
|
+
* DirectiveBus's post-LLM drain strips from post-LLM emitters. This function
|
|
275
|
+
* ensures the persistence layer never writes these fields regardless of the
|
|
276
|
+
* upstream path.
|
|
277
|
+
*/
|
|
278
|
+
function stripPreDirectiveFields(directive) {
|
|
279
|
+
const raw = directive;
|
|
280
|
+
if (!raw.appendPrompt && !raw.injectTools && raw.halt === undefined) {
|
|
281
|
+
return directive;
|
|
282
|
+
}
|
|
283
|
+
const { appendPrompt, injectTools, halt, ...rest } = raw;
|
|
284
|
+
const droppedFields = [
|
|
285
|
+
appendPrompt && "appendPrompt",
|
|
286
|
+
injectTools && "injectTools",
|
|
287
|
+
halt !== undefined && "halt",
|
|
288
|
+
].filter(Boolean);
|
|
289
|
+
if (droppedFields.length > 0) {
|
|
290
|
+
logger.debug(`[createPersistedState] Stripped PreDirective-only fields before persistence: ${droppedFields.join(", ")}`);
|
|
291
|
+
}
|
|
292
|
+
return rest;
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Prepare a session state for persistence by stripping transient fields.
|
|
296
|
+
*
|
|
297
|
+
* This is the shared helper that every persistence adapter should call before
|
|
298
|
+
* writing session state. It ensures:
|
|
299
|
+
* - `pendingDirective` has PreDirective-only fields (`appendPrompt`,
|
|
300
|
+
* `injectTools`, `halt`) stripped (these are one-turn-lifetime and not
|
|
301
|
+
* serializable across turns).
|
|
302
|
+
* - `pendingDirective` is omitted from the result when `undefined` (adapters
|
|
303
|
+
* should not store a null/undefined key).
|
|
304
|
+
* - `signals` is passed through bit-identical (reserved for v2.x Signals).
|
|
305
|
+
* - Never writes `pendingTransition`.
|
|
306
|
+
*
|
|
307
|
+
* @param session - The in-memory session state to prepare for persistence.
|
|
308
|
+
* @returns A new session state object safe for serialization.
|
|
309
|
+
*/
|
|
310
|
+
export function createPersistedState(session) {
|
|
311
|
+
let pendingDirective = session.pendingDirective;
|
|
312
|
+
if (pendingDirective) {
|
|
313
|
+
pendingDirective = stripPreDirectiveFields(pendingDirective);
|
|
314
|
+
}
|
|
315
|
+
// Build the persisted state — omit pendingDirective key entirely when undefined
|
|
316
|
+
const persisted = {
|
|
317
|
+
id: session.id,
|
|
318
|
+
data: session.data,
|
|
319
|
+
flowHistory: session.flowHistory,
|
|
320
|
+
currentFlow: session.currentFlow,
|
|
321
|
+
currentStep: session.currentStep,
|
|
322
|
+
history: session.history,
|
|
323
|
+
metadata: session.metadata,
|
|
324
|
+
};
|
|
325
|
+
if (pendingDirective !== undefined) {
|
|
326
|
+
persisted.pendingDirective = pendingDirective;
|
|
327
|
+
}
|
|
328
|
+
// Pass through signals bit-identical (reserved for v2.x)
|
|
329
|
+
if (session.signals !== undefined) {
|
|
330
|
+
persisted.signals = session.signals;
|
|
331
|
+
}
|
|
332
|
+
return persisted;
|
|
177
333
|
}
|
|
178
334
|
//# sourceMappingURL=session.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/utils/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/utils/session.ts"],"names":[],"mappings":"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"}
|
package/docs/README.md
CHANGED
|
@@ -1,218 +1,40 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
- 🤖 **AI-Powered Routing**: Intelligent route and step selection based on conversation context and user intent
|
|
8
|
-
- 🎯 **Schema-First Data Collection**: Type-safe, structured data extraction from natural conversations
|
|
9
|
-
- 🔀 **Route DSL**: Fluent, composable API for building complex multi-step conversation flows
|
|
10
|
-
- 🏗️ **Type-Safe Context**: Generic context management with lifecycle hooks and dynamic providers
|
|
11
|
-
- 🔄 **Streaming & Tools**: Real-time streaming responses with dynamic tool execution using unified Tool interface
|
|
12
|
-
- 💾 **Comprehensive Persistence**: Database-agnostic session and message storage across multiple adapters
|
|
13
|
-
- 🛠️ **Unified Tool System**: Simplified tool creation with flexible return types and powerful pattern helpers
|
|
14
|
-
|
|
15
|
-
## 📖 Documentation Structure
|
|
16
|
-
|
|
17
|
-
### 🚀 Getting Started
|
|
18
|
-
|
|
19
|
-
- **[Quick Start Guide](./guides/getting-started/README.md)** - Build your first agent in 15 minutes
|
|
20
|
-
|
|
21
|
-
### 🏗️ Core Framework
|
|
22
|
-
|
|
23
|
-
#### Agent Architecture
|
|
24
|
-
|
|
25
|
-
- **[Agent Overview](./core/agent/README.md)** - Agent lifecycle, configuration & hooks
|
|
26
|
-
- **[Context Management](./core/agent/context-management.md)** - Dynamic context providers & updates
|
|
27
|
-
- **[Session Management](./core/agent/session-management.md)** - Session persistence & state
|
|
28
|
-
- **[Rules & Prohibitions](./core/agent/rules-and-prohibitions.md)** - Agent-wide behavioral boundaries
|
|
29
|
-
|
|
30
|
-
#### AI Routing System
|
|
31
|
-
|
|
32
|
-
- **[Intelligent Routing](./core/routing/intelligent-routing.md)** - AI-powered route and step selection
|
|
33
|
-
- **[Route DSL](./core/conversation-flows/route-dsl.md)** - Declarative conversation flow design
|
|
34
|
-
- **[Step Transitions](./core/conversation-flows/step-transitions.md)** - Conditional logic and branching
|
|
35
|
-
|
|
36
|
-
#### Conversation Flows
|
|
37
|
-
|
|
38
|
-
- **[Routes](./core/conversation-flows/routes.md)** - Route definition, lifecycle & completion
|
|
39
|
-
- **[Steps](./core/conversation-flows/steps.md)** - Step configuration, data collection & validation
|
|
40
|
-
- **[Data Collection](./core/conversation-flows/data-collection.md)** - Agent-level schema-driven data extraction
|
|
41
|
-
|
|
42
|
-
#### AI Integration
|
|
43
|
-
|
|
44
|
-
- **[AI Providers](./core/ai-integration/providers.md)** - Gemini, OpenAI, Anthropic, OpenRouter
|
|
45
|
-
- **[Prompt Composition](./core/ai-integration/prompt-composition.md)** - How prompts are built with context
|
|
46
|
-
- **[Response Processing](./core/ai-integration/response-processing.md)** - Schema extraction & tool calls
|
|
47
|
-
|
|
48
|
-
#### Tools & Execution
|
|
49
|
-
|
|
50
|
-
- **[Tool Definition](./core/tools/tool-definition.md)** - Creating and configuring tools
|
|
51
|
-
- **[Tool Scoping](./core/tools/tool-scoping.md)** - Agent, route, and step-level tool management
|
|
52
|
-
|
|
53
|
-
#### Persistence
|
|
54
|
-
|
|
55
|
-
- **[Session Storage](./core/persistence/session-storage.md)** - Session persistence patterns
|
|
56
|
-
- **[Database Adapters](./core/persistence/adapters.md)** - Built-in adapter configurations
|
|
57
|
-
|
|
58
|
-
#### Error Handling
|
|
59
|
-
|
|
60
|
-
- **[Error Handling](./core/error-handling.md)** - Comprehensive error handling patterns and recovery strategies
|
|
61
|
-
- **[Error Handling Patterns](./guides/error-handling-patterns.md)** - Practical patterns for streaming, routing, and data sync errors
|
|
62
|
-
|
|
63
|
-
### 🚀 Advanced Guides
|
|
64
|
-
|
|
65
|
-
- **[Advanced Patterns](./guides/advanced-patterns/)** - Complex use cases & integrations
|
|
66
|
-
- **[Migration Guides](./guides/migration/)** - Upgrade guides for major changes
|
|
67
|
-
- **[API Reference](./api/README.md)** - Complete API documentation
|
|
68
|
-
|
|
69
|
-
## 🎯 Quick Links
|
|
70
|
-
|
|
71
|
-
### By Learning Path
|
|
72
|
-
|
|
73
|
-
**🚀 First time here?**
|
|
74
|
-
→ Start with [Quick Start Guide](./guides/getting-started/README.md)
|
|
75
|
-
|
|
76
|
-
**🏗️ Understanding the design?**
|
|
77
|
-
→ Read [Agent Overview](./core/agent/README.md) then [Intelligent Routing](./core/routing/intelligent-routing.md)
|
|
78
|
-
|
|
79
|
-
**🤖 Building AI-powered conversations?**
|
|
80
|
-
→ See [Route DSL](./core/conversation-flows/route-dsl.md), [Intelligent Routing](./core/routing/intelligent-routing.md), and [Step Transitions](./core/conversation-flows/step-transitions.md)
|
|
81
|
-
|
|
82
|
-
**🎯 Collecting structured data?**
|
|
83
|
-
→ Learn [Agent-Level Data Collection](./core/conversation-flows/data-collection.md) and [Schema-Driven Extraction](../examples/core-concepts/schema-driven-extraction.ts)
|
|
84
|
-
|
|
85
|
-
**🔧 Working with tools?**
|
|
86
|
-
→ See [Tool Definition](./core/tools/tool-definition.md) and [Tool Scoping](./core/tools/tool-scoping.md)
|
|
87
|
-
|
|
88
|
-
**💾 Need persistence?**
|
|
89
|
-
→ See [Session Storage](./core/persistence/session-storage.md) and [Database Adapters](./core/persistence/adapters.md)
|
|
90
|
-
|
|
91
|
-
**🚀 Going to production?**
|
|
92
|
-
→ Check [Advanced Patterns](./guides/advanced-patterns/) and [Server Session Management](../examples/integrations/server-session-management.ts)
|
|
93
|
-
|
|
94
|
-
### By Topic
|
|
95
|
-
|
|
96
|
-
- **Agent Architecture**: [Agent](./core/agent/README.md) | [Context](./core/agent/context-management.md) | [Sessions](./core/agent/session-management.md)
|
|
97
|
-
- **AI Routing System**: [Intelligent Routing](./core/routing/intelligent-routing.md) | [Route DSL](./core/conversation-flows/route-dsl.md) | [Step Transitions](./core/conversation-flows/step-transitions.md)
|
|
98
|
-
- **Conversation Flows**: [Routes](./core/conversation-flows/routes.md) | [Steps](./core/conversation-flows/steps.md) | [Agent-Level Data Collection](./core/conversation-flows/data-collection.md)
|
|
99
|
-
- **AI Integration**: [Providers](./core/ai-integration/providers.md) | [Prompts](./core/ai-integration/prompt-composition.md) | [Responses](./core/ai-integration/response-processing.md)
|
|
100
|
-
- **Tools & Execution**: [Tool Definition](./core/tools/tool-definition.md) | [Tool Scoping](./core/tools/tool-scoping.md)
|
|
101
|
-
- **Persistence**: [Session Storage](./core/persistence/session-storage.md) | [Adapters](./core/persistence/adapters.md)
|
|
102
|
-
- **Error Handling**: [Core Error Handling](./core/error-handling.md) | [Error Patterns](./guides/error-handling-patterns.md)
|
|
103
|
-
- **Advanced**: [Patterns](./guides/advanced-patterns/) | [Migration](./guides/migration/) | [API Reference](./api/)
|
|
104
|
-
|
|
105
|
-
## 💡 Examples by Domain
|
|
106
|
-
|
|
107
|
-
Check out the [`examples/`](../examples/) directory for complete, runnable examples organized by architectural domain:
|
|
108
|
-
|
|
109
|
-
### 🏗️ Core Concepts
|
|
110
|
-
|
|
111
|
-
- **[Basic Agent](../examples/core-concepts/basic-agent.ts)** - Minimal agent setup and configuration
|
|
112
|
-
- **[Schema-Driven Extraction](../examples/core-concepts/schema-driven-extraction.ts)** - Type-safe data collection with JSON Schema
|
|
113
|
-
- **[Session Management](../examples/core-concepts/session-management.ts)** - Multi-turn conversations with persistence
|
|
114
|
-
- **[Modern Streaming API](../examples/core-concepts/modern-streaming-api.ts)** - Streaming responses with the modern API
|
|
115
|
-
|
|
116
|
-
### 🤖 AI Routing System
|
|
117
|
-
|
|
118
|
-
- **[Completion Transitions](../examples/conversation-flows/completion-transitions.ts)** - Automatic route transitions when flows complete
|
|
119
|
-
|
|
120
|
-
### 💬 Conversation Flows
|
|
121
|
-
|
|
122
|
-
- **[Knowledge-Based Agent](../examples/advanced-patterns/knowledge-based-agent.ts)** - Agents with domain-specific knowledge bases
|
|
123
|
-
- **[Persistent Onboarding](../examples/advanced-patterns/persistent-onboarding.ts)** - Multi-step onboarding with data persistence
|
|
124
|
-
|
|
125
|
-
### 🤖 AI Providers
|
|
126
|
-
|
|
127
|
-
- **[OpenAI Integration](../examples/ai-providers/openai-integration.ts)** - GPT-4 and GPT-3.5 Turbo with backup models
|
|
128
|
-
- **[Anthropic Integration](../examples/ai-providers/anthropic-integration.ts)** - Claude with streaming and tool calling
|
|
129
|
-
|
|
130
|
-
### 🔧 Tools & Execution
|
|
131
|
-
|
|
132
|
-
- **[Basic Tools](../examples/tools/basic-tools.ts)** - Unified Tool interface with simple return values
|
|
133
|
-
- **[Data Enrichment Tools](../examples/tools/data-enrichment-tools.ts)** - Pattern helpers for data modification
|
|
134
|
-
|
|
135
|
-
### 💾 Persistence
|
|
136
|
-
|
|
137
|
-
- **[Memory Sessions](../examples/persistence/memory-sessions.ts)** - In-memory session management
|
|
138
|
-
- **[Redis Persistence](../examples/persistence/redis-persistence.ts)** - High-performance Redis storage
|
|
139
|
-
- **[Database Persistence](../examples/persistence/database-persistence.ts)** - SQL/NoSQL database integration
|
|
140
|
-
- **[Custom Adapter](../examples/persistence/custom-adapter.ts)** - Build custom persistence adapters
|
|
141
|
-
|
|
142
|
-
### 🚀 Advanced Patterns
|
|
143
|
-
|
|
144
|
-
- **[Streaming Responses](../examples/advanced-patterns/streaming-responses.ts)** - Real-time response streaming
|
|
145
|
-
- **[Route Lifecycle Hooks](../examples/advanced-patterns/route-lifecycle-hooks.ts)** - Custom route behavior and data transformation
|
|
146
|
-
|
|
147
|
-
### 🔗 Integrations
|
|
1
|
+
---
|
|
2
|
+
title: "Documentation"
|
|
3
|
+
description: "Typed conversations where code stays in charge. Docs for @falai/agent."
|
|
4
|
+
type: overview
|
|
5
|
+
order: 0
|
|
6
|
+
---
|
|
148
7
|
|
|
149
|
-
|
|
150
|
-
- **[Healthcare Integration](../examples/integrations/healthcare-integration.ts)** - Domain-specific healthcare workflows
|
|
151
|
-
- **[Search Integration](../examples/integrations/search-integration.ts)** - Integration with search engines
|
|
152
|
-
- **[Server Session Management](../examples/integrations/server-session-management.ts)** - Server-side session handling
|
|
8
|
+
# Documentation
|
|
153
9
|
|
|
154
|
-
|
|
10
|
+
**Typed conversations where code stays in charge.**
|
|
155
11
|
|
|
156
|
-
|
|
12
|
+
Define flows, steps, and tools in TypeScript; the framework calls the LLM only for the parts that need language — routing, extraction, and generation.
|
|
157
13
|
|
|
158
|
-
|
|
14
|
+
## New here?
|
|
159
15
|
|
|
160
|
-
-
|
|
161
|
-
- **🎯 Create Examples** - Add examples for new use cases or domains
|
|
162
|
-
- **🔧 Update Code Samples** - Ensure examples work with latest framework versions
|
|
163
|
-
- **📚 Write Guides** - Create tutorials for specific patterns or integrations
|
|
164
|
-
- **🐛 Report Issues** - Found a bug in docs or examples? Let us know!
|
|
16
|
+
Walk through a five-step tutorial that builds a working agent end to end, from install to streaming responses in production.
|
|
165
17
|
|
|
166
|
-
|
|
18
|
+
[Start the tutorial](./start/01-install.md)
|
|
167
19
|
|
|
168
|
-
|
|
169
|
-
2. **Clone** your fork: `git clone https://github.com/your-username/agent.git`
|
|
170
|
-
3. **Install** dependencies: `bun install`
|
|
171
|
-
4. **Make changes** in the appropriate domain directory
|
|
172
|
-
5. **Test examples** by running them: `bun run examples/your-example.ts`
|
|
173
|
-
6. **Submit** a pull request
|
|
20
|
+
## Solving one task?
|
|
174
21
|
|
|
175
|
-
|
|
22
|
+
Eight task-shaped recipes covering conditions, branching, flow control, instructions, persistence, streaming, errors, and compaction.
|
|
176
23
|
|
|
177
|
-
|
|
24
|
+
[Browse the guides](./guides/conditions.md)
|
|
178
25
|
|
|
179
|
-
|
|
180
|
-
docs/
|
|
181
|
-
├── core/ # Core framework docs
|
|
182
|
-
│ ├── agent/ # Agent architecture & lifecycle
|
|
183
|
-
│ ├── routing/ # AI routing system & intelligent selection
|
|
184
|
-
│ ├── conversation-flows/ # Route DSL, steps, data collection
|
|
185
|
-
│ ├── ai-integration/ # Providers, prompts, response processing
|
|
186
|
-
│ ├── tools/ # Tool definition, execution, scoping
|
|
187
|
-
│ └── persistence/ # Session storage & database adapters
|
|
188
|
-
└── guides/ # End-to-end guides
|
|
189
|
-
└── [guide-name]/ # getting-started, building-agents, etc.
|
|
26
|
+
## Want the why?
|
|
190
27
|
|
|
191
|
-
|
|
192
|
-
├── core-concepts/ # Basic agent setup & fundamental concepts
|
|
193
|
-
├── ai-providers/ # AI provider integrations
|
|
194
|
-
├── conversation-flows/ # AI routing & conversation patterns
|
|
195
|
-
├── persistence/ # Session storage implementations
|
|
196
|
-
├── tools/ # Tool creation & execution patterns
|
|
197
|
-
├── advanced-patterns/ # Complex use cases & integrations
|
|
198
|
-
└── integrations/ # External service integrations
|
|
199
|
-
```
|
|
28
|
+
Three concept pages that build the mental model: the seven primitives, the per-turn pipeline, and how directives steer a conversation.
|
|
200
29
|
|
|
201
|
-
|
|
30
|
+
[Read about the architecture](./concepts/architecture.md)
|
|
202
31
|
|
|
203
|
-
|
|
204
|
-
2. **Create the example** in the appropriate domain directory
|
|
205
|
-
3. **Add comprehensive comments** explaining the concepts
|
|
206
|
-
4. **Include error handling** and best practices
|
|
207
|
-
5. **Update documentation** links if needed
|
|
208
|
-
6. **Test thoroughly** before submitting
|
|
32
|
+
## Looking up an API?
|
|
209
33
|
|
|
210
|
-
|
|
34
|
+
One page per public type. Signatures, field tables, errors, and short runnable examples for `createAgent`, `Flow`, `Step`, `Tool`, `Instruction`, `Directive`, signals, providers, adapters, and more.
|
|
211
35
|
|
|
212
|
-
|
|
213
|
-
- 💬 **[Discussions](https://github.com/falai-dev/agent/discussions)** - Ask questions and get help
|
|
214
|
-
- 🐛 **[Issues](https://github.com/falai-dev/agent/issues)** - Report bugs or request features
|
|
36
|
+
[Open the reference](./reference/create-agent.md)
|
|
215
37
|
|
|
216
38
|
---
|
|
217
39
|
|
|
218
|
-
|
|
40
|
+
Upgrading from `1.x`? See the [v1 → v2 migration guide](./migration/v1-to-v2.md).
|