@moureau/pipeflow 0.0.1 → 0.0.3

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 (336) hide show
  1. package/README.md +280 -130
  2. package/dist/cjs/agents/agent.js +1 -1
  3. package/dist/cjs/agents/agent.js.map +3 -3
  4. package/dist/cjs/agents/tools/tools.js +1 -1
  5. package/dist/cjs/agents/tools/tools.js.map +3 -3
  6. package/dist/cjs/client/client.js +2 -0
  7. package/dist/cjs/client/client.js.map +7 -0
  8. package/dist/cjs/client/index.js +2 -0
  9. package/dist/cjs/client/index.js.map +7 -0
  10. package/dist/cjs/client/json.js +2 -0
  11. package/dist/cjs/client/json.js.map +7 -0
  12. package/dist/cjs/client/protocol/websocket.js +2 -0
  13. package/dist/cjs/client/protocol/websocket.js.map +7 -0
  14. package/dist/cjs/client/protocol.js +2 -0
  15. package/dist/cjs/client/protocol.js.map +7 -0
  16. package/dist/cjs/conversations/conversation/conversation.js +1 -1
  17. package/dist/cjs/conversations/conversation/conversation.js.map +3 -3
  18. package/dist/cjs/conversations/conversations.js +1 -1
  19. package/dist/cjs/conversations/conversations.js.map +3 -3
  20. package/dist/cjs/conversations/index.js +1 -1
  21. package/dist/cjs/conversations/index.js.map +3 -3
  22. package/dist/cjs/conversations/orchestration/coordination/coordination.js +10 -0
  23. package/dist/cjs/conversations/orchestration/coordination/coordination.js.map +7 -0
  24. package/dist/cjs/conversations/orchestration/coordination/index.js +2 -0
  25. package/dist/cjs/conversations/orchestration/coordination/index.js.map +7 -0
  26. package/dist/cjs/conversations/orchestration/orchestrator/coordination-runner/coordination-runner.js +4 -0
  27. package/dist/cjs/conversations/orchestration/orchestrator/coordination-runner/coordination-runner.js.map +7 -0
  28. package/dist/cjs/conversations/orchestration/orchestrator/coordination-runner/index.js +2 -0
  29. package/dist/cjs/conversations/orchestration/orchestrator/coordination-runner/index.js.map +7 -0
  30. package/dist/cjs/conversations/orchestration/orchestrator/generation/generation.js +2 -0
  31. package/dist/cjs/conversations/orchestration/orchestrator/generation/generation.js.map +7 -0
  32. package/dist/cjs/conversations/orchestration/orchestrator/generation/index.js +2 -0
  33. package/dist/cjs/conversations/orchestration/orchestrator/generation/index.js.map +7 -0
  34. package/dist/cjs/conversations/orchestration/orchestrator/history/history.js +4 -0
  35. package/dist/cjs/conversations/orchestration/orchestrator/history/history.js.map +7 -0
  36. package/dist/cjs/conversations/orchestration/orchestrator/history/index.js +2 -0
  37. package/dist/cjs/conversations/orchestration/orchestrator/history/index.js.map +7 -0
  38. package/dist/cjs/conversations/orchestration/orchestrator/index.js +1 -1
  39. package/dist/cjs/conversations/orchestration/orchestrator/index.js.map +3 -3
  40. package/dist/cjs/conversations/orchestration/orchestrator/orchestrator.js +1 -2
  41. package/dist/cjs/conversations/orchestration/orchestrator/orchestrator.js.map +3 -3
  42. package/dist/cjs/conversations/orchestration/orchestrator/routing/index.js +2 -0
  43. package/dist/cjs/conversations/orchestration/orchestrator/routing/index.js.map +7 -0
  44. package/dist/cjs/conversations/orchestration/orchestrator/routing/routing.js +23 -0
  45. package/dist/cjs/conversations/orchestration/orchestrator/routing/routing.js.map +7 -0
  46. package/dist/cjs/conversations/orchestration/orchestrator/speech/index.js +2 -0
  47. package/dist/cjs/conversations/orchestration/orchestrator/speech/index.js.map +7 -0
  48. package/dist/cjs/conversations/orchestration/orchestrator/speech/speech.js +2 -0
  49. package/dist/cjs/conversations/orchestration/orchestrator/speech/speech.js.map +7 -0
  50. package/dist/cjs/conversations/orchestration/orchestrator/tools/index.js +2 -0
  51. package/dist/cjs/conversations/orchestration/orchestrator/tools/index.js.map +7 -0
  52. package/dist/cjs/conversations/orchestration/orchestrator/tools/tools.js +2 -0
  53. package/dist/cjs/conversations/orchestration/orchestrator/tools/tools.js.map +7 -0
  54. package/dist/cjs/conversations/orchestration/test-harness.js +2 -0
  55. package/dist/cjs/conversations/orchestration/test-harness.js.map +7 -0
  56. package/dist/cjs/conversations/orchestration/text-chunker/index.js +2 -0
  57. package/dist/cjs/conversations/orchestration/text-chunker/index.js.map +7 -0
  58. package/dist/cjs/conversations/orchestration/text-chunker/text-chunker.js +3 -0
  59. package/dist/cjs/conversations/orchestration/text-chunker/text-chunker.js.map +7 -0
  60. package/dist/cjs/conversations/stream/conversation-stream.js +2 -0
  61. package/dist/cjs/conversations/stream/conversation-stream.js.map +7 -0
  62. package/dist/cjs/conversations/stream/index.js +2 -0
  63. package/dist/cjs/conversations/stream/index.js.map +7 -0
  64. package/dist/cjs/conversations/types.js +1 -1
  65. package/dist/cjs/conversations/types.js.map +2 -2
  66. package/dist/cjs/index.js +1 -1
  67. package/dist/cjs/index.js.map +3 -3
  68. package/dist/cjs/persistence/adapters/sqlite/sqlite.js +18 -14
  69. package/dist/cjs/persistence/adapters/sqlite/sqlite.js.map +3 -3
  70. package/dist/cjs/pipeflow/index.js +2 -0
  71. package/dist/cjs/pipeflow/index.js.map +7 -0
  72. package/dist/cjs/pipeflow/pipeflow.js +2 -0
  73. package/dist/cjs/pipeflow/pipeflow.js.map +7 -0
  74. package/dist/cjs/providers/index.js +1 -1
  75. package/dist/cjs/providers/index.js.map +2 -2
  76. package/dist/cjs/providers/llm/adapters/claude/claude.js +5 -0
  77. package/dist/cjs/providers/llm/adapters/claude/claude.js.map +7 -0
  78. package/dist/cjs/providers/llm/adapters/claude/index.js +2 -0
  79. package/dist/cjs/providers/llm/adapters/claude/index.js.map +7 -0
  80. package/dist/cjs/providers/llm/adapters/deepseek/deepseek.js +1 -1
  81. package/dist/cjs/providers/llm/adapters/deepseek/deepseek.js.map +3 -3
  82. package/dist/cjs/providers/llm/adapters/index.js +1 -1
  83. package/dist/cjs/providers/llm/adapters/index.js.map +3 -3
  84. package/dist/cjs/providers/llm/adapters/openai/index.js +2 -0
  85. package/dist/cjs/providers/llm/adapters/openai/index.js.map +7 -0
  86. package/dist/cjs/providers/llm/adapters/openai/openai.js +2 -0
  87. package/dist/cjs/providers/llm/adapters/openai/openai.js.map +7 -0
  88. package/dist/cjs/providers/llm/adapters/openai-compatible.js +10 -0
  89. package/dist/cjs/providers/llm/adapters/openai-compatible.js.map +7 -0
  90. package/dist/cjs/providers/llm/adapters/openrouter/index.js +2 -0
  91. package/dist/cjs/providers/llm/adapters/openrouter/index.js.map +7 -0
  92. package/dist/cjs/providers/llm/adapters/openrouter/openrouter.js +2 -0
  93. package/dist/cjs/providers/llm/adapters/openrouter/openrouter.js.map +7 -0
  94. package/dist/cjs/providers/llm/index.js +1 -1
  95. package/dist/cjs/providers/llm/index.js.map +3 -3
  96. package/dist/cjs/providers/llm/toolmode/index.js +2 -0
  97. package/dist/cjs/providers/llm/toolmode/index.js.map +7 -0
  98. package/dist/cjs/providers/llm/toolmode/toolmode.js +2 -0
  99. package/dist/cjs/providers/llm/toolmode/toolmode.js.map +7 -0
  100. package/dist/cjs/providers/llm/types.js +1 -1
  101. package/dist/cjs/providers/llm/types.js.map +3 -3
  102. package/dist/cjs/providers/stt/adapters/deepgram/deepgram.js +1 -1
  103. package/dist/cjs/providers/stt/adapters/deepgram/deepgram.js.map +3 -3
  104. package/dist/cjs/providers/stt/adapters/index.js +1 -1
  105. package/dist/cjs/providers/stt/adapters/index.js.map +3 -3
  106. package/dist/cjs/providers/stt/adapters/openrouter/index.js +2 -0
  107. package/dist/cjs/providers/stt/adapters/openrouter/index.js.map +7 -0
  108. package/dist/cjs/providers/stt/adapters/openrouter/openrouter.js +2 -0
  109. package/dist/cjs/providers/stt/adapters/openrouter/openrouter.js.map +7 -0
  110. package/dist/cjs/providers/tts/adapters/index.js +1 -1
  111. package/dist/cjs/providers/tts/adapters/index.js.map +3 -3
  112. package/dist/cjs/providers/tts/adapters/kokoro/kokoro.js +4 -1
  113. package/dist/cjs/providers/tts/adapters/kokoro/kokoro.js.map +3 -3
  114. package/dist/cjs/providers/tts/adapters/openrouter/index.js +2 -0
  115. package/dist/cjs/providers/tts/adapters/openrouter/index.js.map +7 -0
  116. package/dist/cjs/providers/tts/adapters/openrouter/openrouter.js +2 -0
  117. package/dist/cjs/providers/tts/adapters/openrouter/openrouter.js.map +7 -0
  118. package/dist/cjs/transport/streamobject/field-stream/field-stream.js +2 -0
  119. package/dist/cjs/transport/streamobject/field-stream/field-stream.js.map +7 -0
  120. package/dist/cjs/transport/streamobject/field-stream/index.js +2 -0
  121. package/dist/cjs/transport/streamobject/field-stream/index.js.map +7 -0
  122. package/dist/cjs/transport/streamobject/index.js +2 -0
  123. package/dist/cjs/transport/streamobject/index.js.map +7 -0
  124. package/dist/cjs/transport/streamobject/json-adapter/index.js +2 -0
  125. package/dist/cjs/transport/streamobject/json-adapter/index.js.map +7 -0
  126. package/dist/cjs/transport/streamobject/json-adapter/json-adapter.js +4 -0
  127. package/dist/cjs/transport/streamobject/json-adapter/json-adapter.js.map +7 -0
  128. package/dist/cjs/transport/streamobject/reference/index.js +2 -0
  129. package/dist/cjs/transport/streamobject/reference/index.js.map +7 -0
  130. package/dist/cjs/transport/streamobject/reference/reference.js +2 -0
  131. package/dist/cjs/transport/streamobject/reference/reference.js.map +7 -0
  132. package/dist/cjs/transport/streamobject/stream-object/index.js +2 -0
  133. package/dist/cjs/transport/streamobject/stream-object/index.js.map +7 -0
  134. package/dist/cjs/transport/streamobject/stream-object/stream-object.js +2 -0
  135. package/dist/cjs/transport/streamobject/stream-object/stream-object.js.map +7 -0
  136. package/dist/esm/agents/agent.js +1 -1
  137. package/dist/esm/agents/agent.js.map +3 -3
  138. package/dist/esm/agents/tools/tools.js +1 -1
  139. package/dist/esm/agents/tools/tools.js.map +3 -3
  140. package/dist/esm/client/client.js +2 -0
  141. package/dist/esm/client/client.js.map +7 -0
  142. package/dist/esm/client/index.js +2 -0
  143. package/dist/esm/client/index.js.map +7 -0
  144. package/dist/esm/client/json.js +2 -0
  145. package/dist/esm/client/json.js.map +7 -0
  146. package/dist/esm/client/protocol/websocket.js +2 -0
  147. package/dist/esm/client/protocol/websocket.js.map +7 -0
  148. package/dist/esm/client/protocol.js +1 -0
  149. package/dist/esm/client/protocol.js.map +7 -0
  150. package/dist/esm/conversations/conversation/conversation.js +1 -1
  151. package/dist/esm/conversations/conversation/conversation.js.map +3 -3
  152. package/dist/esm/conversations/conversations.js +1 -1
  153. package/dist/esm/conversations/conversations.js.map +3 -3
  154. package/dist/esm/conversations/index.js +1 -1
  155. package/dist/esm/conversations/index.js.map +3 -3
  156. package/dist/esm/conversations/orchestration/coordination/coordination.js +10 -0
  157. package/dist/esm/conversations/orchestration/coordination/coordination.js.map +7 -0
  158. package/dist/esm/conversations/orchestration/coordination/index.js +2 -0
  159. package/dist/esm/conversations/orchestration/coordination/index.js.map +7 -0
  160. package/dist/esm/conversations/orchestration/orchestrator/coordination-runner/coordination-runner.js +4 -0
  161. package/dist/esm/conversations/orchestration/orchestrator/coordination-runner/coordination-runner.js.map +7 -0
  162. package/dist/esm/conversations/orchestration/orchestrator/coordination-runner/index.js +2 -0
  163. package/dist/esm/conversations/orchestration/orchestrator/coordination-runner/index.js.map +7 -0
  164. package/dist/esm/conversations/orchestration/orchestrator/generation/generation.js +2 -0
  165. package/dist/esm/conversations/orchestration/orchestrator/generation/generation.js.map +7 -0
  166. package/dist/esm/conversations/orchestration/orchestrator/generation/index.js +2 -0
  167. package/dist/esm/conversations/orchestration/orchestrator/generation/index.js.map +7 -0
  168. package/dist/esm/conversations/orchestration/orchestrator/history/history.js +4 -0
  169. package/dist/esm/conversations/orchestration/orchestrator/history/history.js.map +7 -0
  170. package/dist/esm/conversations/orchestration/orchestrator/history/index.js +2 -0
  171. package/dist/esm/conversations/orchestration/orchestrator/history/index.js.map +7 -0
  172. package/dist/esm/conversations/orchestration/orchestrator/index.js +1 -1
  173. package/dist/esm/conversations/orchestration/orchestrator/index.js.map +3 -3
  174. package/dist/esm/conversations/orchestration/orchestrator/orchestrator.js +1 -2
  175. package/dist/esm/conversations/orchestration/orchestrator/orchestrator.js.map +3 -3
  176. package/dist/esm/conversations/orchestration/orchestrator/routing/index.js +2 -0
  177. package/dist/esm/conversations/orchestration/orchestrator/routing/index.js.map +7 -0
  178. package/dist/esm/conversations/orchestration/orchestrator/routing/routing.js +23 -0
  179. package/dist/esm/conversations/orchestration/orchestrator/routing/routing.js.map +7 -0
  180. package/dist/esm/conversations/orchestration/orchestrator/speech/index.js +2 -0
  181. package/dist/esm/conversations/orchestration/orchestrator/speech/index.js.map +7 -0
  182. package/dist/esm/conversations/orchestration/orchestrator/speech/speech.js +2 -0
  183. package/dist/esm/conversations/orchestration/orchestrator/speech/speech.js.map +7 -0
  184. package/dist/esm/conversations/orchestration/orchestrator/tools/index.js +2 -0
  185. package/dist/esm/conversations/orchestration/orchestrator/tools/index.js.map +7 -0
  186. package/dist/esm/conversations/orchestration/orchestrator/tools/tools.js +2 -0
  187. package/dist/esm/conversations/orchestration/orchestrator/tools/tools.js.map +7 -0
  188. package/dist/esm/conversations/orchestration/test-harness.js +2 -0
  189. package/dist/esm/conversations/orchestration/test-harness.js.map +7 -0
  190. package/dist/esm/conversations/orchestration/text-chunker/index.js +2 -0
  191. package/dist/esm/conversations/orchestration/text-chunker/index.js.map +7 -0
  192. package/dist/esm/conversations/orchestration/text-chunker/text-chunker.js +3 -0
  193. package/dist/esm/conversations/orchestration/text-chunker/text-chunker.js.map +7 -0
  194. package/dist/esm/conversations/stream/conversation-stream.js +2 -0
  195. package/dist/esm/conversations/stream/conversation-stream.js.map +7 -0
  196. package/dist/esm/conversations/stream/index.js +2 -0
  197. package/dist/esm/conversations/stream/index.js.map +7 -0
  198. package/dist/esm/conversations/types.js +1 -1
  199. package/dist/esm/conversations/types.js.map +2 -2
  200. package/dist/esm/index.js +1 -1
  201. package/dist/esm/index.js.map +3 -3
  202. package/dist/esm/persistence/adapters/sqlite/sqlite.js +18 -14
  203. package/dist/esm/persistence/adapters/sqlite/sqlite.js.map +3 -3
  204. package/dist/esm/pipeflow/index.js +2 -0
  205. package/dist/esm/pipeflow/index.js.map +7 -0
  206. package/dist/esm/pipeflow/pipeflow.js +2 -0
  207. package/dist/esm/pipeflow/pipeflow.js.map +7 -0
  208. package/dist/esm/providers/index.js +1 -1
  209. package/dist/esm/providers/index.js.map +3 -3
  210. package/dist/esm/providers/llm/adapters/claude/claude.js +5 -0
  211. package/dist/esm/providers/llm/adapters/claude/claude.js.map +7 -0
  212. package/dist/esm/providers/llm/adapters/claude/index.js +2 -0
  213. package/dist/esm/providers/llm/adapters/claude/index.js.map +7 -0
  214. package/dist/esm/providers/llm/adapters/deepseek/deepseek.js +1 -1
  215. package/dist/esm/providers/llm/adapters/deepseek/deepseek.js.map +3 -3
  216. package/dist/esm/providers/llm/adapters/index.js +1 -1
  217. package/dist/esm/providers/llm/adapters/index.js.map +3 -3
  218. package/dist/esm/providers/llm/adapters/openai/index.js +2 -0
  219. package/dist/esm/providers/llm/adapters/openai/index.js.map +7 -0
  220. package/dist/esm/providers/llm/adapters/openai/openai.js +2 -0
  221. package/dist/esm/providers/llm/adapters/openai/openai.js.map +7 -0
  222. package/dist/esm/providers/llm/adapters/openai-compatible.js +10 -0
  223. package/dist/esm/providers/llm/adapters/openai-compatible.js.map +7 -0
  224. package/dist/esm/providers/llm/adapters/openrouter/index.js +2 -0
  225. package/dist/esm/providers/llm/adapters/openrouter/index.js.map +7 -0
  226. package/dist/esm/providers/llm/adapters/openrouter/openrouter.js +2 -0
  227. package/dist/esm/providers/llm/adapters/openrouter/openrouter.js.map +7 -0
  228. package/dist/esm/providers/llm/index.js +1 -1
  229. package/dist/esm/providers/llm/index.js.map +3 -3
  230. package/dist/esm/providers/llm/toolmode/index.js +2 -0
  231. package/dist/esm/providers/llm/toolmode/index.js.map +7 -0
  232. package/dist/esm/providers/llm/toolmode/toolmode.js +2 -0
  233. package/dist/esm/providers/llm/toolmode/toolmode.js.map +7 -0
  234. package/dist/esm/providers/llm/types.js +1 -0
  235. package/dist/esm/providers/llm/types.js.map +4 -4
  236. package/dist/esm/providers/stt/adapters/deepgram/deepgram.js +1 -1
  237. package/dist/esm/providers/stt/adapters/deepgram/deepgram.js.map +3 -3
  238. package/dist/esm/providers/stt/adapters/index.js +1 -1
  239. package/dist/esm/providers/stt/adapters/index.js.map +3 -3
  240. package/dist/esm/providers/stt/adapters/openrouter/index.js +2 -0
  241. package/dist/esm/providers/stt/adapters/openrouter/index.js.map +7 -0
  242. package/dist/esm/providers/stt/adapters/openrouter/openrouter.js +2 -0
  243. package/dist/esm/providers/stt/adapters/openrouter/openrouter.js.map +7 -0
  244. package/dist/esm/providers/tts/adapters/index.js +1 -1
  245. package/dist/esm/providers/tts/adapters/index.js.map +3 -3
  246. package/dist/esm/providers/tts/adapters/kokoro/kokoro.js +4 -1
  247. package/dist/esm/providers/tts/adapters/kokoro/kokoro.js.map +3 -3
  248. package/dist/esm/providers/tts/adapters/openrouter/index.js +2 -0
  249. package/dist/esm/providers/tts/adapters/openrouter/index.js.map +7 -0
  250. package/dist/esm/providers/tts/adapters/openrouter/openrouter.js +2 -0
  251. package/dist/esm/providers/tts/adapters/openrouter/openrouter.js.map +7 -0
  252. package/dist/esm/transport/streamobject/field-stream/field-stream.js +2 -0
  253. package/dist/esm/transport/streamobject/field-stream/field-stream.js.map +7 -0
  254. package/dist/esm/transport/streamobject/field-stream/index.js +2 -0
  255. package/dist/esm/transport/streamobject/field-stream/index.js.map +7 -0
  256. package/dist/esm/transport/streamobject/index.js +2 -0
  257. package/dist/esm/transport/streamobject/index.js.map +7 -0
  258. package/dist/esm/transport/streamobject/json-adapter/index.js +2 -0
  259. package/dist/esm/transport/streamobject/json-adapter/index.js.map +7 -0
  260. package/dist/esm/transport/streamobject/json-adapter/json-adapter.js +4 -0
  261. package/dist/esm/transport/streamobject/json-adapter/json-adapter.js.map +7 -0
  262. package/dist/esm/transport/streamobject/reference/index.js +2 -0
  263. package/dist/esm/transport/streamobject/reference/index.js.map +7 -0
  264. package/dist/esm/transport/streamobject/reference/reference.js +2 -0
  265. package/dist/esm/transport/streamobject/reference/reference.js.map +7 -0
  266. package/dist/esm/transport/streamobject/stream-object/index.js +2 -0
  267. package/dist/esm/transport/streamobject/stream-object/index.js.map +7 -0
  268. package/dist/esm/transport/streamobject/stream-object/stream-object.js +2 -0
  269. package/dist/esm/transport/streamobject/stream-object/stream-object.js.map +7 -0
  270. package/dist/types/agents/agent.d.ts +3 -0
  271. package/dist/types/agents/tools/tools.d.ts +28 -6
  272. package/dist/types/client/client.d.ts +186 -0
  273. package/dist/types/client/index.d.ts +31 -0
  274. package/dist/types/client/json.d.ts +13 -0
  275. package/dist/types/client/protocol/websocket.d.ts +56 -0
  276. package/dist/types/client/protocol.d.ts +46 -0
  277. package/dist/types/conversations/conversation/conversation.d.ts +130 -6
  278. package/dist/types/conversations/conversations.d.ts +35 -1
  279. package/dist/types/conversations/index.d.ts +2 -1
  280. package/dist/types/conversations/orchestration/coordination/coordination.d.ts +192 -0
  281. package/dist/types/conversations/orchestration/coordination/index.d.ts +2 -0
  282. package/dist/types/conversations/orchestration/orchestrator/coordination-runner/coordination-runner.d.ts +108 -0
  283. package/dist/types/conversations/orchestration/orchestrator/coordination-runner/index.d.ts +2 -0
  284. package/dist/types/conversations/orchestration/orchestrator/generation/generation.d.ts +60 -0
  285. package/dist/types/conversations/orchestration/orchestrator/generation/index.d.ts +2 -0
  286. package/dist/types/conversations/orchestration/orchestrator/history/history.d.ts +62 -0
  287. package/dist/types/conversations/orchestration/orchestrator/history/index.d.ts +1 -0
  288. package/dist/types/conversations/orchestration/orchestrator/index.d.ts +10 -0
  289. package/dist/types/conversations/orchestration/orchestrator/orchestrator.d.ts +68 -31
  290. package/dist/types/conversations/orchestration/orchestrator/routing/index.d.ts +1 -0
  291. package/dist/types/conversations/orchestration/orchestrator/routing/routing.d.ts +19 -0
  292. package/dist/types/conversations/orchestration/orchestrator/speech/index.d.ts +2 -0
  293. package/dist/types/conversations/orchestration/orchestrator/speech/speech.d.ts +78 -0
  294. package/dist/types/conversations/orchestration/orchestrator/tools/index.d.ts +2 -0
  295. package/dist/types/conversations/orchestration/orchestrator/tools/tools.d.ts +65 -0
  296. package/dist/types/conversations/orchestration/test-harness.d.ts +100 -0
  297. package/dist/types/conversations/orchestration/text-chunker/index.d.ts +1 -0
  298. package/dist/types/conversations/orchestration/text-chunker/text-chunker.d.ts +39 -0
  299. package/dist/types/conversations/stream/conversation-stream.d.ts +42 -0
  300. package/dist/types/conversations/stream/index.d.ts +1 -0
  301. package/dist/types/conversations/types.d.ts +32 -0
  302. package/dist/types/index.d.ts +5 -38
  303. package/dist/types/pipeflow/index.d.ts +2 -0
  304. package/dist/types/pipeflow/pipeflow.d.ts +43 -0
  305. package/dist/types/providers/index.d.ts +1 -1
  306. package/dist/types/providers/llm/adapters/claude/claude.d.ts +45 -0
  307. package/dist/types/providers/llm/adapters/claude/index.d.ts +2 -0
  308. package/dist/types/providers/llm/adapters/deepseek/deepseek.d.ts +23 -2
  309. package/dist/types/providers/llm/adapters/index.d.ts +3 -0
  310. package/dist/types/providers/llm/adapters/openai/index.d.ts +2 -0
  311. package/dist/types/providers/llm/adapters/openai/openai.d.ts +45 -0
  312. package/dist/types/providers/llm/adapters/openai-compatible.d.ts +44 -0
  313. package/dist/types/providers/llm/adapters/openrouter/index.d.ts +2 -0
  314. package/dist/types/providers/llm/adapters/openrouter/openrouter.d.ts +60 -0
  315. package/dist/types/providers/llm/index.d.ts +5 -2
  316. package/dist/types/providers/llm/toolmode/index.d.ts +2 -0
  317. package/dist/types/providers/llm/toolmode/toolmode.d.ts +99 -0
  318. package/dist/types/providers/llm/types.d.ts +65 -0
  319. package/dist/types/providers/stt/adapters/deepgram/deepgram.d.ts +4 -1
  320. package/dist/types/providers/stt/adapters/index.d.ts +1 -0
  321. package/dist/types/providers/stt/adapters/openrouter/index.d.ts +2 -0
  322. package/dist/types/providers/stt/adapters/openrouter/openrouter.d.ts +196 -0
  323. package/dist/types/providers/tts/adapters/index.d.ts +1 -0
  324. package/dist/types/providers/tts/adapters/kokoro/kokoro.d.ts +18 -3
  325. package/dist/types/providers/tts/adapters/openrouter/index.d.ts +2 -0
  326. package/dist/types/providers/tts/adapters/openrouter/openrouter.d.ts +64 -0
  327. package/dist/types/transport/streamobject/field-stream/field-stream.d.ts +85 -0
  328. package/dist/types/transport/streamobject/field-stream/index.d.ts +2 -0
  329. package/dist/types/transport/streamobject/index.d.ts +8 -0
  330. package/dist/types/transport/streamobject/json-adapter/index.d.ts +2 -0
  331. package/dist/types/transport/streamobject/json-adapter/json-adapter.d.ts +65 -0
  332. package/dist/types/transport/streamobject/reference/index.d.ts +2 -0
  333. package/dist/types/transport/streamobject/reference/reference.d.ts +127 -0
  334. package/dist/types/transport/streamobject/stream-object/index.d.ts +2 -0
  335. package/dist/types/transport/streamobject/stream-object/stream-object.d.ts +31 -0
  336. package/package.json +29 -2
