@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
@@ -5,6 +5,7 @@ import {
5
5
  getQueueWorkers,
6
6
  removeQueueWorker,
7
7
  runQueueJob,
8
+ createQueueJobRunner,
8
9
  QueueJobFailedError,
9
10
  QueueJobDiscardedError,
10
11
  } from './queue-runner.js'
@@ -38,9 +39,9 @@ const createMockJob = (
38
39
  data,
39
40
  })
40
41
 
41
- const addTestQueueFunction = (pikkuFuncName: string) => {
42
- pikkuState('function', 'meta')[pikkuFuncName] = {
43
- pikkuFuncName,
42
+ const addTestQueueFunction = (pikkuFuncId: string) => {
43
+ pikkuState(null, 'function', 'meta')[pikkuFuncId] = {
44
+ pikkuFuncId,
44
45
  inputSchemaName: null,
45
46
  outputSchemaName: null,
46
47
  middleware: undefined,
@@ -51,7 +52,7 @@ const addTestQueueFunction = (pikkuFuncName: string) => {
51
52
  describe('wireQueueWorker', () => {
52
53
  test('should successfully wire a queue worker', () => {
53
54
  const mockWorker: CoreQueueWorker = {
54
- queueName: 'test-queue',
55
+ name: 'test-queue',
55
56
  func: {
56
57
  func: async (services: any, data: any, wire: any) => {
57
58
  return { processed: true }
@@ -60,22 +61,21 @@ describe('wireQueueWorker', () => {
60
61
  },
61
62
  }
62
63
 
63
- // Set up metadata first
64
- pikkuState('queue', 'meta')['test-queue'] = {
65
- pikkuFuncName: 'queue_test-queue',
66
- queueName: 'test-queue',
64
+ pikkuState(null, 'queue', 'meta')['test-queue'] = {
65
+ pikkuFuncId: 'queue_test-queue',
66
+ name: 'test-queue',
67
67
  }
68
68
  addTestQueueFunction('queue_test-queue')
69
69
  wireQueueWorker(mockWorker)
70
70
 
71
- const registrations = pikkuState('queue', 'registrations')
71
+ const registrations = pikkuState(null, 'queue', 'registrations')
72
72
  assert.equal(registrations.has('test-queue'), true)
73
73
  assert.equal(registrations.get('test-queue'), mockWorker)
74
74
  })
75
75
 
76
76
  test('should throw error when processor metadata not found', () => {
77
77
  const mockWorker: CoreQueueWorker = {
78
- queueName: 'missing-meta-queue',
78
+ name: 'missing-meta-queue',
79
79
  func: {
80
80
  func: async () => {},
81
81
  auth: false,
@@ -85,7 +85,9 @@ describe('wireQueueWorker', () => {
85
85
  assert.throws(
86
86
  () => wireQueueWorker(mockWorker),
87
87
  (error: any) => {
88
- assert(error.message.includes('Queue processor metadata not found'))
88
+ assert(
89
+ error.message.includes('Missing generated metadata for queue worker')
90
+ )
89
91
  assert(error.message.includes('missing-meta-queue'))
90
92
  return true
91
93
  }
@@ -98,7 +100,7 @@ describe('wireQueueWorker', () => {
98
100
  }
99
101
 
100
102
  const mockWorker: CoreQueueWorker = {
101
- queueName: 'worker-with-middleware',
103
+ name: 'worker-with-middleware',
102
104
  func: {
103
105
  func: async () => {},
104
106
  auth: false,
@@ -109,14 +111,14 @@ describe('wireQueueWorker', () => {
109
111
  tags: ['queue'],
110
112
  }
111
113
 
112
- pikkuState('queue', 'meta')['worker-with-middleware'] = {
113
- pikkuFuncName: 'queue_worker-with-middleware',
114
- queueName: 'worker-with-middleware',
114
+ pikkuState(null, 'queue', 'meta')['worker-with-middleware'] = {
115
+ pikkuFuncId: 'queue_worker-with-middleware',
116
+ name: 'worker-with-middleware',
115
117
  }
116
118
  addTestQueueFunction('queue_worker-with-middleware')
117
119
  wireQueueWorker(mockWorker)
118
120
 
119
- const registrations = pikkuState('queue', 'registrations')
121
+ const registrations = pikkuState(null, 'queue', 'registrations')
120
122
  const worker = registrations.get('worker-with-middleware')
121
123
  assert.equal(worker?.middleware?.length, 1)
122
124
  assert.deepEqual(worker?.tags, ['queue'])
@@ -126,16 +128,16 @@ describe('wireQueueWorker', () => {
126
128
  describe('getQueueWorkers', () => {
127
129
  test('should return the registrations map', () => {
128
130
  const mockWorker: CoreQueueWorker = {
129
- queueName: 'test-queue',
131
+ name: 'test-queue',
130
132
  func: {
131
133
  func: async () => {},
132
134
  auth: false,
133
135
  },
134
136
  }
135
137
 
136
- pikkuState('queue', 'meta')['test-queue'] = {
137
- pikkuFuncName: 'queue_test-queue',
138
- queueName: 'test-queue',
138
+ pikkuState(null, 'queue', 'meta')['test-queue'] = {
139
+ pikkuFuncId: 'queue_test-queue',
140
+ name: 'test-queue',
139
141
  }
140
142
  addTestQueueFunction('queue_test-queue')
141
143
  wireQueueWorker(mockWorker)
@@ -155,16 +157,16 @@ describe('getQueueWorkers', () => {
155
157
  describe('removeQueueWorker', () => {
156
158
  test('should successfully remove a queue worker', async () => {
157
159
  const mockWorker: CoreQueueWorker = {
158
- queueName: 'removable-queue',
160
+ name: 'removable-queue',
159
161
  func: {
160
162
  func: async () => {},
161
163
  auth: false,
162
164
  },
163
165
  }
164
166
 
165
- pikkuState('queue', 'meta')['removable-queue'] = {
166
- pikkuFuncName: 'queue_removable-queue',
167
- queueName: 'removable-queue',
167
+ pikkuState(null, 'queue', 'meta')['removable-queue'] = {
168
+ pikkuFuncId: 'queue_removable-queue',
169
+ name: 'removable-queue',
168
170
  }
169
171
  addTestQueueFunction('queue_removable-queue')
170
172
  wireQueueWorker(mockWorker)
@@ -198,7 +200,7 @@ describe('runQueueJob', () => {
198
200
  let receivedData: any
199
201
 
200
202
  const mockWorker: CoreQueueWorker = {
201
- queueName: 'simple-queue',
203
+ name: 'simple-queue',
202
204
  func: {
203
205
  func: async (services: any, data: any, wire: any) => {
204
206
  jobProcessed = true
@@ -209,9 +211,9 @@ describe('runQueueJob', () => {
209
211
  },
210
212
  }
211
213
 
212
- pikkuState('queue', 'meta')['simple-queue'] = {
213
- pikkuFuncName: 'queue_simple-queue',
214
- queueName: 'simple-queue',
214
+ pikkuState(null, 'queue', 'meta')['simple-queue'] = {
215
+ pikkuFuncId: 'queue_simple-queue',
216
+ name: 'simple-queue',
215
217
  }
216
218
  addTestQueueFunction('queue_simple-queue')
217
219
  wireQueueWorker(mockWorker)
@@ -238,7 +240,7 @@ describe('runQueueJob', () => {
238
240
 
239
241
  test('should handle job.fail() by throwing QueueJobFailedError', async () => {
240
242
  const mockWorker: CoreQueueWorker = {
241
- queueName: 'fail-queue',
243
+ name: 'fail-queue',
242
244
  func: {
243
245
  func: async (services: any, data: any, wire: any) => {
244
246
  await wire.queue.fail('Processing failed')
@@ -247,9 +249,9 @@ describe('runQueueJob', () => {
247
249
  },
248
250
  }
249
251
 
250
- pikkuState('queue', 'meta')['fail-queue'] = {
251
- pikkuFuncName: 'queue_fail-queue',
252
- queueName: 'fail-queue',
252
+ pikkuState(null, 'queue', 'meta')['fail-queue'] = {
253
+ pikkuFuncId: 'queue_fail-queue',
254
+ name: 'fail-queue',
253
255
  }
254
256
  addTestQueueFunction('queue_fail-queue')
255
257
  wireQueueWorker(mockWorker)
@@ -276,7 +278,7 @@ describe('runQueueJob', () => {
276
278
 
277
279
  test('should handle job.fail() without reason', async () => {
278
280
  const mockWorker: CoreQueueWorker = {
279
- queueName: 'fail-no-reason-queue',
281
+ name: 'fail-no-reason-queue',
280
282
  func: {
281
283
  func: async (services: any, data: any, wire: any) => {
282
284
  await wire.queue.fail()
@@ -285,9 +287,9 @@ describe('runQueueJob', () => {
285
287
  },
286
288
  }
287
289
 
288
- pikkuState('queue', 'meta')['fail-no-reason-queue'] = {
289
- pikkuFuncName: 'queue_fail-no-reason-queue',
290
- queueName: 'fail-no-reason-queue',
290
+ pikkuState(null, 'queue', 'meta')['fail-no-reason-queue'] = {
291
+ pikkuFuncId: 'queue_fail-no-reason-queue',
292
+ name: 'fail-no-reason-queue',
291
293
  }
292
294
  addTestQueueFunction('queue_fail-no-reason-queue')
293
295
  wireQueueWorker(mockWorker)
@@ -312,7 +314,7 @@ describe('runQueueJob', () => {
312
314
 
313
315
  test('should handle job.discard() by throwing QueueJobDiscardedError', async () => {
314
316
  const mockWorker: CoreQueueWorker = {
315
- queueName: 'discard-queue',
317
+ name: 'discard-queue',
316
318
  func: {
317
319
  func: async (services: any, data: any, wire: any) => {
318
320
  await wire.queue.discard('Invalid data')
@@ -321,9 +323,9 @@ describe('runQueueJob', () => {
321
323
  },
322
324
  }
323
325
 
324
- pikkuState('queue', 'meta')['discard-queue'] = {
325
- pikkuFuncName: 'queue_discard-queue',
326
- queueName: 'discard-queue',
326
+ pikkuState(null, 'queue', 'meta')['discard-queue'] = {
327
+ pikkuFuncId: 'queue_discard-queue',
328
+ name: 'discard-queue',
327
329
  }
328
330
  addTestQueueFunction('queue_discard-queue')
329
331
  wireQueueWorker(mockWorker)
@@ -352,7 +354,7 @@ describe('runQueueJob', () => {
352
354
  const progressUpdates: Array<number | string | object> = []
353
355
 
354
356
  const mockWorker: CoreQueueWorker = {
355
- queueName: 'progress-queue',
357
+ name: 'progress-queue',
356
358
  func: {
357
359
  func: async (services: any, data: any, wire: any) => {
358
360
  await wire.queue.updateProgress(25)
@@ -364,9 +366,9 @@ describe('runQueueJob', () => {
364
366
  },
365
367
  }
366
368
 
367
- pikkuState('queue', 'meta')['progress-queue'] = {
368
- pikkuFuncName: 'queue_progress-queue',
369
- queueName: 'progress-queue',
369
+ pikkuState(null, 'queue', 'meta')['progress-queue'] = {
370
+ pikkuFuncId: 'queue_progress-queue',
371
+ name: 'progress-queue',
370
372
  }
371
373
  addTestQueueFunction('queue_progress-queue')
372
374
  wireQueueWorker(mockWorker)
@@ -387,7 +389,7 @@ describe('runQueueJob', () => {
387
389
 
388
390
  test('should use default updateProgress when not provided', async () => {
389
391
  const mockWorker: CoreQueueWorker = {
390
- queueName: 'default-progress-queue',
392
+ name: 'default-progress-queue',
391
393
  func: {
392
394
  func: async (services: any, data: any, wire: any) => {
393
395
  await wire.queue.updateProgress(50)
@@ -397,9 +399,9 @@ describe('runQueueJob', () => {
397
399
  },
398
400
  }
399
401
 
400
- pikkuState('queue', 'meta')['default-progress-queue'] = {
401
- pikkuFuncName: 'queue_default-progress-queue',
402
- queueName: 'default-progress-queue',
402
+ pikkuState(null, 'queue', 'meta')['default-progress-queue'] = {
403
+ pikkuFuncId: 'queue_default-progress-queue',
404
+ name: 'default-progress-queue',
403
405
  }
404
406
  addTestQueueFunction('queue_default-progress-queue')
405
407
  wireQueueWorker(mockWorker)
@@ -421,7 +423,7 @@ describe('runQueueJob', () => {
421
423
  let capturedWire: any
422
424
 
423
425
  const mockWorker: CoreQueueWorker = {
424
- queueName: 'wire-queue',
426
+ name: 'wire-queue',
425
427
  func: {
426
428
  func: async (services: any, data: any, wire: any) => {
427
429
  capturedWire = wire
@@ -431,9 +433,9 @@ describe('runQueueJob', () => {
431
433
  },
432
434
  }
433
435
 
434
- pikkuState('queue', 'meta')['wire-queue'] = {
435
- pikkuFuncName: 'queue_wire-queue',
436
- queueName: 'wire-queue',
436
+ pikkuState(null, 'queue', 'meta')['wire-queue'] = {
437
+ pikkuFuncId: 'queue_wire-queue',
438
+ name: 'wire-queue',
437
439
  }
438
440
  addTestQueueFunction('queue_wire-queue')
439
441
  wireQueueWorker(mockWorker)
@@ -465,7 +467,9 @@ describe('runQueueJob', () => {
465
467
  })
466
468
  },
467
469
  (error: any) => {
468
- assert(error.message.includes('Processor metadata not found'))
470
+ assert(
471
+ error.message.includes('Missing generated metadata for queue worker')
472
+ )
469
473
  assert(error.message.includes('missing-meta-queue'))
470
474
  return true
471
475
  }
@@ -473,10 +477,9 @@ describe('runQueueJob', () => {
473
477
  })
474
478
 
475
479
  test('should throw error when queue worker registration not found', async () => {
476
- // Add metadata but not registration
477
- pikkuState('queue', 'meta')['no-registration-queue'] = {
478
- pikkuFuncName: 'queue_no-registration-queue',
479
- queueName: 'no-registration-queue',
480
+ pikkuState(null, 'queue', 'meta')['no-registration-queue'] = {
481
+ pikkuFuncId: 'queue_no-registration-queue',
482
+ name: 'no-registration-queue',
480
483
  }
481
484
 
482
485
  const mockLogger = createMockLogger()
@@ -502,16 +505,16 @@ describe('runQueueJob', () => {
502
505
  const mockWireService = { custom: 'service' }
503
506
 
504
507
  const mockWorker: CoreQueueWorker = {
505
- queueName: 'session-services-queue',
508
+ name: 'session-services-queue',
506
509
  func: {
507
510
  func: async () => 'ok',
508
511
  auth: false,
509
512
  },
510
513
  }
511
514
 
512
- pikkuState('queue', 'meta')['session-services-queue'] = {
513
- pikkuFuncName: 'queue_session-services-queue',
514
- queueName: 'session-services-queue',
515
+ pikkuState(null, 'queue', 'meta')['session-services-queue'] = {
516
+ pikkuFuncId: 'queue_session-services-queue',
517
+ name: 'session-services-queue',
515
518
  }
516
519
  addTestQueueFunction('queue_session-services-queue')
517
520
  wireQueueWorker(mockWorker)
@@ -533,7 +536,7 @@ describe('runQueueJob', () => {
533
536
 
534
537
  test('should log errors when job processing fails', async () => {
535
538
  const mockWorker: CoreQueueWorker = {
536
- queueName: 'error-queue',
539
+ name: 'error-queue',
537
540
  func: {
538
541
  func: async () => {
539
542
  throw new Error('Processing error')
@@ -542,9 +545,9 @@ describe('runQueueJob', () => {
542
545
  },
543
546
  }
544
547
 
545
- pikkuState('queue', 'meta')['error-queue'] = {
546
- pikkuFuncName: 'queue_error-queue',
547
- queueName: 'error-queue',
548
+ pikkuState(null, 'queue', 'meta')['error-queue'] = {
549
+ pikkuFuncId: 'queue_error-queue',
550
+ name: 'error-queue',
548
551
  }
549
552
  addTestQueueFunction('queue_error-queue')
550
553
  wireQueueWorker(mockWorker)
@@ -580,7 +583,7 @@ describe('runQueueJob', () => {
580
583
  }
581
584
 
582
585
  const mockWorker: CoreQueueWorker = {
583
- queueName: 'middleware-queue',
586
+ name: 'middleware-queue',
584
587
  func: {
585
588
  func: async () => {
586
589
  executionOrder.push('job')
@@ -591,9 +594,9 @@ describe('runQueueJob', () => {
591
594
  middleware: [middleware],
592
595
  }
593
596
 
594
- pikkuState('queue', 'meta')['middleware-queue'] = {
595
- pikkuFuncName: 'queue_middleware-queue',
596
- queueName: 'middleware-queue',
597
+ pikkuState(null, 'queue', 'meta')['middleware-queue'] = {
598
+ pikkuFuncId: 'queue_middleware-queue',
599
+ name: 'middleware-queue',
597
600
  }
598
601
  addTestQueueFunction('queue_middleware-queue')
599
602
  wireQueueWorker(mockWorker)
@@ -611,16 +614,16 @@ describe('runQueueJob', () => {
611
614
 
612
615
  test('should log debug message on successful job completion', async () => {
613
616
  const mockWorker: CoreQueueWorker = {
614
- queueName: 'debug-queue',
617
+ name: 'debug-queue',
615
618
  func: {
616
619
  func: async () => 'success',
617
620
  auth: false,
618
621
  },
619
622
  }
620
623
 
621
- pikkuState('queue', 'meta')['debug-queue'] = {
622
- pikkuFuncName: 'queue_debug-queue',
623
- queueName: 'debug-queue',
624
+ pikkuState(null, 'queue', 'meta')['debug-queue'] = {
625
+ pikkuFuncId: 'queue_debug-queue',
626
+ name: 'debug-queue',
624
627
  }
625
628
  addTestQueueFunction('queue_debug-queue')
626
629
  wireQueueWorker(mockWorker)
@@ -639,3 +642,42 @@ describe('runQueueJob', () => {
639
642
  assert(debugLogs[0].message.includes('Successfully processed job job-777'))
640
643
  })
641
644
  })
645
+
646
+ describe('createQueueJobRunner', () => {
647
+ test('delegates queue job execution using bound services', async () => {
648
+ const mockWorker: CoreQueueWorker = {
649
+ name: 'bound-runner-queue',
650
+ func: {
651
+ func: async (_services: any, data: any) => {
652
+ return data.value + 1
653
+ },
654
+ auth: false,
655
+ },
656
+ }
657
+
658
+ pikkuState(null, 'queue', 'meta')['bound-runner-queue'] = {
659
+ pikkuFuncId: 'queue_bound-runner-queue',
660
+ name: 'bound-runner-queue',
661
+ }
662
+ addTestQueueFunction('queue_bound-runner-queue')
663
+ wireQueueWorker(mockWorker)
664
+
665
+ const mockLogger = createMockLogger()
666
+ const runJob = createQueueJobRunner({
667
+ singletonServices: { logger: mockLogger } as any,
668
+ })
669
+
670
+ await runJob({
671
+ job: createMockJob('bound-runner-queue', 'job-888', { value: 41 }),
672
+ })
673
+
674
+ const logs = mockLogger.getLogs()
675
+ assert(
676
+ logs.some(
677
+ (log) =>
678
+ log.level === 'debug' &&
679
+ String(log.message).includes('Successfully processed job job-888')
680
+ )
681
+ )
682
+ })
683
+ })
@@ -5,6 +5,7 @@ import type {
5
5
  CorePikkuFunctionSessionless,
6
6
  } from '../../function/functions.types.js'
7
7
  import { getErrorResponse, PikkuError } from '../../errors/error-handler.js'
8
+ import { PikkuMissingMetaError } from '../../errors/errors.js'
8
9
  import { pikkuState } from '../../pikku-state.js'
9
10
  import { addFunction, runPikkuFunc } from '../../function/function-runner.js'
10
11
  import { CreateWireServices } from '../../types/core.types.js'
@@ -52,16 +53,16 @@ export const wireQueueWorker = <
52
53
  queueWorker: CoreQueueWorker<PikkuFunctionConfig>
53
54
  ) => {
54
55
  // Get processor metadata
55
- const meta = pikkuState('queue', 'meta')
56
- const processorMeta = meta[queueWorker.queueName]
56
+ const meta = pikkuState(null, 'queue', 'meta')
57
+ const processorMeta = meta[queueWorker.name]
57
58
  if (!processorMeta) {
58
- throw new Error(
59
- `Queue processor metadata not found for '${queueWorker.queueName}'. Make sure to run the CLI to generate metadata.`
59
+ throw new PikkuMissingMetaError(
60
+ `Missing generated metadata for queue worker '${queueWorker.name}'`
60
61
  )
61
62
  }
62
63
 
63
64
  // Register the function with pikku
64
- addFunction(processorMeta.pikkuFuncName, {
65
+ addFunction(processorMeta.pikkuFuncId, {
65
66
  func: queueWorker.func.func,
66
67
  auth: queueWorker.func.auth,
67
68
  permissions: queueWorker.func.permissions,
@@ -70,22 +71,22 @@ export const wireQueueWorker = <
70
71
  })
71
72
 
72
73
  // Store processor definition in state - runtime adapters will pick this up
73
- const registrations = pikkuState('queue', 'registrations')
74
- registrations.set(queueWorker.queueName, queueWorker)
74
+ const registrations = pikkuState(null, 'queue', 'registrations')
75
+ registrations.set(queueWorker.name, queueWorker)
75
76
  }
76
77
 
77
78
  /**
78
79
  * Get all registered queue processors
79
80
  */
80
81
  export function getQueueWorkers(): Map<string, CoreQueueWorker> {
81
- return pikkuState('queue', 'registrations')
82
+ return pikkuState(null, 'queue', 'registrations')
82
83
  }
83
84
 
84
85
  /**
85
86
  * Stop and remove a queue processor
86
87
  */
87
88
  export async function removeQueueWorker(name: string): Promise<void> {
88
- const registrations = pikkuState('queue', 'registrations')
89
+ const registrations = pikkuState(null, 'queue', 'registrations')
89
90
  const registration = registrations.get(name)
90
91
 
91
92
  if (!registration) {
@@ -111,14 +112,16 @@ export async function runQueueJob({
111
112
  }): Promise<void> {
112
113
  const logger = singletonServices.logger
113
114
 
114
- const meta = pikkuState('queue', 'meta')
115
+ const meta = pikkuState(null, 'queue', 'meta')
115
116
  const processorMeta = meta[job.queueName]
116
117
  if (!processorMeta) {
117
- throw new Error(`Processor metadata not found for: ${job.queueName}`)
118
+ throw new PikkuMissingMetaError(
119
+ `Missing generated metadata for queue worker '${job.queueName}'`
120
+ )
118
121
  }
119
122
 
120
123
  // Get the queue worker registration to access middleware
121
- const registrations = pikkuState('queue', 'registrations')
124
+ const registrations = pikkuState(null, 'queue', 'registrations')
122
125
  const queueWorker = registrations.get(job.queueName)
123
126
  if (!queueWorker) {
124
127
  throw new Error(`Queue worker registration not found for: ${job.queueName}`)
@@ -153,7 +156,7 @@ export async function runQueueJob({
153
156
  const result = await runPikkuFunc(
154
157
  'queue',
155
158
  job.queueName,
156
- processorMeta.pikkuFuncName,
159
+ processorMeta.pikkuFuncId,
157
160
  {
158
161
  singletonServices,
159
162
  createWireServices,
@@ -186,3 +189,26 @@ export async function runQueueJob({
186
189
  throw error
187
190
  }
188
191
  }
192
+
193
+ export const createQueueJobRunner = ({
194
+ singletonServices,
195
+ createWireServices,
196
+ }: {
197
+ singletonServices: CoreServices
198
+ createWireServices?: CreateWireServices
199
+ }) => {
200
+ return async ({
201
+ job,
202
+ updateProgress,
203
+ }: {
204
+ job: QueueJob
205
+ updateProgress?: (progress: number | string | object) => Promise<void>
206
+ }) => {
207
+ await runQueueJob({
208
+ singletonServices,
209
+ createWireServices,
210
+ job,
211
+ updateProgress,
212
+ })
213
+ }
214
+ }
@@ -1,6 +1,7 @@
1
1
  import { CommonWireMeta } from '../../types/core.types.js'
2
2
  import { CorePikkuFunctionConfig } from '../../function/functions.types.js'
3
3
  import { QueueConfigMapping } from './validate-worker-config.js'
4
+ import { Logger } from '../../services/logger.js'
4
5
 
5
6
  /**
6
7
  * Configuration for queue workers - how jobs are processed
@@ -138,6 +139,15 @@ export interface QueueWorkers {
138
139
  /** Configuration mapping for validation */
139
140
  configMappings: QueueConfigMapping
140
141
 
142
+ /** Set runtime queue job runner callback and logger */
143
+ setJobRunner(
144
+ runJob: (params: {
145
+ job: QueueJob
146
+ updateProgress?: (progress: number | string | object) => Promise<void>
147
+ }) => Promise<void>,
148
+ logger: Logger
149
+ ): void
150
+
141
151
  /** Scan state and register all compatible processors */
142
152
  registerQueues(): Promise<Record<string, ConfigValidationResult[]>>
143
153
  }
@@ -148,7 +158,7 @@ export interface QueueWorkers {
148
158
  export type QueueWorkersMeta = Record<
149
159
  string,
150
160
  CommonWireMeta & {
151
- queueName: string
161
+ name: string
152
162
  config?: PikkuWorkerConfig
153
163
  }
154
164
  >
@@ -163,7 +173,7 @@ export type CoreQueueWorker<
163
173
  any
164
174
  > = CorePikkuFunctionConfig<any, any, any>,
165
175
  > = {
166
- queueName: string
176
+ name: string
167
177
  func: PikkuFunctionConfig
168
178
  config?: PikkuWorkerConfig
169
179
  errors?: string[]
@@ -1,2 +1,2 @@
1
- export { initialize, PikkuRPCService, rpcService } from './rpc-runner.js'
1
+ export { PikkuRPCService, rpcService, RPCNotFoundError } from './rpc-runner.js'
2
2
  export type { PikkuRPC, RPCMeta } from './rpc-types.js'