@pikku/cli 0.11.3 → 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 (553) hide show
  1. package/cli.schema.json +1 -1
  2. package/console-app/android-chrome-192x192.png +0 -0
  3. package/console-app/android-chrome-512x512.png +0 -0
  4. package/console-app/apple-touch-icon.png +0 -0
  5. package/console-app/assets/index-0Ui5UudO.css +1 -0
  6. package/console-app/assets/index-C19L3UJu.js +637 -0
  7. package/console-app/favicon-16x16.png +0 -0
  8. package/console-app/favicon-32x32.png +0 -0
  9. package/console-app/favicon.ico +0 -0
  10. package/console-app/index.html +29 -0
  11. package/console-app/pikku-console-logo.png +0 -0
  12. package/console-app/site.webmanifest +19 -0
  13. package/console-app/wiring-icons/cron.svg +6 -0
  14. package/console-app/wiring-icons/function.png +0 -0
  15. package/console-app/wiring-icons/http.svg +2 -0
  16. package/console-app/wiring-icons/mcp.svg +1 -0
  17. package/console-app/wiring-icons/queue.svg +18 -0
  18. package/console-app/wiring-icons/sse.svg +5 -0
  19. package/console-app/wiring-icons/websocket.svg +8 -0
  20. package/dist/.pikku/agent/pikku-agent-types.gen.d.ts +19 -0
  21. package/dist/.pikku/agent/pikku-agent-types.gen.js +4 -0
  22. package/dist/.pikku/agent/pikku-agent-wirings-meta.gen.d.ts +1 -0
  23. package/dist/.pikku/agent/pikku-agent-wirings-meta.gen.js +6 -0
  24. package/dist/.pikku/agent/pikku-agent-wirings-meta.gen.json +3 -0
  25. package/dist/.pikku/agent/pikku-agent-wirings.gen.d.ts +4 -0
  26. package/dist/.pikku/agent/pikku-agent-wirings.gen.js +4 -0
  27. package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +27 -14
  28. package/dist/.pikku/channel/pikku-channel-types.gen.js +21 -4
  29. package/dist/.pikku/channel/pikku-channels-meta.gen.js +1 -1
  30. package/dist/.pikku/channel/pikku-channels.gen.d.ts +1 -1
  31. package/dist/.pikku/channel/pikku-channels.gen.js +1 -1
  32. package/dist/.pikku/cli/pikku-cli-channel.js +18 -3
  33. package/dist/.pikku/cli/pikku-cli-client.gen.d.ts +1 -1
  34. package/dist/.pikku/cli/pikku-cli-client.gen.js +1 -1
  35. package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +9 -1
  36. package/dist/.pikku/cli/pikku-cli-types.gen.js +12 -2
  37. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +1 -1
  38. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.json +43 -11
  39. package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +1 -1
  40. package/dist/.pikku/cli/pikku-cli-wirings.gen.js +1 -1
  41. package/dist/.pikku/cli/pikku-cli.gen.d.ts +1 -5
  42. package/dist/.pikku/cli/pikku-cli.gen.js +1 -5
  43. package/dist/.pikku/console/pikku-node-types.gen.d.ts +6 -0
  44. package/dist/.pikku/console/pikku-node-types.gen.js +1 -0
  45. package/dist/.pikku/function/pikku-function-types.gen.d.ts +71 -20
  46. package/dist/.pikku/function/pikku-function-types.gen.js +27 -3
  47. package/dist/.pikku/function/pikku-functions-meta.gen.js +1 -1
  48. package/dist/.pikku/function/pikku-functions-meta.gen.json +645 -195
  49. package/dist/.pikku/function/pikku-functions.gen.d.ts +1 -0
  50. package/dist/.pikku/function/pikku-functions.gen.js +119 -0
  51. package/dist/.pikku/http/pikku-http-types.gen.d.ts +55 -19
  52. package/dist/.pikku/http/pikku-http-types.gen.js +11 -2
  53. package/dist/.pikku/http/pikku-http-wirings-meta.gen.js +1 -1
  54. package/dist/.pikku/http/pikku-http-wirings.gen.d.ts +1 -1
  55. package/dist/.pikku/http/pikku-http-wirings.gen.js +1 -1
  56. package/dist/.pikku/mcp/pikku-mcp-types.gen.d.ts +26 -27
  57. package/dist/.pikku/mcp/pikku-mcp-types.gen.js +2 -12
  58. package/dist/.pikku/mcp/pikku-mcp-wirings-meta.gen.js +1 -1
  59. package/dist/.pikku/mcp/pikku-mcp-wirings.gen.d.ts +1 -1
  60. package/dist/.pikku/mcp/pikku-mcp-wirings.gen.js +2 -2
  61. package/dist/.pikku/node/pikku-node-types.gen.d.ts +1 -0
  62. package/dist/.pikku/node/pikku-node-types.gen.js +1 -0
  63. package/dist/.pikku/pikku-bootstrap.gen.d.ts +5 -4
  64. package/dist/.pikku/pikku-bootstrap.gen.js +13 -2
  65. package/dist/.pikku/pikku-services.gen.d.ts +5 -1
  66. package/dist/.pikku/pikku-services.gen.js +4 -0
  67. package/dist/.pikku/pikku-types.gen.d.ts +4 -2
  68. package/dist/.pikku/pikku-types.gen.js +7 -3
  69. package/dist/.pikku/pikku-websocket.gen.d.ts +1 -1
  70. package/dist/.pikku/pikku-websocket.gen.js +1 -1
  71. package/dist/.pikku/queue/pikku-queue-types.gen.d.ts +1 -1
  72. package/dist/.pikku/queue/pikku-queue-types.gen.js +2 -2
  73. package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.js +1 -1
  74. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.d.ts +1 -1
  75. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.js +1 -1
  76. package/dist/.pikku/rpc/pikku-remote-rpc-workers.gen.d.ts +3 -3
  77. package/dist/.pikku/rpc/pikku-remote-rpc-workers.gen.js +3 -3
  78. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.d.ts +1 -0
  79. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +6 -0
  80. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.json +61 -0
  81. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +1 -1
  82. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +2 -2
  83. package/dist/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.js +1 -1
  84. package/dist/.pikku/scheduler/pikku-schedulers-wirings.gen.d.ts +1 -1
  85. package/dist/.pikku/scheduler/pikku-schedulers-wirings.gen.js +1 -1
  86. package/dist/.pikku/schemas/register.gen.js +33 -19
  87. package/dist/.pikku/schemas/schemas/BootstrapInput.schema.json +1 -0
  88. package/dist/.pikku/schemas/schemas/ConsoleCommandInput.schema.json +1 -0
  89. package/dist/.pikku/schemas/schemas/PikkuAIAgentOutput.schema.json +1 -0
  90. package/dist/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +1 -1
  91. package/dist/.pikku/schemas/schemas/PikkuCLIOutput.schema.json +1 -1
  92. package/dist/.pikku/schemas/schemas/PikkuChannelsOutput.schema.json +1 -1
  93. package/dist/.pikku/schemas/schemas/PikkuConsoleFunctionsOutput.schema.json +1 -0
  94. package/dist/.pikku/schemas/schemas/PikkuFunctionsOutput.schema.json +1 -1
  95. package/dist/.pikku/schemas/schemas/PikkuHTTPOutput.schema.json +1 -1
  96. package/dist/.pikku/schemas/schemas/PikkuMCPOutput.schema.json +1 -1
  97. package/dist/.pikku/schemas/schemas/PikkuMiddlewareOutput.schema.json +1 -1
  98. package/dist/.pikku/schemas/schemas/PikkuNodesMetaOutput.schema.json +1 -0
  99. package/dist/.pikku/schemas/schemas/PikkuPackageOutput.schema.json +1 -1
  100. package/dist/.pikku/schemas/schemas/PikkuPermissionsOutput.schema.json +1 -1
  101. package/dist/.pikku/schemas/schemas/PikkuPublicAgentOutput.schema.json +1 -0
  102. package/dist/.pikku/schemas/schemas/PikkuPublicRPCOutput.schema.json +1 -1
  103. package/dist/.pikku/schemas/schemas/PikkuQueueOutput.schema.json +1 -1
  104. package/dist/.pikku/schemas/schemas/PikkuRPCOutput.schema.json +1 -1
  105. package/dist/.pikku/schemas/schemas/PikkuRemoteRPCOutput.schema.json +1 -1
  106. package/dist/.pikku/schemas/schemas/PikkuSchedulerOutput.schema.json +1 -1
  107. package/dist/.pikku/schemas/schemas/PikkuSchemasOutput.schema.json +1 -1
  108. package/dist/.pikku/schemas/schemas/PikkuTriggerOutput.schema.json +1 -0
  109. package/dist/.pikku/schemas/schemas/PikkuVersionsInitInput.schema.json +1 -0
  110. package/dist/.pikku/schemas/schemas/PikkuWorkflowOutput.schema.json +1 -1
  111. package/dist/.pikku/secrets/pikku-secret-types.gen.d.ts +5 -0
  112. package/dist/.pikku/secrets/pikku-secret-types.gen.js +4 -0
  113. package/dist/.pikku/secrets/pikku-secrets.gen.d.ts +11 -0
  114. package/dist/.pikku/secrets/pikku-secrets.gen.js +10 -0
  115. package/dist/.pikku/trigger/pikku-trigger-types.gen.d.ts +113 -0
  116. package/dist/.pikku/trigger/pikku-trigger-types.gen.js +33 -0
  117. package/dist/.pikku/variables/pikku-variable-types.gen.d.ts +5 -0
  118. package/dist/.pikku/variables/pikku-variable-types.gen.js +4 -0
  119. package/dist/.pikku/variables/pikku-variables.gen.d.ts +11 -0
  120. package/dist/.pikku/variables/pikku-variables.gen.js +10 -0
  121. package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +28 -180
  122. package/dist/.pikku/workflow/pikku-workflow-types.gen.js +18 -106
  123. package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +1 -1
  124. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.d.ts +1 -1
  125. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +1 -1
  126. package/dist/bin/pikku.js +20 -47
  127. package/dist/src/cli.wiring.js +29 -2
  128. package/dist/src/functions/commands/all.d.ts +1 -1
  129. package/dist/src/functions/commands/all.js +79 -176
  130. package/dist/src/functions/commands/bootstrap.d.ts +1 -1
  131. package/dist/src/functions/commands/bootstrap.js +13 -22
  132. package/dist/src/functions/commands/console.d.ts +7 -0
  133. package/dist/src/functions/commands/console.js +106 -0
  134. package/dist/src/functions/commands/pikku-command-bootstrap.d.ts +4 -0
  135. package/dist/src/functions/commands/pikku-command-bootstrap.js +67 -0
  136. package/dist/src/functions/commands/pikku-command-summary.d.ts +1 -0
  137. package/dist/src/functions/commands/pikku-command-summary.js +55 -0
  138. package/dist/src/functions/commands/versions-check.d.ts +1 -0
  139. package/dist/src/functions/commands/versions-check.js +17 -0
  140. package/dist/src/functions/commands/versions-init.d.ts +7 -0
  141. package/dist/src/functions/commands/versions-init.js +15 -0
  142. package/dist/src/functions/commands/versions-update.d.ts +1 -0
  143. package/dist/src/functions/commands/versions-update.js +20 -0
  144. package/dist/src/functions/commands/watch.d.ts +1 -1
  145. package/dist/src/functions/commands/watch.js +4 -5
  146. package/dist/src/functions/runtimes/fetch/index.d.ts +1 -0
  147. package/dist/src/functions/{wirings → runtimes}/fetch/index.js +3 -3
  148. package/dist/src/functions/runtimes/nextjs/pikku-command-nextjs.d.ts +1 -1
  149. package/dist/src/functions/runtimes/nextjs/pikku-command-nextjs.js +6 -7
  150. package/dist/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.d.ts +1 -1
  151. package/dist/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.js +8 -16
  152. package/dist/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.js +4 -8
  153. package/dist/src/functions/runtimes/websocket/pikku-command-websocket-typed.d.ts +1 -0
  154. package/dist/src/functions/{wirings/channels → runtimes/websocket}/pikku-command-websocket-typed.js +2 -2
  155. package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent-types.d.ts +1 -0
  156. package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent-types.js +19 -0
  157. package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent.d.ts +1 -0
  158. package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent.js +68 -0
  159. package/dist/src/functions/wirings/ai-agent/pikku-command-public-agent.d.ts +1 -0
  160. package/dist/src/functions/wirings/ai-agent/pikku-command-public-agent.js +23 -0
  161. package/dist/src/functions/wirings/ai-agent/serialize-agent-map.d.ts +4 -0
  162. package/dist/src/functions/wirings/ai-agent/serialize-agent-map.js +48 -0
  163. package/dist/src/functions/wirings/ai-agent/serialize-ai-agent-types.d.ts +1 -0
  164. package/dist/src/functions/wirings/ai-agent/serialize-ai-agent-types.js +31 -0
  165. package/dist/src/functions/wirings/ai-agent/serialize-public-agent.d.ts +1 -0
  166. package/dist/src/functions/wirings/ai-agent/serialize-public-agent.js +90 -0
  167. package/dist/src/functions/wirings/channels/pikku-channels.d.ts +1 -1
  168. package/dist/src/functions/wirings/channels/pikku-channels.js +1 -1
  169. package/dist/src/functions/wirings/channels/pikku-command-channel-types.d.ts +1 -1
  170. package/dist/src/functions/wirings/channels/pikku-command-channel-types.js +3 -3
  171. package/dist/src/functions/wirings/channels/pikku-command-channels-map.d.ts +1 -1
  172. package/dist/src/functions/wirings/channels/pikku-command-channels-map.js +2 -2
  173. package/dist/src/functions/wirings/channels/pikku-command-channels.d.ts +1 -1
  174. package/dist/src/functions/wirings/channels/pikku-command-channels.js +1 -1
  175. package/dist/src/functions/wirings/channels/serialize-channel-types.d.ts +1 -1
  176. package/dist/src/functions/wirings/channels/serialize-channel-types.js +47 -17
  177. package/dist/src/functions/wirings/channels/serialize-typed-channel-map.d.ts +2 -1
  178. package/dist/src/functions/wirings/channels/serialize-typed-channel-map.js +8 -8
  179. package/dist/src/functions/wirings/cli/pikku-command-cli-entry.d.ts +1 -1
  180. package/dist/src/functions/wirings/cli/pikku-command-cli-entry.js +3 -7
  181. package/dist/src/functions/wirings/cli/pikku-command-cli-types.d.ts +1 -1
  182. package/dist/src/functions/wirings/cli/pikku-command-cli-types.js +1 -1
  183. package/dist/src/functions/wirings/cli/pikku-command-cli.d.ts +1 -1
  184. package/dist/src/functions/wirings/cli/pikku-command-cli.js +1 -1
  185. package/dist/src/functions/wirings/cli/serialize-channel-cli.js +8 -8
  186. package/dist/src/functions/wirings/cli/serialize-cli-types.js +14 -1
  187. package/dist/src/functions/wirings/cli/serialize-local-cli-bootstrap.d.ts +2 -2
  188. package/dist/src/functions/wirings/cli/serialize-local-cli-bootstrap.js +10 -11
  189. package/dist/src/functions/wirings/console/pikku-command-console-functions.d.ts +1 -0
  190. package/dist/src/functions/wirings/console/pikku-command-console-functions.js +23 -0
  191. package/dist/src/functions/wirings/console/pikku-command-node-types.d.ts +1 -0
  192. package/dist/src/functions/wirings/console/pikku-command-node-types.js +21 -0
  193. package/dist/src/functions/wirings/console/pikku-command-nodes-meta.d.ts +1 -0
  194. package/dist/src/functions/wirings/console/pikku-command-nodes-meta.js +79 -0
  195. package/dist/src/functions/wirings/console/serialize-console-functions.d.ts +1 -0
  196. package/dist/src/functions/wirings/console/serialize-console-functions.js +229 -0
  197. package/dist/src/functions/wirings/console/serialize-node-types.d.ts +1 -0
  198. package/dist/src/functions/wirings/console/serialize-node-types.js +11 -0
  199. package/dist/src/functions/wirings/functions/pikku-command-external-types.d.ts +1 -0
  200. package/dist/src/functions/wirings/functions/pikku-command-external-types.js +33 -0
  201. package/dist/src/functions/wirings/functions/pikku-command-function-types-split.d.ts +1 -1
  202. package/dist/src/functions/wirings/functions/pikku-command-function-types-split.js +2 -2
  203. package/dist/src/functions/wirings/functions/pikku-command-function-types.d.ts +1 -1
  204. package/dist/src/functions/wirings/functions/pikku-command-function-types.js +5 -5
  205. package/dist/src/functions/wirings/functions/pikku-command-functions.d.ts +1 -1
  206. package/dist/src/functions/wirings/functions/pikku-command-functions.js +1 -1
  207. package/dist/src/functions/wirings/functions/pikku-command-services.d.ts +1 -1
  208. package/dist/src/functions/wirings/functions/pikku-command-services.js +1 -1
  209. package/dist/src/functions/wirings/functions/schemas.d.ts +1 -4
  210. package/dist/src/functions/wirings/functions/schemas.js +8 -10
  211. package/dist/src/functions/wirings/functions/serialize-external-types.d.ts +1 -0
  212. package/dist/src/functions/wirings/functions/serialize-external-types.js +77 -0
  213. package/dist/src/functions/wirings/functions/serialize-function-imports.d.ts +1 -2
  214. package/dist/src/functions/wirings/functions/serialize-function-imports.js +10 -17
  215. package/dist/src/functions/wirings/functions/serialize-function-types.d.ts +1 -1
  216. package/dist/src/functions/wirings/functions/serialize-function-types.js +99 -32
  217. package/dist/src/functions/wirings/functions/serialize-pikku-types-hub.d.ts +1 -1
  218. package/dist/src/functions/wirings/functions/serialize-pikku-types-hub.js +5 -2
  219. package/dist/src/functions/wirings/http/pikku-command-http-map.d.ts +1 -1
  220. package/dist/src/functions/wirings/http/pikku-command-http-map.js +4 -4
  221. package/dist/src/functions/wirings/http/pikku-command-http-routes.d.ts +1 -1
  222. package/dist/src/functions/wirings/http/pikku-command-http-routes.js +1 -1
  223. package/dist/src/functions/wirings/http/pikku-command-http-types.d.ts +1 -1
  224. package/dist/src/functions/wirings/http/pikku-command-http-types.js +1 -1
  225. package/dist/src/functions/wirings/http/pikku-command-openapi.d.ts +1 -1
  226. package/dist/src/functions/wirings/http/pikku-command-openapi.js +11 -9
  227. package/dist/src/functions/wirings/http/pikku-http-routes.d.ts +1 -1
  228. package/dist/src/functions/wirings/http/pikku-http-routes.js +2 -2
  229. package/dist/src/functions/wirings/http/serialize-http-types.js +65 -20
  230. package/dist/src/functions/wirings/http/serialize-typed-http-map.d.ts +5 -2
  231. package/dist/src/functions/wirings/http/serialize-typed-http-map.js +33 -46
  232. package/dist/src/functions/wirings/mcp/pikku-command-mcp-json.d.ts +1 -1
  233. package/dist/src/functions/wirings/mcp/pikku-command-mcp-json.js +5 -6
  234. package/dist/src/functions/wirings/mcp/pikku-command-mcp-types.d.ts +1 -1
  235. package/dist/src/functions/wirings/mcp/pikku-command-mcp-types.js +1 -1
  236. package/dist/src/functions/wirings/mcp/pikku-command-mcp.d.ts +1 -1
  237. package/dist/src/functions/wirings/mcp/pikku-command-mcp.js +13 -4
  238. package/dist/src/functions/wirings/mcp/serialize-mcp-types.js +27 -36
  239. package/dist/src/functions/wirings/middleware/pikku-command-middleware.d.ts +1 -1
  240. package/dist/src/functions/wirings/middleware/pikku-command-middleware.js +11 -34
  241. package/dist/src/functions/wirings/middleware/serialize-middleware-imports.js +19 -24
  242. package/dist/src/functions/wirings/package/pikku-command-package-types.d.ts +2 -0
  243. package/dist/src/functions/wirings/package/pikku-command-package-types.js +30 -0
  244. package/dist/src/functions/wirings/package/pikku-command-package.d.ts +1 -1
  245. package/dist/src/functions/wirings/package/pikku-command-package.js +3 -3
  246. package/dist/src/functions/wirings/package/serialize-package-types.d.ts +2 -0
  247. package/dist/src/functions/wirings/package/serialize-package-types.js +10 -0
  248. package/dist/src/functions/wirings/permissions/pikku-command-permissions.d.ts +1 -1
  249. package/dist/src/functions/wirings/permissions/pikku-command-permissions.js +10 -5
  250. package/dist/src/functions/wirings/queue/pikku-command-queue-map.d.ts +1 -1
  251. package/dist/src/functions/wirings/queue/pikku-command-queue-map.js +3 -3
  252. package/dist/src/functions/wirings/queue/pikku-command-queue-service.d.ts +1 -1
  253. package/dist/src/functions/wirings/queue/pikku-command-queue-service.js +2 -2
  254. package/dist/src/functions/wirings/queue/pikku-command-queue-types.d.ts +1 -1
  255. package/dist/src/functions/wirings/queue/pikku-command-queue-types.js +1 -1
  256. package/dist/src/functions/wirings/queue/pikku-command-queue.d.ts +1 -1
  257. package/dist/src/functions/wirings/queue/pikku-command-queue.js +1 -1
  258. package/dist/src/functions/wirings/queue/pikku-queue-map.d.ts +1 -1
  259. package/dist/src/functions/wirings/queue/pikku-queue-map.js +3 -3
  260. package/dist/src/functions/wirings/queue/pikku-queue.d.ts +1 -1
  261. package/dist/src/functions/wirings/queue/pikku-queue.js +1 -1
  262. package/dist/src/functions/wirings/queue/serialize-queue-map.d.ts +5 -2
  263. package/dist/src/functions/wirings/queue/serialize-queue-map.js +12 -40
  264. package/dist/src/functions/wirings/queue/serialize-queue-meta.js +9 -10
  265. package/dist/src/functions/wirings/queue/serialize-queue-types.js +1 -1
  266. package/dist/src/functions/wirings/rpc/pikku-command-public-rpc.d.ts +1 -1
  267. package/dist/src/functions/wirings/rpc/pikku-command-public-rpc.js +2 -2
  268. package/dist/src/functions/wirings/rpc/pikku-command-remote-rpc.d.ts +1 -1
  269. package/dist/src/functions/wirings/rpc/pikku-command-remote-rpc.js +1 -1
  270. package/dist/src/functions/wirings/rpc/pikku-command-rpc-client.d.ts +1 -1
  271. package/dist/src/functions/wirings/rpc/pikku-command-rpc-client.js +2 -2
  272. package/dist/src/functions/wirings/rpc/pikku-command-rpc-map.d.ts +2 -2
  273. package/dist/src/functions/wirings/rpc/pikku-command-rpc-map.js +12 -7
  274. package/dist/src/functions/wirings/rpc/pikku-command-rpc.d.ts +1 -1
  275. package/dist/src/functions/wirings/rpc/pikku-command-rpc.js +5 -2
  276. package/dist/src/functions/wirings/rpc/serialize-public-rpc.d.ts +1 -1
  277. package/dist/src/functions/wirings/rpc/serialize-public-rpc.js +11 -6
  278. package/dist/src/functions/wirings/rpc/serialize-remote-rpc.js +2 -2
  279. package/dist/src/functions/wirings/rpc/serialize-rpc-wrapper.js +19 -8
  280. package/dist/src/functions/wirings/rpc/serialize-typed-rpc-map.d.ts +6 -3
  281. package/dist/src/functions/wirings/rpc/serialize-typed-rpc-map.js +85 -60
  282. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler-types.d.ts +1 -1
  283. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler-types.js +1 -1
  284. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler.d.ts +1 -1
  285. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler.js +1 -1
  286. package/dist/src/functions/wirings/scheduler/serialize-scheduler-meta.d.ts +1 -1
  287. package/dist/src/functions/wirings/scheduler/serialize-scheduler-meta.js +13 -12
  288. package/dist/src/functions/wirings/scheduler/serialize-scheduler-types.js +1 -1
  289. package/dist/src/functions/wirings/secrets/pikku-command-secrets.d.ts +1 -0
  290. package/dist/src/functions/wirings/secrets/pikku-command-secrets.js +31 -0
  291. package/dist/src/functions/wirings/secrets/serialize-secrets-types.d.ts +9 -0
  292. package/dist/src/functions/wirings/secrets/serialize-secrets-types.js +64 -0
  293. package/dist/src/functions/wirings/triggers/pikku-command-trigger-types.d.ts +1 -0
  294. package/dist/src/functions/wirings/triggers/pikku-command-trigger-types.js +24 -0
  295. package/dist/src/functions/wirings/triggers/pikku-command-trigger.d.ts +1 -0
  296. package/dist/src/functions/wirings/triggers/pikku-command-trigger.js +40 -0
  297. package/dist/src/functions/wirings/triggers/serialize-trigger-meta.d.ts +5 -0
  298. package/dist/src/functions/wirings/triggers/serialize-trigger-meta.js +35 -0
  299. package/dist/src/functions/wirings/triggers/serialize-trigger-types.d.ts +4 -0
  300. package/dist/src/functions/wirings/triggers/serialize-trigger-types.js +163 -0
  301. package/dist/src/functions/wirings/variables/pikku-command-variables.d.ts +1 -0
  302. package/dist/src/functions/wirings/variables/pikku-command-variables.js +31 -0
  303. package/dist/src/functions/wirings/variables/serialize-variables-types.d.ts +9 -0
  304. package/dist/src/functions/wirings/variables/serialize-variables-types.js +53 -0
  305. package/dist/src/functions/wirings/workflow/pikku-command-workflow.d.ts +1 -1
  306. package/dist/src/functions/wirings/workflow/pikku-command-workflow.js +6 -35
  307. package/dist/src/functions/wirings/workflow/serialize-workflow-map.d.ts +4 -2
  308. package/dist/src/functions/wirings/workflow/serialize-workflow-map.js +63 -12
  309. package/dist/src/functions/wirings/workflow/serialize-workflow-meta.js +32 -33
  310. package/dist/src/functions/wirings/workflow/serialize-workflow-registration.d.ts +1 -1
  311. package/dist/src/functions/wirings/workflow/serialize-workflow-registration.js +4 -31
  312. package/dist/src/functions/wirings/workflow/serialize-workflow-types.d.ts +1 -6
  313. package/dist/src/functions/wirings/workflow/serialize-workflow-types.js +60 -256
  314. package/dist/src/functions/wirings/workflow/serialize-workflow-workers.js +5 -5
  315. package/dist/src/services/cli-logger-forwarder.service.d.ts +1 -1
  316. package/dist/src/services/cli-logger-forwarder.service.js +1 -1
  317. package/dist/src/services/cli-logger.service.d.ts +1 -1
  318. package/dist/src/services/cli-logger.service.js +1 -1
  319. package/dist/src/services.d.ts +1 -1
  320. package/dist/src/services.js +53 -6
  321. package/dist/src/utils/command-summary.d.ts +2 -1
  322. package/dist/src/utils/command-summary.js +2 -1
  323. package/dist/src/utils/contract-versions.d.ts +6 -0
  324. package/dist/src/utils/contract-versions.js +25 -0
  325. package/dist/src/utils/file-import-path.js +20 -6
  326. package/dist/src/utils/pikku-cli-config.js +77 -14
  327. package/dist/src/utils/pikku-files-and-methods.d.ts +0 -1
  328. package/dist/src/utils/pikku-files-and-methods.js +15 -60
  329. package/dist/src/utils/serialize-import-map.d.ts +2 -1
  330. package/dist/src/utils/serialize-import-map.js +3 -54
  331. package/dist/src/utils/serialize-meta-ts.d.ts +8 -0
  332. package/dist/src/utils/serialize-meta-ts.js +12 -0
  333. package/dist/src/utils/serialize-schemas.d.ts +3 -0
  334. package/dist/src/utils/serialize-schemas.js +38 -0
  335. package/dist/src/utils/strip-verbose-meta.d.ts +5 -5
  336. package/dist/src/utils/strip-verbose-meta.js +15 -15
  337. package/dist/tsconfig.tsbuildinfo +1 -1
  338. package/package.json +19 -10
  339. package/.pikku/channel/pikku-channel-types.gen.ts +0 -148
  340. package/.pikku/channel/pikku-channels-map.gen.d.ts +0 -47
  341. package/.pikku/channel/pikku-channels-meta.gen.json +0 -1
  342. package/.pikku/channel/pikku-channels-meta.gen.ts +0 -7
  343. package/.pikku/channel/pikku-channels.gen.ts +0 -4
  344. package/.pikku/cli/pikku-cli-channel.ts +0 -92
  345. package/.pikku/cli/pikku-cli-client.gen.ts +0 -54
  346. package/.pikku/cli/pikku-cli-types.gen.ts +0 -92
  347. package/.pikku/cli/pikku-cli-wirings-meta.gen.json +0 -147
  348. package/.pikku/cli/pikku-cli-wirings-meta.gen.ts +0 -7
  349. package/.pikku/cli/pikku-cli-wirings.gen.ts +0 -6
  350. package/.pikku/cli/pikku-cli.gen.ts +0 -41
  351. package/.pikku/forge/pikku-forge-types.gen.ts +0 -83
  352. package/.pikku/function/pikku-function-types.gen.ts +0 -572
  353. package/.pikku/function/pikku-functions-meta-verbose.gen.json +0 -1030
  354. package/.pikku/function/pikku-functions-meta.gen.json +0 -656
  355. package/.pikku/function/pikku-functions-meta.gen.ts +0 -6
  356. package/.pikku/http/pikku-http-types.gen.ts +0 -102
  357. package/.pikku/http/pikku-http-wirings-map.gen.d.ts +0 -46
  358. package/.pikku/http/pikku-http-wirings-meta.gen.json +0 -9
  359. package/.pikku/http/pikku-http-wirings-meta.gen.ts +0 -7
  360. package/.pikku/http/pikku-http-wirings.gen.ts +0 -4
  361. package/.pikku/mcp/pikku-mcp-types.gen.ts +0 -192
  362. package/.pikku/mcp/pikku-mcp-wirings-meta.gen.json +0 -5
  363. package/.pikku/mcp/pikku-mcp-wirings-meta.gen.ts +0 -9
  364. package/.pikku/mcp/pikku-mcp-wirings.gen.ts +0 -4
  365. package/.pikku/mcp/pikku-mcp.gen.json +0 -5
  366. package/.pikku/pikku-bootstrap.gen.ts +0 -17
  367. package/.pikku/pikku-services.gen.ts +0 -28
  368. package/.pikku/pikku-types.gen.ts +0 -30
  369. package/.pikku/pikku-websocket.gen.ts +0 -90
  370. package/.pikku/queue/pikku-queue-types.gen.ts +0 -27
  371. package/.pikku/queue/pikku-queue-workers-wirings-map.gen.d.ts +0 -60
  372. package/.pikku/queue/pikku-queue-workers-wirings-meta.gen.json +0 -1
  373. package/.pikku/queue/pikku-queue-workers-wirings-meta.gen.ts +0 -8
  374. package/.pikku/queue/pikku-queue-workers-wirings.gen.ts +0 -4
  375. package/.pikku/rpc/pikku-remote-rpc-workers.gen.ts +0 -30
  376. package/.pikku/rpc/pikku-rpc-wirings-map.gen.d.ts +0 -62
  377. package/.pikku/rpc/pikku-rpc-wirings-map.internal.gen.d.ts +0 -105
  378. package/.pikku/scheduler/pikku-scheduler-types.gen.ts +0 -25
  379. package/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.json +0 -1
  380. package/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.ts +0 -8
  381. package/.pikku/scheduler/pikku-schedulers-wirings.gen.ts +0 -4
  382. package/.pikku/schemas/register.gen.ts +0 -71
  383. package/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +0 -1
  384. package/.pikku/schemas/schemas/PikkuCLIOutput.schema.json +0 -1
  385. package/.pikku/schemas/schemas/PikkuChannelsOutput.schema.json +0 -1
  386. package/.pikku/schemas/schemas/PikkuForgeNodesOutput.schema.json +0 -1
  387. package/.pikku/schemas/schemas/PikkuFunctionsOutput.schema.json +0 -1
  388. package/.pikku/schemas/schemas/PikkuHTTPOutput.schema.json +0 -1
  389. package/.pikku/schemas/schemas/PikkuMCPOutput.schema.json +0 -1
  390. package/.pikku/schemas/schemas/PikkuMiddlewareOutput.schema.json +0 -1
  391. package/.pikku/schemas/schemas/PikkuPackageOutput.schema.json +0 -1
  392. package/.pikku/schemas/schemas/PikkuPermissionsOutput.schema.json +0 -1
  393. package/.pikku/schemas/schemas/PikkuPublicRPCOutput.schema.json +0 -1
  394. package/.pikku/schemas/schemas/PikkuQueueOutput.schema.json +0 -1
  395. package/.pikku/schemas/schemas/PikkuRPCOutput.schema.json +0 -1
  396. package/.pikku/schemas/schemas/PikkuRemoteRPCOutput.schema.json +0 -1
  397. package/.pikku/schemas/schemas/PikkuSchedulerOutput.schema.json +0 -1
  398. package/.pikku/schemas/schemas/PikkuSchemasOutput.schema.json +0 -1
  399. package/.pikku/schemas/schemas/PikkuWorkflowOutput.schema.json +0 -1
  400. package/.pikku/services/config.gen.json +0 -104
  401. package/.pikku/services/getInspectorState.gen.json +0 -10
  402. package/.pikku/services/jwt.gen.json +0 -13
  403. package/.pikku/services/logger.gen.json +0 -25
  404. package/.pikku/services/queueService.gen.json +0 -14
  405. package/.pikku/services/schedulerService.gen.json +0 -17
  406. package/.pikku/services/schema.gen.json +0 -14
  407. package/.pikku/services/secrets.gen.json +0 -13
  408. package/.pikku/services/variables.gen.json +0 -13
  409. package/.pikku/services/workflowService.gen.json +0 -31
  410. package/.pikku/workflow/pikku-workflow-map.gen.d.ts +0 -28
  411. package/.pikku/workflow/pikku-workflow-types.gen.ts +0 -349
  412. package/.pikku/workflow/pikku-workflow-wirings-meta.gen.ts +0 -9
  413. package/.pikku/workflow/pikku-workflow-wirings.gen.ts +0 -3
  414. package/CHANGELOG.md +0 -957
  415. package/bin/pikku.ts +0 -88
  416. package/build.sh +0 -75
  417. package/dist/.pikku/forge/pikku-forge-types.gen.d.ts +0 -72
  418. package/dist/.pikku/forge/pikku-forge-types.gen.js +0 -55
  419. package/dist/.pikku/schemas/schemas/PikkuForgeNodesOutput.schema.json +0 -1
  420. package/dist/src/functions/wirings/channels/pikku-command-websocket-typed.d.ts +0 -1
  421. package/dist/src/functions/wirings/fetch/index.d.ts +0 -1
  422. package/dist/src/functions/wirings/forge/pikku-command-forge-nodes.d.ts +0 -1
  423. package/dist/src/functions/wirings/forge/pikku-command-forge-nodes.js +0 -90
  424. package/dist/src/functions/wirings/forge/pikku-command-forge-types.d.ts +0 -1
  425. package/dist/src/functions/wirings/forge/pikku-command-forge-types.js +0 -26
  426. package/dist/src/functions/wirings/forge/serialize-forge-types.d.ts +0 -4
  427. package/dist/src/functions/wirings/forge/serialize-forge-types.js +0 -90
  428. package/dist/src/functions/wirings/functions/pikku-function-types.d.ts +0 -1
  429. package/dist/src/functions/wirings/functions/pikku-function-types.js +0 -18
  430. package/dist/src/functions/wirings/http/openapi-spec-generator.d.ts +0 -81
  431. package/dist/src/functions/wirings/http/openapi-spec-generator.js +0 -152
  432. package/dist/src/functions/wirings/mcp/serialize-mcp-json.d.ts +0 -5
  433. package/dist/src/functions/wirings/mcp/serialize-mcp-json.js +0 -102
  434. package/dist/src/functions/wirings/middleware/serialize-middleware-groups-meta.d.ts +0 -11
  435. package/dist/src/functions/wirings/middleware/serialize-middleware-groups-meta.js +0 -36
  436. package/dist/src/functions/wirings/services/pikku-command-service-metadata.d.ts +0 -1
  437. package/dist/src/functions/wirings/services/pikku-command-service-metadata.js +0 -22
  438. package/dist/src/utils/custom-types-generator.d.ts +0 -2
  439. package/dist/src/utils/custom-types-generator.js +0 -41
  440. package/dist/src/utils/schema-generator.d.ts +0 -7
  441. package/dist/src/utils/schema-generator.js +0 -238
  442. package/pikku.config.json +0 -29
  443. package/run-tests.sh +0 -53
  444. package/src/cli.wiring.ts +0 -112
  445. package/src/functions/commands/all.ts +0 -313
  446. package/src/functions/commands/bootstrap.ts +0 -35
  447. package/src/functions/commands/watch.ts +0 -61
  448. package/src/functions/runtimes/nextjs/pikku-command-nextjs.ts +0 -131
  449. package/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.ts +0 -282
  450. package/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.ts +0 -215
  451. package/src/functions/wirings/channels/pikku-channels.ts +0 -59
  452. package/src/functions/wirings/channels/pikku-command-channel-types.ts +0 -25
  453. package/src/functions/wirings/channels/pikku-command-channels-map.ts +0 -26
  454. package/src/functions/wirings/channels/pikku-command-channels.ts +0 -83
  455. package/src/functions/wirings/channels/pikku-command-websocket-typed.ts +0 -37
  456. package/src/functions/wirings/channels/serialize-channel-types.ts +0 -151
  457. package/src/functions/wirings/channels/serialize-typed-channel-map.ts +0 -173
  458. package/src/functions/wirings/channels/serialize-websocket-wrapper.ts +0 -89
  459. package/src/functions/wirings/cli/pikku-command-cli-entry.ts +0 -216
  460. package/src/functions/wirings/cli/pikku-command-cli-types.ts +0 -48
  461. package/src/functions/wirings/cli/pikku-command-cli.ts +0 -81
  462. package/src/functions/wirings/cli/serialize-channel-cli-client.ts +0 -184
  463. package/src/functions/wirings/cli/serialize-channel-cli.ts +0 -134
  464. package/src/functions/wirings/cli/serialize-cli-types.ts +0 -101
  465. package/src/functions/wirings/cli/serialize-local-cli-bootstrap.ts +0 -80
  466. package/src/functions/wirings/fetch/index.ts +0 -36
  467. package/src/functions/wirings/forge/pikku-command-forge-nodes.ts +0 -135
  468. package/src/functions/wirings/forge/pikku-command-forge-types.ts +0 -38
  469. package/src/functions/wirings/forge/serialize-forge-types.ts +0 -94
  470. package/src/functions/wirings/functions/pikku-command-function-types-split.ts +0 -61
  471. package/src/functions/wirings/functions/pikku-command-function-types.ts +0 -50
  472. package/src/functions/wirings/functions/pikku-command-functions.ts +0 -104
  473. package/src/functions/wirings/functions/pikku-command-services.ts +0 -140
  474. package/src/functions/wirings/functions/pikku-function-types.ts +0 -45
  475. package/src/functions/wirings/functions/schemas.ts +0 -56
  476. package/src/functions/wirings/functions/serialize-function-imports.ts +0 -80
  477. package/src/functions/wirings/functions/serialize-function-types.ts +0 -587
  478. package/src/functions/wirings/functions/serialize-pikku-types-hub.ts +0 -39
  479. package/src/functions/wirings/http/openapi-spec-generator.ts +0 -265
  480. package/src/functions/wirings/http/pikku-command-http-map.ts +0 -27
  481. package/src/functions/wirings/http/pikku-command-http-routes.ts +0 -80
  482. package/src/functions/wirings/http/pikku-command-http-types.ts +0 -25
  483. package/src/functions/wirings/http/pikku-command-openapi.ts +0 -64
  484. package/src/functions/wirings/http/pikku-http-routes.ts +0 -61
  485. package/src/functions/wirings/http/serialize-fetch-wrapper.ts +0 -67
  486. package/src/functions/wirings/http/serialize-http-types.ts +0 -105
  487. package/src/functions/wirings/http/serialize-typed-http-map.ts +0 -178
  488. package/src/functions/wirings/mcp/pikku-command-mcp-json.ts +0 -33
  489. package/src/functions/wirings/mcp/pikku-command-mcp-types.ts +0 -25
  490. package/src/functions/wirings/mcp/pikku-command-mcp.ts +0 -162
  491. package/src/functions/wirings/mcp/serialize-mcp-json.ts +0 -161
  492. package/src/functions/wirings/mcp/serialize-mcp-types.ts +0 -195
  493. package/src/functions/wirings/middleware/pikku-command-middleware.ts +0 -89
  494. package/src/functions/wirings/middleware/serialize-middleware-groups-meta.ts +0 -40
  495. package/src/functions/wirings/middleware/serialize-middleware-imports.ts +0 -78
  496. package/src/functions/wirings/package/pikku-command-package.ts +0 -81
  497. package/src/functions/wirings/package/serialize-package.ts +0 -69
  498. package/src/functions/wirings/permissions/pikku-command-permissions.ts +0 -49
  499. package/src/functions/wirings/permissions/serialize-permissions-imports.test.ts +0 -274
  500. package/src/functions/wirings/permissions/serialize-permissions-imports.ts +0 -78
  501. package/src/functions/wirings/queue/pikku-command-queue-map.ts +0 -26
  502. package/src/functions/wirings/queue/pikku-command-queue-service.ts +0 -37
  503. package/src/functions/wirings/queue/pikku-command-queue-types.ts +0 -25
  504. package/src/functions/wirings/queue/pikku-command-queue.ts +0 -86
  505. package/src/functions/wirings/queue/pikku-queue-map.ts +0 -26
  506. package/src/functions/wirings/queue/pikku-queue.ts +0 -66
  507. package/src/functions/wirings/queue/serialize-queue-map.ts +0 -134
  508. package/src/functions/wirings/queue/serialize-queue-meta.ts +0 -24
  509. package/src/functions/wirings/queue/serialize-queue-types.ts +0 -30
  510. package/src/functions/wirings/queue/serialize-queue-wrapper.ts +0 -35
  511. package/src/functions/wirings/rpc/pikku-command-public-rpc.ts +0 -32
  512. package/src/functions/wirings/rpc/pikku-command-remote-rpc.ts +0 -35
  513. package/src/functions/wirings/rpc/pikku-command-rpc-client.ts +0 -35
  514. package/src/functions/wirings/rpc/pikku-command-rpc-map.ts +0 -51
  515. package/src/functions/wirings/rpc/pikku-command-rpc.ts +0 -49
  516. package/src/functions/wirings/rpc/serialize-public-rpc.ts +0 -37
  517. package/src/functions/wirings/rpc/serialize-remote-rpc.ts +0 -33
  518. package/src/functions/wirings/rpc/serialize-rpc-wrapper.ts +0 -68
  519. package/src/functions/wirings/rpc/serialize-typed-rpc-map.ts +0 -194
  520. package/src/functions/wirings/scheduler/pikku-command-scheduler-types.ts +0 -25
  521. package/src/functions/wirings/scheduler/pikku-command-scheduler.ts +0 -88
  522. package/src/functions/wirings/scheduler/serialize-scheduler-meta.ts +0 -37
  523. package/src/functions/wirings/scheduler/serialize-scheduler-types.ts +0 -28
  524. package/src/functions/wirings/services/pikku-command-service-metadata.ts +0 -25
  525. package/src/functions/wirings/workflow/pikku-command-workflow.ts +0 -218
  526. package/src/functions/wirings/workflow/serialize-workflow-map.ts +0 -121
  527. package/src/functions/wirings/workflow/serialize-workflow-meta.ts +0 -73
  528. package/src/functions/wirings/workflow/serialize-workflow-registration.ts +0 -83
  529. package/src/functions/wirings/workflow/serialize-workflow-types.ts +0 -357
  530. package/src/functions/wirings/workflow/serialize-workflow-workers.ts +0 -47
  531. package/src/middleware/log-command-info-and-time.ts +0 -35
  532. package/src/services/cli-logger-forwarder.service.ts +0 -99
  533. package/src/services/cli-logger.service.ts +0 -108
  534. package/src/services.ts +0 -322
  535. package/src/utils/check-required-types.ts +0 -65
  536. package/src/utils/command-summary.ts +0 -107
  537. package/src/utils/custom-types-generator.ts +0 -55
  538. package/src/utils/file-import-path.test.ts +0 -175
  539. package/src/utils/file-import-path.ts +0 -53
  540. package/src/utils/file-imports-serializer.ts +0 -25
  541. package/src/utils/file-writer.ts +0 -72
  542. package/src/utils/generate-bootstrap-file.ts +0 -43
  543. package/src/utils/get-cli-version.ts +0 -28
  544. package/src/utils/pikku-cli-config.ts +0 -495
  545. package/src/utils/pikku-files-and-methods.ts +0 -145
  546. package/src/utils/schema-generator.ts +0 -335
  547. package/src/utils/serialize-import-map.ts +0 -102
  548. package/src/utils/strip-verbose-meta.ts +0 -254
  549. package/tsconfig.json +0 -21
  550. package/types/application-types.d.ts +0 -27
  551. package/types/config.d.ts +0 -304
  552. /package/dist/src/functions/{wirings/channels → runtimes/websocket}/serialize-websocket-wrapper.d.ts +0 -0
  553. /package/dist/src/functions/{wirings/channels → runtimes/websocket}/serialize-websocket-wrapper.js +0 -0
