@pikku/cli 0.12.118 → 0.12.119

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 (247) hide show
  1. package/CHANGELOG.md +172 -0
  2. package/console-app/assets/{abnfDiagram-N423BO3Z-WNIAg_Oa.js → abnfDiagram-N423BO3Z-CiK5F2ml.js} +1 -1
  3. package/console-app/assets/architecture-TIHT7OUA-FMO1RByN.js +1 -0
  4. package/console-app/assets/{architectureDiagram-T3A2C74G-DM698mgf.js → architectureDiagram-T3A2C74G-g4Elcs_0.js} +1 -1
  5. package/console-app/assets/{blockDiagram-VBNYF7ZC-DPfy9K5S.js → blockDiagram-VBNYF7ZC-CI6muc3M.js} +1 -1
  6. package/console-app/assets/{c4Diagram-5PPSVZJV-DhLbbBbX.js → c4Diagram-5PPSVZJV-CjzL9yGp.js} +1 -1
  7. package/console-app/assets/channel-Dp8A5NJg.js +1 -0
  8. package/console-app/assets/{chunk-2GRJ4B5K-C1RQ1gvs.js → chunk-2GRJ4B5K-C68TKOLb.js} +1 -1
  9. package/console-app/assets/{chunk-4I5QYGJK-BkzSdNc_.js → chunk-4I5QYGJK-D_DINIPO.js} +1 -1
  10. package/console-app/assets/{chunk-5RXB4S5H-DZpBpdcU.js → chunk-5RXB4S5H-D8mEuiea.js} +1 -1
  11. package/console-app/assets/{chunk-6Q2QTUOP-mZObxdld.js → chunk-6Q2QTUOP-CVNqLnb8.js} +1 -1
  12. package/console-app/assets/{chunk-7Z6QIM7H-C0HbxZEa.js → chunk-7Z6QIM7H-Bnih6HyS.js} +1 -1
  13. package/console-app/assets/{chunk-GF5L2VYU-DXPVwWqW.js → chunk-GF5L2VYU-C5efrbFt.js} +1 -1
  14. package/console-app/assets/{chunk-I66GZJ75-pVpq9ckD.js → chunk-I66GZJ75-dckv50K3.js} +1 -1
  15. package/console-app/assets/{chunk-JQJVKLGR-DJQ8K4wK.js → chunk-JQJVKLGR-HirBo6LQ.js} +1 -1
  16. package/console-app/assets/{chunk-KBJHAD2P-B8XuxRCO.js → chunk-KBJHAD2P-lknhmPj0.js} +1 -1
  17. package/console-app/assets/{chunk-NSK5VX7P-cYzQU4bD.js → chunk-NSK5VX7P-tGAl7zxF.js} +1 -1
  18. package/console-app/assets/{chunk-QR6OTTB3-CNoTFsqn.js → chunk-QR6OTTB3-BlSKCrEq.js} +1 -1
  19. package/console-app/assets/{chunk-RYQCIY6F-DoKRUO_N.js → chunk-RYQCIY6F-CwQmwEV-.js} +1 -1
  20. package/console-app/assets/{chunk-UBXNYLIW-BqcIoUpU.js → chunk-UBXNYLIW-D1Dn6ZK0.js} +1 -1
  21. package/console-app/assets/{chunk-W5SLKNZC-p0Qalbjj.js → chunk-W5SLKNZC-DOkZHhST.js} +1 -1
  22. package/console-app/assets/{chunk-WRU74C26-DUMn96Dr.js → chunk-WRU74C26-CB4orIKm.js} +1 -1
  23. package/console-app/assets/chunk-XXDRQBXY-BMybY6E-.js +1 -0
  24. package/console-app/assets/classDiagram-JCYQIIEL-C-K-UAUR.js +1 -0
  25. package/console-app/assets/classDiagram-v2-OCEON4UE-C-K-UAUR.js +1 -0
  26. package/console-app/assets/{cose-bilkent-JH36ORCC-BCh3BlPI.js → cose-bilkent-JH36ORCC-stBhaqpU.js} +1 -1
  27. package/console-app/assets/{cynefin-VYW2F7L2-ZfghUZsD.js → cynefin-VYW2F7L2-Bb1nmKWZ.js} +1 -1
  28. package/console-app/assets/{cynefinDiagram-MW4NZA55-DcV3QXCe.js → cynefinDiagram-MW4NZA55-Bp8fMJi-.js} +1 -1
  29. package/console-app/assets/{dagre-BPFWXLBN.js → dagre-DshmzimC.js} +1 -1
  30. package/console-app/assets/{dagre-VZM6K2ZE-DETshBO-.js → dagre-VZM6K2ZE-DIl1klf5.js} +1 -1
  31. package/console-app/assets/{diagram-7IWD3JNH-CsLX3P2o.js → diagram-7IWD3JNH-DdkSOxKT.js} +1 -1
  32. package/console-app/assets/{diagram-B4RE2ZJO-o2zcxm5S.js → diagram-B4RE2ZJO-9Dj9O4L8.js} +1 -1
  33. package/console-app/assets/{diagram-LBJQPF4R-BD2zKU21.js → diagram-LBJQPF4R-CxBb73tU.js} +1 -1
  34. package/console-app/assets/{diagram-Q27KOJAE-DHaacyna.js → diagram-Q27KOJAE-CPpUmnvb.js} +1 -1
  35. package/console-app/assets/{diagram-UB23O5K3-pSLCMUyV.js → diagram-UB23O5K3-7wV_Db6W.js} +1 -1
  36. package/console-app/assets/{ebnfDiagram-BXEA7PRR-BDzawX3O.js → ebnfDiagram-BXEA7PRR-Cxzbf8pk.js} +1 -1
  37. package/console-app/assets/{erDiagram-JOGREHBK-CyYnPmbN.js → erDiagram-JOGREHBK-BBPLq83P.js} +1 -1
  38. package/console-app/assets/eventmodeling-45OFAUF4-CLUnygIv.js +1 -0
  39. package/console-app/assets/flowDiagram-UKHOOZJN-D3mDcWWx.js +1 -0
  40. package/console-app/assets/{ganttDiagram-PKOTCBZU-3fhCBbPA.js → ganttDiagram-PKOTCBZU-Erh7WK4H.js} +1 -1
  41. package/console-app/assets/{gitGraph-TEB2WS4Q-CdLRkVux.js → gitGraph-TEB2WS4Q-o5FLRF57.js} +1 -1
  42. package/console-app/assets/{gitGraphDiagram-DS77QQ5N-CC1epdKw.js → gitGraphDiagram-DS77QQ5N-BFbsaenX.js} +1 -1
  43. package/console-app/assets/{index-GruDnAhJ.css → index-Mq-YbqNO.css} +1 -1
  44. package/console-app/assets/{index-BRmokG9t.js → index-w2ZoJr8X.js} +178 -178
  45. package/console-app/assets/{info-DKCQHKI2-BJs8WkzC.js → info-DKCQHKI2-Dkcrdr1w.js} +1 -1
  46. package/console-app/assets/{infoDiagram-6WML65LV-uoOwoIeI.js → infoDiagram-6WML65LV-iZVC5Wzy.js} +1 -1
  47. package/console-app/assets/{ishikawaDiagram-WSZJBQD7-vCUJhwTi.js → ishikawaDiagram-WSZJBQD7-BjV8LLeA.js} +1 -1
  48. package/console-app/assets/{journeyDiagram-NVQOT4AX-D2QcIlLG.js → journeyDiagram-NVQOT4AX-D3rpLjYi.js} +1 -1
  49. package/console-app/assets/{kanban-definition-27J2QSJJ-JwwKowmR.js → kanban-definition-27J2QSJJ-Dds5TFyv.js} +1 -1
  50. package/console-app/assets/{line-h2oRreYF.js → line-D1rUAT18.js} +1 -1
  51. package/console-app/assets/{linear-Dz002X_a.js → linear-fQ_6Sc79.js} +1 -1
  52. package/console-app/assets/{mermaid-parser.core-DTgmT0AA.js → mermaid-parser.core-B9Q-4IXF.js} +3 -3
  53. package/console-app/assets/{mermaid.core-1jSEDr-j.js → mermaid.core-bPhADShw.js} +4 -4
  54. package/console-app/assets/{mindmap-definition-FAOFIHXS-C3Txxhj4.js → mindmap-definition-FAOFIHXS-CULlU6Fy.js} +1 -1
  55. package/console-app/assets/{packet-7NZHBO7P-BGG7zIK2.js → packet-7NZHBO7P-DpwzoQpc.js} +1 -1
  56. package/console-app/assets/{pegDiagram-VL7TDLO6--g1r_rov.js → pegDiagram-VL7TDLO6-B9fKKc4F.js} +1 -1
  57. package/console-app/assets/{pie-RZYD4A2V-C5OepMH7.js → pie-RZYD4A2V-DkXpqWAI.js} +1 -1
  58. package/console-app/assets/{pieDiagram-7S7Q4E2Y-DGD_LzGm.js → pieDiagram-7S7Q4E2Y-Bcpn2rUM.js} +1 -1
  59. package/console-app/assets/{quadrantDiagram-CIZ2JOQS-CyBQQlD2.js → quadrantDiagram-CIZ2JOQS-Bd5wWFj_.js} +1 -1
  60. package/console-app/assets/{radar-I7S5WNFK-CaBOAO95.js → radar-I7S5WNFK-ylw-u3HI.js} +1 -1
  61. package/console-app/assets/{railroad-3IZDKUUU-2aTWN4Pw.js → railroad-3IZDKUUU-D4LMucL-.js} +1 -1
  62. package/console-app/assets/railroad-abnf-AHOZXSZD-CRTVzK1g.js +1 -0
  63. package/console-app/assets/railroad-ebnf-EBAXGLYW-CB13ugAF.js +1 -0
  64. package/console-app/assets/railroad-peg-LSFZ7HO6-AN8zyQYp.js +1 -0
  65. package/console-app/assets/{railroadDiagram-AXF67PYL-3Nr0rlTp.js → railroadDiagram-AXF67PYL-CZukQql9.js} +1 -1
  66. package/console-app/assets/{requirementDiagram-LRYGKXZP-BN7sEwSa.js → requirementDiagram-LRYGKXZP-Ou4nRENK.js} +1 -1
  67. package/console-app/assets/{sankeyDiagram-W5VNT64P-CXZR46wO.js → sankeyDiagram-W5VNT64P-BKdG-c_o.js} +1 -1
  68. package/console-app/assets/{sequenceDiagram-SI44F4Z6-DNtmdJ4U.js → sequenceDiagram-SI44F4Z6-Dc7d5obe.js} +1 -1
  69. package/console-app/assets/{src-x1E3pJJ-.js → src-BFb2oeKx.js} +1 -1
  70. package/console-app/assets/{stateDiagram-OKZ733FA-B_GyYdl_.js → stateDiagram-OKZ733FA-BA9fuN7b.js} +1 -1
  71. package/console-app/assets/stateDiagram-v2-UEYNNEHI-D13a6mUd.js +1 -0
  72. package/console-app/assets/{swimlanes-SLNWSIFB-D4N7VdF7.js → swimlanes-SLNWSIFB-l-ETgM83.js} +1 -1
  73. package/console-app/assets/swimlanesDiagram-ULZ7WXOC-BsC-B2Z9.js +8 -0
  74. package/console-app/assets/{timeline-definition-Z64GVDOM-DU5rsOWQ.js → timeline-definition-Z64GVDOM-Uj_ByeVr.js} +1 -1
  75. package/console-app/assets/{treeView-QDETBFTQ-DaKM_9sB.js → treeView-QDETBFTQ-BvFRkVGY.js} +1 -1
  76. package/console-app/assets/{treemap-6X3UGDF4-BabsKtZY.js → treemap-6X3UGDF4-BV5T7Dw9.js} +1 -1
  77. package/console-app/assets/{vennDiagram-T6HMQDX7-Dniftpq0.js → vennDiagram-T6HMQDX7-DAFU8gAo.js} +1 -1
  78. package/console-app/assets/{wardley-OPB4EBWU-BWffQNys.js → wardley-OPB4EBWU-MLNuhuiA.js} +1 -1
  79. package/console-app/assets/{wardleyDiagram-T6FBY63Y-CQ74fVdn.js → wardleyDiagram-T6FBY63Y-B1lCTfi1.js} +1 -1
  80. package/console-app/assets/{xychartDiagram-ELKLHX3M-D-XxbGIL.js → xychartDiagram-ELKLHX3M-Bw3zhuWc.js} +1 -1
  81. package/console-app/index.html +2 -2
  82. package/dist/.pikku/addon/index.d.ts +1 -1
  83. package/dist/.pikku/addon/index.js +1 -1
  84. package/dist/.pikku/addon/pikku-addon-types.gen.d.ts +1 -1
  85. package/dist/.pikku/addon/pikku-addon-types.gen.js +1 -1
  86. package/dist/.pikku/agent/index.d.ts +1 -1
  87. package/dist/.pikku/agent/index.js +1 -1
  88. package/dist/.pikku/agent/pikku-agent-types.gen.d.ts +1 -1
  89. package/dist/.pikku/agent/pikku-model-aliases.gen.js +1 -1
  90. package/dist/.pikku/auth/index.d.ts +1 -1
  91. package/dist/.pikku/auth/index.js +1 -1
  92. package/dist/.pikku/auth/pikku-auth-types.gen.d.ts +1 -1
  93. package/dist/.pikku/auth/pikku-auth-types.gen.js +1 -1
  94. package/dist/.pikku/channel/index.d.ts +1 -1
  95. package/dist/.pikku/channel/index.js +1 -1
  96. package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +1 -1
  97. package/dist/.pikku/channel/pikku-channel-types.gen.js +1 -1
  98. package/dist/.pikku/cli/index.d.ts +1 -1
  99. package/dist/.pikku/cli/index.js +1 -1
  100. package/dist/.pikku/cli/pikku-cli-channel.js +1 -1
  101. package/dist/.pikku/cli/pikku-cli-client.gen.d.ts +1 -1
  102. package/dist/.pikku/cli/pikku-cli-client.gen.js +1 -1
  103. package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.d.ts +1 -1
  104. package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.js +1 -1
  105. package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +1 -1
  106. package/dist/.pikku/cli/pikku-cli-types.gen.js +1 -1
  107. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +1 -1
  108. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.json +2 -9
  109. package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +1 -1
  110. package/dist/.pikku/cli/pikku-cli-wirings.gen.js +1 -1
  111. package/dist/.pikku/cli/pikku-cli.gen.d.ts +1 -1
  112. package/dist/.pikku/cli/pikku-cli.gen.js +1 -1
  113. package/dist/.pikku/error/index.d.ts +1 -1
  114. package/dist/.pikku/error/index.js +1 -1
  115. package/dist/.pikku/error/pikku-error-types.gen.d.ts +1 -1
  116. package/dist/.pikku/error/pikku-error-types.gen.js +1 -1
  117. package/dist/.pikku/function/index.d.ts +1 -1
  118. package/dist/.pikku/function/index.js +1 -1
  119. package/dist/.pikku/function/pikku-function-types.gen.d.ts +1 -1
  120. package/dist/.pikku/function/pikku-function-types.gen.js +1 -1
  121. package/dist/.pikku/function/pikku-functions-meta.gen.js +1 -1
  122. package/dist/.pikku/function/pikku-functions-meta.gen.json +8 -6
  123. package/dist/.pikku/function/pikku-functions.gen.js +1 -3
  124. package/dist/.pikku/gateway/index.d.ts +1 -1
  125. package/dist/.pikku/gateway/index.js +1 -1
  126. package/dist/.pikku/gateway/pikku-gateway-types.gen.d.ts +1 -1
  127. package/dist/.pikku/gateway/pikku-gateway-types.gen.js +1 -1
  128. package/dist/.pikku/http/index.d.ts +1 -1
  129. package/dist/.pikku/http/index.js +1 -1
  130. package/dist/.pikku/http/pikku-http-types.gen.d.ts +1 -1
  131. package/dist/.pikku/http/pikku-http-types.gen.js +1 -1
  132. package/dist/.pikku/mcp/index.d.ts +1 -1
  133. package/dist/.pikku/mcp/index.js +1 -1
  134. package/dist/.pikku/mcp/pikku-mcp-types.gen.d.ts +1 -1
  135. package/dist/.pikku/mcp/pikku-mcp-types.gen.js +1 -1
  136. package/dist/.pikku/middleware/index.d.ts +1 -1
  137. package/dist/.pikku/middleware/index.js +1 -1
  138. package/dist/.pikku/middleware/pikku-middleware-types.gen.d.ts +1 -1
  139. package/dist/.pikku/middleware/pikku-middleware-types.gen.js +1 -1
  140. package/dist/.pikku/pikku-bootstrap-scenarios.gen.d.ts +1 -1
  141. package/dist/.pikku/pikku-bootstrap-scenarios.gen.js +1 -1
  142. package/dist/.pikku/pikku-bootstrap.gen.d.ts +1 -1
  143. package/dist/.pikku/pikku-bootstrap.gen.js +1 -1
  144. package/dist/.pikku/pikku-services.gen.d.ts +1 -1
  145. package/dist/.pikku/queue/index.d.ts +1 -1
  146. package/dist/.pikku/queue/index.js +1 -1
  147. package/dist/.pikku/queue/pikku-queue-types.gen.d.ts +1 -1
  148. package/dist/.pikku/queue/pikku-queue-types.gen.js +1 -1
  149. package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.js +1 -1
  150. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.d.ts +1 -1
  151. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.js +1 -1
  152. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +1 -1
  153. package/dist/.pikku/scenarios/index.d.ts +1 -1
  154. package/dist/.pikku/scenarios/index.js +1 -1
  155. package/dist/.pikku/scenarios/pikku-personas.gen.d.ts +11 -0
  156. package/dist/.pikku/scenarios/pikku-personas.gen.js +12 -1
  157. package/dist/.pikku/scenarios/pikku-scenario-functions-meta.gen.js +1 -1
  158. package/dist/.pikku/scenarios/pikku-scenario-functions.gen.d.ts +1 -1
  159. package/dist/.pikku/scenarios/pikku-scenario-types.gen.d.ts +1 -1
  160. package/dist/.pikku/scenarios/pikku-scenario-wirings-meta.gen.js +1 -1
  161. package/dist/.pikku/scenarios/pikku-scenario-wirings.gen.d.ts +1 -1
  162. package/dist/.pikku/scenarios/schemas/register.gen.d.ts +1 -1
  163. package/dist/.pikku/scenarios/schemas/register.gen.js +1 -1
  164. package/dist/.pikku/scheduler/index.d.ts +1 -1
  165. package/dist/.pikku/scheduler/index.js +1 -1
  166. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +1 -1
  167. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +1 -1
  168. package/dist/.pikku/schemas/register.gen.js +1 -1
  169. package/dist/.pikku/schemas/schemas/PersonaSyncInput.schema.json +1 -1
  170. package/dist/.pikku/scopes/index.d.ts +1 -1
  171. package/dist/.pikku/scopes/index.js +1 -1
  172. package/dist/.pikku/scopes/pikku-personas.gen.js +1 -1
  173. package/dist/.pikku/scopes/pikku-roles.gen.d.ts +1 -1
  174. package/dist/.pikku/scopes/pikku-scope-types.gen.d.ts +1 -1
  175. package/dist/.pikku/scopes/pikku-scope-types.gen.js +1 -1
  176. package/dist/.pikku/scopes/pikku-scopes.gen.d.ts +1 -1
  177. package/dist/.pikku/secrets/index.d.ts +1 -1
  178. package/dist/.pikku/secrets/index.js +1 -1
  179. package/dist/.pikku/secrets/pikku-secret-types.gen.d.ts +1 -1
  180. package/dist/.pikku/secrets/pikku-secret-types.gen.js +1 -1
  181. package/dist/.pikku/secrets/pikku-secrets.gen.d.ts +1 -1
  182. package/dist/.pikku/secrets/pikku-secrets.gen.js +1 -1
  183. package/dist/.pikku/services/pikku-meta-service.gen.d.ts +1 -1
  184. package/dist/.pikku/services/pikku-meta-service.gen.js +1 -1
  185. package/dist/.pikku/setup/index.d.ts +1 -1
  186. package/dist/.pikku/setup/index.js +1 -1
  187. package/dist/.pikku/setup/pikku-setup-types.gen.d.ts +1 -1
  188. package/dist/.pikku/setup/pikku-setup-types.gen.js +1 -1
  189. package/dist/.pikku/trigger/index.d.ts +1 -1
  190. package/dist/.pikku/trigger/index.js +1 -1
  191. package/dist/.pikku/trigger/pikku-trigger-types.gen.d.ts +1 -1
  192. package/dist/.pikku/trigger/pikku-trigger-types.gen.js +1 -1
  193. package/dist/.pikku/variables/index.d.ts +1 -1
  194. package/dist/.pikku/variables/index.js +1 -1
  195. package/dist/.pikku/variables/pikku-variable-types.gen.d.ts +1 -1
  196. package/dist/.pikku/variables/pikku-variable-types.gen.js +1 -1
  197. package/dist/.pikku/variables/pikku-variables.gen.d.ts +1 -1
  198. package/dist/.pikku/variables/pikku-variables.gen.js +1 -1
  199. package/dist/.pikku/workflow/index.d.ts +1 -1
  200. package/dist/.pikku/workflow/index.js +1 -1
  201. package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +1 -1
  202. package/dist/.pikku/workflow/pikku-workflow-types.gen.js +1 -1
  203. package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +1 -1
  204. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +1 -1
  205. package/dist/bin/pikku-bin.mjs +2 -2
  206. package/dist/src/cli.wiring.js +1 -9
  207. package/dist/src/fabric/lib/git.js +31 -1
  208. package/dist/src/functions/commands/dev.js +2 -0
  209. package/dist/src/functions/commands/persona-sync.d.ts +14 -22
  210. package/dist/src/functions/commands/persona-sync.js +29 -107
  211. package/dist/src/functions/commands/serve.js +2 -0
  212. package/dist/src/functions/validate/auth-plugin-checks.d.ts +16 -0
  213. package/dist/src/functions/validate/auth-plugin-checks.js +165 -0
  214. package/dist/src/functions/validate/persona-checks.js +1 -1
  215. package/dist/src/functions/validate/shared-checks.js +12 -0
  216. package/dist/src/functions/validate/websocket-deps-checks.d.ts +30 -0
  217. package/dist/src/functions/validate/websocket-deps-checks.js +42 -0
  218. package/dist/src/functions/wirings/personas/serialize-personas-secrets.d.ts +1 -1
  219. package/dist/src/functions/wirings/personas/serialize-personas-secrets.js +1 -1
  220. package/dist/src/functions/wirings/scopes/pikku-command-scopes.d.ts +10 -0
  221. package/dist/src/functions/wirings/scopes/pikku-command-scopes.js +20 -3
  222. package/dist/src/functions/wirings/workflow/pikku-command-workflow.js +1 -1
  223. package/dist/src/functions/wirings/workflow/serialize-personas.d.ts +2 -1
  224. package/dist/src/functions/wirings/workflow/serialize-personas.js +20 -1
  225. package/dist/src/server/actor-sign-in.d.ts +5 -0
  226. package/dist/src/server/actor-sign-in.js +27 -0
  227. package/dist/src/server/node-server-runner.d.ts +11 -0
  228. package/dist/src/server/node-server-runner.js +33 -8
  229. package/dist/src/services.js +3 -1
  230. package/dist/src/utils/resolve-from-project.d.ts +29 -0
  231. package/dist/src/utils/resolve-from-project.js +45 -0
  232. package/dist/tsconfig.tsbuildinfo +1 -1
  233. package/package.json +18 -10
  234. package/snippets.json +1 -1
  235. package/surface.json +2 -2
  236. package/console-app/assets/architecture-TIHT7OUA-CIT-Nug2.js +0 -1
  237. package/console-app/assets/channel-DQC6cL1c.js +0 -1
  238. package/console-app/assets/chunk-XXDRQBXY-Dgz5VbWO.js +0 -1
  239. package/console-app/assets/classDiagram-JCYQIIEL-1ASFocNV.js +0 -1
  240. package/console-app/assets/classDiagram-v2-OCEON4UE-1ASFocNV.js +0 -1
  241. package/console-app/assets/eventmodeling-45OFAUF4-BYJ0A5k-.js +0 -1
  242. package/console-app/assets/flowDiagram-UKHOOZJN-CVn87uiP.js +0 -1
  243. package/console-app/assets/railroad-abnf-AHOZXSZD-TU7k5gB_.js +0 -1
  244. package/console-app/assets/railroad-ebnf-EBAXGLYW-DbArPBkM.js +0 -1
  245. package/console-app/assets/railroad-peg-LSFZ7HO6-TzB93z4K.js +0 -1
  246. package/console-app/assets/stateDiagram-v2-UEYNNEHI-D7V_HITc.js +0 -1
  247. package/console-app/assets/swimlanesDiagram-ULZ7WXOC-C4XcIHKT.js +0 -8
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.118
2
+ * This file was generated by @pikku/cli@0.12.119
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/setup` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.118
2
+ * This file was generated by @pikku/cli@0.12.119
3
3
  */
4
4
  /**
5
5
  * Config and service factory definitions, declared once per application
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.118
2
+ * This file was generated by @pikku/cli@0.12.119
3
3
  */
4
4
  /**
5
5
  * Config and service factory definitions, declared once per application
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.118
2
+ * This file was generated by @pikku/cli@0.12.119
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/trigger` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.118
2
+ * This file was generated by @pikku/cli@0.12.119
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/trigger` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.118
2
+ * This file was generated by @pikku/cli@0.12.119
3
3
  */
4
4
  /**
5
5
  * Trigger-specific type definitions for tree-shaking optimization
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.118
2
+ * This file was generated by @pikku/cli@0.12.119
3
3
  */
4
4
  /**
5
5
  * Trigger-specific type definitions for tree-shaking optimization
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.118
2
+ * This file was generated by @pikku/cli@0.12.119
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/variables` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.118
2
+ * This file was generated by @pikku/cli@0.12.119
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/variables` resolves here.
@@ -1,4 +1,4 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.118
2
+ * This file was generated by @pikku/cli@0.12.119
3
3
  */
4
4
  export { defineVariable } from '@pikku/core/variable';
@@ -1,4 +1,4 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.118
2
+ * This file was generated by @pikku/cli@0.12.119
3
3
  */
4
4
  export { defineVariable } from '@pikku/core/variable';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.118
2
+ * This file was generated by @pikku/cli@0.12.119
3
3
  */
4
4
  import { TypedVariablesService as CoreTypedVariablesService } from '@pikku/core/services';
5
5
  import type { VariablesService } from '@pikku/core/services';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.118
2
+ * This file was generated by @pikku/cli@0.12.119
3
3
  */
4
4
  import { TypedVariablesService as CoreTypedVariablesService, } from '@pikku/core/services';
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.118
2
+ * This file was generated by @pikku/cli@0.12.119
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/workflow` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.118
2
+ * This file was generated by @pikku/cli@0.12.119
3
3
  */
