@falai/agent 1.2.7 → 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 +1196 -1015
- 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 +524 -134
- 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/GeminiProvider.d.ts +3 -3
- package/dist/cjs/providers/GeminiProvider.d.ts.map +1 -1
- package/dist/cjs/providers/GeminiProvider.js +16 -14
- package/dist/cjs/providers/GeminiProvider.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 +1198 -1017
- 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 +524 -135
- 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/GeminiProvider.d.ts +3 -3
- package/dist/providers/GeminiProvider.d.ts.map +1 -1
- package/dist/providers/GeminiProvider.js +16 -14
- package/dist/providers/GeminiProvider.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 +1458 -1241
- package/src/core/ResponsePipeline.ts +675 -173
- 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/GeminiProvider.ts +17 -15
- 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/src/types/route.ts
DELETED
|
@@ -1,392 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Route/Journey DSL type definitions
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import type { Tool } from "./tool";
|
|
6
|
-
import type { StructuredSchema } from "./schema";
|
|
7
|
-
import type { Guideline, Term } from "./agent";
|
|
8
|
-
import { Template, ConditionTemplate } from "./template";
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Reason why batch execution stopped
|
|
12
|
-
* Used to indicate the stopping condition for multi-step execution
|
|
13
|
-
*/
|
|
14
|
-
export type StoppedReason =
|
|
15
|
-
| 'needs_input' // Step requires uncollected data
|
|
16
|
-
| 'end_route' // Reached END_ROUTE
|
|
17
|
-
| 'route_complete' // All Steps processed
|
|
18
|
-
| 'max_steps_reached' // Batch hit the maxStepsPerBatch limit
|
|
19
|
-
| 'prepare_error' // Error in prepare hook
|
|
20
|
-
| 'llm_error' // Error during LLM call
|
|
21
|
-
| 'validation_error' // Error validating collected data
|
|
22
|
-
| 'finalize_error'; // Error in finalize hook (non-fatal, logged)
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Event types for batch execution observability
|
|
26
|
-
*/
|
|
27
|
-
export type BatchExecutionEventType =
|
|
28
|
-
| 'batch_start'
|
|
29
|
-
| 'step_included'
|
|
30
|
-
| 'step_skipped'
|
|
31
|
-
| 'batch_stop'
|
|
32
|
-
| 'batch_complete';
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Event emitted during batch execution for debugging and observability
|
|
36
|
-
*
|
|
37
|
-
* **Validates: Requirements 11.3**
|
|
38
|
-
*/
|
|
39
|
-
export interface BatchExecutionEvent {
|
|
40
|
-
/** Type of batch execution event */
|
|
41
|
-
type: BatchExecutionEventType;
|
|
42
|
-
/** Timestamp when the event occurred */
|
|
43
|
-
timestamp: Date;
|
|
44
|
-
/** Event-specific details */
|
|
45
|
-
details: {
|
|
46
|
-
/** Step ID related to this event (for step_included, step_skipped) */
|
|
47
|
-
stepId?: string;
|
|
48
|
-
/** Reason for the event (e.g., why step was skipped or batch stopped) */
|
|
49
|
-
reason?: string;
|
|
50
|
-
/** Current batch size (for batch_start, batch_complete) */
|
|
51
|
-
batchSize?: number;
|
|
52
|
-
/** Stopped reason (for batch_stop, batch_complete) */
|
|
53
|
-
stoppedReason?: StoppedReason;
|
|
54
|
-
/** Phase timing information (for batch_complete) */
|
|
55
|
-
timing?: BatchExecutionTiming;
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Timing information for batch execution phases
|
|
61
|
-
*/
|
|
62
|
-
export interface BatchExecutionTiming {
|
|
63
|
-
/** Total batch execution time in milliseconds */
|
|
64
|
-
totalMs: number;
|
|
65
|
-
/** Time spent in batch determination phase */
|
|
66
|
-
determinationMs?: number;
|
|
67
|
-
/** Time spent executing prepare hooks */
|
|
68
|
-
prepareHooksMs?: number;
|
|
69
|
-
/** Time spent in LLM call */
|
|
70
|
-
llmCallMs?: number;
|
|
71
|
-
/** Time spent collecting data */
|
|
72
|
-
dataCollectionMs?: number;
|
|
73
|
-
/** Time spent executing finalize hooks */
|
|
74
|
-
finalizeHooksMs?: number;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* Callback type for batch execution event listeners
|
|
79
|
-
*/
|
|
80
|
-
export type BatchExecutionEventListener = (event: BatchExecutionEvent) => void;
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Reference to a route
|
|
84
|
-
*/
|
|
85
|
-
export interface RouteRef {
|
|
86
|
-
/** Route identifier */
|
|
87
|
-
id: string;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* Reference to a step within a route
|
|
92
|
-
*/
|
|
93
|
-
export interface StepRef {
|
|
94
|
-
/** Step identifier */
|
|
95
|
-
id: string;
|
|
96
|
-
/** Route this step belongs to */
|
|
97
|
-
routeId: string;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* Result of batch determination - which steps can execute together
|
|
102
|
-
* @template TContext - Type of context data
|
|
103
|
-
* @template TData - Type of collected data
|
|
104
|
-
*/
|
|
105
|
-
export interface BatchResult<TContext = unknown, TData = unknown> {
|
|
106
|
-
/** Steps included in this batch */
|
|
107
|
-
steps: StepOptions<TContext, TData>[];
|
|
108
|
-
/** Why the batch stopped */
|
|
109
|
-
stoppedReason: StoppedReason;
|
|
110
|
-
/** The Step that caused the stop (if applicable) */
|
|
111
|
-
stoppedAtStep?: StepOptions<TContext, TData>;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* Error details for batch execution failures
|
|
116
|
-
*/
|
|
117
|
-
export interface BatchExecutionError {
|
|
118
|
-
/** Type of error that occurred */
|
|
119
|
-
type: 'pre_extraction' | 'skipif_evaluation' | 'prepare_hook' |
|
|
120
|
-
'llm_call' | 'data_validation' | 'finalize_hook';
|
|
121
|
-
/** Error message */
|
|
122
|
-
message: string;
|
|
123
|
-
/** Step where error occurred (if applicable) */
|
|
124
|
-
stepId?: string;
|
|
125
|
-
/** Additional error details */
|
|
126
|
-
details?: unknown;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
/**
|
|
130
|
-
* Result of executing a batch of steps
|
|
131
|
-
* @template TData - Type of collected data
|
|
132
|
-
*/
|
|
133
|
-
export interface BatchExecutionResult<TData = unknown> {
|
|
134
|
-
/** The generated message */
|
|
135
|
-
message: string;
|
|
136
|
-
/** Updated session state */
|
|
137
|
-
session: import('./session').SessionState<TData>;
|
|
138
|
-
/** Steps that were executed */
|
|
139
|
-
executedSteps: StepRef[];
|
|
140
|
-
/** Why execution stopped */
|
|
141
|
-
stoppedReason: StoppedReason;
|
|
142
|
-
/** Collected data from the batch */
|
|
143
|
-
collectedData?: Partial<TData>;
|
|
144
|
-
/** Any errors that occurred */
|
|
145
|
-
error?: BatchExecutionError;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
/**
|
|
149
|
-
* Route lifecycle hooks for managing route-specific data and behavior
|
|
150
|
-
*/
|
|
151
|
-
export interface RouteLifecycleHooks<TContext = unknown, TData = unknown> {
|
|
152
|
-
/**
|
|
153
|
-
* Called after collected data is updated for this route (from AI response or tool execution)
|
|
154
|
-
* Useful for validation, enrichment, or persistence of route-specific collected data
|
|
155
|
-
* Return modified collected data or the same data to keep it unchanged
|
|
156
|
-
*
|
|
157
|
-
* Unlike Agent-level onDataUpdate, this only triggers for data changes in this specific route.
|
|
158
|
-
*/
|
|
159
|
-
onDataUpdate?: (
|
|
160
|
-
data: Partial<TData>,
|
|
161
|
-
previousCollected: Partial<TData>
|
|
162
|
-
) => Partial<TData> | Promise<Partial<TData>>;
|
|
163
|
-
|
|
164
|
-
/**
|
|
165
|
-
* Called after context is updated via updateContext() when this route is active
|
|
166
|
-
* Useful for route-specific context reactions, validation, or side effects
|
|
167
|
-
*
|
|
168
|
-
* Unlike Agent-level onContextUpdate, this only triggers when this specific route is active.
|
|
169
|
-
*/
|
|
170
|
-
onContextUpdate?: (
|
|
171
|
-
newContext: TContext,
|
|
172
|
-
previousContext: TContext
|
|
173
|
-
) => void | Promise<void>;
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
/**
|
|
177
|
-
* Route transition configuration when route completes
|
|
178
|
-
*/
|
|
179
|
-
export interface RouteTransitionConfig<TContext = unknown, TData = unknown> {
|
|
180
|
-
/** Target route ID or title to transition to */
|
|
181
|
-
nextStep: string;
|
|
182
|
-
/** Optional AI-evaluated condition for the transition */
|
|
183
|
-
condition?: Template<TContext, TData>;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
/**
|
|
187
|
-
* Function type for dynamic route completion transitions
|
|
188
|
-
* @param session - Current session step with collected data
|
|
189
|
-
* @param context - Agent context
|
|
190
|
-
* @returns Route ID/title to transition to, or transition config, or undefined to end
|
|
191
|
-
*/
|
|
192
|
-
export type RouteCompletionHandler<TContext = unknown, TData = unknown> = (
|
|
193
|
-
session: { data?: Partial<TData> },
|
|
194
|
-
context?: TContext
|
|
195
|
-
) =>
|
|
196
|
-
| string
|
|
197
|
-
| RouteTransitionConfig<TContext, TData>
|
|
198
|
-
| undefined
|
|
199
|
-
| Promise<string | RouteTransitionConfig<TContext, TData> | undefined>;
|
|
200
|
-
|
|
201
|
-
/**
|
|
202
|
-
* Options for creating a route
|
|
203
|
-
* @template TData - Type of data collected throughout the route (inferred from schema)
|
|
204
|
-
*/
|
|
205
|
-
export interface RouteOptions<TContext = unknown, TData = unknown> {
|
|
206
|
-
/** Custom ID for the route (optional - will generate deterministic ID from title if not provided) */
|
|
207
|
-
id?: string;
|
|
208
|
-
/** Title of the route */
|
|
209
|
-
title: string;
|
|
210
|
-
/** Description of what this route accomplishes */
|
|
211
|
-
description?: string;
|
|
212
|
-
/** Optional identity prompt defining the agent's role and persona for this route */
|
|
213
|
-
identity?: Template<TContext, TData>;
|
|
214
|
-
/** Optional personality prompt defining the agent's communication style for this route */
|
|
215
|
-
personality?: Template<TContext, TData>;
|
|
216
|
-
/** Conditions that activate this route */
|
|
217
|
-
when?: ConditionTemplate<TContext, TData>;
|
|
218
|
-
/** Conditions that prevent this route from being considered */
|
|
219
|
-
skipIf?: ConditionTemplate<TContext, TData>;
|
|
220
|
-
/** Initial guidelines for this route */
|
|
221
|
-
guidelines?: Guideline<TContext, TData>[];
|
|
222
|
-
/** Initial terms for the route's domain glossary */
|
|
223
|
-
terms?: Term<TContext>[];
|
|
224
|
-
/** Tools available in this route */
|
|
225
|
-
tools?: (string | Tool<TContext, TData>)[];
|
|
226
|
-
/** Absolute rules the agent must follow in this route */
|
|
227
|
-
rules?: Template<TContext, TData>[];
|
|
228
|
-
/** Absolute prohibitions the agent must never do in this route */
|
|
229
|
-
prohibitions?: Template<TContext, TData>[];
|
|
230
|
-
/** Optional: extractions the router may return (added to routing schema) */
|
|
231
|
-
routingExtrasSchema?: StructuredSchema;
|
|
232
|
-
/** Optional: structured response data for this route's message generation */
|
|
233
|
-
responseOutputSchema?: StructuredSchema;
|
|
234
|
-
/**
|
|
235
|
-
* Required fields for route completion - must be valid keys from agent's TData type
|
|
236
|
-
* Route is considered complete when all required fields are present in agent data
|
|
237
|
-
*/
|
|
238
|
-
requiredFields?: (keyof TData)[];
|
|
239
|
-
/**
|
|
240
|
-
* Optional fields that enhance the route but aren't required for completion
|
|
241
|
-
* Must be valid keys from agent's TData type
|
|
242
|
-
*/
|
|
243
|
-
optionalFields?: (keyof TData)[];
|
|
244
|
-
/**
|
|
245
|
-
* Initial data to pre-populate when entering this route
|
|
246
|
-
* Useful for restoring sessions or pre-filling known information
|
|
247
|
-
* Steps with skipIf conditions will be automatically bypassed if data is present
|
|
248
|
-
* Now refers to agent-level data
|
|
249
|
-
*/
|
|
250
|
-
initialData?: Partial<TData>;
|
|
251
|
-
/**
|
|
252
|
-
* NEW: Sequential steps for simple linear flows
|
|
253
|
-
* If provided, automatically chains the steps from initialStep to END_ROUTE
|
|
254
|
-
* For complex flows with branching, build the step machine manually instead
|
|
255
|
-
*/
|
|
256
|
-
steps?: StepOptions<TContext, TData>[];
|
|
257
|
-
/**
|
|
258
|
-
* Configure the initial step (optional)
|
|
259
|
-
* Accepts full StepOptions configuration (id, prompt, collect, skipIf, etc.)
|
|
260
|
-
* Note: tool and step properties are ignored for initial step
|
|
261
|
-
*/
|
|
262
|
-
initialStep?: Omit<StepOptions<TContext, TData>, "step">;
|
|
263
|
-
/**
|
|
264
|
-
* Configure the end step (optional)
|
|
265
|
-
* Defines what happens when the route completes (reaches END_ROUTE)
|
|
266
|
-
* Can include prompt for completion message, tool for final actions, etc.
|
|
267
|
-
* Note: step, condition, skipIf properties are ignored for end step
|
|
268
|
-
*/
|
|
269
|
-
endStep?: Omit<StepOptions<TContext, TData>, "step" | "condition" | "skipIf">;
|
|
270
|
-
/**
|
|
271
|
-
* Optional transition when route completes (reaches END_ROUTE)
|
|
272
|
-
* Can be:
|
|
273
|
-
* - String: Route ID or title to transition to
|
|
274
|
-
* - Object: Transition config with optional AI-evaluated condition
|
|
275
|
-
* - Function: Dynamic logic that returns route ID, config, or undefined
|
|
276
|
-
*
|
|
277
|
-
* @example
|
|
278
|
-
* // Simple string
|
|
279
|
-
* onComplete: "feedback-collection"
|
|
280
|
-
*
|
|
281
|
-
* @example
|
|
282
|
-
* // With condition
|
|
283
|
-
* onComplete: {
|
|
284
|
-
* nextStep: "feedback-collection",
|
|
285
|
-
* condition: "if booking succeeded"
|
|
286
|
-
* }
|
|
287
|
-
*
|
|
288
|
-
* @example
|
|
289
|
-
* // Dynamic function
|
|
290
|
-
* onComplete: (session) => {
|
|
291
|
-
* if (session.data?.success) return "feedback";
|
|
292
|
-
* return "error-recovery";
|
|
293
|
-
* }
|
|
294
|
-
*/
|
|
295
|
-
onComplete?:
|
|
296
|
-
| string
|
|
297
|
-
| RouteTransitionConfig<TContext, TData>
|
|
298
|
-
| RouteCompletionHandler<TContext, TData>;
|
|
299
|
-
/**
|
|
300
|
-
* Route lifecycle hooks
|
|
301
|
-
*/
|
|
302
|
-
hooks?: RouteLifecycleHooks<TContext, TData>;
|
|
303
|
-
/** Knowledge base specific to this route containing any JSON structure the AI should know */
|
|
304
|
-
knowledgeBase?: Record<string, unknown>;
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
/**
|
|
308
|
-
* Specification for a step transition
|
|
309
|
-
*/
|
|
310
|
-
export interface StepOptions<TContext = unknown, TData = unknown> {
|
|
311
|
-
/** Custom ID for this step (optional - will generate deterministic ID if not provided) */
|
|
312
|
-
id?: string;
|
|
313
|
-
/** Description of the transition */
|
|
314
|
-
description?: string;
|
|
315
|
-
/** Transition to a chat state with this description */
|
|
316
|
-
prompt?: Template<TContext, TData>;
|
|
317
|
-
/** Tools available for AI to call in this step (by ID reference or inline definition) */
|
|
318
|
-
tools?: (string | Tool<TContext, TData>)[];
|
|
319
|
-
/** Programmatic function or tool to run before AI responds */
|
|
320
|
-
prepare?:
|
|
321
|
-
| string
|
|
322
|
-
| Tool<TContext, TData>
|
|
323
|
-
| ((context: TContext, data?: Partial<TData>) => void | Promise<void>);
|
|
324
|
-
/** Programmatic function or tool to run after AI responds */
|
|
325
|
-
finalize?:
|
|
326
|
-
| string
|
|
327
|
-
| Tool<TContext, TData>
|
|
328
|
-
| ((context: TContext, data?: Partial<TData>) => void | Promise<void>);
|
|
329
|
-
/** Transition to a specific step or end marker */
|
|
330
|
-
step?: StepRef | symbol;
|
|
331
|
-
/**
|
|
332
|
-
* Fields to collect from the conversation in this step
|
|
333
|
-
* These should match keys in the agent's TData schema
|
|
334
|
-
*/
|
|
335
|
-
collect?: (keyof TData)[];
|
|
336
|
-
/**
|
|
337
|
-
* Condition to determine if this step should be skipped
|
|
338
|
-
* If evaluates to true, the step will be bypassed
|
|
339
|
-
* Supports strings (AI context), functions (programmatic), and arrays
|
|
340
|
-
*/
|
|
341
|
-
skipIf?: ConditionTemplate<TContext, TData>;
|
|
342
|
-
/**
|
|
343
|
-
* Required data fields that must be present before entering this step
|
|
344
|
-
* If any required field is missing, step cannot be entered
|
|
345
|
-
* Must be valid keys from agent's TData type
|
|
346
|
-
*/
|
|
347
|
-
requires?: (keyof TData)[];
|
|
348
|
-
/**
|
|
349
|
-
* Optional condition for this transition
|
|
350
|
-
* Description of when this transition should be taken
|
|
351
|
-
* Supports strings (AI context), functions (programmatic), and arrays
|
|
352
|
-
*/
|
|
353
|
-
when?: ConditionTemplate<TContext, TData>;
|
|
354
|
-
/** Initial guidelines for this step */
|
|
355
|
-
guidelines?: Guideline<TContext, TData>[];
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
/**
|
|
359
|
-
* Specification for a branch in the conversation flow
|
|
360
|
-
*/
|
|
361
|
-
export interface BranchSpec<TContext = unknown, TData = unknown> {
|
|
362
|
-
/** User-friendly identifier for this branch (used as object key) */
|
|
363
|
-
name: string;
|
|
364
|
-
/** Optional ID for this branch (auto-generated if not provided) */
|
|
365
|
-
id?: string;
|
|
366
|
-
/** Step configuration for this branch */
|
|
367
|
-
step: StepOptions<TContext, TData>;
|
|
368
|
-
}
|
|
369
|
-
|
|
370
|
-
/**
|
|
371
|
-
* Result of a branch operation
|
|
372
|
-
* Maps branch names to their respective step results for continued chaining
|
|
373
|
-
*/
|
|
374
|
-
export interface BranchResult<TContext = unknown, TData = unknown> {
|
|
375
|
-
[branchName: string]: StepResult<TContext, TData>;
|
|
376
|
-
}
|
|
377
|
-
|
|
378
|
-
/**
|
|
379
|
-
* Result of a transition operation
|
|
380
|
-
* Combines step reference with the ability to chain transitions and create branches
|
|
381
|
-
*/
|
|
382
|
-
export interface StepResult<TContext = unknown, TData = unknown>
|
|
383
|
-
extends StepRef {
|
|
384
|
-
/** Allow chaining transitions */
|
|
385
|
-
nextStep: (spec: StepOptions<TContext, TData>) => StepResult<TContext, TData>;
|
|
386
|
-
/** Create multiple branches from this step */
|
|
387
|
-
branch: (
|
|
388
|
-
branches: BranchSpec<TContext, TData>[]
|
|
389
|
-
) => BranchResult<TContext, TData>;
|
|
390
|
-
/** Shortcut to end the current route */
|
|
391
|
-
endRoute: (options?: Omit<StepOptions<TContext, TData>, "step">) => StepResult<TContext, TData>;
|
|
392
|
-
}
|