@falai/agent 3.4.5 → 4.0.0-alpha.2

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 (856) hide show
  1. package/README.md +41 -34
  2. package/dist/cjs/core/Agent.d.ts +22 -378
  3. package/dist/cjs/core/Agent.d.ts.map +1 -1
  4. package/dist/cjs/core/Agent.js +104 -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 +522 -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 +143 -0
  20. package/dist/cjs/core/Prompt.js.map +1 -0
  21. package/dist/cjs/core/Runner.d.ts +160 -0
  22. package/dist/cjs/core/Runner.d.ts.map +1 -0
  23. package/dist/cjs/core/Runner.js +1131 -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 +364 -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 +353 -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 +153 -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/schema.d.ts +50 -0
  158. package/dist/cjs/utils/schema.d.ts.map +1 -0
  159. package/dist/cjs/utils/schema.js +138 -0
  160. package/dist/cjs/utils/schema.js.map +1 -0
  161. package/dist/cjs/utils/streamingMessage.d.ts +3 -2
  162. package/dist/cjs/utils/streamingMessage.d.ts.map +1 -1
  163. package/dist/cjs/utils/streamingMessage.js +38 -4
  164. package/dist/cjs/utils/streamingMessage.js.map +1 -1
  165. package/dist/cjs/utils/template.d.ts +13 -149
  166. package/dist/cjs/utils/template.d.ts.map +1 -1
  167. package/dist/cjs/utils/template.js +31 -363
  168. package/dist/cjs/utils/template.js.map +1 -1
  169. package/dist/cjs/utils/usage.d.ts +19 -0
  170. package/dist/cjs/utils/usage.d.ts.map +1 -0
  171. package/dist/cjs/utils/usage.js +35 -0
  172. package/dist/cjs/utils/usage.js.map +1 -0
  173. package/dist/core/Agent.d.ts +22 -378
  174. package/dist/core/Agent.d.ts.map +1 -1
  175. package/dist/core/Agent.js +107 -1181
  176. package/dist/core/Agent.js.map +1 -1
  177. package/dist/core/CompactionEngine.d.ts.map +1 -1
  178. package/dist/core/CompactionEngine.js +5 -3
  179. package/dist/core/CompactionEngine.js.map +1 -1
  180. package/dist/core/FlowSpec.d.ts +136 -0
  181. package/dist/core/FlowSpec.d.ts.map +1 -0
  182. package/dist/core/FlowSpec.js +516 -0
  183. package/dist/core/FlowSpec.js.map +1 -0
  184. package/dist/core/Migrate.d.ts +38 -0
  185. package/dist/core/Migrate.d.ts.map +1 -0
  186. package/dist/core/Migrate.js +264 -0
  187. package/dist/core/Migrate.js.map +1 -0
  188. package/dist/core/Prompt.d.ts +54 -0
  189. package/dist/core/Prompt.d.ts.map +1 -0
  190. package/dist/core/Prompt.js +133 -0
  191. package/dist/core/Prompt.js.map +1 -0
  192. package/dist/core/Runner.d.ts +160 -0
  193. package/dist/core/Runner.d.ts.map +1 -0
  194. package/dist/core/Runner.js +1127 -0
  195. package/dist/core/Runner.js.map +1 -0
  196. package/dist/core/Speak.d.ts +37 -0
  197. package/dist/core/Speak.d.ts.map +1 -0
  198. package/dist/core/Speak.js +360 -0
  199. package/dist/core/Speak.js.map +1 -0
  200. package/dist/core/Understand.d.ts +28 -0
  201. package/dist/core/Understand.d.ts.map +1 -0
  202. package/dist/core/Understand.js +349 -0
  203. package/dist/core/Understand.js.map +1 -0
  204. package/dist/core/contracts.d.ts +122 -0
  205. package/dist/core/contracts.d.ts.map +1 -0
  206. package/dist/core/contracts.js +10 -0
  207. package/dist/core/contracts.js.map +1 -0
  208. package/dist/core/falai.d.ts +57 -0
  209. package/dist/core/falai.d.ts.map +1 -0
  210. package/dist/core/falai.js +40 -0
  211. package/dist/core/falai.js.map +1 -0
  212. package/dist/core/predicate.d.ts +9 -0
  213. package/dist/core/predicate.d.ts.map +1 -0
  214. package/dist/core/predicate.js +54 -0
  215. package/dist/core/predicate.js.map +1 -0
  216. package/dist/index.d.ts +26 -31
  217. package/dist/index.d.ts.map +1 -1
  218. package/dist/index.js +19 -24
  219. package/dist/index.js.map +1 -1
  220. package/dist/persistence/MemoryStore.d.ts +15 -0
  221. package/dist/persistence/MemoryStore.d.ts.map +1 -0
  222. package/dist/persistence/MemoryStore.js +35 -0
  223. package/dist/persistence/MemoryStore.js.map +1 -0
  224. package/dist/persistence/MongoStore.d.ts +42 -0
  225. package/dist/persistence/MongoStore.d.ts.map +1 -0
  226. package/dist/persistence/MongoStore.js +56 -0
  227. package/dist/persistence/MongoStore.js.map +1 -0
  228. package/dist/persistence/OpenSearchStore.d.ts +86 -0
  229. package/dist/persistence/OpenSearchStore.d.ts.map +1 -0
  230. package/dist/persistence/OpenSearchStore.js +116 -0
  231. package/dist/persistence/OpenSearchStore.js.map +1 -0
  232. package/dist/persistence/PostgresStore.d.ts +41 -0
  233. package/dist/persistence/PostgresStore.d.ts.map +1 -0
  234. package/dist/persistence/PostgresStore.js +54 -0
  235. package/dist/persistence/PostgresStore.js.map +1 -0
  236. package/dist/persistence/PrismaStore.d.ts +65 -0
  237. package/dist/persistence/PrismaStore.d.ts.map +1 -0
  238. package/dist/persistence/PrismaStore.js +91 -0
  239. package/dist/persistence/PrismaStore.js.map +1 -0
  240. package/dist/persistence/RedisStore.d.ts +34 -0
  241. package/dist/persistence/RedisStore.d.ts.map +1 -0
  242. package/dist/persistence/RedisStore.js +57 -0
  243. package/dist/persistence/RedisStore.js.map +1 -0
  244. package/dist/persistence/SQLiteStore.d.ts +45 -0
  245. package/dist/persistence/SQLiteStore.d.ts.map +1 -0
  246. package/dist/persistence/SQLiteStore.js +70 -0
  247. package/dist/persistence/SQLiteStore.js.map +1 -0
  248. package/dist/persistence/sessionRow.d.ts +14 -0
  249. package/dist/persistence/sessionRow.d.ts.map +1 -0
  250. package/dist/persistence/sessionRow.js +45 -0
  251. package/dist/persistence/sessionRow.js.map +1 -0
  252. package/dist/providers/DeepSeekProvider.d.ts.map +1 -1
  253. package/dist/providers/DeepSeekProvider.js +8 -3
  254. package/dist/providers/DeepSeekProvider.js.map +1 -1
  255. package/dist/providers/GeminiProvider.d.ts +4 -3
  256. package/dist/providers/GeminiProvider.d.ts.map +1 -1
  257. package/dist/providers/GeminiProvider.js +4 -3
  258. package/dist/providers/GeminiProvider.js.map +1 -1
  259. package/dist/providers/OpenAICompatibleProvider.d.ts +4 -0
  260. package/dist/providers/OpenAICompatibleProvider.d.ts.map +1 -1
  261. package/dist/providers/OpenAICompatibleProvider.js +2 -0
  262. package/dist/providers/OpenAICompatibleProvider.js.map +1 -1
  263. package/dist/providers/OpenRouterProvider.d.ts.map +1 -1
  264. package/dist/providers/OpenRouterProvider.js +2 -4
  265. package/dist/providers/OpenRouterProvider.js.map +1 -1
  266. package/dist/providers/ProviderAdapter.d.ts +11 -6
  267. package/dist/providers/ProviderAdapter.d.ts.map +1 -1
  268. package/dist/providers/ProviderAdapter.js +34 -11
  269. package/dist/providers/ProviderAdapter.js.map +1 -1
  270. package/dist/providers/ZaiProvider.d.ts +6 -4
  271. package/dist/providers/ZaiProvider.d.ts.map +1 -1
  272. package/dist/providers/ZaiProvider.js +6 -4
  273. package/dist/providers/ZaiProvider.js.map +1 -1
  274. package/dist/types/agent.d.ts +153 -383
  275. package/dist/types/agent.d.ts.map +1 -1
  276. package/dist/types/agent.js +1 -1
  277. package/dist/types/ai.d.ts +32 -1
  278. package/dist/types/ai.d.ts.map +1 -1
  279. package/dist/types/compaction.d.ts +3 -1
  280. package/dist/types/compaction.d.ts.map +1 -1
  281. package/dist/types/errors.d.ts +9 -12
  282. package/dist/types/errors.d.ts.map +1 -1
  283. package/dist/types/errors.js +12 -15
  284. package/dist/types/errors.js.map +1 -1
  285. package/dist/types/flow.d.ts +265 -513
  286. package/dist/types/flow.d.ts.map +1 -1
  287. package/dist/types/flow.js +7 -1
  288. package/dist/types/flow.js.map +1 -1
  289. package/dist/types/history.d.ts +7 -18
  290. package/dist/types/history.d.ts.map +1 -1
  291. package/dist/types/history.js.map +1 -1
  292. package/dist/types/index.d.ts +9 -15
  293. package/dist/types/index.d.ts.map +1 -1
  294. package/dist/types/index.js +2 -7
  295. package/dist/types/index.js.map +1 -1
  296. package/dist/types/session.d.ts +94 -64
  297. package/dist/types/session.d.ts.map +1 -1
  298. package/dist/types/session.js +5 -1
  299. package/dist/types/session.js.map +1 -1
  300. package/dist/types/tool.d.ts +37 -207
  301. package/dist/types/tool.d.ts.map +1 -1
  302. package/dist/types/tool.js +6 -13
  303. package/dist/types/tool.js.map +1 -1
  304. package/dist/utils/clock.d.ts +28 -0
  305. package/dist/utils/clock.d.ts.map +1 -0
  306. package/dist/utils/clock.js +59 -0
  307. package/dist/utils/clock.js.map +1 -0
  308. package/dist/utils/duration.d.ts +11 -0
  309. package/dist/utils/duration.d.ts.map +1 -0
  310. package/dist/utils/duration.js +26 -0
  311. package/dist/utils/duration.js.map +1 -0
  312. package/dist/utils/history.d.ts +4 -1
  313. package/dist/utils/history.d.ts.map +1 -1
  314. package/dist/utils/history.js +2 -2
  315. package/dist/utils/history.js.map +1 -1
  316. package/dist/utils/index.d.ts +4 -10
  317. package/dist/utils/index.d.ts.map +1 -1
  318. package/dist/utils/index.js +4 -21
  319. package/dist/utils/index.js.map +1 -1
  320. package/dist/utils/json.d.ts +2 -0
  321. package/dist/utils/json.d.ts.map +1 -1
  322. package/dist/utils/json.js +4 -0
  323. package/dist/utils/json.js.map +1 -1
  324. package/dist/utils/outcomes.d.ts +48 -0
  325. package/dist/utils/outcomes.d.ts.map +1 -0
  326. package/dist/utils/outcomes.js +48 -0
  327. package/dist/utils/outcomes.js.map +1 -0
  328. package/dist/utils/schema.d.ts +50 -0
  329. package/dist/utils/schema.d.ts.map +1 -0
  330. package/dist/utils/schema.js +129 -0
  331. package/dist/utils/schema.js.map +1 -0
  332. package/dist/utils/streamingMessage.d.ts +3 -2
  333. package/dist/utils/streamingMessage.d.ts.map +1 -1
  334. package/dist/utils/streamingMessage.js +38 -4
  335. package/dist/utils/streamingMessage.js.map +1 -1
  336. package/dist/utils/template.d.ts +13 -149
  337. package/dist/utils/template.d.ts.map +1 -1
  338. package/dist/utils/template.js +28 -355
  339. package/dist/utils/template.js.map +1 -1
  340. package/dist/utils/usage.d.ts +19 -0
  341. package/dist/utils/usage.d.ts.map +1 -0
  342. package/dist/utils/usage.js +31 -0
  343. package/dist/utils/usage.js.map +1 -0
  344. package/docs/README.md +37 -19
  345. package/docs/concepts/architecture.md +117 -239
  346. package/docs/concepts/collection.md +170 -0
  347. package/docs/concepts/pipeline.md +132 -378
  348. package/docs/concepts/runs-and-waits.md +192 -0
  349. package/docs/guides/actions-and-events.md +276 -0
  350. package/docs/guides/branching.md +119 -208
  351. package/docs/guides/compaction.md +63 -158
  352. package/docs/guides/conditions.md +164 -128
  353. package/docs/guides/error-handling.md +168 -164
  354. package/docs/guides/flow-control.md +210 -349
  355. package/docs/guides/flows-from-json.md +224 -0
  356. package/docs/guides/instructions.md +125 -161
  357. package/docs/guides/persistence.md +182 -206
  358. package/docs/guides/streaming.md +50 -114
  359. package/docs/guides/testing.md +284 -0
  360. package/docs/guides/triggers.md +401 -0
  361. package/docs/migration/README.md +8 -15
  362. package/docs/migration/v1-to-v2.md +1 -1
  363. package/docs/migration/v2-3-to-v2-4.md +2 -2
  364. package/docs/migration/v2-6-to-v2-7.md +4 -4
  365. package/docs/migration/v3-to-v4.md +452 -0
  366. package/docs/reference/actions-events-conditions.md +396 -0
  367. package/docs/reference/agent.md +244 -0
  368. package/docs/reference/branches.md +75 -203
  369. package/docs/reference/errors.md +188 -144
  370. package/docs/reference/fields.md +125 -0
  371. package/docs/reference/flow-spec.md +248 -0
  372. package/docs/reference/flow.md +104 -192
  373. package/docs/reference/instruction.md +83 -137
  374. package/docs/reference/outcomes.md +273 -0
  375. package/docs/reference/providers.md +525 -302
  376. package/docs/reference/session.md +210 -0
  377. package/docs/reference/step.md +194 -312
  378. package/docs/reference/stores.md +496 -0
  379. package/docs/reference/tool.md +162 -231
  380. package/docs/reference/trigger.md +180 -0
  381. package/docs/rfc/v4-one-flow.md +477 -0
  382. package/docs/start/01-install.md +59 -44
  383. package/docs/start/02-first-agent.md +97 -147
  384. package/docs/start/03-collect-data.md +78 -183
  385. package/docs/start/04-add-tools.md +159 -227
  386. package/docs/start/05-go-to-production.md +167 -164
  387. package/examples/01-quickstart.ts +26 -16
  388. package/examples/02-fields.ts +75 -0
  389. package/examples/03-tools.ts +79 -119
  390. package/examples/04-instructions.ts +60 -87
  391. package/examples/05-branches.ts +78 -0
  392. package/examples/06-triggers-and-waits.ts +148 -0
  393. package/examples/07-streaming.ts +34 -60
  394. package/examples/08-store-and-migration.ts +97 -0
  395. package/examples/09-flows-from-json.ts +107 -0
  396. package/package.json +9 -6
  397. package/src/core/Agent.ts +116 -1512
  398. package/src/core/CompactionEngine.ts +7 -4
  399. package/src/core/FlowSpec.ts +712 -0
  400. package/src/core/Migrate.ts +256 -0
  401. package/src/core/Prompt.ts +156 -0
  402. package/src/core/Runner.ts +1181 -0
  403. package/src/core/Speak.ts +451 -0
  404. package/src/core/Understand.ts +422 -0
  405. package/src/core/contracts.ts +111 -0
  406. package/src/core/falai.ts +86 -0
  407. package/src/core/predicate.ts +56 -0
  408. package/src/index.ts +119 -147
  409. package/src/persistence/MemoryStore.ts +37 -0
  410. package/src/persistence/MongoStore.ts +89 -0
  411. package/src/persistence/OpenSearchStore.ts +153 -0
  412. package/src/persistence/PostgresStore.ts +89 -0
  413. package/src/persistence/PrismaStore.ts +127 -0
  414. package/src/persistence/RedisStore.ts +90 -0
  415. package/src/persistence/SQLiteStore.ts +103 -0
  416. package/src/persistence/sessionRow.ts +45 -0
  417. package/src/providers/DeepSeekProvider.ts +8 -3
  418. package/src/providers/GeminiProvider.ts +4 -3
  419. package/src/providers/OpenAICompatibleProvider.ts +6 -0
  420. package/src/providers/OpenRouterProvider.ts +2 -4
  421. package/src/providers/ProviderAdapter.ts +46 -13
  422. package/src/providers/ZaiProvider.ts +6 -4
  423. package/src/types/agent.ts +124 -397
  424. package/src/types/ai.ts +33 -1
  425. package/src/types/compaction.ts +3 -1
  426. package/src/types/errors.ts +13 -16
  427. package/src/types/flow.ts +249 -550
  428. package/src/types/history.ts +7 -20
  429. package/src/types/index.ts +87 -139
  430. package/src/types/session.ts +135 -70
  431. package/src/types/tool.ts +42 -267
  432. package/src/utils/clock.ts +70 -0
  433. package/src/utils/duration.ts +33 -0
  434. package/src/utils/history.ts +3 -2
  435. package/src/utils/index.ts +8 -66
  436. package/src/utils/json.ts +5 -0
  437. package/src/utils/outcomes.ts +56 -0
  438. package/src/utils/schema.ts +145 -0
  439. package/src/utils/streamingMessage.ts +34 -4
  440. package/src/utils/template.ts +32 -423
  441. package/src/utils/usage.ts +37 -0
  442. package/dist/adapters/MemoryAdapter.d.ts +0 -47
  443. package/dist/adapters/MemoryAdapter.d.ts.map +0 -1
  444. package/dist/adapters/MemoryAdapter.js +0 -204
  445. package/dist/adapters/MemoryAdapter.js.map +0 -1
  446. package/dist/adapters/MongoAdapter.d.ts +0 -97
  447. package/dist/adapters/MongoAdapter.d.ts.map +0 -1
  448. package/dist/adapters/MongoAdapter.js +0 -196
  449. package/dist/adapters/MongoAdapter.js.map +0 -1
  450. package/dist/adapters/OpenSearchAdapter.d.ts +0 -169
  451. package/dist/adapters/OpenSearchAdapter.d.ts.map +0 -1
  452. package/dist/adapters/OpenSearchAdapter.js +0 -471
  453. package/dist/adapters/OpenSearchAdapter.js.map +0 -1
  454. package/dist/adapters/PostgreSQLAdapter.d.ts +0 -85
  455. package/dist/adapters/PostgreSQLAdapter.d.ts.map +0 -1
  456. package/dist/adapters/PostgreSQLAdapter.js +0 -308
  457. package/dist/adapters/PostgreSQLAdapter.js.map +0 -1
  458. package/dist/adapters/PrismaAdapter.d.ts +0 -115
  459. package/dist/adapters/PrismaAdapter.d.ts.map +0 -1
  460. package/dist/adapters/PrismaAdapter.js +0 -406
  461. package/dist/adapters/PrismaAdapter.js.map +0 -1
  462. package/dist/adapters/RedisAdapter.d.ts +0 -72
  463. package/dist/adapters/RedisAdapter.d.ts.map +0 -1
  464. package/dist/adapters/RedisAdapter.js +0 -286
  465. package/dist/adapters/RedisAdapter.js.map +0 -1
  466. package/dist/adapters/SQLiteAdapter.d.ts +0 -86
  467. package/dist/adapters/SQLiteAdapter.d.ts.map +0 -1
  468. package/dist/adapters/SQLiteAdapter.js +0 -337
  469. package/dist/adapters/SQLiteAdapter.js.map +0 -1
  470. package/dist/adapters/index.d.ts +0 -17
  471. package/dist/adapters/index.d.ts.map +0 -1
  472. package/dist/adapters/index.js +0 -11
  473. package/dist/adapters/index.js.map +0 -1
  474. package/dist/adapters/sessionRow.d.ts +0 -22
  475. package/dist/adapters/sessionRow.d.ts.map +0 -1
  476. package/dist/adapters/sessionRow.js +0 -48
  477. package/dist/adapters/sessionRow.js.map +0 -1
  478. package/dist/cjs/adapters/MemoryAdapter.d.ts +0 -47
  479. package/dist/cjs/adapters/MemoryAdapter.d.ts.map +0 -1
  480. package/dist/cjs/adapters/MemoryAdapter.js +0 -208
  481. package/dist/cjs/adapters/MemoryAdapter.js.map +0 -1
  482. package/dist/cjs/adapters/MongoAdapter.d.ts +0 -97
  483. package/dist/cjs/adapters/MongoAdapter.d.ts.map +0 -1
  484. package/dist/cjs/adapters/MongoAdapter.js +0 -200
  485. package/dist/cjs/adapters/MongoAdapter.js.map +0 -1
  486. package/dist/cjs/adapters/OpenSearchAdapter.d.ts +0 -169
  487. package/dist/cjs/adapters/OpenSearchAdapter.d.ts.map +0 -1
  488. package/dist/cjs/adapters/OpenSearchAdapter.js +0 -475
  489. package/dist/cjs/adapters/OpenSearchAdapter.js.map +0 -1
  490. package/dist/cjs/adapters/PostgreSQLAdapter.d.ts +0 -85
  491. package/dist/cjs/adapters/PostgreSQLAdapter.d.ts.map +0 -1
  492. package/dist/cjs/adapters/PostgreSQLAdapter.js +0 -312
  493. package/dist/cjs/adapters/PostgreSQLAdapter.js.map +0 -1
  494. package/dist/cjs/adapters/PrismaAdapter.d.ts +0 -115
  495. package/dist/cjs/adapters/PrismaAdapter.d.ts.map +0 -1
  496. package/dist/cjs/adapters/PrismaAdapter.js +0 -410
  497. package/dist/cjs/adapters/PrismaAdapter.js.map +0 -1
  498. package/dist/cjs/adapters/RedisAdapter.d.ts +0 -72
  499. package/dist/cjs/adapters/RedisAdapter.d.ts.map +0 -1
  500. package/dist/cjs/adapters/RedisAdapter.js +0 -290
  501. package/dist/cjs/adapters/RedisAdapter.js.map +0 -1
  502. package/dist/cjs/adapters/SQLiteAdapter.d.ts +0 -86
  503. package/dist/cjs/adapters/SQLiteAdapter.d.ts.map +0 -1
  504. package/dist/cjs/adapters/SQLiteAdapter.js +0 -341
  505. package/dist/cjs/adapters/SQLiteAdapter.js.map +0 -1
  506. package/dist/cjs/adapters/index.d.ts +0 -17
  507. package/dist/cjs/adapters/index.d.ts.map +0 -1
  508. package/dist/cjs/adapters/index.js +0 -21
  509. package/dist/cjs/adapters/index.js.map +0 -1
  510. package/dist/cjs/adapters/sessionRow.d.ts +0 -22
  511. package/dist/cjs/adapters/sessionRow.d.ts.map +0 -1
  512. package/dist/cjs/adapters/sessionRow.js +0 -52
  513. package/dist/cjs/adapters/sessionRow.js.map +0 -1
  514. package/dist/cjs/constants/index.d.ts +0 -1
  515. package/dist/cjs/constants/index.d.ts.map +0 -1
  516. package/dist/cjs/constants/index.js +0 -4
  517. package/dist/cjs/constants/index.js.map +0 -1
  518. package/dist/cjs/core/AutoChainExecutor.d.ts +0 -97
  519. package/dist/cjs/core/AutoChainExecutor.d.ts.map +0 -1
  520. package/dist/cjs/core/AutoChainExecutor.js +0 -288
  521. package/dist/cjs/core/AutoChainExecutor.js.map +0 -1
  522. package/dist/cjs/core/BranchEvaluator.d.ts +0 -55
  523. package/dist/cjs/core/BranchEvaluator.d.ts.map +0 -1
  524. package/dist/cjs/core/BranchEvaluator.js +0 -125
  525. package/dist/cjs/core/BranchEvaluator.js.map +0 -1
  526. package/dist/cjs/core/DirectiveChainTracker.d.ts +0 -49
  527. package/dist/cjs/core/DirectiveChainTracker.d.ts.map +0 -1
  528. package/dist/cjs/core/DirectiveChainTracker.js +0 -121
  529. package/dist/cjs/core/DirectiveChainTracker.js.map +0 -1
  530. package/dist/cjs/core/Events.d.ts +0 -26
  531. package/dist/cjs/core/Events.d.ts.map +0 -1
  532. package/dist/cjs/core/Events.js +0 -144
  533. package/dist/cjs/core/Events.js.map +0 -1
  534. package/dist/cjs/core/Flow.d.ts +0 -183
  535. package/dist/cjs/core/Flow.d.ts.map +0 -1
  536. package/dist/cjs/core/Flow.js +0 -551
  537. package/dist/cjs/core/Flow.js.map +0 -1
  538. package/dist/cjs/core/FlowRouter.d.ts +0 -183
  539. package/dist/cjs/core/FlowRouter.d.ts.map +0 -1
  540. package/dist/cjs/core/FlowRouter.js +0 -1047
  541. package/dist/cjs/core/FlowRouter.js.map +0 -1
  542. package/dist/cjs/core/PersistenceManager.d.ts +0 -114
  543. package/dist/cjs/core/PersistenceManager.d.ts.map +0 -1
  544. package/dist/cjs/core/PersistenceManager.js +0 -336
  545. package/dist/cjs/core/PersistenceManager.js.map +0 -1
  546. package/dist/cjs/core/PromptComposer.d.ts +0 -47
  547. package/dist/cjs/core/PromptComposer.d.ts.map +0 -1
  548. package/dist/cjs/core/PromptComposer.js +0 -397
  549. package/dist/cjs/core/PromptComposer.js.map +0 -1
  550. package/dist/cjs/core/PromptSectionCache.d.ts +0 -48
  551. package/dist/cjs/core/PromptSectionCache.d.ts.map +0 -1
  552. package/dist/cjs/core/PromptSectionCache.js +0 -108
  553. package/dist/cjs/core/PromptSectionCache.js.map +0 -1
  554. package/dist/cjs/core/ResponseEngine.d.ts +0 -43
  555. package/dist/cjs/core/ResponseEngine.d.ts.map +0 -1
  556. package/dist/cjs/core/ResponseEngine.js +0 -235
  557. package/dist/cjs/core/ResponseEngine.js.map +0 -1
  558. package/dist/cjs/core/ResponseGenerationError.d.ts +0 -30
  559. package/dist/cjs/core/ResponseGenerationError.d.ts.map +0 -1
  560. package/dist/cjs/core/ResponseGenerationError.js +0 -35
  561. package/dist/cjs/core/ResponseGenerationError.js.map +0 -1
  562. package/dist/cjs/core/ResponseModal.d.ts +0 -305
  563. package/dist/cjs/core/ResponseModal.d.ts.map +0 -1
  564. package/dist/cjs/core/ResponseModal.js +0 -1414
  565. package/dist/cjs/core/ResponseModal.js.map +0 -1
  566. package/dist/cjs/core/ResponsePipeline.d.ts +0 -220
  567. package/dist/cjs/core/ResponsePipeline.d.ts.map +0 -1
  568. package/dist/cjs/core/ResponsePipeline.js +0 -1040
  569. package/dist/cjs/core/ResponsePipeline.js.map +0 -1
  570. package/dist/cjs/core/SessionFinalizer.d.ts +0 -34
  571. package/dist/cjs/core/SessionFinalizer.d.ts.map +0 -1
  572. package/dist/cjs/core/SessionFinalizer.js +0 -88
  573. package/dist/cjs/core/SessionFinalizer.js.map +0 -1
  574. package/dist/cjs/core/SessionManager.d.ts +0 -112
  575. package/dist/cjs/core/SessionManager.d.ts.map +0 -1
  576. package/dist/cjs/core/SessionManager.js +0 -308
  577. package/dist/cjs/core/SessionManager.js.map +0 -1
  578. package/dist/cjs/core/SignalCoordinator.d.ts +0 -103
  579. package/dist/cjs/core/SignalCoordinator.d.ts.map +0 -1
  580. package/dist/cjs/core/SignalCoordinator.js +0 -207
  581. package/dist/cjs/core/SignalCoordinator.js.map +0 -1
  582. package/dist/cjs/core/SignalEvaluator.d.ts +0 -86
  583. package/dist/cjs/core/SignalEvaluator.d.ts.map +0 -1
  584. package/dist/cjs/core/SignalEvaluator.js +0 -319
  585. package/dist/cjs/core/SignalEvaluator.js.map +0 -1
  586. package/dist/cjs/core/SignalProcessor.d.ts +0 -152
  587. package/dist/cjs/core/SignalProcessor.d.ts.map +0 -1
  588. package/dist/cjs/core/SignalProcessor.js +0 -505
  589. package/dist/cjs/core/SignalProcessor.js.map +0 -1
  590. package/dist/cjs/core/Step.d.ts +0 -184
  591. package/dist/cjs/core/Step.d.ts.map +0 -1
  592. package/dist/cjs/core/Step.js +0 -599
  593. package/dist/cjs/core/Step.js.map +0 -1
  594. package/dist/cjs/core/StepLifecycle.d.ts +0 -43
  595. package/dist/cjs/core/StepLifecycle.d.ts.map +0 -1
  596. package/dist/cjs/core/StepLifecycle.js +0 -180
  597. package/dist/cjs/core/StepLifecycle.js.map +0 -1
  598. package/dist/cjs/core/StreamingToolExecutor.d.ts +0 -142
  599. package/dist/cjs/core/StreamingToolExecutor.d.ts.map +0 -1
  600. package/dist/cjs/core/StreamingToolExecutor.js +0 -490
  601. package/dist/cjs/core/StreamingToolExecutor.js.map +0 -1
  602. package/dist/cjs/core/ToolLoopExecutor.d.ts +0 -133
  603. package/dist/cjs/core/ToolLoopExecutor.d.ts.map +0 -1
  604. package/dist/cjs/core/ToolLoopExecutor.js +0 -568
  605. package/dist/cjs/core/ToolLoopExecutor.js.map +0 -1
  606. package/dist/cjs/core/ToolManager.d.ts +0 -250
  607. package/dist/cjs/core/ToolManager.d.ts.map +0 -1
  608. package/dist/cjs/core/ToolManager.js +0 -1104
  609. package/dist/cjs/core/ToolManager.js.map +0 -1
  610. package/dist/cjs/core/createAgent.d.ts +0 -35
  611. package/dist/cjs/core/createAgent.d.ts.map +0 -1
  612. package/dist/cjs/core/createAgent.js +0 -39
  613. package/dist/cjs/core/createAgent.js.map +0 -1
  614. package/dist/cjs/core/flow-namespace.d.ts +0 -64
  615. package/dist/cjs/core/flow-namespace.d.ts.map +0 -1
  616. package/dist/cjs/core/flow-namespace.js +0 -182
  617. package/dist/cjs/core/flow-namespace.js.map +0 -1
  618. package/dist/cjs/core/toolGates.d.ts +0 -24
  619. package/dist/cjs/core/toolGates.d.ts.map +0 -1
  620. package/dist/cjs/core/toolGates.js +0 -52
  621. package/dist/cjs/core/toolGates.js.map +0 -1
  622. package/dist/cjs/types/persistence.d.ts +0 -254
  623. package/dist/cjs/types/persistence.d.ts.map +0 -1
  624. package/dist/cjs/types/persistence.js +0 -7
  625. package/dist/cjs/types/persistence.js.map +0 -1
  626. package/dist/cjs/types/prompt-cache.d.ts +0 -15
  627. package/dist/cjs/types/prompt-cache.d.ts.map +0 -1
  628. package/dist/cjs/types/prompt-cache.js +0 -6
  629. package/dist/cjs/types/prompt-cache.js.map +0 -1
  630. package/dist/cjs/types/signals.d.ts +0 -263
  631. package/dist/cjs/types/signals.d.ts.map +0 -1
  632. package/dist/cjs/types/signals.js +0 -11
  633. package/dist/cjs/types/signals.js.map +0 -1
  634. package/dist/cjs/types/template.d.ts +0 -84
  635. package/dist/cjs/types/template.d.ts.map +0 -1
  636. package/dist/cjs/types/template.js +0 -3
  637. package/dist/cjs/types/template.js.map +0 -1
  638. package/dist/cjs/utils/condition.d.ts +0 -63
  639. package/dist/cjs/utils/condition.d.ts.map +0 -1
  640. package/dist/cjs/utils/condition.js +0 -239
  641. package/dist/cjs/utils/condition.js.map +0 -1
  642. package/dist/cjs/utils/event.d.ts +0 -6
  643. package/dist/cjs/utils/event.d.ts.map +0 -1
  644. package/dist/cjs/utils/event.js +0 -20
  645. package/dist/cjs/utils/event.js.map +0 -1
  646. package/dist/cjs/utils/id.d.ts +0 -33
  647. package/dist/cjs/utils/id.d.ts.map +0 -1
  648. package/dist/cjs/utils/id.js +0 -84
  649. package/dist/cjs/utils/id.js.map +0 -1
  650. package/dist/cjs/utils/serialize.d.ts +0 -36
  651. package/dist/cjs/utils/serialize.d.ts.map +0 -1
  652. package/dist/cjs/utils/serialize.js +0 -77
  653. package/dist/cjs/utils/serialize.js.map +0 -1
  654. package/dist/cjs/utils/session.d.ts +0 -124
  655. package/dist/cjs/utils/session.d.ts.map +0 -1
  656. package/dist/cjs/utils/session.js +0 -396
  657. package/dist/cjs/utils/session.js.map +0 -1
  658. package/dist/constants/index.d.ts +0 -2
  659. package/dist/constants/index.d.ts.map +0 -1
  660. package/dist/constants/index.js +0 -4
  661. package/dist/constants/index.js.map +0 -1
  662. package/dist/core/AutoChainExecutor.d.ts +0 -97
  663. package/dist/core/AutoChainExecutor.d.ts.map +0 -1
  664. package/dist/core/AutoChainExecutor.js +0 -284
  665. package/dist/core/AutoChainExecutor.js.map +0 -1
  666. package/dist/core/BranchEvaluator.d.ts +0 -55
  667. package/dist/core/BranchEvaluator.d.ts.map +0 -1
  668. package/dist/core/BranchEvaluator.js +0 -121
  669. package/dist/core/BranchEvaluator.js.map +0 -1
  670. package/dist/core/DirectiveChainTracker.d.ts +0 -49
  671. package/dist/core/DirectiveChainTracker.d.ts.map +0 -1
  672. package/dist/core/DirectiveChainTracker.js +0 -117
  673. package/dist/core/DirectiveChainTracker.js.map +0 -1
  674. package/dist/core/Events.d.ts +0 -26
  675. package/dist/core/Events.d.ts.map +0 -1
  676. package/dist/core/Events.js +0 -137
  677. package/dist/core/Events.js.map +0 -1
  678. package/dist/core/Flow.d.ts +0 -183
  679. package/dist/core/Flow.d.ts.map +0 -1
  680. package/dist/core/Flow.js +0 -547
  681. package/dist/core/Flow.js.map +0 -1
  682. package/dist/core/FlowRouter.d.ts +0 -183
  683. package/dist/core/FlowRouter.d.ts.map +0 -1
  684. package/dist/core/FlowRouter.js +0 -1043
  685. package/dist/core/FlowRouter.js.map +0 -1
  686. package/dist/core/PersistenceManager.d.ts +0 -114
  687. package/dist/core/PersistenceManager.d.ts.map +0 -1
  688. package/dist/core/PersistenceManager.js +0 -332
  689. package/dist/core/PersistenceManager.js.map +0 -1
  690. package/dist/core/PromptComposer.d.ts +0 -47
  691. package/dist/core/PromptComposer.d.ts.map +0 -1
  692. package/dist/core/PromptComposer.js +0 -393
  693. package/dist/core/PromptComposer.js.map +0 -1
  694. package/dist/core/PromptSectionCache.d.ts +0 -48
  695. package/dist/core/PromptSectionCache.d.ts.map +0 -1
  696. package/dist/core/PromptSectionCache.js +0 -104
  697. package/dist/core/PromptSectionCache.js.map +0 -1
  698. package/dist/core/ResponseEngine.d.ts +0 -43
  699. package/dist/core/ResponseEngine.d.ts.map +0 -1
  700. package/dist/core/ResponseEngine.js +0 -231
  701. package/dist/core/ResponseEngine.js.map +0 -1
  702. package/dist/core/ResponseGenerationError.d.ts +0 -30
  703. package/dist/core/ResponseGenerationError.d.ts.map +0 -1
  704. package/dist/core/ResponseGenerationError.js +0 -31
  705. package/dist/core/ResponseGenerationError.js.map +0 -1
  706. package/dist/core/ResponseModal.d.ts +0 -305
  707. package/dist/core/ResponseModal.d.ts.map +0 -1
  708. package/dist/core/ResponseModal.js +0 -1410
  709. package/dist/core/ResponseModal.js.map +0 -1
  710. package/dist/core/ResponsePipeline.d.ts +0 -220
  711. package/dist/core/ResponsePipeline.d.ts.map +0 -1
  712. package/dist/core/ResponsePipeline.js +0 -1035
  713. package/dist/core/ResponsePipeline.js.map +0 -1
  714. package/dist/core/SessionFinalizer.d.ts +0 -34
  715. package/dist/core/SessionFinalizer.d.ts.map +0 -1
  716. package/dist/core/SessionFinalizer.js +0 -84
  717. package/dist/core/SessionFinalizer.js.map +0 -1
  718. package/dist/core/SessionManager.d.ts +0 -112
  719. package/dist/core/SessionManager.d.ts.map +0 -1
  720. package/dist/core/SessionManager.js +0 -301
  721. package/dist/core/SessionManager.js.map +0 -1
  722. package/dist/core/SignalCoordinator.d.ts +0 -103
  723. package/dist/core/SignalCoordinator.d.ts.map +0 -1
  724. package/dist/core/SignalCoordinator.js +0 -203
  725. package/dist/core/SignalCoordinator.js.map +0 -1
  726. package/dist/core/SignalEvaluator.d.ts +0 -86
  727. package/dist/core/SignalEvaluator.d.ts.map +0 -1
  728. package/dist/core/SignalEvaluator.js +0 -312
  729. package/dist/core/SignalEvaluator.js.map +0 -1
  730. package/dist/core/SignalProcessor.d.ts +0 -152
  731. package/dist/core/SignalProcessor.d.ts.map +0 -1
  732. package/dist/core/SignalProcessor.js +0 -498
  733. package/dist/core/SignalProcessor.js.map +0 -1
  734. package/dist/core/Step.d.ts +0 -184
  735. package/dist/core/Step.d.ts.map +0 -1
  736. package/dist/core/Step.js +0 -594
  737. package/dist/core/Step.js.map +0 -1
  738. package/dist/core/StepLifecycle.d.ts +0 -43
  739. package/dist/core/StepLifecycle.d.ts.map +0 -1
  740. package/dist/core/StepLifecycle.js +0 -176
  741. package/dist/core/StepLifecycle.js.map +0 -1
  742. package/dist/core/StreamingToolExecutor.d.ts +0 -142
  743. package/dist/core/StreamingToolExecutor.d.ts.map +0 -1
  744. package/dist/core/StreamingToolExecutor.js +0 -483
  745. package/dist/core/StreamingToolExecutor.js.map +0 -1
  746. package/dist/core/ToolLoopExecutor.d.ts +0 -133
  747. package/dist/core/ToolLoopExecutor.d.ts.map +0 -1
  748. package/dist/core/ToolLoopExecutor.js +0 -564
  749. package/dist/core/ToolLoopExecutor.js.map +0 -1
  750. package/dist/core/ToolManager.d.ts +0 -250
  751. package/dist/core/ToolManager.d.ts.map +0 -1
  752. package/dist/core/ToolManager.js +0 -1098
  753. package/dist/core/ToolManager.js.map +0 -1
  754. package/dist/core/createAgent.d.ts +0 -35
  755. package/dist/core/createAgent.d.ts.map +0 -1
  756. package/dist/core/createAgent.js +0 -36
  757. package/dist/core/createAgent.js.map +0 -1
  758. package/dist/core/flow-namespace.d.ts +0 -64
  759. package/dist/core/flow-namespace.d.ts.map +0 -1
  760. package/dist/core/flow-namespace.js +0 -179
  761. package/dist/core/flow-namespace.js.map +0 -1
  762. package/dist/core/toolGates.d.ts +0 -24
  763. package/dist/core/toolGates.d.ts.map +0 -1
  764. package/dist/core/toolGates.js +0 -49
  765. package/dist/core/toolGates.js.map +0 -1
  766. package/dist/types/persistence.d.ts +0 -254
  767. package/dist/types/persistence.d.ts.map +0 -1
  768. package/dist/types/persistence.js +0 -6
  769. package/dist/types/persistence.js.map +0 -1
  770. package/dist/types/prompt-cache.d.ts +0 -15
  771. package/dist/types/prompt-cache.d.ts.map +0 -1
  772. package/dist/types/prompt-cache.js +0 -5
  773. package/dist/types/prompt-cache.js.map +0 -1
  774. package/dist/types/signals.d.ts +0 -263
  775. package/dist/types/signals.d.ts.map +0 -1
  776. package/dist/types/signals.js +0 -10
  777. package/dist/types/signals.js.map +0 -1
  778. package/dist/types/template.d.ts +0 -84
  779. package/dist/types/template.d.ts.map +0 -1
  780. package/dist/types/template.js +0 -2
  781. package/dist/types/template.js.map +0 -1
  782. package/dist/utils/condition.d.ts +0 -63
  783. package/dist/utils/condition.d.ts.map +0 -1
  784. package/dist/utils/condition.js +0 -230
  785. package/dist/utils/condition.js.map +0 -1
  786. package/dist/utils/event.d.ts +0 -6
  787. package/dist/utils/event.d.ts.map +0 -1
  788. package/dist/utils/event.js +0 -17
  789. package/dist/utils/event.js.map +0 -1
  790. package/dist/utils/id.d.ts +0 -33
  791. package/dist/utils/id.d.ts.map +0 -1
  792. package/dist/utils/id.js +0 -77
  793. package/dist/utils/id.js.map +0 -1
  794. package/dist/utils/serialize.d.ts +0 -36
  795. package/dist/utils/serialize.d.ts.map +0 -1
  796. package/dist/utils/serialize.js +0 -72
  797. package/dist/utils/serialize.js.map +0 -1
  798. package/dist/utils/session.d.ts +0 -124
  799. package/dist/utils/session.d.ts.map +0 -1
  800. package/dist/utils/session.js +0 -379
  801. package/dist/utils/session.js.map +0 -1
  802. package/docs/concepts/directives.md +0 -369
  803. package/docs/reference/adapters.md +0 -543
  804. package/docs/reference/create-agent.md +0 -216
  805. package/docs/reference/directive.md +0 -242
  806. package/docs/reference/signals.md +0 -368
  807. package/examples/02-data-extraction.ts +0 -90
  808. package/examples/05-branching.ts +0 -140
  809. package/examples/06-flow-control.ts +0 -103
  810. package/examples/08-persistence.ts +0 -98
  811. package/examples/09-signals.ts +0 -144
  812. package/src/adapters/MemoryAdapter.ts +0 -281
  813. package/src/adapters/MongoAdapter.ts +0 -341
  814. package/src/adapters/OpenSearchAdapter.ts +0 -693
  815. package/src/adapters/PostgreSQLAdapter.ts +0 -487
  816. package/src/adapters/PrismaAdapter.ts +0 -617
  817. package/src/adapters/RedisAdapter.ts +0 -439
  818. package/src/adapters/SQLiteAdapter.ts +0 -496
  819. package/src/adapters/index.ts +0 -43
  820. package/src/adapters/sessionRow.ts +0 -57
  821. package/src/constants/index.ts +0 -2
  822. package/src/core/AutoChainExecutor.ts +0 -397
  823. package/src/core/BranchEvaluator.ts +0 -161
  824. package/src/core/DirectiveChainTracker.ts +0 -144
  825. package/src/core/Events.ts +0 -164
  826. package/src/core/Flow.ts +0 -665
  827. package/src/core/FlowRouter.ts +0 -1540
  828. package/src/core/PersistenceManager.ts +0 -446
  829. package/src/core/PromptComposer.ts +0 -448
  830. package/src/core/PromptSectionCache.ts +0 -125
  831. package/src/core/ResponseEngine.ts +0 -338
  832. package/src/core/ResponseGenerationError.ts +0 -53
  833. package/src/core/ResponseModal.ts +0 -1902
  834. package/src/core/ResponsePipeline.ts +0 -1404
  835. package/src/core/SessionFinalizer.ts +0 -108
  836. package/src/core/SessionManager.ts +0 -372
  837. package/src/core/SignalCoordinator.ts +0 -263
  838. package/src/core/SignalEvaluator.ts +0 -404
  839. package/src/core/SignalProcessor.ts +0 -663
  840. package/src/core/Step.ts +0 -782
  841. package/src/core/StepLifecycle.ts +0 -242
  842. package/src/core/StreamingToolExecutor.ts +0 -609
  843. package/src/core/ToolLoopExecutor.ts +0 -749
  844. package/src/core/ToolManager.ts +0 -1379
  845. package/src/core/createAgent.ts +0 -40
  846. package/src/core/flow-namespace.ts +0 -227
  847. package/src/core/toolGates.ts +0 -72
  848. package/src/types/persistence.ts +0 -303
  849. package/src/types/prompt-cache.ts +0 -17
  850. package/src/types/signals.ts +0 -338
  851. package/src/types/template.ts +0 -98
  852. package/src/utils/condition.ts +0 -296
  853. package/src/utils/event.ts +0 -16
  854. package/src/utils/id.ts +0 -91
  855. package/src/utils/serialize.ts +0 -86
  856. 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"}