4
4
  /**
5
5
  * Subpath entry — `#pikku/workflow` resolves here.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.118
2
+ * This file was generated by @pikku/cli@0.12.119
3
3
  */
4
4
  import { WorkflowCancelledException } from '@pikku/core/workflow';
5
5
  import type { PikkuWorkflowGraphConfig, PikkuWorkflowGraphResult } from '@pikku/core/workflow';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.118
2
+ * This file was generated by @pikku/cli@0.12.119
3
3
  */
4
4
  import { WorkflowCancelledException } from '@pikku/core/workflow';
5
5
  import { pikkuWorkflowGraph as corePikkuWorkflowGraph } from '@pikku/core/workflow';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.118
2
+ * This file was generated by @pikku/cli@0.12.119
3
3
  */
4
4
  import { pikkuState } from '@pikku/core/state';
5
5
  import allWorkflowMeta from './meta/allWorkflow.gen.json' with { type: 'json' };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.118
2
+ * This file was generated by @pikku/cli@0.12.119
3
3
  */
4
4
  import { addWorkflow } from '@pikku/core/workflow';
5
5
  import './pikku-workflow-wirings-meta.gen.js';
@@ -11,8 +11,8 @@ async function checkForUpdate() {
11
11
  })
12
12
  if (!res.ok) return
