@pikku/cli 0.12.151 → 0.12.153

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 (275) hide show
  1. package/console-app/assets/{HelpPanel-CxjgE40i.js → HelpPanel-0XQ4CyKC.js} +1 -1
  2. package/console-app/assets/{abnfDiagram-VCTEODGH-UPW1PlxM.js → abnfDiagram-VCTEODGH-DZTF_2aX.js} +1 -1
  3. package/console-app/assets/architecture-7GRP2DOG-NotVOJ5Y.js +1 -0
  4. package/console-app/assets/{architectureDiagram-5GKGNRK7-B3XFrvZk.js → architectureDiagram-5GKGNRK7-Re4-6X-k.js} +1 -1
  5. package/console-app/assets/{blockDiagram-I7D4REHJ-Ca0v9UJQ.js → blockDiagram-I7D4REHJ-Dbj7SnRK.js} +1 -1
  6. package/console-app/assets/{c4Diagram-7LVT6UL2-CLewVsj_.js → c4Diagram-7LVT6UL2-DUr02Wxh.js} +1 -1
  7. package/console-app/assets/channel-DU63_zXh.js +1 -0
  8. package/console-app/assets/{chunk-4HAMMTFA-BwhbhOD9.js → chunk-4HAMMTFA-DjatzNf_.js} +1 -1
  9. package/console-app/assets/{chunk-75Z2AOVW-C7nAgNk0.js → chunk-75Z2AOVW-BGsmWEdU.js} +1 -1
  10. package/console-app/assets/{chunk-DU6HZSFF-D4yYAcHt.js → chunk-DU6HZSFF-CC7WiVgI.js} +1 -1
  11. package/console-app/assets/{chunk-F27PBJKO-UHllOPps.js → chunk-F27PBJKO-BATuW9Ej.js} +1 -1
  12. package/console-app/assets/{chunk-GMAD6QVW-C0l_vm7T.js → chunk-GMAD6QVW-CgHNo00B.js} +1 -1
  13. package/console-app/assets/{chunk-GVQU2GXP-h-H2Oird.js → chunk-GVQU2GXP-VT_xckd9.js} +1 -1
  14. package/console-app/assets/{chunk-IMKFNOWR-DJ_W9CSg.js → chunk-IMKFNOWR-BhSVbWtF.js} +1 -1
  15. package/console-app/assets/{chunk-L3NEJ4N5-Ce9oniwE.js → chunk-L3NEJ4N5-HUF6a3Xl.js} +1 -1
  16. package/console-app/assets/{chunk-OSK3NFVY-CdGE5qxS.js → chunk-OSK3NFVY-C_LPDGIB.js} +1 -1
  17. package/console-app/assets/{chunk-P2QGCYS3-DK1pHDdz.js → chunk-P2QGCYS3-lWDBgw4Q.js} +1 -1
  18. package/console-app/assets/{chunk-POPQ4Y6H-DjevEFNo.js → chunk-POPQ4Y6H--6JTzmZJ.js} +1 -1
  19. package/console-app/assets/{chunk-PWAF6VOD-BVF5N1No.js → chunk-PWAF6VOD-C1GqaJJs.js} +1 -1
  20. package/console-app/assets/{chunk-SHT3W25Y-BX8We-wN.js → chunk-SHT3W25Y-Dd_4Zpdj.js} +1 -1
  21. package/console-app/assets/{chunk-SVP7TREG-Cl0GgAPC.js → chunk-SVP7TREG-B8OY7dfD.js} +1 -1
  22. package/console-app/assets/{chunk-TICWLB2K-IWZAWDhu.js → chunk-TICWLB2K-B8S7Hmnu.js} +1 -1
  23. package/console-app/assets/chunk-XXDRQBXY-BLuHuEZN.js +1 -0
  24. package/console-app/assets/classDiagram-ZZMXUADV-BTYfUi7u.js +1 -0
  25. package/console-app/assets/classDiagram-v2-VYDZK3BY-BTYfUi7u.js +1 -0
  26. package/console-app/assets/{cose-bilkent-JH36ORCC-GsQ0JAnL.js → cose-bilkent-JH36ORCC-C6RM8oPO.js} +1 -1
  27. package/console-app/assets/{cynefin-OW5HDTMX-hZsAZp_5.js → cynefin-OW5HDTMX-COh9rFYY.js} +1 -1
  28. package/console-app/assets/{cynefinDiagram-5FMLGOSQ-CsyMovx1.js → cynefinDiagram-5FMLGOSQ-Dd9AR17w.js} +1 -1
  29. package/console-app/assets/{dagre-BP8XEFz-.js → dagre-BDMvDAer.js} +1 -1
  30. package/console-app/assets/{dagre-GXQ25YYZ-Jg5285rx.js → dagre-GXQ25YYZ-C_nBUPgr.js} +1 -1
  31. package/console-app/assets/{diagram-S7CK7UJ4-n9JiR8HK.js → diagram-S7CK7UJ4-BGOobQeC.js} +1 -1
  32. package/console-app/assets/{diagram-UQ7AKVKN-Cde-dgbI.js → diagram-UQ7AKVKN-CAF_vcj0.js} +1 -1
  33. package/console-app/assets/{diagram-VSXAHHWV-CPZUg4FP.js → diagram-VSXAHHWV-q-aY0Nsc.js} +1 -1
  34. package/console-app/assets/{diagram-VX7I27RA-B2rCDWvn.js → diagram-VX7I27RA-CnUibSOe.js} +1 -1
  35. package/console-app/assets/{diagram-Z3DM3KII-UwO0hte3.js → diagram-Z3DM3KII-DY0V5kOJ.js} +1 -1
  36. package/console-app/assets/{ebnfDiagram-PWID7BFC-BGJ_PBlS.js → ebnfDiagram-PWID7BFC-CXp4CmEF.js} +1 -1
  37. package/console-app/assets/{erDiagram-RLTQ6QDP-CKsTScr3.js → erDiagram-RLTQ6QDP-CKnfXmPl.js} +1 -1
  38. package/console-app/assets/eventmodeling-NTZA5JFV-CBfQhnG8.js +1 -0
  39. package/console-app/assets/flowDiagram-HODETNUW-BnY3G7p6.js +1 -0
  40. package/console-app/assets/{ganttDiagram-EL5Y4UJY-koeTkIEA.js → ganttDiagram-EL5Y4UJY-D6v_RJ7o.js} +1 -1
  41. package/console-app/assets/{gitGraph-4MIJSDKK-DyRPbcM4.js → gitGraph-4MIJSDKK-y3kWDddY.js} +1 -1
  42. package/console-app/assets/{gitGraphDiagram-WWUBYQGX-DSIejrYw.js → gitGraphDiagram-WWUBYQGX-CBaE24KN.js} +1 -1
  43. package/console-app/assets/{graphlib-BpQ_697T.js → graphlib-DAA_TPmU.js} +1 -1
  44. package/console-app/assets/{index-Du9_fRSw.js → index-HuTd6kcC.js} +147 -147
  45. package/console-app/assets/{info-A6RAGUB7-C63f9an_.js → info-A6RAGUB7-BvxfRJ9-.js} +1 -1
  46. package/console-app/assets/{infoDiagram-27XIBGKW-Dz5gMcUF.js → infoDiagram-27XIBGKW-BlFmgW96.js} +1 -1
  47. package/console-app/assets/{ishikawaDiagram-5VMMS53U-m-nTAZTH.js → ishikawaDiagram-5VMMS53U-Dpwhnwwq.js} +1 -1
  48. package/console-app/assets/{journeyDiagram-3NMN7TZE-C7mjFY7i.js → journeyDiagram-3NMN7TZE-iOSeOQma.js} +1 -1
  49. package/console-app/assets/{kanban-definition-UXKFOSKX-Cm7PqOOP.js → kanban-definition-UXKFOSKX-DFGTB8S5.js} +1 -1
  50. package/console-app/assets/{line-RZNRGurC.js → line-B_5qZKoM.js} +1 -1
  51. package/console-app/assets/{linear-C2IGWMlF.js → linear-BmXUYu4J.js} +1 -1
  52. package/console-app/assets/{mermaid-parser.core-DN1yDqgB.js → mermaid-parser.core-DyPi3Lbr.js} +3 -3
  53. package/console-app/assets/{mermaid.core-DDRs3TbC.js → mermaid.core-S4y9jX8K.js} +4 -4
  54. package/console-app/assets/{mindmap-definition-YA3MSWOX-o6riOwlF.js → mindmap-definition-YA3MSWOX-Bl09mCaS.js} +1 -1
  55. package/console-app/assets/{packet-AYTQ26CC-B89F6gXG.js → packet-AYTQ26CC-B5zoasmU.js} +1 -1
  56. package/console-app/assets/{pegDiagram-XKGWAZYB-BQ1AAIaV.js → pegDiagram-XKGWAZYB-CAa0SOHf.js} +1 -1
  57. package/console-app/assets/{pie-WAS4IAKB-CzuwQlQz.js → pie-WAS4IAKB-C91xXCXY.js} +1 -1
  58. package/console-app/assets/{pieDiagram-E7YTZNPT-DlcGHWGT.js → pieDiagram-E7YTZNPT-CmUHVYwz.js} +1 -1
  59. package/console-app/assets/{quadrantDiagram-AXDQQJYC-DdITwqw-.js → quadrantDiagram-AXDQQJYC-XWsej4ss.js} +1 -1
  60. package/console-app/assets/{radar-RG4KPBEZ-DlJ29jAN.js → radar-RG4KPBEZ-B7ieCnSw.js} +1 -1
  61. package/console-app/assets/{railroad-74A4TZTK-BL49fdM8.js → railroad-74A4TZTK-KTKjMg4U.js} +1 -1
  62. package/console-app/assets/railroad-abnf-HS5TGJTU-e9AlsYmr.js +1 -0
  63. package/console-app/assets/railroad-ebnf-LZEXJU2U-BVX8UG1z.js +1 -0
  64. package/console-app/assets/railroad-peg-WCYAUIDC-BzWQFvD9.js +1 -0
  65. package/console-app/assets/{railroadDiagram-O6MQD6OU-BNgQGtF5.js → railroadDiagram-O6MQD6OU-oh1FjI2K.js} +1 -1
  66. package/console-app/assets/{requirementDiagram-BXWQKSXE-48lE_WeD.js → requirementDiagram-BXWQKSXE-D6z7hLfj.js} +1 -1
  67. package/console-app/assets/{sankeyDiagram-P5KCCOFB-WmTardCP.js → sankeyDiagram-P5KCCOFB-DFb92jfp.js} +1 -1
  68. package/console-app/assets/{sequenceDiagram-WJ2MYXX4-Bd5cHDMs.js → sequenceDiagram-WJ2MYXX4-BRKj-PG1.js} +1 -1
  69. package/console-app/assets/{src-BTXg_NtK.js → src-DYBVouJk.js} +1 -1
  70. package/console-app/assets/{stateDiagram-D77RDMKH-DBoCkqGv.js → stateDiagram-D77RDMKH-BfTLNw5t.js} +1 -1
  71. package/console-app/assets/stateDiagram-v2-MP3YSRHH-B8sMNnnF.js +1 -0
  72. package/console-app/assets/{swimlanes-42K2YHIH-lecUPBaK.js → swimlanes-42K2YHIH-DXkNYzX9.js} +1 -1
  73. package/console-app/assets/swimlanesDiagram-VR7AAH4N-CiZdLDyk.js +8 -0
  74. package/console-app/assets/{timeline-definition-24CTP7MA-CWq0OWm1.js → timeline-definition-24CTP7MA-B8m2V75P.js} +1 -1
  75. package/console-app/assets/{treeView-Q6P3EWNA-C7lEeqUz.js → treeView-Q6P3EWNA-BisqOzat.js} +1 -1
  76. package/console-app/assets/{treemap-WGGIJYW6-Bkx2DAoI.js → treemap-WGGIJYW6-DOxEXpb1.js} +1 -1
  77. package/console-app/assets/{vennDiagram-4TSXK5OY-Bw_kGRL3.js → vennDiagram-4TSXK5OY-ZeuU7o23.js} +1 -1
  78. package/console-app/assets/{wardley-WFR3VGLG-V0zki2L0.js → wardley-WFR3VGLG-sspeOMuz.js} +1 -1
  79. package/console-app/assets/{wardleyDiagram-VM6X3IG4-C5vrwEHM.js → wardleyDiagram-VM6X3IG4-CF2vzNJV.js} +1 -1
  80. package/console-app/assets/{xychartDiagram-S5SC5T6Z-B9uA0moC.js → xychartDiagram-S5SC5T6Z-BR9XBq3s.js} +1 -1
  81. package/console-app/index.html +1 -1
  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/analytics/index.d.ts +1 -1
  91. package/dist/.pikku/analytics/index.js +1 -1
  92. package/dist/.pikku/analytics/pikku-analytics-types.gen.d.ts +1 -1
  93. package/dist/.pikku/analytics/pikku-analytics-types.gen.js +1 -1
  94. package/dist/.pikku/auth/index.d.ts +1 -1
  95. package/dist/.pikku/auth/index.js +1 -1
  96. package/dist/.pikku/auth/pikku-auth-types.gen.d.ts +1 -1
  97. package/dist/.pikku/auth/pikku-auth-types.gen.js +1 -1
  98. package/dist/.pikku/channel/index.d.ts +1 -1
  99. package/dist/.pikku/channel/index.js +1 -1
  100. package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +1 -1
  101. package/dist/.pikku/channel/pikku-channel-types.gen.js +1 -1
  102. package/dist/.pikku/cli/index.d.ts +1 -1
  103. package/dist/.pikku/cli/index.js +1 -1
  104. package/dist/.pikku/cli/pikku-cli-channel.js +21 -1
  105. package/dist/.pikku/cli/pikku-cli-client.gen.d.ts +1 -1
  106. package/dist/.pikku/cli/pikku-cli-client.gen.js +1 -1
  107. package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.d.ts +1 -1
  108. package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.js +1 -1
  109. package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.json +38 -1
  110. package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +1 -1
  111. package/dist/.pikku/cli/pikku-cli-types.gen.js +1 -1
  112. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +1 -1
  113. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.json +94 -1
  114. package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +1 -1
  115. package/dist/.pikku/cli/pikku-cli-wirings.gen.js +1 -1
  116. package/dist/.pikku/cli/pikku-cli.gen.d.ts +1 -1
  117. package/dist/.pikku/cli/pikku-cli.gen.js +1 -1
  118. package/dist/.pikku/error/index.d.ts +1 -1
  119. package/dist/.pikku/error/index.js +1 -1
  120. package/dist/.pikku/error/pikku-error-types.gen.d.ts +1 -1
  121. package/dist/.pikku/error/pikku-error-types.gen.js +1 -1
  122. package/dist/.pikku/function/index.d.ts +1 -1
  123. package/dist/.pikku/function/index.js +1 -1
  124. package/dist/.pikku/function/pikku-function-types.gen.d.ts +1 -1
  125. package/dist/.pikku/function/pikku-function-types.gen.js +1 -1
  126. package/dist/.pikku/function/pikku-functions-meta.gen.js +1 -1
  127. package/dist/.pikku/function/pikku-functions-meta.gen.json +78 -2
  128. package/dist/.pikku/function/pikku-functions.gen.js +1 -1
  129. package/dist/.pikku/gateway/index.d.ts +1 -1
  130. package/dist/.pikku/gateway/index.js +1 -1
  131. package/dist/.pikku/gateway/pikku-gateway-types.gen.d.ts +1 -1
  132. package/dist/.pikku/gateway/pikku-gateway-types.gen.js +1 -1
  133. package/dist/.pikku/http/index.d.ts +1 -1
  134. package/dist/.pikku/http/index.js +1 -1
  135. package/dist/.pikku/http/pikku-http-types.gen.d.ts +1 -1
  136. package/dist/.pikku/http/pikku-http-types.gen.js +1 -1
  137. package/dist/.pikku/mcp/index.d.ts +1 -1
  138. package/dist/.pikku/mcp/index.js +1 -1
  139. package/dist/.pikku/mcp/pikku-mcp-types.gen.d.ts +1 -1
  140. package/dist/.pikku/mcp/pikku-mcp-types.gen.js +1 -1
  141. package/dist/.pikku/middleware/index.d.ts +1 -1
  142. package/dist/.pikku/middleware/index.js +1 -1
  143. package/dist/.pikku/middleware/pikku-middleware-types.gen.d.ts +1 -1
  144. package/dist/.pikku/middleware/pikku-middleware-types.gen.js +1 -1
  145. package/dist/.pikku/pikku-bootstrap-scenarios.gen.d.ts +1 -1
  146. package/dist/.pikku/pikku-bootstrap-scenarios.gen.js +1 -1
  147. package/dist/.pikku/pikku-bootstrap.gen.d.ts +1 -1
  148. package/dist/.pikku/pikku-bootstrap.gen.js +1 -1
  149. package/dist/.pikku/pikku-services.gen.d.ts +1 -1
  150. package/dist/.pikku/queue/index.d.ts +1 -1
  151. package/dist/.pikku/queue/index.js +1 -1
  152. package/dist/.pikku/queue/pikku-queue-types.gen.d.ts +1 -1
  153. package/dist/.pikku/queue/pikku-queue-types.gen.js +1 -1
  154. package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.js +1 -1
  155. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.d.ts +1 -1
  156. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.js +1 -1
  157. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +1 -1
  158. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.json +4 -0
  159. package/dist/.pikku/scenarios/index.d.ts +1 -1
  160. package/dist/.pikku/scenarios/index.js +1 -1
  161. package/dist/.pikku/scenarios/pikku-personas.gen.js +1 -1
  162. package/dist/.pikku/scenarios/pikku-scenario-functions-meta.gen.js +1 -1
  163. package/dist/.pikku/scenarios/pikku-scenario-functions.gen.d.ts +1 -1
  164. package/dist/.pikku/scenarios/pikku-scenario-types.gen.d.ts +1 -1
  165. package/dist/.pikku/scenarios/pikku-scenario-wirings-meta.gen.js +1 -1
  166. package/dist/.pikku/scenarios/pikku-scenario-wirings.gen.d.ts +1 -1
  167. package/dist/.pikku/scenarios/schemas/register.gen.d.ts +1 -1
  168. package/dist/.pikku/scenarios/schemas/register.gen.js +1 -1
  169. package/dist/.pikku/scheduler/index.d.ts +1 -1
  170. package/dist/.pikku/scheduler/index.js +1 -1
  171. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +1 -1
  172. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +1 -1
  173. package/dist/.pikku/schemas/register.gen.js +17 -1
  174. package/dist/.pikku/schemas/schemas/ExamplesAddInput.schema.json +1 -0
  175. package/dist/.pikku/schemas/schemas/ExamplesAddOutput.schema.json +1 -0
  176. package/dist/.pikku/schemas/schemas/ExamplesListInput.schema.json +1 -0
  177. package/dist/.pikku/schemas/schemas/ExamplesListOutput.schema.json +1 -0
  178. package/dist/.pikku/schemas/schemas/ExamplesShowInput.schema.json +1 -0
  179. package/dist/.pikku/schemas/schemas/ExamplesShowOutput.schema.json +1 -0
  180. package/dist/.pikku/schemas/schemas/FabricChangesFileInput.schema.json +1 -0
  181. package/dist/.pikku/schemas/schemas/FabricChangesFileOutput.schema.json +1 -0
  182. package/dist/.pikku/scopes/index.d.ts +1 -1
  183. package/dist/.pikku/scopes/index.js +1 -1
  184. package/dist/.pikku/scopes/pikku-flags.gen.d.ts +1 -1
  185. package/dist/.pikku/scopes/pikku-personas.gen.js +1 -1
  186. package/dist/.pikku/scopes/pikku-roles.gen.d.ts +1 -1
  187. package/dist/.pikku/scopes/pikku-scope-types.gen.d.ts +1 -1
  188. package/dist/.pikku/scopes/pikku-scope-types.gen.js +1 -1
  189. package/dist/.pikku/scopes/pikku-scopes.gen.d.ts +1 -1
  190. package/dist/.pikku/secrets/index.d.ts +1 -1
  191. package/dist/.pikku/secrets/index.js +1 -1
  192. package/dist/.pikku/secrets/pikku-secret-types.gen.d.ts +1 -1
  193. package/dist/.pikku/secrets/pikku-secret-types.gen.js +1 -1
  194. package/dist/.pikku/secrets/pikku-secrets.gen.d.ts +1 -1
  195. package/dist/.pikku/secrets/pikku-secrets.gen.js +1 -1
  196. package/dist/.pikku/services/pikku-meta-service.gen.d.ts +1 -1
  197. package/dist/.pikku/services/pikku-meta-service.gen.js +1 -1
  198. package/dist/.pikku/setup/index.d.ts +1 -1
  199. package/dist/.pikku/setup/index.js +1 -1
  200. package/dist/.pikku/setup/pikku-setup-types.gen.d.ts +1 -1
  201. package/dist/.pikku/setup/pikku-setup-types.gen.js +1 -1
  202. package/dist/.pikku/trigger/index.d.ts +1 -1
  203. package/dist/.pikku/trigger/index.js +1 -1
  204. package/dist/.pikku/trigger/pikku-trigger-types.gen.d.ts +1 -1
  205. package/dist/.pikku/trigger/pikku-trigger-types.gen.js +1 -1
  206. package/dist/.pikku/variables/index.d.ts +1 -1
  207. package/dist/.pikku/variables/index.js +1 -1
  208. package/dist/.pikku/variables/pikku-variable-types.gen.d.ts +1 -1
  209. package/dist/.pikku/variables/pikku-variable-types.gen.js +1 -1
  210. package/dist/.pikku/variables/pikku-variables.gen.d.ts +1 -1
  211. package/dist/.pikku/variables/pikku-variables.gen.js +1 -1
  212. package/dist/.pikku/workflow/index.d.ts +1 -1
  213. package/dist/.pikku/workflow/index.js +1 -1
  214. package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +1 -1
  215. package/dist/.pikku/workflow/pikku-workflow-types.gen.js +1 -1
  216. package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +1 -1
  217. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +1 -1
  218. package/dist/bin/pikku-bin.mjs +2 -2
  219. package/dist/src/cli.wiring.js +51 -0
  220. package/dist/src/examples.gen.d.ts +17 -0
  221. package/dist/src/examples.gen.js +7 -0
  222. package/dist/src/fabric/fabric-commands.d.ts +37 -0
  223. package/dist/src/fabric/fabric-commands.js +32 -1
  224. package/dist/src/fabric/functions/changes-file.function.d.ts +64 -0
  225. package/dist/src/fabric/functions/changes-file.function.js +56 -0
  226. package/dist/src/fabric/functions/validate.function.d.ts +34 -0
  227. package/dist/src/fabric/functions/validate.function.js +118 -0
  228. package/dist/src/fabric/lib/config.d.ts +1 -0
  229. package/dist/src/fabric/lib/config.js +1 -1
  230. package/dist/src/functions/commands/dev-address.d.ts +27 -0
  231. package/dist/src/functions/commands/dev-address.js +45 -0
  232. package/dist/src/functions/commands/dev.js +6 -0
  233. package/dist/src/functions/commands/environment.d.ts +8 -0
  234. package/dist/src/functions/commands/environment.js +15 -0
  235. package/dist/src/functions/commands/examples.d.ts +170 -0
  236. package/dist/src/functions/commands/examples.js +28 -0
  237. package/dist/src/functions/commands/scenario.js +356 -273
  238. package/dist/src/functions/db/local-db.d.ts +12 -0
  239. package/dist/src/functions/db/local-db.js +1 -1
  240. package/dist/src/functions/db/postgres/scenario-baseline.d.ts +3 -0
  241. package/dist/src/functions/db/postgres/scenario-baseline.js +112 -0
  242. package/dist/src/functions/db/scenario-baseline.d.ts +51 -0
  243. package/dist/src/functions/db/scenario-baseline.js +60 -0
  244. package/dist/src/functions/db/sqlite/scenario-baseline.d.ts +3 -0
  245. package/dist/src/functions/db/sqlite/scenario-baseline.js +77 -0
  246. package/dist/src/functions/examples/command-schemas.d.ts +69 -0
  247. package/dist/src/functions/examples/command-schemas.js +15 -0
  248. package/dist/src/functions/examples/corpus.d.ts +115 -0
  249. package/dist/src/functions/examples/corpus.js +307 -0
  250. package/dist/src/functions/examples/project.d.ts +64 -0
  251. package/dist/src/functions/examples/project.js +363 -0
  252. package/dist/src/functions/examples/render.d.ts +4 -0
  253. package/dist/src/functions/examples/render.js +101 -0
  254. package/dist/src/functions/examples/run.d.ts +9 -0
  255. package/dist/src/functions/examples/run.js +242 -0
  256. package/dist/src/functions/examples/schemas.d.ts +65 -0
  257. package/dist/src/functions/examples/schemas.js +76 -0
  258. package/dist/src/functions/surface/render-surface-doc.js +32 -2
  259. package/dist/tsconfig.tsbuildinfo +1 -1
  260. package/package.json +5 -4
  261. package/snippets-meta.json +2 -0
  262. package/snippets.json +2 -0
  263. package/surface.json +1 -1
  264. package/console-app/assets/architecture-7GRP2DOG-BQN972Vc.js +0 -1
  265. package/console-app/assets/channel-B8xtOmL3.js +0 -1
  266. package/console-app/assets/chunk-XXDRQBXY-CGWcS5Ol.js +0 -1
  267. package/console-app/assets/classDiagram-ZZMXUADV-OGsmOlmO.js +0 -1
  268. package/console-app/assets/classDiagram-v2-VYDZK3BY-OGsmOlmO.js +0 -1
  269. package/console-app/assets/eventmodeling-NTZA5JFV-CnZOTLz3.js +0 -1
  270. package/console-app/assets/flowDiagram-HODETNUW-TYMCrte8.js +0 -1
  271. package/console-app/assets/railroad-abnf-HS5TGJTU-D9Ej_sin.js +0 -1
  272. package/console-app/assets/railroad-ebnf-LZEXJU2U-CjzlC3qv.js +0 -1
  273. package/console-app/assets/railroad-peg-WCYAUIDC-BPa6lIrj.js +0 -1
  274. package/console-app/assets/stateDiagram-v2-MP3YSRHH-BLbaZawL.js +0 -1
  275. package/console-app/assets/swimlanesDiagram-VR7AAH4N-CM_5HS_7.js +0 -8
