@pikku/cli 0.11.2 → 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 (538) 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.js +6 -0
  23. package/dist/.pikku/agent/pikku-agent-wirings-meta.gen.json +3 -0
  24. package/dist/.pikku/agent/pikku-agent-wirings.gen.d.ts +4 -0
  25. package/dist/.pikku/agent/pikku-agent-wirings.gen.js +4 -0
  26. package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +65 -10
  27. package/dist/.pikku/channel/pikku-channel-types.gen.js +23 -16
  28. package/dist/.pikku/channel/pikku-channels-meta.gen.js +3 -2
  29. package/dist/.pikku/channel/pikku-channels.gen.d.ts +1 -1
  30. package/dist/.pikku/channel/pikku-channels.gen.js +1 -1
  31. package/dist/.pikku/cli/pikku-cli-channel.js +18 -3
  32. package/dist/.pikku/cli/pikku-cli-client.gen.d.ts +1 -1
  33. package/dist/.pikku/cli/pikku-cli-client.gen.js +1 -1
  34. package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +9 -1
  35. package/dist/.pikku/cli/pikku-cli-types.gen.js +12 -2
  36. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +2 -2
  37. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.json +45 -12
  38. package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +1 -1
  39. package/dist/.pikku/cli/pikku-cli-wirings.gen.js +1 -1
  40. package/dist/.pikku/cli/pikku-cli.gen.d.ts +1 -5
  41. package/dist/.pikku/cli/pikku-cli.gen.js +1 -5
  42. package/dist/.pikku/console/pikku-node-types.gen.d.ts +6 -0
  43. package/dist/.pikku/console/pikku-node-types.gen.js +1 -0
  44. package/dist/.pikku/function/pikku-function-types.gen.d.ts +180 -37
  45. package/dist/.pikku/function/pikku-function-types.gen.js +63 -53
  46. package/dist/.pikku/function/pikku-functions-meta.gen.js +2 -2
  47. package/dist/.pikku/function/pikku-functions-meta.gen.json +624 -506
  48. package/dist/.pikku/function/pikku-functions.gen.d.ts +1 -0
  49. package/dist/.pikku/function/pikku-functions.gen.js +119 -0
  50. package/dist/.pikku/http/pikku-http-types.gen.d.ts +54 -3
  51. package/dist/.pikku/http/pikku-http-types.gen.js +11 -2
  52. package/dist/.pikku/http/pikku-http-wirings-meta.gen.js +3 -10
  53. package/dist/.pikku/http/pikku-http-wirings-meta.gen.json +9 -0
  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 +68 -29
  57. package/dist/.pikku/mcp/pikku-mcp-types.gen.js +8 -42
  58. package/dist/.pikku/mcp/pikku-mcp-wirings-meta.gen.js +4 -4
  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 +9 -10
  64. package/dist/.pikku/pikku-bootstrap.gen.js +17 -8
  65. package/dist/.pikku/pikku-services.gen.d.ts +7 -2
  66. package/dist/.pikku/pikku-services.gen.js +5 -0
  67. package/dist/.pikku/pikku-types.gen.d.ts +4 -1
  68. package/dist/.pikku/pikku-types.gen.js +7 -1
  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 +2 -2
  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 +6 -3
  77. package/dist/.pikku/rpc/pikku-remote-rpc-workers.gen.js +6 -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 +2 -2
  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 -15
  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/PikkuConsoleFunctionsOutput.schema.json +1 -0
  92. package/dist/.pikku/schemas/schemas/PikkuNodesMetaOutput.schema.json +1 -0
  93. package/dist/.pikku/schemas/schemas/PikkuPackageOutput.schema.json +1 -0
  94. package/dist/.pikku/schemas/schemas/PikkuPublicAgentOutput.schema.json +1 -0
  95. package/dist/.pikku/schemas/schemas/PikkuSchemasOutput.schema.json +1 -1
  96. package/dist/.pikku/schemas/schemas/PikkuTriggerOutput.schema.json +1 -0
  97. package/dist/.pikku/schemas/schemas/PikkuVersionsInitInput.schema.json +1 -0
  98. package/dist/.pikku/secrets/pikku-secret-types.gen.d.ts +5 -0
  99. package/dist/.pikku/secrets/pikku-secret-types.gen.js +4 -0
  100. package/dist/.pikku/secrets/pikku-secrets.gen.d.ts +11 -0
  101. package/dist/.pikku/secrets/pikku-secrets.gen.js +10 -0
  102. package/dist/.pikku/trigger/pikku-trigger-types.gen.d.ts +113 -0
  103. package/dist/.pikku/trigger/pikku-trigger-types.gen.js +33 -0
  104. package/dist/.pikku/variables/pikku-variable-types.gen.d.ts +5 -0
  105. package/dist/.pikku/variables/pikku-variable-types.gen.js +4 -0
  106. package/dist/.pikku/variables/pikku-variables.gen.d.ts +11 -0
  107. package/dist/.pikku/variables/pikku-variables.gen.js +10 -0
  108. package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +71 -53
  109. package/dist/.pikku/workflow/pikku-workflow-types.gen.js +23 -35
  110. package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +3 -3
  111. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.d.ts +2 -6
  112. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +2 -6
  113. package/dist/bin/pikku.js +20 -47
  114. package/dist/src/cli.wiring.js +29 -2
  115. package/dist/src/functions/commands/all.d.ts +1 -1
  116. package/dist/src/functions/commands/all.js +109 -168
  117. package/dist/src/functions/commands/bootstrap.d.ts +1 -1
  118. package/dist/src/functions/commands/bootstrap.js +13 -29
  119. package/dist/src/functions/commands/console.d.ts +7 -0
  120. package/dist/src/functions/commands/console.js +106 -0
  121. package/dist/src/functions/commands/pikku-command-bootstrap.d.ts +4 -0
  122. package/dist/src/functions/commands/pikku-command-bootstrap.js +67 -0
  123. package/dist/src/functions/commands/pikku-command-summary.d.ts +1 -0
  124. package/dist/src/functions/commands/pikku-command-summary.js +55 -0
  125. package/dist/src/functions/commands/versions-check.d.ts +1 -0
  126. package/dist/src/functions/commands/versions-check.js +17 -0
  127. package/dist/src/functions/commands/versions-init.d.ts +7 -0
  128. package/dist/src/functions/commands/versions-init.js +15 -0
  129. package/dist/src/functions/commands/versions-update.d.ts +1 -0
  130. package/dist/src/functions/commands/versions-update.js +20 -0
  131. package/dist/src/functions/commands/watch.d.ts +1 -1
  132. package/dist/src/functions/commands/watch.js +4 -5
  133. package/dist/src/functions/runtimes/fetch/index.d.ts +1 -0
  134. package/dist/src/functions/{wirings → runtimes}/fetch/index.js +3 -3
  135. package/dist/src/functions/runtimes/nextjs/pikku-command-nextjs.d.ts +1 -1
  136. package/dist/src/functions/runtimes/nextjs/pikku-command-nextjs.js +6 -8
  137. package/dist/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.d.ts +1 -1
  138. package/dist/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.js +49 -43
  139. package/dist/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.js +45 -35
  140. package/dist/src/functions/runtimes/websocket/pikku-command-websocket-typed.d.ts +1 -0
  141. package/dist/src/functions/{wirings/channels → runtimes/websocket}/pikku-command-websocket-typed.js +2 -2
  142. package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent-types.d.ts +1 -0
  143. package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent-types.js +19 -0
  144. package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent.d.ts +1 -0
  145. package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent.js +68 -0
  146. package/dist/src/functions/wirings/ai-agent/pikku-command-public-agent.d.ts +1 -0
  147. package/dist/src/functions/wirings/ai-agent/pikku-command-public-agent.js +23 -0
  148. package/dist/src/functions/wirings/ai-agent/serialize-agent-map.d.ts +4 -0
  149. package/dist/src/functions/wirings/ai-agent/serialize-agent-map.js +48 -0
  150. package/dist/src/functions/wirings/ai-agent/serialize-ai-agent-types.d.ts +1 -0
  151. package/dist/src/functions/wirings/ai-agent/serialize-ai-agent-types.js +31 -0
  152. package/dist/src/functions/wirings/ai-agent/serialize-public-agent.d.ts +1 -0
  153. package/dist/src/functions/wirings/ai-agent/serialize-public-agent.js +90 -0
  154. package/dist/src/functions/wirings/channels/pikku-channels.d.ts +1 -1
  155. package/dist/src/functions/wirings/channels/pikku-channels.js +2 -2
  156. package/dist/src/functions/wirings/channels/pikku-command-channel-types.d.ts +1 -1
  157. package/dist/src/functions/wirings/channels/pikku-command-channel-types.js +3 -3
  158. package/dist/src/functions/wirings/channels/pikku-command-channels-map.d.ts +1 -1
  159. package/dist/src/functions/wirings/channels/pikku-command-channels-map.js +2 -2
  160. package/dist/src/functions/wirings/channels/pikku-command-channels.d.ts +1 -1
  161. package/dist/src/functions/wirings/channels/pikku-command-channels.js +19 -3
  162. package/dist/src/functions/wirings/channels/serialize-channel-types.d.ts +1 -1
  163. package/dist/src/functions/wirings/channels/serialize-channel-types.js +97 -10
  164. package/dist/src/functions/wirings/channels/serialize-typed-channel-map.d.ts +2 -1
  165. package/dist/src/functions/wirings/channels/serialize-typed-channel-map.js +9 -10
  166. package/dist/src/functions/wirings/cli/pikku-command-cli-entry.d.ts +1 -1
  167. package/dist/src/functions/wirings/cli/pikku-command-cli-entry.js +3 -7
  168. package/dist/src/functions/wirings/cli/pikku-command-cli-types.d.ts +1 -1
  169. package/dist/src/functions/wirings/cli/pikku-command-cli-types.js +1 -1
  170. package/dist/src/functions/wirings/cli/pikku-command-cli.d.ts +1 -1
  171. package/dist/src/functions/wirings/cli/pikku-command-cli.js +11 -3
  172. package/dist/src/functions/wirings/cli/serialize-channel-cli.js +8 -8
  173. package/dist/src/functions/wirings/cli/serialize-cli-types.js +14 -1
  174. package/dist/src/functions/wirings/cli/serialize-local-cli-bootstrap.d.ts +2 -2
  175. package/dist/src/functions/wirings/cli/serialize-local-cli-bootstrap.js +10 -11
  176. package/dist/src/functions/wirings/console/pikku-command-console-functions.d.ts +1 -0
  177. package/dist/src/functions/wirings/console/pikku-command-console-functions.js +23 -0
  178. package/dist/src/functions/wirings/console/pikku-command-node-types.d.ts +1 -0
  179. package/dist/src/functions/wirings/console/pikku-command-node-types.js +21 -0
  180. package/dist/src/functions/wirings/console/pikku-command-nodes-meta.d.ts +1 -0
  181. package/dist/src/functions/wirings/console/pikku-command-nodes-meta.js +79 -0
  182. package/dist/src/functions/wirings/console/serialize-console-functions.d.ts +1 -0
  183. package/dist/src/functions/wirings/console/serialize-console-functions.js +229 -0
  184. package/dist/src/functions/wirings/console/serialize-node-types.d.ts +1 -0
  185. package/dist/src/functions/wirings/console/serialize-node-types.js +11 -0
  186. package/dist/src/functions/wirings/functions/pikku-command-external-types.d.ts +1 -0
  187. package/dist/src/functions/wirings/functions/pikku-command-external-types.js +33 -0
  188. package/dist/src/functions/wirings/functions/pikku-command-function-types-split.d.ts +1 -1
  189. package/dist/src/functions/wirings/functions/pikku-command-function-types-split.js +2 -2
  190. package/dist/src/functions/wirings/functions/pikku-command-function-types.d.ts +1 -1
  191. package/dist/src/functions/wirings/functions/pikku-command-function-types.js +8 -3
  192. package/dist/src/functions/wirings/functions/pikku-command-functions.d.ts +1 -1
  193. package/dist/src/functions/wirings/functions/pikku-command-functions.js +34 -19
  194. package/dist/src/functions/wirings/functions/pikku-command-services.d.ts +1 -1
  195. package/dist/src/functions/wirings/functions/pikku-command-services.js +2 -2
  196. package/dist/src/functions/wirings/functions/schemas.d.ts +1 -4
  197. package/dist/src/functions/wirings/functions/schemas.js +8 -9
  198. package/dist/src/functions/wirings/functions/serialize-external-types.d.ts +1 -0
  199. package/dist/src/functions/wirings/functions/serialize-external-types.js +77 -0
  200. package/dist/src/functions/wirings/functions/serialize-function-imports.d.ts +4 -3
  201. package/dist/src/functions/wirings/functions/serialize-function-imports.js +16 -19
  202. package/dist/src/functions/wirings/functions/serialize-function-types.d.ts +1 -1
  203. package/dist/src/functions/wirings/functions/serialize-function-types.js +256 -42
  204. package/dist/src/functions/wirings/functions/serialize-pikku-types-hub.d.ts +1 -1
  205. package/dist/src/functions/wirings/functions/serialize-pikku-types-hub.js +22 -21
  206. package/dist/src/functions/wirings/http/pikku-command-http-map.d.ts +1 -1
  207. package/dist/src/functions/wirings/http/pikku-command-http-map.js +4 -4
  208. package/dist/src/functions/wirings/http/pikku-command-http-routes.d.ts +1 -1
  209. package/dist/src/functions/wirings/http/pikku-command-http-routes.js +19 -3
  210. package/dist/src/functions/wirings/http/pikku-command-http-types.d.ts +1 -1
  211. package/dist/src/functions/wirings/http/pikku-command-http-types.js +1 -1
  212. package/dist/src/functions/wirings/http/pikku-command-openapi.d.ts +1 -1
  213. package/dist/src/functions/wirings/http/pikku-command-openapi.js +11 -9
  214. package/dist/src/functions/wirings/http/pikku-http-routes.d.ts +1 -1
  215. package/dist/src/functions/wirings/http/pikku-http-routes.js +2 -2
  216. package/dist/src/functions/wirings/http/serialize-http-types.js +64 -3
  217. package/dist/src/functions/wirings/http/serialize-typed-http-map.d.ts +5 -2
  218. package/dist/src/functions/wirings/http/serialize-typed-http-map.js +43 -31
  219. package/dist/src/functions/wirings/mcp/pikku-command-mcp-json.d.ts +1 -1
  220. package/dist/src/functions/wirings/mcp/pikku-command-mcp-json.js +5 -6
  221. package/dist/src/functions/wirings/mcp/pikku-command-mcp-types.d.ts +1 -1
  222. package/dist/src/functions/wirings/mcp/pikku-command-mcp-types.js +1 -1
  223. package/dist/src/functions/wirings/mcp/pikku-command-mcp.d.ts +1 -1
  224. package/dist/src/functions/wirings/mcp/pikku-command-mcp.js +28 -10
  225. package/dist/src/functions/wirings/mcp/serialize-mcp-types.js +81 -38
  226. package/dist/src/functions/wirings/middleware/pikku-command-middleware.d.ts +1 -1
  227. package/dist/src/functions/wirings/middleware/pikku-command-middleware.js +11 -31
  228. package/dist/src/functions/wirings/middleware/serialize-middleware-imports.js +19 -24
  229. package/dist/src/functions/wirings/package/pikku-command-package-types.d.ts +2 -0
  230. package/dist/src/functions/wirings/package/pikku-command-package-types.js +30 -0
  231. package/dist/src/functions/wirings/package/pikku-command-package.d.ts +1 -0
  232. package/dist/src/functions/wirings/package/pikku-command-package.js +58 -0
  233. package/dist/src/functions/wirings/package/serialize-package-types.d.ts +2 -0
  234. package/dist/src/functions/wirings/package/serialize-package-types.js +10 -0
  235. package/dist/src/functions/wirings/package/serialize-package.d.ts +5 -0
  236. package/dist/src/functions/wirings/package/serialize-package.js +32 -0
  237. package/dist/src/functions/wirings/permissions/pikku-command-permissions.d.ts +1 -1
  238. package/dist/src/functions/wirings/permissions/pikku-command-permissions.js +10 -5
  239. package/dist/src/functions/wirings/queue/pikku-command-queue-map.d.ts +1 -1
  240. package/dist/src/functions/wirings/queue/pikku-command-queue-map.js +3 -3
  241. package/dist/src/functions/wirings/queue/pikku-command-queue-service.d.ts +1 -1
  242. package/dist/src/functions/wirings/queue/pikku-command-queue-service.js +2 -2
  243. package/dist/src/functions/wirings/queue/pikku-command-queue-types.d.ts +1 -1
  244. package/dist/src/functions/wirings/queue/pikku-command-queue-types.js +1 -1
  245. package/dist/src/functions/wirings/queue/pikku-command-queue.d.ts +1 -1
  246. package/dist/src/functions/wirings/queue/pikku-command-queue.js +11 -3
  247. package/dist/src/functions/wirings/queue/pikku-queue-map.d.ts +1 -1
  248. package/dist/src/functions/wirings/queue/pikku-queue-map.js +3 -3
  249. package/dist/src/functions/wirings/queue/pikku-queue.d.ts +1 -1
  250. package/dist/src/functions/wirings/queue/pikku-queue.js +2 -10
  251. package/dist/src/functions/wirings/queue/serialize-queue-map.d.ts +5 -2
  252. package/dist/src/functions/wirings/queue/serialize-queue-map.js +13 -24
  253. package/dist/src/functions/wirings/queue/serialize-queue-meta.js +9 -10
  254. package/dist/src/functions/wirings/queue/serialize-queue-types.js +1 -1
  255. package/dist/src/functions/wirings/rpc/pikku-command-public-rpc.d.ts +1 -1
  256. package/dist/src/functions/wirings/rpc/pikku-command-public-rpc.js +2 -2
  257. package/dist/src/functions/wirings/rpc/pikku-command-remote-rpc.d.ts +1 -1
  258. package/dist/src/functions/wirings/rpc/pikku-command-remote-rpc.js +1 -1
  259. package/dist/src/functions/wirings/rpc/pikku-command-rpc-client.d.ts +1 -1
  260. package/dist/src/functions/wirings/rpc/pikku-command-rpc-client.js +2 -2
  261. package/dist/src/functions/wirings/rpc/pikku-command-rpc-map.d.ts +2 -2
  262. package/dist/src/functions/wirings/rpc/pikku-command-rpc-map.js +12 -7
  263. package/dist/src/functions/wirings/rpc/pikku-command-rpc.d.ts +1 -1
  264. package/dist/src/functions/wirings/rpc/pikku-command-rpc.js +5 -2
  265. package/dist/src/functions/wirings/rpc/serialize-public-rpc.d.ts +1 -1
  266. package/dist/src/functions/wirings/rpc/serialize-public-rpc.js +11 -6
  267. package/dist/src/functions/wirings/rpc/serialize-remote-rpc.js +5 -2
  268. package/dist/src/functions/wirings/rpc/serialize-rpc-wrapper.js +19 -8
  269. package/dist/src/functions/wirings/rpc/serialize-typed-rpc-map.d.ts +6 -3
  270. package/dist/src/functions/wirings/rpc/serialize-typed-rpc-map.js +130 -59
  271. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler-types.d.ts +1 -1
  272. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler-types.js +1 -1
  273. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler.d.ts +1 -1
  274. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler.js +11 -2
  275. package/dist/src/functions/wirings/scheduler/serialize-scheduler-meta.d.ts +1 -1
  276. package/dist/src/functions/wirings/scheduler/serialize-scheduler-meta.js +13 -12
  277. package/dist/src/functions/wirings/scheduler/serialize-scheduler-types.js +1 -1
  278. package/dist/src/functions/wirings/secrets/pikku-command-secrets.d.ts +1 -0
  279. package/dist/src/functions/wirings/secrets/pikku-command-secrets.js +31 -0
  280. package/dist/src/functions/wirings/secrets/serialize-secrets-types.d.ts +9 -0
  281. package/dist/src/functions/wirings/secrets/serialize-secrets-types.js +64 -0
  282. package/dist/src/functions/wirings/triggers/pikku-command-trigger-types.d.ts +1 -0
  283. package/dist/src/functions/wirings/triggers/pikku-command-trigger-types.js +24 -0
  284. package/dist/src/functions/wirings/triggers/pikku-command-trigger.d.ts +1 -0
  285. package/dist/src/functions/wirings/triggers/pikku-command-trigger.js +40 -0
  286. package/dist/src/functions/wirings/triggers/serialize-trigger-meta.d.ts +5 -0
  287. package/dist/src/functions/wirings/triggers/serialize-trigger-meta.js +35 -0
  288. package/dist/src/functions/wirings/triggers/serialize-trigger-types.d.ts +4 -0
  289. package/dist/src/functions/wirings/triggers/serialize-trigger-types.js +163 -0
  290. package/dist/src/functions/wirings/variables/pikku-command-variables.d.ts +1 -0
  291. package/dist/src/functions/wirings/variables/pikku-command-variables.js +31 -0
  292. package/dist/src/functions/wirings/variables/serialize-variables-types.d.ts +9 -0
  293. package/dist/src/functions/wirings/variables/serialize-variables-types.js +53 -0
  294. package/dist/src/functions/wirings/workflow/pikku-command-workflow.d.ts +1 -1
  295. package/dist/src/functions/wirings/workflow/pikku-command-workflow.js +29 -20
  296. package/dist/src/functions/wirings/workflow/serialize-workflow-map.d.ts +7 -2
  297. package/dist/src/functions/wirings/workflow/serialize-workflow-map.js +87 -38
  298. package/dist/src/functions/wirings/workflow/serialize-workflow-meta.d.ts +1 -3
  299. package/dist/src/functions/wirings/workflow/serialize-workflow-meta.js +42 -18
  300. package/dist/src/functions/wirings/workflow/serialize-workflow-registration.d.ts +7 -0
  301. package/dist/src/functions/wirings/workflow/serialize-workflow-registration.js +26 -0
  302. package/dist/src/functions/wirings/workflow/serialize-workflow-types.d.ts +1 -4
  303. package/dist/src/functions/wirings/workflow/serialize-workflow-types.js +121 -63
  304. package/dist/src/functions/wirings/workflow/serialize-workflow-workers.d.ts +1 -1
  305. package/dist/src/functions/wirings/workflow/serialize-workflow-workers.js +15 -28
  306. package/dist/src/services/cli-logger-forwarder.service.d.ts +1 -1
  307. package/dist/src/services/cli-logger-forwarder.service.js +1 -1
  308. package/dist/src/services/cli-logger.service.d.ts +1 -1
  309. package/dist/src/services/cli-logger.service.js +1 -1
  310. package/dist/src/services.d.ts +1 -1
  311. package/dist/src/services.js +56 -6
  312. package/dist/src/utils/command-summary.d.ts +3 -0
  313. package/dist/src/utils/command-summary.js +3 -0
  314. package/dist/src/utils/contract-versions.d.ts +6 -0
  315. package/dist/src/utils/contract-versions.js +25 -0
  316. package/dist/src/utils/file-import-path.js +20 -6
  317. package/dist/src/utils/generate-bootstrap-file.js +1 -1
  318. package/dist/src/utils/pikku-cli-config.js +104 -13
  319. package/dist/src/utils/pikku-files-and-methods.d.ts +0 -1
  320. package/dist/src/utils/pikku-files-and-methods.js +15 -60
  321. package/dist/src/utils/serialize-import-map.d.ts +2 -1
  322. package/dist/src/utils/serialize-import-map.js +3 -54
  323. package/dist/src/utils/serialize-meta-ts.d.ts +8 -0
  324. package/dist/src/utils/serialize-meta-ts.js +12 -0
  325. package/dist/src/utils/serialize-schemas.d.ts +3 -0
  326. package/dist/src/utils/serialize-schemas.js +38 -0
  327. package/dist/src/utils/strip-verbose-meta.d.ts +43 -0
  328. package/dist/src/utils/strip-verbose-meta.js +210 -0
  329. package/dist/tsconfig.tsbuildinfo +1 -1
  330. package/package.json +20 -8
  331. package/.pikku/channel/pikku-channel-types.gen.ts +0 -91
  332. package/.pikku/channel/pikku-channels-map.gen.d.ts +0 -47
  333. package/.pikku/channel/pikku-channels-meta.gen.ts +0 -5
  334. package/.pikku/channel/pikku-channels.gen.ts +0 -4
  335. package/.pikku/cli/pikku-cli-channel.ts +0 -92
  336. package/.pikku/cli/pikku-cli-client.gen.ts +0 -54
  337. package/.pikku/cli/pikku-cli-types.gen.ts +0 -92
  338. package/.pikku/cli/pikku-cli-wirings-meta.gen.json +0 -146
  339. package/.pikku/cli/pikku-cli-wirings-meta.gen.ts +0 -7
  340. package/.pikku/cli/pikku-cli-wirings.gen.ts +0 -6
  341. package/.pikku/cli/pikku-cli.gen.ts +0 -41
  342. package/.pikku/function/pikku-function-types.gen.ts +0 -426
  343. package/.pikku/function/pikku-functions-meta.gen.json +0 -988
  344. package/.pikku/function/pikku-functions-meta.gen.ts +0 -6
  345. package/.pikku/function/pikku-functions-meta.min.gen.json +0 -212
  346. package/.pikku/function/pikku-functions-meta.min.gen.ts +0 -6
  347. package/.pikku/http/pikku-http-types.gen.ts +0 -86
  348. package/.pikku/http/pikku-http-wirings-map.gen.d.ts +0 -46
  349. package/.pikku/http/pikku-http-wirings-meta.gen.ts +0 -13
  350. package/.pikku/http/pikku-http-wirings.gen.ts +0 -4
  351. package/.pikku/mcp/pikku-mcp-types.gen.ts +0 -140
  352. package/.pikku/mcp/pikku-mcp-wirings-meta.gen.json +0 -5
  353. package/.pikku/mcp/pikku-mcp-wirings-meta.gen.ts +0 -9
  354. package/.pikku/mcp/pikku-mcp-wirings.gen.ts +0 -4
  355. package/.pikku/mcp/pikku-mcp.gen.json +0 -5
  356. package/.pikku/pikku-bootstrap.gen.ts +0 -19
  357. package/.pikku/pikku-services.gen.ts +0 -27
  358. package/.pikku/pikku-types.gen.ts +0 -27
  359. package/.pikku/pikku-websocket.gen.ts +0 -90
  360. package/.pikku/queue/pikku-queue-types.gen.ts +0 -27
  361. package/.pikku/queue/pikku-queue-workers-wirings-map.gen.d.ts +0 -60
  362. package/.pikku/queue/pikku-queue-workers-wirings-meta.gen.json +0 -1
  363. package/.pikku/queue/pikku-queue-workers-wirings-meta.gen.ts +0 -8
  364. package/.pikku/queue/pikku-queue-workers-wirings.gen.ts +0 -4
  365. package/.pikku/rpc/pikku-remote-rpc-workers.gen.ts +0 -27
  366. package/.pikku/rpc/pikku-rpc-wirings-map.gen.d.ts +0 -57
  367. package/.pikku/rpc/pikku-rpc-wirings-map.internal.gen.d.ts +0 -99
  368. package/.pikku/scheduler/pikku-scheduler-types.gen.ts +0 -25
  369. package/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.json +0 -1
  370. package/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.ts +0 -8
  371. package/.pikku/scheduler/pikku-schedulers-wirings.gen.ts +0 -4
  372. package/.pikku/schemas/register.gen.ts +0 -63
  373. package/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +0 -1
  374. package/.pikku/schemas/schemas/PikkuCLIOutput.schema.json +0 -1
  375. package/.pikku/schemas/schemas/PikkuChannelsOutput.schema.json +0 -1
  376. package/.pikku/schemas/schemas/PikkuFunctionsOutput.schema.json +0 -1
  377. package/.pikku/schemas/schemas/PikkuHTTPOutput.schema.json +0 -1
  378. package/.pikku/schemas/schemas/PikkuMCPOutput.schema.json +0 -1
  379. package/.pikku/schemas/schemas/PikkuMiddlewareOutput.schema.json +0 -1
  380. package/.pikku/schemas/schemas/PikkuPermissionsOutput.schema.json +0 -1
  381. package/.pikku/schemas/schemas/PikkuPublicRPCOutput.schema.json +0 -1
  382. package/.pikku/schemas/schemas/PikkuQueueOutput.schema.json +0 -1
  383. package/.pikku/schemas/schemas/PikkuRPCOutput.schema.json +0 -1
  384. package/.pikku/schemas/schemas/PikkuRemoteRPCOutput.schema.json +0 -1
  385. package/.pikku/schemas/schemas/PikkuSchedulerOutput.schema.json +0 -1
  386. package/.pikku/schemas/schemas/PikkuSchemasOutput.schema.json +0 -1
  387. package/.pikku/schemas/schemas/PikkuWorkflowOutput.schema.json +0 -1
  388. package/.pikku/services/config.gen.json +0 -99
  389. package/.pikku/services/getInspectorState.gen.json +0 -10
  390. package/.pikku/services/jwt.gen.json +0 -13
  391. package/.pikku/services/logger.gen.json +0 -25
  392. package/.pikku/services/queueService.gen.json +0 -14
  393. package/.pikku/services/schedulerService.gen.json +0 -17
  394. package/.pikku/services/schema.gen.json +0 -14
  395. package/.pikku/services/variables.gen.json +0 -13
  396. package/.pikku/services/workflowService.gen.json +0 -31
  397. package/.pikku/workflow/pikku-workflow-map.gen.d.ts +0 -62
  398. package/.pikku/workflow/pikku-workflow-types.gen.ts +0 -97
  399. package/.pikku/workflow/pikku-workflow-wirings-meta.gen.json +0 -1
  400. package/.pikku/workflow/pikku-workflow-wirings-meta.gen.ts +0 -8
  401. package/.pikku/workflow/pikku-workflow-wirings.gen.ts +0 -8
  402. package/CHANGELOG.md +0 -935
  403. package/bin/pikku.ts +0 -88
  404. package/build.sh +0 -75
  405. package/dist/.pikku/function/pikku-functions-meta.min.gen.js +0 -6
  406. package/dist/.pikku/function/pikku-functions-meta.min.gen.json +0 -212
  407. package/dist/src/functions/wirings/channels/pikku-command-websocket-typed.d.ts +0 -1
  408. package/dist/src/functions/wirings/fetch/index.d.ts +0 -1
  409. package/dist/src/functions/wirings/functions/pikku-function-types.d.ts +0 -1
  410. package/dist/src/functions/wirings/functions/pikku-function-types.js +0 -18
  411. package/dist/src/functions/wirings/http/openapi-spec-generator.d.ts +0 -81
  412. package/dist/src/functions/wirings/http/openapi-spec-generator.js +0 -152
  413. package/dist/src/functions/wirings/mcp/serialize-mcp-json.d.ts +0 -5
  414. package/dist/src/functions/wirings/mcp/serialize-mcp-json.js +0 -101
  415. package/dist/src/functions/wirings/middleware/serialize-middleware-groups-meta.d.ts +0 -11
  416. package/dist/src/functions/wirings/middleware/serialize-middleware-groups-meta.js +0 -36
  417. package/dist/src/functions/wirings/services/pikku-command-service-metadata.d.ts +0 -1
  418. package/dist/src/functions/wirings/services/pikku-command-service-metadata.js +0 -22
  419. package/dist/src/functions/wirings/workflow/pikku-command-workflow-map.d.ts +0 -1
  420. package/dist/src/functions/wirings/workflow/pikku-command-workflow-map.js +0 -12
  421. package/dist/src/functions/wirings/workflow/pikku-command-workflow-types.d.ts +0 -1
  422. package/dist/src/functions/wirings/workflow/pikku-command-workflow-types.js +0 -13
  423. package/dist/src/functions/wirings/workflow/serialize-workflow-wirings.d.ts +0 -8
  424. package/dist/src/functions/wirings/workflow/serialize-workflow-wirings.js +0 -30
  425. package/dist/src/utils/custom-types-generator.d.ts +0 -2
  426. package/dist/src/utils/custom-types-generator.js +0 -43
  427. package/dist/src/utils/schema-generator.d.ts +0 -6
  428. package/dist/src/utils/schema-generator.js +0 -118
  429. package/pikku.config.json +0 -29
  430. package/run-tests.sh +0 -53
  431. package/src/cli.wiring.ts +0 -112
  432. package/src/functions/commands/all.ts +0 -266
  433. package/src/functions/commands/bootstrap.ts +0 -43
  434. package/src/functions/commands/watch.ts +0 -61
  435. package/src/functions/runtimes/nextjs/pikku-command-nextjs.ts +0 -132
  436. package/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.ts +0 -268
  437. package/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.ts +0 -201
  438. package/src/functions/wirings/channels/pikku-channels.ts +0 -59
  439. package/src/functions/wirings/channels/pikku-command-channel-types.ts +0 -25
  440. package/src/functions/wirings/channels/pikku-command-channels-map.ts +0 -26
  441. package/src/functions/wirings/channels/pikku-command-channels.ts +0 -40
  442. package/src/functions/wirings/channels/pikku-command-websocket-typed.ts +0 -37
  443. package/src/functions/wirings/channels/serialize-channel-types.ts +0 -94
  444. package/src/functions/wirings/channels/serialize-typed-channel-map.ts +0 -172
  445. package/src/functions/wirings/channels/serialize-websocket-wrapper.ts +0 -89
  446. package/src/functions/wirings/cli/pikku-command-cli-entry.ts +0 -216
  447. package/src/functions/wirings/cli/pikku-command-cli-types.ts +0 -48
  448. package/src/functions/wirings/cli/pikku-command-cli.ts +0 -62
  449. package/src/functions/wirings/cli/serialize-channel-cli-client.ts +0 -184
  450. package/src/functions/wirings/cli/serialize-channel-cli.ts +0 -134
  451. package/src/functions/wirings/cli/serialize-cli-types.ts +0 -101
  452. package/src/functions/wirings/cli/serialize-local-cli-bootstrap.ts +0 -80
  453. package/src/functions/wirings/fetch/index.ts +0 -36
  454. package/src/functions/wirings/functions/pikku-command-function-types-split.ts +0 -60
  455. package/src/functions/wirings/functions/pikku-command-function-types.ts +0 -43
  456. package/src/functions/wirings/functions/pikku-command-functions.ts +0 -94
  457. package/src/functions/wirings/functions/pikku-command-services.ts +0 -140
  458. package/src/functions/wirings/functions/pikku-function-types.ts +0 -43
  459. package/src/functions/wirings/functions/schemas.ts +0 -46
  460. package/src/functions/wirings/functions/serialize-function-imports.ts +0 -71
  461. package/src/functions/wirings/functions/serialize-function-types.ts +0 -439
  462. package/src/functions/wirings/functions/serialize-pikku-types-hub.ts +0 -38
  463. package/src/functions/wirings/http/openapi-spec-generator.ts +0 -265
  464. package/src/functions/wirings/http/pikku-command-http-map.ts +0 -27
  465. package/src/functions/wirings/http/pikku-command-http-routes.ts +0 -36
  466. package/src/functions/wirings/http/pikku-command-http-types.ts +0 -25
  467. package/src/functions/wirings/http/pikku-command-openapi.ts +0 -63
  468. package/src/functions/wirings/http/pikku-http-routes.ts +0 -61
  469. package/src/functions/wirings/http/serialize-fetch-wrapper.ts +0 -67
  470. package/src/functions/wirings/http/serialize-http-types.ts +0 -89
  471. package/src/functions/wirings/http/serialize-typed-http-map.ts +0 -154
  472. package/src/functions/wirings/mcp/pikku-command-mcp-json.ts +0 -33
  473. package/src/functions/wirings/mcp/pikku-command-mcp-types.ts +0 -25
  474. package/src/functions/wirings/mcp/pikku-command-mcp.ts +0 -140
  475. package/src/functions/wirings/mcp/serialize-mcp-json.ts +0 -159
  476. package/src/functions/wirings/mcp/serialize-mcp-types.ts +0 -143
  477. package/src/functions/wirings/middleware/pikku-command-middleware.ts +0 -85
  478. package/src/functions/wirings/middleware/serialize-middleware-groups-meta.ts +0 -40
  479. package/src/functions/wirings/middleware/serialize-middleware-imports.ts +0 -78
  480. package/src/functions/wirings/permissions/pikku-command-permissions.ts +0 -49
  481. package/src/functions/wirings/permissions/serialize-permissions-imports.test.ts +0 -274
  482. package/src/functions/wirings/permissions/serialize-permissions-imports.ts +0 -78
  483. package/src/functions/wirings/queue/pikku-command-queue-map.ts +0 -26
  484. package/src/functions/wirings/queue/pikku-command-queue-service.ts +0 -37
  485. package/src/functions/wirings/queue/pikku-command-queue-types.ts +0 -25
  486. package/src/functions/wirings/queue/pikku-command-queue.ts +0 -66
  487. package/src/functions/wirings/queue/pikku-queue-map.ts +0 -26
  488. package/src/functions/wirings/queue/pikku-queue.ts +0 -75
  489. package/src/functions/wirings/queue/serialize-queue-map.ts +0 -119
  490. package/src/functions/wirings/queue/serialize-queue-meta.ts +0 -24
  491. package/src/functions/wirings/queue/serialize-queue-types.ts +0 -30
  492. package/src/functions/wirings/queue/serialize-queue-wrapper.ts +0 -35
  493. package/src/functions/wirings/rpc/pikku-command-public-rpc.ts +0 -32
  494. package/src/functions/wirings/rpc/pikku-command-remote-rpc.ts +0 -35
  495. package/src/functions/wirings/rpc/pikku-command-rpc-client.ts +0 -35
  496. package/src/functions/wirings/rpc/pikku-command-rpc-map.ts +0 -48
  497. package/src/functions/wirings/rpc/pikku-command-rpc.ts +0 -49
  498. package/src/functions/wirings/rpc/serialize-public-rpc.ts +0 -37
  499. package/src/functions/wirings/rpc/serialize-remote-rpc.ts +0 -30
  500. package/src/functions/wirings/rpc/serialize-rpc-wrapper.ts +0 -68
  501. package/src/functions/wirings/rpc/serialize-typed-rpc-map.ts +0 -128
  502. package/src/functions/wirings/scheduler/pikku-command-scheduler-types.ts +0 -25
  503. package/src/functions/wirings/scheduler/pikku-command-scheduler.ts +0 -67
  504. package/src/functions/wirings/scheduler/serialize-scheduler-meta.ts +0 -37
  505. package/src/functions/wirings/scheduler/serialize-scheduler-types.ts +0 -28
  506. package/src/functions/wirings/services/pikku-command-service-metadata.ts +0 -25
  507. package/src/functions/wirings/workflow/pikku-command-workflow-map.ts +0 -24
  508. package/src/functions/wirings/workflow/pikku-command-workflow-types.ts +0 -29
  509. package/src/functions/wirings/workflow/pikku-command-workflow.ts +0 -151
  510. package/src/functions/wirings/workflow/serialize-workflow-map.ts +0 -123
  511. package/src/functions/wirings/workflow/serialize-workflow-meta.ts +0 -33
  512. package/src/functions/wirings/workflow/serialize-workflow-types.ts +0 -103
  513. package/src/functions/wirings/workflow/serialize-workflow-wirings.ts +0 -47
  514. package/src/functions/wirings/workflow/serialize-workflow-workers.ts +0 -60
  515. package/src/middleware/log-command-info-and-time.ts +0 -35
  516. package/src/services/cli-logger-forwarder.service.ts +0 -99
  517. package/src/services/cli-logger.service.ts +0 -108
  518. package/src/services.ts +0 -315
  519. package/src/utils/check-required-types.ts +0 -65
  520. package/src/utils/command-summary.ts +0 -103
  521. package/src/utils/custom-types-generator.ts +0 -55
  522. package/src/utils/file-import-path.test.ts +0 -175
  523. package/src/utils/file-import-path.ts +0 -53
  524. package/src/utils/file-imports-serializer.ts +0 -25
  525. package/src/utils/file-writer.ts +0 -72
  526. package/src/utils/generate-bootstrap-file.ts +0 -43
  527. package/src/utils/get-cli-version.ts +0 -28
  528. package/src/utils/pikku-cli-config.ts +0 -462
  529. package/src/utils/pikku-files-and-methods.ts +0 -145
  530. package/src/utils/schema-generator.ts +0 -172
  531. package/src/utils/serialize-import-map.ts +0 -102
  532. package/tsconfig.json +0 -21
  533. package/types/application-types.d.ts +0 -27
  534. package/types/config.d.ts +0 -270
  535. /package/dist/.pikku/{function/pikku-functions-meta.min.gen.d.ts → agent/pikku-agent-wirings-meta.gen.d.ts} +0 -0
  536. /package/dist/.pikku/{workflow/pikku-workflow-wirings-meta.gen.json → channel/pikku-channels-meta.gen.json} +0 -0
  537. /package/dist/src/functions/{wirings/channels → runtimes/websocket}/serialize-websocket-wrapper.d.ts +0 -0
  538. /package/dist/src/functions/{wirings/channels → runtimes/websocket}/serialize-websocket-wrapper.js +0 -0