13
13
  const { version: latest } = await res.json()
14
- if (latest !== '0.12.118') {
15
- process.stderr.write(`\n Update available 0.12.118 → ${latest}\n brew upgrade pikku or npm install -g @pikku/cli\n\n`)
14
+ if (latest !== '0.12.119') {
15
+ process.stderr.write(`\n Update available 0.12.119 → ${latest}\n brew upgrade pikku or npm install -g @pikku/cli\n\n`)
16
16
  }
17
17
  } catch {}
18
18
  }
@@ -635,16 +635,8 @@ wireCLI({
635
635
  }),
636
636
  sync: pikkuCLICommand({
637
637
  func: personaSync,
638
- description: "Provision the declared personas into an environment: create each account and apply the roles it declares. Additive — it never revokes. Needs both the environment's API (to sign in) and its database (to write the grants), and the sign-in secret from SCENARIO_ACTOR_SECRET.",
638
+ description: "Report which personas an environment will provision, with which roles, and why any of them were skipped. The provisioning itself happens in the deployment — call provisionPersonas from '@pikku/better-auth' in your server lifecycle — because the CLI has no connection to a deployed environment's database.",
639
639
  parameters: '<environment>',
640
- options: {
641
- dryRun: {
642
- description: 'Report who would be provisioned, with which roles, and why anyone was skipped — without touching anything',
643
- },
644
- apiUrl: {
645
- description: "Override the environment's apiUrl — for a target that only exists at run time, such as a freshly deployed sandbox",
646
- },
647
- },
648
640
  }),
