@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.
Files changed (435) hide show
  1. package/.mocharc.json +6 -0
  2. package/AGENTS.md +50 -0
  3. package/ARCHITECTURE.md +58 -0
  4. package/BENCHMARK.md +38 -0
  5. package/CHANGELOG.md +224 -0
  6. package/README.md +363 -142
  7. package/agent/agent-workflow.ts +569 -0
  8. package/agent/agent.ts +183 -0
  9. package/agent/base/executor.ts +103 -0
  10. package/agent/base/index.ts +87 -0
  11. package/agent/entity-resolver/confidence.ts +54 -0
  12. package/agent/entity-resolver/entity-index.ts +241 -0
  13. package/agent/entity-resolver/explore-strategy.ts +82 -0
  14. package/agent/entity-resolver/index.ts +22 -0
  15. package/agent/entity-resolver/resolver.ts +193 -0
  16. package/agent/entity-resolver/scorer.ts +211 -0
  17. package/agent/entity-resolver/types.ts +98 -0
  18. package/agent/generic-executor.ts +713 -0
  19. package/agent/handlers/cognitive-handler.ts +197 -0
  20. package/agent/handlers/index.ts +1 -0
  21. package/agent/handoff.ts +58 -0
  22. package/agent/llm-factory.ts +343 -0
  23. package/agent/orchestrator.ts +45 -0
  24. package/agent/prompt-builder.ts +78 -0
  25. package/agent/registry.ts +64 -0
  26. package/agent/tools/file-system.ts +471 -0
  27. package/agent/tools/index.ts +23 -0
  28. package/agent/tools/logger.ts +105 -0
  29. package/agent/tools/tool-resolver.ts +104 -0
  30. package/benchmark/cortexflow-workflow.ts +182 -0
  31. package/benchmark/langgraph-workflow.ts +201 -0
  32. package/benchmark/llm-client.ts +76 -0
  33. package/benchmark/run-benchmark.ts +222 -0
  34. package/cli-dev.ts +419 -0
  35. package/dist/agent/agent-workflow.d.ts +41 -0
  36. package/dist/agent/agent-workflow.d.ts.map +1 -0
  37. package/dist/agent/agent-workflow.js +560 -0
  38. package/dist/agent/agent-workflow.js.map +1 -0
  39. package/dist/agent/agent.d.ts +38 -0
  40. package/dist/agent/agent.d.ts.map +1 -0
  41. package/dist/agent/agent.js +149 -0
  42. package/dist/agent/agent.js.map +1 -0
  43. package/dist/agent/base/executor.d.ts +51 -0
  44. package/dist/agent/base/executor.d.ts.map +1 -0
  45. package/dist/agent/base/executor.js +69 -0
  46. package/dist/agent/base/executor.js.map +1 -0
  47. package/dist/agent/base/index.d.ts +30 -0
  48. package/dist/agent/base/index.d.ts.map +1 -0
  49. package/dist/agent/base/index.js +88 -0
  50. package/dist/agent/base/index.js.map +1 -0
  51. package/dist/agent/entity-resolver/confidence.d.ts +4 -0
  52. package/dist/agent/entity-resolver/confidence.d.ts.map +1 -0
  53. package/dist/agent/entity-resolver/confidence.js +47 -0
  54. package/dist/agent/entity-resolver/confidence.js.map +1 -0
  55. package/dist/agent/entity-resolver/entity-index.d.ts +40 -0
  56. package/dist/agent/entity-resolver/entity-index.d.ts.map +1 -0
  57. package/dist/agent/entity-resolver/entity-index.js +244 -0
  58. package/dist/agent/entity-resolver/entity-index.js.map +1 -0
  59. package/dist/agent/entity-resolver/explore-strategy.d.ts +13 -0
  60. package/dist/agent/entity-resolver/explore-strategy.d.ts.map +1 -0
  61. package/dist/agent/entity-resolver/explore-strategy.js +109 -0
  62. package/dist/agent/entity-resolver/explore-strategy.js.map +1 -0
  63. package/dist/agent/entity-resolver/index.d.ts +8 -0
  64. package/dist/agent/entity-resolver/index.d.ts.map +1 -0
  65. package/dist/agent/entity-resolver/index.js +16 -0
  66. package/dist/agent/entity-resolver/index.js.map +1 -0
  67. package/dist/agent/entity-resolver/resolver.d.ts +18 -0
  68. package/dist/agent/entity-resolver/resolver.d.ts.map +1 -0
  69. package/dist/agent/entity-resolver/resolver.js +158 -0
  70. package/dist/agent/entity-resolver/resolver.js.map +1 -0
  71. package/dist/agent/entity-resolver/scorer.d.ts +3 -0
  72. package/dist/agent/entity-resolver/scorer.d.ts.map +1 -0
  73. package/dist/agent/entity-resolver/scorer.js +182 -0
  74. package/dist/agent/entity-resolver/scorer.js.map +1 -0
  75. package/dist/agent/entity-resolver/types.d.ts +89 -0
  76. package/dist/agent/entity-resolver/types.d.ts.map +1 -0
  77. package/dist/agent/entity-resolver/types.js +3 -0
  78. package/dist/agent/entity-resolver/types.js.map +1 -0
  79. package/dist/agent/generic-executor.d.ts +68 -0
  80. package/dist/agent/generic-executor.d.ts.map +1 -0
  81. package/dist/agent/generic-executor.js +620 -0
  82. package/dist/agent/generic-executor.js.map +1 -0
  83. package/dist/agent/handlers/cognitive-handler.d.ts +44 -0
  84. package/dist/agent/handlers/cognitive-handler.d.ts.map +1 -0
  85. package/dist/agent/handlers/cognitive-handler.js +172 -0
  86. package/dist/agent/handlers/cognitive-handler.js.map +1 -0
  87. package/dist/agent/handlers/index.d.ts +2 -0
  88. package/dist/agent/handlers/index.d.ts.map +1 -0
  89. package/dist/agent/handlers/index.js +7 -0
  90. package/dist/agent/handlers/index.js.map +1 -0
  91. package/dist/agent/handoff.d.ts +12 -0
  92. package/dist/agent/handoff.d.ts.map +1 -0
  93. package/dist/agent/handoff.js +62 -0
  94. package/dist/agent/handoff.js.map +1 -0
  95. package/dist/agent/llm-factory.d.ts +19 -0
  96. package/dist/agent/llm-factory.d.ts.map +1 -0
  97. package/dist/agent/llm-factory.js +297 -0
  98. package/dist/agent/llm-factory.js.map +1 -0
  99. package/dist/agent/orchestrator.d.ts +18 -0
  100. package/dist/agent/orchestrator.d.ts.map +1 -0
  101. package/dist/agent/orchestrator.js +44 -0
  102. package/dist/agent/orchestrator.js.map +1 -0
  103. package/dist/agent/prompt-builder.d.ts +35 -0
  104. package/dist/agent/prompt-builder.d.ts.map +1 -0
  105. package/dist/agent/prompt-builder.js +76 -0
  106. package/dist/agent/prompt-builder.js.map +1 -0
  107. package/dist/agent/registry.d.ts +19 -0
  108. package/dist/agent/registry.d.ts.map +1 -0
  109. package/dist/agent/registry.js +48 -0
  110. package/dist/agent/registry.js.map +1 -0
  111. package/dist/agent/tools/file-system.d.ts +11 -0
  112. package/dist/agent/tools/file-system.d.ts.map +1 -0
  113. package/dist/agent/tools/file-system.js +528 -0
  114. package/dist/agent/tools/file-system.js.map +1 -0
  115. package/dist/agent/tools/index.d.ts +4 -0
  116. package/dist/agent/tools/index.d.ts.map +1 -0
  117. package/dist/agent/tools/index.js +20 -0
  118. package/dist/agent/tools/index.js.map +1 -0
  119. package/dist/agent/tools/logger.d.ts +33 -0
  120. package/dist/agent/tools/logger.d.ts.map +1 -0
  121. package/dist/agent/tools/logger.js +86 -0
  122. package/dist/agent/tools/logger.js.map +1 -0
  123. package/dist/agent/tools/tool-resolver.d.ts +7 -0
  124. package/dist/agent/tools/tool-resolver.d.ts.map +1 -0
  125. package/dist/agent/tools/tool-resolver.js +122 -0
  126. package/dist/agent/tools/tool-resolver.js.map +1 -0
  127. package/dist/execution/adapters/in-memory-checkpoint.d.ts +11 -0
  128. package/dist/execution/adapters/in-memory-checkpoint.d.ts.map +1 -0
  129. package/dist/execution/adapters/in-memory-checkpoint.js +54 -0
  130. package/dist/execution/adapters/in-memory-checkpoint.js.map +1 -0
  131. package/dist/execution/compiler.d.ts +8 -0
  132. package/dist/execution/compiler.d.ts.map +1 -0
  133. package/dist/execution/compiler.js +50 -0
  134. package/dist/execution/compiler.js.map +1 -0
  135. package/dist/execution/controller.d.ts +30 -0
  136. package/dist/execution/controller.d.ts.map +1 -0
  137. package/dist/execution/controller.js +80 -0
  138. package/dist/execution/controller.js.map +1 -0
  139. package/dist/execution/event-manager.d.ts +29 -0
  140. package/dist/execution/event-manager.d.ts.map +1 -0
  141. package/dist/execution/event-manager.js +264 -0
  142. package/dist/execution/event-manager.js.map +1 -0
  143. package/dist/execution/index.d.ts +221 -0
  144. package/dist/execution/index.d.ts.map +1 -0
  145. package/dist/execution/index.js +638 -0
  146. package/dist/execution/index.js.map +1 -0
  147. package/dist/execution/logger.d.ts +46 -0
  148. package/dist/execution/logger.d.ts.map +1 -0
  149. package/dist/execution/logger.js +69 -0
  150. package/dist/execution/logger.js.map +1 -0
  151. package/dist/execution/node.d.ts +65 -0
  152. package/dist/execution/node.d.ts.map +1 -0
  153. package/dist/execution/node.js +250 -0
  154. package/dist/execution/node.js.map +1 -0
  155. package/dist/execution/observer.d.ts +38 -0
  156. package/dist/execution/observer.d.ts.map +1 -0
  157. package/dist/execution/observer.js +111 -0
  158. package/dist/execution/observer.js.map +1 -0
  159. package/dist/execution/planner.d.ts +14 -0
  160. package/dist/execution/planner.d.ts.map +1 -0
  161. package/dist/execution/planner.js +43 -0
  162. package/dist/execution/planner.js.map +1 -0
  163. package/dist/execution/reducer.d.ts +19 -0
  164. package/dist/execution/reducer.d.ts.map +1 -0
  165. package/dist/execution/reducer.js +61 -0
  166. package/dist/execution/reducer.js.map +1 -0
  167. package/dist/execution/registry.d.ts +38 -0
  168. package/dist/execution/registry.d.ts.map +1 -0
  169. package/dist/execution/registry.js +63 -0
  170. package/dist/execution/registry.js.map +1 -0
  171. package/dist/execution/send-api.d.ts +24 -0
  172. package/dist/execution/send-api.d.ts.map +1 -0
  173. package/dist/execution/send-api.js +52 -0
  174. package/dist/execution/send-api.js.map +1 -0
  175. package/dist/execution/types.parallel.d.ts +61 -0
  176. package/dist/execution/types.parallel.d.ts.map +1 -0
  177. package/dist/execution/types.parallel.js +3 -0
  178. package/dist/execution/types.parallel.js.map +1 -0
  179. package/dist/execution/visualizer.d.ts +35 -0
  180. package/dist/execution/visualizer.d.ts.map +1 -0
  181. package/dist/execution/visualizer.js +131 -0
  182. package/dist/execution/visualizer.js.map +1 -0
  183. package/dist/index.d.ts +47 -0
  184. package/dist/index.d.ts.map +1 -0
  185. package/dist/index.js +78 -0
  186. package/dist/index.js.map +1 -0
  187. package/dist/interfaces/index.d.ts +487 -0
  188. package/dist/interfaces/index.d.ts.map +1 -0
  189. package/dist/interfaces/index.js +75 -0
  190. package/dist/interfaces/index.js.map +1 -0
  191. package/dist/modules/agenda/adapters/node-cron/index.d.ts +17 -0
  192. package/dist/modules/agenda/adapters/node-cron/index.d.ts.map +1 -0
  193. package/dist/modules/agenda/adapters/node-cron/index.js +30 -0
  194. package/dist/modules/agenda/adapters/node-cron/index.js.map +1 -0
  195. package/dist/modules/agenda/index.d.ts +63 -0
  196. package/dist/modules/agenda/index.d.ts.map +1 -0
  197. package/dist/modules/agenda/index.js +141 -0
  198. package/dist/modules/agenda/index.js.map +1 -0
  199. package/dist/modules/cli/index.d.ts +13 -0
  200. package/dist/modules/cli/index.d.ts.map +1 -0
  201. package/dist/modules/cli/index.js +672 -0
  202. package/dist/modules/cli/index.js.map +1 -0
  203. package/dist/modules/embedding/adapters/ai/index.d.ts +29 -0
  204. package/dist/modules/embedding/adapters/ai/index.d.ts.map +1 -0
  205. package/dist/modules/embedding/adapters/ai/index.js +58 -0
  206. package/dist/modules/embedding/adapters/ai/index.js.map +1 -0
  207. package/dist/modules/embedding/index.d.ts +36 -0
  208. package/dist/modules/embedding/index.d.ts.map +1 -0
  209. package/dist/modules/embedding/index.js +60 -0
  210. package/dist/modules/embedding/index.js.map +1 -0
  211. package/dist/modules/nlp/engine.d.ts +126 -0
  212. package/dist/modules/nlp/engine.d.ts.map +1 -0
  213. package/dist/modules/nlp/engine.js +299 -0
  214. package/dist/modules/nlp/engine.js.map +1 -0
  215. package/dist/modules/nlp/index.d.ts +27 -0
  216. package/dist/modules/nlp/index.d.ts.map +1 -0
  217. package/dist/modules/nlp/index.js +56 -0
  218. package/dist/modules/nlp/index.js.map +1 -0
  219. package/dist/persistence/index.d.ts +12 -0
  220. package/dist/persistence/index.d.ts.map +1 -0
  221. package/dist/persistence/index.js +24 -0
  222. package/dist/persistence/index.js.map +1 -0
  223. package/dist/persistence/neo4j/driver.d.ts +26 -0
  224. package/dist/persistence/neo4j/driver.d.ts.map +1 -0
  225. package/dist/persistence/neo4j/driver.js +64 -0
  226. package/dist/persistence/neo4j/driver.js.map +1 -0
  227. package/dist/persistence/neo4j/entity-store.d.ts +15 -0
  228. package/dist/persistence/neo4j/entity-store.d.ts.map +1 -0
  229. package/dist/persistence/neo4j/entity-store.js +136 -0
  230. package/dist/persistence/neo4j/entity-store.js.map +1 -0
  231. package/dist/persistence/neo4j/execution-tracer.d.ts +19 -0
  232. package/dist/persistence/neo4j/execution-tracer.d.ts.map +1 -0
  233. package/dist/persistence/neo4j/execution-tracer.js +166 -0
  234. package/dist/persistence/neo4j/execution-tracer.js.map +1 -0
  235. package/dist/persistence/neo4j/memory-adapter.d.ts +35 -0
  236. package/dist/persistence/neo4j/memory-adapter.d.ts.map +1 -0
  237. package/dist/persistence/neo4j/memory-adapter.js +252 -0
  238. package/dist/persistence/neo4j/memory-adapter.js.map +1 -0
  239. package/dist/persistence/neo4j/petri-checkpoint-adapter.d.ts +22 -0
  240. package/dist/persistence/neo4j/petri-checkpoint-adapter.d.ts.map +1 -0
  241. package/dist/persistence/neo4j/petri-checkpoint-adapter.js +141 -0
  242. package/dist/persistence/neo4j/petri-checkpoint-adapter.js.map +1 -0
  243. package/dist/pipeline/agent-pipeline.d.ts +99 -0
  244. package/dist/pipeline/agent-pipeline.d.ts.map +1 -0
  245. package/dist/pipeline/agent-pipeline.js +356 -0
  246. package/dist/pipeline/agent-pipeline.js.map +1 -0
  247. package/dist/routing/checkpoint-adapter.d.ts +30 -0
  248. package/dist/routing/checkpoint-adapter.d.ts.map +1 -0
  249. package/dist/routing/checkpoint-adapter.js +83 -0
  250. package/dist/routing/checkpoint-adapter.js.map +1 -0
  251. package/dist/routing/documentation-generator.d.ts +47 -0
  252. package/dist/routing/documentation-generator.d.ts.map +1 -0
  253. package/dist/routing/documentation-generator.js +320 -0
  254. package/dist/routing/documentation-generator.js.map +1 -0
  255. package/dist/routing/index.d.ts +38 -0
  256. package/dist/routing/index.d.ts.map +1 -0
  257. package/dist/routing/index.js +375 -0
  258. package/dist/routing/index.js.map +1 -0
  259. package/dist/routing/intent-classifier.d.ts +206 -0
  260. package/dist/routing/intent-classifier.d.ts.map +1 -0
  261. package/dist/routing/intent-classifier.js +267 -0
  262. package/dist/routing/intent-classifier.js.map +1 -0
  263. package/dist/routing/matrix.d.ts +6 -0
  264. package/dist/routing/matrix.d.ts.map +1 -0
  265. package/dist/routing/matrix.js +131 -0
  266. package/dist/routing/matrix.js.map +1 -0
  267. package/dist/routing/orchestrator.d.ts +87 -0
  268. package/dist/routing/orchestrator.d.ts.map +1 -0
  269. package/dist/routing/orchestrator.js +425 -0
  270. package/dist/routing/orchestrator.js.map +1 -0
  271. package/dist/routing/postgres-checkpoint-adapter.d.ts +32 -0
  272. package/dist/routing/postgres-checkpoint-adapter.d.ts.map +1 -0
  273. package/dist/routing/postgres-checkpoint-adapter.js +167 -0
  274. package/dist/routing/postgres-checkpoint-adapter.js.map +1 -0
  275. package/dist/routing/redis-checkpoint-adapter.d.ts +34 -0
  276. package/dist/routing/redis-checkpoint-adapter.d.ts.map +1 -0
  277. package/dist/routing/redis-checkpoint-adapter.js +170 -0
  278. package/dist/routing/redis-checkpoint-adapter.js.map +1 -0
  279. package/dist/routing/types.d.ts +49 -0
  280. package/dist/routing/types.d.ts.map +1 -0
  281. package/dist/routing/types.js +3 -0
  282. package/dist/routing/types.js.map +1 -0
  283. package/dist/types/agent.d.ts +289 -0
  284. package/dist/types/agent.d.ts.map +1 -0
  285. package/dist/types/agent.js +78 -0
  286. package/dist/types/agent.js.map +1 -0
  287. package/dist/types/index.d.ts +343 -0
  288. package/dist/types/index.d.ts.map +1 -0
  289. package/dist/types/index.js +3 -0
  290. package/dist/types/index.js.map +1 -0
  291. package/dist/utils/generate-action-schema.d.ts +4 -0
  292. package/dist/utils/generate-action-schema.d.ts.map +1 -0
  293. package/dist/utils/generate-action-schema.js +46 -0
  294. package/dist/utils/generate-action-schema.js.map +1 -0
  295. package/dist/utils/header-builder.d.ts +12 -0
  296. package/dist/utils/header-builder.d.ts.map +1 -0
  297. package/dist/utils/header-builder.js +35 -0
  298. package/dist/utils/header-builder.js.map +1 -0
  299. package/dist/utils/logger.d.ts +27 -0
  300. package/dist/utils/logger.d.ts.map +1 -0
  301. package/dist/utils/logger.js +45 -0
  302. package/dist/utils/logger.js.map +1 -0
  303. package/docs/.gitbook/assets/image (1).png +0 -0
  304. package/docs/.gitbook/assets/image (2).png +0 -0
  305. package/docs/.gitbook/assets/image (3).png +0 -0
  306. package/docs/.gitbook/assets/image (4).png +0 -0
  307. package/docs/.gitbook/assets/image (5).png +0 -0
  308. package/docs/.gitbook/assets/image (6).png +0 -0
  309. package/docs/.gitbook/assets/image.png +0 -0
  310. package/docs/README.md +57 -0
  311. package/docs/SUMMARY.md +34 -0
  312. package/docs/cas-dusages.md +69 -0
  313. package/docs/cli/README.md +65 -0
  314. package/docs/concepts-cles.md +50 -0
  315. package/docs/core/architecture.md +87 -0
  316. package/docs/core/benchmark.md +59 -0
  317. package/docs/core/checkpoint.md +72 -0
  318. package/docs/core/documentation.md +55 -0
  319. package/docs/core/graphcontroller.md +63 -0
  320. package/docs/core/graphflow.md +137 -0
  321. package/docs/core/introduction.md +41 -0
  322. package/docs/core/les-evenements.md +95 -0
  323. package/docs/modules/agenda/README.md +63 -0
  324. package/docs/modules/agenda/interface-iagenda.md +170 -0
  325. package/docs/modules/agenda/les-adaptateurs/README.md +237 -0
  326. package/docs/modules/agenda/les-adaptateurs/nodecronadapter.md +91 -0
  327. package/docs/modules/introduction.md +55 -0
  328. package/docs/modules/les-adaptateurs.md +52 -0
  329. package/docs/modules/memoire/README.md +68 -0
  330. package/docs/modules/memoire/interface-imemory.md +183 -0
  331. package/docs/modules/memoire/les-adaptateurs/README.md +209 -0
  332. package/docs/modules/memoire/les-adaptateurs/inmemoryadapter.md +110 -0
  333. package/docs/modules/memoire/les-adaptateurs/meilisearchadapter.md +147 -0
  334. package/docs/modules/memoire/les-adaptateurs/redisadapter.md +212 -0
  335. package/docs/modules/nlp/README.md +44 -0
  336. package/docs/philosophie.md +51 -0
  337. package/docs/tutoriels/ajouter-des-conditions.md +150 -0
  338. package/docs/tutoriels/branching.md +194 -0
  339. package/docs/tutoriels/checkpoint-usage.md +99 -0
  340. package/docs/tutoriels/creer-agent-onchain.md +1041 -0
  341. package/docs/tutoriels/creer-un-agent.md +108 -0
  342. package/docs/tutoriels/creer-un-graphe-simple.md +92 -0
  343. package/docs/tutoriels/gerer-les-erreurs.md +124 -0
  344. package/docs/tutoriels/pour-commencer.md +73 -0
  345. package/docs/tutoriels/retry.md +166 -0
  346. package/execution/adapters/in-memory-checkpoint.ts +35 -0
  347. package/execution/compiler.ts +47 -0
  348. package/execution/controller.ts +84 -0
  349. package/execution/event-manager.ts +331 -0
  350. package/execution/index.ts +800 -0
  351. package/execution/logger.ts +70 -0
  352. package/execution/node.ts +315 -0
  353. package/execution/observer.ts +192 -0
  354. package/execution/planner.ts +40 -0
  355. package/execution/reducer.ts +73 -0
  356. package/execution/registry.ts +86 -0
  357. package/execution/send-api.ts +58 -0
  358. package/execution/types.parallel.ts +81 -0
  359. package/execution/visualizer.ts +158 -0
  360. package/index.ts +55 -465
  361. package/interfaces/index.ts +597 -0
  362. package/modules/agenda/adapters/node-cron/index.ts +25 -0
  363. package/modules/agenda/index.ts +146 -0
  364. package/modules/cli/index.ts +580 -0
  365. package/modules/embedding/adapters/ai/index.ts +42 -0
  366. package/modules/embedding/index.ts +45 -0
  367. package/modules/nlp/engine.ts +324 -0
  368. package/modules/nlp/index.ts +45 -0
  369. package/package.json +81 -9
  370. package/persistence/index.ts +27 -0
  371. package/persistence/neo4j/driver.ts +34 -0
  372. package/persistence/neo4j/entity-store.ts +141 -0
  373. package/persistence/neo4j/execution-tracer.ts +194 -0
  374. package/persistence/neo4j/memory-adapter.ts +281 -0
  375. package/persistence/neo4j/petri-checkpoint-adapter.ts +153 -0
  376. package/pipeline/agent-pipeline.ts +426 -0
  377. package/routing/checkpoint-adapter.ts +79 -0
  378. package/routing/documentation-generator.ts +358 -0
  379. package/routing/index.ts +459 -0
  380. package/routing/intent-classifier.ts +360 -0
  381. package/routing/matrix.ts +138 -0
  382. package/routing/orchestrator.ts +498 -0
  383. package/routing/patterns/data-extraction.json +79 -0
  384. package/routing/patterns/human-approval.json +64 -0
  385. package/routing/patterns/rag-search.json +68 -0
  386. package/routing/postgres-checkpoint-adapter.ts +172 -0
  387. package/routing/redis-checkpoint-adapter.ts +187 -0
  388. package/routing/types.ts +59 -0
  389. package/routing/web-server.ts +260 -0
  390. package/scripts/generate-petri-docs.ts +70 -0
  391. package/scripts/get-gmail-token.js +65 -0
  392. package/scripts/get-gmail-token.ts +65 -0
  393. package/test/agent/agent.test.ts +92 -0
  394. package/test/agent/clone.test.ts +143 -0
  395. package/test/agent/cognitive-handler.test.ts +78 -0
  396. package/test/agent/entity-store.test.ts +80 -0
  397. package/test/agent/generic-executor.test.ts +230 -0
  398. package/test/agent/handoff.test.ts +163 -0
  399. package/test/agent/llm-factory.test.ts +40 -0
  400. package/test/agent/orchestrator.test.ts +156 -0
  401. package/test/agent/registry.test.ts +97 -0
  402. package/test/agent/tools.test.ts +267 -0
  403. package/test/execution/checkpoint.test.ts +811 -0
  404. package/test/execution/controller.test.ts +236 -0
  405. package/test/execution/event-manager.test.ts +118 -0
  406. package/test/execution/index.test.ts +690 -0
  407. package/test/execution/node.test.ts +464 -0
  408. package/test/execution/observer.test.ts +393 -0
  409. package/test/execution/parallel.test.ts +135 -0
  410. package/test/execution/plan-llm-integration.test.ts +290 -0
  411. package/test/execution/plan-real-onchain.test.ts +226 -0
  412. package/test/execution/send-api.test.ts +121 -0
  413. package/test/modules/agenda/node-cron.test.ts +307 -0
  414. package/test/modules/cli/index.test.ts +125 -0
  415. package/test/persistence/neo4j-execution-tracer.test.ts +96 -0
  416. package/test/persistence/neo4j-memory-adapter.test.ts +107 -0
  417. package/test/persistence/neo4j-petri-checkpoint.test.ts +89 -0
  418. package/test/pipeline/agent-pipeline.test.ts +118 -0
  419. package/test/routing/checkpoint-persistence.test.ts +58 -0
  420. package/test/routing/documentation-generator.test.ts +76 -0
  421. package/test/routing/integration.test.ts +261 -0
  422. package/test/routing/intent-classifier.test.ts +102 -0
  423. package/test/routing/petri.test.ts +156 -0
  424. package/test/routing/real-llm.test.ts +260 -0
  425. package/test-petri-features.ts +218 -0
  426. package/test-pipeline-api.ts +163 -0
  427. package/tsconfig.json +30 -108
  428. package/types/agent.ts +296 -0
  429. package/types/index.ts +387 -0
  430. package/utils/generate-action-schema.ts +47 -0
  431. package/utils/header-builder.ts +40 -0
  432. package/utils/logger.ts +40 -0
  433. package/package copy.json +0 -21
  434. package/types.ts +0 -62
  435. package/utils/executor.ts +0 -42
