@pikku/core 0.11.1 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (363) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/dist/crypto-utils.d.ts +2 -0
  3. package/dist/crypto-utils.js +78 -0
  4. package/dist/errors/error-handler.js +3 -3
  5. package/dist/errors/errors.d.ts +8 -0
  6. package/dist/errors/errors.js +16 -0
  7. package/dist/errors/index.d.ts +0 -1
  8. package/dist/errors/index.js +0 -1
  9. package/dist/function/function-runner.d.ts +10 -3
  10. package/dist/function/function-runner.js +136 -31
  11. package/dist/function/functions.types.d.ts +35 -12
  12. package/dist/function/functions.types.js +16 -6
  13. package/dist/function/index.d.ts +2 -2
  14. package/dist/function/index.js +1 -2
  15. package/dist/handle-error.js +1 -10
  16. package/dist/index.d.ts +30 -24
  17. package/dist/index.js +19 -27
  18. package/dist/middleware/auth-apikey.d.ts +1 -1
  19. package/dist/middleware/auth-apikey.js +3 -3
  20. package/dist/middleware/auth-bearer.d.ts +1 -1
  21. package/dist/middleware/auth-bearer.js +3 -6
  22. package/dist/middleware/auth-cookie.d.ts +1 -1
  23. package/dist/middleware/auth-cookie.js +6 -8
  24. package/dist/middleware/cors.d.ts +46 -0
  25. package/dist/middleware/cors.js +73 -0
  26. package/dist/middleware/index.d.ts +5 -3
  27. package/dist/middleware/index.js +5 -3
  28. package/dist/middleware/remote-auth.d.ts +5 -0
  29. package/dist/middleware/remote-auth.js +55 -0
  30. package/dist/middleware/timeout.d.ts +1 -1
  31. package/dist/middleware-runner.d.ts +3 -14
  32. package/dist/middleware-runner.js +14 -16
  33. package/dist/permissions.d.ts +3 -86
  34. package/dist/permissions.js +20 -80
  35. package/dist/pikku-state.d.ts +33 -104
  36. package/dist/pikku-state.js +150 -66
  37. package/dist/schema.d.ts +8 -6
  38. package/dist/schema.js +31 -18
  39. package/dist/services/ai-agent-runner-service.d.ts +24 -0
  40. package/dist/services/ai-agent-runner-service.js +1 -0
  41. package/dist/services/ai-run-state-service.d.ts +13 -0
  42. package/dist/services/ai-run-state-service.js +1 -0
  43. package/dist/services/ai-storage-service.d.ts +18 -0
  44. package/dist/services/ai-storage-service.js +1 -0
  45. package/dist/services/deployment-service.d.ts +19 -0
  46. package/dist/services/deployment-service.js +1 -0
  47. package/dist/services/gopass-secrets.d.ts +47 -0
  48. package/dist/services/gopass-secrets.js +94 -0
  49. package/dist/services/in-memory-trigger-service.d.ts +23 -0
  50. package/dist/services/in-memory-trigger-service.js +50 -0
  51. package/dist/services/in-memory-workflow-service.d.ts +59 -0
  52. package/dist/services/in-memory-workflow-service.js +287 -0
  53. package/dist/services/index.d.ts +25 -11
  54. package/dist/services/index.js +10 -13
  55. package/dist/services/local-secrets.d.ts +23 -0
  56. package/dist/services/local-secrets.js +45 -0
  57. package/dist/services/local-variables.d.ts +5 -0
  58. package/dist/services/local-variables.js +18 -0
  59. package/dist/services/scheduler-service.d.ts +21 -1
  60. package/dist/services/scheduler-service.js +14 -0
  61. package/dist/services/schema-service.d.ts +6 -0
  62. package/dist/services/scoped-secret-service.d.ts +16 -0
  63. package/dist/services/scoped-secret-service.js +35 -0
  64. package/dist/services/secret-service.d.ts +25 -4
  65. package/dist/services/trigger-service.d.ts +23 -0
  66. package/dist/services/trigger-service.js +1 -0
  67. package/dist/services/typed-secret-service.d.ts +30 -0
  68. package/dist/services/typed-secret-service.js +40 -0
  69. package/dist/services/typed-variables-service.d.ts +27 -0
  70. package/dist/services/typed-variables-service.js +46 -0
  71. package/dist/services/user-session-service.d.ts +13 -0
  72. package/dist/services/user-session-service.js +17 -0
  73. package/dist/services/variables-service.d.ts +5 -0
  74. package/dist/services/workflow-service.d.ts +43 -0
  75. package/dist/services/workflow-service.js +1 -0
  76. package/dist/types/core.types.d.ts +54 -10
  77. package/dist/types/core.types.js +7 -0
  78. package/dist/types/state.types.d.ts +127 -0
  79. package/dist/types/state.types.js +1 -0
  80. package/dist/utils.d.ts +10 -1
  81. package/dist/utils.js +60 -3
  82. package/dist/version.d.ts +6 -0
  83. package/dist/version.js +19 -0
  84. package/dist/wirings/ai-agent/ai-agent-memory.d.ts +29 -0
  85. package/dist/wirings/ai-agent/ai-agent-memory.js +199 -0
  86. package/dist/wirings/ai-agent/ai-agent-model-config.d.ts +9 -0
  87. package/dist/wirings/ai-agent/ai-agent-model-config.js +36 -0
  88. package/dist/wirings/ai-agent/ai-agent-prepare.d.ts +60 -0
  89. package/dist/wirings/ai-agent/ai-agent-prepare.js +312 -0
  90. package/dist/wirings/ai-agent/ai-agent-registry.d.ts +15 -0
  91. package/dist/wirings/ai-agent/ai-agent-registry.js +47 -0
  92. package/dist/wirings/ai-agent/ai-agent-runner.d.ts +3 -0
  93. package/dist/wirings/ai-agent/ai-agent-runner.js +96 -0
  94. package/dist/wirings/ai-agent/ai-agent-stream.d.ts +11 -0
  95. package/dist/wirings/ai-agent/ai-agent-stream.js +503 -0
  96. package/dist/wirings/ai-agent/ai-agent.types.d.ts +254 -0
  97. package/dist/wirings/ai-agent/ai-agent.types.js +1 -0
  98. package/dist/wirings/ai-agent/index.d.ts +5 -0
  99. package/dist/wirings/ai-agent/index.js +4 -0
  100. package/dist/wirings/channel/channel-common.d.ts +7 -4
  101. package/dist/wirings/channel/channel-common.js +15 -8
  102. package/dist/wirings/channel/channel-handler.js +13 -4
  103. package/dist/wirings/channel/channel-middleware-runner.d.ts +9 -0
  104. package/dist/wirings/channel/channel-middleware-runner.js +73 -0
  105. package/dist/wirings/channel/channel-runner.js +12 -12
  106. package/dist/wirings/channel/channel.types.d.ts +5 -1
  107. package/dist/wirings/channel/define-channel-routes.d.ts +21 -0
  108. package/dist/wirings/channel/define-channel-routes.js +23 -0
  109. package/dist/wirings/channel/index.d.ts +10 -8
  110. package/dist/wirings/channel/index.js +7 -8
  111. package/dist/wirings/channel/local/index.d.ts +3 -3
  112. package/dist/wirings/channel/local/index.js +3 -3
  113. package/dist/wirings/channel/local/local-channel-runner.js +18 -6
  114. package/dist/wirings/channel/log-channels.js +1 -1
  115. package/dist/wirings/channel/serverless/index.d.ts +1 -1
  116. package/dist/wirings/channel/serverless/index.js +1 -1
  117. package/dist/wirings/channel/serverless/serverless-channel-runner.js +17 -6
  118. package/dist/wirings/cli/channel/cli-channel-runner.js +3 -2
  119. package/dist/wirings/cli/channel/index.d.ts +1 -1
  120. package/dist/wirings/cli/channel/index.js +1 -1
  121. package/dist/wirings/cli/cli-runner.d.ts +1 -1
  122. package/dist/wirings/cli/cli-runner.js +22 -18
  123. package/dist/wirings/cli/cli.types.d.ts +7 -6
  124. package/dist/wirings/cli/define-cli-commands.d.ts +19 -0
  125. package/dist/wirings/cli/define-cli-commands.js +20 -0
  126. package/dist/wirings/cli/index.d.ts +2 -3
  127. package/dist/wirings/cli/index.js +1 -3
  128. package/dist/wirings/http/http-routes.d.ts +69 -0
  129. package/dist/wirings/http/http-routes.js +139 -0
  130. package/dist/wirings/http/http-runner.d.ts +2 -2
  131. package/dist/wirings/http/http-runner.js +62 -27
  132. package/dist/wirings/http/http.types.d.ts +77 -24
  133. package/dist/wirings/http/index.d.ts +5 -4
  134. package/dist/wirings/http/index.js +4 -3
  135. package/dist/wirings/http/log-http-routes.js +1 -1
  136. package/dist/wirings/http/routers/path-to-regex.js +2 -2
  137. package/dist/wirings/mcp/index.d.ts +4 -3
  138. package/dist/wirings/mcp/index.js +3 -3
  139. package/dist/wirings/mcp/mcp-runner.d.ts +1 -3
  140. package/dist/wirings/mcp/mcp-runner.js +42 -56
  141. package/dist/wirings/mcp/mcp.types.d.ts +3 -3
  142. package/dist/wirings/node/index.d.ts +2 -0
  143. package/dist/wirings/node/index.js +1 -0
  144. package/dist/wirings/node/node.types.d.ts +20 -0
  145. package/dist/wirings/node/node.types.js +1 -0
  146. package/dist/wirings/oauth2/index.d.ts +3 -0
  147. package/dist/wirings/oauth2/index.js +2 -0
  148. package/dist/wirings/oauth2/oauth2-client.d.ts +47 -0
  149. package/dist/wirings/oauth2/oauth2-client.js +267 -0
  150. package/dist/wirings/oauth2/oauth2.types.d.ts +65 -0
  151. package/dist/wirings/oauth2/oauth2.types.js +4 -0
  152. package/dist/wirings/oauth2/wire-oauth2-credential.d.ts +20 -0
  153. package/dist/wirings/oauth2/wire-oauth2-credential.js +21 -0
  154. package/dist/wirings/queue/index.d.ts +2 -2
  155. package/dist/wirings/queue/index.js +1 -1
  156. package/dist/wirings/queue/queue-runner.d.ts +7 -0
  157. package/dist/wirings/queue/queue-runner.js +23 -12
  158. package/dist/wirings/queue/queue.types.d.ts +8 -2
  159. package/dist/wirings/rpc/index.d.ts +1 -1
  160. package/dist/wirings/rpc/index.js +1 -1
  161. package/dist/wirings/rpc/rpc-runner.d.ts +40 -13
  162. package/dist/wirings/rpc/rpc-runner.js +191 -25
  163. package/dist/wirings/rpc/rpc-types.d.ts +15 -4
  164. package/dist/wirings/scheduler/index.d.ts +3 -3
  165. package/dist/wirings/scheduler/index.js +2 -3
  166. package/dist/wirings/scheduler/log-schedulers.js +1 -1
  167. package/dist/wirings/scheduler/scheduler-runner.d.ts +5 -0
  168. package/dist/wirings/scheduler/scheduler-runner.js +28 -10
  169. package/dist/wirings/secret/index.d.ts +3 -0
  170. package/dist/wirings/secret/index.js +2 -0
  171. package/dist/wirings/secret/secret.types.d.ts +27 -0
  172. package/dist/wirings/secret/secret.types.js +1 -0
  173. package/dist/wirings/secret/validate-secret-definitions.d.ts +6 -0
  174. package/dist/wirings/secret/validate-secret-definitions.js +55 -0
  175. package/dist/wirings/trigger/index.d.ts +3 -0
  176. package/dist/wirings/trigger/index.js +2 -0
  177. package/dist/wirings/trigger/pikku-trigger-service.d.ts +26 -0
  178. package/dist/wirings/trigger/pikku-trigger-service.js +75 -0
  179. package/dist/wirings/trigger/trigger-runner.d.ts +42 -0
  180. package/dist/wirings/trigger/trigger-runner.js +85 -0
  181. package/dist/wirings/trigger/trigger.types.d.ts +130 -0
  182. package/dist/wirings/trigger/trigger.types.js +40 -0
  183. package/dist/wirings/variable/index.d.ts +3 -0
  184. package/dist/wirings/variable/index.js +2 -0
  185. package/dist/wirings/variable/validate-variable-definitions.d.ts +6 -0
  186. package/dist/wirings/variable/validate-variable-definitions.js +45 -0
  187. package/dist/wirings/variable/variable.types.d.ts +18 -0
  188. package/dist/wirings/variable/variable.types.js +1 -0
  189. package/dist/wirings/workflow/dsl/index.d.ts +5 -0
  190. package/dist/wirings/workflow/dsl/index.js +4 -0
  191. package/dist/wirings/workflow/dsl/workflow-dsl.types.d.ts +292 -0
  192. package/dist/wirings/workflow/dsl/workflow-dsl.types.js +5 -0
  193. package/dist/wirings/workflow/dsl/workflow-runner.d.ts +5 -0
  194. package/dist/wirings/workflow/dsl/workflow-runner.js +23 -0
  195. package/dist/wirings/workflow/graph/graph-node.d.ts +117 -0
  196. package/dist/wirings/workflow/graph/graph-node.js +58 -0
  197. package/dist/wirings/workflow/graph/graph-runner.d.ts +9 -0
  198. package/dist/wirings/workflow/graph/graph-runner.js +540 -0
  199. package/dist/wirings/workflow/graph/index.d.ts +4 -0
  200. package/dist/wirings/workflow/graph/index.js +3 -0
  201. package/dist/wirings/workflow/graph/template.d.ts +15 -0
  202. package/dist/wirings/workflow/graph/template.js +27 -0
  203. package/dist/wirings/workflow/graph/wire-workflow-graph.d.ts +15 -0
  204. package/dist/wirings/workflow/graph/wire-workflow-graph.js +8 -0
  205. package/dist/wirings/workflow/graph/workflow-graph.types.d.ts +82 -0
  206. package/dist/wirings/workflow/graph/workflow-graph.types.js +15 -0
  207. package/dist/wirings/workflow/index.d.ts +7 -12
  208. package/dist/wirings/workflow/index.js +8 -11
  209. package/dist/wirings/workflow/pikku-workflow-service.d.ts +114 -10
  210. package/dist/wirings/workflow/pikku-workflow-service.js +386 -115
  211. package/dist/wirings/workflow/workflow-helpers.d.ts +36 -0
  212. package/dist/wirings/workflow/workflow-helpers.js +38 -0
  213. package/dist/wirings/workflow/workflow-utils.d.ts +1 -0
  214. package/dist/wirings/workflow/workflow-utils.js +1 -0
  215. package/dist/wirings/workflow/workflow.types.d.ts +83 -214
  216. package/package.json +13 -6
  217. package/run-tests.sh +4 -1
  218. package/src/crypto-utils.ts +99 -0
  219. package/src/errors/error-handler.ts +3 -3
  220. package/src/errors/errors.ts +17 -0
  221. package/src/errors/index.ts +0 -1
  222. package/src/factory-functions.test.ts +42 -2
  223. package/src/function/function-runner.test.ts +5 -12
  224. package/src/function/function-runner.ts +195 -40
  225. package/src/function/functions.types.ts +66 -14
  226. package/src/function/index.ts +5 -2
  227. package/src/handle-error.ts +2 -10
  228. package/src/index.ts +106 -27
  229. package/src/middleware/auth-apikey.test.ts +15 -12
  230. package/src/middleware/auth-apikey.ts +3 -3
  231. package/src/middleware/auth-bearer.test.ts +17 -14
  232. package/src/middleware/auth-bearer.ts +25 -27
  233. package/src/middleware/auth-cookie.test.ts +16 -13
  234. package/src/middleware/auth-cookie.ts +6 -8
  235. package/src/middleware/cors.ts +96 -0
  236. package/src/middleware/index.ts +5 -3
  237. package/src/middleware/remote-auth.ts +68 -0
  238. package/src/middleware-runner.test.ts +122 -0
  239. package/src/middleware-runner.ts +24 -17
  240. package/src/permissions.test.ts +102 -86
  241. package/src/permissions.ts +32 -93
  242. package/src/pikku-state.ts +168 -201
  243. package/src/run-tests-script.test.ts +49 -0
  244. package/src/schema.ts +50 -18
  245. package/src/services/ai-agent-runner-service.ts +29 -0
  246. package/src/services/ai-run-state-service.ts +20 -0
  247. package/src/services/ai-storage-service.ts +39 -0
  248. package/src/services/deployment-service.ts +22 -0
  249. package/src/services/gopass-secrets.ts +95 -0
  250. package/src/services/in-memory-trigger-service.ts +68 -0
  251. package/src/services/in-memory-workflow-service.ts +395 -0
  252. package/src/services/index.ts +49 -14
  253. package/src/services/local-secrets.ts +51 -0
  254. package/src/services/local-variables.ts +22 -0
  255. package/src/services/scheduler-service.ts +29 -1
  256. package/src/services/schema-service.ts +7 -0
  257. package/src/services/scoped-secret-service.ts +41 -0
  258. package/src/services/secret-service.ts +25 -4
  259. package/src/services/trigger-service.ts +38 -0
  260. package/src/services/typed-secret-service.ts +70 -0
  261. package/src/services/typed-variables-service.ts +81 -0
  262. package/src/services/user-session-service.ts +23 -0
  263. package/src/services/variables-service.ts +5 -0
  264. package/src/services/workflow-service.ts +94 -0
  265. package/src/types/core.types.ts +82 -8
  266. package/src/types/state.types.ts +169 -0
  267. package/src/utils.ts +74 -5
  268. package/src/version.test.ts +80 -0
  269. package/src/version.ts +25 -0
  270. package/src/wirings/ai-agent/ai-agent-memory.ts +300 -0
  271. package/src/wirings/ai-agent/ai-agent-model-config.ts +43 -0
  272. package/src/wirings/ai-agent/ai-agent-prepare.ts +470 -0
  273. package/src/wirings/ai-agent/ai-agent-registry.test.ts +37 -0
  274. package/src/wirings/ai-agent/ai-agent-registry.ts +82 -0
  275. package/src/wirings/ai-agent/ai-agent-runner.test.ts +75 -0
  276. package/src/wirings/ai-agent/ai-agent-runner.ts +137 -0
  277. package/src/wirings/ai-agent/ai-agent-stream.test.ts +246 -0
  278. package/src/wirings/ai-agent/ai-agent-stream.ts +774 -0
  279. package/src/wirings/ai-agent/ai-agent.types.ts +273 -0
  280. package/src/wirings/ai-agent/index.ts +28 -0
  281. package/src/wirings/channel/channel-common.ts +32 -19
  282. package/src/wirings/channel/channel-handler.ts +18 -5
  283. package/src/wirings/channel/channel-middleware-runner.ts +119 -0
  284. package/src/wirings/channel/channel-runner.ts +14 -15
  285. package/src/wirings/channel/channel.types.ts +17 -1
  286. package/src/wirings/channel/define-channel-routes.ts +25 -0
  287. package/src/wirings/channel/index.ts +23 -8
  288. package/src/wirings/channel/local/index.ts +3 -3
  289. package/src/wirings/channel/local/local-channel-runner.test.ts +47 -2
  290. package/src/wirings/channel/local/local-channel-runner.ts +22 -6
  291. package/src/wirings/channel/log-channels.ts +1 -1
  292. package/src/wirings/channel/serverless/index.ts +5 -1
  293. package/src/wirings/channel/serverless/serverless-channel-runner.ts +22 -6
  294. package/src/wirings/cli/channel/cli-channel-runner.ts +4 -3
  295. package/src/wirings/cli/channel/index.ts +1 -1
  296. package/src/wirings/cli/cli-runner.test.ts +28 -28
  297. package/src/wirings/cli/cli-runner.ts +27 -19
  298. package/src/wirings/cli/cli.types.ts +12 -11
  299. package/src/wirings/cli/command-parser.test.ts +8 -8
  300. package/src/wirings/cli/define-cli-commands.ts +24 -0
  301. package/src/wirings/cli/index.ts +10 -4
  302. package/src/wirings/http/http-routes.test.ts +322 -0
  303. package/src/wirings/http/http-routes.ts +198 -0
  304. package/src/wirings/http/http-runner.test.ts +5 -5
  305. package/src/wirings/http/http-runner.ts +80 -29
  306. package/src/wirings/http/http.types.ts +121 -23
  307. package/src/wirings/http/index.ts +16 -4
  308. package/src/wirings/http/log-http-routes.ts +1 -1
  309. package/src/wirings/http/routers/path-to-regex.test.ts +30 -19
  310. package/src/wirings/http/routers/path-to-regex.ts +2 -2
  311. package/src/wirings/mcp/index.ts +27 -3
  312. package/src/wirings/mcp/mcp-endpoint-registry.test.ts +3 -3
  313. package/src/wirings/mcp/mcp-runner.ts +56 -67
  314. package/src/wirings/mcp/mcp.types.ts +3 -3
  315. package/src/wirings/node/index.ts +2 -0
  316. package/src/wirings/node/node.types.ts +23 -0
  317. package/src/wirings/oauth2/index.ts +3 -0
  318. package/src/wirings/oauth2/oauth2-client.test.ts +929 -0
  319. package/src/wirings/oauth2/oauth2-client.ts +335 -0
  320. package/src/wirings/oauth2/oauth2.types.ts +69 -0
  321. package/src/wirings/oauth2/wire-oauth2-credential.ts +23 -0
  322. package/src/wirings/queue/index.ts +14 -2
  323. package/src/wirings/queue/queue-runner.test.ts +115 -73
  324. package/src/wirings/queue/queue-runner.ts +39 -13
  325. package/src/wirings/queue/queue.types.ts +12 -2
  326. package/src/wirings/rpc/index.ts +1 -1
  327. package/src/wirings/rpc/rpc-runner.ts +270 -34
  328. package/src/wirings/rpc/rpc-types.ts +21 -4
  329. package/src/wirings/scheduler/index.ts +7 -4
  330. package/src/wirings/scheduler/log-schedulers.ts +1 -1
  331. package/src/wirings/scheduler/scheduler-runner.test.ts +97 -53
  332. package/src/wirings/scheduler/scheduler-runner.ts +50 -10
  333. package/src/wirings/secret/index.ts +9 -0
  334. package/src/wirings/secret/secret.types.ts +32 -0
  335. package/src/wirings/secret/validate-secret-definitions.ts +82 -0
  336. package/src/wirings/trigger/index.ts +10 -0
  337. package/src/wirings/trigger/pikku-trigger-service.ts +134 -0
  338. package/src/wirings/trigger/trigger-runner.ts +138 -0
  339. package/src/wirings/trigger/trigger.types.ts +178 -0
  340. package/src/wirings/variable/index.ts +8 -0
  341. package/src/wirings/variable/validate-variable-definitions.ts +69 -0
  342. package/src/wirings/variable/variable.types.ts +22 -0
  343. package/src/wirings/workflow/dsl/index.ts +31 -0
  344. package/src/wirings/workflow/dsl/workflow-dsl.types.ts +320 -0
  345. package/src/wirings/workflow/dsl/workflow-runner.ts +28 -0
  346. package/src/wirings/workflow/graph/graph-node.ts +222 -0
  347. package/src/wirings/workflow/graph/graph-runner.test.ts +495 -0
  348. package/src/wirings/workflow/graph/graph-runner.ts +816 -0
  349. package/src/wirings/workflow/graph/index.ts +14 -0
  350. package/src/wirings/workflow/graph/template.ts +42 -0
  351. package/src/wirings/workflow/graph/wire-workflow-graph.ts +29 -0
  352. package/src/wirings/workflow/graph/workflow-graph.types.ts +104 -0
  353. package/src/wirings/workflow/index.ts +64 -26
  354. package/src/wirings/workflow/pikku-workflow-service.test.ts +212 -0
  355. package/src/wirings/workflow/pikku-workflow-service.ts +571 -136
  356. package/src/wirings/workflow/workflow-helpers.ts +79 -0
  357. package/src/wirings/workflow/workflow-utils.ts +0 -0
  358. package/src/wirings/workflow/workflow.types.ts +123 -279
  359. package/tsconfig.tsbuildinfo +1 -1
  360. package/dist/wirings/workflow/workflow-runner.d.ts +0 -34
  361. package/dist/wirings/workflow/workflow-runner.js +0 -65
  362. package/src/function/function-runner.ts.bak +0 -188
  363. package/src/wirings/workflow/workflow-runner.ts +0 -72
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Ref value - internal representation after input callback is evaluated
3
+ */
4
+ export interface RefValue {
5
+ __isRef: true;
6
+ nodeId: string;
7
+ path?: string;
8
+ }
9
+ /**
10
+ * Helper to create a ref value
11
+ */
12
+ export declare const createRef: (nodeId: string, path?: string) => RefValue;
13
+ /**
14
+ * Check if a value is a ref
15
+ */
16
+ export declare const isRef: (value: unknown) => value is RefValue;
17
+ /**
18
+ * Input reference for fetching step results
19
+ */
20
+ export interface InputRef {
21
+ nodeId: string;
22
+ path?: string;
23
+ }
24
+ /**
25
+ * Ref function type - provides type-safe references to other nodes' outputs
26
+ * The actual typing is done at the pikkuWorkflowGraph level
27
+ */
28
+ export type RefFn<NodeIds extends string = string> = (nodeId: NodeIds, path?: string) => RefValue;
29
+ /**
30
+ * Next node configuration - fully serializable
31
+ * - string: single next node
32
+ * - string[]: parallel execution (all run concurrently)
33
+ * - Record<string, string | string[]>: branching (function calls graph.branch('key'))
34
+ */
35
+ export type NextConfig<NodeIds extends string = string> = NodeIds | NodeIds[] | Record<string, NodeIds | NodeIds[]>;
36
+ /**
37
+ * Graph node configuration - references functions by RPC name
38
+ */
39
+ export interface GraphNodeConfig<NodeIds extends string = string> {
40
+ /** RPC function name */
41
+ func: string;
42
+ /** Input mapping callback - receives ref function, returns input object */
43
+ input?: (ref: RefFn<NodeIds>) => Record<string, unknown>;
44
+ /** Next nodes - string, array, or record for branching */
45
+ next?: NextConfig<NodeIds>;
46
+ /** Error routing - node(s) to execute on error */
47
+ onError?: NodeIds | NodeIds[];
48
+ }
49
+ /**
50
+ * Graph wire context - available to functions running in a workflow graph
51
+ */
52
+ export interface PikkuGraphWire {
53
+ /** Workflow run ID */
54
+ runId: string;
55
+ /** Graph name */
56
+ graphName: string;
57
+ /** Current node ID */
58
+ nodeId: string;
59
+ /**
60
+ * Select which branch to take for Record-based next config.
61
+ * Must be called if the node has a Record `next` configuration.
62
+ * @param key - The branch key to take (must match a key in the next Record)
63
+ */
64
+ branch: (key: string) => void;
65
+ /**
66
+ * Set a state variable value.
67
+ * @param name - Variable name
68
+ * @param value - Value to store
69
+ */
70
+ setState: (name: string, value: unknown) => Promise<void>;
71
+ /**
72
+ * Get the entire state object.
73
+ * @returns The state object with all variables
74
+ */
75
+ getState: () => Promise<Record<string, unknown>>;
76
+ }
77
+ /**
78
+ * Internal mutable state for graph wire (used by runner to capture branch)
79
+ */
80
+ export interface GraphWireState {
81
+ branchKey?: string;
82
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Helper to create a ref value
3
+ */
4
+ export const createRef = (nodeId, path) => ({
5
+ __isRef: true,
6
+ nodeId,
7
+ path,
8
+ });
9
+ /**
10
+ * Check if a value is a ref
11
+ */
12
+ export const isRef = (value) => typeof value === 'object' &&
13
+ value !== null &&
14
+ '__isRef' in value &&
15
+ value.__isRef === true;
@@ -1,15 +1,10 @@
1
1
  /**
2
2
  * Workflow module exports
3
3
  */
4
- export type { CoreWorkflow, WorkflowStepOptions, WorkflowStepMeta, RpcStepMeta, BranchStepMeta, ParallelGroupStepMeta, FanoutStepMeta, ReturnStepMeta, InlineStepMeta, SleepStepMeta, CancelStepMeta, InputSource, OutputBinding, PikkuWorkflowWire, PikkuWorkflow, WorkflowsMeta, WorkflowRun, StepState, WorkflowStatus, StepStatus, } from './workflow.types.js';
5
- export { PikkuWorkflowService } from './pikku-workflow-service.js';
6
- export { addWorkflow } from './workflow-runner.js';
7
- /**
8
- * @deprecated This function is no longer used and will be removed in a future release.
9
- * It exists only for backwards compatibility with generated code.
10
- * TODO: Remove this export in a future release after updating code generation
11
- */
12
- export declare const wireWorkflow: <T extends {
13
- name: string;
14
- func: any;
15
- }>(workflow: T) => void;
4
+ export { PikkuWorkflowService, WorkflowCancelledException, WorkflowSuspendedException, WorkflowNotFoundError, WorkflowRunNotFoundError, } from './pikku-workflow-service.js';
5
+ export { addWorkflow } from './dsl/workflow-runner.js';
6
+ export { template, type TemplateString } from './graph/template.js';
7
+ export { pikkuWorkflowGraph, type PikkuWorkflowGraphConfig, type PikkuWorkflowGraphResult, } from './graph/wire-workflow-graph.js';
8
+ export { workflow, workflowStart, workflowStatus, graphStart, } from './workflow-helpers.js';
9
+ export type { WorkflowService, WorkflowServiceConfig, WorkflowRunWire, WorkflowStatus, StepStatus, WorkflowRun, StepState, WorkflowRunService, CoreWorkflow, PikkuWorkflow, ContextVariable, WorkflowContext, WorkflowsMeta, WorkflowRuntimeMeta, WorkflowsRuntimeMeta, WorkflowStepInput, WorkflowOrchestratorInput, WorkflowSleeperInput, } from './workflow.types.js';
10
+ export type { WorkflowStepOptions, WorkflowWireDoRPC, WorkflowWireDoInline, WorkflowWireSleep, WorkflowWireSuspend, InputSource, OutputBinding, RpcStepMeta, SimpleCondition, Condition, BranchCase, BranchStepMeta, ParallelGroupStepMeta, FanoutStepMeta, ReturnStepMeta, InlineStepMeta, SleepStepMeta, CancelStepMeta, SetStepMeta, SwitchCaseMeta, SwitchStepMeta, FilterStepMeta, ArrayPredicateStepMeta, WorkflowStepMeta, WorkflowStepWire, PikkuWorkflowWire, } from './workflow.types.js';
@@ -1,14 +1,11 @@
1
1
  /**
2
2
  * Workflow module exports
3
3
  */
4
- export { PikkuWorkflowService } from './pikku-workflow-service.js';
5
- // Internal registration function (used by generated code)
6
- export { addWorkflow } from './workflow-runner.js';
7
- /**
8
- * @deprecated This function is no longer used and will be removed in a future release.
9
- * It exists only for backwards compatibility with generated code.
10
- * TODO: Remove this export in a future release after updating code generation
11
- */
12
- export const wireWorkflow = (workflow) => {
13
- // Empty function - no longer used, kept for backwards compatibility
14
- };
4
+ export { PikkuWorkflowService, WorkflowCancelledException, WorkflowSuspendedException, WorkflowNotFoundError, WorkflowRunNotFoundError, } from './pikku-workflow-service.js';
5
+ // Internal registration functions (used by generated code)
6
+ export { addWorkflow } from './dsl/workflow-runner.js';
7
+ // Graph helpers (template, pikkuWorkflowGraph)
8
+ export { template } from './graph/template.js';
9
+ export { pikkuWorkflowGraph, } from './graph/wire-workflow-graph.js';
10
+ // Workflow helpers (runtime factories for HTTP handlers)
11
+ export { workflow, workflowStart, workflowStatus, graphStart, } from './workflow-helpers.js';
@@ -1,5 +1,40 @@
1
1
  import { CoreConfig, CoreSingletonServices, CreateWireServices, SerializedError } from '../../types/core.types.js';
2
- import type { StepState, WorkflowRun, WorkflowStatus, WorkflowService, WorkflowStepOptions } from './workflow.types.js';
2
+ import type { StepState, WorkflowRun, WorkflowRunWire, WorkflowStatus, WorkflowStepOptions } from './workflow.types.js';
3
+ import { WorkflowService } from '../../services/workflow-service.js';
4
+ import { PikkuError } from '../../errors/error-handler.js';
5
+ /**
6
+ * Exception thrown when workflow needs to pause for async step
7
+ */
8
+ export declare class WorkflowAsyncException extends Error {
9
+ readonly runId: string;
10
+ readonly stepName: string;
11
+ constructor(runId: string, stepName: string);
12
+ }
13
+ /**
14
+ * Exception thrown when workflow is cancelled
15
+ */
16
+ export declare class WorkflowCancelledException extends Error {
17
+ readonly runId: string;
18
+ readonly reason?: string | undefined;
19
+ constructor(runId: string, reason?: string | undefined);
20
+ }
21
+ /**
22
+ * Exception thrown when workflow is suspended
23
+ */
24
+ export declare class WorkflowSuspendedException extends Error {
25
+ readonly runId: string;
26
+ readonly reason: string;
27
+ constructor(runId: string, reason: string);
28
+ }
29
+ /**
30
+ * Error class for workflow not found
31
+ */
32
+ export declare class WorkflowNotFoundError extends PikkuError {
33
+ constructor(name: string);
34
+ }
35
+ export declare class WorkflowRunNotFoundError extends PikkuError {
36
+ constructor(runId: string);
37
+ }
3
38
  export declare class WorkflowServiceNotInitialized extends Error {
4
39
  }
5
40
  export declare class WorkflowStepNameNotString extends Error {
@@ -14,15 +49,23 @@ export declare abstract class PikkuWorkflowService implements WorkflowService {
14
49
  private config;
15
50
  private singletonServices;
16
51
  private createWireServices;
52
+ private inlineRuns;
17
53
  constructor();
18
- setServices(singletonServices: CoreSingletonServices, createWireServices: CreateWireServices, { workflow }: CoreConfig): void;
19
54
  /**
20
- * Create a new workflow run
21
- * @param name - Workflow name
22
- * @param input - Input data for the workflow
23
- * @returns Run ID
55
+ * Check if a run is executing inline (without queues)
24
56
  */
25
- abstract createRun(workflowName: string, input: any): Promise<string>;
57
+ protected isInline(runId: string): boolean;
58
+ /**
59
+ * Register a run as inline (for graph-runner to use)
60
+ */
61
+ registerInlineRun(runId: string): void;
62
+ /**
63
+ * Unregister a run from inline tracking
64
+ */
65
+ unregisterInlineRun(runId: string): void;
66
+ setServices(singletonServices: CoreSingletonServices, createWireServices: CreateWireServices | undefined, { workflow }: CoreConfig): void;
67
+ registerWorkflowVersions(): Promise<void>;
68
+ abstract createRun(workflowName: string, input: any, inline: boolean, graphHash: string, wire: WorkflowRunWire): Promise<string>;
26
69
  /**
27
70
  * Get a workflow run by ID
28
71
  * @param id - Run ID
@@ -115,17 +158,66 @@ export declare abstract class PikkuWorkflowService implements WorkflowService {
115
158
  * Close any open connections
116
159
  */
117
160
  abstract close(): Promise<void>;
161
+ /**
162
+ * Get completed graph state (lightweight - no results)
163
+ * @param runId - Run ID
164
+ * @returns Completed node IDs and their branch keys
165
+ */
166
+ abstract getCompletedGraphState(runId: string): Promise<{
167
+ completedNodeIds: string[];
168
+ failedNodeIds: string[];
169
+ branchKeys: Record<string, string>;
170
+ }>;
171
+ /**
172
+ * Filter candidate nodes to only those without existing steps
173
+ * @param runId - Run ID
174
+ * @param nodeIds - Candidate node IDs to check
175
+ * @returns Node IDs that don't have a step yet
176
+ */
177
+ abstract getNodesWithoutSteps(runId: string, nodeIds: string[]): Promise<string[]>;
178
+ /**
179
+ * Get results for specific nodes
180
+ * @param runId - Run ID
181
+ * @param nodeIds - Node IDs to fetch results for
182
+ * @returns Map of nodeId to result
183
+ */
184
+ abstract getNodeResults(runId: string, nodeIds: string[]): Promise<Record<string, any>>;
185
+ /**
186
+ * Set the branch key for a graph node step
187
+ * @param stepId - Step ID
188
+ * @param branchKey - Branch key selected by graph.branch()
189
+ */
190
+ abstract setBranchTaken(stepId: string, branchKey: string): Promise<void>;
191
+ /**
192
+ * Update a state variable in the workflow run's state
193
+ * @param runId - Run ID
194
+ * @param name - Variable name
195
+ * @param value - Value to store
196
+ */
197
+ abstract updateRunState(runId: string, name: string, value: unknown): Promise<void>;
198
+ /**
199
+ * Get the entire state object for a workflow run
200
+ * @param runId - Run ID
201
+ * @returns The state object with all variables
202
+ */
203
+ abstract getRunState(runId: string): Promise<Record<string, unknown>>;
204
+ abstract upsertWorkflowVersion(name: string, graphHash: string, graph: any, source: string): Promise<void>;
205
+ abstract getWorkflowVersion(name: string, graphHash: string): Promise<{
206
+ graph: any;
207
+ source: string;
208
+ } | null>;
118
209
  /**
119
210
  * Resume a paused workflow by triggering the orchestrator
120
211
  * @param runId - Run ID
121
212
  */
122
213
  resumeWorkflow(runId: string): Promise<void>;
214
+ queueStepWorker(runId: string, stepName: string, rpcName: string, data: any): Promise<void>;
123
215
  /**
124
216
  * Execute a workflow sleep step completion
125
217
  * Sets the step result to null and resumes the workflow
126
218
  * @param data - Sleeper input data
127
219
  */
128
- executeWorkflowSleep(runId: string, stepId: string): Promise<void>;
220
+ executeWorkflowSleepCompleted(runId: string, stepId: string): Promise<void>;
129
221
  /**
130
222
  * Schedule orchestrator retry with delay
131
223
  * @param runId - Run ID
@@ -134,11 +226,22 @@ export declare abstract class PikkuWorkflowService implements WorkflowService {
134
226
  protected scheduleOrchestratorRetry(runId: string, retryDelay?: number | string): Promise<void>;
135
227
  /**
136
228
  * Start a new workflow run
229
+ * Automatically detects workflow type (DSL or graph) from meta and executes accordingly
230
+ * @param options.inline - If true, execute workflow directly without queue service
231
+ * @param options.startNode - Starting node ID for graph workflows (from wire config)
137
232
  */
138
- startWorkflow<I>(name: string, input: I, rpcService: any): Promise<{
233
+ startWorkflow<I>(name: string, input: I, wire: WorkflowRunWire, rpcService: any, options?: {
234
+ inline?: boolean;
235
+ startNode?: string;
236
+ }): Promise<{
139
237
  runId: string;
140
238
  }>;
239
+ runToCompletion<I>(name: string, input: I, rpcService: any, options?: {
240
+ pollIntervalMs?: number;
241
+ wire?: WorkflowRunWire;
242
+ }): Promise<any>;
141
243
  runWorkflowJob(runId: string, rpcService: any): Promise<void>;
244
+ private runVersionMismatchFallback;
142
245
  /**
143
246
  * Execute a single workflow step (called by worker)
144
247
  * Handles idempotency, RPC execution, result storage, retry logic, and orchestrator triggering
@@ -153,7 +256,8 @@ export declare abstract class PikkuWorkflowService implements WorkflowService {
153
256
  private rpcStep;
154
257
  private inlineStep;
155
258
  private sleepStep;
156
- private cancelWorkflow;
259
+ private getSuspendStepName;
260
+ private suspendStep;
157
261
  private createWorkflowWire;
158
262
  private verifyStepName;
159
263
  private getConfig;