@pikku/cli 0.12.107 → 0.12.110

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 (258) hide show
  1. package/CHANGELOG.md +137 -0
  2. package/console-app/assets/{abnfDiagram-N423BO3Z-C5uToS9v.js → abnfDiagram-N423BO3Z-Bz2Ycfpe.js} +1 -1
  3. package/console-app/assets/architecture-TIHT7OUA-5QhJKy4P.js +1 -0
  4. package/console-app/assets/{architectureDiagram-T3A2C74G-BzJDRfv4.js → architectureDiagram-T3A2C74G-CvAkxhy0.js} +1 -1
  5. package/console-app/assets/{blockDiagram-VBNYF7ZC-X5G9Ch-D.js → blockDiagram-VBNYF7ZC-CuVOo2PB.js} +1 -1
  6. package/console-app/assets/{c4Diagram-5PPSVZJV-B59aO2Sc.js → c4Diagram-5PPSVZJV-4Vg8SxCa.js} +1 -1
  7. package/console-app/assets/channel-DoE3nnYB.js +1 -0
  8. package/console-app/assets/{chunk-2GRJ4B5K-Bwe32j_R.js → chunk-2GRJ4B5K-CKKR4_dC.js} +1 -1
  9. package/console-app/assets/{chunk-4I5QYGJK-Beg_uQQN.js → chunk-4I5QYGJK-C-m_kVjm.js} +1 -1
  10. package/console-app/assets/{chunk-5RXB4S5H-0HaMiv3k.js → chunk-5RXB4S5H-CyUGtd0h.js} +1 -1
  11. package/console-app/assets/{chunk-6Q2QTUOP-CXxkExOq.js → chunk-6Q2QTUOP-BuzItInf.js} +1 -1
  12. package/console-app/assets/{chunk-7Z6QIM7H-zUqPbrvp.js → chunk-7Z6QIM7H-BGiBPuWt.js} +1 -1
  13. package/console-app/assets/{chunk-GF5L2VYU-CY0wGPcJ.js → chunk-GF5L2VYU-D8jaliB9.js} +1 -1
  14. package/console-app/assets/{chunk-I66GZJ75-BP5UNkJY.js → chunk-I66GZJ75-C-Lq_UXl.js} +1 -1
  15. package/console-app/assets/{chunk-JQJVKLGR-3dvnUUZN.js → chunk-JQJVKLGR-D7viK-tf.js} +1 -1
  16. package/console-app/assets/{chunk-KBJHAD2P-ChD7o2bf.js → chunk-KBJHAD2P-BS9N9gG4.js} +1 -1
  17. package/console-app/assets/{chunk-NSK5VX7P-oG1nh33f.js → chunk-NSK5VX7P-Fi_H0vaS.js} +1 -1
  18. package/console-app/assets/{chunk-QR6OTTB3-D_uKJrj6.js → chunk-QR6OTTB3-BJdg-tcL.js} +1 -1
  19. package/console-app/assets/{chunk-RYQCIY6F-CtYhP8W5.js → chunk-RYQCIY6F-CVbGA6YZ.js} +1 -1
  20. package/console-app/assets/{chunk-UBXNYLIW-CMgD3fvL.js → chunk-UBXNYLIW-BF-sAqEK.js} +1 -1
  21. package/console-app/assets/{chunk-W5SLKNZC-cjI56NCs.js → chunk-W5SLKNZC-CXrJJ0BX.js} +1 -1
  22. package/console-app/assets/{chunk-WRU74C26-BQqHgerX.js → chunk-WRU74C26-CGzysGBy.js} +1 -1
  23. package/console-app/assets/chunk-XXDRQBXY-BDALKVU4.js +1 -0
  24. package/console-app/assets/classDiagram-JCYQIIEL-BgrrHQtN.js +1 -0
  25. package/console-app/assets/classDiagram-v2-OCEON4UE-BgrrHQtN.js +1 -0
  26. package/console-app/assets/{cose-bilkent-JH36ORCC-DcHzDpDb.js → cose-bilkent-JH36ORCC-BvFZIDHb.js} +1 -1
  27. package/console-app/assets/{cynefin-VYW2F7L2-Cn2zn-8-.js → cynefin-VYW2F7L2-DRQ8xGmN.js} +1 -1
  28. package/console-app/assets/{cynefinDiagram-MW4NZA55-C00zINdu.js → cynefinDiagram-MW4NZA55-BwxQ4C1z.js} +1 -1
  29. package/console-app/assets/{dagre-DE2imcyX.js → dagre-J22zmNeE.js} +1 -1
  30. package/console-app/assets/{dagre-VZM6K2ZE-Bb2uZ7tL.js → dagre-VZM6K2ZE-DPtUyvjD.js} +1 -1
  31. package/console-app/assets/{diagram-7IWD3JNH-DUN-JIa1.js → diagram-7IWD3JNH-DGAzJ2Ln.js} +1 -1
  32. package/console-app/assets/{diagram-B4RE2ZJO-Ct5iRFhI.js → diagram-B4RE2ZJO-D14cIfto.js} +1 -1
  33. package/console-app/assets/{diagram-LBJQPF4R-BZ2Hrr-9.js → diagram-LBJQPF4R-CUscJ_pO.js} +1 -1
  34. package/console-app/assets/{diagram-Q27KOJAE-BHaThj6T.js → diagram-Q27KOJAE-CehBHMt3.js} +1 -1
  35. package/console-app/assets/{diagram-UB23O5K3-CH-SzBoh.js → diagram-UB23O5K3-BvazI_qH.js} +1 -1
  36. package/console-app/assets/{ebnfDiagram-BXEA7PRR-BkjeNaQH.js → ebnfDiagram-BXEA7PRR-CBZPYFwZ.js} +1 -1
  37. package/console-app/assets/{erDiagram-JOGREHBK-BdL77bY3.js → erDiagram-JOGREHBK-BN3FevvT.js} +1 -1
  38. package/console-app/assets/eventmodeling-45OFAUF4-D2SxzJUl.js +1 -0
  39. package/console-app/assets/flowDiagram-UKHOOZJN-CQXuJ0z2.js +1 -0
  40. package/console-app/assets/{ganttDiagram-PKOTCBZU-DfgO68Ez.js → ganttDiagram-PKOTCBZU-03mWH2kB.js} +1 -1
  41. package/console-app/assets/{gitGraph-TEB2WS4Q-BNbepAzP.js → gitGraph-TEB2WS4Q-By2486wn.js} +1 -1
  42. package/console-app/assets/{gitGraphDiagram-DS77QQ5N-Crb8obGB.js → gitGraphDiagram-DS77QQ5N-CCzKPRBJ.js} +1 -1
  43. package/console-app/assets/{index-g8jA8DJo.js → index-snBzz_U8.js} +3 -3
  44. package/console-app/assets/{index-Dsydm-nw.css → index-suVNAhyL.css} +1 -1
  45. package/console-app/assets/{info-DKCQHKI2-D9tXUXel.js → info-DKCQHKI2-C_vsavqC.js} +1 -1
  46. package/console-app/assets/{infoDiagram-6WML65LV-BvG8ufLa.js → infoDiagram-6WML65LV-BKvU8du7.js} +1 -1
  47. package/console-app/assets/{ishikawaDiagram-WSZJBQD7-BWoGxEjO.js → ishikawaDiagram-WSZJBQD7-CnF0qm0n.js} +1 -1
  48. package/console-app/assets/{journeyDiagram-NVQOT4AX-CR4YcPHg.js → journeyDiagram-NVQOT4AX-DxKe9OZ7.js} +1 -1
  49. package/console-app/assets/{kanban-definition-27J2QSJJ-DYfc5EZe.js → kanban-definition-27J2QSJJ-CB8lgPxU.js} +1 -1
  50. package/console-app/assets/{line-NIaf8Mfw.js → line-DFNLso1I.js} +1 -1
  51. package/console-app/assets/{linear-DB_1BE-l.js → linear-D1cspVtk.js} +1 -1
  52. package/console-app/assets/{mermaid-parser.core-BqCVMHRZ.js → mermaid-parser.core-BtmN233C.js} +3 -3
  53. package/console-app/assets/{mermaid.core-CYaeERjF.js → mermaid.core-37H5_HoB.js} +4 -4
  54. package/console-app/assets/{mindmap-definition-FAOFIHXS-BCjT2v4F.js → mindmap-definition-FAOFIHXS-Czf82JOB.js} +1 -1
  55. package/console-app/assets/{packet-7NZHBO7P-CzFZvntp.js → packet-7NZHBO7P-CErYxAQM.js} +1 -1
  56. package/console-app/assets/{pegDiagram-VL7TDLO6-3iMotW64.js → pegDiagram-VL7TDLO6-CRKX6HOt.js} +1 -1
  57. package/console-app/assets/{pie-RZYD4A2V-CXIoUTJn.js → pie-RZYD4A2V-YmMmh6Nq.js} +1 -1
  58. package/console-app/assets/{pieDiagram-7S7Q4E2Y-B-EOKkdd.js → pieDiagram-7S7Q4E2Y-Cot0Fu5q.js} +1 -1
  59. package/console-app/assets/{quadrantDiagram-CIZ2JOQS-DDdq8l2N.js → quadrantDiagram-CIZ2JOQS-DPEonVYT.js} +1 -1
  60. package/console-app/assets/{radar-I7S5WNFK-9SLSkJ73.js → radar-I7S5WNFK-Pf_KiQJM.js} +1 -1
  61. package/console-app/assets/{railroad-3IZDKUUU-DdJ88Ord.js → railroad-3IZDKUUU-BYoOMoQY.js} +1 -1
  62. package/console-app/assets/railroad-abnf-AHOZXSZD-CCRXsRRD.js +1 -0
  63. package/console-app/assets/railroad-ebnf-EBAXGLYW-DVRSVgn8.js +1 -0
  64. package/console-app/assets/railroad-peg-LSFZ7HO6-COUBoNH3.js +1 -0
  65. package/console-app/assets/{railroadDiagram-AXF67PYL-BMW_s9QW.js → railroadDiagram-AXF67PYL-Di8N9tHD.js} +1 -1
  66. package/console-app/assets/{requirementDiagram-LRYGKXZP-BzcnEvjk.js → requirementDiagram-LRYGKXZP-2yZZ753q.js} +1 -1
  67. package/console-app/assets/{sankeyDiagram-W5VNT64P-Dh2TFvuG.js → sankeyDiagram-W5VNT64P-BwYA-xq1.js} +1 -1
  68. package/console-app/assets/{sequenceDiagram-SI44F4Z6-b-m-tQYz.js → sequenceDiagram-SI44F4Z6-odIxlx8J.js} +1 -1
  69. package/console-app/assets/{src-Dm8O0hiD.js → src-CxJwpjvz.js} +1 -1
  70. package/console-app/assets/{stateDiagram-OKZ733FA-W98kCkqj.js → stateDiagram-OKZ733FA-Du2S0qU9.js} +1 -1
  71. package/console-app/assets/stateDiagram-v2-UEYNNEHI-CTXOGDRR.js +1 -0
  72. package/console-app/assets/{swimlanes-SLNWSIFB-0q_y6cLu.js → swimlanes-SLNWSIFB-JZ3swzI2.js} +1 -1
  73. package/console-app/assets/swimlanesDiagram-ULZ7WXOC-DRrggQgK.js +8 -0
  74. package/console-app/assets/{timeline-definition-Z64GVDOM-DmsNlhwe.js → timeline-definition-Z64GVDOM-CsppAEWi.js} +1 -1
  75. package/console-app/assets/{treeView-QDETBFTQ-DY7A9uJm.js → treeView-QDETBFTQ-DkkO8peQ.js} +1 -1
  76. package/console-app/assets/{treemap-6X3UGDF4-DI73Vm90.js → treemap-6X3UGDF4-hjLkPCJI.js} +1 -1
  77. package/console-app/assets/{vennDiagram-T6HMQDX7-Czpr9diJ.js → vennDiagram-T6HMQDX7-BOfgM1xp.js} +1 -1
  78. package/console-app/assets/{wardley-OPB4EBWU-C39AmDqd.js → wardley-OPB4EBWU-C5ZtGfBa.js} +1 -1
  79. package/console-app/assets/{wardleyDiagram-T6FBY63Y-DOtWBvnk.js → wardleyDiagram-T6FBY63Y-ymf3Vm6A.js} +1 -1
  80. package/console-app/assets/{xychartDiagram-ELKLHX3M-VHHuGrWV.js → xychartDiagram-ELKLHX3M-DdxXIoKz.js} +1 -1
  81. package/console-app/index.html +2 -2
  82. package/dist/.pikku/addon/index.d.ts +1 -1
  83. package/dist/.pikku/addon/index.js +1 -1
  84. package/dist/.pikku/addon/pikku-addon-types.gen.d.ts +1 -1
  85. package/dist/.pikku/addon/pikku-addon-types.gen.js +1 -1
  86. package/dist/.pikku/agent/index.d.ts +1 -1
  87. package/dist/.pikku/agent/index.js +1 -1
  88. package/dist/.pikku/agent/pikku-agent-types.gen.d.ts +1 -1
  89. package/dist/.pikku/agent/pikku-model-aliases.gen.js +1 -1
  90. package/dist/.pikku/auth/index.d.ts +1 -1
  91. package/dist/.pikku/auth/index.js +1 -1
  92. package/dist/.pikku/auth/pikku-auth-types.gen.d.ts +1 -1
  93. package/dist/.pikku/auth/pikku-auth-types.gen.js +1 -1
  94. package/dist/.pikku/channel/index.d.ts +1 -1
  95. package/dist/.pikku/channel/index.js +1 -1
  96. package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +1 -1
  97. package/dist/.pikku/channel/pikku-channel-types.gen.js +1 -1
  98. package/dist/.pikku/cli/index.d.ts +1 -1
  99. package/dist/.pikku/cli/index.js +1 -1
  100. package/dist/.pikku/cli/pikku-cli-channel.js +1 -1
  101. package/dist/.pikku/cli/pikku-cli-client.gen.d.ts +1 -1
  102. package/dist/.pikku/cli/pikku-cli-client.gen.js +1 -1
  103. package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.d.ts +1 -1
  104. package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.js +1 -1
  105. package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +1 -1
  106. package/dist/.pikku/cli/pikku-cli-types.gen.js +1 -1
  107. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +1 -1
  108. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.json +7 -42
  109. package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +1 -1
  110. package/dist/.pikku/cli/pikku-cli-wirings.gen.js +1 -1
  111. package/dist/.pikku/cli/pikku-cli.gen.d.ts +1 -1
  112. package/dist/.pikku/cli/pikku-cli.gen.js +1 -1
  113. package/dist/.pikku/error/index.d.ts +1 -1
  114. package/dist/.pikku/error/index.js +1 -1
  115. package/dist/.pikku/error/pikku-error-types.gen.d.ts +1 -1
  116. package/dist/.pikku/error/pikku-error-types.gen.js +1 -1
  117. package/dist/.pikku/function/index.d.ts +1 -1
  118. package/dist/.pikku/function/index.js +1 -1
  119. package/dist/.pikku/function/pikku-function-types.gen.d.ts +1 -1
  120. package/dist/.pikku/function/pikku-function-types.gen.js +1 -1
  121. package/dist/.pikku/function/pikku-functions-meta.gen.js +1 -1
  122. package/dist/.pikku/function/pikku-functions-meta.gen.json +18 -18
  123. package/dist/.pikku/function/pikku-functions.gen.js +1 -1
  124. package/dist/.pikku/gateway/index.d.ts +1 -1
  125. package/dist/.pikku/gateway/index.js +1 -1
  126. package/dist/.pikku/gateway/pikku-gateway-types.gen.d.ts +1 -1
  127. package/dist/.pikku/gateway/pikku-gateway-types.gen.js +1 -1
  128. package/dist/.pikku/http/index.d.ts +1 -1
  129. package/dist/.pikku/http/index.js +1 -1
  130. package/dist/.pikku/http/pikku-http-types.gen.d.ts +1 -1
  131. package/dist/.pikku/http/pikku-http-types.gen.js +1 -1
  132. package/dist/.pikku/mcp/index.d.ts +1 -1
  133. package/dist/.pikku/mcp/index.js +1 -1
  134. package/dist/.pikku/mcp/pikku-mcp-types.gen.d.ts +1 -1
  135. package/dist/.pikku/mcp/pikku-mcp-types.gen.js +1 -1
  136. package/dist/.pikku/middleware/index.d.ts +1 -1
  137. package/dist/.pikku/middleware/index.js +1 -1
  138. package/dist/.pikku/middleware/pikku-middleware-types.gen.d.ts +2 -2
  139. package/dist/.pikku/middleware/pikku-middleware-types.gen.js +1 -1
  140. package/dist/.pikku/pikku-bootstrap-scenarios.gen.d.ts +1 -1
  141. package/dist/.pikku/pikku-bootstrap-scenarios.gen.js +1 -1
  142. package/dist/.pikku/pikku-bootstrap.gen.d.ts +1 -1
  143. package/dist/.pikku/pikku-bootstrap.gen.js +1 -1
  144. package/dist/.pikku/pikku-services.gen.d.ts +1 -1
  145. package/dist/.pikku/queue/index.d.ts +1 -1
  146. package/dist/.pikku/queue/index.js +1 -1
  147. package/dist/.pikku/queue/pikku-queue-types.gen.d.ts +1 -1
  148. package/dist/.pikku/queue/pikku-queue-types.gen.js +1 -1
  149. package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.js +1 -1
  150. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.d.ts +1 -1
  151. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.js +1 -1
  152. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +1 -1
  153. package/dist/.pikku/scenarios/index.d.ts +1 -1
  154. package/dist/.pikku/scenarios/index.js +1 -1
  155. package/dist/.pikku/scenarios/pikku-personas.gen.js +1 -1
  156. package/dist/.pikku/scenarios/pikku-scenario-functions-meta.gen.js +1 -1
  157. package/dist/.pikku/scenarios/pikku-scenario-functions.gen.d.ts +1 -1
  158. package/dist/.pikku/scenarios/pikku-scenario-types.gen.d.ts +1 -1
  159. package/dist/.pikku/scenarios/pikku-scenario-wirings-meta.gen.js +1 -1
  160. package/dist/.pikku/scenarios/pikku-scenario-wirings.gen.d.ts +1 -1
  161. package/dist/.pikku/scenarios/schemas/register.gen.d.ts +1 -1
  162. package/dist/.pikku/scenarios/schemas/register.gen.js +1 -1
  163. package/dist/.pikku/scheduler/index.d.ts +1 -1
  164. package/dist/.pikku/scheduler/index.js +1 -1
  165. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +1 -1
  166. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +1 -1
  167. package/dist/.pikku/schemas/register.gen.js +1 -1
  168. package/dist/.pikku/scopes/index.d.ts +1 -1
  169. package/dist/.pikku/scopes/index.js +1 -1
  170. package/dist/.pikku/scopes/pikku-personas.gen.js +1 -1
  171. package/dist/.pikku/scopes/pikku-roles.gen.d.ts +1 -1
  172. package/dist/.pikku/scopes/pikku-scope-types.gen.d.ts +1 -1
  173. package/dist/.pikku/scopes/pikku-scope-types.gen.js +1 -1
  174. package/dist/.pikku/scopes/pikku-scopes.gen.d.ts +1 -1
  175. package/dist/.pikku/secrets/index.d.ts +1 -1
  176. package/dist/.pikku/secrets/index.js +1 -1
  177. package/dist/.pikku/secrets/pikku-secret-types.gen.d.ts +1 -1
  178. package/dist/.pikku/secrets/pikku-secret-types.gen.js +1 -1
  179. package/dist/.pikku/secrets/pikku-secrets.gen.d.ts +1 -1
  180. package/dist/.pikku/secrets/pikku-secrets.gen.js +1 -1
  181. package/dist/.pikku/services/pikku-meta-service.gen.d.ts +1 -1
  182. package/dist/.pikku/services/pikku-meta-service.gen.js +1 -1
  183. package/dist/.pikku/setup/index.d.ts +1 -1
  184. package/dist/.pikku/setup/index.js +1 -1
  185. package/dist/.pikku/setup/pikku-setup-types.gen.d.ts +1 -1
  186. package/dist/.pikku/setup/pikku-setup-types.gen.js +1 -1
  187. package/dist/.pikku/trigger/index.d.ts +1 -1
  188. package/dist/.pikku/trigger/index.js +1 -1
  189. package/dist/.pikku/trigger/pikku-trigger-types.gen.d.ts +1 -1
  190. package/dist/.pikku/trigger/pikku-trigger-types.gen.js +1 -1
  191. package/dist/.pikku/variables/index.d.ts +1 -1
  192. package/dist/.pikku/variables/index.js +1 -1
  193. package/dist/.pikku/variables/pikku-variable-types.gen.d.ts +1 -1
  194. package/dist/.pikku/variables/pikku-variable-types.gen.js +1 -1
  195. package/dist/.pikku/variables/pikku-variables.gen.d.ts +1 -1
  196. package/dist/.pikku/variables/pikku-variables.gen.js +1 -1
  197. package/dist/.pikku/workflow/index.d.ts +1 -1
  198. package/dist/.pikku/workflow/index.js +1 -1
  199. package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +1 -1
  200. package/dist/.pikku/workflow/pikku-workflow-types.gen.js +1 -1
  201. package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +1 -1
  202. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +1 -1
  203. package/dist/bin/pikku-bin.mjs +2 -2
  204. package/dist/src/cli.wiring.js +0 -42
  205. package/dist/src/deploy/bundler/bun-bundler.js +18 -2
  206. package/dist/src/fabric/functions/validate.function.js +24 -4
  207. package/dist/src/functions/commands/dev-agent-runner.js +48 -13
  208. package/dist/src/functions/commands/dev.js +1 -2
  209. package/dist/src/functions/commands/enable.js +11 -27
  210. package/dist/src/functions/commands/serve.js +1 -2
  211. package/dist/src/functions/runtimes/tanstack-start/pikku-command-tanstack-start.js +6 -6
  212. package/dist/src/functions/validate/shared-checks.js +1 -1
  213. package/dist/src/functions/wirings/agent/pikku-command-public-agent.js +1 -2
  214. package/dist/src/functions/wirings/agent/serialize-public-agent.d.ts +1 -1
  215. package/dist/src/functions/wirings/agent/serialize-public-agent.js +10 -11
  216. package/dist/src/functions/wirings/emails/pikku-command-emails.js +2 -2
  217. package/dist/src/functions/wirings/emails/serialize-emails.js +112 -42
  218. package/dist/src/functions/wirings/middleware/serialize-middleware-types.js +1 -1
  219. package/dist/src/functions/wirings/personas/serialize-personas-secrets.d.ts +5 -0
  220. package/dist/src/functions/wirings/personas/serialize-personas-secrets.js +6 -0
  221. package/dist/src/functions/wirings/realtime/pikku-command-events-scaffold.js +1 -3
  222. package/dist/src/functions/wirings/realtime/serialize-events-scaffold.d.ts +1 -1
  223. package/dist/src/functions/wirings/realtime/serialize-events-scaffold.js +3 -4
  224. package/dist/src/functions/wirings/rpc/pikku-command-public-rpc.js +1 -2
  225. package/dist/src/functions/wirings/rpc/serialize-public-rpc.d.ts +1 -1
  226. package/dist/src/functions/wirings/rpc/serialize-public-rpc.js +3 -4
  227. package/dist/src/functions/wirings/scenarios/register-scenario-instrumentation.d.ts +4 -5
  228. package/dist/src/functions/wirings/scenarios/register-scenario-instrumentation.js +5 -6
  229. package/dist/src/functions/wirings/scopes/pikku-command-scopes.js +5 -0
  230. package/dist/src/functions/wirings/scopes/serialize-scopes-client.d.ts +16 -0
  231. package/dist/src/functions/wirings/scopes/serialize-scopes-client.js +72 -0
  232. package/dist/src/functions/wirings/user-admin/pikku-command-user-admin-functions.js +1 -2
  233. package/dist/src/functions/wirings/user-admin/serialize-user-admin-functions.d.ts +1 -1
  234. package/dist/src/functions/wirings/user-admin/serialize-user-admin-functions.js +1 -8
  235. package/dist/src/functions/wirings/virtual-user/pikku-command-virtual-user-functions.js +1 -2
  236. package/dist/src/functions/wirings/virtual-user/serialize-virtual-user-functions.d.ts +1 -1
  237. package/dist/src/functions/wirings/virtual-user/serialize-virtual-user-functions.js +1 -4
  238. package/dist/src/functions/wirings/workflow/pikku-command-workflow-routes.js +1 -2
  239. package/dist/src/functions/wirings/workflow/serialize-workflow-routes.d.ts +1 -1
  240. package/dist/src/functions/wirings/workflow/serialize-workflow-routes.js +8 -9
  241. package/dist/src/utils/pikku-cli-config.js +8 -4
  242. package/dist/src/utils/resolve-scaffold-feature.d.ts +7 -6
  243. package/dist/src/utils/resolve-scaffold-feature.js +11 -35
  244. package/dist/tsconfig.tsbuildinfo +1 -1
  245. package/package.json +8 -8
  246. package/surface.json +1 -1
  247. package/console-app/assets/architecture-TIHT7OUA-B1IpeRpl.js +0 -1
  248. package/console-app/assets/channel-sTJGzqn9.js +0 -1
  249. package/console-app/assets/chunk-XXDRQBXY-CLdTtHL4.js +0 -1
  250. package/console-app/assets/classDiagram-JCYQIIEL-Dh0wx8TK.js +0 -1
  251. package/console-app/assets/classDiagram-v2-OCEON4UE-Dh0wx8TK.js +0 -1
  252. package/console-app/assets/eventmodeling-45OFAUF4-C6PNVeIU.js +0 -1
  253. package/console-app/assets/flowDiagram-UKHOOZJN-CmURPvo2.js +0 -1
  254. package/console-app/assets/railroad-abnf-AHOZXSZD-D2QiLT8B.js +0 -1
  255. package/console-app/assets/railroad-ebnf-EBAXGLYW-CSMqj9L2.js +0 -1
  256. package/console-app/assets/railroad-peg-LSFZ7HO6-Cg1-F8im.js +0 -1
  257. package/console-app/assets/stateDiagram-v2-UEYNNEHI-DpnoMNHC.js +0 -1
  258. package/console-app/assets/swimlanesDiagram-ULZ7WXOC-BmGtOaWo.js +0 -8
