@pikku/cli 0.12.96 → 0.12.100

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 (423) hide show
  1. package/console-app/assets/abnfDiagram-VRR7QNED-Icjp9hnB.js +1 -0
  2. package/console-app/assets/arc-BfGls--L.js +1 -0
  3. package/console-app/assets/architecture-TIHT7OUA-C8l7I5Lm.js +1 -0
  4. package/console-app/assets/architectureDiagram-ZJ3FMSHR-CpnsLBns.js +36 -0
  5. package/console-app/assets/array-BifhSqXX.js +1 -0
  6. package/console-app/assets/blockDiagram-677ZJIJ3-ByKRMGSr.js +132 -0
  7. package/console-app/assets/c4Diagram-LMCZKHZV-CzJSbsUo.js +10 -0
  8. package/console-app/assets/channel-BgJ-Z0cx.js +1 -0
  9. package/console-app/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
  10. package/console-app/assets/chunk-32BRIVSS-D_tc4HCY.js +1 -0
  11. package/console-app/assets/chunk-52WLFC77-wkQkuUXG.js +10 -0
  12. package/console-app/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
  13. package/console-app/assets/chunk-7BUUIJ7U-Bb538aSH.js +1 -0
  14. package/console-app/assets/chunk-C7G6YPKG-BFW3xG3R.js +1 -0
  15. package/console-app/assets/chunk-EX3LRPZG-Car090Sw.js +231 -0
  16. package/console-app/assets/chunk-FWX5IMBZ-c2ud9kQ-.js +2 -0
  17. package/console-app/assets/chunk-HOUHSVGY-RYmQka5R.js +1 -0
  18. package/console-app/assets/chunk-ICXQ74PX-C-dqYC_9.js +2 -0
  19. package/console-app/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
  20. package/console-app/assets/chunk-KEIR6QF5-DNzq6p3w.js +161 -0
  21. package/console-app/assets/chunk-MOJQB5TN-Cu3FUWwl.js +88 -0
  22. package/console-app/assets/chunk-OGEWGWER-Z7f1yArD.js +1 -0
  23. package/console-app/assets/chunk-PUDLZKDR-Bp68DuRj.js +156 -0
  24. package/console-app/assets/chunk-Q4XR5HBZ-CdKSYWZ4.js +70 -0
  25. package/console-app/assets/chunk-RYQCIY6F-9ISCAKm2.js +1 -0
  26. package/console-app/assets/chunk-V7JOEXUC-2EOc1nQB.js +206 -0
  27. package/console-app/assets/chunk-VAUOI2AC-DwKsbf70.js +1 -0
  28. package/console-app/assets/chunk-VR4S4FIN-BPvN0PUm.js +1 -0
  29. package/console-app/assets/chunk-WYO6CB5R-DOpurCTP.js +127 -0
  30. package/console-app/assets/chunk-XXDRQBXY-RuYSFsQb.js +1 -0
  31. package/console-app/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
  32. package/console-app/assets/chunk-ZGVPDNZ5-Bu2weVOL.js +62 -0
  33. package/console-app/assets/chunk-ZIRB5QZD-H-kepumB.js +32 -0
  34. package/console-app/assets/classDiagram-OUVF2IWQ-ohoLCI8g.js +1 -0
  35. package/console-app/assets/classDiagram-v2-EOCWNBFH-ohoLCI8g.js +1 -0
  36. package/console-app/assets/cose-bilkent-JH36ORCC-nau-QGCX.js +1 -0
  37. package/console-app/assets/cynefin-VYW2F7L2-BBw-E7lg.js +1 -0
  38. package/console-app/assets/cynefinDiagram-TSTJHNR4-BvnMvOvH.js +62 -0
  39. package/console-app/assets/cytoscape.esm-h6BdjjI9.js +321 -0
  40. package/console-app/assets/dagre-CXRCoUWR.js +1 -0
  41. package/console-app/assets/dagre-VKFMJZFB-CHEqPR29.js +4 -0
  42. package/console-app/assets/defaultLocale-C8Fc0cco.js +1 -0
  43. package/console-app/assets/diagram-FQU43EPY-JijKRWyb.js +3 -0
  44. package/console-app/assets/diagram-G47NLZAW-G5UsB31f.js +24 -0
  45. package/console-app/assets/diagram-NH7WQ7WH-BhuJ6fPu.js +24 -0
  46. package/console-app/assets/diagram-OA4YK3LP-DaUF-8N4.js +30 -0
  47. package/console-app/assets/diagram-WEI45ONY-wLsJIhoM.js +41 -0
  48. package/console-app/assets/dist-fbBkbDNG.js +1 -0
  49. package/console-app/assets/ebnfDiagram-CCIWWBDH-BZCEa3Dz.js +1 -0
  50. package/console-app/assets/erDiagram-Q63AITRT-4XoEUtEh.js +85 -0
  51. package/console-app/assets/eventmodeling-45OFAUF4-DZ7z4YJO.js +1 -0
  52. package/console-app/assets/flowDiagram-23GEKE2U-rd7-NwZT.js +1 -0
  53. package/console-app/assets/ganttDiagram-NO4QXBWP-BXU7pfq6.js +292 -0
  54. package/console-app/assets/gitGraph-TEB2WS4Q-BdMAmvpU.js +1 -0
  55. package/console-app/assets/gitGraphDiagram-IHSO6WYX-3Hn0zwZR.js +106 -0
  56. package/console-app/assets/graphlib-B8gBHxth.js +1 -0
  57. package/console-app/assets/{index-CyYHTGWZ.css → index-BXMjqLQ5.css} +1 -1
  58. package/console-app/assets/{index-CeQodYfg.js → index-Din2vBeb.js} +153 -165
  59. package/console-app/assets/info-DKCQHKI2-Dc_oQkp5.js +1 -0
  60. package/console-app/assets/infoDiagram-FWYZ7A6U-B3v4xCUn.js +2 -0
  61. package/console-app/assets/init-D6jRqBbL.js +1 -0
  62. package/console-app/assets/ishikawaDiagram-FXEZZL3T-DzWq9Vtp.js +70 -0
  63. package/console-app/assets/journeyDiagram-5HDEW3XC-C0buWi_a.js +139 -0
  64. package/console-app/assets/kanban-definition-HUTT4EX6-DRAN9HhV.js +89 -0
  65. package/console-app/assets/katex-Vhh-h91d.js +257 -0
  66. package/console-app/assets/line-UqgRNiAC.js +1 -0
  67. package/console-app/assets/linear-FTAGuk_3.js +1 -0
  68. package/console-app/assets/map-DsCK-0Cs.js +1 -0
  69. package/console-app/assets/mermaid-parser.core-DIHI27FL.js +7 -0
  70. package/console-app/assets/mermaid.core-D4q8kvcu.js +11 -0
  71. package/console-app/assets/mindmap-definition-LN4V7U3C-DN-_CNLb.js +96 -0
  72. package/console-app/assets/ordinal-hYBb2elL.js +1 -0
  73. package/console-app/assets/packet-7NZHBO7P-8a3PoQAb.js +1 -0
  74. package/console-app/assets/path-BWPyau1x.js +1 -0
  75. package/console-app/assets/pegDiagram-2B236MQR-Bh2MhzCN.js +1 -0
  76. package/console-app/assets/pie-RZYD4A2V-Bi6zbJDl.js +1 -0
  77. package/console-app/assets/pieDiagram-ENE6RG2P-D2Z0W5UU.js +39 -0
  78. package/console-app/assets/quadrantDiagram-ABIIQ3AL-DNOKka0p.js +7 -0
  79. package/console-app/assets/radar-I7S5WNFK-CAxa68Sg.js +1 -0
  80. package/console-app/assets/railroad-3IZDKUUU-CZb1usP7.js +1 -0
  81. package/console-app/assets/railroad-abnf-AHOZXSZD-DkQZciri.js +1 -0
  82. package/console-app/assets/railroad-ebnf-EBAXGLYW-CPBeASA9.js +1 -0
  83. package/console-app/assets/railroad-peg-LSFZ7HO6-CXEVIZ0g.js +1 -0
  84. package/console-app/assets/railroadDiagram-RFXS5EU6-B1K2hbTD.js +1 -0
  85. package/console-app/assets/requirementDiagram-TGXJPOKE-K8wcOO0Q.js +84 -0
  86. package/console-app/assets/rough.esm-CSKSodPl.js +1 -0
  87. package/console-app/assets/sankeyDiagram-HTMAVEWB-WBPBkgNx.js +40 -0
  88. package/console-app/assets/sequenceDiagram-DBY2YBRQ-Dz80qZZv.js +162 -0
  89. package/console-app/assets/sizeCapture-X5ZJPWSS-B0uUizjq.js +1 -0
  90. package/console-app/assets/src-CnJCXDL0.js +1 -0
  91. package/console-app/assets/stateDiagram-2N3HPSRC-DMur7lZf.js +1 -0
  92. package/console-app/assets/stateDiagram-v2-6OUMAXLB-BDgLCrot.js +1 -0
  93. package/console-app/assets/swimlanes-5IMT3BWC-BlLdYcPU.js +2 -0
  94. package/console-app/assets/swimlanesDiagram-G3AALYLV-CZ5rQIcE.js +8 -0
  95. package/console-app/assets/timeline-definition-FHXFAJF6-CBOit0JY.js +120 -0
  96. package/console-app/assets/treeView-QDETBFTQ-DM1i1ast.js +1 -0
  97. package/console-app/assets/treemap-6X3UGDF4-ACrBEfY6.js +1 -0
  98. package/console-app/assets/vennDiagram-L72KCM5P-BmeFWb5N.js +34 -0
  99. package/console-app/assets/wardley-OPB4EBWU-BpIbeh58.js +1 -0
  100. package/console-app/assets/wardleyDiagram-EHGQE667-CxL7Mv7y.js +78 -0
  101. package/console-app/assets/xychartDiagram-FW5EYKEG-DkV75xT2.js +7 -0
  102. package/console-app/index.html +2 -2
  103. package/dist/.pikku/agent/pikku-agent-types.gen.d.ts +1 -1
  104. package/dist/.pikku/auth/auth.types.d.ts +1 -1
  105. package/dist/.pikku/auth/auth.types.js +1 -1
  106. package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +1 -1
  107. package/dist/.pikku/channel/pikku-channel-types.gen.js +1 -1
  108. package/dist/.pikku/cli/pikku-cli-channel.d.ts +11 -2
  109. package/dist/.pikku/cli/pikku-cli-channel.js +23 -8
  110. package/dist/.pikku/cli/pikku-cli-client.gen.d.ts +1 -1
  111. package/dist/.pikku/cli/pikku-cli-client.gen.js +36 -9
  112. package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.d.ts +1 -1
  113. package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.js +1 -1
  114. package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +1 -1
  115. package/dist/.pikku/cli/pikku-cli-types.gen.js +1 -1
  116. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +2 -2
  117. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.json +7 -8
  118. package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +1 -1
  119. package/dist/.pikku/cli/pikku-cli-wirings.gen.js +1 -1
  120. package/dist/.pikku/cli/pikku-cli.gen.d.ts +1 -1
  121. package/dist/.pikku/cli/pikku-cli.gen.js +18 -2
  122. package/dist/.pikku/console/pikku-node-types.gen.d.ts +1 -1
  123. package/dist/.pikku/function/pikku-function-types.gen.d.ts +24 -9
  124. package/dist/.pikku/function/pikku-function-types.gen.js +2 -2
  125. package/dist/.pikku/function/pikku-functions-meta.gen.js +2 -2
  126. package/dist/.pikku/function/pikku-functions-meta.gen.json +48 -39
  127. package/dist/.pikku/function/pikku-functions.gen.js +3 -3
  128. package/dist/.pikku/http/pikku-http-types.gen.d.ts +1 -1
  129. package/dist/.pikku/http/pikku-http-types.gen.js +1 -1
  130. package/dist/.pikku/mcp/pikku-mcp-types.gen.d.ts +1 -1
  131. package/dist/.pikku/mcp/pikku-mcp-types.gen.js +1 -1
  132. package/dist/.pikku/pikku-bootstrap-scenarios.gen.d.ts +1 -1
  133. package/dist/.pikku/pikku-bootstrap-scenarios.gen.js +1 -1
  134. package/dist/.pikku/pikku-bootstrap.gen.d.ts +1 -1
  135. package/dist/.pikku/pikku-bootstrap.gen.js +1 -1
  136. package/dist/.pikku/pikku-meta-service.gen.d.ts +1 -1
  137. package/dist/.pikku/pikku-meta-service.gen.js +1 -1
  138. package/dist/.pikku/pikku-services.gen.d.ts +2 -1
  139. package/dist/.pikku/pikku-services.gen.js +1 -0
  140. package/dist/.pikku/pikku-types.gen.d.ts +1 -1
  141. package/dist/.pikku/pikku-types.gen.js +1 -1
  142. package/dist/.pikku/queue/pikku-queue-types.gen.d.ts +1 -1
  143. package/dist/.pikku/queue/pikku-queue-types.gen.js +1 -1
  144. package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.js +2 -2
  145. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.d.ts +1 -1
  146. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.js +1 -1
  147. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +2 -2
  148. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.json +1 -1
  149. package/dist/.pikku/scenarios/pikku-scenario-functions-meta.gen.js +2 -2
  150. package/dist/.pikku/scenarios/pikku-scenario-functions.gen.d.ts +1 -1
  151. package/dist/.pikku/scenarios/pikku-scenario-wirings-meta.gen.js +2 -2
  152. package/dist/.pikku/scenarios/pikku-scenario-wirings.gen.d.ts +1 -1
  153. package/dist/.pikku/scenarios/schemas/register.gen.d.ts +1 -1
  154. package/dist/.pikku/scenarios/schemas/register.gen.js +1 -1
  155. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +1 -1
  156. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +1 -1
  157. package/dist/.pikku/schemas/register.gen.js +3 -3
  158. package/dist/.pikku/schemas/schemas/DbResetInput.schema.json +1 -1
  159. package/dist/.pikku/schemas/schemas/{DbSeedInput.schema.json → PikkuVirtualUserFunctionsOutput.schema.json} +1 -1
  160. package/dist/.pikku/scopes/pikku-personas.gen.js +1 -1
  161. package/dist/.pikku/scopes/pikku-roles.gen.d.ts +1 -1
  162. package/dist/.pikku/scopes/pikku-scope-types.gen.d.ts +1 -1
  163. package/dist/.pikku/scopes/pikku-scope-types.gen.js +1 -1
  164. package/dist/.pikku/scopes/pikku-scopes.gen.d.ts +1 -1
  165. package/dist/.pikku/secrets/pikku-secret-types.gen.d.ts +1 -1
  166. package/dist/.pikku/secrets/pikku-secret-types.gen.js +1 -1
  167. package/dist/.pikku/secrets/pikku-secrets.gen.d.ts +1 -1
  168. package/dist/.pikku/secrets/pikku-secrets.gen.js +1 -1
  169. package/dist/.pikku/trigger/pikku-trigger-types.gen.d.ts +1 -1
  170. package/dist/.pikku/trigger/pikku-trigger-types.gen.js +1 -1
  171. package/dist/.pikku/variables/pikku-variable-types.gen.d.ts +1 -1
  172. package/dist/.pikku/variables/pikku-variable-types.gen.js +1 -1
  173. package/dist/.pikku/variables/pikku-variables.gen.d.ts +1 -1
  174. package/dist/.pikku/variables/pikku-variables.gen.js +1 -1
  175. package/dist/.pikku/workflow/meta/allWorkflow.gen.json +20 -14
  176. package/dist/.pikku/workflow/pikku-personas.gen.js +1 -1
  177. package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +29 -13
  178. package/dist/.pikku/workflow/pikku-workflow-types.gen.js +1 -1
  179. package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +2 -2
  180. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +1 -1
  181. package/dist/bin/pikku-bin.mjs +2 -2
  182. package/dist/src/cli.wiring.js +8 -7
  183. package/dist/src/deploy/analyzer/analyzer.js +0 -6
  184. package/dist/src/deploy/codegen/per-unit-codegen.js +0 -3
  185. package/dist/src/deploy/server-entry.js +1 -1
  186. package/dist/src/fabric/fabric-commands.d.ts +26 -26
  187. package/dist/src/fabric/functions/add.function.d.ts +1 -1
  188. package/dist/src/fabric/functions/addon-verify.function.d.ts +1 -1
  189. package/dist/src/fabric/functions/db-schema.function.d.ts +1 -1
  190. package/dist/src/fabric/functions/deploy-list.function.d.ts +1 -1
  191. package/dist/src/fabric/functions/deploy-units.function.d.ts +1 -1
  192. package/dist/src/fabric/functions/deploy.function.d.ts +2 -2
  193. package/dist/src/fabric/functions/domains-add.function.d.ts +1 -1
  194. package/dist/src/fabric/functions/domains-list.function.d.ts +1 -1
  195. package/dist/src/fabric/functions/domains-remove.function.d.ts +1 -1
  196. package/dist/src/fabric/functions/errors.function.d.ts +1 -1
  197. package/dist/src/fabric/functions/init.function.d.ts +1 -1
  198. package/dist/src/fabric/functions/link.function.d.ts +1 -1
  199. package/dist/src/fabric/functions/llm-key.function.d.ts +1 -1
  200. package/dist/src/fabric/functions/login.function.d.ts +1 -1
  201. package/dist/src/fabric/functions/logs.function.d.ts +1 -1
  202. package/dist/src/fabric/functions/metrics.function.d.ts +1 -1
  203. package/dist/src/fabric/functions/publish.function.d.ts +1 -1
  204. package/dist/src/fabric/functions/rollback.function.d.ts +1 -1
  205. package/dist/src/fabric/functions/secrets-list.function.d.ts +1 -1
  206. package/dist/src/fabric/functions/secrets-rotate.function.d.ts +1 -1
  207. package/dist/src/fabric/functions/secrets-set.function.d.ts +1 -1
  208. package/dist/src/fabric/functions/smoke.function.d.ts +1 -1
  209. package/dist/src/fabric/functions/status.function.d.ts +1 -1
  210. package/dist/src/fabric/functions/trace.function.d.ts +1 -1
  211. package/dist/src/fabric/functions/validate.function.d.ts +1 -1
  212. package/dist/src/fabric/functions/validate.function.js +76 -176
  213. package/dist/src/functions/commands/all.d.ts +1 -1
  214. package/dist/src/functions/commands/audit.d.ts +1 -1
  215. package/dist/src/functions/commands/binary.d.ts +1 -1
  216. package/dist/src/functions/commands/bootstrap.d.ts +1 -1
  217. package/dist/src/functions/commands/db-audit.d.ts +1 -1
  218. package/dist/src/functions/commands/db-audit.js +1 -1
  219. package/dist/src/functions/commands/db-baseline.d.ts +1 -1
  220. package/dist/src/functions/commands/db-baseline.js +1 -1
  221. package/dist/src/functions/commands/db-check.d.ts +1 -1
  222. package/dist/src/functions/commands/db-check.js +6 -5
  223. package/dist/src/functions/commands/db-codegen.d.ts +1 -1
  224. package/dist/src/functions/commands/db-codegen.js +1 -1
  225. package/dist/src/functions/commands/db-export.d.ts +1 -1
  226. package/dist/src/functions/commands/db-generate.d.ts +1 -1
  227. package/dist/src/functions/commands/db-generate.js +1 -1
  228. package/dist/src/functions/commands/db-migrate.d.ts +1 -1
  229. package/dist/src/functions/commands/db-migrate.js +1 -1
  230. package/dist/src/functions/commands/db-reset.d.ts +15 -1
  231. package/dist/src/functions/commands/db-reset.js +18 -6
  232. package/dist/src/functions/commands/db-shared.d.ts +14 -0
  233. package/dist/src/functions/commands/deploy-apply.d.ts +1 -1
  234. package/dist/src/functions/commands/deploy-info.d.ts +1 -1
  235. package/dist/src/functions/commands/deploy-plan.d.ts +1 -1
  236. package/dist/src/functions/commands/dev.d.ts +1 -1
  237. package/dist/src/functions/commands/dev.js +2 -2
  238. package/dist/src/functions/commands/emails-init.d.ts +1 -1
  239. package/dist/src/functions/commands/enable.d.ts +8 -8
  240. package/dist/src/functions/commands/import-n8n.d.ts +1 -1
  241. package/dist/src/functions/commands/info.d.ts +4 -4
  242. package/dist/src/functions/commands/knowledge-index.d.ts +1 -1
  243. package/dist/src/functions/commands/knowledge-validate.d.ts +1 -1
  244. package/dist/src/functions/commands/login.d.ts +3 -3
  245. package/dist/src/functions/commands/meta.d.ts +19 -19
  246. package/dist/src/functions/commands/new-addon.d.ts +1 -1
  247. package/dist/src/functions/commands/new-addon.js +2 -2
  248. package/dist/src/functions/commands/new-function.d.ts +1 -1
  249. package/dist/src/functions/commands/new-middleware.d.ts +1 -1
  250. package/dist/src/functions/commands/new-permission.d.ts +1 -1
  251. package/dist/src/functions/commands/new-wiring.d.ts +1 -1
  252. package/dist/src/functions/commands/persona-sync.d.ts +2 -2
  253. package/dist/src/functions/commands/persona-sync.js +1 -1
  254. package/dist/src/functions/commands/persona.d.ts +2 -2
  255. package/dist/src/functions/commands/persona.js +16 -18
  256. package/dist/src/functions/commands/pikku-command-bootstrap.d.ts +1 -1
  257. package/dist/src/functions/commands/pikku-command-summary.d.ts +1 -1
  258. package/dist/src/functions/commands/roles-audit.d.ts +1 -1
  259. package/dist/src/functions/commands/roles-prune.d.ts +1 -1
  260. package/dist/src/functions/commands/scenario-ladder.js +1 -1
  261. package/dist/src/functions/commands/scenario.d.ts +2 -2
  262. package/dist/src/functions/commands/scenario.js +40 -11
  263. package/dist/src/functions/commands/scopes-audit.d.ts +1 -1
  264. package/dist/src/functions/commands/scopes-prune.d.ts +1 -1
  265. package/dist/src/functions/commands/scopes-shared.d.ts +4 -0
  266. package/dist/src/functions/commands/scopes-shared.js +1 -1
  267. package/dist/src/functions/commands/serve.d.ts +1 -1
  268. package/dist/src/functions/commands/serve.js +2 -2
  269. package/dist/src/functions/commands/skills.d.ts +2 -2
  270. package/dist/src/functions/commands/versions-check.d.ts +1 -1
  271. package/dist/src/functions/commands/versions-check.js +3 -3
  272. package/dist/src/functions/commands/versions-init.d.ts +1 -1
  273. package/dist/src/functions/commands/versions-update.d.ts +1 -1
  274. package/dist/src/functions/commands/watch.d.ts +1 -1
  275. package/dist/src/functions/commands/workspace-validate.d.ts +1 -1
  276. package/dist/src/functions/db/annotation-parser.d.ts +14 -0
  277. package/dist/src/functions/db/annotation-parser.js +50 -2
  278. package/dist/src/functions/db/better-auth-schema.js +2 -1
  279. package/dist/src/functions/db/db-codegen.d.ts +12 -0
  280. package/dist/src/functions/db/db-codegen.js +149 -16
  281. package/dist/src/functions/db/local-db.d.ts +87 -6
  282. package/dist/src/functions/db/local-db.js +202 -35
  283. package/dist/src/functions/db/sqlite/dev-seed.d.ts +12 -0
  284. package/dist/src/functions/db/sqlite/dev-seed.js +23 -0
  285. package/dist/src/functions/db/sqlite/sqlite-runtime-bun.js +1 -1
  286. package/dist/src/functions/runtimes/fetch/index.d.ts +1 -1
  287. package/dist/src/functions/runtimes/nextjs/pikku-command-nextjs.d.ts +1 -1
  288. package/dist/src/functions/runtimes/tanstack-start/pikku-command-tanstack-start.d.ts +1 -1
  289. package/dist/src/functions/runtimes/websocket/pikku-command-websocket-typed.d.ts +1 -1
  290. package/dist/src/functions/validate/bootstrap-checks.d.ts +19 -0
  291. package/dist/src/functions/validate/bootstrap-checks.js +90 -0
  292. package/dist/src/functions/validate/persona-checks.d.ts +24 -0
  293. package/dist/src/functions/validate/persona-checks.js +136 -0
  294. package/dist/src/functions/validate/scenario-file-checks.d.ts +17 -0
  295. package/dist/src/functions/validate/scenario-file-checks.js +123 -0
  296. package/dist/src/functions/validate/shared-checks.d.ts +59 -0
  297. package/dist/src/functions/validate/shared-checks.js +311 -0
  298. package/dist/src/functions/validate/workspace-validate.d.ts +1 -2
  299. package/dist/src/functions/validate/workspace-validate.js +4 -196
  300. package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent-types.d.ts +1 -1
  301. package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent.d.ts +1 -1
  302. package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent.js +1 -1
  303. package/dist/src/functions/wirings/ai-agent/pikku-command-public-agent.d.ts +1 -1
  304. package/dist/src/functions/wirings/auth/pikku-command-auth.d.ts +1 -1
  305. package/dist/src/functions/wirings/auth/serialize-auth-gen.js +16 -1
  306. package/dist/src/functions/wirings/auth/serialize-auth-types.d.ts +3 -1
  307. package/dist/src/functions/wirings/auth/serialize-auth-types.js +3 -1
  308. package/dist/src/functions/wirings/channels/pikku-channels.d.ts +1 -1
  309. package/dist/src/functions/wirings/channels/pikku-channels.js +1 -1
  310. package/dist/src/functions/wirings/channels/pikku-command-channel-types.d.ts +1 -1
  311. package/dist/src/functions/wirings/channels/pikku-command-channels-map.d.ts +1 -1
  312. package/dist/src/functions/wirings/channels/pikku-command-channels.d.ts +1 -1
  313. package/dist/src/functions/wirings/channels/pikku-command-channels.js +1 -1
  314. package/dist/src/functions/wirings/channels/serialize-typed-channel-map.js +10 -2
  315. package/dist/src/functions/wirings/cli/pikku-command-cli-entry.d.ts +1 -1
  316. package/dist/src/functions/wirings/cli/pikku-command-cli-entry.js +9 -4
  317. package/dist/src/functions/wirings/cli/pikku-command-cli-types.d.ts +1 -1
  318. package/dist/src/functions/wirings/cli/pikku-command-cli.d.ts +1 -1
  319. package/dist/src/functions/wirings/cli/pikku-command-cli.js +1 -1
  320. package/dist/src/functions/wirings/cli/serialize-channel-cli-client.js +32 -10
  321. package/dist/src/functions/wirings/cli/serialize-channel-cli.js +4 -4
  322. package/dist/src/functions/wirings/cli/serialize-cli-entrypoint-guard.d.ts +12 -0
  323. package/dist/src/functions/wirings/cli/serialize-cli-entrypoint-guard.js +28 -0
  324. package/dist/src/functions/wirings/cli/serialize-local-cli-bootstrap.js +4 -1
  325. package/dist/src/functions/wirings/console/pikku-command-console-functions.d.ts +1 -1
  326. package/dist/src/functions/wirings/console/pikku-command-node-types.d.ts +1 -1
  327. package/dist/src/functions/wirings/console/pikku-command-nodes-meta.d.ts +1 -1
  328. package/dist/src/functions/wirings/console/serialize-console-functions.js +1 -1
  329. package/dist/src/functions/wirings/credentials/pikku-command-credentials.d.ts +1 -1
  330. package/dist/src/functions/wirings/emails/pikku-command-emails.d.ts +1 -1
  331. package/dist/src/functions/wirings/functions/pikku-command-addon-types.d.ts +1 -1
  332. package/dist/src/functions/wirings/functions/pikku-command-function-types-split.d.ts +1 -1
  333. package/dist/src/functions/wirings/functions/pikku-command-function-types.d.ts +1 -1
  334. package/dist/src/functions/wirings/functions/pikku-command-functions.d.ts +1 -1
  335. package/dist/src/functions/wirings/functions/pikku-command-functions.js +1 -1
  336. package/dist/src/functions/wirings/functions/pikku-command-services.d.ts +1 -1
  337. package/dist/src/functions/wirings/functions/schemas.d.ts +1 -1
  338. package/dist/src/functions/wirings/functions/serialize-addon-types.js +1 -1
  339. package/dist/src/functions/wirings/functions/serialize-function-types.js +37 -9
  340. package/dist/src/functions/wirings/gateway/pikku-command-gateway.d.ts +1 -1
  341. package/dist/src/functions/wirings/graph/pikku-command-graph-wirings.d.ts +1 -1
  342. package/dist/src/functions/wirings/http/pikku-command-http-map.d.ts +1 -1
  343. package/dist/src/functions/wirings/http/pikku-command-http-routes.d.ts +1 -1
  344. package/dist/src/functions/wirings/http/pikku-command-http-routes.js +1 -1
  345. package/dist/src/functions/wirings/http/pikku-command-http-types.d.ts +1 -1
  346. package/dist/src/functions/wirings/http/pikku-command-openapi.d.ts +1 -1
  347. package/dist/src/functions/wirings/http/pikku-http-routes.d.ts +1 -1
  348. package/dist/src/functions/wirings/http/pikku-http-routes.js +1 -1
  349. package/dist/src/functions/wirings/mcp/pikku-command-mcp-json.d.ts +1 -1
  350. package/dist/src/functions/wirings/mcp/pikku-command-mcp-types.d.ts +1 -1
  351. package/dist/src/functions/wirings/mcp/pikku-command-mcp.d.ts +1 -1
  352. package/dist/src/functions/wirings/mcp/pikku-command-mcp.js +1 -1
  353. package/dist/src/functions/wirings/middleware/pikku-command-middleware.d.ts +1 -1
  354. package/dist/src/functions/wirings/package/pikku-command-package-types.d.ts +3 -3
  355. package/dist/src/functions/wirings/package/pikku-command-package.d.ts +1 -1
  356. package/dist/src/functions/wirings/package/serialize-package.js +1 -1
  357. package/dist/src/functions/wirings/permissions/pikku-command-permissions.d.ts +1 -1
  358. package/dist/src/functions/wirings/personas/personas-secrets-file.d.ts +8 -0
  359. package/dist/src/functions/wirings/personas/personas-secrets-file.js +9 -0
  360. package/dist/src/functions/wirings/personas/pikku-command-personas.d.ts +1 -1
  361. package/dist/src/functions/wirings/personas/pikku-command-personas.js +14 -0
  362. package/dist/src/functions/wirings/personas/serialize-personas-secrets.d.ts +16 -0
  363. package/dist/src/functions/wirings/personas/serialize-personas-secrets.js +34 -0
  364. package/dist/src/functions/wirings/queue/pikku-command-queue-map.d.ts +1 -1
  365. package/dist/src/functions/wirings/queue/pikku-command-queue-service.d.ts +1 -1
  366. package/dist/src/functions/wirings/queue/pikku-command-queue-types.d.ts +1 -1
  367. package/dist/src/functions/wirings/queue/pikku-command-queue.d.ts +1 -1
  368. package/dist/src/functions/wirings/queue/pikku-queue-map.d.ts +1 -1
  369. package/dist/src/functions/wirings/queue/pikku-queue.d.ts +1 -1
  370. package/dist/src/functions/wirings/queue/serialize-queue-map.js +2 -1
  371. package/dist/src/functions/wirings/queue/serialize-queue-wrapper.js +2 -1
  372. package/dist/src/functions/wirings/realtime/pikku-command-events-scaffold.d.ts +1 -1
  373. package/dist/src/functions/wirings/realtime/pikku-command-realtime.d.ts +1 -1
  374. package/dist/src/functions/wirings/roles/pikku-command-roles.d.ts +1 -1
  375. package/dist/src/functions/wirings/rpc/pikku-command-public-rpc.d.ts +1 -1
  376. package/dist/src/functions/wirings/rpc/pikku-command-react-query.d.ts +1 -1
  377. package/dist/src/functions/wirings/rpc/pikku-command-remote-rpc.d.ts +1 -1
  378. package/dist/src/functions/wirings/rpc/pikku-command-rpc-client.d.ts +1 -1
  379. package/dist/src/functions/wirings/rpc/pikku-command-rpc-map.d.ts +3 -3
  380. package/dist/src/functions/wirings/rpc/pikku-command-rpc.d.ts +1 -1
  381. package/dist/src/functions/wirings/rpc/pikku-command-rpc.js +1 -1
  382. package/dist/src/functions/wirings/scenarios/register-scenario-instrumentation.js +1 -1
  383. package/dist/src/functions/wirings/scenarios/serialize-scenario-meta.js +2 -2
  384. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler-types.d.ts +1 -1
  385. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler.d.ts +1 -1
  386. package/dist/src/functions/wirings/scopes/pikku-command-scopes.d.ts +1 -1
  387. package/dist/src/functions/wirings/secrets/pikku-command-secrets.d.ts +1 -1
  388. package/dist/src/functions/wirings/triggers/pikku-command-trigger-types.d.ts +1 -1
  389. package/dist/src/functions/wirings/triggers/pikku-command-trigger.d.ts +1 -1
  390. package/dist/src/functions/wirings/triggers/serialize-trigger-meta.js +2 -2
  391. package/dist/src/functions/wirings/user-admin/pikku-command-user-admin-functions.d.ts +1 -1
  392. package/dist/src/functions/wirings/variables/pikku-command-variables.d.ts +1 -1
  393. package/dist/src/functions/wirings/virtual-user/pikku-command-virtual-user-functions.d.ts +1 -0
  394. package/dist/src/functions/wirings/virtual-user/pikku-command-virtual-user-functions.js +42 -0
  395. package/dist/src/functions/wirings/virtual-user/serialize-virtual-user-functions.d.ts +28 -0
  396. package/dist/src/functions/wirings/virtual-user/serialize-virtual-user-functions.js +439 -0
  397. package/dist/src/functions/wirings/webhook/pikku-command-webhook.d.ts +1 -1
  398. package/dist/src/functions/wirings/workflow/pikku-command-workflow-routes.d.ts +1 -1
  399. package/dist/src/functions/wirings/workflow/pikku-command-workflow.d.ts +1 -1
  400. package/dist/src/functions/wirings/workflow/serialize-scenario-step-map.js +2 -2
  401. package/dist/src/functions/wirings/workflow/serialize-workflow-meta.js +2 -2
  402. package/dist/src/functions/wirings/workflow/serialize-workflow-routes.js +15 -32
  403. package/dist/src/functions/wirings/workflow/serialize-workflow-types.js +36 -23
  404. package/dist/src/functions/workflows/all.workflow.js +49 -16
  405. package/dist/src/server/bun-server-runner.d.ts +2 -2
  406. package/dist/src/server/bun-server-runner.js +5 -1
  407. package/dist/src/services/cli-logger.service.d.ts +28 -16
  408. package/dist/src/services/cli-logger.service.js +25 -16
  409. package/dist/src/services.d.ts +1 -1
  410. package/dist/src/services.js +8 -0
  411. package/dist/src/utils/file-import-path.js +9 -0
  412. package/dist/src/utils/pikku-cli-config.js +7 -0
  413. package/dist/src/utils/resolve-personas.d.ts +4 -9
  414. package/dist/src/utils/resolve-personas.js +4 -15
  415. package/dist/src/utils/serialize-meta-ts.js +1 -1
  416. package/dist/tsconfig.tsbuildinfo +1 -1
  417. package/package.json +13 -13
  418. package/dist/.pikku/schemas/schemas/BootstrapInput.schema.json +0 -1
  419. package/dist/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +0 -1
  420. package/dist/src/functions/commands/db-seed.d.ts +0 -1
  421. package/dist/src/functions/commands/db-seed.js +0 -24
  422. package/dist/src/functions/db/sqlite/seed.d.ts +0 -11
  423. package/dist/src/functions/db/sqlite/seed.js +0 -22
