@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,267 @@
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.HybridIntentClassifier = exports.IntentClassifier = void 0;
13
+ const zod_1 = require("zod");
14
+ // ---------------------------------------------------------------------------
15
+ // Zod schema for LLM response validation
16
+ // ---------------------------------------------------------------------------
17
+ /** Zod schema used to validate the raw JSON returned by the LLM. */
18
+ const IntentSchema = zod_1.z.object({
19
+ intent: zod_1.z.string(),
20
+ confidence: zod_1.z.number().min(0).max(1),
21
+ entities: zod_1.z.record(zod_1.z.string(), zod_1.z.any()).optional(),
22
+ intents: zod_1.z.array(zod_1.z.object({
23
+ intent: zod_1.z.string(),
24
+ confidence: zod_1.z.number().min(0).max(1),
25
+ entities: zod_1.z.record(zod_1.z.string(), zod_1.z.any()).optional(),
26
+ })).optional(),
27
+ });
28
+ // ---------------------------------------------------------------------------
29
+ // IntentClassifier — pure LLM-backed classifier
30
+ // ---------------------------------------------------------------------------
31
+ /**
32
+ * LLM-backed intent classifier for the CortexFlow orchestration layer.
33
+ *
34
+ * The classifier sends a single prompt to an LLM and expects a JSON reply
35
+ * conforming to `{ intent, confidence, entities }`. The response is validated
36
+ * with Zod; any parse failure falls back to `UNKNOWN` with zero confidence.
37
+ *
38
+ * Keeping classification to **one LLM call per user turn** is a core design
39
+ * principle — all subsequent routing is done deterministically by the Petri net.
40
+ *
41
+ * @example
42
+ * ```ts
43
+ * const classifier = new IntentClassifier(llmFn, {
44
+ * intents: ['FETCH_MAILS', 'SUMMARIZE', 'ARCHIVE'],
45
+ * confidenceThreshold: 0.7,
46
+ * });
47
+ *
48
+ * const result = await classifier.classify('Please fetch my latest 5 emails');
49
+ * // { intent: 'FETCH_MAILS', confidence: 0.95, entities: { maxMails: 5 } }
50
+ * ```
51
+ */
52
+ class IntentClassifier {
53
+ /**
54
+ * @param llmCall - Function that forwards a prompt to an LLM and returns its text response.
55
+ * @param options.intents - List of valid intent labels the LLM must choose from.
56
+ * @param options.confidenceThreshold - Minimum confidence to avoid triggering clarification.
57
+ * Defaults to `0.6`.
58
+ */
59
+ constructor(llmCall, options) {
60
+ var _a;
61
+ this.llmCall = llmCall;
62
+ this.intents = (options === null || options === void 0 ? void 0 : options.intents) || [
63
+ 'CREATE', 'APPROVE', 'REJECT', 'QUERY', 'CANCEL', 'ESCALATE', 'UNKNOWN',
64
+ ];
65
+ this.confidenceThreshold = (_a = options === null || options === void 0 ? void 0 : options.confidenceThreshold) !== null && _a !== void 0 ? _a : 0.6;
66
+ }
67
+ /**
68
+ * Classifies a user message into one of the registered intents via one LLM call.
69
+ *
70
+ * Supports multi-intent detection: if the LLM returns an `intents` array,
71
+ * the result will include multiple intents to be executed sequentially.
72
+ *
73
+ * On JSON parse failure or Zod validation error, returns a safe fallback
74
+ * `{ intent: "UNKNOWN", confidence: 0, entities: {} }` rather than throwing.
75
+ */
76
+ classify(message, context) {
77
+ return __awaiter(this, void 0, void 0, function* () {
78
+ const turnHistory = (context === null || context === void 0 ? void 0 : context.turnHistory) || [];
79
+ const prompt = `You are an intent classifier for a workflow system.
80
+ Available intents: ${this.intents.join(', ')}
81
+
82
+ Respond with JSON only in this format:
83
+ {"intent": "INTENT_NAME", "confidence": 0.0-1.0, "entities": {}}
84
+
85
+ If the user message contains MULTIPLE actions, also include an "intents" array:
86
+ {"intent": "MAIN_INTENT", "confidence": 0.0-1.0, "entities": {}, "intents": [{"intent": "ACTION1", "confidence": 0.0-1.0, "entities": {}}, {"intent": "ACTION2", "confidence": 0.0-1.0, "entities": {}}]}
87
+
88
+ User message: ${message}
89
+ ${turnHistory.length > 0 ? `Recent history: ${JSON.stringify(turnHistory.slice(-5))}` : ''}
90
+
91
+ JSON response:`;
92
+ try {
93
+ const response = yield this.llmCall(prompt);
94
+ const parsed = JSON.parse(response);
95
+ const result = IntentSchema.parse(parsed);
96
+ const intentResult = {
97
+ intent: result.intent,
98
+ confidence: result.confidence,
99
+ entities: result.entities || {},
100
+ turnHistory,
101
+ };
102
+ if (result.intents && result.intents.length > 0) {
103
+ intentResult.intents = result.intents.map(i => ({
104
+ intent: i.intent,
105
+ confidence: i.confidence,
106
+ entities: i.entities || {},
107
+ }));
108
+ }
109
+ return intentResult;
110
+ }
111
+ catch (_a) {
112
+ return { intent: 'UNKNOWN', confidence: 0, entities: {}, turnHistory };
113
+ }
114
+ });
115
+ }
116
+ /** Returns the current confidence threshold. */
117
+ getConfidenceThreshold() { return this.confidenceThreshold; }
118
+ /** Overrides the confidence threshold at runtime. */
119
+ setConfidenceThreshold(threshold) { this.confidenceThreshold = threshold; }
120
+ /**
121
+ * Converts this classifier instance into a plain `IntentClassifierFn`
122
+ * suitable for `CortexFlowOrchestrator.setIntentClassifier`.
123
+ */
124
+ static toFn(classifier) {
125
+ return (message, context) => classifier.classify(message, context);
126
+ }
127
+ /**
128
+ * Generates a short clarifying question when the user's intent is ambiguous.
129
+ *
130
+ * Falls back to a generic question listing available intents if the LLM call fails.
131
+ */
132
+ generateClarification(originalMessage) {
133
+ return __awaiter(this, void 0, void 0, function* () {
134
+ const prompt = `User said: "${originalMessage}". Possible intents: ${this.intents.join(', ')}.
135
+ Ask a short clarifying question to understand which action the user wants. Only return the question, nothing else.`;
136
+ try {
137
+ return (yield this.llmCall(prompt)).trim();
138
+ }
139
+ catch (_a) {
140
+ const options = this.intents.filter(i => i !== 'UNKNOWN').join(', ');
141
+ return `I didn't understand. Possible actions: ${options}. Which one do you want?`;
142
+ }
143
+ });
144
+ }
145
+ }
146
+ exports.IntentClassifier = IntentClassifier;
147
+ // ---------------------------------------------------------------------------
148
+ // HybridIntentClassifier — keyword-first, LLM fallback
149
+ // ---------------------------------------------------------------------------
150
+ /**
151
+ * A hybrid intent classifier that tries keyword rules first and only invokes
152
+ * the LLM when no rule reaches the configured confidence threshold.
153
+ *
154
+ * **Why this matters for performance**: intent classification is on the
155
+ * critical path of every user turn. For well-defined, unambiguous commands
156
+ * ("fetch my mails", "archive all newsletters") keyword rules resolve in
157
+ * microseconds at confidence ≥ 0.9, eliminating the first LLM call entirely.
158
+ * The LLM is reserved for genuinely ambiguous messages.
159
+ *
160
+ * The confidence of a rule is computed as:
161
+ * `baseConfidence × (matchedKeywords / totalKeywords)`.
162
+ * This means a rule with 4 keywords where 3 match scores 0.95 × 0.75 = 0.71,
163
+ * which may still exceed the threshold for coarse intents.
164
+ *
165
+ * @example
166
+ * ```ts
167
+ * const classifier = new HybridIntentClassifier(
168
+ * [
169
+ * { intent: 'TRIAGE_MAILS', keywords: ['fetch', 'mail', 'urgent', 'archive'], confidence: 0.95 },
170
+ * { intent: 'FETCH_MAILS', keywords: ['fetch', 'email'], confidence: 0.90 },
171
+ * ],
172
+ * { intents: ['TRIAGE_MAILS', 'FETCH_MAILS', 'UNKNOWN'], confidenceThreshold: 0.6 },
173
+ * llmFn, // optional — omit for pure keyword mode
174
+ * );
175
+ *
176
+ * // "Fetch my 5 mails and flag the urgent ones" → keyword match, 0 LLM calls
177
+ * // "Do the thing with the emails maybe?" → LLM fallback
178
+ * ```
179
+ */
180
+ class HybridIntentClassifier {
181
+ /**
182
+ * @param rules - Ordered list of keyword rules. Rules are evaluated in order;
183
+ * the highest-scoring match wins.
184
+ * @param options.intents - Valid intent labels (used for LLM fallback prompt and clarification).
185
+ * @param options.confidenceThreshold - Minimum confidence to accept a result without LLM fallback.
186
+ * @param llmFn - Optional LLM function. If omitted, unmatched messages return `UNKNOWN`.
187
+ */
188
+ constructor(rules, options, llmFn) {
189
+ var _a;
190
+ this.rules = rules;
191
+ this.intents = options.intents;
192
+ this.confidenceThreshold = (_a = options.confidenceThreshold) !== null && _a !== void 0 ? _a : 0.6;
193
+ if (llmFn) {
194
+ this.llmClassifier = new IntentClassifier(llmFn, options);
195
+ }
196
+ }
197
+ /** Returns the current confidence threshold. */
198
+ getConfidenceThreshold() { return this.confidenceThreshold; }
199
+ /**
200
+ * Classifies a message using keyword rules first.
201
+ *
202
+ * If the best keyword rule score meets the threshold, the result is returned
203
+ * immediately — no LLM call is made. Otherwise, the LLM classifier is invoked
204
+ * as a fallback (if configured). Messages that match no rule and have no LLM
205
+ * fallback return `UNKNOWN` with confidence 0.
206
+ */
207
+ classify(message, context) {
208
+ return __awaiter(this, void 0, void 0, function* () {
209
+ var _a, _b;
210
+ const ruleResult = this.applyRules(message, (_a = context === null || context === void 0 ? void 0 : context.turnHistory) !== null && _a !== void 0 ? _a : []);
211
+ if (ruleResult && ruleResult.confidence >= this.confidenceThreshold) {
212
+ return ruleResult;
213
+ }
214
+ if (this.llmClassifier) {
215
+ return this.llmClassifier.classify(message, context);
216
+ }
217
+ return ruleResult !== null && ruleResult !== void 0 ? ruleResult : { intent: 'UNKNOWN', confidence: 0, entities: {}, turnHistory: (_b = context === null || context === void 0 ? void 0 : context.turnHistory) !== null && _b !== void 0 ? _b : [] };
218
+ });
219
+ }
220
+ /**
221
+ * Generates a clarifying question for ambiguous messages.
222
+ * Delegates to the LLM classifier if available; otherwise returns a generic
223
+ * question listing the known intents.
224
+ */
225
+ generateClarification(originalMessage) {
226
+ return __awaiter(this, void 0, void 0, function* () {
227
+ if (this.llmClassifier) {
228
+ return this.llmClassifier.generateClarification(originalMessage);
229
+ }
230
+ const options = this.intents.filter(i => i !== 'UNKNOWN').join(', ');
231
+ return `I didn't understand. Possible actions: ${options}. Which one do you want?`;
232
+ });
233
+ }
234
+ /**
235
+ * Converts this classifier into a plain `IntentClassifierFn`.
236
+ * Works identically to `IntentClassifier.toFn`.
237
+ */
238
+ static toFn(classifier) {
239
+ return (message, context) => classifier.classify(message, context);
240
+ }
241
+ // ---------------------------------------------------------------------------
242
+ // Private helpers
243
+ // ---------------------------------------------------------------------------
244
+ applyRules(message, turnHistory) {
245
+ var _a, _b;
246
+ const lower = message.toLowerCase();
247
+ let best = null;
248
+ for (const rule of this.rules) {
249
+ // Skip if any negation term is present
250
+ if ((_a = rule.negations) === null || _a === void 0 ? void 0 : _a.some(n => lower.includes(n.toLowerCase())))
251
+ continue;
252
+ const matched = rule.keywords.filter(kw => lower.includes(kw.toLowerCase()));
253
+ if (matched.length === 0)
254
+ continue;
255
+ // Partial match: score scales with the fraction of keywords matched
256
+ const score = ((_b = rule.confidence) !== null && _b !== void 0 ? _b : 0.95) * (matched.length / rule.keywords.length);
257
+ if (!best || score > best.score) {
258
+ best = { intent: rule.intent, score };
259
+ }
260
+ }
261
+ if (!best)
262
+ return null;
263
+ return { intent: best.intent, confidence: best.score, entities: {}, turnHistory };
264
+ }
265
+ }
266
+ exports.HybridIntentClassifier = HybridIntentClassifier;
267
+ //# sourceMappingURL=intent-classifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent-classifier.js","sourceRoot":"","sources":["../../routing/intent-classifier.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare function matrixZeros(rows: number, cols: number): number[][];
2
+ export declare function matrixSubtract(a: number[][], b: number[][]): number[][];
3
+ export declare function transpose(matrix: number[][]): number[][];
4
+ export declare function findNullSpace(A: number[][]): number[][];
5
+ export declare function hasPositiveNullVector(C: number[][]): boolean;
6
+ //# sourceMappingURL=matrix.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matrix.d.ts","sourceRoot":"","sources":["../../routing/matrix.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,CAElE;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,CAUvE;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,CAUxD;AA0CD,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,CA0CvD;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,CAyB5D"}
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.matrixZeros = matrixZeros;
4
+ exports.matrixSubtract = matrixSubtract;
5
+ exports.transpose = transpose;
6
+ exports.findNullSpace = findNullSpace;
7
+ exports.hasPositiveNullVector = hasPositiveNullVector;
8
+ function matrixZeros(rows, cols) {
9
+ return Array.from({ length: rows }, () => new Array(cols).fill(0));
10
+ }
11
+ function matrixSubtract(a, b) {
12
+ const rows = a.length;
13
+ const cols = a[0].length;
14
+ const result = matrixZeros(rows, cols);
15
+ for (let i = 0; i < rows; i++) {
16
+ for (let j = 0; j < cols; j++) {
17
+ result[i][j] = a[i][j] - b[i][j];
18
+ }
19
+ }
20
+ return result;
21
+ }
22
+ function transpose(matrix) {
23
+ const rows = matrix.length;
24
+ const cols = matrix[0].length;
25
+ const result = matrixZeros(cols, rows);
26
+ for (let i = 0; i < rows; i++) {
27
+ for (let j = 0; j < cols; j++) {
28
+ result[j][i] = matrix[i][j];
29
+ }
30
+ }
31
+ return result;
32
+ }
33
+ function rref(matrix) {
34
+ const m = matrix.length;
35
+ if (m === 0)
36
+ return { result: [], pivots: [] };
37
+ const n = matrix[0].length;
38
+ const A = matrix.map(row => [...row]);
39
+ const pivots = [];
40
+ let row = 0;
41
+ for (let col = 0; col < n && row < m; col++) {
42
+ let pivotRow = row;
43
+ while (pivotRow < m && Math.abs(A[pivotRow][col]) < 1e-10) {
44
+ pivotRow++;
45
+ }
46
+ if (pivotRow === m)
47
+ continue;
48
+ if (pivotRow !== row) {
49
+ [A[row], A[pivotRow]] = [A[pivotRow], A[row]];
50
+ }
51
+ const pivotVal = A[row][col];
52
+ for (let j = 0; j < n; j++) {
53
+ A[row][j] /= pivotVal;
54
+ }
55
+ for (let i = 0; i < m; i++) {
56
+ if (i !== row && Math.abs(A[i][col]) > 1e-10) {
57
+ const factor = A[i][col];
58
+ for (let j = 0; j < n; j++) {
59
+ A[i][j] -= factor * A[row][j];
60
+ }
61
+ }
62
+ }
63
+ pivots.push(col);
64
+ row++;
65
+ }
66
+ return { result: A, pivots };
67
+ }
68
+ function findNullSpace(A) {
69
+ const m = A.length;
70
+ if (m === 0)
71
+ return [];
72
+ const n = A[0].length;
73
+ if (n === 0)
74
+ return [];
75
+ const { result: R, pivots } = rref(A);
76
+ const pivotSet = new Set(pivots);
77
+ const freeCols = Array.from({ length: n }, (_, i) => i).filter(i => !pivotSet.has(i));
78
+ const basis = [];
79
+ for (const freeCol of freeCols) {
80
+ const vec = new Array(n).fill(0);
81
+ vec[freeCol] = 1;
82
+ for (let i = 0; i < R.length; i++) {
83
+ let pivotCol = -1;
84
+ for (let j = 0; j < n; j++) {
85
+ if (Math.abs(R[i][j]) > 1e-10) {
86
+ pivotCol = j;
87
+ break;
88
+ }
89
+ }
90
+ if (pivotCol !== -1 && pivotSet.has(pivotCol)) {
91
+ let sum = 0;
92
+ for (let j = 0; j < n; j++) {
93
+ if (j !== pivotCol) {
94
+ sum += R[i][j] * vec[j];
95
+ }
96
+ }
97
+ vec[pivotCol] = -sum;
98
+ }
99
+ }
100
+ basis.push(vec);
101
+ }
102
+ return basis;
103
+ }
104
+ function hasPositiveNullVector(C) {
105
+ const CT = transpose(C);
106
+ if (CT.length === 0 || CT[0].length === 0)
107
+ return true;
108
+ const basis = findNullSpace(CT);
109
+ if (basis.length === 0) {
110
+ return true;
111
+ }
112
+ for (const vec of basis) {
113
+ if (vec.every(v => v > 1e-10))
114
+ return true;
115
+ if (vec.every(v => v < -1e-10))
116
+ return true;
117
+ }
118
+ if (basis.length >= 2) {
119
+ for (let i = 0; i < basis.length; i++) {
120
+ for (let j = i + 1; j < basis.length; j++) {
121
+ const sum = basis[i].map((v, k) => v + basis[j][k]);
122
+ if (sum.every(v => v > 1e-10))
123
+ return true;
124
+ if (sum.every(v => v < -1e-10))
125
+ return true;
126
+ }
127
+ }
128
+ }
129
+ return false;
130
+ }
131
+ //# sourceMappingURL=matrix.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matrix.js","sourceRoot":"","sources":["../../routing/matrix.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ import { PetriNet, TransitionResult } from './index';
2
+ import { ToolRegistry } from '../execution/registry';
3
+ import { IntentClassifier } from './intent-classifier';
4
+ import { IPetriCheckpointAdapter } from './checkpoint-adapter';
5
+ export interface Session {
6
+ id: string;
7
+ petriNet: PetriNet;
8
+ context: Record<string, any>;
9
+ history: string[];
10
+ createdAt: number;
11
+ traceId?: string;
12
+ clarificationQuestion?: string;
13
+ inFallbackMode?: boolean;
14
+ fallbackContext?: {
15
+ conversationHistory: string[];
16
+ lastFallbackResponse?: string;
17
+ };
18
+ }
19
+ export type FallbackLLM = (message: string, session: Session, toolRegistry?: ToolRegistry) => Promise<{
20
+ response: string;
21
+ shouldReenterPetri?: boolean;
22
+ reinterpretMessage?: string;
23
+ }>;
24
+ export interface IntentResult {
25
+ intent: string;
26
+ confidence: number;
27
+ entities: Record<string, any>;
28
+ intents?: Array<{
29
+ intent: string;
30
+ confidence: number;
31
+ entities?: Record<string, any>;
32
+ }>;
33
+ }
34
+ export type IntentClassifierFn = (message: string, context?: {
35
+ turnHistory?: string[];
36
+ }) => Promise<IntentResult>;
37
+ export declare class CortexFlowOrchestrator {
38
+ private petriNet;
39
+ private toolRegistry;
40
+ private sessions;
41
+ private intentClassifier?;
42
+ private intentClassifierInstance?;
43
+ private llmCall?;
44
+ private petriCheckpointAdapter?;
45
+ private fallbackLLM?;
46
+ private confidenceThreshold;
47
+ constructor(name: string, toolRegistry?: ToolRegistry);
48
+ setFallbackLLM(fn: FallbackLLM): void;
49
+ setConfidenceThreshold(threshold: number): void;
50
+ getConfidenceThreshold(): number;
51
+ get petri(): PetriNet;
52
+ setPetriCheckpointAdapter(adapter: IPetriCheckpointAdapter): void;
53
+ savePetriState(sessionId: string): Promise<string | null>;
54
+ restorePetriState(checkpointId: string): Promise<string | null>;
55
+ listPetriCheckpoints(): Promise<{
56
+ id: string;
57
+ timestamp: number;
58
+ sessionId?: string;
59
+ }[]>;
60
+ setIntentClassifier(classifier: IntentClassifierFn, instance?: IntentClassifier): void;
61
+ setLLMCall(llmCall: (prompt: string) => Promise<string>): void;
62
+ classifyIntent(message: string, sessionId?: string): Promise<IntentResult>;
63
+ startSession(sessionId?: string): string;
64
+ getSession(sessionId: string): Session | undefined;
65
+ fire(transitionId: string, sessionId: string, tokenData?: Record<string, any>): Promise<TransitionResult & {
66
+ actionResult?: any;
67
+ }>;
68
+ private executeAction;
69
+ private executeGraphFlowAction;
70
+ private executeDynamicAction;
71
+ private generateDynamicPlan;
72
+ private compilePlan;
73
+ orchestrate(message: string, sessionId?: string): Promise<{
74
+ intent: IntentResult;
75
+ transitionResult?: TransitionResult & {
76
+ actionResult?: any;
77
+ };
78
+ sessionId: string;
79
+ needsClarification?: boolean;
80
+ clarificationQuestion?: string;
81
+ fallbackResponse?: string;
82
+ shouldReenterPetri?: boolean;
83
+ }>;
84
+ private enterFallbackMode;
85
+ private handleFallbackMode;
86
+ }
87
+ //# sourceMappingURL=orchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../routing/orchestrator.ts"],"names":[],"mappings":"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"}