@pikku/cli 0.11.1 → 0.11.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (358) hide show
  1. package/.pikku/channel/pikku-channel-types.gen.ts +73 -17
  2. package/.pikku/channel/pikku-channels-map.gen.d.ts +11 -11
  3. package/.pikku/channel/pikku-channels-meta.gen.json +1 -0
  4. package/.pikku/channel/pikku-channels-meta.gen.ts +4 -2
  5. package/.pikku/channel/pikku-channels.gen.ts +1 -1
  6. package/.pikku/cli/pikku-cli-channel.ts +2 -2
  7. package/.pikku/cli/pikku-cli-client.gen.ts +1 -3
  8. package/.pikku/cli/pikku-cli-types.gen.ts +3 -3
  9. package/.pikku/cli/pikku-cli-wirings-meta.gen.json +147 -0
  10. package/.pikku/cli/pikku-cli-wirings-meta.gen.ts +4 -157
  11. package/.pikku/cli/pikku-cli-wirings.gen.ts +3 -3
  12. package/.pikku/cli/pikku-cli.gen.ts +3 -3
  13. package/.pikku/forge/pikku-forge-types.gen.ts +83 -0
  14. package/.pikku/function/pikku-function-types.gen.ts +223 -91
  15. package/.pikku/function/pikku-functions-meta-verbose.gen.json +1030 -0
  16. package/.pikku/function/pikku-functions-meta.gen.json +656 -0
  17. package/.pikku/function/pikku-functions-meta.gen.ts +4 -970
  18. package/.pikku/http/pikku-http-types.gen.ts +20 -4
  19. package/.pikku/http/pikku-http-wirings-map.gen.d.ts +11 -11
  20. package/.pikku/http/pikku-http-wirings-meta.gen.json +9 -0
  21. package/.pikku/http/pikku-http-wirings-meta.gen.ts +4 -10
  22. package/.pikku/http/pikku-http-wirings.gen.ts +1 -1
  23. package/.pikku/mcp/pikku-mcp-types.gen.ts +72 -20
  24. package/.pikku/mcp/pikku-mcp-wirings-meta.gen.json +5 -0
  25. package/.pikku/mcp/pikku-mcp-wirings-meta.gen.ts +6 -4
  26. package/.pikku/mcp/pikku-mcp-wirings.gen.ts +1 -1
  27. package/.pikku/pikku-bootstrap.gen.ts +7 -12
  28. package/.pikku/pikku-services.gen.ts +6 -7
  29. package/.pikku/pikku-types.gen.ts +4 -1
  30. package/.pikku/pikku-websocket.gen.ts +1 -1
  31. package/.pikku/queue/pikku-queue-types.gen.ts +2 -2
  32. package/.pikku/queue/pikku-queue-workers-wirings-map.gen.d.ts +11 -11
  33. package/.pikku/queue/pikku-queue-workers-wirings-meta.gen.json +1 -0
  34. package/.pikku/queue/pikku-queue-workers-wirings-meta.gen.ts +5 -7
  35. package/.pikku/queue/pikku-queue-workers-wirings.gen.ts +1 -1
  36. package/.pikku/rpc/pikku-remote-rpc-workers.gen.ts +5 -2
  37. package/.pikku/rpc/pikku-rpc-wirings-map.gen.d.ts +19 -14
  38. package/.pikku/rpc/pikku-rpc-wirings-map.internal.gen.d.ts +46 -39
  39. package/.pikku/scheduler/pikku-scheduler-types.gen.ts +2 -2
  40. package/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.json +1 -0
  41. package/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.ts +5 -2
  42. package/.pikku/scheduler/pikku-schedulers-wirings.gen.ts +1 -1
  43. package/.pikku/schemas/register.gen.ts +31 -23
  44. package/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +1 -1
  45. package/.pikku/schemas/schemas/PikkuCLIOutput.schema.json +1 -1
  46. package/.pikku/schemas/schemas/PikkuChannelsOutput.schema.json +1 -1
  47. package/.pikku/schemas/schemas/PikkuForgeNodesOutput.schema.json +1 -0
  48. package/.pikku/schemas/schemas/PikkuFunctionsOutput.schema.json +1 -1
  49. package/.pikku/schemas/schemas/PikkuHTTPOutput.schema.json +1 -1
  50. package/.pikku/schemas/schemas/PikkuMCPOutput.schema.json +1 -1
  51. package/.pikku/schemas/schemas/PikkuMiddlewareOutput.schema.json +1 -1
  52. package/.pikku/schemas/schemas/PikkuPackageOutput.schema.json +1 -0
  53. package/.pikku/schemas/schemas/PikkuPermissionsOutput.schema.json +1 -1
  54. package/.pikku/schemas/schemas/PikkuPublicRPCOutput.schema.json +1 -1
  55. package/.pikku/schemas/schemas/PikkuQueueOutput.schema.json +1 -1
  56. package/.pikku/schemas/schemas/PikkuRPCOutput.schema.json +1 -1
  57. package/.pikku/schemas/schemas/PikkuRemoteRPCOutput.schema.json +1 -1
  58. package/.pikku/schemas/schemas/PikkuSchedulerOutput.schema.json +1 -1
  59. package/.pikku/schemas/schemas/PikkuSchemasOutput.schema.json +1 -1
  60. package/.pikku/schemas/schemas/PikkuWorkflowOutput.schema.json +1 -1
  61. package/.pikku/services/config.gen.json +104 -0
  62. package/.pikku/services/getInspectorState.gen.json +10 -0
  63. package/.pikku/services/jwt.gen.json +13 -0
  64. package/.pikku/services/logger.gen.json +25 -0
  65. package/.pikku/services/queueService.gen.json +14 -0
  66. package/.pikku/services/schedulerService.gen.json +17 -0
  67. package/.pikku/services/schema.gen.json +14 -0
  68. package/.pikku/services/secrets.gen.json +13 -0
  69. package/.pikku/services/variables.gen.json +13 -0
  70. package/.pikku/services/workflowService.gen.json +31 -0
  71. package/.pikku/workflow/pikku-workflow-map.gen.d.ts +2 -36
  72. package/.pikku/workflow/pikku-workflow-types.gen.ts +305 -48
  73. package/.pikku/workflow/pikku-workflow-wirings-meta.gen.ts +6 -2
  74. package/.pikku/workflow/pikku-workflow-wirings.gen.ts +1 -2
  75. package/CHANGELOG.md +44 -1
  76. package/bin/pikku.ts +6 -32
  77. package/build.sh +53 -31
  78. package/cli.schema.json +1 -1
  79. package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +51 -10
  80. package/dist/.pikku/channel/pikku-channel-types.gen.js +3 -13
  81. package/dist/.pikku/channel/pikku-channels-meta.gen.js +3 -2
  82. package/dist/.pikku/channel/pikku-channels-meta.gen.json +1 -0
  83. package/dist/.pikku/channel/pikku-channels.gen.d.ts +1 -1
  84. package/dist/.pikku/channel/pikku-channels.gen.js +1 -1
  85. package/dist/.pikku/cli/pikku-cli-channel.js +2 -2
  86. package/dist/.pikku/cli/pikku-cli-client.gen.d.ts +1 -1
  87. package/dist/.pikku/cli/pikku-cli-client.gen.js +1 -3
  88. package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +3 -3
  89. package/dist/.pikku/cli/pikku-cli-types.gen.js +1 -1
  90. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +3 -157
  91. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.json +147 -0
  92. package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +2 -2
  93. package/dist/.pikku/cli/pikku-cli-wirings.gen.js +2 -2
  94. package/dist/.pikku/cli/pikku-cli.gen.d.ts +1 -1
  95. package/dist/.pikku/cli/pikku-cli.gen.js +3 -3
  96. package/dist/.pikku/forge/pikku-forge-types.gen.d.ts +72 -0
  97. package/dist/.pikku/forge/pikku-forge-types.gen.js +55 -0
  98. package/dist/.pikku/function/pikku-function-types.gen.d.ts +141 -99
  99. package/dist/.pikku/function/pikku-function-types.gen.js +52 -62
  100. package/dist/.pikku/function/pikku-functions-meta.gen.js +3 -969
  101. package/dist/.pikku/function/pikku-functions-meta.gen.json +656 -0
  102. package/dist/.pikku/http/pikku-http-types.gen.d.ts +19 -4
  103. package/dist/.pikku/http/pikku-http-types.gen.js +1 -1
  104. package/dist/.pikku/http/pikku-http-wirings-meta.gen.js +3 -10
  105. package/dist/.pikku/http/pikku-http-wirings-meta.gen.json +9 -0
  106. package/dist/.pikku/http/pikku-http-wirings.gen.d.ts +1 -1
  107. package/dist/.pikku/http/pikku-http-wirings.gen.js +1 -1
  108. package/dist/.pikku/mcp/pikku-mcp-types.gen.d.ts +57 -17
  109. package/dist/.pikku/mcp/pikku-mcp-types.gen.js +7 -31
  110. package/dist/.pikku/mcp/pikku-mcp-wirings-meta.gen.js +5 -4
  111. package/dist/.pikku/mcp/pikku-mcp-wirings-meta.gen.json +5 -0
  112. package/dist/.pikku/mcp/pikku-mcp-wirings.gen.d.ts +1 -1
  113. package/dist/.pikku/mcp/pikku-mcp-wirings.gen.js +1 -1
  114. package/dist/.pikku/pikku-bootstrap.gen.d.ts +7 -12
  115. package/dist/.pikku/pikku-bootstrap.gen.js +7 -12
  116. package/dist/.pikku/pikku-services.gen.d.ts +5 -7
  117. package/dist/.pikku/pikku-services.gen.js +3 -5
  118. package/dist/.pikku/pikku-types.gen.d.ts +2 -1
  119. package/dist/.pikku/pikku-types.gen.js +3 -1
  120. package/dist/.pikku/pikku-websocket.gen.d.ts +1 -1
  121. package/dist/.pikku/pikku-websocket.gen.js +1 -1
  122. package/dist/.pikku/queue/pikku-queue-types.gen.d.ts +2 -2
  123. package/dist/.pikku/queue/pikku-queue-types.gen.js +1 -1
  124. package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.js +3 -7
  125. package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.json +1 -0
  126. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.d.ts +1 -1
  127. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.js +1 -1
  128. package/dist/.pikku/rpc/pikku-remote-rpc-workers.gen.d.ts +9 -9
  129. package/dist/.pikku/rpc/pikku-remote-rpc-workers.gen.js +5 -2
  130. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +2 -2
  131. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +1 -1
  132. package/dist/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.js +3 -2
  133. package/dist/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.json +1 -0
  134. package/dist/.pikku/scheduler/pikku-schedulers-wirings.gen.d.ts +1 -1
  135. package/dist/.pikku/scheduler/pikku-schedulers-wirings.gen.js +1 -1
  136. package/dist/.pikku/schemas/register.gen.js +19 -15
  137. package/dist/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +1 -1
  138. package/dist/.pikku/schemas/schemas/PikkuCLIOutput.schema.json +1 -1
  139. package/dist/.pikku/schemas/schemas/PikkuChannelsOutput.schema.json +1 -1
  140. package/dist/.pikku/schemas/schemas/PikkuForgeNodesOutput.schema.json +1 -0
  141. package/dist/.pikku/schemas/schemas/PikkuFunctionsOutput.schema.json +1 -1
  142. package/dist/.pikku/schemas/schemas/PikkuHTTPOutput.schema.json +1 -1
  143. package/dist/.pikku/schemas/schemas/PikkuMCPOutput.schema.json +1 -1
  144. package/dist/.pikku/schemas/schemas/PikkuMiddlewareOutput.schema.json +1 -1
  145. package/dist/.pikku/schemas/schemas/PikkuPackageOutput.schema.json +1 -0
  146. package/dist/.pikku/schemas/schemas/PikkuPermissionsOutput.schema.json +1 -1
  147. package/dist/.pikku/schemas/schemas/PikkuPublicRPCOutput.schema.json +1 -1
  148. package/dist/.pikku/schemas/schemas/PikkuQueueOutput.schema.json +1 -1
  149. package/dist/.pikku/schemas/schemas/PikkuRPCOutput.schema.json +1 -1
  150. package/dist/.pikku/schemas/schemas/PikkuRemoteRPCOutput.schema.json +1 -1
  151. package/dist/.pikku/schemas/schemas/PikkuSchedulerOutput.schema.json +1 -1
  152. package/dist/.pikku/schemas/schemas/PikkuSchemasOutput.schema.json +1 -1
  153. package/dist/.pikku/schemas/schemas/PikkuWorkflowOutput.schema.json +1 -1
  154. package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +213 -39
  155. package/dist/.pikku/workflow/pikku-workflow-types.gen.js +106 -16
  156. package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +3 -2
  157. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.d.ts +1 -1
  158. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +1 -2
  159. package/dist/bin/pikku.js +5 -26
  160. package/dist/src/cli.wiring.js +4 -4
  161. package/dist/src/functions/commands/all.js +172 -94
  162. package/dist/src/functions/commands/bootstrap.js +21 -16
  163. package/dist/src/functions/commands/watch.js +6 -3
  164. package/dist/src/functions/runtimes/nextjs/pikku-command-nextjs.js +12 -8
  165. package/dist/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.d.ts +1 -1
  166. package/dist/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.js +74 -22
  167. package/dist/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.d.ts +1 -1
  168. package/dist/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.js +72 -20
  169. package/dist/src/functions/wirings/channels/pikku-channels.js +9 -2
  170. package/dist/src/functions/wirings/channels/pikku-command-channels.js +18 -2
  171. package/dist/src/functions/wirings/channels/serialize-channel-types.js +72 -16
  172. package/dist/src/functions/wirings/channels/serialize-typed-channel-map.js +1 -2
  173. package/dist/src/functions/wirings/cli/pikku-command-cli-entry.js +4 -4
  174. package/dist/src/functions/wirings/cli/pikku-command-cli-types.js +1 -1
  175. package/dist/src/functions/wirings/cli/pikku-command-cli.js +17 -3
  176. package/dist/src/functions/wirings/cli/serialize-channel-cli.js +1 -1
  177. package/dist/src/functions/wirings/cli/serialize-cli-types.js +2 -2
  178. package/dist/src/functions/wirings/cli/serialize-local-cli-bootstrap.d.ts +1 -1
  179. package/dist/src/functions/wirings/cli/serialize-local-cli-bootstrap.js +4 -4
  180. package/dist/src/functions/wirings/forge/pikku-command-forge-nodes.d.ts +1 -0
  181. package/dist/src/functions/wirings/forge/pikku-command-forge-nodes.js +90 -0
  182. package/dist/src/functions/wirings/forge/pikku-command-forge-types.d.ts +1 -0
  183. package/dist/src/functions/wirings/forge/pikku-command-forge-types.js +26 -0
  184. package/dist/src/functions/wirings/forge/serialize-forge-types.d.ts +4 -0
  185. package/dist/src/functions/wirings/forge/serialize-forge-types.js +90 -0
  186. package/dist/src/functions/wirings/functions/pikku-command-function-types-split.js +4 -4
  187. package/dist/src/functions/wirings/functions/pikku-command-function-types.js +7 -2
  188. package/dist/src/functions/wirings/functions/pikku-command-functions.js +35 -10
  189. package/dist/src/functions/wirings/functions/pikku-command-services.d.ts +1 -1
  190. package/dist/src/functions/wirings/functions/pikku-command-services.js +24 -24
  191. package/dist/src/functions/wirings/functions/pikku-function-types.js +2 -2
  192. package/dist/src/functions/wirings/functions/schemas.d.ts +1 -1
  193. package/dist/src/functions/wirings/functions/schemas.js +5 -4
  194. package/dist/src/functions/wirings/functions/serialize-function-imports.d.ts +3 -1
  195. package/dist/src/functions/wirings/functions/serialize-function-imports.js +7 -3
  196. package/dist/src/functions/wirings/functions/serialize-function-types.d.ts +1 -1
  197. package/dist/src/functions/wirings/functions/serialize-function-types.js +224 -91
  198. package/dist/src/functions/wirings/functions/serialize-pikku-types-hub.d.ts +1 -1
  199. package/dist/src/functions/wirings/functions/serialize-pikku-types-hub.js +19 -21
  200. package/dist/src/functions/wirings/http/openapi-spec-generator.js +5 -5
  201. package/dist/src/functions/wirings/http/pikku-command-http-routes.js +18 -2
  202. package/dist/src/functions/wirings/http/pikku-command-openapi.js +2 -2
  203. package/dist/src/functions/wirings/http/pikku-http-routes.js +9 -2
  204. package/dist/src/functions/wirings/http/serialize-http-types.js +19 -3
  205. package/dist/src/functions/wirings/http/serialize-typed-http-map.js +33 -8
  206. package/dist/src/functions/wirings/mcp/pikku-command-mcp.js +29 -6
  207. package/dist/src/functions/wirings/mcp/serialize-mcp-json.js +3 -2
  208. package/dist/src/functions/wirings/mcp/serialize-mcp-types.js +71 -19
  209. package/dist/src/functions/wirings/middleware/pikku-command-middleware.js +29 -2
  210. package/dist/src/functions/wirings/middleware/serialize-middleware-groups-meta.d.ts +5 -2
  211. package/dist/src/functions/wirings/middleware/serialize-middleware-groups-meta.js +5 -13
  212. package/dist/src/functions/wirings/package/pikku-command-package.d.ts +1 -0
  213. package/dist/src/functions/wirings/package/pikku-command-package.js +58 -0
  214. package/dist/src/functions/wirings/package/serialize-package.d.ts +5 -0
  215. package/dist/src/functions/wirings/package/serialize-package.js +32 -0
  216. package/dist/src/functions/wirings/queue/pikku-command-queue.js +17 -3
  217. package/dist/src/functions/wirings/queue/pikku-queue.js +9 -11
  218. package/dist/src/functions/wirings/queue/serialize-queue-map.js +20 -3
  219. package/dist/src/functions/wirings/queue/serialize-queue-meta.d.ts +2 -1
  220. package/dist/src/functions/wirings/queue/serialize-queue-meta.js +10 -1
  221. package/dist/src/functions/wirings/queue/serialize-queue-types.js +1 -1
  222. package/dist/src/functions/wirings/rpc/pikku-command-rpc-map.js +4 -4
  223. package/dist/src/functions/wirings/rpc/pikku-command-rpc.js +9 -2
  224. package/dist/src/functions/wirings/rpc/serialize-public-rpc.js +11 -4
  225. package/dist/src/functions/wirings/rpc/serialize-remote-rpc.js +4 -1
  226. package/dist/src/functions/wirings/rpc/serialize-rpc-wrapper.js +3 -3
  227. package/dist/src/functions/wirings/rpc/serialize-typed-rpc-map.d.ts +1 -1
  228. package/dist/src/functions/wirings/rpc/serialize-typed-rpc-map.js +54 -8
  229. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler.js +15 -3
  230. package/dist/src/functions/wirings/scheduler/serialize-scheduler-meta.d.ts +2 -1
  231. package/dist/src/functions/wirings/scheduler/serialize-scheduler-meta.js +11 -1
  232. package/dist/src/functions/wirings/scheduler/serialize-scheduler-types.js +1 -1
  233. package/dist/src/functions/wirings/services/pikku-command-service-metadata.d.ts +1 -0
  234. package/dist/src/functions/wirings/services/pikku-command-service-metadata.js +22 -0
  235. package/dist/src/functions/wirings/workflow/pikku-command-workflow.js +58 -16
  236. package/dist/src/functions/wirings/workflow/serialize-workflow-map.d.ts +3 -0
  237. package/dist/src/functions/wirings/workflow/serialize-workflow-map.js +30 -32
  238. package/dist/src/functions/wirings/workflow/serialize-workflow-meta.d.ts +1 -2
  239. package/dist/src/functions/wirings/workflow/serialize-workflow-meta.js +43 -8
  240. package/dist/src/functions/wirings/workflow/serialize-workflow-registration.d.ts +7 -0
  241. package/dist/src/functions/wirings/workflow/serialize-workflow-registration.js +53 -0
  242. package/dist/src/functions/wirings/workflow/serialize-workflow-types.d.ts +4 -2
  243. package/dist/src/functions/wirings/workflow/serialize-workflow-types.js +308 -49
  244. package/dist/src/functions/wirings/workflow/serialize-workflow-workers.d.ts +1 -1
  245. package/dist/src/functions/wirings/workflow/serialize-workflow-workers.js +16 -29
  246. package/dist/src/middleware/log-command-info-and-time.d.ts +2 -2
  247. package/dist/src/middleware/log-command-info-and-time.js +1 -4
  248. package/dist/src/services/cli-logger-forwarder.service.js +1 -1
  249. package/dist/src/services.d.ts +2 -7
  250. package/dist/src/services.js +18 -13
  251. package/dist/src/utils/check-required-types.d.ts +2 -2
  252. package/dist/src/utils/check-required-types.js +2 -3
  253. package/dist/src/utils/command-summary.d.ts +2 -0
  254. package/dist/src/utils/command-summary.js +2 -0
  255. package/dist/src/utils/custom-types-generator.js +13 -15
  256. package/dist/src/utils/generate-bootstrap-file.js +1 -1
  257. package/dist/src/utils/pikku-cli-config.js +65 -4
  258. package/dist/src/utils/pikku-files-and-methods.d.ts +2 -2
  259. package/dist/src/utils/pikku-files-and-methods.js +4 -4
  260. package/dist/src/utils/schema-generator.d.ts +4 -3
  261. package/dist/src/utils/schema-generator.js +135 -15
  262. package/dist/src/utils/strip-verbose-meta.d.ts +43 -0
  263. package/dist/src/utils/strip-verbose-meta.js +210 -0
  264. package/dist/tsconfig.tsbuildinfo +1 -1
  265. package/package.json +11 -9
  266. package/src/cli.wiring.ts +4 -4
  267. package/src/functions/commands/all.ts +203 -107
  268. package/src/functions/commands/bootstrap.ts +23 -16
  269. package/src/functions/commands/watch.ts +6 -3
  270. package/src/functions/runtimes/nextjs/pikku-command-nextjs.ts +26 -6
  271. package/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.ts +75 -22
  272. package/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.ts +72 -19
  273. package/src/functions/wirings/channels/pikku-channels.ts +27 -3
  274. package/src/functions/wirings/channels/pikku-command-channels.ts +46 -3
  275. package/src/functions/wirings/channels/serialize-channel-types.ts +72 -16
  276. package/src/functions/wirings/channels/serialize-typed-channel-map.ts +3 -2
  277. package/src/functions/wirings/cli/pikku-command-cli-entry.ts +4 -4
  278. package/src/functions/wirings/cli/pikku-command-cli-types.ts +1 -1
  279. package/src/functions/wirings/cli/pikku-command-cli.ts +45 -3
  280. package/src/functions/wirings/cli/serialize-channel-cli.ts +1 -1
  281. package/src/functions/wirings/cli/serialize-cli-types.ts +2 -2
  282. package/src/functions/wirings/cli/serialize-local-cli-bootstrap.ts +5 -5
  283. package/src/functions/wirings/forge/pikku-command-forge-nodes.ts +135 -0
  284. package/src/functions/wirings/forge/pikku-command-forge-types.ts +38 -0
  285. package/src/functions/wirings/forge/serialize-forge-types.ts +94 -0
  286. package/src/functions/wirings/functions/pikku-command-function-types-split.ts +9 -8
  287. package/src/functions/wirings/functions/pikku-command-function-types.ts +17 -10
  288. package/src/functions/wirings/functions/pikku-command-functions.ts +59 -14
  289. package/src/functions/wirings/functions/pikku-command-services.ts +26 -26
  290. package/src/functions/wirings/functions/pikku-function-types.ts +3 -1
  291. package/src/functions/wirings/functions/schemas.ts +14 -4
  292. package/src/functions/wirings/functions/serialize-function-imports.ts +12 -3
  293. package/src/functions/wirings/functions/serialize-function-types.ts +227 -93
  294. package/src/functions/wirings/functions/serialize-pikku-types-hub.ts +27 -26
  295. package/src/functions/wirings/http/openapi-spec-generator.ts +15 -6
  296. package/src/functions/wirings/http/pikku-command-http-routes.ts +46 -2
  297. package/src/functions/wirings/http/pikku-command-openapi.ts +3 -2
  298. package/src/functions/wirings/http/pikku-http-routes.ts +28 -2
  299. package/src/functions/wirings/http/serialize-http-types.ts +19 -3
  300. package/src/functions/wirings/http/serialize-typed-http-map.ts +32 -8
  301. package/src/functions/wirings/mcp/pikku-command-mcp.ts +58 -10
  302. package/src/functions/wirings/mcp/serialize-mcp-json.ts +8 -6
  303. package/src/functions/wirings/mcp/serialize-mcp-types.ts +71 -19
  304. package/src/functions/wirings/middleware/pikku-command-middleware.ts +39 -2
  305. package/src/functions/wirings/middleware/serialize-middleware-groups-meta.ts +4 -19
  306. package/src/functions/wirings/package/pikku-command-package.ts +81 -0
  307. package/src/functions/wirings/package/serialize-package.ts +69 -0
  308. package/src/functions/wirings/permissions/pikku-command-permissions.ts +2 -2
  309. package/src/functions/wirings/queue/pikku-command-queue.ts +47 -2
  310. package/src/functions/wirings/queue/pikku-queue.ts +26 -10
  311. package/src/functions/wirings/queue/serialize-queue-map.ts +18 -3
  312. package/src/functions/wirings/queue/serialize-queue-meta.ts +15 -1
  313. package/src/functions/wirings/queue/serialize-queue-types.ts +1 -1
  314. package/src/functions/wirings/rpc/pikku-command-rpc-map.ts +7 -4
  315. package/src/functions/wirings/rpc/pikku-command-rpc.ts +25 -2
  316. package/src/functions/wirings/rpc/serialize-public-rpc.ts +11 -4
  317. package/src/functions/wirings/rpc/serialize-remote-rpc.ts +4 -1
  318. package/src/functions/wirings/rpc/serialize-rpc-wrapper.ts +3 -3
  319. package/src/functions/wirings/rpc/serialize-typed-rpc-map.ts +74 -8
  320. package/src/functions/wirings/scheduler/pikku-command-scheduler.ts +51 -4
  321. package/src/functions/wirings/scheduler/serialize-scheduler-meta.ts +20 -1
  322. package/src/functions/wirings/scheduler/serialize-scheduler-types.ts +1 -1
  323. package/src/functions/wirings/services/pikku-command-service-metadata.ts +25 -0
  324. package/src/functions/wirings/workflow/pikku-command-workflow.ts +114 -19
  325. package/src/functions/wirings/workflow/serialize-workflow-map.ts +38 -40
  326. package/src/functions/wirings/workflow/serialize-workflow-meta.ts +68 -11
  327. package/src/functions/wirings/workflow/serialize-workflow-registration.ts +83 -0
  328. package/src/functions/wirings/workflow/serialize-workflow-types.ts +311 -49
  329. package/src/functions/wirings/workflow/serialize-workflow-workers.ts +16 -29
  330. package/src/middleware/log-command-info-and-time.ts +3 -6
  331. package/src/services/cli-logger-forwarder.service.ts +1 -1
  332. package/src/services.ts +23 -16
  333. package/src/utils/check-required-types.ts +4 -7
  334. package/src/utils/command-summary.ts +4 -0
  335. package/src/utils/custom-types-generator.ts +15 -15
  336. package/src/utils/generate-bootstrap-file.ts +1 -1
  337. package/src/utils/pikku-cli-config.ts +105 -5
  338. package/src/utils/pikku-files-and-methods.ts +10 -13
  339. package/src/utils/schema-generator.ts +185 -22
  340. package/src/utils/strip-verbose-meta.ts +254 -0
  341. package/types/application-types.d.ts +1 -1
  342. package/types/config.d.ts +47 -2
  343. package/.pikku/function/pikku-functions-meta.min.gen.ts +0 -211
  344. package/.pikku/function/pikku-functions.gen.ts +0 -84
  345. package/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.ts +0 -47
  346. package/dist/.pikku/function/pikku-functions-meta.min.gen.d.ts +0 -1
  347. package/dist/.pikku/function/pikku-functions-meta.min.gen.js +0 -211
  348. package/dist/.pikku/function/pikku-functions.gen.d.ts +0 -1
  349. package/dist/.pikku/function/pikku-functions.gen.js +0 -83
  350. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.d.ts +0 -1
  351. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +0 -47
  352. package/dist/.pikku/schemas/schemas/PikkuRemoteInternalRPCInput.schema.json +0 -1
  353. package/dist/src/functions/wirings/workflow/pikku-command-workflow-map.d.ts +0 -1
  354. package/dist/src/functions/wirings/workflow/pikku-command-workflow-map.js +0 -12
  355. package/dist/src/functions/wirings/workflow/pikku-command-workflow-types.d.ts +0 -1
  356. package/dist/src/functions/wirings/workflow/pikku-command-workflow-types.js +0 -11
  357. package/src/functions/wirings/workflow/pikku-command-workflow-map.ts +0 -24
  358. package/src/functions/wirings/workflow/pikku-command-workflow-types.ts +0 -22