package/README.md CHANGED
@@ -1,193 +1,414 @@
1
- # @ai.ntellect/workflow
1
+ # @ai.ntellect/core
2
2
 
3
- The **@ai.ntellect/workflow** package is a robust framework for managing and executing workflows, supporting dynamic decision-making, conditional paths, event-driven execution, and state persistence.
3
+ **Stop your AI agents from going off-rails in production.**
4
4
 
5
- ## Features
5
+ *LLMs generate. You control.*
6
6
 
7
- - **Dynamic Workflow Execution:** Manage workflows with complex branching and parallel paths.
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
- ## Installation
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
- Install the package via npm:
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
- Import the `Workflow` class:
65
+ ## Installation
22
66
 
23
- ```javascript
24
- import { Workflow } from "@ai.ntellect/workflow";
67
+ ```sh
68
+ pnpm add @ai.ntellect/core zod
25
69
  ```
26
70
 
27
- ## Creating a content pipeline workflow
28
-
29
- Here is an example of creating a workflow to manage a content pipeline:
30
-
31
- ```javascript
32
- import { Workflow } from "@ai.ntellect/workflow";
33
-
34
- const contentPipelineDefinition = {
35
- name: "ContentPipeline",
36
- entryNode: "fetchContent",
37
- nodes: {
38
- fetchContent: {
39
- name: "fetchContent",
40
- description: "Fetch content from external APIs",
41
- execute: async (state) => {
42
- console.log("Fetching content...");
43
- state.content = ["Article1", "Article2"];
44
- return state;
45
- },
46
- next: ["processContent"],
47
- },
48
- processContent: {
49
- name: "processContent",
50
- description: "Process and analyze content",
51
- execute: async (state) => {
52
- console.log("Processing content:", state.content);
53
- state.processedContent = state.content.map((c) => c.toUpperCase());
54
- return state;
55
- },
56
- next: ["publishContent"],
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
- publishContent: {
59
- name: "publishContent",
60
- description: "Publish processed content",
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
- const workflow = new Workflow(contentPipelineDefinition);
131
+ await workflow.execute("increment");
132
+ console.log(workflow.context.count); // 2
71
133
  ```
72
134
 
73
- ## Executing the workflow
135
+ ### Node Types
74
136
 
75
- Run the content pipeline workflow with an initial state:
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
- ```javascript
78
- const initialState = {};
79
- await workflow.execute(initialState, "fetchContent");
80
- ```
144
+ ### Checkpoints
81
145
 
82
- Example output:
146
+ Save/resume workflow state with time-travel debugging and human-in-the-loop breakpoints:
83
147
 
84
- ```text
85
- Fetching content...
86
- Processing content: [ 'Article1', 'Article2' ]
87
- Publishing content: [ 'ARTICLE1', 'ARTICLE2' ]
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
- ## Visualizing the workflow
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
- Generate a visual representation of the content pipeline workflow:
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
- ```javascript
95
- workflow.visualize("Content Pipeline Workflow");
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
- Output example:
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
- ```mermaid
101
- workflow TD
102
- fetchContent[Fetch Content]
103
- processContent[Process Content]
104
- publishContent[Publish Content]
105
- fetchContent --> processContent
106
- processContent --> publishContent
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
- ## Advanced features
265
+ ---
110
266
 
111
- ### Event-driven execution
267
+ ## AgentPipeline — Declarative Pipelines
112
268
 
113
- Add event-driven nodes to the workflow:
269
+ Declarative pipelines with triggers, typed stages, and human gates.
114
270
 
115
- ```javascript
116
- workflow.addNode(
117
- {
118
- name: "eventDrivenNode",
119
- description: "Node triggered by a custom event",
120
- execute: async (state) => {
121
- console.log("Custom event processed.");
122
- return state;
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
- { events: ["customEvent"] }
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
- workflow.emit("customEvent", { state: { exampleKey: "exampleValue" } });
293
+ await pipeline.start();
129
294
  ```
130
295
 
131
- Example output:
296
+ ---
132
297
 
133
- ```text
134
- Custom event processed.
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
- ### Parallel execution
312
+ ### Memory
138
313
 
139
- Execute multiple nodes concurrently:
314
+ ```typescript
315
+ import { Memory } from "@ai.ntellect/core";
316
+ import { InMemoryAdapter } from "@ai.ntellect/core/modules/memory";
140
317
 
141
- ```javascript
142
- await workflow.executeParallel(
143
- { data: "Parallel Execution" },
144
- ["nodeA", "nodeB"],
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
- ### Conditional logic
324
+ ### Checkpoint Adapters
150
325
 
151
- Add conditional nodes to control the workflow path:
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
- ```javascript
154
- workflow.addNode(
155
- {
156
- name: "conditionalNode",
157
- description: "Node executed conditionally",
158
- execute: async (state) => {
159
- console.log("Condition met, executing node...");
160
- return state;
161
- },
162
- },
163
- {
164
- condition: (state) => state.content && state.content.length > 0,
165
- next: ["publishContent"],
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
- ### Sub-workflows
361
+ ---
171
362
 
172
- Embed sub-workflows for modularity:
363
+ ## Planner & Compiler
173
364
 
174
- ```javascript
175
- const subWorkflowDefinition = {
176
- name: "SubWorkflow",
177
- nodes: {
178
- subNode: {
179
- name: "subNode",
180
- execute: async (state) => {
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
- workflow.addSubWorkflow(
189
- new Workflow(subWorkflowDefinition),
190
- "subNode",
191
- "processContent"
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