@falai/agent 3.4.4 → 4.0.0-alpha.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 +41 -34
- package/dist/cjs/core/Agent.d.ts +22 -378
- package/dist/cjs/core/Agent.d.ts.map +1 -1
- package/dist/cjs/core/Agent.js +104 -1178
- package/dist/cjs/core/Agent.js.map +1 -1
- package/dist/cjs/core/CompactionEngine.d.ts.map +1 -1
- package/dist/cjs/core/CompactionEngine.js +5 -3
- package/dist/cjs/core/CompactionEngine.js.map +1 -1
- package/dist/cjs/core/FlowSpec.d.ts +136 -0
- package/dist/cjs/core/FlowSpec.d.ts.map +1 -0
- package/dist/cjs/core/FlowSpec.js +522 -0
- package/dist/cjs/core/FlowSpec.js.map +1 -0
- package/dist/cjs/core/Migrate.d.ts +38 -0
- package/dist/cjs/core/Migrate.d.ts.map +1 -0
- package/dist/cjs/core/Migrate.js +270 -0
- package/dist/cjs/core/Migrate.js.map +1 -0
- package/dist/cjs/core/Prompt.d.ts +54 -0
- package/dist/cjs/core/Prompt.d.ts.map +1 -0
- package/dist/cjs/core/Prompt.js +143 -0
- package/dist/cjs/core/Prompt.js.map +1 -0
- package/dist/cjs/core/Runner.d.ts +160 -0
- package/dist/cjs/core/Runner.d.ts.map +1 -0
- package/dist/cjs/core/Runner.js +1131 -0
- package/dist/cjs/core/Runner.js.map +1 -0
- package/dist/cjs/core/Speak.d.ts +37 -0
- package/dist/cjs/core/Speak.d.ts.map +1 -0
- package/dist/cjs/core/Speak.js +364 -0
- package/dist/cjs/core/Speak.js.map +1 -0
- package/dist/cjs/core/Understand.d.ts +28 -0
- package/dist/cjs/core/Understand.d.ts.map +1 -0
- package/dist/cjs/core/Understand.js +353 -0
- package/dist/cjs/core/Understand.js.map +1 -0
- package/dist/cjs/core/contracts.d.ts +122 -0
- package/dist/cjs/core/contracts.d.ts.map +1 -0
- package/dist/cjs/core/contracts.js +11 -0
- package/dist/cjs/core/contracts.js.map +1 -0
- package/dist/cjs/core/falai.d.ts +57 -0
- package/dist/cjs/core/falai.d.ts.map +1 -0
- package/dist/cjs/core/falai.js +43 -0
- package/dist/cjs/core/falai.js.map +1 -0
- package/dist/cjs/core/predicate.d.ts +9 -0
- package/dist/cjs/core/predicate.d.ts.map +1 -0
- package/dist/cjs/core/predicate.js +58 -0
- package/dist/cjs/core/predicate.js.map +1 -0
- package/dist/cjs/index.d.ts +26 -31
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +46 -68
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/persistence/MemoryStore.d.ts +15 -0
- package/dist/cjs/persistence/MemoryStore.d.ts.map +1 -0
- package/dist/cjs/persistence/MemoryStore.js +39 -0
- package/dist/cjs/persistence/MemoryStore.js.map +1 -0
- package/dist/cjs/persistence/MongoStore.d.ts +42 -0
- package/dist/cjs/persistence/MongoStore.d.ts.map +1 -0
- package/dist/cjs/persistence/MongoStore.js +60 -0
- package/dist/cjs/persistence/MongoStore.js.map +1 -0
- package/dist/cjs/persistence/OpenSearchStore.d.ts +86 -0
- package/dist/cjs/persistence/OpenSearchStore.d.ts.map +1 -0
- package/dist/cjs/persistence/OpenSearchStore.js +120 -0
- package/dist/cjs/persistence/OpenSearchStore.js.map +1 -0
- package/dist/cjs/persistence/PostgresStore.d.ts +41 -0
- package/dist/cjs/persistence/PostgresStore.d.ts.map +1 -0
- package/dist/cjs/persistence/PostgresStore.js +58 -0
- package/dist/cjs/persistence/PostgresStore.js.map +1 -0
- package/dist/cjs/persistence/PrismaStore.d.ts +65 -0
- package/dist/cjs/persistence/PrismaStore.d.ts.map +1 -0
- package/dist/cjs/persistence/PrismaStore.js +95 -0
- package/dist/cjs/persistence/PrismaStore.js.map +1 -0
- package/dist/cjs/persistence/RedisStore.d.ts +34 -0
- package/dist/cjs/persistence/RedisStore.d.ts.map +1 -0
- package/dist/cjs/persistence/RedisStore.js +61 -0
- package/dist/cjs/persistence/RedisStore.js.map +1 -0
- package/dist/cjs/persistence/SQLiteStore.d.ts +45 -0
- package/dist/cjs/persistence/SQLiteStore.d.ts.map +1 -0
- package/dist/cjs/persistence/SQLiteStore.js +74 -0
- package/dist/cjs/persistence/SQLiteStore.js.map +1 -0
- package/dist/cjs/persistence/sessionRow.d.ts +14 -0
- package/dist/cjs/persistence/sessionRow.d.ts.map +1 -0
- package/dist/cjs/persistence/sessionRow.js +50 -0
- package/dist/cjs/persistence/sessionRow.js.map +1 -0
- package/dist/cjs/providers/DeepSeekProvider.d.ts.map +1 -1
- package/dist/cjs/providers/DeepSeekProvider.js +8 -3
- package/dist/cjs/providers/DeepSeekProvider.js.map +1 -1
- package/dist/cjs/providers/GeminiProvider.d.ts +4 -3
- package/dist/cjs/providers/GeminiProvider.d.ts.map +1 -1
- package/dist/cjs/providers/GeminiProvider.js +4 -3
- package/dist/cjs/providers/GeminiProvider.js.map +1 -1
- package/dist/cjs/providers/OpenAICompatibleProvider.d.ts +4 -0
- package/dist/cjs/providers/OpenAICompatibleProvider.d.ts.map +1 -1
- package/dist/cjs/providers/OpenAICompatibleProvider.js +2 -0
- package/dist/cjs/providers/OpenAICompatibleProvider.js.map +1 -1
- package/dist/cjs/providers/OpenRouterProvider.d.ts.map +1 -1
- package/dist/cjs/providers/OpenRouterProvider.js +2 -4
- package/dist/cjs/providers/OpenRouterProvider.js.map +1 -1
- package/dist/cjs/providers/ProviderAdapter.d.ts +1 -1
- package/dist/cjs/providers/ProviderAdapter.d.ts.map +1 -1
- package/dist/cjs/providers/ProviderAdapter.js +33 -10
- package/dist/cjs/providers/ProviderAdapter.js.map +1 -1
- package/dist/cjs/types/agent.d.ts +153 -383
- package/dist/cjs/types/agent.d.ts.map +1 -1
- package/dist/cjs/types/agent.js +1 -1
- package/dist/cjs/types/ai.d.ts +32 -1
- package/dist/cjs/types/ai.d.ts.map +1 -1
- package/dist/cjs/types/compaction.d.ts +3 -1
- package/dist/cjs/types/compaction.d.ts.map +1 -1
- package/dist/cjs/types/errors.d.ts +9 -12
- package/dist/cjs/types/errors.d.ts.map +1 -1
- package/dist/cjs/types/errors.js +14 -17
- package/dist/cjs/types/errors.js.map +1 -1
- package/dist/cjs/types/flow.d.ts +265 -513
- package/dist/cjs/types/flow.d.ts.map +1 -1
- package/dist/cjs/types/flow.js +7 -1
- package/dist/cjs/types/flow.js.map +1 -1
- package/dist/cjs/types/history.d.ts +7 -18
- package/dist/cjs/types/history.d.ts.map +1 -1
- package/dist/cjs/types/history.js.map +1 -1
- package/dist/cjs/types/index.d.ts +9 -15
- package/dist/cjs/types/index.d.ts.map +1 -1
- package/dist/cjs/types/index.js +4 -14
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/types/session.d.ts +94 -64
- package/dist/cjs/types/session.d.ts.map +1 -1
- package/dist/cjs/types/session.js +5 -1
- package/dist/cjs/types/session.js.map +1 -1
- package/dist/cjs/types/tool.d.ts +37 -207
- package/dist/cjs/types/tool.d.ts.map +1 -1
- package/dist/cjs/types/tool.js +5 -14
- package/dist/cjs/types/tool.js.map +1 -1
- package/dist/cjs/utils/clock.d.ts +28 -0
- package/dist/cjs/utils/clock.d.ts.map +1 -0
- package/dist/cjs/utils/clock.js +64 -0
- package/dist/cjs/utils/clock.js.map +1 -0
- package/dist/cjs/utils/duration.d.ts +11 -0
- package/dist/cjs/utils/duration.d.ts.map +1 -0
- package/dist/cjs/utils/duration.js +31 -0
- package/dist/cjs/utils/duration.js.map +1 -0
- package/dist/cjs/utils/history.d.ts +4 -1
- package/dist/cjs/utils/history.d.ts.map +1 -1
- package/dist/cjs/utils/history.js +2 -2
- package/dist/cjs/utils/history.js.map +1 -1
- package/dist/cjs/utils/index.d.ts +4 -10
- package/dist/cjs/utils/index.d.ts.map +1 -1
- package/dist/cjs/utils/index.js +14 -61
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/json.d.ts +2 -0
- package/dist/cjs/utils/json.d.ts.map +1 -1
- package/dist/cjs/utils/json.js +5 -0
- package/dist/cjs/utils/json.js.map +1 -1
- package/dist/cjs/utils/outcomes.d.ts +48 -0
- package/dist/cjs/utils/outcomes.d.ts.map +1 -0
- package/dist/cjs/utils/outcomes.js +51 -0
- package/dist/cjs/utils/outcomes.js.map +1 -0
- package/dist/cjs/utils/schema.d.ts +50 -0
- package/dist/cjs/utils/schema.d.ts.map +1 -0
- package/dist/cjs/utils/schema.js +138 -0
- package/dist/cjs/utils/schema.js.map +1 -0
- package/dist/cjs/utils/streamingMessage.d.ts +3 -2
- package/dist/cjs/utils/streamingMessage.d.ts.map +1 -1
- package/dist/cjs/utils/streamingMessage.js +38 -4
- package/dist/cjs/utils/streamingMessage.js.map +1 -1
- package/dist/cjs/utils/template.d.ts +13 -149
- package/dist/cjs/utils/template.d.ts.map +1 -1
- package/dist/cjs/utils/template.js +31 -363
- package/dist/cjs/utils/template.js.map +1 -1
- package/dist/cjs/utils/usage.d.ts +19 -0
- package/dist/cjs/utils/usage.d.ts.map +1 -0
- package/dist/cjs/utils/usage.js +35 -0
- package/dist/cjs/utils/usage.js.map +1 -0
- package/dist/core/Agent.d.ts +22 -378
- package/dist/core/Agent.d.ts.map +1 -1
- package/dist/core/Agent.js +107 -1181
- package/dist/core/Agent.js.map +1 -1
- package/dist/core/CompactionEngine.d.ts.map +1 -1
- package/dist/core/CompactionEngine.js +5 -3
- package/dist/core/CompactionEngine.js.map +1 -1
- package/dist/core/FlowSpec.d.ts +136 -0
- package/dist/core/FlowSpec.d.ts.map +1 -0
- package/dist/core/FlowSpec.js +516 -0
- package/dist/core/FlowSpec.js.map +1 -0
- package/dist/core/Migrate.d.ts +38 -0
- package/dist/core/Migrate.d.ts.map +1 -0
- package/dist/core/Migrate.js +264 -0
- package/dist/core/Migrate.js.map +1 -0
- package/dist/core/Prompt.d.ts +54 -0
- package/dist/core/Prompt.d.ts.map +1 -0
- package/dist/core/Prompt.js +133 -0
- package/dist/core/Prompt.js.map +1 -0
- package/dist/core/Runner.d.ts +160 -0
- package/dist/core/Runner.d.ts.map +1 -0
- package/dist/core/Runner.js +1127 -0
- package/dist/core/Runner.js.map +1 -0
- package/dist/core/Speak.d.ts +37 -0
- package/dist/core/Speak.d.ts.map +1 -0
- package/dist/core/Speak.js +360 -0
- package/dist/core/Speak.js.map +1 -0
- package/dist/core/Understand.d.ts +28 -0
- package/dist/core/Understand.d.ts.map +1 -0
- package/dist/core/Understand.js +349 -0
- package/dist/core/Understand.js.map +1 -0
- package/dist/core/contracts.d.ts +122 -0
- package/dist/core/contracts.d.ts.map +1 -0
- package/dist/core/contracts.js +10 -0
- package/dist/core/contracts.js.map +1 -0
- package/dist/core/falai.d.ts +57 -0
- package/dist/core/falai.d.ts.map +1 -0
- package/dist/core/falai.js +40 -0
- package/dist/core/falai.js.map +1 -0
- package/dist/core/predicate.d.ts +9 -0
- package/dist/core/predicate.d.ts.map +1 -0
- package/dist/core/predicate.js +54 -0
- package/dist/core/predicate.js.map +1 -0
- package/dist/index.d.ts +26 -31
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -24
- package/dist/index.js.map +1 -1
- package/dist/persistence/MemoryStore.d.ts +15 -0
- package/dist/persistence/MemoryStore.d.ts.map +1 -0
- package/dist/persistence/MemoryStore.js +35 -0
- package/dist/persistence/MemoryStore.js.map +1 -0
- package/dist/persistence/MongoStore.d.ts +42 -0
- package/dist/persistence/MongoStore.d.ts.map +1 -0
- package/dist/persistence/MongoStore.js +56 -0
- package/dist/persistence/MongoStore.js.map +1 -0
- package/dist/persistence/OpenSearchStore.d.ts +86 -0
- package/dist/persistence/OpenSearchStore.d.ts.map +1 -0
- package/dist/persistence/OpenSearchStore.js +116 -0
- package/dist/persistence/OpenSearchStore.js.map +1 -0
- package/dist/persistence/PostgresStore.d.ts +41 -0
- package/dist/persistence/PostgresStore.d.ts.map +1 -0
- package/dist/persistence/PostgresStore.js +54 -0
- package/dist/persistence/PostgresStore.js.map +1 -0
- package/dist/persistence/PrismaStore.d.ts +65 -0
- package/dist/persistence/PrismaStore.d.ts.map +1 -0
- package/dist/persistence/PrismaStore.js +91 -0
- package/dist/persistence/PrismaStore.js.map +1 -0
- package/dist/persistence/RedisStore.d.ts +34 -0
- package/dist/persistence/RedisStore.d.ts.map +1 -0
- package/dist/persistence/RedisStore.js +57 -0
- package/dist/persistence/RedisStore.js.map +1 -0
- package/dist/persistence/SQLiteStore.d.ts +45 -0
- package/dist/persistence/SQLiteStore.d.ts.map +1 -0
- package/dist/persistence/SQLiteStore.js +70 -0
- package/dist/persistence/SQLiteStore.js.map +1 -0
- package/dist/persistence/sessionRow.d.ts +14 -0
- package/dist/persistence/sessionRow.d.ts.map +1 -0
- package/dist/persistence/sessionRow.js +45 -0
- package/dist/persistence/sessionRow.js.map +1 -0
- package/dist/providers/DeepSeekProvider.d.ts.map +1 -1
- package/dist/providers/DeepSeekProvider.js +8 -3
- package/dist/providers/DeepSeekProvider.js.map +1 -1
- package/dist/providers/GeminiProvider.d.ts +4 -3
- package/dist/providers/GeminiProvider.d.ts.map +1 -1
- package/dist/providers/GeminiProvider.js +4 -3
- package/dist/providers/GeminiProvider.js.map +1 -1
- package/dist/providers/OpenAICompatibleProvider.d.ts +4 -0
- package/dist/providers/OpenAICompatibleProvider.d.ts.map +1 -1
- package/dist/providers/OpenAICompatibleProvider.js +2 -0
- package/dist/providers/OpenAICompatibleProvider.js.map +1 -1
- package/dist/providers/OpenRouterProvider.d.ts.map +1 -1
- package/dist/providers/OpenRouterProvider.js +2 -4
- package/dist/providers/OpenRouterProvider.js.map +1 -1
- package/dist/providers/ProviderAdapter.d.ts +1 -1
- package/dist/providers/ProviderAdapter.d.ts.map +1 -1
- package/dist/providers/ProviderAdapter.js +34 -11
- package/dist/providers/ProviderAdapter.js.map +1 -1
- package/dist/types/agent.d.ts +153 -383
- package/dist/types/agent.d.ts.map +1 -1
- package/dist/types/agent.js +1 -1
- package/dist/types/ai.d.ts +32 -1
- package/dist/types/ai.d.ts.map +1 -1
- package/dist/types/compaction.d.ts +3 -1
- package/dist/types/compaction.d.ts.map +1 -1
- package/dist/types/errors.d.ts +9 -12
- package/dist/types/errors.d.ts.map +1 -1
- package/dist/types/errors.js +12 -15
- package/dist/types/errors.js.map +1 -1
- package/dist/types/flow.d.ts +265 -513
- package/dist/types/flow.d.ts.map +1 -1
- package/dist/types/flow.js +7 -1
- package/dist/types/flow.js.map +1 -1
- package/dist/types/history.d.ts +7 -18
- package/dist/types/history.d.ts.map +1 -1
- package/dist/types/history.js.map +1 -1
- package/dist/types/index.d.ts +9 -15
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -7
- package/dist/types/index.js.map +1 -1
- package/dist/types/session.d.ts +94 -64
- package/dist/types/session.d.ts.map +1 -1
- package/dist/types/session.js +5 -1
- package/dist/types/session.js.map +1 -1
- package/dist/types/tool.d.ts +37 -207
- package/dist/types/tool.d.ts.map +1 -1
- package/dist/types/tool.js +6 -13
- package/dist/types/tool.js.map +1 -1
- package/dist/utils/clock.d.ts +28 -0
- package/dist/utils/clock.d.ts.map +1 -0
- package/dist/utils/clock.js +59 -0
- package/dist/utils/clock.js.map +1 -0
- package/dist/utils/duration.d.ts +11 -0
- package/dist/utils/duration.d.ts.map +1 -0
- package/dist/utils/duration.js +26 -0
- package/dist/utils/duration.js.map +1 -0
- package/dist/utils/history.d.ts +4 -1
- package/dist/utils/history.d.ts.map +1 -1
- package/dist/utils/history.js +2 -2
- package/dist/utils/history.js.map +1 -1
- package/dist/utils/index.d.ts +4 -10
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +4 -21
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/json.d.ts +2 -0
- package/dist/utils/json.d.ts.map +1 -1
- package/dist/utils/json.js +4 -0
- package/dist/utils/json.js.map +1 -1
- package/dist/utils/outcomes.d.ts +48 -0
- package/dist/utils/outcomes.d.ts.map +1 -0
- package/dist/utils/outcomes.js +48 -0
- package/dist/utils/outcomes.js.map +1 -0
- package/dist/utils/schema.d.ts +50 -0
- package/dist/utils/schema.d.ts.map +1 -0
- package/dist/utils/schema.js +129 -0
- package/dist/utils/schema.js.map +1 -0
- package/dist/utils/streamingMessage.d.ts +3 -2
- package/dist/utils/streamingMessage.d.ts.map +1 -1
- package/dist/utils/streamingMessage.js +38 -4
- package/dist/utils/streamingMessage.js.map +1 -1
- package/dist/utils/template.d.ts +13 -149
- package/dist/utils/template.d.ts.map +1 -1
- package/dist/utils/template.js +28 -355
- package/dist/utils/template.js.map +1 -1
- package/dist/utils/usage.d.ts +19 -0
- package/dist/utils/usage.d.ts.map +1 -0
- package/dist/utils/usage.js +31 -0
- package/dist/utils/usage.js.map +1 -0
- package/docs/README.md +37 -19
- package/docs/concepts/architecture.md +117 -239
- package/docs/concepts/collection.md +170 -0
- package/docs/concepts/pipeline.md +132 -378
- package/docs/concepts/runs-and-waits.md +192 -0
- package/docs/guides/actions-and-events.md +276 -0
- package/docs/guides/branching.md +119 -208
- package/docs/guides/compaction.md +63 -158
- package/docs/guides/conditions.md +164 -128
- package/docs/guides/error-handling.md +168 -164
- package/docs/guides/flow-control.md +210 -349
- package/docs/guides/flows-from-json.md +224 -0
- package/docs/guides/instructions.md +125 -161
- package/docs/guides/persistence.md +182 -206
- package/docs/guides/streaming.md +50 -114
- package/docs/guides/testing.md +284 -0
- package/docs/guides/triggers.md +401 -0
- package/docs/migration/README.md +8 -15
- package/docs/migration/v1-to-v2.md +1 -1
- package/docs/migration/v2-3-to-v2-4.md +2 -2
- package/docs/migration/v2-6-to-v2-7.md +4 -4
- package/docs/migration/v3-to-v4.md +452 -0
- package/docs/reference/actions-events-conditions.md +396 -0
- package/docs/reference/agent.md +244 -0
- package/docs/reference/branches.md +75 -203
- package/docs/reference/errors.md +188 -144
- package/docs/reference/fields.md +125 -0
- package/docs/reference/flow-spec.md +248 -0
- package/docs/reference/flow.md +104 -192
- package/docs/reference/instruction.md +83 -137
- package/docs/reference/outcomes.md +273 -0
- package/docs/reference/providers.md +525 -302
- package/docs/reference/session.md +210 -0
- package/docs/reference/step.md +194 -312
- package/docs/reference/stores.md +496 -0
- package/docs/reference/tool.md +162 -231
- package/docs/reference/trigger.md +180 -0
- package/docs/rfc/v4-one-flow.md +477 -0
- package/docs/start/01-install.md +59 -44
- package/docs/start/02-first-agent.md +97 -147
- package/docs/start/03-collect-data.md +78 -183
- package/docs/start/04-add-tools.md +159 -227
- package/docs/start/05-go-to-production.md +167 -164
- package/examples/01-quickstart.ts +26 -16
- package/examples/02-fields.ts +75 -0
- package/examples/03-tools.ts +79 -119
- package/examples/04-instructions.ts +60 -87
- package/examples/05-branches.ts +78 -0
- package/examples/06-triggers-and-waits.ts +148 -0
- package/examples/07-streaming.ts +34 -60
- package/examples/08-store-and-migration.ts +97 -0
- package/examples/09-flows-from-json.ts +107 -0
- package/package.json +9 -6
- package/src/core/Agent.ts +116 -1512
- package/src/core/CompactionEngine.ts +7 -4
- package/src/core/FlowSpec.ts +712 -0
- package/src/core/Migrate.ts +256 -0
- package/src/core/Prompt.ts +156 -0
- package/src/core/Runner.ts +1181 -0
- package/src/core/Speak.ts +451 -0
- package/src/core/Understand.ts +422 -0
- package/src/core/contracts.ts +111 -0
- package/src/core/falai.ts +86 -0
- package/src/core/predicate.ts +56 -0
- package/src/index.ts +119 -147
- package/src/persistence/MemoryStore.ts +37 -0
- package/src/persistence/MongoStore.ts +89 -0
- package/src/persistence/OpenSearchStore.ts +153 -0
- package/src/persistence/PostgresStore.ts +89 -0
- package/src/persistence/PrismaStore.ts +127 -0
- package/src/persistence/RedisStore.ts +90 -0
- package/src/persistence/SQLiteStore.ts +103 -0
- package/src/persistence/sessionRow.ts +45 -0
- package/src/providers/DeepSeekProvider.ts +8 -3
- package/src/providers/GeminiProvider.ts +4 -3
- package/src/providers/OpenAICompatibleProvider.ts +6 -0
- package/src/providers/OpenRouterProvider.ts +2 -4
- package/src/providers/ProviderAdapter.ts +36 -8
- package/src/types/agent.ts +124 -397
- package/src/types/ai.ts +33 -1
- package/src/types/compaction.ts +3 -1
- package/src/types/errors.ts +13 -16
- package/src/types/flow.ts +249 -550
- package/src/types/history.ts +7 -20
- package/src/types/index.ts +87 -139
- package/src/types/session.ts +135 -70
- package/src/types/tool.ts +42 -267
- package/src/utils/clock.ts +70 -0
- package/src/utils/duration.ts +33 -0
- package/src/utils/history.ts +3 -2
- package/src/utils/index.ts +8 -66
- package/src/utils/json.ts +5 -0
- package/src/utils/outcomes.ts +56 -0
- package/src/utils/schema.ts +145 -0
- package/src/utils/streamingMessage.ts +34 -4
- package/src/utils/template.ts +32 -423
- package/src/utils/usage.ts +37 -0
- package/dist/adapters/MemoryAdapter.d.ts +0 -47
- package/dist/adapters/MemoryAdapter.d.ts.map +0 -1
- package/dist/adapters/MemoryAdapter.js +0 -204
- package/dist/adapters/MemoryAdapter.js.map +0 -1
- package/dist/adapters/MongoAdapter.d.ts +0 -97
- package/dist/adapters/MongoAdapter.d.ts.map +0 -1
- package/dist/adapters/MongoAdapter.js +0 -196
- package/dist/adapters/MongoAdapter.js.map +0 -1
- package/dist/adapters/OpenSearchAdapter.d.ts +0 -169
- package/dist/adapters/OpenSearchAdapter.d.ts.map +0 -1
- package/dist/adapters/OpenSearchAdapter.js +0 -471
- package/dist/adapters/OpenSearchAdapter.js.map +0 -1
- package/dist/adapters/PostgreSQLAdapter.d.ts +0 -85
- package/dist/adapters/PostgreSQLAdapter.d.ts.map +0 -1
- package/dist/adapters/PostgreSQLAdapter.js +0 -308
- package/dist/adapters/PostgreSQLAdapter.js.map +0 -1
- package/dist/adapters/PrismaAdapter.d.ts +0 -115
- package/dist/adapters/PrismaAdapter.d.ts.map +0 -1
- package/dist/adapters/PrismaAdapter.js +0 -406
- package/dist/adapters/PrismaAdapter.js.map +0 -1
- package/dist/adapters/RedisAdapter.d.ts +0 -72
- package/dist/adapters/RedisAdapter.d.ts.map +0 -1
- package/dist/adapters/RedisAdapter.js +0 -286
- package/dist/adapters/RedisAdapter.js.map +0 -1
- package/dist/adapters/SQLiteAdapter.d.ts +0 -86
- package/dist/adapters/SQLiteAdapter.d.ts.map +0 -1
- package/dist/adapters/SQLiteAdapter.js +0 -337
- package/dist/adapters/SQLiteAdapter.js.map +0 -1
- package/dist/adapters/index.d.ts +0 -17
- package/dist/adapters/index.d.ts.map +0 -1
- package/dist/adapters/index.js +0 -11
- package/dist/adapters/index.js.map +0 -1
- package/dist/adapters/sessionRow.d.ts +0 -22
- package/dist/adapters/sessionRow.d.ts.map +0 -1
- package/dist/adapters/sessionRow.js +0 -48
- package/dist/adapters/sessionRow.js.map +0 -1
- package/dist/cjs/adapters/MemoryAdapter.d.ts +0 -47
- package/dist/cjs/adapters/MemoryAdapter.d.ts.map +0 -1
- package/dist/cjs/adapters/MemoryAdapter.js +0 -208
- package/dist/cjs/adapters/MemoryAdapter.js.map +0 -1
- package/dist/cjs/adapters/MongoAdapter.d.ts +0 -97
- package/dist/cjs/adapters/MongoAdapter.d.ts.map +0 -1
- package/dist/cjs/adapters/MongoAdapter.js +0 -200
- package/dist/cjs/adapters/MongoAdapter.js.map +0 -1
- package/dist/cjs/adapters/OpenSearchAdapter.d.ts +0 -169
- package/dist/cjs/adapters/OpenSearchAdapter.d.ts.map +0 -1
- package/dist/cjs/adapters/OpenSearchAdapter.js +0 -475
- package/dist/cjs/adapters/OpenSearchAdapter.js.map +0 -1
- package/dist/cjs/adapters/PostgreSQLAdapter.d.ts +0 -85
- package/dist/cjs/adapters/PostgreSQLAdapter.d.ts.map +0 -1
- package/dist/cjs/adapters/PostgreSQLAdapter.js +0 -312
- package/dist/cjs/adapters/PostgreSQLAdapter.js.map +0 -1
- package/dist/cjs/adapters/PrismaAdapter.d.ts +0 -115
- package/dist/cjs/adapters/PrismaAdapter.d.ts.map +0 -1
- package/dist/cjs/adapters/PrismaAdapter.js +0 -410
- package/dist/cjs/adapters/PrismaAdapter.js.map +0 -1
- package/dist/cjs/adapters/RedisAdapter.d.ts +0 -72
- package/dist/cjs/adapters/RedisAdapter.d.ts.map +0 -1
- package/dist/cjs/adapters/RedisAdapter.js +0 -290
- package/dist/cjs/adapters/RedisAdapter.js.map +0 -1
- package/dist/cjs/adapters/SQLiteAdapter.d.ts +0 -86
- package/dist/cjs/adapters/SQLiteAdapter.d.ts.map +0 -1
- package/dist/cjs/adapters/SQLiteAdapter.js +0 -341
- package/dist/cjs/adapters/SQLiteAdapter.js.map +0 -1
- package/dist/cjs/adapters/index.d.ts +0 -17
- package/dist/cjs/adapters/index.d.ts.map +0 -1
- package/dist/cjs/adapters/index.js +0 -21
- package/dist/cjs/adapters/index.js.map +0 -1
- package/dist/cjs/adapters/sessionRow.d.ts +0 -22
- package/dist/cjs/adapters/sessionRow.d.ts.map +0 -1
- package/dist/cjs/adapters/sessionRow.js +0 -52
- package/dist/cjs/adapters/sessionRow.js.map +0 -1
- package/dist/cjs/constants/index.d.ts +0 -1
- package/dist/cjs/constants/index.d.ts.map +0 -1
- package/dist/cjs/constants/index.js +0 -4
- package/dist/cjs/constants/index.js.map +0 -1
- package/dist/cjs/core/AutoChainExecutor.d.ts +0 -97
- package/dist/cjs/core/AutoChainExecutor.d.ts.map +0 -1
- package/dist/cjs/core/AutoChainExecutor.js +0 -288
- package/dist/cjs/core/AutoChainExecutor.js.map +0 -1
- package/dist/cjs/core/BranchEvaluator.d.ts +0 -55
- package/dist/cjs/core/BranchEvaluator.d.ts.map +0 -1
- package/dist/cjs/core/BranchEvaluator.js +0 -125
- package/dist/cjs/core/BranchEvaluator.js.map +0 -1
- package/dist/cjs/core/DirectiveChainTracker.d.ts +0 -49
- package/dist/cjs/core/DirectiveChainTracker.d.ts.map +0 -1
- package/dist/cjs/core/DirectiveChainTracker.js +0 -121
- package/dist/cjs/core/DirectiveChainTracker.js.map +0 -1
- package/dist/cjs/core/Events.d.ts +0 -26
- package/dist/cjs/core/Events.d.ts.map +0 -1
- package/dist/cjs/core/Events.js +0 -144
- package/dist/cjs/core/Events.js.map +0 -1
- package/dist/cjs/core/Flow.d.ts +0 -183
- package/dist/cjs/core/Flow.d.ts.map +0 -1
- package/dist/cjs/core/Flow.js +0 -551
- package/dist/cjs/core/Flow.js.map +0 -1
- package/dist/cjs/core/FlowRouter.d.ts +0 -183
- package/dist/cjs/core/FlowRouter.d.ts.map +0 -1
- package/dist/cjs/core/FlowRouter.js +0 -1047
- package/dist/cjs/core/FlowRouter.js.map +0 -1
- package/dist/cjs/core/PersistenceManager.d.ts +0 -114
- package/dist/cjs/core/PersistenceManager.d.ts.map +0 -1
- package/dist/cjs/core/PersistenceManager.js +0 -336
- package/dist/cjs/core/PersistenceManager.js.map +0 -1
- package/dist/cjs/core/PromptComposer.d.ts +0 -47
- package/dist/cjs/core/PromptComposer.d.ts.map +0 -1
- package/dist/cjs/core/PromptComposer.js +0 -397
- package/dist/cjs/core/PromptComposer.js.map +0 -1
- package/dist/cjs/core/PromptSectionCache.d.ts +0 -48
- package/dist/cjs/core/PromptSectionCache.d.ts.map +0 -1
- package/dist/cjs/core/PromptSectionCache.js +0 -108
- package/dist/cjs/core/PromptSectionCache.js.map +0 -1
- package/dist/cjs/core/ResponseEngine.d.ts +0 -43
- package/dist/cjs/core/ResponseEngine.d.ts.map +0 -1
- package/dist/cjs/core/ResponseEngine.js +0 -235
- package/dist/cjs/core/ResponseEngine.js.map +0 -1
- package/dist/cjs/core/ResponseGenerationError.d.ts +0 -30
- package/dist/cjs/core/ResponseGenerationError.d.ts.map +0 -1
- package/dist/cjs/core/ResponseGenerationError.js +0 -35
- package/dist/cjs/core/ResponseGenerationError.js.map +0 -1
- package/dist/cjs/core/ResponseModal.d.ts +0 -305
- package/dist/cjs/core/ResponseModal.d.ts.map +0 -1
- package/dist/cjs/core/ResponseModal.js +0 -1414
- package/dist/cjs/core/ResponseModal.js.map +0 -1
- package/dist/cjs/core/ResponsePipeline.d.ts +0 -220
- package/dist/cjs/core/ResponsePipeline.d.ts.map +0 -1
- package/dist/cjs/core/ResponsePipeline.js +0 -1040
- package/dist/cjs/core/ResponsePipeline.js.map +0 -1
- package/dist/cjs/core/SessionFinalizer.d.ts +0 -34
- package/dist/cjs/core/SessionFinalizer.d.ts.map +0 -1
- package/dist/cjs/core/SessionFinalizer.js +0 -88
- package/dist/cjs/core/SessionFinalizer.js.map +0 -1
- package/dist/cjs/core/SessionManager.d.ts +0 -112
- package/dist/cjs/core/SessionManager.d.ts.map +0 -1
- package/dist/cjs/core/SessionManager.js +0 -308
- package/dist/cjs/core/SessionManager.js.map +0 -1
- package/dist/cjs/core/SignalCoordinator.d.ts +0 -103
- package/dist/cjs/core/SignalCoordinator.d.ts.map +0 -1
- package/dist/cjs/core/SignalCoordinator.js +0 -207
- package/dist/cjs/core/SignalCoordinator.js.map +0 -1
- package/dist/cjs/core/SignalEvaluator.d.ts +0 -86
- package/dist/cjs/core/SignalEvaluator.d.ts.map +0 -1
- package/dist/cjs/core/SignalEvaluator.js +0 -319
- package/dist/cjs/core/SignalEvaluator.js.map +0 -1
- package/dist/cjs/core/SignalProcessor.d.ts +0 -152
- package/dist/cjs/core/SignalProcessor.d.ts.map +0 -1
- package/dist/cjs/core/SignalProcessor.js +0 -505
- package/dist/cjs/core/SignalProcessor.js.map +0 -1
- package/dist/cjs/core/Step.d.ts +0 -184
- package/dist/cjs/core/Step.d.ts.map +0 -1
- package/dist/cjs/core/Step.js +0 -599
- package/dist/cjs/core/Step.js.map +0 -1
- package/dist/cjs/core/StepLifecycle.d.ts +0 -43
- package/dist/cjs/core/StepLifecycle.d.ts.map +0 -1
- package/dist/cjs/core/StepLifecycle.js +0 -180
- package/dist/cjs/core/StepLifecycle.js.map +0 -1
- package/dist/cjs/core/StreamingToolExecutor.d.ts +0 -142
- package/dist/cjs/core/StreamingToolExecutor.d.ts.map +0 -1
- package/dist/cjs/core/StreamingToolExecutor.js +0 -490
- package/dist/cjs/core/StreamingToolExecutor.js.map +0 -1
- package/dist/cjs/core/ToolLoopExecutor.d.ts +0 -133
- package/dist/cjs/core/ToolLoopExecutor.d.ts.map +0 -1
- package/dist/cjs/core/ToolLoopExecutor.js +0 -568
- package/dist/cjs/core/ToolLoopExecutor.js.map +0 -1
- package/dist/cjs/core/ToolManager.d.ts +0 -250
- package/dist/cjs/core/ToolManager.d.ts.map +0 -1
- package/dist/cjs/core/ToolManager.js +0 -1104
- package/dist/cjs/core/ToolManager.js.map +0 -1
- package/dist/cjs/core/createAgent.d.ts +0 -35
- package/dist/cjs/core/createAgent.d.ts.map +0 -1
- package/dist/cjs/core/createAgent.js +0 -39
- package/dist/cjs/core/createAgent.js.map +0 -1
- package/dist/cjs/core/flow-namespace.d.ts +0 -64
- package/dist/cjs/core/flow-namespace.d.ts.map +0 -1
- package/dist/cjs/core/flow-namespace.js +0 -182
- package/dist/cjs/core/flow-namespace.js.map +0 -1
- package/dist/cjs/core/toolGates.d.ts +0 -24
- package/dist/cjs/core/toolGates.d.ts.map +0 -1
- package/dist/cjs/core/toolGates.js +0 -52
- package/dist/cjs/core/toolGates.js.map +0 -1
- package/dist/cjs/types/persistence.d.ts +0 -254
- package/dist/cjs/types/persistence.d.ts.map +0 -1
- package/dist/cjs/types/persistence.js +0 -7
- package/dist/cjs/types/persistence.js.map +0 -1
- package/dist/cjs/types/prompt-cache.d.ts +0 -15
- package/dist/cjs/types/prompt-cache.d.ts.map +0 -1
- package/dist/cjs/types/prompt-cache.js +0 -6
- package/dist/cjs/types/prompt-cache.js.map +0 -1
- package/dist/cjs/types/signals.d.ts +0 -263
- package/dist/cjs/types/signals.d.ts.map +0 -1
- package/dist/cjs/types/signals.js +0 -11
- package/dist/cjs/types/signals.js.map +0 -1
- package/dist/cjs/types/template.d.ts +0 -84
- package/dist/cjs/types/template.d.ts.map +0 -1
- package/dist/cjs/types/template.js +0 -3
- package/dist/cjs/types/template.js.map +0 -1
- package/dist/cjs/utils/condition.d.ts +0 -63
- package/dist/cjs/utils/condition.d.ts.map +0 -1
- package/dist/cjs/utils/condition.js +0 -239
- package/dist/cjs/utils/condition.js.map +0 -1
- package/dist/cjs/utils/event.d.ts +0 -6
- package/dist/cjs/utils/event.d.ts.map +0 -1
- package/dist/cjs/utils/event.js +0 -20
- package/dist/cjs/utils/event.js.map +0 -1
- package/dist/cjs/utils/id.d.ts +0 -33
- package/dist/cjs/utils/id.d.ts.map +0 -1
- package/dist/cjs/utils/id.js +0 -84
- package/dist/cjs/utils/id.js.map +0 -1
- package/dist/cjs/utils/serialize.d.ts +0 -36
- package/dist/cjs/utils/serialize.d.ts.map +0 -1
- package/dist/cjs/utils/serialize.js +0 -77
- package/dist/cjs/utils/serialize.js.map +0 -1
- package/dist/cjs/utils/session.d.ts +0 -124
- package/dist/cjs/utils/session.d.ts.map +0 -1
- package/dist/cjs/utils/session.js +0 -396
- package/dist/cjs/utils/session.js.map +0 -1
- package/dist/constants/index.d.ts +0 -2
- package/dist/constants/index.d.ts.map +0 -1
- package/dist/constants/index.js +0 -4
- package/dist/constants/index.js.map +0 -1
- package/dist/core/AutoChainExecutor.d.ts +0 -97
- package/dist/core/AutoChainExecutor.d.ts.map +0 -1
- package/dist/core/AutoChainExecutor.js +0 -284
- package/dist/core/AutoChainExecutor.js.map +0 -1
- package/dist/core/BranchEvaluator.d.ts +0 -55
- package/dist/core/BranchEvaluator.d.ts.map +0 -1
- package/dist/core/BranchEvaluator.js +0 -121
- package/dist/core/BranchEvaluator.js.map +0 -1
- package/dist/core/DirectiveChainTracker.d.ts +0 -49
- package/dist/core/DirectiveChainTracker.d.ts.map +0 -1
- package/dist/core/DirectiveChainTracker.js +0 -117
- package/dist/core/DirectiveChainTracker.js.map +0 -1
- package/dist/core/Events.d.ts +0 -26
- package/dist/core/Events.d.ts.map +0 -1
- package/dist/core/Events.js +0 -137
- package/dist/core/Events.js.map +0 -1
- package/dist/core/Flow.d.ts +0 -183
- package/dist/core/Flow.d.ts.map +0 -1
- package/dist/core/Flow.js +0 -547
- package/dist/core/Flow.js.map +0 -1
- package/dist/core/FlowRouter.d.ts +0 -183
- package/dist/core/FlowRouter.d.ts.map +0 -1
- package/dist/core/FlowRouter.js +0 -1043
- package/dist/core/FlowRouter.js.map +0 -1
- package/dist/core/PersistenceManager.d.ts +0 -114
- package/dist/core/PersistenceManager.d.ts.map +0 -1
- package/dist/core/PersistenceManager.js +0 -332
- package/dist/core/PersistenceManager.js.map +0 -1
- package/dist/core/PromptComposer.d.ts +0 -47
- package/dist/core/PromptComposer.d.ts.map +0 -1
- package/dist/core/PromptComposer.js +0 -393
- package/dist/core/PromptComposer.js.map +0 -1
- package/dist/core/PromptSectionCache.d.ts +0 -48
- package/dist/core/PromptSectionCache.d.ts.map +0 -1
- package/dist/core/PromptSectionCache.js +0 -104
- package/dist/core/PromptSectionCache.js.map +0 -1
- package/dist/core/ResponseEngine.d.ts +0 -43
- package/dist/core/ResponseEngine.d.ts.map +0 -1
- package/dist/core/ResponseEngine.js +0 -231
- package/dist/core/ResponseEngine.js.map +0 -1
- package/dist/core/ResponseGenerationError.d.ts +0 -30
- package/dist/core/ResponseGenerationError.d.ts.map +0 -1
- package/dist/core/ResponseGenerationError.js +0 -31
- package/dist/core/ResponseGenerationError.js.map +0 -1
- package/dist/core/ResponseModal.d.ts +0 -305
- package/dist/core/ResponseModal.d.ts.map +0 -1
- package/dist/core/ResponseModal.js +0 -1410
- package/dist/core/ResponseModal.js.map +0 -1
- package/dist/core/ResponsePipeline.d.ts +0 -220
- package/dist/core/ResponsePipeline.d.ts.map +0 -1
- package/dist/core/ResponsePipeline.js +0 -1035
- package/dist/core/ResponsePipeline.js.map +0 -1
- package/dist/core/SessionFinalizer.d.ts +0 -34
- package/dist/core/SessionFinalizer.d.ts.map +0 -1
- package/dist/core/SessionFinalizer.js +0 -84
- package/dist/core/SessionFinalizer.js.map +0 -1
- package/dist/core/SessionManager.d.ts +0 -112
- package/dist/core/SessionManager.d.ts.map +0 -1
- package/dist/core/SessionManager.js +0 -301
- package/dist/core/SessionManager.js.map +0 -1
- package/dist/core/SignalCoordinator.d.ts +0 -103
- package/dist/core/SignalCoordinator.d.ts.map +0 -1
- package/dist/core/SignalCoordinator.js +0 -203
- package/dist/core/SignalCoordinator.js.map +0 -1
- package/dist/core/SignalEvaluator.d.ts +0 -86
- package/dist/core/SignalEvaluator.d.ts.map +0 -1
- package/dist/core/SignalEvaluator.js +0 -312
- package/dist/core/SignalEvaluator.js.map +0 -1
- package/dist/core/SignalProcessor.d.ts +0 -152
- package/dist/core/SignalProcessor.d.ts.map +0 -1
- package/dist/core/SignalProcessor.js +0 -498
- package/dist/core/SignalProcessor.js.map +0 -1
- package/dist/core/Step.d.ts +0 -184
- package/dist/core/Step.d.ts.map +0 -1
- package/dist/core/Step.js +0 -594
- package/dist/core/Step.js.map +0 -1
- package/dist/core/StepLifecycle.d.ts +0 -43
- package/dist/core/StepLifecycle.d.ts.map +0 -1
- package/dist/core/StepLifecycle.js +0 -176
- package/dist/core/StepLifecycle.js.map +0 -1
- package/dist/core/StreamingToolExecutor.d.ts +0 -142
- package/dist/core/StreamingToolExecutor.d.ts.map +0 -1
- package/dist/core/StreamingToolExecutor.js +0 -483
- package/dist/core/StreamingToolExecutor.js.map +0 -1
- package/dist/core/ToolLoopExecutor.d.ts +0 -133
- package/dist/core/ToolLoopExecutor.d.ts.map +0 -1
- package/dist/core/ToolLoopExecutor.js +0 -564
- package/dist/core/ToolLoopExecutor.js.map +0 -1
- package/dist/core/ToolManager.d.ts +0 -250
- package/dist/core/ToolManager.d.ts.map +0 -1
- package/dist/core/ToolManager.js +0 -1098
- package/dist/core/ToolManager.js.map +0 -1
- package/dist/core/createAgent.d.ts +0 -35
- package/dist/core/createAgent.d.ts.map +0 -1
- package/dist/core/createAgent.js +0 -36
- package/dist/core/createAgent.js.map +0 -1
- package/dist/core/flow-namespace.d.ts +0 -64
- package/dist/core/flow-namespace.d.ts.map +0 -1
- package/dist/core/flow-namespace.js +0 -179
- package/dist/core/flow-namespace.js.map +0 -1
- package/dist/core/toolGates.d.ts +0 -24
- package/dist/core/toolGates.d.ts.map +0 -1
- package/dist/core/toolGates.js +0 -49
- package/dist/core/toolGates.js.map +0 -1
- package/dist/types/persistence.d.ts +0 -254
- package/dist/types/persistence.d.ts.map +0 -1
- package/dist/types/persistence.js +0 -6
- package/dist/types/persistence.js.map +0 -1
- package/dist/types/prompt-cache.d.ts +0 -15
- package/dist/types/prompt-cache.d.ts.map +0 -1
- package/dist/types/prompt-cache.js +0 -5
- package/dist/types/prompt-cache.js.map +0 -1
- package/dist/types/signals.d.ts +0 -263
- package/dist/types/signals.d.ts.map +0 -1
- package/dist/types/signals.js +0 -10
- package/dist/types/signals.js.map +0 -1
- package/dist/types/template.d.ts +0 -84
- package/dist/types/template.d.ts.map +0 -1
- package/dist/types/template.js +0 -2
- package/dist/types/template.js.map +0 -1
- package/dist/utils/condition.d.ts +0 -63
- package/dist/utils/condition.d.ts.map +0 -1
- package/dist/utils/condition.js +0 -230
- package/dist/utils/condition.js.map +0 -1
- package/dist/utils/event.d.ts +0 -6
- package/dist/utils/event.d.ts.map +0 -1
- package/dist/utils/event.js +0 -17
- package/dist/utils/event.js.map +0 -1
- package/dist/utils/id.d.ts +0 -33
- package/dist/utils/id.d.ts.map +0 -1
- package/dist/utils/id.js +0 -77
- package/dist/utils/id.js.map +0 -1
- package/dist/utils/serialize.d.ts +0 -36
- package/dist/utils/serialize.d.ts.map +0 -1
- package/dist/utils/serialize.js +0 -72
- package/dist/utils/serialize.js.map +0 -1
- package/dist/utils/session.d.ts +0 -124
- package/dist/utils/session.d.ts.map +0 -1
- package/dist/utils/session.js +0 -379
- package/dist/utils/session.js.map +0 -1
- package/docs/concepts/directives.md +0 -369
- package/docs/reference/adapters.md +0 -543
- package/docs/reference/create-agent.md +0 -216
- package/docs/reference/directive.md +0 -242
- package/docs/reference/signals.md +0 -368
- package/examples/02-data-extraction.ts +0 -90
- package/examples/05-branching.ts +0 -140
- package/examples/06-flow-control.ts +0 -103
- package/examples/08-persistence.ts +0 -98
- package/examples/09-signals.ts +0 -144
- package/src/adapters/MemoryAdapter.ts +0 -281
- package/src/adapters/MongoAdapter.ts +0 -341
- package/src/adapters/OpenSearchAdapter.ts +0 -693
- package/src/adapters/PostgreSQLAdapter.ts +0 -487
- package/src/adapters/PrismaAdapter.ts +0 -617
- package/src/adapters/RedisAdapter.ts +0 -439
- package/src/adapters/SQLiteAdapter.ts +0 -496
- package/src/adapters/index.ts +0 -43
- package/src/adapters/sessionRow.ts +0 -57
- package/src/constants/index.ts +0 -2
- package/src/core/AutoChainExecutor.ts +0 -397
- package/src/core/BranchEvaluator.ts +0 -161
- package/src/core/DirectiveChainTracker.ts +0 -144
- package/src/core/Events.ts +0 -164
- package/src/core/Flow.ts +0 -665
- package/src/core/FlowRouter.ts +0 -1540
- package/src/core/PersistenceManager.ts +0 -446
- package/src/core/PromptComposer.ts +0 -448
- package/src/core/PromptSectionCache.ts +0 -125
- package/src/core/ResponseEngine.ts +0 -338
- package/src/core/ResponseGenerationError.ts +0 -53
- package/src/core/ResponseModal.ts +0 -1902
- package/src/core/ResponsePipeline.ts +0 -1404
- package/src/core/SessionFinalizer.ts +0 -108
- package/src/core/SessionManager.ts +0 -372
- package/src/core/SignalCoordinator.ts +0 -263
- package/src/core/SignalEvaluator.ts +0 -404
- package/src/core/SignalProcessor.ts +0 -663
- package/src/core/Step.ts +0 -782
- package/src/core/StepLifecycle.ts +0 -242
- package/src/core/StreamingToolExecutor.ts +0 -609
- package/src/core/ToolLoopExecutor.ts +0 -749
- package/src/core/ToolManager.ts +0 -1379
- package/src/core/createAgent.ts +0 -40
- package/src/core/flow-namespace.ts +0 -227
- package/src/core/toolGates.ts +0 -72
- package/src/types/persistence.ts +0 -303
- package/src/types/prompt-cache.ts +0 -17
- package/src/types/signals.ts +0 -338
- package/src/types/template.ts +0 -98
- package/src/utils/condition.ts +0 -296
- package/src/utils/event.ts +0 -16
- package/src/utils/id.ts +0 -91
- package/src/utils/serialize.ts +0 -86
- package/src/utils/session.ts +0 -501
package/src/types/tool.ts
CHANGED
|
@@ -1,290 +1,65 @@
|
|
|
1
|
-
/* eslint @typescript-eslint/no-explicit-any: "off"*/
|
|
2
1
|
/**
|
|
3
|
-
*
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import type { Event, StepRef, ValidationResult } from "./index.js";
|
|
7
|
-
import type { Directive } from "./flow.js";
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Context provided to tool handlers
|
|
11
|
-
*/
|
|
12
|
-
export interface ToolContext<TContext = unknown, TData = unknown> {
|
|
13
|
-
/** The agent's context data */
|
|
14
|
-
context: TContext;
|
|
15
|
-
/** Complete agent-level data collected so far */
|
|
16
|
-
data: Partial<TData>;
|
|
17
|
-
/** Interaction history */
|
|
18
|
-
history: Event[];
|
|
19
|
-
/** Current step reference (if in a flow) */
|
|
20
|
-
step?: StepRef;
|
|
21
|
-
/** Additional metadata */
|
|
22
|
-
metadata?: Record<string, unknown>;
|
|
23
|
-
|
|
24
|
-
/** Update the agent's context (triggers lifecycle hooks if configured) */
|
|
25
|
-
updateContext: (updates: Partial<TContext>) => Promise<void>;
|
|
26
|
-
/** Update the agent's collected data (triggers lifecycle hooks if configured) */
|
|
27
|
-
updateData: (updates: Partial<TData>) => Promise<void>;
|
|
28
|
-
/** Get a specific field from collected data */
|
|
29
|
-
getField<K extends keyof TData>(key: K): TData[K] | undefined;
|
|
30
|
-
/** Set a specific field in collected data */
|
|
31
|
-
setField<K extends keyof TData>(key: K, value: TData[K]): Promise<void>;
|
|
32
|
-
/** Check if a field exists in collected data */
|
|
33
|
-
hasField<K extends keyof TData>(key: K): boolean;
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Emit a directive into the per-turn bus. Identical effect to returning
|
|
37
|
-
* `{ directive }` from the tool handler, but usable mid-handler (e.g.,
|
|
38
|
-
* after an early-exit branch decides the rest of the turn is moot).
|
|
39
|
-
*
|
|
40
|
-
* Multiple `dispatch()` calls in one handler are allowed; they are merged
|
|
41
|
-
* by Algorithm 4 along with directives from other tools/hooks this turn.
|
|
42
|
-
*/
|
|
43
|
-
dispatch(directive: Directive<TContext, TData>): void;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Result returned by a tool
|
|
48
|
-
*/
|
|
49
|
-
export interface ToolResult<
|
|
50
|
-
TResultData = unknown,
|
|
51
|
-
TContext = unknown,
|
|
52
|
-
TData = unknown
|
|
53
|
-
> {
|
|
54
|
-
/** The result data */
|
|
55
|
-
data?: TResultData;
|
|
56
|
-
/** Optional context update to be merged with current context */
|
|
57
|
-
contextUpdate?: Partial<TContext>;
|
|
58
|
-
/** Optional agent-level data update to be merged with collected data */
|
|
59
|
-
dataUpdate?: Partial<TData>;
|
|
60
|
-
/** Success indicator */
|
|
61
|
-
success?: boolean;
|
|
62
|
-
/** Error message if operation failed */
|
|
63
|
-
error?: string;
|
|
64
|
-
/** Optional metadata about the execution */
|
|
65
|
-
meta?: Record<string, unknown>;
|
|
66
|
-
/** Emit a directive declaratively (alternative to ctx.dispatch). */
|
|
67
|
-
directive?: Directive<TContext, TData>;
|
|
68
|
-
/** Emit multiple directives at once (alternative to repeated dispatch calls). */
|
|
69
|
-
directives?: Directive<TContext, TData>[];
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Handler function for a tool
|
|
74
|
-
*/
|
|
75
|
-
export type ToolHandler<
|
|
76
|
-
TContext = unknown,
|
|
77
|
-
TData = unknown,
|
|
78
|
-
TResult = unknown
|
|
79
|
-
> = (
|
|
80
|
-
context: ToolContext<TContext, TData>,
|
|
81
|
-
args?: Record<string, unknown>
|
|
82
|
-
) =>
|
|
83
|
-
| Promise<TResult | ToolResult<TResult, TContext, TData>>
|
|
84
|
-
| TResult
|
|
85
|
-
| ToolResult<TResult, TContext, TData>;
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* Tool definition - single unified type (v2).
|
|
2
|
+
* Tools: typed functions the AI may call while it speaks.
|
|
89
3
|
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
4
|
+
* A tool returns `{ value?, data? }`: `value` is what the model reads back,
|
|
5
|
+
* `data` is written to the session's collected data. Nothing else; movement
|
|
6
|
+
* between steps belongs to the flow, not to tools.
|
|
93
7
|
*/
|
|
94
|
-
export interface Tool<
|
|
95
|
-
TContext = unknown,
|
|
96
|
-
TData = unknown,
|
|
97
|
-
TResult = unknown
|
|
98
|
-
> {
|
|
99
|
-
/** Tool identifier */
|
|
100
|
-
id: string;
|
|
101
|
-
/** Tool handler function */
|
|
102
|
-
handler: ToolHandler<TContext, TData, TResult>;
|
|
103
|
-
/** Description of what the tool does (for AI discovery) */
|
|
104
|
-
description?: string;
|
|
105
|
-
/** Parameter schema or description */
|
|
106
|
-
parameters?: unknown;
|
|
107
|
-
|
|
108
|
-
// ── Optional metadata (merged from EnhancedTool in v2) ──
|
|
109
|
-
|
|
110
|
-
/** Whether this tool is safe to run concurrently with other concurrent-safe tools */
|
|
111
|
-
isConcurrencySafe?(input?: Record<string, unknown>): boolean;
|
|
112
|
-
/** Whether this tool only reads data without side effects */
|
|
113
|
-
isReadOnly?(input?: Record<string, unknown>): boolean;
|
|
114
|
-
/** Whether this tool performs destructive/irreversible operations */
|
|
115
|
-
isDestructive?(input?: Record<string, unknown>): boolean;
|
|
116
8
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
maxResultSizeChars?: number;
|
|
121
|
-
|
|
122
|
-
/** Validate input before execution */
|
|
123
|
-
validateInput?(
|
|
124
|
-
input: Record<string, unknown>,
|
|
125
|
-
context: ToolContext<TContext, TData>
|
|
126
|
-
): Promise<ToolValidationResult> | ToolValidationResult;
|
|
9
|
+
import type { History } from "./history.js";
|
|
10
|
+
import type { StructuredSchema } from "./schema.js";
|
|
11
|
+
import type { Run } from "./session.js";
|
|
127
12
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
/**
|
|
138
|
-
* Tool execution result
|
|
139
|
-
*/
|
|
140
|
-
export interface ToolExecutionResult {
|
|
141
|
-
success: boolean;
|
|
142
|
-
data?: unknown;
|
|
143
|
-
error?: string;
|
|
144
|
-
contextUpdate?: Record<string, unknown>;
|
|
145
|
-
dataUpdate?: Record<string, unknown>;
|
|
146
|
-
metadata?: Record<string, unknown>;
|
|
147
|
-
/** Directives collected during tool execution (from ctx.dispatch and/or result.directive). */
|
|
148
|
-
directives?: Directive[];
|
|
13
|
+
export interface ToolResult<D = unknown> {
|
|
14
|
+
/** What the model sees as the tool's answer. */
|
|
15
|
+
value?: unknown;
|
|
16
|
+
/** Collected data to write. */
|
|
17
|
+
data?: Partial<D>;
|
|
149
18
|
}
|
|
150
19
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
REGISTERED = 'registered',
|
|
159
|
-
ALL = 'all'
|
|
20
|
+
export interface ToolCtx<C = unknown, D = unknown> {
|
|
21
|
+
context: C;
|
|
22
|
+
data: Partial<D>;
|
|
23
|
+
history: History;
|
|
24
|
+
/** The run that is speaking, when one is. */
|
|
25
|
+
run?: Run;
|
|
26
|
+
now: Date;
|
|
160
27
|
}
|
|
161
28
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
/**
|
|
165
|
-
* Result of input validation on a tool call
|
|
166
|
-
*/
|
|
167
29
|
export interface ToolValidationResult {
|
|
168
30
|
valid: boolean;
|
|
169
31
|
error?: string;
|
|
170
|
-
/** Suggested corrected input */
|
|
32
|
+
/** Suggested corrected input. */
|
|
171
33
|
correctedInput?: Record<string, unknown>;
|
|
172
34
|
}
|
|
173
35
|
|
|
174
|
-
/**
|
|
175
|
-
* Result of a permission check on a tool call
|
|
176
|
-
*/
|
|
177
36
|
export interface ToolPermissionResult {
|
|
178
37
|
allowed: boolean;
|
|
179
38
|
reason?: string;
|
|
180
|
-
/** If not allowed, can the user override? */
|
|
181
|
-
canOverride?: boolean;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
/**
|
|
185
|
-
* A single tool invocation request from the LLM
|
|
186
|
-
*/
|
|
187
|
-
export interface ToolCallRequest {
|
|
188
|
-
/** Unique ID for this tool call instance */
|
|
189
|
-
id: string;
|
|
190
|
-
/** Tool name/ID to execute */
|
|
191
|
-
toolName: string;
|
|
192
|
-
/** Arguments passed to the tool */
|
|
193
|
-
arguments: Record<string, unknown>;
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
/**
|
|
197
|
-
* Result or progress update from a tool execution
|
|
198
|
-
*/
|
|
199
|
-
export interface ToolExecutionUpdate<TData = unknown> {
|
|
200
|
-
/** The tool call this update relates to */
|
|
201
|
-
toolCallId: string;
|
|
202
|
-
/** Result message (undefined for progress updates) */
|
|
203
|
-
result?: ToolExecutionResult;
|
|
204
|
-
/** Progress message for long-running tools */
|
|
205
|
-
progress?: string;
|
|
206
|
-
/** Updated context after tool execution */
|
|
207
|
-
contextUpdate?: Record<string, unknown>;
|
|
208
|
-
/** Updated data after tool execution */
|
|
209
|
-
dataUpdate?: Partial<TData>;
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
/**
|
|
213
|
-
* Internal status of a tracked tool in the executor queue
|
|
214
|
-
*/
|
|
215
|
-
export type ToolStatus = 'queued' | 'executing' | 'completed' | 'yielded';
|
|
216
|
-
|
|
217
|
-
/**
|
|
218
|
-
* Internal type tracking the state of a queued or executing tool
|
|
219
|
-
*/
|
|
220
|
-
export interface TrackedTool<TContext = unknown, TData = unknown> {
|
|
221
|
-
id: string;
|
|
222
|
-
toolCall: ToolCallRequest;
|
|
223
|
-
tool: Tool<TContext, TData>;
|
|
224
|
-
status: ToolStatus;
|
|
225
|
-
isConcurrencySafe: boolean;
|
|
226
|
-
promise?: Promise<void>;
|
|
227
|
-
results: ToolExecutionResult[];
|
|
228
|
-
pendingProgress: string[];
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
// --- Existing tool configuration types ---
|
|
234
|
-
|
|
235
|
-
/**
|
|
236
|
-
* Configuration for data enrichment tools
|
|
237
|
-
*/
|
|
238
|
-
export interface DataEnrichmentConfig<TContext, TData, TFields extends keyof TData> {
|
|
239
|
-
id: string;
|
|
240
|
-
name?: string;
|
|
241
|
-
description?: string;
|
|
242
|
-
fields: TFields[];
|
|
243
|
-
enricher: (
|
|
244
|
-
context: TContext,
|
|
245
|
-
data: Pick<TData, TFields>
|
|
246
|
-
) => Promise<Partial<TData>> | Partial<TData>;
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
/**
|
|
250
|
-
* Configuration for validation tools
|
|
251
|
-
*/
|
|
252
|
-
export interface ValidationConfig<TContext, TData, TFields extends keyof TData> {
|
|
253
|
-
id: string;
|
|
254
|
-
name?: string;
|
|
255
|
-
description?: string;
|
|
256
|
-
fields: TFields[];
|
|
257
|
-
validator: (
|
|
258
|
-
context: TContext,
|
|
259
|
-
data: Pick<TData, TFields>
|
|
260
|
-
) => Promise<ValidationResult> | ValidationResult;
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
/**
|
|
264
|
-
* Configuration for API call tools
|
|
265
|
-
*/
|
|
266
|
-
export interface ApiCallConfig<TContext, TData, TResult> {
|
|
267
|
-
id: string;
|
|
268
|
-
name?: string;
|
|
269
|
-
description?: string;
|
|
270
|
-
endpoint: string | ((context: TContext, data: Partial<TData>) => string);
|
|
271
|
-
method?: 'GET' | 'POST' | 'PUT' | 'DELETE';
|
|
272
|
-
headers?: Record<string, string> | ((context: TContext) => Record<string, string>);
|
|
273
|
-
body?: (context: TContext, data: Partial<TData>, args?: Record<string, unknown>) => unknown;
|
|
274
|
-
transform?: (response: unknown) => TResult;
|
|
275
39
|
}
|
|
276
40
|
|
|
277
|
-
|
|
278
|
-
* Configuration for computation tools
|
|
279
|
-
*/
|
|
280
|
-
export interface ComputationConfig<TContext, TData, TResult> {
|
|
41
|
+
export interface Tool<C = unknown, D = unknown> {
|
|
281
42
|
id: string;
|
|
282
|
-
name?: string;
|
|
283
43
|
description?: string;
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
44
|
+
parameters?: StructuredSchema;
|
|
45
|
+
handler(args: Record<string, unknown>, ctx: ToolCtx<C, D>): ToolResult<D> | Promise<ToolResult<D>>;
|
|
46
|
+
|
|
47
|
+
/** Safe to run alongside other concurrency-safe tools in one round. */
|
|
48
|
+
isConcurrencySafe?(input: Record<string, unknown>): boolean;
|
|
49
|
+
/** Reads only; no side effects. */
|
|
50
|
+
isReadOnly?(input: Record<string, unknown>): boolean;
|
|
51
|
+
/** Irreversible; never run speculatively. */
|
|
52
|
+
isDestructive?(input: Record<string, unknown>): boolean;
|
|
53
|
+
/** Characters of the result kept before truncation. */
|
|
54
|
+
maxResultSizeChars?: number;
|
|
55
|
+
/** Check the model's arguments before the handler runs. */
|
|
56
|
+
validateInput?(
|
|
57
|
+
input: Record<string, unknown>,
|
|
58
|
+
ctx: ToolCtx<C, D>,
|
|
59
|
+
): ToolValidationResult | Promise<ToolValidationResult>;
|
|
60
|
+
/** When denied, the handler is not invoked and the model is told why. */
|
|
61
|
+
checkPermissions?(
|
|
62
|
+
input: Record<string, unknown>,
|
|
63
|
+
ctx: ToolCtx<C, D>,
|
|
64
|
+
): ToolPermissionResult | Promise<ToolPermissionResult>;
|
|
290
65
|
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Time you can hold still: a fake clock for `AgentOptions.clock` and an
|
|
3
|
+
* in-memory scheduler that fires `schedule[]` entries on demand. Tests and
|
|
4
|
+
* the playground use both; production hosts bring their own queue.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import type { Clock, ScheduleEntry } from "../types/agent.js";
|
|
8
|
+
import type { Duration } from "../types/flow.js";
|
|
9
|
+
import { parseDuration } from "./duration.js";
|
|
10
|
+
|
|
11
|
+
export interface FakeClock extends Clock {
|
|
12
|
+
now(): Date;
|
|
13
|
+
/** Move forward by a duration (`'24h'`) or a number of milliseconds. */
|
|
14
|
+
advance(by: Duration | number): Date;
|
|
15
|
+
set(iso: string): Date;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/** A clock that only moves when told to. Pass it as `clock` to the agent. */
|
|
19
|
+
export function fakeClock(iso: string): FakeClock {
|
|
20
|
+
let at = parseIso(iso);
|
|
21
|
+
const clock = (): Date => new Date(at);
|
|
22
|
+
return Object.assign(clock, {
|
|
23
|
+
now: clock,
|
|
24
|
+
advance(by: Duration | number): Date {
|
|
25
|
+
at += typeof by === "number" ? by : parseDuration(by);
|
|
26
|
+
return clock();
|
|
27
|
+
},
|
|
28
|
+
set(next: string): Date {
|
|
29
|
+
at = parseIso(next);
|
|
30
|
+
return clock();
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function parseIso(iso: string): number {
|
|
36
|
+
const ms = Date.parse(iso);
|
|
37
|
+
if (Number.isNaN(ms)) throw new Error(`fakeClock: "${iso}" is not a date.`);
|
|
38
|
+
return ms;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Holds `schedule[]` entries and hands back the ones that are due. A new
|
|
43
|
+
* entry with the same key replaces the old one; `replaces` removes that key.
|
|
44
|
+
*/
|
|
45
|
+
export class MemoryScheduler {
|
|
46
|
+
private readonly entries = new Map<string, ScheduleEntry>();
|
|
47
|
+
|
|
48
|
+
add(entry: ScheduleEntry): void {
|
|
49
|
+
if (entry.replaces) this.entries.delete(entry.replaces);
|
|
50
|
+
this.entries.delete(entry.key);
|
|
51
|
+
this.entries.set(entry.key, { ...entry, at: new Date(entry.at) });
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
remove(key: string): void {
|
|
55
|
+
this.entries.delete(key);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
get size(): number {
|
|
59
|
+
return this.entries.size;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/** Removes and returns every entry whose `at` is not after `now`, earliest first. */
|
|
63
|
+
due(now: Date): ScheduleEntry[] {
|
|
64
|
+
const fired = [...this.entries.values()]
|
|
65
|
+
.filter((e) => e.at.getTime() <= now.getTime())
|
|
66
|
+
.sort((a, b) => a.at.getTime() - b.at.getTime());
|
|
67
|
+
for (const e of fired) this.entries.delete(e.key);
|
|
68
|
+
return fired;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `Duration` strings: `'30s'`, `'5m'`, `'24h'`, `'3d'` → milliseconds.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import { FlowConfigurationError } from "../types/errors.js";
|
|
6
|
+
import type { Duration } from "../types/flow.js";
|
|
7
|
+
|
|
8
|
+
const PATTERN = /^(\d+(?:\.\d+)?)(s|m|h|d)$/;
|
|
9
|
+
|
|
10
|
+
const UNIT_MS: Record<string, number> = { s: 1_000, m: 60_000, h: 3_600_000, d: 86_400_000 };
|
|
11
|
+
|
|
12
|
+
/** `'30s'`, `'5m'`, `'24h'`, `'3d'`: a number followed by one unit. */
|
|
13
|
+
export function isDuration(value: string): value is Duration {
|
|
14
|
+
return PATTERN.test(value);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/** Throws `FlowConfigurationError` unless `value` is a well-formed duration. */
|
|
18
|
+
export function assertDuration(value: string, where = "duration"): asserts value is Duration {
|
|
19
|
+
if (!isDuration(value)) {
|
|
20
|
+
throw new FlowConfigurationError(
|
|
21
|
+
`[FlowConfigurationError] ${where} "${value}" is not a duration: expected a number followed by s, m, h or d. ` +
|
|
22
|
+
`Write it like "30s", "5m", "24h" or "3d".`,
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/** `'5m'` → 300000. Throws on a malformed string. */
|
|
28
|
+
export function parseDuration(value: string): number {
|
|
29
|
+
assertDuration(value);
|
|
30
|
+
const match = PATTERN.exec(value);
|
|
31
|
+
if (!match) throw new FlowConfigurationError(`[FlowConfigurationError] duration "${value}" did not parse.`);
|
|
32
|
+
return Math.round(Number(match[1]) * UNIT_MS[match[2]]);
|
|
33
|
+
}
|
package/src/utils/history.ts
CHANGED
|
@@ -276,9 +276,10 @@ export function assistantMessage(
|
|
|
276
276
|
id: string;
|
|
277
277
|
name: string;
|
|
278
278
|
arguments: Record<string, unknown>;
|
|
279
|
-
}
|
|
279
|
+
}>,
|
|
280
|
+
thought?: { reasoning?: string; reasoningDetails?: unknown[] }
|
|
280
281
|
): HistoryItem {
|
|
281
|
-
return { role: "assistant", content, tool_calls: toolCalls };
|
|
282
|
+
return { role: "assistant", content, tool_calls: toolCalls, ...thought };
|
|
282
283
|
}
|
|
283
284
|
|
|
284
285
|
/**
|
package/src/utils/index.ts
CHANGED
|
@@ -2,75 +2,17 @@
|
|
|
2
2
|
* Utility functions and helpers
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
// ID generation
|
|
6
|
-
export {
|
|
7
|
-
generateFlowId,
|
|
8
|
-
generateStepId,
|
|
9
|
-
generateToolId,
|
|
10
|
-
generateInlineToolId,
|
|
11
|
-
generateSignalId,
|
|
12
|
-
} from "./id.js";
|
|
13
|
-
|
|
14
|
-
// Session management
|
|
15
|
-
export {
|
|
16
|
-
createSession,
|
|
17
|
-
createSessionId,
|
|
18
|
-
boundConversationHistory,
|
|
19
|
-
DEFAULT_MAX_HISTORY_MESSAGES,
|
|
20
|
-
createPersistedState,
|
|
21
|
-
restoreSession,
|
|
22
|
-
enterFlow,
|
|
23
|
-
enterStep,
|
|
24
|
-
completeCurrentFlow,
|
|
25
|
-
isFlowCompletedThisSession,
|
|
26
|
-
mergeCollected,
|
|
27
|
-
dropUndeclaredFields,
|
|
28
|
-
sessionStepToData,
|
|
29
|
-
sessionDataToStep,
|
|
30
|
-
} from "./session.js";
|
|
31
|
-
|
|
32
|
-
// Template rendering
|
|
33
|
-
export {
|
|
34
|
-
render,
|
|
35
|
-
renderMany,
|
|
36
|
-
formatKnowledgeBase,
|
|
37
|
-
createTemplateContext,
|
|
38
|
-
} from "./template.js";
|
|
39
|
-
|
|
40
|
-
// Cloning utilities
|
|
41
5
|
export { cloneDeep } from "./clone.js";
|
|
42
|
-
|
|
43
|
-
// Event utilities
|
|
44
|
-
export { getLastMessageFromHistory } from "./event.js";
|
|
45
|
-
|
|
46
|
-
// History utilities
|
|
6
|
+
export { assertUsableCompletion, effectiveMessageText } from "./completion.js";
|
|
47
7
|
export {
|
|
8
|
+
assistantMessage,
|
|
9
|
+
eventsToHistory,
|
|
10
|
+
eventToHistoryItem,
|
|
48
11
|
historyItemToEvent,
|
|
49
12
|
historyToEvents,
|
|
50
|
-
eventToHistoryItem,
|
|
51
|
-
eventsToHistory,
|
|
52
|
-
userMessage,
|
|
53
|
-
assistantMessage,
|
|
54
|
-
toolMessage,
|
|
55
13
|
systemMessage,
|
|
14
|
+
toolMessage,
|
|
15
|
+
userMessage,
|
|
56
16
|
} from "./history.js";
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
export { LoggerLevel, logger } from "./logger.js";
|
|
60
|
-
|
|
61
|
-
// Completion helpers
|
|
62
|
-
export { effectiveMessageText, assertUsableCompletion } from "./completion.js";
|
|
63
|
-
|
|
64
|
-
// Condition utilities
|
|
65
|
-
export {
|
|
66
|
-
ConditionEvaluator,
|
|
67
|
-
createConditionEvaluator,
|
|
68
|
-
extractAIContextStrings,
|
|
69
|
-
hasProgrammaticConditions,
|
|
70
|
-
} from "./condition.js";
|
|
71
|
-
|
|
72
|
-
// JSON utilities
|
|
73
|
-
export { parseJSONResponse, tryParseJSONResponse, extractEmbeddedJSONObject } from "./json.js";
|
|
74
|
-
|
|
75
|
-
// Serialization utilities
|
|
76
|
-
export { serializeToolResult, isToolResultLike, extractResultDirectives } from "./serialize.js";
|
|
17
|
+
export { extractEmbeddedJSONObject, isJSONShaped, parseJSONResponse, tryParseJSONResponse } from "./json.js";
|
|
18
|
+
export { logger, LoggerLevel } from "./logger.js";
|
package/src/utils/json.ts
CHANGED
|
@@ -196,3 +196,8 @@ function findObjectEnd(text: string, start: number): number {
|
|
|
196
196
|
|
|
197
197
|
return -1;
|
|
198
198
|
}
|
|
199
|
+
|
|
200
|
+
/** A plain object: not null, not an array. */
|
|
201
|
+
export function isRecord(value: unknown): value is Record<string, unknown> {
|
|
202
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
203
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One English sentence per outcome code.
|
|
3
|
+
*
|
|
4
|
+
* The framework copies the sentence onto every line it writes, so a log reads
|
|
5
|
+
* on its own. `satisfies` makes the compiler reject a new code without a
|
|
6
|
+
* sentence, so the two cannot drift. To show a line in another language, map
|
|
7
|
+
* `outcome.code` yourself and ignore `outcome.message`.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import type { StepOutcomeCode } from "../types/session.js";
|
|
11
|
+
|
|
12
|
+
export const OUTCOME_MESSAGES = {
|
|
13
|
+
"no-session": "a wake arrived for a session that does not exist",
|
|
14
|
+
"duplicate-input": "this input was already applied",
|
|
15
|
+
"stale-wake": "no run is waiting on this wake",
|
|
16
|
+
"silence-broken": "someone wrote after this silence wake was set",
|
|
17
|
+
|
|
18
|
+
"already-claimed": "this flow already ran here",
|
|
19
|
+
cooldown: "the flow's cooldown has not passed",
|
|
20
|
+
"hop-limit": "the chain reached the hop limit",
|
|
21
|
+
"already-running": "a run of this flow is already live here",
|
|
22
|
+
"flow-gone": "the flow is no longer registered on the agent",
|
|
23
|
+
|
|
24
|
+
"step-loop": "the run moved through 50 steps in one turn",
|
|
25
|
+
"step-gone": "the step is no longer in the flow",
|
|
26
|
+
"customer-replied": "the customer wrote before the wake fired",
|
|
27
|
+
"premise-changed": "the flow's while condition no longer holds",
|
|
28
|
+
silenced: "the host cannot speak right now",
|
|
29
|
+
|
|
30
|
+
"already-known": "every field this step collects is known",
|
|
31
|
+
"another-reply": "another run already answered this turn",
|
|
32
|
+
"already-sent": "this message was already sent once",
|
|
33
|
+
branch: "a branch of this step fired",
|
|
34
|
+
"max-asks": "the field was asked the most times allowed",
|
|
35
|
+
"inline-delay": "a short wait rides on the next message",
|
|
36
|
+
"awaiting-trigger": "the trigger's delay has not passed",
|
|
37
|
+
"awaiting-event": "the run is waiting for an event",
|
|
38
|
+
"event-arrived": "the event was reported",
|
|
39
|
+
"no-event": "the event did not arrive in time",
|
|
40
|
+
replied: "the customer replied while the run waited",
|
|
41
|
+
"no-reply": "the customer did not reply while the run waited",
|
|
42
|
+
|
|
43
|
+
"action-skipped": "the action decided not to run",
|
|
44
|
+
"action-failed": "the action failed",
|
|
45
|
+
"action-deferred": "the action asked to run again later",
|
|
46
|
+
|
|
47
|
+
"unknown-field": "no field by that name is declared on the agent",
|
|
48
|
+
"bad-value": "the value did not fit the field's type",
|
|
49
|
+
"not-in-enum": "the value is not one of the field's options",
|
|
50
|
+
|
|
51
|
+
"provider-quota": "the provider's usage limit is spent",
|
|
52
|
+
"provider-context": "the conversation outgrew the model's context window",
|
|
53
|
+
"provider-auth": "the provider rejected the credentials",
|
|
54
|
+
"provider-invalid": "the provider rejected the request",
|
|
55
|
+
"provider-unavailable": "the model call failed or came back empty",
|
|
56
|
+
} as const satisfies Record<StepOutcomeCode, string>;
|