@pikku/cli 0.12.124 → 0.12.125

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 (254) hide show
  1. package/CHANGELOG.md +79 -0
  2. package/console-app/assets/{abnfDiagram-N423BO3Z-BP7zxMq6.js → abnfDiagram-N423BO3Z-B2suyn6i.js} +1 -1
  3. package/console-app/assets/architecture-TIHT7OUA-DmG0bXDT.js +1 -0
  4. package/console-app/assets/{architectureDiagram-T3A2C74G-mvqdkIfF.js → architectureDiagram-T3A2C74G-BQ5Dfvpo.js} +1 -1
  5. package/console-app/assets/{blockDiagram-VBNYF7ZC-daD8h3VT.js → blockDiagram-VBNYF7ZC-D4pVRDiF.js} +1 -1
  6. package/console-app/assets/{c4Diagram-5PPSVZJV-Bd0_wKJj.js → c4Diagram-5PPSVZJV-Da04jGpq.js} +1 -1
  7. package/console-app/assets/channel-BgCT5gon.js +1 -0
  8. package/console-app/assets/{chunk-2GRJ4B5K-BFRr_H2V.js → chunk-2GRJ4B5K-CwODIPP4.js} +1 -1
  9. package/console-app/assets/{chunk-4I5QYGJK-BXWo5Xyx.js → chunk-4I5QYGJK-Bep4akjR.js} +1 -1
  10. package/console-app/assets/{chunk-5RXB4S5H-BFnXfzzz.js → chunk-5RXB4S5H-CGyCRU9L.js} +1 -1
  11. package/console-app/assets/{chunk-6Q2QTUOP-Bswg4T3s.js → chunk-6Q2QTUOP-D0IK0SMT.js} +1 -1
  12. package/console-app/assets/{chunk-7Z6QIM7H-StNGH40U.js → chunk-7Z6QIM7H-D12vS1jX.js} +1 -1
  13. package/console-app/assets/{chunk-GF5L2VYU-QwXKtQxa.js → chunk-GF5L2VYU-kOLwTzIA.js} +1 -1
  14. package/console-app/assets/{chunk-I66GZJ75-DDQhhfA0.js → chunk-I66GZJ75-Cb2nDoa3.js} +1 -1
  15. package/console-app/assets/{chunk-JQJVKLGR-wFyF2bUv.js → chunk-JQJVKLGR-B3a_ctfQ.js} +1 -1
  16. package/console-app/assets/{chunk-KBJHAD2P-CQPQVDkD.js → chunk-KBJHAD2P-DeP2Lqwp.js} +1 -1
  17. package/console-app/assets/{chunk-NSK5VX7P-DZhjvnHm.js → chunk-NSK5VX7P-BO8vlGrO.js} +1 -1
  18. package/console-app/assets/{chunk-QR6OTTB3-D1-TbcCP.js → chunk-QR6OTTB3-sX5V0Lok.js} +1 -1
  19. package/console-app/assets/{chunk-RYQCIY6F-82OYF6U8.js → chunk-RYQCIY6F-DoCObEhk.js} +1 -1
  20. package/console-app/assets/{chunk-UBXNYLIW-D85x6Zh2.js → chunk-UBXNYLIW-BndMXU5r.js} +1 -1
  21. package/console-app/assets/{chunk-W5SLKNZC-B1Ps46_n.js → chunk-W5SLKNZC--VrZN8EC.js} +1 -1
  22. package/console-app/assets/{chunk-WRU74C26-Ct8XrToU.js → chunk-WRU74C26-DdS0mzXO.js} +1 -1
  23. package/console-app/assets/chunk-XXDRQBXY-EP2C9tTO.js +1 -0
  24. package/console-app/assets/classDiagram-JCYQIIEL-D9wGqB4J.js +1 -0
  25. package/console-app/assets/classDiagram-v2-OCEON4UE-D9wGqB4J.js +1 -0
  26. package/console-app/assets/{cose-bilkent-JH36ORCC-DdevwV5Y.js → cose-bilkent-JH36ORCC-C5EnHkFn.js} +1 -1
  27. package/console-app/assets/{cynefin-VYW2F7L2-Dj55csoo.js → cynefin-VYW2F7L2-9irdkTt4.js} +1 -1
  28. package/console-app/assets/{cynefinDiagram-MW4NZA55-XWSzdajo.js → cynefinDiagram-MW4NZA55-DY19660c.js} +1 -1
  29. package/console-app/assets/{dagre-VZM6K2ZE-BV2l3zSF.js → dagre-VZM6K2ZE-BYFZSaSb.js} +1 -1
  30. package/console-app/assets/{dagre-CLoXIMX5.js → dagre-nXgDYqvf.js} +1 -1
  31. package/console-app/assets/{diagram-7IWD3JNH-DC9NK-nv.js → diagram-7IWD3JNH-oDftiTp1.js} +1 -1
  32. package/console-app/assets/{diagram-B4RE2ZJO-Cirfb0aN.js → diagram-B4RE2ZJO-Cbj-pPbH.js} +1 -1
  33. package/console-app/assets/{diagram-LBJQPF4R-BuRRy5X5.js → diagram-LBJQPF4R-Ch53oSKw.js} +1 -1
  34. package/console-app/assets/{diagram-Q27KOJAE-CAOKQ2xs.js → diagram-Q27KOJAE-DA7K814v.js} +1 -1
  35. package/console-app/assets/{diagram-UB23O5K3-Bto5kBJo.js → diagram-UB23O5K3-B-_C-ctS.js} +1 -1
  36. package/console-app/assets/{ebnfDiagram-BXEA7PRR-C5OndYGC.js → ebnfDiagram-BXEA7PRR-DsOdsKXy.js} +1 -1
  37. package/console-app/assets/{erDiagram-JOGREHBK-DqU4xV4C.js → erDiagram-JOGREHBK-XB1mP5_A.js} +1 -1
  38. package/console-app/assets/eventmodeling-45OFAUF4-NKFCZ8Fj.js +1 -0
  39. package/console-app/assets/flowDiagram-UKHOOZJN-BpdPkmum.js +1 -0
  40. package/console-app/assets/{ganttDiagram-PKOTCBZU-D5_DE9R0.js → ganttDiagram-PKOTCBZU-knk0XSHi.js} +1 -1
  41. package/console-app/assets/{gitGraph-TEB2WS4Q-nuqfz7Fd.js → gitGraph-TEB2WS4Q-COJnK2tM.js} +1 -1
  42. package/console-app/assets/{gitGraphDiagram-DS77QQ5N-BtJwp2Y3.js → gitGraphDiagram-DS77QQ5N-sF0v605q.js} +1 -1
  43. package/console-app/assets/{index-DXcH2K9z.css → index-C8MC-uMB.css} +1 -1
  44. package/console-app/assets/{index-DRfts2XF.js → index-DMnbsgzs.js} +3 -3
  45. package/console-app/assets/{info-DKCQHKI2-CIfPVqHr.js → info-DKCQHKI2-Cbatr0w6.js} +1 -1
  46. package/console-app/assets/{infoDiagram-6WML65LV-B-gTHQad.js → infoDiagram-6WML65LV-93TFPCu2.js} +1 -1
  47. package/console-app/assets/{ishikawaDiagram-WSZJBQD7-CCwAWb1g.js → ishikawaDiagram-WSZJBQD7-BBR8_Qms.js} +1 -1
  48. package/console-app/assets/{journeyDiagram-NVQOT4AX-DhqNj_ci.js → journeyDiagram-NVQOT4AX-zG55yDoc.js} +1 -1
  49. package/console-app/assets/{kanban-definition-27J2QSJJ-DspZ1b3Y.js → kanban-definition-27J2QSJJ-DonGcEAY.js} +1 -1
  50. package/console-app/assets/{line-D7ZCpNkR.js → line-D1WdVm1S.js} +1 -1
  51. package/console-app/assets/{linear-B5jMy_q9.js → linear-D2GQL4Cm.js} +1 -1
  52. package/console-app/assets/{mermaid-parser.core-CMBFGJ0U.js → mermaid-parser.core-b4yKyO56.js} +3 -3
  53. package/console-app/assets/{mermaid.core-DYoDrSEJ.js → mermaid.core-Cwfec1gr.js} +4 -4
  54. package/console-app/assets/{mindmap-definition-FAOFIHXS-DsHwd2K9.js → mindmap-definition-FAOFIHXS-D0G4yKgw.js} +1 -1
  55. package/console-app/assets/{packet-7NZHBO7P-BSRRjf4H.js → packet-7NZHBO7P-DDa4HL2T.js} +1 -1
  56. package/console-app/assets/{pegDiagram-VL7TDLO6-Bi0OlzgS.js → pegDiagram-VL7TDLO6-fPdN5VZs.js} +1 -1
  57. package/console-app/assets/{pie-RZYD4A2V-D-8tgqYW.js → pie-RZYD4A2V-DRHURUqo.js} +1 -1
  58. package/console-app/assets/{pieDiagram-7S7Q4E2Y-CsYbVqaR.js → pieDiagram-7S7Q4E2Y-DMYn8ga_.js} +1 -1
  59. package/console-app/assets/{quadrantDiagram-CIZ2JOQS-LkLWrWKK.js → quadrantDiagram-CIZ2JOQS-C190OamC.js} +1 -1
  60. package/console-app/assets/{radar-I7S5WNFK-Bst62XZP.js → radar-I7S5WNFK-Djvqzz9A.js} +1 -1
  61. package/console-app/assets/{railroad-3IZDKUUU-zJswMQYF.js → railroad-3IZDKUUU-C9YvFeFq.js} +1 -1
  62. package/console-app/assets/railroad-abnf-AHOZXSZD-B3CYVW4p.js +1 -0
  63. package/console-app/assets/railroad-ebnf-EBAXGLYW-DrZ2yF62.js +1 -0
  64. package/console-app/assets/railroad-peg-LSFZ7HO6-CWAmMyxd.js +1 -0
  65. package/console-app/assets/{railroadDiagram-AXF67PYL-C0QZkg7m.js → railroadDiagram-AXF67PYL-IRFg1VrU.js} +1 -1
  66. package/console-app/assets/{requirementDiagram-LRYGKXZP-BQg0AbLI.js → requirementDiagram-LRYGKXZP-L-7ubbcT.js} +1 -1
  67. package/console-app/assets/{sankeyDiagram-W5VNT64P-CQb0BMMi.js → sankeyDiagram-W5VNT64P-DBttV6Gt.js} +1 -1
  68. package/console-app/assets/{sequenceDiagram-SI44F4Z6-BzgBi0a5.js → sequenceDiagram-SI44F4Z6-Bg15oKAB.js} +1 -1
  69. package/console-app/assets/{src-Dg-KiSsV.js → src-DUC7tLWb.js} +1 -1
  70. package/console-app/assets/{stateDiagram-OKZ733FA-BiqXn68g.js → stateDiagram-OKZ733FA-PWl0XGs5.js} +1 -1
  71. package/console-app/assets/stateDiagram-v2-UEYNNEHI-Celbgz4u.js +1 -0
  72. package/console-app/assets/{swimlanes-SLNWSIFB-Dy7wDP1q.js → swimlanes-SLNWSIFB-CyXEtGBV.js} +1 -1
  73. package/console-app/assets/swimlanesDiagram-ULZ7WXOC-zxpNaB4U.js +8 -0
  74. package/console-app/assets/{timeline-definition-Z64GVDOM-DSWXli8X.js → timeline-definition-Z64GVDOM-BLA-DhBt.js} +1 -1
  75. package/console-app/assets/{treeView-QDETBFTQ-CeWwcs9r.js → treeView-QDETBFTQ-Bfnmn2UY.js} +1 -1
  76. package/console-app/assets/{treemap-6X3UGDF4-BfrumiJh.js → treemap-6X3UGDF4-DTA0wveO.js} +1 -1
  77. package/console-app/assets/{vennDiagram-T6HMQDX7-BsuldZ1n.js → vennDiagram-T6HMQDX7-CLXYZln0.js} +1 -1
  78. package/console-app/assets/{wardley-OPB4EBWU-oZldxS8z.js → wardley-OPB4EBWU-zwxqisG0.js} +1 -1
  79. package/console-app/assets/{wardleyDiagram-T6FBY63Y-C5LXyHMj.js → wardleyDiagram-T6FBY63Y-hKtKvNlv.js} +1 -1
  80. package/console-app/assets/{xychartDiagram-ELKLHX3M-CwhqhNkO.js → xychartDiagram-ELKLHX3M-BGf8p4bo.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 +6 -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-contracts-meta.gen.json +7 -0
  106. package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +1 -1
  107. package/dist/.pikku/cli/pikku-cli-types.gen.js +1 -1
  108. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +1 -1
  109. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.json +14 -0
  110. package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +1 -1
  111. package/dist/.pikku/cli/pikku-cli-wirings.gen.js +1 -1
  112. package/dist/.pikku/cli/pikku-cli.gen.d.ts +1 -1
  113. package/dist/.pikku/cli/pikku-cli.gen.js +1 -1
  114. package/dist/.pikku/error/index.d.ts +1 -1
  115. package/dist/.pikku/error/index.js +1 -1
  116. package/dist/.pikku/error/pikku-error-types.gen.d.ts +1 -1
  117. package/dist/.pikku/error/pikku-error-types.gen.js +1 -1
  118. package/dist/.pikku/function/index.d.ts +1 -1
  119. package/dist/.pikku/function/index.js +1 -1
  120. package/dist/.pikku/function/pikku-function-types.gen.d.ts +1 -1
  121. package/dist/.pikku/function/pikku-function-types.gen.js +1 -1
  122. package/dist/.pikku/function/pikku-functions-meta.gen.js +1 -1
  123. package/dist/.pikku/function/pikku-functions-meta.gen.json +25 -6
  124. package/dist/.pikku/function/pikku-functions.gen.js +1 -1
  125. package/dist/.pikku/gateway/index.d.ts +1 -1
  126. package/dist/.pikku/gateway/index.js +1 -1
  127. package/dist/.pikku/gateway/pikku-gateway-types.gen.d.ts +1 -1
  128. package/dist/.pikku/gateway/pikku-gateway-types.gen.js +1 -1
  129. package/dist/.pikku/http/index.d.ts +1 -1
  130. package/dist/.pikku/http/index.js +1 -1
  131. package/dist/.pikku/http/pikku-http-types.gen.d.ts +1 -1
  132. package/dist/.pikku/http/pikku-http-types.gen.js +1 -1
  133. package/dist/.pikku/mcp/index.d.ts +1 -1
  134. package/dist/.pikku/mcp/index.js +1 -1
  135. package/dist/.pikku/mcp/pikku-mcp-types.gen.d.ts +1 -1
  136. package/dist/.pikku/mcp/pikku-mcp-types.gen.js +1 -1
  137. package/dist/.pikku/middleware/index.d.ts +1 -1
  138. package/dist/.pikku/middleware/index.js +1 -1
  139. package/dist/.pikku/middleware/pikku-middleware-types.gen.d.ts +1 -1
  140. package/dist/.pikku/middleware/pikku-middleware-types.gen.js +1 -1
  141. package/dist/.pikku/pikku-bootstrap-scenarios.gen.d.ts +1 -1
  142. package/dist/.pikku/pikku-bootstrap-scenarios.gen.js +1 -1
  143. package/dist/.pikku/pikku-bootstrap.gen.d.ts +1 -1
  144. package/dist/.pikku/pikku-bootstrap.gen.js +1 -1
  145. package/dist/.pikku/pikku-services.gen.d.ts +1 -1
  146. package/dist/.pikku/queue/index.d.ts +1 -1
  147. package/dist/.pikku/queue/index.js +1 -1
  148. package/dist/.pikku/queue/pikku-queue-types.gen.d.ts +1 -1
  149. package/dist/.pikku/queue/pikku-queue-types.gen.js +1 -1
  150. package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.js +1 -1
  151. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.d.ts +1 -1
  152. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.js +1 -1
  153. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +1 -1
  154. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.json +1 -0
  155. package/dist/.pikku/scenarios/index.d.ts +1 -1
  156. package/dist/.pikku/scenarios/index.js +1 -1
  157. package/dist/.pikku/scenarios/pikku-personas.gen.js +1 -1
  158. package/dist/.pikku/scenarios/pikku-scenario-functions-meta.gen.js +1 -1
  159. package/dist/.pikku/scenarios/pikku-scenario-functions.gen.d.ts +1 -1
  160. package/dist/.pikku/scenarios/pikku-scenario-types.gen.d.ts +1 -1
  161. package/dist/.pikku/scenarios/pikku-scenario-wirings-meta.gen.js +1 -1
  162. package/dist/.pikku/scenarios/pikku-scenario-wirings.gen.d.ts +1 -1
  163. package/dist/.pikku/scenarios/schemas/register.gen.d.ts +1 -1
  164. package/dist/.pikku/scenarios/schemas/register.gen.js +1 -1
  165. package/dist/.pikku/scheduler/index.d.ts +1 -1
  166. package/dist/.pikku/scheduler/index.js +1 -1
  167. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +1 -1
  168. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +1 -1
  169. package/dist/.pikku/schemas/register.gen.js +5 -1
  170. package/dist/.pikku/schemas/schemas/DeployApplyInput.schema.json +1 -1
  171. package/dist/.pikku/schemas/schemas/FabricProjectsListInput.schema.json +1 -0
  172. package/dist/.pikku/schemas/schemas/FabricProjectsListOutput.schema.json +1 -0
  173. package/dist/.pikku/scopes/index.d.ts +1 -1
  174. package/dist/.pikku/scopes/index.js +1 -1
  175. package/dist/.pikku/scopes/pikku-personas.gen.js +1 -1
  176. package/dist/.pikku/scopes/pikku-roles.gen.d.ts +1 -1
  177. package/dist/.pikku/scopes/pikku-scope-types.gen.d.ts +1 -1
  178. package/dist/.pikku/scopes/pikku-scope-types.gen.js +1 -1
  179. package/dist/.pikku/scopes/pikku-scopes.gen.d.ts +1 -1
  180. package/dist/.pikku/secrets/index.d.ts +1 -1
  181. package/dist/.pikku/secrets/index.js +1 -1
  182. package/dist/.pikku/secrets/pikku-secret-types.gen.d.ts +1 -1
  183. package/dist/.pikku/secrets/pikku-secret-types.gen.js +1 -1
  184. package/dist/.pikku/secrets/pikku-secrets.gen.d.ts +1 -1
  185. package/dist/.pikku/secrets/pikku-secrets.gen.js +1 -1
  186. package/dist/.pikku/services/pikku-meta-service.gen.d.ts +1 -1
  187. package/dist/.pikku/services/pikku-meta-service.gen.js +1 -1
  188. package/dist/.pikku/setup/index.d.ts +1 -1
  189. package/dist/.pikku/setup/index.js +1 -1
  190. package/dist/.pikku/setup/pikku-setup-types.gen.d.ts +1 -1
  191. package/dist/.pikku/setup/pikku-setup-types.gen.js +1 -1
  192. package/dist/.pikku/trigger/index.d.ts +1 -1
  193. package/dist/.pikku/trigger/index.js +1 -1
  194. package/dist/.pikku/trigger/pikku-trigger-types.gen.d.ts +1 -1
  195. package/dist/.pikku/trigger/pikku-trigger-types.gen.js +1 -1
  196. package/dist/.pikku/variables/index.d.ts +1 -1
  197. package/dist/.pikku/variables/index.js +1 -1
  198. package/dist/.pikku/variables/pikku-variable-types.gen.d.ts +1 -1
  199. package/dist/.pikku/variables/pikku-variable-types.gen.js +1 -1
  200. package/dist/.pikku/variables/pikku-variables.gen.d.ts +1 -1
  201. package/dist/.pikku/variables/pikku-variables.gen.js +1 -1
  202. package/dist/.pikku/workflow/index.d.ts +1 -1
  203. package/dist/.pikku/workflow/index.js +1 -1
  204. package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +1 -1
  205. package/dist/.pikku/workflow/pikku-workflow-types.gen.js +1 -1
  206. package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +1 -1
  207. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +1 -1
  208. package/dist/bin/pikku-bin.mjs +2 -2
  209. package/dist/src/cli.wiring.js +7 -0
  210. package/dist/src/deploy/build-pipeline.d.ts +10 -0
  211. package/dist/src/deploy/build-pipeline.js +16 -1
  212. package/dist/src/deploy/frontend-assets.d.ts +50 -0
  213. package/dist/src/deploy/frontend-assets.js +82 -0
  214. package/dist/src/fabric/fabric-commands.d.ts +40 -0
  215. package/dist/src/fabric/fabric-commands.js +6 -0
  216. package/dist/src/fabric/functions/projects-list.function.d.ts +72 -0
  217. package/dist/src/fabric/functions/projects-list.function.js +63 -0
  218. package/dist/src/functions/commands/deploy-apply.d.ts +10 -0
  219. package/dist/src/functions/commands/deploy-apply.js +8 -0
  220. package/dist/src/functions/commands/deploy-plan.js +1 -0
  221. package/dist/src/functions/commands/dev.js +13 -2
  222. package/dist/src/functions/commands/environment.d.ts +10 -0
  223. package/dist/src/functions/commands/environment.js +24 -0
  224. package/dist/src/functions/commands/serve-frontend.d.ts +11 -0
  225. package/dist/src/functions/commands/serve-frontend.js +17 -0
  226. package/dist/src/functions/commands/serve.js +16 -3
  227. package/dist/src/functions/db/annotation-parser.d.ts +8 -0
  228. package/dist/src/functions/db/annotation-parser.js +2 -0
  229. package/dist/src/functions/db/db-codegen.js +20 -1
  230. package/dist/src/functions/wirings/virtual-user/serialize-virtual-user-functions.js +6 -3
  231. package/dist/src/server/dev-server-runner.interface.d.ts +9 -0
  232. package/dist/src/server/node-server-runner.js +3 -0
  233. package/dist/src/server/server-ready.d.ts +6 -9
  234. package/dist/src/server/server-ready.js +6 -9
  235. package/dist/src/utils/frontend.d.ts +9 -0
  236. package/dist/src/utils/frontend.js +18 -0
  237. package/dist/src/utils/pikku-cli-config.d.ts +10 -1
  238. package/dist/src/utils/pikku-cli-config.js +27 -0
  239. package/dist/tsconfig.tsbuildinfo +1 -1
  240. package/package.json +8 -8
  241. package/snippets.json +2 -2
  242. package/surface.json +1 -1
  243. package/console-app/assets/architecture-TIHT7OUA-D4Hj6824.js +0 -1
  244. package/console-app/assets/channel-09aKDzM0.js +0 -1
  245. package/console-app/assets/chunk-XXDRQBXY-C1KaR4pt.js +0 -1
  246. package/console-app/assets/classDiagram-JCYQIIEL-23nagJMi.js +0 -1
  247. package/console-app/assets/classDiagram-v2-OCEON4UE-23nagJMi.js +0 -1
  248. package/console-app/assets/eventmodeling-45OFAUF4-RyG54ZHy.js +0 -1
  249. package/console-app/assets/flowDiagram-UKHOOZJN-DNdfrnRg.js +0 -1
  250. package/console-app/assets/railroad-abnf-AHOZXSZD-DX4FqVY6.js +0 -1
  251. package/console-app/assets/railroad-ebnf-EBAXGLYW-DdyOtX1l.js +0 -1
  252. package/console-app/assets/railroad-peg-LSFZ7HO6-CclC1sXF.js +0 -1
  253. package/console-app/assets/stateDiagram-v2-UEYNNEHI-I34jrzP0.js +0 -1
  254. package/console-app/assets/swimlanesDiagram-ULZ7WXOC-C1PrPB0G.js +0 -8
@@ -178,8 +178,15 @@ async function runDeploy(provider, providerDir, logger, resultFile) {
178
178
  export const deployApply = pikkuSessionlessFunc({
179
179
  func: async ({ logger, config, getInspectorState, bundler }, data) => {
180
180
  const projectDir = config.rootDir;
181
+ // A url on its own is a request for a shell — asking for both flags would
182
+ // only leave `--desktop-url` alone as a silent no-op.
183
+ const desktopUrl = data?.desktopUrl ?? config.deploy?.desktop?.url;
181
184
  const provider = await resolveProvider(config, data?.provider, {
182
185
  runtime: data?.runtime,
186
+ desktop: data?.desktop || Boolean(desktopUrl),
187
+ projectDir,
188
+ desktopIdentifier: config.deploy?.desktop?.identifier,
189
+ desktopUrl,
183
190
  });
184
191
  const fromPlan = data?.fromPlan ?? false;
185
192
  const resultFile = data?.resultFile;
@@ -212,6 +219,7 @@ export const deployApply = pikkuSessionlessFunc({
212
219
  defaultTarget: config.deploy?.defaultTarget,
213
220
  globalHTTPPrefix: config.globalHTTPPrefix,
214
221
  getEntryContext,
222
+ frontend: config.frontend,
215
223
  outDir: config.outDir,
216
224
  debugArtifacts: data?.debugArtifacts ?? false,
217
225
  logger,
@@ -59,6 +59,7 @@ export const deployPlan = pikkuSessionlessFunc({
59
59
  defaultTarget: config.deploy?.defaultTarget,
60
60
  globalHTTPPrefix: config.globalHTTPPrefix,
61
61
  getEntryContext,
62
+ frontend: config.frontend,
62
63
  outDir: config.outDir,
63
64
  debugArtifacts: data?.debugArtifacts ?? false,
64
65
  logger,
@@ -18,6 +18,7 @@ import { resolveDb, createKysely, parseDatabaseUrl, } from '../db/local-db.js';
18
18
  import { loadUserBootstrap, loadUserModule } from './load-user-project.js';
19
19
  import { registerScenarioInstrumentation } from '../wirings/scenarios/register-scenario-instrumentation.js';
20
20
  import { startCoverageService } from './start-coverage.js';
21
+ import { resolveDevEnvironmentName } from './environment.js';
21
22
  import { createDevAgentRunner } from './dev-agent-runner.js';
22
23
  import { resolveConsoleMount } from './serve-console.js';
23
24
  import { serverReadyLine } from '../../server/server-ready.js';
@@ -28,6 +29,7 @@ export const dev = pikkuSessionlessFunc({
28
29
  remote: true,
29
30
  func: async ({ logger, config, getInspectorState, invalidateInspectorState, variables, devServerRunner, }, { port, watch, hmr, coverage, test, model }, { rpc }) => {
30
31
  process.env.PIKKU_DEV_QUICK_LOGIN ??= 'true';
32
+ process.env.PIKKU_ENV ??= resolveDevEnvironmentName(config.environments ?? {});
31
33
  enableDevActorSignIn(logger);
32
34
  applyModelAliasOverride(logger, model, config.models);
33
35
  if (test) {
@@ -296,10 +298,19 @@ export const dev = pikkuSessionlessFunc({
296
298
  await lifecycle?.beforeStart?.(resolvedServices);
297
299
  await pikkuServer.start();
298
300
  await lifecycle?.afterStart?.(resolvedServices);
301
+ // Not `resolvedPort`: `--port 0` asks the OS for a free port, and every URL
302
+ // announced from here has to name the one it actually handed out.
303
+ const boundPort = pikkuServer.port;
299
304
  if (consoleMount) {
300
- logger.info(`Pikku Console available at http://${hostname}:${resolvedPort}${consoleMount.urlPrefix}`);
305
+ logger.info(`Pikku Console available at http://${hostname}:${boundPort}${consoleMount.urlPrefix}`);
301
306
  }
302
- logger.info(serverReadyLine(hostname, resolvedPort));
307
+ // Serving the built frontend here would hand you whatever the last build
308
+ // produced, with no HMR and no warning that it is stale. The frontend's own
309
+ // dev server owns dev; it proxies its API calls back to this port.
310
+ if (config.frontend) {
311
+ logger.info(`Frontend not served in dev — run your frontend dev server and proxy its API calls to http://${hostname}:${boundPort}`);
312
+ }
313
+ logger.info(serverReadyLine(hostname, boundPort));
303
314
  let watcher;
304
315
  process.once('SIGINT', async () => {
305
316
  logger.info('Stopping dev server...');
@@ -60,3 +60,13 @@ export declare const parseAppUrls: (value: string) => {
60
60
  base?: string;
61
61
  byApp: Record<string, string>;
62
62
  };
63
+ /**
64
+ * The environment name `pikku dev` is running as, for anything that gates on
65
+ * `PIKKU_ENV` — persona provisioning above all, which fails closed and so
66
+ * provisions nothing at all when nobody says where the process is.
67
+ *
68
+ * Local means a configured, non-production environment whose `apiUrl` is a
69
+ * loopback host; `local` wins when several qualify. A project that configures
70
+ * none gets `undefined` rather than a guess.
71
+ */
72
+ export declare const resolveDevEnvironmentName: (environments: Record<string, PikkuEnvironment>) => string | undefined;
@@ -94,3 +94,27 @@ export const parseAppUrls = (value) => {
94
94
  }
95
95
  return { base, byApp };
96
96
  };
97
+ /**
98
+ * The environment name `pikku dev` is running as, for anything that gates on
99
+ * `PIKKU_ENV` — persona provisioning above all, which fails closed and so
100
+ * provisions nothing at all when nobody says where the process is.
101
+ *
102
+ * Local means a configured, non-production environment whose `apiUrl` is a
103
+ * loopback host; `local` wins when several qualify. A project that configures
104
+ * none gets `undefined` rather than a guess.
105
+ */
106
+ export const resolveDevEnvironmentName = (environments) => {
107
+ const candidates = Object.entries(environments).filter(([, environment]) => {
108
+ if (environment.production) {
109
+ return false;
110
+ }
111
+ try {
112
+ return LOCAL_HOSTNAMES.has(new URL(environment.apiUrl).hostname);
113
+ }
114
+ catch {
115
+ return false;
116
+ }
117
+ });
118
+ const preferred = candidates.find(([name]) => name === 'local');
119
+ return (preferred ?? candidates[0])?.[0];
120
+ };
@@ -0,0 +1,11 @@
1
+ import type { StaticMount } from '@pikku/node-http-server';
2
+ import type { PikkuCLIConfig } from '../../../types/config.js';
3
+ /**
4
+ * Turn a resolved `frontend` config into the mount that serves it.
5
+ *
6
+ * The directory is checked rather than trusted because pikku only ever reads a
7
+ * frontend's output: an unbuilt `dir` means the project's own build has not run,
8
+ * and saying so here is far cheaper than a server that boots fine and answers
9
+ * every page with a 404.
10
+ */
11
+ export declare function resolveFrontendMount(frontend: NonNullable<PikkuCLIConfig['frontend']>): Promise<StaticMount>;
@@ -0,0 +1,17 @@
1
+ import { assertFrontendBuilt } from '../../utils/frontend.js';
2
+ /**
3
+ * Turn a resolved `frontend` config into the mount that serves it.
4
+ *
5
+ * The directory is checked rather than trusted because pikku only ever reads a
6
+ * frontend's output: an unbuilt `dir` means the project's own build has not run,
7
+ * and saying so here is far cheaper than a server that boots fine and answers
8
+ * every page with a 404.
9
+ */
10
+ export async function resolveFrontendMount(frontend) {
11
+ await assertFrontendBuilt(frontend.dir);
12
+ return {
13
+ urlPrefix: frontend.urlPrefix,
14
+ directory: frontend.dir,
15
+ spaFallback: frontend.spaFallback,
16
+ };
17
+ }
@@ -16,6 +16,7 @@ import { loadUserBootstrap, loadUserModule } from './load-user-project.js';
16
16
  import { registerScenarioInstrumentation } from '../wirings/scenarios/register-scenario-instrumentation.js';
17
17
  import { createDevAgentRunner } from './dev-agent-runner.js';
18
18
  import { resolveConsoleMount } from './serve-console.js';
19
+ import { resolveFrontendMount } from './serve-frontend.js';
19
20
  import { serverReadyLine } from '../../server/server-ready.js';
20
21
  import { createEphemeralContentSigningJWT } from '../../server/content-signing-jwt.js';
21
22
  import { disableDevActorSignIn } from '../../server/actor-sign-in.js';
@@ -144,22 +145,34 @@ export const serve = pikkuSessionlessFunc({
144
145
  if (serveConsole && !consoleMount) {
145
146
  logger.warn('Console app not found. Please rebuild @pikku/cli with the console app bundled.');
146
147
  }
148
+ const frontendMount = config.frontend
149
+ ? await resolveFrontendMount(config.frontend)
150
+ : undefined;
151
+ // The console goes first so a frontend mounted at `/` cannot claim
152
+ // `/console` before the console's own mount is offered the request.
153
+ const staticMounts = [consoleMount, frontendMount].filter((mount) => Boolean(mount));
147
154
  const pikkuServer = devServerRunner.createServer({
148
155
  ...userConfig,
149
156
  hostname: bindHostname,
150
157
  port: resolvedPort,
151
158
  content: localContentConfig,
152
- ...(consoleMount ? { staticMounts: [consoleMount] } : {}),
159
+ ...(staticMounts.length ? { staticMounts } : {}),
153
160
  }, logger, { contentSigningJWT });
154
161
  const lifecycle = await loadLifecycle();
155
162
  await pikkuServer.init();
156
163
  await lifecycle?.beforeStart?.(resolvedServices);
157
164
  await pikkuServer.start();
158
165
  await lifecycle?.afterStart?.(resolvedServices);
166
+ // Not `resolvedPort`: `--port 0` asks the OS for a free port, and every URL
167
+ // announced from here has to name the one it actually handed out.
168
+ const boundPort = pikkuServer.port;
159
169
  if (consoleMount) {
160
- logger.info(`Pikku Console available at http://${hostname}:${resolvedPort}${consoleMount.urlPrefix}`);
170
+ logger.info(`Pikku Console available at http://${hostname}:${boundPort}${consoleMount.urlPrefix}`);
171
+ }
172
+ if (frontendMount) {
173
+ logger.info(`Frontend available at http://${hostname}:${boundPort}${frontendMount.urlPrefix}`);
161
174
  }
162
- logger.info(serverReadyLine(hostname, resolvedPort));
175
+ logger.info(serverReadyLine(hostname, boundPort));
163
176
  process.once('SIGINT', async () => {
164
177
  logger.info('Stopping server...');
165
178
  try {
@@ -30,6 +30,14 @@ export interface ColAnnotation {
30
30
  * insert/update brand on the generated column type. Absent means `plain`.
31
31
  */
32
32
  form?: ColumnForm;
33
+ /**
34
+ * Which key protects this column, for an encrypted `form`. Absent means the
35
+ * deployment's default key.
36
+ *
37
+ * Reported as authored rather than defaulted here, so the manifest emitter
38
+ * stays the single place the default is applied.
39
+ */
40
+ keyId?: string;
33
41
  }
34
42
  /** Per-table, per-column annotation map sourced from `db/annotations.ts`. */
35
43
  export type AnnotationMap = Record<string, Record<string, ColAnnotation>>;
@@ -117,6 +117,8 @@ export function loadAnnotations(rootDir) {
117
117
  COLUMN_FORMS.includes(ann.form)) {
118
118
  entry.form = ann.form;
119
119
  }
120
+ if (ann.keyId)
121
+ entry.keyId = ann.keyId;
120
122
  const strategy = parseStrategy(ann.classification);
121
123
  if (strategy !== null)
122
124
  entry.anonymize = strategy;
@@ -340,6 +340,14 @@ function emitInterface(table, camelCase, explicitAnnotations, dialect, enumByNam
340
340
  return `export interface ${ifaceName} {\n${fields}\n}`;
341
341
  }
342
342
  // ─── Manifest emitter ────────────────────────────────────────────────────────
343
+ /**
344
+ * The key an encrypted column is protected by when it names none.
345
+ *
346
+ * Spelled out in every entry rather than left implicit, so the set of keys a
347
+ * deployment has to resolve can be read off the manifest without knowing the
348
+ * rule that produced it.
349
+ */
350
+ const DEFAULT_COLUMN_KEY_ID = 'default';
343
351
  function emitManifest(tables, explicitAnnotations) {
344
352
  const tableEntries = tables
345
353
  .map((table) => {
@@ -354,8 +362,15 @@ function emitManifest(tables, explicitAnnotations) {
354
362
  // tell "held in the clear, stated" from "nobody has said yet", and a
355
363
  // defaulted 'plain' would erase exactly that difference.
356
364
  const formLiteral = ann?.form ? `, form: '${ann.form}'` : '';
365
+ // Only a column that is actually encrypted names a key. Emitting one
366
+ // on a plain or hashed column would claim a protection it has not
367
+ // got — and a hash has no key to be opened with in the first place.
368
+ const encrypted = ann?.form === 'wrapped' || ann?.form === 'sealed';
369
+ const keyIdLiteral = encrypted
370
+ ? `, keyId: '${ann?.keyId ?? DEFAULT_COLUMN_KEY_ID}'`
371
+ : '';
357
372
  return (` ${JSON.stringify(col.name)}: ` +
358
- `{ classification: '${classification}', anonymize_strategy: ${strategyLiteral}${formLiteral} }`);
373
+ `{ classification: '${classification}', anonymize_strategy: ${strategyLiteral}${formLiteral}${keyIdLiteral} }`);
359
374
  })
360
375
  .join(',\n');
361
376
  return ` ${JSON.stringify(table.name)}: {\n${colEntries}\n }`;
@@ -391,6 +406,10 @@ function emitClassificationMap(tables) {
391
406
  ` * real encrypt/seal/hash result can be written to it. Defaults to 'plain',`,
392
407
  ` * which on a \`secret\` column is warned about (PKU483) until stated here. */`,
393
408
  ` form?: 'plain' | 'hashed' | 'wrapped' | 'sealed'`,
409
+ ` /** Which key protects this column, for a 'wrapped' or 'sealed' form. It is a`,
410
+ ` * purpose, not a tenant: naming one here says these columns open together and`,
411
+ ` * separately from the rest. Defaults to 'default'. */`,
412
+ ` keyId?: string`,
394
413
  ` /** Anonymize strategy used by \`pikku db anonymize\`. */`,
395
414
  ` classification?: 'fake:email' | 'fake:name' | 'hash' | 'keep'`,
396
415
  ` /** Column kind override for codegen coercion + typing. */`,
@@ -278,7 +278,7 @@ import {
278
278
  virtualUserScheduleRunInput,
279
279
  writeVirtualUserSchedule,
280
280
  } from '@pikku/core/virtual-user'
281
- import { createPersonas, personaConfigs } from '${pathToPersonas}'
281
+ import { createPersonas, personaConfigs, personaEnvironments } from '${pathToPersonas}'
282
282
  import {
283
283
  ExecuteVirtualUserRunInput,
284
284
  ExecuteVirtualUserRunOutput,
@@ -331,8 +331,11 @@ export const runVirtualUser = pikkuFunc({
331
331
  await startVirtualUserRun({
332
332
  store: virtualUserRunStore,
333
333
  personas: personaConfigs,
334
- // Cast because an application's Config is its own interface and need
335
- // not declare nodeEnv at all.
334
+ // Which of the configured environments this process is decides whether
335
+ // a run is against production. \`config\` is only the fallback for a
336
+ // project that configures none, and is cast because an application's
337
+ // Config is its own interface and need not declare nodeEnv at all.
338
+ environments: personaEnvironments,
336
339
  config: config as { nodeEnv?: string } | undefined,
337
340
  persona: input.persona,
338
341
  disposition: input.disposition,
@@ -16,6 +16,15 @@ export interface DevServerInstance {
16
16
  start(): Promise<void>;
17
17
  /** Full teardown — closes the server and any owned WebSocket server. */
18
18
  stop(): Promise<void>;
19
+ /**
20
+ * The port the server actually bound, readable once `start()` has resolved.
21
+ *
22
+ * Diverges from the requested port whenever that was `0`, which is the only
23
+ * race-free way for a parent process to hand the server a port: anything the
24
+ * parent picks can be taken between its check and the server's bind. The
25
+ * ready line is built from this, so a parent learns the port by reading it.
26
+ */
27
+ readonly port: number;
19
28
  }
20
29
  /** Config shape both runtimes accept (Core config + host/port/content). */
21
30
  export type DevServerConfig = NodeHTTPServerConfig;
@@ -51,6 +51,9 @@ export class NodeServerRunner {
51
51
  return {
52
52
  init: () => server.init(),
53
53
  start: () => server.start(),
54
+ get port() {
55
+ return server.port;
56
+ },
54
57
  stop: async () => {
55
58
  if (wss) {
56
59
  await new Promise((resolve, reject) => wss.close((err) => (err ? reject(err) : resolve())));
@@ -1,12 +1,9 @@
1
1
  /**
2
- * Printed once the server is listening AND the project's `afterStart`
3
- * lifecycle has resolved.
2
+ * The readiness handshake, owned by `@pikku/deploy` so the CLI and the
3
+ * standalone provider's generated server entry print and wait on the same
4
+ * string. Re-exported here because `--spawn` and the dev/serve commands have
5
+ * always imported it from this path.
4
6
  *
5
- * The runtime's own `listening on …` line is emitted inside `server.start()`,
6
- * which runs *before* `afterStart` — so anything a project seeds there (users,
7
- * scopes, fixtures) is still pending when it appears, and a parent process
8
- * that treats it as readiness races the seed. This marker is the point at
9
- * which the server is actually usable, and it is what `--spawn` waits for.
7
+ * @see {@link SERVER_READY_MARKER} for why `listening on …` is not readiness.
10
8
  */
11
- export declare const SERVER_READY_MARKER = "pikku: ready";
12
- export declare const serverReadyLine: (hostname: string, port: number) => string;
9
+ export { SERVER_READY_MARKER, serverReadyLine } from '@pikku/deploy';
@@ -1,12 +1,9 @@
1
1
  /**
2
- * Printed once the server is listening AND the project's `afterStart`
3
- * lifecycle has resolved.
2
+ * The readiness handshake, owned by `@pikku/deploy` so the CLI and the
3
+ * standalone provider's generated server entry print and wait on the same
4
+ * string. Re-exported here because `--spawn` and the dev/serve commands have
5
+ * always imported it from this path.
4
6
  *
5
- * The runtime's own `listening on …` line is emitted inside `server.start()`,
6
- * which runs *before* `afterStart` — so anything a project seeds there (users,
7
- * scopes, fixtures) is still pending when it appears, and a parent process
8
- * that treats it as readiness races the seed. This marker is the point at
9
- * which the server is actually usable, and it is what `--spawn` waits for.
7
+ * @see {@link SERVER_READY_MARKER} for why `listening on …` is not readiness.
10
8
  */
11
- export const SERVER_READY_MARKER = 'pikku: ready';
12
- export const serverReadyLine = (hostname, port) => `${SERVER_READY_MARKER} on http://${hostname}:${port}`;
9
+ export { SERVER_READY_MARKER, serverReadyLine } from '@pikku/deploy';
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Throw unless `dir` holds a built frontend.
3
+ *
4
+ * Both serving and deploying read a frontend's output rather than producing it,
5
+ * so an unbuilt directory is the one failure mode the config invites, and it is
6
+ * silent everywhere it is not caught: a server boots fine and answers every
7
+ * page with a 404, and a deploy ships a binary with nothing inside it.
8
+ */
9
+ export declare function assertFrontendBuilt(dir: string): Promise<void>;
@@ -0,0 +1,18 @@
1
+ import { stat } from 'node:fs/promises';
2
+ import { join } from 'node:path';
3
+ /**
4
+ * Throw unless `dir` holds a built frontend.
5
+ *
6
+ * Both serving and deploying read a frontend's output rather than producing it,
7
+ * so an unbuilt directory is the one failure mode the config invites, and it is
8
+ * silent everywhere it is not caught: a server boots fine and answers every
9
+ * page with a 404, and a deploy ships a binary with nothing inside it.
10
+ */
11
+ export async function assertFrontendBuilt(dir) {
12
+ try {
13
+ await stat(join(dir, 'index.html'));
14
+ }
15
+ catch {
16
+ throw new Error(`No frontend build found at ${dir} — pikku serves your frontend's output and never builds it, so run the frontend's build first (or drop "frontend" from pikku.config.json).`);
17
+ }
18
+ }
@@ -1,4 +1,4 @@
1
- import type { PikkuCLIConfig } from '../../types/config.js';
1
+ import type { PikkuCLIConfig, PikkuCLIInput } from '../../types/config.js';
2
2
  import type { CLILogger } from '../services/cli-logger.service.js';
3
3
  import { PikkuCLIConfigError } from './pikku-cli-config-error.js';
4
4
  export declare const getPikkuCLIConfig: (logger: CLILogger, configFile: string | undefined, requiredFields: Array<keyof PikkuCLIConfig>, exitProcess?: boolean, outDirOverride?: string) => Promise<PikkuCLIConfig>;
@@ -43,4 +43,13 @@ export declare const DEFAULT_LOCALE = "en";
43
43
  * `en-GB` are one value downstream instead of two that never compare equal.
44
44
  */
45
45
  export declare const normalizeLocale: (locale: unknown) => string;
46
+ /**
47
+ * Fill in the mount defaults and make `dir` absolute.
48
+ *
49
+ * The trailing slash is stripped because a mount matches with
50
+ * `pathname === prefix || pathname.startsWith(prefix + '/')`, under which a
51
+ * stored `/app/` matches nothing at all — a frontend that silently never
52
+ * appears rather than an error anyone can act on.
53
+ */
54
+ export declare const resolveFrontendConfig: (frontend: NonNullable<PikkuCLIInput["frontend"]>, configDir: string) => NonNullable<PikkuCLIConfig["frontend"]>;
46
55
  export declare const validateCLIConfig: (cliConfig: PikkuCLIConfig, required: Array<keyof PikkuCLIConfig>) => void;
@@ -118,6 +118,30 @@ export const normalizeLocale = (locale) => {
118
118
  `It sets the language of the meta the Console renders back to your team (function and step descriptions, feature and scenario names). ` +
119
119
  `Identifiers stay English regardless, and the language the app speaks to its users is defaultLocale in active.json, not this.`);
120
120
  };
121
+ /**
122
+ * Fill in the mount defaults and make `dir` absolute.
123
+ *
124
+ * The trailing slash is stripped because a mount matches with
125
+ * `pathname === prefix || pathname.startsWith(prefix + '/')`, under which a
126
+ * stored `/app/` matches nothing at all — a frontend that silently never
127
+ * appears rather than an error anyone can act on.
128
+ */
129
+ export const resolveFrontendConfig = (frontend, configDir) => {
130
+ if (!frontend.dir) {
131
+ throw new PikkuCLIConfigError(`frontend.dir is required — it names the directory your frontend's build already wrote, since pikku serves that output rather than building it`);
132
+ }
133
+ const urlPrefix = frontend.urlPrefix ?? '/';
134
+ if (!urlPrefix.startsWith('/')) {
135
+ throw new PikkuCLIConfigError(`frontend.urlPrefix must start with "/" — got "${urlPrefix}"`);
136
+ }
137
+ return {
138
+ dir: isAbsolute(frontend.dir)
139
+ ? frontend.dir
140
+ : join(configDir, frontend.dir),
141
+ urlPrefix: urlPrefix === '/' ? '/' : urlPrefix.replace(/\/+$/, ''),
142
+ spaFallback: frontend.spaFallback ?? true,
143
+ };
144
+ };
121
145
  const _getPikkuCLIConfig = async (logger, configFile = undefined, requiredFields, exitProcess = false, outDirOverride) => {
122
146
  if (!configFile) {
123
147
  configFile = await findConfigFile();
@@ -740,6 +764,9 @@ const _getPikkuCLIConfig = async (logger, configFile = undefined, requiredFields
740
764
  }
741
765
  }
742
766
  }
767
+ if (result.frontend) {
768
+ result.frontend = resolveFrontendConfig(result.frontend, result.configDir);
769
+ }
743
770
  if (result.emailTemplatesDir && !isAbsolute(result.emailTemplatesDir)) {
744
771
  result.emailTemplatesDir = join(result.configDir, result.emailTemplatesDir);
745
772
  }
@@ -1 +1 @@
1
- {"root":["../bin/pikku.ts","../src/cli.wiring.ts","../src/services.ts","../src/deploy/build-pipeline.ts","../src/deploy/server-entry.ts","../src/deploy/analyzer/analyzer.ts","../src/deploy/analyzer/index.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/service-module-map.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/functions/variables-get.function.ts","../src/fabric/functions/variables-set.function.ts","../src/fabric/lib/config.ts","../src/fabric/lib/console-url.ts","../src/fabric/lib/deployment.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/lib/variable-value.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/doc.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-snippets.ts","../src/functions/surface/collect-surface-usage.ts","../src/functions/surface/collect-surface.ts","../src/functions/surface/generate-surface-doc.ts","../src/functions/surface/render-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/auth-plugin-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/websocket-deps-checks.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/actor-sign-in.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/persona-credentials.ts","../src/utils/pikku-cli-config-error.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-from-project.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/frontend-assets.ts","../src/deploy/server-entry.ts","../src/deploy/analyzer/analyzer.ts","../src/deploy/analyzer/index.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/service-module-map.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/projects-list.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/functions/variables-get.function.ts","../src/fabric/functions/variables-set.function.ts","../src/fabric/lib/config.ts","../src/fabric/lib/console-url.ts","../src/fabric/lib/deployment.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/lib/variable-value.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/doc.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-frontend.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-snippets.ts","../src/functions/surface/collect-surface-usage.ts","../src/functions/surface/collect-surface.ts","../src/functions/surface/generate-surface-doc.ts","../src/functions/surface/render-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/auth-plugin-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/websocket-deps-checks.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/actor-sign-in.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/frontend.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/persona-credentials.ts","../src/utils/pikku-cli-config-error.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-from-project.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"}