@falai/agent 1.2.8 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +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/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/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 +15 -202
- 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 +15 -0
- package/docs/migration/route-to-flow.md +560 -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/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
|
@@ -1,355 +0,0 @@
|
|
|
1
|
-
# Prompt Composition
|
|
2
|
-
|
|
3
|
-
@fali/agent automatically builds comprehensive prompts for AI providers by combining agent configuration, route context, conversation history, and current session state.
|
|
4
|
-
|
|
5
|
-
## Overview
|
|
6
|
-
|
|
7
|
-
The `PromptComposer` class is responsible for constructing detailed prompts that provide AI models with all necessary context to make intelligent routing and response decisions.
|
|
8
|
-
|
|
9
|
-
## Prompt Structure
|
|
10
|
-
|
|
11
|
-
Prompts are built with multiple sections in a specific order:
|
|
12
|
-
|
|
13
|
-
1. **Agent Identity** - Core agent persona and personality
|
|
14
|
-
2. **Routing Overview** - Available routes and current context
|
|
15
|
-
3. **Knowledge Base** - Agent and route-specific knowledge
|
|
16
|
-
4. **Guidelines & Rules** - Behavioral constraints and preferences
|
|
17
|
-
5. **Conversation History** - Previous messages and context
|
|
18
|
-
6. **Current Session** - Active route, collected data, and step state
|
|
19
|
-
7. **Task-Specific Instructions** - Route-specific prompts and schemas
|
|
20
|
-
|
|
21
|
-
## Agent Identity Section
|
|
22
|
-
|
|
23
|
-
```typescript
|
|
24
|
-
// Agent configuration contributes to identity
|
|
25
|
-
const agent = new Agent({
|
|
26
|
-
name: "TravelBot",
|
|
27
|
-
description: "AI assistant for travel planning and booking",
|
|
28
|
-
goal: "Help users plan perfect trips efficiently",
|
|
29
|
-
personality: "Friendly, knowledgeable, and efficient",
|
|
30
|
-
});
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
This generates:
|
|
34
|
-
|
|
35
|
-
```
|
|
36
|
-
You are TravelBot, an AI assistant for travel planning and booking.
|
|
37
|
-
Your goal is to help users plan perfect trips efficiently.
|
|
38
|
-
You are friendly, knowledgeable, and efficient.
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## Routing Overview Section
|
|
42
|
-
|
|
43
|
-
Provides the AI with information about available conversation routes:
|
|
44
|
-
|
|
45
|
-
```
|
|
46
|
-
Available Routes:
|
|
47
|
-
1. Flight Booking - Help users book flights
|
|
48
|
-
2. Hotel Reservation - Find and book accommodations
|
|
49
|
-
3. Travel Itinerary - Create detailed trip plans
|
|
50
|
-
4. Customer Support - Handle travel-related questions
|
|
51
|
-
|
|
52
|
-
Current Route: Flight Booking
|
|
53
|
-
Route Description: Help users book flights with the best options
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
## Knowledge Base Integration
|
|
57
|
-
|
|
58
|
-
Agent and route knowledge bases are formatted and included:
|
|
59
|
-
|
|
60
|
-
```typescript
|
|
61
|
-
const agent = new Agent({
|
|
62
|
-
knowledgeBase: {
|
|
63
|
-
company: "Acme Travel - Premium travel services since 1995",
|
|
64
|
-
policies: {
|
|
65
|
-
cancellation: "Free cancellation up to 24 hours before departure",
|
|
66
|
-
refund: "Refunds processed within 3-5 business days",
|
|
67
|
-
},
|
|
68
|
-
},
|
|
69
|
-
});
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
## Guidelines & Rules Section
|
|
73
|
-
|
|
74
|
-
Combines agent-level and route-level behavioral constraints:
|
|
75
|
-
|
|
76
|
-
```
|
|
77
|
-
Guidelines:
|
|
78
|
-
- Always be polite and helpful
|
|
79
|
-
- Ask clarifying questions when needed
|
|
80
|
-
- Provide options rather than single recommendations
|
|
81
|
-
|
|
82
|
-
Rules for this route:
|
|
83
|
-
- Always confirm flight details before booking
|
|
84
|
-
- Never share personal information
|
|
85
|
-
- Use specific date formats (YYYY-MM-DD)
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
## Conversation History
|
|
89
|
-
|
|
90
|
-
Recent conversation history with context updates:
|
|
91
|
-
|
|
92
|
-
```
|
|
93
|
-
Previous Messages:
|
|
94
|
-
User: I want to book a flight to Paris
|
|
95
|
-
Assistant: I'd be happy to help you book a flight to Paris. When would you like to travel?
|
|
96
|
-
|
|
97
|
-
User: Next week, for 3 nights
|
|
98
|
-
Assistant: Great! Let me check flights for next week. Could you tell me which airport you'd like to depart from?
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
## Session State
|
|
102
|
-
|
|
103
|
-
Current session information including:
|
|
104
|
-
|
|
105
|
-
- Active route and step
|
|
106
|
-
- Agent-level collected data (with privacy filtering)
|
|
107
|
-
- Route progress and completion status
|
|
108
|
-
- Cross-route data availability
|
|
109
|
-
|
|
110
|
-
```
|
|
111
|
-
Current Session:
|
|
112
|
-
- Route: Flight Booking (2/3 required fields collected)
|
|
113
|
-
- Step: ask_passengers
|
|
114
|
-
- Agent Data: { destination: "Paris", departureDate: "2025-01-15" }
|
|
115
|
-
- Missing Required: passengers
|
|
116
|
-
- Available from other routes: { hotelPreference: "luxury" }
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
## Dynamic Schema Generation
|
|
120
|
-
|
|
121
|
-
For data collection steps, the prompt includes agent-level JSON schemas:
|
|
122
|
-
|
|
123
|
-
```typescript
|
|
124
|
-
// Agent-level schema
|
|
125
|
-
const agent = new Agent<{}, TravelData>({
|
|
126
|
-
schema: {
|
|
127
|
-
type: "object",
|
|
128
|
-
properties: {
|
|
129
|
-
destination: { type: "string" },
|
|
130
|
-
departureDate: { type: "string", format: "date" },
|
|
131
|
-
passengers: { type: "number", minimum: 1 },
|
|
132
|
-
hotelPreference: { type: "string" },
|
|
133
|
-
budgetRange: { type: "string" }
|
|
134
|
-
},
|
|
135
|
-
required: ["destination", "departureDate"]
|
|
136
|
-
}
|
|
137
|
-
});
|
|
138
|
-
|
|
139
|
-
// Route specifies which fields to collect
|
|
140
|
-
const flightRoute = agent.createRoute({
|
|
141
|
-
title: "Flight Booking",
|
|
142
|
-
requiredFields: ["destination", "departureDate", "passengers"],
|
|
143
|
-
optionalFields: ["budgetRange"]
|
|
144
|
-
});
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
Generates:
|
|
148
|
-
|
|
149
|
-
```
|
|
150
|
-
Extract the following information from the user's response based on the agent schema:
|
|
151
|
-
- destination: string - Where the user wants to fly
|
|
152
|
-
- departureDate: string (date format) - When they want to depart
|
|
153
|
-
- passengers: number (minimum 1) - How many people are traveling
|
|
154
|
-
- budgetRange: string (optional) - Budget preference for the trip
|
|
155
|
-
|
|
156
|
-
Return extracted data as valid JSON matching the agent schema.
|
|
157
|
-
Current route requires: destination, departureDate, passengers
|
|
158
|
-
Route completion: 2/3 required fields collected
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
## Tool Integration
|
|
162
|
-
|
|
163
|
-
When tools are available, they're described in the prompt:
|
|
164
|
-
|
|
165
|
-
```
|
|
166
|
-
Available Tools:
|
|
167
|
-
1. searchFlights - Search for available flights
|
|
168
|
-
Parameters:
|
|
169
|
-
- origin: string - Departure airport code
|
|
170
|
-
- destination: string - Arrival airport code
|
|
171
|
-
- date: string - Travel date (YYYY-MM-DD)
|
|
172
|
-
|
|
173
|
-
2. checkWeather - Get weather forecast
|
|
174
|
-
Parameters:
|
|
175
|
-
- location: string - City or airport code
|
|
176
|
-
- date: string - Date for forecast
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
## Context Updates
|
|
180
|
-
|
|
181
|
-
Real-time context changes are included:
|
|
182
|
-
|
|
183
|
-
```
|
|
184
|
-
Current Context:
|
|
185
|
-
- User tier: premium
|
|
186
|
-
- Preferred language: English
|
|
187
|
-
- Last login: 2024-01-15
|
|
188
|
-
- Current location: New York
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
## Route-Specific Customization
|
|
192
|
-
|
|
193
|
-
Routes can override agent-level settings:
|
|
194
|
-
|
|
195
|
-
```typescript
|
|
196
|
-
const supportRoute = agent.createRoute({
|
|
197
|
-
title: "Customer Support",
|
|
198
|
-
personality: "Extra patient and detailed when explaining issues",
|
|
199
|
-
knowledgeBase: {
|
|
200
|
-
supportHours: "24/7 for premium members, 9-5 EST for others",
|
|
201
|
-
},
|
|
202
|
-
});
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
## Performance Optimization
|
|
206
|
-
|
|
207
|
-
Prompts are optimized for token efficiency:
|
|
208
|
-
|
|
209
|
-
- Knowledge bases are formatted as clean markdown
|
|
210
|
-
- Redundant information is deduplicated
|
|
211
|
-
- Context is truncated when approaching token limits
|
|
212
|
-
- Only relevant route information is included
|
|
213
|
-
|
|
214
|
-
## Best Practices
|
|
215
|
-
|
|
216
|
-
- Keep knowledge bases structured and concise
|
|
217
|
-
- Use clear, specific guidelines rather than vague instructions
|
|
218
|
-
- Leverage route-specific overrides for specialized behavior
|
|
219
|
-
- Monitor token usage and optimize prompt length
|
|
220
|
-
- Test prompts with different AI providers for consistency
|
|
221
|
-
|
|
222
|
-
## BatchPromptBuilder for Multi-Step Execution
|
|
223
|
-
|
|
224
|
-
When multiple steps execute in a single batch, the `BatchPromptBuilder` combines their prompts into a single coherent prompt.
|
|
225
|
-
|
|
226
|
-
### Combined Prompt Structure
|
|
227
|
-
|
|
228
|
-
```
|
|
229
|
-
[Agent Identity & Personality]
|
|
230
|
-
[Route Context]
|
|
231
|
-
|
|
232
|
-
## Current Conversation Flow
|
|
233
|
-
|
|
234
|
-
You are handling multiple aspects of this conversation in a single response.
|
|
235
|
-
|
|
236
|
-
### Step 1: [Step Description]
|
|
237
|
-
[Step Prompt]
|
|
238
|
-
|
|
239
|
-
### Step 2: [Step Description]
|
|
240
|
-
[Step Prompt]
|
|
241
|
-
|
|
242
|
-
[... additional steps ...]
|
|
243
|
-
|
|
244
|
-
## Data Collection
|
|
245
|
-
|
|
246
|
-
Extract the following information from your response:
|
|
247
|
-
- field1 (type): description
|
|
248
|
-
- field2 (type): description
|
|
249
|
-
|
|
250
|
-
## Response Format
|
|
251
|
-
|
|
252
|
-
Return JSON with:
|
|
253
|
-
- message: Your response to the user
|
|
254
|
-
- [collected fields as top-level properties]
|
|
255
|
-
```
|
|
256
|
-
|
|
257
|
-
### How Prompts Are Merged
|
|
258
|
-
|
|
259
|
-
The `BatchPromptBuilder` preserves each step's intent while creating a unified prompt:
|
|
260
|
-
|
|
261
|
-
```typescript
|
|
262
|
-
// Individual step prompts
|
|
263
|
-
const step1 = { prompt: "What's your name?", collect: ["name"] };
|
|
264
|
-
const step2 = { prompt: "What's your email?", collect: ["email"] };
|
|
265
|
-
const step3 = { prompt: "How can I help?", collect: ["request"] };
|
|
266
|
-
|
|
267
|
-
// Combined prompt includes all three
|
|
268
|
-
const result = await batchPromptBuilder.buildBatchPrompt({
|
|
269
|
-
steps: [step1, step2, step3],
|
|
270
|
-
route,
|
|
271
|
-
history,
|
|
272
|
-
context,
|
|
273
|
-
session,
|
|
274
|
-
agentOptions,
|
|
275
|
-
});
|
|
276
|
-
|
|
277
|
-
// result.prompt contains unified prompt
|
|
278
|
-
// result.collectFields = ["name", "email", "request"]
|
|
279
|
-
// result.stepCount = 3
|
|
280
|
-
```
|
|
281
|
-
|
|
282
|
-
### Collect Fields Aggregation
|
|
283
|
-
|
|
284
|
-
All `collect` fields from all steps are combined and deduplicated:
|
|
285
|
-
|
|
286
|
-
```typescript
|
|
287
|
-
// Steps with overlapping collect fields
|
|
288
|
-
const steps = [
|
|
289
|
-
{ collect: ["name", "email"] },
|
|
290
|
-
{ collect: ["email", "phone"] }, // email appears twice
|
|
291
|
-
{ collect: ["preferences"] }
|
|
292
|
-
];
|
|
293
|
-
|
|
294
|
-
// Combined collect fields (deduplicated)
|
|
295
|
-
// ["name", "email", "phone", "preferences"]
|
|
296
|
-
```
|
|
297
|
-
|
|
298
|
-
### Schema-Aware Field Descriptions
|
|
299
|
-
|
|
300
|
-
When the agent has a schema, field descriptions are included in the prompt:
|
|
301
|
-
|
|
302
|
-
```typescript
|
|
303
|
-
// Agent schema
|
|
304
|
-
const schema = {
|
|
305
|
-
properties: {
|
|
306
|
-
email: { type: "string", format: "email", description: "User's email address" },
|
|
307
|
-
guests: { type: "number", minimum: 1, description: "Number of guests" }
|
|
308
|
-
}
|
|
309
|
-
};
|
|
310
|
-
|
|
311
|
-
// Generated data collection section:
|
|
312
|
-
// ## Data Collection
|
|
313
|
-
// Extract the following information from your response:
|
|
314
|
-
// - email (string): User's email address
|
|
315
|
-
// - guests (number): Number of guests
|
|
316
|
-
```
|
|
317
|
-
|
|
318
|
-
### Single vs Multi-Step Prompts
|
|
319
|
-
|
|
320
|
-
The prompt structure adapts based on batch size:
|
|
321
|
-
|
|
322
|
-
```typescript
|
|
323
|
-
// Single step batch
|
|
324
|
-
// ## Current Step
|
|
325
|
-
// [Step prompt]
|
|
326
|
-
|
|
327
|
-
// Multi-step batch
|
|
328
|
-
// ## Current Conversation Flow
|
|
329
|
-
// You are handling multiple aspects of this conversation in a single response.
|
|
330
|
-
// ### Step 1: ...
|
|
331
|
-
// ### Step 2: ...
|
|
332
|
-
```
|
|
333
|
-
|
|
334
|
-
### Using BatchPromptBuilder
|
|
335
|
-
|
|
336
|
-
```typescript
|
|
337
|
-
import { BatchPromptBuilder } from "@falai/agent";
|
|
338
|
-
|
|
339
|
-
const builder = new BatchPromptBuilder<MyContext, MyData>();
|
|
340
|
-
|
|
341
|
-
const result = await builder.buildBatchPrompt({
|
|
342
|
-
steps: batchResult.steps,
|
|
343
|
-
route: currentRoute,
|
|
344
|
-
history: conversationHistory,
|
|
345
|
-
context: agentContext,
|
|
346
|
-
session: currentSession,
|
|
347
|
-
agentOptions: agent.getAgentOptions(),
|
|
348
|
-
});
|
|
349
|
-
|
|
350
|
-
// Use result.prompt for LLM call
|
|
351
|
-
const llmResponse = await provider.generateMessage({
|
|
352
|
-
prompt: result.prompt,
|
|
353
|
-
// ...
|
|
354
|
-
});
|
|
355
|
-
```
|