@ai.ntellect/core 1.0.0 → 1.1.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/.mocharc.json +6 -0
- package/AGENTS.md +50 -0
- package/ARCHITECTURE.md +58 -0
- package/BENCHMARK.md +38 -0
- package/CHANGELOG.md +224 -0
- package/README.md +363 -142
- package/agent/agent-workflow.ts +569 -0
- package/agent/agent.ts +183 -0
- package/agent/base/executor.ts +103 -0
- package/agent/base/index.ts +87 -0
- package/agent/entity-resolver/confidence.ts +54 -0
- package/agent/entity-resolver/entity-index.ts +241 -0
- package/agent/entity-resolver/explore-strategy.ts +82 -0
- package/agent/entity-resolver/index.ts +22 -0
- package/agent/entity-resolver/resolver.ts +193 -0
- package/agent/entity-resolver/scorer.ts +211 -0
- package/agent/entity-resolver/types.ts +98 -0
- package/agent/generic-executor.ts +713 -0
- package/agent/handlers/cognitive-handler.ts +197 -0
- package/agent/handlers/index.ts +1 -0
- package/agent/handoff.ts +58 -0
- package/agent/llm-factory.ts +343 -0
- package/agent/orchestrator.ts +45 -0
- package/agent/prompt-builder.ts +78 -0
- package/agent/registry.ts +64 -0
- package/agent/tools/file-system.ts +471 -0
- package/agent/tools/index.ts +23 -0
- package/agent/tools/logger.ts +105 -0
- package/agent/tools/tool-resolver.ts +104 -0
- package/benchmark/cortexflow-workflow.ts +182 -0
- package/benchmark/langgraph-workflow.ts +201 -0
- package/benchmark/llm-client.ts +76 -0
- package/benchmark/run-benchmark.ts +222 -0
- package/cli-dev.ts +419 -0
- package/dist/agent/agent-workflow.d.ts +41 -0
- package/dist/agent/agent-workflow.d.ts.map +1 -0
- package/dist/agent/agent-workflow.js +560 -0
- package/dist/agent/agent-workflow.js.map +1 -0
- package/dist/agent/agent.d.ts +38 -0
- package/dist/agent/agent.d.ts.map +1 -0
- package/dist/agent/agent.js +149 -0
- package/dist/agent/agent.js.map +1 -0
- package/dist/agent/base/executor.d.ts +51 -0
- package/dist/agent/base/executor.d.ts.map +1 -0
- package/dist/agent/base/executor.js +69 -0
- package/dist/agent/base/executor.js.map +1 -0
- package/dist/agent/base/index.d.ts +30 -0
- package/dist/agent/base/index.d.ts.map +1 -0
- package/dist/agent/base/index.js +88 -0
- package/dist/agent/base/index.js.map +1 -0
- package/dist/agent/entity-resolver/confidence.d.ts +4 -0
- package/dist/agent/entity-resolver/confidence.d.ts.map +1 -0
- package/dist/agent/entity-resolver/confidence.js +47 -0
- package/dist/agent/entity-resolver/confidence.js.map +1 -0
- package/dist/agent/entity-resolver/entity-index.d.ts +40 -0
- package/dist/agent/entity-resolver/entity-index.d.ts.map +1 -0
- package/dist/agent/entity-resolver/entity-index.js +244 -0
- package/dist/agent/entity-resolver/entity-index.js.map +1 -0
- package/dist/agent/entity-resolver/explore-strategy.d.ts +13 -0
- package/dist/agent/entity-resolver/explore-strategy.d.ts.map +1 -0
- package/dist/agent/entity-resolver/explore-strategy.js +109 -0
- package/dist/agent/entity-resolver/explore-strategy.js.map +1 -0
- package/dist/agent/entity-resolver/index.d.ts +8 -0
- package/dist/agent/entity-resolver/index.d.ts.map +1 -0
- package/dist/agent/entity-resolver/index.js +16 -0
- package/dist/agent/entity-resolver/index.js.map +1 -0
- package/dist/agent/entity-resolver/resolver.d.ts +18 -0
- package/dist/agent/entity-resolver/resolver.d.ts.map +1 -0
- package/dist/agent/entity-resolver/resolver.js +158 -0
- package/dist/agent/entity-resolver/resolver.js.map +1 -0
- package/dist/agent/entity-resolver/scorer.d.ts +3 -0
- package/dist/agent/entity-resolver/scorer.d.ts.map +1 -0
- package/dist/agent/entity-resolver/scorer.js +182 -0
- package/dist/agent/entity-resolver/scorer.js.map +1 -0
- package/dist/agent/entity-resolver/types.d.ts +89 -0
- package/dist/agent/entity-resolver/types.d.ts.map +1 -0
- package/dist/agent/entity-resolver/types.js +3 -0
- package/dist/agent/entity-resolver/types.js.map +1 -0
- package/dist/agent/generic-executor.d.ts +68 -0
- package/dist/agent/generic-executor.d.ts.map +1 -0
- package/dist/agent/generic-executor.js +620 -0
- package/dist/agent/generic-executor.js.map +1 -0
- package/dist/agent/handlers/cognitive-handler.d.ts +44 -0
- package/dist/agent/handlers/cognitive-handler.d.ts.map +1 -0
- package/dist/agent/handlers/cognitive-handler.js +172 -0
- package/dist/agent/handlers/cognitive-handler.js.map +1 -0
- package/dist/agent/handlers/index.d.ts +2 -0
- package/dist/agent/handlers/index.d.ts.map +1 -0
- package/dist/agent/handlers/index.js +7 -0
- package/dist/agent/handlers/index.js.map +1 -0
- package/dist/agent/handoff.d.ts +12 -0
- package/dist/agent/handoff.d.ts.map +1 -0
- package/dist/agent/handoff.js +62 -0
- package/dist/agent/handoff.js.map +1 -0
- package/dist/agent/llm-factory.d.ts +19 -0
- package/dist/agent/llm-factory.d.ts.map +1 -0
- package/dist/agent/llm-factory.js +297 -0
- package/dist/agent/llm-factory.js.map +1 -0
- package/dist/agent/orchestrator.d.ts +18 -0
- package/dist/agent/orchestrator.d.ts.map +1 -0
- package/dist/agent/orchestrator.js +44 -0
- package/dist/agent/orchestrator.js.map +1 -0
- package/dist/agent/prompt-builder.d.ts +35 -0
- package/dist/agent/prompt-builder.d.ts.map +1 -0
- package/dist/agent/prompt-builder.js +76 -0
- package/dist/agent/prompt-builder.js.map +1 -0
- package/dist/agent/registry.d.ts +19 -0
- package/dist/agent/registry.d.ts.map +1 -0
- package/dist/agent/registry.js +48 -0
- package/dist/agent/registry.js.map +1 -0
- package/dist/agent/tools/file-system.d.ts +11 -0
- package/dist/agent/tools/file-system.d.ts.map +1 -0
- package/dist/agent/tools/file-system.js +528 -0
- package/dist/agent/tools/file-system.js.map +1 -0
- package/dist/agent/tools/index.d.ts +4 -0
- package/dist/agent/tools/index.d.ts.map +1 -0
- package/dist/agent/tools/index.js +20 -0
- package/dist/agent/tools/index.js.map +1 -0
- package/dist/agent/tools/logger.d.ts +33 -0
- package/dist/agent/tools/logger.d.ts.map +1 -0
- package/dist/agent/tools/logger.js +86 -0
- package/dist/agent/tools/logger.js.map +1 -0
- package/dist/agent/tools/tool-resolver.d.ts +7 -0
- package/dist/agent/tools/tool-resolver.d.ts.map +1 -0
- package/dist/agent/tools/tool-resolver.js +122 -0
- package/dist/agent/tools/tool-resolver.js.map +1 -0
- package/dist/execution/adapters/in-memory-checkpoint.d.ts +11 -0
- package/dist/execution/adapters/in-memory-checkpoint.d.ts.map +1 -0
- package/dist/execution/adapters/in-memory-checkpoint.js +54 -0
- package/dist/execution/adapters/in-memory-checkpoint.js.map +1 -0
- package/dist/execution/compiler.d.ts +8 -0
- package/dist/execution/compiler.d.ts.map +1 -0
- package/dist/execution/compiler.js +50 -0
- package/dist/execution/compiler.js.map +1 -0
- package/dist/execution/controller.d.ts +30 -0
- package/dist/execution/controller.d.ts.map +1 -0
- package/dist/execution/controller.js +80 -0
- package/dist/execution/controller.js.map +1 -0
- package/dist/execution/event-manager.d.ts +29 -0
- package/dist/execution/event-manager.d.ts.map +1 -0
- package/dist/execution/event-manager.js +264 -0
- package/dist/execution/event-manager.js.map +1 -0
- package/dist/execution/index.d.ts +221 -0
- package/dist/execution/index.d.ts.map +1 -0
- package/dist/execution/index.js +638 -0
- package/dist/execution/index.js.map +1 -0
- package/dist/execution/logger.d.ts +46 -0
- package/dist/execution/logger.d.ts.map +1 -0
- package/dist/execution/logger.js +69 -0
- package/dist/execution/logger.js.map +1 -0
- package/dist/execution/node.d.ts +65 -0
- package/dist/execution/node.d.ts.map +1 -0
- package/dist/execution/node.js +250 -0
- package/dist/execution/node.js.map +1 -0
- package/dist/execution/observer.d.ts +38 -0
- package/dist/execution/observer.d.ts.map +1 -0
- package/dist/execution/observer.js +111 -0
- package/dist/execution/observer.js.map +1 -0
- package/dist/execution/planner.d.ts +14 -0
- package/dist/execution/planner.d.ts.map +1 -0
- package/dist/execution/planner.js +43 -0
- package/dist/execution/planner.js.map +1 -0
- package/dist/execution/reducer.d.ts +19 -0
- package/dist/execution/reducer.d.ts.map +1 -0
- package/dist/execution/reducer.js +61 -0
- package/dist/execution/reducer.js.map +1 -0
- package/dist/execution/registry.d.ts +38 -0
- package/dist/execution/registry.d.ts.map +1 -0
- package/dist/execution/registry.js +63 -0
- package/dist/execution/registry.js.map +1 -0
- package/dist/execution/send-api.d.ts +24 -0
- package/dist/execution/send-api.d.ts.map +1 -0
- package/dist/execution/send-api.js +52 -0
- package/dist/execution/send-api.js.map +1 -0
- package/dist/execution/types.parallel.d.ts +61 -0
- package/dist/execution/types.parallel.d.ts.map +1 -0
- package/dist/execution/types.parallel.js +3 -0
- package/dist/execution/types.parallel.js.map +1 -0
- package/dist/execution/visualizer.d.ts +35 -0
- package/dist/execution/visualizer.d.ts.map +1 -0
- package/dist/execution/visualizer.js +131 -0
- package/dist/execution/visualizer.js.map +1 -0
- package/dist/index.d.ts +47 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +78 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/index.d.ts +487 -0
- package/dist/interfaces/index.d.ts.map +1 -0
- package/dist/interfaces/index.js +75 -0
- package/dist/interfaces/index.js.map +1 -0
- package/dist/modules/agenda/adapters/node-cron/index.d.ts +17 -0
- package/dist/modules/agenda/adapters/node-cron/index.d.ts.map +1 -0
- package/dist/modules/agenda/adapters/node-cron/index.js +30 -0
- package/dist/modules/agenda/adapters/node-cron/index.js.map +1 -0
- package/dist/modules/agenda/index.d.ts +63 -0
- package/dist/modules/agenda/index.d.ts.map +1 -0
- package/dist/modules/agenda/index.js +141 -0
- package/dist/modules/agenda/index.js.map +1 -0
- package/dist/modules/cli/index.d.ts +13 -0
- package/dist/modules/cli/index.d.ts.map +1 -0
- package/dist/modules/cli/index.js +672 -0
- package/dist/modules/cli/index.js.map +1 -0
- package/dist/modules/embedding/adapters/ai/index.d.ts +29 -0
- package/dist/modules/embedding/adapters/ai/index.d.ts.map +1 -0
- package/dist/modules/embedding/adapters/ai/index.js +58 -0
- package/dist/modules/embedding/adapters/ai/index.js.map +1 -0
- package/dist/modules/embedding/index.d.ts +36 -0
- package/dist/modules/embedding/index.d.ts.map +1 -0
- package/dist/modules/embedding/index.js +60 -0
- package/dist/modules/embedding/index.js.map +1 -0
- package/dist/modules/nlp/engine.d.ts +126 -0
- package/dist/modules/nlp/engine.d.ts.map +1 -0
- package/dist/modules/nlp/engine.js +299 -0
- package/dist/modules/nlp/engine.js.map +1 -0
- package/dist/modules/nlp/index.d.ts +27 -0
- package/dist/modules/nlp/index.d.ts.map +1 -0
- package/dist/modules/nlp/index.js +56 -0
- package/dist/modules/nlp/index.js.map +1 -0
- package/dist/persistence/index.d.ts +12 -0
- package/dist/persistence/index.d.ts.map +1 -0
- package/dist/persistence/index.js +24 -0
- package/dist/persistence/index.js.map +1 -0
- package/dist/persistence/neo4j/driver.d.ts +26 -0
- package/dist/persistence/neo4j/driver.d.ts.map +1 -0
- package/dist/persistence/neo4j/driver.js +64 -0
- package/dist/persistence/neo4j/driver.js.map +1 -0
- package/dist/persistence/neo4j/entity-store.d.ts +15 -0
- package/dist/persistence/neo4j/entity-store.d.ts.map +1 -0
- package/dist/persistence/neo4j/entity-store.js +136 -0
- package/dist/persistence/neo4j/entity-store.js.map +1 -0
- package/dist/persistence/neo4j/execution-tracer.d.ts +19 -0
- package/dist/persistence/neo4j/execution-tracer.d.ts.map +1 -0
- package/dist/persistence/neo4j/execution-tracer.js +166 -0
- package/dist/persistence/neo4j/execution-tracer.js.map +1 -0
- package/dist/persistence/neo4j/memory-adapter.d.ts +35 -0
- package/dist/persistence/neo4j/memory-adapter.d.ts.map +1 -0
- package/dist/persistence/neo4j/memory-adapter.js +252 -0
- package/dist/persistence/neo4j/memory-adapter.js.map +1 -0
- package/dist/persistence/neo4j/petri-checkpoint-adapter.d.ts +22 -0
- package/dist/persistence/neo4j/petri-checkpoint-adapter.d.ts.map +1 -0
- package/dist/persistence/neo4j/petri-checkpoint-adapter.js +141 -0
- package/dist/persistence/neo4j/petri-checkpoint-adapter.js.map +1 -0
- package/dist/pipeline/agent-pipeline.d.ts +99 -0
- package/dist/pipeline/agent-pipeline.d.ts.map +1 -0
- package/dist/pipeline/agent-pipeline.js +356 -0
- package/dist/pipeline/agent-pipeline.js.map +1 -0
- package/dist/routing/checkpoint-adapter.d.ts +30 -0
- package/dist/routing/checkpoint-adapter.d.ts.map +1 -0
- package/dist/routing/checkpoint-adapter.js +83 -0
- package/dist/routing/checkpoint-adapter.js.map +1 -0
- package/dist/routing/documentation-generator.d.ts +47 -0
- package/dist/routing/documentation-generator.d.ts.map +1 -0
- package/dist/routing/documentation-generator.js +320 -0
- package/dist/routing/documentation-generator.js.map +1 -0
- package/dist/routing/index.d.ts +38 -0
- package/dist/routing/index.d.ts.map +1 -0
- package/dist/routing/index.js +375 -0
- package/dist/routing/index.js.map +1 -0
- package/dist/routing/intent-classifier.d.ts +206 -0
- package/dist/routing/intent-classifier.d.ts.map +1 -0
- package/dist/routing/intent-classifier.js +267 -0
- package/dist/routing/intent-classifier.js.map +1 -0
- package/dist/routing/matrix.d.ts +6 -0
- package/dist/routing/matrix.d.ts.map +1 -0
- package/dist/routing/matrix.js +131 -0
- package/dist/routing/matrix.js.map +1 -0
- package/dist/routing/orchestrator.d.ts +87 -0
- package/dist/routing/orchestrator.d.ts.map +1 -0
- package/dist/routing/orchestrator.js +425 -0
- package/dist/routing/orchestrator.js.map +1 -0
- package/dist/routing/postgres-checkpoint-adapter.d.ts +32 -0
- package/dist/routing/postgres-checkpoint-adapter.d.ts.map +1 -0
- package/dist/routing/postgres-checkpoint-adapter.js +167 -0
- package/dist/routing/postgres-checkpoint-adapter.js.map +1 -0
- package/dist/routing/redis-checkpoint-adapter.d.ts +34 -0
- package/dist/routing/redis-checkpoint-adapter.d.ts.map +1 -0
- package/dist/routing/redis-checkpoint-adapter.js +170 -0
- package/dist/routing/redis-checkpoint-adapter.js.map +1 -0
- package/dist/routing/types.d.ts +49 -0
- package/dist/routing/types.d.ts.map +1 -0
- package/dist/routing/types.js +3 -0
- package/dist/routing/types.js.map +1 -0
- package/dist/types/agent.d.ts +289 -0
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/agent.js +78 -0
- package/dist/types/agent.js.map +1 -0
- package/dist/types/index.d.ts +343 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/generate-action-schema.d.ts +4 -0
- package/dist/utils/generate-action-schema.d.ts.map +1 -0
- package/dist/utils/generate-action-schema.js +46 -0
- package/dist/utils/generate-action-schema.js.map +1 -0
- package/dist/utils/header-builder.d.ts +12 -0
- package/dist/utils/header-builder.d.ts.map +1 -0
- package/dist/utils/header-builder.js +35 -0
- package/dist/utils/header-builder.js.map +1 -0
- package/dist/utils/logger.d.ts +27 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +45 -0
- package/dist/utils/logger.js.map +1 -0
- package/docs/.gitbook/assets/image (1).png +0 -0
- package/docs/.gitbook/assets/image (2).png +0 -0
- package/docs/.gitbook/assets/image (3).png +0 -0
- package/docs/.gitbook/assets/image (4).png +0 -0
- package/docs/.gitbook/assets/image (5).png +0 -0
- package/docs/.gitbook/assets/image (6).png +0 -0
- package/docs/.gitbook/assets/image.png +0 -0
- package/docs/README.md +57 -0
- package/docs/SUMMARY.md +34 -0
- package/docs/cas-dusages.md +69 -0
- package/docs/cli/README.md +65 -0
- package/docs/concepts-cles.md +50 -0
- package/docs/core/architecture.md +87 -0
- package/docs/core/benchmark.md +59 -0
- package/docs/core/checkpoint.md +72 -0
- package/docs/core/documentation.md +55 -0
- package/docs/core/graphcontroller.md +63 -0
- package/docs/core/graphflow.md +137 -0
- package/docs/core/introduction.md +41 -0
- package/docs/core/les-evenements.md +95 -0
- package/docs/modules/agenda/README.md +63 -0
- package/docs/modules/agenda/interface-iagenda.md +170 -0
- package/docs/modules/agenda/les-adaptateurs/README.md +237 -0
- package/docs/modules/agenda/les-adaptateurs/nodecronadapter.md +91 -0
- package/docs/modules/introduction.md +55 -0
- package/docs/modules/les-adaptateurs.md +52 -0
- package/docs/modules/memoire/README.md +68 -0
- package/docs/modules/memoire/interface-imemory.md +183 -0
- package/docs/modules/memoire/les-adaptateurs/README.md +209 -0
- package/docs/modules/memoire/les-adaptateurs/inmemoryadapter.md +110 -0
- package/docs/modules/memoire/les-adaptateurs/meilisearchadapter.md +147 -0
- package/docs/modules/memoire/les-adaptateurs/redisadapter.md +212 -0
- package/docs/modules/nlp/README.md +44 -0
- package/docs/philosophie.md +51 -0
- package/docs/tutoriels/ajouter-des-conditions.md +150 -0
- package/docs/tutoriels/branching.md +194 -0
- package/docs/tutoriels/checkpoint-usage.md +99 -0
- package/docs/tutoriels/creer-agent-onchain.md +1041 -0
- package/docs/tutoriels/creer-un-agent.md +108 -0
- package/docs/tutoriels/creer-un-graphe-simple.md +92 -0
- package/docs/tutoriels/gerer-les-erreurs.md +124 -0
- package/docs/tutoriels/pour-commencer.md +73 -0
- package/docs/tutoriels/retry.md +166 -0
- package/execution/adapters/in-memory-checkpoint.ts +35 -0
- package/execution/compiler.ts +47 -0
- package/execution/controller.ts +84 -0
- package/execution/event-manager.ts +331 -0
- package/execution/index.ts +800 -0
- package/execution/logger.ts +70 -0
- package/execution/node.ts +315 -0
- package/execution/observer.ts +192 -0
- package/execution/planner.ts +40 -0
- package/execution/reducer.ts +73 -0
- package/execution/registry.ts +86 -0
- package/execution/send-api.ts +58 -0
- package/execution/types.parallel.ts +81 -0
- package/execution/visualizer.ts +158 -0
- package/index.ts +55 -465
- package/interfaces/index.ts +597 -0
- package/modules/agenda/adapters/node-cron/index.ts +25 -0
- package/modules/agenda/index.ts +146 -0
- package/modules/cli/index.ts +580 -0
- package/modules/embedding/adapters/ai/index.ts +42 -0
- package/modules/embedding/index.ts +45 -0
- package/modules/nlp/engine.ts +324 -0
- package/modules/nlp/index.ts +45 -0
- package/package.json +81 -9
- package/persistence/index.ts +27 -0
- package/persistence/neo4j/driver.ts +34 -0
- package/persistence/neo4j/entity-store.ts +141 -0
- package/persistence/neo4j/execution-tracer.ts +194 -0
- package/persistence/neo4j/memory-adapter.ts +281 -0
- package/persistence/neo4j/petri-checkpoint-adapter.ts +153 -0
- package/pipeline/agent-pipeline.ts +426 -0
- package/routing/checkpoint-adapter.ts +79 -0
- package/routing/documentation-generator.ts +358 -0
- package/routing/index.ts +459 -0
- package/routing/intent-classifier.ts +360 -0
- package/routing/matrix.ts +138 -0
- package/routing/orchestrator.ts +498 -0
- package/routing/patterns/data-extraction.json +79 -0
- package/routing/patterns/human-approval.json +64 -0
- package/routing/patterns/rag-search.json +68 -0
- package/routing/postgres-checkpoint-adapter.ts +172 -0
- package/routing/redis-checkpoint-adapter.ts +187 -0
- package/routing/types.ts +59 -0
- package/routing/web-server.ts +260 -0
- package/scripts/generate-petri-docs.ts +70 -0
- package/scripts/get-gmail-token.js +65 -0
- package/scripts/get-gmail-token.ts +65 -0
- package/test/agent/agent.test.ts +92 -0
- package/test/agent/clone.test.ts +143 -0
- package/test/agent/cognitive-handler.test.ts +78 -0
- package/test/agent/entity-store.test.ts +80 -0
- package/test/agent/generic-executor.test.ts +230 -0
- package/test/agent/handoff.test.ts +163 -0
- package/test/agent/llm-factory.test.ts +40 -0
- package/test/agent/orchestrator.test.ts +156 -0
- package/test/agent/registry.test.ts +97 -0
- package/test/agent/tools.test.ts +267 -0
- package/test/execution/checkpoint.test.ts +811 -0
- package/test/execution/controller.test.ts +236 -0
- package/test/execution/event-manager.test.ts +118 -0
- package/test/execution/index.test.ts +690 -0
- package/test/execution/node.test.ts +464 -0
- package/test/execution/observer.test.ts +393 -0
- package/test/execution/parallel.test.ts +135 -0
- package/test/execution/plan-llm-integration.test.ts +290 -0
- package/test/execution/plan-real-onchain.test.ts +226 -0
- package/test/execution/send-api.test.ts +121 -0
- package/test/modules/agenda/node-cron.test.ts +307 -0
- package/test/modules/cli/index.test.ts +125 -0
- package/test/persistence/neo4j-execution-tracer.test.ts +96 -0
- package/test/persistence/neo4j-memory-adapter.test.ts +107 -0
- package/test/persistence/neo4j-petri-checkpoint.test.ts +89 -0
- package/test/pipeline/agent-pipeline.test.ts +118 -0
- package/test/routing/checkpoint-persistence.test.ts +58 -0
- package/test/routing/documentation-generator.test.ts +76 -0
- package/test/routing/integration.test.ts +261 -0
- package/test/routing/intent-classifier.test.ts +102 -0
- package/test/routing/petri.test.ts +156 -0
- package/test/routing/real-llm.test.ts +260 -0
- package/test-petri-features.ts +218 -0
- package/test-pipeline-api.ts +163 -0
- package/tsconfig.json +30 -108
- package/types/agent.ts +296 -0
- package/types/index.ts +387 -0
- package/utils/generate-action-schema.ts +47 -0
- package/utils/header-builder.ts +40 -0
- package/utils/logger.ts +40 -0
- package/package copy.json +0 -21
- package/types.ts +0 -62
- package/utils/executor.ts +0 -42
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handles logging operations for a graph instance
|
|
3
|
+
* Provides methods for adding, retrieving, and managing logs with optional verbose output
|
|
4
|
+
*/
|
|
5
|
+
export declare class GraphLogger {
|
|
6
|
+
private graphName;
|
|
7
|
+
private logs;
|
|
8
|
+
private verbose;
|
|
9
|
+
/**
|
|
10
|
+
* Creates a new GraphLogger instance
|
|
11
|
+
* @param graphName - The name of the graph this logger is associated with
|
|
12
|
+
* @param verbose - Whether to output logs to console in real-time
|
|
13
|
+
*/
|
|
14
|
+
constructor(graphName: string, verbose?: boolean);
|
|
15
|
+
/**
|
|
16
|
+
* Adds a new log entry with timestamp
|
|
17
|
+
* @param message - The message to log
|
|
18
|
+
*/
|
|
19
|
+
addLog(message: string): void;
|
|
20
|
+
/**
|
|
21
|
+
* Returns a copy of all stored logs
|
|
22
|
+
* @returns Array of log messages
|
|
23
|
+
*/
|
|
24
|
+
getLogs(): string[];
|
|
25
|
+
/**
|
|
26
|
+
* Clears all stored logs
|
|
27
|
+
*/
|
|
28
|
+
clearLogs(): void;
|
|
29
|
+
/**
|
|
30
|
+
* Sets the verbose mode
|
|
31
|
+
* @param enabled - Whether to enable verbose mode
|
|
32
|
+
*/
|
|
33
|
+
setVerbose(enabled: boolean): void;
|
|
34
|
+
/**
|
|
35
|
+
* Gets the current verbose mode status
|
|
36
|
+
* @returns Current verbose mode state
|
|
37
|
+
*/
|
|
38
|
+
isVerbose(): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Logs a message to console with graph name prefix
|
|
41
|
+
* @param message - The message to log
|
|
42
|
+
* @param data - Optional data to log
|
|
43
|
+
*/
|
|
44
|
+
log(message: string, data?: any): void;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../execution/logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,WAAW;IASV,OAAO,CAAC,SAAS;IAR7B,OAAO,CAAC,IAAI,CAAgB;IAC5B,OAAO,CAAC,OAAO,CAAkB;IAEjC;;;;OAIG;gBACiB,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe;IAI/D;;;OAGG;IACI,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IASpC;;;OAGG;IACI,OAAO,IAAI,MAAM,EAAE;IAI1B;;OAEG;IACI,SAAS,IAAI,IAAI;IAIxB;;;OAGG;IACI,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIzC;;;OAGG;IACI,SAAS,IAAI,OAAO;IAI3B;;;;OAIG;IACH,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;CAGvC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GraphLogger = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Handles logging operations for a graph instance
|
|
6
|
+
* Provides methods for adding, retrieving, and managing logs with optional verbose output
|
|
7
|
+
*/
|
|
8
|
+
class GraphLogger {
|
|
9
|
+
/**
|
|
10
|
+
* Creates a new GraphLogger instance
|
|
11
|
+
* @param graphName - The name of the graph this logger is associated with
|
|
12
|
+
* @param verbose - Whether to output logs to console in real-time
|
|
13
|
+
*/
|
|
14
|
+
constructor(graphName, verbose = false) {
|
|
15
|
+
this.graphName = graphName;
|
|
16
|
+
this.logs = [];
|
|
17
|
+
this.verbose = false;
|
|
18
|
+
this.verbose = verbose;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Adds a new log entry with timestamp
|
|
22
|
+
* @param message - The message to log
|
|
23
|
+
*/
|
|
24
|
+
addLog(message) {
|
|
25
|
+
const timestamp = new Date().toISOString();
|
|
26
|
+
const logMessage = `[${timestamp}] ${message}`;
|
|
27
|
+
this.logs.push(logMessage);
|
|
28
|
+
if (this.verbose) {
|
|
29
|
+
console.log(`${this.graphName} - ${message}`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Returns a copy of all stored logs
|
|
34
|
+
* @returns Array of log messages
|
|
35
|
+
*/
|
|
36
|
+
getLogs() {
|
|
37
|
+
return [...this.logs];
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Clears all stored logs
|
|
41
|
+
*/
|
|
42
|
+
clearLogs() {
|
|
43
|
+
this.logs = [];
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Sets the verbose mode
|
|
47
|
+
* @param enabled - Whether to enable verbose mode
|
|
48
|
+
*/
|
|
49
|
+
setVerbose(enabled) {
|
|
50
|
+
this.verbose = enabled;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Gets the current verbose mode status
|
|
54
|
+
* @returns Current verbose mode state
|
|
55
|
+
*/
|
|
56
|
+
isVerbose() {
|
|
57
|
+
return this.verbose;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Logs a message to console with graph name prefix
|
|
61
|
+
* @param message - The message to log
|
|
62
|
+
* @param data - Optional data to log
|
|
63
|
+
*/
|
|
64
|
+
log(message, data) {
|
|
65
|
+
console.log(`[Graph ${this.graphName}] ${message}`, data);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
exports.GraphLogger = GraphLogger;
|
|
69
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../execution/logger.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,MAAa,WAAW;IAItB;;;;OAIG;IACH,YAAoB,SAAiB,EAAE,UAAmB,KAAK;QAA3C,cAAS,GAAT,SAAS,CAAQ;QAR7B,SAAI,GAAa,EAAE,CAAC;QACpB,YAAO,GAAY,KAAK,CAAC;QAQ/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,OAAe;QAC3B,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,UAAU,GAAG,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,MAAM,OAAO,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,OAAO;QACZ,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACI,SAAS;QACd,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,UAAU,CAAC,OAAgB;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;;OAGG;IACI,SAAS;QACd,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAC,OAAe,EAAE,IAAU;QAC7B,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;CACF;AAjED,kCAiEC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { BehaviorSubject, Subject } from "rxjs";
|
|
2
|
+
import { ZodSchema } from "zod";
|
|
3
|
+
import { GraphContext, GraphEvent, GraphNodeConfig } from "../types";
|
|
4
|
+
import { GraphEventManager } from "./event-manager";
|
|
5
|
+
/**
|
|
6
|
+
* Represents a node in the graph that can execute operations and manage state
|
|
7
|
+
* @template T - The Zod schema type for validation
|
|
8
|
+
*/
|
|
9
|
+
export interface NodeParams<T = any> {
|
|
10
|
+
[key: string]: T;
|
|
11
|
+
}
|
|
12
|
+
export interface GraphLogger {
|
|
13
|
+
addLog: (message: string, data?: any) => void;
|
|
14
|
+
}
|
|
15
|
+
export interface NodeExecutionHooks<T extends ZodSchema> {
|
|
16
|
+
onBeforeExecute?: (nodeName: string, context: GraphContext<T>) => Promise<void>;
|
|
17
|
+
onBeforeExecuteNext?: (nodeName: string, context: GraphContext<T>, nextNodes: string[]) => Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
export declare class GraphNode<T extends ZodSchema> {
|
|
20
|
+
private nodes;
|
|
21
|
+
private logger;
|
|
22
|
+
private eventManager;
|
|
23
|
+
private eventSubject;
|
|
24
|
+
private stateSubject;
|
|
25
|
+
private lastStateEvent;
|
|
26
|
+
private eventEmitter;
|
|
27
|
+
/**
|
|
28
|
+
* Creates a new GraphNode instance
|
|
29
|
+
* @param nodes - Map of all nodes in the graph
|
|
30
|
+
* @param logger - Logger instance for tracking node operations
|
|
31
|
+
* @param eventManager - Manager for handling graph events
|
|
32
|
+
* @param eventSubject - Subject for emitting events
|
|
33
|
+
* @param stateSubject - Subject for managing graph state
|
|
34
|
+
*/
|
|
35
|
+
constructor(nodes: Map<string, GraphNodeConfig<T, any>>, logger: GraphLogger, eventManager: GraphEventManager<T>, eventSubject: Subject<GraphEvent<T>>, stateSubject: BehaviorSubject<GraphContext<T>>);
|
|
36
|
+
/**
|
|
37
|
+
* Emits an event with the specified type and payload
|
|
38
|
+
* @param type - The type of event to emit
|
|
39
|
+
* @param payload - The data associated with the event
|
|
40
|
+
* @private
|
|
41
|
+
*/
|
|
42
|
+
private emitEvent;
|
|
43
|
+
/**
|
|
44
|
+
* Executes a node with the given name and context
|
|
45
|
+
* @param nodeName - The name of the node to execute
|
|
46
|
+
* @param context - The current graph context
|
|
47
|
+
* @param params - Input data for the node
|
|
48
|
+
* @param triggeredByEvent - Whether the execution was triggered by an event
|
|
49
|
+
* @param hooks - Optional execution hooks
|
|
50
|
+
* @throws Error if the node is not found or execution fails
|
|
51
|
+
*/
|
|
52
|
+
executeNode(nodeName: string, context: GraphContext<T>, triggeredByEvent?: boolean, hooks?: NodeExecutionHooks<T>): Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* Executes a node with retry logic
|
|
55
|
+
* @param node - The node to execute
|
|
56
|
+
* @param contextProxy - The proxied graph context
|
|
57
|
+
* @param params - Input data for the node
|
|
58
|
+
* @param nodeName - The name of the node
|
|
59
|
+
* @param params - Parameters for the node
|
|
60
|
+
* @throws Error if all retry attempts fail
|
|
61
|
+
* @private
|
|
62
|
+
*/
|
|
63
|
+
private executeWithRetry;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../execution/node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAc,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAIpD;;;GAGG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,GAAG;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;CAC/C;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,SAAS;IACrD,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChF,mBAAmB,CAAC,EAAE,CACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EACxB,SAAS,EAAE,MAAM,EAAE,KAChB,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB;AAED,qBAAa,SAAS,CAAC,CAAC,SAAS,SAAS;IAatC,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,YAAY;IAhBtB,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,YAAY,CAAgB;IAEpC;;;;;;;OAOG;gBAEO,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAC3C,MAAM,EAAE,WAAW,EACnB,YAAY,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAClC,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EACpC,YAAY,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAKxD;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IA+BjB;;;;;;;;OAQG;IACU,WAAW,CACtB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EACxB,gBAAgB,GAAE,OAAe,EACjC,KAAK,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC;IAuKhB;;;;;;;;;OASG;YACW,gBAAgB;CAmC/B"}
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.GraphNode = void 0;
|
|
13
|
+
const send_api_1 = require("./send-api");
|
|
14
|
+
const reducer_1 = require("./reducer");
|
|
15
|
+
class GraphNode {
|
|
16
|
+
/**
|
|
17
|
+
* Creates a new GraphNode instance
|
|
18
|
+
* @param nodes - Map of all nodes in the graph
|
|
19
|
+
* @param logger - Logger instance for tracking node operations
|
|
20
|
+
* @param eventManager - Manager for handling graph events
|
|
21
|
+
* @param eventSubject - Subject for emitting events
|
|
22
|
+
* @param stateSubject - Subject for managing graph state
|
|
23
|
+
*/
|
|
24
|
+
constructor(nodes, logger, eventManager, eventSubject, stateSubject) {
|
|
25
|
+
this.nodes = nodes;
|
|
26
|
+
this.logger = logger;
|
|
27
|
+
this.eventManager = eventManager;
|
|
28
|
+
this.eventSubject = eventSubject;
|
|
29
|
+
this.stateSubject = stateSubject;
|
|
30
|
+
this.lastStateEvent = null;
|
|
31
|
+
this.eventEmitter = eventManager["eventEmitter"];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Emits an event with the specified type and payload
|
|
35
|
+
* @param type - The type of event to emit
|
|
36
|
+
* @param payload - The data associated with the event
|
|
37
|
+
* @private
|
|
38
|
+
*/
|
|
39
|
+
emitEvent(type, payload) {
|
|
40
|
+
var _a;
|
|
41
|
+
if (type === "nodeStateChanged") {
|
|
42
|
+
if (((_a = this.lastStateEvent) === null || _a === void 0 ? void 0 : _a.type) === type &&
|
|
43
|
+
this.lastStateEvent.payload.property === payload.property &&
|
|
44
|
+
this.lastStateEvent.payload.newValue === payload.newValue &&
|
|
45
|
+
this.lastStateEvent.payload.nodeName === payload.nodeName) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
const event = {
|
|
50
|
+
type,
|
|
51
|
+
payload: Object.assign(Object.assign({}, payload), { name: type === "nodeStateChanged" ? payload.nodeName : payload.name, context: Object.assign({}, payload.context) }),
|
|
52
|
+
timestamp: Date.now(),
|
|
53
|
+
};
|
|
54
|
+
this.eventSubject.next(event);
|
|
55
|
+
this.eventManager.emitEvent(type, event);
|
|
56
|
+
if (type === "nodeStateChanged") {
|
|
57
|
+
this.lastStateEvent = event;
|
|
58
|
+
this.stateSubject.next(Object.assign({}, payload.context));
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Executes a node with the given name and context
|
|
63
|
+
* @param nodeName - The name of the node to execute
|
|
64
|
+
* @param context - The current graph context
|
|
65
|
+
* @param params - Input data for the node
|
|
66
|
+
* @param triggeredByEvent - Whether the execution was triggered by an event
|
|
67
|
+
* @param hooks - Optional execution hooks
|
|
68
|
+
* @throws Error if the node is not found or execution fails
|
|
69
|
+
*/
|
|
70
|
+
executeNode(nodeName_1, context_1) {
|
|
71
|
+
return __awaiter(this, arguments, void 0, function* (nodeName, context, triggeredByEvent = false, hooks) {
|
|
72
|
+
var _a, _b;
|
|
73
|
+
const node = this.nodes.get(nodeName);
|
|
74
|
+
if (!node)
|
|
75
|
+
throw new Error(`Node "${nodeName}" not found.`);
|
|
76
|
+
if (hooks === null || hooks === void 0 ? void 0 : hooks.onBeforeExecute) {
|
|
77
|
+
yield hooks.onBeforeExecute(nodeName, context);
|
|
78
|
+
}
|
|
79
|
+
const nodeContext = Object.assign({}, context);
|
|
80
|
+
this.emitEvent("nodeStarted", { name: nodeName, context: nodeContext });
|
|
81
|
+
try {
|
|
82
|
+
if (node.when) {
|
|
83
|
+
yield this.eventManager.handleNodeEvents(nodeName, node.when);
|
|
84
|
+
}
|
|
85
|
+
const contextProxy = new Proxy(nodeContext, {
|
|
86
|
+
set: (target, prop, value) => {
|
|
87
|
+
const oldValue = target[prop.toString()];
|
|
88
|
+
if (oldValue === value)
|
|
89
|
+
return true;
|
|
90
|
+
target[prop.toString()] = value;
|
|
91
|
+
context[prop.toString()] = value;
|
|
92
|
+
this.emitEvent("nodeStateChanged", {
|
|
93
|
+
nodeName,
|
|
94
|
+
property: prop.toString(),
|
|
95
|
+
oldValue,
|
|
96
|
+
newValue: value,
|
|
97
|
+
context: Object.assign({}, target),
|
|
98
|
+
});
|
|
99
|
+
return true;
|
|
100
|
+
},
|
|
101
|
+
});
|
|
102
|
+
if (node.condition && !node.condition(contextProxy)) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
yield this.executeWithRetry(node, contextProxy, nodeName);
|
|
106
|
+
this.emitEvent("nodeCompleted", { name: nodeName, context: nodeContext });
|
|
107
|
+
// ====== HANDOFF / COMMAND DETECTION ======
|
|
108
|
+
const command = context._handoff || context._command;
|
|
109
|
+
if (command === null || command === void 0 ? void 0 : command.goto) {
|
|
110
|
+
if (command.graph === "PARENT") {
|
|
111
|
+
return; // Stop here; parent orchestrator checks context._handoff
|
|
112
|
+
}
|
|
113
|
+
if (this.nodes.has(command.goto)) {
|
|
114
|
+
if (command.update)
|
|
115
|
+
Object.assign(context, command.update);
|
|
116
|
+
yield this.executeNode(command.goto, context, false, hooks);
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
if (!triggeredByEvent && (node.next || node.send)) {
|
|
121
|
+
const nextNodes = typeof node.next === "function" ? node.next(contextProxy) : node.next;
|
|
122
|
+
// ====== SEND API (Fan-out dynamique) ======
|
|
123
|
+
if (node.send) {
|
|
124
|
+
const sends = node.send(contextProxy);
|
|
125
|
+
const branchResults = yield send_api_1.SendAPI.processSends(sends, context, (nodeName, ctx) => this.executeNode(nodeName, ctx, false, hooks));
|
|
126
|
+
// Merge avec reducers
|
|
127
|
+
const merged = (0, reducer_1.applyReducers)(context, branchResults, node.reducers || []);
|
|
128
|
+
Object.assign(context, merged);
|
|
129
|
+
// Si un joinNode est spécifié (dans parallel), l'exécuter
|
|
130
|
+
const joinNode = (_a = node.parallel) === null || _a === void 0 ? void 0 : _a.joinNode;
|
|
131
|
+
if (joinNode) {
|
|
132
|
+
yield this.executeNode(joinNode, context, false, hooks);
|
|
133
|
+
}
|
|
134
|
+
return; // Pas de next séquentiel après Send
|
|
135
|
+
}
|
|
136
|
+
// Filtrer les valeurs nulles/undefined
|
|
137
|
+
const nextNodeConfigs = (Array.isArray(nextNodes) ? nextNodes : [nextNodes]).filter((n) => n != null);
|
|
138
|
+
const validNextNodes = nextNodeConfigs
|
|
139
|
+
.map((nextNode) => {
|
|
140
|
+
const nextNodeName = typeof nextNode === "string" ? nextNode : nextNode.node;
|
|
141
|
+
const condition = typeof nextNode === "string" ? undefined : nextNode.condition;
|
|
142
|
+
return {
|
|
143
|
+
name: nextNodeName,
|
|
144
|
+
condition,
|
|
145
|
+
isValid: !condition || (condition && condition(contextProxy)),
|
|
146
|
+
};
|
|
147
|
+
})
|
|
148
|
+
.filter((n) => n.isValid);
|
|
149
|
+
const nextNodeNames = validNextNodes.map((n) => n.name);
|
|
150
|
+
if (hooks === null || hooks === void 0 ? void 0 : hooks.onBeforeExecuteNext) {
|
|
151
|
+
yield hooks.onBeforeExecuteNext(nodeName, context, nextNodeNames);
|
|
152
|
+
}
|
|
153
|
+
// ====== PARALLÉLISME FORK-JOIN ======
|
|
154
|
+
if ((_b = node.parallel) === null || _b === void 0 ? void 0 : _b.enabled) {
|
|
155
|
+
const { joinNode, reducers, mergeStrategy } = node.parallel;
|
|
156
|
+
// Fork : cloner le contexte pour chaque branche
|
|
157
|
+
const branchContexts = validNextNodes.map((n, i) => ({
|
|
158
|
+
nodeName: n.name,
|
|
159
|
+
context: structuredClone(context),
|
|
160
|
+
branchId: `${n.name}_${i}`,
|
|
161
|
+
}));
|
|
162
|
+
// Exécution parallèle (Promise.all)
|
|
163
|
+
const branchResults = yield Promise.all(branchContexts.map((_a) => __awaiter(this, [_a], void 0, function* ({ nodeName, context: ctx, branchId }) {
|
|
164
|
+
yield this.executeNode(nodeName, ctx, false, hooks);
|
|
165
|
+
return { branchId, context: ctx };
|
|
166
|
+
})));
|
|
167
|
+
// Join : merger les résultats
|
|
168
|
+
if (reducers && reducers.length > 0) {
|
|
169
|
+
const merged = (0, reducer_1.applyReducers)(context, branchResults, reducers);
|
|
170
|
+
Object.assign(context, merged);
|
|
171
|
+
}
|
|
172
|
+
else if (mergeStrategy === "isolated") {
|
|
173
|
+
branchResults.forEach(({ branchId, context: ctx }) => {
|
|
174
|
+
context[`branch_${branchId}`] = ctx;
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
// deep-merge par défaut
|
|
179
|
+
const { deepMerge } = require("./reducer");
|
|
180
|
+
const merged = deepMerge(context, ...branchResults.map((r) => r.context));
|
|
181
|
+
Object.assign(context, merged);
|
|
182
|
+
}
|
|
183
|
+
// Si un joinNode est spécifié, l'exécuter
|
|
184
|
+
if (joinNode) {
|
|
185
|
+
yield this.executeNode(joinNode, context, false, hooks);
|
|
186
|
+
}
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
// ====== SÉQUENTIEL (logique existante) ======
|
|
190
|
+
for (const nextNode of validNextNodes) {
|
|
191
|
+
yield this.executeNode(nextNode.name, context, false, hooks);
|
|
192
|
+
if (context._handoff || context._command)
|
|
193
|
+
break;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
catch (error) {
|
|
198
|
+
this.emitEvent("nodeError", {
|
|
199
|
+
name: nodeName,
|
|
200
|
+
error,
|
|
201
|
+
context: nodeContext,
|
|
202
|
+
});
|
|
203
|
+
throw error;
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Executes a node with retry logic
|
|
209
|
+
* @param node - The node to execute
|
|
210
|
+
* @param contextProxy - The proxied graph context
|
|
211
|
+
* @param params - Input data for the node
|
|
212
|
+
* @param nodeName - The name of the node
|
|
213
|
+
* @param params - Parameters for the node
|
|
214
|
+
* @throws Error if all retry attempts fail
|
|
215
|
+
* @private
|
|
216
|
+
*/
|
|
217
|
+
executeWithRetry(node, contextProxy, nodeName) {
|
|
218
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
219
|
+
var _a, _b, _c;
|
|
220
|
+
let attempts = 0;
|
|
221
|
+
let lastError = new Error("Unknown error");
|
|
222
|
+
while (attempts < (((_a = node.retry) === null || _a === void 0 ? void 0 : _a.maxAttempts) || 1)) {
|
|
223
|
+
try {
|
|
224
|
+
yield node.execute(contextProxy, {
|
|
225
|
+
eventEmitter: this.eventEmitter,
|
|
226
|
+
});
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
catch (error) {
|
|
230
|
+
lastError =
|
|
231
|
+
error instanceof Error
|
|
232
|
+
? error
|
|
233
|
+
: new Error((error === null || error === void 0 ? void 0 : error.message) || "Unknown error");
|
|
234
|
+
attempts++;
|
|
235
|
+
if (attempts === (((_b = node.retry) === null || _b === void 0 ? void 0 : _b.maxAttempts) || 1)) {
|
|
236
|
+
if ((_c = node.retry) === null || _c === void 0 ? void 0 : _c.onRetryFailed) {
|
|
237
|
+
yield node.retry.onRetryFailed(lastError, contextProxy);
|
|
238
|
+
if (node.retry.continueOnFailed)
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
throw lastError;
|
|
242
|
+
}
|
|
243
|
+
yield new Promise((resolve) => { var _a; return setTimeout(resolve, ((_a = node.retry) === null || _a === void 0 ? void 0 : _a.delay) || 0); });
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
exports.GraphNode = GraphNode;
|
|
250
|
+
//# sourceMappingURL=node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../execution/node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { BehaviorSubject, Subject } from "rxjs";
|
|
2
|
+
import { ZodSchema } from "zod";
|
|
3
|
+
import { GraphObservable } from "../interfaces";
|
|
4
|
+
import { GraphContext, GraphEvent, ObserverOptions } from "../types";
|
|
5
|
+
import { GraphEventManager } from "./event-manager";
|
|
6
|
+
import { GraphFlow } from "./index";
|
|
7
|
+
/**
|
|
8
|
+
* GraphObserver class provides reactive observation capabilities for a GraphFlow instance
|
|
9
|
+
* It allows monitoring state changes, node updates, and specific events in the graph
|
|
10
|
+
* @template T - The Zod schema type that defines the structure of the graph data
|
|
11
|
+
*/
|
|
12
|
+
export declare class GraphObserver<T extends ZodSchema> {
|
|
13
|
+
private graph;
|
|
14
|
+
private eventSubject;
|
|
15
|
+
private stateSubject;
|
|
16
|
+
private destroySubject;
|
|
17
|
+
private eventManager;
|
|
18
|
+
constructor(graph: GraphFlow<T>, eventSubject: Subject<GraphEvent<T>>, stateSubject: BehaviorSubject<GraphContext<T>>, destroySubject: Subject<void>, eventManager: GraphEventManager<T>);
|
|
19
|
+
/**
|
|
20
|
+
* Observes the entire graph state changes
|
|
21
|
+
* @param options Configuration options for the observation
|
|
22
|
+
* @returns An Observable that emits the complete graph context whenever it changes
|
|
23
|
+
*/
|
|
24
|
+
state(options?: ObserverOptions): GraphObservable<T>;
|
|
25
|
+
/**
|
|
26
|
+
* Waits for correlated events to occur and validates them using a correlation function
|
|
27
|
+
* @param eventTypes - Array of event types to wait for
|
|
28
|
+
* @param timeoutMs - Timeout in milliseconds
|
|
29
|
+
* @param correlationFn - Function to validate event correlation
|
|
30
|
+
* @returns Promise that resolves with the correlated events
|
|
31
|
+
*/
|
|
32
|
+
waitForCorrelatedEvents(eventTypes: string[], timeoutMs: number, correlationFn: (events: GraphEvent<T>[]) => boolean): Promise<GraphEvent<T>[]>;
|
|
33
|
+
/**
|
|
34
|
+
* Streams a message letter by letter with a specified delay
|
|
35
|
+
*/
|
|
36
|
+
private streamMessage;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=observer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observer.d.ts","sourceRoot":"","sources":["../../execution/observer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAEf,OAAO,EAGR,MAAM,MAAM,CAAC;AAUd,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC;;;;GAIG;AACH,qBAAa,aAAa,CAAC,CAAC,SAAS,SAAS;IAE1C,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,YAAY;gBAJZ,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EACnB,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EACpC,YAAY,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAC9C,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,EAC7B,YAAY,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAG5C;;;;OAIG;IACH,KAAK,CAAC,OAAO,GAAE,eAAoB,GAAG,eAAe,CAAC,CAAC,CAAC;IAoFxD;;;;;;OAMG;IACH,uBAAuB,CACrB,UAAU,EAAE,MAAM,EAAE,EACpB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,GAClD,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAkC3B;;OAEG;IACH,OAAO,CAAC,aAAa;CAkBtB"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GraphObserver = void 0;
|
|
4
|
+
const rxjs_1 = require("rxjs");
|
|
5
|
+
const operators_1 = require("rxjs/operators");
|
|
6
|
+
/**
|
|
7
|
+
* GraphObserver class provides reactive observation capabilities for a GraphFlow instance
|
|
8
|
+
* It allows monitoring state changes, node updates, and specific events in the graph
|
|
9
|
+
* @template T - The Zod schema type that defines the structure of the graph data
|
|
10
|
+
*/
|
|
11
|
+
class GraphObserver {
|
|
12
|
+
constructor(graph, eventSubject, stateSubject, destroySubject, eventManager) {
|
|
13
|
+
this.graph = graph;
|
|
14
|
+
this.eventSubject = eventSubject;
|
|
15
|
+
this.stateSubject = stateSubject;
|
|
16
|
+
this.destroySubject = destroySubject;
|
|
17
|
+
this.eventManager = eventManager;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Observes the entire graph state changes
|
|
21
|
+
* @param options Configuration options for the observation
|
|
22
|
+
* @returns An Observable that emits the complete graph context whenever it changes
|
|
23
|
+
*/
|
|
24
|
+
state(options = {}) {
|
|
25
|
+
const baseObservable = new rxjs_1.Observable((subscriber) => {
|
|
26
|
+
const subscription = (0, rxjs_1.combineLatest)([
|
|
27
|
+
this.eventSubject.pipe((0, operators_1.filter)((event) => event.type === "nodeStateChanged"), (0, operators_1.map)((event) => event.payload.context), (0, operators_1.distinctUntilChanged)((prev, curr) => JSON.stringify(prev) === JSON.stringify(curr)), (0, operators_1.debounceTime)(options.debounce || 100)),
|
|
28
|
+
this.stateSubject,
|
|
29
|
+
])
|
|
30
|
+
.pipe((0, operators_1.map)(([eventContext, stateContext]) => (Object.assign(Object.assign({}, stateContext), eventContext))), (0, operators_1.distinctUntilChanged)((prev, curr) => JSON.stringify(prev) === JSON.stringify(curr)))
|
|
31
|
+
.subscribe(subscriber);
|
|
32
|
+
if (options.stream && options.properties) {
|
|
33
|
+
const context = this.stateSubject.getValue();
|
|
34
|
+
options.properties.forEach((property) => {
|
|
35
|
+
const message = context[property];
|
|
36
|
+
if (message) {
|
|
37
|
+
this.streamMessage(message.toString(), 500, property).subscribe({
|
|
38
|
+
next: (data) => { var _a; return (_a = options.onStreamLetter) === null || _a === void 0 ? void 0 : _a.call(options, data); },
|
|
39
|
+
complete: () => { var _a; return (_a = options.onStreamComplete) === null || _a === void 0 ? void 0 : _a.call(options); },
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
return () => subscription.unsubscribe();
|
|
45
|
+
});
|
|
46
|
+
return Object.assign(baseObservable, {
|
|
47
|
+
state: () => this.stateSubject.asObservable(),
|
|
48
|
+
node: (nodeName) => this.stateSubject.pipe((0, operators_1.map)((state) => (Object.assign(Object.assign({}, state), { nodeName })))),
|
|
49
|
+
nodes: (nodeNames) => this.eventSubject.pipe((0, operators_1.filter)((event) => {
|
|
50
|
+
var _a, _b;
|
|
51
|
+
return event.type === "nodeStateChanged" &&
|
|
52
|
+
nodeNames.includes((_b = (_a = event.payload) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : "");
|
|
53
|
+
}), (0, operators_1.map)((event) => event.payload.context), (0, operators_1.distinctUntilChanged)((prev, curr) => JSON.stringify(prev) === JSON.stringify(curr)), (0, operators_1.takeUntil)(this.destroySubject), (0, operators_1.share)()),
|
|
54
|
+
property: (props) => this.stateSubject.pipe((0, operators_1.map)((state) => {
|
|
55
|
+
const properties = Array.isArray(props) ? props : [props];
|
|
56
|
+
return properties.reduce((acc, prop) => (Object.assign(Object.assign({}, acc), { [prop]: state[prop] })), {});
|
|
57
|
+
})),
|
|
58
|
+
event: (eventName) => this.eventSubject.pipe((0, operators_1.filter)((event) => event.type === eventName)),
|
|
59
|
+
until: (observable, predicate) => (0, rxjs_1.firstValueFrom)(observable.pipe((0, operators_1.filter)(predicate), (0, operators_1.take)(1))),
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Waits for correlated events to occur and validates them using a correlation function
|
|
64
|
+
* @param eventTypes - Array of event types to wait for
|
|
65
|
+
* @param timeoutMs - Timeout in milliseconds
|
|
66
|
+
* @param correlationFn - Function to validate event correlation
|
|
67
|
+
* @returns Promise that resolves with the correlated events
|
|
68
|
+
*/
|
|
69
|
+
waitForCorrelatedEvents(eventTypes, timeoutMs, correlationFn) {
|
|
70
|
+
return new Promise((resolve, reject) => {
|
|
71
|
+
const events = [];
|
|
72
|
+
const timeout = setTimeout(() => {
|
|
73
|
+
reject(new Error(`Timeout waiting for correlated events: ${eventTypes.join(", ")}`));
|
|
74
|
+
}, timeoutMs);
|
|
75
|
+
const subscription = this.eventSubject
|
|
76
|
+
.pipe((0, operators_1.filter)((event) => eventTypes.includes(event.type)), (0, operators_1.takeUntil)(this.destroySubject))
|
|
77
|
+
.subscribe({
|
|
78
|
+
next: (event) => {
|
|
79
|
+
events.push(event);
|
|
80
|
+
if (events.length === eventTypes.length && correlationFn(events)) {
|
|
81
|
+
clearTimeout(timeout);
|
|
82
|
+
subscription.unsubscribe();
|
|
83
|
+
resolve(events);
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
error: (error) => {
|
|
87
|
+
clearTimeout(timeout);
|
|
88
|
+
subscription.unsubscribe();
|
|
89
|
+
reject(error);
|
|
90
|
+
},
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Streams a message letter by letter with a specified delay
|
|
96
|
+
*/
|
|
97
|
+
streamMessage(message, delayMs, property) {
|
|
98
|
+
return new rxjs_1.Observable((subscriber) => {
|
|
99
|
+
for (let i = 0; i < message.length; i++) {
|
|
100
|
+
setTimeout(() => {
|
|
101
|
+
subscriber.next({ letter: message[i], property });
|
|
102
|
+
if (i === message.length - 1) {
|
|
103
|
+
subscriber.complete();
|
|
104
|
+
}
|
|
105
|
+
}, i * delayMs);
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
exports.GraphObserver = GraphObserver;
|
|
111
|
+
//# sourceMappingURL=observer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observer.js","sourceRoot":"","sources":["../../execution/observer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ToolRegistry } from './registry';
|
|
3
|
+
export declare const PlanSchema: z.ZodObject<{
|
|
4
|
+
goal: z.ZodString;
|
|
5
|
+
steps: z.ZodArray<z.ZodObject<{
|
|
6
|
+
node: z.ZodString;
|
|
7
|
+
params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
|
|
8
|
+
description: z.ZodOptional<z.ZodString>;
|
|
9
|
+
}, z.core.$strip>>;
|
|
10
|
+
}, z.core.$strip>;
|
|
11
|
+
export type Plan = z.infer<typeof PlanSchema>;
|
|
12
|
+
export declare function generatePlan(userIntent: string, registry: ToolRegistry, llmCall: (prompt: string) => Promise<string>): Promise<Plan>;
|
|
13
|
+
export declare function renderPlan(plan: Plan): string;
|
|
14
|
+
//# sourceMappingURL=planner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planner.d.ts","sourceRoot":"","sources":["../../execution/planner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAY,MAAM,YAAY,CAAC;AAEpD,eAAO,MAAM,UAAU;;;;;;;iBASrB,CAAC;AAEH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAE9C,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAC3C,OAAO,CAAC,IAAI,CAAC,CAef;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAE7C"}
|