@@ -0,0 +1,72 @@
1
+ import { flattenScopeDefinitions } from '@pikku/core/scope';
2
+ const quote = (value) => `'${value.replace(/'/g, "\\'")}'`;
3
+ /**
4
+ * Generates the browser-side scope client: the `ScopeId` union and a
5
+ * `hasScopes` that decides whether held grants satisfy a requirement.
6
+ *
7
+ * The cascade is emitted inline rather than imported, so the file a frontend
8
+ * bundles has no imports at all. `@pikku/core` is a server package — it pulls
9
+ * AsyncLocalStorage and the wiring runtime behind it — so a UI reaching for
10
+ * `@pikku/core/scope` to render a permission drags the server into the bundle.
11
+ * `serialize-scopes-client.test.ts` checks this copy against core's over a
12
+ * shared case table.
13
+ */
14
+ export const serializeScopesClient = ({ definitions, }) => {
15
+ const flat = flattenScopeDefinitions(definitions);
16
+ const ids = flat.map((s) => s.id);
17
+ const hasChildren = (id) => ids.some((other) => other.startsWith(`${id}:`));
18
+ const requirable = [
19
+ ...ids,
20
+ ...ids.filter(hasChildren).map((id) => `${id}:*`),
21
+ ].sort();
22
+ const union = requirable.length > 0
23
+ ? `\n${requirable.map((id) => ` | ${quote(id)}`).join('\n')}`
24
+ : ' never';
25
+ return `/**
26
+ * This file was generated by the @pikku/cli
27
+ */
28
+
29
+ /**
30
+ * Every scope a function can require.
31
+ *
32
+ * A \`:*\` entry requires the scope and all of its descendants. A held grant of
33
+ * \`admin:*\` satisfies any \`admin:...\` requirement.
34
+ */
35
+ export type ScopeId =${union}
36
+
37
+ const SEPARATOR = ':'
38
+ const WILDCARD = '*'
39
+
40
+ const satisfyingGrants = (scope: string): string[] => {
41
+ const segments = scope.split(SEPARATOR)
42
+ const grants = [scope, \`\${scope}\${SEPARATOR}\${WILDCARD}\`]
43
+ for (let i = 0; i < segments.length; i++) {
44
+ grants.push([...segments.slice(0, i), WILDCARD].join(SEPARATOR))
45
+ }
46
+ for (let i = 1; i < segments.length; i++) {
47
+ grants.push(segments.slice(0, i).join(SEPARATOR))
48
+ }
49
+ return grants
50
+ }
51
+
52
+ const holds = (held: ReadonlySet<string>, scope: string): boolean =>
53
+ satisfyingGrants(scope).some((grant) => held.has(grant))
54
+
55
+ /**
56
+ * Whether \`held\` satisfies every scope in \`required\`.
57
+ *
58
+ * Fails closed: absent grants satisfy nothing. An empty \`required\` is
59
+ * satisfied by anything.
60
+ */
61
+ export const hasScopes = (
62
+ required: readonly string[] | undefined,
63
+ held: Iterable<string> | undefined
64
+ ): boolean => {
65
+ if (!required || required.length === 0) {
66
+ return true
67
+ }
68
+ const grants = new Set(held ?? [])
69
+ return required.every((scope) => holds(grants, scope))
70
+ }
71
+ `;
72
+ };
@@ -3,7 +3,6 @@ import { getLeafImportPath } from '../../../utils/leaf-import-path.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 { serializeUserAdminFunctions } from './serialize-user-admin-functions.js';
6
- import { resolveScaffoldFeature } from '../../../utils/resolve-scaffold-feature.js';
7
6
  export const pikkuUserAdminFunctions = pikkuSessionlessFunc({
8
7
  func: async ({ logger, config, getInspectorState }) => {
9
8
  if (!config.scaffold?.userAdmin ||
@@ -37,7 +36,7 @@ export const pikkuUserAdminFunctions = pikkuSessionlessFunc({
37
36
  ` betterAuth({ plugins: [ban()] })`);
38
37
  }
39
38
  const leaf = (name) => getLeafImportPath(config.userAdminFunctionsFile, name, config);
40
- const { schemas, functions } = serializeUserAdminFunctions(leaf, resolveScaffoldFeature('userAdmin', config.scaffold.userAdmin).auth);
39
+ const { schemas, functions } = serializeUserAdminFunctions(leaf);
41
40
  await writeFileInDir(logger, config.userAdminSchemasFile, schemas);
42
41
  await writeFileInDir(logger, config.userAdminFunctionsFile, functions);
43
42
  return true;
@@ -22,4 +22,4 @@ export interface UserAdminGenOutput {
22
22
  * rewrites. Keeping the schemas in a sibling module that imports nothing but
23
23
  * zod sidesteps that entirely.
24
24
  */
25
- export declare const serializeUserAdminFunctions: (leaf: (name: string) => string, requireAuth?: boolean) => UserAdminGenOutput;
25
+ export declare const serializeUserAdminFunctions: (leaf: (name: string) => string) => UserAdminGenOutput;
@@ -18,8 +18,7 @@
18
18
  * rewrites. Keeping the schemas in a sibling module that imports nothing but
19
19
  * zod sidesteps that entirely.
20
20
  */
21
- export const serializeUserAdminFunctions = (leaf, requireAuth = true) => {
22
- const authFlag = requireAuth ? 'true' : 'false';
21
+ export const serializeUserAdminFunctions = (leaf) => {
23
22
  const schemas = `/**
24
23
  * Auto-generated user management schemas
25
24
  * Do not edit manually - regenerate with 'npx pikku'
@@ -175,7 +174,6 @@ export const pikkuAdminListUsers = pikkuFunc({
175
174
  description:
176
175
  'Lists and searches the user directory, read through the auth adapter so it works on any database better-auth supports.',
177
176
  expose: true,
178
- auth: ${authFlag},
179
177
  scopes: ['admin:users:list'],
180
178
  input: ListUsersInput,
181
179
  output: ListUsersOutput,
@@ -214,7 +212,6 @@ export const pikkuAdminCreateUser = pikkuFunc({
214
212
  description:
215
213
  'Creates a user directly, for provisioning an account out of band rather than through your sign-up flow. Enforces the configured password bounds and rejects a duplicate email.',
216
214
  expose: true,
217
- auth: ${authFlag},
218
215
  scopes: ['admin:users:create'],
219
216
  input: CreateUserInput,
220
217
  output: CreateUserOutput,
@@ -229,7 +226,6 @@ export const pikkuAdminSetUserBanned = pikkuFunc({
229
226
  description:
230
227
  'Bans a user — revoking their sessions and blocking sign-in — or lifts an existing ban. An expiry lets the ban lapse on its own; without one it holds until it is lifted. Requires better-auth wired with the \`ban()\` plugin.',
231
228
  expose: true,
232
- auth: ${authFlag},
233
229
  scopes: ['admin:users:ban'],
234
230
  input: SetUserBannedInput,
235
231
  output: Success,
@@ -252,7 +248,6 @@ export const pikkuAdminRemoveUser = pikkuFunc({
252
248
  description:
253
249
  'Permanently deletes a user along with their sessions and linked accounts. Cannot be undone.',
254
250
  expose: true,
255
- auth: ${authFlag},
256
251
  scopes: ['admin:users:remove'],
257
252
  input: UserRef,
258
253
  output: Success,
@@ -271,7 +266,6 @@ export const pikkuAdminRevokeUserSessions = pikkuFunc({
271
266
  description:
272
267
  'Signs a user out of every device by deleting all of their sessions. They keep their account and can sign in again.',
273
268
  expose: true,
274
- auth: ${authFlag},
275
269
  scopes: ['admin:users:sessions'],
276
270
  input: UserRef,
277
271
  output: Success,
@@ -287,7 +281,6 @@ export const pikkuAdminSetUserPassword = pikkuFunc({
287
281
  description:
288
282
  'Sets a user password out of band, for when they cannot complete a reset themselves. Enforces the configured length bounds, and gives a user who only ever signed in socially a credential account.',
289
283
  expose: true,
290
- auth: ${authFlag},
291
284
  scopes: ['admin:users:password'],
292
285
  input: SetUserPasswordInput,
293
286
  output: Success,
@@ -4,7 +4,6 @@ import { getLeafImportPath } from '../../../utils/leaf-import-path.js';
4
4
  import { writeFileInDir } from '../../../utils/file-writer.js';
5
5
  import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
6
6
  import { serializeVirtualUserFunctions } from './serialize-virtual-user-functions.js';
7
- import { resolveScaffoldFeature } from '../../../utils/resolve-scaffold-feature.js';
8
7
  export const pikkuVirtualUserFunctions = pikkuSessionlessFunc({
9
8
  func: async ({ logger, config, getInspectorState }) => {
10
9
  if (!config.scaffold?.virtualUser ||
@@ -29,7 +28,7 @@ export const pikkuVirtualUserFunctions = pikkuSessionlessFunc({
29
28
  }
30
29
  const leaf = (name) => getLeafImportPath(config.virtualUserFunctionsFile, name, config);
31
30
  const pathToPersonas = getFileImportRelativePath(config.virtualUserFunctionsFile, config.personasWiringFile, config.packageMappings);
32
- const { schemas, functions } = serializeVirtualUserFunctions(leaf, pathToPersonas, resolveScaffoldFeature('virtualUser', config.scaffold.virtualUser).auth);
31
+ const { schemas, functions } = serializeVirtualUserFunctions(leaf, pathToPersonas);
33
32
  await writeFileInDir(logger, config.virtualUserSchemasFile, schemas);
34
33
  await writeFileInDir(logger, config.virtualUserFunctionsFile, functions);
35
34
  return true;
@@ -25,4 +25,4 @@ export interface VirtualUserGenOutput {
25
25
  * rewrites. Keeping the schemas in a sibling module that imports nothing but
26
26
  * zod sidesteps that entirely.
27
27
  */
28
- export declare const serializeVirtualUserFunctions: (leaf: (name: string) => string, pathToPersonas: string, requireAuth?: boolean) => VirtualUserGenOutput;
28
+ export declare const serializeVirtualUserFunctions: (leaf: (name: string) => string, pathToPersonas: string) => VirtualUserGenOutput;
@@ -21,8 +21,7 @@
21
21
  * rewrites. Keeping the schemas in a sibling module that imports nothing but
22
22
  * zod sidesteps that entirely.
23
23
  */
24
- export const serializeVirtualUserFunctions = (leaf, pathToPersonas, requireAuth = true) => {
25
- const authFlag = requireAuth ? 'true' : 'false';
24
+ export const serializeVirtualUserFunctions = (leaf, pathToPersonas) => {
26
25
  const schemas = `/**
27
26
  * Auto-generated virtual user schemas
28
27
  * Do not edit manually - regenerate with 'npx pikku'
@@ -177,7 +176,6 @@ export const runVirtualUser = pikkuFunc({
177
176
  description:
178
177
  'Turns a declared persona loose on this application and records what it finds. Returns immediately with a run id; read the result back with getVirtualUserRun.',
179
178
  expose: true,
180
- auth: ${authFlag},
181
179
  scopes: ['virtualUser:run'],
182
180
  input: RunVirtualUserInput,
183
181
  output: RunVirtualUserOutput,
@@ -265,7 +263,6 @@ export const getVirtualUserRun = pikkuFunc({
265
263
  description:
266
264
  'Reads a run back: its status, what it found, and the counts the engine kept.',
267
265
  expose: true,
268
- auth: ${authFlag},
269
266
  // Its own scope, and not the one that starts a run: an adversarial run's
270
267
  // findings are working exploits carrying live ids, so reading them is the
271
268
  // more sensitive of the two.
@@ -4,14 +4,13 @@ import { writeFileInDir } from '../../../utils/file-writer.js';
4
4
  import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
5
5
  import { removeLegacyScaffoldFile } from '../../../utils/remove-legacy-scaffold-file.js';
6
6
  import { serializeWorkflowRoutes } from './serialize-workflow-routes.js';
7
- import { resolveScaffoldFeature } from '../../../utils/resolve-scaffold-feature.js';
8
7
  export const pikkuWorkflowRoutes = pikkuSessionlessFunc({
9
8
  func: async ({ logger, config }) => {
10
9
  if (config.scaffold?.workflow &&
11
10
  config.workflowRoutesFile &&
12
11
  config.workflowRoutesSchemasFile) {
13
12
  const leaf = (name) => getLeafImportPath(config.workflowRoutesFile, name, config);
14
- const { schemas, functions } = serializeWorkflowRoutes(leaf, resolveScaffoldFeature('workflow', config.scaffold?.workflow).auth);
13
+ const { schemas, functions } = serializeWorkflowRoutes(leaf);
15
14
  await writeFileInDir(logger, config.workflowRoutesSchemasFile, schemas);
16
15
  await writeFileInDir(logger, config.workflowRoutesFile, functions);
17
16
  await removeLegacyScaffoldFile(config.workflowRoutesFile);
@@ -5,4 +5,4 @@ export interface WorkflowRoutesGenOutput {
5
5
  /**
6
6
  * Generate catch-all HTTP routes for workflow operations
7
7
  */
8
- export declare const serializeWorkflowRoutes: (leaf: (name: string) => string, requireAuth?: boolean) => WorkflowRoutesGenOutput;
8
+ export declare const serializeWorkflowRoutes: (leaf: (name: string) => string) => WorkflowRoutesGenOutput;
@@ -1,8 +1,7 @@
1
1
  /**
2
2
  * Generate catch-all HTTP routes for workflow operations
3
3
  */
4
- export const serializeWorkflowRoutes = (leaf, requireAuth = true) => {
5
- const authFlag = requireAuth ? 'true' : 'false';
4
+ export const serializeWorkflowRoutes = (leaf) => {
6
5
  const schemas = `/**
7
6
  * Auto-generated workflow route schemas
8
7
  * Do not edit manually - regenerate with 'npx pikku'
@@ -56,7 +55,7 @@ function assertWorkflowRunService(workflowRunService: unknown): asserts workflow
56
55
 
57
56
  export const workflowStarter = pikkuSessionlessFunc({
58
57
  tags: ['pikku'],
59
- auth: ${authFlag},
58
+ auth: false,
60
59
  input: WorkflowStart,
61
60
  output: WorkflowRunId,
62
61
  // workflowService is destructured (even though we delegate via rpc) so the
@@ -70,7 +69,7 @@ export const workflowStarter = pikkuSessionlessFunc({
70
69
 
71
70
  export const workflowRunner = pikkuSessionlessFunc({
72
71
  tags: ['pikku'],
73
- auth: ${authFlag},
72
+ auth: false,
74
73
  input: WorkflowStart,
75
74
  func: async ({ workflowService }, { workflowName, data }, { rpc }) => {
76
75
  assertWorkflowService(workflowService)
@@ -80,7 +79,7 @@ export const workflowRunner = pikkuSessionlessFunc({
80
79
 
81
80
  export const workflowStatusChecker = pikkuSessionlessFunc({
82
81
  tags: ['pikku'],
83
- auth: ${authFlag},
82
+ auth: false,
84
83
  input: WorkflowRunRef,
85
84
  func: async ({ workflowService }, { runId }, { session }) => {
86
85
  assertWorkflowService(workflowService)
@@ -99,7 +98,7 @@ export const workflowStatusChecker = pikkuSessionlessFunc({
99
98
  */
100
99
  export const workflowStatusStream = pikkuSessionlessFunc({
101
100
  tags: ['pikku'],
102
- auth: ${authFlag},
101
+ auth: false,
103
102
  input: WorkflowRunRef,
104
103
  func: async ({ workflowRunService }, { runId }, { channel, session }) => {
105
104
  assertWorkflowRunService(workflowRunService)
@@ -185,7 +184,7 @@ export const workflowStatusStream = pikkuSessionlessFunc({
185
184
  */
186
185
  export const workflowStatusStreamFull = pikkuSessionlessFunc({
187
186
  tags: ['pikku'],
188
- auth: ${authFlag},
187
+ auth: false,
189
188
  input: WorkflowRunRef,
190
189
  func: async ({ workflowRunService }, { runId }, { channel, session }) => {
191
190
  assertWorkflowRunService(workflowRunService)
@@ -290,7 +289,7 @@ export const workflowStatusStreamFull = pikkuSessionlessFunc({
290
289
  */
291
290
  export const workflowApprover = pikkuSessionlessFunc({
292
291
  tags: ['pikku'],
293
- auth: ${authFlag},
292
+ auth: false,
294
293
  input: WorkflowApproval,
295
294
  output: Acknowledged,
296
295
  // See workflowStarter — destructure workflowService so the analyzer
@@ -304,7 +303,7 @@ export const workflowApprover = pikkuSessionlessFunc({
304
303
 
305
304
  wireHTTPRoutes({
306
305
  tags: ['pikku'],
307
- auth: ${authFlag},
306
+ auth: false,
308
307
  routes: {
309
308
  workflowStart: {
310
309
  route: '/workflow/:workflowName/start',
@@ -12,7 +12,8 @@ const CLIENT_FILE_KEYS = [
12
12
  'mcpJsonFile',
13
13
  'nextBackendFile',
14
14
  'nextHTTPFile',
15
- 'startServerFnsFile',
15
+ 'tanstackStartFile',
16
+ 'scopesFile',
16
17
  ];
17
18
  export const getPikkuCLIConfig = async (logger, configFile = undefined, requiredFields, exitProcess = false, outDirOverride) => {
18
19
  const config = await _getPikkuCLIConfig(logger, configFile, requiredFields, exitProcess, outDirOverride);
@@ -292,9 +293,9 @@ const _getPikkuCLIConfig = async (logger, configFile = undefined, requiredFields
292
293
  // variables service: that service JSON-parses, so `'1'` arrives as the
293
294
  // number 1 and every `=== '1'` check against it silently never matched.
294
295
  setScaffoldWriteGuard(process.env.PIKKU_DEPLOY_CODEGEN === '1' ? resolvedScaffoldDir : undefined);
295
- // Read every scaffold feature once, here, so a legacy 'auth'/'no-auth'
296
- // fails at load with the migration named, rather than downstream where the
297
- // value has already been coerced into something plausible.
296
+ // Read every scaffold feature once, here, so a malformed value fails at
297
+ // load rather than downstream where it has already been coerced into
298
+ // something plausible.
298
299
  //
299
300
  // An explicit `path` is written onto the feature's output field before the
300
301
  // derivations below run. Each of those is guarded by `!result.<field>`, so
@@ -692,6 +693,9 @@ const _getPikkuCLIConfig = async (logger, configFile = undefined, requiredFields
692
693
  }
693
694
  // Resolve clientFiles paths relative to configDir
694
695
  if (result.clientFiles) {
696
+ if ('startServerFnsFile' in result.clientFiles) {
697
+ throw new PikkuCLIConfigError(`clientFiles.startServerFnsFile is now clientFiles.tanstackStartFile — rename it in ${result.configDir}/pikku.config.json`);
698
+ }
695
699
  for (const key of CLIENT_FILE_KEYS) {
696
700
  const val = result.clientFiles[key];
697
701
  if (val && typeof val === 'string' && !isAbsolute(val)) {
@@ -2,18 +2,19 @@ import type { PikkuScaffoldFeature } from '../../types/config.js';
2
2
  export type ResolvedScaffoldFeature = {
3
3
  /** Whether to generate this surface at all. */
4
4
  enabled: boolean;
5
- /** Whether the generated surface requires a session. */
6
- auth: boolean;
7
5
  /** An explicit output path, or undefined to derive one from `pikkuDir`. */
8
6
  path?: string;
9
7
  };
10
8
  /**
11
9
  * Reads one `scaffold.<feature>` value.
12
10
  *
13
- * `true` means enabled **and authenticated**. A surface only becomes public by
14
- * writing `{ auth: false }`, so omitting the field can never open anything
15
- * the failure mode of a forgotten flag is a locked door, not an open one.
11
+ * It answers two things and no more: whether the surface is generated, and
12
+ * where the file goes. Whether a call needs a session is the function's own
13
+ * declaration, its wiring, its scopes and its addon never this flag, which
14
+ * would only stack a coarser gate in front of the one already enforced.
16
15
  *
17
- * knowledge: decisions/security/scaffold-features-are-authenticated-unless-opted-out.md
16
+ * A bare string is refused rather than read as a path: under `boolean | object`
17
+ * no string is valid, and guessing one into `path` would turn a typo into a
18
+ * generated file nobody asked for.
18
19
  */
19
20
  export declare const resolveScaffoldFeature: (feature: string, value: PikkuScaffoldFeature | undefined) => ResolvedScaffoldFeature;
@@ -1,53 +1,29 @@
1
- const LEGACY_VALUES = new Set(['auth', 'no-auth']);
2
1
  /**
3
2
  * Reads one `scaffold.<feature>` value.
4
3
  *
5
- * `true` means enabled **and authenticated**. A surface only becomes public by
6
- * writing `{ auth: false }`, so omitting the field can never open anything
7
- * the failure mode of a forgotten flag is a locked door, not an open one.
4
+ * It answers two things and no more: whether the surface is generated, and
5
+ * where the file goes. Whether a call needs a session is the function's own
6
+ * declaration, its wiring, its scopes and its addon never this flag, which
7
+ * would only stack a coarser gate in front of the one already enforced.
8
8
  *
9
- * knowledge: decisions/security/scaffold-features-are-authenticated-unless-opted-out.md
9
+ * A bare string is refused rather than read as a path: under `boolean | object`
10
+ * no string is valid, and guessing one into `path` would turn a typo into a
11
+ * generated file nobody asked for.
10
12
  */
11
13
  export const resolveScaffoldFeature = (feature, value) => {
12
14
  if (value === undefined || value === false) {
13
- return { enabled: false, auth: true };
14
- }
15
- if (typeof value === 'string') {
16
- throw new Error(legacyValueMessage(feature, value));
15
+ return { enabled: false };
17
16
  }
18
17
  if (value === true) {
19
- return { enabled: true, auth: true };
18
+ return { enabled: true };
20
19
  }
21
20
  if (typeof value !== 'object') {
22
21
  throw new Error(`pikku.config.json: scaffold.${feature} must be true, false, or an object ` +
23
- `like { "auth": false } — received ${JSON.stringify(value)}.`);
22
+ `like { "path": "src/${feature}.gen.ts" } — received ${JSON.stringify(value)}. ` +
23
+ `A bare string is never a shorthand for a path.`);
24
24
  }
25
25
  return {
26
26
  enabled: true,
27
- auth: value.auth !== false,
28
27
  path: value.path,
29
28
  };
30
29
  };
31
- /**
32
- * A legacy `'auth'`/`'no-auth'` is refused by name rather than coerced. The
33
- * value it would coerce to is exactly the one that caused the incident this
34
- * change came out of, and under the new shape a bare string is a plausible
35
- * path — so guessing would be wrong twice over.
36
- */
37
- const legacyValueMessage = (feature, value) => {
38
- const migrated = value === 'no-auth'
39
- ? '{ "auth": false }'
40
- : LEGACY_VALUES.has(value)
41
- ? 'true'
42
- : null;
43
- if (!migrated) {
44
- return (`pikku.config.json: scaffold.${feature} must be true, false, or an object ` +
45
- `like { "auth": false } — received the string ${JSON.stringify(value)}.`);
46
- }
47
- return (`pikku.config.json: scaffold.${feature} is ${JSON.stringify(value)}, which is no longer a ` +
48
- `mode. Authentication is declared on the function or on the addon, and the ` +
49
- `scaffold flag only says whether the surface exists.\n` +
50
- ` Replace it with: "${feature}": ${migrated}\n` +
51
- ` \`true\` enables the surface with a session required; ` +
52
- `\`{ "auth": false }\` makes it public.`);
53
- };
@@ -1 +1 @@
1
- {"root":["../bin/pikku.ts","../src/cli.wiring.ts","../src/services.ts","../src/deploy/build-pipeline.ts","../src/deploy/provider-adapter.ts","../src/deploy/server-entry.ts","../src/deploy/analyzer/analyzer.ts","../src/deploy/analyzer/index.ts","../src/deploy/analyzer/manifest.ts","../src/deploy/bundler/bun-bundler.ts","../src/deploy/bundler/bundler.interface.ts","../src/deploy/bundler/bundler.ts","../src/deploy/bundler/dep-extractor.ts","../src/deploy/bundler/index.ts","../src/deploy/bundler/node-bundler.ts","../src/deploy/bundler/types.ts","../src/deploy/codegen/index.ts","../src/deploy/codegen/per-unit-codegen.ts","../src/deploy/plan/executor.ts","../src/deploy/plan/formatter.ts","../src/deploy/plan/index.ts","../src/deploy/plan/planner.ts","../src/deploy/plan/provider.ts","../src/deploy/plan/types.ts","../src/fabric/fabric-commands.ts","../src/fabric/functions/add.function.ts","../src/fabric/functions/addon-verify.function.ts","../src/fabric/functions/db-schema.function.ts","../src/fabric/functions/deploy-list.function.ts","../src/fabric/functions/deploy-units.function.ts","../src/fabric/functions/deploy.function.ts","../src/fabric/functions/domains-add.function.ts","../src/fabric/functions/domains-list.function.ts","../src/fabric/functions/domains-remove.function.ts","../src/fabric/functions/errors.function.ts","../src/fabric/functions/init.function.ts","../src/fabric/functions/link.function.ts","../src/fabric/functions/llm-key.function.ts","../src/fabric/functions/login.function.ts","../src/fabric/functions/logs.function.ts","../src/fabric/functions/metrics.function.ts","../src/fabric/functions/publish.function.ts","../src/fabric/functions/rollback.function.ts","../src/fabric/functions/secrets-list.function.ts","../src/fabric/functions/secrets-rotate.function.ts","../src/fabric/functions/secrets-set.function.ts","../src/fabric/functions/smoke.function.ts","../src/fabric/functions/status.function.ts","../src/fabric/functions/trace.function.ts","../src/fabric/functions/validate.function.ts","../src/fabric/lib/config.ts","../src/fabric/lib/console-url.ts","../src/fabric/lib/frontend-typecheck.ts","../src/fabric/lib/git.ts","../src/fabric/lib/http.ts","../src/fabric/lib/not-implemented.ts","../src/fabric/lib/output.ts","../src/fabric/lib/prompt.ts","../src/fabric/lib/sealed-box.ts","../src/fabric/lib/stage.ts","../src/fabric/sdk/http-map.gen.d.ts","../src/fabric/sdk/pikku-fetch.gen.ts","../src/fabric/sdk/pikku-rpc.gen.ts","../src/fabric/sdk/rpc-map.gen.d.ts","../src/functions/commands/all.ts","../src/functions/commands/audit.ts","../src/functions/commands/binary.ts","../src/functions/commands/bootstrap.ts","../src/functions/commands/bun-coverage-loader.ts","../src/functions/commands/db-audit.ts","../src/functions/commands/db-baseline.ts","../src/functions/commands/db-check.ts","../src/functions/commands/db-codegen.ts","../src/functions/commands/db-export.ts","../src/functions/commands/db-generate.ts","../src/functions/commands/db-migrate.ts","../src/functions/commands/db-reset.ts","../src/functions/commands/db-shared.ts","../src/functions/commands/deploy-apply.ts","../src/functions/commands/deploy-info.ts","../src/functions/commands/deploy-plan.ts","../src/functions/commands/dev-agent-runner.ts","../src/functions/commands/dev.ts","../src/functions/commands/emails-init.ts","../src/functions/commands/enable.ts","../src/functions/commands/environment.ts","../src/functions/commands/import-n8n.ts","../src/functions/commands/info.ts","../src/functions/commands/knowledge-index.ts","../src/functions/commands/knowledge-validate.ts","../src/functions/commands/load-user-project.ts","../src/functions/commands/login.ts","../src/functions/commands/meta.ts","../src/functions/commands/new-addon.ts","../src/functions/commands/new-function.ts","../src/functions/commands/new-middleware.ts","../src/functions/commands/new-permission.ts","../src/functions/commands/new-wiring.ts","../src/functions/commands/persona-sync.ts","../src/functions/commands/persona.ts","../src/functions/commands/pikku-command-bootstrap.ts","../src/functions/commands/pikku-command-summary.ts","../src/functions/commands/roles-audit.ts","../src/functions/commands/roles-prune.ts","../src/functions/commands/roles-shared.ts","../src/functions/commands/scenario-browser.ts","../src/functions/commands/scenario-formatter.ts","../src/functions/commands/scenario-ladder.ts","../src/functions/commands/scenario-plan.ts","../src/functions/commands/scenario.ts","../src/functions/commands/scopes-audit.ts","../src/functions/commands/scopes-prune.ts","../src/functions/commands/scopes-shared.ts","../src/functions/commands/semver-render.ts","../src/functions/commands/semver.ts","../src/functions/commands/serve-console.ts","../src/functions/commands/serve.ts","../src/functions/commands/skills.ts","../src/functions/commands/start-coverage.ts","../src/functions/commands/update-render.ts","../src/functions/commands/update.ts","../src/functions/commands/validate.ts","../src/functions/commands/versions-check.ts","../src/functions/commands/versions-init.ts","../src/functions/commands/versions-update.ts","../src/functions/commands/virtual-user-formatter.ts","../src/functions/commands/watch.ts","../src/functions/db/annotation-parser.ts","../src/functions/db/better-auth-schema.ts","../src/functions/db/db-codegen.ts","../src/functions/db/db-introspector.ts","../src/functions/db/db-migrator.ts","../src/functions/db/local-db.ts","../src/functions/db/migration-identifiers.ts","../src/functions/db/migration-provenance.ts","../src/functions/db/schema-sql.ts","../src/functions/db/zod-codegen.ts","../src/functions/db/postgres/pglite-kysely.ts","../src/functions/db/postgres/postgres-introspector.ts","../src/functions/db/postgres/postgres-migrator.ts","../src/functions/db/sqlite/dev-seed.ts","../src/functions/db/sqlite/sqlite-introspector.ts","../src/functions/db/sqlite/sqlite-kysely.ts","../src/functions/db/sqlite/sqlite-migrator.ts","../src/functions/db/sqlite/sqlite-runtime-bun.ts","../src/functions/db/sqlite/sqlite-runtime-node.ts","../src/functions/db/sqlite/sqlite-runtime.ts","../src/functions/knowledge/render.ts","../src/functions/knowledge/schemas.ts","../src/functions/runtimes/fetch/index.ts","../src/functions/runtimes/nextjs/pikku-command-nextjs.ts","../src/functions/runtimes/nextjs/serialize-nextjs-backend-worker-rpc-wrapper.ts","../src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.ts","../src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.ts","../src/functions/runtimes/tanstack-start/pikku-command-tanstack-start.ts","../src/functions/runtimes/tanstack-start/serialize-tanstack-start-shim.ts","../src/functions/runtimes/websocket/pikku-command-websocket-typed.ts","../src/functions/runtimes/websocket/serialize-websocket-wrapper.ts","../src/functions/surface/build-surface-doc.ts","../src/functions/surface/collect-surface-usage.ts","../src/functions/surface/collect-surface.ts","../src/functions/surface/generate-surface-doc.ts","../src/functions/surface/shipped-surface-doc.ts","../src/functions/surface/surface-doc.types.ts","../src/functions/surface/surface-editorial.ts","../src/functions/surface/write-surface-usage.ts","../src/functions/validate/addon-package-checks.ts","../src/functions/validate/bootstrap-checks.ts","../src/functions/validate/persona-checks.ts","../src/functions/validate/pikku-barrel-checks.ts","../src/functions/validate/scenario-file-checks.ts","../src/functions/validate/shared-checks.ts","../src/functions/validate/type-identity-checks.ts","../src/functions/validate/validate-registry.ts","../src/functions/validate/validate.ts","../src/functions/validate/workspace-exports-checks.ts","../src/functions/wirings/agent/pikku-command-agent-types.ts","../src/functions/wirings/agent/pikku-command-agent.ts","../src/functions/wirings/agent/pikku-command-public-agent.ts","../src/functions/wirings/agent/serialize-agent-map.ts","../src/functions/wirings/agent/serialize-agent-types.ts","../src/functions/wirings/agent/serialize-model-aliases.ts","../src/functions/wirings/agent/serialize-public-agent.ts","../src/functions/wirings/agent-scorer/pikku-command-agent-scorer.ts","../src/functions/wirings/agent-scorer/serialize-scorer-names.ts","../src/functions/wirings/auth/pikku-command-auth.ts","../src/functions/wirings/auth/serialize-auth-gen.ts","../src/functions/wirings/auth/serialize-auth-guards.ts","../src/functions/wirings/auth/serialize-auth-meta.ts","../src/functions/wirings/auth/serialize-auth-types.ts","../src/functions/wirings/channels/pikku-channels.ts","../src/functions/wirings/channels/pikku-command-channel-types.ts","../src/functions/wirings/channels/pikku-command-channels-map.ts","../src/functions/wirings/channels/pikku-command-channels.ts","../src/functions/wirings/channels/serialize-channel-types.ts","../src/functions/wirings/channels/serialize-typed-channel-map.ts","../src/functions/wirings/cli/pikku-command-cli-entry.ts","../src/functions/wirings/cli/pikku-command-cli-types.ts","../src/functions/wirings/cli/pikku-command-cli.ts","../src/functions/wirings/cli/serialize-channel-cli-client.ts","../src/functions/wirings/cli/serialize-channel-cli.ts","../src/functions/wirings/cli/serialize-cli-entrypoint-guard.ts","../src/functions/wirings/cli/serialize-cli-types.ts","../src/functions/wirings/cli/serialize-local-cli-bootstrap.ts","../src/functions/wirings/console/pikku-command-console-functions.ts","../src/functions/wirings/console/pikku-command-nodes-meta.ts","../src/functions/wirings/console/serialize-console-functions.ts","../src/functions/wirings/credentials/pikku-command-credentials.ts","../src/functions/wirings/credentials/serialize-credentials-types.ts","../src/functions/wirings/emails/pikku-command-emails.ts","../src/functions/wirings/emails/serialize-emails.ts","../src/functions/wirings/errors/pikku-command-error-types.ts","../src/functions/wirings/errors/serialize-error-types.ts","../src/functions/wirings/functions/pikku-command-addon-types.ts","../src/functions/wirings/functions/pikku-command-function-types-split.ts","../src/functions/wirings/functions/pikku-command-functions.ts","../src/functions/wirings/functions/pikku-command-leaf-indexes.ts","../src/functions/wirings/functions/pikku-command-services.ts","../src/functions/wirings/functions/schemas.ts","../src/functions/wirings/functions/serialize-addon-refs.ts","../src/functions/wirings/functions/serialize-addon-types.ts","../src/functions/wirings/functions/serialize-function-imports.ts","../src/functions/wirings/functions/serialize-function-types.ts","../src/functions/wirings/functions/serialize-leaf-index.ts","../src/functions/wirings/gateway/pikku-command-gateway-types.ts","../src/functions/wirings/gateway/pikku-command-gateway.ts","../src/functions/wirings/gateway/serialize-gateway-meta.ts","../src/functions/wirings/gateway/serialize-gateway-types.ts","../src/functions/wirings/graph/pikku-command-graph-wirings.ts","../src/functions/wirings/graph/serialize-graph-wirings.ts","../src/functions/wirings/http/pikku-command-http-map.ts","../src/functions/wirings/http/pikku-command-http-routes.ts","../src/functions/wirings/http/pikku-command-http-types.ts","../src/functions/wirings/http/pikku-command-openapi.ts","../src/functions/wirings/http/pikku-http-routes.ts","../src/functions/wirings/http/serialize-fetch-wrapper.ts","../src/functions/wirings/http/serialize-http-types.ts","../src/functions/wirings/http/serialize-typed-http-map.ts","../src/functions/wirings/mcp/pikku-command-mcp-json.ts","../src/functions/wirings/mcp/pikku-command-mcp-types.ts","../src/functions/wirings/mcp/pikku-command-mcp.ts","../src/functions/wirings/mcp/serialize-mcp-types.ts","../src/functions/wirings/middleware/pikku-command-middleware.ts","../src/functions/wirings/middleware/serialize-middleware-imports.ts","../src/functions/wirings/middleware/serialize-middleware-types.ts","../src/functions/wirings/package/pikku-command-package-types.ts","../src/functions/wirings/package/pikku-command-package.ts","../src/functions/wirings/package/serialize-package-types.ts","../src/functions/wirings/package/serialize-package.ts","../src/functions/wirings/permissions/pikku-command-permissions.ts","../src/functions/wirings/permissions/serialize-permissions-imports.ts","../src/functions/wirings/personas/personas-secrets-file.ts","../src/functions/wirings/personas/pikku-command-personas.ts","../src/functions/wirings/personas/serialize-personas-secrets.ts","../src/functions/wirings/personas/serialize-personas-types.ts","../src/functions/wirings/queue/pikku-command-queue-map.ts","../src/functions/wirings/queue/pikku-command-queue-service.ts","../src/functions/wirings/queue/pikku-command-queue-types.ts","../src/functions/wirings/queue/pikku-command-queue.ts","../src/functions/wirings/queue/pikku-queue-map.ts","../src/functions/wirings/queue/pikku-queue.ts","../src/functions/wirings/queue/serialize-queue-map.ts","../src/functions/wirings/queue/serialize-queue-meta.ts","../src/functions/wirings/queue/serialize-queue-types.ts","../src/functions/wirings/queue/serialize-queue-wrapper.ts","../src/functions/wirings/realtime/pikku-command-events-scaffold.ts","../src/functions/wirings/realtime/pikku-command-realtime.ts","../src/functions/wirings/realtime/serialize-events-scaffold.ts","../src/functions/wirings/realtime/serialize-realtime-client.ts","../src/functions/wirings/roles/pikku-command-roles.ts","../src/functions/wirings/roles/serialize-roles-types.ts","../src/functions/wirings/rpc/pikku-command-public-rpc.ts","../src/functions/wirings/rpc/pikku-command-react-query.ts","../src/functions/wirings/rpc/pikku-command-remote-rpc.ts","../src/functions/wirings/rpc/pikku-command-rpc-client.ts","../src/functions/wirings/rpc/pikku-command-rpc-map.ts","../src/functions/wirings/rpc/pikku-command-rpc.ts","../src/functions/wirings/rpc/serialize-public-rpc.ts","../src/functions/wirings/rpc/serialize-react-query-hooks.ts","../src/functions/wirings/rpc/serialize-remote-rpc.ts","../src/functions/wirings/rpc/serialize-rpc-wrapper.ts","../src/functions/wirings/rpc/serialize-typed-rpc-map.ts","../src/functions/wirings/scenarios/register-scenario-instrumentation.ts","../src/functions/wirings/scenarios/scenario-partition.ts","../src/functions/wirings/scenarios/scenario-schema-partition.ts","../src/functions/wirings/scenarios/serialize-feature-meta.ts","../src/functions/wirings/scenarios/serialize-scenario-meta.ts","../src/functions/wirings/scenarios/serialize-scenario-registration.ts","../src/functions/wirings/scheduler/pikku-command-scheduler-types.ts","../src/functions/wirings/scheduler/pikku-command-scheduler.ts","../src/functions/wirings/scheduler/serialize-scheduler-meta.ts","../src/functions/wirings/scheduler/serialize-scheduler-types.ts","../src/functions/wirings/scopes/pikku-command-scopes.ts","../src/functions/wirings/scopes/serialize-scopes-types.ts","../src/functions/wirings/secrets/pikku-command-secrets.ts","../src/functions/wirings/secrets/serialize-secrets-types.ts","../src/functions/wirings/setup/serialize-setup-types.ts","../src/functions/wirings/triggers/pikku-command-trigger-types.ts","../src/functions/wirings/triggers/pikku-command-trigger.ts","../src/functions/wirings/triggers/serialize-trigger-meta.ts","../src/functions/wirings/triggers/serialize-trigger-types.ts","../src/functions/wirings/user-admin/pikku-command-user-admin-functions.ts","../src/functions/wirings/user-admin/serialize-user-admin-functions.ts","../src/functions/wirings/variables/pikku-command-variables.ts","../src/functions/wirings/variables/serialize-variables-types.ts","../src/functions/wirings/virtual-user/pikku-command-virtual-user-functions.ts","../src/functions/wirings/virtual-user/serialize-virtual-user-functions.ts","../src/functions/wirings/webhook/pikku-command-webhook.ts","../src/functions/wirings/webhook/serialize-webhook.ts","../src/functions/wirings/workflow/pikku-command-workflow-routes.ts","../src/functions/wirings/workflow/pikku-command-workflow.ts","../src/functions/wirings/workflow/serialize-personas.ts","../src/functions/wirings/workflow/serialize-scenario-step-map.ts","../src/functions/wirings/workflow/serialize-scenario-types.ts","../src/functions/wirings/workflow/serialize-workflow-bootstrap-map.ts","../src/functions/wirings/workflow/serialize-workflow-map.ts","../src/functions/wirings/workflow/serialize-workflow-meta.ts","../src/functions/wirings/workflow/serialize-workflow-registration.ts","../src/functions/wirings/workflow/serialize-workflow-routes.ts","../src/functions/wirings/workflow/serialize-workflow-types.ts","../src/functions/workflows/all.workflow.ts","../src/middleware/log-command-info-and-time.ts","../src/server/bun-server-runner.ts","../src/server/content-signing-jwt.ts","../src/server/dev-server-runner.interface.ts","../src/server/node-server-runner.ts","../src/server/server-ready.ts","../src/server/spawn-dev-server.ts","../src/services/cli-logger-forwarder.service.ts","../src/services/cli-logger.service.ts","../src/utils/assert-single-core-version.ts","../src/utils/check-required-types.ts","../src/utils/cli-session.ts","../src/utils/command-summary.ts","../src/utils/contract-versions.ts","../src/utils/detect-better-auth.ts","../src/utils/device-auth.ts","../src/utils/file-import-path.ts","../src/utils/file-imports-serializer.ts","../src/utils/file-writer.ts","../src/utils/generate-bootstrap-file.ts","../src/utils/get-cli-version.ts","../src/utils/is-deploy-codegen.ts","../src/utils/leaf-import-path.ts","../src/utils/meta-diff.ts","../src/utils/model-alias-override.ts","../src/utils/parse-cli-filters.ts","../src/utils/pikku-cli-config.ts","../src/utils/pikku-files-and-methods.ts","../src/utils/precise-coverage-map.ts","../src/utils/remove-legacy-scaffold-file.ts","../src/utils/resolve-personas.ts","../src/utils/resolve-scaffold-feature.ts","../src/utils/schema-diff.ts","../src/utils/serialize-import-map.ts","../src/utils/serialize-meta-ts.ts","../src/utils/serialize-schemas.ts","../src/utils/strip-verbose-meta.ts","../src/utils/surface-diff.ts","../src/utils/surface.ts","../src/utils/tsc-check.ts","../.pikku/pikku-bootstrap-scenarios.gen.ts","../.pikku/pikku-bootstrap.gen.ts","../.pikku/pikku-services.gen.ts","../.pikku/addon/index.ts","../.pikku/addon/pikku-addon-types.gen.ts","../.pikku/agent/index.ts","../.pikku/agent/pikku-agent-map.gen.d.ts","../.pikku/agent/pikku-agent-types.gen.ts","../.pikku/agent/pikku-model-aliases.gen.ts","../.pikku/agent/pikku-scorer-names.gen.d.ts","../.pikku/auth/auth.types.ts","../.pikku/auth/index.ts","../.pikku/auth/pikku-auth-types.gen.ts","../.pikku/channel/index.ts","../.pikku/channel/pikku-channel-types.gen.ts","../.pikku/cli/index.ts","../.pikku/cli/pikku-cli-channel.ts","../.pikku/cli/pikku-cli-client.gen.ts","../.pikku/cli/pikku-cli-contracts-meta.gen.ts","../.pikku/cli/pikku-cli-types.gen.ts","../.pikku/cli/pikku-cli-wirings-meta.gen.ts","../.pikku/cli/pikku-cli-wirings.gen.ts","../.pikku/cli/pikku-cli.gen.ts","../.pikku/error/index.ts","../.pikku/error/pikku-error-types.gen.ts","../.pikku/function/index.ts","../.pikku/function/pikku-function-types.gen.ts","../.pikku/function/pikku-functions-meta.gen.ts","../.pikku/function/pikku-functions.gen.ts","../.pikku/gateway/index.ts","../.pikku/gateway/pikku-gateway-types.gen.ts","../.pikku/http/index.ts","../.pikku/http/pikku-http-types.gen.ts","../.pikku/mcp/index.ts","../.pikku/mcp/pikku-mcp-types.gen.ts","../.pikku/middleware/index.ts","../.pikku/middleware/pikku-middleware-types.gen.ts","../.pikku/node/pikku-node-types.gen.ts","../.pikku/queue/index.ts","../.pikku/queue/pikku-queue-types.gen.ts","../.pikku/queue/pikku-queue-workers-wirings-map.gen.d.ts","../.pikku/queue/pikku-queue-workers-wirings-meta.gen.ts","../.pikku/queue/pikku-queue-workers-wirings.gen.ts","../.pikku/rpc/pikku-rpc-wirings-map.gen.d.ts","../.pikku/rpc/pikku-rpc-wirings-map.internal.gen.d.ts","../.pikku/rpc/pikku-rpc-wirings-map.remote.gen.d.ts","../.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.ts","../.pikku/scenarios/index.ts","../.pikku/scenarios/pikku-personas.gen.ts","../.pikku/scenarios/pikku-scenario-functions-meta.gen.ts","../.pikku/scenarios/pikku-scenario-functions.gen.ts","../.pikku/scenarios/pikku-scenario-types.gen.ts","../.pikku/scenarios/pikku-scenario-wirings-meta.gen.ts","../.pikku/scenarios/pikku-scenario-wirings.gen.ts","../.pikku/scenarios/schemas/register.gen.ts","../.pikku/scheduler/index.ts","../.pikku/scheduler/pikku-scheduler-types.gen.ts","../.pikku/schemas/register.gen.ts","../.pikku/scopes/index.ts","../.pikku/scopes/pikku-personas.gen.ts","../.pikku/scopes/pikku-roles.gen.ts","../.pikku/scopes/pikku-scope-types.gen.ts","../.pikku/scopes/pikku-scopes.gen.ts","../.pikku/secrets/index.ts","../.pikku/secrets/pikku-secret-types.gen.ts","../.pikku/secrets/pikku-secrets.gen.ts","../.pikku/services/pikku-meta-service.gen.ts","../.pikku/setup/index.ts","../.pikku/setup/pikku-setup-types.gen.ts","../.pikku/trigger/index.ts","../.pikku/trigger/pikku-trigger-types.gen.ts","../.pikku/variables/index.ts","../.pikku/variables/pikku-variable-types.gen.ts","../.pikku/variables/pikku-variables.gen.ts","../.pikku/workflow/index.ts","../.pikku/workflow/pikku-scenario-step-map.gen.d.ts","../.pikku/workflow/pikku-workflow-map.gen.d.ts","../.pikku/workflow/pikku-workflow-types.gen.ts","../.pikku/workflow/pikku-workflow-wirings-meta.gen.ts","../.pikku/workflow/pikku-workflow-wirings.gen.ts","../types/application-types.d.ts","../types/bun-sqlite.d.ts","../types/config.d.ts"],"version":"6.0.3"}
1
+ {"root":["../bin/pikku.ts","../src/cli.wiring.ts","../src/services.ts","../src/deploy/build-pipeline.ts","../src/deploy/provider-adapter.ts","../src/deploy/server-entry.ts","../src/deploy/analyzer/analyzer.ts","../src/deploy/analyzer/index.ts","../src/deploy/analyzer/manifest.ts","../src/deploy/bundler/bun-bundler.ts","../src/deploy/bundler/bundler.interface.ts","../src/deploy/bundler/bundler.ts","../src/deploy/bundler/dep-extractor.ts","../src/deploy/bundler/index.ts","../src/deploy/bundler/node-bundler.ts","../src/deploy/bundler/types.ts","../src/deploy/codegen/index.ts","../src/deploy/codegen/per-unit-codegen.ts","../src/deploy/plan/executor.ts","../src/deploy/plan/formatter.ts","../src/deploy/plan/index.ts","../src/deploy/plan/planner.ts","../src/deploy/plan/provider.ts","../src/deploy/plan/types.ts","../src/fabric/fabric-commands.ts","../src/fabric/functions/add.function.ts","../src/fabric/functions/addon-verify.function.ts","../src/fabric/functions/db-schema.function.ts","../src/fabric/functions/deploy-list.function.ts","../src/fabric/functions/deploy-units.function.ts","../src/fabric/functions/deploy.function.ts","../src/fabric/functions/domains-add.function.ts","../src/fabric/functions/domains-list.function.ts","../src/fabric/functions/domains-remove.function.ts","../src/fabric/functions/errors.function.ts","../src/fabric/functions/init.function.ts","../src/fabric/functions/link.function.ts","../src/fabric/functions/llm-key.function.ts","../src/fabric/functions/login.function.ts","../src/fabric/functions/logs.function.ts","../src/fabric/functions/metrics.function.ts","../src/fabric/functions/publish.function.ts","../src/fabric/functions/rollback.function.ts","../src/fabric/functions/secrets-list.function.ts","../src/fabric/functions/secrets-rotate.function.ts","../src/fabric/functions/secrets-set.function.ts","../src/fabric/functions/smoke.function.ts","../src/fabric/functions/status.function.ts","../src/fabric/functions/trace.function.ts","../src/fabric/functions/validate.function.ts","../src/fabric/lib/config.ts","../src/fabric/lib/console-url.ts","../src/fabric/lib/frontend-typecheck.ts","../src/fabric/lib/git.ts","../src/fabric/lib/http.ts","../src/fabric/lib/not-implemented.ts","../src/fabric/lib/output.ts","../src/fabric/lib/prompt.ts","../src/fabric/lib/sealed-box.ts","../src/fabric/lib/stage.ts","../src/fabric/sdk/http-map.gen.d.ts","../src/fabric/sdk/pikku-fetch.gen.ts","../src/fabric/sdk/pikku-rpc.gen.ts","../src/fabric/sdk/rpc-map.gen.d.ts","../src/functions/commands/all.ts","../src/functions/commands/audit.ts","../src/functions/commands/binary.ts","../src/functions/commands/bootstrap.ts","../src/functions/commands/bun-coverage-loader.ts","../src/functions/commands/db-audit.ts","../src/functions/commands/db-baseline.ts","../src/functions/commands/db-check.ts","../src/functions/commands/db-codegen.ts","../src/functions/commands/db-export.ts","../src/functions/commands/db-generate.ts","../src/functions/commands/db-migrate.ts","../src/functions/commands/db-reset.ts","../src/functions/commands/db-shared.ts","../src/functions/commands/deploy-apply.ts","../src/functions/commands/deploy-info.ts","../src/functions/commands/deploy-plan.ts","../src/functions/commands/dev-agent-runner.ts","../src/functions/commands/dev.ts","../src/functions/commands/emails-init.ts","../src/functions/commands/enable.ts","../src/functions/commands/environment.ts","../src/functions/commands/import-n8n.ts","../src/functions/commands/info.ts","../src/functions/commands/knowledge-index.ts","../src/functions/commands/knowledge-validate.ts","../src/functions/commands/load-user-project.ts","../src/functions/commands/login.ts","../src/functions/commands/meta.ts","../src/functions/commands/new-addon.ts","../src/functions/commands/new-function.ts","../src/functions/commands/new-middleware.ts","../src/functions/commands/new-permission.ts","../src/functions/commands/new-wiring.ts","../src/functions/commands/persona-sync.ts","../src/functions/commands/persona.ts","../src/functions/commands/pikku-command-bootstrap.ts","../src/functions/commands/pikku-command-summary.ts","../src/functions/commands/roles-audit.ts","../src/functions/commands/roles-prune.ts","../src/functions/commands/roles-shared.ts","../src/functions/commands/scenario-browser.ts","../src/functions/commands/scenario-formatter.ts","../src/functions/commands/scenario-ladder.ts","../src/functions/commands/scenario-plan.ts","../src/functions/commands/scenario.ts","../src/functions/commands/scopes-audit.ts","../src/functions/commands/scopes-prune.ts","../src/functions/commands/scopes-shared.ts","../src/functions/commands/semver-render.ts","../src/functions/commands/semver.ts","../src/functions/commands/serve-console.ts","../src/functions/commands/serve.ts","../src/functions/commands/skills.ts","../src/functions/commands/start-coverage.ts","../src/functions/commands/update-render.ts","../src/functions/commands/update.ts","../src/functions/commands/validate.ts","../src/functions/commands/versions-check.ts","../src/functions/commands/versions-init.ts","../src/functions/commands/versions-update.ts","../src/functions/commands/virtual-user-formatter.ts","../src/functions/commands/watch.ts","../src/functions/db/annotation-parser.ts","../src/functions/db/better-auth-schema.ts","../src/functions/db/db-codegen.ts","../src/functions/db/db-introspector.ts","../src/functions/db/db-migrator.ts","../src/functions/db/local-db.ts","../src/functions/db/migration-identifiers.ts","../src/functions/db/migration-provenance.ts","../src/functions/db/schema-sql.ts","../src/functions/db/zod-codegen.ts","../src/functions/db/postgres/pglite-kysely.ts","../src/functions/db/postgres/postgres-introspector.ts","../src/functions/db/postgres/postgres-migrator.ts","../src/functions/db/sqlite/dev-seed.ts","../src/functions/db/sqlite/sqlite-introspector.ts","../src/functions/db/sqlite/sqlite-kysely.ts","../src/functions/db/sqlite/sqlite-migrator.ts","../src/functions/db/sqlite/sqlite-runtime-bun.ts","../src/functions/db/sqlite/sqlite-runtime-node.ts","../src/functions/db/sqlite/sqlite-runtime.ts","../src/functions/knowledge/render.ts","../src/functions/knowledge/schemas.ts","../src/functions/runtimes/fetch/index.ts","../src/functions/runtimes/nextjs/pikku-command-nextjs.ts","../src/functions/runtimes/nextjs/serialize-nextjs-backend-worker-rpc-wrapper.ts","../src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.ts","../src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.ts","../src/functions/runtimes/tanstack-start/pikku-command-tanstack-start.ts","../src/functions/runtimes/tanstack-start/serialize-tanstack-start-shim.ts","../src/functions/runtimes/websocket/pikku-command-websocket-typed.ts","../src/functions/runtimes/websocket/serialize-websocket-wrapper.ts","../src/functions/surface/build-surface-doc.ts","../src/functions/surface/collect-surface-usage.ts","../src/functions/surface/collect-surface.ts","../src/functions/surface/generate-surface-doc.ts","../src/functions/surface/shipped-surface-doc.ts","../src/functions/surface/surface-doc.types.ts","../src/functions/surface/surface-editorial.ts","../src/functions/surface/write-surface-usage.ts","../src/functions/validate/addon-package-checks.ts","../src/functions/validate/bootstrap-checks.ts","../src/functions/validate/persona-checks.ts","../src/functions/validate/pikku-barrel-checks.ts","../src/functions/validate/scenario-file-checks.ts","../src/functions/validate/shared-checks.ts","../src/functions/validate/type-identity-checks.ts","../src/functions/validate/validate-registry.ts","../src/functions/validate/validate.ts","../src/functions/validate/workspace-exports-checks.ts","../src/functions/wirings/agent/pikku-command-agent-types.ts","../src/functions/wirings/agent/pikku-command-agent.ts","../src/functions/wirings/agent/pikku-command-public-agent.ts","../src/functions/wirings/agent/serialize-agent-map.ts","../src/functions/wirings/agent/serialize-agent-types.ts","../src/functions/wirings/agent/serialize-model-aliases.ts","../src/functions/wirings/agent/serialize-public-agent.ts","../src/functions/wirings/agent-scorer/pikku-command-agent-scorer.ts","../src/functions/wirings/agent-scorer/serialize-scorer-names.ts","../src/functions/wirings/auth/pikku-command-auth.ts","../src/functions/wirings/auth/serialize-auth-gen.ts","../src/functions/wirings/auth/serialize-auth-guards.ts","../src/functions/wirings/auth/serialize-auth-meta.ts","../src/functions/wirings/auth/serialize-auth-types.ts","../src/functions/wirings/channels/pikku-channels.ts","../src/functions/wirings/channels/pikku-command-channel-types.ts","../src/functions/wirings/channels/pikku-command-channels-map.ts","../src/functions/wirings/channels/pikku-command-channels.ts","../src/functions/wirings/channels/serialize-channel-types.ts","../src/functions/wirings/channels/serialize-typed-channel-map.ts","../src/functions/wirings/cli/pikku-command-cli-entry.ts","../src/functions/wirings/cli/pikku-command-cli-types.ts","../src/functions/wirings/cli/pikku-command-cli.ts","../src/functions/wirings/cli/serialize-channel-cli-client.ts","../src/functions/wirings/cli/serialize-channel-cli.ts","../src/functions/wirings/cli/serialize-cli-entrypoint-guard.ts","../src/functions/wirings/cli/serialize-cli-types.ts","../src/functions/wirings/cli/serialize-local-cli-bootstrap.ts","../src/functions/wirings/console/pikku-command-console-functions.ts","../src/functions/wirings/console/pikku-command-nodes-meta.ts","../src/functions/wirings/console/serialize-console-functions.ts","../src/functions/wirings/credentials/pikku-command-credentials.ts","../src/functions/wirings/credentials/serialize-credentials-types.ts","../src/functions/wirings/emails/pikku-command-emails.ts","../src/functions/wirings/emails/serialize-emails.ts","../src/functions/wirings/errors/pikku-command-error-types.ts","../src/functions/wirings/errors/serialize-error-types.ts","../src/functions/wirings/functions/pikku-command-addon-types.ts","../src/functions/wirings/functions/pikku-command-function-types-split.ts","../src/functions/wirings/functions/pikku-command-functions.ts","../src/functions/wirings/functions/pikku-command-leaf-indexes.ts","../src/functions/wirings/functions/pikku-command-services.ts","../src/functions/wirings/functions/schemas.ts","../src/functions/wirings/functions/serialize-addon-refs.ts","../src/functions/wirings/functions/serialize-addon-types.ts","../src/functions/wirings/functions/serialize-function-imports.ts","../src/functions/wirings/functions/serialize-function-types.ts","../src/functions/wirings/functions/serialize-leaf-index.ts","../src/functions/wirings/gateway/pikku-command-gateway-types.ts","../src/functions/wirings/gateway/pikku-command-gateway.ts","../src/functions/wirings/gateway/serialize-gateway-meta.ts","../src/functions/wirings/gateway/serialize-gateway-types.ts","../src/functions/wirings/graph/pikku-command-graph-wirings.ts","../src/functions/wirings/graph/serialize-graph-wirings.ts","../src/functions/wirings/http/pikku-command-http-map.ts","../src/functions/wirings/http/pikku-command-http-routes.ts","../src/functions/wirings/http/pikku-command-http-types.ts","../src/functions/wirings/http/pikku-command-openapi.ts","../src/functions/wirings/http/pikku-http-routes.ts","../src/functions/wirings/http/serialize-fetch-wrapper.ts","../src/functions/wirings/http/serialize-http-types.ts","../src/functions/wirings/http/serialize-typed-http-map.ts","../src/functions/wirings/mcp/pikku-command-mcp-json.ts","../src/functions/wirings/mcp/pikku-command-mcp-types.ts","../src/functions/wirings/mcp/pikku-command-mcp.ts","../src/functions/wirings/mcp/serialize-mcp-types.ts","../src/functions/wirings/middleware/pikku-command-middleware.ts","../src/functions/wirings/middleware/serialize-middleware-imports.ts","../src/functions/wirings/middleware/serialize-middleware-types.ts","../src/functions/wirings/package/pikku-command-package-types.ts","../src/functions/wirings/package/pikku-command-package.ts","../src/functions/wirings/package/serialize-package-types.ts","../src/functions/wirings/package/serialize-package.ts","../src/functions/wirings/permissions/pikku-command-permissions.ts","../src/functions/wirings/permissions/serialize-permissions-imports.ts","../src/functions/wirings/personas/personas-secrets-file.ts","../src/functions/wirings/personas/pikku-command-personas.ts","../src/functions/wirings/personas/serialize-personas-secrets.ts","../src/functions/wirings/personas/serialize-personas-types.ts","../src/functions/wirings/queue/pikku-command-queue-map.ts","../src/functions/wirings/queue/pikku-command-queue-service.ts","../src/functions/wirings/queue/pikku-command-queue-types.ts","../src/functions/wirings/queue/pikku-command-queue.ts","../src/functions/wirings/queue/pikku-queue-map.ts","../src/functions/wirings/queue/pikku-queue.ts","../src/functions/wirings/queue/serialize-queue-map.ts","../src/functions/wirings/queue/serialize-queue-meta.ts","../src/functions/wirings/queue/serialize-queue-types.ts","../src/functions/wirings/queue/serialize-queue-wrapper.ts","../src/functions/wirings/realtime/pikku-command-events-scaffold.ts","../src/functions/wirings/realtime/pikku-command-realtime.ts","../src/functions/wirings/realtime/serialize-events-scaffold.ts","../src/functions/wirings/realtime/serialize-realtime-client.ts","../src/functions/wirings/roles/pikku-command-roles.ts","../src/functions/wirings/roles/serialize-roles-types.ts","../src/functions/wirings/rpc/pikku-command-public-rpc.ts","../src/functions/wirings/rpc/pikku-command-react-query.ts","../src/functions/wirings/rpc/pikku-command-remote-rpc.ts","../src/functions/wirings/rpc/pikku-command-rpc-client.ts","../src/functions/wirings/rpc/pikku-command-rpc-map.ts","../src/functions/wirings/rpc/pikku-command-rpc.ts","../src/functions/wirings/rpc/serialize-public-rpc.ts","../src/functions/wirings/rpc/serialize-react-query-hooks.ts","../src/functions/wirings/rpc/serialize-remote-rpc.ts","../src/functions/wirings/rpc/serialize-rpc-wrapper.ts","../src/functions/wirings/rpc/serialize-typed-rpc-map.ts","../src/functions/wirings/scenarios/register-scenario-instrumentation.ts","../src/functions/wirings/scenarios/scenario-partition.ts","../src/functions/wirings/scenarios/scenario-schema-partition.ts","../src/functions/wirings/scenarios/serialize-feature-meta.ts","../src/functions/wirings/scenarios/serialize-scenario-meta.ts","../src/functions/wirings/scenarios/serialize-scenario-registration.ts","../src/functions/wirings/scheduler/pikku-command-scheduler-types.ts","../src/functions/wirings/scheduler/pikku-command-scheduler.ts","../src/functions/wirings/scheduler/serialize-scheduler-meta.ts","../src/functions/wirings/scheduler/serialize-scheduler-types.ts","../src/functions/wirings/scopes/pikku-command-scopes.ts","../src/functions/wirings/scopes/serialize-scopes-client.ts","../src/functions/wirings/scopes/serialize-scopes-types.ts","../src/functions/wirings/secrets/pikku-command-secrets.ts","../src/functions/wirings/secrets/serialize-secrets-types.ts","../src/functions/wirings/setup/serialize-setup-types.ts","../src/functions/wirings/triggers/pikku-command-trigger-types.ts","../src/functions/wirings/triggers/pikku-command-trigger.ts","../src/functions/wirings/triggers/serialize-trigger-meta.ts","../src/functions/wirings/triggers/serialize-trigger-types.ts","../src/functions/wirings/user-admin/pikku-command-user-admin-functions.ts","../src/functions/wirings/user-admin/serialize-user-admin-functions.ts","../src/functions/wirings/variables/pikku-command-variables.ts","../src/functions/wirings/variables/serialize-variables-types.ts","../src/functions/wirings/virtual-user/pikku-command-virtual-user-functions.ts","../src/functions/wirings/virtual-user/serialize-virtual-user-functions.ts","../src/functions/wirings/webhook/pikku-command-webhook.ts","../src/functions/wirings/webhook/serialize-webhook.ts","../src/functions/wirings/workflow/pikku-command-workflow-routes.ts","../src/functions/wirings/workflow/pikku-command-workflow.ts","../src/functions/wirings/workflow/serialize-personas.ts","../src/functions/wirings/workflow/serialize-scenario-step-map.ts","../src/functions/wirings/workflow/serialize-scenario-types.ts","../src/functions/wirings/workflow/serialize-workflow-bootstrap-map.ts","../src/functions/wirings/workflow/serialize-workflow-map.ts","../src/functions/wirings/workflow/serialize-workflow-meta.ts","../src/functions/wirings/workflow/serialize-workflow-registration.ts","../src/functions/wirings/workflow/serialize-workflow-routes.ts","../src/functions/wirings/workflow/serialize-workflow-types.ts","../src/functions/workflows/all.workflow.ts","../src/middleware/log-command-info-and-time.ts","../src/server/bun-server-runner.ts","../src/server/content-signing-jwt.ts","../src/server/dev-server-runner.interface.ts","../src/server/node-server-runner.ts","../src/server/server-ready.ts","../src/server/spawn-dev-server.ts","../src/services/cli-logger-forwarder.service.ts","../src/services/cli-logger.service.ts","../src/utils/assert-single-core-version.ts","../src/utils/check-required-types.ts","../src/utils/cli-session.ts","../src/utils/command-summary.ts","../src/utils/contract-versions.ts","../src/utils/detect-better-auth.ts","../src/utils/device-auth.ts","../src/utils/file-import-path.ts","../src/utils/file-imports-serializer.ts","../src/utils/file-writer.ts","../src/utils/generate-bootstrap-file.ts","../src/utils/get-cli-version.ts","../src/utils/is-deploy-codegen.ts","../src/utils/leaf-import-path.ts","../src/utils/meta-diff.ts","../src/utils/model-alias-override.ts","../src/utils/parse-cli-filters.ts","../src/utils/pikku-cli-config.ts","../src/utils/pikku-files-and-methods.ts","../src/utils/precise-coverage-map.ts","../src/utils/remove-legacy-scaffold-file.ts","../src/utils/resolve-personas.ts","../src/utils/resolve-scaffold-feature.ts","../src/utils/schema-diff.ts","../src/utils/serialize-import-map.ts","../src/utils/serialize-meta-ts.ts","../src/utils/serialize-schemas.ts","../src/utils/strip-verbose-meta.ts","../src/utils/surface-diff.ts","../src/utils/surface.ts","../src/utils/tsc-check.ts","../.pikku/pikku-bootstrap-scenarios.gen.ts","../.pikku/pikku-bootstrap.gen.ts","../.pikku/pikku-services.gen.ts","../.pikku/addon/index.ts","../.pikku/addon/pikku-addon-types.gen.ts","../.pikku/agent/index.ts","../.pikku/agent/pikku-agent-map.gen.d.ts","../.pikku/agent/pikku-agent-types.gen.ts","../.pikku/agent/pikku-model-aliases.gen.ts","../.pikku/agent/pikku-scorer-names.gen.d.ts","../.pikku/auth/auth.types.ts","../.pikku/auth/index.ts","../.pikku/auth/pikku-auth-types.gen.ts","../.pikku/channel/index.ts","../.pikku/channel/pikku-channel-types.gen.ts","../.pikku/cli/index.ts","../.pikku/cli/pikku-cli-channel.ts","../.pikku/cli/pikku-cli-client.gen.ts","../.pikku/cli/pikku-cli-contracts-meta.gen.ts","../.pikku/cli/pikku-cli-types.gen.ts","../.pikku/cli/pikku-cli-wirings-meta.gen.ts","../.pikku/cli/pikku-cli-wirings.gen.ts","../.pikku/cli/pikku-cli.gen.ts","../.pikku/error/index.ts","../.pikku/error/pikku-error-types.gen.ts","../.pikku/function/index.ts","../.pikku/function/pikku-function-types.gen.ts","../.pikku/function/pikku-functions-meta.gen.ts","../.pikku/function/pikku-functions.gen.ts","../.pikku/gateway/index.ts","../.pikku/gateway/pikku-gateway-types.gen.ts","../.pikku/http/index.ts","../.pikku/http/pikku-http-types.gen.ts","../.pikku/mcp/index.ts","../.pikku/mcp/pikku-mcp-types.gen.ts","../.pikku/middleware/index.ts","../.pikku/middleware/pikku-middleware-types.gen.ts","../.pikku/node/pikku-node-types.gen.ts","../.pikku/queue/index.ts","../.pikku/queue/pikku-queue-types.gen.ts","../.pikku/queue/pikku-queue-workers-wirings-map.gen.d.ts","../.pikku/queue/pikku-queue-workers-wirings-meta.gen.ts","../.pikku/queue/pikku-queue-workers-wirings.gen.ts","../.pikku/rpc/pikku-rpc-wirings-map.gen.d.ts","../.pikku/rpc/pikku-rpc-wirings-map.internal.gen.d.ts","../.pikku/rpc/pikku-rpc-wirings-map.remote.gen.d.ts","../.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.ts","../.pikku/scenarios/index.ts","../.pikku/scenarios/pikku-personas.gen.ts","../.pikku/scenarios/pikku-scenario-functions-meta.gen.ts","../.pikku/scenarios/pikku-scenario-functions.gen.ts","../.pikku/scenarios/pikku-scenario-types.gen.ts","../.pikku/scenarios/pikku-scenario-wirings-meta.gen.ts","../.pikku/scenarios/pikku-scenario-wirings.gen.ts","../.pikku/scenarios/schemas/register.gen.ts","../.pikku/scheduler/index.ts","../.pikku/scheduler/pikku-scheduler-types.gen.ts","../.pikku/schemas/register.gen.ts","../.pikku/scopes/index.ts","../.pikku/scopes/pikku-personas.gen.ts","../.pikku/scopes/pikku-roles.gen.ts","../.pikku/scopes/pikku-scope-types.gen.ts","../.pikku/scopes/pikku-scopes.gen.ts","../.pikku/secrets/index.ts","../.pikku/secrets/pikku-secret-types.gen.ts","../.pikku/secrets/pikku-secrets.gen.ts","../.pikku/services/pikku-meta-service.gen.ts","../.pikku/setup/index.ts","../.pikku/setup/pikku-setup-types.gen.ts","../.pikku/trigger/index.ts","../.pikku/trigger/pikku-trigger-types.gen.ts","../.pikku/variables/index.ts","../.pikku/variables/pikku-variable-types.gen.ts","../.pikku/variables/pikku-variables.gen.ts","../.pikku/workflow/index.ts","../.pikku/workflow/pikku-scenario-step-map.gen.d.ts","../.pikku/workflow/pikku-workflow-map.gen.d.ts","../.pikku/workflow/pikku-workflow-types.gen.ts","../.pikku/workflow/pikku-workflow-wirings-meta.gen.ts","../.pikku/workflow/pikku-workflow-wirings.gen.ts","../types/application-types.d.ts","../types/bun-sqlite.d.ts","../types/config.d.ts"],"version":"6.0.3"}