@pikku/core 0.11.2 → 0.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (436) hide show
  1. package/CHANGELOG.md +57 -2
  2. package/dist/crypto-utils.d.ts +2 -0
  3. package/dist/crypto-utils.js +78 -0
  4. package/dist/errors/errors.d.ts +14 -0
  5. package/dist/errors/errors.js +26 -0
  6. package/dist/errors/index.d.ts +1 -1
  7. package/dist/errors/index.js +1 -1
  8. package/dist/function/function-runner.d.ts +10 -4
  9. package/dist/function/function-runner.js +126 -45
  10. package/dist/function/functions.types.d.ts +32 -87
  11. package/dist/function/functions.types.js +16 -46
  12. package/dist/function/index.d.ts +2 -2
  13. package/dist/function/index.js +1 -2
  14. package/dist/handle-error.d.ts +2 -2
  15. package/dist/handle-error.js +3 -12
  16. package/dist/index.d.ts +30 -26
  17. package/dist/index.js +19 -29
  18. package/dist/internal.d.ts +3 -0
  19. package/dist/internal.js +2 -0
  20. package/dist/middleware/auth-apikey.d.ts +2 -2
  21. package/dist/middleware/auth-apikey.js +3 -3
  22. package/dist/middleware/auth-bearer.d.ts +3 -3
  23. package/dist/middleware/auth-bearer.js +4 -7
  24. package/dist/middleware/auth-cookie.d.ts +4 -4
  25. package/dist/middleware/auth-cookie.js +7 -9
  26. package/dist/middleware/cors.d.ts +46 -0
  27. package/dist/middleware/cors.js +81 -0
  28. package/dist/middleware/index.d.ts +5 -3
  29. package/dist/middleware/index.js +5 -3
  30. package/dist/middleware/remote-auth.d.ts +5 -0
  31. package/dist/middleware/remote-auth.js +55 -0
  32. package/dist/middleware/timeout.d.ts +2 -2
  33. package/dist/middleware-runner.d.ts +1 -1
  34. package/dist/middleware-runner.js +8 -10
  35. package/dist/permissions.d.ts +2 -2
  36. package/dist/permissions.js +11 -15
  37. package/dist/pikku-state.d.ts +10 -8
  38. package/dist/pikku-state.js +48 -25
  39. package/dist/schema.d.ts +4 -4
  40. package/dist/schema.js +20 -15
  41. package/dist/services/ai-agent-runner-service.d.ts +43 -0
  42. package/dist/services/ai-agent-runner-service.js +1 -0
  43. package/dist/services/ai-run-state-service.d.ts +13 -0
  44. package/dist/services/ai-run-state-service.js +1 -0
  45. package/dist/services/ai-storage-service.d.ts +18 -0
  46. package/dist/services/ai-storage-service.js +1 -0
  47. package/dist/services/content-service.d.ts +6 -0
  48. package/dist/services/deployment-service.d.ts +19 -0
  49. package/dist/services/deployment-service.js +1 -0
  50. package/dist/services/gopass-secrets.d.ts +47 -0
  51. package/dist/services/gopass-secrets.js +97 -0
  52. package/dist/services/in-memory-ai-run-state-service.d.ts +15 -0
  53. package/dist/services/in-memory-ai-run-state-service.js +44 -0
  54. package/dist/services/in-memory-trigger-service.d.ts +22 -0
  55. package/dist/services/in-memory-trigger-service.js +48 -0
  56. package/dist/services/in-memory-workflow-service.d.ts +59 -0
  57. package/dist/services/in-memory-workflow-service.js +287 -0
  58. package/dist/services/index.d.ts +26 -11
  59. package/dist/services/index.js +11 -13
  60. package/dist/services/local-content.d.ts +2 -1
  61. package/dist/services/local-content.js +6 -1
  62. package/dist/services/local-secrets.d.ts +25 -2
  63. package/dist/services/local-secrets.js +45 -0
  64. package/dist/services/local-variables.d.ts +6 -1
  65. package/dist/services/local-variables.js +18 -0
  66. package/dist/services/logger-console.d.ts +2 -1
  67. package/dist/services/scheduler-service.d.ts +9 -1
  68. package/dist/services/scheduler-service.js +8 -0
  69. package/dist/services/schema-service.d.ts +6 -0
  70. package/dist/services/scoped-secret-service.d.ts +16 -0
  71. package/dist/services/scoped-secret-service.js +35 -0
  72. package/dist/services/secret-service.d.ts +25 -4
  73. package/dist/services/trigger-service.d.ts +16 -0
  74. package/dist/services/trigger-service.js +1 -0
  75. package/dist/services/typed-secret-service.d.ts +30 -0
  76. package/dist/services/typed-secret-service.js +40 -0
  77. package/dist/services/typed-variables-service.d.ts +27 -0
  78. package/dist/services/typed-variables-service.js +46 -0
  79. package/dist/services/user-session-service.d.ts +15 -2
  80. package/dist/services/user-session-service.js +17 -0
  81. package/dist/services/variables-service.d.ts +5 -0
  82. package/dist/services/workflow-service.d.ts +9 -5
  83. package/dist/types/core.types.d.ts +67 -25
  84. package/dist/types/core.types.js +8 -1
  85. package/dist/types/state.types.d.ts +53 -59
  86. package/dist/utils.d.ts +7 -6
  87. package/dist/utils.js +27 -12
  88. package/dist/version.d.ts +6 -0
  89. package/dist/version.js +19 -0
  90. package/dist/wirings/ai-agent/ai-agent-assistant-ui.d.ts +5 -0
  91. package/dist/wirings/ai-agent/ai-agent-assistant-ui.js +146 -0
  92. package/dist/wirings/ai-agent/ai-agent-helpers.d.ts +28 -0
  93. package/dist/wirings/ai-agent/ai-agent-helpers.js +40 -0
  94. package/dist/wirings/ai-agent/ai-agent-memory.d.ts +29 -0
  95. package/dist/wirings/ai-agent/ai-agent-memory.js +199 -0
  96. package/dist/wirings/ai-agent/ai-agent-model-config.d.ts +9 -0
  97. package/dist/wirings/ai-agent/ai-agent-model-config.js +36 -0
  98. package/dist/wirings/ai-agent/ai-agent-prepare.d.ts +59 -0
  99. package/dist/wirings/ai-agent/ai-agent-prepare.js +348 -0
  100. package/dist/wirings/ai-agent/ai-agent-registry.d.ts +15 -0
  101. package/dist/wirings/ai-agent/ai-agent-registry.js +47 -0
  102. package/dist/wirings/ai-agent/ai-agent-runner.d.ts +3 -0
  103. package/dist/wirings/ai-agent/ai-agent-runner.js +195 -0
  104. package/dist/wirings/ai-agent/ai-agent-stream.d.ts +12 -0
  105. package/dist/wirings/ai-agent/ai-agent-stream.js +662 -0
  106. package/dist/wirings/ai-agent/ai-agent.types.d.ts +313 -0
  107. package/dist/wirings/ai-agent/ai-agent.types.js +1 -0
  108. package/dist/wirings/ai-agent/index.d.ts +7 -0
  109. package/dist/wirings/ai-agent/index.js +6 -0
  110. package/dist/wirings/channel/channel-common.d.ts +8 -5
  111. package/dist/wirings/channel/channel-common.js +15 -8
  112. package/dist/wirings/channel/channel-handler.d.ts +3 -3
  113. package/dist/wirings/channel/channel-handler.js +15 -6
  114. package/dist/wirings/channel/channel-middleware-runner.d.ts +9 -0
  115. package/dist/wirings/channel/channel-middleware-runner.js +73 -0
  116. package/dist/wirings/channel/channel-runner.d.ts +5 -5
  117. package/dist/wirings/channel/channel-runner.js +10 -9
  118. package/dist/wirings/channel/channel-store.d.ts +1 -1
  119. package/dist/wirings/channel/channel.types.d.ts +9 -7
  120. package/dist/wirings/channel/define-channel-routes.d.ts +21 -0
  121. package/dist/wirings/channel/define-channel-routes.js +23 -0
  122. package/dist/wirings/channel/index.d.ts +10 -8
  123. package/dist/wirings/channel/index.js +7 -8
  124. package/dist/wirings/channel/local/index.d.ts +3 -3
  125. package/dist/wirings/channel/local/index.js +3 -3
  126. package/dist/wirings/channel/local/local-channel-runner.d.ts +7 -2
  127. package/dist/wirings/channel/local/local-channel-runner.js +22 -9
  128. package/dist/wirings/channel/local/local-eventhub-service.d.ts +2 -2
  129. package/dist/wirings/channel/log-channels.d.ts +1 -1
  130. package/dist/wirings/channel/pikku-abstract-channel-handler.d.ts +1 -1
  131. package/dist/wirings/channel/serverless/index.d.ts +1 -1
  132. package/dist/wirings/channel/serverless/index.js +1 -1
  133. package/dist/wirings/channel/serverless/serverless-channel-runner.d.ts +4 -4
  134. package/dist/wirings/channel/serverless/serverless-channel-runner.js +40 -23
  135. package/dist/wirings/cli/channel/cli-channel-runner.d.ts +1 -1
  136. package/dist/wirings/cli/channel/index.d.ts +1 -1
  137. package/dist/wirings/cli/channel/index.js +1 -1
  138. package/dist/wirings/cli/cli-runner.d.ts +3 -3
  139. package/dist/wirings/cli/cli-runner.js +12 -8
  140. package/dist/wirings/cli/cli.types.d.ts +9 -9
  141. package/dist/wirings/cli/command-parser.d.ts +1 -1
  142. package/dist/wirings/cli/define-cli-commands.d.ts +19 -0
  143. package/dist/wirings/cli/define-cli-commands.js +20 -0
  144. package/dist/wirings/cli/index.d.ts +2 -3
  145. package/dist/wirings/cli/index.js +1 -3
  146. package/dist/wirings/http/http-routes.d.ts +69 -0
  147. package/dist/wirings/http/http-routes.js +139 -0
  148. package/dist/wirings/http/http-runner.d.ts +9 -9
  149. package/dist/wirings/http/http-runner.js +79 -34
  150. package/dist/wirings/http/http.types.d.ts +77 -41
  151. package/dist/wirings/http/index.d.ts +5 -4
  152. package/dist/wirings/http/index.js +4 -3
  153. package/dist/wirings/http/log-http-routes.d.ts +1 -1
  154. package/dist/wirings/http/pikku-fetch-http-request.d.ts +1 -1
  155. package/dist/wirings/http/pikku-fetch-http-response.d.ts +2 -2
  156. package/dist/wirings/http/pikku-fetch-http-response.js +6 -1
  157. package/dist/wirings/http/routers/http-router.d.ts +1 -1
  158. package/dist/wirings/http/routers/path-to-regex.d.ts +2 -2
  159. package/dist/wirings/mcp/index.d.ts +4 -3
  160. package/dist/wirings/mcp/index.js +3 -3
  161. package/dist/wirings/mcp/mcp-endpoint-registry.d.ts +1 -1
  162. package/dist/wirings/mcp/mcp-runner.d.ts +1 -6
  163. package/dist/wirings/mcp/mcp-runner.js +28 -40
  164. package/dist/wirings/mcp/mcp.types.d.ts +5 -5
  165. package/dist/wirings/node/index.d.ts +2 -0
  166. package/dist/wirings/node/index.js +1 -0
  167. package/dist/wirings/node/node.types.d.ts +20 -0
  168. package/dist/wirings/node/node.types.js +1 -0
  169. package/dist/wirings/oauth2/index.d.ts +3 -0
  170. package/dist/wirings/oauth2/index.js +2 -0
  171. package/dist/wirings/oauth2/oauth2-client.d.ts +47 -0
  172. package/dist/wirings/oauth2/oauth2-client.js +267 -0
  173. package/dist/wirings/oauth2/oauth2.types.d.ts +65 -0
  174. package/dist/wirings/oauth2/oauth2.types.js +4 -0
  175. package/dist/wirings/oauth2/wire-oauth2-credential.d.ts +20 -0
  176. package/dist/wirings/oauth2/wire-oauth2-credential.js +21 -0
  177. package/dist/wirings/queue/index.d.ts +1 -1
  178. package/dist/wirings/queue/queue-runner.d.ts +1 -5
  179. package/dist/wirings/queue/queue-runner.js +11 -8
  180. package/dist/wirings/queue/queue.types.d.ts +5 -5
  181. package/dist/wirings/queue/register-queue-helper.d.ts +2 -2
  182. package/dist/wirings/queue/register-queue-helper.js +1 -1
  183. package/dist/wirings/queue/validate-worker-config.d.ts +1 -1
  184. package/dist/wirings/rpc/index.d.ts +3 -1
  185. package/dist/wirings/rpc/index.js +2 -1
  186. package/dist/wirings/rpc/rpc-runner.d.ts +58 -8
  187. package/dist/wirings/rpc/rpc-runner.js +177 -31
  188. package/dist/wirings/rpc/rpc-types.d.ts +20 -4
  189. package/dist/wirings/rpc/wire-addon.d.ts +10 -0
  190. package/dist/wirings/rpc/wire-addon.js +9 -0
  191. package/dist/wirings/scheduler/index.d.ts +2 -2
  192. package/dist/wirings/scheduler/index.js +1 -2
  193. package/dist/wirings/scheduler/log-schedulers.d.ts +1 -1
  194. package/dist/wirings/scheduler/scheduler-runner.d.ts +3 -5
  195. package/dist/wirings/scheduler/scheduler-runner.js +11 -14
  196. package/dist/wirings/scheduler/scheduler.types.d.ts +2 -2
  197. package/dist/wirings/secret/index.d.ts +3 -0
  198. package/dist/wirings/secret/index.js +2 -0
  199. package/dist/wirings/secret/secret.types.d.ts +27 -0
  200. package/dist/wirings/secret/secret.types.js +1 -0
  201. package/dist/wirings/secret/validate-secret-definitions.d.ts +6 -0
  202. package/dist/wirings/secret/validate-secret-definitions.js +55 -0
  203. package/dist/wirings/trigger/index.d.ts +3 -2
  204. package/dist/wirings/trigger/index.js +2 -2
  205. package/dist/wirings/trigger/pikku-trigger-service.d.ts +22 -0
  206. package/dist/wirings/trigger/pikku-trigger-service.js +70 -0
  207. package/dist/wirings/trigger/trigger-runner.d.ts +18 -9
  208. package/dist/wirings/trigger/trigger-runner.js +48 -19
  209. package/dist/wirings/trigger/trigger.types.d.ts +99 -11
  210. package/dist/wirings/trigger/trigger.types.js +40 -1
  211. package/dist/wirings/variable/index.d.ts +3 -0
  212. package/dist/wirings/variable/index.js +2 -0
  213. package/dist/wirings/variable/validate-variable-definitions.d.ts +6 -0
  214. package/dist/wirings/variable/validate-variable-definitions.js +45 -0
  215. package/dist/wirings/variable/variable.types.d.ts +18 -0
  216. package/dist/wirings/variable/variable.types.js +1 -0
  217. package/dist/wirings/workflow/dsl/index.d.ts +1 -1
  218. package/dist/wirings/workflow/dsl/workflow-dsl.types.d.ts +7 -1
  219. package/dist/wirings/workflow/dsl/workflow-runner.js +3 -2
  220. package/dist/wirings/workflow/graph/graph-node.d.ts +1 -6
  221. package/dist/wirings/workflow/graph/graph-runner.d.ts +5 -31
  222. package/dist/wirings/workflow/graph/graph-runner.js +384 -296
  223. package/dist/wirings/workflow/graph/index.d.ts +4 -3
  224. package/dist/wirings/workflow/graph/index.js +3 -3
  225. package/dist/wirings/workflow/graph/template.d.ts +15 -0
  226. package/dist/wirings/workflow/graph/template.js +27 -0
  227. package/dist/wirings/workflow/graph/wire-workflow-graph.d.ts +15 -0
  228. package/dist/wirings/workflow/graph/wire-workflow-graph.js +8 -0
  229. package/dist/wirings/workflow/graph/workflow-graph.types.d.ts +0 -13
  230. package/dist/wirings/workflow/index.d.ts +6 -6
  231. package/dist/wirings/workflow/index.js +6 -4
  232. package/dist/wirings/workflow/pikku-workflow-service.d.ts +29 -19
  233. package/dist/wirings/workflow/pikku-workflow-service.js +217 -82
  234. package/dist/wirings/workflow/workflow-helpers.d.ts +36 -0
  235. package/dist/wirings/workflow/workflow-helpers.js +38 -0
  236. package/dist/wirings/workflow/workflow.types.d.ts +42 -95
  237. package/package.json +14 -15
  238. package/run-tests.sh +4 -1
  239. package/src/crypto-utils.test.ts +116 -0
  240. package/src/crypto-utils.ts +99 -0
  241. package/src/errors/error.test.ts +143 -2
  242. package/src/errors/errors.ts +27 -0
  243. package/src/errors/index.ts +1 -1
  244. package/src/factory-functions.test.ts +42 -2
  245. package/src/function/function-runner.test.ts +6 -13
  246. package/src/function/function-runner.ts +161 -53
  247. package/src/function/functions.types.ts +63 -132
  248. package/src/function/index.ts +5 -2
  249. package/src/handle-error.test.ts +361 -0
  250. package/src/handle-error.ts +6 -14
  251. package/src/index.ts +97 -30
  252. package/src/internal.ts +6 -0
  253. package/src/middleware/auth-apikey.test.ts +16 -13
  254. package/src/middleware/auth-apikey.ts +3 -3
  255. package/src/middleware/auth-bearer.test.ts +18 -15
  256. package/src/middleware/auth-bearer.ts +27 -32
  257. package/src/middleware/auth-cookie.test.ts +17 -14
  258. package/src/middleware/auth-cookie.ts +9 -13
  259. package/src/middleware/cors.test.ts +424 -0
  260. package/src/middleware/cors.ts +104 -0
  261. package/src/middleware/index.ts +5 -3
  262. package/src/middleware/remote-auth.test.ts +488 -0
  263. package/src/middleware/remote-auth.ts +68 -0
  264. package/src/middleware-runner.test.ts +123 -1
  265. package/src/middleware-runner.ts +13 -13
  266. package/src/permissions.test.ts +83 -9
  267. package/src/permissions.ts +17 -19
  268. package/src/pikku-state.test.ts +224 -0
  269. package/src/pikku-state.ts +59 -35
  270. package/src/run-tests-script.test.ts +49 -0
  271. package/src/schema.test.ts +198 -6
  272. package/src/schema.ts +28 -21
  273. package/src/services/ai-agent-runner-service.ts +41 -0
  274. package/src/services/ai-run-state-service.ts +20 -0
  275. package/src/services/ai-storage-service.ts +39 -0
  276. package/src/services/content-service.ts +7 -0
  277. package/src/services/deployment-service.ts +22 -0
  278. package/src/services/gopass-secrets.ts +98 -0
  279. package/src/services/in-memory-ai-run-state-service.ts +73 -0
  280. package/src/services/in-memory-trigger-service.ts +64 -0
  281. package/src/services/in-memory-workflow-service.test.ts +351 -0
  282. package/src/services/in-memory-workflow-service.ts +395 -0
  283. package/src/services/index.ts +50 -14
  284. package/src/services/local-content.ts +9 -3
  285. package/src/services/local-secrets.test.ts +80 -0
  286. package/src/services/local-secrets.ts +53 -2
  287. package/src/services/local-variables.test.ts +61 -0
  288. package/src/services/local-variables.ts +23 -1
  289. package/src/services/logger-console.test.ts +118 -0
  290. package/src/services/logger-console.ts +2 -1
  291. package/src/services/scheduler-service.ts +11 -1
  292. package/src/services/schema-service.ts +7 -0
  293. package/src/services/scoped-secret-service.test.ts +74 -0
  294. package/src/services/scoped-secret-service.ts +41 -0
  295. package/src/services/secret-service.ts +25 -4
  296. package/src/services/trigger-service.ts +17 -0
  297. package/src/services/typed-secret-service.test.ts +93 -0
  298. package/src/services/typed-secret-service.ts +70 -0
  299. package/src/services/typed-variables-service.test.ts +73 -0
  300. package/src/services/typed-variables-service.ts +81 -0
  301. package/src/services/user-session-service.test.ts +113 -0
  302. package/src/services/user-session-service.ts +25 -2
  303. package/src/services/variables-service.ts +5 -0
  304. package/src/services/workflow-service.ts +23 -13
  305. package/src/time-utils.test.ts +1 -1
  306. package/src/types/core.types.ts +95 -24
  307. package/src/types/state.types.ts +56 -73
  308. package/src/utils.test.ts +350 -0
  309. package/src/utils.ts +33 -18
  310. package/src/version.test.ts +80 -0
  311. package/src/version.ts +25 -0
  312. package/src/wirings/ai-agent/ai-agent-assistant-ui.test.ts +363 -0
  313. package/src/wirings/ai-agent/ai-agent-assistant-ui.ts +214 -0
  314. package/src/wirings/ai-agent/ai-agent-helpers.test.ts +152 -0
  315. package/src/wirings/ai-agent/ai-agent-helpers.ts +76 -0
  316. package/src/wirings/ai-agent/ai-agent-memory.ts +300 -0
  317. package/src/wirings/ai-agent/ai-agent-model-config.test.ts +115 -0
  318. package/src/wirings/ai-agent/ai-agent-model-config.ts +43 -0
  319. package/src/wirings/ai-agent/ai-agent-prepare.ts +504 -0
  320. package/src/wirings/ai-agent/ai-agent-registry.test.ts +37 -0
  321. package/src/wirings/ai-agent/ai-agent-registry.ts +82 -0
  322. package/src/wirings/ai-agent/ai-agent-runner.test.ts +317 -0
  323. package/src/wirings/ai-agent/ai-agent-runner.ts +251 -0
  324. package/src/wirings/ai-agent/ai-agent-stream.test.ts +652 -0
  325. package/src/wirings/ai-agent/ai-agent-stream.ts +1049 -0
  326. package/src/wirings/ai-agent/ai-agent.types.ts +328 -0
  327. package/src/wirings/ai-agent/index.ts +39 -0
  328. package/src/wirings/channel/channel-common.ts +33 -20
  329. package/src/wirings/channel/channel-handler.ts +26 -9
  330. package/src/wirings/channel/channel-middleware-runner.ts +119 -0
  331. package/src/wirings/channel/channel-runner.ts +15 -16
  332. package/src/wirings/channel/channel-store.ts +1 -1
  333. package/src/wirings/channel/channel.types.ts +21 -9
  334. package/src/wirings/channel/define-channel-routes.ts +25 -0
  335. package/src/wirings/channel/index.ts +23 -8
  336. package/src/wirings/channel/local/index.ts +3 -3
  337. package/src/wirings/channel/local/local-channel-runner.test.ts +57 -7
  338. package/src/wirings/channel/local/local-channel-runner.ts +40 -19
  339. package/src/wirings/channel/local/local-eventhub-service.test.ts +2 -2
  340. package/src/wirings/channel/local/local-eventhub-service.ts +2 -2
  341. package/src/wirings/channel/log-channels.ts +1 -1
  342. package/src/wirings/channel/pikku-abstract-channel-handler.ts +1 -1
  343. package/src/wirings/channel/serverless/index.ts +5 -1
  344. package/src/wirings/channel/serverless/serverless-channel-runner.ts +57 -36
  345. package/src/wirings/cli/channel/cli-channel-runner.ts +1 -1
  346. package/src/wirings/cli/channel/index.ts +1 -1
  347. package/src/wirings/cli/cli-runner.test.ts +10 -10
  348. package/src/wirings/cli/cli-runner.ts +28 -14
  349. package/src/wirings/cli/cli.types.ts +14 -14
  350. package/src/wirings/cli/command-parser.test.ts +9 -9
  351. package/src/wirings/cli/command-parser.ts +1 -1
  352. package/src/wirings/cli/define-cli-commands.ts +24 -0
  353. package/src/wirings/cli/index.ts +10 -4
  354. package/src/wirings/http/http-routes.test.ts +322 -0
  355. package/src/wirings/http/http-routes.ts +198 -0
  356. package/src/wirings/http/http-runner.test.ts +12 -20
  357. package/src/wirings/http/http-runner.ts +101 -51
  358. package/src/wirings/http/http.types.ts +119 -48
  359. package/src/wirings/http/index.ts +16 -4
  360. package/src/wirings/http/log-http-routes.ts +1 -1
  361. package/src/wirings/http/pikku-fetch-http-request.ts +1 -1
  362. package/src/wirings/http/pikku-fetch-http-response.ts +12 -5
  363. package/src/wirings/http/routers/http-router.ts +1 -1
  364. package/src/wirings/http/routers/path-to-regex.test.ts +1 -1
  365. package/src/wirings/http/routers/path-to-regex.ts +4 -3
  366. package/src/wirings/mcp/index.ts +27 -3
  367. package/src/wirings/mcp/mcp-endpoint-registry.test.ts +3 -3
  368. package/src/wirings/mcp/mcp-endpoint-registry.ts +5 -1
  369. package/src/wirings/mcp/mcp-runner.ts +48 -65
  370. package/src/wirings/mcp/mcp.types.ts +5 -5
  371. package/src/wirings/node/index.ts +2 -0
  372. package/src/wirings/node/node.types.ts +23 -0
  373. package/src/wirings/oauth2/index.ts +3 -0
  374. package/src/wirings/oauth2/oauth2-client.test.ts +929 -0
  375. package/src/wirings/oauth2/oauth2-client.ts +335 -0
  376. package/src/wirings/oauth2/oauth2.types.ts +69 -0
  377. package/src/wirings/oauth2/wire-oauth2-credential.ts +23 -0
  378. package/src/wirings/queue/index.ts +13 -2
  379. package/src/wirings/queue/queue-runner.test.ts +142 -73
  380. package/src/wirings/queue/queue-runner.ts +18 -14
  381. package/src/wirings/queue/queue.types.ts +5 -5
  382. package/src/wirings/queue/register-queue-helper.ts +3 -5
  383. package/src/wirings/queue/validate-worker-config.test.ts +108 -0
  384. package/src/wirings/queue/validate-worker-config.ts +4 -1
  385. package/src/wirings/rpc/index.ts +3 -1
  386. package/src/wirings/rpc/rpc-runner.ts +254 -41
  387. package/src/wirings/rpc/rpc-types.ts +28 -4
  388. package/src/wirings/rpc/wire-addon.ts +20 -0
  389. package/src/wirings/scheduler/index.ts +6 -4
  390. package/src/wirings/scheduler/log-schedulers.ts +1 -1
  391. package/src/wirings/scheduler/scheduler-runner.test.ts +78 -45
  392. package/src/wirings/scheduler/scheduler-runner.ts +20 -27
  393. package/src/wirings/scheduler/scheduler.types.ts +2 -2
  394. package/src/wirings/secret/index.ts +9 -0
  395. package/src/wirings/secret/secret.types.ts +32 -0
  396. package/src/wirings/secret/validate-secret-definitions.test.ts +140 -0
  397. package/src/wirings/secret/validate-secret-definitions.ts +82 -0
  398. package/src/wirings/trigger/index.ts +10 -2
  399. package/src/wirings/trigger/pikku-trigger-service.ts +112 -0
  400. package/src/wirings/trigger/trigger-runner.test.ts +79 -0
  401. package/src/wirings/trigger/trigger-runner.ts +80 -41
  402. package/src/wirings/trigger/trigger.types.ts +144 -22
  403. package/src/wirings/variable/index.ts +8 -0
  404. package/src/wirings/variable/validate-variable-definitions.test.ts +91 -0
  405. package/src/wirings/variable/validate-variable-definitions.ts +69 -0
  406. package/src/wirings/variable/variable.types.ts +22 -0
  407. package/src/wirings/workflow/dsl/index.ts +1 -0
  408. package/src/wirings/workflow/dsl/workflow-dsl.types.ts +9 -1
  409. package/src/wirings/workflow/dsl/workflow-runner.ts +4 -3
  410. package/src/wirings/workflow/graph/graph-node.ts +1 -6
  411. package/src/wirings/workflow/graph/graph-runner.test.ts +487 -0
  412. package/src/wirings/workflow/graph/graph-runner.ts +496 -374
  413. package/src/wirings/workflow/graph/index.ts +14 -3
  414. package/src/wirings/workflow/graph/template.test.ts +49 -0
  415. package/src/wirings/workflow/graph/template.ts +42 -0
  416. package/src/wirings/workflow/graph/wire-workflow-graph.ts +29 -0
  417. package/src/wirings/workflow/graph/workflow-graph.types.ts +0 -22
  418. package/src/wirings/workflow/index.ts +21 -10
  419. package/src/wirings/workflow/pikku-workflow-service.test.ts +200 -0
  420. package/src/wirings/workflow/pikku-workflow-service.ts +308 -105
  421. package/src/wirings/workflow/workflow-helpers.test.ts +129 -0
  422. package/src/wirings/workflow/workflow-helpers.ts +79 -0
  423. package/src/wirings/workflow/workflow.types.ts +47 -92
  424. package/tsconfig.tsbuildinfo +1 -1
  425. package/dist/wirings/forge-node/forge-node.types.d.ts +0 -120
  426. package/dist/wirings/forge-node/forge-node.types.js +0 -38
  427. package/dist/wirings/forge-node/index.d.ts +0 -1
  428. package/dist/wirings/forge-node/index.js +0 -1
  429. package/dist/wirings/workflow/wire-workflow.d.ts +0 -42
  430. package/dist/wirings/workflow/wire-workflow.js +0 -53
  431. package/dist/wirings/workflow/workflow-utils.d.ts +0 -23
  432. package/dist/wirings/workflow/workflow-utils.js +0 -66
  433. package/src/wirings/forge-node/forge-node.types.ts +0 -135
  434. package/src/wirings/forge-node/index.ts +0 -1
  435. package/src/wirings/workflow/wire-workflow.ts +0 -94
  436. package/src/wirings/workflow/workflow-utils.ts +0 -120