@@ -1,34 +1,35 @@
1
1
  /**
2
- * Generates type definitions for workflow wirings
2
+ * Generate all workflow type helpers for authoring workflows
3
+ * Combines DSL helpers (pikkuWorkflowFunc, pikkuWorkflowComplexFunc) and
4
+ * graph helpers (pikkuWorkflowGraph) with unified wireWorkflow
3
5
  */
4
- export const serializeWorkflowTypes = (functionTypesImportPath: string) => {
6
+ export const serializeWorkflowTypes = (
7
+ functionTypesImportPath: string,
8
+ rpcMapImportPath: string
9
+ ) => {
5
10
  return `/**
6
- * Workflow-specific type definitions for tree-shaking optimization
11
+ * Workflow type definitions and helpers
12
+ * Used for authoring both DSL and graph-based workflows
7
13
  */
8
14
 
9
- import { CoreWorkflow, wireWorkflow as wireWorkflowCore, PikkuWorkflowInteraction, WorkflowStepOptions } from '@pikku/core/workflow'
10
- import { CorePikkuFunctionConfig, CorePikkuFunctionSessionless } from '@pikku/core'
11
- import type { PikkuPermission, PikkuMiddleware } from '${functionTypesImportPath}'
12
- import type { UserSession, SingletonServices } from '../../types/application-types.d.js'
13
- import type { TypedPikkuRPC, RPCMap } from '../rpc/pikku-rpc-wirings-map.internal.gen.d.js'
15
+ import { PikkuWorkflowWire, WorkflowStepOptions, WorkflowCancelledException } from '@pikku/core/workflow'
14
16
 
15
- /**
16
- * Type definition for workflows that orchestrate multi-step processes.
17
- * Workflows support both inline and remote execution modes with step caching.
18
- */
19
- type WorkflowWiring = CoreWorkflow<
20
- CorePikkuFunctionConfig<PikkuFunctionWorkflow<any, any>, PikkuPermission<any>, PikkuMiddleware>
21
- >
17
+ // Re-export WorkflowCancelledException for use in workflow functions
18
+ export { WorkflowCancelledException }
19
+ import type { PikkuFunctionSessionless, PikkuFunctionConfig } from '${functionTypesImportPath}'
20
+ import type { RPCMap, FlattenedRPCMap } from '${rpcMapImportPath}'
21
+ import type { GraphNodeConfig, HTTPMethod } from '@pikku/core'
22
+ import { createGraph, wireWorkflow as coreWireWorkflow } from '@pikku/core'
23
+
24
+ // ============================================================================
25
+ // DSL Workflow Types (pikkuWorkflowFunc, pikkuWorkflowComplexFunc)
26
+ // ============================================================================
22
27
 
23
28
  /**
24
- * Typed workflow interaction with RPC awareness
29
+ * Typed workflow wire with RPC awareness
25
30
  * Provides type-safe workflow.do() for RPC steps
26
31
  */
27
- export interface TypedWorkflow extends PikkuWorkflowInteraction {
28
- /**
29
- * Execute a workflow step with RPC invocation (typed based on available RPCs)
30
- * @template K - RPC name from the RPC map
31
- */
32
+ export interface TypedWorkflow extends PikkuWorkflowWire {
32
33
  do<K extends keyof RPCMap>(
33
34
  stepName: string,
34
35
  rpcName: K,
@@ -36,10 +37,6 @@ export interface TypedWorkflow extends PikkuWorkflowInteraction {
36
37
  options?: WorkflowStepOptions
37
38
  ): Promise<RPCMap[K]['output']>
38
39
 
39
- /**
40
- * Execute a workflow step with inline function
41
- * @template T - Return type of the inline function
42
- */
43
40
  do<T>(
44
41
  stepName: string,
45
42
  fn: () => T | Promise<T>,
@@ -49,47 +46,312 @@ export interface TypedWorkflow extends PikkuWorkflowInteraction {
49
46
 
50
47
  /**
51
48
  * Workflow function type with typed workflow service
52
- * Includes the workflow interaction object with typed RPC methods
53
49
  */
54
50
  export type PikkuFunctionWorkflow<
55
51
  In = unknown,
56
52
  Out = never
57
- > = CorePikkuFunctionSessionless<
58
- In,
59
- Out,
60
- null,
61
- SingletonServices & {
62
- rpc: TypedPikkuRPC
63
- workflow: TypedWorkflow
64
- },
65
- UserSession
66
- >
53
+ > = PikkuFunctionSessionless<In, Out, 'workflow'>
67
54
 
68
55
  /**
69
- * Creates a workflow function with typed input and output.
70
- * Workflow functions have access to the workflow interaction object for step execution.
71
- *
72
- * @template In - Input type for the workflow
73
- * @template Out - Output type for the workflow
74
- * @param func - Function definition, either direct function or configuration object
75
- * @returns The normalized configuration object
56
+ * Creates a DSL-compatible workflow function (serializable, shows in Forge UI)
76
57
  */
77
58
  export const pikkuWorkflowFunc = <In, Out = unknown>(
78
59
  func:
79
60
  | PikkuFunctionWorkflow<In, Out>
80
- | CorePikkuFunctionConfig<PikkuFunctionWorkflow<In, Out>, PikkuPermission<In>, PikkuMiddleware>
61
+ | PikkuFunctionConfig<In, Out, 'workflow', PikkuFunctionWorkflow<In, Out>>
62
+ ) => {
63
+ return typeof func === 'function' ? { func } : func
64
+ }
65
+
66
+ /**
67
+ * Creates a complex workflow function (arbitrary code, hidden from Forge UI)
68
+ */
69
+ export const pikkuWorkflowComplexFunc = <In, Out = unknown>(
70
+ func:
71
+ | PikkuFunctionWorkflow<In, Out>
72
+ | PikkuFunctionConfig<In, Out, 'workflow', PikkuFunctionWorkflow<In, Out>>
81
73
  ) => {
82
74
  return typeof func === 'function' ? { func } : func
83
75
  }
84
76
 
77
+ // ============================================================================
78
+ // Graph Workflow Types (pikkuWorkflowGraph)
79
+ // ============================================================================
80
+
85
81
  /**
86
- * Registers a workflow with the Pikku framework.
87
- * Workflows can run in 'inline' (synchronous) or 'remote' (queue-based) execution modes.
82
+ * Type-safe graph builder with full RPC autocomplete
83
+ */
84
+ const graphBuilder = createGraph<FlattenedRPCMap>()
85
+
86
+ /** HTTP wire configuration for graph workflows */
87
+ interface GraphHttpWire<NodeIds extends string> {
88
+ route: string
89
+ method: HTTPMethod
90
+ startNode: NodeIds
91
+ }
92
+
93
+ /** Channel wire configuration for graph workflows */
94
+ interface GraphChannelWire<NodeIds extends string> {
95
+ name: string
96
+ onConnect?: NodeIds
97
+ onDisconnect?: NodeIds
98
+ onMessage?: NodeIds
99
+ }
100
+
101
+ /** Queue wire configuration for graph workflows */
102
+ interface GraphQueueWire<NodeIds extends string> {
103
+ name: string
104
+ startNode: NodeIds
105
+ }
106
+
107
+ /** CLI wire configuration for graph workflows */
108
+ interface GraphCliWire<NodeIds extends string> {
109
+ command: string
110
+ startNode: NodeIds
111
+ }
112
+
113
+ /** MCP wire configurations for graph workflows */
114
+ interface GraphMcpWires<NodeIds extends string> {
115
+ tool?: Array<{ name: string; startNode: NodeIds }>
116
+ prompt?: Array<{ name: string; startNode: NodeIds }>
117
+ resource?: Array<{ uri: string; startNode: NodeIds }>
118
+ }
119
+
120
+ /** Schedule wire configuration for graph workflows */
121
+ interface GraphScheduleWire<NodeIds extends string> {
122
+ cron?: string
123
+ interval?: string
124
+ startNode: NodeIds
125
+ }
126
+
127
+ /** Trigger wire configuration for graph workflows */
128
+ interface GraphTriggerWire<NodeIds extends string> {
129
+ name: string // RPC name of the trigger function
130
+ startNode: NodeIds
131
+ }
132
+
133
+ /** All wire configurations for graph workflows */
134
+ interface GraphWiresConfig<NodeIds extends string> {
135
+ http?: Array<GraphHttpWire<NodeIds>>
136
+ channel?: Array<GraphChannelWire<NodeIds>>
137
+ queue?: Array<GraphQueueWire<NodeIds>>
138
+ cli?: Array<GraphCliWire<NodeIds>>
139
+ mcp?: GraphMcpWires<NodeIds>
140
+ schedule?: Array<GraphScheduleWire<NodeIds>>
141
+ trigger?: Array<GraphTriggerWire<NodeIds>>
142
+ }
143
+
144
+ /** Configuration for graph-based workflow */
145
+ export interface PikkuWorkflowGraphConfig<
146
+ FuncMap extends Record<string, keyof FlattenedRPCMap & string>,
147
+ T
148
+ > {
149
+ /** Workflow name (optional - defaults to exported variable name) */
150
+ name?: string
151
+ /** Optional description */
152
+ description?: string
153
+ /** Optional tags for organization */
154
+ tags?: string[]
155
+ /** Node to RPC function mapping */
156
+ nodes: FuncMap
157
+ /** Wire configurations - how this workflow can be triggered */
158
+ wires?: GraphWiresConfig<Extract<keyof FuncMap, string>>
159
+ /** Node configurations (next, input, onError) */
160
+ config?: T
161
+ }
162
+
163
+ /** Result of pikkuWorkflowGraph - includes metadata for wiring */
164
+ export interface PikkuWorkflowGraphResult<T, NodeIds extends string = string> {
165
+ __type: 'pikkuWorkflowGraph'
166
+ name?: string
167
+ description?: string
168
+ tags?: string[]
169
+ wires?: GraphWiresConfig<NodeIds>
170
+ graph: T
171
+ }
172
+
173
+ /**
174
+ * Creates a graph-based workflow definition with metadata
175
+ * Name defaults to the exported variable name if not provided.
176
+ *
177
+ * @example
178
+ * // Name inferred from exported variable name
179
+ * export const myWorkflow = pikkuWorkflowGraph({
180
+ * description: 'Handles user onboarding',
181
+ * tags: ['onboarding'],
182
+ * nodes: {
183
+ * entry: 'createUser',
184
+ * sendEmail: 'sendWelcomeEmail',
185
+ * },
186
+ * config: {
187
+ * entry: { next: 'sendEmail' },
188
+ * sendEmail: { input: (ref) => ({ to: ref('entry', 'email') }) },
189
+ * },
190
+ * })
191
+ */
192
+ export function pikkuWorkflowGraph<
193
+ const FuncMap extends Record<string, keyof FlattenedRPCMap & string>
194
+ >(
195
+ config: PikkuWorkflowGraphConfig<FuncMap, GraphNodeConfigMap<FuncMap>>
196
+ ): PikkuWorkflowGraphResult<Record<Extract<keyof FuncMap, string>, GraphNodeConfig<Extract<keyof FuncMap, string>>>, Extract<keyof FuncMap, string>> {
197
+ return {
198
+ __type: 'pikkuWorkflowGraph',
199
+ name: config.name,
200
+ description: config.description,
201
+ tags: config.tags,
202
+ wires: config.wires,
203
+ graph: graphBuilder(config.nodes, config.config as any),
204
+ }
205
+ }
206
+
207
+ /** Typed ref value */
208
+ type TypedRef<T> = { $ref: string; path?: string } & { __phantomType?: T }
209
+
210
+ /** Template string type - assignable to string fields */
211
+ type TemplateString = {
212
+ $template: {
213
+ parts: string[]
214
+ expressions: Array<{ $ref: string; path?: string }>
215
+ }
216
+ } & { __brand: 'TemplateString' }
217
+
218
+ /**
219
+ * Creates a template string with variable interpolation
220
+ * Uses indexed placeholders $0, $1, etc. with refs array
221
+ *
222
+ * @example
223
+ * template('Hello $0, your order $1 is ready', [ref('trigger', 'name'), ref('step_0', 'orderId')])
224
+ */
225
+ export function template(templateStr: string, refs: TypedRef<unknown>[]): TemplateString {
226
+ const parts: string[] = []
227
+ const expressions: Array<{ $ref: string; path?: string }> = []
228
+
229
+ // Parse template string: "Hello $0" -> parts: ["Hello ", ""], use refs[0] for expression
230
+ const regex = /\$(\d+)/g
231
+ let lastIndex = 0
232
+ let match
233
+
234
+ while ((match = regex.exec(templateStr)) !== null) {
235
+ // Add the part before this match
236
+ parts.push(templateStr.slice(lastIndex, match.index))
237
+
238
+ // Get the ref by index
239
+ const refIndex = parseInt(match[1]!, 10)
240
+ const refValue = refs[refIndex]
241
+ if (refValue) {
242
+ const expr: { $ref: string; path?: string } = { $ref: refValue.$ref }
243
+ if (refValue.path) {
244
+ expr.path = refValue.path
245
+ }
246
+ expressions.push(expr)
247
+ } else {
248
+ expressions.push({ $ref: 'unknown' })
249
+ }
250
+
251
+ lastIndex = regex.lastIndex
252
+ }
253
+
254
+ // Add the remaining part
255
+ parts.push(templateStr.slice(lastIndex))
256
+
257
+ return {
258
+ $template: { parts, expressions }
259
+ } as TemplateString
260
+ }
261
+
262
+ /** Map input type fields to allow TypedRef or TemplateString for any field */
263
+ type InputWithRefs<T> = {
264
+ [K in keyof T]?: T[K] | TypedRef<T[K]> | TypedRef<unknown> | TemplateString
265
+ }
266
+
267
+ /** Get the input type for a node based on its RPC mapping */
268
+ type NodeInputType<FuncMap extends Record<string, string>, K extends keyof FuncMap> =
269
+ FuncMap[K] extends keyof FlattenedRPCMap
270
+ ? InputWithRefs<FlattenedRPCMap[FuncMap[K]]['input']>
271
+ : Record<string, unknown>
272
+
273
+ /** Get the output type keys for a node based on its RPC mapping */
274
+ type NodeOutputKeys<FuncMap extends Record<string, string>, N extends string> =
275
+ N extends keyof FuncMap
276
+ ? FuncMap[N] extends keyof FlattenedRPCMap
277
+ ? keyof FlattenedRPCMap[FuncMap[N]]['output'] & string
278
+ : string
279
+ : string
280
+
281
+ /** Ref function type with path validation */
282
+ type RefFunction<FuncMap extends Record<string, string>> = {
283
+ <N extends Extract<keyof FuncMap, string>>(
284
+ nodeId: N,
285
+ path: NodeOutputKeys<FuncMap, N>
286
+ ): TypedRef<unknown>
287
+ (nodeId: 'trigger' | '$item', path?: string): TypedRef<unknown>
288
+ }
289
+
290
+ /** Template function type */
291
+ type TemplateFunction = (templateStr: string, refs: TypedRef<unknown>[]) => TemplateString
292
+
293
+ /** Type helper for node configuration */
294
+ type GraphNodeConfigMap<FuncMap extends Record<string, string>> = {
295
+ [K in Extract<keyof FuncMap, string>]?: {
296
+ next?: NextConfig<Extract<keyof FuncMap, string>>
297
+ input?:
298
+ | NodeInputType<FuncMap, K>
299
+ | (() => NodeInputType<FuncMap, K>)
300
+ | ((ref: RefFunction<FuncMap>, template: TemplateFunction) => NodeInputType<FuncMap, K>)
301
+ onError?: Extract<keyof FuncMap, string> | Extract<keyof FuncMap, string>[]
302
+ }
303
+ }
304
+
305
+ type NextConfig<NodeIds extends string> = NodeIds | NodeIds[] | { if: string; then: NodeIds; else?: NodeIds }
306
+
307
+ // ============================================================================
308
+ // Unified wireWorkflow
309
+ // ============================================================================
310
+
311
+ /** Workflow definition with DSL function */
312
+ interface WorkflowDefinitionFunc {
313
+ /** Whether this workflow wiring is enabled (default: true) */
314
+ enabled?: boolean
315
+ /** Wire configurations for the workflow */
316
+ wires: {
317
+ http?: { route: string; method: HTTPMethod }
318
+ channel?: string
319
+ queue?: string
320
+ }
321
+ /** DSL workflow function */
322
+ func: PikkuFunctionConfig<any, any, 'workflow', PikkuFunctionWorkflow<any, any>>
323
+ }
324
+
325
+ /** Workflow definition with graph */
326
+ interface WorkflowDefinitionGraph<T, NodeIds extends string = string> {
327
+ /** Whether this workflow wiring is enabled (default: true) */
328
+ enabled?: boolean
329
+ /** Graph workflow definition - wires are defined in the graph itself */
330
+ graph: PikkuWorkflowGraphResult<T, NodeIds>
331
+ }
332
+
333
+ /**
334
+ * Wire a workflow with wires
335
+ * Accepts either a DSL function (func) or a graph definition (graph)
336
+ *
337
+ * @example
338
+ * // DSL workflow
339
+ * wireWorkflow({
340
+ * wires: { http: { route: '/start', method: 'post' } },
341
+ * func: myWorkflowFunc,
342
+ * })
88
343
  *
89
- * @param workflow - Workflow definition with name, execution mode, and handler function
344
+ * @example
345
+ * // Graph workflow - wires are defined in the graph itself
346
+ * wireWorkflow({
347
+ * enabled: true, // default: true
348
+ * graph: myGraphWorkflow,
349
+ * })
90
350
  */
91
- export const wireWorkflow = (workflow: WorkflowWiring) => {
92
- wireWorkflowCore(workflow as any)
351
+ export function wireWorkflow<T extends Record<string, GraphNodeConfig<Extract<keyof T, string>>>, NodeIds extends string = string>(
352
+ definition: WorkflowDefinitionFunc | WorkflowDefinitionGraph<T, NodeIds>
353
+ ): void {
354
+ coreWireWorkflow(definition as any)
93
355
  }
94
356
  `
95
357
  }
@@ -1,16 +1,12 @@
1
1
  /**
2
- * Generate queue workers and RPC functions for workflow steps and orchestrator
2
+ * Generate queue workers for workflow orchestration
3
3
  */
4
4
  export const serializeWorkflowWorkers = (pathToPikkuTypes: string) => {
5
5
  return `/**
6
- * Auto-generated workflow queue workers and RPC functions
7
- * Do not edit manually - regenerate with 'npx pikku'
6
+ * Workflow queue workers for orchestration
8
7
  */
9
8
  import { pikkuSessionlessFunc, wireQueueWorker } from '${pathToPikkuTypes}'
10
9
 
11
- /**
12
- * Worker input types for generated queue workers
13
- */
14
10
  export type WorkflowStepInput = {
15
11
  runId: string
16
12
  stepName: string
@@ -18,43 +14,34 @@ export type WorkflowStepInput = {
18
14
  data: any
19
15
  }
20
16
 
21
- export const pikkuWorkflowWorker = pikkuSessionlessFunc<
22
- WorkflowStepInput,
23
- void
24
- >({
25
- func: async ({ workflowService, rpc }, { runId, stepName, rpcName, data }) => {
17
+ export const pikkuWorkflowWorker = pikkuSessionlessFunc<WorkflowStepInput, void>({
18
+ func: async ({ workflowService }, { runId, stepName, rpcName, data }, { rpc }) => {
26
19
  await workflowService!.executeWorkflowStep(runId, stepName, rpcName, data, rpc)
27
20
  }
28
21
  })
29
22
 
30
- export const pikkuWorkflowOrchestrator = pikkuSessionlessFunc<
31
- { runId: string },
32
- void
33
- >({
34
- func: async ({ workflowService, rpc }, { runId }) => {
23
+ export const pikkuWorkflowOrchestrator = pikkuSessionlessFunc<{ runId: string }, void>({
24
+ func: async ({ workflowService }, { runId }, { rpc }) => {
35
25
  await workflowService!.orchestrateWorkflow(runId, rpc)
36
26
  }
37
27
  })
38
28
 
39
- export const pikkuWorkflowSleeper = pikkuSessionlessFunc<
40
- { runId: string, stepId: string },
41
- void
42
- >({
29
+ export const pikkuWorkflowSleeper = pikkuSessionlessFunc<{ runId: string, stepId: string }, void>({
43
30
  func: async ({ workflowService }, { runId, stepId }) => {
44
- await workflowService!.executeWorkflowSleep(runId, stepId)
31
+ await workflowService!.executeWorkflowSleepCompleted(runId, stepId)
45
32
  },
46
- name: 'pikkuWorkflowStepSleeper',
47
33
  internal: true,
48
34
  })
49
35
 
50
- wireQueueWorker({
51
- queueName: 'pikku-workflow-step-worker',
52
- func: pikkuWorkflowWorker,
36
+ export const pikkuRemoteInternalRPC = pikkuSessionlessFunc<{ rpcName: string, data?: any }, any>({
37
+ func: async (_services, { rpcName, data }, { rpc }) => {
38
+ return await (rpc.invoke as any)(rpcName, data)
39
+ },
40
+ internal: true,
53
41
  })
54
42
 
55
- wireQueueWorker({
56
- queueName: 'pikku-workflow-orchestrator',
57
- func: pikkuWorkflowOrchestrator,
58
- })
43
+ wireQueueWorker({ queueName: 'pikku-workflow-step-worker', func: pikkuWorkflowWorker })
44
+ wireQueueWorker({ queueName: 'pikku-workflow-orchestrator', func: pikkuWorkflowOrchestrator })
45
+ wireQueueWorker({ queueName: 'pikku-remote-internal-rpc', func: pikkuRemoteInternalRPC })
59
46
  `
60
47
  }
@@ -1,10 +1,10 @@
1
1
  import type { Services } from '../../types/application-types.js'
2
- import type { PikkuInteraction } from '@pikku/core'
2
+ import type { PikkuWire } from '@pikku/core'
3
3
 
4
4
  // Middleware type for CLI
5
5
  type PikkuMiddleware = (
6
6
  services: Services,
7
- interaction: PikkuInteraction,
7
+ wire: PikkuWire,
8
8
  next: () => Promise<void>
9
9
  ) => Promise<void>
10
10
 
@@ -21,15 +21,12 @@ export const logCommandInfoAndTime = ({
21
21
  commandStart,
22
22
  commandEnd,
23
23
  }: LogCommandInfoOptions): PikkuMiddleware => {
24
- return async ({ logger }, _interaction, next) => {
25
- // Log start (debug level - only shows with --verbose)
24
+ return async ({ logger }, _wire, next) => {
26
25
  const start = Date.now()
27
26
  logger.debug(`• ${commandStart}...`)
28
27
 
29
- // Execute the function
30
28
  await next()
31
29
 
32
- // Log completion (debug level - only shows with --verbose)
33
30
  logger.debug({
34
31
  type: 'success',
35
32
  message: `✓ ${commandEnd} in ${Date.now() - start}ms.`,
@@ -47,7 +47,7 @@ export class CLILoggerForwarder implements Logger {
47
47
  let message: string
48
48
 
49
49
  if (messageOrObj instanceof Error) {
50
- this.logger.error(messageOrObj)
50
+ this.logger.error(messageOrObj.toString())
51
51
  message = messageOrObj.message
52
52
  } else if (typeof messageOrObj === 'object') {
53
53
  if (
package/src/services.ts CHANGED
@@ -6,11 +6,15 @@ import type {
6
6
  } from '../types/application-types.js'
7
7
  import {
8
8
  CreateConfig,
9
- CreateSessionServices,
9
+ CreateWireServices,
10
10
  CreateSingletonServices,
11
11
  } from '@pikku/core'
12
12
  import { pikkuCLIRender } from '@pikku/core/cli'
13
- import { LocalVariablesService, LogLevel } from '@pikku/core/services'
13
+ import {
14
+ LocalVariablesService,
15
+ LocalSecretService,
16
+ LogLevel,
17
+ } from '@pikku/core/services'
14
18
  import { CLILogger } from './services/cli-logger.service.js'
15
19
  import { getPikkuCLIConfig } from './utils/pikku-cli-config.js'
16
20
  import {
@@ -103,17 +107,17 @@ export const defaultCLIRenderer = pikkuCLIRender<
103
107
  }
104
108
  })
105
109
 
106
- /**
107
- * Client-safe CLI renderer that outputs to console (no service dependencies)
108
- * This renderer can be used in CLI-over-channel clients
109
- */
110
- export const clientCLIRenderer = pikkuCLIRender<ForwardedLogMessage>(
111
- ({ logger }, data) => {
112
- if (data) {
113
- logger[data.level]?.({ message: data.message, type: data.type } as any)
114
- }
115
- }
116
- )
110
+ // /**
111
+ // * Client-safe CLI renderer that outputs to console (no service dependencies)
112
+ // * This renderer can be used in CLI-over-channel clients
113
+ // */
114
+ // export const clientCLIRenderer = pikkuCLIRender<ForwardedLogMessage>(
115
+ // ({ logger }, data) => {
116
+ // if (data) {
117
+ // logger[data.level]?.({ message: data.message, type: data.type } as any)
118
+ // }
119
+ // }
120
+ // )
117
121
 
118
122
  export const createConfig: CreateConfig<Config, [PikkuCLIConfig]> = async (
119
123
  _variablesService,
@@ -221,7 +225,7 @@ export const createSingletonServices: CreateSingletonServices<
221
225
  type: 'CoreUserSession',
222
226
  typePath: corePackagePath,
223
227
  },
224
- sessionServicesType: {
228
+ wireServicesType: {
225
229
  file: corePackagePath,
226
230
  variable: 'CoreServices',
227
231
  type: 'CoreServices',
@@ -252,17 +256,19 @@ export const createSingletonServices: CreateSingletonServices<
252
256
  srcDirectories.map((dir) =>
253
257
  glob(`${path.join(rootDir, dir)}/**/*.ts`, {
254
258
  ignore: config.ignoreFiles || [],
259
+ absolute: true,
255
260
  })
256
261
  )
257
262
  )
258
263
  ).flat()
259
264
  unfilteredState = inspect(logger, wiringFiles, {
260
265
  setupOnly,
266
+ rootDir,
261
267
  types: {
262
268
  configFileType: config.configFile,
263
269
  userSessionType: config.userSessionType,
264
270
  singletonServicesFactoryType: config.singletonServicesFactoryType,
265
- sessionServicesFactoryType: config.sessionServicesFactoryType,
271
+ wireServicesFactoryType: config.wireServicesFactoryType,
266
272
  },
267
273
  })
268
274
 
@@ -296,11 +302,12 @@ export const createSingletonServices: CreateSingletonServices<
296
302
  config,
297
303
  logger,
298
304
  variables,
305
+ secrets: new LocalSecretService(variables),
299
306
  getInspectorState,
300
307
  }
301
308
  }
302
309
 
303
- export const createSessionServices: CreateSessionServices<
310
+ export const createWireServices: CreateWireServices<
304
311
  SingletonServices,
305
312
  Services,
306
313
  UserSession
@@ -2,11 +2,11 @@ import { FilesAndMethodsErrors } from '@pikku/inspector'
2
2
 
3
3
  export type RequiredTypes = Partial<{
4
4
  config: boolean
5
- sessionServiceType: boolean
5
+ wireServiceType: boolean
6
6
  singletonServicesType: boolean
7
7
  userSessionType: boolean
8
8
  singletonServicesFactory: boolean
9
- sessionServicesFactory: boolean
9
+ wireServicesFactory: boolean
10
10
  }>
11
11
 
12
12
  export const checkRequiredTypes = (
@@ -31,7 +31,7 @@ export const checkRequiredTypes = (
31
31
  return false
32
32
  }
33
33
  if (requires.config && message.includes('CoreConfig')) return true
34
- if (requires.sessionServiceType && message.includes('CoreServices'))
34
+ if (requires.wireServiceType && message.includes('CoreServices'))
35
35
  return true
36
36
  if (
37
37
  requires.singletonServicesType &&
@@ -45,10 +45,7 @@ export const checkRequiredTypes = (
45
45
  message.includes('CreateSingletonServices')
46
46
  )
47
47
  return true
48
- if (
49
- requires.sessionServicesFactory &&
50
- message.includes('CreateSessionServices')
51
- )
48
+ if (requires.wireServicesFactory && message.includes('CreateWireServices'))
52
49
  return true
53
50
  return false
54
51
  })
@@ -9,6 +9,8 @@ export interface CommandSummaryStats {
9
9
  mcpEndpoints?: number
10
10
  cliCommands?: number
11
11
  workflows?: number
12
+ forgeNodes?: number
13
+ workflowGraphs?: number
12
14
  [key: string]: number | undefined
13
15
  }
14
16
 
@@ -75,6 +77,8 @@ export class CommandSummary {
75
77
  mcpEndpoints: 'MCP endpoint',
76
78
  cliCommands: 'CLI command',
77
79
  workflows: 'Workflow',
80
+ forgeNodes: 'Forge node',
81
+ workflowGraphs: 'Workflow graph',
78
82
  }
79
83
 
80
84
  for (const [key, label] of Object.entries(statLabels)) {