649
641
  list: pikkuCLICommand({
650
642
  func: personaList,
@@ -15,9 +15,39 @@ export class GitError extends Error {
15
15
  this.stderr = stderr;
16
16
  }
17
17
  }
18
+ /**
19
+ * Repository-location variables git exports to its hooks. `git push` from a
20
+ * worktree sets GIT_DIR, and a hook's children inherit it — after which git
21
+ * answers about the hook's repository no matter which directory it is run in,
22
+ * so a probe given a `cwd` outside any repository reports that repository's
23
+ * state instead of "no repository". Every probe below picks its repository by
24
+ * `cwd`, so the inherited pointer is always wrong here and is dropped.
25
+ */
26
+ const REPO_LOCATION_ENV = [
27
+ 'GIT_DIR',
28
+ 'GIT_COMMON_DIR',
29
+ 'GIT_WORK_TREE',
30
+ 'GIT_INDEX_FILE',
31
+ 'GIT_PREFIX',
32
+ 'GIT_NAMESPACE',
33
+ 'GIT_OBJECT_DIRECTORY',
34
+ 'GIT_ALTERNATE_OBJECT_DIRECTORIES',
35
+ 'GIT_CEILING_DIRECTORIES',
36
+ ];
37
+ function envWithoutInheritedRepo() {
38
+ const env = { ...process.env };
39
+ for (const key of REPO_LOCATION_ENV) {
40
+ delete env[key];
41
+ }
42
+ return env;
43
+ }
18
44
  function git(args, cwd = process.cwd()) {
19
45
  return new Promise((resolve, reject) => {
20
- const child = spawn('git', args, { cwd, stdio: ['ignore', 'pipe', 'pipe'] });
46
+ const child = spawn('git', args, {
47
+ cwd,
48
+ env: envWithoutInheritedRepo(),
49
+ stdio: ['ignore', 'pipe', 'pipe'],
50
+ });
21
51
  let stdout = '';
22
52
  let stderr = '';
23
53
  child.stdout.on('data', (b) => (stdout += b.toString()));
@@ -22,11 +22,13 @@ import { createDevAgentRunner } from './dev-agent-runner.js';
22
22
  import { resolveConsoleMount } from './serve-console.js';
23
23
  import { serverReadyLine } from '../../server/server-ready.js';
24
24
  import { createEphemeralContentSigningJWT } from '../../server/content-signing-jwt.js';
25
+ import { enableDevActorSignIn } from '../../server/actor-sign-in.js';
25
26
  import { applyModelAliasOverride } from '../../utils/model-alias-override.js';
26
27
  export const dev = pikkuSessionlessFunc({
27
28
  remote: true,
28
29
  func: async ({ logger, config, getInspectorState, invalidateInspectorState, variables, devServerRunner, }, { port, watch, hmr, coverage, test, model }, { rpc }) => {
29
30
  process.env.PIKKU_DEV_QUICK_LOGIN ??= 'true';
31
+ enableDevActorSignIn(logger);
30
32
  applyModelAliasOverride(logger, model, config.models);
31
33
  if (test) {
32
34
  process.env.PIKKU_TEST_RUN = 'true';
@@ -1,33 +1,25 @@
1
1
  /**
2
- * Provision the declared personas into an environment: their accounts, and the
3
- * roles they declare.
2
+ * Report which personas an environment will provision, and which it will not.
4
3
  *
5
- * This is deployment, not seeding. `pikku db reset` applies a project's test
6
- * fixtures and does not run in production; an accountable persona doing a real
7
- * job in production still needs an account and its grants, and this is where
8
- * they come from.
4
+ * It reports rather than writes, because the writing happens somewhere this
5
+ * command cannot reach. Provisioning a persona means creating a user row and
6
+ * granting it roles, and both of those live in the deployment's database — one
7
+ * the CLI has no connection to for any environment that is not the developer's
8
+ * own. This command used to open a Kysely connection from the local project
9
+ * config and write through it, which provisioned a local stage correctly and
10
+ * silently provisioned the wrong database for every other environment.
9
11
  *
10
- * Additive in the same way `syncSystemRoles` is: it creates and grants, and
11
- * never deletes or revokes. Removing a persona from the code leaves their
12
- * account and their grants standing until somebody decides otherwise — which is
13
- * the point, because the alternative is a rolling deploy quietly locking out the
14
- * teammate that the older replica is still running.
15
- *
16
- * It needs both halves of an environment: its API, to sign the persona in, and
17
- * its database, to write the grants. They must be the same deployment — the
18
- * command has no way to check that, so pointing it at a stage's API and a local
19
- * database provisions nobody usefully.
12
+ * So the deployment provisions itself: an app calls `provisionPersonas` from
13
+ * `@pikku/better-auth` in its server lifecycle, where the database connection
14
+ * and better-auth's own adapter are both already open, and a deploy carries its
15
+ * personas with it. What is left here is the half that needs no database — the
16
+ * declaration, and the environment rule applied to it — which is what tells you
17
+ * before a deploy whether the accounts you expect will appear.
20
18
  */
21
19
  export declare const personaSync: import("#pikku/function").PikkuFunctionConfig<{
22
20
  environment: string;
23
- apiUrl?: string;
24
- dryRun?: boolean;
25
21
  }, void, "rpc" | "session", import("#pikku/function").PikkuFunctionSessionless<{
26
22
  environment: string;
27
- apiUrl?: string;
28
- dryRun?: boolean;
29
23
  }, void, "rpc" | "session", import("#pikku/function").WiredServices, unknown> | import("#pikku/function").PikkuFunction<{
30
24
  environment: string;
31
- apiUrl?: string;
32
- dryRun?: boolean;
33
25
  }, void, "rpc" | "session", import("#pikku/function").WiredServices>, undefined, undefined>;
@@ -1,51 +1,26 @@
1
1
  import { pikkuSessionlessFunc } from '#pikku/function';
2
- import { createHttpPersonas } from '@pikku/core/persona';
3
2
  import { personaEnvironmentRefusal } from '@pikku/core/persona';
4
3
  import { resolvePersonas } from '../../utils/resolve-personas.js';
5
- import { resolvePersonaCredentials } from '../../utils/persona-credentials.js';
6
- import { resolveEnvironment } from './environment.js';
7
- import { loadDeclaredRoles, openScopeServiceForRoles } from './roles-shared.js';
8
4
  /**
9
- * The user id behind a persona's address.
5
+ * Report which personas an environment will provision, and which it will not.
10
6
  *
11
- * Read straight off better-auth's own `user` table rather than through the
12
- * ScopeService, because the ScopeService has no notion of an address — its
13
- * grants are keyed by user id, and `pikku_user_role.user_id` already FKs into
14
- * this exact table. Looking it up anywhere else would mean inventing a second
15
- * account concept for personas, which is the one thing this command exists to
16
- * avoid: a persona is a user, provisioned the way users are.
17
- */
18
- const userIdByEmail = async (db, email) => {
19
- const row = await db
20
- .selectFrom('user')
21
- .select('id')
22
- .where('email', '=', email)
23
- .executeTakeFirst();
24
- return row ? String(row.id) : null;
25
- };
26
- /**
27
- * Provision the declared personas into an environment: their accounts, and the
28
- * roles they declare.
29
- *
30
- * This is deployment, not seeding. `pikku db reset` applies a project's test
31
- * fixtures and does not run in production; an accountable persona doing a real
32
- * job in production still needs an account and its grants, and this is where
33
- * they come from.
34
- *
35
- * Additive in the same way `syncSystemRoles` is: it creates and grants, and
36
- * never deletes or revokes. Removing a persona from the code leaves their
37
- * account and their grants standing until somebody decides otherwise — which is
38
- * the point, because the alternative is a rolling deploy quietly locking out the
39
- * teammate that the older replica is still running.
7
+ * It reports rather than writes, because the writing happens somewhere this
8
+ * command cannot reach. Provisioning a persona means creating a user row and
9
+ * granting it roles, and both of those live in the deployment's database — one
10
+ * the CLI has no connection to for any environment that is not the developer's
11
+ * own. This command used to open a Kysely connection from the local project
12
+ * config and write through it, which provisioned a local stage correctly and
13
+ * silently provisioned the wrong database for every other environment.
40
14
  *
41
- * It needs both halves of an environment: its API, to sign the persona in, and
42
- * its database, to write the grants. They must be the same deployment — the
43
- * command has no way to check that, so pointing it at a stage's API and a local
44
- * database provisions nobody usefully.
15
+ * So the deployment provisions itself: an app calls `provisionPersonas` from
16
+ * `@pikku/better-auth` in its server lifecycle, where the database connection
17
+ * and better-auth's own adapter are both already open, and a deploy carries its
18
+ * personas with it. What is left here is the half that needs no database — the
19
+ * declaration, and the environment rule applied to it — which is what tells you
20
+ * before a deploy whether the accounts you expect will appear.
45
21
  */
46
22
  export const personaSync = pikkuSessionlessFunc({
47
- remote: true,
48
- func: async ({ logger, config, getInspectorState, variables }, { environment, apiUrl, dryRun }) => {
23
+ func: async ({ logger, config, getInspectorState }, { environment }) => {
49
24
  const state = await getInspectorState(true, false, false, true);
50
25
  const personas = resolvePersonas(state.personas?.definitions ?? [], config.scenarios?.emailDomain);
51
26
  if (Object.keys(personas).length === 0) {
@@ -53,9 +28,11 @@ export const personaSync = pikkuSessionlessFunc({
53
28
  return;
54
29
  }
55
30
  const environments = config.environments ?? {};
56
- const env = resolveEnvironment({ environment, environments, apiUrl });
31
+ if (!environments[environment]) {
32
+ throw new Error(`Unknown environment '${environment}'. Configured environments: ${Object.keys(environments).join(', ') || 'none'}.`);
33
+ }
57
34
  // The same rule that decides who may *run* against an environment decides
58
- // who may be provisioned into it. Two rules would drift, and the one that
35
+ // who is provisioned into it. Two rules would drift, and the one that
59
36
  // drifted would leave an account standing in production for a persona the
60
37
  // engine then refuses to sign in.
61
38
  //
@@ -73,76 +50,21 @@ export const personaSync = pikkuSessionlessFunc({
73
50
  }
74
51
  if (eligible.length === 0) {
75
52
  logger.info(`persona sync: no persona may act in '${environment}' — ${skipped.length} declared persona(s) were all skipped.`);
76
- logger.info(' Run with --dry-run for the reasons, or give the persona this environment and disposition `accountable` if it is production.');
77
- return;
78
- }
79
- if (dryRun) {
80
- logger.info(`persona sync (dry run): ${eligible.length} persona(s) would be provisioned into '${environment}' at ${env.apiUrl}:`);
81
- for (const [id, persona] of eligible) {
82
- logger.info(` ${id.padEnd(20)} ${persona.email}${persona.roles.length
83
- ? ` -> ${persona.roles.join(' + ')}`
84
- : ' (no roles)'}`);
85
- }
86
53
  for (const refusal of skipped) {
87
- logger.info(` skipped: ${refusal}`);
54
+ logger.info(` ${refusal}`);
88
55
  }
89
- logger.info('Re-run without --dry-run to apply.');
90
- return;
91
- }
92
- const credentials = await resolvePersonaCredentials(variables, 'a persona account');
93
- const declaredRoles = await loadDeclaredRoles(config.rolesMetaJsonFile, logger);
94
- if (!declaredRoles) {
95
- throw new Error('role metadata not found');
96
- }
97
- const signedIn = createHttpPersonas({
98
- apiUrl: env.apiUrl,
99
- ...credentials,
100
- personas: Object.fromEntries(eligible),
101
- signInPath: env.signInPath,
102
- rpcPath: env.rpcPath,
103
- });
104
- // Roles are synced on the way in, so a grant can name a role this deploy
105
- // introduced. Both that sync and everything below are additive.
106
- const opened = await openScopeServiceForRoles({ config, logger }, declaredRoles, 'pikku persona sync');
107
- if (!opened) {
56
+ logger.info(' Give the persona this environment, and disposition `accountable` if it is production.');
108
57
  return;
109
58
  }
110
- try {
111
- let accounts = 0;
112
- let granted = 0;
113
- let held = 0;
114
- for (const [id, persona] of eligible) {
115
- // Signing in is what creates the account: the actor plugin upserts an
116
- // `actor: true` user row on first sign-in, and nothing else does.
117
- // `sessionRoles()` is the public call that forces it — its answer is a
118
- // by-product here, not the reason for the call.
119
- await signedIn[id].sessionRoles();
120
- accounts++;
121
- if (persona.roles.length === 0) {
122
- logger.info(` ${id.padEnd(20)} ${persona.email} (no roles)`);
123
- continue;
124
- }
125
- const userId = await userIdByEmail(opened.db, persona.email);
126
- if (!userId) {
127
- throw new Error(`persona sync: signed '${id}' in at ${env.apiUrl}, but no user row for ${persona.email} exists in the database this command opened. ` +
128
- `That database is not the one '${environment}' runs on, so its grants would land nowhere.`);
129
- }
130
- const already = new Set(await opened.service.listUserRoles(userId));
131
- const missing = persona.roles.filter((role) => !already.has(role));
132
- for (const role of missing) {
133
- await opened.service.addUserToRole(userId, role);
134
- }
135
- granted += missing.length;
136
- held += persona.roles.length - missing.length;
137
- logger.info(` ${id.padEnd(20)} ${persona.email} -> ${persona.roles.join(' + ')}${missing.length === 0 ? ' (already held)' : ''}`);
138
- }
139
- logger.info(`persona sync: ${accounts} account(s) in '${environment}', ${granted} role grant(s) applied, ${held} already held`);
140
- if (skipped.length > 0) {
141
- logger.info(` ${skipped.length} persona(s) skipped — they do not act in '${environment}'. Run with --dry-run for the reasons.`);
142
- }
59
+ logger.info(`persona sync: ${eligible.length} persona(s) will be provisioned when a deployment of '${environment}' starts:`);
60
+ for (const [id, persona] of eligible) {
61
+ logger.info(` ${id.padEnd(20)} ${persona.email}${persona.roles.length
62
+ ? ` -> ${persona.roles.join(' + ')}`
63
+ : ' (no roles)'}`);
143
64
  }
144
- finally {
145
- await opened.destroy();
65
+ for (const refusal of skipped) {
66
+ logger.info(` skipped: ${refusal}`);
146
67
  }
68
+ logger.info(" Provisioning runs in the deployment: call `provisionPersonas` from '@pikku/better-auth' in your server lifecycle, passing `personaConfigs` and `personaEnvironments` from the generated personas file.");
147
69
  },
148
70
  });
@@ -18,11 +18,13 @@ import { createDevAgentRunner } from './dev-agent-runner.js';
18
18
  import { resolveConsoleMount } from './serve-console.js';
19
19
  import { serverReadyLine } from '../../server/server-ready.js';
20
20
  import { createEphemeralContentSigningJWT } from '../../server/content-signing-jwt.js';
21
+ import { disableDevActorSignIn } from '../../server/actor-sign-in.js';
21
22
  import { applyModelAliasOverride } from '../../utils/model-alias-override.js';
22
23
  export const serve = pikkuSessionlessFunc({
23
24
  remote: true,
24
25
  func: async ({ logger, config, getInspectorState, variables, devServerRunner }, { port, console: serveConsole, model }) => {
25
26
  process.env.PIKKU_DEV_QUICK_LOGIN ??= 'true';
27
+ disableDevActorSignIn(logger);
26
28
  applyModelAliasOverride(logger, model, config.models);
27
29
  const resolvedPort = parseInt(port || '3000', 10);
28
30
  const hostname = 'localhost';
@@ -0,0 +1,16 @@
1
+ import type { ValidateFinding } from './persona-checks.js';
2
+ export type AuthPluginCheckConfig = {
3
+ srcDirectories?: unknown;
4
+ };
5
+ /**
6
+ * Whether better-auth is configured the way pikku supports.
7
+ *
8
+ * Pikku authorizes on scopes, so better-auth's `admin()` — which authorizes its
9
+ * endpoints against a `user.role` column — is unsupported: wiring it means
10
+ * running two authorization models and projecting one onto the other. The
11
+ * inspector refuses it outright at prebuild; this reports the same thing
12
+ * without one, and additionally catches the quieter half of the migration, an
13
+ * app that dropped `admin()` and never wired `ban()`, which keeps its ban
14
+ * columns and its ban UI while silently enforcing nothing.
15
+ */
16
+ export declare const runAuthPluginChecks: (root: string, config: AuthPluginCheckConfig | null) => Promise<ValidateFinding[]>;