@@ -1,31 +1,41 @@
1
1
  import { serializeImportMap } from '../../../utils/serialize-import-map.js';
2
- import { generateCustomTypes } from '../../../utils/custom-types-generator.js';
3
- export const serializeWorkflowMap = (relativeToPath, packageMappings, typesMap, functionsMeta, workflowsMeta) => {
2
+ import { generateCustomTypes } from '@pikku/inspector';
3
+ import { parseVersionedId } from '@pikku/core';
4
+ export const serializeWorkflowMap = (logger, relativeToPath, packageMappings, typesMap, functionsMeta, workflowsMeta, graphMeta) => {
4
5
  const requiredTypes = new Set();
5
- // First generate workflows to collect required types
6
6
  const serializedWorkflows = generateWorkflows(workflowsMeta, functionsMeta, typesMap, requiredTypes);
7
- // Only generate custom types if we have workflows with types
8
- const hasWorkflows = Object.keys(workflowsMeta).length > 0;
9
- const serializedCustomTypes = hasWorkflows
7
+ const serializedGraphs = generateGraphs(graphMeta, functionsMeta, typesMap, requiredTypes);
8
+ const hasAny = Object.keys(workflowsMeta).length > 0 || Object.keys(graphMeta).length > 0;
9
+ const serializedCustomTypes = hasAny
10
10
  ? generateCustomTypes(typesMap, requiredTypes)
11
11
  : '';
12
- const serializedImportMap = hasWorkflows
13
- ? serializeImportMap(relativeToPath, packageMappings, typesMap, requiredTypes)
12
+ const serializedImportMap = hasAny
13
+ ? serializeImportMap(logger, relativeToPath, packageMappings, typesMap, requiredTypes)
14
14
  : '';
15
+ const serializedCustomTypesDeclarationsOnly = serializedCustomTypes
16
+ .split('\n')
17
+ .filter((line) => !line.startsWith('import '))
18
+ .join('\n');
15
19
  return `/**
16
20
  * Workflow type map with input/output types for each workflow
17
21
  */
18
22
 
19
23
  ${serializedImportMap}
20
- ${serializedCustomTypes}
24
+ ${serializedCustomTypesDeclarationsOnly}
21
25
 
22
26
  interface WorkflowHandler<I, O> {
23
27
  input: I;
24
28
  output: O;
25
29
  }
26
30
 
31
+ interface GraphNodeHandler<I> {
32
+ input: I;
33
+ }
34
+
27
35
  ${serializedWorkflows}
28
36
 
37
+ ${serializedGraphs}
38
+
29
39
  export type WorkflowClient<Name extends keyof WorkflowMap> = {
30
40
  start: (input: WorkflowMap[Name]['input']) => Promise<{ runId: string }>;
31
41
  getRun: <output extends keyof WorkflowMap[Name]>(runId: string) => Promise<WorkflowMap[Name][output]>;
@@ -39,8 +49,8 @@ export type TypedWorkflowClients = {
39
49
  };
40
50
  function generateWorkflows(workflowsMeta, functionsMeta, typesMap, requiredTypes) {
41
51
  const workflowsObj = {};
42
- for (const [workflowName, { pikkuFuncName }] of Object.entries(workflowsMeta)) {
43
- const functionMeta = functionsMeta[pikkuFuncName];
52
+ for (const [workflowName, { pikkuFuncId }] of Object.entries(workflowsMeta)) {
53
+ const functionMeta = functionsMeta[pikkuFuncId];
44
54
  if (!functionMeta) {
45
55
  throw new Error(`Function ${workflowName} not found in functionsMeta. Please check your configuration.`);
46
56
  }
@@ -72,6 +82,47 @@ function generateWorkflows(workflowsMeta, functionsMeta, typesMap, requiredTypes
72
82
  for (const [workflowName, handler] of Object.entries(workflowsObj)) {
73
83
  workflowsStr += ` readonly '${workflowName}': WorkflowHandler<${handler.inputType}, ${handler.outputType}>,\n`;
74
84
  }
75
- workflowsStr += '};\n';
85
+ workflowsStr += '};';
76
86
  return workflowsStr;
77
87
  }
88
+ function generateGraphs(graphMeta, functionsMeta, typesMap, requiredTypes) {
89
+ const graphsObj = {};
90
+ for (const [graphName, graph] of Object.entries(graphMeta)) {
91
+ graphsObj[graphName] = {};
92
+ for (const [nodeId, node] of Object.entries(graph.nodes)) {
93
+ if (!('rpcName' in node) || typeof node.rpcName !== 'string') {
94
+ continue;
95
+ }
96
+ let functionMeta = functionsMeta[node.rpcName];
97
+ if (!functionMeta) {
98
+ const { baseName } = parseVersionedId(node.rpcName);
99
+ functionMeta = functionsMeta[baseName];
100
+ }
101
+ if (!functionMeta) {
102
+ continue;
103
+ }
104
+ const input = functionMeta.inputs ? functionMeta.inputs[0] : undefined;
105
+ let inputType = 'void';
106
+ if (input) {
107
+ try {
108
+ inputType = typesMap.getTypeMeta(input).uniqueName;
109
+ }
110
+ catch {
111
+ inputType = input;
112
+ }
113
+ }
114
+ requiredTypes.add(inputType);
115
+ graphsObj[graphName][nodeId] = { inputType };
116
+ }
117
+ }
118
+ let graphsStr = 'export type GraphsMap = {\n';
119
+ for (const [graphName, nodes] of Object.entries(graphsObj)) {
120
+ graphsStr += ` readonly '${graphName}': {\n`;
121
+ for (const [nodeId, handler] of Object.entries(nodes)) {
122
+ graphsStr += ` readonly '${nodeId}': GraphNodeHandler<${handler.inputType}>,\n`;
123
+ }
124
+ graphsStr += ' },\n';
125
+ }
126
+ graphsStr += '};';
127
+ return graphsStr;
128
+ }
@@ -3,43 +3,42 @@
3
3
  * and registers them with pikkuState
4
4
  */
5
5
  import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
6
+ import { sanitizeTypeName } from '@pikku/inspector';
6
7
  export const serializeWorkflowMeta = (outputPath, metaDir, workflowNames, packageMappings, supportsImportAttributes, packageName) => {
7
- const lines = [];
8
+ const pkg = packageName ? `'${packageName}'` : 'null';
8
9
  if (workflowNames.length === 0) {
9
- // Empty meta file - still need to register empty meta
10
- lines.push("import { pikkuState } from '@pikku/core'");
11
- lines.push("import type { SerializedWorkflowGraphs } from '@pikku/inspector/workflow-graph'");
12
- lines.push('');
13
- lines.push('const workflowsMeta: SerializedWorkflowGraphs = {}');
14
- lines.push('');
15
- const packageNameValue = packageName ? `'${packageName}'` : 'null';
16
- lines.push(`pikkuState(${packageNameValue}, 'workflows', 'meta', workflowsMeta)`);
17
- return lines.join('\n');
10
+ return `import { pikkuState } from '@pikku/core'
11
+ import type { SerializedWorkflowGraphs } from '@pikku/inspector/workflow-graph'
12
+
13
+ const workflowsMeta: SerializedWorkflowGraphs = {}
14
+
15
+ pikkuState(${pkg}, 'workflows', 'meta', workflowsMeta)`;
18
16
  }
19
- // Imports
20
- lines.push("import { pikkuState } from '@pikku/core'");
21
- lines.push("import type { SerializedWorkflowGraphs } from '@pikku/inspector/workflow-graph'");
22
- lines.push('');
23
- // Import each workflow meta JSON
24
17
  const sortedNames = [...workflowNames].sort();
25
- for (const name of sortedNames) {
18
+ const imports = sortedNames
19
+ .map((name) => {
20
+ const sanitizedIdentifier = sanitizeTypeName(name);
26
21
  const jsonPath = `${metaDir}/${name}.gen.json`;
27
22
  const importPath = getFileImportRelativePath(outputPath, jsonPath, packageMappings);
28
- const importStatement = supportsImportAttributes
29
- ? `import ${name}Meta from '${importPath}' with { type: 'json' }`
30
- : `import ${name}Meta from '${importPath}'`;
31
- lines.push(importStatement);
32
- }
33
- lines.push('');
34
- // Create aggregated meta object (cast JSON imports to proper types)
35
- lines.push('const workflowsMeta = {');
36
- for (const name of sortedNames) {
37
- lines.push(` '${name}': ${name}Meta,`);
38
- }
39
- lines.push('} as SerializedWorkflowGraphs');
40
- lines.push('');
41
- // Register meta with pikkuState
42
- const packageNameValue = packageName ? `'${packageName}'` : 'null';
43
- lines.push(`pikkuState(${packageNameValue}, 'workflows', 'meta', workflowsMeta)`);
44
- return lines.join('\n');
23
+ return supportsImportAttributes
24
+ ? `import ${sanitizedIdentifier}Meta from '${importPath}' with { type: 'json' }`
25
+ : `import ${sanitizedIdentifier}Meta from '${importPath}'`;
26
+ })
27
+ .join('\n');
28
+ const metaEntries = sortedNames
29
+ .map((name) => {
30
+ const sanitizedIdentifier = sanitizeTypeName(name);
31
+ return ` '${name}': ${sanitizedIdentifier}Meta,`;
32
+ })
33
+ .join('\n');
34
+ return `import { pikkuState } from '@pikku/core'
35
+ import type { SerializedWorkflowGraphs } from '@pikku/inspector/workflow-graph'
36
+
37
+ ${imports}
38
+
39
+ const workflowsMeta = {
40
+ ${metaEntries}
41
+ } as SerializedWorkflowGraphs
42
+
43
+ pikkuState(${pkg}, 'workflows', 'meta', workflowsMeta)`;
45
44
  };
@@ -1,7 +1,7 @@
1
1
  export declare const serializeWorkflowRegistration: (outputPath: string, metaImportPath: string, workflowNames: string[], workflowFiles: Map<string, {
2
2
  path: string;
3
3
  exportedName: string;
4
- }>, graphFiles: Map<string, {
4
+ }>, _graphFiles: Map<string, {
5
5
  path: string;
6
6
  exportedName: string;
7
7
  }>, packageMappings: Record<string, string>, _packageName?: string) => string;
@@ -1,50 +1,23 @@
1
- /**
2
- * Generate workflow runtime registration
3
- * Imports meta (which registers with pikkuState) and registers DSL workflows (addWorkflow) and graph workflows (addWorkflowGraph)
4
- */
5
1
  import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
6
- export const serializeWorkflowRegistration = (outputPath, metaImportPath, workflowNames, workflowFiles, graphFiles, packageMappings, _packageName) => {
2
+ export const serializeWorkflowRegistration = (outputPath, metaImportPath, workflowNames, workflowFiles, _graphFiles, packageMappings, _packageName) => {
7
3
  const lines = [];
8
4
  const hasWorkflows = workflowNames.length > 0;
9
5
  const hasDslWorkflows = workflowFiles.size > 0;
10
- const hasGraphWorkflows = graphFiles.size > 0;
11
- // Imports
12
- const imports = [];
13
6
  if (hasDslWorkflows) {
14
- imports.push('addWorkflow');
7
+ lines.push(`import { addWorkflow } from '@pikku/core/workflow'`);
15
8
  }
16
- if (hasGraphWorkflows) {
17
- imports.push('addWorkflowGraph');
18
- }
19
- if (imports.length > 0) {
20
- lines.push(`import { ${imports.join(', ')} } from '@pikku/core/workflow'`);
21
- }
22
- // Import meta file (which registers meta with pikkuState)
23
9
  if (hasWorkflows) {
24
10
  lines.push(`import '${metaImportPath}'`);
25
11
  }
26
- // Import DSL workflow functions
27
12
  const sortedWorkflows = Array.from(workflowFiles.entries()).sort((a, b) => a[0].localeCompare(b[0]));
28
13
  for (const [, { path, exportedName }] of sortedWorkflows) {
29
14
  const importPath = getFileImportRelativePath(outputPath, path, packageMappings);
30
15
  lines.push(`import { ${exportedName} } from '${importPath}'`);
31
16
  }
32
- // Import graph workflow definitions
33
- const sortedGraphWorkflows = Array.from(graphFiles.entries()).sort((a, b) => a[0].localeCompare(b[0]));
34
- for (const [, { path, exportedName }] of sortedGraphWorkflows) {
35
- const importPath = getFileImportRelativePath(outputPath, path, packageMappings);
36
- lines.push(`import { ${exportedName} } from '${importPath}'`);
37
- }
38
17
  lines.push('');
39
- // Register DSL workflows
40
- for (const [pikkuFuncName, { exportedName }] of sortedWorkflows) {
41
- lines.push(`addWorkflow('${pikkuFuncName}', ${exportedName})`);
42
- }
43
- // Register graph workflows
44
- for (const [workflowName, { exportedName }] of sortedGraphWorkflows) {
45
- lines.push(`addWorkflowGraph('${workflowName}', ${exportedName})`);
18
+ for (const [pikkuFuncId, { exportedName }] of sortedWorkflows) {
19
+ lines.push(`addWorkflow('${pikkuFuncId}', ${exportedName})`);
46
20
  }
47
- // Export workflow names type
48
21
  if (hasWorkflows) {
49
22
  lines.push('');
50
23
  lines.push(`export type WorkflowNames = '${workflowNames.join("' | '")}'`);
@@ -1,6 +1 @@
1
- /**
2
- * Generate all workflow type helpers for authoring workflows
3
- * Combines DSL helpers (pikkuWorkflowFunc, pikkuWorkflowComplexFunc) and
4
- * graph helpers (pikkuWorkflowGraph) with unified wireWorkflow
5
- */
6
- export declare const serializeWorkflowTypes: (functionTypesImportPath: string, rpcMapImportPath: string) => string;
1
+ export declare const serializeWorkflowTypes: (functionTypesImportPath: string, rpcMapImportPath: string, workflowMapImportPath: string) => string;
@@ -1,31 +1,26 @@
1
- /**
2
- * Generate all workflow type helpers for authoring workflows
3
- * Combines DSL helpers (pikkuWorkflowFunc, pikkuWorkflowComplexFunc) and
4
- * graph helpers (pikkuWorkflowGraph) with unified wireWorkflow
5
- */
6
- export const serializeWorkflowTypes = (functionTypesImportPath, rpcMapImportPath) => {
7
- return `/**
8
- * Workflow type definitions and helpers
9
- * Used for authoring both DSL and graph-based workflows
10
- */
1
+ export const serializeWorkflowTypes = (functionTypesImportPath, rpcMapImportPath, workflowMapImportPath) => {
2
+ return `import { WorkflowCancelledException } from '@pikku/core/workflow'
3
+ import {
4
+ workflow as coreWorkflow,
5
+ workflowStart as coreWorkflowStart,
6
+ workflowStatus as coreWorkflowStatus,
7
+ graphStart as coreGraphStart,
8
+ } from '@pikku/core/workflow'
9
+ import { template } from '@pikku/core/workflow'
10
+ import {
11
+ pikkuWorkflowGraph as corePikkuWorkflowGraph,
12
+ type PikkuWorkflowGraphConfig,
13
+ type PikkuWorkflowGraphResult,
14
+ } from '@pikku/core/workflow'
15
+ import type { PikkuWorkflowWire, WorkflowStepOptions } from '@pikku/core/workflow'
11
16
 
12
- import { PikkuWorkflowWire, WorkflowStepOptions, WorkflowCancelledException } from '@pikku/core/workflow'
13
-
14
- // Re-export WorkflowCancelledException for use in workflow functions
15
17
  export { WorkflowCancelledException }
16
18
  import type { PikkuFunctionSessionless, PikkuFunctionConfig } from '${functionTypesImportPath}'
17
19
  import type { RPCMap, FlattenedRPCMap } from '${rpcMapImportPath}'
18
- import type { GraphNodeConfig, HTTPMethod } from '@pikku/core'
19
- import { createGraph, wireWorkflow as coreWireWorkflow } from '@pikku/core'
20
+ import type { WorkflowMap, GraphsMap } from '${workflowMapImportPath}'
20
21
 
21
- // ============================================================================
22
- // DSL Workflow Types (pikkuWorkflowFunc, pikkuWorkflowComplexFunc)
23
- // ============================================================================
22
+ export { template }
24
23
 
25
- /**
26
- * Typed workflow wire with RPC awareness
27
- * Provides type-safe workflow.do() for RPC steps
28
- */
29
24
  export interface TypedWorkflow extends PikkuWorkflowWire {
30
25
  do<K extends keyof RPCMap>(
31
26
  stepName: string,
@@ -41,17 +36,11 @@ export interface TypedWorkflow extends PikkuWorkflowWire {
41
36
  ): Promise<T>
42
37
  }
43
38
 
44
- /**
45
- * Workflow function type with typed workflow service
46
- */
47
39
  export type PikkuFunctionWorkflow<
48
40
  In = unknown,
49
41
  Out = never
50
42
  > = PikkuFunctionSessionless<In, Out, 'workflow'>
51
43
 
52
- /**
53
- * Creates a DSL-compatible workflow function (serializable, shows in Forge UI)
54
- */
55
44
  export const pikkuWorkflowFunc = <In, Out = unknown>(
56
45
  func:
57
46
  | PikkuFunctionWorkflow<In, Out>
@@ -60,9 +49,6 @@ export const pikkuWorkflowFunc = <In, Out = unknown>(
60
49
  return typeof func === 'function' ? { func } : func
61
50
  }
62
51
 
63
- /**
64
- * Creates a complex workflow function (arbitrary code, hidden from Forge UI)
65
- */
66
52
  export const pikkuWorkflowComplexFunc = <In, Out = unknown>(
67
53
  func:
68
54
  | PikkuFunctionWorkflow<In, Out>
@@ -71,140 +57,8 @@ export const pikkuWorkflowComplexFunc = <In, Out = unknown>(
71
57
  return typeof func === 'function' ? { func } : func
72
58
  }
73
59
 
74
- // ============================================================================
75
- // Graph Workflow Types (pikkuWorkflowGraph)
76
- // ============================================================================
77
-
78
- /**
79
- * Type-safe graph builder with full RPC autocomplete
80
- */
81
- const graphBuilder = createGraph<FlattenedRPCMap>()
82
-
83
- /** HTTP wire configuration for graph workflows */
84
- interface GraphHttpWire<NodeIds extends string> {
85
- route: string
86
- method: HTTPMethod
87
- startNode: NodeIds
88
- }
89
-
90
- /** Channel wire configuration for graph workflows */
91
- interface GraphChannelWire<NodeIds extends string> {
92
- name: string
93
- onConnect?: NodeIds
94
- onDisconnect?: NodeIds
95
- onMessage?: NodeIds
96
- }
97
-
98
- /** Queue wire configuration for graph workflows */
99
- interface GraphQueueWire<NodeIds extends string> {
100
- name: string
101
- startNode: NodeIds
102
- }
103
-
104
- /** CLI wire configuration for graph workflows */
105
- interface GraphCliWire<NodeIds extends string> {
106
- command: string
107
- startNode: NodeIds
108
- }
109
-
110
- /** MCP wire configurations for graph workflows */
111
- interface GraphMcpWires<NodeIds extends string> {
112
- tool?: Array<{ name: string; startNode: NodeIds }>
113
- prompt?: Array<{ name: string; startNode: NodeIds }>
114
- resource?: Array<{ uri: string; startNode: NodeIds }>
115
- }
116
-
117
- /** Schedule wire configuration for graph workflows */
118
- interface GraphScheduleWire<NodeIds extends string> {
119
- cron?: string
120
- interval?: string
121
- startNode: NodeIds
122
- }
123
-
124
- /** Trigger wire configuration for graph workflows */
125
- interface GraphTriggerWire<NodeIds extends string> {
126
- name: string // RPC name of the trigger function
127
- startNode: NodeIds
128
- }
129
-
130
- /** All wire configurations for graph workflows */
131
- interface GraphWiresConfig<NodeIds extends string> {
132
- http?: Array<GraphHttpWire<NodeIds>>
133
- channel?: Array<GraphChannelWire<NodeIds>>
134
- queue?: Array<GraphQueueWire<NodeIds>>
135
- cli?: Array<GraphCliWire<NodeIds>>
136
- mcp?: GraphMcpWires<NodeIds>
137
- schedule?: Array<GraphScheduleWire<NodeIds>>
138
- trigger?: Array<GraphTriggerWire<NodeIds>>
139
- }
140
-
141
- /** Configuration for graph-based workflow */
142
- export interface PikkuWorkflowGraphConfig<
143
- FuncMap extends Record<string, keyof FlattenedRPCMap & string>,
144
- T
145
- > {
146
- /** Workflow name (optional - defaults to exported variable name) */
147
- name?: string
148
- /** Optional description */
149
- description?: string
150
- /** Optional tags for organization */
151
- tags?: string[]
152
- /** Node to RPC function mapping */
153
- nodes: FuncMap
154
- /** Wire configurations - how this workflow can be triggered */
155
- wires?: GraphWiresConfig<Extract<keyof FuncMap, string>>
156
- /** Node configurations (next, input, onError) */
157
- config?: T
158
- }
159
-
160
- /** Result of pikkuWorkflowGraph - includes metadata for wiring */
161
- export interface PikkuWorkflowGraphResult<T, NodeIds extends string = string> {
162
- __type: 'pikkuWorkflowGraph'
163
- name?: string
164
- description?: string
165
- tags?: string[]
166
- wires?: GraphWiresConfig<NodeIds>
167
- graph: T
168
- }
169
-
170
- /**
171
- * Creates a graph-based workflow definition with metadata
172
- * Name defaults to the exported variable name if not provided.
173
- *
174
- * @example
175
- * // Name inferred from exported variable name
176
- * export const myWorkflow = pikkuWorkflowGraph({
177
- * description: 'Handles user onboarding',
178
- * tags: ['onboarding'],
179
- * nodes: {
180
- * entry: 'createUser',
181
- * sendEmail: 'sendWelcomeEmail',
182
- * },
183
- * config: {
184
- * entry: { next: 'sendEmail' },
185
- * sendEmail: { input: (ref) => ({ to: ref('entry', 'email') }) },
186
- * },
187
- * })
188
- */
189
- export function pikkuWorkflowGraph<
190
- const FuncMap extends Record<string, keyof FlattenedRPCMap & string>
191
- >(
192
- config: PikkuWorkflowGraphConfig<FuncMap, GraphNodeConfigMap<FuncMap>>
193
- ): PikkuWorkflowGraphResult<Record<Extract<keyof FuncMap, string>, GraphNodeConfig<Extract<keyof FuncMap, string>>>, Extract<keyof FuncMap, string>> {
194
- return {
195
- __type: 'pikkuWorkflowGraph',
196
- name: config.name,
197
- description: config.description,
198
- tags: config.tags,
199
- wires: config.wires,
200
- graph: graphBuilder(config.nodes, config.config as any),
201
- }
202
- }
203
-
204
- /** Typed ref value */
205
60
  type TypedRef<T> = { $ref: string; path?: string } & { __phantomType?: T }
206
61
 
207
- /** Template string type - assignable to string fields */
208
62
  type TemplateString = {
209
63
  $template: {
210
64
  parts: string[]
@@ -212,62 +66,15 @@ type TemplateString = {
212
66
  }
213
67
  } & { __brand: 'TemplateString' }
214
68
 
215
- /**
216
- * Creates a template string with variable interpolation
217
- * Uses indexed placeholders $0, $1, etc. with refs array
218
- *
219
- * @example
220
- * template('Hello $0, your order $1 is ready', [ref('trigger', 'name'), ref('step_0', 'orderId')])
221
- */
222
- export function template(templateStr: string, refs: TypedRef<unknown>[]): TemplateString {
223
- const parts: string[] = []
224
- const expressions: Array<{ $ref: string; path?: string }> = []
225
-
226
- // Parse template string: "Hello $0" -> parts: ["Hello ", ""], use refs[0] for expression
227
- const regex = /\$(\d+)/g
228
- let lastIndex = 0
229
- let match
230
-
231
- while ((match = regex.exec(templateStr)) !== null) {
232
- // Add the part before this match
233
- parts.push(templateStr.slice(lastIndex, match.index))
234
-
235
- // Get the ref by index
236
- const refIndex = parseInt(match[1]!, 10)
237
- const refValue = refs[refIndex]
238
- if (refValue) {
239
- const expr: { $ref: string; path?: string } = { $ref: refValue.$ref }
240
- if (refValue.path) {
241
- expr.path = refValue.path
242
- }
243
- expressions.push(expr)
244
- } else {
245
- expressions.push({ $ref: 'unknown' })
246
- }
247
-
248
- lastIndex = regex.lastIndex
249
- }
250
-
251
- // Add the remaining part
252
- parts.push(templateStr.slice(lastIndex))
253
-
254
- return {
255
- $template: { parts, expressions }
256
- } as TemplateString
257
- }
258
-
259
- /** Map input type fields to allow TypedRef or TemplateString for any field */
260
69
  type InputWithRefs<T> = {
261
70
  [K in keyof T]?: T[K] | TypedRef<T[K]> | TypedRef<unknown> | TemplateString
262
71
  }
263
72
 
264
- /** Get the input type for a node based on its RPC mapping */
265
73
  type NodeInputType<FuncMap extends Record<string, string>, K extends keyof FuncMap> =
266
74
  FuncMap[K] extends keyof FlattenedRPCMap
267
75
  ? InputWithRefs<FlattenedRPCMap[FuncMap[K]]['input']>
268
76
  : Record<string, unknown>
269
77
 
270
- /** Get the output type keys for a node based on its RPC mapping */
271
78
  type NodeOutputKeys<FuncMap extends Record<string, string>, N extends string> =
272
79
  N extends keyof FuncMap
273
80
  ? FuncMap[N] extends keyof FlattenedRPCMap
@@ -275,7 +82,6 @@ type NodeOutputKeys<FuncMap extends Record<string, string>, N extends string> =
275
82
  : string
276
83
  : string
277
84
 
278
- /** Ref function type with path validation */
279
85
  type RefFunction<FuncMap extends Record<string, string>> = {
280
86
  <N extends Extract<keyof FuncMap, string>>(
281
87
  nodeId: N,
@@ -284,10 +90,8 @@ type RefFunction<FuncMap extends Record<string, string>> = {
284
90
  (nodeId: 'trigger' | '$item', path?: string): TypedRef<unknown>
285
91
  }
286
92
 
287
- /** Template function type */
288
93
  type TemplateFunction = (templateStr: string, refs: TypedRef<unknown>[]) => TemplateString
289
94
 
290
- /** Type helper for node configuration */
291
95
  type GraphNodeConfigMap<FuncMap extends Record<string, string>> = {
292
96
  [K in Extract<keyof FuncMap, string>]?: {
293
97
  next?: NextConfig<Extract<keyof FuncMap, string>>
@@ -301,54 +105,54 @@ type GraphNodeConfigMap<FuncMap extends Record<string, string>> = {
301
105
 
302
106
  type NextConfig<NodeIds extends string> = NodeIds | NodeIds[] | { if: string; then: NodeIds; else?: NodeIds }
303
107
 
304
- // ============================================================================
305
- // Unified wireWorkflow
306
- // ============================================================================
108
+ export function pikkuWorkflowGraph<
109
+ const FuncMap extends Record<string, keyof FlattenedRPCMap & string>
110
+ >(
111
+ config: PikkuWorkflowGraphConfig<FuncMap, GraphNodeConfigMap<FuncMap>>
112
+ ): PikkuWorkflowGraphResult {
113
+ return corePikkuWorkflowGraph(config as any)
114
+ }
307
115
 
308
- /** Workflow definition with DSL function */
309
- interface WorkflowDefinitionFunc {
310
- /** Whether this workflow wiring is enabled (default: true) */
311
- enabled?: boolean
312
- /** Wire configurations for the workflow */
313
- wires: {
314
- http?: { route: string; method: HTTPMethod }
315
- channel?: string
316
- queue?: string
317
- }
318
- /** DSL workflow function */
319
- func: PikkuFunctionConfig<any, any, 'workflow', PikkuFunctionWorkflow<any, any>>
116
+ export const workflow = <Name extends keyof WorkflowMap>(
117
+ workflowName: Name,
118
+ options?: { pollIntervalMs?: number }
119
+ ) => {
120
+ return coreWorkflow<WorkflowMap>(workflowName as string & keyof WorkflowMap, options) as PikkuFunctionConfig<
121
+ WorkflowMap[Name]['input'],
122
+ WorkflowMap[Name]['output'],
123
+ 'session' | 'rpc'
124
+ >
125
+ }
126
+
127
+ export const workflowStart = <Name extends keyof WorkflowMap>(
128
+ workflowName: Name
129
+ ) => {
130
+ return coreWorkflowStart<WorkflowMap>(workflowName as string & keyof WorkflowMap) as PikkuFunctionConfig<
131
+ WorkflowMap[Name]['input'],
132
+ { runId: string },
133
+ 'session' | 'rpc'
134
+ >
320
135
  }
321
136
 
322
- /** Workflow definition with graph */
323
- interface WorkflowDefinitionGraph<T, NodeIds extends string = string> {
324
- /** Whether this workflow wiring is enabled (default: true) */
325
- enabled?: boolean
326
- /** Graph workflow definition - wires are defined in the graph itself */
327
- graph: PikkuWorkflowGraphResult<T, NodeIds>
137
+ export const workflowStatus = <Name extends keyof WorkflowMap>(
138
+ _workflowName: Name
139
+ ) => {
140
+ return coreWorkflowStatus<WorkflowMap>(_workflowName as string & keyof WorkflowMap) as PikkuFunctionConfig<
141
+ { runId: string },
142
+ { id: string; status: 'running' | 'completed' | 'failed' | 'cancelled'; output?: WorkflowMap[Name]['output']; error?: { message?: string } },
143
+ 'session' | 'rpc'
144
+ >
328
145
  }
329
146
 
330
- /**
331
- * Wire a workflow with wires
332
- * Accepts either a DSL function (func) or a graph definition (graph)
333
- *
334
- * @example
335
- * // DSL workflow
336
- * wireWorkflow({
337
- * wires: { http: { route: '/start', method: 'post' } },
338
- * func: myWorkflowFunc,
339
- * })
340
- *
341
- * @example
342
- * // Graph workflow - wires are defined in the graph itself
343
- * wireWorkflow({
344
- * enabled: true, // default: true
345
- * graph: myGraphWorkflow,
346
- * })
347
- */
348
- export function wireWorkflow<T extends Record<string, GraphNodeConfig<Extract<keyof T, string>>>, NodeIds extends string = string>(
349
- definition: WorkflowDefinitionFunc | WorkflowDefinitionGraph<T, NodeIds>
350
- ): void {
351
- coreWireWorkflow(definition as any)
147
+ export const graphStart = <Name extends keyof GraphsMap, Node extends string & keyof GraphsMap[Name]>(
148
+ graphName: Name,
149
+ startNode: Node
150
+ ) => {
151
+ return coreGraphStart<GraphsMap>(graphName as string & keyof GraphsMap, startNode as string) as PikkuFunctionConfig<
152
+ GraphsMap[Name][Node] extends { input: infer I } ? I : never,
153
+ { runId: string },
154
+ 'session' | 'rpc'
155
+ >
352
156
  }
353
157
  `;
354
158
  };