@falai/agent 3.4.5 → 4.0.0-alpha.10

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 (865) hide show
  1. package/README.md +41 -34
  2. package/dist/cjs/core/Agent.d.ts +29 -378
  3. package/dist/cjs/core/Agent.d.ts.map +1 -1
  4. package/dist/cjs/core/Agent.js +113 -1178
  5. package/dist/cjs/core/Agent.js.map +1 -1
  6. package/dist/cjs/core/CompactionEngine.d.ts.map +1 -1
  7. package/dist/cjs/core/CompactionEngine.js +5 -3
  8. package/dist/cjs/core/CompactionEngine.js.map +1 -1
  9. package/dist/cjs/core/FlowSpec.d.ts +136 -0
  10. package/dist/cjs/core/FlowSpec.d.ts.map +1 -0
  11. package/dist/cjs/core/FlowSpec.js +573 -0
  12. package/dist/cjs/core/FlowSpec.js.map +1 -0
  13. package/dist/cjs/core/Migrate.d.ts +38 -0
  14. package/dist/cjs/core/Migrate.d.ts.map +1 -0
  15. package/dist/cjs/core/Migrate.js +270 -0
  16. package/dist/cjs/core/Migrate.js.map +1 -0
  17. package/dist/cjs/core/Prompt.d.ts +54 -0
  18. package/dist/cjs/core/Prompt.d.ts.map +1 -0
  19. package/dist/cjs/core/Prompt.js +149 -0
  20. package/dist/cjs/core/Prompt.js.map +1 -0
  21. package/dist/cjs/core/Runner.d.ts +171 -0
  22. package/dist/cjs/core/Runner.d.ts.map +1 -0
  23. package/dist/cjs/core/Runner.js +1158 -0
  24. package/dist/cjs/core/Runner.js.map +1 -0
  25. package/dist/cjs/core/Speak.d.ts +37 -0
  26. package/dist/cjs/core/Speak.d.ts.map +1 -0
  27. package/dist/cjs/core/Speak.js +373 -0
  28. package/dist/cjs/core/Speak.js.map +1 -0
  29. package/dist/cjs/core/Understand.d.ts +28 -0
  30. package/dist/cjs/core/Understand.d.ts.map +1 -0
  31. package/dist/cjs/core/Understand.js +357 -0
  32. package/dist/cjs/core/Understand.js.map +1 -0
  33. package/dist/cjs/core/contracts.d.ts +122 -0
  34. package/dist/cjs/core/contracts.d.ts.map +1 -0
  35. package/dist/cjs/core/contracts.js +11 -0
  36. package/dist/cjs/core/contracts.js.map +1 -0
  37. package/dist/cjs/core/falai.d.ts +57 -0
  38. package/dist/cjs/core/falai.d.ts.map +1 -0
  39. package/dist/cjs/core/falai.js +43 -0
  40. package/dist/cjs/core/falai.js.map +1 -0
  41. package/dist/cjs/core/predicate.d.ts +9 -0
  42. package/dist/cjs/core/predicate.d.ts.map +1 -0
  43. package/dist/cjs/core/predicate.js +58 -0
  44. package/dist/cjs/core/predicate.js.map +1 -0
  45. package/dist/cjs/index.d.ts +26 -31
  46. package/dist/cjs/index.d.ts.map +1 -1
  47. package/dist/cjs/index.js +46 -68
  48. package/dist/cjs/index.js.map +1 -1
  49. package/dist/cjs/persistence/MemoryStore.d.ts +15 -0
  50. package/dist/cjs/persistence/MemoryStore.d.ts.map +1 -0
  51. package/dist/cjs/persistence/MemoryStore.js +39 -0
  52. package/dist/cjs/persistence/MemoryStore.js.map +1 -0
  53. package/dist/cjs/persistence/MongoStore.d.ts +42 -0
  54. package/dist/cjs/persistence/MongoStore.d.ts.map +1 -0
  55. package/dist/cjs/persistence/MongoStore.js +60 -0
  56. package/dist/cjs/persistence/MongoStore.js.map +1 -0
  57. package/dist/cjs/persistence/OpenSearchStore.d.ts +86 -0
  58. package/dist/cjs/persistence/OpenSearchStore.d.ts.map +1 -0
  59. package/dist/cjs/persistence/OpenSearchStore.js +120 -0
  60. package/dist/cjs/persistence/OpenSearchStore.js.map +1 -0
  61. package/dist/cjs/persistence/PostgresStore.d.ts +41 -0
  62. package/dist/cjs/persistence/PostgresStore.d.ts.map +1 -0
  63. package/dist/cjs/persistence/PostgresStore.js +58 -0
  64. package/dist/cjs/persistence/PostgresStore.js.map +1 -0
  65. package/dist/cjs/persistence/PrismaStore.d.ts +65 -0
  66. package/dist/cjs/persistence/PrismaStore.d.ts.map +1 -0
  67. package/dist/cjs/persistence/PrismaStore.js +95 -0
  68. package/dist/cjs/persistence/PrismaStore.js.map +1 -0
  69. package/dist/cjs/persistence/RedisStore.d.ts +34 -0
  70. package/dist/cjs/persistence/RedisStore.d.ts.map +1 -0
  71. package/dist/cjs/persistence/RedisStore.js +61 -0
  72. package/dist/cjs/persistence/RedisStore.js.map +1 -0
  73. package/dist/cjs/persistence/SQLiteStore.d.ts +45 -0
  74. package/dist/cjs/persistence/SQLiteStore.d.ts.map +1 -0
  75. package/dist/cjs/persistence/SQLiteStore.js +74 -0
  76. package/dist/cjs/persistence/SQLiteStore.js.map +1 -0
  77. package/dist/cjs/persistence/sessionRow.d.ts +14 -0
  78. package/dist/cjs/persistence/sessionRow.d.ts.map +1 -0
  79. package/dist/cjs/persistence/sessionRow.js +50 -0
  80. package/dist/cjs/persistence/sessionRow.js.map +1 -0
  81. package/dist/cjs/providers/DeepSeekProvider.d.ts.map +1 -1
  82. package/dist/cjs/providers/DeepSeekProvider.js +8 -3
  83. package/dist/cjs/providers/DeepSeekProvider.js.map +1 -1
  84. package/dist/cjs/providers/GeminiProvider.d.ts +4 -3
  85. package/dist/cjs/providers/GeminiProvider.d.ts.map +1 -1
  86. package/dist/cjs/providers/GeminiProvider.js +4 -3
  87. package/dist/cjs/providers/GeminiProvider.js.map +1 -1
  88. package/dist/cjs/providers/OpenAICompatibleProvider.d.ts +4 -0
  89. package/dist/cjs/providers/OpenAICompatibleProvider.d.ts.map +1 -1
  90. package/dist/cjs/providers/OpenAICompatibleProvider.js +2 -0
  91. package/dist/cjs/providers/OpenAICompatibleProvider.js.map +1 -1
  92. package/dist/cjs/providers/OpenRouterProvider.d.ts.map +1 -1
  93. package/dist/cjs/providers/OpenRouterProvider.js +2 -4
  94. package/dist/cjs/providers/OpenRouterProvider.js.map +1 -1
  95. package/dist/cjs/providers/ProviderAdapter.d.ts +11 -6
  96. package/dist/cjs/providers/ProviderAdapter.d.ts.map +1 -1
  97. package/dist/cjs/providers/ProviderAdapter.js +33 -10
  98. package/dist/cjs/providers/ProviderAdapter.js.map +1 -1
  99. package/dist/cjs/providers/ZaiProvider.d.ts +6 -4
  100. package/dist/cjs/providers/ZaiProvider.d.ts.map +1 -1
  101. package/dist/cjs/providers/ZaiProvider.js +6 -4
  102. package/dist/cjs/providers/ZaiProvider.js.map +1 -1
  103. package/dist/cjs/types/agent.d.ts +163 -383
  104. package/dist/cjs/types/agent.d.ts.map +1 -1
  105. package/dist/cjs/types/agent.js +1 -1
  106. package/dist/cjs/types/ai.d.ts +32 -1
  107. package/dist/cjs/types/ai.d.ts.map +1 -1
  108. package/dist/cjs/types/compaction.d.ts +3 -1
  109. package/dist/cjs/types/compaction.d.ts.map +1 -1
  110. package/dist/cjs/types/errors.d.ts +9 -12
  111. package/dist/cjs/types/errors.d.ts.map +1 -1
  112. package/dist/cjs/types/errors.js +14 -17
  113. package/dist/cjs/types/errors.js.map +1 -1
  114. package/dist/cjs/types/flow.d.ts +265 -513
  115. package/dist/cjs/types/flow.d.ts.map +1 -1
  116. package/dist/cjs/types/flow.js +7 -1
  117. package/dist/cjs/types/flow.js.map +1 -1
  118. package/dist/cjs/types/history.d.ts +7 -18
  119. package/dist/cjs/types/history.d.ts.map +1 -1
  120. package/dist/cjs/types/history.js.map +1 -1
  121. package/dist/cjs/types/index.d.ts +9 -15
  122. package/dist/cjs/types/index.d.ts.map +1 -1
  123. package/dist/cjs/types/index.js +4 -14
  124. package/dist/cjs/types/index.js.map +1 -1
  125. package/dist/cjs/types/session.d.ts +94 -64
  126. package/dist/cjs/types/session.d.ts.map +1 -1
  127. package/dist/cjs/types/session.js +5 -1
  128. package/dist/cjs/types/session.js.map +1 -1
  129. package/dist/cjs/types/tool.d.ts +37 -207
  130. package/dist/cjs/types/tool.d.ts.map +1 -1
  131. package/dist/cjs/types/tool.js +5 -14
  132. package/dist/cjs/types/tool.js.map +1 -1
  133. package/dist/cjs/utils/clock.d.ts +28 -0
  134. package/dist/cjs/utils/clock.d.ts.map +1 -0
  135. package/dist/cjs/utils/clock.js +64 -0
  136. package/dist/cjs/utils/clock.js.map +1 -0
  137. package/dist/cjs/utils/duration.d.ts +11 -0
  138. package/dist/cjs/utils/duration.d.ts.map +1 -0
  139. package/dist/cjs/utils/duration.js +31 -0
  140. package/dist/cjs/utils/duration.js.map +1 -0
  141. package/dist/cjs/utils/history.d.ts +4 -1
  142. package/dist/cjs/utils/history.d.ts.map +1 -1
  143. package/dist/cjs/utils/history.js +2 -2
  144. package/dist/cjs/utils/history.js.map +1 -1
  145. package/dist/cjs/utils/index.d.ts +4 -10
  146. package/dist/cjs/utils/index.d.ts.map +1 -1
  147. package/dist/cjs/utils/index.js +14 -61
  148. package/dist/cjs/utils/index.js.map +1 -1
  149. package/dist/cjs/utils/json.d.ts +2 -0
  150. package/dist/cjs/utils/json.d.ts.map +1 -1
  151. package/dist/cjs/utils/json.js +5 -0
  152. package/dist/cjs/utils/json.js.map +1 -1
  153. package/dist/cjs/utils/outcomes.d.ts +48 -0
  154. package/dist/cjs/utils/outcomes.d.ts.map +1 -0
  155. package/dist/cjs/utils/outcomes.js +51 -0
  156. package/dist/cjs/utils/outcomes.js.map +1 -0
  157. package/dist/cjs/utils/phrases.d.ts +25 -0
  158. package/dist/cjs/utils/phrases.d.ts.map +1 -0
  159. package/dist/cjs/utils/phrases.js +38 -0
  160. package/dist/cjs/utils/phrases.js.map +1 -0
  161. package/dist/cjs/utils/schema.d.ts +50 -0
  162. package/dist/cjs/utils/schema.d.ts.map +1 -0
  163. package/dist/cjs/utils/schema.js +138 -0
  164. package/dist/cjs/utils/schema.js.map +1 -0
  165. package/dist/cjs/utils/streamingMessage.d.ts +3 -2
  166. package/dist/cjs/utils/streamingMessage.d.ts.map +1 -1
  167. package/dist/cjs/utils/streamingMessage.js +38 -4
  168. package/dist/cjs/utils/streamingMessage.js.map +1 -1
  169. package/dist/cjs/utils/template.d.ts +22 -150
  170. package/dist/cjs/utils/template.d.ts.map +1 -1
  171. package/dist/cjs/utils/template.js +64 -359
  172. package/dist/cjs/utils/template.js.map +1 -1
  173. package/dist/cjs/utils/usage.d.ts +19 -0
  174. package/dist/cjs/utils/usage.d.ts.map +1 -0
  175. package/dist/cjs/utils/usage.js +35 -0
  176. package/dist/cjs/utils/usage.js.map +1 -0
  177. package/dist/core/Agent.d.ts +29 -378
  178. package/dist/core/Agent.d.ts.map +1 -1
  179. package/dist/core/Agent.js +116 -1181
  180. package/dist/core/Agent.js.map +1 -1
  181. package/dist/core/CompactionEngine.d.ts.map +1 -1
  182. package/dist/core/CompactionEngine.js +5 -3
  183. package/dist/core/CompactionEngine.js.map +1 -1
  184. package/dist/core/FlowSpec.d.ts +136 -0
  185. package/dist/core/FlowSpec.d.ts.map +1 -0
  186. package/dist/core/FlowSpec.js +567 -0
  187. package/dist/core/FlowSpec.js.map +1 -0
  188. package/dist/core/Migrate.d.ts +38 -0
  189. package/dist/core/Migrate.d.ts.map +1 -0
  190. package/dist/core/Migrate.js +264 -0
  191. package/dist/core/Migrate.js.map +1 -0
  192. package/dist/core/Prompt.d.ts +54 -0
  193. package/dist/core/Prompt.d.ts.map +1 -0
  194. package/dist/core/Prompt.js +139 -0
  195. package/dist/core/Prompt.js.map +1 -0
  196. package/dist/core/Runner.d.ts +171 -0
  197. package/dist/core/Runner.d.ts.map +1 -0
  198. package/dist/core/Runner.js +1154 -0
  199. package/dist/core/Runner.js.map +1 -0
  200. package/dist/core/Speak.d.ts +37 -0
  201. package/dist/core/Speak.d.ts.map +1 -0
  202. package/dist/core/Speak.js +369 -0
  203. package/dist/core/Speak.js.map +1 -0
  204. package/dist/core/Understand.d.ts +28 -0
  205. package/dist/core/Understand.d.ts.map +1 -0
  206. package/dist/core/Understand.js +353 -0
  207. package/dist/core/Understand.js.map +1 -0
  208. package/dist/core/contracts.d.ts +122 -0
  209. package/dist/core/contracts.d.ts.map +1 -0
  210. package/dist/core/contracts.js +10 -0
  211. package/dist/core/contracts.js.map +1 -0
  212. package/dist/core/falai.d.ts +57 -0
  213. package/dist/core/falai.d.ts.map +1 -0
  214. package/dist/core/falai.js +40 -0
  215. package/dist/core/falai.js.map +1 -0
  216. package/dist/core/predicate.d.ts +9 -0
  217. package/dist/core/predicate.d.ts.map +1 -0
  218. package/dist/core/predicate.js +54 -0
  219. package/dist/core/predicate.js.map +1 -0
  220. package/dist/index.d.ts +26 -31
  221. package/dist/index.d.ts.map +1 -1
  222. package/dist/index.js +19 -24
  223. package/dist/index.js.map +1 -1
  224. package/dist/persistence/MemoryStore.d.ts +15 -0
  225. package/dist/persistence/MemoryStore.d.ts.map +1 -0
  226. package/dist/persistence/MemoryStore.js +35 -0
  227. package/dist/persistence/MemoryStore.js.map +1 -0
  228. package/dist/persistence/MongoStore.d.ts +42 -0
  229. package/dist/persistence/MongoStore.d.ts.map +1 -0
  230. package/dist/persistence/MongoStore.js +56 -0
  231. package/dist/persistence/MongoStore.js.map +1 -0
  232. package/dist/persistence/OpenSearchStore.d.ts +86 -0
  233. package/dist/persistence/OpenSearchStore.d.ts.map +1 -0
  234. package/dist/persistence/OpenSearchStore.js +116 -0
  235. package/dist/persistence/OpenSearchStore.js.map +1 -0
  236. package/dist/persistence/PostgresStore.d.ts +41 -0
  237. package/dist/persistence/PostgresStore.d.ts.map +1 -0
  238. package/dist/persistence/PostgresStore.js +54 -0
  239. package/dist/persistence/PostgresStore.js.map +1 -0
  240. package/dist/persistence/PrismaStore.d.ts +65 -0
  241. package/dist/persistence/PrismaStore.d.ts.map +1 -0
  242. package/dist/persistence/PrismaStore.js +91 -0
  243. package/dist/persistence/PrismaStore.js.map +1 -0
  244. package/dist/persistence/RedisStore.d.ts +34 -0
  245. package/dist/persistence/RedisStore.d.ts.map +1 -0
  246. package/dist/persistence/RedisStore.js +57 -0
  247. package/dist/persistence/RedisStore.js.map +1 -0
  248. package/dist/persistence/SQLiteStore.d.ts +45 -0
  249. package/dist/persistence/SQLiteStore.d.ts.map +1 -0
  250. package/dist/persistence/SQLiteStore.js +70 -0
  251. package/dist/persistence/SQLiteStore.js.map +1 -0
  252. package/dist/persistence/sessionRow.d.ts +14 -0
  253. package/dist/persistence/sessionRow.d.ts.map +1 -0
  254. package/dist/persistence/sessionRow.js +45 -0
  255. package/dist/persistence/sessionRow.js.map +1 -0
  256. package/dist/providers/DeepSeekProvider.d.ts.map +1 -1
  257. package/dist/providers/DeepSeekProvider.js +8 -3
  258. package/dist/providers/DeepSeekProvider.js.map +1 -1
  259. package/dist/providers/GeminiProvider.d.ts +4 -3
  260. package/dist/providers/GeminiProvider.d.ts.map +1 -1
  261. package/dist/providers/GeminiProvider.js +4 -3
  262. package/dist/providers/GeminiProvider.js.map +1 -1
  263. package/dist/providers/OpenAICompatibleProvider.d.ts +4 -0
  264. package/dist/providers/OpenAICompatibleProvider.d.ts.map +1 -1
  265. package/dist/providers/OpenAICompatibleProvider.js +2 -0
  266. package/dist/providers/OpenAICompatibleProvider.js.map +1 -1
  267. package/dist/providers/OpenRouterProvider.d.ts.map +1 -1
  268. package/dist/providers/OpenRouterProvider.js +2 -4
  269. package/dist/providers/OpenRouterProvider.js.map +1 -1
  270. package/dist/providers/ProviderAdapter.d.ts +11 -6
  271. package/dist/providers/ProviderAdapter.d.ts.map +1 -1
  272. package/dist/providers/ProviderAdapter.js +34 -11
  273. package/dist/providers/ProviderAdapter.js.map +1 -1
  274. package/dist/providers/ZaiProvider.d.ts +6 -4
  275. package/dist/providers/ZaiProvider.d.ts.map +1 -1
  276. package/dist/providers/ZaiProvider.js +6 -4
  277. package/dist/providers/ZaiProvider.js.map +1 -1
  278. package/dist/types/agent.d.ts +163 -383
  279. package/dist/types/agent.d.ts.map +1 -1
  280. package/dist/types/agent.js +1 -1
  281. package/dist/types/ai.d.ts +32 -1
  282. package/dist/types/ai.d.ts.map +1 -1
  283. package/dist/types/compaction.d.ts +3 -1
  284. package/dist/types/compaction.d.ts.map +1 -1
  285. package/dist/types/errors.d.ts +9 -12
  286. package/dist/types/errors.d.ts.map +1 -1
  287. package/dist/types/errors.js +12 -15
  288. package/dist/types/errors.js.map +1 -1
  289. package/dist/types/flow.d.ts +265 -513
  290. package/dist/types/flow.d.ts.map +1 -1
  291. package/dist/types/flow.js +7 -1
  292. package/dist/types/flow.js.map +1 -1
  293. package/dist/types/history.d.ts +7 -18
  294. package/dist/types/history.d.ts.map +1 -1
  295. package/dist/types/history.js.map +1 -1
  296. package/dist/types/index.d.ts +9 -15
  297. package/dist/types/index.d.ts.map +1 -1
  298. package/dist/types/index.js +2 -7
  299. package/dist/types/index.js.map +1 -1
  300. package/dist/types/session.d.ts +94 -64
  301. package/dist/types/session.d.ts.map +1 -1
  302. package/dist/types/session.js +5 -1
  303. package/dist/types/session.js.map +1 -1
  304. package/dist/types/tool.d.ts +37 -207
  305. package/dist/types/tool.d.ts.map +1 -1
  306. package/dist/types/tool.js +6 -13
  307. package/dist/types/tool.js.map +1 -1
  308. package/dist/utils/clock.d.ts +28 -0
  309. package/dist/utils/clock.d.ts.map +1 -0
  310. package/dist/utils/clock.js +59 -0
  311. package/dist/utils/clock.js.map +1 -0
  312. package/dist/utils/duration.d.ts +11 -0
  313. package/dist/utils/duration.d.ts.map +1 -0
  314. package/dist/utils/duration.js +26 -0
  315. package/dist/utils/duration.js.map +1 -0
  316. package/dist/utils/history.d.ts +4 -1
  317. package/dist/utils/history.d.ts.map +1 -1
  318. package/dist/utils/history.js +2 -2
  319. package/dist/utils/history.js.map +1 -1
  320. package/dist/utils/index.d.ts +4 -10
  321. package/dist/utils/index.d.ts.map +1 -1
  322. package/dist/utils/index.js +4 -21
  323. package/dist/utils/index.js.map +1 -1
  324. package/dist/utils/json.d.ts +2 -0
  325. package/dist/utils/json.d.ts.map +1 -1
  326. package/dist/utils/json.js +4 -0
  327. package/dist/utils/json.js.map +1 -1
  328. package/dist/utils/outcomes.d.ts +48 -0
  329. package/dist/utils/outcomes.d.ts.map +1 -0
  330. package/dist/utils/outcomes.js +48 -0
  331. package/dist/utils/outcomes.js.map +1 -0
  332. package/dist/utils/phrases.d.ts +25 -0
  333. package/dist/utils/phrases.d.ts.map +1 -0
  334. package/dist/utils/phrases.js +35 -0
  335. package/dist/utils/phrases.js.map +1 -0
  336. package/dist/utils/schema.d.ts +50 -0
  337. package/dist/utils/schema.d.ts.map +1 -0
  338. package/dist/utils/schema.js +129 -0
  339. package/dist/utils/schema.js.map +1 -0
  340. package/dist/utils/streamingMessage.d.ts +3 -2
  341. package/dist/utils/streamingMessage.d.ts.map +1 -1
  342. package/dist/utils/streamingMessage.js +38 -4
  343. package/dist/utils/streamingMessage.js.map +1 -1
  344. package/dist/utils/template.d.ts +22 -150
  345. package/dist/utils/template.d.ts.map +1 -1
  346. package/dist/utils/template.js +61 -351
  347. package/dist/utils/template.js.map +1 -1
  348. package/dist/utils/usage.d.ts +19 -0
  349. package/dist/utils/usage.d.ts.map +1 -0
  350. package/dist/utils/usage.js +31 -0
  351. package/dist/utils/usage.js.map +1 -0
  352. package/docs/README.md +37 -19
  353. package/docs/concepts/architecture.md +117 -239
  354. package/docs/concepts/collection.md +170 -0
  355. package/docs/concepts/pipeline.md +132 -378
  356. package/docs/concepts/runs-and-waits.md +192 -0
  357. package/docs/guides/actions-and-events.md +276 -0
  358. package/docs/guides/branching.md +119 -208
  359. package/docs/guides/compaction.md +63 -158
  360. package/docs/guides/conditions.md +164 -128
  361. package/docs/guides/error-handling.md +170 -164
  362. package/docs/guides/flow-control.md +210 -349
  363. package/docs/guides/flows-from-json.md +224 -0
  364. package/docs/guides/instructions.md +125 -161
  365. package/docs/guides/persistence.md +182 -206
  366. package/docs/guides/streaming.md +50 -114
  367. package/docs/guides/testing.md +284 -0
  368. package/docs/guides/triggers.md +401 -0
  369. package/docs/migration/README.md +8 -15
  370. package/docs/migration/v1-to-v2.md +1 -1
  371. package/docs/migration/v2-3-to-v2-4.md +2 -2
  372. package/docs/migration/v2-6-to-v2-7.md +4 -4
  373. package/docs/migration/v3-to-v4.md +457 -0
  374. package/docs/reference/actions-events-conditions.md +396 -0
  375. package/docs/reference/agent.md +248 -0
  376. package/docs/reference/branches.md +75 -203
  377. package/docs/reference/errors.md +188 -144
  378. package/docs/reference/fields.md +125 -0
  379. package/docs/reference/flow-spec.md +248 -0
  380. package/docs/reference/flow.md +104 -192
  381. package/docs/reference/instruction.md +83 -137
  382. package/docs/reference/outcomes.md +273 -0
  383. package/docs/reference/providers.md +525 -302
  384. package/docs/reference/session.md +210 -0
  385. package/docs/reference/step.md +194 -312
  386. package/docs/reference/stores.md +496 -0
  387. package/docs/reference/tool.md +162 -231
  388. package/docs/reference/trigger.md +200 -0
  389. package/docs/rfc/v4-one-flow.md +477 -0
  390. package/docs/start/01-install.md +59 -44
  391. package/docs/start/02-first-agent.md +97 -147
  392. package/docs/start/03-collect-data.md +78 -183
  393. package/docs/start/04-add-tools.md +159 -227
  394. package/docs/start/05-go-to-production.md +181 -163
  395. package/examples/01-quickstart.ts +26 -16
  396. package/examples/02-fields.ts +75 -0
  397. package/examples/03-tools.ts +79 -119
  398. package/examples/04-instructions.ts +60 -87
  399. package/examples/05-branches.ts +78 -0
  400. package/examples/06-triggers-and-waits.ts +149 -0
  401. package/examples/07-streaming.ts +34 -60
  402. package/examples/08-store-and-migration.ts +97 -0
  403. package/examples/09-flows-from-json.ts +107 -0
  404. package/package.json +11 -6
  405. package/src/core/Agent.ts +126 -1512
  406. package/src/core/CompactionEngine.ts +7 -4
  407. package/src/core/FlowSpec.ts +778 -0
  408. package/src/core/Migrate.ts +256 -0
  409. package/src/core/Prompt.ts +162 -0
  410. package/src/core/Runner.ts +1214 -0
  411. package/src/core/Speak.ts +460 -0
  412. package/src/core/Understand.ts +423 -0
  413. package/src/core/contracts.ts +111 -0
  414. package/src/core/falai.ts +86 -0
  415. package/src/core/predicate.ts +56 -0
  416. package/src/index.ts +120 -147
  417. package/src/persistence/MemoryStore.ts +37 -0
  418. package/src/persistence/MongoStore.ts +89 -0
  419. package/src/persistence/OpenSearchStore.ts +153 -0
  420. package/src/persistence/PostgresStore.ts +89 -0
  421. package/src/persistence/PrismaStore.ts +127 -0
  422. package/src/persistence/RedisStore.ts +90 -0
  423. package/src/persistence/SQLiteStore.ts +103 -0
  424. package/src/persistence/sessionRow.ts +45 -0
  425. package/src/providers/DeepSeekProvider.ts +8 -3
  426. package/src/providers/GeminiProvider.ts +4 -3
  427. package/src/providers/OpenAICompatibleProvider.ts +6 -0
  428. package/src/providers/OpenRouterProvider.ts +2 -4
  429. package/src/providers/ProviderAdapter.ts +46 -13
  430. package/src/providers/ZaiProvider.ts +6 -4
  431. package/src/types/agent.ts +135 -397
  432. package/src/types/ai.ts +33 -1
  433. package/src/types/compaction.ts +3 -1
  434. package/src/types/errors.ts +13 -16
  435. package/src/types/flow.ts +249 -550
  436. package/src/types/history.ts +7 -20
  437. package/src/types/index.ts +88 -139
  438. package/src/types/session.ts +135 -70
  439. package/src/types/tool.ts +42 -267
  440. package/src/utils/clock.ts +70 -0
  441. package/src/utils/duration.ts +33 -0
  442. package/src/utils/history.ts +3 -2
  443. package/src/utils/index.ts +8 -66
  444. package/src/utils/json.ts +5 -0
  445. package/src/utils/outcomes.ts +56 -0
  446. package/src/utils/phrases.ts +40 -0
  447. package/src/utils/schema.ts +145 -0
  448. package/src/utils/streamingMessage.ts +34 -4
  449. package/src/utils/template.ts +63 -418
  450. package/src/utils/usage.ts +37 -0
  451. package/dist/adapters/MemoryAdapter.d.ts +0 -47
  452. package/dist/adapters/MemoryAdapter.d.ts.map +0 -1
  453. package/dist/adapters/MemoryAdapter.js +0 -204
  454. package/dist/adapters/MemoryAdapter.js.map +0 -1
  455. package/dist/adapters/MongoAdapter.d.ts +0 -97
  456. package/dist/adapters/MongoAdapter.d.ts.map +0 -1
  457. package/dist/adapters/MongoAdapter.js +0 -196
  458. package/dist/adapters/MongoAdapter.js.map +0 -1
  459. package/dist/adapters/OpenSearchAdapter.d.ts +0 -169
  460. package/dist/adapters/OpenSearchAdapter.d.ts.map +0 -1
  461. package/dist/adapters/OpenSearchAdapter.js +0 -471
  462. package/dist/adapters/OpenSearchAdapter.js.map +0 -1
  463. package/dist/adapters/PostgreSQLAdapter.d.ts +0 -85
  464. package/dist/adapters/PostgreSQLAdapter.d.ts.map +0 -1
  465. package/dist/adapters/PostgreSQLAdapter.js +0 -308
  466. package/dist/adapters/PostgreSQLAdapter.js.map +0 -1
  467. package/dist/adapters/PrismaAdapter.d.ts +0 -115
  468. package/dist/adapters/PrismaAdapter.d.ts.map +0 -1
  469. package/dist/adapters/PrismaAdapter.js +0 -406
  470. package/dist/adapters/PrismaAdapter.js.map +0 -1
  471. package/dist/adapters/RedisAdapter.d.ts +0 -72
  472. package/dist/adapters/RedisAdapter.d.ts.map +0 -1
  473. package/dist/adapters/RedisAdapter.js +0 -286
  474. package/dist/adapters/RedisAdapter.js.map +0 -1
  475. package/dist/adapters/SQLiteAdapter.d.ts +0 -86
  476. package/dist/adapters/SQLiteAdapter.d.ts.map +0 -1
  477. package/dist/adapters/SQLiteAdapter.js +0 -337
  478. package/dist/adapters/SQLiteAdapter.js.map +0 -1
  479. package/dist/adapters/index.d.ts +0 -17
  480. package/dist/adapters/index.d.ts.map +0 -1
  481. package/dist/adapters/index.js +0 -11
  482. package/dist/adapters/index.js.map +0 -1
  483. package/dist/adapters/sessionRow.d.ts +0 -22
  484. package/dist/adapters/sessionRow.d.ts.map +0 -1
  485. package/dist/adapters/sessionRow.js +0 -48
  486. package/dist/adapters/sessionRow.js.map +0 -1
  487. package/dist/cjs/adapters/MemoryAdapter.d.ts +0 -47
  488. package/dist/cjs/adapters/MemoryAdapter.d.ts.map +0 -1
  489. package/dist/cjs/adapters/MemoryAdapter.js +0 -208
  490. package/dist/cjs/adapters/MemoryAdapter.js.map +0 -1
  491. package/dist/cjs/adapters/MongoAdapter.d.ts +0 -97
  492. package/dist/cjs/adapters/MongoAdapter.d.ts.map +0 -1
  493. package/dist/cjs/adapters/MongoAdapter.js +0 -200
  494. package/dist/cjs/adapters/MongoAdapter.js.map +0 -1
  495. package/dist/cjs/adapters/OpenSearchAdapter.d.ts +0 -169
  496. package/dist/cjs/adapters/OpenSearchAdapter.d.ts.map +0 -1
  497. package/dist/cjs/adapters/OpenSearchAdapter.js +0 -475
  498. package/dist/cjs/adapters/OpenSearchAdapter.js.map +0 -1
  499. package/dist/cjs/adapters/PostgreSQLAdapter.d.ts +0 -85
  500. package/dist/cjs/adapters/PostgreSQLAdapter.d.ts.map +0 -1
  501. package/dist/cjs/adapters/PostgreSQLAdapter.js +0 -312
  502. package/dist/cjs/adapters/PostgreSQLAdapter.js.map +0 -1
  503. package/dist/cjs/adapters/PrismaAdapter.d.ts +0 -115
  504. package/dist/cjs/adapters/PrismaAdapter.d.ts.map +0 -1
  505. package/dist/cjs/adapters/PrismaAdapter.js +0 -410
  506. package/dist/cjs/adapters/PrismaAdapter.js.map +0 -1
  507. package/dist/cjs/adapters/RedisAdapter.d.ts +0 -72
  508. package/dist/cjs/adapters/RedisAdapter.d.ts.map +0 -1
  509. package/dist/cjs/adapters/RedisAdapter.js +0 -290
  510. package/dist/cjs/adapters/RedisAdapter.js.map +0 -1
  511. package/dist/cjs/adapters/SQLiteAdapter.d.ts +0 -86
  512. package/dist/cjs/adapters/SQLiteAdapter.d.ts.map +0 -1
  513. package/dist/cjs/adapters/SQLiteAdapter.js +0 -341
  514. package/dist/cjs/adapters/SQLiteAdapter.js.map +0 -1
  515. package/dist/cjs/adapters/index.d.ts +0 -17
  516. package/dist/cjs/adapters/index.d.ts.map +0 -1
  517. package/dist/cjs/adapters/index.js +0 -21
  518. package/dist/cjs/adapters/index.js.map +0 -1
  519. package/dist/cjs/adapters/sessionRow.d.ts +0 -22
  520. package/dist/cjs/adapters/sessionRow.d.ts.map +0 -1
  521. package/dist/cjs/adapters/sessionRow.js +0 -52
  522. package/dist/cjs/adapters/sessionRow.js.map +0 -1
  523. package/dist/cjs/constants/index.d.ts +0 -1
  524. package/dist/cjs/constants/index.d.ts.map +0 -1
  525. package/dist/cjs/constants/index.js +0 -4
  526. package/dist/cjs/constants/index.js.map +0 -1
  527. package/dist/cjs/core/AutoChainExecutor.d.ts +0 -97
  528. package/dist/cjs/core/AutoChainExecutor.d.ts.map +0 -1
  529. package/dist/cjs/core/AutoChainExecutor.js +0 -288
  530. package/dist/cjs/core/AutoChainExecutor.js.map +0 -1
  531. package/dist/cjs/core/BranchEvaluator.d.ts +0 -55
  532. package/dist/cjs/core/BranchEvaluator.d.ts.map +0 -1
  533. package/dist/cjs/core/BranchEvaluator.js +0 -125
  534. package/dist/cjs/core/BranchEvaluator.js.map +0 -1
  535. package/dist/cjs/core/DirectiveChainTracker.d.ts +0 -49
  536. package/dist/cjs/core/DirectiveChainTracker.d.ts.map +0 -1
  537. package/dist/cjs/core/DirectiveChainTracker.js +0 -121
  538. package/dist/cjs/core/DirectiveChainTracker.js.map +0 -1
  539. package/dist/cjs/core/Events.d.ts +0 -26
  540. package/dist/cjs/core/Events.d.ts.map +0 -1
  541. package/dist/cjs/core/Events.js +0 -144
  542. package/dist/cjs/core/Events.js.map +0 -1
  543. package/dist/cjs/core/Flow.d.ts +0 -183
  544. package/dist/cjs/core/Flow.d.ts.map +0 -1
  545. package/dist/cjs/core/Flow.js +0 -551
  546. package/dist/cjs/core/Flow.js.map +0 -1
  547. package/dist/cjs/core/FlowRouter.d.ts +0 -183
  548. package/dist/cjs/core/FlowRouter.d.ts.map +0 -1
  549. package/dist/cjs/core/FlowRouter.js +0 -1047
  550. package/dist/cjs/core/FlowRouter.js.map +0 -1
  551. package/dist/cjs/core/PersistenceManager.d.ts +0 -114
  552. package/dist/cjs/core/PersistenceManager.d.ts.map +0 -1
  553. package/dist/cjs/core/PersistenceManager.js +0 -336
  554. package/dist/cjs/core/PersistenceManager.js.map +0 -1
  555. package/dist/cjs/core/PromptComposer.d.ts +0 -47
  556. package/dist/cjs/core/PromptComposer.d.ts.map +0 -1
  557. package/dist/cjs/core/PromptComposer.js +0 -397
  558. package/dist/cjs/core/PromptComposer.js.map +0 -1
  559. package/dist/cjs/core/PromptSectionCache.d.ts +0 -48
  560. package/dist/cjs/core/PromptSectionCache.d.ts.map +0 -1
  561. package/dist/cjs/core/PromptSectionCache.js +0 -108
  562. package/dist/cjs/core/PromptSectionCache.js.map +0 -1
  563. package/dist/cjs/core/ResponseEngine.d.ts +0 -43
  564. package/dist/cjs/core/ResponseEngine.d.ts.map +0 -1
  565. package/dist/cjs/core/ResponseEngine.js +0 -235
  566. package/dist/cjs/core/ResponseEngine.js.map +0 -1
  567. package/dist/cjs/core/ResponseGenerationError.d.ts +0 -30
  568. package/dist/cjs/core/ResponseGenerationError.d.ts.map +0 -1
  569. package/dist/cjs/core/ResponseGenerationError.js +0 -35
  570. package/dist/cjs/core/ResponseGenerationError.js.map +0 -1
  571. package/dist/cjs/core/ResponseModal.d.ts +0 -305
  572. package/dist/cjs/core/ResponseModal.d.ts.map +0 -1
  573. package/dist/cjs/core/ResponseModal.js +0 -1414
  574. package/dist/cjs/core/ResponseModal.js.map +0 -1
  575. package/dist/cjs/core/ResponsePipeline.d.ts +0 -220
  576. package/dist/cjs/core/ResponsePipeline.d.ts.map +0 -1
  577. package/dist/cjs/core/ResponsePipeline.js +0 -1040
  578. package/dist/cjs/core/ResponsePipeline.js.map +0 -1
  579. package/dist/cjs/core/SessionFinalizer.d.ts +0 -34
  580. package/dist/cjs/core/SessionFinalizer.d.ts.map +0 -1
  581. package/dist/cjs/core/SessionFinalizer.js +0 -88
  582. package/dist/cjs/core/SessionFinalizer.js.map +0 -1
  583. package/dist/cjs/core/SessionManager.d.ts +0 -112
  584. package/dist/cjs/core/SessionManager.d.ts.map +0 -1
  585. package/dist/cjs/core/SessionManager.js +0 -308
  586. package/dist/cjs/core/SessionManager.js.map +0 -1
  587. package/dist/cjs/core/SignalCoordinator.d.ts +0 -103
  588. package/dist/cjs/core/SignalCoordinator.d.ts.map +0 -1
  589. package/dist/cjs/core/SignalCoordinator.js +0 -207
  590. package/dist/cjs/core/SignalCoordinator.js.map +0 -1
  591. package/dist/cjs/core/SignalEvaluator.d.ts +0 -86
  592. package/dist/cjs/core/SignalEvaluator.d.ts.map +0 -1
  593. package/dist/cjs/core/SignalEvaluator.js +0 -319
  594. package/dist/cjs/core/SignalEvaluator.js.map +0 -1
  595. package/dist/cjs/core/SignalProcessor.d.ts +0 -152
  596. package/dist/cjs/core/SignalProcessor.d.ts.map +0 -1
  597. package/dist/cjs/core/SignalProcessor.js +0 -505
  598. package/dist/cjs/core/SignalProcessor.js.map +0 -1
  599. package/dist/cjs/core/Step.d.ts +0 -184
  600. package/dist/cjs/core/Step.d.ts.map +0 -1
  601. package/dist/cjs/core/Step.js +0 -599
  602. package/dist/cjs/core/Step.js.map +0 -1
  603. package/dist/cjs/core/StepLifecycle.d.ts +0 -43
  604. package/dist/cjs/core/StepLifecycle.d.ts.map +0 -1
  605. package/dist/cjs/core/StepLifecycle.js +0 -180
  606. package/dist/cjs/core/StepLifecycle.js.map +0 -1
  607. package/dist/cjs/core/StreamingToolExecutor.d.ts +0 -142
  608. package/dist/cjs/core/StreamingToolExecutor.d.ts.map +0 -1
  609. package/dist/cjs/core/StreamingToolExecutor.js +0 -490
  610. package/dist/cjs/core/StreamingToolExecutor.js.map +0 -1
  611. package/dist/cjs/core/ToolLoopExecutor.d.ts +0 -133
  612. package/dist/cjs/core/ToolLoopExecutor.d.ts.map +0 -1
  613. package/dist/cjs/core/ToolLoopExecutor.js +0 -568
  614. package/dist/cjs/core/ToolLoopExecutor.js.map +0 -1
  615. package/dist/cjs/core/ToolManager.d.ts +0 -250
  616. package/dist/cjs/core/ToolManager.d.ts.map +0 -1
  617. package/dist/cjs/core/ToolManager.js +0 -1104
  618. package/dist/cjs/core/ToolManager.js.map +0 -1
  619. package/dist/cjs/core/createAgent.d.ts +0 -35
  620. package/dist/cjs/core/createAgent.d.ts.map +0 -1
  621. package/dist/cjs/core/createAgent.js +0 -39
  622. package/dist/cjs/core/createAgent.js.map +0 -1
  623. package/dist/cjs/core/flow-namespace.d.ts +0 -64
  624. package/dist/cjs/core/flow-namespace.d.ts.map +0 -1
  625. package/dist/cjs/core/flow-namespace.js +0 -182
  626. package/dist/cjs/core/flow-namespace.js.map +0 -1
  627. package/dist/cjs/core/toolGates.d.ts +0 -24
  628. package/dist/cjs/core/toolGates.d.ts.map +0 -1
  629. package/dist/cjs/core/toolGates.js +0 -52
  630. package/dist/cjs/core/toolGates.js.map +0 -1
  631. package/dist/cjs/types/persistence.d.ts +0 -254
  632. package/dist/cjs/types/persistence.d.ts.map +0 -1
  633. package/dist/cjs/types/persistence.js +0 -7
  634. package/dist/cjs/types/persistence.js.map +0 -1
  635. package/dist/cjs/types/prompt-cache.d.ts +0 -15
  636. package/dist/cjs/types/prompt-cache.d.ts.map +0 -1
  637. package/dist/cjs/types/prompt-cache.js +0 -6
  638. package/dist/cjs/types/prompt-cache.js.map +0 -1
  639. package/dist/cjs/types/signals.d.ts +0 -263
  640. package/dist/cjs/types/signals.d.ts.map +0 -1
  641. package/dist/cjs/types/signals.js +0 -11
  642. package/dist/cjs/types/signals.js.map +0 -1
  643. package/dist/cjs/types/template.d.ts +0 -84
  644. package/dist/cjs/types/template.d.ts.map +0 -1
  645. package/dist/cjs/types/template.js +0 -3
  646. package/dist/cjs/types/template.js.map +0 -1
  647. package/dist/cjs/utils/condition.d.ts +0 -63
  648. package/dist/cjs/utils/condition.d.ts.map +0 -1
  649. package/dist/cjs/utils/condition.js +0 -239
  650. package/dist/cjs/utils/condition.js.map +0 -1
  651. package/dist/cjs/utils/event.d.ts +0 -6
  652. package/dist/cjs/utils/event.d.ts.map +0 -1
  653. package/dist/cjs/utils/event.js +0 -20
  654. package/dist/cjs/utils/event.js.map +0 -1
  655. package/dist/cjs/utils/id.d.ts +0 -33
  656. package/dist/cjs/utils/id.d.ts.map +0 -1
  657. package/dist/cjs/utils/id.js +0 -84
  658. package/dist/cjs/utils/id.js.map +0 -1
  659. package/dist/cjs/utils/serialize.d.ts +0 -36
  660. package/dist/cjs/utils/serialize.d.ts.map +0 -1
  661. package/dist/cjs/utils/serialize.js +0 -77
  662. package/dist/cjs/utils/serialize.js.map +0 -1
  663. package/dist/cjs/utils/session.d.ts +0 -124
  664. package/dist/cjs/utils/session.d.ts.map +0 -1
  665. package/dist/cjs/utils/session.js +0 -396
  666. package/dist/cjs/utils/session.js.map +0 -1
  667. package/dist/constants/index.d.ts +0 -2
  668. package/dist/constants/index.d.ts.map +0 -1
  669. package/dist/constants/index.js +0 -4
  670. package/dist/constants/index.js.map +0 -1
  671. package/dist/core/AutoChainExecutor.d.ts +0 -97
  672. package/dist/core/AutoChainExecutor.d.ts.map +0 -1
  673. package/dist/core/AutoChainExecutor.js +0 -284
  674. package/dist/core/AutoChainExecutor.js.map +0 -1
  675. package/dist/core/BranchEvaluator.d.ts +0 -55
  676. package/dist/core/BranchEvaluator.d.ts.map +0 -1
  677. package/dist/core/BranchEvaluator.js +0 -121
  678. package/dist/core/BranchEvaluator.js.map +0 -1
  679. package/dist/core/DirectiveChainTracker.d.ts +0 -49
  680. package/dist/core/DirectiveChainTracker.d.ts.map +0 -1
  681. package/dist/core/DirectiveChainTracker.js +0 -117
  682. package/dist/core/DirectiveChainTracker.js.map +0 -1
  683. package/dist/core/Events.d.ts +0 -26
  684. package/dist/core/Events.d.ts.map +0 -1
  685. package/dist/core/Events.js +0 -137
  686. package/dist/core/Events.js.map +0 -1
  687. package/dist/core/Flow.d.ts +0 -183
  688. package/dist/core/Flow.d.ts.map +0 -1
  689. package/dist/core/Flow.js +0 -547
  690. package/dist/core/Flow.js.map +0 -1
  691. package/dist/core/FlowRouter.d.ts +0 -183
  692. package/dist/core/FlowRouter.d.ts.map +0 -1
  693. package/dist/core/FlowRouter.js +0 -1043
  694. package/dist/core/FlowRouter.js.map +0 -1
  695. package/dist/core/PersistenceManager.d.ts +0 -114
  696. package/dist/core/PersistenceManager.d.ts.map +0 -1
  697. package/dist/core/PersistenceManager.js +0 -332
  698. package/dist/core/PersistenceManager.js.map +0 -1
  699. package/dist/core/PromptComposer.d.ts +0 -47
  700. package/dist/core/PromptComposer.d.ts.map +0 -1
  701. package/dist/core/PromptComposer.js +0 -393
  702. package/dist/core/PromptComposer.js.map +0 -1
  703. package/dist/core/PromptSectionCache.d.ts +0 -48
  704. package/dist/core/PromptSectionCache.d.ts.map +0 -1
  705. package/dist/core/PromptSectionCache.js +0 -104
  706. package/dist/core/PromptSectionCache.js.map +0 -1
  707. package/dist/core/ResponseEngine.d.ts +0 -43
  708. package/dist/core/ResponseEngine.d.ts.map +0 -1
  709. package/dist/core/ResponseEngine.js +0 -231
  710. package/dist/core/ResponseEngine.js.map +0 -1
  711. package/dist/core/ResponseGenerationError.d.ts +0 -30
  712. package/dist/core/ResponseGenerationError.d.ts.map +0 -1
  713. package/dist/core/ResponseGenerationError.js +0 -31
  714. package/dist/core/ResponseGenerationError.js.map +0 -1
  715. package/dist/core/ResponseModal.d.ts +0 -305
  716. package/dist/core/ResponseModal.d.ts.map +0 -1
  717. package/dist/core/ResponseModal.js +0 -1410
  718. package/dist/core/ResponseModal.js.map +0 -1
  719. package/dist/core/ResponsePipeline.d.ts +0 -220
  720. package/dist/core/ResponsePipeline.d.ts.map +0 -1
  721. package/dist/core/ResponsePipeline.js +0 -1035
  722. package/dist/core/ResponsePipeline.js.map +0 -1
  723. package/dist/core/SessionFinalizer.d.ts +0 -34
  724. package/dist/core/SessionFinalizer.d.ts.map +0 -1
  725. package/dist/core/SessionFinalizer.js +0 -84
  726. package/dist/core/SessionFinalizer.js.map +0 -1
  727. package/dist/core/SessionManager.d.ts +0 -112
  728. package/dist/core/SessionManager.d.ts.map +0 -1
  729. package/dist/core/SessionManager.js +0 -301
  730. package/dist/core/SessionManager.js.map +0 -1
  731. package/dist/core/SignalCoordinator.d.ts +0 -103
  732. package/dist/core/SignalCoordinator.d.ts.map +0 -1
  733. package/dist/core/SignalCoordinator.js +0 -203
  734. package/dist/core/SignalCoordinator.js.map +0 -1
  735. package/dist/core/SignalEvaluator.d.ts +0 -86
  736. package/dist/core/SignalEvaluator.d.ts.map +0 -1
  737. package/dist/core/SignalEvaluator.js +0 -312
  738. package/dist/core/SignalEvaluator.js.map +0 -1
  739. package/dist/core/SignalProcessor.d.ts +0 -152
  740. package/dist/core/SignalProcessor.d.ts.map +0 -1
  741. package/dist/core/SignalProcessor.js +0 -498
  742. package/dist/core/SignalProcessor.js.map +0 -1
  743. package/dist/core/Step.d.ts +0 -184
  744. package/dist/core/Step.d.ts.map +0 -1
  745. package/dist/core/Step.js +0 -594
  746. package/dist/core/Step.js.map +0 -1
  747. package/dist/core/StepLifecycle.d.ts +0 -43
  748. package/dist/core/StepLifecycle.d.ts.map +0 -1
  749. package/dist/core/StepLifecycle.js +0 -176
  750. package/dist/core/StepLifecycle.js.map +0 -1
  751. package/dist/core/StreamingToolExecutor.d.ts +0 -142
  752. package/dist/core/StreamingToolExecutor.d.ts.map +0 -1
  753. package/dist/core/StreamingToolExecutor.js +0 -483
  754. package/dist/core/StreamingToolExecutor.js.map +0 -1
  755. package/dist/core/ToolLoopExecutor.d.ts +0 -133
  756. package/dist/core/ToolLoopExecutor.d.ts.map +0 -1
  757. package/dist/core/ToolLoopExecutor.js +0 -564
  758. package/dist/core/ToolLoopExecutor.js.map +0 -1
  759. package/dist/core/ToolManager.d.ts +0 -250
  760. package/dist/core/ToolManager.d.ts.map +0 -1
  761. package/dist/core/ToolManager.js +0 -1098
  762. package/dist/core/ToolManager.js.map +0 -1
  763. package/dist/core/createAgent.d.ts +0 -35
  764. package/dist/core/createAgent.d.ts.map +0 -1
  765. package/dist/core/createAgent.js +0 -36
  766. package/dist/core/createAgent.js.map +0 -1
  767. package/dist/core/flow-namespace.d.ts +0 -64
  768. package/dist/core/flow-namespace.d.ts.map +0 -1
  769. package/dist/core/flow-namespace.js +0 -179
  770. package/dist/core/flow-namespace.js.map +0 -1
  771. package/dist/core/toolGates.d.ts +0 -24
  772. package/dist/core/toolGates.d.ts.map +0 -1
  773. package/dist/core/toolGates.js +0 -49
  774. package/dist/core/toolGates.js.map +0 -1
  775. package/dist/types/persistence.d.ts +0 -254
  776. package/dist/types/persistence.d.ts.map +0 -1
  777. package/dist/types/persistence.js +0 -6
  778. package/dist/types/persistence.js.map +0 -1
  779. package/dist/types/prompt-cache.d.ts +0 -15
  780. package/dist/types/prompt-cache.d.ts.map +0 -1
  781. package/dist/types/prompt-cache.js +0 -5
  782. package/dist/types/prompt-cache.js.map +0 -1
  783. package/dist/types/signals.d.ts +0 -263
  784. package/dist/types/signals.d.ts.map +0 -1
  785. package/dist/types/signals.js +0 -10
  786. package/dist/types/signals.js.map +0 -1
  787. package/dist/types/template.d.ts +0 -84
  788. package/dist/types/template.d.ts.map +0 -1
  789. package/dist/types/template.js +0 -2
  790. package/dist/types/template.js.map +0 -1
  791. package/dist/utils/condition.d.ts +0 -63
  792. package/dist/utils/condition.d.ts.map +0 -1
  793. package/dist/utils/condition.js +0 -230
  794. package/dist/utils/condition.js.map +0 -1
  795. package/dist/utils/event.d.ts +0 -6
  796. package/dist/utils/event.d.ts.map +0 -1
  797. package/dist/utils/event.js +0 -17
  798. package/dist/utils/event.js.map +0 -1
  799. package/dist/utils/id.d.ts +0 -33
  800. package/dist/utils/id.d.ts.map +0 -1
  801. package/dist/utils/id.js +0 -77
  802. package/dist/utils/id.js.map +0 -1
  803. package/dist/utils/serialize.d.ts +0 -36
  804. package/dist/utils/serialize.d.ts.map +0 -1
  805. package/dist/utils/serialize.js +0 -72
  806. package/dist/utils/serialize.js.map +0 -1
  807. package/dist/utils/session.d.ts +0 -124
  808. package/dist/utils/session.d.ts.map +0 -1
  809. package/dist/utils/session.js +0 -379
  810. package/dist/utils/session.js.map +0 -1
  811. package/docs/concepts/directives.md +0 -369
  812. package/docs/reference/adapters.md +0 -543
  813. package/docs/reference/create-agent.md +0 -216
  814. package/docs/reference/directive.md +0 -242
  815. package/docs/reference/signals.md +0 -368
  816. package/examples/02-data-extraction.ts +0 -90
  817. package/examples/05-branching.ts +0 -140
  818. package/examples/06-flow-control.ts +0 -103
  819. package/examples/08-persistence.ts +0 -98
  820. package/examples/09-signals.ts +0 -144
  821. package/src/adapters/MemoryAdapter.ts +0 -281
  822. package/src/adapters/MongoAdapter.ts +0 -341
  823. package/src/adapters/OpenSearchAdapter.ts +0 -693
  824. package/src/adapters/PostgreSQLAdapter.ts +0 -487
  825. package/src/adapters/PrismaAdapter.ts +0 -617
  826. package/src/adapters/RedisAdapter.ts +0 -439
  827. package/src/adapters/SQLiteAdapter.ts +0 -496
  828. package/src/adapters/index.ts +0 -43
  829. package/src/adapters/sessionRow.ts +0 -57
  830. package/src/constants/index.ts +0 -2
  831. package/src/core/AutoChainExecutor.ts +0 -397
  832. package/src/core/BranchEvaluator.ts +0 -161
  833. package/src/core/DirectiveChainTracker.ts +0 -144
  834. package/src/core/Events.ts +0 -164
  835. package/src/core/Flow.ts +0 -665
  836. package/src/core/FlowRouter.ts +0 -1540
  837. package/src/core/PersistenceManager.ts +0 -446
  838. package/src/core/PromptComposer.ts +0 -448
  839. package/src/core/PromptSectionCache.ts +0 -125
  840. package/src/core/ResponseEngine.ts +0 -338
  841. package/src/core/ResponseGenerationError.ts +0 -53
  842. package/src/core/ResponseModal.ts +0 -1902
  843. package/src/core/ResponsePipeline.ts +0 -1404
  844. package/src/core/SessionFinalizer.ts +0 -108
  845. package/src/core/SessionManager.ts +0 -372
  846. package/src/core/SignalCoordinator.ts +0 -263
  847. package/src/core/SignalEvaluator.ts +0 -404
  848. package/src/core/SignalProcessor.ts +0 -663
  849. package/src/core/Step.ts +0 -782
  850. package/src/core/StepLifecycle.ts +0 -242
  851. package/src/core/StreamingToolExecutor.ts +0 -609
  852. package/src/core/ToolLoopExecutor.ts +0 -749
  853. package/src/core/ToolManager.ts +0 -1379
  854. package/src/core/createAgent.ts +0 -40
  855. package/src/core/flow-namespace.ts +0 -227
  856. package/src/core/toolGates.ts +0 -72
  857. package/src/types/persistence.ts +0 -303
  858. package/src/types/prompt-cache.ts +0 -17
  859. package/src/types/signals.ts +0 -338
  860. package/src/types/template.ts +0 -98
  861. package/src/utils/condition.ts +0 -296
  862. package/src/utils/event.ts +0 -16
  863. package/src/utils/id.ts +0 -91
  864. package/src/utils/serialize.ts +0 -86
  865. package/src/utils/session.ts +0 -501
