@falai/agent 1.2.8 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +40 -886
- package/dist/adapters/MemoryAdapter.js +2 -2
- package/dist/adapters/MemoryAdapter.js.map +1 -1
- package/dist/adapters/MongoAdapter.js +2 -2
- package/dist/adapters/MongoAdapter.js.map +1 -1
- package/dist/adapters/OpenSearchAdapter.d.ts.map +1 -1
- package/dist/adapters/OpenSearchAdapter.js +9 -7
- package/dist/adapters/OpenSearchAdapter.js.map +1 -1
- package/dist/adapters/PostgreSQLAdapter.d.ts +14 -0
- package/dist/adapters/PostgreSQLAdapter.d.ts.map +1 -1
- package/dist/adapters/PostgreSQLAdapter.js +25 -9
- package/dist/adapters/PostgreSQLAdapter.js.map +1 -1
- package/dist/adapters/PrismaAdapter.js +5 -5
- package/dist/adapters/PrismaAdapter.js.map +1 -1
- package/dist/adapters/RedisAdapter.js +2 -2
- package/dist/adapters/RedisAdapter.js.map +1 -1
- package/dist/adapters/SQLiteAdapter.d.ts +17 -0
- package/dist/adapters/SQLiteAdapter.d.ts.map +1 -1
- package/dist/adapters/SQLiteAdapter.js +30 -11
- package/dist/adapters/SQLiteAdapter.js.map +1 -1
- package/dist/cjs/adapters/MemoryAdapter.js +2 -2
- package/dist/cjs/adapters/MemoryAdapter.js.map +1 -1
- package/dist/cjs/adapters/MongoAdapter.js +2 -2
- package/dist/cjs/adapters/MongoAdapter.js.map +1 -1
- package/dist/cjs/adapters/OpenSearchAdapter.d.ts.map +1 -1
- package/dist/cjs/adapters/OpenSearchAdapter.js +9 -7
- package/dist/cjs/adapters/OpenSearchAdapter.js.map +1 -1
- package/dist/cjs/adapters/PostgreSQLAdapter.d.ts +14 -0
- package/dist/cjs/adapters/PostgreSQLAdapter.d.ts.map +1 -1
- package/dist/cjs/adapters/PostgreSQLAdapter.js +25 -9
- package/dist/cjs/adapters/PostgreSQLAdapter.js.map +1 -1
- package/dist/cjs/adapters/PrismaAdapter.js +5 -5
- package/dist/cjs/adapters/PrismaAdapter.js.map +1 -1
- package/dist/cjs/adapters/RedisAdapter.js +2 -2
- package/dist/cjs/adapters/RedisAdapter.js.map +1 -1
- package/dist/cjs/adapters/SQLiteAdapter.d.ts +17 -0
- package/dist/cjs/adapters/SQLiteAdapter.d.ts.map +1 -1
- package/dist/cjs/adapters/SQLiteAdapter.js +30 -11
- package/dist/cjs/adapters/SQLiteAdapter.js.map +1 -1
- package/dist/cjs/constants/index.d.ts +0 -9
- package/dist/cjs/constants/index.d.ts.map +1 -1
- package/dist/cjs/constants/index.js +2 -11
- package/dist/cjs/constants/index.js.map +1 -1
- package/dist/cjs/core/Agent.d.ts +119 -153
- package/dist/cjs/core/Agent.d.ts.map +1 -1
- package/dist/cjs/core/Agent.js +471 -324
- package/dist/cjs/core/Agent.js.map +1 -1
- package/dist/cjs/core/AutoChainExecutor.d.ts +107 -0
- package/dist/cjs/core/AutoChainExecutor.d.ts.map +1 -0
- package/dist/cjs/core/AutoChainExecutor.js +297 -0
- package/dist/cjs/core/AutoChainExecutor.js.map +1 -0
- package/dist/cjs/core/BranchEvaluator.d.ts +54 -0
- package/dist/cjs/core/BranchEvaluator.d.ts.map +1 -0
- package/dist/cjs/core/BranchEvaluator.js +130 -0
- package/dist/cjs/core/BranchEvaluator.js.map +1 -0
- package/dist/cjs/core/DirectiveBus.d.ts +88 -0
- package/dist/cjs/core/DirectiveBus.d.ts.map +1 -0
- package/dist/cjs/core/DirectiveBus.js +196 -0
- package/dist/cjs/core/DirectiveBus.js.map +1 -0
- package/dist/cjs/core/DirectiveChainTracker.d.ts +49 -0
- package/dist/cjs/core/DirectiveChainTracker.d.ts.map +1 -0
- package/dist/cjs/core/DirectiveChainTracker.js +121 -0
- package/dist/cjs/core/DirectiveChainTracker.js.map +1 -0
- package/dist/cjs/core/Flow.d.ts +186 -0
- package/dist/cjs/core/Flow.d.ts.map +1 -0
- package/dist/cjs/core/Flow.js +550 -0
- package/dist/cjs/core/Flow.js.map +1 -0
- package/dist/cjs/core/FlowRouter.d.ts +182 -0
- package/dist/cjs/core/FlowRouter.d.ts.map +1 -0
- package/dist/cjs/core/{RoutingEngine.js → FlowRouter.js} +323 -306
- package/dist/cjs/core/FlowRouter.js.map +1 -0
- package/dist/cjs/core/PersistenceManager.d.ts +2 -2
- package/dist/cjs/core/PersistenceManager.d.ts.map +1 -1
- package/dist/cjs/core/PersistenceManager.js +7 -7
- package/dist/cjs/core/PersistenceManager.js.map +1 -1
- package/dist/cjs/core/PromptComposer.d.ts +21 -8
- package/dist/cjs/core/PromptComposer.d.ts.map +1 -1
- package/dist/cjs/core/PromptComposer.js +182 -105
- package/dist/cjs/core/PromptComposer.js.map +1 -1
- package/dist/cjs/core/PromptSectionCache.d.ts +1 -1
- package/dist/cjs/core/PromptSectionCache.js +1 -1
- package/dist/cjs/core/ResponseEngine.d.ts +18 -8
- package/dist/cjs/core/ResponseEngine.d.ts.map +1 -1
- package/dist/cjs/core/ResponseEngine.js +38 -36
- package/dist/cjs/core/ResponseEngine.js.map +1 -1
- package/dist/cjs/core/ResponseModal.d.ts +73 -56
- package/dist/cjs/core/ResponseModal.d.ts.map +1 -1
- package/dist/cjs/core/ResponseModal.js +1191 -1014
- package/dist/cjs/core/ResponseModal.js.map +1 -1
- package/dist/cjs/core/ResponsePipeline.d.ts +124 -26
- package/dist/cjs/core/ResponsePipeline.d.ts.map +1 -1
- package/dist/cjs/core/ResponsePipeline.js +509 -136
- package/dist/cjs/core/ResponsePipeline.js.map +1 -1
- package/dist/cjs/core/SignalEvaluator.d.ts +86 -0
- package/dist/cjs/core/SignalEvaluator.d.ts.map +1 -0
- package/dist/cjs/core/SignalEvaluator.js +333 -0
- package/dist/cjs/core/SignalEvaluator.js.map +1 -0
- package/dist/cjs/core/SignalProcessor.d.ts +152 -0
- package/dist/cjs/core/SignalProcessor.d.ts.map +1 -0
- package/dist/cjs/core/SignalProcessor.js +562 -0
- package/dist/cjs/core/SignalProcessor.js.map +1 -0
- package/dist/cjs/core/Step.d.ts +43 -32
- package/dist/cjs/core/Step.d.ts.map +1 -1
- package/dist/cjs/core/Step.js +221 -126
- package/dist/cjs/core/Step.js.map +1 -1
- package/dist/cjs/core/StreamingToolExecutor.d.ts +2 -2
- package/dist/cjs/core/StreamingToolExecutor.d.ts.map +1 -1
- package/dist/cjs/core/StreamingToolExecutor.js.map +1 -1
- package/dist/cjs/core/ToolManager.d.ts +44 -13
- package/dist/cjs/core/ToolManager.d.ts.map +1 -1
- package/dist/cjs/core/ToolManager.js +174 -91
- package/dist/cjs/core/ToolManager.js.map +1 -1
- package/dist/cjs/core/createAgent.d.ts +35 -0
- package/dist/cjs/core/createAgent.d.ts.map +1 -0
- package/dist/cjs/core/createAgent.js +39 -0
- package/dist/cjs/core/createAgent.js.map +1 -0
- package/dist/cjs/core/flow-namespace.d.ts +49 -0
- package/dist/cjs/core/flow-namespace.d.ts.map +1 -0
- package/dist/cjs/core/flow-namespace.js +171 -0
- package/dist/cjs/core/flow-namespace.js.map +1 -0
- package/dist/cjs/index.d.ts +11 -14
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +18 -22
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/providers/AnthropicProvider.d.ts +1 -1
- package/dist/cjs/providers/AnthropicProvider.js +1 -1
- package/dist/cjs/providers/GeminiProvider.d.ts +1 -1
- package/dist/cjs/providers/GeminiProvider.d.ts.map +1 -1
- package/dist/cjs/providers/GeminiProvider.js +1 -1
- package/dist/cjs/providers/GeminiProvider.js.map +1 -1
- package/dist/cjs/providers/OpenAIProvider.d.ts +1 -1
- package/dist/cjs/providers/OpenAIProvider.d.ts.map +1 -1
- package/dist/cjs/providers/OpenAIProvider.js +1 -1
- package/dist/cjs/providers/OpenAIProvider.js.map +1 -1
- package/dist/cjs/types/agent.d.ts +183 -54
- package/dist/cjs/types/agent.d.ts.map +1 -1
- package/dist/cjs/types/agent.js +0 -6
- package/dist/cjs/types/agent.js.map +1 -1
- package/dist/cjs/types/ai.d.ts +3 -3
- package/dist/cjs/types/ai.d.ts.map +1 -1
- package/dist/cjs/types/errors.d.ts +15 -0
- package/dist/cjs/types/errors.d.ts.map +1 -0
- package/dist/cjs/types/errors.js +22 -0
- package/dist/cjs/types/errors.js.map +1 -0
- package/dist/cjs/types/flow.d.ts +513 -0
- package/dist/cjs/types/flow.d.ts.map +1 -0
- package/dist/cjs/types/{route.js → flow.js} +2 -2
- package/dist/cjs/types/flow.js.map +1 -0
- package/dist/cjs/types/index.d.ts +7 -6
- package/dist/cjs/types/index.d.ts.map +1 -1
- package/dist/cjs/types/index.js +6 -2
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/types/persistence.d.ts +11 -7
- package/dist/cjs/types/persistence.d.ts.map +1 -1
- package/dist/cjs/types/routing.d.ts +1 -1
- package/dist/cjs/types/routing.d.ts.map +1 -1
- package/dist/cjs/types/session.d.ts +24 -23
- package/dist/cjs/types/session.d.ts.map +1 -1
- package/dist/cjs/types/signals.d.ts +248 -0
- package/dist/cjs/types/signals.d.ts.map +1 -0
- package/dist/cjs/types/signals.js +11 -0
- package/dist/cjs/types/signals.js.map +1 -0
- package/dist/cjs/types/template.d.ts +2 -8
- package/dist/cjs/types/template.d.ts.map +1 -1
- package/dist/cjs/types/tool.d.ts +36 -29
- package/dist/cjs/types/tool.d.ts.map +1 -1
- package/dist/cjs/types/tool.js +1 -1
- package/dist/cjs/types/tool.js.map +1 -1
- package/dist/cjs/utils/condition.d.ts +7 -1
- package/dist/cjs/utils/condition.d.ts.map +1 -1
- package/dist/cjs/utils/condition.js.map +1 -1
- package/dist/cjs/utils/id.d.ts +13 -5
- package/dist/cjs/utils/id.d.ts.map +1 -1
- package/dist/cjs/utils/id.js +24 -10
- package/dist/cjs/utils/id.js.map +1 -1
- package/dist/cjs/utils/index.d.ts +2 -2
- package/dist/cjs/utils/index.d.ts.map +1 -1
- package/dist/cjs/utils/index.js +7 -3
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/session.d.ts +44 -5
- package/dist/cjs/utils/session.d.ts.map +1 -1
- package/dist/cjs/utils/session.js +197 -38
- package/dist/cjs/utils/session.js.map +1 -1
- package/dist/constants/index.d.ts +0 -9
- package/dist/constants/index.d.ts.map +1 -1
- package/dist/constants/index.js +3 -9
- package/dist/constants/index.js.map +1 -1
- package/dist/core/Agent.d.ts +119 -153
- package/dist/core/Agent.d.ts.map +1 -1
- package/dist/core/Agent.js +472 -325
- package/dist/core/Agent.js.map +1 -1
- package/dist/core/AutoChainExecutor.d.ts +107 -0
- package/dist/core/AutoChainExecutor.d.ts.map +1 -0
- package/dist/core/AutoChainExecutor.js +293 -0
- package/dist/core/AutoChainExecutor.js.map +1 -0
- package/dist/core/BranchEvaluator.d.ts +54 -0
- package/dist/core/BranchEvaluator.d.ts.map +1 -0
- package/dist/core/BranchEvaluator.js +126 -0
- package/dist/core/BranchEvaluator.js.map +1 -0
- package/dist/core/DirectiveBus.d.ts +88 -0
- package/dist/core/DirectiveBus.d.ts.map +1 -0
- package/dist/core/DirectiveBus.js +192 -0
- package/dist/core/DirectiveBus.js.map +1 -0
- package/dist/core/DirectiveChainTracker.d.ts +49 -0
- package/dist/core/DirectiveChainTracker.d.ts.map +1 -0
- package/dist/core/DirectiveChainTracker.js +117 -0
- package/dist/core/DirectiveChainTracker.js.map +1 -0
- package/dist/core/Flow.d.ts +186 -0
- package/dist/core/Flow.d.ts.map +1 -0
- package/dist/core/Flow.js +546 -0
- package/dist/core/Flow.js.map +1 -0
- package/dist/core/FlowRouter.d.ts +182 -0
- package/dist/core/FlowRouter.d.ts.map +1 -0
- package/dist/core/{RoutingEngine.js → FlowRouter.js} +322 -305
- package/dist/core/FlowRouter.js.map +1 -0
- package/dist/core/PersistenceManager.d.ts +2 -2
- package/dist/core/PersistenceManager.d.ts.map +1 -1
- package/dist/core/PersistenceManager.js +7 -7
- package/dist/core/PersistenceManager.js.map +1 -1
- package/dist/core/PromptComposer.d.ts +21 -8
- package/dist/core/PromptComposer.d.ts.map +1 -1
- package/dist/core/PromptComposer.js +183 -106
- package/dist/core/PromptComposer.js.map +1 -1
- package/dist/core/PromptSectionCache.d.ts +1 -1
- package/dist/core/PromptSectionCache.js +1 -1
- package/dist/core/ResponseEngine.d.ts +18 -8
- package/dist/core/ResponseEngine.d.ts.map +1 -1
- package/dist/core/ResponseEngine.js +38 -36
- package/dist/core/ResponseEngine.js.map +1 -1
- package/dist/core/ResponseModal.d.ts +73 -56
- package/dist/core/ResponseModal.d.ts.map +1 -1
- package/dist/core/ResponseModal.js +1193 -1016
- package/dist/core/ResponseModal.js.map +1 -1
- package/dist/core/ResponsePipeline.d.ts +124 -26
- package/dist/core/ResponsePipeline.d.ts.map +1 -1
- package/dist/core/ResponsePipeline.js +509 -137
- package/dist/core/ResponsePipeline.js.map +1 -1
- package/dist/core/SignalEvaluator.d.ts +86 -0
- package/dist/core/SignalEvaluator.d.ts.map +1 -0
- package/dist/core/SignalEvaluator.js +326 -0
- package/dist/core/SignalEvaluator.js.map +1 -0
- package/dist/core/SignalProcessor.d.ts +152 -0
- package/dist/core/SignalProcessor.d.ts.map +1 -0
- package/dist/core/SignalProcessor.js +555 -0
- package/dist/core/SignalProcessor.js.map +1 -0
- package/dist/core/Step.d.ts +43 -32
- package/dist/core/Step.d.ts.map +1 -1
- package/dist/core/Step.js +220 -126
- package/dist/core/Step.js.map +1 -1
- package/dist/core/StreamingToolExecutor.d.ts +2 -2
- package/dist/core/StreamingToolExecutor.d.ts.map +1 -1
- package/dist/core/StreamingToolExecutor.js.map +1 -1
- package/dist/core/ToolManager.d.ts +44 -13
- package/dist/core/ToolManager.d.ts.map +1 -1
- package/dist/core/ToolManager.js +174 -91
- package/dist/core/ToolManager.js.map +1 -1
- package/dist/core/createAgent.d.ts +35 -0
- package/dist/core/createAgent.d.ts.map +1 -0
- package/dist/core/createAgent.js +36 -0
- package/dist/core/createAgent.js.map +1 -0
- package/dist/core/flow-namespace.d.ts +49 -0
- package/dist/core/flow-namespace.d.ts.map +1 -0
- package/dist/core/flow-namespace.js +168 -0
- package/dist/core/flow-namespace.js.map +1 -0
- package/dist/index.d.ts +11 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -12
- package/dist/index.js.map +1 -1
- package/dist/providers/AnthropicProvider.d.ts +1 -1
- package/dist/providers/AnthropicProvider.js +1 -1
- package/dist/providers/GeminiProvider.d.ts +1 -1
- package/dist/providers/GeminiProvider.d.ts.map +1 -1
- package/dist/providers/GeminiProvider.js +1 -1
- package/dist/providers/GeminiProvider.js.map +1 -1
- package/dist/providers/OpenAIProvider.d.ts +1 -1
- package/dist/providers/OpenAIProvider.d.ts.map +1 -1
- package/dist/providers/OpenAIProvider.js +1 -1
- package/dist/providers/OpenAIProvider.js.map +1 -1
- package/dist/types/agent.d.ts +183 -54
- package/dist/types/agent.d.ts.map +1 -1
- package/dist/types/agent.js +0 -6
- package/dist/types/agent.js.map +1 -1
- package/dist/types/ai.d.ts +3 -3
- package/dist/types/ai.d.ts.map +1 -1
- package/dist/types/errors.d.ts +15 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/errors.js +18 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/flow.d.ts +513 -0
- package/dist/types/flow.d.ts.map +1 -0
- package/dist/types/flow.js +5 -0
- package/dist/types/flow.js.map +1 -0
- package/dist/types/index.d.ts +7 -6
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +4 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/persistence.d.ts +11 -7
- package/dist/types/persistence.d.ts.map +1 -1
- package/dist/types/routing.d.ts +1 -1
- package/dist/types/routing.d.ts.map +1 -1
- package/dist/types/session.d.ts +24 -23
- package/dist/types/session.d.ts.map +1 -1
- package/dist/types/signals.d.ts +248 -0
- package/dist/types/signals.d.ts.map +1 -0
- package/dist/types/signals.js +10 -0
- package/dist/types/signals.js.map +1 -0
- package/dist/types/template.d.ts +2 -8
- package/dist/types/template.d.ts.map +1 -1
- package/dist/types/tool.d.ts +36 -29
- package/dist/types/tool.d.ts.map +1 -1
- package/dist/types/tool.js +1 -1
- package/dist/types/tool.js.map +1 -1
- package/dist/utils/condition.d.ts +7 -1
- package/dist/utils/condition.d.ts.map +1 -1
- package/dist/utils/condition.js.map +1 -1
- package/dist/utils/id.d.ts +13 -5
- package/dist/utils/id.d.ts.map +1 -1
- package/dist/utils/id.js +22 -9
- package/dist/utils/id.js.map +1 -1
- package/dist/utils/index.d.ts +2 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -2
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/session.d.ts +44 -5
- package/dist/utils/session.d.ts.map +1 -1
- package/dist/utils/session.js +193 -37
- package/dist/utils/session.js.map +1 -1
- package/docs/README.md +22 -200
- package/docs/concepts/architecture.md +281 -0
- package/docs/concepts/directives.md +400 -0
- package/docs/concepts/pipeline.md +399 -0
- package/docs/guides/branching.md +263 -0
- package/docs/guides/compaction.md +163 -0
- package/docs/guides/conditions.md +167 -0
- package/docs/guides/error-handling.md +176 -0
- package/docs/guides/flow-control.md +409 -0
- package/docs/guides/instructions.md +210 -0
- package/docs/guides/persistence.md +182 -0
- package/docs/guides/streaming.md +137 -0
- package/docs/migration/README.md +14 -0
- package/docs/migration/route-to-flow.md +561 -0
- package/docs/migration/v1-to-v2.md +909 -0
- package/docs/reference/adapters.md +481 -0
- package/docs/reference/branches.md +241 -0
- package/docs/reference/create-agent.md +186 -0
- package/docs/reference/directive.md +243 -0
- package/docs/reference/errors.md +122 -0
- package/docs/reference/flow.md +238 -0
- package/docs/reference/instruction.md +177 -0
- package/docs/reference/pre-directive.md +131 -0
- package/docs/reference/providers.md +227 -0
- package/docs/reference/signals.md +356 -0
- package/docs/reference/step.md +339 -0
- package/docs/reference/tool.md +269 -0
- package/docs/start/01-install.md +81 -0
- package/docs/start/02-first-agent.md +196 -0
- package/docs/start/03-collect-data.md +222 -0
- package/docs/start/04-add-tools.md +276 -0
- package/docs/start/05-go-to-production.md +216 -0
- package/examples/01-quickstart.ts +20 -0
- package/examples/02-data-extraction.ts +90 -0
- package/examples/03-tools.ts +136 -0
- package/examples/04-instructions.ts +100 -0
- package/examples/05-branching.ts +140 -0
- package/examples/06-flow-control.ts +103 -0
- package/examples/07-streaming.ts +69 -0
- package/examples/08-persistence.ts +98 -0
- package/examples/09-signals.ts +144 -0
- package/examples/tsconfig.json +30 -0
- package/package.json +2 -1
- package/src/adapters/MemoryAdapter.ts +3 -3
- package/src/adapters/MongoAdapter.ts +3 -3
- package/src/adapters/OpenSearchAdapter.ts +10 -8
- package/src/adapters/PostgreSQLAdapter.ts +26 -10
- package/src/adapters/PrismaAdapter.ts +6 -6
- package/src/adapters/RedisAdapter.ts +3 -3
- package/src/adapters/SQLiteAdapter.ts +31 -12
- package/src/constants/index.ts +2 -10
- package/src/core/Agent.ts +585 -374
- package/src/core/AutoChainExecutor.ts +440 -0
- package/src/core/BranchEvaluator.ts +167 -0
- package/src/core/DirectiveBus.ts +248 -0
- package/src/core/DirectiveChainTracker.ts +144 -0
- package/src/core/Flow.ts +666 -0
- package/src/core/{RoutingEngine.ts → FlowRouter.ts} +385 -365
- package/src/core/PersistenceManager.ts +8 -8
- package/src/core/PromptComposer.ts +209 -140
- package/src/core/PromptSectionCache.ts +1 -1
- package/src/core/ResponseEngine.ts +61 -46
- package/src/core/ResponseModal.ts +1453 -1240
- package/src/core/ResponsePipeline.ts +655 -175
- package/src/core/SignalEvaluator.ts +420 -0
- package/src/core/SignalProcessor.ts +723 -0
- package/src/core/Step.ts +279 -176
- package/src/core/StreamingToolExecutor.ts +4 -4
- package/src/core/ToolManager.ts +200 -97
- package/src/core/createAgent.ts +40 -0
- package/src/core/flow-namespace.ts +219 -0
- package/src/index.ts +42 -36
- package/src/providers/AnthropicProvider.ts +2 -2
- package/src/providers/GeminiProvider.ts +2 -2
- package/src/providers/OpenAIProvider.ts +2 -2
- package/src/types/agent.ts +182 -53
- package/src/types/ai.ts +3 -3
- package/src/types/errors.ts +18 -0
- package/src/types/flow.ts +590 -0
- package/src/types/index.ts +43 -16
- package/src/types/persistence.ts +12 -8
- package/src/types/routing.ts +1 -1
- package/src/types/session.ts +26 -23
- package/src/types/signals.ts +321 -0
- package/src/types/template.ts +3 -11
- package/src/types/tool.ts +50 -42
- package/src/utils/condition.ts +13 -4
- package/src/utils/id.ts +27 -9
- package/src/utils/index.ts +6 -2
- package/src/utils/session.ts +238 -42
- package/dist/cjs/core/BatchExecutor.d.ts +0 -359
- package/dist/cjs/core/BatchExecutor.d.ts.map +0 -1
- package/dist/cjs/core/BatchExecutor.js +0 -861
- package/dist/cjs/core/BatchExecutor.js.map +0 -1
- package/dist/cjs/core/BatchPromptBuilder.d.ts +0 -89
- package/dist/cjs/core/BatchPromptBuilder.d.ts.map +0 -1
- package/dist/cjs/core/BatchPromptBuilder.js +0 -223
- package/dist/cjs/core/BatchPromptBuilder.js.map +0 -1
- package/dist/cjs/core/Route.d.ts +0 -180
- package/dist/cjs/core/Route.d.ts.map +0 -1
- package/dist/cjs/core/Route.js +0 -542
- package/dist/cjs/core/Route.js.map +0 -1
- package/dist/cjs/core/RoutingEngine.d.ts +0 -185
- package/dist/cjs/core/RoutingEngine.d.ts.map +0 -1
- package/dist/cjs/core/RoutingEngine.js.map +0 -1
- package/dist/cjs/types/route.d.ts +0 -336
- package/dist/cjs/types/route.d.ts.map +0 -1
- package/dist/cjs/types/route.js.map +0 -1
- package/dist/core/BatchExecutor.d.ts +0 -359
- package/dist/core/BatchExecutor.d.ts.map +0 -1
- package/dist/core/BatchExecutor.js +0 -856
- package/dist/core/BatchExecutor.js.map +0 -1
- package/dist/core/BatchPromptBuilder.d.ts +0 -89
- package/dist/core/BatchPromptBuilder.d.ts.map +0 -1
- package/dist/core/BatchPromptBuilder.js +0 -219
- package/dist/core/BatchPromptBuilder.js.map +0 -1
- package/dist/core/Route.d.ts +0 -180
- package/dist/core/Route.d.ts.map +0 -1
- package/dist/core/Route.js +0 -538
- package/dist/core/Route.js.map +0 -1
- package/dist/core/RoutingEngine.d.ts +0 -185
- package/dist/core/RoutingEngine.d.ts.map +0 -1
- package/dist/core/RoutingEngine.js.map +0 -1
- package/dist/types/route.d.ts +0 -336
- package/dist/types/route.d.ts.map +0 -1
- package/dist/types/route.js +0 -5
- package/dist/types/route.js.map +0 -1
- package/docs/CONTRIBUTING.md +0 -521
- package/docs/api/README.md +0 -3299
- package/docs/api/overview.md +0 -1410
- package/docs/architecture/data-extraction-flow.md +0 -360
- package/docs/architecture/multi-step-execution.md +0 -277
- package/docs/core/agent/README.md +0 -938
- package/docs/core/agent/context-management.md +0 -796
- package/docs/core/agent/rules-and-prohibitions.md +0 -113
- package/docs/core/agent/session-management.md +0 -693
- package/docs/core/ai-integration/prompt-composition.md +0 -355
- package/docs/core/ai-integration/providers.md +0 -515
- package/docs/core/ai-integration/response-processing.md +0 -433
- package/docs/core/conversation-flows/data-collection.md +0 -772
- package/docs/core/conversation-flows/route-dsl.md +0 -509
- package/docs/core/conversation-flows/routes.md +0 -249
- package/docs/core/conversation-flows/step-transitions.md +0 -731
- package/docs/core/conversation-flows/steps.md +0 -268
- package/docs/core/error-handling.md +0 -830
- package/docs/core/persistence/adapters.md +0 -255
- package/docs/core/persistence/session-storage.md +0 -656
- package/docs/core/routing/intelligent-routing.md +0 -470
- package/docs/core/tools/enhanced-tool.md +0 -186
- package/docs/core/tools/streaming-execution.md +0 -161
- package/docs/core/tools/tool-definition.md +0 -970
- package/docs/core/tools/tool-scoping.md +0 -819
- package/docs/guides/advanced-patterns/publishing.md +0 -186
- package/docs/guides/context-compaction.md +0 -96
- package/docs/guides/error-handling-patterns.md +0 -578
- package/docs/guides/getting-started/README.md +0 -795
- package/docs/guides/migration/README.md +0 -101
- package/docs/guides/migration/flexible-routing-conditions.md +0 -375
- package/docs/guides/migration/multi-step-execution.md +0 -393
- package/docs/guides/migration/response-modal-refactor.md +0 -518
- package/docs/guides/prompt-optimization.md +0 -164
- package/examples/advanced-patterns/context-compaction.ts +0 -223
- package/examples/advanced-patterns/knowledge-based-agent.ts +0 -735
- package/examples/advanced-patterns/persistent-onboarding.ts +0 -728
- package/examples/advanced-patterns/route-lifecycle-hooks.ts +0 -556
- package/examples/advanced-patterns/streaming-responses.ts +0 -656
- package/examples/ai-providers/anthropic-integration.ts +0 -388
- package/examples/ai-providers/openai-integration.ts +0 -228
- package/examples/condition-patterns/function-only-conditions.ts +0 -365
- package/examples/condition-patterns/mixed-array-conditions.ts +0 -477
- package/examples/condition-patterns/route-skipif-patterns.ts +0 -468
- package/examples/condition-patterns/step-skipif-patterns.ts +0 -0
- package/examples/condition-patterns/string-only-conditions.ts +0 -296
- package/examples/conversation-flows/completion-transitions.ts +0 -318
- package/examples/core-concepts/basic-agent.ts +0 -503
- package/examples/core-concepts/modern-streaming-api.ts +0 -309
- package/examples/core-concepts/schema-driven-extraction.ts +0 -332
- package/examples/core-concepts/session-management.ts +0 -494
- package/examples/integrations/database-integration.ts +0 -631
- package/examples/integrations/healthcare-integration.ts +0 -595
- package/examples/integrations/search-integration.ts +0 -530
- package/examples/integrations/server-session-management.ts +0 -307
- package/examples/persistence/custom-adapter.ts +0 -526
- package/examples/persistence/database-persistence.ts +0 -583
- package/examples/persistence/memory-sessions.ts +0 -495
- package/examples/persistence/prisma-schema.example.prisma +0 -74
- package/examples/persistence/redis-persistence.ts +0 -488
- package/examples/tools/basic-tools.ts +0 -765
- package/examples/tools/data-enrichment-tools.ts +0 -593
- package/examples/tools/enhanced-tool-metadata.ts +0 -268
- package/examples/tools/streaming-tool-execution.ts +0 -283
- package/src/core/BatchExecutor.ts +0 -1187
- package/src/core/BatchPromptBuilder.ts +0 -299
- package/src/core/Route.ts +0 -678
- package/src/types/route.ts +0 -392
|
@@ -16,7 +16,7 @@ export interface SessionData<TData = Record<string, unknown>> {
|
|
|
16
16
|
userId?: string;
|
|
17
17
|
agentName?: string;
|
|
18
18
|
status: SessionStatus;
|
|
19
|
-
|
|
19
|
+
currentFlow?: string;
|
|
20
20
|
currentStep?: string;
|
|
21
21
|
collectedData?: CollectedStateData<TData>;
|
|
22
22
|
messageCount?: number;
|
|
@@ -37,11 +37,15 @@ export type CreateSessionData<TData = Record<string, unknown>> = Omit<SessionDat
|
|
|
37
37
|
*/
|
|
38
38
|
export interface CollectedStateData<TData = Record<string, unknown>> {
|
|
39
39
|
data: Partial<TData>;
|
|
40
|
-
|
|
40
|
+
flowHistory: SessionState<TData>["flowHistory"];
|
|
41
41
|
history?: SessionState<TData>["history"];
|
|
42
|
-
|
|
42
|
+
currentFlowTitle?: string;
|
|
43
43
|
currentStepDescription?: string;
|
|
44
44
|
metadata: SessionState<TData>["metadata"];
|
|
45
|
+
/** Pending directive — included only when a directive is actually present. */
|
|
46
|
+
pendingDirective?: SessionState<TData>["pendingDirective"];
|
|
47
|
+
/** Reserved for v2.x Signals. Passed through bit-identical. */
|
|
48
|
+
signals?: SessionState<TData>["signals"];
|
|
45
49
|
}
|
|
46
50
|
/**
|
|
47
51
|
* Base message data structure
|
|
@@ -52,7 +56,7 @@ export interface MessageData {
|
|
|
52
56
|
userId?: string;
|
|
53
57
|
role: MessageRole;
|
|
54
58
|
content: string;
|
|
55
|
-
|
|
59
|
+
flow?: string;
|
|
56
60
|
step?: string;
|
|
57
61
|
toolCalls?: Array<{
|
|
58
62
|
toolName: string;
|
|
@@ -95,9 +99,9 @@ export interface SessionRepository<TData = Record<string, unknown>> {
|
|
|
95
99
|
*/
|
|
96
100
|
updateCollectedData(id: string, collectedData: CollectedStateData<TData>): Promise<SessionData<TData> | null>;
|
|
97
101
|
/**
|
|
98
|
-
* Update current
|
|
102
|
+
* Update current flow and step
|
|
99
103
|
*/
|
|
100
|
-
|
|
104
|
+
updateFlowStep(id: string, flow?: string, step?: string): Promise<SessionData<TData> | null>;
|
|
101
105
|
/**
|
|
102
106
|
* Increment message count
|
|
103
107
|
*/
|
|
@@ -198,7 +202,7 @@ export interface SaveMessageOptions {
|
|
|
198
202
|
userId?: string;
|
|
199
203
|
role: MessageRole;
|
|
200
204
|
content: string;
|
|
201
|
-
|
|
205
|
+
flow?: string;
|
|
202
206
|
step?: string;
|
|
203
207
|
toolCalls?: Array<{
|
|
204
208
|
toolName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../../src/types/persistence.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1D,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,aAAa,CAAC;IACtB,
|
|
1
|
+
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../../src/types/persistence.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { StructuredSchema } from "./schema";
|
|
2
2
|
export interface RoutingDecision {
|
|
3
3
|
context: string;
|
|
4
|
-
|
|
4
|
+
flows: Record<string, number>;
|
|
5
5
|
responseDirectives?: string[];
|
|
6
6
|
extractions?: unknown;
|
|
7
7
|
contextUpdate?: Record<string, unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../../src/types/routing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,
|
|
1
|
+
{"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../../src/types/routing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,CAAC,EAAE,gBAAgB,CAAC;CACjC"}
|
|
@@ -2,54 +2,55 @@
|
|
|
2
2
|
* Session step types for tracking conversation progress
|
|
3
3
|
*/
|
|
4
4
|
import type { History } from "./history";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export interface PendingTransition {
|
|
9
|
-
/** Target route ID to transition to */
|
|
10
|
-
targetRouteId: string;
|
|
11
|
-
/** Optional AI-evaluated condition for the transition */
|
|
12
|
-
condition?: string;
|
|
13
|
-
/** Reason for the transition */
|
|
14
|
-
reason: "route_complete" | "manual";
|
|
15
|
-
}
|
|
5
|
+
import type { Directive } from "./flow";
|
|
6
|
+
import type { SignalsState } from "./signals";
|
|
7
|
+
export type { SignalsState, SignalTriggerState } from "./signals";
|
|
16
8
|
/**
|
|
17
9
|
* Session state tracks the current position in the conversation flow
|
|
18
|
-
* and data collected at the agent level across all
|
|
10
|
+
* and data collected at the agent level across all flows
|
|
19
11
|
*/
|
|
20
12
|
export interface SessionState<TData = unknown> {
|
|
21
13
|
/** Unique session identifier (useful for persistence) */
|
|
22
14
|
id: string;
|
|
23
|
-
/** Current
|
|
24
|
-
|
|
15
|
+
/** Current flow the conversation is in */
|
|
16
|
+
currentFlow?: {
|
|
25
17
|
id: string;
|
|
26
18
|
title: string;
|
|
27
19
|
enteredAt?: Date;
|
|
28
20
|
};
|
|
29
|
-
/** Current step within the
|
|
21
|
+
/** Current step within the flow */
|
|
30
22
|
currentStep?: {
|
|
31
23
|
id: string;
|
|
32
24
|
description?: string;
|
|
33
25
|
enteredAt?: Date;
|
|
34
26
|
};
|
|
35
27
|
/**
|
|
36
|
-
* Agent-level data collected across all
|
|
28
|
+
* Agent-level data collected across all flows
|
|
37
29
|
* This is the single source of truth for all collected data
|
|
38
|
-
*
|
|
30
|
+
* Flows can access and contribute to this shared data structure
|
|
39
31
|
*/
|
|
40
32
|
data: Partial<TData>;
|
|
41
|
-
/** History of
|
|
42
|
-
|
|
43
|
-
|
|
33
|
+
/** History of flows visited in this session */
|
|
34
|
+
flowHistory?: Array<{
|
|
35
|
+
flowId: string;
|
|
44
36
|
enteredAt?: Date;
|
|
45
37
|
exitedAt?: Date;
|
|
46
38
|
completed: boolean;
|
|
47
39
|
}>;
|
|
48
40
|
/**
|
|
49
|
-
* Pending
|
|
50
|
-
*
|
|
41
|
+
* Pending directive to apply at the start of the next turn.
|
|
42
|
+
* Replaces the v1 `pendingTransition` field. When set, the turn pipeline
|
|
43
|
+
* applies this directive and skips `FlowRouter.decideFlowAndStep`.
|
|
44
|
+
*
|
|
45
|
+
* Cleared after application unless `complete.next` chains another directive.
|
|
46
|
+
*/
|
|
47
|
+
pendingDirective?: Directive<unknown, TData>;
|
|
48
|
+
/**
|
|
49
|
+
* Reserved for v2.x Signals feature. v2.0 does not read or mutate this
|
|
50
|
+
* field at runtime — persistence adapters preserve it bit-identical through
|
|
51
|
+
* save → load roundtrips. See Decision D-Q6 in design.md.
|
|
51
52
|
*/
|
|
52
|
-
|
|
53
|
+
signals?: SignalsState;
|
|
53
54
|
/**
|
|
54
55
|
* Conversation history managed by the session
|
|
55
56
|
* Contains the full conversation between user and assistant
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/types/session.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/types/session.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAG9C,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAElE;;;GAGG;AACH,MAAM,WAAW,YAAY,CAAC,KAAK,GAAG,OAAO;IAC3C,yDAAyD;IACzD,EAAE,EAAE,MAAM,CAAC;IAEX,0CAA0C;IAC1C,WAAW,CAAC,EAAE;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,IAAI,CAAC;KAClB,CAAC;IAEF,mCAAmC;IACnC,WAAW,CAAC,EAAE;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,IAAI,CAAC;KAClB,CAAC;IAEF;;;;OAIG;IACH,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAErB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,KAAK,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,IAAI,CAAC;QACjB,QAAQ,CAAC,EAAE,IAAI,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC,CAAC;IAEH;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAE7C;;;;OAIG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;IAEvB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,uBAAuB;IACvB,QAAQ,CAAC,EAAE;QACT,SAAS,CAAC,EAAE,IAAI,CAAC;QACjB,aAAa,CAAC,EAAE,IAAI,CAAC;QACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH"}
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Signals types for v2.x.
|
|
3
|
+
*
|
|
4
|
+
* This is the canonical location for all signals-related types.
|
|
5
|
+
* `SignalsState` and `SignalTriggerState` originated in `session.ts` as v2.0
|
|
6
|
+
* forward-compat reservations and are re-exported from there for backward
|
|
7
|
+
* compatibility within the same major.
|
|
8
|
+
*/
|
|
9
|
+
import type { SessionState } from "./session";
|
|
10
|
+
import type { PreDirective } from "./flow";
|
|
11
|
+
import type { Event } from "./history";
|
|
12
|
+
/**
|
|
13
|
+
* Per-signal trigger tracking state.
|
|
14
|
+
* Shape is locked to enable forward-compatible persistence in v2.0.
|
|
15
|
+
*/
|
|
16
|
+
export interface SignalTriggerState {
|
|
17
|
+
/** When this signal first fired. */
|
|
18
|
+
firstTriggeredAt: Date;
|
|
19
|
+
/** When this signal last fired. */
|
|
20
|
+
lastTriggeredAt: Date;
|
|
21
|
+
/** Total number of times this signal has fired. */
|
|
22
|
+
count: number;
|
|
23
|
+
/** Free-text reason from the last trigger (if the signal supplied one). */
|
|
24
|
+
lastReason?: string;
|
|
25
|
+
/** Which phase the signal last fired in. */
|
|
26
|
+
lastPhase?: 'pre' | 'post';
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Aggregated signals state stored on the session.
|
|
30
|
+
* Shape is locked to enable forward-compatible persistence in v2.0.
|
|
31
|
+
*/
|
|
32
|
+
export interface SignalsState {
|
|
33
|
+
/** Per-signal trigger tracking; keyed by signal id. */
|
|
34
|
+
triggers: Record<string, SignalTriggerState>;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Schema for extraction signals. JSON Schema subset or Zod-compatible shape.
|
|
38
|
+
* The framework uses this to build the per-signal `extracted` field in the
|
|
39
|
+
* classifier response schema.
|
|
40
|
+
*
|
|
41
|
+
* When set on a signal, the signal operates in extraction mode: the classifier
|
|
42
|
+
* call includes this schema in the response format, and the handler receives
|
|
43
|
+
* `extracted: TExtract` when the signal matches.
|
|
44
|
+
*
|
|
45
|
+
* The type parameter `_T` is a phantom type that carries the extraction shape
|
|
46
|
+
* for downstream inference — the runtime value is always a JSON Schema object.
|
|
47
|
+
*/
|
|
48
|
+
export type SignalSchema<_T = unknown> = Record<string, unknown>;
|
|
49
|
+
/**
|
|
50
|
+
* Context passed to signal `if` predicates.
|
|
51
|
+
* Symmetric with `BranchPredicateContext` used by branches.
|
|
52
|
+
*/
|
|
53
|
+
export interface SignalPredicateContext<TContext = unknown, TData = unknown> {
|
|
54
|
+
/** Collected data (partial — null-check fields not guaranteed). */
|
|
55
|
+
data: Partial<TData>;
|
|
56
|
+
/** Agent-level context. */
|
|
57
|
+
context: TContext;
|
|
58
|
+
/** Full session state. */
|
|
59
|
+
session: SessionState<TData>;
|
|
60
|
+
/** Conversation history as events. */
|
|
61
|
+
history: Event[];
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Code-evaluated predicate for signal `if` conditions.
|
|
65
|
+
* Returns `true` to pass (signal proceeds to `when` evaluation or fires),
|
|
66
|
+
* `false` to skip (signal is not evaluated this turn).
|
|
67
|
+
*
|
|
68
|
+
* Predicates evaluate BEFORE `when` conditions — code-first short-circuit.
|
|
69
|
+
* If `if` returns false, `when` is NOT evaluated (token-saving).
|
|
70
|
+
*
|
|
71
|
+
* If a predicate throws, the signal is treated as non-match and other
|
|
72
|
+
* signals continue evaluation.
|
|
73
|
+
*/
|
|
74
|
+
export type SignalPredicate<TContext = unknown, TData = unknown> = (ctx: SignalPredicateContext<TContext, TData>) => boolean | Promise<boolean>;
|
|
75
|
+
/**
|
|
76
|
+
* SignalDirective — what signal handlers return.
|
|
77
|
+
* Extends `PreDirective` (which extends `Directive`). Adds signal-specific
|
|
78
|
+
* fields: `stopOtherSignals` and `replyWith`.
|
|
79
|
+
*
|
|
80
|
+
* All position-control (`goTo`, `goToStep`, `complete`, `abort`, `reset`),
|
|
81
|
+
* state writes (`dataUpdate`, `contextUpdate`), prompt augmentation
|
|
82
|
+
* (`appendPrompt`, `injectTools`), `reply`, and `halt` are inherited unchanged.
|
|
83
|
+
*
|
|
84
|
+
* Post-phase drop rules: when returned in the post-phase, `appendPrompt`,
|
|
85
|
+
* `injectTools`, and `halt` are dropped with a debug warning — they have
|
|
86
|
+
* no meaning after the LLM call has already completed.
|
|
87
|
+
*/
|
|
88
|
+
export interface SignalDirective<TContext = unknown, TData = unknown> extends PreDirective<TContext, TData> {
|
|
89
|
+
/**
|
|
90
|
+
* Stop processing remaining signals for this phase after this handler.
|
|
91
|
+
* Does not affect the other phase.
|
|
92
|
+
*/
|
|
93
|
+
stopOtherSignals?: boolean;
|
|
94
|
+
/**
|
|
95
|
+
* Verbatim reply with optional late-binding (function form).
|
|
96
|
+
* - String: same as `Directive.reply`.
|
|
97
|
+
* - Function: evaluated at emit time; result projects onto `Directive.reply`.
|
|
98
|
+
*
|
|
99
|
+
* The field is resolved and stripped before reaching the directive merge bus.
|
|
100
|
+
*/
|
|
101
|
+
replyWith?: string | ((ctx: SignalContext<TContext, TData>) => string);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Context passed to signal handlers when a signal fires.
|
|
105
|
+
* Symmetric with `ToolContext` — provides session state and writer methods.
|
|
106
|
+
*
|
|
107
|
+
* The `updateContext` and `updateData` writers follow the same D-Q12 contract
|
|
108
|
+
* as `ToolContext` writers.
|
|
109
|
+
*/
|
|
110
|
+
export interface SignalContext<TContext = unknown, TData = unknown, TExtract = void> {
|
|
111
|
+
/** The signal definition that fired. */
|
|
112
|
+
signal: Signal<TContext, TData, TExtract>;
|
|
113
|
+
/** Phase in which this signal fired. */
|
|
114
|
+
phase: 'pre' | 'post';
|
|
115
|
+
/** Whether the signal matched (always `true` when handler runs). */
|
|
116
|
+
matched: true;
|
|
117
|
+
/** AI rationale when `when` matched, or `'code-only'` / `'unconditional'`. */
|
|
118
|
+
reason: string;
|
|
119
|
+
/**
|
|
120
|
+
* Extracted data when the signal has `extract` set. Typed via the
|
|
121
|
+
* TExtract generic. Undefined for detection-only signals.
|
|
122
|
+
*/
|
|
123
|
+
extracted: TExtract extends void ? undefined : TExtract;
|
|
124
|
+
/** Session state. Use writers below for mutations. */
|
|
125
|
+
session: SessionState<TData>;
|
|
126
|
+
/** Agent-level context. */
|
|
127
|
+
context: TContext;
|
|
128
|
+
/** Collected data (partial). */
|
|
129
|
+
data: Partial<TData>;
|
|
130
|
+
/** Conversation history as events. */
|
|
131
|
+
history: Event[];
|
|
132
|
+
/** Last user message (convenience). */
|
|
133
|
+
lastUserMessage?: string;
|
|
134
|
+
/** Timestamp when the signal fired. */
|
|
135
|
+
triggeredAt: Date;
|
|
136
|
+
/** Update agent context (same signature as ToolContext.updateContext). */
|
|
137
|
+
updateContext: (updates: Partial<TContext>) => Promise<void>;
|
|
138
|
+
/** Update collected data (same signature as ToolContext.updateData). */
|
|
139
|
+
updateData: (updates: Partial<TData>) => Promise<void>;
|
|
140
|
+
/** Imperative directive emission onto the per-turn bus. */
|
|
141
|
+
dispatch(directive: SignalDirective<TContext, TData>): void;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* A signal: a typed event detector (and optional data extractor) that runs
|
|
145
|
+
* around an LLM turn.
|
|
146
|
+
*
|
|
147
|
+
* Conditions use the v2 `when` / `if` split:
|
|
148
|
+
* - `when`: AI-evaluated string(s). Entries prefixed with `!` are exclusion
|
|
149
|
+
* conditions rendered under "DO NOT TRIGGER WHEN" in the classifier prompt.
|
|
150
|
+
* Non-prefixed entries render under "TRIGGER WHEN". Positive entries use AND
|
|
151
|
+
* semantics (all must match). Negative entries use OR semantics (any match
|
|
152
|
+
* inhibits firing).
|
|
153
|
+
* - `if`: Code-evaluated function(s). Free. AND semantics.
|
|
154
|
+
*
|
|
155
|
+
* When both `if` and `when` are set, `if` evaluates first. If `if` returns
|
|
156
|
+
* false, `when` is not evaluated (token-saving).
|
|
157
|
+
*
|
|
158
|
+
* Signals with neither `when` nor `if` are unconditional — they always fire
|
|
159
|
+
* (subject to behavior gating). If `extract` is set on an unconditional signal,
|
|
160
|
+
* the extraction runs every turn.
|
|
161
|
+
*/
|
|
162
|
+
export interface Signal<TContext = unknown, TData = unknown, TExtract = void> {
|
|
163
|
+
/** Unique identifier. Auto-generated if omitted (stable within session). */
|
|
164
|
+
id?: string;
|
|
165
|
+
/** Display title (shown in logs and traces). */
|
|
166
|
+
title?: string;
|
|
167
|
+
/** Free-text description of what this signal detects. */
|
|
168
|
+
description?: string;
|
|
169
|
+
/**
|
|
170
|
+
* AI-evaluated trigger condition(s). String or array of strings.
|
|
171
|
+
* - Non-prefixed entries: AND semantics. All must match to trigger.
|
|
172
|
+
* - `!`-prefixed entries: OR exclusion. Any match inhibits firing.
|
|
173
|
+
*
|
|
174
|
+
* At prompt-render time, the framework splits entries by prefix:
|
|
175
|
+
* - Non-`!` → rendered under "TRIGGER WHEN"
|
|
176
|
+
* - `!` → stripped of prefix, rendered under "DO NOT TRIGGER WHEN"
|
|
177
|
+
*/
|
|
178
|
+
when?: string | string[];
|
|
179
|
+
/**
|
|
180
|
+
* Code predicate(s). Function or array of functions (AND).
|
|
181
|
+
* Free to evaluate; runs before `when`. If `if` returns false, the
|
|
182
|
+
* signal is skipped — `when` is not evaluated.
|
|
183
|
+
*/
|
|
184
|
+
if?: SignalPredicate<TContext, TData> | SignalPredicate<TContext, TData>[];
|
|
185
|
+
/**
|
|
186
|
+
* Optional structured extraction schema. When set, the signal operates
|
|
187
|
+
* in extraction mode: the classifier call includes this schema in the
|
|
188
|
+
* response format, and the handler receives `extracted: TExtract` when
|
|
189
|
+
* the signal matches.
|
|
190
|
+
*
|
|
191
|
+
* Extraction signals participate in the same batched classifier call as
|
|
192
|
+
* detection signals. The merged response schema includes each signal's
|
|
193
|
+
* extraction fields alongside the standard `matched` / `reason`.
|
|
194
|
+
*
|
|
195
|
+
* When absent, the signal operates in detection mode (boolean match).
|
|
196
|
+
*/
|
|
197
|
+
extract?: SignalSchema<TExtract>;
|
|
198
|
+
/**
|
|
199
|
+
* When this signal evaluates relative to the LLM call.
|
|
200
|
+
* - `'pre'`: before the LLM call (parallel with routing).
|
|
201
|
+
* - `'post'`: after the LLM call (sequential, after finalize).
|
|
202
|
+
* - `'both'`: evaluated in both phases.
|
|
203
|
+
*/
|
|
204
|
+
phase: 'pre' | 'post' | 'both';
|
|
205
|
+
/**
|
|
206
|
+
* Handler invoked when the signal fires. Receives match info and
|
|
207
|
+
* extracted data (if applicable). Returns void or a SignalDirective.
|
|
208
|
+
*/
|
|
209
|
+
handler: (ctx: SignalContext<TContext, TData, TExtract>) => void | SignalDirective<TContext, TData> | Promise<void | SignalDirective<TContext, TData>>;
|
|
210
|
+
/**
|
|
211
|
+
* Rate-limit / dedup behavior:
|
|
212
|
+
* - `'once'`: fire once per session.
|
|
213
|
+
* - `'always'`: fire every match (default).
|
|
214
|
+
* - `'cooldown'`: fire, then suppress for `cooldownMs`.
|
|
215
|
+
*/
|
|
216
|
+
behavior?: 'once' | 'always' | 'cooldown';
|
|
217
|
+
/** Cooldown duration in ms. Required when `behavior === 'cooldown'`. */
|
|
218
|
+
cooldownMs?: number;
|
|
219
|
+
/** Whether this signal is currently enabled. @default true */
|
|
220
|
+
enabled?: boolean;
|
|
221
|
+
/**
|
|
222
|
+
* Higher priority signals fire first within a phase. Default 0.
|
|
223
|
+
* Tie: declaration order in `agent.signals`.
|
|
224
|
+
*/
|
|
225
|
+
priority?: number;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Observability record for a signal that fired during a turn.
|
|
229
|
+
* Populated in fire order across both pre- and post-phases.
|
|
230
|
+
* Mirrors the observability framing of `executedSteps` and `appliedGuidelines`.
|
|
231
|
+
*/
|
|
232
|
+
export interface SignalFiring<TContext = unknown, TData = unknown> {
|
|
233
|
+
/** The signal's unique identifier. */
|
|
234
|
+
id: string;
|
|
235
|
+
/** Which phase the signal fired in. */
|
|
236
|
+
phase: 'pre' | 'post';
|
|
237
|
+
/** AI rationale when `when` matched, or 'code-only' / 'unconditional'. */
|
|
238
|
+
reason?: string;
|
|
239
|
+
/** Extracted data when the signal operates in extraction mode. */
|
|
240
|
+
extracted?: unknown;
|
|
241
|
+
/** The directive returned by the signal handler (if any). */
|
|
242
|
+
directive?: SignalDirective<TContext, TData>;
|
|
243
|
+
/** Error message if the handler threw. */
|
|
244
|
+
handlerError?: string;
|
|
245
|
+
/** Wall-clock duration of the handler invocation in milliseconds. */
|
|
246
|
+
durationMs?: number;
|
|
247
|
+
}
|
|
248
|
+
//# sourceMappingURL=signals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signals.d.ts","sourceRoot":"","sources":["../../../src/types/signals.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Signals types for v2.x.
|
|
4
|
+
*
|
|
5
|
+
* This is the canonical location for all signals-related types.
|
|
6
|
+
* `SignalsState` and `SignalTriggerState` originated in `session.ts` as v2.0
|
|
7
|
+
* forward-compat reservations and are re-exported from there for backward
|
|
8
|
+
* compatibility within the same major.
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
//# sourceMappingURL=signals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signals.js","sourceRoot":"","sources":["../../../src/types/signals.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG"}
|
|
@@ -17,14 +17,14 @@ export interface TemplateContext<TContext = unknown, TData = unknown> {
|
|
|
17
17
|
*/
|
|
18
18
|
history?: Event[];
|
|
19
19
|
/**
|
|
20
|
-
* The data collected in the current
|
|
20
|
+
* The data collected in the current flow.
|
|
21
21
|
* A convenience alias for `session.data`.
|
|
22
22
|
*/
|
|
23
23
|
data: Partial<TData>;
|
|
24
24
|
/**
|
|
25
25
|
* Helper methods for working with history and context.
|
|
26
26
|
*/
|
|
27
|
-
helpers
|
|
27
|
+
helpers?: {
|
|
28
28
|
/**
|
|
29
29
|
* Get the last message from history, optionally filtered by role.
|
|
30
30
|
* @param role - Optional role to filter by (user, assistant, etc.)
|
|
@@ -61,12 +61,6 @@ export interface TemplateContext<TContext = unknown, TData = unknown> {
|
|
|
61
61
|
* that dynamically generates a string from context.
|
|
62
62
|
*/
|
|
63
63
|
export type Template<TContext = unknown, TData = unknown> = string | ((params: TemplateContext<TContext, TData>) => string | Promise<string>);
|
|
64
|
-
/**
|
|
65
|
-
* Represents a condition that can be used for routing decisions.
|
|
66
|
-
* Supports strings (AI context only), boolean functions (programmatic evaluation),
|
|
67
|
-
* and arrays of either for complex condition logic.
|
|
68
|
-
*/
|
|
69
|
-
export type ConditionTemplate<TContext = unknown, TData = unknown> = string | ((params: TemplateContext<TContext, TData>) => boolean | Promise<boolean>) | ConditionTemplate<TContext, TData>[];
|
|
70
64
|
/**
|
|
71
65
|
* Result of condition evaluation containing both programmatic results
|
|
72
66
|
* and AI context strings.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../../src/types/template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO;IAClE;;OAEG;IACH,OAAO,CAAC,EAAE,QAAQ,CAAC;IAEnB;;OAEG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IAE9B;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC;IAElB;;;OAGG;IACH,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAErB;;OAEG;IACH,OAAO,EAAE;
|
|
1
|
+
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../../src/types/template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO;IAClE;;OAEG;IACH,OAAO,CAAC,EAAE,QAAQ,CAAC;IAEnB;;OAEG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IAE9B;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC;IAElB;;;OAGG;IACH,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAErB;;OAEG;IACH,OAAO,CAAC,EAAE;QACR;;;;WAIG;QACH,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC;QAEvD;;;WAGG;QACH,kBAAkB,IAAI,MAAM,GAAG,SAAS,CAAC;QAEzC;;;WAGG;QACH,uBAAuB,IAAI,MAAM,GAAG,SAAS,CAAC;QAE9C;;;;WAIG;QACH,WAAW,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE,CAAC;QAE1C;;;;;WAKG;QACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;KACpF,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,MAAM,QAAQ,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,IACpD,MAAM,GACN,CAAC,CAAC,MAAM,EAAE,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AAI7E;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,0CAA0C;IAC1C,kBAAkB,EAAE,OAAO,CAAC;IAC5B,mCAAmC;IACnC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,2CAA2C;IAC3C,yBAAyB,EAAE,OAAO,CAAC;IACnC,oDAAoD;IACpD,iBAAiB,CAAC,EAAE;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;KACvC,EAAE,CAAC;CACL"}
|
package/dist/cjs/types/tool.d.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Tool system type definitions
|
|
3
3
|
*/
|
|
4
4
|
import type { Event, StepRef, ValidationResult } from "./index";
|
|
5
|
+
import type { Directive } from "./flow";
|
|
5
6
|
/**
|
|
6
7
|
* Context provided to tool handlers
|
|
7
8
|
*/
|
|
@@ -12,7 +13,7 @@ export interface ToolContext<TContext = any, TData = any> {
|
|
|
12
13
|
data: Partial<TData>;
|
|
13
14
|
/** Interaction history */
|
|
14
15
|
history: Event[];
|
|
15
|
-
/** Current step reference (if in a
|
|
16
|
+
/** Current step reference (if in a flow) */
|
|
16
17
|
step?: StepRef;
|
|
17
18
|
/** Additional metadata */
|
|
18
19
|
metadata?: Record<string, unknown>;
|
|
@@ -26,6 +27,15 @@ export interface ToolContext<TContext = any, TData = any> {
|
|
|
26
27
|
setField<K extends keyof TData>(key: K, value: TData[K]): Promise<void>;
|
|
27
28
|
/** Check if a field exists in collected data */
|
|
28
29
|
hasField<K extends keyof TData>(key: K): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Emit a directive into the per-turn bus. Identical effect to returning
|
|
32
|
+
* `{ directive }` from the tool handler, but usable mid-handler (e.g.,
|
|
33
|
+
* after an early-exit branch decides the rest of the turn is moot).
|
|
34
|
+
*
|
|
35
|
+
* Multiple `dispatch()` calls in one handler are allowed; they are merged
|
|
36
|
+
* by Algorithm 4 along with directives from other tools/hooks this turn.
|
|
37
|
+
*/
|
|
38
|
+
dispatch(directive: Directive<TContext, TData>): void;
|
|
29
39
|
}
|
|
30
40
|
/**
|
|
31
41
|
* Result returned by a tool
|
|
@@ -43,25 +53,43 @@ export interface ToolResult<TResultData = any, TContext = any, TData = any> {
|
|
|
43
53
|
error?: string;
|
|
44
54
|
/** Optional metadata about the execution */
|
|
45
55
|
meta?: Record<string, unknown>;
|
|
56
|
+
/** Emit a directive declaratively (alternative to ctx.dispatch). */
|
|
57
|
+
directive?: Directive<TContext, TData>;
|
|
46
58
|
}
|
|
47
59
|
/**
|
|
48
60
|
* Handler function for a tool
|
|
49
61
|
*/
|
|
50
62
|
export type ToolHandler<TContext = any, TData = any, TResult = any> = (context: ToolContext<TContext, TData>, args?: Record<string, unknown>) => Promise<TResult | ToolResult<TResult, TContext, TData>> | TResult | ToolResult<TResult, TContext, TData>;
|
|
51
63
|
/**
|
|
52
|
-
* Tool definition -
|
|
64
|
+
* Tool definition - single unified type (v2).
|
|
65
|
+
*
|
|
66
|
+
* In v1 there were two tool types: `Tool` (basic) and `EnhancedTool`
|
|
67
|
+
* (with metadata). v2 merges these into a single `Tool` type with all
|
|
68
|
+
* metadata fields optional. `EnhancedTool` is removed from the public surface.
|
|
53
69
|
*/
|
|
54
70
|
export interface Tool<TContext = any, TData = any, TResult = any> {
|
|
55
71
|
/** Tool identifier */
|
|
56
72
|
id: string;
|
|
57
|
-
/** Tool display name (shown to AI models) */
|
|
58
|
-
name?: string;
|
|
59
73
|
/** Tool handler function */
|
|
60
74
|
handler: ToolHandler<TContext, TData, TResult>;
|
|
61
75
|
/** Description of what the tool does (for AI discovery) */
|
|
62
76
|
description?: string;
|
|
63
77
|
/** Parameter schema or description */
|
|
64
78
|
parameters?: unknown;
|
|
79
|
+
/** Whether this tool is safe to run concurrently with other concurrent-safe tools */
|
|
80
|
+
isConcurrencySafe?(input?: Record<string, unknown>): boolean;
|
|
81
|
+
/** Whether this tool only reads data without side effects */
|
|
82
|
+
isReadOnly?(input?: Record<string, unknown>): boolean;
|
|
83
|
+
/** Whether this tool performs destructive/irreversible operations */
|
|
84
|
+
isDestructive?(input?: Record<string, unknown>): boolean;
|
|
85
|
+
/** How the tool responds to abort signals: 'cancel' = immediate abort, 'block' = allow completion */
|
|
86
|
+
interruptBehavior?(): 'cancel' | 'block';
|
|
87
|
+
/** Maximum characters for the tool result before truncation */
|
|
88
|
+
maxResultSizeChars?: number;
|
|
89
|
+
/** Validate input before execution */
|
|
90
|
+
validateInput?(input: Record<string, unknown>, context: ToolContext<TContext, TData>): Promise<ToolValidationResult> | ToolValidationResult;
|
|
91
|
+
/** Check permissions before execution — when denied, handler is NOT invoked */
|
|
92
|
+
checkPermissions?(input: Record<string, unknown>, context: ToolContext<TContext, TData>): Promise<ToolPermissionResult> | ToolPermissionResult;
|
|
65
93
|
}
|
|
66
94
|
/**
|
|
67
95
|
* Tool execution result
|
|
@@ -73,13 +101,15 @@ export interface ToolExecutionResult {
|
|
|
73
101
|
contextUpdate?: Record<string, unknown>;
|
|
74
102
|
dataUpdate?: Record<string, unknown>;
|
|
75
103
|
metadata?: Record<string, unknown>;
|
|
104
|
+
/** Directives collected during tool execution (from ctx.dispatch and/or result.directive). */
|
|
105
|
+
directives?: Directive[];
|
|
76
106
|
}
|
|
77
107
|
/**
|
|
78
108
|
* Tool scope enumeration
|
|
79
109
|
*/
|
|
80
110
|
export declare enum ToolScope {
|
|
81
111
|
AGENT = "agent",
|
|
82
|
-
|
|
112
|
+
FLOW = "flow",
|
|
83
113
|
STEP = "step",
|
|
84
114
|
REGISTERED = "registered",
|
|
85
115
|
ALL = "all"
|
|
@@ -138,36 +168,13 @@ export type ToolStatus = 'queued' | 'executing' | 'completed' | 'yielded';
|
|
|
138
168
|
export interface TrackedTool<TContext = unknown, TData = unknown> {
|
|
139
169
|
id: string;
|
|
140
170
|
toolCall: ToolCallRequest;
|
|
141
|
-
tool:
|
|
171
|
+
tool: Tool<TContext, TData>;
|
|
142
172
|
status: ToolStatus;
|
|
143
173
|
isConcurrencySafe: boolean;
|
|
144
174
|
promise?: Promise<void>;
|
|
145
175
|
results: ToolExecutionResult[];
|
|
146
176
|
pendingProgress: string[];
|
|
147
177
|
}
|
|
148
|
-
/**
|
|
149
|
-
* Extended tool interface with rich metadata for concurrency control,
|
|
150
|
-
* permission gating, input validation, and result size management.
|
|
151
|
-
*
|
|
152
|
-
* All additional methods/properties are optional — plain `Tool` objects
|
|
153
|
-
* remain fully compatible.
|
|
154
|
-
*/
|
|
155
|
-
export interface EnhancedTool<TContext = any, TData = any, TResult = any> extends Tool<TContext, TData, TResult> {
|
|
156
|
-
/** Whether this tool is safe to run concurrently with other concurrent-safe tools */
|
|
157
|
-
isConcurrencySafe?(input?: Record<string, unknown>): boolean;
|
|
158
|
-
/** Whether this tool only reads data without side effects */
|
|
159
|
-
isReadOnly?(input?: Record<string, unknown>): boolean;
|
|
160
|
-
/** Whether this tool performs destructive/irreversible operations */
|
|
161
|
-
isDestructive?(input?: Record<string, unknown>): boolean;
|
|
162
|
-
/** How the tool responds to abort signals: 'cancel' = immediate abort, 'block' = allow completion */
|
|
163
|
-
interruptBehavior?(): 'cancel' | 'block';
|
|
164
|
-
/** Maximum characters for the tool result before truncation */
|
|
165
|
-
maxResultSizeChars?: number;
|
|
166
|
-
/** Validate input before execution */
|
|
167
|
-
validateInput?(input: Record<string, unknown>, context: ToolContext<TContext, TData>): Promise<ToolValidationResult> | ToolValidationResult;
|
|
168
|
-
/** Check permissions before execution */
|
|
169
|
-
checkPermissions?(input: Record<string, unknown>, context: ToolContext<TContext, TData>): Promise<ToolPermissionResult> | ToolPermissionResult;
|
|
170
|
-
}
|
|
171
178
|
/**
|
|
172
179
|
* Configuration for data enrichment tools
|
|
173
180
|
*/
|