@@ -0,0 +1,307 @@
1
+ /**
2
+ * Strip the `//~` teaching comments so what lands on disk is clean code.
3
+ *
4
+ * Keeps a code line that carries a trailing `//~` by removing just the comment; drops a
5
+ * line that is entirely one. This is what lets a recipe be heavily annotated for whoever
6
+ * reads it while the file it writes has no comments in it at all.
7
+ */
8
+ export function stripTeaching(content) {
9
+ const out = [];
10
+ for (const line of content.split('\n')) {
11
+ if (line.trim().startsWith('//~'))
12
+ continue;
13
+ out.push(line.replace(/\s*\/\/~.*$/, ''));
14
+ }
15
+ return (out
16
+ .join('\n')
17
+ .replace(/\n{3,}/g, '\n\n')
18
+ .trim() + '\n');
19
+ }
20
+ /**
21
+ * Every `//~` teaching line in a recipe, paired with the code it annotates.
22
+ *
23
+ * The anchor is what makes a flat dump readable: prose like "swap this for your own list
24
+ * RPC" means nothing on its own and everything beside the line it points at. The leading
25
+ * header block is skipped by the same rule the header parser uses, so `name`, `when` and
26
+ * `steps:` are never repeated here.
27
+ */
28
+ export function extractTeaching(content) {
29
+ const lines = content.split('\n');
30
+ let i = 0;
31
+ while (i < lines.length) {
32
+ const t = lines[i].trim();
33
+ if (t === '' || t.startsWith('//~'))
34
+ i++;
35
+ else
36
+ break;
37
+ }
38
+ const notes = [];
39
+ let run = [];
40
+ const flush = (anchor) => {
41
+ if (run.length === 0)
42
+ return;
43
+ notes.push({ anchor, lines: run });
44
+ run = [];
45
+ };
46
+ for (; i < lines.length; i++) {
47
+ const line = lines[i];
48
+ const trimmed = line.trim();
49
+ if (trimmed.startsWith('//~')) {
50
+ run.push(trimmed.replace(/^\/\/~ ?/, ''));
51
+ continue;
52
+ }
53
+ if (trimmed === '')
54
+ continue;
55
+ const marker = FILE_MARKER.exec(line);
56
+ const code = line.replace(/\s*\/\/~.*$/, '').trim();
57
+ const trailing = line.match(/\/\/~\s?(.*)$/);
58
+ flush(marker ? marker[1].trim() : code || null);
59
+ if (trailing)
60
+ notes.push({ anchor: code || null, lines: [trailing[1].trim()] });
61
+ }
62
+ flush(null);
63
+ return notes.filter((n) => n.lines.some((l) => l.trim() !== ''));
64
+ }
65
+ const FILE_MARKER = /^\/\/ ===== FILE: (.+?) =====\s*$/;
66
+ export function splitExampleFiles(content) {
67
+ const files = [];
68
+ let current = null;
69
+ const flush = () => {
70
+ if (!current)
71
+ return;
72
+ files.push({
73
+ path: current.path,
74
+ overwrite: current.overwrite,
75
+ body: current.lines.join('\n').trim() + '\n',
76
+ });
77
+ };
78
+ for (const line of content.split('\n')) {
79
+ const marker = FILE_MARKER.exec(line);
80
+ if (marker) {
81
+ flush();
82
+ const raw = marker[1].trim();
83
+ const overwrite = raw.endsWith('(overwrite)');
84
+ current = {
85
+ path: (overwrite ? raw.slice(0, -'(overwrite)'.length) : raw).trim(),
86
+ overwrite,
87
+ lines: [],
88
+ };
89
+ continue;
90
+ }
91
+ if (current)
92
+ current.lines.push(line);
93
+ }
94
+ flush();
95
+ return files;
96
+ }
97
+ /**
98
+ * Where a recipe's file lands, relative to the project root.
99
+ *
100
+ * A marker path beginning `src/` is FRONTEND-relative; one beginning
101
+ * `packages/functions/src/` is backend, and is rebased onto whatever this project calls
102
+ * its source directory — the starter template keeps functions in a workspace package and
103
+ * a single-package project keeps them at `src/`, and a recipe should not have to know
104
+ * which. Anything else is taken from the project root as written.
105
+ */
106
+ export function resolveExamplePath(path, appBase, functionsDir) {
107
+ if (path.startsWith('src/'))
108
+ return `${appBase}/${path}`;
109
+ const backend = 'packages/functions/src/';
110
+ if (path.startsWith(backend))
111
+ return `${functionsDir}/${path.slice(backend.length)}`;
112
+ return path;
113
+ }
114
+ function words(raw) {
115
+ return raw
116
+ .replace(/([a-z0-9])([A-Z])/g, '$1 $2')
117
+ .split(/[^A-Za-z0-9]+/)
118
+ .filter(Boolean)
119
+ .map((w) => w.toLowerCase());
120
+ }
121
+ export function entityNames(raw) {
122
+ const parts = words(raw);
123
+ const pascal = parts.map((w) => w[0].toUpperCase() + w.slice(1)).join('');
124
+ return {
125
+ camel: pascal[0] ? pascal[0].toLowerCase() + pascal.slice(1) : '',
126
+ pascal,
127
+ kebab: parts.join('-'),
128
+ };
129
+ }
130
+ /**
131
+ * Entity names the stack already owns, with what each one would collide with.
132
+ *
133
+ * The rename lands a `CREATE TABLE <entity>` in a migration, so `--entity session` does
134
+ * not produce a second table — it collides with Better Auth's session store and breaks
135
+ * login. Deliberately a refusal rather than an auto-prefix: the caller has to pick the
136
+ * domain word they actually mean, and a silent rewrite would hand back files named for
137
+ * something they never asked for.
138
+ */
139
+ export const RESERVED_ENTITY_NAMES = new Map([
140
+ ['session', "Better Auth's session store"],
141
+ ['user', "Better Auth's user table"],
142
+ ['account', "Better Auth's account table"],
143
+ ['verification', "Better Auth's verification table"],
144
+ ['credentials', 'the pikku credentials table'],
145
+ ['secrets', 'the pikku secrets table'],
146
+ ['channels', 'the pikku channels table'],
147
+ ['workflow', "the pikku runtime's workflow tables"],
148
+ ['services', 'the services/ directory'],
149
+ ['addons', 'the addons/ directory'],
150
+ ['lib', 'the lib/ directory'],
151
+ ['functions', 'the functions/ directory'],
152
+ ['workflows', 'the workflows/ directory'],
153
+ ['wires', 'the wires/ directory'],
154
+ ]);
155
+ /** What `--entity <raw>` would collide with, or null when the name is free to use. */
156
+ export function reservedEntityCollision(raw) {
157
+ return RESERVED_ENTITY_NAMES.get(entityNames(raw).camel.toLowerCase()) ?? null;
158
+ }
159
+ /**
160
+ * Rewrite a recipe from its example domain into the caller's real one.
161
+ *
162
+ * Substring replacement, deliberately not word-bounded: the generated zod for a table is
163
+ * `<Pascal>Z` and its id field `<camel>Id`, so a trailing boundary would leave `TodoZ`
164
+ * and `todoId` behind in a file otherwise renamed — a mix that type-checks against
165
+ * neither table. The cost is that the example name occurring inside an unrelated word is
166
+ * also rewritten, which is why example names are chosen to be distinctive.
167
+ *
168
+ * `order` exists because a SINGLE-WORD example spells its camel and kebab forms
169
+ * identically (`todo`) while the two map to different replacements (`sessionNote` vs
170
+ * `session-note`). Code wants the identifier; a file path wants the hyphenated name.
171
+ */
172
+ function rename(content, from, to, order) {
173
+ let out = content;
174
+ for (const form of order) {
175
+ const needle = from[form];
176
+ if (!needle || needle === to[form])
177
+ continue;
178
+ out = out.split(needle).join(to[form]);
179
+ }
180
+ return out;
181
+ }
182
+ export function renameEntityInCode(content, from, to) {
183
+ return rename(content, from, to, ['pascal', 'camel', 'kebab']);
184
+ }
185
+ export function renameEntityInPath(path, from, to) {
186
+ return rename(path, from, to, ['kebab', 'pascal', 'camel']);
187
+ }
188
+ /**
189
+ * Point an example's `actors.<id>` at somebody this project actually declares.
190
+ *
191
+ * A browser step's actor has to be a literal `actors.<name>`, so every scenario recipe
192
+ * names one — and a persona that does not exist fails codegen, which stops everything
193
+ * written afterwards from registering. Distinct unknown ids map to distinct personas in
194
+ * declaration order, so a two-colleague example keeps its two colleagues, and saturate
195
+ * on the last one when the cast is smaller.
196
+ */
197
+ export function renameActorsInCode(content, cast) {
198
+ if (cast.length === 0)
199
+ return content;
200
+ const declared = new Set(cast);
201
+ const chosen = new Map();
202
+ return content.replace(/\bactors(\??\.)([A-Za-z_$][\w$]*)/g, (all, dot, id) => {
203
+ if (declared.has(id))
204
+ return all;
205
+ let to = chosen.get(id);
206
+ if (to === undefined) {
207
+ to = cast[Math.min(chosen.size, cast.length - 1)];
208
+ chosen.set(id, to);
209
+ }
210
+ return `actors${dot}${to}`;
211
+ });
212
+ }
213
+ const SCENARIO_STEP = /\bscenario\.(?:do|expectEventually|expectError)\(\s*(?:'[^']*'|"[^"]*"|`[^`]*`)\s*,\s*'([^']+)'/g;
214
+ /**
215
+ * Every RPC a scenario recipe's steps call BY NAME, after the entity rename.
216
+ *
217
+ * A scenario is the one family that is a FORWARD REFERENCE: codegen auto-discovers every
218
+ * `*.scenario.ts` and types `scenario.do`'s second argument as the union of registered
219
+ * RPCs, so a step naming one that does not exist yet is a type error the moment the file
220
+ * lands — and while codegen is red nothing written after it registers.
221
+ */
222
+ export function scenarioRpcNames(body) {
223
+ const names = new Set();
224
+ for (const [, rpc] of body.matchAll(SCENARIO_STEP))
225
+ names.add(rpc);
226
+ return [...names];
227
+ }
228
+ const EXPORTED_SYMBOL = /^export (?:function|const|class) (\w+)/gm;
229
+ const TYPE_DECL = /^(?:export )?(?:interface|type) (\w+)(<[^>]*>)?\s*(?:=\s*)?\{/gm;
230
+ /**
231
+ * The API of a written file, taken from its source rather than described by hand.
232
+ *
233
+ * A recipe that WRITES its files leaves the caller holding filenames and nothing else —
234
+ * they have not seen a single prop, and buy them back one file read at a time.
235
+ * Declarations come back verbatim, teaching comments included, because the comment is
236
+ * routinely the part a type cannot express.
237
+ */
238
+ export function extractExampleApi(body) {
239
+ const exports = [...body.matchAll(EXPORTED_SYMBOL)].map((m) => m[1]);
240
+ const blocks = new Map();
241
+ for (const match of body.matchAll(TYPE_DECL)) {
242
+ const block = balancedBlock(body, match.index + match[0].length - 1);
243
+ if (block)
244
+ blocks.set(match[1], `${match[0].slice(0, -1).trim()} ${block}`);
245
+ }
246
+ const wanted = new Set();
247
+ const queue = exports
248
+ .map((name) => `${name}Props`)
249
+ .filter((name) => blocks.has(name));
250
+ while (queue.length > 0) {
251
+ const name = queue.shift();
252
+ if (wanted.has(name))
253
+ continue;
254
+ wanted.add(name);
255
+ for (const other of blocks.keys()) {
256
+ if (!wanted.has(other) &&
257
+ new RegExp(`\\b${other}\\b`).test(blocks.get(name))) {
258
+ queue.push(other);
259
+ }
260
+ }
261
+ }
262
+ return { exports, declarations: [...wanted].map((name) => blocks.get(name)) };
263
+ }
264
+ function balancedBlock(source, open) {
265
+ let depth = 0;
266
+ for (let i = open; i < source.length; i++) {
267
+ if (source[i] === '{')
268
+ depth++;
269
+ else if (source[i] === '}' && --depth === 0)
270
+ return source.slice(open, i + 1);
271
+ }
272
+ return null;
273
+ }
274
+ /**
275
+ * The recipes that must be written before this one, dependencies first.
276
+ *
277
+ * A recipe that declares an example entity is NOT installed unattended — the rename is
278
+ * the whole point of it, and guessing the caller's domain word would write the example
279
+ * one into their app. Those come back as `manual` so the caller can be told to run each
280
+ * with the entity it is for.
281
+ */
282
+ export function requiredChain(name, entries) {
283
+ const byName = new Map(entries.map((e) => [e.name, e]));
284
+ const install = [];
285
+ const manual = [];
286
+ const missing = [];
287
+ const seen = new Set([name]);
288
+ const walk = (current) => {
289
+ for (const required of byName.get(current)?.requires ?? []) {
290
+ if (seen.has(required))
291
+ continue;
292
+ seen.add(required);
293
+ const node = byName.get(required);
294
+ if (!node) {
295
+ missing.push(required);
296
+ continue;
297
+ }
298
+ walk(required);
299
+ if (node.entity)
300
+ manual.push(required);
301
+ else
302
+ install.push(required);
303
+ }
304
+ };
305
+ walk(name);
306
+ return { install, manual, missing };
307
+ }
@@ -0,0 +1,64 @@
1
+ /**
2
+ * The tables the generator has actually emitted zod for, or null when it has emitted
3
+ * none.
4
+ *
5
+ * Null and empty are different: no generated file means codegen has never run here, and
6
+ * every caller must skip the check rather than report the whole schema missing.
7
+ */
8
+ export declare function generatedTables(outDir: string): string[] | null;
9
+ /**
10
+ * The table this name most likely meant, by containment either way.
11
+ *
12
+ * `--entity changeover` against a `weeklyChangeover` table is the shape this is for.
13
+ * Containment only — a guess dressed up as certainty sends the caller off to rename
14
+ * working code, which costs more than saying nothing.
15
+ */
16
+ export declare function nearestTable(wanted: string, tables: string[]): string | null;
17
+ /**
18
+ * This project's persona cast, in declaration order.
19
+ *
20
+ * Read from the `definePersonas` call rather than from generated meta because a cast
21
+ * rewritten a moment ago has not been through codegen yet, and a recipe that substitutes
22
+ * an example's actor has to substitute the CURRENT one or it writes a scenario naming
23
+ * somebody who no longer exists.
24
+ */
25
+ export declare function personaCast(srcDirectories: string[]): string[];
26
+ /** Every RPC the generated function meta says is registered. */
27
+ export declare function registeredRpcs(outDir: string): string[];
28
+ /**
29
+ * The frontend a recipe's `src/` files belong to.
30
+ *
31
+ * A project with no `apps/` directory writes them at the root, which is what a
32
+ * single-package project wants. An unknown slug returns null rather than falling back —
33
+ * a recipe aimed at an app that does not exist is a mistake worth refusing, not one
34
+ * worth silently redirecting into another app.
35
+ */
36
+ export declare function resolveAppBase(rootDir: string, slug?: string): {
37
+ slug: string;
38
+ base: string;
39
+ } | null;
40
+ /**
41
+ * The tables this project promised its users, from its own migrations.
42
+ *
43
+ * Excluded: anything a framework declared (the `pikku db generate` provenance stamp, or
44
+ * the auth names above), a pure junction table, and a lookup table other rows point at
45
+ * but nobody edits. What is left is the set a person is supposed to be able to create
46
+ * and edit, which is the denominator the `entity-write` precondition is measured against.
47
+ */
48
+ export declare function requiredEntities(rootDir: string): string[];
49
+ /** Tables with at least one `insertInto`/`updateTable` reachable from the app's source. */
50
+ export declare function coveredEntities(srcDirectories: string[]): Set<string>;
51
+ export interface EntityWriteCoverage {
52
+ required: string[];
53
+ uncovered: string[];
54
+ }
55
+ /**
56
+ * required − covered: the tables a person could never create or edit through this app,
57
+ * even though the schema promised them.
58
+ *
59
+ * Empty `required` (no schema yet) fails open — a project with nothing written has no
60
+ * pacing problem to have.
61
+ */
62
+ export declare function entityWriteCoverage(rootDir: string, srcDirectories: string[]): EntityWriteCoverage;
63
+ /** A path under the project, for printing. */
64
+ export declare function projectRelative(rootDir: string, path: string): string;