@@ -1,288 +0,0 @@
1
- "use strict";
2
- /**
3
- * Auto-step chain executor.
4
- *
5
- * Walks consecutive `auto: true` steps in a single turn without making LLM calls.
6
- * Each auto-step runs its pre-LLM hooks (onEnter, prepare), evaluates skipIf/requires,
7
- * applies state writes, resolves branches, and advances to the next step.
8
- *
9
- * The chain terminates when:
10
- * - An interactive step (auto !== true) is reached → returned as `resolvedStep`
11
- * - A `prepare` returns `{ halt: true, reply? }` → turn ends with verbatim reply
12
- * - A position-changing directive (goTo, goToStep, complete) is returned
13
- * - The last auto-step has no successor → flow is complete
14
- * - The chain exceeds `maxAutoStepsPerTurn` → throws FlowConfigurationError
15
- *
16
- * Implements Algorithm 1 from `.kiro/specs/auto-steps/design.md`.
17
- */
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.AutoChainExecutor = void 0;
20
- const Step_js_1 = require("./Step.js");
21
- const flow_namespace_js_1 = require("./flow-namespace.js");
22
- const index_js_1 = require("../utils/index.js");
23
- const template_js_1 = require("../utils/template.js");
24
- const condition_js_1 = require("../utils/condition.js");
25
- /**
26
- * Executes the auto-step chain for a single turn.
27
- *
28
- * Algorithm 1 from design.md — walks while `currentStep.auto === true`,
29
- * executing skipIf → requires → onEnter/prepare → state writes →
30
- * halt check → position directives → branches → linear advance.
31
- */
32
- class AutoChainExecutor {
33
- constructor(options) {
34
- this.options = options;
35
- }
36
- /**
37
- * Run the auto-step chain starting from the current step on the session.
38
- */
39
- async run(params) {
40
- const { context, flow, history = [] } = params;
41
- const { maxAutoStepsPerTurn } = this.options;
42
- let { session } = params;
43
- const visited = [];
44
- while (true) {
45
- // Resolve the current step from session
46
- const currentStepId = session.currentStep?.id;
47
- if (!currentStepId) {
48
- // No current step — nothing to walk. Return undefined resolvedStep.
49
- return { session };
50
- }
51
- const step = flow.getStep(currentStepId);
52
- if (!step) {
53
- // Step not found in flow — shouldn't happen, but bail gracefully.
54
- return { session };
55
- }
56
- // If the step is not auto, hand off to the interactive path
57
- if (!step.auto) {
58
- return { resolvedStep: step, session };
59
- }
60
- // Track visited steps for cap/cycle detection
61
- visited.push(step.id);
62
- if (visited.length > maxAutoStepsPerTurn) {
63
- throw new Step_js_1.FlowConfigurationError(`[FlowConfigurationError] Auto-step chain exceeded limit: visited ${visited.length} steps which exceeds maxAutoStepsPerTurn (${maxAutoStepsPerTurn}). ` +
64
- `Break the cycle or increase maxAutoStepsPerTurn. Visited: ${visited.join(' → ')}.`);
65
- }
66
- index_js_1.logger.debug(`[AutoChainExecutor] Processing auto-step: ${step.id} (${visited.length}/${maxAutoStepsPerTurn})`);
67
- // STEP 1: skip evaluation (code-only predicates, OR semantics)
68
- if (step.skip) {
69
- const templateContext = (0, template_js_1.createTemplateContext)({
70
- context,
71
- data: session.data,
72
- session,
73
- history,
74
- });
75
- const skipResult = await step.evaluateSkip(templateContext);
76
- if (skipResult.shouldSkip) {
77
- index_js_1.logger.debug(`[AutoChainExecutor] Skipping auto-step ${step.id} due to skip condition`);
78
- const nextSteps = step.getTransitions();
79
- if (nextSteps.length === 0) {
80
- // Last step was skipped and has no successor → flow complete
81
- return { stoppedReason: 'last_step', session };
82
- }
83
- session = (0, index_js_1.enterStep)(session, nextSteps[0].id, nextSteps[0].description);
84
- continue;
85
- }
86
- }
87
- // STEP 2: requires assertion
88
- if (step.requires && step.requires.length > 0) {
89
- const sessionData = (session.data || {});
90
- const missing = step.requires.filter(field => sessionData[String(field)] === undefined);
91
- if (missing.length > 0) {
92
- throw new Step_js_1.FlowConfigurationError(`[FlowConfigurationError] Auto-step "${step.id}" missing required fields: fields [${missing.join(', ')}] must be populated before this step runs. ` +
93
- `Ensure a preceding step or hook populates these fields.`);
94
- }
95
- }
96
- // STEP 3: Run pre-LLM hooks (onEnter, prepare) and collect directives
97
- const merged = await this.runStepHooks(step, session, context);
98
- // Apply state writes immediately so subsequent steps see them
99
- if (merged) {
100
- if (merged.dataUpdate && Object.keys(merged.dataUpdate).length > 0) {
101
- session = (0, index_js_1.mergeCollected)(session, merged.dataUpdate);
102
- index_js_1.logger.debug(`[AutoChainExecutor] Applied dataUpdate from step ${step.id}`);
103
- }
104
- if (merged.contextUpdate && Object.keys(merged.contextUpdate).length > 0) {
105
- // contextUpdate is reserved for future agent-level application.
106
- // The caller can read mergedDirective.contextUpdate and apply it externally.
107
- index_js_1.logger.debug(`[AutoChainExecutor] contextUpdate from step ${step.id} will be applied by caller`);
108
- }
109
- // STEP 4: halt short-circuit
110
- if (merged.halt) {
111
- index_js_1.logger.debug(`[AutoChainExecutor] Halt directive from step ${step.id}`);
112
- return {
113
- resolvedStep: step,
114
- mergedDirective: merged,
115
- stoppedReason: 'halt',
116
- session,
117
- };
118
- }
119
- // STEP 5: position-changing directive (goToStep, goTo, complete)
120
- if (merged.goToStep) {
121
- // String form targets the current flow; object form carrying
122
- // a different `flow` defers to the pipeline for cross-flow
123
- // resolution (same as goTo).
124
- const goTarget = typeof merged.goToStep === "string"
125
- ? { step: merged.goToStep, flowId: undefined }
126
- : { step: merged.goToStep.step, flowId: merged.goToStep.flow };
127
- if (goTarget.flowId && goTarget.flowId !== flow.id) {
128
- return {
129
- resolvedStep: step,
130
- mergedDirective: merged,
131
- stoppedReason: 'goto',
132
- session,
133
- };
134
- }
135
- const targetStep = flow.getStep(goTarget.step);
136
- if (!targetStep) {
137
- throw new Step_js_1.FlowConfigurationError(`[FlowConfigurationError] Auto-step "${step.id}" goToStep targets unknown step: "${goTarget.step}" does not exist in the current flow. ` +
138
- `Check the step id or use goTo to target a different flow.`);
139
- }
140
- session = (0, index_js_1.enterStep)(session, targetStep.id, targetStep.description);
141
- index_js_1.logger.debug(`[AutoChainExecutor] Position directive goToStep → ${targetStep.id}`);
142
- continue; // Re-enter loop at the new step (which may itself be auto)
143
- }
144
- if (merged.goTo) {
145
- // goTo targets a flow — return to pipeline for cross-flow handling
146
- return {
147
- resolvedStep: step,
148
- mergedDirective: merged,
149
- stoppedReason: 'goto',
150
- session,
151
- };
152
- }
153
- if (merged.complete) {
154
- return {
155
- resolvedStep: step,
156
- mergedDirective: merged,
157
- stoppedReason: 'completed',
158
- session,
159
- };
160
- }
161
- }
162
- // STEP 6: branches resolution (if step has branches)
163
- if (step.branches && step.branches.length > 0) {
164
- const branchTarget = await this.evaluateBranches(step.branches, session, context, history);
165
- if (branchTarget) {
166
- // Check if it resolves to a step in this flow
167
- const targetStep = flow.getStep(branchTarget);
168
- if (targetStep) {
169
- session = (0, index_js_1.enterStep)(session, targetStep.id, targetStep.description);
170
- index_js_1.logger.debug(`[AutoChainExecutor] Branch resolved → ${targetStep.id}`);
171
- continue;
172
- }
173
- // Not a step in this flow — treat as a flow id, return to pipeline
174
- return {
175
- resolvedStep: step,
176
- mergedDirective: { goTo: branchTarget },
177
- stoppedReason: 'goto',
178
- session,
179
- };
180
- }
181
- // No branch matched — fall through to linear advance
182
- }
183
- // STEP 7: linear advance
184
- const nextSteps = step.getTransitions();
185
- if (nextSteps.length === 0) {
186
- // Auto-step is the last step → flow completes
187
- index_js_1.logger.debug(`[AutoChainExecutor] Auto-step ${step.id} is terminal — flow complete`);
188
- return { stoppedReason: 'last_step', session };
189
- }
190
- // Take the first transition (linear advance)
191
- session = (0, index_js_1.enterStep)(session, nextSteps[0].id, nextSteps[0].description);
192
- }
193
- }
194
- /**
195
- * Run the prepare hook for an auto-step, collecting any
196
- * Directive return values (pre-LLM fields honored).
197
- */
198
- async runStepHooks(step, session, context) {
199
- let merged;
200
- // prepare hook — for auto-steps, prepare may return a Directive with pre-LLM fields
201
- if (step.prepare) {
202
- if (typeof step.prepare === 'function') {
203
- const prepareResult = await step.prepare(context, session.data);
204
- // prepare may return void or a directive-like object
205
- if (prepareResult && typeof prepareResult === 'object') {
206
- merged = this.mergeDirectives(merged, prepareResult);
207
- }
208
- }
209
- else {
210
- // Tool reference (string or Tool object) — for auto-steps, tool-based
211
- // prepare cannot return directives. Log a warning.
212
- index_js_1.logger.warn(`[FlowConfigurationError] Auto-step "${step.id}" has a tool-based prepare: tool-based prepare on auto-steps cannot return directives. ` +
213
- `Use a function-based prepare hook instead.`);
214
- }
215
- }
216
- return merged;
217
- }
218
- /**
219
- * Merge two directive-like objects via the canonical Algorithm 4 merge —
220
- * one algorithm shared with tools, hooks and signals.
221
- */
222
- mergeDirectives(base, incoming) {
223
- if (!base)
224
- return { ...incoming };
225
- // AutoStepPrepareResult is a structural subset of Directive, so both
226
- // sides flow through the canonical merge directly — no casts needed.
227
- return flow_namespace_js_1.flow.merge(base, incoming);
228
- }
229
- /**
230
- * Evaluate branches on an auto-step. Returns the target step/flow id
231
- * if a branch matches, or undefined if no branch matched.
232
- *
233
- * This is a simplified evaluator for code-only (`if`) branches.
234
- * AI-evaluated (`when`) branches are not supported in the auto-step
235
- * context (no LLM call). If a branch entry has only `when`, it is skipped.
236
- */
237
- async evaluateBranches(branches, session, context, history) {
238
- for (let i = 0; i < branches.length; i++) {
239
- const entry = branches[i];
240
- // Unconditional entry (no `if` and no `when`) — must be last, always matches
241
- if (!entry.if && !entry.when) {
242
- return this.resolveBranchThen(entry.then);
243
- }
244
- // Code predicate evaluation
245
- if (entry.if) {
246
- const predicateContext = {
247
- data: session.data, context, session, history,
248
- };
249
- const allPassed = await (0, condition_js_1.evaluateIfPredicates)(entry.if, predicateContext, "AutoChainExecutor");
250
- if (!allPassed)
251
- continue;
252
- // If entry also has `when`, skip it in auto-step context (no LLM available)
253
- if (entry.when) {
254
- index_js_1.logger.debug(`[AutoChainExecutor] Branch entry has 'when' condition — ` +
255
- `skipping AI evaluation in auto-step context`);
256
- continue;
257
- }
258
- return this.resolveBranchThen(entry.then);
259
- }
260
- // Entry has only `when` (AI condition) — skip in auto-step context
261
- if (entry.when && !entry.if) {
262
- continue;
263
- }
264
- }
265
- return undefined;
266
- }
267
- /**
268
- * Resolve a branch entry's `then` value to a string target.
269
- * Handles both string targets and Directive objects.
270
- */
271
- resolveBranchThen(then) {
272
- if (typeof then === 'string') {
273
- return then;
274
- }
275
- // Directive object — extract position field (string or object form)
276
- if (then && typeof then === 'object') {
277
- if (then.goToStep) {
278
- return typeof then.goToStep === 'string' ? then.goToStep : then.goToStep.step;
279
- }
280
- if (then.goTo) {
281
- return typeof then.goTo === 'string' ? then.goTo : then.goTo.flow;
282
- }
283
- }
284
- return undefined;
285
- }
286
- }
287
- exports.AutoChainExecutor = AutoChainExecutor;
288
- //# sourceMappingURL=AutoChainExecutor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AutoChainExecutor.js","sourceRoot":"","sources":["../../../src/core/AutoChainExecutor.ts"],"names":[],"mappings":"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"}
@@ -1,55 +0,0 @@
1
- /**
2
- * Branch Evaluator — Resolution Algorithm (Algorithm 2 from design.md)
3
- *
4
- * Pure function that evaluates a BranchMap in declaration order.
5
- * Code-first evaluation: `if` predicates run before `when` (AI) conditions
6
- * to save tokens. First matching entry wins.
7
- *
8
- * @module BranchEvaluator
9
- */
10
- import type { BranchMap, BranchPredicateContext, Directive } from "../types/flow.js";
11
- import type { AiProvider } from "../types/ai.js";
12
- import type { Event } from "../types/history.js";
13
- import { type WhenConditionGroups } from "../utils/condition.js";
14
- /**
15
- * The AI condition evaluator function signature.
16
- * Accepts split condition strings and returns whether the condition passes:
17
- * (no positives OR any positive is satisfied) AND no exclusion is satisfied.
18
- *
19
- * This is the same evaluation mechanism used by `step.when` — condition
20
- * strings are evaluated by the AI provider against the conversation context.
21
- */
22
- export type AiConditionEvaluator = (conditions: WhenConditionGroups) => Promise<boolean>;
23
- /**
24
- * Creates an `AiConditionEvaluator` bound to a provider and conversation context.
25
- *
26
- * Reuses the same evaluation pattern as `step.when` array forms: condition
27
- * strings are passed to the AI provider for evaluation against the conversation
28
- * history. No new prompt scaffolding — the provider evaluates whether the
29
- * conditions are met based on the conversation so far.
30
- *
31
- * String form (`when: "some condition"`) is normalized to a single-element
32
- * array by the caller (`evaluateBranches`) for uniformity before reaching
33
- * this function.
34
- *
35
- * @param provider - The AI provider to use for condition evaluation
36
- * @param history - Conversation history (events) for context
37
- * @param context - Agent-level context
38
- * @returns An `AiConditionEvaluator` function
39
- */
40
- export declare function createAiConditionEvaluator<TContext = unknown>(provider: AiProvider, history: Event[], context: TContext): AiConditionEvaluator;
41
- /**
42
- * Evaluates a BranchMap in declaration order, returning the first matching
43
- * entry's `then` value, or `undefined` if no entry matches.
44
- *
45
- * Resolution rules per entry:
46
- * 1. Unconditional (no `when`, no `if`) → return `then` immediately.
47
- * 2. `if` first: normalize to array, await each predicate, short-circuit on first falsy.
48
- * 3. `when` second: only if `if` passed (or absent); call evaluateAi with condition strings.
49
- * 4. Both passed (or only one set and it passed) → return `then`.
50
- *
51
- * Errors in predicates or AI evaluation are caught, logged at ERROR, and
52
- * cause `evaluateBranches` to return `undefined` (graceful degradation).
53
- */
54
- export declare function evaluateBranches<TContext = unknown, TData = unknown>(branches: BranchMap<TContext, TData>, ctx: BranchPredicateContext<TContext, TData>, evaluateAi: AiConditionEvaluator): Promise<string | Directive<TContext, TData> | undefined>;
55
- //# sourceMappingURL=BranchEvaluator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BranchEvaluator.d.ts","sourceRoot":"","sources":["../../../src/core/BranchEvaluator.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACR,SAAS,EACT,sBAAsB,EACtB,SAAS,EACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAA6C,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5G;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,UAAU,EAAE,mBAAmB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAEzF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,GAAG,OAAO,EACzD,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,KAAK,EAAE,EAChB,OAAO,EAAE,QAAQ,GAClB,oBAAoB,CA+CtB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,EACtE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,EACpC,GAAG,EAAE,sBAAsB,CAAC,QAAQ,EAAE,KAAK,CAAC,EAC5C,UAAU,EAAE,oBAAoB,GACjC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC,CA2C1D"}
@@ -1,125 +0,0 @@
1
- "use strict";
2
- /**
3
- * Branch Evaluator — Resolution Algorithm (Algorithm 2 from design.md)
4
- *
5
- * Pure function that evaluates a BranchMap in declaration order.
6
- * Code-first evaluation: `if` predicates run before `when` (AI) conditions
7
- * to save tokens. First matching entry wins.
8
- *
9
- * @module BranchEvaluator
10
- */
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.createAiConditionEvaluator = createAiConditionEvaluator;
13
- exports.evaluateBranches = evaluateBranches;
14
- const index_js_1 = require("../utils/index.js");
15
- const condition_js_1 = require("../utils/condition.js");
16
- /**
17
- * Creates an `AiConditionEvaluator` bound to a provider and conversation context.
18
- *
19
- * Reuses the same evaluation pattern as `step.when` array forms: condition
20
- * strings are passed to the AI provider for evaluation against the conversation
21
- * history. No new prompt scaffolding — the provider evaluates whether the
22
- * conditions are met based on the conversation so far.
23
- *
24
- * String form (`when: "some condition"`) is normalized to a single-element
25
- * array by the caller (`evaluateBranches`) for uniformity before reaching
26
- * this function.
27
- *
28
- * @param provider - The AI provider to use for condition evaluation
29
- * @param history - Conversation history (events) for context
30
- * @param context - Agent-level context
31
- * @returns An `AiConditionEvaluator` function
32
- */
33
- function createAiConditionEvaluator(provider, history, context) {
34
- return async (conditions) => {
35
- if (conditions.positive.length === 0 && conditions.negative.length === 0) {
36
- return true;
37
- }
38
- const positiveText = conditions.positive.length === 0
39
- ? "None. Treat the positive side as satisfied unless an exclusion matches."
40
- : conditions.positive.map((c, i) => `${i + 1}. ${c}`).join("\n");
41
- const negativeText = conditions.negative.length === 0
42
- ? "None."
43
- : conditions.negative.map((c, i) => `${i + 1}. ${c}`).join("\n");
44
- const prompt = [
45
- "Evaluate whether the following condition rule passes based on the conversation so far.",
46
- "",
47
- "Positive condition(s) (OR):",
48
- positiveText,
49
- "",
50
- "Exclusion condition(s) (OR, any match inhibits):",
51
- negativeText,
52
- "",
53
- "Return JSON with a single boolean field `result`: true only when (there are no positive conditions OR ANY positive condition is satisfied) AND NO exclusion condition is satisfied.",
54
- ].join("\n");
55
- const result = await provider.generateMessage({
56
- prompt,
57
- history: (0, index_js_1.eventsToHistory)(history),
58
- context,
59
- parameters: {
60
- jsonSchema: {
61
- type: "object",
62
- properties: {
63
- result: {
64
- type: "boolean",
65
- description: "Whether the positive/exclusion condition rule passes based on the conversation context",
66
- },
67
- },
68
- required: ["result"],
69
- additionalProperties: false,
70
- },
71
- schemaName: "condition_evaluation",
72
- },
73
- });
74
- return result.structured?.result ?? false;
75
- };
76
- }
77
- /**
78
- * Evaluates a BranchMap in declaration order, returning the first matching
79
- * entry's `then` value, or `undefined` if no entry matches.
80
- *
81
- * Resolution rules per entry:
82
- * 1. Unconditional (no `when`, no `if`) → return `then` immediately.
83
- * 2. `if` first: normalize to array, await each predicate, short-circuit on first falsy.
84
- * 3. `when` second: only if `if` passed (or absent); call evaluateAi with condition strings.
85
- * 4. Both passed (or only one set and it passed) → return `then`.
86
- *
87
- * Errors in predicates or AI evaluation are caught, logged at ERROR, and
88
- * cause `evaluateBranches` to return `undefined` (graceful degradation).
89
- */
90
- async function evaluateBranches(branches, ctx, evaluateAi) {
91
- try {
92
- for (let i = 0; i < branches.length; i++) {
93
- const entry = branches[i];
94
- // Unconditional fallback: entry has neither `when` nor `if`.
95
- // Validation guarantees this is the LAST entry.
96
- if (!entry.when && !entry.if) {
97
- return entry.then;
98
- }
99
- // Code predicate first (free evaluation)
100
- if (entry.if) {
101
- const ifPassed = await (0, condition_js_1.evaluateIfPredicates)(entry.if, ctx, "BranchEvaluator");
102
- if (!ifPassed) {
103
- continue; // skip this entry; do NOT evaluate `when`
104
- }
105
- }
106
- // AI condition (costs tokens — only reached if `if` passed or was absent)
107
- if (entry.when) {
108
- const conditions = (0, condition_js_1.splitWhenConditions)(entry.when);
109
- const aiResult = await evaluateAi(conditions);
110
- if (!aiResult) {
111
- continue; // skip this entry
112
- }
113
- }
114
- // Both passed (or only one was set and it passed)
115
- return entry.then;
116
- }
117
- // No entry matched
118
- return undefined;
119
- }
120
- catch (error) {
121
- index_js_1.logger.error(`[BranchEvaluator] Error during branch evaluation: ${error instanceof Error ? error.message : String(error)}`);
122
- return undefined;
123
- }
124
- }
125
- //# sourceMappingURL=BranchEvaluator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BranchEvaluator.js","sourceRoot":"","sources":["../../../src/core/BranchEvaluator.ts"],"names":[],"mappings":"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"}
@@ -1,49 +0,0 @@
1
- /**
2
- * Per-turn directive chain depth tracker.
3
- *
4
- * When directives chain (e.g., tool emits goTo → flow.onEnter emits goTo →
5
- * flow.onComplete emits complete.next → …), the chain can theoretically loop
6
- * forever. This tracker counts each directive application within a single turn
7
- * and throws `FlowConfigurationError` when the configured cap is exceeded.
8
- *
9
- * Chain breakers (`abort` mid-chain) stop counting and apply the
10
- * chain-terminating directive immediately.
11
- *
12
- * Validates: Requirements 22.1, 22.2, 22.3
13
- */
14
- import type { Directive } from "../types/flow.js";
15
- /**
16
- * Entry in the directive chain log — records what was emitted and by whom.
17
- */
18
- export interface DirectiveChainEntry {
19
- /** Human-readable description of the directive (e.g., "goTo:Booking", "complete", "abort:timeout") */
20
- description: string;
21
- /** Identifier of the emitter (e.g., "tool:lookup_order", "hook:onEnter", "pending") */
22
- emitter: string;
23
- }
24
- /**
25
- * Tracks directive chain depth within a single turn.
26
- * Create one instance per turn; discard at turn end.
27
- */
28
- export declare class DirectiveChainTracker {
29
- private chain;
30
- private readonly maxDepth;
31
- constructor(maxDirectiveChain: number);
32
- /**
33
- * Record a directive application in the chain.
34
- * Throws `FlowConfigurationError` if the chain exceeds `maxDirectiveChain`.
35
- *
36
- * @param directive - The directive being applied
37
- * @param emitter - Identifier of the emitter (for diagnostics)
38
- * @returns `true` if the directive is a chain breaker (abort) — caller should
39
- * apply it and stop the chain without further counting.
40
- */
41
- record(directive: Directive, emitter: string): boolean;
42
- /** Current chain depth. */
43
- get depth(): number;
44
- /** The full chain log (read-only). */
45
- get entries(): ReadonlyArray<DirectiveChainEntry>;
46
- /** Reset the tracker (e.g., for testing or if the turn is restarted). */
47
- reset(): void;
48
- }
49
- //# sourceMappingURL=DirectiveChainTracker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DirectiveChainTracker.d.ts","sourceRoot":"","sources":["../../../src/core/DirectiveChainTracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,sGAAsG;IACtG,WAAW,EAAE,MAAM,CAAC;IACpB,uFAAuF;IACvF,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,iBAAiB,EAAE,MAAM;IAIrC;;;;;;;;OAQG;IACH,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAkCtD,2BAA2B;IAC3B,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,sCAAsC;IACtC,IAAI,OAAO,IAAI,aAAa,CAAC,mBAAmB,CAAC,CAEhD;IAED,yEAAyE;IACzE,KAAK,IAAI,IAAI;CAGhB"}