@ai.ntellect/core 1.0.0 → 1.1.0

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 +411 -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
@@ -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":";;;;;;;;;;;;AAKA,yCAAqC;AACrC,uCAA0C;AAuB1C,MAAa,SAAS;IAIpB;;;;;;;OAOG;IACH,YACU,KAA2C,EAC3C,MAAmB,EACnB,YAAkC,EAClC,YAAoC,EACpC,YAA8C;QAJ9C,UAAK,GAAL,KAAK,CAAsC;QAC3C,WAAM,GAAN,MAAM,CAAa;QACnB,iBAAY,GAAZ,YAAY,CAAsB;QAClC,iBAAY,GAAZ,YAAY,CAAwB;QACpC,iBAAY,GAAZ,YAAY,CAAkC;QAhBhD,mBAAc,GAAyB,IAAI,CAAC;QAkBlD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;IACnD,CAAC;IAED;;;;;OAKG;IACK,SAAS,CAAC,IAAY,EAAE,OAAY;;QAC1C,IAAI,IAAI,KAAK,kBAAkB,EAAE,CAAC;YAChC,IACE,CAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,IAAI,MAAK,IAAI;gBAClC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ;gBACzD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ;gBACzD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ,EACzD,CAAC;gBACD,OAAO;YACT,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG;YACZ,IAAI;YACJ,OAAO,kCACF,OAAO,KACV,IAAI,EAAE,IAAI,KAAK,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EACnE,OAAO,oBAAO,OAAO,CAAC,OAAO,IAC9B;YACD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QAEF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEzC,IAAI,IAAI,KAAK,kBAAkB,EAAE,CAAC;YAChC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,YAAY,CAAC,IAAI,mBAAM,OAAO,CAAC,OAAO,EAAG,CAAC;QACjD,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACU,WAAW;6DACtB,QAAgB,EAChB,OAAwB,EACxB,mBAA4B,KAAK,EACjC,KAA6B;;YAE7B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,CAAC,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,SAAS,QAAQ,cAAc,CAAC,CAAC;YAE5D,IAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,eAAe,EAAE,CAAC;gBAC3B,MAAM,KAAK,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACjD,CAAC;YAED,MAAM,WAAW,qBAAQ,OAAO,CAAE,CAAC;YACnC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;YAExE,IAAI,CAAC;gBACH,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChE,CAAC;gBAED,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,WAAW,EAAE;oBAC1C,GAAG,EAAE,CAAC,MAAW,EAAE,IAAqB,EAAE,KAAU,EAAE,EAAE;wBACtD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;wBACzC,IAAI,QAAQ,KAAK,KAAK;4BAAE,OAAO,IAAI,CAAC;wBAEpC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,KAAK,CAAC;wBAChC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAA0B,CAAC,GAAG,KAAK,CAAC;wBAEzD,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE;4BACjC,QAAQ;4BACR,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;4BACzB,QAAQ;4BACR,QAAQ,EAAE,KAAK;4BACf,OAAO,oBAAO,MAAM,CAAE;yBACvB,CAAC,CAAC;wBACH,OAAO,IAAI,CAAC;oBACd,CAAC;iBACF,CAAC,CAAC;gBAEH,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;oBACpD,OAAO;gBACT,CAAC;gBAED,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;gBAC1D,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;gBAE1E,4CAA4C;gBAC5C,MAAM,OAAO,GAAI,OAAe,CAAC,QAAQ,IAAK,OAAe,CAAC,QAAQ,CAAC;gBACvE,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAE,CAAC;oBAClB,IAAI,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC/B,OAAO,CAAC,yDAAyD;oBACnE,CAAC;oBACD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;wBACjC,IAAI,OAAO,CAAC,MAAM;4BAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;wBAC3D,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;wBAC5D,OAAO;oBACT,CAAC;gBACH,CAAC;gBAED,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,IAAI,IAAK,IAAY,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC3D,MAAM,SAAS,GACb,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;oBAExE,6CAA6C;oBAC7C,IAAK,IAAY,CAAC,IAAI,EAAE,CAAC;wBACvB,MAAM,KAAK,GAAI,IAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBAC/C,MAAM,aAAa,GAAG,MAAM,kBAAO,CAAC,YAAY,CAC9C,KAAK,EACL,OAAO,EACP,CAAC,QAAgB,EAAE,GAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAC9E,CAAC;wBAEF,sBAAsB;wBACtB,MAAM,MAAM,GAAG,IAAA,uBAAa,EAC1B,OAAO,EACP,aAAa,EACZ,IAAY,CAAC,QAAQ,IAAI,EAAE,CAC7B,CAAC;wBACF,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;wBAE/B,0DAA0D;wBAC1D,MAAM,QAAQ,GAAG,MAAC,IAAY,CAAC,QAAQ,0CAAE,QAAQ,CAAC;wBAClD,IAAI,QAAQ,EAAE,CAAC;4BACb,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;wBAC1D,CAAC;wBAED,OAAO,CAAC,oCAAoC;oBAC9C,CAAC;oBAED,uCAAuC;oBACvC,MAAM,eAAe,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CACjF,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CACjB,CAAC;oBACF,MAAM,cAAc,GAAG,eAAe;yBACnC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;wBAChB,MAAM,YAAY,GAChB,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;wBAC1D,MAAM,SAAS,GACb,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;wBAChE,OAAO;4BACL,IAAI,EAAE,YAAY;4BAClB,SAAS;4BACT,OAAO,EAAE,CAAC,SAAS,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,YAAY,CAAC,CAAC;yBAC9D,CAAC;oBACJ,CAAC,CAAC;yBACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;oBAE5B,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAExD,IAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,mBAAmB,EAAE,CAAC;wBAC/B,MAAM,KAAK,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;oBACpE,CAAC;oBAED,uCAAuC;oBACvC,IAAI,MAAC,IAAY,CAAC,QAAQ,0CAAE,OAAO,EAAE,CAAC;wBACpC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAI,IAAY,CAAC,QAAQ,CAAC;wBAErE,gDAAgD;wBAChD,MAAM,cAAc,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC;4BAC3D,QAAQ,EAAE,CAAC,CAAC,IAAI;4BAChB,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC;4BACjC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE;yBAC3B,CAAC,CAAC,CAAC;wBAEJ,oCAAoC;wBACpC,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,cAAc,CAAC,GAAG,CAAC,KAAkD,EAAE,0CAA7C,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAO;4BACjE,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;4BACpD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;wBACpC,CAAC,CAAA,CAAC,CACH,CAAC;wBAEF,8BAA8B;wBAC9B,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACpC,MAAM,MAAM,GAAG,IAAA,uBAAa,EAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;4BAC/D,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;wBACjC,CAAC;6BAAM,IAAI,aAAa,KAAK,UAAU,EAAE,CAAC;4BACxC,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAO,EAAE,EAAE;gCACvD,OAAe,CAAC,UAAU,QAAQ,EAAE,CAAC,GAAG,GAAG,CAAC;4BAC/C,CAAC,CAAC,CAAC;wBACL,CAAC;6BAAM,CAAC;4BACN,wBAAwB;4BACxB,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;4BAC3C,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;4BAC/E,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;wBACjC,CAAC;wBAED,0CAA0C;wBAC1C,IAAI,QAAQ,EAAE,CAAC;4BACb,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;wBAC1D,CAAC;wBAED,OAAO;oBACT,CAAC;oBAED,+CAA+C;oBAC/C,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE,CAAC;wBACtC,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;wBAC7D,IAAK,OAAe,CAAC,QAAQ,IAAK,OAAe,CAAC,QAAQ;4BAAE,MAAM;oBACpE,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;oBAC1B,IAAI,EAAE,QAAQ;oBACd,KAAK;oBACL,OAAO,EAAE,WAAW;iBACrB,CAAC,CAAC;gBACH,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;KAAA;IAED;;;;;;;;;OASG;IACW,gBAAgB,CAC5B,IAA6B,EAC7B,YAA6B,EAC7B,QAAgB;;;YAEhB,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,IAAI,SAAS,GAAU,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;YAElD,OAAO,QAAQ,GAAG,CAAC,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,WAAW,KAAI,CAAC,CAAC,EAAE,CAAC;gBACjD,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;wBAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;qBAChC,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBACpB,SAAS;wBACP,KAAK,YAAY,KAAK;4BACpB,CAAC,CAAC,KAAK;4BACP,CAAC,CAAC,IAAI,KAAK,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,KAAI,eAAe,CAAC,CAAC;oBACnD,QAAQ,EAAE,CAAC;oBAEX,IAAI,QAAQ,KAAK,CAAC,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,WAAW,KAAI,CAAC,CAAC,EAAE,CAAC;wBAChD,IAAI,MAAA,IAAI,CAAC,KAAK,0CAAE,aAAa,EAAE,CAAC;4BAC9B,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;4BACxD,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB;gCAAE,OAAO;wBAC1C,CAAC;wBACD,MAAM,SAAS,CAAC;oBAClB,CAAC;oBAED,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,WAC5B,OAAA,UAAU,CAAC,OAAO,EAAE,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,KAAK,KAAI,CAAC,CAAC,CAAA,EAAA,CAC5C,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;KAAA;CACF;AA7RD,8BA6RC"}
@@ -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"}