@@ -1 +1 @@
1
- export declare const pikkuMCPJSON: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
1
+ export declare const pikkuMCPJSON: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuMCPTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
1
+ export declare const pikkuMCPTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuMCP: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
1
+ export declare const pikkuMCP: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -87,7 +87,7 @@ export const pikkuMCP = pikkuSessionlessFunc({
87
87
  const importStatement = supportsImportAttributes
88
88
  ? `import metaData from '${jsonImportPath}' with { type: 'json' }`
89
89
  : `import metaData from '${jsonImportPath}'`;
90
- await writeFileInDir(logger, mcpWiringsMetaFile, `import { pikkuState } from '@pikku/core/internal'
90
+ await writeFileInDir(logger, mcpWiringsMetaFile, `import { pikkuState } from '@pikku/core/ecosystem'
91
91
  import type { MCPResourceMeta, MCPToolMeta, MCPPromptMeta } from '@pikku/core/mcp'
92
92
  ${importStatement}
93
93
  pikkuState(null, 'mcp', 'resourcesMeta', metaData.resourcesMeta as MCPResourceMeta)
@@ -1 +1 @@
1
- export declare const pikkuMiddleware: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
1
+ export declare const pikkuMiddleware: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1,3 +1,3 @@
1
- export declare const pikkuSecretDefinitionTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
2
- export declare const pikkuScopeDefinitionTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
3
- export declare const pikkuVariableDefinitionTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
1
+ export declare const pikkuSecretDefinitionTypes: import("#pikku").PikkuFunctionSessionlessConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices, unknown>, undefined, undefined>;
2
+ export declare const pikkuScopeDefinitionTypes: import("#pikku").PikkuFunctionSessionlessConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices, unknown>, undefined, undefined>;
3
+ export declare const pikkuVariableDefinitionTypes: import("#pikku").PikkuFunctionSessionlessConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices, unknown>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuPackage: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
1
+ export declare const pikkuPackage: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1,7 +1,7 @@
1
1
  import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
2
2
  export const serializePackageFactories = (outputPath, packageName, configFactory, singletonServicesFactory, wireServicesFactory, packageMappings = {}, credentialsMeta, requiredParentServices) => {
3
3
  const imports = [
4
- `import { pikkuState } from '@pikku/core/internal'`,
4
+ `import { pikkuState } from '@pikku/core/ecosystem'`,
5
5
  ];
6
6
  const factoryEntries = [];
7
7
  if (configFactory) {
@@ -1 +1 @@
1
- export declare const pikkuPermissions: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
1
+ export declare const pikkuPermissions: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Where the generated `SCENARIO_ACTOR_SECRET` declaration lives — beside the
3
+ * personas file, like `auth-secrets.gen.ts` sits beside the auth scaffold.
4
+ *
5
+ * Shared with the inspector's scaffold-file list: nothing imports this file, so
6
+ * it is unreachable through the import graph and has to be inspected explicitly.
7
+ */
8
+ export declare const personasSecretsFilePath: (personasFile: string) => string;
@@ -0,0 +1,9 @@
1
+ import { join, dirname } from 'node:path';
2
+ /**
3
+ * Where the generated `SCENARIO_ACTOR_SECRET` declaration lives — beside the
4
+ * personas file, like `auth-secrets.gen.ts` sits beside the auth scaffold.
5
+ *
6
+ * Shared with the inspector's scaffold-file list: nothing imports this file, so
7
+ * it is unreachable through the import graph and has to be inspected explicitly.
8
+ */
9
+ export const personasSecretsFilePath = (personasFile) => join(dirname(personasFile), 'pikku-personas-secrets.gen.ts');
@@ -2,6 +2,6 @@ export declare const pikkuPersonas: import("#pikku").PikkuFunctionConfig<{
2
2
  bootstrap?: boolean;
3
3
  }, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
4
4
  bootstrap?: boolean;
5
- }, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<{
5
+ }, void, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<{
6
6
  bootstrap?: boolean;
7
7
  }, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1,8 +1,12 @@
1
+ import { existsSync } from 'node:fs';
2
+ import { rm } from 'node:fs/promises';
1
3
  import { pikkuSessionlessFunc } from '#pikku';
2
4
  import { writeFileInDir } from '../../../utils/file-writer.js';
3
5
  import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
4
6
  import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
5
7
  import { serializePersonasTypes } from './serialize-personas-types.js';
8
+ import { serializePersonasSecrets } from './serialize-personas-secrets.js';
9
+ import { personasSecretsFilePath } from './personas-secrets-file.js';
6
10
  import { personaEnvironmentErrors, validateAndBuildPersonasMeta, } from '@pikku/core/persona';
7
11
  export const pikkuPersonas = pikkuSessionlessFunc({
8
12
  func: async ({ logger, config, getInspectorState }, data) => {
@@ -29,6 +33,16 @@ export const pikkuPersonas = pikkuSessionlessFunc({
29
33
  environmentNames: Object.keys(environments),
30
34
  });
31
35
  await writeFileInDir(logger, personasFile, content);
36
+ // The actor sign-in secret only means anything once someone is declared
37
+ // to sign in. Drop the file again when the last persona goes, so a stale
38
+ // declaration can't keep asking a deploy for a value nothing reads.
39
+ const secretsFile = personasSecretsFilePath(personasFile);
40
+ if (state.personas.definitions.length > 0) {
41
+ await writeFileInDir(logger, secretsFile, serializePersonasSecrets());
42
+ }
43
+ else if (existsSync(secretsFile)) {
44
+ await rm(secretsFile);
45
+ }
32
46
  if (personasMetaJsonFile) {
33
47
  const meta = validateAndBuildPersonasMeta(state.personas.definitions);
34
48
  await writeFileInDir(logger, personasMetaJsonFile, JSON.stringify(meta, null, 2));
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Generates the sibling secrets file for a project that declares personas.
3
+ *
4
+ * `SCENARIO_ACTOR_SECRET` is the platform's, not the application's: nothing in
5
+ * app code reads it. It is consumed by the scenario service when it signs an
6
+ * actor in, by `pikku scenario` / `pikku persona` / `pikku persona sync`, and by
7
+ * the Playwright provider. Declaring it here — rather than leaving every project
8
+ * to hand-write the same `defineSecret` — is the same reasoning that puts
9
+ * `BETTER_AUTH_SECRET` in the auth scaffold: a value the framework requires
10
+ * regardless of what the user wired should be collected by the platform, not
11
+ * discovered missing at the first sign-in.
12
+ *
13
+ * The schema is a named const because the inspector only accepts a variable
14
+ * reference for `schema`, never an inline expression.
15
+ */
16
+ export declare const serializePersonasSecrets: () => string;
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Generates the sibling secrets file for a project that declares personas.
3
+ *
4
+ * `SCENARIO_ACTOR_SECRET` is the platform's, not the application's: nothing in
5
+ * app code reads it. It is consumed by the scenario service when it signs an
6
+ * actor in, by `pikku scenario` / `pikku persona` / `pikku persona sync`, and by
7
+ * the Playwright provider. Declaring it here — rather than leaving every project
8
+ * to hand-write the same `defineSecret` — is the same reasoning that puts
9
+ * `BETTER_AUTH_SECRET` in the auth scaffold: a value the framework requires
10
+ * regardless of what the user wired should be collected by the platform, not
11
+ * discovered missing at the first sign-in.
12
+ *
13
+ * The schema is a named const because the inspector only accepts a variable
14
+ * reference for `schema`, never an inline expression.
15
+ */
16
+ export const serializePersonasSecrets = () => {
17
+ return `/**
18
+ * This file was generated by the @pikku/cli
19
+ */
20
+ import { defineSecret } from '@pikku/core/secret'
21
+ import { z } from 'zod'
22
+
23
+ export const ScenarioActorSecretSchema = z.string()
24
+
25
+ defineSecret({
26
+ name: 'scenarioActorSecret',
27
+ displayName: 'Scenario Actor Secret',
28
+ description:
29
+ 'Signing secret that lets scenarios and virtual users sign in as a declared persona',
30
+ secretId: 'SCENARIO_ACTOR_SECRET',
31
+ schema: ScenarioActorSecretSchema,
32
+ })
33
+ `;
34
+ };
@@ -1 +1 @@
1
- export declare const pikkuCommandQueueMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
1
+ export declare const pikkuCommandQueueMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuQueueService: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
1
+ export declare const pikkuQueueService: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuQueueTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
1
+ export declare const pikkuQueueTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuCommandQueue: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
1
+ export declare const pikkuCommandQueue: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuQueueMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
1
+ export declare const pikkuQueueMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuQueue: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
1
+ export declare const pikkuQueue: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -13,6 +13,7 @@ ${serializedImportMap}
13
13
  ${serializedCustomTypes}
14
14
 
15
15
  import type { QueueJob } from '@pikku/core/queue'
16
+ import type { Safe } from '@pikku/core'
16
17
 
17
18
  interface QueueHandler<I, O> {
18
19
  input: I;
@@ -23,7 +24,7 @@ ${serializedQueues}
23
24
 
24
25
  type QueueAdd = <Name extends keyof QueueMap>(
25
26
  name: Name,
26
- data: QueueMap[Name]['input'],
27
+ data: Safe<QueueMap[Name]['input']>,
27
28
  options?: {
28
29
  priority?: number
29
30
  delay?: number
@@ -1,6 +1,7 @@
1
1
  export const serializeQueueWrapper = (queueMapPath) => {
2
2
  return `
3
3
  import type { QueueService, QueueJob } from '@pikku/core/queue'
4
+ import type { Safe } from '@pikku/core'
4
5
  import type { QueueMap, TypedPikkuQueue } from '${queueMapPath}'
5
6
 
6
7
  export class PikkuQueue implements TypedPikkuQueue {
@@ -8,7 +9,7 @@ export class PikkuQueue implements TypedPikkuQueue {
8
9
 
9
10
  public async add<Name extends keyof QueueMap>(
10
11
  queueName: Name,
11
- data: QueueMap[Name]['input'],
12
+ data: Safe<QueueMap[Name]['input']>,
12
13
  options?: {
13
14
  priority?: number
14
15
  delay?: number
@@ -1 +1 @@
1
- export declare const pikkuEventsScaffold: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
1
+ export declare const pikkuEventsScaffold: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuRealtime: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
1
+ export declare const pikkuRealtime: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -2,6 +2,6 @@ export declare const pikkuRoles: import("#pikku").PikkuFunctionConfig<{
2
2
  bootstrap?: boolean;
3
3
  }, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
4
4
  bootstrap?: boolean;
5
- }, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<{
5
+ }, void, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<{
6
6
  bootstrap?: boolean;
7
7
  }, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuPublicRPC: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
1
+ export declare const pikkuPublicRPC: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuReactQuery: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
1
+ export declare const pikkuReactQuery: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuRemoteRPC: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
1
+ export declare const pikkuRemoteRPC: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuRPCClient: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
1
+ export declare const pikkuRPCClient: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1,7 +1,7 @@
1
- export declare const pikkuRPCInternalMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
2
- export declare const pikkuRPCExposedMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
1
+ export declare const pikkuRPCInternalMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
2
+ export declare const pikkuRPCExposedMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
3
3
  /**
4
4
  * The `remote: true` surface — what a `wireRemoteAddon` consumer imports.
5
5
  * Mirrors the exposed map but is fed from `rpc.remoteMeta`.
6
6
  */
7
- export declare const pikkuRPCRemoteMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
7
+ export declare const pikkuRPCRemoteMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1,2 +1,2 @@
1
1
  export declare function filterInternalRPCMeta(internalMeta: Record<string, string>, functionsMeta: Record<string, unknown>): Record<string, string>;
2
- export declare const pikkuRPC: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
2
+ export declare const pikkuRPC: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -32,7 +32,7 @@ export const pikkuRPC = pikkuSessionlessFunc({
32
32
  ? `import metaData from '${jsonImportPath}' with { type: 'json' }`
33
33
  : `import metaData from '${jsonImportPath}'`;
34
34
  const packageNameArg = config.addonName ? `'${config.addonName}'` : 'null';
35
- await writeFileInDir(logger, rpcInternalWiringMetaFile, `import { pikkuState } from '@pikku/core/internal'\n${importStatement}\npikkuState(${packageNameArg}, 'rpc', 'meta', metaData as Record<string, string>)`);
35
+ await writeFileInDir(logger, rpcInternalWiringMetaFile, `import { pikkuState } from '@pikku/core/ecosystem'\n${importStatement}\npikkuState(${packageNameArg}, 'rpc', 'meta', metaData as Record<string, string>)`);
36
36
  return true;
37
37
  }
38
38
  return false;
@@ -1,7 +1,7 @@
1
1
  import { readFile } from 'node:fs/promises';
2
2
  import { join } from 'node:path';
3
3
  import { addFunction } from '@pikku/core/function';
4
- import { pikkuState } from '@pikku/core/internal';
4
+ import { pikkuState } from '@pikku/core/ecosystem';
5
5
  import { getStubTracker, isTestRun, } from '@pikku/core/services';
6
6
  /**
7
7
  * The instrumentation `pikku scenario run` calls on the server under test:
@@ -23,7 +23,7 @@ export const serializeScenarioWorkflowMeta = (outputPath, metaDir, appMetaImport
23
23
  const metaEntries = sortedNames
24
24
  .map((name) => ` '${name}': ${sanitizeTypeName(name)}Meta,`)
25
25
  .join('\n');
26
- return `import { pikkuState } from '@pikku/core/internal'
26
+ return `import { pikkuState } from '@pikku/core/ecosystem'
27
27
  import type { WorkflowsRuntimeMeta } from '@pikku/core/workflow/types'
28
28
  import '${appMetaImportPath}'
29
29
  ${imports ? `\n${imports}\n` : ''}
@@ -44,7 +44,7 @@ export const serializeScenarioFunctionMeta = (jsonImportPath, appMetaImportPath,
44
44
  const importStatement = supportsImportAttributes
45
45
  ? `import metaData from '${jsonImportPath}' with { type: 'json' }`
46
46
  : `import metaData from '${jsonImportPath}'`;
47
- return `import { pikkuState } from '@pikku/core/internal'
47
+ return `import { pikkuState } from '@pikku/core/ecosystem'
48
48
  import type { FunctionsMeta } from '@pikku/core'
49
49
  import '${appMetaImportPath}'
50
50
  ${importStatement}
@@ -1 +1 @@
1
- export declare const pikkuSchedulerTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
1
+ export declare const pikkuSchedulerTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuScheduler: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
1
+ export declare const pikkuScheduler: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -2,6 +2,6 @@ export declare const pikkuScopes: import("#pikku").PikkuFunctionConfig<{
2
2
  bootstrap?: boolean;
3
3
  }, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
4
4
  bootstrap?: boolean;
5
- }, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<{
5
+ }, void, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<{
6
6
  bootstrap?: boolean;
7
7
  }, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuSecrets: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
1
+ export declare const pikkuSecrets: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -2,6 +2,6 @@ export declare const pikkuTriggerTypes: import("#pikku").PikkuFunctionConfig<{
2
2
  bootstrap?: boolean;
3
3
  }, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
4
4
  bootstrap?: boolean;
5
- }, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<{
5
+ }, void, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<{
6
6
  bootstrap?: boolean;
7
7
  }, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuTrigger: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
1
+ export declare const pikkuTrigger: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -6,7 +6,7 @@ export const serializeTriggerMetaTS = (triggerMeta, jsonImportPath, supportsImpo
6
6
  ? `import metaData from '${jsonImportPath}' with { type: 'json' }`
7
7
  : `import metaData from '${jsonImportPath}'`;
8
8
  const serializedOutput = [];
9
- serializedOutput.push("import { pikkuState } from '@pikku/core/internal'");
9
+ serializedOutput.push("import { pikkuState } from '@pikku/core/ecosystem'");
10
10
  serializedOutput.push("import { TriggerMeta } from '@pikku/core/trigger'");
11
11
  serializedOutput.push(importStatement);
12
12
  serializedOutput.push('');
@@ -26,7 +26,7 @@ export const serializeTriggerSourceMetaTS = (sourceMeta, jsonImportPath, support
26
26
  ? `import metaData from '${jsonImportPath}' with { type: 'json' }`
27
27
  : `import metaData from '${jsonImportPath}'`;
28
28
  const serializedOutput = [];
29
- serializedOutput.push("import { pikkuState } from '@pikku/core/internal'");
29
+ serializedOutput.push("import { pikkuState } from '@pikku/core/ecosystem'");
30
30
  serializedOutput.push("import { TriggerSourceMeta } from '@pikku/core/trigger'");
31
31
  serializedOutput.push(importStatement);
32
32
  serializedOutput.push('');
@@ -1 +1 @@
1
- export declare const pikkuUserAdminFunctions: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
1
+ export declare const pikkuUserAdminFunctions: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -1 +1 @@
1
- export declare const pikkuVariables: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
1
+ export declare const pikkuVariables: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -0,0 +1 @@
1
+ export declare const pikkuVirtualUserFunctions: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
@@ -0,0 +1,42 @@
1
+ import { pikkuSessionlessFunc } from '#pikku';
2
+ import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
3
+ import { writeFileInDir } from '../../../utils/file-writer.js';
4
+ import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
5
+ import { serializeVirtualUserFunctions } from './serialize-virtual-user-functions.js';
6
+ import { resolveScaffoldFeature } from '../../../utils/resolve-scaffold-feature.js';
7
+ export const pikkuVirtualUserFunctions = pikkuSessionlessFunc({
8
+ func: async ({ logger, config, getInspectorState }) => {
9
+ if (!config.scaffold?.virtualUser ||
10
+ !config.virtualUserFunctionsFile ||
11
+ !config.virtualUserSchemasFile) {
12
+ logger.debug({
13
+ message: 'Skipping virtual user scaffold (set scaffold.virtualUser in pikku.config.json to enable).',
14
+ type: 'skip',
15
+ });
16
+ return false;
17
+ }
18
+ const state = await getInspectorState();
19
+ // A virtual user IS a persona — the generated functions sign in as one and
20
+ // run as them. With none declared the scaffold would emit RPCs whose only
21
+ // possible answer is "unknown persona". Fail the codegen instead of
22
+ // shipping that.
23
+ if (Object.keys(state.personas?.definitions ?? {}).length === 0) {
24
+ throw new Error(`"scaffold.virtualUser" is enabled but no personas are declared.\n` +
25
+ `A virtual user runs AS a persona, so there is nobody to run.\n` +
26
+ `Fix: declare one with definePersonas({ ... }), or remove ` +
27
+ `"scaffold.virtualUser" from pikku.config.json.`);
28
+ }
29
+ const pathToPikkuTypes = getFileImportRelativePath(config.virtualUserFunctionsFile, config.typesDeclarationFile, config.packageMappings);
30
+ const pathToPersonas = getFileImportRelativePath(config.virtualUserFunctionsFile, config.personasWiringFile, config.packageMappings);
31
+ const { schemas, functions } = serializeVirtualUserFunctions(pathToPikkuTypes, pathToPersonas, resolveScaffoldFeature('virtualUser', config.scaffold.virtualUser).auth);
32
+ await writeFileInDir(logger, config.virtualUserSchemasFile, schemas);
33
+ await writeFileInDir(logger, config.virtualUserFunctionsFile, functions);
34
+ return true;
35
+ },
36
+ middleware: [
37
+ logCommandInfoAndTime({
38
+ commandStart: 'Generating virtual user functions',
39
+ commandEnd: 'Generated virtual user functions',
40
+ }),
41
+ ],
42
+ });
@@ -0,0 +1,28 @@
1
+ export interface VirtualUserGenOutput {
2
+ schemas: string;
3
+ functions: string;
4
+ }
5
+ /**
6
+ * Generate the virtual-user functions into the project scaffold: start a run,
7
+ * read one back, and the sessionless function that does the work.
8
+ *
9
+ * Scaffolded rather than shipped in an addon because the whole feature is
10
+ * derived from what the project already generates — its personas, its function
11
+ * meta, its scenarios — so there is nothing to configure and nothing to author.
12
+ * `pikku persona run` does the same thing from a terminal; this is the same run
13
+ * started over RPC, from CI or from a console, with the result kept.
14
+ *
15
+ * A virtual user is NOT a workflow and NOT a queued job. It explores, so no two
16
+ * attempts take the same steps and there is nothing to replay; and the run
17
+ * record already carries the progress a queue would only be holding on the way
18
+ * here. So `runVirtualUser` writes the record, kicks the run off without
19
+ * awaiting it, and returns the id. The one cost is stated on the record: a
20
+ * restart mid-run strands it at `running`.
21
+ *
22
+ * Emitted as two files. The schemas are zod, and the inspector reads a zod
23
+ * schema by importing the module that declares it — which it cannot do for the
24
+ * functions file, whose relative pikku-types import per-unit deploy codegen
25
+ * rewrites. Keeping the schemas in a sibling module that imports nothing but
26
+ * zod sidesteps that entirely.
27
+ */
28
+ export declare const serializeVirtualUserFunctions: (pathToPikkuTypes: string, pathToPersonas: string, requireAuth?: boolean) => VirtualUserGenOutput;