@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/dist/types/tool.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/types/tool.ts"],"names":[],"mappings":"AACA;;GAEG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/types/tool.ts"],"names":[],"mappings":"AACA;;GAEG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,QAAQ,GAAG,GAAG,EAAE,KAAK,GAAG,GAAG;IACtD,+BAA+B;IAC/B,OAAO,EAAE,QAAQ,CAAC;IAClB,iDAAiD;IACjD,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACrB,0BAA0B;IAC1B,OAAO,EAAE,KAAK,EAAE,CAAC;IACjB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC,0EAA0E;IAC1E,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,iFAAiF;IACjF,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,+CAA+C;IAC/C,QAAQ,CAAC,CAAC,SAAS,MAAM,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAC9D,6CAA6C;IAC7C,QAAQ,CAAC,CAAC,SAAS,MAAM,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,gDAAgD;IAChD,QAAQ,CAAC,CAAC,SAAS,MAAM,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC;IAEjD;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC;CACvD;AAED;;GAEG;AACH,MAAM,WAAW,UAAU,CACzB,WAAW,GAAG,GAAG,EACjB,QAAQ,GAAG,GAAG,EACd,KAAK,GAAG,GAAG;IAEX,sBAAsB;IACtB,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,gEAAgE;IAChE,aAAa,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,wEAAwE;IACxE,UAAU,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5B,wBAAwB;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,oEAAoE;IACpE,SAAS,CAAC,EAAE,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,CACrB,QAAQ,GAAG,GAAG,EACd,KAAK,GAAG,GAAG,EACX,OAAO,GAAG,GAAG,IACX,CACF,OAAO,EAAE,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,EACrC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAE1B,OAAO,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,GACvD,OAAO,GACP,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAE3C;;;;;;GAMG;AACH,MAAM,WAAW,IAAI,CACnB,QAAQ,GAAG,GAAG,EACd,KAAK,GAAG,GAAG,EACX,OAAO,GAAG,GAAG;IAEb,sBAAsB;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,4BAA4B;IAC5B,OAAO,EAAE,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC/C,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC;IAIrB,qFAAqF;IACrF,iBAAiB,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;IAC7D,6DAA6D;IAC7D,UAAU,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;IACtD,qEAAqE;IACrE,aAAa,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;IAEzD,qGAAqG;IACrG,iBAAiB,CAAC,IAAI,QAAQ,GAAG,OAAO,CAAC;IACzC,+DAA+D;IAC/D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,sCAAsC;IACtC,aAAa,CAAC,CACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,EAAE,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,GACpC,OAAO,CAAC,oBAAoB,CAAC,GAAG,oBAAoB,CAAC;IAExD,+EAA+E;IAC/E,gBAAgB,CAAC,CACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,EAAE,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,GACpC,OAAO,CAAC,oBAAoB,CAAC,GAAG,oBAAoB,CAAC;CACzD;AAID;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,8FAA8F;IAC9F,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,oBAAY,SAAS;IACnB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,GAAG,QAAQ;CACZ;AAMD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,4CAA4C;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB,CAAC,KAAK,GAAG,OAAO;IAClD,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,wCAAwC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO;IAC9D,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,eAAe,CAAC;IAC1B,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC5B,MAAM,EAAE,UAAU,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAMD;;GAEG;AACH,MAAM,WAAW,oBAAoB,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,SAAS,MAAM,KAAK;IAChF,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,QAAQ,EAAE,CACR,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,KACvB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,SAAS,MAAM,KAAK;IAC5E,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,SAAS,EAAE,CACT,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,KACvB,OAAO,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAAC;CACnD;AAED;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO;IACrD,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,CAAC;IACzE,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnF,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;IAC5F,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO;IACzD,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IACxB,OAAO,EAAE,CACP,OAAO,EAAE,QAAQ,EACjB,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,EACtB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC3B,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;CACjC"}
|
package/dist/types/tool.js
CHANGED
package/dist/types/tool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/types/tool.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD;;GAEG;
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/types/tool.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD;;GAEG;AAiJH;;GAEG;AACH,MAAM,CAAN,IAAY,SAMX;AAND,WAAY,SAAS;IACnB,4BAAe,CAAA;IACf,0BAAa,CAAA;IACb,0BAAa,CAAA;IACb,sCAAyB,CAAA;IACzB,wBAAW,CAAA;AACb,CAAC,EANW,SAAS,KAAT,SAAS,QAMpB"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
import type { TemplateContext,
|
|
1
|
+
import type { TemplateContext, ConditionEvaluationResult } from "../types/template";
|
|
2
|
+
/**
|
|
3
|
+
* Condition template — kept as a private type for internal use by the evaluator.
|
|
4
|
+
* Removed from the public surface in v2.
|
|
5
|
+
*/
|
|
6
|
+
type ConditionTemplate<TContext = unknown, TData = unknown> = string | ((params: TemplateContext<TContext, TData>) => boolean | Promise<boolean>) | ConditionTemplate<TContext, TData>[];
|
|
2
7
|
/**
|
|
3
8
|
* Utility class for evaluating ConditionTemplate instances.
|
|
4
9
|
* Handles mixed string/function conditions and separates programmatic
|
|
@@ -35,4 +40,5 @@ export declare function extractAIContextStrings<TContext = unknown, TData = unkn
|
|
|
35
40
|
* Utility function to check if a condition has any programmatic components.
|
|
36
41
|
*/
|
|
37
42
|
export declare function hasProgrammaticConditions<TContext = unknown, TData = unknown>(condition: ConditionTemplate<TContext, TData>): boolean;
|
|
43
|
+
export {};
|
|
38
44
|
//# sourceMappingURL=condition.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../../src/utils/condition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../../src/utils/condition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAIpF;;;GAGG;AACH,KAAK,iBAAiB,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,IACtD,MAAM,GACN,CAAC,CAAC,MAAM,EAAE,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,GAC1E,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;AAEzC;;;;GAIG;AACH,qBAAa,kBAAkB,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO;IACrD,OAAO,CAAC,eAAe;gBAAf,eAAe,EAAE,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC;IAErE;;;;;;;OAOG;IACG,iBAAiB,CACrB,SAAS,EAAE,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,EAC7C,KAAK,GAAE,KAAK,GAAG,IAAY,GAC1B,OAAO,CAAC,yBAAyB,CAAC;IA4DrC;;OAEG;YACW,sBAAsB;CAkDrC;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,EAC1E,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,GAC1E,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAGrC;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,EACzE,SAAS,EAAE,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,GAC5C,MAAM,EAAE,CAiBV;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,EAC3E,SAAS,EAAE,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,GAC5C,OAAO,CAUT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"condition.js","sourceRoot":"","sources":["../../src/utils/condition.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"condition.js","sourceRoot":"","sources":["../../src/utils/condition.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/id.d.ts
CHANGED
|
@@ -3,15 +3,15 @@
|
|
|
3
3
|
* Provides deterministic ID generation to ensure consistency across server restarts
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
6
|
-
* Generate a deterministic
|
|
7
|
-
* Format:
|
|
6
|
+
* Generate a deterministic flow ID
|
|
7
|
+
* Format: flow_{sanitized_title}_{hash}
|
|
8
8
|
*/
|
|
9
|
-
export declare function
|
|
9
|
+
export declare function generateFlowId(title: string): string;
|
|
10
10
|
/**
|
|
11
11
|
* Generate a deterministic step ID
|
|
12
|
-
* Format: step_{sanitized_description}_{hash} or step_{
|
|
12
|
+
* Format: step_{sanitized_description}_{hash} or step_{flowId}_{index}
|
|
13
13
|
*/
|
|
14
|
-
export declare function generateStepId(
|
|
14
|
+
export declare function generateStepId(flowId: string, description?: string, index?: number): string;
|
|
15
15
|
/**
|
|
16
16
|
* Generate a deterministic tool ID
|
|
17
17
|
* Format: tool_{sanitized_name}_{hash}
|
|
@@ -22,4 +22,12 @@ export declare function generateToolId(name: string): string;
|
|
|
22
22
|
* Format: tool_inline_{stepId}_{hash}
|
|
23
23
|
*/
|
|
24
24
|
export declare function generateInlineToolId(stepId: string): string;
|
|
25
|
+
/**
|
|
26
|
+
* Generate a deterministic signal ID.
|
|
27
|
+
* Format: signal_{sanitized}_{hash}
|
|
28
|
+
*
|
|
29
|
+
* Uses a combination of the signal's title/description/index to produce
|
|
30
|
+
* a stable id that is deterministic within a session (same inputs → same id).
|
|
31
|
+
*/
|
|
32
|
+
export declare function generateSignalId(title?: string, description?: string, index?: number): string;
|
|
25
33
|
//# sourceMappingURL=id.d.ts.map
|
package/dist/utils/id.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAuBH;;;GAGG;AACH,wBAAgB,
|
|
1
|
+
{"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAuBH;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIpD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,EACpB,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CASR;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAInD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAG3D;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,CAAC,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,EACpB,KAAK,CAAC,EAAE,MAAM,GACb,MAAM,CAKR"}
|
package/dist/utils/id.js
CHANGED
|
@@ -22,27 +22,27 @@ function sanitize(str) {
|
|
|
22
22
|
return str.toLowerCase().replace(/[^a-z0-9]+/g, "_");
|
|
23
23
|
}
|
|
24
24
|
/**
|
|
25
|
-
* Generate a deterministic
|
|
26
|
-
* Format:
|
|
25
|
+
* Generate a deterministic flow ID
|
|
26
|
+
* Format: flow_{sanitized_title}_{hash}
|
|
27
27
|
*/
|
|
28
|
-
export function
|
|
28
|
+
export function generateFlowId(title) {
|
|
29
29
|
const sanitized = sanitize(title);
|
|
30
30
|
const hash = simpleHash(title);
|
|
31
|
-
return `
|
|
31
|
+
return `flow_${sanitized}_${hash}`;
|
|
32
32
|
}
|
|
33
33
|
/**
|
|
34
34
|
* Generate a deterministic step ID
|
|
35
|
-
* Format: step_{sanitized_description}_{hash} or step_{
|
|
35
|
+
* Format: step_{sanitized_description}_{hash} or step_{flowId}_{index}
|
|
36
36
|
*/
|
|
37
|
-
export function generateStepId(
|
|
37
|
+
export function generateStepId(flowId, description, index) {
|
|
38
38
|
if (description) {
|
|
39
39
|
const sanitized = sanitize(description);
|
|
40
|
-
const hash = simpleHash(`${
|
|
40
|
+
const hash = simpleHash(`${flowId}_${description}`);
|
|
41
41
|
return `step_${sanitized}_${hash}`;
|
|
42
42
|
}
|
|
43
43
|
// Fallback for steps without descriptions
|
|
44
|
-
const suffix = index !== undefined ? index : simpleHash(
|
|
45
|
-
return `step_${
|
|
44
|
+
const suffix = index !== undefined ? index : simpleHash(flowId);
|
|
45
|
+
return `step_${flowId}_${suffix}`;
|
|
46
46
|
}
|
|
47
47
|
/**
|
|
48
48
|
* Generate a deterministic tool ID
|
|
@@ -61,4 +61,17 @@ export function generateInlineToolId(stepId) {
|
|
|
61
61
|
const hash = simpleHash(`${stepId}_inline_tool`);
|
|
62
62
|
return `tool_inline_${stepId}_${hash}`;
|
|
63
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* Generate a deterministic signal ID.
|
|
66
|
+
* Format: signal_{sanitized}_{hash}
|
|
67
|
+
*
|
|
68
|
+
* Uses a combination of the signal's title/description/index to produce
|
|
69
|
+
* a stable id that is deterministic within a session (same inputs → same id).
|
|
70
|
+
*/
|
|
71
|
+
export function generateSignalId(title, description, index) {
|
|
72
|
+
const seed = title || description || `signal_${index ?? 0}`;
|
|
73
|
+
const sanitized = sanitize(seed);
|
|
74
|
+
const hash = simpleHash(`signal_${seed}_${index ?? 0}`);
|
|
75
|
+
return `signal_${sanitized}_${hash}`;
|
|
76
|
+
}
|
|
64
77
|
//# sourceMappingURL=id.js.map
|
package/dist/utils/id.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"id.js","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,SAAS,UAAU,CAAC,GAAW;IAC7B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;QACjC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,4BAA4B;IAClD,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CAAC,GAAW;IAC3B,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;AACvD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"id.js","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,SAAS,UAAU,CAAC,GAAW;IAC7B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;QACjC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,4BAA4B;IAClD,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CAAC,GAAW;IAC3B,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;AACvD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC/B,OAAO,QAAQ,SAAS,IAAI,IAAI,EAAE,CAAC;AACrC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAc,EACd,WAAoB,EACpB,KAAc;IAEd,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,MAAM,IAAI,WAAW,EAAE,CAAC,CAAC;QACpD,OAAO,QAAQ,SAAS,IAAI,IAAI,EAAE,CAAC;IACrC,CAAC;IACD,0CAA0C;IAC1C,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAChE,OAAO,QAAQ,MAAM,IAAI,MAAM,EAAE,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,QAAQ,SAAS,IAAI,IAAI,EAAE,CAAC;AACrC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,MAAM,cAAc,CAAC,CAAC;IACjD,OAAO,eAAe,MAAM,IAAI,IAAI,EAAE,CAAC;AACzC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAc,EACd,WAAoB,EACpB,KAAc;IAEd,MAAM,IAAI,GAAG,KAAK,IAAI,WAAW,IAAI,UAAU,KAAK,IAAI,CAAC,EAAE,CAAC;IAC5D,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,UAAU,CAAC,UAAU,IAAI,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;IACxD,OAAO,UAAU,SAAS,IAAI,IAAI,EAAE,CAAC;AACvC,CAAC"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Utility functions and helpers
|
|
3
3
|
*/
|
|
4
|
-
export {
|
|
5
|
-
export { createSession, createSessionId,
|
|
4
|
+
export { generateFlowId, generateStepId, generateToolId, generateInlineToolId, generateSignalId, } from "./id";
|
|
5
|
+
export { createSession, createSessionId, createPersistedState, enterFlow, enterStep, completeCurrentFlow, isFlowCompletedThisSession, mergeCollected, sessionStepToData, sessionDataToStep, } from "./session";
|
|
6
6
|
export { render, renderMany, renderTemplate, renderTemplateObject, formatKnowledgeBase, createTemplateContext, } from "./template";
|
|
7
7
|
export { cloneDeep } from "./clone";
|
|
8
8
|
export { getLastMessageFromHistory } from "./event";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,cAAc,EACd,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,MAAM,CAAC;AAGd,OAAO,EACL,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,0BAA0B,EAC1B,cAAc,EACd,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,MAAM,EACN,UAAU,EACV,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAGpD,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,aAAa,GACd,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAG/C,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAGrD,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAGjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/utils/index.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* Utility functions and helpers
|
|
3
3
|
*/
|
|
4
4
|
// ID generation
|
|
5
|
-
export {
|
|
5
|
+
export { generateFlowId, generateStepId, generateToolId, generateInlineToolId, generateSignalId, } from "./id";
|
|
6
6
|
// Session management
|
|
7
|
-
export { createSession, createSessionId,
|
|
7
|
+
export { createSession, createSessionId, createPersistedState, enterFlow, enterStep, completeCurrentFlow, isFlowCompletedThisSession, mergeCollected, sessionStepToData, sessionDataToStep, } from "./session";
|
|
8
8
|
// Template rendering
|
|
9
9
|
export { render, renderMany, renderTemplate, renderTemplateObject, formatKnowledgeBase, createTemplateContext, } from "./template";
|
|
10
10
|
// Cloning utilities
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,gBAAgB;AAChB,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,gBAAgB;AAChB,OAAO,EACL,cAAc,EACd,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,MAAM,CAAC;AAEd,qBAAqB;AACrB,OAAO,EACL,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,0BAA0B,EAC1B,cAAc,EACd,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAEnB,qBAAqB;AACrB,OAAO,EACL,MAAM,EACN,UAAU,EACV,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAEpB,oBAAoB;AACpB,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,kBAAkB;AAClB,OAAO,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAEpD,oBAAoB;AACpB,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,aAAa,GACd,MAAM,WAAW,CAAC;AAEnB,UAAU;AACV,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAI/C,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAErD,sBAAsB;AACtB,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAErB,iBAAiB;AACjB,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAEjE,0BAA0B;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/utils/session.d.ts
CHANGED
|
@@ -21,14 +21,36 @@ export declare function createSessionId(): string;
|
|
|
21
21
|
*/
|
|
22
22
|
export declare function cloneSession<TData>(session: SessionState<TData>): SessionState<TData>;
|
|
23
23
|
/**
|
|
24
|
-
* Helper to update session with new
|
|
25
|
-
* With agent-level data,
|
|
24
|
+
* Helper to update session with new flow
|
|
25
|
+
* With agent-level data, flows share the same data structure
|
|
26
26
|
*/
|
|
27
|
-
export declare function
|
|
27
|
+
export declare function enterFlow<TData = Record<string, unknown>>(session: SessionState<TData>, flowId: string, flowTitle: string): SessionState<TData>;
|
|
28
28
|
/**
|
|
29
29
|
* Helper to update session with new step
|
|
30
30
|
*/
|
|
31
31
|
export declare function enterStep<TData = Record<string, unknown>>(session: SessionState<TData>, stepId: string, stepDescription?: string): SessionState<TData>;
|
|
32
|
+
/**
|
|
33
|
+
* Helper to release the session to idle state on flow completion.
|
|
34
|
+
*
|
|
35
|
+
* Marks the active flow's `flowHistory` entry as completed (sets
|
|
36
|
+
* `completed: true` and `exitedAt: <now>`), clears `currentFlow` and
|
|
37
|
+
* `currentStep`, and (when `clearOwnedFields` is provided) removes those
|
|
38
|
+
* fields from `session.data` to support `flow.reentrant` re-entry.
|
|
39
|
+
*
|
|
40
|
+
* Does **not** generate any message, copy, or LLM call. The framework
|
|
41
|
+
* speaks no text of its own at the completion boundary — the developer
|
|
42
|
+
* controls every word emitted to the user via flow steps.
|
|
43
|
+
*/
|
|
44
|
+
export declare function completeCurrentFlow<TData = Record<string, unknown>>(session: SessionState<TData>, options?: {
|
|
45
|
+
clearOwnedFields?: ReadonlyArray<keyof TData>;
|
|
46
|
+
}): SessionState<TData>;
|
|
47
|
+
/**
|
|
48
|
+
* Returns true when the given flow id has a most-recent `flowHistory`
|
|
49
|
+
* entry marked as completed within this session. Used by the router to
|
|
50
|
+
* exclude completed flows from candidate scoring (unless the flow is
|
|
51
|
+
* `reentrant`).
|
|
52
|
+
*/
|
|
53
|
+
export declare function isFlowCompletedThisSession<TData = Record<string, unknown>>(session: SessionState<TData>, flowId: string): boolean;
|
|
32
54
|
/**
|
|
33
55
|
* Helper to merge collected data into session
|
|
34
56
|
* Updates agent-level data structure
|
|
@@ -39,7 +61,7 @@ export declare function mergeCollected<TData = Record<string, unknown>>(session:
|
|
|
39
61
|
* Used when saving to database
|
|
40
62
|
*/
|
|
41
63
|
export declare function sessionStepToData<TData = Record<string, unknown>>(session: SessionState<TData>): {
|
|
42
|
-
|
|
64
|
+
currentFlow?: string;
|
|
43
65
|
currentStep?: string;
|
|
44
66
|
collectedData: CollectedStateData<TData>;
|
|
45
67
|
};
|
|
@@ -50,8 +72,25 @@ export declare function sessionStepToData<TData = Record<string, unknown>>(sessi
|
|
|
50
72
|
* @param data - The database session data
|
|
51
73
|
*/
|
|
52
74
|
export declare function sessionDataToStep<TData = Record<string, unknown>>(sessionId: string, data: {
|
|
53
|
-
|
|
75
|
+
currentFlow?: string;
|
|
54
76
|
currentStep?: string;
|
|
55
77
|
collectedData?: CollectedStateData<TData>;
|
|
56
78
|
}): SessionState<TData>;
|
|
79
|
+
/**
|
|
80
|
+
* Prepare a session state for persistence by stripping transient fields.
|
|
81
|
+
*
|
|
82
|
+
* This is the shared helper that every persistence adapter should call before
|
|
83
|
+
* writing session state. It ensures:
|
|
84
|
+
* - `pendingDirective` has PreDirective-only fields (`appendPrompt`,
|
|
85
|
+
* `injectTools`, `halt`) stripped (these are one-turn-lifetime and not
|
|
86
|
+
* serializable across turns).
|
|
87
|
+
* - `pendingDirective` is omitted from the result when `undefined` (adapters
|
|
88
|
+
* should not store a null/undefined key).
|
|
89
|
+
* - `signals` is passed through bit-identical (reserved for v2.x Signals).
|
|
90
|
+
* - Never writes `pendingTransition`.
|
|
91
|
+
*
|
|
92
|
+
* @param session - The in-memory session state to prepare for persistence.
|
|
93
|
+
* @returns A new session state object safe for serialization.
|
|
94
|
+
*/
|
|
95
|
+
export declare function createPersistedState<TData = Record<string, unknown>>(session: SessionState<TData>): SessionState<TData>;
|
|
57
96
|
//# sourceMappingURL=session.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/utils/session.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/utils/session.ts"],"names":[],"mappings":"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"}
|
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
|