@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
package/README.md
CHANGED
|
@@ -1,193 +1,414 @@
|
|
|
1
|
-
# @ai.ntellect/
|
|
1
|
+
# @ai.ntellect/core
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**Stop your AI agents from going off-rails in production.**
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
*LLMs generate. You control.*
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
- **Conditional Logic:** Execute nodes based on real-time conditions.
|
|
9
|
-
- **Event-Driven Execution:** Trigger actions dynamically using events.
|
|
10
|
-
- **State Management:** Handle shared and persistent states.
|
|
11
|
-
- **Visualization:** Generate workflow diagrams using Mermaid syntax.
|
|
7
|
+
One LLM call $\rightarrow$ deterministic execution $\rightarrow$ no routing hallucinations.
|
|
12
8
|
|
|
13
|
-
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Why
|
|
12
|
+
|
|
13
|
+
LLMs are great at generating text.
|
|
14
|
+
**They are bad at controlling systems.**
|
|
15
|
+
|
|
16
|
+
Most frameworks let the LLM decide everything:
|
|
17
|
+
- which tool to call
|
|
18
|
+
- in what order
|
|
19
|
+
- with what context
|
|
20
|
+
|
|
21
|
+
$\rightarrow$ This breaks as complexity grows.
|
|
22
|
+
|
|
23
|
+
**This framework does the opposite:**
|
|
24
|
+
- LLM decides **intent (once)**
|
|
25
|
+
- Your system handles **execution (deterministically)**
|
|
26
|
+
|
|
27
|
+
No drift. No hidden loops. No surprises.
|
|
28
|
+
|
|
29
|
+
**This is not an agent framework. It's a control layer for LLM systems.**
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
### The Contrast
|
|
34
|
+
|
|
35
|
+
**Most frameworks:**
|
|
36
|
+
`User` $\rightarrow$ `LLM` $\rightarrow$ `LLM` $\rightarrow$ `LLM` $\rightarrow$ `Tool` $\rightarrow$ `LLM` (Probabilistic Chaos)
|
|
37
|
+
|
|
38
|
+
**This framework:**
|
|
39
|
+
`User` $\rightarrow$ `LLM` $\rightarrow$ `System` $\rightarrow$ `Done` (Deterministic Control)
|
|
14
40
|
|
|
15
|
-
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Why this works
|
|
44
|
+
|
|
45
|
+
We replaced probabilistic guessing with explicit definitions. Routing is **defined**, not **learned**.
|
|
46
|
+
|
|
47
|
+
- **No prompt drift**: Your agent won't change its behavior because of a minor prompt tweak.
|
|
48
|
+
- **No hidden loops**: Execution paths are explicit and finite.
|
|
49
|
+
- **No probabilistic branching**: If the intent is X, the path is ALWAYS Y.
|
|
50
|
+
|
|
51
|
+
Just state + transitions.
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Quick Reference
|
|
16
56
|
|
|
17
|
-
```bash
|
|
18
|
-
npm install @ai.ntellect/workflow
|
|
19
57
|
```
|
|
58
|
+
User → LLM (intent) → Petri Net (routing) → GraphFlow (execution)
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
One decision. Then control.
|
|
62
|
+
|
|
63
|
+
---
|
|
20
64
|
|
|
21
|
-
|
|
65
|
+
## Installation
|
|
22
66
|
|
|
23
|
-
```
|
|
24
|
-
|
|
67
|
+
```sh
|
|
68
|
+
pnpm add @ai.ntellect/core zod
|
|
25
69
|
```
|
|
26
70
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
71
|
+
**Requirements**: TypeScript 5.x+, Node.js 18+.
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Table of Contents
|
|
76
|
+
|
|
77
|
+
- [Core Thesis](#core-thesis)
|
|
78
|
+
- [Source Structure](#source-structure)
|
|
79
|
+
- [GraphFlow — Typed Execution](#graphflow--typed-execution)
|
|
80
|
+
- [CortexFlow — Intent Routing](#cortexflow--intent-routing)
|
|
81
|
+
- [Agent — Cognitive Loop](#agent--cognitive-loop)
|
|
82
|
+
- [AgentPipeline — Declarative Pipelines](#agentpipeline--declarative-pipelines)
|
|
83
|
+
- [Persistence — Memory & Checkpoints](#persistence--memory--checkpoints)
|
|
84
|
+
- [Planner & Compiler](#planner--compiler)
|
|
85
|
+
- [CLI (Interactive REPL)](#cli-interactive-repl)
|
|
86
|
+
- [Testing & Build](#testing--build)
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Core Thesis
|
|
91
|
+
|
|
92
|
+
The framework architecture is the **Classifier-Controller Split**:
|
|
93
|
+
|
|
94
|
+
| Layer | Role | Technology | Correctness |
|
|
95
|
+
|-------|------|-----------|-------------|
|
|
96
|
+
| **Intent** | Classify user input | LLM | Probabilistic (confidence threshold) |
|
|
97
|
+
| **Routing** | Choose execution path | Petri Net | Deterministic (verified) |
|
|
98
|
+
| **Execution** | Run business logic | GraphFlow | Typed (Zod validated) |
|
|
99
|
+
|
|
100
|
+
This split means the LLM is called exactly **once per turn** for intent classification. All subsequent routing and execution is handled by verified, typed code.
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## GraphFlow — Typed Execution
|
|
105
|
+
|
|
106
|
+
A `GraphFlow` is a **typed state machine** where each node is a discrete unit of logic.
|
|
107
|
+
|
|
108
|
+
```typescript
|
|
109
|
+
import { z } from "zod";
|
|
110
|
+
import { GraphFlow } from "@ai.ntellect/core";
|
|
111
|
+
|
|
112
|
+
const schema = z.object({ count: z.number().default(0) });
|
|
113
|
+
|
|
114
|
+
const workflow = new GraphFlow({
|
|
115
|
+
name: "counter",
|
|
116
|
+
schema,
|
|
117
|
+
context: { count: 0 },
|
|
118
|
+
nodes: [
|
|
119
|
+
{
|
|
120
|
+
name: "increment",
|
|
121
|
+
execute: async (ctx) => { ctx.count++; },
|
|
122
|
+
next: "double",
|
|
57
123
|
},
|
|
58
|
-
|
|
59
|
-
name: "
|
|
60
|
-
|
|
61
|
-
execute: async (state) => {
|
|
62
|
-
console.log("Publishing content:", state.processedContent);
|
|
63
|
-
state.published = true;
|
|
64
|
-
return state;
|
|
65
|
-
},
|
|
124
|
+
{
|
|
125
|
+
name: "double",
|
|
126
|
+
execute: async (ctx) => { ctx.count *= 2; },
|
|
66
127
|
},
|
|
67
|
-
|
|
68
|
-
};
|
|
128
|
+
],
|
|
129
|
+
});
|
|
69
130
|
|
|
70
|
-
|
|
131
|
+
await workflow.execute("increment");
|
|
132
|
+
console.log(workflow.context.count); // 2
|
|
71
133
|
```
|
|
72
134
|
|
|
73
|
-
|
|
135
|
+
### Node Types
|
|
74
136
|
|
|
75
|
-
|
|
137
|
+
| Type | Description |
|
|
138
|
+
|------|-------------|
|
|
139
|
+
| **Sequential** | `next: "nodeName"` or `next: (ctx) => condition ? "a" : "b"` |
|
|
140
|
+
| **Parallel** | `parallel: { enabled: true, joinNode: "merge" }` — fork-join model |
|
|
141
|
+
| **Send API** | Dynamic fan-out: create N parallel branches at runtime |
|
|
142
|
+
| **Event-Driven** | `when: "event.name"` — pause and wait for external event |
|
|
76
143
|
|
|
77
|
-
|
|
78
|
-
const initialState = {};
|
|
79
|
-
await workflow.execute(initialState, "fetchContent");
|
|
80
|
-
```
|
|
144
|
+
### Checkpoints
|
|
81
145
|
|
|
82
|
-
|
|
146
|
+
Save/resume workflow state with time-travel debugging and human-in-the-loop breakpoints:
|
|
83
147
|
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
148
|
+
```typescript
|
|
149
|
+
import { InMemoryCheckpointAdapter } from "@ai.ntellect/core";
|
|
150
|
+
|
|
151
|
+
const adapter = new InMemoryCheckpointAdapter();
|
|
152
|
+
const cpId = await workflow.executeWithCheckpoint("start", adapter, {
|
|
153
|
+
breakpoints: ["approve_payment"],
|
|
154
|
+
});
|
|
155
|
+
|
|
156
|
+
// Later, resume with optional state modification:
|
|
157
|
+
await workflow.resumeFromCheckpoint(cpId, adapter, {
|
|
158
|
+
contextModifications: { status: "approved" },
|
|
159
|
+
});
|
|
88
160
|
```
|
|
89
161
|
|
|
90
|
-
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## CortexFlow — Intent Routing
|
|
165
|
+
|
|
166
|
+
CortexFlow wraps intent classification + Petri Net routing. The LLM identifies intent once; the Petri Net handles all control flow deterministically.
|
|
167
|
+
|
|
168
|
+
### Basic Usage
|
|
169
|
+
|
|
170
|
+
```typescript
|
|
171
|
+
import { CortexFlowOrchestrator, IntentClassifier } from "@ai.ntellect/core/routing/orchestrator";
|
|
172
|
+
import { ToolRegistry } from "@ai.ntellect/core";
|
|
173
|
+
import { GraphFlow } from "@ai.ntellect/core";
|
|
174
|
+
|
|
175
|
+
const llmFn = async (prompt: string) => { /* your LLM call */ };
|
|
176
|
+
const registry = new ToolRegistry();
|
|
177
|
+
const orchestrator = new CortexFlowOrchestrator("mail_assistant", registry);
|
|
178
|
+
|
|
179
|
+
const classifier = new IntentClassifier(llmFn, {
|
|
180
|
+
intents: ["FETCH_MAILS", "SUMMARIZE", "UNKNOWN"],
|
|
181
|
+
confidenceThreshold: 0.7,
|
|
182
|
+
});
|
|
183
|
+
orchestrator.setIntentClassifier(IntentClassifier.toFn(classifier), classifier);
|
|
184
|
+
orchestrator.setLLMCall(llmFn);
|
|
91
185
|
|
|
92
|
-
|
|
186
|
+
// Build Petri Net
|
|
187
|
+
const net = orchestrator.petri;
|
|
188
|
+
net.addPlace({ id: "idle", type: "initial", tokens: [{ id: "start", data: {}, createdAt: 0 }] });
|
|
189
|
+
net.addPlace({ id: "done", type: "final", tokens: [] });
|
|
190
|
+
net.addTransition({
|
|
191
|
+
id: "process_mails",
|
|
192
|
+
from: ["idle"],
|
|
193
|
+
to: "done",
|
|
194
|
+
action: { type: "graphflow", name: "mail_fetch" },
|
|
195
|
+
});
|
|
93
196
|
|
|
94
|
-
|
|
95
|
-
|
|
197
|
+
registry.register({ name: "mail_fetch", description: "...", graph: new GraphFlow({...}), startNode: "fetch" });
|
|
198
|
+
|
|
199
|
+
const sessionId = orchestrator.startSession();
|
|
200
|
+
const result = await orchestrator.orchestrate("Summarise my last 5 emails", sessionId);
|
|
96
201
|
```
|
|
97
202
|
|
|
98
|
-
|
|
203
|
+
### Key Components
|
|
204
|
+
|
|
205
|
+
| Component | Description |
|
|
206
|
+
|--------|-------------|
|
|
207
|
+
| `PetriNet` | Core Petri Net engine |
|
|
208
|
+
| `CortexFlowOrchestrator` | Intent → routing → execution |
|
|
209
|
+
| `IntentClassifier` | LLM-based intent classification |
|
|
210
|
+
| `HybridIntentClassifier` | Keyword + LLM fallback |
|
|
211
|
+
|
|
212
|
+
### Advanced Features
|
|
213
|
+
|
|
214
|
+
- **Hybrid Fallback**: Delegate to conversational LLM on low confidence
|
|
215
|
+
- **Multi-Intent**: Execute multiple intents sequentially
|
|
216
|
+
- **Formal Verification**: Deadlock detection via incidence matrices
|
|
217
|
+
- **Persistence**: Redis/PostgreSQL checkpoint adapters
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## Agent — Cognitive Loop
|
|
222
|
+
|
|
223
|
+
The `Agent` class wraps a cognitive loop (think → execute → reply) on top of GraphFlow, with LLM-driven tool selection.
|
|
224
|
+
|
|
225
|
+
```typescript
|
|
226
|
+
import { Agent, createCalculatorTool } from "@ai.ntellect/core";
|
|
227
|
+
|
|
228
|
+
const agent = new Agent({
|
|
229
|
+
role: "Math Assistant",
|
|
230
|
+
tools: [createCalculatorTool()],
|
|
231
|
+
llmConfig: {
|
|
232
|
+
provider: "groq",
|
|
233
|
+
model: "llama-3.1-8b-instant",
|
|
234
|
+
apiKey: process.env.GROQ_API_KEY,
|
|
235
|
+
},
|
|
236
|
+
});
|
|
237
|
+
|
|
238
|
+
const result = await agent.process("What is 25 + 7?");
|
|
239
|
+
```
|
|
99
240
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
241
|
+
### Cognitive Loop Components
|
|
242
|
+
|
|
243
|
+
| Component | Description |
|
|
244
|
+
|-----------|-------------|
|
|
245
|
+
| `Agent` | Public API: orchestrates the cognitive loop |
|
|
246
|
+
| `GenericExecutor` | Decision-making + action execution |
|
|
247
|
+
| `CognitiveHandler` | Context-aware goal computation and next-state routing |
|
|
248
|
+
| `LLMFactory` | Multi-provider LLM client (OpenAI, Groq, Ollama, etc.) |
|
|
249
|
+
| `PromptBuilder` | Structured prompt construction |
|
|
250
|
+
| Tools | Prebuilt agent utilities (`file-system`, `shell`, etc.) |
|
|
251
|
+
|
|
252
|
+
### Built-in Agent Tools
|
|
253
|
+
|
|
254
|
+
```typescript
|
|
255
|
+
import {
|
|
256
|
+
createFileReaderTool,
|
|
257
|
+
createFileWriterTool,
|
|
258
|
+
createShellTool,
|
|
259
|
+
createDirectoryListerTool,
|
|
260
|
+
createAllAgentTools,
|
|
261
|
+
createCalculatorTool,
|
|
262
|
+
} from "@ai.ntellect/core";
|
|
107
263
|
```
|
|
108
264
|
|
|
109
|
-
|
|
265
|
+
---
|
|
110
266
|
|
|
111
|
-
|
|
267
|
+
## AgentPipeline — Declarative Pipelines
|
|
112
268
|
|
|
113
|
-
|
|
269
|
+
Declarative pipelines with triggers, typed stages, and human gates.
|
|
114
270
|
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
271
|
+
```typescript
|
|
272
|
+
import { AgentPipeline } from "@ai.ntellect/core";
|
|
273
|
+
import { InMemoryPetriCheckpointAdapter } from "@ai.ntellect/core";
|
|
274
|
+
|
|
275
|
+
const pipeline = new AgentPipeline({
|
|
276
|
+
name: "price-monitor",
|
|
277
|
+
stages: [
|
|
278
|
+
{
|
|
279
|
+
id: "fetch",
|
|
280
|
+
run: async (ctx) => ({ data: await fetchData() }),
|
|
281
|
+
retry: { max: 3, delayMs: 1000 },
|
|
123
282
|
},
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
)
|
|
283
|
+
{
|
|
284
|
+
id: "process",
|
|
285
|
+
run: async (ctx) => ({ result: processData(ctx.data) }),
|
|
286
|
+
},
|
|
287
|
+
],
|
|
288
|
+
trigger: { type: "cron", expression: "*/5 * * * *" },
|
|
289
|
+
gate: "human",
|
|
290
|
+
checkpointAdapter: new InMemoryPetriCheckpointAdapter(),
|
|
291
|
+
});
|
|
127
292
|
|
|
128
|
-
|
|
293
|
+
await pipeline.start();
|
|
129
294
|
```
|
|
130
295
|
|
|
131
|
-
|
|
296
|
+
---
|
|
132
297
|
|
|
133
|
-
|
|
134
|
-
|
|
298
|
+
## Persistence — Memory & Checkpoints
|
|
299
|
+
|
|
300
|
+
The `persistence/` barrel provides a unified interface for storage:
|
|
301
|
+
|
|
302
|
+
```typescript
|
|
303
|
+
import {
|
|
304
|
+
Memory,
|
|
305
|
+
InMemoryCheckpointAdapter,
|
|
306
|
+
InMemoryPetriCheckpointAdapter,
|
|
307
|
+
RedisPetriCheckpointAdapter,
|
|
308
|
+
PostgresPetriCheckpointAdapter,
|
|
309
|
+
} from "@ai.ntellect/core";
|
|
135
310
|
```
|
|
136
311
|
|
|
137
|
-
###
|
|
312
|
+
### Memory
|
|
138
313
|
|
|
139
|
-
|
|
314
|
+
```typescript
|
|
315
|
+
import { Memory } from "@ai.ntellect/core";
|
|
316
|
+
import { InMemoryAdapter } from "@ai.ntellect/core/modules/memory";
|
|
140
317
|
|
|
141
|
-
|
|
142
|
-
await
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
2
|
|
146
|
-
);
|
|
318
|
+
const memory = new Memory(new InMemoryAdapter());
|
|
319
|
+
await memory.init();
|
|
320
|
+
await memory.createMemory({ content: "Hello", roomId: "default" });
|
|
321
|
+
const results = await memory.getMemoryByIndex("Hello", { roomId: "default" });
|
|
147
322
|
```
|
|
148
323
|
|
|
149
|
-
###
|
|
324
|
+
### Checkpoint Adapters
|
|
150
325
|
|
|
151
|
-
|
|
326
|
+
| Adapter | Use Case |
|
|
327
|
+
|---------|----------|
|
|
328
|
+
| `InMemoryCheckpointAdapter` | Testing / development |
|
|
329
|
+
| `InMemoryPetriCheckpointAdapter` | PetriNet checkpoint testing |
|
|
330
|
+
| `RedisPetriCheckpointAdapter` | Distributed / production |
|
|
331
|
+
| `PostgresPetriCheckpointAdapter` | SQL-backed persistence |
|
|
332
|
+
| `Neo4jPetriCheckpointAdapter` | Graph-backed persistence |
|
|
152
333
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
)
|
|
334
|
+
### Graph Observability & Persistence (Neo4j)
|
|
335
|
+
|
|
336
|
+
Because the framework relies on explicit routing (Petri Nets) and state machines (GraphFlow), **Neo4j** is supported as a first-class citizen. It allows you to visually audit execution traces, map long-term memory relations, and persist agent entity resolutions without polluting your business logic.
|
|
337
|
+
|
|
338
|
+
```typescript
|
|
339
|
+
import {
|
|
340
|
+
createDriver,
|
|
341
|
+
Neo4jMemoryAdapter,
|
|
342
|
+
Neo4jExecutionTracer,
|
|
343
|
+
Neo4jEntityStore
|
|
344
|
+
} from "@ai.ntellect/core/persistence";
|
|
345
|
+
|
|
346
|
+
const { driver } = await createDriver({ url: "bolt://localhost:7687", username: "neo4j", password: "password" });
|
|
347
|
+
|
|
348
|
+
// 1. Graph Memory (Semantic & Relational)
|
|
349
|
+
const memoryAdapter = new Neo4jMemoryAdapter(driver);
|
|
350
|
+
await memoryAdapter.addRelation({ fromId: "mem-1", toId: "mem-2", type: "RELATES_TO", roomId: "user-1" });
|
|
351
|
+
|
|
352
|
+
// 2. Visual Execution Tracing (Zero-invasion event listener)
|
|
353
|
+
const tracer = Neo4jExecutionTracer.attach(workflow, driver, "exec-123");
|
|
354
|
+
// Visually query in Neo4j Browser: MATCH path=(e:Execution)-[:HAS_RUN]->(n:NodeRun) RETURN path
|
|
355
|
+
|
|
356
|
+
// 3. Persistent Entity Resolution
|
|
357
|
+
const entityStore = new Neo4jEntityStore(driver);
|
|
358
|
+
await entityStore.recordResolution("ent-1", "find user intent", 0.95);
|
|
168
359
|
```
|
|
169
360
|
|
|
170
|
-
|
|
361
|
+
---
|
|
171
362
|
|
|
172
|
-
|
|
363
|
+
## Planner & Compiler
|
|
173
364
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
console.log("Executing sub-workflow.");
|
|
182
|
-
return state;
|
|
183
|
-
},
|
|
184
|
-
},
|
|
185
|
-
},
|
|
186
|
-
};
|
|
365
|
+
For advanced workflows, the LLM generates a Zod-validated JSON plan that is compiled into a deterministic GraphFlow at runtime.
|
|
366
|
+
|
|
367
|
+
```typescript
|
|
368
|
+
import { Planner, Compiler } from "@ai.ntellect/core";
|
|
369
|
+
|
|
370
|
+
const planner = new Planner(llmFn);
|
|
371
|
+
const plan = await planner.createPlan("Send 0.5 ETH to Alice after checking balance");
|
|
187
372
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
373
|
+
const compiler = new Compiler();
|
|
374
|
+
const workflow = compiler.compile(plan);
|
|
375
|
+
|
|
376
|
+
await workflow.execute("start");
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
---
|
|
380
|
+
|
|
381
|
+
## CLI (Interactive REPL)
|
|
382
|
+
|
|
383
|
+
```sh
|
|
384
|
+
pnpm cli -p groq -m llama-3.1-8b-instant
|
|
385
|
+
pnpm cli -p openai -m gpt-4o-mini
|
|
386
|
+
pnpm cli -p ollama -m llama3
|
|
193
387
|
```
|
|
388
|
+
|
|
389
|
+
**Slash commands**: `/status`, `/history`, `/list`, `/resume [cpId]`, `/approve`, `/reject`, `/modify k=v`, `/clear`, `/help`.
|
|
390
|
+
|
|
391
|
+
The CLI automatically loads API keys from `.env` (`GROQ_API_KEY`, `OPENAI_API_KEY`, `OPENROUTER_API_KEY`, `GOOGLE_API_KEY`).
|
|
392
|
+
|
|
393
|
+
---
|
|
394
|
+
|
|
395
|
+
## GraphController
|
|
396
|
+
|
|
397
|
+
Orchestrate multiple GraphFlows in parallel or sequence:
|
|
398
|
+
|
|
399
|
+
```typescript
|
|
400
|
+
import { GraphController } from "@ai.ntellect/core";
|
|
401
|
+
|
|
402
|
+
const controller = new GraphController();
|
|
403
|
+
controller.add("workflow_a", graphA);
|
|
404
|
+
controller.add("workflow_b", graphB);
|
|
405
|
+
|
|
406
|
+
await controller.parallel("workflow_a", "workflow_b");
|
|
407
|
+
await controller.sequential("workflow_a", "workflow_b");
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
---
|
|
411
|
+
|
|
412
|
+
## License
|
|
413
|
+
|
|
414
|
+
MIT
|