@falai/agent 3.4.4 → 4.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (847) 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 +1 -1
  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/types/agent.d.ts +153 -383
  100. package/dist/cjs/types/agent.d.ts.map +1 -1
  101. package/dist/cjs/types/agent.js +1 -1
  102. package/dist/cjs/types/ai.d.ts +32 -1
  103. package/dist/cjs/types/ai.d.ts.map +1 -1
  104. package/dist/cjs/types/compaction.d.ts +3 -1
  105. package/dist/cjs/types/compaction.d.ts.map +1 -1
  106. package/dist/cjs/types/errors.d.ts +9 -12
  107. package/dist/cjs/types/errors.d.ts.map +1 -1
  108. package/dist/cjs/types/errors.js +14 -17
  109. package/dist/cjs/types/errors.js.map +1 -1
  110. package/dist/cjs/types/flow.d.ts +265 -513
  111. package/dist/cjs/types/flow.d.ts.map +1 -1
  112. package/dist/cjs/types/flow.js +7 -1
  113. package/dist/cjs/types/flow.js.map +1 -1
  114. package/dist/cjs/types/history.d.ts +7 -18
  115. package/dist/cjs/types/history.d.ts.map +1 -1
  116. package/dist/cjs/types/history.js.map +1 -1
  117. package/dist/cjs/types/index.d.ts +9 -15
  118. package/dist/cjs/types/index.d.ts.map +1 -1
  119. package/dist/cjs/types/index.js +4 -14
  120. package/dist/cjs/types/index.js.map +1 -1
  121. package/dist/cjs/types/session.d.ts +94 -64
  122. package/dist/cjs/types/session.d.ts.map +1 -1
  123. package/dist/cjs/types/session.js +5 -1
  124. package/dist/cjs/types/session.js.map +1 -1
  125. package/dist/cjs/types/tool.d.ts +37 -207
  126. package/dist/cjs/types/tool.d.ts.map +1 -1
  127. package/dist/cjs/types/tool.js +5 -14
  128. package/dist/cjs/types/tool.js.map +1 -1
  129. package/dist/cjs/utils/clock.d.ts +28 -0
  130. package/dist/cjs/utils/clock.d.ts.map +1 -0
  131. package/dist/cjs/utils/clock.js +64 -0
  132. package/dist/cjs/utils/clock.js.map +1 -0
  133. package/dist/cjs/utils/duration.d.ts +11 -0
  134. package/dist/cjs/utils/duration.d.ts.map +1 -0
  135. package/dist/cjs/utils/duration.js +31 -0
  136. package/dist/cjs/utils/duration.js.map +1 -0
  137. package/dist/cjs/utils/history.d.ts +4 -1
  138. package/dist/cjs/utils/history.d.ts.map +1 -1
  139. package/dist/cjs/utils/history.js +2 -2
  140. package/dist/cjs/utils/history.js.map +1 -1
  141. package/dist/cjs/utils/index.d.ts +4 -10
  142. package/dist/cjs/utils/index.d.ts.map +1 -1
  143. package/dist/cjs/utils/index.js +14 -61
  144. package/dist/cjs/utils/index.js.map +1 -1
  145. package/dist/cjs/utils/json.d.ts +2 -0
  146. package/dist/cjs/utils/json.d.ts.map +1 -1
  147. package/dist/cjs/utils/json.js +5 -0
  148. package/dist/cjs/utils/json.js.map +1 -1
  149. package/dist/cjs/utils/outcomes.d.ts +48 -0
  150. package/dist/cjs/utils/outcomes.d.ts.map +1 -0
  151. package/dist/cjs/utils/outcomes.js +51 -0
  152. package/dist/cjs/utils/outcomes.js.map +1 -0
  153. package/dist/cjs/utils/schema.d.ts +50 -0
  154. package/dist/cjs/utils/schema.d.ts.map +1 -0
  155. package/dist/cjs/utils/schema.js +138 -0
  156. package/dist/cjs/utils/schema.js.map +1 -0
  157. package/dist/cjs/utils/streamingMessage.d.ts +3 -2
  158. package/dist/cjs/utils/streamingMessage.d.ts.map +1 -1
  159. package/dist/cjs/utils/streamingMessage.js +38 -4
  160. package/dist/cjs/utils/streamingMessage.js.map +1 -1
  161. package/dist/cjs/utils/template.d.ts +13 -149
  162. package/dist/cjs/utils/template.d.ts.map +1 -1
  163. package/dist/cjs/utils/template.js +31 -363
  164. package/dist/cjs/utils/template.js.map +1 -1
  165. package/dist/cjs/utils/usage.d.ts +19 -0
  166. package/dist/cjs/utils/usage.d.ts.map +1 -0
  167. package/dist/cjs/utils/usage.js +35 -0
  168. package/dist/cjs/utils/usage.js.map +1 -0
  169. package/dist/core/Agent.d.ts +22 -378
  170. package/dist/core/Agent.d.ts.map +1 -1
  171. package/dist/core/Agent.js +107 -1181
  172. package/dist/core/Agent.js.map +1 -1
  173. package/dist/core/CompactionEngine.d.ts.map +1 -1
  174. package/dist/core/CompactionEngine.js +5 -3
  175. package/dist/core/CompactionEngine.js.map +1 -1
  176. package/dist/core/FlowSpec.d.ts +136 -0
  177. package/dist/core/FlowSpec.d.ts.map +1 -0
  178. package/dist/core/FlowSpec.js +516 -0
  179. package/dist/core/FlowSpec.js.map +1 -0
  180. package/dist/core/Migrate.d.ts +38 -0
  181. package/dist/core/Migrate.d.ts.map +1 -0
  182. package/dist/core/Migrate.js +264 -0
  183. package/dist/core/Migrate.js.map +1 -0
  184. package/dist/core/Prompt.d.ts +54 -0
  185. package/dist/core/Prompt.d.ts.map +1 -0
  186. package/dist/core/Prompt.js +133 -0
  187. package/dist/core/Prompt.js.map +1 -0
  188. package/dist/core/Runner.d.ts +160 -0
  189. package/dist/core/Runner.d.ts.map +1 -0
  190. package/dist/core/Runner.js +1127 -0
  191. package/dist/core/Runner.js.map +1 -0
  192. package/dist/core/Speak.d.ts +37 -0
  193. package/dist/core/Speak.d.ts.map +1 -0
  194. package/dist/core/Speak.js +360 -0
  195. package/dist/core/Speak.js.map +1 -0
  196. package/dist/core/Understand.d.ts +28 -0
  197. package/dist/core/Understand.d.ts.map +1 -0
  198. package/dist/core/Understand.js +349 -0
  199. package/dist/core/Understand.js.map +1 -0
  200. package/dist/core/contracts.d.ts +122 -0
  201. package/dist/core/contracts.d.ts.map +1 -0
  202. package/dist/core/contracts.js +10 -0
  203. package/dist/core/contracts.js.map +1 -0
  204. package/dist/core/falai.d.ts +57 -0
  205. package/dist/core/falai.d.ts.map +1 -0
  206. package/dist/core/falai.js +40 -0
  207. package/dist/core/falai.js.map +1 -0
  208. package/dist/core/predicate.d.ts +9 -0
  209. package/dist/core/predicate.d.ts.map +1 -0
  210. package/dist/core/predicate.js +54 -0
  211. package/dist/core/predicate.js.map +1 -0
  212. package/dist/index.d.ts +26 -31
  213. package/dist/index.d.ts.map +1 -1
  214. package/dist/index.js +19 -24
  215. package/dist/index.js.map +1 -1
  216. package/dist/persistence/MemoryStore.d.ts +15 -0
  217. package/dist/persistence/MemoryStore.d.ts.map +1 -0
  218. package/dist/persistence/MemoryStore.js +35 -0
  219. package/dist/persistence/MemoryStore.js.map +1 -0
  220. package/dist/persistence/MongoStore.d.ts +42 -0
  221. package/dist/persistence/MongoStore.d.ts.map +1 -0
  222. package/dist/persistence/MongoStore.js +56 -0
  223. package/dist/persistence/MongoStore.js.map +1 -0
  224. package/dist/persistence/OpenSearchStore.d.ts +86 -0
  225. package/dist/persistence/OpenSearchStore.d.ts.map +1 -0
  226. package/dist/persistence/OpenSearchStore.js +116 -0
  227. package/dist/persistence/OpenSearchStore.js.map +1 -0
  228. package/dist/persistence/PostgresStore.d.ts +41 -0
  229. package/dist/persistence/PostgresStore.d.ts.map +1 -0
  230. package/dist/persistence/PostgresStore.js +54 -0
  231. package/dist/persistence/PostgresStore.js.map +1 -0
  232. package/dist/persistence/PrismaStore.d.ts +65 -0
  233. package/dist/persistence/PrismaStore.d.ts.map +1 -0
  234. package/dist/persistence/PrismaStore.js +91 -0
  235. package/dist/persistence/PrismaStore.js.map +1 -0
  236. package/dist/persistence/RedisStore.d.ts +34 -0
  237. package/dist/persistence/RedisStore.d.ts.map +1 -0
  238. package/dist/persistence/RedisStore.js +57 -0
  239. package/dist/persistence/RedisStore.js.map +1 -0
  240. package/dist/persistence/SQLiteStore.d.ts +45 -0
  241. package/dist/persistence/SQLiteStore.d.ts.map +1 -0
  242. package/dist/persistence/SQLiteStore.js +70 -0
  243. package/dist/persistence/SQLiteStore.js.map +1 -0
  244. package/dist/persistence/sessionRow.d.ts +14 -0
  245. package/dist/persistence/sessionRow.d.ts.map +1 -0
  246. package/dist/persistence/sessionRow.js +45 -0
  247. package/dist/persistence/sessionRow.js.map +1 -0
  248. package/dist/providers/DeepSeekProvider.d.ts.map +1 -1
  249. package/dist/providers/DeepSeekProvider.js +8 -3
  250. package/dist/providers/DeepSeekProvider.js.map +1 -1
  251. package/dist/providers/GeminiProvider.d.ts +4 -3
  252. package/dist/providers/GeminiProvider.d.ts.map +1 -1
  253. package/dist/providers/GeminiProvider.js +4 -3
  254. package/dist/providers/GeminiProvider.js.map +1 -1
  255. package/dist/providers/OpenAICompatibleProvider.d.ts +4 -0
  256. package/dist/providers/OpenAICompatibleProvider.d.ts.map +1 -1
  257. package/dist/providers/OpenAICompatibleProvider.js +2 -0
  258. package/dist/providers/OpenAICompatibleProvider.js.map +1 -1
  259. package/dist/providers/OpenRouterProvider.d.ts.map +1 -1
  260. package/dist/providers/OpenRouterProvider.js +2 -4
  261. package/dist/providers/OpenRouterProvider.js.map +1 -1
  262. package/dist/providers/ProviderAdapter.d.ts +1 -1
  263. package/dist/providers/ProviderAdapter.d.ts.map +1 -1
  264. package/dist/providers/ProviderAdapter.js +34 -11
  265. package/dist/providers/ProviderAdapter.js.map +1 -1
  266. package/dist/types/agent.d.ts +153 -383
  267. package/dist/types/agent.d.ts.map +1 -1
  268. package/dist/types/agent.js +1 -1
  269. package/dist/types/ai.d.ts +32 -1
  270. package/dist/types/ai.d.ts.map +1 -1
  271. package/dist/types/compaction.d.ts +3 -1
  272. package/dist/types/compaction.d.ts.map +1 -1
  273. package/dist/types/errors.d.ts +9 -12
  274. package/dist/types/errors.d.ts.map +1 -1
  275. package/dist/types/errors.js +12 -15
  276. package/dist/types/errors.js.map +1 -1
  277. package/dist/types/flow.d.ts +265 -513
  278. package/dist/types/flow.d.ts.map +1 -1
  279. package/dist/types/flow.js +7 -1
  280. package/dist/types/flow.js.map +1 -1
  281. package/dist/types/history.d.ts +7 -18
  282. package/dist/types/history.d.ts.map +1 -1
  283. package/dist/types/history.js.map +1 -1
  284. package/dist/types/index.d.ts +9 -15
  285. package/dist/types/index.d.ts.map +1 -1
  286. package/dist/types/index.js +2 -7
  287. package/dist/types/index.js.map +1 -1
  288. package/dist/types/session.d.ts +94 -64
  289. package/dist/types/session.d.ts.map +1 -1
  290. package/dist/types/session.js +5 -1
  291. package/dist/types/session.js.map +1 -1
  292. package/dist/types/tool.d.ts +37 -207
  293. package/dist/types/tool.d.ts.map +1 -1
  294. package/dist/types/tool.js +6 -13
  295. package/dist/types/tool.js.map +1 -1
  296. package/dist/utils/clock.d.ts +28 -0
  297. package/dist/utils/clock.d.ts.map +1 -0
  298. package/dist/utils/clock.js +59 -0
  299. package/dist/utils/clock.js.map +1 -0
  300. package/dist/utils/duration.d.ts +11 -0
  301. package/dist/utils/duration.d.ts.map +1 -0
  302. package/dist/utils/duration.js +26 -0
  303. package/dist/utils/duration.js.map +1 -0
  304. package/dist/utils/history.d.ts +4 -1
  305. package/dist/utils/history.d.ts.map +1 -1
  306. package/dist/utils/history.js +2 -2
  307. package/dist/utils/history.js.map +1 -1
  308. package/dist/utils/index.d.ts +4 -10
  309. package/dist/utils/index.d.ts.map +1 -1
  310. package/dist/utils/index.js +4 -21
  311. package/dist/utils/index.js.map +1 -1
  312. package/dist/utils/json.d.ts +2 -0
  313. package/dist/utils/json.d.ts.map +1 -1
  314. package/dist/utils/json.js +4 -0
  315. package/dist/utils/json.js.map +1 -1
  316. package/dist/utils/outcomes.d.ts +48 -0
  317. package/dist/utils/outcomes.d.ts.map +1 -0
  318. package/dist/utils/outcomes.js +48 -0
  319. package/dist/utils/outcomes.js.map +1 -0
  320. package/dist/utils/schema.d.ts +50 -0
  321. package/dist/utils/schema.d.ts.map +1 -0
  322. package/dist/utils/schema.js +129 -0
  323. package/dist/utils/schema.js.map +1 -0
  324. package/dist/utils/streamingMessage.d.ts +3 -2
  325. package/dist/utils/streamingMessage.d.ts.map +1 -1
  326. package/dist/utils/streamingMessage.js +38 -4
  327. package/dist/utils/streamingMessage.js.map +1 -1
  328. package/dist/utils/template.d.ts +13 -149
  329. package/dist/utils/template.d.ts.map +1 -1
  330. package/dist/utils/template.js +28 -355
  331. package/dist/utils/template.js.map +1 -1
  332. package/dist/utils/usage.d.ts +19 -0
  333. package/dist/utils/usage.d.ts.map +1 -0
  334. package/dist/utils/usage.js +31 -0
  335. package/dist/utils/usage.js.map +1 -0
  336. package/docs/README.md +37 -19
  337. package/docs/concepts/architecture.md +117 -239
  338. package/docs/concepts/collection.md +170 -0
  339. package/docs/concepts/pipeline.md +132 -378
  340. package/docs/concepts/runs-and-waits.md +192 -0
  341. package/docs/guides/actions-and-events.md +276 -0
  342. package/docs/guides/branching.md +119 -208
  343. package/docs/guides/compaction.md +63 -158
  344. package/docs/guides/conditions.md +164 -128
  345. package/docs/guides/error-handling.md +168 -164
  346. package/docs/guides/flow-control.md +210 -349
  347. package/docs/guides/flows-from-json.md +224 -0
  348. package/docs/guides/instructions.md +125 -161
  349. package/docs/guides/persistence.md +182 -206
  350. package/docs/guides/streaming.md +50 -114
  351. package/docs/guides/testing.md +284 -0
  352. package/docs/guides/triggers.md +401 -0
  353. package/docs/migration/README.md +8 -15
  354. package/docs/migration/v1-to-v2.md +1 -1
  355. package/docs/migration/v2-3-to-v2-4.md +2 -2
  356. package/docs/migration/v2-6-to-v2-7.md +4 -4
  357. package/docs/migration/v3-to-v4.md +452 -0
  358. package/docs/reference/actions-events-conditions.md +396 -0
  359. package/docs/reference/agent.md +244 -0
  360. package/docs/reference/branches.md +75 -203
  361. package/docs/reference/errors.md +188 -144
  362. package/docs/reference/fields.md +125 -0
  363. package/docs/reference/flow-spec.md +248 -0
  364. package/docs/reference/flow.md +104 -192
  365. package/docs/reference/instruction.md +83 -137
  366. package/docs/reference/outcomes.md +273 -0
  367. package/docs/reference/providers.md +525 -302
  368. package/docs/reference/session.md +210 -0
  369. package/docs/reference/step.md +194 -312
  370. package/docs/reference/stores.md +496 -0
  371. package/docs/reference/tool.md +162 -231
  372. package/docs/reference/trigger.md +180 -0
  373. package/docs/rfc/v4-one-flow.md +477 -0
  374. package/docs/start/01-install.md +59 -44
  375. package/docs/start/02-first-agent.md +97 -147
  376. package/docs/start/03-collect-data.md +78 -183
  377. package/docs/start/04-add-tools.md +159 -227
  378. package/docs/start/05-go-to-production.md +167 -164
  379. package/examples/01-quickstart.ts +26 -16
  380. package/examples/02-fields.ts +75 -0
  381. package/examples/03-tools.ts +79 -119
  382. package/examples/04-instructions.ts +60 -87
  383. package/examples/05-branches.ts +78 -0
  384. package/examples/06-triggers-and-waits.ts +148 -0
  385. package/examples/07-streaming.ts +34 -60
  386. package/examples/08-store-and-migration.ts +97 -0
  387. package/examples/09-flows-from-json.ts +107 -0
  388. package/package.json +9 -6
  389. package/src/core/Agent.ts +116 -1512
  390. package/src/core/CompactionEngine.ts +7 -4
  391. package/src/core/FlowSpec.ts +712 -0
  392. package/src/core/Migrate.ts +256 -0
  393. package/src/core/Prompt.ts +156 -0
  394. package/src/core/Runner.ts +1181 -0
  395. package/src/core/Speak.ts +451 -0
  396. package/src/core/Understand.ts +422 -0
  397. package/src/core/contracts.ts +111 -0
  398. package/src/core/falai.ts +86 -0
  399. package/src/core/predicate.ts +56 -0
  400. package/src/index.ts +119 -147
  401. package/src/persistence/MemoryStore.ts +37 -0
  402. package/src/persistence/MongoStore.ts +89 -0
  403. package/src/persistence/OpenSearchStore.ts +153 -0
  404. package/src/persistence/PostgresStore.ts +89 -0
  405. package/src/persistence/PrismaStore.ts +127 -0
  406. package/src/persistence/RedisStore.ts +90 -0
  407. package/src/persistence/SQLiteStore.ts +103 -0
  408. package/src/persistence/sessionRow.ts +45 -0
  409. package/src/providers/DeepSeekProvider.ts +8 -3
  410. package/src/providers/GeminiProvider.ts +4 -3
  411. package/src/providers/OpenAICompatibleProvider.ts +6 -0
  412. package/src/providers/OpenRouterProvider.ts +2 -4
  413. package/src/providers/ProviderAdapter.ts +36 -8
  414. package/src/types/agent.ts +124 -397
  415. package/src/types/ai.ts +33 -1
  416. package/src/types/compaction.ts +3 -1
  417. package/src/types/errors.ts +13 -16
  418. package/src/types/flow.ts +249 -550
  419. package/src/types/history.ts +7 -20
  420. package/src/types/index.ts +87 -139
  421. package/src/types/session.ts +135 -70
  422. package/src/types/tool.ts +42 -267
  423. package/src/utils/clock.ts +70 -0
  424. package/src/utils/duration.ts +33 -0
  425. package/src/utils/history.ts +3 -2
  426. package/src/utils/index.ts +8 -66
  427. package/src/utils/json.ts +5 -0
  428. package/src/utils/outcomes.ts +56 -0
  429. package/src/utils/schema.ts +145 -0
  430. package/src/utils/streamingMessage.ts +34 -4
  431. package/src/utils/template.ts +32 -423
  432. package/src/utils/usage.ts +37 -0
  433. package/dist/adapters/MemoryAdapter.d.ts +0 -47
  434. package/dist/adapters/MemoryAdapter.d.ts.map +0 -1
  435. package/dist/adapters/MemoryAdapter.js +0 -204
  436. package/dist/adapters/MemoryAdapter.js.map +0 -1
  437. package/dist/adapters/MongoAdapter.d.ts +0 -97
  438. package/dist/adapters/MongoAdapter.d.ts.map +0 -1
  439. package/dist/adapters/MongoAdapter.js +0 -196
  440. package/dist/adapters/MongoAdapter.js.map +0 -1
  441. package/dist/adapters/OpenSearchAdapter.d.ts +0 -169
  442. package/dist/adapters/OpenSearchAdapter.d.ts.map +0 -1
  443. package/dist/adapters/OpenSearchAdapter.js +0 -471
  444. package/dist/adapters/OpenSearchAdapter.js.map +0 -1
  445. package/dist/adapters/PostgreSQLAdapter.d.ts +0 -85
  446. package/dist/adapters/PostgreSQLAdapter.d.ts.map +0 -1
  447. package/dist/adapters/PostgreSQLAdapter.js +0 -308
  448. package/dist/adapters/PostgreSQLAdapter.js.map +0 -1
  449. package/dist/adapters/PrismaAdapter.d.ts +0 -115
  450. package/dist/adapters/PrismaAdapter.d.ts.map +0 -1
  451. package/dist/adapters/PrismaAdapter.js +0 -406
  452. package/dist/adapters/PrismaAdapter.js.map +0 -1
  453. package/dist/adapters/RedisAdapter.d.ts +0 -72
  454. package/dist/adapters/RedisAdapter.d.ts.map +0 -1
  455. package/dist/adapters/RedisAdapter.js +0 -286
  456. package/dist/adapters/RedisAdapter.js.map +0 -1
  457. package/dist/adapters/SQLiteAdapter.d.ts +0 -86
  458. package/dist/adapters/SQLiteAdapter.d.ts.map +0 -1
  459. package/dist/adapters/SQLiteAdapter.js +0 -337
  460. package/dist/adapters/SQLiteAdapter.js.map +0 -1
  461. package/dist/adapters/index.d.ts +0 -17
  462. package/dist/adapters/index.d.ts.map +0 -1
  463. package/dist/adapters/index.js +0 -11
  464. package/dist/adapters/index.js.map +0 -1
  465. package/dist/adapters/sessionRow.d.ts +0 -22
  466. package/dist/adapters/sessionRow.d.ts.map +0 -1
  467. package/dist/adapters/sessionRow.js +0 -48
  468. package/dist/adapters/sessionRow.js.map +0 -1
  469. package/dist/cjs/adapters/MemoryAdapter.d.ts +0 -47
  470. package/dist/cjs/adapters/MemoryAdapter.d.ts.map +0 -1
  471. package/dist/cjs/adapters/MemoryAdapter.js +0 -208
  472. package/dist/cjs/adapters/MemoryAdapter.js.map +0 -1
  473. package/dist/cjs/adapters/MongoAdapter.d.ts +0 -97
  474. package/dist/cjs/adapters/MongoAdapter.d.ts.map +0 -1
  475. package/dist/cjs/adapters/MongoAdapter.js +0 -200
  476. package/dist/cjs/adapters/MongoAdapter.js.map +0 -1
  477. package/dist/cjs/adapters/OpenSearchAdapter.d.ts +0 -169
  478. package/dist/cjs/adapters/OpenSearchAdapter.d.ts.map +0 -1
  479. package/dist/cjs/adapters/OpenSearchAdapter.js +0 -475
  480. package/dist/cjs/adapters/OpenSearchAdapter.js.map +0 -1
  481. package/dist/cjs/adapters/PostgreSQLAdapter.d.ts +0 -85
  482. package/dist/cjs/adapters/PostgreSQLAdapter.d.ts.map +0 -1
  483. package/dist/cjs/adapters/PostgreSQLAdapter.js +0 -312
  484. package/dist/cjs/adapters/PostgreSQLAdapter.js.map +0 -1
  485. package/dist/cjs/adapters/PrismaAdapter.d.ts +0 -115
  486. package/dist/cjs/adapters/PrismaAdapter.d.ts.map +0 -1
  487. package/dist/cjs/adapters/PrismaAdapter.js +0 -410
  488. package/dist/cjs/adapters/PrismaAdapter.js.map +0 -1
  489. package/dist/cjs/adapters/RedisAdapter.d.ts +0 -72
  490. package/dist/cjs/adapters/RedisAdapter.d.ts.map +0 -1
  491. package/dist/cjs/adapters/RedisAdapter.js +0 -290
  492. package/dist/cjs/adapters/RedisAdapter.js.map +0 -1
  493. package/dist/cjs/adapters/SQLiteAdapter.d.ts +0 -86
  494. package/dist/cjs/adapters/SQLiteAdapter.d.ts.map +0 -1
  495. package/dist/cjs/adapters/SQLiteAdapter.js +0 -341
  496. package/dist/cjs/adapters/SQLiteAdapter.js.map +0 -1
  497. package/dist/cjs/adapters/index.d.ts +0 -17
  498. package/dist/cjs/adapters/index.d.ts.map +0 -1
  499. package/dist/cjs/adapters/index.js +0 -21
  500. package/dist/cjs/adapters/index.js.map +0 -1
  501. package/dist/cjs/adapters/sessionRow.d.ts +0 -22
  502. package/dist/cjs/adapters/sessionRow.d.ts.map +0 -1
  503. package/dist/cjs/adapters/sessionRow.js +0 -52
  504. package/dist/cjs/adapters/sessionRow.js.map +0 -1
  505. package/dist/cjs/constants/index.d.ts +0 -1
  506. package/dist/cjs/constants/index.d.ts.map +0 -1
  507. package/dist/cjs/constants/index.js +0 -4
  508. package/dist/cjs/constants/index.js.map +0 -1
  509. package/dist/cjs/core/AutoChainExecutor.d.ts +0 -97
  510. package/dist/cjs/core/AutoChainExecutor.d.ts.map +0 -1
  511. package/dist/cjs/core/AutoChainExecutor.js +0 -288
  512. package/dist/cjs/core/AutoChainExecutor.js.map +0 -1
  513. package/dist/cjs/core/BranchEvaluator.d.ts +0 -55
  514. package/dist/cjs/core/BranchEvaluator.d.ts.map +0 -1
  515. package/dist/cjs/core/BranchEvaluator.js +0 -125
  516. package/dist/cjs/core/BranchEvaluator.js.map +0 -1
  517. package/dist/cjs/core/DirectiveChainTracker.d.ts +0 -49
  518. package/dist/cjs/core/DirectiveChainTracker.d.ts.map +0 -1
  519. package/dist/cjs/core/DirectiveChainTracker.js +0 -121
  520. package/dist/cjs/core/DirectiveChainTracker.js.map +0 -1
  521. package/dist/cjs/core/Events.d.ts +0 -26
  522. package/dist/cjs/core/Events.d.ts.map +0 -1
  523. package/dist/cjs/core/Events.js +0 -144
  524. package/dist/cjs/core/Events.js.map +0 -1
  525. package/dist/cjs/core/Flow.d.ts +0 -183
  526. package/dist/cjs/core/Flow.d.ts.map +0 -1
  527. package/dist/cjs/core/Flow.js +0 -551
  528. package/dist/cjs/core/Flow.js.map +0 -1
  529. package/dist/cjs/core/FlowRouter.d.ts +0 -183
  530. package/dist/cjs/core/FlowRouter.d.ts.map +0 -1
  531. package/dist/cjs/core/FlowRouter.js +0 -1047
  532. package/dist/cjs/core/FlowRouter.js.map +0 -1
  533. package/dist/cjs/core/PersistenceManager.d.ts +0 -114
  534. package/dist/cjs/core/PersistenceManager.d.ts.map +0 -1
  535. package/dist/cjs/core/PersistenceManager.js +0 -336
  536. package/dist/cjs/core/PersistenceManager.js.map +0 -1
  537. package/dist/cjs/core/PromptComposer.d.ts +0 -47
  538. package/dist/cjs/core/PromptComposer.d.ts.map +0 -1
  539. package/dist/cjs/core/PromptComposer.js +0 -397
  540. package/dist/cjs/core/PromptComposer.js.map +0 -1
  541. package/dist/cjs/core/PromptSectionCache.d.ts +0 -48
  542. package/dist/cjs/core/PromptSectionCache.d.ts.map +0 -1
  543. package/dist/cjs/core/PromptSectionCache.js +0 -108
  544. package/dist/cjs/core/PromptSectionCache.js.map +0 -1
  545. package/dist/cjs/core/ResponseEngine.d.ts +0 -43
  546. package/dist/cjs/core/ResponseEngine.d.ts.map +0 -1
  547. package/dist/cjs/core/ResponseEngine.js +0 -235
  548. package/dist/cjs/core/ResponseEngine.js.map +0 -1
  549. package/dist/cjs/core/ResponseGenerationError.d.ts +0 -30
  550. package/dist/cjs/core/ResponseGenerationError.d.ts.map +0 -1
  551. package/dist/cjs/core/ResponseGenerationError.js +0 -35
  552. package/dist/cjs/core/ResponseGenerationError.js.map +0 -1
  553. package/dist/cjs/core/ResponseModal.d.ts +0 -305
  554. package/dist/cjs/core/ResponseModal.d.ts.map +0 -1
  555. package/dist/cjs/core/ResponseModal.js +0 -1414
  556. package/dist/cjs/core/ResponseModal.js.map +0 -1
  557. package/dist/cjs/core/ResponsePipeline.d.ts +0 -220
  558. package/dist/cjs/core/ResponsePipeline.d.ts.map +0 -1
  559. package/dist/cjs/core/ResponsePipeline.js +0 -1040
  560. package/dist/cjs/core/ResponsePipeline.js.map +0 -1
  561. package/dist/cjs/core/SessionFinalizer.d.ts +0 -34
  562. package/dist/cjs/core/SessionFinalizer.d.ts.map +0 -1
  563. package/dist/cjs/core/SessionFinalizer.js +0 -88
  564. package/dist/cjs/core/SessionFinalizer.js.map +0 -1
  565. package/dist/cjs/core/SessionManager.d.ts +0 -112
  566. package/dist/cjs/core/SessionManager.d.ts.map +0 -1
  567. package/dist/cjs/core/SessionManager.js +0 -308
  568. package/dist/cjs/core/SessionManager.js.map +0 -1
  569. package/dist/cjs/core/SignalCoordinator.d.ts +0 -103
  570. package/dist/cjs/core/SignalCoordinator.d.ts.map +0 -1
  571. package/dist/cjs/core/SignalCoordinator.js +0 -207
  572. package/dist/cjs/core/SignalCoordinator.js.map +0 -1
  573. package/dist/cjs/core/SignalEvaluator.d.ts +0 -86
  574. package/dist/cjs/core/SignalEvaluator.d.ts.map +0 -1
  575. package/dist/cjs/core/SignalEvaluator.js +0 -319
  576. package/dist/cjs/core/SignalEvaluator.js.map +0 -1
  577. package/dist/cjs/core/SignalProcessor.d.ts +0 -152
  578. package/dist/cjs/core/SignalProcessor.d.ts.map +0 -1
  579. package/dist/cjs/core/SignalProcessor.js +0 -505
  580. package/dist/cjs/core/SignalProcessor.js.map +0 -1
  581. package/dist/cjs/core/Step.d.ts +0 -184
  582. package/dist/cjs/core/Step.d.ts.map +0 -1
  583. package/dist/cjs/core/Step.js +0 -599
  584. package/dist/cjs/core/Step.js.map +0 -1
  585. package/dist/cjs/core/StepLifecycle.d.ts +0 -43
  586. package/dist/cjs/core/StepLifecycle.d.ts.map +0 -1
  587. package/dist/cjs/core/StepLifecycle.js +0 -180
  588. package/dist/cjs/core/StepLifecycle.js.map +0 -1
  589. package/dist/cjs/core/StreamingToolExecutor.d.ts +0 -142
  590. package/dist/cjs/core/StreamingToolExecutor.d.ts.map +0 -1
  591. package/dist/cjs/core/StreamingToolExecutor.js +0 -490
  592. package/dist/cjs/core/StreamingToolExecutor.js.map +0 -1
  593. package/dist/cjs/core/ToolLoopExecutor.d.ts +0 -133
  594. package/dist/cjs/core/ToolLoopExecutor.d.ts.map +0 -1
  595. package/dist/cjs/core/ToolLoopExecutor.js +0 -568
  596. package/dist/cjs/core/ToolLoopExecutor.js.map +0 -1
  597. package/dist/cjs/core/ToolManager.d.ts +0 -250
  598. package/dist/cjs/core/ToolManager.d.ts.map +0 -1
  599. package/dist/cjs/core/ToolManager.js +0 -1104
  600. package/dist/cjs/core/ToolManager.js.map +0 -1
  601. package/dist/cjs/core/createAgent.d.ts +0 -35
  602. package/dist/cjs/core/createAgent.d.ts.map +0 -1
  603. package/dist/cjs/core/createAgent.js +0 -39
  604. package/dist/cjs/core/createAgent.js.map +0 -1
  605. package/dist/cjs/core/flow-namespace.d.ts +0 -64
  606. package/dist/cjs/core/flow-namespace.d.ts.map +0 -1
  607. package/dist/cjs/core/flow-namespace.js +0 -182
  608. package/dist/cjs/core/flow-namespace.js.map +0 -1
  609. package/dist/cjs/core/toolGates.d.ts +0 -24
  610. package/dist/cjs/core/toolGates.d.ts.map +0 -1
  611. package/dist/cjs/core/toolGates.js +0 -52
  612. package/dist/cjs/core/toolGates.js.map +0 -1
  613. package/dist/cjs/types/persistence.d.ts +0 -254
  614. package/dist/cjs/types/persistence.d.ts.map +0 -1
  615. package/dist/cjs/types/persistence.js +0 -7
  616. package/dist/cjs/types/persistence.js.map +0 -1
  617. package/dist/cjs/types/prompt-cache.d.ts +0 -15
  618. package/dist/cjs/types/prompt-cache.d.ts.map +0 -1
  619. package/dist/cjs/types/prompt-cache.js +0 -6
  620. package/dist/cjs/types/prompt-cache.js.map +0 -1
  621. package/dist/cjs/types/signals.d.ts +0 -263
  622. package/dist/cjs/types/signals.d.ts.map +0 -1
  623. package/dist/cjs/types/signals.js +0 -11
  624. package/dist/cjs/types/signals.js.map +0 -1
  625. package/dist/cjs/types/template.d.ts +0 -84
  626. package/dist/cjs/types/template.d.ts.map +0 -1
  627. package/dist/cjs/types/template.js +0 -3
  628. package/dist/cjs/types/template.js.map +0 -1
  629. package/dist/cjs/utils/condition.d.ts +0 -63
  630. package/dist/cjs/utils/condition.d.ts.map +0 -1
  631. package/dist/cjs/utils/condition.js +0 -239
  632. package/dist/cjs/utils/condition.js.map +0 -1
  633. package/dist/cjs/utils/event.d.ts +0 -6
  634. package/dist/cjs/utils/event.d.ts.map +0 -1
  635. package/dist/cjs/utils/event.js +0 -20
  636. package/dist/cjs/utils/event.js.map +0 -1
  637. package/dist/cjs/utils/id.d.ts +0 -33
  638. package/dist/cjs/utils/id.d.ts.map +0 -1
  639. package/dist/cjs/utils/id.js +0 -84
  640. package/dist/cjs/utils/id.js.map +0 -1
  641. package/dist/cjs/utils/serialize.d.ts +0 -36
  642. package/dist/cjs/utils/serialize.d.ts.map +0 -1
  643. package/dist/cjs/utils/serialize.js +0 -77
  644. package/dist/cjs/utils/serialize.js.map +0 -1
  645. package/dist/cjs/utils/session.d.ts +0 -124
  646. package/dist/cjs/utils/session.d.ts.map +0 -1
  647. package/dist/cjs/utils/session.js +0 -396
  648. package/dist/cjs/utils/session.js.map +0 -1
  649. package/dist/constants/index.d.ts +0 -2
  650. package/dist/constants/index.d.ts.map +0 -1
  651. package/dist/constants/index.js +0 -4
  652. package/dist/constants/index.js.map +0 -1
  653. package/dist/core/AutoChainExecutor.d.ts +0 -97
  654. package/dist/core/AutoChainExecutor.d.ts.map +0 -1
  655. package/dist/core/AutoChainExecutor.js +0 -284
  656. package/dist/core/AutoChainExecutor.js.map +0 -1
  657. package/dist/core/BranchEvaluator.d.ts +0 -55
  658. package/dist/core/BranchEvaluator.d.ts.map +0 -1
  659. package/dist/core/BranchEvaluator.js +0 -121
  660. package/dist/core/BranchEvaluator.js.map +0 -1
  661. package/dist/core/DirectiveChainTracker.d.ts +0 -49
  662. package/dist/core/DirectiveChainTracker.d.ts.map +0 -1
  663. package/dist/core/DirectiveChainTracker.js +0 -117
  664. package/dist/core/DirectiveChainTracker.js.map +0 -1
  665. package/dist/core/Events.d.ts +0 -26
  666. package/dist/core/Events.d.ts.map +0 -1
  667. package/dist/core/Events.js +0 -137
  668. package/dist/core/Events.js.map +0 -1
  669. package/dist/core/Flow.d.ts +0 -183
  670. package/dist/core/Flow.d.ts.map +0 -1
  671. package/dist/core/Flow.js +0 -547
  672. package/dist/core/Flow.js.map +0 -1
  673. package/dist/core/FlowRouter.d.ts +0 -183
  674. package/dist/core/FlowRouter.d.ts.map +0 -1
  675. package/dist/core/FlowRouter.js +0 -1043
  676. package/dist/core/FlowRouter.js.map +0 -1
  677. package/dist/core/PersistenceManager.d.ts +0 -114
  678. package/dist/core/PersistenceManager.d.ts.map +0 -1
  679. package/dist/core/PersistenceManager.js +0 -332
  680. package/dist/core/PersistenceManager.js.map +0 -1
  681. package/dist/core/PromptComposer.d.ts +0 -47
  682. package/dist/core/PromptComposer.d.ts.map +0 -1
  683. package/dist/core/PromptComposer.js +0 -393
  684. package/dist/core/PromptComposer.js.map +0 -1
  685. package/dist/core/PromptSectionCache.d.ts +0 -48
  686. package/dist/core/PromptSectionCache.d.ts.map +0 -1
  687. package/dist/core/PromptSectionCache.js +0 -104
  688. package/dist/core/PromptSectionCache.js.map +0 -1
  689. package/dist/core/ResponseEngine.d.ts +0 -43
  690. package/dist/core/ResponseEngine.d.ts.map +0 -1
  691. package/dist/core/ResponseEngine.js +0 -231
  692. package/dist/core/ResponseEngine.js.map +0 -1
  693. package/dist/core/ResponseGenerationError.d.ts +0 -30
  694. package/dist/core/ResponseGenerationError.d.ts.map +0 -1
  695. package/dist/core/ResponseGenerationError.js +0 -31
  696. package/dist/core/ResponseGenerationError.js.map +0 -1
  697. package/dist/core/ResponseModal.d.ts +0 -305
  698. package/dist/core/ResponseModal.d.ts.map +0 -1
  699. package/dist/core/ResponseModal.js +0 -1410
  700. package/dist/core/ResponseModal.js.map +0 -1
  701. package/dist/core/ResponsePipeline.d.ts +0 -220
  702. package/dist/core/ResponsePipeline.d.ts.map +0 -1
  703. package/dist/core/ResponsePipeline.js +0 -1035
  704. package/dist/core/ResponsePipeline.js.map +0 -1
  705. package/dist/core/SessionFinalizer.d.ts +0 -34
  706. package/dist/core/SessionFinalizer.d.ts.map +0 -1
  707. package/dist/core/SessionFinalizer.js +0 -84
  708. package/dist/core/SessionFinalizer.js.map +0 -1
  709. package/dist/core/SessionManager.d.ts +0 -112
  710. package/dist/core/SessionManager.d.ts.map +0 -1
  711. package/dist/core/SessionManager.js +0 -301
  712. package/dist/core/SessionManager.js.map +0 -1
  713. package/dist/core/SignalCoordinator.d.ts +0 -103
  714. package/dist/core/SignalCoordinator.d.ts.map +0 -1
  715. package/dist/core/SignalCoordinator.js +0 -203
  716. package/dist/core/SignalCoordinator.js.map +0 -1
  717. package/dist/core/SignalEvaluator.d.ts +0 -86
  718. package/dist/core/SignalEvaluator.d.ts.map +0 -1
  719. package/dist/core/SignalEvaluator.js +0 -312
  720. package/dist/core/SignalEvaluator.js.map +0 -1
  721. package/dist/core/SignalProcessor.d.ts +0 -152
  722. package/dist/core/SignalProcessor.d.ts.map +0 -1
  723. package/dist/core/SignalProcessor.js +0 -498
  724. package/dist/core/SignalProcessor.js.map +0 -1
  725. package/dist/core/Step.d.ts +0 -184
  726. package/dist/core/Step.d.ts.map +0 -1
  727. package/dist/core/Step.js +0 -594
  728. package/dist/core/Step.js.map +0 -1
  729. package/dist/core/StepLifecycle.d.ts +0 -43
  730. package/dist/core/StepLifecycle.d.ts.map +0 -1
  731. package/dist/core/StepLifecycle.js +0 -176
  732. package/dist/core/StepLifecycle.js.map +0 -1
  733. package/dist/core/StreamingToolExecutor.d.ts +0 -142
  734. package/dist/core/StreamingToolExecutor.d.ts.map +0 -1
  735. package/dist/core/StreamingToolExecutor.js +0 -483
  736. package/dist/core/StreamingToolExecutor.js.map +0 -1
  737. package/dist/core/ToolLoopExecutor.d.ts +0 -133
  738. package/dist/core/ToolLoopExecutor.d.ts.map +0 -1
  739. package/dist/core/ToolLoopExecutor.js +0 -564
  740. package/dist/core/ToolLoopExecutor.js.map +0 -1
  741. package/dist/core/ToolManager.d.ts +0 -250
  742. package/dist/core/ToolManager.d.ts.map +0 -1
  743. package/dist/core/ToolManager.js +0 -1098
  744. package/dist/core/ToolManager.js.map +0 -1
  745. package/dist/core/createAgent.d.ts +0 -35
  746. package/dist/core/createAgent.d.ts.map +0 -1
  747. package/dist/core/createAgent.js +0 -36
  748. package/dist/core/createAgent.js.map +0 -1
  749. package/dist/core/flow-namespace.d.ts +0 -64
  750. package/dist/core/flow-namespace.d.ts.map +0 -1
  751. package/dist/core/flow-namespace.js +0 -179
  752. package/dist/core/flow-namespace.js.map +0 -1
  753. package/dist/core/toolGates.d.ts +0 -24
  754. package/dist/core/toolGates.d.ts.map +0 -1
  755. package/dist/core/toolGates.js +0 -49
  756. package/dist/core/toolGates.js.map +0 -1
  757. package/dist/types/persistence.d.ts +0 -254
  758. package/dist/types/persistence.d.ts.map +0 -1
  759. package/dist/types/persistence.js +0 -6
  760. package/dist/types/persistence.js.map +0 -1
  761. package/dist/types/prompt-cache.d.ts +0 -15
  762. package/dist/types/prompt-cache.d.ts.map +0 -1
  763. package/dist/types/prompt-cache.js +0 -5
  764. package/dist/types/prompt-cache.js.map +0 -1
  765. package/dist/types/signals.d.ts +0 -263
  766. package/dist/types/signals.d.ts.map +0 -1
  767. package/dist/types/signals.js +0 -10
  768. package/dist/types/signals.js.map +0 -1
  769. package/dist/types/template.d.ts +0 -84
  770. package/dist/types/template.d.ts.map +0 -1
  771. package/dist/types/template.js +0 -2
  772. package/dist/types/template.js.map +0 -1
  773. package/dist/utils/condition.d.ts +0 -63
  774. package/dist/utils/condition.d.ts.map +0 -1
  775. package/dist/utils/condition.js +0 -230
  776. package/dist/utils/condition.js.map +0 -1
  777. package/dist/utils/event.d.ts +0 -6
  778. package/dist/utils/event.d.ts.map +0 -1
  779. package/dist/utils/event.js +0 -17
  780. package/dist/utils/event.js.map +0 -1
  781. package/dist/utils/id.d.ts +0 -33
  782. package/dist/utils/id.d.ts.map +0 -1
  783. package/dist/utils/id.js +0 -77
  784. package/dist/utils/id.js.map +0 -1
  785. package/dist/utils/serialize.d.ts +0 -36
  786. package/dist/utils/serialize.d.ts.map +0 -1
  787. package/dist/utils/serialize.js +0 -72
  788. package/dist/utils/serialize.js.map +0 -1
  789. package/dist/utils/session.d.ts +0 -124
  790. package/dist/utils/session.d.ts.map +0 -1
  791. package/dist/utils/session.js +0 -379
  792. package/dist/utils/session.js.map +0 -1
  793. package/docs/concepts/directives.md +0 -369
  794. package/docs/reference/adapters.md +0 -543
  795. package/docs/reference/create-agent.md +0 -216
  796. package/docs/reference/directive.md +0 -242
  797. package/docs/reference/signals.md +0 -368
  798. package/examples/02-data-extraction.ts +0 -90
  799. package/examples/05-branching.ts +0 -140
  800. package/examples/06-flow-control.ts +0 -103
  801. package/examples/08-persistence.ts +0 -98
  802. package/examples/09-signals.ts +0 -144
  803. package/src/adapters/MemoryAdapter.ts +0 -281
  804. package/src/adapters/MongoAdapter.ts +0 -341
  805. package/src/adapters/OpenSearchAdapter.ts +0 -693
  806. package/src/adapters/PostgreSQLAdapter.ts +0 -487
  807. package/src/adapters/PrismaAdapter.ts +0 -617
  808. package/src/adapters/RedisAdapter.ts +0 -439
  809. package/src/adapters/SQLiteAdapter.ts +0 -496
  810. package/src/adapters/index.ts +0 -43
  811. package/src/adapters/sessionRow.ts +0 -57
  812. package/src/constants/index.ts +0 -2
  813. package/src/core/AutoChainExecutor.ts +0 -397
  814. package/src/core/BranchEvaluator.ts +0 -161
  815. package/src/core/DirectiveChainTracker.ts +0 -144
  816. package/src/core/Events.ts +0 -164
  817. package/src/core/Flow.ts +0 -665
  818. package/src/core/FlowRouter.ts +0 -1540
  819. package/src/core/PersistenceManager.ts +0 -446
  820. package/src/core/PromptComposer.ts +0 -448
  821. package/src/core/PromptSectionCache.ts +0 -125
  822. package/src/core/ResponseEngine.ts +0 -338
  823. package/src/core/ResponseGenerationError.ts +0 -53
  824. package/src/core/ResponseModal.ts +0 -1902
  825. package/src/core/ResponsePipeline.ts +0 -1404
  826. package/src/core/SessionFinalizer.ts +0 -108
  827. package/src/core/SessionManager.ts +0 -372
  828. package/src/core/SignalCoordinator.ts +0 -263
  829. package/src/core/SignalEvaluator.ts +0 -404
  830. package/src/core/SignalProcessor.ts +0 -663
  831. package/src/core/Step.ts +0 -782
  832. package/src/core/StepLifecycle.ts +0 -242
  833. package/src/core/StreamingToolExecutor.ts +0 -609
  834. package/src/core/ToolLoopExecutor.ts +0 -749
  835. package/src/core/ToolManager.ts +0 -1379
  836. package/src/core/createAgent.ts +0 -40
  837. package/src/core/flow-namespace.ts +0 -227
  838. package/src/core/toolGates.ts +0 -72
  839. package/src/types/persistence.ts +0 -303
  840. package/src/types/prompt-cache.ts +0 -17
  841. package/src/types/signals.ts +0 -338
  842. package/src/types/template.ts +0 -98
  843. package/src/utils/condition.ts +0 -296
  844. package/src/utils/event.ts +0 -16
  845. package/src/utils/id.ts +0 -91
  846. package/src/utils/serialize.ts +0 -86
  847. package/src/utils/session.ts +0 -501