@@ -0,0 +1,85 @@
1
+ /**
2
+ * FieldStream — the semantic completion core shared by every source adapter.
3
+ *
4
+ * A FieldStream registers completion handlers (`when`/`whenItem`/`whenObjectDone`)
5
+ * and dispatches completion events to them. It knows nothing about JSON, wire
6
+ * records, SSE, or any particular producer: subclasses turn their source into
7
+ * completion events via the protected emit helpers.
8
+ *
9
+ * Implementations:
10
+ * - StreamObject — consumes an AsyncIterable of text chunks (JSON source)
11
+ * - ConversationStream — consumes conversation events (provider-native source)
12
+ *
13
+ * Lifecycle, per object:
14
+ *
15
+ * STREAMING ──emitObject──▶ DONE
16
+ * │
17
+ * ├──cancel()──▶ CANCELLED
18
+ * └──fail()────▶ FAILED
19
+ *
20
+ * Exactly-once: within an object, completion handlers fire at most once per
21
+ * boundary and never after a terminal state (events after DONE/CANCELLED/
22
+ * FAILED are dropped). cancel() is idempotent. Multi-object sources call
23
+ * beginObject() to start each object.
24
+ *
25
+ * `when` means completion, not mutation: handlers never see chunks or source
26
+ * format. Handlers are invoked synchronously at the completion boundary and
27
+ * never block the producer; async handlers run concurrently and their
28
+ * rejections are routed to onError.
29
+ *
30
+ * Errors: delivered to onError handlers when registered; otherwise the
31
+ * subclass decides (StreamObject rejects start(); callers of `fail()` get the
32
+ * throw).
33
+ */
34
+ import type { Event, FieldValue, ScalarValue, Schema } from "../reference/reference.js";
35
+ export type FieldHandler = (value: FieldValue) => void;
36
+ export type ItemHandler = (value: ScalarValue, index: number) => void;
37
+ export type ObjectDoneHandler = (object: Record<string, unknown>) => void;
38
+ export type ErrorHandler = (error: Error) => void;
39
+ export interface FieldStreamOptions {
40
+ /** Invoked by cancel() — e.g. to abort the producer's request. */
41
+ onCancel?: () => void;
42
+ }
43
+ export declare abstract class FieldStream {
44
+ protected readonly schema: Schema;
45
+ private readonly fieldHandlers;
46
+ private readonly itemHandlers;
47
+ private readonly objectHandlers;
48
+ private readonly errorHandlers;
49
+ private readonly onCancel;
50
+ /** Stream-level: set by cancel(); consumed by source-driven subclasses. */
51
+ protected cancelled: boolean;
52
+ private objectState;
53
+ constructor(schema: Schema, options?: FieldStreamOptions);
54
+ when(field: string | string[], handler: FieldHandler): this;
55
+ whenItem(field: string | string[], handler: ItemHandler): this;
56
+ whenObjectDone(handler: ObjectDoneHandler): this;
57
+ onError(handler: ErrorHandler): this;
58
+ /**
59
+ * Abort the current object and stop the producer (idempotent). The object
60
+ * will not complete; already-delivered items remain valid partial state.
61
+ */
62
+ cancel(): void;
63
+ /** Start a new object's lifecycle (multi-object sources call this per object). */
64
+ protected beginObject(): void;
65
+ /** Emit a completed field value (subclasses call this at the completion boundary). */
66
+ protected emitField(field: number, value: FieldValue): void;
67
+ /** Emit a completed array item. */
68
+ protected emitItem(field: number, index: number, value: ScalarValue): void;
69
+ /**
70
+ * Complete the current object: materializes and fires whenObjectDone exactly
71
+ * once (a second call, or a call after cancel/fail, is ignored).
72
+ */
73
+ protected emitObject(events: Event[]): void;
74
+ /** Abort the current object without completing it (idempotent). */
75
+ protected cancelObject(): void;
76
+ /**
77
+ * Route a source/adapter failure to onError (or rethrow when unhandled) and
78
+ * mark the current object failed.
79
+ */
80
+ protected fail(error: unknown): void;
81
+ protected get objectCompleted(): boolean;
82
+ protected resolveIndex(field: string | string[]): number;
83
+ private fire;
84
+ private dispatchError;
85
+ }
@@ -0,0 +1,2 @@
1
+ export { FieldStream } from "./field-stream.js";
2
+ export type { ErrorHandler, FieldHandler, FieldStreamOptions, ItemHandler, ObjectDoneHandler, } from "./field-stream.js";
@@ -0,0 +1,8 @@
1
+ export { FieldStream } from "./field-stream/index.js";
2
+ export type { ErrorHandler, FieldHandler, FieldStreamOptions, ItemHandler, ObjectDoneHandler, } from "./field-stream/index.js";
3
+ export { StreamObject } from "./stream-object/index.js";
4
+ export type { StreamObjectOptions } from "./stream-object/index.js";
5
+ export { IncrementalJsonParser, JsonToStreamObjectAdapter } from "./json-adapter/index.js";
6
+ export type { JsonAdapterCallbacks, JsonValue } from "./json-adapter/index.js";
7
+ export { ReferenceDecoder, Receiver, decode, encodeText, executeRecords, materializeObject, parseBooleanPayload, parseIntegerPayload, parseNumberPayload, } from "./reference/index.js";
8
+ export type { Decoder, Event, FieldDef, FieldType, FieldValue, Payload, ScalarValue, Schema, StreamRecord, } from "./reference/index.js";
@@ -0,0 +1,2 @@
1
+ export { IncrementalJsonParser, JsonToStreamObjectAdapter } from "./json-adapter.js";
2
+ export type { JsonAdapterCallbacks, JsonValue } from "./json-adapter.js";
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Incremental JSON → StreamObject adapter.
3
+ *
4
+ * Consumes a JSON token stream (e.g. LLM output deltas) and emits StreamObject
5
+ * field-completion events as soon as each schema field's value is complete —
6
+ * without waiting for the rest of the object. This is the designed production
7
+ * shape of the protocol: the model emits ordinary output, deterministic
8
+ * software does the parsing, and consumers react at field boundaries.
9
+ *
10
+ * The wire encoding is irrelevant here; only the Event model matters.
11
+ */
12
+ import type { Event, FieldValue, ScalarValue, Schema } from "../reference/reference.js";
13
+ export type JsonValue = string | number | boolean | null | JsonValue[] | {
14
+ [key: string]: JsonValue;
15
+ };
16
+ /** Minimal incremental JSON parser. Emits every completed value with its path. */
17
+ export declare class IncrementalJsonParser {
18
+ private readonly onValueDone;
19
+ private readonly stack;
20
+ private value;
21
+ private started;
22
+ private done;
23
+ constructor(onValueDone: (path: string[], value: JsonValue) => void);
24
+ push(chunk: string): void;
25
+ private pushChar;
26
+ private dispatch;
27
+ private startValue;
28
+ private feedValue;
29
+ private completeValue;
30
+ private closeContainer;
31
+ }
32
+ export interface JsonAdapterCallbacks {
33
+ onFieldDone?: (field: number, value: FieldValue) => void;
34
+ /** Fires for each completed array element, before the array field completes. */
35
+ onItemDone?: (field: number, index: number, value: ScalarValue) => void;
36
+ /** Fires when the root object closes. */
37
+ onObjectDone?: () => void;
38
+ }
39
+ /**
40
+ * Feeds a JSON token stream into the reference Event model and emits a
41
+ * completion hierarchy as soon as each piece is known:
42
+ *
43
+ * VALUE_COMPLETE → every parsed value (parser level, per path)
44
+ * ITEM_COMPLETE → each array element of an array-typed schema field
45
+ * FIELD_COMPLETE → a schema field's whole value (incl. a closed array)
46
+ * OBJECT_COMPLETE → the object closed
47
+ *
48
+ * The v0.1 wire decoder only exposes FIELD/OBJECT; item completion is a
49
+ * semantic projection of array boundaries that every source already carries
50
+ * (each JSON array element, each array append), not a wire record. Strictly
51
+ * typed against the schema — a value that violates its field type throws.
52
+ */
53
+ export declare class JsonToStreamObjectAdapter {
54
+ private readonly fields;
55
+ private readonly parser;
56
+ private readonly events;
57
+ private readonly onFieldDone;
58
+ private readonly onItemDone;
59
+ private readonly onObjectDone;
60
+ constructor(schema: Schema, callbacks?: JsonAdapterCallbacks);
61
+ push(chunk: string): void;
62
+ getEvents(): Event[];
63
+ private handleValue;
64
+ private matchArrayItem;
65
+ }
@@ -0,0 +1,2 @@
1
+ export { ReferenceDecoder, Receiver, decode, encodeText, executeRecords, materializeObject, parseBooleanPayload, parseIntegerPayload, parseNumberPayload, } from "./reference.js";
2
+ export type { Decoder, Event, FieldDef, FieldType, FieldValue, Payload, ScalarValue, Schema, StreamRecord, } from "./reference.js";
@@ -0,0 +1,127 @@
1
+ /**
2
+ * StreamObject Protocol v0.1 — reference implementation (the executable spec).
3
+ *
4
+ * Deliberately boring: no arena, no pooling, no typed-array chunk chains.
5
+ * Its purpose is to pin down semantics so the optimized receiver can be
6
+ * validated against it instead of inventing behavior.
7
+ *
8
+ * Layering:
9
+ * records --(encodeText)--> text --(fragment)--> chunks
10
+ * chunks --(ReferenceDecoder)--> events
11
+ * records --(Receiver / executeRecords)--> events <- the oracle
12
+ *
13
+ * Contract (the property every decoder must satisfy):
14
+ * decode(fragment(encodeText(records))) === executeRecords(records)
15
+ *
16
+ * See README.md (in this directory) for the normative spec this implements.
17
+ */
18
+ export type Payload = string;
19
+ export type StreamRecord = {
20
+ kind: "append";
21
+ field: number;
22
+ payload: Payload;
23
+ } | {
24
+ kind: "complete";
25
+ field: number;
26
+ } | {
27
+ kind: "object-complete";
28
+ } | {
29
+ kind: "object-abort";
30
+ };
31
+ export type FieldType = "string" | "integer" | "number" | "boolean";
32
+ export interface FieldDef {
33
+ path: string[];
34
+ type: FieldType;
35
+ mode?: "array";
36
+ /** Required for array fields. */
37
+ maxItems?: number;
38
+ /** Scalar: cap on accumulated payload length. Array: cap per item. */
39
+ maxLength?: number;
40
+ }
41
+ export type Schema = FieldDef[];
42
+ export type ScalarValue = string | number | boolean;
43
+ export type FieldValue = ScalarValue | ScalarValue[];
44
+ export type Event = {
45
+ kind: "field";
46
+ field: number;
47
+ value: FieldValue;
48
+ }
49
+ /** Adapter-observable item completion (arrays); not emitted by the v0.1 wire decoder. */
50
+ | {
51
+ kind: "item";
52
+ field: number;
53
+ index: number;
54
+ value: ScalarValue;
55
+ } | {
56
+ kind: "object-complete";
57
+ } | {
58
+ kind: "object-abort";
59
+ };
60
+ export declare function parseIntegerPayload(s: string): number | null;
61
+ export declare function parseNumberPayload(s: string): number | null;
62
+ export declare function parseBooleanPayload(s: string): boolean | null;
63
+ export declare class Receiver {
64
+ private readonly schema;
65
+ private readonly state;
66
+ private readonly acc;
67
+ private readonly events;
68
+ private readonly onEvent;
69
+ private ended;
70
+ constructor(schema: Schema, onEvent?: (event: Event) => void);
71
+ append(field: number, payload: string): void;
72
+ complete(field: number): void;
73
+ objectComplete(): void;
74
+ objectAbort(): void;
75
+ getEvents(): Event[];
76
+ get isEnded(): boolean;
77
+ private assertActive;
78
+ private assertField;
79
+ private emit;
80
+ }
81
+ /** The oracle: execute logical records directly. */
82
+ export declare function executeRecords(schema: Schema, records: StreamRecord[]): Event[];
83
+ export declare function materializeObject(schema: Schema, events: Event[]): Record<string, unknown>;
84
+ export declare function encodeText(records: StreamRecord[]): string;
85
+ /**
86
+ * The contract every implementation (including the future arena-backed
87
+ * receiver) must satisfy:
88
+ *
89
+ * push(fragment(encodeText(records))) + end() === executeRecords(schema, records)
90
+ */
91
+ export interface Decoder {
92
+ push(chunk: string): void;
93
+ end(): Event[];
94
+ }
95
+ export declare class ReferenceDecoder implements Decoder {
96
+ private readonly receiver;
97
+ private state;
98
+ private fieldId;
99
+ private length;
100
+ private payload;
101
+ private remaining;
102
+ constructor(schema: Schema, onEvent?: (event: Event) => void);
103
+ push(chunk: string): void;
104
+ end(): Event[];
105
+ private onHeader;
106
+ private onFieldId;
107
+ private onLength;
108
+ private onPayload;
109
+ private onPayloadEnd;
110
+ private onControl;
111
+ private onAbort;
112
+ private reset;
113
+ }
114
+ /** Decode a sequence of transport chunks into events. */
115
+ export declare function decode(chunks: string[], schema: Schema): Event[];
116
+ export type Rng = () => number;
117
+ export declare function mulberry32(seed: number): Rng;
118
+ export declare function fragment(text: string, rng: Rng): string[];
119
+ /** Every single-cut fragmentation of a message. */
120
+ export declare function allSingleCuts(text: string): string[][];
121
+ /** Every composition into 1..n chunks — 2^(n-1) cases. Only for small messages. */
122
+ export declare function allCompositions(text: string): string[][];
123
+ export declare function randomSchema(rng: Rng): Schema;
124
+ /** Records for one field: appends (one item each for arrays), maybe a completion. */
125
+ export declare function fieldRecords(rng: Rng, schema: Schema, field: number): StreamRecord[];
126
+ /** A valid record sequence for the schema, randomly scheduled. */
127
+ export declare function generateValidRecords(rng: Rng, schema: Schema): StreamRecord[];
@@ -0,0 +1,2 @@
1
+ export { StreamObject } from "./stream-object.js";
2
+ export type { ErrorHandler, FieldHandler, ItemHandler, ObjectDoneHandler, StreamObjectOptions, } from "./stream-object.js";
@@ -0,0 +1,31 @@
1
+ /**
2
+ * StreamObject — consumes an AsyncIterable of text chunks through the
3
+ * incremental JSON adapter and exposes the FieldStream completion API.
4
+ *
5
+ * const stream = new StreamObject(source, schema);
6
+ * stream.when("summary", (summary) => { ... }); // field completion
7
+ * stream.whenItem("searchQueries", (query, i) => { ... }); // item completion
8
+ * stream.whenObjectDone((object) => { ... }); // whole object
9
+ * stream.onError((error) => { ... }); // failures
10
+ * await stream.start();
11
+ *
12
+ * `when` means completion, not mutation: handlers never see chunks, JSON,
13
+ * SSE, or the wire codec. Handlers are invoked synchronously at the
14
+ * completion boundary and never block the source; async handlers run
15
+ * concurrently and their rejections are routed to onError. `cancel()` stops
16
+ * the source and invokes the optional onCancel hook (e.g. to abort the
17
+ * producer's request).
18
+ *
19
+ * Errors: delivered to onError handlers when registered; otherwise start()
20
+ * rejects with the error. Cancelling the stream is not an error.
21
+ */
22
+ import { FieldStream, type FieldStreamOptions } from "../field-stream/field-stream.js";
23
+ import type { Schema } from "../reference/reference.js";
24
+ export type { ErrorHandler, FieldHandler, FieldStreamOptions, ItemHandler, ObjectDoneHandler, } from "../field-stream/field-stream.js";
25
+ export type StreamObjectOptions = FieldStreamOptions;
26
+ export declare class StreamObject extends FieldStream {
27
+ private readonly source;
28
+ private started;
29
+ constructor(source: AsyncIterable<string>, schema: Schema, options?: StreamObjectOptions);
30
+ start(): Promise<void>;
31
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moureau/pipeflow",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "sideEffects": false,
@@ -28,6 +28,12 @@
28
28
  "require": "./dist/cjs/index.js",
29
29
  "default": "./dist/esm/index.js"
30
30
  },