@@ -147,7 +147,7 @@ describe('MCPEndpointRegistry', () => {
147
147
  uri: 'file://test.txt',
148
148
  title: 'Test Resource',
149
149
  description: 'Test description',
150
- pikkuFuncName: 'testResource',
150
+ pikkuFuncId: 'testResource',
151
151
  inputSchema: null,
152
152
  outputSchema: null,
153
153
  mimeType: 'text/plain',
@@ -164,7 +164,7 @@ describe('MCPEndpointRegistry', () => {
164
164
  name: 'test-tool',
165
165
  title: 'Test Tool',
166
166
  description: 'Test description',
167
- pikkuFuncName: 'testTool',
167
+ pikkuFuncId: 'testTool',
168
168
  inputSchema: null,
169
169
  outputSchema: null,
170
170
  },
@@ -179,7 +179,7 @@ describe('MCPEndpointRegistry', () => {
179
179
  'test-prompt': {
180
180
  name: 'test-prompt',
181
181
  description: 'Test Prompt',
182
- pikkuFuncName: 'testPrompt',
182
+ pikkuFuncId: 'testPrompt',
183
183
  inputSchema: null,
184
184
  outputSchema: null,
185
185
  arguments: [],
@@ -1,4 +1,8 @@
1
- import { MCPResourceMeta, MCPToolMeta, MCPPromptMeta } from '@pikku/core/mcp'
1
+ import type {
2
+ MCPResourceMeta,
3
+ MCPToolMeta,
4
+ MCPPromptMeta,
5
+ } from '@pikku/core/mcp'
2
6
 
3
7
  export interface MCPToolEndpoint {
4
8
  name: string
@@ -1,13 +1,6 @@
1
- import {
2
- PikkuWire,
3
- type CoreServices,
4
- type CoreSingletonServices,
5
- type CoreUserSession,
6
- type CreateWireServices,
7
- } from '../../types/core.types.js'
1
+ import type { PikkuWire } from '../../types/core.types.js'
8
2
  import type {
9
3
  CoreMCPResource,
10
- CoreMCPTool,
11
4
  CoreMCPPrompt,
12
5
  JsonRpcRequest,
13
6
  JsonRpcResponse,
@@ -20,10 +13,21 @@ import type {
20
13
  } from '../../function/functions.types.js'
21
14
  import { getErrorResponse } from '../../errors/error-handler.js'
22
15
  import { closeWireServices } from '../../utils.js'
23
- import { pikkuState } from '../../pikku-state.js'
16
+ import {
17
+ pikkuState,
18
+ getSingletonServices,
19
+ getCreateWireServices,
20
+ } from '../../pikku-state.js'
24
21
  import { addFunction, runPikkuFunc } from '../../function/function-runner.js'
25
- import { BadRequestError, NotFoundError } from '../../errors/errors.js'
26
- import { PikkuSessionService } from '../../services/user-session-service.js'
22
+ import {
23
+ BadRequestError,
24
+ NotFoundError,
25
+ PikkuMissingMetaError,
26
+ } from '../../errors/errors.js'
27
+ import {
28
+ PikkuSessionService,
29
+ createMiddlewareSessionWireProps,
30
+ } from '../../services/user-session-service.js'
27
31
 
28
32
  export class MCPError extends Error {
29
33
  constructor(public readonly error: JsonRpcErrorResponse) {
@@ -34,13 +38,7 @@ export class MCPError extends Error {
34
38
  }
35
39
 
36
40
  export type RunMCPEndpointParams<Tools extends string = any> = {
37
- singletonServices: CoreSingletonServices
38
41
  mcp?: PikkuMCP<Tools>
39
- createWireServices?: CreateWireServices<
40
- CoreSingletonServices,
41
- CoreServices<CoreSingletonServices>,
42
- CoreUserSession
43
- >
44
42
  }
45
43
 
46
44
  export type JsonRpcError = {
@@ -59,9 +57,11 @@ export const wireMCPResource = <
59
57
  const resourcesMeta = pikkuState(null, 'mcp', 'resourcesMeta')
60
58
  const mcpResourceMeta = resourcesMeta[mcpResource.uri]
61
59
  if (!mcpResourceMeta) {
62
- throw new Error(`MCP resource metadata not found for '${mcpResource.uri}'`)
60
+ throw new PikkuMissingMetaError(
61
+ `Missing generated metadata for MCP resource '${mcpResource.uri}'`
62
+ )
63
63
  }
64
- addFunction(mcpResourceMeta.pikkuFuncName, mcpResource.func as any)
64
+ addFunction(mcpResourceMeta.pikkuFuncId, mcpResource.func as any)
65
65
  const resources = pikkuState(null, 'mcp', 'resources')
66
66
  if (resources.has(mcpResource.uri)) {
67
67
  throw new Error(`MCP resource already exists: ${mcpResource.uri}`)
@@ -69,26 +69,6 @@ export const wireMCPResource = <
69
69
  resources.set(mcpResource.uri, mcpResource)
70
70
  }
71
71
 
72
- export const wireMCPTool = <
73
- PikkuFunctionConfig extends CorePikkuFunctionConfig<
74
- CorePikkuFunctionSessionless<any, any>
75
- > = CorePikkuFunctionConfig<CorePikkuFunctionSessionless<any, any>>,
76
- >(
77
- mcpTool: CoreMCPTool<PikkuFunctionConfig>
78
- ) => {
79
- const toolsMeta = pikkuState(null, 'mcp', 'toolsMeta')
80
- const mcpToolMeta = toolsMeta[mcpTool.name]
81
- if (!mcpToolMeta) {
82
- throw new Error(`MCP tool metadata not found for '${mcpTool.name}'`)
83
- }
84
- addFunction(mcpToolMeta.pikkuFuncName, mcpTool.func as any)
85
- const tools = pikkuState(null, 'mcp', 'tools')
86
- if (tools.has(mcpTool.name)) {
87
- throw new Error(`MCP tool already exists: ${mcpTool.name}`)
88
- }
89
- tools.set(mcpTool.name, mcpTool)
90
- }
91
-
92
72
  export const wireMCPPrompt = <
93
73
  PikkuFunctionConfig extends CorePikkuFunctionConfig<
94
74
  CorePikkuFunctionSessionless<any, any>
@@ -99,9 +79,11 @@ export const wireMCPPrompt = <
99
79
  const promptsMeta = pikkuState(null, 'mcp', 'promptsMeta')
100
80
  const mcpPromptMeta = promptsMeta[mcpPrompt.name]
101
81
  if (!mcpPromptMeta) {
102
- throw new Error(`MCP prompt metadata not found for '${mcpPrompt.name}'`)
82
+ throw new PikkuMissingMetaError(
83
+ `Missing generated metadata for MCP prompt '${mcpPrompt.name}'`
84
+ )
103
85
  }
104
- addFunction(mcpPromptMeta.pikkuFuncName, mcpPrompt.func as any)
86
+ addFunction(mcpPromptMeta.pikkuFuncId, mcpPrompt.func as any)
105
87
  const prompts = pikkuState(null, 'mcp', 'prompts')
106
88
  if (prompts.has(mcpPrompt.name)) {
107
89
  throw new Error(`MCP prompt already exists: ${mcpPrompt.name}`)
@@ -115,7 +97,7 @@ export async function runMCPResource(
115
97
  uri: string
116
98
  ) {
117
99
  let endpoint: CoreMCPResource | undefined
118
- let pikkuFuncName: string | undefined
100
+ let pikkuFuncId: string | undefined
119
101
  let extractedParams: Record<string, string> = {}
120
102
 
121
103
  const metas = pikkuState(null, 'mcp', 'resourcesMeta')
@@ -123,7 +105,7 @@ export async function runMCPResource(
123
105
 
124
106
  if (endpoints.has(uri)) {
125
107
  endpoint = endpoints.get(uri)
126
- pikkuFuncName = metas[uri]?.pikkuFuncName
108
+ pikkuFuncId = metas[uri]?.pikkuFuncId
127
109
  } else {
128
110
  for (const [uriTemplate, value] of endpoints.entries()) {
129
111
  // Extract parameter names from the template
@@ -139,7 +121,7 @@ export async function runMCPResource(
139
121
 
140
122
  if (match) {
141
123
  endpoint = value
142
- pikkuFuncName = metas[uriTemplate]?.pikkuFuncName
124
+ pikkuFuncId = metas[uriTemplate]?.pikkuFuncId
143
125
 
144
126
  // Extract parameter values and create params object
145
127
  for (let i = 0; i < paramNames.length; i++) {
@@ -158,7 +140,7 @@ export async function runMCPResource(
158
140
  'resource',
159
141
  uri,
160
142
  endpoint,
161
- pikkuFuncName,
143
+ pikkuFuncId,
162
144
  { ...params, mcp: { ...params.mcp, uri } } as RunMCPEndpointParams<
163
145
  keyof CoreMCPResource
164
146
  >
@@ -170,14 +152,13 @@ export async function runMCPTool(
170
152
  params: RunMCPEndpointParams,
171
153
  name: string
172
154
  ) {
173
- const endpoint = pikkuState(null, 'mcp', 'tools').get(name)
174
155
  const meta = pikkuState(null, 'mcp', 'toolsMeta')[name]
175
156
  return await runMCPPikkuFunc(
176
157
  request,
177
158
  'tool',
178
159
  name,
179
- endpoint,
180
- meta?.pikkuFuncName,
160
+ undefined,
161
+ meta?.pikkuFuncId,
181
162
  params
182
163
  )
183
164
  }
@@ -194,7 +175,7 @@ export async function runMCPPrompt(
194
175
  'prompt',
195
176
  name,
196
177
  endpoint,
197
- meta?.pikkuFuncName,
178
+ meta?.pikkuFuncId,
198
179
  params
199
180
  )
200
181
  }
@@ -206,27 +187,28 @@ async function runMCPPikkuFunc(
206
187
  request: JsonRpcRequest,
207
188
  type: 'resource' | 'tool' | 'prompt',
208
189
  name: string,
209
- mcp: CoreMCPResource | CoreMCPTool | CoreMCPPrompt | undefined,
210
- pikkuFuncName: string | undefined,
211
- { singletonServices, createWireServices, mcp: mcpWire }: RunMCPEndpointParams
190
+ mcp: CoreMCPResource | CoreMCPPrompt | undefined,
191
+ pikkuFuncId: string | undefined,
192
+ { mcp: mcpWire }: RunMCPEndpointParams
212
193
  ): Promise<JsonRpcResponse> {
194
+ const singletonServices = getSingletonServices()
195
+ const createWireServices = getCreateWireServices()
213
196
  let wireServices: any
214
197
 
215
198
  try {
216
- // Validate JSON-RPC request structure
217
199
  if (request.jsonrpc !== '2.0') {
218
200
  throw new BadRequestError(
219
201
  'Invalid JSON-RPC version, only supoorted version is 2.0'
220
202
  )
221
203
  }
222
204
 
223
- if (!mcp) {
205
+ if (mcp === undefined && type !== 'tool') {
224
206
  throw new NotFoundError(
225
207
  `MCP '${type}' registration not found for '${name}'`
226
208
  )
227
209
  }
228
210
 
229
- if (!pikkuFuncName) {
211
+ if (!pikkuFuncId) {
230
212
  throw new NotFoundError(
231
213
  `MCP '${type}' PikkuFunction Mapping not found for '${name}'`
232
214
  )
@@ -234,12 +216,12 @@ async function runMCPPikkuFunc(
234
216
 
235
217
  singletonServices.logger.debug(`Running MCP ${type}: ${name}`)
236
218
 
219
+ const mcpSessionService = new PikkuSessionService()
237
220
  const wire: PikkuWire = {
238
221
  mcp: mcpWire,
239
- session: new PikkuSessionService(),
222
+ ...createMiddlewareSessionWireProps(mcpSessionService),
240
223
  }
241
224
 
242
- // Get metadata for the MCP endpoint to access pre-resolved middleware
243
225
  let meta: any
244
226
  if (type === 'resource') {
245
227
  meta = pikkuState(null, 'mcp', 'resourcesMeta')[name]
@@ -249,18 +231,23 @@ async function runMCPPikkuFunc(
249
231
  meta = pikkuState(null, 'mcp', 'promptsMeta')[name]
250
232
  }
251
233
 
252
- const result = await runPikkuFunc('mcp', `${type}:${name}`, pikkuFuncName, {
234
+ let result = await runPikkuFunc('mcp', `${type}:${name}`, pikkuFuncId, {
253
235
  singletonServices,
254
236
  createWireServices,
255
237
  data: () => request.params,
256
238
  inheritedMiddleware: meta?.middleware,
257
- wireMiddleware: mcp.middleware,
239
+ wireMiddleware: mcp?.middleware,
258
240
  inheritedPermissions: meta?.permissions,
259
- wirePermissions: mcp.permissions,
260
- tags: mcp.tags,
241
+ wirePermissions: mcp?.permissions,
242
+ tags: mcp?.tags,
261
243
  wire,
244
+ sessionService: mcpSessionService,
262
245
  })
263
246
 
247
+ if (type === 'tool' && meta?.outputSchema !== 'MCPToolResponse') {
248
+ result = [{ type: 'text', text: JSON.stringify(result) }]
249
+ }
250
+
264
251
  return {
265
252
  id: request.id,
266
253
  result,
@@ -297,10 +284,6 @@ async function runMCPPikkuFunc(
297
284
  }
298
285
  }
299
286
 
300
- export const getMCPTools = () => {
301
- return pikkuState(null, 'mcp', 'tools')
302
- }
303
-
304
287
  export const getMCPResources = () => {
305
288
  return pikkuState(null, 'mcp', 'resources')
306
289
  }
@@ -1,10 +1,10 @@
1
- import {
1
+ import type {
2
2
  CorePermissionGroup,
3
3
  CorePikkuFunctionConfig,
4
4
  CorePikkuFunctionSessionless,
5
5
  CorePikkuPermission,
6
6
  } from '../../function/functions.types.js'
7
- import {
7
+ import type {
8
8
  CorePikkuMiddleware,
9
9
  MiddlewareMetadata,
10
10
  PermissionMetadata,
@@ -50,7 +50,7 @@ export type PikkuMCP<Tools extends string = any> = {
50
50
  export type MCPResourceMeta = Record<
51
51
  string,
52
52
  Omit<CoreMCPResource, 'func' | 'middleware' | 'permissions'> & {
53
- pikkuFuncName: string
53
+ pikkuFuncId: string
54
54
  inputSchema: string | null
55
55
  outputSchema: string | null
56
56
  middleware?: MiddlewareMetadata[] // Pre-resolved middleware chain (tag + explicit)
@@ -64,7 +64,7 @@ export type MCPResourceMeta = Record<
64
64
  export type MCPToolMeta = Record<
65
65
  string,
66
66
  Omit<CoreMCPTool, 'func' | 'middleware' | 'permissions'> & {
67
- pikkuFuncName: string
67
+ pikkuFuncId: string
68
68
  inputSchema: string | null
69
69
  outputSchema: string | null
70
70
  middleware?: MiddlewareMetadata[] // Pre-resolved middleware chain (tag + explicit)
@@ -78,7 +78,7 @@ export type MCPToolMeta = Record<
78
78
  export type MCPPromptMeta = Record<
79
79
  string,
80
80
  Omit<CoreMCPPrompt, 'func' | 'middleware' | 'permissions'> & {
81
- pikkuFuncName: string
81
+ pikkuFuncId: string
82
82
  inputSchema: string | null
83
83
  outputSchema: string | null
84
84
  arguments: Array<{
@@ -0,0 +1,2 @@
1
+ export type { CoreNodeConfig, NodeType } from './node.types.js'
2
+ export type { NodesMeta } from './node.types.js'
@@ -0,0 +1,23 @@
1
+ export type NodeType = 'trigger' | 'action' | 'end'
2
+
3
+ export type CoreNodeConfig = {
4
+ displayName: string
5
+ category: string
6
+ type: NodeType
7
+ errorOutput?: boolean
8
+ }
9
+
10
+ export type NodeMeta = {
11
+ name: string
12
+ displayName: string
13
+ category: string
14
+ type: NodeType
15
+ rpc: string
16
+ description?: string
17
+ errorOutput: boolean
18
+ inputSchemaName: string | null
19
+ outputSchemaName: string | null
20
+ tags?: string[]
21
+ }
22
+
23
+ export type NodesMeta = Record<string, NodeMeta>
@@ -0,0 +1,3 @@
1
+ export { OAuth2Client } from './oauth2-client.js'
2
+ export { wireOAuth2Credential } from './wire-oauth2-credential.js'
3
+ export type { OAuth2AppCredential, OAuth2Token } from './oauth2.types.js'