@@ -1,505 +0,0 @@
1
- "use strict";
2
- /* eslint-disable @typescript-eslint/no-explicit-any */
3
- /**
4
- * SignalProcessor — Orchestration for signal phase execution.
5
- *
6
- * Owns:
7
- * - `behaviorAllowsExecution`: Behavior gating (Algorithm 2)
8
- * - `recordTrigger`: Immutable session update for trigger state
9
- * - `buildSignalContext`: Constructs the handler context (D-Q12 writers)
10
- * - `runPhase` / `runPreSignalPhase` / `runPostSignalPhase`: Phase orchestration (Algorithm 1)
11
- *
12
- * @module SignalProcessor
13
- */
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.SignalProcessor = void 0;
16
- exports.behaviorAllowsExecution = behaviorAllowsExecution;
17
- exports.recordTrigger = recordTrigger;
18
- exports.buildSignalContext = buildSignalContext;
19
- const history_js_1 = require("../types/history.js");
20
- const flow_namespace_js_1 = require("./flow-namespace.js");
21
- const index_js_1 = require("../utils/index.js");
22
- /** Recorded on `SignalFiring.extractionError` when a matched extraction-mode
23
- * signal yields no payload (model omitted the field or returned null). */
24
- const EXTRACTION_MISSING_MESSAGE = "Signal matched in extraction mode but the classifier returned no extracted payload.";
25
- // ──────────────────────────────────────────────────────────────────────────────
26
- // behaviorAllowsExecution — Algorithm 2
27
- // ──────────────────────────────────────────────────────────────────────────────
28
- /**
29
- * Determines whether a signal's behavior gating allows execution this turn.
30
- *
31
- * Algorithm 2 from the design document:
32
- * - `'always'` (or unset) → always allowed
33
- * - `'once'` → allowed only if no prior trigger exists
34
- * - `'cooldown'` → allowed when elapsed time since last trigger >= cooldownMs;
35
- * when `cooldownMs` is missing, treated as `'always'` (misconfigured)
36
- * - Missing trigger (first-time) → allowed regardless of behavior
37
- *
38
- * Pure function; no I/O.
39
- *
40
- * @param signal - The signal definition (with id, behavior, cooldownMs)
41
- * @param trigger - The existing trigger state from `session.signals.triggers[signal.id]`, or undefined
42
- * @returns true if the signal is allowed to execute
43
- *
44
- * @requirements 5.1, 5.2, 5.3, 5.4
45
- */
46
- function behaviorAllowsExecution(signal, trigger) {
47
- // No prior trigger → always allowed (first-time execution)
48
- if (trigger == null)
49
- return true;
50
- const behavior = signal.behavior ?? 'always';
51
- if (behavior === 'always')
52
- return true;
53
- if (behavior === 'once')
54
- return false;
55
- if (behavior === 'cooldown') {
56
- // Misconfigured: cooldown without cooldownMs → treat as 'always'
57
- if (signal.cooldownMs == null)
58
- return true;
59
- const lastTriggeredTime = trigger.lastTriggeredAt instanceof Date
60
- ? trigger.lastTriggeredAt.getTime()
61
- : new Date(trigger.lastTriggeredAt).getTime();
62
- const elapsedMs = Date.now() - lastTriggeredTime;
63
- return elapsedMs >= signal.cooldownMs;
64
- }
65
- // Unknown behavior value → allow (defensive)
66
- return true;
67
- }
68
- // ──────────────────────────────────────────────────────────────────────────────
69
- // recordTrigger — Immutable session update
70
- // ──────────────────────────────────────────────────────────────────────────────
71
- /**
72
- * Records a signal trigger on the session, returning a new session object
73
- * (immutable update — never mutates input).
74
- *
75
- * - On first trigger: sets `firstTriggeredAt` and `lastTriggeredAt` to now,
76
- * `count = 1`, plus `lastReason` and `lastPhase`.
77
- * - On subsequent triggers: leaves `firstTriggeredAt` unchanged, increments
78
- * `count`, updates `lastTriggeredAt`, `lastReason`, `lastPhase`.
79
- *
80
- * @param session - Current session state (not mutated)
81
- * @param signal - The signal that fired
82
- * @param reason - The match reason (AI rationale, 'code-only', or 'unconditional')
83
- * @param phase - The phase in which the signal fired
84
- * @returns A new session with updated `signals.triggers[signal.id]`
85
- *
86
- * @requirements 10.1, 10.2
87
- */
88
- function recordTrigger(session, signal, reason, phase) {
89
- const signalId = signal.id ?? 'unknown';
90
- const now = new Date();
91
- const existingTriggers = session.signals?.triggers ?? {};
92
- const existingTrigger = existingTriggers[signalId];
93
- let updatedTrigger;
94
- if (existingTrigger == null) {
95
- // First trigger
96
- updatedTrigger = {
97
- firstTriggeredAt: now,
98
- lastTriggeredAt: now,
99
- count: 1,
100
- lastReason: reason,
101
- lastPhase: phase,
102
- };
103
- }
104
- else {
105
- // Subsequent trigger — preserve firstTriggeredAt, increment count
106
- updatedTrigger = {
107
- firstTriggeredAt: existingTrigger.firstTriggeredAt,
108
- lastTriggeredAt: now,
109
- count: existingTrigger.count + 1,
110
- lastReason: reason,
111
- lastPhase: phase,
112
- };
113
- }
114
- return {
115
- ...session,
116
- signals: {
117
- ...session.signals,
118
- triggers: {
119
- ...existingTriggers,
120
- [signalId]: updatedTrigger,
121
- },
122
- },
123
- };
124
- }
125
- /**
126
- * Builds the `SignalContext` passed to signal handlers.
127
- *
128
- * - `updateContext` and `updateData` replicate the ToolContext D-Q12 writer
129
- * pattern: shallow-merge partial updates into the session, call the
130
- * `onUpdateSession` callback so the processor can track mutations.
131
- * - `dispatch` pushes a `SignalDirective` onto the turn-local bus.
132
- * - `lastUserMessage` is derived from the last user-role event in history.
133
- * - `triggeredAt` is set to `new Date()` at construction time.
134
- * - `matched` is always `true` (literal type).
135
- *
136
- * @requirements 6.1, 6.2, 6.3
137
- */
138
- function buildSignalContext(params) {
139
- const { signal, reason, extracted, phase, session, context, history, directiveBus, onUpdateSession, } = params;
140
- // Derive lastUserMessage from the last user-role event
141
- const lastUserMessage = deriveLastUserMessage(history);
142
- // D-Q12 contract writers — same signature as ToolContext
143
- const updateContext = (updates) => {
144
- // Context is agent-level (not on session directly). Push a contextUpdate
145
- // directive so the pipeline applies the merge after handler returns.
146
- directiveBus.push({ contextUpdate: updates });
147
- return Promise.resolve();
148
- };
149
- const updateData = (updates) => {
150
- const updatedData = { ...session.data, ...updates };
151
- const updatedSession = {
152
- ...session,
153
- data: updatedData,
154
- };
155
- onUpdateSession(updatedSession);
156
- // Also push a dataUpdate directive for the pipeline
157
- directiveBus.push({ dataUpdate: updates });
158
- return Promise.resolve();
159
- };
160
- const dispatch = (directive) => {
161
- directiveBus.push(directive);
162
- };
163
- return {
164
- signal,
165
- phase,
166
- matched: true,
167
- reason,
168
- extracted,
169
- session,
170
- context,
171
- data: session.data,
172
- history,
173
- lastUserMessage,
174
- triggeredAt: new Date(),
175
- updateContext,
176
- updateData,
177
- dispatch,
178
- };
179
- }
180
- // ──────────────────────────────────────────────────────────────────────────────
181
- // Internal helpers
182
- // ──────────────────────────────────────────────────────────────────────────────
183
- /**
184
- * Extracts the last user message from history events.
185
- * Walks backward to find the most recent user-role message event.
186
- */
187
- function deriveLastUserMessage(history) {
188
- for (let i = history.length - 1; i >= 0; i--) {
189
- const event = history[i];
190
- // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
191
- if (event.source === history_js_1.MessageRole.USER && event.kind === 'message') {
192
- const data = event.data;
193
- if (data?.message) {
194
- return data.message;
195
- }
196
- }
197
- }
198
- return undefined;
199
- }
200
- /**
201
- * SignalProcessor — Orchestrates signal phase execution.
202
- *
203
- * Constructed only when `options.signals` is non-empty (Requirement 2.3).
204
- * Owns the full Algorithm 1 lifecycle: filtering, gating, evaluation,
205
- * handler invocation, directive collection, and state persistence.
206
- */
207
- class SignalProcessor {
208
- constructor(signals, provider, evaluator, options) {
209
- this.signals = signals;
210
- this.provider = provider;
211
- this.evaluator = evaluator;
212
- this.options = options;
213
- }
214
- /** @internal Expose internals for testability. */
215
- get _internals() {
216
- return { signals: this.signals, provider: this.provider, evaluator: this.evaluator, options: this.options };
217
- }
218
- /**
219
- * Pre-signal phase. Delegates to `runPhase('pre', ...)`.
220
- * Return type narrows `mergedDirective` to `Directive | undefined`.
221
- */
222
- async runPreSignalPhase(params) {
223
- return await this.runPhase('pre', params);
224
- }
225
- /**
226
- * Post-signal phase. Delegates to `runPhase('post', ...)`.
227
- * Return type narrows `mergedDirective` to `Directive | undefined`.
228
- * Pre-LLM-only fields (`appendPrompt`, `injectTools`, `halt`) are
229
- * already dropped inside `runPhase` for the post phase.
230
- */
231
- async runPostSignalPhase(params) {
232
- return await this.runPhase('post', params);
233
- }
234
- // ──────────────────────────────────────────────────────────────────────────
235
- // Private: Algorithm 1 — Phase orchestration
236
- // ──────────────────────────────────────────────────────────────────────────
237
- async runPhase(phase, params) {
238
- const { session, history, context } = params;
239
- // ── STEP 0: zero-cost fast path ──────────────────────────────────────
240
- if (this.signals.length === 0) {
241
- return { firings: [], updatedSession: session };
242
- }
243
- // ── STEP 1: filter eligible signals for this phase ───────────────────
244
- const eligible = this.signals.filter((s) => s.enabled !== false && (s.phase === phase || s.phase === 'both'));
245
- if (eligible.length === 0) {
246
- return { firings: [], updatedSession: session };
247
- }
248
- index_js_1.logger.debug(`[Signals] Phase "${phase}" eligible signals: [${eligible.map(s => s.id ?? 'unknown').join(', ')}]`);
249
- // ── STEP 2: filter by behavior gating ────────────────────────────────
250
- const gated = eligible.filter((s) => behaviorAllowsExecution(s, session.signals?.triggers?.[s.id ?? 'unknown']));
251
- if (gated.length === 0) {
252
- return { firings: [], updatedSession: session };
253
- }
254
- index_js_1.logger.debug(`[Signals] Phase "${phase}" after behavior gating: [${gated.map(s => s.id ?? 'unknown').join(', ')}]`);
255
- // ── STEP 3: partition by evaluation mode ─────────────────────────────
256
- const unconditional = [];
257
- const codeOnly = [];
258
- const llmConditioned = [];
259
- for (const s of gated) {
260
- if (s.when != null) {
261
- llmConditioned.push(s);
262
- }
263
- else if (s.if != null) {
264
- codeOnly.push(s);
265
- }
266
- else {
267
- unconditional.push(s);
268
- }
269
- }
270
- // Build predicate context (shared across code-only and if-gating)
271
- const predicateCtx = {
272
- data: session.data,
273
- context,
274
- session,
275
- history,
276
- };
277
- // ── STEP 4: unconditional signals — always match ─────────────────────
278
- const matched = [];
279
- for (const s of unconditional) {
280
- matched.push({
281
- signal: s,
282
- reason: 'unconditional',
283
- declarationIndex: this.signals.indexOf(s),
284
- });
285
- }
286
- // ── STEP 5: code-only signals → evaluateIf ──────────────────────────
287
- for (const s of codeOnly) {
288
- const passes = await this.evaluator.evaluateIf(s.if, predicateCtx);
289
- if (passes) {
290
- matched.push({
291
- signal: s,
292
- reason: 'code-only',
293
- declarationIndex: this.signals.indexOf(s),
294
- });
295
- }
296
- }
297
- // ── STEP 6: LLM-conditioned signals ─────────────────────────────────
298
- if (llmConditioned.length > 0) {
299
- // Gate by `if` first to skip token cost
300
- const ifGated = [];
301
- for (const s of llmConditioned) {
302
- if (s.if == null) {
303
- ifGated.push(s);
304
- }
305
- else {
306
- const passes = await this.evaluator.evaluateIf(s.if, predicateCtx);
307
- if (passes) {
308
- ifGated.push(s);
309
- }
310
- }
311
- }
312
- if (ifGated.length > 0) {
313
- const classifierStart = performance.now();
314
- const classifierResults = await this.evaluator.evaluateSignalsBatched({
315
- signals: ifGated,
316
- batchSize: this.options.batchSize,
317
- session,
318
- history,
319
- context,
320
- });
321
- const classifierDurationMs = performance.now() - classifierStart;
322
- index_js_1.logger.debug(`[Signals] Phase "${phase}" classifier call duration: ${classifierDurationMs.toFixed(1)}ms for ${ifGated.length} LLM-conditioned signals`);
323
- for (const s of ifGated) {
324
- const id = s.id ?? 'unknown';
325
- const result = classifierResults[id];
326
- if (result?.matched) {
327
- matched.push({
328
- signal: s,
329
- reason: result.reason ?? 'matched',
330
- extracted: result.extracted,
331
- declarationIndex: this.signals.indexOf(s),
332
- });
333
- }
334
- }
335
- }
336
- }
337
- // ── STEP 6b: extraction for code-matched signals ─────────────────────
338
- // Signals matched by code — unconditional (no `when`/`if`) or code-only
339
- // (`if` without `when`) — that carry an `extract` schema still need a
340
- // dedicated extraction call. LLM-conditioned signals already had their
341
- // extraction merged into the STEP 6 classifier batch, so they are
342
- // excluded here by identity. Without this, an `if` + `extract` signal
343
- // (e.g. the documented `leadStage` example) would reach its handler with
344
- // `ctx.extracted` permanently undefined.
345
- const codeMatchedWithExtract = matched.filter((m) => m.signal.extract != null && !llmConditioned.includes(m.signal));
346
- if (codeMatchedWithExtract.length > 0) {
347
- const extractResults = await this.evaluator.evaluateSignals({
348
- signals: codeMatchedWithExtract.map((m) => m.signal),
349
- session,
350
- history,
351
- context,
352
- });
353
- // Attach extracted data back onto the already-matched entries.
354
- for (const m of codeMatchedWithExtract) {
355
- const id = m.signal.id ?? 'unknown';
356
- m.extracted = extractResults[id]?.extracted;
357
- }
358
- }
359
- // ── STEP 7: sort by priority desc, declaration order tiebreaker ──────
360
- matched.sort((a, b) => {
361
- const priorityDiff = (b.signal.priority ?? 0) - (a.signal.priority ?? 0);
362
- if (priorityDiff !== 0)
363
- return priorityDiff;
364
- return a.declarationIndex - b.declarationIndex;
365
- });
366
- // ── STEP 8: invoke handlers; collect directives; track state ─────────
367
- const bus = [];
368
- const firings = [];
369
- let updatedSession = session;
370
- for (const m of matched) {
371
- // Turn-local directive bus for this handler (captures dispatch calls)
372
- const handlerBus = [];
373
- // A signal in extraction mode that matched but produced no payload
374
- // would otherwise pass `extracted: undefined` to the handler with no
375
- // trace. Surface the miss on the firing and in logs instead.
376
- const extractionMissing = m.signal.extract != null && m.extracted == null;
377
- if (extractionMissing) {
378
- index_js_1.logger.warn(`[Signals] Signal "${m.signal.id ?? 'unknown'}" matched in extraction mode ` +
379
- `but the classifier returned no extracted payload; handler receives extracted: undefined.`);
380
- }
381
- const sigCtx = buildSignalContext({
382
- signal: m.signal,
383
- reason: m.reason,
384
- extracted: m.extracted,
385
- phase,
386
- session: updatedSession,
387
- context,
388
- history,
389
- directiveBus: handlerBus,
390
- onUpdateSession: (s) => { updatedSession = s; },
391
- });
392
- const start = performance.now();
393
- try {
394
- const handlerResult = await m.signal.handler(sigCtx);
395
- // Collect directives from dispatch calls
396
- for (const d of handlerBus) {
397
- bus.push(d);
398
- }
399
- let resolvedDirective;
400
- if (handlerResult != null && typeof handlerResult === 'object') {
401
- resolvedDirective = { ...handlerResult };
402
- // Resolve replyWith → reply
403
- if (resolvedDirective.replyWith != null) {
404
- if (typeof resolvedDirective.replyWith === 'function') {
405
- // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
406
- resolvedDirective.reply = resolvedDirective.replyWith(sigCtx);
407
- }
408
- else {
409
- resolvedDirective.reply = resolvedDirective.replyWith;
410
- }
411
- delete resolvedDirective.replyWith;
412
- }
413
- bus.push(resolvedDirective);
414
- }
415
- // Record trigger only after the handler has completed successfully.
416
- updatedSession = recordTrigger(updatedSession, m.signal, m.reason, phase);
417
- const handlerDurationMs = performance.now() - start;
418
- // Debug: per-handler duration and emitted directive fields
419
- const directiveFields = resolvedDirective
420
- ? Object.keys(resolvedDirective).filter(k => resolvedDirective[k] !== undefined)
421
- : [];
422
- index_js_1.logger.debug(`[Signals] Phase "${phase}" handler "${m.signal.id ?? 'unknown'}" completed in ${handlerDurationMs.toFixed(1)}ms` +
423
- (directiveFields.length > 0 ? `, directive fields: [${directiveFields.join(', ')}]` : ', no directive'));
424
- // Record firing
425
- firings.push({
426
- id: m.signal.id ?? 'unknown',
427
- phase,
428
- reason: m.reason,
429
- extracted: m.extracted,
430
- directive: resolvedDirective,
431
- durationMs: handlerDurationMs,
432
- ...(extractionMissing ? { extractionError: EXTRACTION_MISSING_MESSAGE } : {}),
433
- });
434
- // stopOtherSignals → break iteration
435
- if (resolvedDirective?.stopOtherSignals === true) {
436
- break;
437
- }
438
- }
439
- catch (error) {
440
- const errorMessage = error instanceof Error ? error.message : String(error);
441
- const handlerDurationMs = performance.now() - start;
442
- // Handler errors logged at ERROR regardless of debug flag (Requirement 13.2)
443
- index_js_1.logger.error(`[Signals] Handler threw for signal "${m.signal.id ?? 'unknown'}": ${errorMessage}`);
444
- firings.push({
445
- id: m.signal.id ?? 'unknown',
446
- phase,
447
- reason: m.reason,
448
- handlerError: errorMessage,
449
- durationMs: handlerDurationMs,
450
- ...(extractionMissing ? { extractionError: EXTRACTION_MISSING_MESSAGE } : {}),
451
- });
452
- // Continue iteration — handler errors never break the turn
453
- }
454
- }
455
- // ── STEP 9: merge directives ─────────────────────────────────────────
456
- let mergedDirective;
457
- if (bus.length > 0) {
458
- mergedDirective = this.mergeDirectives(bus);
459
- // For post-phase, drop pre-LLM-only fields with debug warning
460
- if (phase === 'post') {
461
- if (mergedDirective.appendPrompt != null) {
462
- index_js_1.logger.debug('[Signals] Dropping appendPrompt from post-phase signal directive (pre-LLM-only field)');
463
- delete mergedDirective.appendPrompt;
464
- }
465
- if (mergedDirective.injectTools != null) {
466
- index_js_1.logger.debug('[Signals] Dropping injectTools from post-phase signal directive (pre-LLM-only field)');
467
- delete mergedDirective.injectTools;
468
- }
469
- if (mergedDirective.halt != null) {
470
- index_js_1.logger.debug('[Signals] Dropping halt from post-phase signal directive (pre-LLM-only field)');
471
- delete mergedDirective.halt;
472
- }
473
- }
474
- // Check if merged directive is now empty after stripping
475
- const hasFields = Object.keys(mergedDirective).length > 0;
476
- if (!hasFields) {
477
- mergedDirective = undefined;
478
- }
479
- }
480
- return { mergedDirective, firings, updatedSession };
481
- }
482
- // ──────────────────────────────────────────────────────────────────────────
483
- // Directive merging — Algorithm 4 pattern
484
- // ──────────────────────────────────────────────────────────────────────────
485
- /**
486
- * Merges an array of signal directives into a single directive.
487
- *
488
- * Merge strategy (matches Algorithm 4 / AutoChainExecutor pattern):
489
- * - Position fields (`goTo`, `goToStep`, `complete`, `abort`, `reset`, `halt`): last-write-wins
490
- * - `reply`: last-write-wins
491
- * - `appendPrompt`: array-concat
492
- * - `injectTools`: array-concat
493
- * - `dataUpdate`: shallow-merge (later values overwrite earlier for same key)
494
- * - `contextUpdate`: shallow-merge
495
- * - `stopOtherSignals`: OR (any true → true)
496
- */
497
- mergeDirectives(directives) {
498
- // Canonical Algorithm 4 merge — one algorithm shared with tools and
499
- // step hooks (position precedence, reply last-wins, state shallow-merge,
500
- // halt OR). Empty in, empty ({}) out.
501
- return flow_namespace_js_1.flow.mergeAll(directives) ?? {};
502
- }
503
- }
504
- exports.SignalProcessor = SignalProcessor;
505
- //# sourceMappingURL=SignalProcessor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SignalProcessor.js","sourceRoot":"","sources":["../../../src/core/SignalProcessor.ts"],"names":[],"mappings":"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"}