31
+ "./client": {
32
+ "types": "./dist/types/client/index.d.ts",
33
+ "import": "./dist/esm/client/index.js",
34
+ "require": "./dist/cjs/client/index.js",
35
+ "default": "./dist/esm/client/index.js"
36
+ },
31
37
  "./providers": {
32
38
  "types": "./dist/types/providers/index.d.ts",
33
39
  "import": "./dist/esm/providers/index.js",
@@ -63,13 +69,31 @@
63
69
  "import": "./dist/esm/transport/*/index.js",
64
70
  "require": "./dist/cjs/transport/*/index.js",
65
71
  "default": "./dist/esm/transport/*/index.js"
72
+ },
73
+ "./conversations": {
74
+ "types": "./dist/types/conversations/index.d.ts",
75
+ "import": "./dist/esm/conversations/index.js",
76
+ "require": "./dist/cjs/conversations/index.js",
77
+ "default": "./dist/esm/conversations/index.js"
78
+ },
79
+ "./conversations/*": {
80
+ "types": "./dist/types/conversations/*/index.d.ts",
81
+ "import": "./dist/esm/conversations/*/index.js",
82
+ "require": "./dist/cjs/conversations/*/index.js",
83
+ "default": "./dist/esm/conversations/*/index.js"
66
84
  }
67
85
  },
68
- "files": ["dist"],
86
+ "files": [
87
+ "dist"
88
+ ],
69
89
  "scripts": {
70
90
  "build": "bun scripts/build.mjs",
71
91
  "prepublishOnly": "bun run build",
72
92
  "test": "bun test",
93
+ "test:unit": "bun test src/index.test.ts src/agents src/conversations src/providers src/persistence src/transport",
94
+ "test:e2e": "bun test src/e2e",
95
+ "benchmark": "bun scripts/benchmark.ts",
96
+ "benchmark:stream": "bun scripts/benchmark-conversation-stream.ts",
73
97
  "typecheck": "bunx tsc --noEmit"
74
98
  },
75
99
  "devDependencies": {
@@ -78,5 +102,8 @@
78
102
  },
79
103
  "peerDependencies": {
80
104
  "typescript": "^5"
105
+ },
106
+ "dependencies": {
107
+ "zod": "^4.4.3"
81
108
  }
82
109
  }