@@ -11,6 +11,9 @@ import { pikkuSessionlessFunc, wireQueueWorker } from '${pathToPikkuTypes}'
11
11
  /**
12
12
  * Generic remote RPC worker that invokes any internal RPC by name
13
13
  * This is used for executing internal RPCs via a queue or HTTP (e.g., scheduled tasks, background jobs, internal services)
14
+ *
15
+ * TODO: Security risk - this allows any RPC to be invoked by name. Should validate
16
+ * that rpcName is in an allowlist of permitted internal RPCs to prevent unauthorized access.
14
17
  */
15
18
  export const pikkuRemoteInternalRPC = pikkuSessionlessFunc<
16
19
  { rpcName: string, data?: any },
@@ -19,11 +22,11 @@ export const pikkuRemoteInternalRPC = pikkuSessionlessFunc<
19
22
  func: async (_services, { rpcName, data }, { rpc }) => {
20
23
  return await (rpc.invoke as any)(rpcName, data)
21
24
  },
22
- internal: true,
25
+ remote: true,
23
26
  })
24
27
 
25
28
  wireQueueWorker({
26
- queueName: 'pikku-remote-internal-rpc',
29
+ name: 'pikku-remote-internal-rpc',
27
30
  func: pikkuRemoteInternalRPC,
28
31
  })
29
32
  `;
@@ -1,11 +1,11 @@
1
1
  export const serializeRPCWrapper = (rpcMapPath) => {
2
2
  return `
3
3
  import { PikkuFetch } from "./pikku-fetch.gen.js"
4
- import type { RPCInvoke } from '${rpcMapPath}'
4
+ import type { RPCInvoke, TypedAgent } from '${rpcMapPath}'
5
5
 
6
6
  /**
7
- * PikkuRPC provides a type-safe client for making Remote Procedure Calls (RPC)
8
- * to your Pikku server. It wraps the underlying HTTP client and provides a
7
+ * PikkuRPC provides a type-safe client for making Remote Procedure Calls (RPC)
8
+ * to your Pikku server. It wraps the underlying HTTP client and provides a
9
9
  * simple interface for invoking server-side functions.
10
10
  */
11
11
  export class PikkuRPC {
@@ -15,7 +15,7 @@ export class PikkuRPC {
15
15
  /**
16
16
  * Sets a custom PikkuFetch instance to use for RPC calls.
17
17
  * This allows you to configure custom settings or use a shared client instance.
18
- *
18
+ *
19
19
  * @param pikkuFetch - The PikkuFetch instance to use
20
20
  */
21
21
  setPikkuFetch(pikkuFetch: PikkuFetch): void {
@@ -24,7 +24,7 @@ export class PikkuRPC {
24
24
 
25
25
  /**
26
26
  * Sets the base server URL for all RPC calls.
27
- *
27
+ *
28
28
  * @param serverUrl - The base URL of your Pikku server (e.g., 'https://api.example.com')
29
29
  */
30
30
  setServerUrl(serverUrl: string): void {
@@ -33,7 +33,7 @@ export class PikkuRPC {
33
33
 
34
34
  /**
35
35
  * Sets the JWT token for authorization on all RPC calls.
36
- *
36
+ *
37
37
  * @param jwt - The JWT token to use for authorization, or null to remove authorization
38
38
  */
39
39
  setAuthorizationJWT(jwt: string | null): void {
@@ -42,7 +42,7 @@ export class PikkuRPC {
42
42
 
43
43
  /**
44
44
  * Sets the API key for authorization on all RPC calls.
45
- *
45
+ *
46
46
  * @param apiKey - The API key to use for authorization, or null to remove the API key
47
47
  */
48
48
  setAPIKey(apiKey: string | null): void {
@@ -59,7 +59,18 @@ export class PikkuRPC {
59
59
  * @returns A promise that resolves with the function's return value
60
60
  */
61
61
  invoke: RPCInvoke = async (rpcName, data) => {
62
- return await this.pikkuFetch.post(\`/rpc/\${rpcName}\` as any, { rpcName, data }) as any
62
+ return await this.pikkuFetch.post(\`/rpc/\${String(rpcName)}\` as never, { rpcName: String(rpcName), data }) as any
63
+ }
64
+
65
+ /**
66
+ * Invokes an AI agent on the server.
67
+ *
68
+ * @param agentName - The name of the agent to invoke
69
+ * @param input - The agent input (message, threadId, resourceId)
70
+ * @returns A promise that resolves with the agent's output
71
+ */
72
+ agent: TypedAgent = async (agentName, input) => {
73
+ return await this.pikkuFetch.post(\`/rpc/agent/\${String(agentName)}\` as never, input) as any
63
74
  }
64
75
  }
65
76
 
@@ -1,3 +1,6 @@
1
- import { TypesMap } from '@pikku/inspector';
2
- import { FunctionsMeta } from '@pikku/core';
3
- export declare const serializeTypedRPCMap: (relativeToPath: string, packageMappings: Record<string, string>, typesMap: TypesMap, functionsMeta: FunctionsMeta, rpcMeta: Record<string, string>) => string;
1
+ import { TypesMap, ExternalPackageConfig } from '@pikku/inspector';
2
+ import { Logger } from '@pikku/core/services';
3
+ export declare const serializeTypedRPCMap: (logger: Logger, relativeToPath: string, packageMappings: Record<string, string>, typesMap: TypesMap, rpcMeta: Record<string, string>, resolvedIOTypes: Record<string, {
4
+ inputType: string;
5
+ outputType: string;
6
+ }>, externalPackages?: Record<string, ExternalPackageConfig>, workflowMapPath?: string, agentMapPath?: string) => string;
@@ -1,16 +1,35 @@
1
1
  import { serializeImportMap } from '../../../utils/serialize-import-map.js';
2
- import { generateCustomTypes } from '../../../utils/custom-types-generator.js';
3
- export const serializeTypedRPCMap = (relativeToPath, packageMappings, typesMap, functionsMeta, rpcMeta) => {
2
+ import { generateCustomTypes, } from '@pikku/inspector';
3
+ export const serializeTypedRPCMap = (logger, relativeToPath, packageMappings, typesMap, rpcMeta, resolvedIOTypes, externalPackages, workflowMapPath, agentMapPath) => {
4
4
  const requiredTypes = new Set();
5
5
  const serializedCustomTypes = generateCustomTypes(typesMap, requiredTypes);
6
- const serializedRPCs = generateRPCs(rpcMeta, functionsMeta, typesMap, requiredTypes);
7
- const serializedImportMap = serializeImportMap(relativeToPath, packageMappings, typesMap, requiredTypes);
6
+ const serializedRPCs = generateRPCs(rpcMeta, resolvedIOTypes, requiredTypes);
7
+ const mcpTypes = [
8
+ 'MCPResourceResponse',
9
+ 'MCPToolResponse',
10
+ 'MCPPromptResponse',
11
+ ];
12
+ const usedMcpTypes = mcpTypes.filter((t) => requiredTypes.has(t));
13
+ const mcpImport = usedMcpTypes.length > 0
14
+ ? `import type { ${usedMcpTypes.join(', ')} } from '@pikku/core/mcp'`
15
+ : '';
16
+ for (const t of usedMcpTypes) {
17
+ requiredTypes.delete(t);
18
+ }
19
+ const serializedImportMap = serializeImportMap(logger, relativeToPath, packageMappings, typesMap, requiredTypes);
20
+ const serializedCustomTypesDeclarationsOnly = serializedCustomTypes
21
+ .split('\n')
22
+ .filter((line) => !line.startsWith('import '))
23
+ .join('\n');
24
+ const externalPackageImports = generateExternalPackageImports(externalPackages, relativeToPath);
25
+ const mergedRPCMap = generateMergedRPCMap(externalPackages);
8
26
  return `/**
9
27
  * This provides the structure needed for typescript to be aware of RPCs and their return types
10
28
  */
11
-
29
+
30
+ ${mcpImport}
12
31
  ${serializedImportMap}
13
- ${serializedCustomTypes}
32
+ ${serializedCustomTypesDeclarationsOnly}
14
33
 
15
34
  interface RPCHandler<I, O> {
16
35
  input: I;
@@ -18,68 +37,120 @@ interface RPCHandler<I, O> {
18
37
  }
19
38
 
20
39
  ${serializedRPCs}
40
+ ${externalPackageImports}
41
+ ${mergedRPCMap}
42
+
43
+ export type RPCInvoke = <Name extends keyof FlattenedRPCMap>(
44
+ name: Name,
45
+ data: FlattenedRPCMap[Name]['input']
46
+ ) => Promise<FlattenedRPCMap[Name]['output']>
21
47
 
22
- export type RPCInvoke = <Name extends keyof RPCMap>(
48
+ export type RPCRemote = <Name extends keyof FlattenedRPCMap>(
23
49
  name: Name,
24
- data: RPCMap[Name]['input'],
25
- options?: {
26
- location?: 'local' | 'remote' | 'auto'
27
- }
28
- ) => Promise<RPCMap[Name]['output']>
50
+ data: FlattenedRPCMap[Name]['input']
51
+ ) => Promise<FlattenedRPCMap[Name]['output']>
29
52
 
30
- // Import WorkflowMap for workflow typing
31
- import type { WorkflowMap } from '../workflow/pikku-workflow-map.gen.js'
53
+ ${workflowMapPath ? `import type { WorkflowMap } from '${workflowMapPath}'` : `type WorkflowMap = {}`}
32
54
 
33
- export type TypedPikkuRPC = {
34
- depth: number;
35
- global: boolean;
36
- invoke: RPCInvoke;
37
- invokeExposed: (name: string, data: any) => Promise<any>;
38
- startWorkflow: <Name extends keyof WorkflowMap>(
39
- name: Name,
40
- input: WorkflowMap[Name]['input']
41
- ) => Promise<{ runId: string }>;
55
+ ${agentMapPath ? `import type { AgentMap } from '${agentMapPath}'` : `type AgentMap = {}`}
56
+ ${generateExternalAgentImports(externalPackages)}
57
+ ${generateMergedAgentMap(externalPackages)}
58
+
59
+ import type { PikkuRPC } from '@pikku/core/rpc'
60
+
61
+ interface AIAgentInput {
62
+ message: string
63
+ threadId: string
64
+ resourceId: string
42
65
  }
66
+
67
+ type TypedStartWorkflow = <Name extends keyof WorkflowMap>(
68
+ name: Name,
69
+ input: WorkflowMap[Name]['input'],
70
+ options?: { startNode?: string }
71
+ ) => Promise<{ runId: string }>
72
+
73
+ type TypedAgent = <Name extends keyof FlattenedAgentMap>(
74
+ name: Name,
75
+ input: AIAgentInput
76
+ ) => Promise<{ runId: string; result: FlattenedAgentMap[Name]['output']; usage: { inputTokens: number; outputTokens: number } }>
77
+
78
+ export type TypedPikkuRPC = PikkuRPC<RPCInvoke, RPCRemote, TypedStartWorkflow, TypedAgent>
43
79
  `;
44
80
  };
45
- function generateRPCs(rpcMeta, functionsMeta, typesMap, requiredTypes) {
46
- // Initialize an object to collect RPCs
81
+ function generateExternalPackageImports(externalPackages, relativeToPath) {
82
+ if (!externalPackages || Object.keys(externalPackages).length === 0) {
83
+ return '';
84
+ }
85
+ let imports = '\n// External package RPC maps\n';
86
+ for (const [namespace, config] of Object.entries(externalPackages)) {
87
+ // Import the RPCMap from each external package's internal RPC map
88
+ // Use .js extension - package.json exports will resolve to .d.ts for types
89
+ imports += `import type { RPCMap as ${toPascalCase(namespace)}RPCMap } from '${config.package}/.pikku/rpc/pikku-rpc-wirings-map.internal.gen.js'\n`;
90
+ }
91
+ return imports;
92
+ }
93
+ function generateMergedRPCMap(externalPackages) {
94
+ if (!externalPackages || Object.keys(externalPackages).length === 0) {
95
+ return `
96
+ // No external packages, use RPCMap directly
97
+ export type FlattenedRPCMap = RPCMap
98
+ `;
99
+ }
100
+ // TypeScript utility to flatten namespaced RPC maps
101
+ const utilityTypes = `
102
+ // Utility type to prefix keys with namespace
103
+ type PrefixKeys<T, Prefix extends string> = {
104
+ [K in keyof T as \`\${Prefix}:\${string & K}\`]: T[K]
105
+ }
106
+
107
+ // Merge all RPC maps with namespace prefixes
108
+ export type FlattenedRPCMap =
109
+ RPCMap${Object.keys(externalPackages)
110
+ .map((namespace) => ` & PrefixKeys<${toPascalCase(namespace)}RPCMap, '${namespace}'>`)
111
+ .join('')}
112
+ `;
113
+ return utilityTypes;
114
+ }
115
+ function toPascalCase(str) {
116
+ return str
117
+ .split(/[-_]/)
118
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
119
+ .join('');
120
+ }
121
+ function generateExternalAgentImports(externalPackages) {
122
+ if (!externalPackages || Object.keys(externalPackages).length === 0) {
123
+ return '';
124
+ }
125
+ let imports = '\n// External package Agent maps\n';
126
+ for (const [namespace, config] of Object.entries(externalPackages)) {
127
+ imports += `import type { AgentMap as ${toPascalCase(namespace)}AgentMap } from '${config.package}/.pikku/agent/pikku-agent-map.gen.d.js'\n`;
128
+ }
129
+ return imports;
130
+ }
131
+ function generateMergedAgentMap(externalPackages) {
132
+ if (!externalPackages || Object.keys(externalPackages).length === 0) {
133
+ return `
134
+ type FlattenedAgentMap = AgentMap
135
+ `;
136
+ }
137
+ return `
138
+ type FlattenedAgentMap =
139
+ AgentMap${Object.keys(externalPackages)
140
+ .map((namespace) => ` & PrefixKeys<${toPascalCase(namespace)}AgentMap, '${namespace}'>`)
141
+ .join('')}
142
+ `;
143
+ }
144
+ function generateRPCs(rpcMeta, resolvedIOTypes, requiredTypes) {
47
145
  const rpcsObj = {};
48
- // Iterate through RPC metadata
49
- for (const [funcName, pikkuFuncName] of Object.entries(rpcMeta)) {
50
- const functionMeta = functionsMeta[pikkuFuncName];
51
- if (!functionMeta) {
52
- throw new Error(`Function ${funcName} not found in functionsMeta. Please check your configuration.`);
53
- }
54
- const input = functionMeta.inputs ? functionMeta.inputs[0] : undefined;
55
- const output = functionMeta.outputs ? functionMeta.outputs[0] : undefined;
56
- // Store the input and output types for RPCHandler
57
- // Use 'any' for types not in typesMap (e.g., inline types in generated workflow workers)
58
- let inputType = 'null';
59
- if (input) {
60
- try {
61
- inputType = typesMap.getTypeMeta(input).uniqueName;
62
- }
63
- catch {
64
- inputType = 'any';
65
- }
66
- }
67
- let outputType = 'null';
68
- if (output) {
69
- try {
70
- outputType = typesMap.getTypeMeta(output).uniqueName;
71
- }
72
- catch {
73
- outputType = 'any';
74
- }
146
+ for (const [funcName, pikkuFuncId] of Object.entries(rpcMeta)) {
147
+ const resolved = resolvedIOTypes[pikkuFuncId];
148
+ if (!resolved) {
149
+ throw new Error(`Function ${pikkuFuncId} not found in resolvedIOTypes. Please check your configuration.`);
75
150
  }
76
- requiredTypes.add(inputType);
77
- requiredTypes.add(outputType);
78
- // Add RPC entry
79
- rpcsObj[funcName] = {
80
- inputType,
81
- outputType,
82
- };
151
+ requiredTypes.add(resolved.inputType);
152
+ requiredTypes.add(resolved.outputType);
153
+ rpcsObj[funcName] = resolved;
83
154
  }
84
155
  // Build the RPCs object as a string
85
156
  let rpcsStr = 'export type RPCMap = {\n';
@@ -1 +1 @@
1
- export declare const pikkuSchedulerTypes: any;
1
+ export declare const pikkuSchedulerTypes: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
@@ -1,4 +1,4 @@
1
- import { pikkuSessionlessFunc } from '../../../../.pikku/pikku-types.gen.js';
1
+ import { pikkuSessionlessFunc } from '#pikku';
2
2
  import { writeFileInDir } from '../../../utils/file-writer.js';
3
3
  import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
4
4
  import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
@@ -1 +1 @@
1
- export declare const pikkuScheduler: any;
1
+ export declare const pikkuScheduler: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
@@ -1,15 +1,24 @@
1
- import { pikkuSessionlessFunc } from '../../../../.pikku/pikku-types.gen.js';
1
+ import { pikkuSessionlessFunc } from '#pikku';
2
2
  import { serializeFileImports } from '../../../utils/file-imports-serializer.js';
3
3
  import { writeFileInDir } from '../../../utils/file-writer.js';
4
4
  import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
5
5
  import { serializeSchedulerMeta, serializeSchedulerMetaTS, } from './serialize-scheduler-meta.js';
6
6
  import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
7
+ import { stripVerboseFields, hasVerboseFields, } from '../../../utils/strip-verbose-meta.js';
7
8
  export const pikkuScheduler = pikkuSessionlessFunc({
8
9
  func: async ({ logger, config, getInspectorState }) => {
9
10
  const visitState = await getInspectorState();
10
11
  const { schedulersWiringFile, schedulersWiringMetaFile, schedulersWiringMetaJsonFile, packageMappings, schema, } = config;
11
12
  const { scheduledTasks } = visitState;
12
- await writeFileInDir(logger, schedulersWiringMetaJsonFile, JSON.stringify(serializeSchedulerMeta(scheduledTasks.meta), null, 2));
13
+ const fullMeta = serializeSchedulerMeta(scheduledTasks.meta);
14
+ // Write minimal JSON (runtime-only fields)
15
+ const minimalMeta = stripVerboseFields(fullMeta);
16
+ await writeFileInDir(logger, schedulersWiringMetaJsonFile, JSON.stringify(minimalMeta, null, 2));
17
+ // Write verbose JSON only if it has additional fields
18
+ if (hasVerboseFields(fullMeta)) {
19
+ const verbosePath = schedulersWiringMetaJsonFile.replace(/\.gen\.json$/, '-verbose.gen.json');
20
+ await writeFileInDir(logger, verbosePath, JSON.stringify(fullMeta, null, 2));
21
+ }
13
22
  const jsonImportPath = getFileImportRelativePath(schedulersWiringMetaFile, schedulersWiringMetaJsonFile, packageMappings);
14
23
  await writeFileInDir(logger, schedulersWiringMetaFile, serializeSchedulerMetaTS(scheduledTasks.meta, jsonImportPath, schema?.supportsImportAttributes ?? false));
15
24
  await writeFileInDir(logger, schedulersWiringFile, serializeFileImports('addScheduledTasks', schedulersWiringFile, scheduledTasks.files, packageMappings));
@@ -1,3 +1,3 @@
1
1
  import { ScheduledTasksMeta } from '@pikku/core/scheduler';
2
2
  export declare const serializeSchedulerMeta: (scheduledTasksMeta: ScheduledTasksMeta) => ScheduledTasksMeta;
3
- export declare const serializeSchedulerMetaTS: (scheduledTasksMeta: ScheduledTasksMeta, jsonImportPath: string, supportsImportAttributes: any) => string;
3
+ export declare const serializeSchedulerMetaTS: (scheduledTasksMeta: ScheduledTasksMeta, jsonImportPath: string, supportsImportAttributes: boolean) => string;
@@ -1,20 +1,21 @@
1
+ import { serializeMetaTS } from '../../../utils/serialize-meta-ts.js';
1
2
  export const serializeSchedulerMeta = (scheduledTasksMeta) => {
2
3
  return scheduledTasksMeta;
3
4
  };
4
5
  export const serializeSchedulerMetaTS = (scheduledTasksMeta, jsonImportPath, supportsImportAttributes) => {
5
- const importStatement = supportsImportAttributes
6
- ? `import metaData from '${jsonImportPath}' with { type: 'json' }`
7
- : `import metaData from '${jsonImportPath}'`;
8
- const serializedOutput = [];
9
- serializedOutput.push("import { pikkuState } from '@pikku/core'");
10
- serializedOutput.push("import { ScheduledTasksMeta } from '@pikku/core/scheduler'");
11
- serializedOutput.push(importStatement);
12
- serializedOutput.push('');
13
- serializedOutput.push("pikkuState('scheduler', 'meta', metaData as ScheduledTasksMeta)");
14
- serializedOutput.push('');
6
+ const base = serializeMetaTS({
7
+ jsonImportPath,
8
+ supportsImportAttributes,
9
+ pikkuStateNamespace: 'scheduler',
10
+ pikkuStateKey: 'meta',
11
+ metaTypeImport: '@pikku/core/scheduler',
12
+ metaTypeName: 'ScheduledTasksMeta',
13
+ });
15
14
  const scheduledTasksMetaValues = Object.values(scheduledTasksMeta);
16
15
  if (scheduledTasksMetaValues.length > 0) {
17
- serializedOutput.push(`export type ScheduledTaskNames = '${scheduledTasksMetaValues.map((s) => s.name).join("' | '")}'`);
16
+ return (base +
17
+ '\n\n' +
18
+ `export type ScheduledTaskNames = '${scheduledTasksMetaValues.map((s) => s.name).join("' | '")}'`);
18
19
  }
19
- return serializedOutput.join('\n');
20
+ return base;
20
21
  };
@@ -22,7 +22,7 @@ type SchedulerWiring = CoreScheduledTask<PikkuFunctionConfig<void, void, 'sessio
22
22
  * @param task - Scheduled task definition with cron expression and handler
23
23
  */
24
24
  export const wireScheduler = (task: SchedulerWiring) => {
25
- wireSchedulerCore(task as any) // TODO
25
+ wireSchedulerCore(task as any)
26
26
  }
27
27
  `;
28
28
  };
@@ -0,0 +1 @@
1
+ export declare const pikkuSecrets: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
@@ -0,0 +1,31 @@
1
+ import { pikkuSessionlessFunc } from '#pikku';
2
+ import { writeFileInDir } from '../../../utils/file-writer.js';
3
+ import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
4
+ import { serializeSecretsTypes } from './serialize-secrets-types.js';
5
+ import { validateAndBuildSecretDefinitionsMeta } from '@pikku/core/secret';
6
+ export const pikkuSecrets = pikkuSessionlessFunc({
7
+ func: async ({ logger, config, getInspectorState }) => {
8
+ const { secretsFile, secretsMetaJsonFile, packageMappings } = config;
9
+ if (!secretsFile) {
10
+ return;
11
+ }
12
+ const state = await getInspectorState();
13
+ const content = serializeSecretsTypes({
14
+ definitions: state.secrets.definitions,
15
+ schemaLookup: state.schemaLookup,
16
+ secretsFile,
17
+ packageMappings,
18
+ });
19
+ await writeFileInDir(logger, secretsFile, content);
20
+ if (secretsMetaJsonFile) {
21
+ const meta = validateAndBuildSecretDefinitionsMeta(state.secrets.definitions, state.schemaLookup);
22
+ await writeFileInDir(logger, secretsMetaJsonFile, JSON.stringify(meta, null, 2));
23
+ }
24
+ },
25
+ middleware: [
26
+ logCommandInfoAndTime({
27
+ commandStart: 'Creating PikkuSecrets types',
28
+ commandEnd: 'Created PikkuSecrets types',
29
+ }),
30
+ ],
31
+ });
@@ -0,0 +1,9 @@
1
+ import { SecretDefinitions } from '@pikku/core/secret';
2
+ import { SchemaRef } from '@pikku/inspector';
3
+ export interface SerializeSecretsOptions {
4
+ definitions: SecretDefinitions;
5
+ schemaLookup: Map<string, SchemaRef>;
6
+ secretsFile: string;
7
+ packageMappings: Record<string, string>;
8
+ }
9
+ export declare const serializeSecretsTypes: ({ definitions, schemaLookup, secretsFile, packageMappings, }: SerializeSecretsOptions) => string;
@@ -0,0 +1,64 @@
1
+ import { validateAndBuildSecretDefinitionsMeta } from '@pikku/core/secret';
2
+ import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
3
+ export const serializeSecretsTypes = ({ definitions, schemaLookup, secretsFile, packageMappings, }) => {
4
+ const secrets = validateAndBuildSecretDefinitionsMeta(definitions, schemaLookup);
5
+ const credentialEntries = Object.entries(secrets);
6
+ const schemaImports = new Map();
7
+ let needsOAuth2Types = false;
8
+ let needsZod = false;
9
+ const mapEntries = [];
10
+ const metaEntries = [];
11
+ for (const [name, meta] of credentialEntries) {
12
+ if (meta.oauth2) {
13
+ needsOAuth2Types = true;
14
+ mapEntries.push(` '${meta.secretId}': OAuth2AppCredential`);
15
+ mapEntries.push(` '${meta.oauth2.tokenSecretId}': OAuth2Token`);
16
+ metaEntries.push(` '${meta.secretId}': { name: '${name}', displayName: '${meta.displayName}', oauth2: { tokenSecretId: '${meta.oauth2.tokenSecretId}' } }`);
17
+ metaEntries.push(` '${meta.oauth2.tokenSecretId}': { name: '${name}_tokens', displayName: '${meta.displayName} Tokens' }`);
18
+ }
19
+ else if (meta.schema && typeof meta.schema === 'string') {
20
+ const schemaRef = schemaLookup.get(meta.schema);
21
+ if (schemaRef) {
22
+ needsZod = true;
23
+ if (!schemaImports.has(schemaRef.sourceFile)) {
24
+ schemaImports.set(schemaRef.sourceFile, new Set());
25
+ }
26
+ schemaImports.get(schemaRef.sourceFile).add(schemaRef.variableName);
27
+ mapEntries.push(` '${meta.secretId}': z.infer<typeof ${schemaRef.variableName}>`);
28
+ metaEntries.push(` '${meta.secretId}': { name: '${name}', displayName: '${meta.displayName}' }`);
29
+ }
30
+ }
31
+ }
32
+ const imports = [];
33
+ imports.push(`import { TypedSecretService as CoreTypedSecretService, type CredentialMeta } from '@pikku/core/services'`);
34
+ imports.push(`import type { SecretService } from '@pikku/core/services'`);
35
+ if (needsZod) {
36
+ imports.push(`import type { z } from 'zod'`);
37
+ }
38
+ if (needsOAuth2Types) {
39
+ imports.push(`import type { OAuth2AppCredential, OAuth2Token } from '@pikku/core/oauth2'`);
40
+ }
41
+ for (const [sourceFile, variableNames] of schemaImports) {
42
+ const importPath = getFileImportRelativePath(secretsFile, sourceFile, packageMappings);
43
+ const vars = Array.from(variableNames).join(', ');
44
+ imports.push(`import { ${vars} } from '${importPath}'`);
45
+ }
46
+ return `${imports.join('\n')}
47
+
48
+ export interface CredentialsMap {
49
+ ${mapEntries.join('\n')}
50
+ }
51
+
52
+ export type SecretId = keyof CredentialsMap
53
+
54
+ const CREDENTIALS_META: Record<string, CredentialMeta> = {
55
+ ${metaEntries.join(',\n')}
56
+ }
57
+
58
+ export class TypedSecretService extends CoreTypedSecretService<CredentialsMap> {
59
+ constructor(secrets: SecretService) {
60
+ super(secrets, CREDENTIALS_META)
61
+ }
62
+ }
63
+ `;
64
+ };
@@ -0,0 +1 @@
1
+ export declare const pikkuTriggerTypes: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
@@ -0,0 +1,24 @@
1
+ import { pikkuSessionlessFunc } from '#pikku';
2
+ import { writeFileInDir } from '../../../utils/file-writer.js';
3
+ import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
4
+ import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
5
+ import { serializeTriggerTypes } from './serialize-trigger-types.js';
6
+ export const pikkuTriggerTypes = pikkuSessionlessFunc({
7
+ func: async ({ logger, config, getInspectorState }) => {
8
+ const { triggersTypesFile, packageMappings } = config;
9
+ const visitState = await getInspectorState();
10
+ const { singletonServicesType } = visitState.filesAndMethods;
11
+ if (!singletonServicesType) {
12
+ throw new Error('SingletonServices type not found');
13
+ }
14
+ const singletonServicesTypeImport = `import type { ${singletonServicesType.type} } from '${getFileImportRelativePath(triggersTypesFile, singletonServicesType.typePath, packageMappings)}'`;
15
+ const content = serializeTriggerTypes(singletonServicesTypeImport, singletonServicesType.type);
16
+ await writeFileInDir(logger, triggersTypesFile, content);
17
+ },
18
+ middleware: [
19
+ logCommandInfoAndTime({
20
+ commandStart: 'Creating trigger types',
21
+ commandEnd: 'Created trigger types',
22
+ }),
23
+ ],
24
+ });
@@ -0,0 +1 @@
1
+ export declare const pikkuTrigger: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
@@ -0,0 +1,40 @@
1
+ import { pikkuSessionlessFunc } from '#pikku';
2
+ import { serializeFileImports } from '../../../utils/file-imports-serializer.js';
3
+ import { writeFileInDir } from '../../../utils/file-writer.js';
4
+ import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
5
+ import { serializeTriggerMeta, serializeTriggerMetaTS, serializeTriggerSourceMeta, serializeTriggerSourceMetaTS, } from './serialize-trigger-meta.js';
6
+ import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
7
+ import { stripVerboseFields, hasVerboseFields, } from '../../../utils/strip-verbose-meta.js';
8
+ export const pikkuTrigger = pikkuSessionlessFunc({
9
+ func: async ({ logger, config, getInspectorState }) => {
10
+ const visitState = await getInspectorState();
11
+ const { triggersWiringFile, triggersWiringMetaFile, triggersWiringMetaJsonFile, triggerSourcesMetaFile, triggerSourcesMetaJsonFile, packageMappings, schema, } = config;
12
+ const { triggers } = visitState;
13
+ if (Object.keys(triggers.meta).length === 0) {
14
+ return undefined;
15
+ }
16
+ const fullMeta = serializeTriggerMeta(triggers.meta);
17
+ // Write minimal JSON (runtime-only fields)
18
+ const minimalMeta = stripVerboseFields(fullMeta);
19
+ await writeFileInDir(logger, triggersWiringMetaJsonFile, JSON.stringify(minimalMeta, null, 2));
20
+ // Write verbose JSON only if it has additional fields
21
+ if (hasVerboseFields(fullMeta)) {
22
+ const verbosePath = triggersWiringMetaJsonFile.replace(/\.gen\.json$/, '-verbose.gen.json');
23
+ await writeFileInDir(logger, verbosePath, JSON.stringify(fullMeta, null, 2));
24
+ }
25
+ const jsonImportPath = getFileImportRelativePath(triggersWiringMetaFile, triggersWiringMetaJsonFile, packageMappings);
26
+ await writeFileInDir(logger, triggersWiringMetaFile, serializeTriggerMetaTS(triggers.meta, jsonImportPath, schema?.supportsImportAttributes ?? false));
27
+ await writeFileInDir(logger, triggersWiringFile, serializeFileImports('wireTrigger', triggersWiringFile, triggers.files, packageMappings));
28
+ const sourceMetaJson = serializeTriggerSourceMeta(triggers.sourceMeta);
29
+ await writeFileInDir(logger, triggerSourcesMetaJsonFile, JSON.stringify(sourceMetaJson, null, 2));
30
+ const sourceMetaJsonImportPath = getFileImportRelativePath(triggerSourcesMetaFile, triggerSourcesMetaJsonFile, packageMappings);
31
+ await writeFileInDir(logger, triggerSourcesMetaFile, serializeTriggerSourceMetaTS(triggers.sourceMeta, sourceMetaJsonImportPath, schema?.supportsImportAttributes ?? false));
32
+ return true;
33
+ },
34
+ middleware: [
35
+ logCommandInfoAndTime({
36
+ commandStart: 'Finding triggers',
37
+ commandEnd: 'Found triggers',
38
+ }),
39
+ ],
40
+ });
@@ -0,0 +1,5 @@
1
+ import { TriggerMeta, TriggerSourceMeta } from '@pikku/core/trigger';
2
+ export declare const serializeTriggerMeta: (triggerMeta: TriggerMeta) => TriggerMeta;
3
+ export declare const serializeTriggerMetaTS: (triggerMeta: TriggerMeta, jsonImportPath: string, supportsImportAttributes: boolean) => string;
4
+ export declare const serializeTriggerSourceMeta: (sourceMeta: TriggerSourceMeta) => TriggerSourceMeta;
5
+ export declare const serializeTriggerSourceMetaTS: (sourceMeta: TriggerSourceMeta, jsonImportPath: string, supportsImportAttributes: boolean) => string;